@tonconnect/sdk 0.0.32 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -2
- package/dist/tonconnect-sdk.min.js +2 -0
- package/dist/tonconnect-sdk.min.js.map +1 -0
- package/package.json +11 -6
package/README.md
CHANGED
|
@@ -6,8 +6,23 @@ Use it to connect your app to TON wallets via TonConnect protocol.
|
|
|
6
6
|
You can find more details and the protocol specification in the [docs](https://github.com/ton-connect/docs).
|
|
7
7
|
See the example of sdk usage [here](https://github.com/ton-connect/demo-dapp).
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
[Latest API documentation](https://ton-connect.github.io/sdk/modules/_tonconnect_sdk.html)
|
|
10
|
+
|
|
11
|
+
# Getting started
|
|
12
|
+
## Installation with cdn
|
|
13
|
+
Add the script to your HTML file:
|
|
14
|
+
```html
|
|
15
|
+
<script src="https://unpkg.com/@tonconnect/sdk@latest/dist/tonconnect-sdk.min.js"></script>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
You can find `TonConnect` in global variable `TonConnectSDK`, e.g.
|
|
19
|
+
```html
|
|
20
|
+
<script>
|
|
21
|
+
const connector = new TonConnectSDK.TonConnect();
|
|
22
|
+
</script>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Installation with npm
|
|
11
26
|
`npm i @tonconnect/sdk`
|
|
12
27
|
|
|
13
28
|
## Init connector and call autoConnect. If user connected his wallet before, connector will restore the connection
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var TonConnectSDK;(()=>{var __webpack_modules__={9714:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,t){return!1!==t.clone&&t.isMergeableObject(e)?c((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function o(e,t,r){return e.concat(t).map((function(e){return n(e,r)}))}function i(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return e.propertyIsEnumerable(t)})):[]}(e))}function s(e,t){try{return t in e}catch(e){return!1}}function c(e,r,a){(a=a||{}).arrayMerge=a.arrayMerge||o,a.isMergeableObject=a.isMergeableObject||t,a.cloneUnlessOtherwiseSpecified=n;var u=Array.isArray(r);return u===Array.isArray(e)?u?a.arrayMerge(e,r,a):function(e,t,r){var o={};return r.isMergeableObject(e)&&i(e).forEach((function(t){o[t]=n(e[t],r)})),i(t).forEach((function(i){(function(e,t){return s(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,i)||(s(e,i)&&r.isMergeableObject(t[i])?o[i]=function(e,t){if(!t.customMerge)return c;var r=t.customMerge(e);return"function"==typeof r?r:c}(i,r)(e[i],t[i],r):o[i]=n(t[i],r))})),o}(e,r,a):n(r,a)}c.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return c(e,r,t)}),{})};var a=c;e.exports=a},5186:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DappMetadataError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.DappMetadataError=o},7016:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.UnknownError=t.TonConnectError=void 0,o(r(5190),t),o(r(6129),t),o(r(7406),t),o(r(2854),t);var i=r(925);Object.defineProperty(t,"TonConnectError",{enumerable:!0,get:function(){return i.TonConnectError}});var s=r(6811);Object.defineProperty(t,"UnknownError",{enumerable:!0,get:function(){return s.UnknownError}})},7524:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserRejectsError=void 0;var n=r(1092);Object.defineProperty(t,"UserRejectsError",{enumerable:!0,get:function(){return n.UserRejectsError}})},1092:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserRejectsError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.UserRejectsError=o},4851:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(7524),t)},5190:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(4851),t),o(r(9450),t)},3701:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BadRequestError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.BadRequestError=o},9450:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UnknownAppError=t.BadRequestError=void 0;var n=r(3701);Object.defineProperty(t,"BadRequestError",{enumerable:!0,get:function(){return n.BadRequestError}});var o=r(529);Object.defineProperty(t,"UnknownAppError",{enumerable:!0,get:function(){return o.UnknownAppError}})},529:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UnknownAppError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.UnknownAppError=o},7406:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalstorageNotFoundError=void 0;var n=r(1306);Object.defineProperty(t,"LocalstorageNotFoundError",{enumerable:!0,get:function(){return n.LocalstorageNotFoundError}})},1306:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LocalstorageNotFoundError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.LocalstorageNotFoundError=o},925:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TonConnectError=void 0;class r extends Error{constructor(...e){super(...e),Object.setPrototypeOf(this,r.prototype)}}t.TonConnectError=r},6811:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UnknownError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.UnknownError=o},6129:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WalletNotInjectedError=t.WalletNotConnectedError=t.WalletAlreadyConnectedError=void 0;var n=r(2590);Object.defineProperty(t,"WalletAlreadyConnectedError",{enumerable:!0,get:function(){return n.WalletAlreadyConnectedError}});var o=r(1087);Object.defineProperty(t,"WalletNotConnectedError",{enumerable:!0,get:function(){return o.WalletNotConnectedError}});var i=r(6557);Object.defineProperty(t,"WalletNotInjectedError",{enumerable:!0,get:function(){return i.WalletNotInjectedError}})},2590:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WalletAlreadyConnectedError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.WalletAlreadyConnectedError=o},1087:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WalletNotConnectedError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.WalletNotConnectedError=o},6557:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WalletNotInjectedError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.WalletNotInjectedError=o},6897:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FetchWalletsError=void 0;const n=r(925);class o extends n.TonConnectError{constructor(...e){super(...e),Object.setPrototypeOf(this,o.prototype)}}t.FetchWalletsError=o},2854:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FetchWalletsError=void 0;var n=r(6897);Object.defineProperty(t,"FetchWalletsError",{enumerable:!0,get:function(){return n.FetchWalletsError}})},4027:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.CHAIN=t.default=void 0,o(r(1567),t),o(r(1623),t),o(r(7016),t);var i=r(1567);Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i.TonConnect}});var s=r(1803);Object.defineProperty(t,"CHAIN",{enumerable:!0,get:function(){return s.CHAIN}})},1623:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(1326),t),o(r(983),t)},950:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},983:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(950),t),o(r(4255),t)},4255:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1326:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isWalletInfoInjected=void 0;var n=r(5910);Object.defineProperty(t,"isWalletInfoInjected",{enumerable:!0,get:function(){return n.isWalletInfoInjected}})},656:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isWalletConnectionSourceJS=void 0,t.isWalletConnectionSourceJS=function(e){return"jsBridgeKey"in e}},5910:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isWalletInfoInjected=void 0,t.isWalletInfoInjected=function(e){return"jsBridgeKey"in e}},3237:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.connectErrorsParser=void 0;const n=r(7016),o=r(6811),i=r(1803),s={[i.CONNECT_EVENT_ERROR_CODES.UNKNOWN_ERROR]:o.UnknownError,[i.CONNECT_EVENT_ERROR_CODES.USER_REJECTS_ERROR]:n.UserRejectsError,[i.CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR]:n.BadRequestError,[i.CONNECT_EVENT_ERROR_CODES.UNKNOWN_APP_ERROR]:n.UnknownAppError};t.connectErrorsParser=new class{parseError(e){let t=o.UnknownError;return e.code in s&&(t=s[e.code]||o.UnknownError),new t(e.message)}}},9946:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RpcParser=void 0,t.RpcParser=class{isError(e){return"error"in e}}},353:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sendTransactionParser=void 0;const n=r(1803),o=r(7016),i=r(6811),s=r(9946),c={[n.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR]:i.UnknownError,[n.SEND_TRANSACTION_ERROR_CODES.USER_REJECTS_ERROR]:o.UserRejectsError,[n.SEND_TRANSACTION_ERROR_CODES.BAD_REQUEST_ERROR]:o.BadRequestError,[n.SEND_TRANSACTION_ERROR_CODES.UNKNOWN_APP_ERROR]:o.UnknownAppError};class a extends s.RpcParser{convertToRpcRequest(e){return{method:"sendTransaction",params:[JSON.stringify(e)]}}parseAndThrowError(e){let t=i.UnknownError;throw e.error.code in c&&(t=c[e.error.code]||i.UnknownError),new t(e.error.message)}convertFromRpcResponse(e){return{boc:e.result}}}t.sendTransactionParser=new a},3824:function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __awaiter=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BridgeGateway=void 0;const protocol_1=__webpack_require__(1803),errors_1=__webpack_require__(7016),http_bridge_gateway_storage_1=__webpack_require__(927),url_1=__webpack_require__(9372);if((0,protocol_1.isNode)())try{eval("global.EventSource = require('eventsource')"),eval("global.fetch = require('node-fetch')")}catch(e){console.error(e)}class BridgeGateway{constructor(e,t,r,n,o){this.bridgeUrl=t,this.sessionId=r,this.listener=n,this.errorsListener=o,this.ssePath="events",this.postPath="message",this.defaultTtl=300,this.isClosed=!1,this.bridgeGatewayStorage=new http_bridge_gateway_storage_1.HttpBridgeGatewayStorage(e)}registerSession(){return __awaiter(this,void 0,void 0,(function*(){const e=new URL((0,url_1.addPathToUrl)(this.bridgeUrl,this.ssePath));e.searchParams.append("client_id",this.sessionId);const t=yield this.bridgeGatewayStorage.getLastEventId();return t&&e.searchParams.append("last_event_id",t),this.eventSource=new EventSource(e.toString()),new Promise(((e,t)=>{this.eventSource.onerror=t,this.eventSource.onopen=()=>{this.eventSource.onerror=this.errorsHandler.bind(this),this.eventSource.onmessage=this.messagesHandler.bind(this),e()}}))}))}send(e,t,r){return __awaiter(this,void 0,void 0,(function*(){const n=new URL((0,url_1.addPathToUrl)(this.bridgeUrl,this.postPath));n.searchParams.append("client_id",this.sessionId),n.searchParams.append("to",t),n.searchParams.append("ttl",(r||this.defaultTtl).toString()),yield fetch(n,{method:"post",body:protocol_1.Base64.encode(e)})}))}close(){var e;this.isClosed=!0,null===(e=this.eventSource)||void 0===e||e.close()}errorsHandler(e){this.isClosed||this.errorsListener(e)}messagesHandler(e){return __awaiter(this,void 0,void 0,(function*(){if(yield this.bridgeGatewayStorage.storeLastEventId(e.lastEventId),!this.isClosed){let t;try{t=JSON.parse(e.data)}catch(e){throw new errors_1.TonConnectError(`Bridge message parse failed, message ${e.data}`)}this.listener(t)}}))}}exports.BridgeGateway=BridgeGateway},8889:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.BridgeProvider=void 0;const c=r(1803),a=r(925),u=r(3824),l=r(8133),h=i(r(7997));class d{constructor(e,t){this.storage=e,this.walletConnectionSource=t,this.type="http",this.pendingRequests=new Map,this.nextRequestId=0,this.session=null,this.bridge=null,this.listeners=[],this.connectionStorage=new l.BridgeConnectionStorage(e)}static fromStorage(e){return s(this,void 0,void 0,(function*(){const t=new l.BridgeConnectionStorage(e),r=yield t.getHttpConnection();return new d(e,r.session.walletConnectionSource)}))}connect(e){var t;null===(t=this.bridge)||void 0===t||t.close();const r=new c.SessionCrypto;return this.session={sessionCrypto:r,walletConnectionSource:this.walletConnectionSource},this.bridge=new u.BridgeGateway(this.storage,this.walletConnectionSource.bridgeUrl,r.sessionId,this.gatewayListener.bind(this),this.gatewayErrorsListener.bind(this)),this.bridge.registerSession(),this.generateUniversalLink(e)}restoreConnection(){var e;return s(this,void 0,void 0,(function*(){null===(e=this.bridge)||void 0===e||e.close();const t=yield this.connectionStorage.getHttpConnection();t&&(this.session=t.session,this.bridge=new u.BridgeGateway(this.storage,this.walletConnectionSource.bridgeUrl,t.session.sessionCrypto.sessionId,this.gatewayListener.bind(this),this.gatewayErrorsListener.bind(this)),yield this.bridge.registerSession(),this.listeners.forEach((e=>e(t.connectEvent))))}))}sendRequest(e){return new Promise(((t,r)=>{const n=this.nextRequestId;if(this.nextRequestId++,!this.bridge||!this.session||!("walletPublicKey"in this.session))throw new a.TonConnectError("Trying to send bridge request without session");const o=this.session.sessionCrypto.encrypt(JSON.stringify(Object.assign(Object.assign({},e),{id:n})),(0,c.hexToByteArray)(this.session.walletPublicKey));this.bridge.send(o,this.session.walletPublicKey).catch(r),this.pendingRequests.set(n.toString(),t)}))}closeConnection(){var e;null===(e=this.bridge)||void 0===e||e.close(),this.listeners=[]}disconnect(){var e;return null===(e=this.bridge)||void 0===e||e.close(),this.listeners=[],this.removeBridgeAndSession()}listen(e){return this.listeners.push(e),()=>this.listeners=this.listeners.filter((t=>t!==e))}gatewayListener(e){return s(this,void 0,void 0,(function*(){const t=JSON.parse(this.session.sessionCrypto.decrypt(c.Base64.decode(e.message).toUint8Array(),(0,c.hexToByteArray)(e.from)));if(!("event"in t)){const e=t.id.toString(),r=this.pendingRequests.get(e);if(!r)throw new a.TonConnectError(`Response id ${e} doesn't match any request's id`);return r(t),void this.pendingRequests.delete(e)}"connect"===t.event&&(yield this.updateSession(t,e.from)),this.listeners.forEach((e=>e(t)))}))}gatewayErrorsListener(e){return s(this,void 0,void 0,(function*(){throw new a.TonConnectError(`Bridge error ${JSON.stringify(e)}`)}))}updateSession(e,t){return s(this,void 0,void 0,(function*(){this.session=Object.assign(Object.assign({},this.session),{walletPublicKey:t});const r=e.payload.items.find((e=>"ton_addr"===e.name)),n=Object.assign(Object.assign({},e),{payload:Object.assign(Object.assign({},e.payload),{items:[r]})});yield this.connectionStorage.storeConnection({type:"http",session:this.session,connectEvent:n})}))}removeBridgeAndSession(){return s(this,void 0,void 0,(function*(){this.session=null,this.bridge=null,yield this.connectionStorage.removeConnection()}))}generateUniversalLink(e){const t=new URL(this.walletConnectionSource.universalLink);return t.searchParams.append("v",h.version.toString()),t.searchParams.append("id",this.session.sessionCrypto.sessionId),t.searchParams.append("r",c.Base64.encode(JSON.stringify(e),!0)),t.toString()}}t.BridgeProvider=d},7544:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return o(t,e),t},s=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.InjectedProvider=void 0;const c=r(6557),a=i(r(7997)),u=r(8133),l=r(5684);class h{constructor(e){this.type="injected",this.unsubscribeCallback=null,this.listenSubscriptions=!1,this.listeners=[];const t=h.window;if(!h.isWindowContainsWallet(t,e))throw new c.WalletNotInjectedError;this.injectedWallet=t[e].tonconnect}static fromStorage(e){return s(this,void 0,void 0,(function*(){const t=new u.BridgeConnectionStorage(e),r=yield t.getInjectedConnection();return new h(r.jsBridgeKey)}))}static isWalletInjected(e){return h.isWindowContainsWallet(this.window,e)}static isInsideWalletBrowser(e){return!!h.isWindowContainsWallet(this.window,e)&&this.window[e].tonconnect.isWalletBrowser}static isWindowContainsWallet(e,t){return!!e&&t in e&&"object"==typeof e[t]&&"tonconnect"in e[t]}connect(e,t=!1){this.injectedWallet.connect(a.version,e,t).then((e=>{"connect"===e.event&&(this.makeSubscriptions(),this.listenSubscriptions=!0),this.listeners.forEach((t=>t(e)))})).catch((e=>{const t={event:"connect_error",payload:{code:0,message:null==e?void 0:e.toString()}};this.listeners.forEach((e=>e(t)))}))}restoreConnection(){return s(this,void 0,void 0,(function*(){try{const e=yield this.injectedWallet.restoreConnection();"connect"===e.event&&(this.makeSubscriptions(),this.listenSubscriptions=!0,this.listeners.forEach((t=>t(e))))}catch(e){console.error(e)}}))}closeConnection(){this.listenSubscriptions&&this.injectedWallet.disconnect(),this.closeAllListeners()}disconnect(){return this.closeAllListeners(),this.injectedWallet.disconnect(),Promise.resolve()}closeAllListeners(){var e;this.listenSubscriptions=!1,this.listeners=[],null===(e=this.unsubscribeCallback)||void 0===e||e.call(this)}listen(e){return this.listeners.push(e),()=>this.listeners=this.listeners.filter((t=>t!==e))}sendRequest(e){return s(this,void 0,void 0,(function*(){return this.injectedWallet.send(Object.assign(Object.assign({},e),{id:"0"}))}))}makeSubscriptions(){this.unsubscribeCallback=this.injectedWallet.listen((e=>{this.listenSubscriptions&&this.listeners.forEach((t=>t(e))),"disconnect"===e.event&&this.disconnect()}))}}t.InjectedProvider=h,h.window=(0,l.getWindow)()},8133:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.BridgeConnectionStorage=void 0;const o=r(1803),i=r(7016);t.BridgeConnectionStorage=class{constructor(e){this.storage=e,this.storeKey="ton-connect-storage_bridge-connection"}storeConnection(e){return n(this,void 0,void 0,(function*(){if("injected"===e.type)return this.storage.setItem(this.storeKey,JSON.stringify(e));const t={sessionKeyPair:e.session.sessionCrypto.stringifyKeypair(),walletPublicKey:e.session.walletPublicKey,walletConnectionSource:e.session.walletConnectionSource},r={type:"http",connectEvent:e.connectEvent,session:t};return this.storage.setItem(this.storeKey,JSON.stringify(r))}))}removeConnection(){return n(this,void 0,void 0,(function*(){return this.storage.removeItem(this.storeKey)}))}getConnection(){return n(this,void 0,void 0,(function*(){const e=yield this.storage.getItem(this.storeKey);if(!e)return null;const t=JSON.parse(e);if("injected"===t.type)return t;const r=new o.SessionCrypto(t.session.sessionKeyPair);return{type:"http",connectEvent:t.connectEvent,session:{sessionCrypto:r,walletConnectionSource:t.session.walletConnectionSource,walletPublicKey:t.session.walletPublicKey}}}))}getHttpConnection(){return n(this,void 0,void 0,(function*(){const e=yield this.getConnection();if(!e)throw new i.TonConnectError("Trying to read HTTP connection source while nothing is stored");if("injected"===e.type)throw new i.TonConnectError("Trying to read HTTP connection source while injected connection is stored");return e}))}getInjectedConnection(){return n(this,void 0,void 0,(function*(){const e=yield this.getConnection();if(!e)throw new i.TonConnectError("Trying to read Injected bridge connection source while nothing is stored");if("http"===(null==e?void 0:e.type))throw new i.TonConnectError("Trying to read Injected bridge connection source while HTTP connection is stored");return e}))}storedConnectionType(){return n(this,void 0,void 0,(function*(){const e=yield this.storage.getItem(this.storeKey);return e?JSON.parse(e).type:null}))}}},408:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.DefaultStorage=void 0;const o=r(1306),i=r(5684);t.DefaultStorage=class{constructor(){const e=(0,i.getWindow)();if(!(null==e?void 0:e.localStorage))throw new o.LocalstorageNotFoundError;this.window=e}getItem(e){return n(this,void 0,void 0,(function*(){return Promise.resolve(this.window.localStorage.getItem(e))}))}removeItem(e){return n(this,void 0,void 0,(function*(){return this.window.localStorage.removeItem(e),Promise.resolve()}))}setItem(e,t){return this.window.localStorage.setItem(e,t),Promise.resolve()}}},927:function(e,t){"use strict";var r=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.HttpBridgeGatewayStorage=void 0,t.HttpBridgeGatewayStorage=class{constructor(e){this.storage=e,this.storeKey="ton-connect-storage_http-bridge-gateway"}storeLastEventId(e){return r(this,void 0,void 0,(function*(){return this.storage.setItem(this.storeKey,e)}))}removeLastEventId(){return r(this,void 0,void 0,(function*(){return this.storage.removeItem(this.storeKey)}))}getLastEventId(){return r(this,void 0,void 0,(function*(){return(yield this.storage.getItem(this.storeKey))||null}))}}},1567:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.TonConnect=void 0;const o=r(5186),i=r(925),s=r(2590),c=r(1087),a=r(656),u=r(3237),l=r(353),h=r(8889),d=r(7544),f=r(8133),p=r(408),y=r(4354),_=r(5684),v=r(1302);t.TonConnect=class{constructor(e){if(this.walletsList=new v.WalletsListManager,this._wallet=null,this.provider=null,this.statusChangeSubscriptions=[],this.statusChangeErrorSubscriptions=[],this.dappSettings={dappMetedata:(0,y.mergeOptions)(null==e?void 0:e.dappMetedata,(0,_.getWebPageMetadata)()),storage:(null==e?void 0:e.storage)||new p.DefaultStorage},!this.dappSettings.dappMetedata.url)throw new o.DappMetadataError("Dapp url must be specified if window.location.origin is undefined.");this.bridgeConnectionStorage=new f.BridgeConnectionStorage(this.dappSettings.storage)}get connected(){return null!==this._wallet}get account(){var e;return(null===(e=this._wallet)||void 0===e?void 0:e.account)||null}get wallet(){return this._wallet}set wallet(e){this._wallet=e,this.statusChangeSubscriptions.forEach((e=>e(this._wallet)))}getWallets(){return this.walletsList.getWallets()}onStatusChange(e,t){return this.statusChangeSubscriptions.push(e),t&&this.statusChangeErrorSubscriptions.push(t),()=>{this.statusChangeSubscriptions=this.statusChangeSubscriptions.filter((t=>t!==e)),t&&(this.statusChangeErrorSubscriptions=this.statusChangeErrorSubscriptions.filter((e=>e!==t)))}}connect(e,t){var r;if(this.connected)throw new s.WalletAlreadyConnectedError;return null===(r=this.provider)||void 0===r||r.closeConnection(),this.provider=this.createProvider(e),this.provider.connect(this.createConnectRequest(t))}restoreConnection(){return n(this,void 0,void 0,(function*(){const[e,t]=yield Promise.all([this.bridgeConnectionStorage.storedConnectionType(),this.walletsList.getEmbeddedWallet()]);switch(e){case"http":this.provider=yield h.BridgeProvider.fromStorage(this.dappSettings.storage);break;case"injected":this.provider=yield d.InjectedProvider.fromStorage(this.dappSettings.storage);break;default:if(!t)return;this.provider=yield this.createProvider(t)}return this.provider.listen(this.walletEventsListener.bind(this)),this.provider.restoreConnection()}))}sendTransaction(e){return n(this,void 0,void 0,(function*(){this.checkConnection();const t=yield this.provider.sendRequest(l.sendTransactionParser.convertToRpcRequest(e));return l.sendTransactionParser.isError(t)?l.sendTransactionParser.parseAndThrowError(t):l.sendTransactionParser.convertFromRpcResponse(t)}))}disconnect(){return n(this,void 0,void 0,(function*(){if(!this.connected)throw new c.WalletNotConnectedError;yield this.provider.disconnect(),this.onWalletDisconnected()}))}createProvider(e){let t;return t=(0,a.isWalletConnectionSourceJS)(e)?new d.InjectedProvider(e.jsBridgeKey):new h.BridgeProvider(this.dappSettings.storage,e),t.listen(this.walletEventsListener.bind(this)),t}walletEventsListener(e){switch(e.event){case"connect":this.onWalletConnected(e.payload);break;case"connect_error":this.onWalletConnectError(e.payload);break;case"disconnect":this.onWalletDisconnected()}}onWalletConnected(e){const t=e.items.find((e=>"ton_addr"===e.name)),r=e.items.find((e=>"ton_proof"===e.name));if(!t)throw new i.TonConnectError("ton_addr connection item was not found");const n={device:e.device,provider:this.provider.type,account:{address:t.address,chain:t.network}};r&&(n.connectItems={tonProof:r}),this.wallet=n}onWalletConnectError(e){const t=u.connectErrorsParser.parseError(e);this.statusChangeErrorSubscriptions.forEach((e=>e(t)))}onWalletDisconnected(){this.wallet=null}checkConnection(){if(!this.connected)throw new c.WalletNotConnectedError}createConnectRequest(e){const t=(0,_.getWebPageMetadata)(),r=(0,y.mergeOptions)(this.dappSettings.dappMetedata,t),n=[{name:"ton_addr"}];return e&&n.push({name:"ton_proof",payload:e.tonProof}),Object.assign(Object.assign({},r),{items:n})}}},4354:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.mergeOptions=void 0;const o=n(r(9714));t.mergeOptions=function(e,t){return e?(0,o.default)(t,e,{arrayMerge:(e,t,r)=>t}):t}},9372:(e,t)=>{"use strict";function r(e){return"/"===e.slice(-1)?e.slice(0,-1):e}Object.defineProperty(t,"__esModule",{value:!0}),t.addPathToUrl=t.removeUrlLastSlash=void 0,t.removeUrlLastSlash=r,t.addPathToUrl=function(e,t){return r(e)+"/"+t}},5684:(e,t)=>{"use strict";function r(){if("undefined"!=typeof window)return window}function n(){if("undefined"!=typeof document)return document}function o(){const e=n();if(!e)return"";const t=e.querySelectorAll("link[rel='apple-touch-icon']");if(null==t?void 0:t.length)return i(Array.from(t));const r=Array.from(e.querySelectorAll("link[rel*='icon']")),o=r.filter((e=>e.href.endsWith(".png")));if(o.length)return i(o);const s=r.filter((e=>e.href.endsWith(".ico")))[0];return(null==s?void 0:s.href)||""}function i(e){const t=e.map(s).sort(((e,t)=>t.size>e.size?1:-1))[0];return(null==t?void 0:t.href)||""}function s(e){var t;if(!(null===(t=e.sizes)||void 0===t?void 0:t.value))return{href:e.href,size:0};const r=Array.from(e.sizes).map((e=>{const t=e.match(/(\d+)x(\d+)/i);if(t&&t[1]&&t[2])return parseInt(t[1])*parseInt(t[2])})).filter((e=>!!e));return 0===r.length?{href:e.href,size:0}:{href:e.href,size:Math.max.apply(Math,r)}}Object.defineProperty(t,"__esModule",{value:!0}),t.getWebPageMetadata=t.getDocument=t.getWindow=void 0,t.getWindow=r,t.getDocument=n,t.getWebPageMetadata=function(){var e,t;return{url:(null===(e=r())||void 0===e?void 0:e.location.origin)||"",icon:o(),name:(null===(t=n())||void 0===t?void 0:t.title)||"Unknown dapp"}}},1302:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.WalletsListManager=void 0;const o=r(6897),i=r(5910),s=r(7544);t.WalletsListManager=class{constructor(){this.walletsListCache=null,this.walletsListSource="https://raw.githubusercontent.com/ton-connect/wallets-list/main/wallets.json"}getWallets(){return n(this,void 0,void 0,(function*(){return this.walletsListCache||(this.walletsListCache=this.fetchWalletsList(),this.walletsListCache.catch((()=>this.walletsListCache=null))),this.walletsListCache}))}getEmbeddedWallet(){return n(this,void 0,void 0,(function*(){const e=(yield this.getWallets()).filter(i.isWalletInfoInjected);return 1!==e.length?null:e[0].embedded?e[0]:null}))}fetchWalletsList(){return n(this,void 0,void 0,(function*(){try{const e=yield fetch(this.walletsListSource),t=yield e.json();if(!Array.isArray(t)||!t.every((e=>this.isCorrectWalletConfigDTO(e))))throw new o.FetchWalletsError("Wrong wallets list format");return this.walletConfigDTOListToWalletConfigList(t)}catch(e){throw new o.FetchWalletsError(e)}}))}walletConfigDTOListToWalletConfigList(e){return e.map((e=>{const t={name:e.name,imageUrl:e.image,aboutUrl:e.about_url,tondns:e.tondns};if("bridge_url"in e&&(t.bridgeUrl=e.bridge_url,t.universalLink=e.universal_url),"js_bridge_key"in e){const r=e.js_bridge_key;t.jsBridgeKey=r,t.injected=s.InjectedProvider.isWalletInjected(r),t.embedded=s.InjectedProvider.isInsideWalletBrowser(r)}return t}))}isCorrectWalletConfigDTO(e){return!(!e||"object"!=typeof e)&&("name"in e&&"image"in e&&"about_url"in e&&("bridge_url"in e&&"universal_url"in e||"js_bridge_key"in e))}}},251:function(e){!function(t,r){"use strict";e.exports?e.exports=r():(t.nacl||(t.nacl={}),t.nacl.util=r())}(this,(function(){"use strict";var e={};function t(e){if(!/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e))throw new TypeError("invalid encoding")}return e.decodeUTF8=function(e){if("string"!=typeof e)throw new TypeError("expected string");var t,r=unescape(encodeURIComponent(e)),n=new Uint8Array(r.length);for(t=0;t<r.length;t++)n[t]=r.charCodeAt(t);return n},e.encodeUTF8=function(e){var t,r=[];for(t=0;t<e.length;t++)r.push(String.fromCharCode(e[t]));return decodeURIComponent(escape(r.join("")))},"undefined"==typeof atob?void 0!==Buffer.from?(e.encodeBase64=function(e){return Buffer.from(e).toString("base64")},e.decodeBase64=function(e){return t(e),new Uint8Array(Array.prototype.slice.call(Buffer.from(e,"base64"),0))}):(e.encodeBase64=function(e){return new Buffer(e).toString("base64")},e.decodeBase64=function(e){return t(e),new Uint8Array(Array.prototype.slice.call(new Buffer(e,"base64"),0))}):(e.encodeBase64=function(e){var t,r=[],n=e.length;for(t=0;t<n;t++)r.push(String.fromCharCode(e[t]));return btoa(r.join(""))},e.decodeBase64=function(e){t(e);var r,n=atob(e),o=new Uint8Array(n.length);for(r=0;r<n.length;r++)o[r]=n.charCodeAt(r);return o}),e}))},717:(e,t,r)=>{!function(e){"use strict";var t=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t<e.length;t++)r[t]=e[t];return r},n=function(){throw new Error("no PRNG")},o=new Uint8Array(16),i=new Uint8Array(32);i[0]=9;var s=t(),c=t([1]),a=t([56129,1]),u=t([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),l=t([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),h=t([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),d=t([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),f=t([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function p(e,t,r,n){e[t]=r>>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=n>>24&255,e[t+5]=n>>16&255,e[t+6]=n>>8&255,e[t+7]=255&n}function y(e,t,r,n,o){var i,s=0;for(i=0;i<o;i++)s|=e[t+i]^r[n+i];return(1&s-1>>>8)-1}function _(e,t,r,n){return y(e,t,r,n,16)}function v(e,t,r,n){return y(e,t,r,n,32)}function g(e,t,r,n){!function(e,t,r,n){for(var o,i=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,s=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,c=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,a=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,u=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,l=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,d=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,f=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,y=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,_=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,v=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,g=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,b=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,w=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,E=i,O=s,S=c,P=a,R=u,C=l,j=h,m=d,T=f,A=p,N=y,U=_,M=v,x=g,B=b,I=w,W=0;W<20;W+=2)E^=(o=(M^=(o=(T^=(o=(R^=(o=E+M|0)<<7|o>>>25)+E|0)<<9|o>>>23)+R|0)<<13|o>>>19)+T|0)<<18|o>>>14,C^=(o=(O^=(o=(x^=(o=(A^=(o=C+O|0)<<7|o>>>25)+C|0)<<9|o>>>23)+A|0)<<13|o>>>19)+x|0)<<18|o>>>14,N^=(o=(j^=(o=(S^=(o=(B^=(o=N+j|0)<<7|o>>>25)+N|0)<<9|o>>>23)+B|0)<<13|o>>>19)+S|0)<<18|o>>>14,I^=(o=(U^=(o=(m^=(o=(P^=(o=I+U|0)<<7|o>>>25)+I|0)<<9|o>>>23)+P|0)<<13|o>>>19)+m|0)<<18|o>>>14,E^=(o=(P^=(o=(S^=(o=(O^=(o=E+P|0)<<7|o>>>25)+E|0)<<9|o>>>23)+O|0)<<13|o>>>19)+S|0)<<18|o>>>14,C^=(o=(R^=(o=(m^=(o=(j^=(o=C+R|0)<<7|o>>>25)+C|0)<<9|o>>>23)+j|0)<<13|o>>>19)+m|0)<<18|o>>>14,N^=(o=(A^=(o=(T^=(o=(U^=(o=N+A|0)<<7|o>>>25)+N|0)<<9|o>>>23)+U|0)<<13|o>>>19)+T|0)<<18|o>>>14,I^=(o=(B^=(o=(x^=(o=(M^=(o=I+B|0)<<7|o>>>25)+I|0)<<9|o>>>23)+M|0)<<13|o>>>19)+x|0)<<18|o>>>14;E=E+i|0,O=O+s|0,S=S+c|0,P=P+a|0,R=R+u|0,C=C+l|0,j=j+h|0,m=m+d|0,T=T+f|0,A=A+p|0,N=N+y|0,U=U+_|0,M=M+v|0,x=x+g|0,B=B+b|0,I=I+w|0,e[0]=E>>>0&255,e[1]=E>>>8&255,e[2]=E>>>16&255,e[3]=E>>>24&255,e[4]=O>>>0&255,e[5]=O>>>8&255,e[6]=O>>>16&255,e[7]=O>>>24&255,e[8]=S>>>0&255,e[9]=S>>>8&255,e[10]=S>>>16&255,e[11]=S>>>24&255,e[12]=P>>>0&255,e[13]=P>>>8&255,e[14]=P>>>16&255,e[15]=P>>>24&255,e[16]=R>>>0&255,e[17]=R>>>8&255,e[18]=R>>>16&255,e[19]=R>>>24&255,e[20]=C>>>0&255,e[21]=C>>>8&255,e[22]=C>>>16&255,e[23]=C>>>24&255,e[24]=j>>>0&255,e[25]=j>>>8&255,e[26]=j>>>16&255,e[27]=j>>>24&255,e[28]=m>>>0&255,e[29]=m>>>8&255,e[30]=m>>>16&255,e[31]=m>>>24&255,e[32]=T>>>0&255,e[33]=T>>>8&255,e[34]=T>>>16&255,e[35]=T>>>24&255,e[36]=A>>>0&255,e[37]=A>>>8&255,e[38]=A>>>16&255,e[39]=A>>>24&255,e[40]=N>>>0&255,e[41]=N>>>8&255,e[42]=N>>>16&255,e[43]=N>>>24&255,e[44]=U>>>0&255,e[45]=U>>>8&255,e[46]=U>>>16&255,e[47]=U>>>24&255,e[48]=M>>>0&255,e[49]=M>>>8&255,e[50]=M>>>16&255,e[51]=M>>>24&255,e[52]=x>>>0&255,e[53]=x>>>8&255,e[54]=x>>>16&255,e[55]=x>>>24&255,e[56]=B>>>0&255,e[57]=B>>>8&255,e[58]=B>>>16&255,e[59]=B>>>24&255,e[60]=I>>>0&255,e[61]=I>>>8&255,e[62]=I>>>16&255,e[63]=I>>>24&255}(e,t,r,n)}function b(e,t,r,n){!function(e,t,r,n){for(var o,i=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,s=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,c=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,a=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,u=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,l=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,h=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,d=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,f=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,y=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,_=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,v=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,g=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,b=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,w=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,E=0;E<20;E+=2)i^=(o=(v^=(o=(f^=(o=(u^=(o=i+v|0)<<7|o>>>25)+i|0)<<9|o>>>23)+u|0)<<13|o>>>19)+f|0)<<18|o>>>14,l^=(o=(s^=(o=(g^=(o=(p^=(o=l+s|0)<<7|o>>>25)+l|0)<<9|o>>>23)+p|0)<<13|o>>>19)+g|0)<<18|o>>>14,y^=(o=(h^=(o=(c^=(o=(b^=(o=y+h|0)<<7|o>>>25)+y|0)<<9|o>>>23)+b|0)<<13|o>>>19)+c|0)<<18|o>>>14,w^=(o=(_^=(o=(d^=(o=(a^=(o=w+_|0)<<7|o>>>25)+w|0)<<9|o>>>23)+a|0)<<13|o>>>19)+d|0)<<18|o>>>14,i^=(o=(a^=(o=(c^=(o=(s^=(o=i+a|0)<<7|o>>>25)+i|0)<<9|o>>>23)+s|0)<<13|o>>>19)+c|0)<<18|o>>>14,l^=(o=(u^=(o=(d^=(o=(h^=(o=l+u|0)<<7|o>>>25)+l|0)<<9|o>>>23)+h|0)<<13|o>>>19)+d|0)<<18|o>>>14,y^=(o=(p^=(o=(f^=(o=(_^=(o=y+p|0)<<7|o>>>25)+y|0)<<9|o>>>23)+_|0)<<13|o>>>19)+f|0)<<18|o>>>14,w^=(o=(b^=(o=(g^=(o=(v^=(o=w+b|0)<<7|o>>>25)+w|0)<<9|o>>>23)+v|0)<<13|o>>>19)+g|0)<<18|o>>>14;e[0]=i>>>0&255,e[1]=i>>>8&255,e[2]=i>>>16&255,e[3]=i>>>24&255,e[4]=l>>>0&255,e[5]=l>>>8&255,e[6]=l>>>16&255,e[7]=l>>>24&255,e[8]=y>>>0&255,e[9]=y>>>8&255,e[10]=y>>>16&255,e[11]=y>>>24&255,e[12]=w>>>0&255,e[13]=w>>>8&255,e[14]=w>>>16&255,e[15]=w>>>24&255,e[16]=h>>>0&255,e[17]=h>>>8&255,e[18]=h>>>16&255,e[19]=h>>>24&255,e[20]=d>>>0&255,e[21]=d>>>8&255,e[22]=d>>>16&255,e[23]=d>>>24&255,e[24]=f>>>0&255,e[25]=f>>>8&255,e[26]=f>>>16&255,e[27]=f>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,t,r,n)}var w=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function E(e,t,r,n,o,i,s){var c,a,u=new Uint8Array(16),l=new Uint8Array(64);for(a=0;a<16;a++)u[a]=0;for(a=0;a<8;a++)u[a]=i[a];for(;o>=64;){for(g(l,u,s,w),a=0;a<64;a++)e[t+a]=r[n+a]^l[a];for(c=1,a=8;a<16;a++)c=c+(255&u[a])|0,u[a]=255&c,c>>>=8;o-=64,t+=64,n+=64}if(o>0)for(g(l,u,s,w),a=0;a<o;a++)e[t+a]=r[n+a]^l[a];return 0}function O(e,t,r,n,o){var i,s,c=new Uint8Array(16),a=new Uint8Array(64);for(s=0;s<16;s++)c[s]=0;for(s=0;s<8;s++)c[s]=n[s];for(;r>=64;){for(g(a,c,o,w),s=0;s<64;s++)e[t+s]=a[s];for(i=1,s=8;s<16;s++)i=i+(255&c[s])|0,c[s]=255&i,i>>>=8;r-=64,t+=64}if(r>0)for(g(a,c,o,w),s=0;s<r;s++)e[t+s]=a[s];return 0}function S(e,t,r,n,o){var i=new Uint8Array(32);b(i,n,o,w);for(var s=new Uint8Array(8),c=0;c<8;c++)s[c]=n[c+16];return O(e,t,r,s,i)}function P(e,t,r,n,o,i,s){var c=new Uint8Array(32);b(c,i,s,w);for(var a=new Uint8Array(8),u=0;u<8;u++)a[u]=i[u+16];return E(e,t,r,n,o,a,c)}var R=function(e){var t,r,n,o,i,s,c,a;this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0,t=255&e[0]|(255&e[1])<<8,this.r[0]=8191&t,r=255&e[2]|(255&e[3])<<8,this.r[1]=8191&(t>>>13|r<<3),n=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(r>>>10|n<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(n>>>7|o<<9),i=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|i<<12),this.r[5]=i>>>1&8190,s=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(i>>>14|s<<2),c=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(s>>>11|c<<5),a=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(c>>>8|a<<8),this.r[9]=a>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function C(e,t,r,n,o,i){var s=new R(i);return s.update(r,n,o),s.finish(e,t),0}function j(e,t,r,n,o,i){var s=new Uint8Array(16);return C(s,0,r,n,o,i),_(e,t,s,0)}function m(e,t,r,n,o){var i;if(r<32)return-1;for(P(e,0,t,0,r,n,o),C(e,16,e,32,r-32,e),i=0;i<16;i++)e[i]=0;return 0}function T(e,t,r,n,o){var i,s=new Uint8Array(32);if(r<32)return-1;if(S(s,0,32,n,o),0!==j(t,16,t,32,r-32,s))return-1;for(P(e,0,t,0,r,n,o),i=0;i<32;i++)e[i]=0;return 0}function A(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function N(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function U(e,t,r){for(var n,o=~(r-1),i=0;i<16;i++)n=o&(e[i]^t[i]),e[i]^=n,t[i]^=n}function M(e,r){var n,o,i,s=t(),c=t();for(n=0;n<16;n++)c[n]=r[n];for(N(c),N(c),N(c),o=0;o<2;o++){for(s[0]=c[0]-65517,n=1;n<15;n++)s[n]=c[n]-65535-(s[n-1]>>16&1),s[n-1]&=65535;s[15]=c[15]-32767-(s[14]>>16&1),i=s[15]>>16&1,s[14]&=65535,U(c,s,1-i)}for(n=0;n<16;n++)e[2*n]=255&c[n],e[2*n+1]=c[n]>>8}function x(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return M(r,e),M(n,t),v(r,0,n,0)}function B(e){var t=new Uint8Array(32);return M(t,e),1&t[0]}function I(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function W(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function D(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function k(e,t,r){var n,o,i=0,s=0,c=0,a=0,u=0,l=0,h=0,d=0,f=0,p=0,y=0,_=0,v=0,g=0,b=0,w=0,E=0,O=0,S=0,P=0,R=0,C=0,j=0,m=0,T=0,A=0,N=0,U=0,M=0,x=0,B=0,I=r[0],W=r[1],D=r[2],k=r[3],K=r[4],L=r[5],q=r[6],H=r[7],F=r[8],z=r[9],Y=r[10],J=r[11],G=r[12],V=r[13],Z=r[14],$=r[15];i+=(n=t[0])*I,s+=n*W,c+=n*D,a+=n*k,u+=n*K,l+=n*L,h+=n*q,d+=n*H,f+=n*F,p+=n*z,y+=n*Y,_+=n*J,v+=n*G,g+=n*V,b+=n*Z,w+=n*$,s+=(n=t[1])*I,c+=n*W,a+=n*D,u+=n*k,l+=n*K,h+=n*L,d+=n*q,f+=n*H,p+=n*F,y+=n*z,_+=n*Y,v+=n*J,g+=n*G,b+=n*V,w+=n*Z,E+=n*$,c+=(n=t[2])*I,a+=n*W,u+=n*D,l+=n*k,h+=n*K,d+=n*L,f+=n*q,p+=n*H,y+=n*F,_+=n*z,v+=n*Y,g+=n*J,b+=n*G,w+=n*V,E+=n*Z,O+=n*$,a+=(n=t[3])*I,u+=n*W,l+=n*D,h+=n*k,d+=n*K,f+=n*L,p+=n*q,y+=n*H,_+=n*F,v+=n*z,g+=n*Y,b+=n*J,w+=n*G,E+=n*V,O+=n*Z,S+=n*$,u+=(n=t[4])*I,l+=n*W,h+=n*D,d+=n*k,f+=n*K,p+=n*L,y+=n*q,_+=n*H,v+=n*F,g+=n*z,b+=n*Y,w+=n*J,E+=n*G,O+=n*V,S+=n*Z,P+=n*$,l+=(n=t[5])*I,h+=n*W,d+=n*D,f+=n*k,p+=n*K,y+=n*L,_+=n*q,v+=n*H,g+=n*F,b+=n*z,w+=n*Y,E+=n*J,O+=n*G,S+=n*V,P+=n*Z,R+=n*$,h+=(n=t[6])*I,d+=n*W,f+=n*D,p+=n*k,y+=n*K,_+=n*L,v+=n*q,g+=n*H,b+=n*F,w+=n*z,E+=n*Y,O+=n*J,S+=n*G,P+=n*V,R+=n*Z,C+=n*$,d+=(n=t[7])*I,f+=n*W,p+=n*D,y+=n*k,_+=n*K,v+=n*L,g+=n*q,b+=n*H,w+=n*F,E+=n*z,O+=n*Y,S+=n*J,P+=n*G,R+=n*V,C+=n*Z,j+=n*$,f+=(n=t[8])*I,p+=n*W,y+=n*D,_+=n*k,v+=n*K,g+=n*L,b+=n*q,w+=n*H,E+=n*F,O+=n*z,S+=n*Y,P+=n*J,R+=n*G,C+=n*V,j+=n*Z,m+=n*$,p+=(n=t[9])*I,y+=n*W,_+=n*D,v+=n*k,g+=n*K,b+=n*L,w+=n*q,E+=n*H,O+=n*F,S+=n*z,P+=n*Y,R+=n*J,C+=n*G,j+=n*V,m+=n*Z,T+=n*$,y+=(n=t[10])*I,_+=n*W,v+=n*D,g+=n*k,b+=n*K,w+=n*L,E+=n*q,O+=n*H,S+=n*F,P+=n*z,R+=n*Y,C+=n*J,j+=n*G,m+=n*V,T+=n*Z,A+=n*$,_+=(n=t[11])*I,v+=n*W,g+=n*D,b+=n*k,w+=n*K,E+=n*L,O+=n*q,S+=n*H,P+=n*F,R+=n*z,C+=n*Y,j+=n*J,m+=n*G,T+=n*V,A+=n*Z,N+=n*$,v+=(n=t[12])*I,g+=n*W,b+=n*D,w+=n*k,E+=n*K,O+=n*L,S+=n*q,P+=n*H,R+=n*F,C+=n*z,j+=n*Y,m+=n*J,T+=n*G,A+=n*V,N+=n*Z,U+=n*$,g+=(n=t[13])*I,b+=n*W,w+=n*D,E+=n*k,O+=n*K,S+=n*L,P+=n*q,R+=n*H,C+=n*F,j+=n*z,m+=n*Y,T+=n*J,A+=n*G,N+=n*V,U+=n*Z,M+=n*$,b+=(n=t[14])*I,w+=n*W,E+=n*D,O+=n*k,S+=n*K,P+=n*L,R+=n*q,C+=n*H,j+=n*F,m+=n*z,T+=n*Y,A+=n*J,N+=n*G,U+=n*V,M+=n*Z,x+=n*$,w+=(n=t[15])*I,s+=38*(O+=n*D),c+=38*(S+=n*k),a+=38*(P+=n*K),u+=38*(R+=n*L),l+=38*(C+=n*q),h+=38*(j+=n*H),d+=38*(m+=n*F),f+=38*(T+=n*z),p+=38*(A+=n*Y),y+=38*(N+=n*J),_+=38*(U+=n*G),v+=38*(M+=n*V),g+=38*(x+=n*Z),b+=38*(B+=n*$),i=(n=(i+=38*(E+=n*W))+(o=1)+65535)-65536*(o=Math.floor(n/65536)),s=(n=s+o+65535)-65536*(o=Math.floor(n/65536)),c=(n=c+o+65535)-65536*(o=Math.floor(n/65536)),a=(n=a+o+65535)-65536*(o=Math.floor(n/65536)),u=(n=u+o+65535)-65536*(o=Math.floor(n/65536)),l=(n=l+o+65535)-65536*(o=Math.floor(n/65536)),h=(n=h+o+65535)-65536*(o=Math.floor(n/65536)),d=(n=d+o+65535)-65536*(o=Math.floor(n/65536)),f=(n=f+o+65535)-65536*(o=Math.floor(n/65536)),p=(n=p+o+65535)-65536*(o=Math.floor(n/65536)),y=(n=y+o+65535)-65536*(o=Math.floor(n/65536)),_=(n=_+o+65535)-65536*(o=Math.floor(n/65536)),v=(n=v+o+65535)-65536*(o=Math.floor(n/65536)),g=(n=g+o+65535)-65536*(o=Math.floor(n/65536)),b=(n=b+o+65535)-65536*(o=Math.floor(n/65536)),w=(n=w+o+65535)-65536*(o=Math.floor(n/65536)),i=(n=(i+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(n/65536)),s=(n=s+o+65535)-65536*(o=Math.floor(n/65536)),c=(n=c+o+65535)-65536*(o=Math.floor(n/65536)),a=(n=a+o+65535)-65536*(o=Math.floor(n/65536)),u=(n=u+o+65535)-65536*(o=Math.floor(n/65536)),l=(n=l+o+65535)-65536*(o=Math.floor(n/65536)),h=(n=h+o+65535)-65536*(o=Math.floor(n/65536)),d=(n=d+o+65535)-65536*(o=Math.floor(n/65536)),f=(n=f+o+65535)-65536*(o=Math.floor(n/65536)),p=(n=p+o+65535)-65536*(o=Math.floor(n/65536)),y=(n=y+o+65535)-65536*(o=Math.floor(n/65536)),_=(n=_+o+65535)-65536*(o=Math.floor(n/65536)),v=(n=v+o+65535)-65536*(o=Math.floor(n/65536)),g=(n=g+o+65535)-65536*(o=Math.floor(n/65536)),b=(n=b+o+65535)-65536*(o=Math.floor(n/65536)),w=(n=w+o+65535)-65536*(o=Math.floor(n/65536)),i+=o-1+37*(o-1),e[0]=i,e[1]=s,e[2]=c,e[3]=a,e[4]=u,e[5]=l,e[6]=h,e[7]=d,e[8]=f,e[9]=p,e[10]=y,e[11]=_,e[12]=v,e[13]=g,e[14]=b,e[15]=w}function K(e,t){k(e,t,t)}function L(e,r){var n,o=t();for(n=0;n<16;n++)o[n]=r[n];for(n=253;n>=0;n--)K(o,o),2!==n&&4!==n&&k(o,o,r);for(n=0;n<16;n++)e[n]=o[n]}function q(e,r){var n,o=t();for(n=0;n<16;n++)o[n]=r[n];for(n=250;n>=0;n--)K(o,o),1!==n&&k(o,o,r);for(n=0;n<16;n++)e[n]=o[n]}function H(e,r,n){var o,i,s=new Uint8Array(32),c=new Float64Array(80),u=t(),l=t(),h=t(),d=t(),f=t(),p=t();for(i=0;i<31;i++)s[i]=r[i];for(s[31]=127&r[31]|64,s[0]&=248,I(c,n),i=0;i<16;i++)l[i]=c[i],d[i]=u[i]=h[i]=0;for(u[0]=d[0]=1,i=254;i>=0;--i)U(u,l,o=s[i>>>3]>>>(7&i)&1),U(h,d,o),W(f,u,h),D(u,u,h),W(h,l,d),D(l,l,d),K(d,f),K(p,u),k(u,h,u),k(h,l,f),W(f,u,h),D(u,u,h),K(l,u),D(h,d,p),k(u,h,a),W(u,u,d),k(h,h,u),k(u,d,p),k(d,l,c),K(l,f),U(u,l,o),U(h,d,o);for(i=0;i<16;i++)c[i+16]=u[i],c[i+32]=h[i],c[i+48]=l[i],c[i+64]=d[i];var y=c.subarray(32),_=c.subarray(16);return L(y,y),k(_,_,y),M(e,_),0}function F(e,t){return H(e,t,i)}function z(e,t){return n(t,32),F(e,t)}function Y(e,t,r){var n=new Uint8Array(32);return H(n,r,t),b(e,o,n,w)}R.prototype.blocks=function(e,t,r){for(var n,o,i,s,c,a,u,l,h,d,f,p,y,_,v,g,b,w,E,O=this.fin?0:2048,S=this.h[0],P=this.h[1],R=this.h[2],C=this.h[3],j=this.h[4],m=this.h[5],T=this.h[6],A=this.h[7],N=this.h[8],U=this.h[9],M=this.r[0],x=this.r[1],B=this.r[2],I=this.r[3],W=this.r[4],D=this.r[5],k=this.r[6],K=this.r[7],L=this.r[8],q=this.r[9];r>=16;)d=h=0,d+=(S+=8191&(n=255&e[t+0]|(255&e[t+1])<<8))*M,d+=(P+=8191&(n>>>13|(o=255&e[t+2]|(255&e[t+3])<<8)<<3))*(5*q),d+=(R+=8191&(o>>>10|(i=255&e[t+4]|(255&e[t+5])<<8)<<6))*(5*L),d+=(C+=8191&(i>>>7|(s=255&e[t+6]|(255&e[t+7])<<8)<<9))*(5*K),h=(d+=(j+=8191&(s>>>4|(c=255&e[t+8]|(255&e[t+9])<<8)<<12))*(5*k))>>>13,d&=8191,d+=(m+=c>>>1&8191)*(5*D),d+=(T+=8191&(c>>>14|(a=255&e[t+10]|(255&e[t+11])<<8)<<2))*(5*W),d+=(A+=8191&(a>>>11|(u=255&e[t+12]|(255&e[t+13])<<8)<<5))*(5*I),d+=(N+=8191&(u>>>8|(l=255&e[t+14]|(255&e[t+15])<<8)<<8))*(5*B),f=h+=(d+=(U+=l>>>5|O)*(5*x))>>>13,f+=S*x,f+=P*M,f+=R*(5*q),f+=C*(5*L),h=(f+=j*(5*K))>>>13,f&=8191,f+=m*(5*k),f+=T*(5*D),f+=A*(5*W),f+=N*(5*I),h+=(f+=U*(5*B))>>>13,f&=8191,p=h,p+=S*B,p+=P*x,p+=R*M,p+=C*(5*q),h=(p+=j*(5*L))>>>13,p&=8191,p+=m*(5*K),p+=T*(5*k),p+=A*(5*D),p+=N*(5*W),y=h+=(p+=U*(5*I))>>>13,y+=S*I,y+=P*B,y+=R*x,y+=C*M,h=(y+=j*(5*q))>>>13,y&=8191,y+=m*(5*L),y+=T*(5*K),y+=A*(5*k),y+=N*(5*D),_=h+=(y+=U*(5*W))>>>13,_+=S*W,_+=P*I,_+=R*B,_+=C*x,h=(_+=j*M)>>>13,_&=8191,_+=m*(5*q),_+=T*(5*L),_+=A*(5*K),_+=N*(5*k),v=h+=(_+=U*(5*D))>>>13,v+=S*D,v+=P*W,v+=R*I,v+=C*B,h=(v+=j*x)>>>13,v&=8191,v+=m*M,v+=T*(5*q),v+=A*(5*L),v+=N*(5*K),g=h+=(v+=U*(5*k))>>>13,g+=S*k,g+=P*D,g+=R*W,g+=C*I,h=(g+=j*B)>>>13,g&=8191,g+=m*x,g+=T*M,g+=A*(5*q),g+=N*(5*L),b=h+=(g+=U*(5*K))>>>13,b+=S*K,b+=P*k,b+=R*D,b+=C*W,h=(b+=j*I)>>>13,b&=8191,b+=m*B,b+=T*x,b+=A*M,b+=N*(5*q),w=h+=(b+=U*(5*L))>>>13,w+=S*L,w+=P*K,w+=R*k,w+=C*D,h=(w+=j*W)>>>13,w&=8191,w+=m*I,w+=T*B,w+=A*x,w+=N*M,E=h+=(w+=U*(5*q))>>>13,E+=S*q,E+=P*L,E+=R*K,E+=C*k,h=(E+=j*D)>>>13,E&=8191,E+=m*W,E+=T*I,E+=A*B,E+=N*x,S=d=8191&(h=(h=((h+=(E+=U*M)>>>13)<<2)+h|0)+(d&=8191)|0),P=f+=h>>>=13,R=p&=8191,C=y&=8191,j=_&=8191,m=v&=8191,T=g&=8191,A=b&=8191,N=w&=8191,U=E&=8191,t+=16,r-=16;this.h[0]=S,this.h[1]=P,this.h[2]=R,this.h[3]=C,this.h[4]=j,this.h[5]=m,this.h[6]=T,this.h[7]=A,this.h[8]=N,this.h[9]=U},R.prototype.finish=function(e,t){var r,n,o,i,s=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;i<16;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(r=this.h[1]>>>13,this.h[1]&=8191,i=2;i<10;i++)this.h[i]+=r,r=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*r,r=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=r,r=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=r,s[0]=this.h[0]+5,r=s[0]>>>13,s[0]&=8191,i=1;i<10;i++)s[i]=this.h[i]+r,r=s[i]>>>13,s[i]&=8191;for(s[9]-=8192,n=(1^r)-1,i=0;i<10;i++)s[i]&=n;for(n=~n,i=0;i<10;i++)this.h[i]=this.h[i]&n|s[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,i=1;i<8;i++)o=(this.h[i]+this.pad[i]|0)+(o>>>16)|0,this.h[i]=65535&o;e[t+0]=this.h[0]>>>0&255,e[t+1]=this.h[0]>>>8&255,e[t+2]=this.h[1]>>>0&255,e[t+3]=this.h[1]>>>8&255,e[t+4]=this.h[2]>>>0&255,e[t+5]=this.h[2]>>>8&255,e[t+6]=this.h[3]>>>0&255,e[t+7]=this.h[3]>>>8&255,e[t+8]=this.h[4]>>>0&255,e[t+9]=this.h[4]>>>8&255,e[t+10]=this.h[5]>>>0&255,e[t+11]=this.h[5]>>>8&255,e[t+12]=this.h[6]>>>0&255,e[t+13]=this.h[6]>>>8&255,e[t+14]=this.h[7]>>>0&255,e[t+15]=this.h[7]>>>8&255},R.prototype.update=function(e,t,r){var n,o;if(this.leftover){for((o=16-this.leftover)>r&&(o=r),n=0;n<o;n++)this.buffer[this.leftover+n]=e[t+n];if(r-=o,t+=o,this.leftover+=o,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(r>=16&&(o=r-r%16,this.blocks(e,t,o),t+=o,r-=o),r){for(n=0;n<r;n++)this.buffer[this.leftover+n]=e[t+n];this.leftover+=r}};var J=m,G=T,V=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Z(e,t,r,n){for(var o,i,s,c,a,u,l,h,d,f,p,y,_,v,g,b,w,E,O,S,P,R,C,j,m,T,A=new Int32Array(16),N=new Int32Array(16),U=e[0],M=e[1],x=e[2],B=e[3],I=e[4],W=e[5],D=e[6],k=e[7],K=t[0],L=t[1],q=t[2],H=t[3],F=t[4],z=t[5],Y=t[6],J=t[7],G=0;n>=128;){for(O=0;O<16;O++)S=8*O+G,A[O]=r[S+0]<<24|r[S+1]<<16|r[S+2]<<8|r[S+3],N[O]=r[S+4]<<24|r[S+5]<<16|r[S+6]<<8|r[S+7];for(O=0;O<80;O++)if(o=U,i=M,s=x,c=B,a=I,u=W,l=D,d=K,f=L,p=q,y=H,_=F,v=z,g=Y,C=65535&(R=J),j=R>>>16,m=65535&(P=k),T=P>>>16,C+=65535&(R=(F>>>14|I<<18)^(F>>>18|I<<14)^(I>>>9|F<<23)),j+=R>>>16,m+=65535&(P=(I>>>14|F<<18)^(I>>>18|F<<14)^(F>>>9|I<<23)),T+=P>>>16,C+=65535&(R=F&z^~F&Y),j+=R>>>16,m+=65535&(P=I&W^~I&D),T+=P>>>16,C+=65535&(R=V[2*O+1]),j+=R>>>16,m+=65535&(P=V[2*O]),T+=P>>>16,P=A[O%16],j+=(R=N[O%16])>>>16,m+=65535&P,T+=P>>>16,m+=(j+=(C+=65535&R)>>>16)>>>16,C=65535&(R=E=65535&C|j<<16),j=R>>>16,m=65535&(P=w=65535&m|(T+=m>>>16)<<16),T=P>>>16,C+=65535&(R=(K>>>28|U<<4)^(U>>>2|K<<30)^(U>>>7|K<<25)),j+=R>>>16,m+=65535&(P=(U>>>28|K<<4)^(K>>>2|U<<30)^(K>>>7|U<<25)),T+=P>>>16,j+=(R=K&L^K&q^L&q)>>>16,m+=65535&(P=U&M^U&x^M&x),T+=P>>>16,h=65535&(m+=(j+=(C+=65535&R)>>>16)>>>16)|(T+=m>>>16)<<16,b=65535&C|j<<16,C=65535&(R=y),j=R>>>16,m=65535&(P=c),T=P>>>16,j+=(R=E)>>>16,m+=65535&(P=w),T+=P>>>16,M=o,x=i,B=s,I=c=65535&(m+=(j+=(C+=65535&R)>>>16)>>>16)|(T+=m>>>16)<<16,W=a,D=u,k=l,U=h,L=d,q=f,H=p,F=y=65535&C|j<<16,z=_,Y=v,J=g,K=b,O%16==15)for(S=0;S<16;S++)P=A[S],C=65535&(R=N[S]),j=R>>>16,m=65535&P,T=P>>>16,P=A[(S+9)%16],C+=65535&(R=N[(S+9)%16]),j+=R>>>16,m+=65535&P,T+=P>>>16,w=A[(S+1)%16],C+=65535&(R=((E=N[(S+1)%16])>>>1|w<<31)^(E>>>8|w<<24)^(E>>>7|w<<25)),j+=R>>>16,m+=65535&(P=(w>>>1|E<<31)^(w>>>8|E<<24)^w>>>7),T+=P>>>16,w=A[(S+14)%16],j+=(R=((E=N[(S+14)%16])>>>19|w<<13)^(w>>>29|E<<3)^(E>>>6|w<<26))>>>16,m+=65535&(P=(w>>>19|E<<13)^(E>>>29|w<<3)^w>>>6),T+=P>>>16,T+=(m+=(j+=(C+=65535&R)>>>16)>>>16)>>>16,A[S]=65535&m|T<<16,N[S]=65535&C|j<<16;C=65535&(R=K),j=R>>>16,m=65535&(P=U),T=P>>>16,P=e[0],j+=(R=t[0])>>>16,m+=65535&P,T+=P>>>16,T+=(m+=(j+=(C+=65535&R)>>>16)>>>16)>>>16,e[0]=U=65535&m|T<<16,t[0]=K=65535&C|j<<16,C=65535&(R=L),j=R>>>16,m=65535&(P=M),T=P>>>16,P=e[1],j+=(R=t[1])>>>16,m+=65535&P,T+=P>>>16,T+=(m+=(j+=(C+=65535&R)>>>16)>>>16)>>>16,e[1]=M=65535&m|T<<16,t[1]=L=65535&C|j<<16,C=65535&(R=q),j=R>>>16,m=65535&(P=x),T=P>>>16,P=e[2],j+=(R=t[2])>>>16,m+=65535&P,T+=P>>>16,T+=(m+=(j+=(C+=65535&R)>>>16)>>>16)>>>16,e[2]=x=65535&m|T<<16,t[2]=q=65535&C|j<<16,C=65535&(R=H),j=R>>>16,m=65535&(P=B),T=P>>>16,P=e[3],j+=(R=t[3])>>>16,m+=65535&P,T+=P>>>16,T+=(m+=(j+=(C+=65535&R)>>>16)>>>16)>>>16,e[3]=B=65535&m|T<<16,t[3]=H=65535&C|j<<16,C=65535&(R=F),j=R>>>16,m=65535&(P=I),T=P>>>16,P=e[4],j+=(R=t[4])>>>16,m+=65535&P,T+=P>>>16,T+=(m+=(j+=(C+=65535&R)>>>16)>>>16)>>>16,e[4]=I=65535&m|T<<16,t[4]=F=65535&C|j<<16,C=65535&(R=z),j=R>>>16,m=65535&(P=W),T=P>>>16,P=e[5],j+=(R=t[5])>>>16,m+=65535&P,T+=P>>>16,T+=(m+=(j+=(C+=65535&R)>>>16)>>>16)>>>16,e[5]=W=65535&m|T<<16,t[5]=z=65535&C|j<<16,C=65535&(R=Y),j=R>>>16,m=65535&(P=D),T=P>>>16,P=e[6],j+=(R=t[6])>>>16,m+=65535&P,T+=P>>>16,T+=(m+=(j+=(C+=65535&R)>>>16)>>>16)>>>16,e[6]=D=65535&m|T<<16,t[6]=Y=65535&C|j<<16,C=65535&(R=J),j=R>>>16,m=65535&(P=k),T=P>>>16,P=e[7],j+=(R=t[7])>>>16,m+=65535&P,T+=P>>>16,T+=(m+=(j+=(C+=65535&R)>>>16)>>>16)>>>16,e[7]=k=65535&m|T<<16,t[7]=J=65535&C|j<<16,G+=128,n-=128}return n}function $(e,t,r){var n,o=new Int32Array(8),i=new Int32Array(8),s=new Uint8Array(256),c=r;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,i[0]=4089235720,i[1]=2227873595,i[2]=4271175723,i[3]=1595750129,i[4]=2917565137,i[5]=725511199,i[6]=4215389547,i[7]=327033209,Z(o,i,t,r),r%=128,n=0;n<r;n++)s[n]=t[c-r+n];for(s[r]=128,s[(r=256-128*(r<112?1:0))-9]=0,p(s,r-8,c/536870912|0,c<<3),Z(o,i,s,r),n=0;n<8;n++)p(e,8*n,o[n],i[n]);return 0}function Q(e,r){var n=t(),o=t(),i=t(),s=t(),c=t(),a=t(),u=t(),h=t(),d=t();D(n,e[1],e[0]),D(d,r[1],r[0]),k(n,n,d),W(o,e[0],e[1]),W(d,r[0],r[1]),k(o,o,d),k(i,e[3],r[3]),k(i,i,l),k(s,e[2],r[2]),W(s,s,s),D(c,o,n),D(a,s,i),W(u,s,i),W(h,o,n),k(e[0],c,a),k(e[1],h,u),k(e[2],u,a),k(e[3],c,h)}function X(e,t,r){var n;for(n=0;n<4;n++)U(e[n],t[n],r)}function ee(e,r){var n=t(),o=t(),i=t();L(i,r[2]),k(n,r[0],i),k(o,r[1],i),M(e,o),e[31]^=B(n)<<7}function te(e,t,r){var n,o;for(A(e[0],s),A(e[1],c),A(e[2],c),A(e[3],s),o=255;o>=0;--o)X(e,t,n=r[o/8|0]>>(7&o)&1),Q(t,e),Q(e,e),X(e,t,n)}function re(e,r){var n=[t(),t(),t(),t()];A(n[0],h),A(n[1],d),A(n[2],c),k(n[3],h,d),te(e,n,r)}function ne(e,r,o){var i,s=new Uint8Array(64),c=[t(),t(),t(),t()];for(o||n(r,32),$(s,r,32),s[0]&=248,s[31]&=127,s[31]|=64,re(c,s),ee(e,c),i=0;i<32;i++)r[i+32]=e[i];return 0}var oe=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function ie(e,t){var r,n,o,i;for(n=63;n>=32;--n){for(r=0,o=n-32,i=n-12;o<i;++o)t[o]+=r-16*t[n]*oe[o-(n-32)],r=Math.floor((t[o]+128)/256),t[o]-=256*r;t[o]+=r,t[n]=0}for(r=0,o=0;o<32;o++)t[o]+=r-(t[31]>>4)*oe[o],r=t[o]>>8,t[o]&=255;for(o=0;o<32;o++)t[o]-=r*oe[o];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function se(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;ie(e,r)}function ce(e,r,n,o){var i,s,c=new Uint8Array(64),a=new Uint8Array(64),u=new Uint8Array(64),l=new Float64Array(64),h=[t(),t(),t(),t()];$(c,o,32),c[0]&=248,c[31]&=127,c[31]|=64;var d=n+64;for(i=0;i<n;i++)e[64+i]=r[i];for(i=0;i<32;i++)e[32+i]=c[32+i];for($(u,e.subarray(32),n+32),se(u),re(h,u),ee(e,h),i=32;i<64;i++)e[i]=o[i];for($(a,e,n+64),se(a),i=0;i<64;i++)l[i]=0;for(i=0;i<32;i++)l[i]=u[i];for(i=0;i<32;i++)for(s=0;s<32;s++)l[i+s]+=a[i]*c[s];return ie(e.subarray(32),l),d}function ae(e,r,n,o){var i,a=new Uint8Array(32),l=new Uint8Array(64),h=[t(),t(),t(),t()],d=[t(),t(),t(),t()];if(n<64)return-1;if(function(e,r){var n=t(),o=t(),i=t(),a=t(),l=t(),h=t(),d=t();return A(e[2],c),I(e[1],r),K(i,e[1]),k(a,i,u),D(i,i,e[2]),W(a,e[2],a),K(l,a),K(h,l),k(d,h,l),k(n,d,i),k(n,n,a),q(n,n),k(n,n,i),k(n,n,a),k(n,n,a),k(e[0],n,a),K(o,e[0]),k(o,o,a),x(o,i)&&k(e[0],e[0],f),K(o,e[0]),k(o,o,a),x(o,i)?-1:(B(e[0])===r[31]>>7&&D(e[0],s,e[0]),k(e[3],e[0],e[1]),0)}(d,o))return-1;for(i=0;i<n;i++)e[i]=r[i];for(i=0;i<32;i++)e[i+32]=o[i];if($(l,e,n),se(l),te(h,d,l),re(d,r.subarray(32)),Q(h,d),ee(a,h),n-=64,v(r,0,a,0)){for(i=0;i<n;i++)e[i]=0;return-1}for(i=0;i<n;i++)e[i]=r[i+64];return n}var ue=64,le=32,he=64;function de(e,t){if(32!==e.length)throw new Error("bad key size");if(24!==t.length)throw new Error("bad nonce size")}function fe(){for(var e=0;e<arguments.length;e++)if(!(arguments[e]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function pe(e){for(var t=0;t<e.length;t++)e[t]=0}e.lowlevel={crypto_core_hsalsa20:b,crypto_stream_xor:P,crypto_stream:S,crypto_stream_salsa20_xor:E,crypto_stream_salsa20:O,crypto_onetimeauth:C,crypto_onetimeauth_verify:j,crypto_verify_16:_,crypto_verify_32:v,crypto_secretbox:m,crypto_secretbox_open:T,crypto_scalarmult:H,crypto_scalarmult_base:F,crypto_box_beforenm:Y,crypto_box_afternm:J,crypto_box:function(e,t,r,n,o,i){var s=new Uint8Array(32);return Y(s,o,i),J(e,t,r,n,s)},crypto_box_open:function(e,t,r,n,o,i){var s=new Uint8Array(32);return Y(s,o,i),G(e,t,r,n,s)},crypto_box_keypair:z,crypto_hash:$,crypto_sign:ce,crypto_sign_keypair:ne,crypto_sign_open:ae,crypto_secretbox_KEYBYTES:32,crypto_secretbox_NONCEBYTES:24,crypto_secretbox_ZEROBYTES:32,crypto_secretbox_BOXZEROBYTES:16,crypto_scalarmult_BYTES:32,crypto_scalarmult_SCALARBYTES:32,crypto_box_PUBLICKEYBYTES:32,crypto_box_SECRETKEYBYTES:32,crypto_box_BEFORENMBYTES:32,crypto_box_NONCEBYTES:24,crypto_box_ZEROBYTES:32,crypto_box_BOXZEROBYTES:16,crypto_sign_BYTES:ue,crypto_sign_PUBLICKEYBYTES:le,crypto_sign_SECRETKEYBYTES:he,crypto_sign_SEEDBYTES:32,crypto_hash_BYTES:64,gf:t,D:u,L:oe,pack25519:M,unpack25519:I,M:k,A:W,S:K,Z:D,pow2523:q,add:Q,set25519:A,modL:ie,scalarmult:te,scalarbase:re},e.randomBytes=function(e){var t=new Uint8Array(e);return n(t,e),t},e.secretbox=function(e,t,r){fe(e,t,r),de(r,t);for(var n=new Uint8Array(32+e.length),o=new Uint8Array(n.length),i=0;i<e.length;i++)n[i+32]=e[i];return m(o,n,n.length,t,r),o.subarray(16)},e.secretbox.open=function(e,t,r){fe(e,t,r),de(r,t);for(var n=new Uint8Array(16+e.length),o=new Uint8Array(n.length),i=0;i<e.length;i++)n[i+16]=e[i];return n.length<32||0!==T(o,n,n.length,t,r)?null:o.subarray(32)},e.secretbox.keyLength=32,e.secretbox.nonceLength=24,e.secretbox.overheadLength=16,e.scalarMult=function(e,t){if(fe(e,t),32!==e.length)throw new Error("bad n size");if(32!==t.length)throw new Error("bad p size");var r=new Uint8Array(32);return H(r,e,t),r},e.scalarMult.base=function(e){if(fe(e),32!==e.length)throw new Error("bad n size");var t=new Uint8Array(32);return F(t,e),t},e.scalarMult.scalarLength=32,e.scalarMult.groupElementLength=32,e.box=function(t,r,n,o){var i=e.box.before(n,o);return e.secretbox(t,r,i)},e.box.before=function(e,t){fe(e,t),function(e,t){if(32!==e.length)throw new Error("bad public key size");if(32!==t.length)throw new Error("bad secret key size")}(e,t);var r=new Uint8Array(32);return Y(r,e,t),r},e.box.after=e.secretbox,e.box.open=function(t,r,n,o){var i=e.box.before(n,o);return e.secretbox.open(t,r,i)},e.box.open.after=e.secretbox.open,e.box.keyPair=function(){var e=new Uint8Array(32),t=new Uint8Array(32);return z(e,t),{publicKey:e,secretKey:t}},e.box.keyPair.fromSecretKey=function(e){if(fe(e),32!==e.length)throw new Error("bad secret key size");var t=new Uint8Array(32);return F(t,e),{publicKey:t,secretKey:new Uint8Array(e)}},e.box.publicKeyLength=32,e.box.secretKeyLength=32,e.box.sharedKeyLength=32,e.box.nonceLength=24,e.box.overheadLength=e.secretbox.overheadLength,e.sign=function(e,t){if(fe(e,t),t.length!==he)throw new Error("bad secret key size");var r=new Uint8Array(ue+e.length);return ce(r,e,e.length,t),r},e.sign.open=function(e,t){if(fe(e,t),t.length!==le)throw new Error("bad public key size");var r=new Uint8Array(e.length),n=ae(r,e,e.length,t);if(n<0)return null;for(var o=new Uint8Array(n),i=0;i<o.length;i++)o[i]=r[i];return o},e.sign.detached=function(t,r){for(var n=e.sign(t,r),o=new Uint8Array(ue),i=0;i<o.length;i++)o[i]=n[i];return o},e.sign.detached.verify=function(e,t,r){if(fe(e,t,r),t.length!==ue)throw new Error("bad signature size");if(r.length!==le)throw new Error("bad public key size");var n,o=new Uint8Array(ue+e.length),i=new Uint8Array(ue+e.length);for(n=0;n<ue;n++)o[n]=t[n];for(n=0;n<e.length;n++)o[n+ue]=e[n];return ae(i,o,o.length,r)>=0},e.sign.keyPair=function(){var e=new Uint8Array(le),t=new Uint8Array(he);return ne(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(fe(e),e.length!==he)throw new Error("bad secret key size");for(var t=new Uint8Array(le),r=0;r<t.length;r++)t[r]=e[32+r];return{publicKey:t,secretKey:new Uint8Array(e)}},e.sign.keyPair.fromSeed=function(e){if(fe(e),32!==e.length)throw new Error("bad seed size");for(var t=new Uint8Array(le),r=new Uint8Array(he),n=0;n<32;n++)r[n]=e[n];return ne(t,r,!0),{publicKey:t,secretKey:r}},e.sign.publicKeyLength=le,e.sign.secretKeyLength=he,e.sign.seedLength=32,e.sign.signatureLength=ue,e.hash=function(e){fe(e);var t=new Uint8Array(64);return $(t,e,e.length),t},e.hash.hashLength=64,e.verify=function(e,t){return fe(e,t),0!==e.length&&0!==t.length&&e.length===t.length&&0===y(e,0,t,0,e.length)},e.setPRNG=function(e){n=e},function(){var t="undefined"!=typeof self?self.crypto||self.msCrypto:null;t&&t.getRandomValues?e.setPRNG((function(e,r){var n,o=new Uint8Array(r);for(n=0;n<r;n+=65536)t.getRandomValues(o.subarray(n,n+Math.min(r-n,65536)));for(n=0;n<r;n++)e[n]=o[n];pe(o)})):(t=r(5338))&&t.randomBytes&&e.setPRNG((function(e,r){var n,o=t.randomBytes(r);for(n=0;n<r;n++)e[n]=o[n];pe(o)}))}()}(e.exports?e.exports:self.nacl=self.nacl||{})},7867:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SessionCrypto=void 0;var n=r(6578);Object.defineProperty(t,"SessionCrypto",{enumerable:!0,get:function(){return n.SessionCrypto}})},6578:function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SessionCrypto=void 0;const utils_1=__webpack_require__(2732),tweetnacl_1=__importDefault(__webpack_require__(717));if((0,utils_1.isNode)())try{eval("global.crypto = require('crypto').webcrypto")}catch(e){}class SessionCrypto{constructor(e){this.nonceLength=24,this.keyPair=e?this.createKeypairFromString(e):this.createKeypair(),this.sessionId=(0,utils_1.toHexString)(this.keyPair.publicKey)}createKeypair(){return tweetnacl_1.default.box.keyPair()}createKeypairFromString(e){return{publicKey:(0,utils_1.hexToByteArray)(e.publicKey),secretKey:(0,utils_1.hexToByteArray)(e.secretKey)}}createNonce(){const e=new Uint8Array(this.nonceLength);return crypto.getRandomValues(e)}encrypt(e,t){const r=(new TextEncoder).encode(e),n=this.createNonce(),o=tweetnacl_1.default.box(r,n,t,this.keyPair.secretKey);return(0,utils_1.concatUint8Arrays)(n,o)}decrypt(e,t){const[r,n]=(0,utils_1.splitToUint8Arrays)(e,this.nonceLength),o=tweetnacl_1.default.box.open(n,r,t,this.keyPair.secretKey);if(!o)throw new Error("Decryption error");return(new TextDecoder).decode(o)}stringifyKeypair(){return{publicKey:(0,utils_1.toHexString)(this.keyPair.publicKey),secretKey:(0,utils_1.toHexString)(this.keyPair.secretKey)}}}exports.SessionCrypto=SessionCrypto},1803:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(4437),t),o(r(7867),t),o(r(2732),t)},1227:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CHAIN=void 0,(r=t.CHAIN||(t.CHAIN={})).MAINNET="-239",r.TESTNET="-3"},7442:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},7203:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(7554),t),o(r(7442),t)},7554:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4437:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.CHAIN=void 0,o(r(7203),t),o(r(9108),t);var i=r(1227);Object.defineProperty(t,"CHAIN",{enumerable:!0,get:function(){return i.CHAIN}})},9108:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(1576),t),o(r(9505),t)},8730:(e,t)=>{"use strict";var r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.CONNECT_ITEM_ERROR_CODES=t.CONNECT_EVENT_ERROR_CODES=void 0,(n=t.CONNECT_EVENT_ERROR_CODES||(t.CONNECT_EVENT_ERROR_CODES={}))[n.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",n[n.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",n[n.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",n[n.USER_REJECTS_ERROR=300]="USER_REJECTS_ERROR",n[n.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED",(r=t.CONNECT_ITEM_ERROR_CODES||(t.CONNECT_ITEM_ERROR_CODES={}))[r.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",r[r.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED"},1576:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CONNECT_EVENT_ERROR_CODES=void 0;var n=r(8730);Object.defineProperty(t,"CONNECT_EVENT_ERROR_CODES",{enumerable:!0,get:function(){return n.CONNECT_EVENT_ERROR_CODES}})},9505:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SEND_TRANSACTION_ERROR_CODES=void 0;var n=r(7114);Object.defineProperty(t,"SEND_TRANSACTION_ERROR_CODES",{enumerable:!0,get:function(){return n.SEND_TRANSACTION_ERROR_CODES}})},7114:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.SEND_TRANSACTION_ERROR_CODES=void 0,(r=t.SEND_TRANSACTION_ERROR_CODES||(t.SEND_TRANSACTION_ERROR_CODES={}))[r.UNKNOWN_ERROR=0]="UNKNOWN_ERROR",r[r.BAD_REQUEST_ERROR=1]="BAD_REQUEST_ERROR",r[r.UNKNOWN_APP_ERROR=100]="UNKNOWN_APP_ERROR",r[r.USER_REJECTS_ERROR=300]="USER_REJECTS_ERROR",r[r.METHOD_NOT_SUPPORTED=400]="METHOD_NOT_SUPPORTED"},7084:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Base64=void 0;const o=n(r(251));t.Base64={encode:function(e,t=!1){let r;return e instanceof Uint8Array?r=e:("string"!=typeof e&&(e=JSON.stringify(e)),r=o.default.decodeUTF8(e)),function(e,t){const r=o.default.encodeBase64(e);return t?encodeURIComponent(r):r}(r,t)},decode:function(e,t=!1){const r=function(e,t){return t&&(e=decodeURIComponent(e)),o.default.decodeBase64(e)}(e,t);return{toString:()=>o.default.encodeUTF8(r),toObject(){try{return JSON.parse(o.default.encodeUTF8(r))}catch(e){return null}},toUint8Array:()=>r}}}},8830:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hexToByteArray=t.toHexString=t.splitToUint8Arrays=t.concatUint8Arrays=void 0,t.concatUint8Arrays=function(e,t){const r=new Uint8Array(e.length+t.length);return r.set(e),r.set(t,e.length),r},t.splitToUint8Arrays=function(e,t){if(t>=e.length)throw new Error("Index is out of buffer");return[e.slice(0,t),e.slice(t)]},t.toHexString=function(e){let t="";return e.forEach((e=>{t+=("0"+(255&e).toString(16)).slice(-2)})),t},t.hexToByteArray=function(e){if(e.length%2!=0)throw new Error(`Cannot convert ${e} to bytesArray`);const t=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)t[r/2]=parseInt(e.slice(r,r+2),16);return t}},2732:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNode=t.hexToByteArray=t.toHexString=t.splitToUint8Arrays=t.concatUint8Arrays=t.Base64=void 0;var n=r(7084);Object.defineProperty(t,"Base64",{enumerable:!0,get:function(){return n.Base64}});var o=r(8830);Object.defineProperty(t,"concatUint8Arrays",{enumerable:!0,get:function(){return o.concatUint8Arrays}}),Object.defineProperty(t,"splitToUint8Arrays",{enumerable:!0,get:function(){return o.splitToUint8Arrays}}),Object.defineProperty(t,"toHexString",{enumerable:!0,get:function(){return o.toHexString}}),Object.defineProperty(t,"hexToByteArray",{enumerable:!0,get:function(){return o.hexToByteArray}});var i=r(1266);Object.defineProperty(t,"isNode",{enumerable:!0,get:function(){return i.isNode}})},1266:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNode=void 0,t.isNode=function(){return"undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node}},5338:()=>{},7997:e=>{"use strict";e.exports={version:2}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(r.exports,r,r.exports,__webpack_require__),r.exports}var __webpack_exports__=__webpack_require__(4027);TonConnectSDK=__webpack_exports__})();
|
|
2
|
+
//# sourceMappingURL=tonconnect-sdk.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tonconnect-sdk.min.js","mappings":"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","sources":["webpack://TonConnectSDK/../../node_modules/deepmerge/dist/cjs.js","webpack://TonConnectSDK/./src/errors/dapp/dapp-metadata.error.ts","webpack://TonConnectSDK/./src/errors/index.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/index.ts","webpack://TonConnectSDK/./src/errors/protocol/events/connect/user-rejects.error.ts","webpack://TonConnectSDK/./src/errors/protocol/events/index.ts","webpack://TonConnectSDK/./src/errors/protocol/index.ts","webpack://TonConnectSDK/./src/errors/protocol/responses/bad-request.error.ts","webpack://TonConnectSDK/./src/errors/protocol/responses/index.ts","webpack://TonConnectSDK/./src/errors/protocol/responses/unknown-app.error.ts","webpack://TonConnectSDK/./src/errors/storage/index.ts","webpack://TonConnectSDK/./src/errors/storage/localstorage-not-found.error.ts","webpack://TonConnectSDK/./src/errors/ton-connect.error.ts","webpack://TonConnectSDK/./src/errors/unknown.error.ts","webpack://TonConnectSDK/./src/errors/wallet/index.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-already-connected.error.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-not-connected.error.ts","webpack://TonConnectSDK/./src/errors/wallet/wallet-not-injected.error.ts","webpack://TonConnectSDK/./src/errors/wallets-manager/fetch-wallets.error.ts","webpack://TonConnectSDK/./src/errors/wallets-manager/index.ts","webpack://TonConnectSDK/./src/index.ts","webpack://TonConnectSDK/./src/models/index.ts","webpack://TonConnectSDK/./src/models/methods/index.ts","webpack://TonConnectSDK/./src/models/wallet/index.ts","webpack://TonConnectSDK/./src/models/wallet/wallet-connection-source.ts","webpack://TonConnectSDK/./src/models/wallet/wallet-info.ts","webpack://TonConnectSDK/./src/parsers/connect-errors-parser.ts","webpack://TonConnectSDK/./src/parsers/rpc-parser.ts","webpack://TonConnectSDK/./src/parsers/send-transaction-parser.ts","webpack://TonConnectSDK/./src/provider/bridge/bridge-gateway.ts","webpack://TonConnectSDK/./src/provider/bridge/bridge-provider.ts","webpack://TonConnectSDK/./src/provider/injected/injected-provider.ts","webpack://TonConnectSDK/./src/storage/bridge-connection-storage.ts","webpack://TonConnectSDK/./src/storage/default-storage.ts","webpack://TonConnectSDK/./src/storage/http-bridge-gateway-storage.ts","webpack://TonConnectSDK/./src/ton-connect.ts","webpack://TonConnectSDK/./src/utils/options.ts","webpack://TonConnectSDK/./src/utils/url.ts","webpack://TonConnectSDK/./src/utils/web-api.ts","webpack://TonConnectSDK/./src/wallets-list-manager.ts","webpack://TonConnectSDK/../../node_modules/tweetnacl-util/nacl-util.js","webpack://TonConnectSDK/../../node_modules/tweetnacl/nacl-fast.js","webpack://TonConnectSDK/../protocol/lib/crypto/index.js","webpack://TonConnectSDK/../protocol/lib/crypto/session-crypto.js","webpack://TonConnectSDK/../protocol/lib/index.js","webpack://TonConnectSDK/../protocol/lib/models/CHAIN.js","webpack://TonConnectSDK/../protocol/lib/models/app-message/connect-request/index.js","webpack://TonConnectSDK/../protocol/lib/models/app-message/index.js","webpack://TonConnectSDK/../protocol/lib/models/app-message/request/index.js","webpack://TonConnectSDK/../protocol/lib/models/index.js","webpack://TonConnectSDK/../protocol/lib/models/wallet-message/index.js","webpack://TonConnectSDK/../protocol/lib/models/wallet-message/wallet-event/connect-event.js","webpack://TonConnectSDK/../protocol/lib/models/wallet-message/wallet-event/index.js","webpack://TonConnectSDK/../protocol/lib/models/wallet-message/wallet-response/index.js","webpack://TonConnectSDK/../protocol/lib/models/wallet-message/wallet-response/send-transaction-rpc-response.js","webpack://TonConnectSDK/../protocol/lib/utils/base64.js","webpack://TonConnectSDK/../protocol/lib/utils/binary.js","webpack://TonConnectSDK/../protocol/lib/utils/index.js","webpack://TonConnectSDK/../protocol/lib/utils/web-api.js","webpack://TonConnectSDK/webpack/bootstrap","webpack://TonConnectSDK/webpack/startup"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when passed DappMetadata is in incorrect format.\n */\nexport class DappMetadataError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, DappMetadataError.prototype);\n }\n}\n","export * from './protocol';\nexport * from './wallet';\nexport * from './storage';\nexport * from './wallets-manager';\nexport { TonConnectError } from './ton-connect.error';\nexport { UnknownError } from './unknown.error';\n","export { UserRejectsError } from 'src/errors/protocol/events/connect/user-rejects.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when user rejects the action in the wallet.\n */\nexport class UserRejectsError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, UserRejectsError.prototype);\n }\n}\n","export * from './connect';\n","export * from './events';\nexport * from './responses';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when request to the wallet contains errors.\n */\nexport class BadRequestError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, BadRequestError.prototype);\n }\n}\n","export { BadRequestError } from './bad-request.error';\nexport { UnknownAppError } from './unknown-app.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when app tries to send rpc request to the injected wallet while not connected.\n */\nexport class UnknownAppError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, UnknownAppError.prototype);\n }\n}\n","export { LocalstorageNotFoundError } from './localstorage-not-found.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when `Storage` was not specified in the `DappMetadata` and default `localStorage` was not detected in the environment.\n */\nexport class LocalstorageNotFoundError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, LocalstorageNotFoundError.prototype);\n }\n}\n","/**\n * Base class for TonConnect errors. You can check if the error was triggered by the @tonconnect/sdk using `err instanceof TonConnectError`.\n */\nexport class TonConnectError extends Error {\n constructor(...args: ConstructorParameters<typeof Error>) {\n super(...args);\n\n Object.setPrototypeOf(this, TonConnectError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Unhanded unknown error.\n */\nexport class UnknownError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, UnknownError.prototype);\n }\n}\n","export { WalletAlreadyConnectedError } from './wallet-already-connected.error';\nexport { WalletNotConnectedError } from './wallet-not-connected.error';\nexport { WalletNotInjectedError } from './wallet-not-injected.error';\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when wallet connection called but wallet already connected. To avoid the error, disconnect the wallet before doing a new connection.\n */\nexport class WalletAlreadyConnectedError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletAlreadyConnectedError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when send transaction or other protocol methods called while wallet is not connected.\n */\nexport class WalletNotConnectedError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletNotConnectedError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when there is an attempt to connect to the injected wallet while it is not exists in the webpage.\n */\nexport class WalletNotInjectedError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, WalletNotInjectedError.prototype);\n }\n}\n","import { TonConnectError } from 'src/errors/ton-connect.error';\n\n/**\n * Thrown when an error occurred while fetching the wallets list.\n */\nexport class FetchWalletsError extends TonConnectError {\n constructor(...args: ConstructorParameters<typeof TonConnectError>) {\n super(...args);\n\n Object.setPrototypeOf(this, FetchWalletsError.prototype);\n }\n}\n","export { FetchWalletsError } from './fetch-wallets.error';\n","export * from './ton-connect';\nexport * from './models';\nexport * from './errors';\nexport { IStorage } from './storage/models/storage.interface';\nexport { TonConnect as default } from './ton-connect';\nexport { ITonConnect } from './ton-connect.interface';\nexport { CHAIN, DeviceInfo } from '@tonconnect/protocol';\n","export * from './wallet';\nexport * from './methods';\nexport { DappMetadata } from './dapp/dapp-metadata';\nexport { TonConnectOptions } from './ton-connect-options';\n","export * from './connect';\nexport * from './send-transaction';\n","export type { Account } from './account';\nexport type { Wallet } from './wallet';\nexport type {\n WalletConnectionSource,\n WalletConnectionSourceHTTP,\n WalletConnectionSourceJS\n} from './wallet-connection-source';\nexport {\n WalletInfo,\n WalletInfoInjected,\n WalletInfoRemote,\n isWalletInfoInjected\n} from './wallet-info';\n","export type WalletConnectionSource = WalletConnectionSourceHTTP | WalletConnectionSourceJS;\n\nexport interface WalletConnectionSourceHTTP {\n /**\n * Base part of the wallet universal url. The link should support [Ton Connect parameters]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#universal-link}.\n */\n universalLink: string;\n\n /**\n * Url of the wallet's implementation of the [HTTP bridge]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#http-bridge}.\n */\n bridgeUrl: string;\n}\n\nexport interface WalletConnectionSourceJS {\n /**\n * If the wallet handles JS Bridge connection, specifies the binding for the bridge object accessible through window. Example: the key \"tonkeeper\" means the bridge can be accessed as window.tonkeeper.\n */\n jsBridgeKey: string;\n}\n\nexport function isWalletConnectionSourceJS(\n value: WalletConnectionSource\n): value is WalletConnectionSourceJS {\n return 'jsBridgeKey' in value;\n}\n","export interface WalletInfoBase {\n /**\n * Name of the wallet.\n */\n name: string;\n\n /**\n * Url to the icon of the wallet. Resolution 288×288px. On non-transparent background, without rounded corners. PNG format.\n */\n imageUrl: string;\n\n /**\n * Will be used in the protocol later.\n */\n tondns?: string;\n\n /**\n * Info or landing page of your wallet. May be useful for TON newcomers.\n */\n aboutUrl: string;\n}\n\nexport interface WalletInfoRemote extends WalletInfoBase {\n /**\n * Base part of the wallet universal url. The link should support [Ton Connect parameters]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#universal-link}.\n */\n universalLink: string;\n\n /**\n * Url of the wallet's implementation of the [HTTP bridge]{@link https://github.com/ton-connect/docs/blob/main/bridge.md#http-bridge}.\n */\n bridgeUrl: string;\n}\n\nexport interface WalletInfoInjected extends WalletInfoBase {\n /**\n * If the wallet handles JS Bridge connection, specifies the binding for the bridge object accessible through window. Example: the key \"tonkeeper\" means the bridge can be accessed as window.tonkeeper.\n */\n jsBridgeKey: string;\n\n /**\n * Indicates if the wallet currently is injected to the webpage.\n */\n injected: boolean;\n\n /**\n * Indicates if the dapp is opened inside this wallet's browser.\n */\n embedded: boolean;\n}\n\nexport type WalletInfo =\n | WalletInfoRemote\n | WalletInfoInjected\n | (WalletInfoRemote & WalletInfoInjected);\n\nexport interface WalletInfoDTOBase {\n name: string;\n image: string;\n tondns?: string;\n about_url: string;\n}\n\nexport interface WalletInfoRemoteDTO extends WalletInfoDTOBase {\n universal_url: string;\n bridge_url: string;\n}\n\nexport interface WalletInfoInjectedDTO extends WalletInfoDTOBase {\n js_bridge_key: string;\n}\n\nexport type WalletInfoDTO =\n | WalletInfoRemoteDTO\n | WalletInfoInjectedDTO\n | (WalletInfoRemoteDTO & WalletInfoInjectedDTO);\n\nexport function isWalletInfoInjected(value: WalletInfo): value is WalletInfoInjected {\n return 'jsBridgeKey' in value;\n}\n","import { BadRequestError, UnknownAppError, UserRejectsError } from 'src/errors';\nimport { TonConnectError } from 'src/errors/ton-connect.error';\nimport { UnknownError } from 'src/errors/unknown.error';\nimport { CONNECT_EVENT_ERROR_CODES, ConnectEventError } from '@tonconnect/protocol';\n\nconst connectEventErrorsCodes: Partial<Record<CONNECT_EVENT_ERROR_CODES, typeof TonConnectError>> =\n {\n [CONNECT_EVENT_ERROR_CODES.UNKNOWN_ERROR]: UnknownError,\n [CONNECT_EVENT_ERROR_CODES.USER_REJECTS_ERROR]: UserRejectsError,\n [CONNECT_EVENT_ERROR_CODES.BAD_REQUEST_ERROR]: BadRequestError,\n [CONNECT_EVENT_ERROR_CODES.UNKNOWN_APP_ERROR]: UnknownAppError\n };\n\nclass ConnectErrorsParser {\n parseError(error: ConnectEventError['payload']): TonConnectError {\n let ErrorConstructor: typeof TonConnectError = UnknownError;\n\n if (error.code in connectEventErrorsCodes) {\n ErrorConstructor = connectEventErrorsCodes[error.code] || UnknownError;\n }\n\n return new ErrorConstructor(error.message);\n }\n}\n\nexport const connectErrorsParser = new ConnectErrorsParser();\n","import {\n AppRequest,\n RpcMethod,\n WalletResponse,\n WalletResponseError,\n WalletResponseSuccess\n} from '@tonconnect/protocol';\nimport { WithoutId } from 'src/utils/types';\n\nexport abstract class RpcParser<T extends RpcMethod> {\n abstract convertToRpcRequest(...args: unknown[]): WithoutId<AppRequest<T>>;\n\n abstract convertFromRpcResponse(rpcResponse: WithoutId<WalletResponseSuccess<T>>): unknown;\n\n abstract parseAndThrowError(response: WithoutId<WalletResponseError<T>>): never;\n\n public isError(\n response: WithoutId<WalletResponse<T>>\n ): response is WithoutId<WalletResponseError<T>> {\n return 'error' in response;\n }\n}\n","import {\n CONNECT_EVENT_ERROR_CODES,\n SEND_TRANSACTION_ERROR_CODES,\n SendTransactionRpcRequest,\n SendTransactionRpcResponseError,\n SendTransactionRpcResponseSuccess\n} from '@tonconnect/protocol';\nimport { BadRequestError, TonConnectError, UnknownAppError, UserRejectsError } from 'src/errors';\nimport { UnknownError } from 'src/errors/unknown.error';\nimport { SendTransactionRequest, SendTransactionResponse } from 'src/models/methods';\nimport { RpcParser } from 'src/parsers/rpc-parser';\nimport { WithoutId } from 'src/utils/types';\n\nconst sendTransactionErrors: Partial<Record<CONNECT_EVENT_ERROR_CODES, typeof TonConnectError>> = {\n [SEND_TRANSACTION_ERROR_CODES.UNKNOWN_ERROR]: UnknownError,\n [SEND_TRANSACTION_ERROR_CODES.USER_REJECTS_ERROR]: UserRejectsError,\n [SEND_TRANSACTION_ERROR_CODES.BAD_REQUEST_ERROR]: BadRequestError,\n [SEND_TRANSACTION_ERROR_CODES.UNKNOWN_APP_ERROR]: UnknownAppError\n};\n\nclass SendTransactionParser extends RpcParser<'sendTransaction'> {\n convertToRpcRequest(request: SendTransactionRequest): WithoutId<SendTransactionRpcRequest> {\n return {\n method: 'sendTransaction',\n params: [JSON.stringify(request)]\n };\n }\n\n parseAndThrowError(response: WithoutId<SendTransactionRpcResponseError>): never {\n let ErrorConstructor: typeof TonConnectError = UnknownError;\n\n if (response.error.code in sendTransactionErrors) {\n ErrorConstructor = sendTransactionErrors[response.error.code] || UnknownError;\n }\n\n throw new ErrorConstructor(response.error.message);\n }\n\n convertFromRpcResponse(\n rpcResponse: WithoutId<SendTransactionRpcResponseSuccess>\n ): SendTransactionResponse {\n return {\n boc: rpcResponse.result\n };\n }\n}\n\nexport const sendTransactionParser = new SendTransactionParser();\n","import { Base64, isNode } from '@tonconnect/protocol';\nimport { TonConnectError } from 'src/errors';\nimport { BridgeIncomingMessage } from 'src/provider/bridge/models/bridge-incomming-message';\nimport { HttpBridgeGatewayStorage } from 'src/storage/http-bridge-gateway-storage';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { addPathToUrl } from 'src/utils/url';\n\nif (isNode()) {\n try {\n eval(\"global.EventSource = require('eventsource')\");\n eval(\"global.fetch = require('node-fetch')\");\n } catch (err) {\n console.error(err);\n }\n}\n\nexport class BridgeGateway {\n private readonly ssePath = 'events';\n\n private readonly postPath = 'message';\n\n private readonly defaultTtl = 300;\n\n private eventSource: EventSource | undefined;\n\n private isClosed = false;\n\n private readonly bridgeGatewayStorage: HttpBridgeGatewayStorage;\n\n constructor(\n storage: IStorage,\n private readonly bridgeUrl: string,\n public readonly sessionId: string,\n private readonly listener: (msg: BridgeIncomingMessage) => void,\n private readonly errorsListener: (err: Event) => void\n ) {\n this.bridgeGatewayStorage = new HttpBridgeGatewayStorage(storage);\n }\n\n public async registerSession(): Promise<void> {\n const url = new URL(addPathToUrl(this.bridgeUrl, this.ssePath));\n url.searchParams.append('client_id', this.sessionId);\n\n const lastEventId = await this.bridgeGatewayStorage.getLastEventId();\n if (lastEventId) {\n url.searchParams.append('last_event_id', lastEventId);\n }\n\n this.eventSource = new EventSource(url.toString());\n\n return new Promise((resolve, reject) => {\n this.eventSource!.onerror = reject;\n this.eventSource!.onopen! = (): void => {\n this.eventSource!.onerror = this.errorsHandler.bind(this);\n this.eventSource!.onmessage = this.messagesHandler.bind(this);\n resolve();\n };\n });\n }\n\n public async send(message: Uint8Array, receiver: string, ttl?: number): Promise<void> {\n const url = new URL(addPathToUrl(this.bridgeUrl, this.postPath));\n url.searchParams.append('client_id', this.sessionId);\n url.searchParams.append('to', receiver);\n url.searchParams.append('ttl', (ttl || this.defaultTtl).toString());\n await fetch(url, {\n method: 'post',\n body: Base64.encode(message)\n });\n }\n\n public close(): void {\n this.isClosed = true;\n this.eventSource?.close();\n }\n\n private errorsHandler(e: Event): void {\n if (!this.isClosed) {\n this.errorsListener(e);\n }\n }\n\n private async messagesHandler(e: MessageEvent<string>): Promise<void> {\n await this.bridgeGatewayStorage.storeLastEventId(e.lastEventId);\n\n if (!this.isClosed) {\n let bridgeIncomingMessage: BridgeIncomingMessage;\n\n try {\n bridgeIncomingMessage = JSON.parse(e.data);\n } catch (e) {\n throw new TonConnectError(`Bridge message parse failed, message ${e.data}`);\n }\n\n this.listener(bridgeIncomingMessage);\n }\n }\n}\n","import {\n Base64,\n SessionCrypto,\n AppRequest,\n ConnectRequest,\n RpcMethod,\n WalletEvent,\n WalletResponse,\n WalletMessage,\n hexToByteArray,\n ConnectEventSuccess,\n TonAddressItemReply\n} from '@tonconnect/protocol';\nimport { TonConnectError } from 'src/errors/ton-connect.error';\nimport { WalletConnectionSourceHTTP } from 'src/models/wallet/wallet-connection-source';\nimport { BridgeGateway } from 'src/provider/bridge/bridge-gateway';\nimport { BridgeConnectionHttp } from 'src/provider/bridge/models/bridge-connection';\nimport { BridgeIncomingMessage } from 'src/provider/bridge/models/bridge-incomming-message';\nimport { BridgePartialSession, BridgeSession } from 'src/provider/bridge/models/bridge-session';\nimport { HTTPProvider } from 'src/provider/provider';\nimport { BridgeConnectionStorage } from 'src/storage/bridge-connection-storage';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { WithoutId } from 'src/utils/types';\nimport * as protocol from 'src/resources/protocol.json';\n\nexport class BridgeProvider implements HTTPProvider {\n public static async fromStorage(storage: IStorage): Promise<BridgeProvider> {\n const bridgeConnectionStorage = new BridgeConnectionStorage(storage);\n const connection = await bridgeConnectionStorage.getHttpConnection();\n return new BridgeProvider(storage, connection.session.walletConnectionSource);\n }\n\n public readonly type = 'http';\n\n private readonly connectionStorage: BridgeConnectionStorage;\n\n private readonly pendingRequests = new Map<\n string,\n (response: WithoutId<WalletResponse<RpcMethod>>) => void\n >();\n\n private nextRequestId = 0;\n\n private session: BridgeSession | BridgePartialSession | null = null;\n\n private bridge: BridgeGateway | null = null;\n\n private listeners: Array<(e: WalletEvent) => void> = [];\n\n constructor(\n private readonly storage: IStorage,\n private readonly walletConnectionSource: WalletConnectionSourceHTTP\n ) {\n this.connectionStorage = new BridgeConnectionStorage(storage);\n }\n\n public connect(message: ConnectRequest): string {\n this.bridge?.close();\n const sessionCrypto = new SessionCrypto();\n\n this.session = {\n sessionCrypto,\n walletConnectionSource: this.walletConnectionSource\n };\n\n this.bridge = new BridgeGateway(\n this.storage,\n this.walletConnectionSource.bridgeUrl,\n sessionCrypto.sessionId,\n this.gatewayListener.bind(this),\n this.gatewayErrorsListener.bind(this)\n );\n this.bridge.registerSession();\n\n return this.generateUniversalLink(message);\n }\n\n public async restoreConnection(): Promise<void> {\n this.bridge?.close();\n const storedConnection = await this.connectionStorage.getHttpConnection();\n if (!storedConnection) {\n return;\n }\n\n this.session = storedConnection.session;\n\n this.bridge = new BridgeGateway(\n this.storage,\n this.walletConnectionSource.bridgeUrl,\n storedConnection.session.sessionCrypto.sessionId,\n this.gatewayListener.bind(this),\n this.gatewayErrorsListener.bind(this)\n );\n\n await this.bridge.registerSession();\n\n this.listeners.forEach(listener => listener(storedConnection.connectEvent));\n }\n\n public sendRequest<T extends RpcMethod>(\n request: WithoutId<AppRequest<T>>\n ): Promise<WithoutId<WalletResponse<T>>> {\n return new Promise((resolve, reject) => {\n const id = this.nextRequestId;\n this.nextRequestId++;\n if (!this.bridge || !this.session || !('walletPublicKey' in this.session)) {\n throw new TonConnectError('Trying to send bridge request without session');\n }\n\n const encodedRequest = this.session!.sessionCrypto.encrypt(\n JSON.stringify({ ...request, id }),\n hexToByteArray(this.session.walletPublicKey)\n );\n\n this.bridge.send(encodedRequest, this.session.walletPublicKey).catch(reject);\n this.pendingRequests.set(id.toString(), resolve);\n });\n }\n\n public closeConnection(): void {\n this.bridge?.close();\n this.listeners = [];\n }\n\n public disconnect(): Promise<void> {\n this.bridge?.close();\n this.listeners = [];\n return this.removeBridgeAndSession();\n }\n\n public listen(callback: (e: WalletEvent) => void): () => void {\n this.listeners.push(callback);\n return () => (this.listeners = this.listeners.filter(listener => listener !== callback));\n }\n\n private async gatewayListener(bridgeIncomingMessage: BridgeIncomingMessage): Promise<void> {\n const walletMessage: WalletMessage = JSON.parse(\n this.session!.sessionCrypto.decrypt(\n Base64.decode(bridgeIncomingMessage.message).toUint8Array(),\n hexToByteArray(bridgeIncomingMessage.from)\n )\n );\n\n if (!('event' in walletMessage)) {\n const id = walletMessage.id.toString();\n const resolve = this.pendingRequests.get(id);\n if (!resolve) {\n throw new TonConnectError(`Response id ${id} doesn't match any request's id`);\n }\n\n resolve(walletMessage);\n this.pendingRequests.delete(id);\n return;\n }\n\n if (walletMessage.event === 'connect') {\n await this.updateSession(walletMessage, bridgeIncomingMessage.from);\n }\n\n this.listeners.forEach(listener => listener(walletMessage));\n }\n\n private async gatewayErrorsListener(e: Event): Promise<void> {\n throw new TonConnectError(`Bridge error ${JSON.stringify(e)}`);\n }\n\n private async updateSession(\n connectEvent: ConnectEventSuccess,\n walletPublicKey: string\n ): Promise<void> {\n this.session = {\n ...this.session!,\n walletPublicKey\n };\n\n const tonAddrItem: TonAddressItemReply = connectEvent.payload.items.find(\n item => item.name === 'ton_addr'\n ) as TonAddressItemReply;\n\n const connectEventToSave: BridgeConnectionHttp['connectEvent'] = {\n ...connectEvent,\n payload: {\n ...connectEvent.payload,\n items: [tonAddrItem]\n }\n };\n\n await this.connectionStorage.storeConnection({\n type: 'http',\n session: this.session,\n connectEvent: connectEventToSave\n });\n }\n\n private async removeBridgeAndSession(): Promise<void> {\n this.session = null;\n this.bridge = null;\n await this.connectionStorage.removeConnection();\n }\n\n private generateUniversalLink(message: ConnectRequest): string {\n const url = new URL(this.walletConnectionSource.universalLink);\n url.searchParams.append('v', protocol.version.toString());\n url.searchParams.append('id', this.session!.sessionCrypto.sessionId);\n url.searchParams.append('r', Base64.encode(JSON.stringify(message), true));\n return url.toString();\n }\n}\n","import { WalletNotInjectedError } from 'src/errors/wallet/wallet-not-injected.error';\nimport {\n AppRequest,\n RpcMethod,\n WalletResponse,\n ConnectRequest,\n WalletEvent,\n ConnectEvent\n} from '@tonconnect/protocol';\nimport { InjectedWalletApi } from 'src/provider/injected/models/injected-wallet-api';\nimport { InternalProvider } from 'src/provider/provider';\nimport * as protocol from 'src/resources/protocol.json';\nimport { BridgeConnectionStorage } from 'src/storage/bridge-connection-storage';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { WithoutId } from 'src/utils/types';\nimport { getWindow } from 'src/utils/web-api';\n\ntype WindowWithTon<T extends string> = {\n [key in T]: {\n tonconnect: InjectedWalletApi;\n };\n} & Window;\n\nexport class InjectedProvider<T extends string = string> implements InternalProvider {\n private static window = getWindow();\n\n public static async fromStorage(storage: IStorage): Promise<InjectedProvider> {\n const bridgeConnectionStorage = new BridgeConnectionStorage(storage);\n const connection = await bridgeConnectionStorage.getInjectedConnection();\n return new InjectedProvider(connection.jsBridgeKey);\n }\n\n public static isWalletInjected(injectedWalletKey: string): boolean {\n return InjectedProvider.isWindowContainsWallet(this.window, injectedWalletKey);\n }\n\n public static isInsideWalletBrowser(injectedWalletKey: string): boolean {\n if (InjectedProvider.isWindowContainsWallet(this.window, injectedWalletKey)) {\n return this.window[injectedWalletKey]!.tonconnect.isWalletBrowser;\n }\n\n return false;\n }\n\n private static isWindowContainsWallet<T extends string>(\n window: Window | undefined,\n injectedWalletKey: string\n ): window is WindowWithTon<T> {\n return (\n !!window &&\n injectedWalletKey in window &&\n typeof window[injectedWalletKey as keyof Window] === 'object' &&\n 'tonconnect' in window[injectedWalletKey as keyof Window]\n );\n }\n\n public readonly type = 'injected';\n\n private unsubscribeCallback: (() => void) | null = null;\n\n private injectedWallet: InjectedWalletApi;\n\n private listenSubscriptions = false;\n\n private listeners: Array<(e: WalletEvent) => void> = [];\n\n constructor(injectedWalletKey: T) {\n const window: Window | undefined | WindowWithTon<T> = InjectedProvider.window;\n if (!InjectedProvider.isWindowContainsWallet(window, injectedWalletKey)) {\n throw new WalletNotInjectedError();\n }\n\n this.injectedWallet = window[injectedWalletKey]!.tonconnect!;\n }\n\n public connect(message: ConnectRequest, auto = false): void {\n this.injectedWallet\n .connect(protocol.version, message, auto)\n .then(connectEvent => {\n if (connectEvent.event === 'connect') {\n this.makeSubscriptions();\n this.listenSubscriptions = true;\n }\n this.listeners.forEach(listener => listener(connectEvent));\n })\n .catch(e => {\n const connectEventError: ConnectEvent = {\n event: 'connect_error',\n payload: {\n code: 0,\n message: e?.toString()\n }\n };\n\n this.listeners.forEach(listener => listener(connectEventError));\n });\n }\n\n public async restoreConnection(): Promise<void> {\n try {\n const connectEvent = await this.injectedWallet.restoreConnection();\n if (connectEvent.event === 'connect') {\n this.makeSubscriptions();\n this.listenSubscriptions = true;\n this.listeners.forEach(listener => listener(connectEvent));\n }\n } catch (e) {\n console.error(e);\n }\n }\n\n public closeConnection(): void {\n if (this.listenSubscriptions) {\n this.injectedWallet.disconnect();\n }\n this.closeAllListeners();\n }\n\n public disconnect(): Promise<void> {\n this.closeAllListeners();\n this.injectedWallet.disconnect();\n return Promise.resolve();\n }\n\n private closeAllListeners(): void {\n this.listenSubscriptions = false;\n this.listeners = [];\n this.unsubscribeCallback?.();\n }\n\n public listen(eventsCallback: (e: WalletEvent) => void): () => void {\n this.listeners.push(eventsCallback);\n return () =>\n (this.listeners = this.listeners.filter(listener => listener !== eventsCallback));\n }\n\n public async sendRequest<T extends RpcMethod>(\n request: WithoutId<AppRequest<T>>\n ): Promise<WithoutId<WalletResponse<T>>> {\n return this.injectedWallet.send<T>({ ...request, id: '0' });\n }\n\n private makeSubscriptions(): void {\n this.unsubscribeCallback = this.injectedWallet.listen(e => {\n if (this.listenSubscriptions) {\n this.listeners.forEach(listener => listener(e));\n }\n\n if (e.event === 'disconnect') {\n this.disconnect();\n }\n });\n }\n}\n","import { SessionCrypto } from '@tonconnect/protocol';\nimport { TonConnectError } from 'src/errors';\nimport { BridgeSessionRaw } from 'src/provider/bridge/models/bridge-session-raw';\nimport {\n BridgeConnection,\n BridgeConnectionHttp,\n BridgeConnectionHttpRaw,\n BridgeConnectionInjected,\n BridgeConnectionRaw\n} from 'src/provider/bridge/models/bridge-connection';\nimport { IStorage } from 'src/storage/models/storage.interface';\n\nexport class BridgeConnectionStorage {\n private readonly storeKey = 'ton-connect-storage_bridge-connection';\n\n constructor(private readonly storage: IStorage) {}\n\n public async storeConnection(connection: BridgeConnection): Promise<void> {\n if (connection.type === 'injected') {\n return this.storage.setItem(this.storeKey, JSON.stringify(connection));\n }\n\n const rawSession: BridgeSessionRaw = {\n sessionKeyPair: connection.session.sessionCrypto.stringifyKeypair(),\n walletPublicKey: connection.session.walletPublicKey,\n walletConnectionSource: connection.session.walletConnectionSource\n };\n\n const rawConnection: BridgeConnectionHttpRaw = {\n type: 'http',\n connectEvent: connection.connectEvent,\n session: rawSession\n };\n return this.storage.setItem(this.storeKey, JSON.stringify(rawConnection));\n }\n\n public async removeConnection(): Promise<void> {\n return this.storage.removeItem(this.storeKey);\n }\n\n public async getConnection(): Promise<BridgeConnection | null> {\n const stored = await this.storage.getItem(this.storeKey);\n if (!stored) {\n return null;\n }\n\n const connection: BridgeConnectionRaw = JSON.parse(stored);\n\n if (connection.type === 'injected') {\n return connection;\n }\n\n const sessionCrypto = new SessionCrypto(connection.session.sessionKeyPair);\n return {\n type: 'http',\n connectEvent: connection.connectEvent,\n session: {\n sessionCrypto,\n walletConnectionSource: connection.session.walletConnectionSource,\n walletPublicKey: connection.session.walletPublicKey\n }\n };\n }\n\n public async getHttpConnection(): Promise<BridgeConnectionHttp> {\n const connection = await this.getConnection();\n if (!connection) {\n throw new TonConnectError(\n 'Trying to read HTTP connection source while nothing is stored'\n );\n }\n\n if (connection.type === 'injected') {\n throw new TonConnectError(\n 'Trying to read HTTP connection source while injected connection is stored'\n );\n }\n\n return connection;\n }\n\n public async getInjectedConnection(): Promise<BridgeConnectionInjected> {\n const connection = await this.getConnection();\n\n if (!connection) {\n throw new TonConnectError(\n 'Trying to read Injected bridge connection source while nothing is stored'\n );\n }\n\n if (connection?.type === 'http') {\n throw new TonConnectError(\n 'Trying to read Injected bridge connection source while HTTP connection is stored'\n );\n }\n\n return connection;\n }\n\n public async storedConnectionType(): Promise<BridgeConnection['type'] | null> {\n const stored = await this.storage.getItem(this.storeKey);\n if (!stored) {\n return null;\n }\n const connection: BridgeConnection = JSON.parse(stored);\n return connection.type;\n }\n}\n","import { LocalstorageNotFoundError } from 'src/errors/storage/localstorage-not-found.error';\nimport { IStorage } from 'src/storage/models/storage.interface';\nimport { getWindow } from 'src/utils/web-api';\n\nexport class DefaultStorage implements IStorage {\n private readonly window: Window;\n\n constructor() {\n const window = getWindow();\n\n if (!window?.localStorage) {\n throw new LocalstorageNotFoundError();\n }\n\n this.window = window;\n }\n\n public async getItem(key: string): Promise<string | null> {\n return Promise.resolve(this.window.localStorage.getItem(key));\n }\n\n public async removeItem(key: string): Promise<void> {\n this.window.localStorage.removeItem(key);\n return Promise.resolve();\n }\n\n setItem(key: string, value: string): Promise<void> {\n this.window.localStorage.setItem(key, value);\n return Promise.resolve();\n }\n}\n","import { IStorage } from 'src/storage/models/storage.interface';\n\nexport class HttpBridgeGatewayStorage {\n private readonly storeKey = 'ton-connect-storage_http-bridge-gateway';\n\n constructor(private readonly storage: IStorage) {}\n\n public async storeLastEventId(lastEventId: string): Promise<void> {\n return this.storage.setItem(this.storeKey, lastEventId);\n }\n\n public async removeLastEventId(): Promise<void> {\n return this.storage.removeItem(this.storeKey);\n }\n\n public async getLastEventId(): Promise<string | null> {\n const stored = await this.storage.getItem(this.storeKey);\n if (!stored) {\n return null;\n }\n\n return stored;\n }\n}\n","import {\n ConnectEventError,\n ConnectEventSuccess,\n ConnectRequest,\n SendTransactionRpcResponseSuccess,\n TonAddressItemReply,\n WalletEvent,\n TonProofItemReply,\n ConnectItem\n} from '@tonconnect/protocol';\nimport { DappMetadataError } from 'src/errors/dapp/dapp-metadata.error';\nimport { TonConnectError } from 'src/errors/ton-connect.error';\nimport { WalletAlreadyConnectedError } from 'src/errors/wallet/wallet-already-connected.error';\nimport { WalletNotConnectedError } from 'src/errors/wallet/wallet-not-connected.error';\nimport { Account, Wallet, WalletConnectionSource, WalletInfo } from 'src/models';\nimport { SendTransactionRequest, SendTransactionResponse } from 'src/models/methods';\nimport { ConnectAdditionalRequest } from 'src/models/methods/connect/connect-additional-request';\nimport { TonConnectOptions } from 'src/models/ton-connect-options';\nimport {\n isWalletConnectionSourceJS,\n WalletConnectionSourceJS\n} from 'src/models/wallet/wallet-connection-source';\nimport { connectErrorsParser } from 'src/parsers/connect-errors-parser';\nimport { sendTransactionParser } from 'src/parsers/send-transaction-parser';\nimport { BridgeProvider } from 'src/provider/bridge/bridge-provider';\nimport { InjectedProvider } from 'src/provider/injected/injected-provider';\nimport { Provider } from 'src/provider/provider';\nimport { BridgeConnectionStorage } from 'src/storage/bridge-connection-storage';\nimport { DefaultStorage } from 'src/storage/default-storage';\nimport { ITonConnect } from 'src/ton-connect.interface';\nimport { mergeOptions } from 'src/utils/options';\nimport { getWebPageMetadata } from 'src/utils/web-api';\nimport { WalletsListManager } from 'src/wallets-list-manager';\n\nexport class TonConnect implements ITonConnect {\n private readonly walletsList = new WalletsListManager();\n\n private readonly dappSettings: Required<TonConnectOptions>;\n\n private readonly bridgeConnectionStorage: BridgeConnectionStorage;\n\n private _wallet: Wallet | null = null;\n\n private provider: Provider | null = null;\n\n private statusChangeSubscriptions: ((walletInfo: Wallet | null) => void)[] = [];\n\n private statusChangeErrorSubscriptions: ((err: TonConnectError) => void)[] = [];\n\n /**\n * Shows if the wallet is connected right now.\n */\n public get connected(): boolean {\n return this._wallet !== null;\n }\n\n /**\n * Current connected account or null if no account is connected.\n */\n public get account(): Account | null {\n return this._wallet?.account || null;\n }\n\n /**\n * Current connected wallet or null if no account is connected.\n */\n public get wallet(): Wallet | null {\n return this._wallet;\n }\n\n private set wallet(value: Wallet | null) {\n this._wallet = value;\n this.statusChangeSubscriptions.forEach(callback => callback(this._wallet));\n }\n\n constructor(options?: TonConnectOptions) {\n this.dappSettings = {\n dappMetedata: mergeOptions(options?.dappMetedata, getWebPageMetadata()),\n storage: options?.storage || new DefaultStorage()\n };\n\n if (!this.dappSettings.dappMetedata.url) {\n throw new DappMetadataError(\n 'Dapp url must be specified if window.location.origin is undefined.'\n );\n }\n\n this.bridgeConnectionStorage = new BridgeConnectionStorage(this.dappSettings.storage);\n }\n\n /**\n * Returns available wallets list.\n */\n public getWallets(): Promise<WalletInfo[]> {\n return this.walletsList.getWallets();\n }\n\n /**\n * Allows to subscribe to connection status changes and handle connection errors.\n * @param callback will be called after connections status changes with actual wallet or null.\n * @param errorsHandler (optional) will be called with some instance of TonConnectError when connect error is received.\n * @returns unsubscribe callback.\n */\n public onStatusChange(\n callback: (wallet: Wallet | null) => void,\n errorsHandler?: (err: TonConnectError) => void\n ): () => void {\n this.statusChangeSubscriptions.push(callback);\n if (errorsHandler) {\n this.statusChangeErrorSubscriptions.push(errorsHandler);\n }\n\n return () => {\n this.statusChangeSubscriptions = this.statusChangeSubscriptions.filter(\n item => item !== callback\n );\n if (errorsHandler) {\n this.statusChangeErrorSubscriptions = this.statusChangeErrorSubscriptions.filter(\n item => item !== errorsHandler\n );\n }\n };\n }\n\n /**\n * Generates universal link for an external wallet and subscribes to the wallet's bridge, or sends connect request to the injected wallet.\n * @param wallet wallet's bridge url and universal link for an external wallet or jsBridge key for the injected wallet.\n * @param request (optional) additional request to pass to the wallet while connect (currently only ton_proof is available).\n * @returns universal link if external wallet was passed or void for the injected wallet.\n */\n public connect<T extends WalletConnectionSource>(\n wallet: T,\n request?: ConnectAdditionalRequest\n ): T extends WalletConnectionSourceJS ? void : string;\n public connect(\n wallet: WalletConnectionSource,\n request?: ConnectAdditionalRequest\n ): void | string {\n if (this.connected) {\n throw new WalletAlreadyConnectedError();\n }\n\n this.provider?.closeConnection();\n this.provider = this.createProvider(wallet);\n\n return this.provider.connect(this.createConnectRequest(request));\n }\n\n /**\n * Try to restore existing session and reconnect to the corresponding wallet. Call it immediately when your app is loaded.\n */\n public async restoreConnection(): Promise<void> {\n const [bridgeConnectionType, embeddedWallet] = await Promise.all([\n this.bridgeConnectionStorage.storedConnectionType(),\n this.walletsList.getEmbeddedWallet()\n ]);\n\n switch (bridgeConnectionType) {\n case 'http':\n this.provider = await BridgeProvider.fromStorage(this.dappSettings.storage);\n break;\n case 'injected':\n this.provider = await InjectedProvider.fromStorage(this.dappSettings.storage);\n break;\n default:\n if (embeddedWallet) {\n this.provider = await this.createProvider(embeddedWallet);\n } else {\n return;\n }\n }\n\n this.provider.listen(this.walletEventsListener.bind(this));\n return this.provider.restoreConnection();\n }\n\n /**\n * Asks connected wallet to sign and send the transaction.\n * @param transaction transaction to send.\n * @returns signed transaction boc that allows you to find the transaction in the blockchain.\n * If user rejects transaction, method will throw the corresponding error.\n */\n public async sendTransaction(\n transaction: SendTransactionRequest\n ): Promise<SendTransactionResponse> {\n this.checkConnection();\n const response = await this.provider!.sendRequest(\n sendTransactionParser.convertToRpcRequest(transaction)\n );\n\n if (sendTransactionParser.isError(response)) {\n return sendTransactionParser.parseAndThrowError(response);\n }\n\n return sendTransactionParser.convertFromRpcResponse(\n response as SendTransactionRpcResponseSuccess\n );\n }\n\n /**\n * Disconnect form thw connected wallet and drop current session.\n */\n public async disconnect(): Promise<void> {\n if (!this.connected) {\n throw new WalletNotConnectedError();\n }\n await this.provider!.disconnect();\n this.onWalletDisconnected();\n }\n\n private createProvider(wallet: WalletConnectionSource): Provider {\n let provider: Provider;\n\n if (isWalletConnectionSourceJS(wallet)) {\n provider = new InjectedProvider(wallet.jsBridgeKey);\n } else {\n provider = new BridgeProvider(this.dappSettings.storage, wallet);\n }\n\n provider.listen(this.walletEventsListener.bind(this));\n return provider;\n }\n\n private walletEventsListener(e: WalletEvent): void {\n switch (e.event) {\n case 'connect':\n this.onWalletConnected(e.payload);\n break;\n case 'connect_error':\n this.onWalletConnectError(e.payload);\n break;\n case 'disconnect':\n this.onWalletDisconnected();\n }\n }\n\n private onWalletConnected(connectEvent: ConnectEventSuccess['payload']): void {\n const tonAccountItem: TonAddressItemReply | undefined = connectEvent.items.find(\n item => item.name === 'ton_addr'\n ) as TonAddressItemReply | undefined;\n\n const tonProofItem: TonProofItemReply | undefined = connectEvent.items.find(\n item => item.name === 'ton_proof'\n ) as TonProofItemReply | undefined;\n\n if (!tonAccountItem) {\n throw new TonConnectError('ton_addr connection item was not found');\n }\n\n const wallet: Wallet = {\n device: connectEvent.device,\n provider: this.provider!.type,\n account: {\n address: tonAccountItem.address,\n chain: tonAccountItem.network\n }\n };\n\n if (tonProofItem) {\n wallet.connectItems = {\n tonProof: tonProofItem\n };\n }\n\n this.wallet = wallet;\n }\n\n private onWalletConnectError(connectEventError: ConnectEventError['payload']): void {\n const error = connectErrorsParser.parseError(connectEventError);\n this.statusChangeErrorSubscriptions.forEach(errorsHandler => errorsHandler(error));\n }\n\n private onWalletDisconnected(): void {\n this.wallet = null;\n }\n\n private checkConnection(): void | never {\n if (!this.connected) {\n throw new WalletNotConnectedError();\n }\n }\n\n private createConnectRequest(request?: ConnectAdditionalRequest): ConnectRequest {\n const webPageMetadata = getWebPageMetadata();\n const metadata = mergeOptions(this.dappSettings.dappMetedata, webPageMetadata);\n\n const items: ConnectItem[] = [\n {\n name: 'ton_addr'\n }\n ];\n\n if (request) {\n items.push({\n name: 'ton_proof',\n payload: request.tonProof\n });\n }\n\n return {\n ...metadata,\n items\n };\n }\n}\n","import deepmerge from 'deepmerge';\n\nexport function mergeOptions<T>(options: Partial<T> | undefined | null, defaultOptions: T): T {\n if (!options) {\n return defaultOptions;\n }\n\n const overwriteMerge = (_: unknown[], sourceArray: unknown[], __: unknown): unknown[] =>\n sourceArray;\n\n return deepmerge(defaultOptions, options, { arrayMerge: overwriteMerge });\n}\n","export function removeUrlLastSlash(url: string): string {\n if (url.slice(-1) === '/') {\n return url.slice(0, -1);\n }\n\n return url;\n}\n\nexport function addPathToUrl(url: string, path: string): string {\n return removeUrlLastSlash(url) + '/' + path;\n}\n","import { DappMetadata } from 'src/models';\n\nexport function getWindow(): Window | undefined {\n if (typeof window === 'undefined') {\n return undefined;\n }\n\n return window;\n}\n\nexport function getDocument(): Document | undefined {\n if (typeof document === 'undefined') {\n return undefined;\n }\n\n return document;\n}\n\nexport function getWebPageMetadata(): DappMetadata {\n return {\n url: getWindow()?.location.origin || '',\n icon: getIconUrl(),\n name: getDocument()?.title || 'Unknown dapp'\n };\n}\n\nfunction getIconUrl(): string {\n const document = getDocument();\n if (!document) {\n return '';\n }\n\n const appleTouchIcons = document.querySelectorAll<HTMLLinkElement>(\n \"link[rel='apple-touch-icon']\"\n );\n\n if (appleTouchIcons?.length) {\n return getLargestSizeIconUrl(Array.from(appleTouchIcons));\n }\n\n const links = Array.from(document.querySelectorAll<HTMLLinkElement>(\"link[rel*='icon']\"));\n\n const pngLinks = links.filter(link => link.href.endsWith('.png'));\n\n if (pngLinks.length) {\n return getLargestSizeIconUrl(pngLinks);\n }\n\n const icoIcon = links.filter(link => link.href.endsWith('.ico'))[0];\n\n return icoIcon?.href || '';\n}\n\nfunction getLargestSizeIconUrl(links: HTMLLinkElement[]): string {\n const parsedLinks = links.map(parseIconLink);\n\n const maxSizeIcon = parsedLinks.sort((a, b) => (b.size > a.size ? 1 : -1))[0];\n\n return maxSizeIcon?.href || '';\n}\n\nfunction parseIconLink(link: HTMLLinkElement): { href: string; size: number } {\n if (!link.sizes?.value) {\n return {\n href: link.href,\n size: 0\n };\n }\n\n const sizes: number[] = Array.from(link.sizes)\n .map(size => {\n const groups = size.match(/(\\d+)x(\\d+)/i);\n if (!groups || !groups[1] || !groups[2]) {\n return undefined;\n }\n\n return parseInt(groups[1]) * parseInt(groups[2]);\n })\n .filter(item => !!item) as number[];\n\n if (sizes.length === 0) {\n return {\n href: link.href,\n size: 0\n };\n }\n\n return {\n href: link.href,\n size: Math.max.apply(Math, sizes)\n };\n}\n","import { FetchWalletsError } from 'src/errors/wallets-manager/fetch-wallets.error';\nimport {\n WalletInfoRemote,\n WalletInfoInjected,\n WalletInfo,\n WalletInfoDTO,\n isWalletInfoInjected\n} from 'src/models/wallet/wallet-info';\nimport { InjectedProvider } from 'src/provider/injected/injected-provider';\n\nexport class WalletsListManager {\n private walletsListCache: Promise<WalletInfo[]> | null = null;\n\n private readonly walletsListSource =\n 'https://raw.githubusercontent.com/ton-connect/wallets-list/main/wallets.json';\n\n public async getWallets(): Promise<WalletInfo[]> {\n if (!this.walletsListCache) {\n this.walletsListCache = this.fetchWalletsList();\n this.walletsListCache.catch(() => (this.walletsListCache = null));\n }\n\n return this.walletsListCache;\n }\n\n public async getEmbeddedWallet(): Promise<WalletInfoInjected | null> {\n const walletsList = await this.getWallets();\n const injectedWallets = walletsList.filter(isWalletInfoInjected);\n\n if (injectedWallets.length !== 1) {\n return null;\n }\n\n return injectedWallets[0]!.embedded ? injectedWallets[0]! : null;\n }\n\n private async fetchWalletsList(): Promise<WalletInfo[]> {\n try {\n const walletsResponse = await fetch(this.walletsListSource);\n const walletsList: WalletInfoDTO[] = await walletsResponse.json();\n\n if (\n !Array.isArray(walletsList) ||\n !walletsList.every(wallet => this.isCorrectWalletConfigDTO(wallet))\n ) {\n throw new FetchWalletsError('Wrong wallets list format');\n }\n\n return this.walletConfigDTOListToWalletConfigList(walletsList);\n } catch (e) {\n throw new FetchWalletsError(e);\n }\n }\n\n private walletConfigDTOListToWalletConfigList(walletConfigDTO: WalletInfoDTO[]): WalletInfo[] {\n return walletConfigDTO.map(walletConfigDTO => {\n const walletConfig: WalletInfo = {\n name: walletConfigDTO.name,\n imageUrl: walletConfigDTO.image,\n aboutUrl: walletConfigDTO.about_url,\n tondns: walletConfigDTO.tondns\n } as WalletInfo;\n\n if ('bridge_url' in walletConfigDTO) {\n (walletConfig as WalletInfoRemote).bridgeUrl = walletConfigDTO.bridge_url;\n (walletConfig as WalletInfoRemote).universalLink = walletConfigDTO.universal_url;\n }\n\n if ('js_bridge_key' in walletConfigDTO) {\n const jsBridgeKey = walletConfigDTO.js_bridge_key;\n (walletConfig as WalletInfoInjected).jsBridgeKey = jsBridgeKey;\n (walletConfig as WalletInfoInjected).injected =\n InjectedProvider.isWalletInjected(jsBridgeKey);\n (walletConfig as WalletInfoInjected).embedded =\n InjectedProvider.isInsideWalletBrowser(jsBridgeKey);\n }\n\n return walletConfig;\n });\n }\n\n private isCorrectWalletConfigDTO(value: unknown): value is WalletInfoDTO {\n if (!value || !(typeof value === 'object')) {\n return false;\n }\n\n const containsName = 'name' in value;\n const containsImage = 'image' in value;\n const containsAbout = 'about_url' in value;\n\n if (!containsName || !containsImage || !containsAbout) {\n return false;\n }\n\n const containsUniversalUrl = 'universal_url' in value;\n const containsHttpBridge = 'bridge_url' in value;\n const containsJsBridge = 'js_bridge_key' in value;\n\n return (containsHttpBridge && containsUniversalUrl) || containsJsBridge;\n }\n}\n","// Written in 2014-2016 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n(function(root, f) {\n 'use strict';\n if (typeof module !== 'undefined' && module.exports) module.exports = f();\n else if (root.nacl) root.nacl.util = f();\n else {\n root.nacl = {};\n root.nacl.util = f();\n }\n}(this, function() {\n 'use strict';\n\n var util = {};\n\n function validateBase64(s) {\n if (!(/^(?:[A-Za-z0-9+\\/]{2}[A-Za-z0-9+\\/]{2})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/.test(s))) {\n throw new TypeError('invalid encoding');\n }\n }\n\n util.decodeUTF8 = function(s) {\n if (typeof s !== 'string') throw new TypeError('expected string');\n var i, d = unescape(encodeURIComponent(s)), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n util.encodeUTF8 = function(arr) {\n var i, s = [];\n for (i = 0; i < arr.length; i++) s.push(String.fromCharCode(arr[i]));\n return decodeURIComponent(escape(s.join('')));\n };\n\n if (typeof atob === 'undefined') {\n // Node.js\n\n if (typeof Buffer.from !== 'undefined') {\n // Node v6 and later\n util.encodeBase64 = function (arr) { // v6 and later\n return Buffer.from(arr).toString('base64');\n };\n\n util.decodeBase64 = function (s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(Buffer.from(s, 'base64'), 0));\n };\n\n } else {\n // Node earlier than v6\n util.encodeBase64 = function (arr) { // v6 and later\n return (new Buffer(arr)).toString('base64');\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(new Buffer(s, 'base64'), 0));\n };\n }\n\n } else {\n // Browsers\n\n util.encodeBase64 = function(arr) {\n var i, s = [], len = arr.length;\n for (i = 0; i < len; i++) s.push(String.fromCharCode(arr[i]));\n return btoa(s.join(''));\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n var i, d = atob(s), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n }\n\n return util;\n\n}));\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionCrypto = void 0;\nvar session_crypto_1 = require(\"./session-crypto\");\nObject.defineProperty(exports, \"SessionCrypto\", { enumerable: true, get: function () { return session_crypto_1.SessionCrypto; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionCrypto = void 0;\nconst utils_1 = require(\"../utils\");\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nif ((0, utils_1.isNode)()) {\n try {\n eval(\"global.crypto = require('crypto').webcrypto\");\n }\n catch (err) { }\n}\nclass SessionCrypto {\n constructor(keyPair) {\n this.nonceLength = 24;\n this.keyPair = keyPair ? this.createKeypairFromString(keyPair) : this.createKeypair();\n this.sessionId = (0, utils_1.toHexString)(this.keyPair.publicKey);\n }\n createKeypair() {\n return tweetnacl_1.default.box.keyPair();\n }\n createKeypairFromString(keyPair) {\n return {\n publicKey: (0, utils_1.hexToByteArray)(keyPair.publicKey),\n secretKey: (0, utils_1.hexToByteArray)(keyPair.secretKey)\n };\n }\n createNonce() {\n const buffer = new Uint8Array(this.nonceLength);\n return crypto.getRandomValues(buffer);\n }\n encrypt(message, receiverPublicKey) {\n const encodedMessage = new TextEncoder().encode(message);\n const nonce = this.createNonce();\n const encrypted = tweetnacl_1.default.box(encodedMessage, nonce, receiverPublicKey, this.keyPair.secretKey);\n return (0, utils_1.concatUint8Arrays)(nonce, encrypted);\n }\n decrypt(message, senderPublicKey) {\n const [nonce, internalMessage] = (0, utils_1.splitToUint8Arrays)(message, this.nonceLength);\n const decrypted = tweetnacl_1.default.box.open(internalMessage, nonce, senderPublicKey, this.keyPair.secretKey);\n if (!decrypted) {\n throw new Error('Decryption error');\n }\n return new TextDecoder().decode(decrypted);\n }\n stringifyKeypair() {\n return {\n publicKey: (0, utils_1.toHexString)(this.keyPair.publicKey),\n secretKey: (0, utils_1.toHexString)(this.keyPair.secretKey)\n };\n }\n}\nexports.SessionCrypto = SessionCrypto;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./models\"), exports);\n__exportStar(require(\"./crypto\"), exports);\n__exportStar(require(\"./utils\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHAIN = void 0;\nvar CHAIN;\n(function (CHAIN) {\n CHAIN[\"MAINNET\"] = \"-239\";\n CHAIN[\"TESTNET\"] = \"-3\";\n})(CHAIN = exports.CHAIN || (exports.CHAIN = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./request\"), exports);\n__exportStar(require(\"./connect-request\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHAIN = void 0;\n__exportStar(require(\"./app-message\"), exports);\n__exportStar(require(\"./wallet-message\"), exports);\nvar CHAIN_1 = require(\"./CHAIN\");\nObject.defineProperty(exports, \"CHAIN\", { enumerable: true, get: function () { return CHAIN_1.CHAIN; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./wallet-event\"), exports);\n__exportStar(require(\"./wallet-response\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CONNECT_ITEM_ERROR_CODES = exports.CONNECT_EVENT_ERROR_CODES = void 0;\nvar CONNECT_EVENT_ERROR_CODES;\n(function (CONNECT_EVENT_ERROR_CODES) {\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"UNKNOWN_ERROR\"] = 0] = \"UNKNOWN_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"BAD_REQUEST_ERROR\"] = 1] = \"BAD_REQUEST_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"UNKNOWN_APP_ERROR\"] = 100] = \"UNKNOWN_APP_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"USER_REJECTS_ERROR\"] = 300] = \"USER_REJECTS_ERROR\";\n CONNECT_EVENT_ERROR_CODES[CONNECT_EVENT_ERROR_CODES[\"METHOD_NOT_SUPPORTED\"] = 400] = \"METHOD_NOT_SUPPORTED\";\n})(CONNECT_EVENT_ERROR_CODES = exports.CONNECT_EVENT_ERROR_CODES || (exports.CONNECT_EVENT_ERROR_CODES = {}));\nvar CONNECT_ITEM_ERROR_CODES;\n(function (CONNECT_ITEM_ERROR_CODES) {\n CONNECT_ITEM_ERROR_CODES[CONNECT_ITEM_ERROR_CODES[\"UNKNOWN_ERROR\"] = 0] = \"UNKNOWN_ERROR\";\n CONNECT_ITEM_ERROR_CODES[CONNECT_ITEM_ERROR_CODES[\"METHOD_NOT_SUPPORTED\"] = 400] = \"METHOD_NOT_SUPPORTED\";\n})(CONNECT_ITEM_ERROR_CODES = exports.CONNECT_ITEM_ERROR_CODES || (exports.CONNECT_ITEM_ERROR_CODES = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CONNECT_EVENT_ERROR_CODES = void 0;\nvar connect_event_1 = require(\"./connect-event\");\nObject.defineProperty(exports, \"CONNECT_EVENT_ERROR_CODES\", { enumerable: true, get: function () { return connect_event_1.CONNECT_EVENT_ERROR_CODES; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SEND_TRANSACTION_ERROR_CODES = void 0;\nvar send_transaction_rpc_response_1 = require(\"./send-transaction-rpc-response\");\nObject.defineProperty(exports, \"SEND_TRANSACTION_ERROR_CODES\", { enumerable: true, get: function () { return send_transaction_rpc_response_1.SEND_TRANSACTION_ERROR_CODES; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SEND_TRANSACTION_ERROR_CODES = void 0;\nvar SEND_TRANSACTION_ERROR_CODES;\n(function (SEND_TRANSACTION_ERROR_CODES) {\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"UNKNOWN_ERROR\"] = 0] = \"UNKNOWN_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"BAD_REQUEST_ERROR\"] = 1] = \"BAD_REQUEST_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"UNKNOWN_APP_ERROR\"] = 100] = \"UNKNOWN_APP_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"USER_REJECTS_ERROR\"] = 300] = \"USER_REJECTS_ERROR\";\n SEND_TRANSACTION_ERROR_CODES[SEND_TRANSACTION_ERROR_CODES[\"METHOD_NOT_SUPPORTED\"] = 400] = \"METHOD_NOT_SUPPORTED\";\n})(SEND_TRANSACTION_ERROR_CODES = exports.SEND_TRANSACTION_ERROR_CODES || (exports.SEND_TRANSACTION_ERROR_CODES = {}));\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Base64 = void 0;\nconst tweetnacl_util_1 = __importDefault(require(\"tweetnacl-util\"));\nfunction encodeUint8Array(value, urlSafe) {\n const encoded = tweetnacl_util_1.default.encodeBase64(value);\n if (!urlSafe) {\n return encoded;\n }\n return encodeURIComponent(encoded);\n}\nfunction decodeToUint8Array(value, urlSafe) {\n if (urlSafe) {\n value = decodeURIComponent(value);\n }\n return tweetnacl_util_1.default.decodeBase64(value);\n}\nfunction encode(value, urlSafe = false) {\n let uint8Array;\n if (value instanceof Uint8Array) {\n uint8Array = value;\n }\n else {\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n uint8Array = tweetnacl_util_1.default.decodeUTF8(value);\n }\n return encodeUint8Array(uint8Array, urlSafe);\n}\nfunction decode(value, urlSafe = false) {\n const decodedUint8Array = decodeToUint8Array(value, urlSafe);\n return {\n toString() {\n return tweetnacl_util_1.default.encodeUTF8(decodedUint8Array);\n },\n toObject() {\n try {\n return JSON.parse(tweetnacl_util_1.default.encodeUTF8(decodedUint8Array));\n }\n catch (e) {\n return null;\n }\n },\n toUint8Array() {\n return decodedUint8Array;\n }\n };\n}\nexports.Base64 = {\n encode,\n decode\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hexToByteArray = exports.toHexString = exports.splitToUint8Arrays = exports.concatUint8Arrays = void 0;\nfunction concatUint8Arrays(buffer1, buffer2) {\n const mergedArray = new Uint8Array(buffer1.length + buffer2.length);\n mergedArray.set(buffer1);\n mergedArray.set(buffer2, buffer1.length);\n return mergedArray;\n}\nexports.concatUint8Arrays = concatUint8Arrays;\nfunction splitToUint8Arrays(array, index) {\n if (index >= array.length) {\n throw new Error('Index is out of buffer');\n }\n const subArray1 = array.slice(0, index);\n const subArray2 = array.slice(index);\n return [subArray1, subArray2];\n}\nexports.splitToUint8Arrays = splitToUint8Arrays;\nfunction toHexString(byteArray) {\n let hexString = '';\n byteArray.forEach(byte => {\n hexString += ('0' + (byte & 0xff).toString(16)).slice(-2);\n });\n return hexString;\n}\nexports.toHexString = toHexString;\nfunction hexToByteArray(hexString) {\n if (hexString.length % 2 !== 0) {\n throw new Error(`Cannot convert ${hexString} to bytesArray`);\n }\n const result = new Uint8Array(hexString.length / 2);\n for (let i = 0; i < hexString.length; i += 2) {\n result[i / 2] = parseInt(hexString.slice(i, i + 2), 16);\n }\n return result;\n}\nexports.hexToByteArray = hexToByteArray;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNode = exports.hexToByteArray = exports.toHexString = exports.splitToUint8Arrays = exports.concatUint8Arrays = exports.Base64 = void 0;\nvar base64_1 = require(\"./base64\");\nObject.defineProperty(exports, \"Base64\", { enumerable: true, get: function () { return base64_1.Base64; } });\nvar binary_1 = require(\"./binary\");\nObject.defineProperty(exports, \"concatUint8Arrays\", { enumerable: true, get: function () { return binary_1.concatUint8Arrays; } });\nObject.defineProperty(exports, \"splitToUint8Arrays\", { enumerable: true, get: function () { return binary_1.splitToUint8Arrays; } });\nObject.defineProperty(exports, \"toHexString\", { enumerable: true, get: function () { return binary_1.toHexString; } });\nObject.defineProperty(exports, \"hexToByteArray\", { enumerable: true, get: function () { return binary_1.hexToByteArray; } });\nvar web_api_1 = require(\"./web-api\");\nObject.defineProperty(exports, \"isNode\", { enumerable: true, get: function () { return web_api_1.isNode; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNode = void 0;\nfunction isNode() {\n return (typeof process !== 'undefined' && process.versions != null && process.versions.node != null);\n}\nexports.isNode = isNode;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(4027);\n"],"names":["isMergeableObject","value","isNonNullObject","stringValue","Object","prototype","toString","call","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","val","Array","isArray","defaultArrayMerge","target","source","concat","map","element","getKeys","keys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","destination","forEach","key","hasOwnProperty","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","Error","reduce","prev","next","deepmerge_1","module","exports","DappMetadataError","TonConnectError","constructor","args","super","setPrototypeOf","this","UnknownError","UserRejectsError","BadRequestError","UnknownAppError","LocalstorageNotFoundError","WalletAlreadyConnectedError","WalletNotConnectedError","WalletNotInjectedError","FetchWalletsError","TonConnect","CHAIN","isWalletInfoInjected","connectEventErrorsCodes","CONNECT_EVENT_ERROR_CODES","UNKNOWN_ERROR","USER_REJECTS_ERROR","BAD_REQUEST_ERROR","UNKNOWN_APP_ERROR","connectErrorsParser","parseError","error","ErrorConstructor","code","message","isError","response","sendTransactionErrors","SEND_TRANSACTION_ERROR_CODES","SendTransactionParser","RpcParser","convertToRpcRequest","request","method","params","JSON","stringify","parseAndThrowError","convertFromRpcResponse","rpcResponse","boc","result","sendTransactionParser","isNode","eval","err","console","BridgeGateway","storage","bridgeUrl","sessionId","listener","errorsListener","ssePath","postPath","defaultTtl","isClosed","bridgeGatewayStorage","HttpBridgeGatewayStorage","registerSession","url","URL","addPathToUrl","searchParams","append","lastEventId","getLastEventId","eventSource","EventSource","Promise","resolve","reject","onerror","onopen","errorsHandler","bind","onmessage","messagesHandler","send","receiver","ttl","fetch","body","Base64","encode","close","e","storeLastEventId","bridgeIncomingMessage","parse","data","BridgeProvider","walletConnectionSource","type","pendingRequests","Map","nextRequestId","session","bridge","listeners","connectionStorage","BridgeConnectionStorage","static","bridgeConnectionStorage","connection","getHttpConnection","connect","sessionCrypto","SessionCrypto","gatewayListener","gatewayErrorsListener","generateUniversalLink","restoreConnection","storedConnection","connectEvent","sendRequest","id","encodedRequest","encrypt","hexToByteArray","walletPublicKey","catch","set","closeConnection","disconnect","removeBridgeAndSession","listen","callback","push","walletMessage","decrypt","decode","toUint8Array","from","get","delete","event","updateSession","tonAddrItem","payload","items","find","item","name","connectEventToSave","storeConnection","removeConnection","universalLink","protocol","version","InjectedProvider","injectedWalletKey","unsubscribeCallback","listenSubscriptions","window","isWindowContainsWallet","injectedWallet","tonconnect","getInjectedConnection","jsBridgeKey","isWalletBrowser","auto","then","makeSubscriptions","connectEventError","closeAllListeners","eventsCallback","getWindow","storeKey","setItem","rawSession","sessionKeyPair","stringifyKeypair","rawConnection","removeItem","getConnection","stored","getItem","storedConnectionType","localStorage","removeLastEventId","walletsList","WalletsListManager","_wallet","provider","statusChangeSubscriptions","statusChangeErrorSubscriptions","dappSettings","dappMetedata","mergeOptions","getWebPageMetadata","DefaultStorage","connected","account","wallet","getWallets","onStatusChange","createProvider","createConnectRequest","bridgeConnectionType","embeddedWallet","getEmbeddedWallet","fromStorage","walletEventsListener","sendTransaction","transaction","checkConnection","onWalletDisconnected","isWalletConnectionSourceJS","onWalletConnected","onWalletConnectError","tonAccountItem","tonProofItem","device","address","chain","network","connectItems","tonProof","webPageMetadata","metadata","defaultOptions","sourceArray","__","removeUrlLastSlash","slice","path","getDocument","document","getIconUrl","appleTouchIcons","querySelectorAll","length","getLargestSizeIconUrl","links","pngLinks","link","href","endsWith","icoIcon","maxSizeIcon","parseIconLink","sort","a","b","size","sizes","groups","match","parseInt","Math","max","apply","location","origin","icon","title","walletsListCache","walletsListSource","fetchWalletsList","injectedWallets","embedded","walletsResponse","json","every","isCorrectWalletConfigDTO","walletConfigDTOListToWalletConfigList","walletConfigDTO","walletConfig","imageUrl","image","aboutUrl","about_url","tondns","bridge_url","universal_url","js_bridge_key","injected","isWalletInjected","isInsideWalletBrowser","root","f","nacl","util","validateBase64","s","test","TypeError","decodeUTF8","i","d","unescape","encodeURIComponent","Uint8Array","charCodeAt","encodeUTF8","arr","String","fromCharCode","decodeURIComponent","escape","join","atob","Buffer","encodeBase64","decodeBase64","len","btoa","gf","init","r","Float64Array","randombytes","_0","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","l","vn","xi","y","yi","n","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","out","inp","k","c","o","p","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","m","mpos","z","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","buffer","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","update","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","car25519","v","floor","sel25519","q","t","pack25519","j","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","x32","subarray","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","bytes","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","g","want","crypto_box_afternm","crypto_box_open_afternm","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","add","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","crypto_sign","sm","smlen","crypto_sign_open","chk","num","den","den2","den4","den6","unpackneg","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","arguments","cleanup","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_secretbox_BOXZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","msg","nonce","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","publicKey","secretKey","before","checkBoxLengths","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","sign","signedMsg","tmp","mlen","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","crypto","self","msCrypto","getRandomValues","min","defineProperty","session_crypto_1","enumerable","__importDefault","mod","__esModule","utils_1","tweetnacl_1","createKeypairFromString","createKeypair","toHexString","default","createNonce","receiverPublicKey","encodedMessage","TextEncoder","encrypted","concatUint8Arrays","senderPublicKey","internalMessage","splitToUint8Arrays","decrypted","TextDecoder","__createBinding","create","k2","undefined","desc","getOwnPropertyDescriptor","writable","configurable","__exportStar","CHAIN_1","CONNECT_ITEM_ERROR_CODES","connect_event_1","send_transaction_rpc_response_1","tweetnacl_util_1","urlSafe","uint8Array","encoded","encodeUint8Array","decodedUint8Array","decodeToUint8Array","toObject","buffer1","buffer2","mergedArray","index","byteArray","hexString","byte","base64_1","binary_1","web_api_1","process","versions","node","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__webpack_exports__"],"sourceRoot":""}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonconnect/sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"scripts": {
|
|
5
|
-
"build": "npx rimraf lib && ttsc",
|
|
6
|
-
"build:production": "npx rimraf lib && ttsc --sourceMap false"
|
|
5
|
+
"build": "npx rimraf lib && ttsc && npx rimraf dist && webpack --mode development",
|
|
6
|
+
"build:production": "npx rimraf lib && ttsc --sourceMap false && npx rimraf dist && webpack --mode production"
|
|
7
7
|
},
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -28,10 +28,11 @@
|
|
|
28
28
|
"tweetnacl": "^1.0.3",
|
|
29
29
|
"eventsource": "^2.0.2",
|
|
30
30
|
"node-fetch": "^2.6.7",
|
|
31
|
-
"@tonconnect/protocol": "^0.0.
|
|
31
|
+
"@tonconnect/protocol": "^0.0.20"
|
|
32
32
|
},
|
|
33
33
|
"files": [
|
|
34
|
-
"lib"
|
|
34
|
+
"lib",
|
|
35
|
+
"dist"
|
|
35
36
|
],
|
|
36
37
|
"main": "./lib/index.js",
|
|
37
38
|
"types": "./lib/index.d.ts",
|
|
@@ -41,7 +42,11 @@
|
|
|
41
42
|
"devDependencies": {
|
|
42
43
|
"ts-loader": "^9.4.1",
|
|
43
44
|
"ttypescript": "^1.5.13",
|
|
44
|
-
"typescript-transform-paths": "^3.3.1"
|
|
45
|
+
"typescript-transform-paths": "^3.3.1",
|
|
46
|
+
"webpack": "^5.75.0",
|
|
47
|
+
"webpack-cli": "^5.0.0",
|
|
48
|
+
"webpack-bundle-analyzer": "^4.7.0",
|
|
49
|
+
"tsconfig-paths-webpack-plugin": "^3.5.2"
|
|
45
50
|
},
|
|
46
51
|
"typedoc": {
|
|
47
52
|
"entryPoint": "./src/index.ts"
|