0&&p>0){for(s=p%o||o,l=h.substr(0,s);s0&&(l+=d+h.slice(s)),b&&(l="-"+l)}a=u?l+(f.decimalSeparator||"")+((c=+f.fractionGroupSize)?u.replace(new RegExp("\\d{"+c+"}\\B","g"),"$&"+(f.fractionGroupSeparator||"")):u):l}return(f.prefix||"")+a+(f.suffix||"")},I.toFraction=function(e){var t,a,n,s,i,o,d,u,b,h,m,g,y=this,w=y.c;if(null!=e&&(!(d=new V(e)).isInteger()&&(d.c||1!==d.s)||d.lt(A)))throw Error(r+"Argument "+(d.isInteger()?"out of range: ":"not an integer: ")+K(d));if(!w)return new V(y);for(t=new V(A),b=a=new V(A),n=u=new V(A),g=p(w),i=t.e=g.length-y.e-1,t.c[0]=l[(o=i%c)<0?c+o:o],e=!e||d.comparedTo(t)>0?i>0?t:b:d,o=D,D=1/0,d=new V(g),u.c[0]=0;h=f(d,t,0,1),1!=(s=a.plus(h.times(n))).comparedTo(e);)a=n,n=s,b=u.plus(h.times(s=b)),u=s,t=d.minus(h.times(s=t)),d=s;return s=f(e.minus(a),n,0,1),u=u.plus(s.times(b)),a=a.plus(s.times(n)),u.s=b.s=y.s,m=f(b,n,i*=2,N).minus(y).abs().comparedTo(f(u,a,i,N).minus(y).abs())<1?[b,n]:[u,a],D=o,m},I.toNumber=function(){return+K(this)},I.toPrecision=function(e,t){return null!=e&&g(e,1,b),W(this,e,t,2)},I.toString=function(e){var t,f=this,a=f.s,n=f.e;return null===n?a?(t="Infinity",a<0&&(t="-"+t)):t="NaN":(null==e?t=n<=M||n>=R?w(p(f.c),n):v(p(f.c),n,"0"):10===e&&U?t=v(p((f=G(new V(f),x+n+1,N)).c),f.e,"0"):(g(e,2,H.length,"Base"),t=k(v(p(f.c),n,"0"),10,e,a,!0)),a<0&&f.c[0]&&(t="-"+t)),t},I.valueOf=I.toJSON=function(){return K(this)},I._isBigNumber=!0,null!=t&&V.set(t),V}(),f.default=f.BigNumber=f,"function"==typeof define&&define.amd?define((function(){return f})):void 0!==t&&t.exports?t.exports=f:(e||(e="undefined"!=typeof self&&self?self:window),e.BigNumber=f)}(this)}}},{package:"@metamask/smart-transactions-controller>bignumber.js",file:"node_modules/@metamask/smart-transactions-controller/node_modules/bignumber.js/bignumber.js"}],[2631,{},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){t.exports={name:"@metamask/smart-transactions-controller",version:"16.3.1",description:"Improves success rates for swaps by trialing transactions privately and finding minimum fees",repository:{type:"git",url:"https://github.com/MetaMask/smart-transactions-controller.git"},license:"SEE LICENSE IN LICENSE",main:"dist/index.js",types:"dist/index.d.ts",files:["dist/"],scripts:{build:"tsc --project tsconfig.build.json","build:clean":"rm -rf dist && yarn build","build:link":"yarn build && cd dist && yarn link && rm -rf node_modules && cd ..",lint:"yarn lint:eslint && yarn lint:misc --check && yarn lint:changelog","lint:changelog":"auto-changelog validate --prettier","lint:eslint":"eslint . --cache --ext js,ts","lint:fix":"yarn lint:eslint --fix && yarn lint:misc --write && yarn lint:changelog","lint:misc":"prettier '**/*.json' '**/*.md' '**/*.yml' '!.yarnrc.yml' --ignore-path .gitignore --no-error-on-unmatched-pattern",prepack:"./scripts/prepack.sh",test:"jest","test:watch":"jest --watchAll"},dependencies:{"@babel/runtime":"^7.24.1","@ethereumjs/tx":"^5.2.1","@ethereumjs/util":"^9.0.2","@ethersproject/bytes":"^5.7.0","@metamask/base-controller":"^7.0.1","@metamask/controller-utils":"^11.0.0","@metamask/eth-json-rpc-provider":"^4.1.6","@metamask/eth-query":"^4.0.0","@metamask/polling-controller":"^12.0.0","bignumber.js":"^9.0.1","fast-json-patch":"^3.1.0",lodash:"^4.17.21"},devDependencies:{"@lavamoat/allow-scripts":"^3.2.1","@lavamoat/preinstall-always-fail":"^2.1.0","@metamask/auto-changelog":"^3.1.0","@metamask/eslint-config":"^12.2.0","@metamask/eslint-config-jest":"^12.1.0","@metamask/eslint-config-nodejs":"^12.1.0","@metamask/eslint-config-typescript":"^12.1.0","@metamask/gas-fee-controller":"^22.0.0","@metamask/json-rpc-engine":"^10.0.1","@metamask/network-controller":"^22.0.0","@metamask/transaction-controller":"^42.0.0","@types/jest":"^26.0.24","@types/lodash":"^4.14.194","@types/node":"^18.19.17","@types/sinon":"^9.0.10","@typescript-eslint/eslint-plugin":"^5.33.0","@typescript-eslint/parser":"^5.33.0",eslint:"^8.48.0","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"~2.26.0","eslint-plugin-jest":"^27.1.5","eslint-plugin-jsdoc":"^39.2.9","eslint-plugin-n":"^15.7.0","eslint-plugin-prettier":"^4.2.1","eslint-plugin-promise":"^6.1.1","isomorphic-fetch":"^3.0.0",jest:"^29.7.0",nock:"^14.0.0-beta.7",prettier:"^2.8.8","prettier-plugin-packagejson":"^2.4.3",sinon:"^9.2.4","ts-jest":"^29.1.4",typescript:"~4.8.4"},peerDependencies:{"@metamask/network-controller":"^22.0.0","@metamask/transaction-controller":"^42.0.0"},peerDependenciesMeta:{"@metamask/accounts-controller":{optional:!0},"@metamask/approval-controller":{optional:!0}},packageManager:"yarn@3.2.1",engines:{node:"^18.18 || >=20"},publishConfig:{access:"public",registry:"https://registry.npmjs.org/"},lavamoat:{allowScripts:{"@lavamoat/preinstall-always-fail":!1,"@metamask/controller-utils>ethereumjs-util>ethereum-cryptography>keccak":!1,"@metamask/controller-utils>ethereumjs-util>ethereum-cryptography>secp256k1":!1,"@metamask/controller-utils>babel-runtime>core-js":!1,"@metamask/transaction-controller>@metamask/accounts-controller>@metamask/keyring-controller>ethereumjs-wallet>ethereum-cryptography>keccak":!1,"@metamask/transaction-controller>@metamask/accounts-controller>@metamask/keyring-controller>ethereumjs-wallet>ethereum-cryptography>secp256k1":!1}}}}}},{package:"@metamask/smart-transactions-controller",file:"node_modules/@metamask/smart-transactions-controller/package.json"}],[2632,{"../index.cjs":2635,"../snaps/Timer.cjs":2656,"@metamask/base-controller":1383,"@metamask/snaps-rpc-methods":2700,"@metamask/snaps-utils":2850,"@metamask/utils":2950,immer:4649,luxon:4865,nanoid:4959},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s,r,i,o,c,d,l,u,b,h=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},p=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.CronjobController=f.DAILY_TIMEOUT=void 0;const m=e("@metamask/base-controller"),g=e("@metamask/snaps-rpc-methods"),y=e("@metamask/snaps-utils"),w=e("@metamask/utils"),v=e("immer"),k=e("luxon"),S=e("nanoid"),_=e("../index.cjs"),T=e("../snaps/Timer.cjs");f.DAILY_TIMEOUT=(0,w.inMilliseconds)(24,w.Duration.Hour);const C="CronjobController";class E extends m.BaseController{constructor({messenger:e,state:t}){super({messenger:e,metadata:{jobs:{persist:!0,anonymous:!1},events:{persist:!0,anonymous:!1}},name:C,state:{jobs:{},events:{},...t}}),a.add(this),n.set(this,void 0),s.set(this,void 0),r.set(this,void 0),h(this,s,new Map,"f"),h(this,r,new Map,"f"),this._handleSnapRegisterEvent=this._handleSnapRegisterEvent.bind(this),this._handleSnapUnregisterEvent=this._handleSnapUnregisterEvent.bind(this),this._handleEventSnapUpdated=this._handleEventSnapUpdated.bind(this),this._handleSnapDisabledEvent=this._handleSnapDisabledEvent.bind(this),this._handleSnapEnabledEvent=this._handleSnapEnabledEvent.bind(this),this.messagingSystem.subscribe("SnapController:snapInstalled",this._handleSnapRegisterEvent),this.messagingSystem.subscribe("SnapController:snapUninstalled",this._handleSnapUnregisterEvent),this.messagingSystem.subscribe("SnapController:snapEnabled",this._handleSnapEnabledEvent),this.messagingSystem.subscribe("SnapController:snapDisabled",this._handleSnapDisabledEvent),this.messagingSystem.subscribe("SnapController:snapUpdated",this._handleEventSnapUpdated),this.messagingSystem.registerActionHandler(`${C}:scheduleBackgroundEvent`,((...e)=>this.scheduleBackgroundEvent(...e))),this.messagingSystem.registerActionHandler(`${C}:cancelBackgroundEvent`,((...e)=>this.cancelBackgroundEvent(...e))),this.messagingSystem.registerActionHandler(`${C}:getBackgroundEvents`,((...e)=>this.getBackgroundEvents(...e))),this.dailyCheckIn().catch((e=>{(0,y.logError)(e)})),p(this,a,"m",b).call(this,Object.values(this.state.events))}register(e){const t=p(this,a,"m",o).call(this,e);t?.forEach((e=>p(this,a,"m",c).call(this,e)))}scheduleBackgroundEvent(e){const t=k.DateTime.fromJSDate(new Date).toUTC().startOf("second").toISO({suppressMilliseconds:!0});(0,w.assert)(t);const f={...e,id:(0,S.nanoid)(),scheduledAt:t};return p(this,a,"m",l).call(this,f),this.update((e=>{e.events[f.id]=(0,v.castDraft)(f)})),f.id}cancelBackgroundEvent(e,t){(0,w.assert)(this.state.events[t],`A background event with the id of "${t}" does not exist.`),(0,w.assert)(this.state.events[t].snapId===e,"Only the origin that scheduled this event can cancel it.");const f=p(this,s,"f").get(t);f?.cancel(),p(this,s,"f").delete(t),p(this,r,"f").delete(t),this.update((e=>{delete e.events[t]}))}getBackgroundEvents(e){return Object.values(this.state.events).filter((t=>t.snapId===e))}unregister(e,t=!1){const f=[...p(this,r,"f").entries()].filter((([t,f])=>f===e));if(f.length){const e=[];f.forEach((([f])=>{const a=p(this,s,"f").get(f);a&&(a.cancel(),p(this,s,"f").delete(f),p(this,r,"f").delete(f),!t&&this.state.events[f]&&e.push(f))})),e.length>0&&this.update((t=>{e.forEach((e=>{delete t.events[e]}))}))}}async dailyCheckIn(){const e=p(this,a,"m",i).call(this);for(const t of e){const e=(0,y.parseCronExpression)(t.expression),f=this.state.jobs[t.id]?.lastRun;f!==undefined&&e.hasPrev()&&e.prev().getTime()>f&&await p(this,a,"m",d).call(this,t),p(this,a,"m",c).call(this,t)}h(this,n,new T.Timer(f.DAILY_TIMEOUT),"f"),p(this,n,"f").start((()=>{this.dailyCheckIn().catch((e=>{(0,y.logError)(e)}))}))}destroy(){super.destroy(),this.messagingSystem.unsubscribe("SnapController:snapInstalled",this._handleSnapRegisterEvent),this.messagingSystem.unsubscribe("SnapController:snapUninstalled",this._handleSnapUnregisterEvent),this.messagingSystem.unsubscribe("SnapController:snapEnabled",this._handleSnapEnabledEvent),this.messagingSystem.unsubscribe("SnapController:snapDisabled",this._handleSnapDisabledEvent),this.messagingSystem.unsubscribe("SnapController:snapUpdated",this._handleEventSnapUpdated),p(this,r,"f").forEach((e=>this.unregister(e)))}_handleSnapRegisterEvent(e){this.register(e.id)}_handleSnapEnabledEvent(e){const t=this.getBackgroundEvents(e.id);p(this,a,"m",b).call(this,t),this.register(e.id)}_handleSnapUnregisterEvent(e){this.unregister(e.id)}_handleSnapDisabledEvent(e){this.unregister(e.id,!0)}_handleEventSnapUpdated(e){this.unregister(e.id),this.register(e.id)}}f.CronjobController=E,n=new WeakMap,s=new WeakMap,r=new WeakMap,a=new WeakSet,i=function(){const e=this.messagingSystem.call("SnapController:getAll");return(0,_.getRunnableSnaps)(e).map((e=>p(this,a,"m",o).call(this,e.id))).flat().filter((e=>e!==undefined))},o=function(e){const t=this.messagingSystem.call("PermissionController:getPermissions",e),f=t?.[g.SnapEndowments.Cronjob],a=(0,g.getCronjobCaveatJobs)(f);return a?.map(((t,f)=>({...t,id:`${e}-${f}`,snapId:e})))},c=function e(t){if(p(this,s,"f").has(t.id))return;const n=(0,y.parseCronExpression)(t.expression).next(),i=new Date,o=n.getTime()-i.getTime();if(o>f.DAILY_TIMEOUT)return;const c=new T.Timer(o);c.start((()=>{p(this,a,"m",d).call(this,t).catch((e=>{(0,y.logError)(e)})),p(this,s,"f").delete(t.id),p(this,a,"m",e).call(this,t)})),this.state.jobs[t.id]?.lastRun||p(this,a,"m",u).call(this,t.id,0),p(this,s,"f").set(t.id,c),p(this,r,"f").set(t.id,t.snapId)},d=async function(e){p(this,a,"m",u).call(this,e.id,Date.now()),await this.messagingSystem.call("SnapController:handleRequest",{snapId:e.snapId,origin:"",handler:y.HandlerType.OnCronjob,request:e.request})},l=function(e){const t=new Date(e.date),f=new Date,a=t.getTime()-f.getTime();if(a<=0)throw new Error("Cannot schedule an event in the past.");const n=new T.Timer(a);n.start((()=>{this.messagingSystem.call("SnapController:handleRequest",{snapId:e.snapId,origin:"",handler:y.HandlerType.OnCronjob,request:e.request}).catch((e=>{(0,y.logError)(e)})),p(this,s,"f").delete(e.id),p(this,r,"f").delete(e.id),this.update((t=>{delete t.events[e.id]}))})),p(this,s,"f").set(e.id,n),p(this,r,"f").set(e.id,e.snapId)},u=function(e,t){this.update((f=>{f.jobs[e]={lastRun:t}}))},b=function(e){for(const t of e){const{date:e}=t,f=new Date;new Date(e).getTime(){delete e.events[t.id]})),(0,y.logWarning)(`Background event with id "${t.id}" not scheduled as its date has expired.`)):p(this,a,"m",l).call(this,t)}}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/cronjob/CronjobController.cjs"}],[2633,{"./CronjobController.cjs":2632},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./CronjobController.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/cronjob/index.cjs"}],[2634,{"@metamask/utils":2950,"@xstate/fsm":3598},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.forceStrict=f.validateMachine=void 0;const a=e("@metamask/utils"),n=e("@xstate/fsm");f.validateMachine=function(e){(0,a.assert)("_options"in e,"The machine is not an @xstate/fsm machine");const t=e,f=new Set,n=e=>{return(t=e,Array.isArray(t)?t:t===undefined||null===t?[]:[t]).flatMap((e=>"string"==typeof e?[e]:((0,a.assert)("function"==typeof e),[]))).forEach(f.add.bind(f));var t};for(const e of Object.values(t.config.states)){n(e.entry),n(e.exit);for(const t of Object.values(e.on??{}))n(t.actions)}f.forEach((e=>(0,a.assert)(t._options.actions!==undefined&&e in t._options.actions,`Action "${e}" doesn't have an implementation`)))},f.forceStrict=function(e){let t=!1;e.subscribe((e=>{(0,a.assert)(!t||e.changed,"Invalid state transition"),t=!0}));const f=e.send.bind(e);e.send=(...t)=>((0,a.assert)(e.status===n.InterpreterStatus.Running,"Interpreter is stopped"),f(...t))}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/fsm.cjs"}],[2635,{"./cronjob/index.cjs":2633,"./insights/index.cjs":2637,"./interface/index.cjs":2639,"./multichain/index.cjs":2643,"./services/index.cjs":2648,"./snaps/index.cjs":2658,"./utils.cjs":2668},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./services/index.cjs"),f),n(e("./snaps/index.cjs"),f),n(e("./utils.cjs"),f),n(e("./cronjob/index.cjs"),f),n(e("./interface/index.cjs"),f),n(e("./insights/index.cjs"),f),n(e("./multichain/index.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/index.cjs"}],[2636,{"../snaps/index.cjs":2658,"@metamask/base-controller":1383,"@metamask/snaps-rpc-methods":2700,"@metamask/snaps-utils":2850,"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s,r,i,o,c,d,l,u,b=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.SnapInsightsController=void 0;const h=e("@metamask/base-controller"),p=e("@metamask/snaps-rpc-methods"),m=e("@metamask/snaps-utils"),g=e("@metamask/utils"),y=e("../snaps/index.cjs");class w extends h.BaseController{constructor({messenger:e,state:t}){super({messenger:e,metadata:{insights:{persist:!1,anonymous:!1}},name:"SnapInsightsController",state:{insights:{},...t}}),a.add(this),this.messagingSystem.subscribe("TransactionController:unapprovedTransactionAdded",b(this,a,"m",r).bind(this)),this.messagingSystem.subscribe("TransactionController:transactionStatusUpdated",b(this,a,"m",c).bind(this)),this.messagingSystem.subscribe("SignatureController:stateChange",b(this,a,"m",i).bind(this))}}f.SnapInsightsController=w,a=new WeakSet,n=function(e){return(0,g.hasProperty)(this.state.insights,e)},s=function(e){const t=this.messagingSystem.call("SnapController:getAll");return(0,y.getRunnableSnaps)(t).reduce(((t,f)=>{const a=this.messagingSystem.call("PermissionController:getPermissions",f.id);return a&&(0,g.hasProperty)(a,e)&&t.push({snapId:f.id,permission:a[e]}),t}),[])},r=function(e){const{id:t,txParams:f,chainId:n,origin:r}=e,i=`eip155:${(0,g.hexToBigInt)(n).toString(10)}`;b(this,a,"m",s).call(this,p.SnapEndowments.TransactionInsight).forEach((({snapId:e,permission:n})=>{const s=(0,p.getTransactionOriginCaveat)(n)&&r?r:null;this.update((f=>{var a;(a=f.insights)[t]??(a[t]={}),f.insights[t][e]={snapId:e,loading:!0}})),b(this,a,"m",l).call(this,{snapId:e,handler:m.HandlerType.OnTransaction,params:{transaction:f,chainId:i,transactionOrigin:s}}).then((f=>b(this,a,"m",u).call(this,{id:t,snapId:e,response:f}))).catch((f=>b(this,a,"m",u).call(this,{id:t,snapId:e,error:f})))}))},i=function(e){for(const t of Object.keys(this.state.insights))(0,g.hasProperty)(e.unapprovedTypedMessages,t)||(0,g.hasProperty)(e.unapprovedPersonalMsgs,t)||b(this,a,"m",d).call(this,t);if(e.unapprovedPersonalMsgCount>0||e.unapprovedTypedMessagesCount>0){const t=b(this,a,"m",s).call(this,p.SnapEndowments.SignatureInsight);for(const f of Object.values(e.unapprovedPersonalMsgs))b(this,a,"m",o).call(this,t,f);for(const f of Object.values(e.unapprovedTypedMessages))b(this,a,"m",o).call(this,t,f)}},o=function(e,t){const{id:f,msgParams:s}=t;if(b(this,a,"m",n).call(this,f))return;const{from:r,data:i,signatureMethod:o,origin:c}=s,d={from:r,data:"eth_signTypedData_v3"===o||"eth_signTypedData_v4"===o?JSON.parse(i):i,signatureMethod:o};e.forEach((({snapId:e,permission:t})=>{const n=(0,p.getSignatureOriginCaveat)(t),s=c&&n?c:null;this.update((t=>{var a;(a=t.insights)[f]??(a[f]={}),t.insights[f][e]={snapId:e,loading:!0}})),b(this,a,"m",l).call(this,{snapId:e,handler:m.HandlerType.OnSignature,params:{signature:d,signatureOrigin:s}}).then((t=>b(this,a,"m",u).call(this,{id:f,snapId:e,response:t}))).catch((t=>b(this,a,"m",u).call(this,{id:f,snapId:e,error:t})))}))},c=function({transactionMeta:e}){"unapproved"!==e.status&&b(this,a,"m",d).call(this,e.id)},d=function(e){b(this,a,"m",n).call(this,e)&&(Object.values(this.state.insights[e]).filter((e=>e.interfaceId)).forEach((e=>{this.messagingSystem.call("SnapInterfaceController:deleteInterface",e.interfaceId)})),this.update((t=>{delete t.insights[e]})))},l=async function({snapId:e,handler:t,params:f}){return this.messagingSystem.call("SnapController:handleRequest",{snapId:e,origin:"",handler:t,request:{method:"",params:f}})},u=function({id:e,snapId:t,response:f,error:s}){b(this,a,"m",n).call(this,e)&&this.update((a=>{a.insights[e][t].loading=!1,a.insights[e][t].interfaceId=f?.id,a.insights[e][t].severity=f?.severity,a.insights[e][t].error=s?.message}))}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/insights/SnapInsightsController.cjs"}],[2637,{"./SnapInsightsController.cjs":2636},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./SnapInsightsController.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/insights/index.cjs"}],[2638,{"./utils.cjs":2640,"@metamask/base-controller":1383,"@metamask/snaps-sdk":2746,"@metamask/snaps-utils":2850,"@metamask/utils":2950,immer:4649,nanoid:4959},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s,r,i,o,c,d,l,u,b,h,p,m=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.SnapInterfaceController=void 0;const g=e("@metamask/base-controller"),y=e("@metamask/snaps-sdk"),w=e("@metamask/snaps-utils"),v=e("@metamask/utils"),k=e("immer"),S=e("nanoid"),_=e("./utils.cjs"),T=1e7,C="SnapInterfaceController";class E extends g.BaseController{constructor({messenger:e,state:t}){super({messenger:e,metadata:{interfaces:{persist:e=>Object.entries(e).reduce(((e,[t,f])=>f.contentType===y.ContentType.Notification?(e[t]=f,e):e),{}),anonymous:!1}},name:C,state:{interfaces:{},...t}}),a.add(this),this.messagingSystem.subscribe("NotificationServicesController:notificationsListUpdated",m(this,a,"m",p).bind(this)),m(this,a,"m",n).call(this)}async createInterface(e,t,f,n){const s=(0,_.getJsxInterface)(t);await m(this,a,"m",h).call(this,s),(0,_.validateInterfaceContext)(f);const r=(0,S.nanoid)(),i=(0,_.constructState)({},s,{getAssetsState:m(this,a,"m",u).bind(this),getAccountByAddress:m(this,a,"m",l).bind(this)});return this.update((t=>{t.interfaces[r]={snapId:e,content:(0,k.castDraft)(s),state:i,context:f??null,contentType:n??null}})),r}getInterface(e,t){return m(this,a,"m",s).call(this,e,t),this.state.interfaces[t]}async updateInterface(e,t,f,n){m(this,a,"m",s).call(this,e,t);const r=(0,_.getJsxInterface)(f);await m(this,a,"m",h).call(this,r),(0,_.validateInterfaceContext)(n);const i=this.state.interfaces[t].state,o=(0,_.constructState)(i,r,{getAssetsState:m(this,a,"m",u).bind(this),getAccountByAddress:m(this,a,"m",l).bind(this)});this.update((e=>{e.interfaces[t].state=o,e.interfaces[t].content=(0,k.castDraft)(r),n&&(e.interfaces[t].context=n)}))}deleteInterface(e){this.update((t=>{delete t.interfaces[e]}))}updateInterfaceState(e,t){this.update((f=>{f.interfaces[e].state=t}))}async resolveInterface(e,t,f){m(this,a,"m",s).call(this,e,t),m(this,a,"m",r).call(this,t),await m(this,a,"m",d).call(this,t,f),this.deleteInterface(t)}}f.SnapInterfaceController=E,a=new WeakSet,n=function(){this.messagingSystem.registerActionHandler(`${C}:createInterface`,this.createInterface.bind(this)),this.messagingSystem.registerActionHandler(`${C}:getInterface`,this.getInterface.bind(this)),this.messagingSystem.registerActionHandler(`${C}:updateInterface`,this.updateInterface.bind(this)),this.messagingSystem.registerActionHandler(`${C}:deleteInterface`,this.deleteInterface.bind(this)),this.messagingSystem.registerActionHandler(`${C}:updateInterfaceState`,this.updateInterfaceState.bind(this)),this.messagingSystem.registerActionHandler(`${C}:resolveInterface`,this.resolveInterface.bind(this))},s=function(e,t){const f=this.state.interfaces[t];(0,v.assert)(f!==undefined,`Interface with id '${t}' not found.`),(0,v.assert)(f.snapId===e,`Interface not created by ${e}.`)},r=function(e){(0,v.assert)(m(this,a,"m",c).call(this,e),`Approval request with id '${e}' not found.`)},i=async function(){await this.messagingSystem.call("PhishingController:maybeUpdateState")},o=function(e){return this.messagingSystem.call("PhishingController:testOrigin",e).result},c=function(e){return this.messagingSystem.call("ApprovalController:hasRequest",{id:e})},d=async function(e,t){await this.messagingSystem.call("ApprovalController:acceptRequest",e,t)},l=function(e){const{address:t}=(0,v.parseCaipAccountId)(e);return this.messagingSystem.call("AccountsController:getAccountByAddress",t)},u=function(){return this.messagingSystem.call("MultichainAssetsController:getState")},b=function(e){return this.messagingSystem.call("SnapController:get",e)},h=async function(e){const t=(0,w.getJsonSizeUnsafe)(e);(0,v.assert)(t<=T,"A Snap UI may not be larger than 10 MB."),await m(this,a,"m",i).call(this),(0,w.validateJsxElements)(e,{isOnPhishingList:m(this,a,"m",o).bind(this),getSnap:m(this,a,"m",b).bind(this),getAccountByAddress:m(this,a,"m",l).bind(this)})},p=function(e){const t=e.filter((e=>"snap"===e.type&&(0,v.hasProperty)(e.data,"detailedView"))),f=new Set(t.map((e=>e.data.detailedView.interfaceId)));this.update((e=>{Object.entries(e.interfaces).forEach((([t,a])=>{a.contentType!==y.ContentType.Notification||f.has(t)||delete e.interfaces[t]}))}))}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/interface/SnapInterfaceController.cjs"}],[2639,{"./SnapInterfaceController.cjs":2638},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./SnapInterfaceController.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/interface/index.cjs"}],[264,{"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.default=function(e){(0,a.hasProperty)(e,"PreferencesController")&&(0,a.isObject)(e.PreferencesController)&&(0,a.hasProperty)(e.PreferencesController,"frequentRpcListDetail")&&(0,a.isObject)(e.NetworkController)&&(0,a.hasProperty)(e.NetworkController,"networkConfigurations")&&delete e.PreferencesController.frequentRpcListDetail;return{...e}};var a=e("@metamask/utils")}}},{package:"$root$",file:"app/scripts/migrations/077-supplements/077-supplement-for-082.ts"}],[2640,{"@metamask/snaps-sdk":2746,"@metamask/snaps-sdk/jsx":2830,"@metamask/snaps-utils":2850,"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.validateInterfaceContext=f.constructState=f.getAssetSelectorStateValue=f.getDefaultAsset=f.assertNameIsUnique=f.getJsxInterface=f.isStatefulComponent=void 0;const a=e("@metamask/snaps-sdk"),n=e("@metamask/snaps-sdk/jsx"),s=e("@metamask/snaps-utils"),r=e("@metamask/utils"),i=["Input","Dropdown","RadioGroup","FileInput","Checkbox","Selector","AssetSelector","AddressInput"];function o(e){return i.includes(e.type)}function c(e,t){(0,a.assert)(e[t]===undefined,`Duplicate component names are not allowed, found multiple instances of: "${t}".`)}function d(e,t,{getAccountByAddress:f,getAssetsState:n}){const{assetsMetadata:s,accountsAssets:i}=n(),o=e.map((e=>(0,r.parseCaipAccountId)(e))).map((({chainId:e})=>e)),c=t&&t.length>0?o.filter((e=>t.includes(e))):o,d=f(e[0])?.id;(0,a.assert)(d,`Account not found for address: ${e[0]}.`);const l=i[d];if(0===l.length)return null;const u=l.find((e=>{const{chainId:t,assetNamespace:f}=(0,r.parseCaipAssetType)(e);return c.includes(t)&&"slip44"===f}));return u?{asset:u,name:s[u].name,symbol:s[u].symbol}:{asset:l[0],name:s[l[0]].name,symbol:s[l[0]].symbol}}function l(e,t){if(!e)return null;const{assetsMetadata:f}=t(),a=f[e];return a?{asset:e,name:a.name,symbol:a.symbol}:null}function u(e,t,f,a){const n=a?e[a]:e,i=n?.[t.props.name];return"FileInput"===t.type?i??null:function(e,{getAssetsState:t}){switch(e.type){case"Checkbox":return e.props.checked;case"AssetSelector":return l(e.props.value,t);case"AddressInput":{if(!e.props.value)return null;const{namespace:t,reference:f}=(0,r.parseCaipChainId)(e.props.chainId);return(0,r.toCaipAccountId)(t,f,e.props.value)}default:return e.props.value}}(t,f)??i??function(e,t){switch(e.type){case"Dropdown":{const t=(0,s.getJsxChildren)(e);return t[0]?.props.value}case"RadioGroup":{const t=(0,s.getJsxChildren)(e);return t[0]?.props.value}case"Selector":{const t=(0,s.getJsxChildren)(e);return t[0]?.props.value}case"Checkbox":return!1;case"AssetSelector":return d(e.props.addresses,e.props.chainIds,t);default:return null}}(t,f)??null}f.isStatefulComponent=o,f.getJsxInterface=function(e){return(0,n.isJSXElementUnsafe)(e)?e:(0,s.getJsxElementFromComponent)(e)},f.assertNameIsUnique=c,f.getDefaultAsset=d,f.getAssetSelectorStateValue=l,f.constructState=function(e,t,f){const a={},n=[];return(0,s.walkJsx)(t,((t,s)=>{let r=n[n.length-1];if(r&&s<=r.depth&&(n.pop(),r=n[n.length-1]),"Form"===t.type)return c(a,t.props.name),n.push({name:t.props.name,depth:s}),void(a[t.props.name]={});if(r&&o(t)){const n=a[r.name];return c(n,t.props.name),void(n[t.props.name]=u(e,t,f,r.name))}o(t)&&(c(a,t.props.name),a[t.props.name]=u(e,t,f))})),a};const b=5e6;f.validateInterfaceContext=function(e){if(!e)return;const t=(0,s.getJsonSizeUnsafe)(e);(0,a.assert)(t<=b,"A Snap interface context may not be larger than 5 MB.")}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/interface/utils.cjs"}],[2641,{"@metamask/snaps-utils":2850,"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.log=void 0;const a=e("@metamask/snaps-utils"),n=e("@metamask/utils");f.log=(0,n.createModuleLogger)(a.snapsLogger,"snaps-controllers")}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/logging.cjs"}],[2642,{"../snaps/index.cjs":2658,"@metamask/rpc-errors":2554,"@metamask/snaps-rpc-methods":2700,"@metamask/snaps-utils":2850,"@metamask/utils":2950,nanoid:4959},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s,r,i,o,c,d=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},l=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.MultichainRouter=void 0;const u=e("@metamask/rpc-errors"),b=e("@metamask/snaps-rpc-methods"),h=e("@metamask/snaps-utils"),p=e("@metamask/utils"),m=e("nanoid"),g=e("../snaps/index.cjs"),y="MultichainRouter";f.MultichainRouter=class{constructor({messenger:e,withSnapKeyring:t}){a.add(this),this.name=y,this.state=null,n.set(this,void 0),s.set(this,void 0),d(this,n,e,"f"),d(this,s,t,"f"),l(this,n,"f").registerActionHandler(`${y}:handleRequest`,(async(...e)=>this.handleRequest(...e))),l(this,n,"f").registerActionHandler(`${y}:getSupportedMethods`,((...e)=>this.getSupportedMethods(...e))),l(this,n,"f").registerActionHandler(`${y}:getSupportedAccounts`,((...e)=>this.getSupportedAccounts(...e))),l(this,n,"f").registerActionHandler(`${y}:isSupportedScope`,((...e)=>this.isSupportedScope(...e)))}async handleRequest({connectedAddresses:e,origin:t,scope:f,request:r}){(0,p.assert)(!f.startsWith(p.KnownCaipNamespace.Eip155)&&!f.startsWith("wallet:eip155"));const c={jsonrpc:"2.0",id:r.id??(0,m.nanoid)(),method:r.method,params:r.params},{method:d,params:b}=c,g=await l(this,a,"m",i).call(this,e,f,c);if(g)return l(this,s,"f").call(this,(async({keyring:e})=>e.submitRequest({account:g,scope:f,method:d,params:b})));const y=l(this,a,"m",o).call(this,f).find((e=>e.methods.includes(d)));if(y)return l(this,n,"f").call("SnapController:handleRequest",{snapId:y.snapId,origin:t,request:{method:"",params:{request:c,scope:f}},handler:h.HandlerType.OnProtocolRequest});throw u.rpcErrors.methodNotFound()}getSupportedMethods(e){const t=l(this,a,"m",c).call(this,e).flatMap((e=>e.methods)),f=l(this,a,"m",o).call(this,e).flatMap((e=>e.methods));return Array.from(new Set([...t,...f]))}getSupportedAccounts(e){return l(this,a,"m",c).call(this,e).map((t=>`${e}:${t.address}`))}isSupportedScope(e){return l(this,n,"f").call("AccountsController:listMultichainAccounts",e).some((e=>e.metadata.snap?.enabled))}},n=new WeakMap,s=new WeakMap,a=new WeakSet,r=async function(e,t,f){try{const a=await l(this,s,"f").call(this,(async({keyring:a})=>a.resolveAccountAddress(e,t,f))),n=a?.address;return n?(0,p.parseCaipAccountId)(n).address:null}catch{throw u.rpcErrors.internal()}},i=async function(e,t,f){const s=l(this,n,"f").call("AccountsController:listMultichainAccounts",t).filter((e=>Boolean(e.metadata.snap?.enabled)&&e.methods.includes(f.method)));if(0===s.length)return null;const i=s[0].metadata.snap.id,o=await l(this,a,"m",r).call(this,i,t,f),c=e.map((e=>(0,p.parseCaipAccountId)(e).address)),d=s.find((e=>c.includes(e.address)&&(!o||e.address.toLowerCase()===o.toLowerCase())));if(!d)throw u.rpcErrors.invalidParams({message:"No available account found for request."});return d.id},o=function(e){const t=l(this,n,"f").call("SnapController:getAll");return(0,g.getRunnableSnaps)(t).reduce(((t,f)=>{const a=l(this,n,"f").call("PermissionController:getPermissions",f.id);if(a&&(0,p.hasProperty)(a,b.SnapEndowments.Protocol)){const n=a[b.SnapEndowments.Protocol],s=(0,b.getProtocolCaveatScopes)(n);s&&(0,p.hasProperty)(s,e)&&t.push({snapId:f.id,methods:s[e].methods})}return t}),[])},c=function(e){return l(this,n,"f").call("AccountsController:listMultichainAccounts",e).filter((e=>e.metadata.snap?.enabled))}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/multichain/MultichainRouter.cjs"}],[2643,{"./MultichainRouter.cjs":2642},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./MultichainRouter.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/multichain/index.cjs"}],[2644,{"../logging.cjs":2641,"../snaps/Timer.cjs":2656,"../utils.cjs":2668,"@metamask/json-rpc-engine":1933,"@metamask/json-rpc-middleware-stream":1937,"@metamask/object-multiplex":2381,"@metamask/rpc-errors":2554,"@metamask/snaps-utils":2850,"@metamask/utils":2950,nanoid:4959,"readable-stream":5274},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s,r,i,o,c,d,l,u,b,h,p,m=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},g=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)},y=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.setupMultiplex=f.AbstractExecutionService=void 0;const w=e("@metamask/json-rpc-engine"),v=e("@metamask/json-rpc-middleware-stream"),k=y(e("@metamask/object-multiplex")),S=e("@metamask/rpc-errors"),_=e("@metamask/snaps-utils"),T=e("@metamask/utils"),C=e("nanoid"),E=e("readable-stream"),P=e("../logging.cjs"),j=e("../snaps/Timer.cjs"),O=e("../utils.cjs"),I="ExecutionService";function A(e,t){const f=new k.default;return(0,E.pipeline)(e,f,e,(e=>{e&&(t?(0,_.logError)(`"${t}" stream failure.`,e):(0,_.logError)(e))})),f}f.AbstractExecutionService=class{constructor({setupSnapProvider:e,messenger:t,initTimeout:f=(0,T.inMilliseconds)(60,T.Duration.Second),pingTimeout:u=(0,T.inMilliseconds)(2,T.Duration.Second),terminationTimeout:b=(0,T.inMilliseconds)(1,T.Duration.Second),usePing:h=!0}){a.add(this),this.name=I,this.state=null,n.set(this,void 0),s.set(this,void 0),r.set(this,void 0),i.set(this,void 0),o.set(this,void 0),c.set(this,void 0),d.set(this,void 0),l.set(this,void 0),m(this,n,new Map,"f"),this.jobs=new Map,this.setupSnapProvider=e,m(this,s,new Map,"f"),m(this,r,new Map,"f"),m(this,i,t,"f"),m(this,o,f,"f"),m(this,c,u,"f"),m(this,d,b,"f"),m(this,l,h,"f"),this.registerMessageHandlers()}registerMessageHandlers(){g(this,i,"f").registerActionHandler(`${I}:handleRpcRequest`,(async(e,t)=>this.handleRpcRequest(e,t))),g(this,i,"f").registerActionHandler(`${I}:executeSnap`,(async e=>this.executeSnap(e))),g(this,i,"f").registerActionHandler(`${I}:terminateSnap`,(async e=>this.terminateSnap(e))),g(this,i,"f").registerActionHandler(`${I}:terminateAllSnaps`,(async()=>this.terminateAllSnaps()))}async terminate(e){const t=this.jobs.get(e);if(!t)throw new Error(`Job with id "${e}" not found.`);try{const t=await(0,O.withTimeout)(this.command(e,{jsonrpc:"2.0",method:"terminate",params:[],id:(0,C.nanoid)()}),g(this,d,"f"));t!==O.hasTimedOut&&"OK"===t||(0,_.logError)(`Job "${e}" failed to terminate gracefully.`,t)}catch{}Object.values(t.streams).forEach((e=>{try{!e.destroyed&&e.destroy(),e.removeAllListeners()}catch(e){(0,_.logError)("Error while destroying stream",e)}})),this.terminateJob(t),this.jobs.delete(e),g(this,a,"m",p).call(this,e),(0,P.log)(`Job "${e}" terminated.`)}async initJob(e,t){const{streams:f,worker:a}=await this.initStreams(e,t),n=new w.JsonRpcEngine,s=(0,v.createStreamMiddleware)();(0,E.pipeline)(s.stream,f.command,s.stream,(e=>{e&&(0,_.logError)("Command stream failure.",e)})),n.push(s.middleware);const r={id:e,streams:f,rpcEngine:n,worker:a};return this.jobs.set(e,r),r}async initStreams(e,t){const f=await(0,O.withTimeout)(this.initEnvStream(e),t);if(f===O.hasTimedOut)throw this.terminateJob({id:e}),new Error("The Snaps execution environment failed to start.");const{worker:a,stream:n}=f,s=A(n,`Job: "${e}"`),o=s.createStream(_.SNAP_STREAM_NAMES.COMMAND),c=t=>{if(!(0,T.isJsonRpcNotification)(t))return;const f=g(this,r,"f").get(e);"OutboundRequest"===t.method?g(this,i,"f").publish("ExecutionService:outboundRequest",f):"OutboundResponse"===t.method?g(this,i,"f").publish("ExecutionService:outboundResponse",f):"UnhandledError"===t.method?(0,T.isObject)(t.params)&&t.params.error?(g(this,i,"f").publish("ExecutionService:unhandledError",f,t.params.error),o.removeListener("data",c)):(0,_.logError)(new Error(`Received malformed "${t.method}" command stream notification.`)):(0,_.logError)(new Error(`Received unexpected command stream notification "${t.method}".`))};o.on("data",c);const d=s.createStream(_.SNAP_STREAM_NAMES.JSON_RPC);return{streams:{command:o,rpc:d,_connection:n},worker:a}}async terminateSnap(e){const t=g(this,s,"f").get(e);t&&await this.terminate(t)}async terminateAllSnaps(){await Promise.all([...this.jobs.keys()].map((async e=>this.terminate(e)))),g(this,n,"f").clear()}getRpcRequestHandler(e){return g(this,n,"f").get(e)}async executeSnap({snapId:e,sourceCode:t,endowments:f}){if(g(this,s,"f").has(e))throw new Error(`Snap "${e}" is already being executed.`);const n=(0,C.nanoid)(),r=new j.Timer(g(this,o,"f")),i=await this.initJob(n,r);if(g(this,a,"m",h).call(this,e,i.id),g(this,l,"f")){if(await(0,O.withTimeout)(this.command(i.id,{jsonrpc:"2.0",method:"ping",id:(0,C.nanoid)()}),g(this,c,"f"))===O.hasTimedOut)throw new Error("The Snaps execution environment failed to start.")}const d=i.streams.rpc;this.setupSnapProvider(e,d);const u=r.remaining,p={jsonrpc:"2.0",method:"executeSnap",params:{snapId:e,sourceCode:t,endowments:f},id:(0,C.nanoid)()};(0,T.assertIsJsonRpcRequest)(p);const m=await(0,O.withTimeout)(this.command(i.id,p),u);if(m===O.hasTimedOut)throw new Error(`${e} failed to start.`);return g(this,a,"m",b).call(this,e,i.id),m}async command(e,t){const f=this.jobs.get(e);if(!f)throw new Error(`Job with id "${e}" not found.`);(0,P.log)("Parent: Sending Command",t);const a=await f.rpcEngine.handle(t);if((0,T.isJsonRpcFailure)(a))throw new S.JsonRpcError(a.error.code,a.error.message,a.error.data);return a.result}async handleRpcRequest(e,t){const f=this.getRpcRequestHandler(e);if(!f)throw new Error(`Snap execution service returned no RPC handler for running snap "${e}".`);return f(t)}},n=new WeakMap,s=new WeakMap,r=new WeakMap,i=new WeakMap,o=new WeakMap,c=new WeakMap,d=new WeakMap,l=new WeakMap,a=new WeakSet,u=function(e){g(this,n,"f").delete(e)},b=function(e,t){g(this,n,"f").set(e,(async({origin:f,handler:a,request:n})=>await this.command(t,{id:(0,C.nanoid)(),jsonrpc:"2.0",method:"snapRpc",params:{origin:f,handler:a,request:n,target:e}})))},h=function(e,t){g(this,s,"f").set(e,t),g(this,r,"f").set(t,e)},p=function(e){const t=g(this,r,"f").get(e);if(!t)throw new Error(`job: "${e}" has no mapped snap.`);g(this,r,"f").delete(e),g(this,s,"f").delete(t),g(this,a,"m",u).call(this,t)},f.setupMultiplex=A}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/AbstractExecutionService.cjs"}],[2645,{"@metamask/post-message-stream":2415},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s,r,i=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},o=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.ProxyPostMessageStream=void 0;const c=e("@metamask/post-message-stream");class d extends c.BasePostMessageStream{constructor({stream:e,jobId:t}){super(),a.add(this),n.set(this,void 0),s.set(this,void 0),i(this,n,e,"f"),i(this,s,t,"f"),o(this,n,"f").on("data",o(this,a,"m",r).bind(this))}_postMessage(e){o(this,n,"f").write({jobId:o(this,s,"f"),data:e})}}f.ProxyPostMessageStream=d,n=new WeakMap,s=new WeakMap,a=new WeakSet,r=function(e){e.jobId===o(this,s,"f")&&this.push(e.data)}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/ProxyPostMessageStream.cjs"}],[2646,{"../AbstractExecutionService.cjs":2644,"@metamask/post-message-stream":2415,"@metamask/snaps-utils":2850},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.IframeExecutionService=void 0;const a=e("@metamask/post-message-stream"),n=e("@metamask/snaps-utils"),s=e("../AbstractExecutionService.cjs");class r extends s.AbstractExecutionService{constructor({iframeUrl:e,messenger:t,setupSnapProvider:f,...a}){super({...a,messenger:t,setupSnapProvider:f}),this.iframeUrl=e}terminateJob(e){document.getElementById(e.id)?.remove()}async initEnvStream(e){const t=await(0,n.createWindow)({uri:this.iframeUrl.toString(),id:e});return{worker:t,stream:new a.WindowPostMessageStream({name:"parent",target:"child",targetWindow:t,targetOrigin:"*"})}}}f.IframeExecutionService=r}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/iframe/IframeExecutionService.cjs"}],[2647,{"./IframeExecutionService.cjs":2646},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./IframeExecutionService.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/iframe/index.cjs"}],[2648,{"./AbstractExecutionService.cjs":2644,"./ProxyPostMessageStream.cjs":2645,"./iframe/index.cjs":2647,"./offscreen/index.cjs":2650,"./webworker/index.cjs":2653},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),f.WebWorkerExecutionService=void 0,n(e("./AbstractExecutionService.cjs"),f),n(e("./ProxyPostMessageStream.cjs"),f),n(e("./iframe/index.cjs"),f),n(e("./offscreen/index.cjs"),f);var s=e("./webworker/index.cjs");Object.defineProperty(f,"WebWorkerExecutionService",{enumerable:!0,get:function(){return s.WebWorkerExecutionService}})}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/index.cjs"}],[2649,{"../proxy/ProxyExecutionService.cjs":2651,"@metamask/post-message-stream":2415},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},s=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.OffscreenExecutionService=void 0;const r=e("@metamask/post-message-stream"),i=e("../proxy/ProxyExecutionService.cjs");class o extends i.ProxyExecutionService{constructor({messenger:e,setupSnapProvider:t,offscreenPromise:f,...s}){super({...s,messenger:e,setupSnapProvider:t,stream:new r.BrowserRuntimePostMessageStream({name:"parent",target:"child"})}),a.set(this,void 0),n(this,a,f,"f")}async initEnvStream(e){return await s(this,a,"f"),await super.initEnvStream(e)}}f.OffscreenExecutionService=o,a=new WeakMap}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/offscreen/OffscreenExecutionService.cjs"}],[265,{"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.default=function(e){(0,a.hasProperty)(e,"NetworkController")&&(0,a.isObject)(e.NetworkController)&&(0,a.hasProperty)(e.NetworkController,"network")&&(0,a.hasProperty)(e.NetworkController,"networkId")&&delete e.NetworkController.network;return{...e}};var a=e("@metamask/utils")}}},{package:"$root$",file:"app/scripts/migrations/077-supplements/077-supplement-for-084.ts"}],[2650,{"./OffscreenExecutionService.cjs":2649},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./OffscreenExecutionService.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/offscreen/index.cjs"}],[2651,{"../AbstractExecutionService.cjs":2644,"../ProxyPostMessageStream.cjs":2645,nanoid:4959},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},s=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.ProxyExecutionService=void 0;const r=e("nanoid"),i=e("../AbstractExecutionService.cjs"),o=e("../ProxyPostMessageStream.cjs");class c extends i.AbstractExecutionService{constructor({stream:e,messenger:t,setupSnapProvider:f,...s}){super({...s,messenger:t,setupSnapProvider:f,usePing:!1}),a.set(this,void 0),n(this,a,e,"f")}async terminateJob(e){s(this,a,"f").write({jobId:e.id,data:{jsonrpc:"2.0",method:"terminateJob",id:(0,r.nanoid)()}})}async initEnvStream(e){const t=new o.ProxyPostMessageStream({stream:s(this,a,"f"),jobId:e});return await new Promise((e=>{t.once("data",e),t.write({name:"command",data:{jsonrpc:"2.0",method:"ping",id:(0,r.nanoid)()}})})),{worker:e,stream:t}}}f.ProxyExecutionService=c,a=new WeakMap}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/proxy/ProxyExecutionService.cjs"}],[2652,{"../AbstractExecutionService.cjs":2644,"../ProxyPostMessageStream.cjs":2645,"@metamask/post-message-stream":2415,"@metamask/snaps-utils":2850,"@metamask/utils":2950,nanoid:4959},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},r=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.WebWorkerExecutionService=f.WORKER_POOL_ID=void 0;const i=e("@metamask/post-message-stream"),o=e("@metamask/snaps-utils"),c=e("@metamask/utils"),d=e("nanoid"),l=e("../AbstractExecutionService.cjs"),u=e("../ProxyPostMessageStream.cjs");f.WORKER_POOL_ID="snaps-worker-pool";class b extends l.AbstractExecutionService{constructor({documentUrl:e,messenger:t,setupSnapProvider:f,...r}){super({...r,messenger:t,setupSnapProvider:f}),a.set(this,void 0),n.set(this,void 0),s(this,a,e,"f")}async terminateJob(e){(0,c.assert)(r(this,n,"f"),"Runtime stream not initialized."),r(this,n,"f").write({jobId:e.id,data:{jsonrpc:"2.0",method:"terminateJob",id:(0,d.nanoid)()}})}async initEnvStream(e){await this.createDocument(),(0,c.assert)(r(this,n,"f"),"Runtime stream not initialized.");return{worker:e,stream:new u.ProxyPostMessageStream({stream:r(this,n,"f"),jobId:e})}}async createDocument(){if(document.getElementById(f.WORKER_POOL_ID))return;const e=await(0,o.createWindow)({uri:r(this,a,"f").href,id:f.WORKER_POOL_ID,sandbox:!1});s(this,n,new i.WindowPostMessageStream({name:"parent",target:"child",targetWindow:e,targetOrigin:"*"}),"f")}}f.WebWorkerExecutionService=b,a=new WeakMap,n=new WeakMap}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/webworker/WebWorkerExecutionService.cjs"}],[2653,{"./WebWorkerExecutionService.cjs":2652},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./WebWorkerExecutionService.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/services/webworker/index.cjs"}],[2654,{},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.RequestQueue=void 0;f.RequestQueue=class{constructor(e){this.maxQueueSize=e,this.queueSizes=new Map}increment(e){const t=this.queueSizes.get(e)??0;if(t>=this.maxQueueSize)throw new Error("Maximum number of requests reached. Try again later.");this.queueSizes.set(e,t+1)}decrement(e){const t=this.queueSizes.get(e)??0;if(0===t)throw new Error(`Cannot decrement, ${e} does not have any outstanding requests.`);this.queueSizes.set(e,t-1)}get(e){return this.queueSizes.get(e)??0}}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/RequestQueue.cjs"}],[2655,{"../fsm.cjs":2634,"../logging.cjs":2641,"../utils.cjs":2668,"./RequestQueue.cjs":2654,"./Timer.cjs":2656,"./constants.cjs":2657,"./location/index.cjs":2660,"./registry/index.cjs":2664,"./selectors.cjs":2667,"@metamask/base-controller":1383,"@metamask/permission-controller":2393,"@metamask/rpc-errors":2554,"@metamask/snaps-rpc-methods":2700,"@metamask/snaps-sdk":2746,"@metamask/snaps-utils":2850,"@metamask/utils":2950,"@xstate/fsm":3598,"async-mutex":3913,nanoid:4959,semver:5547},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s,r,i,o,c,d,l,u,b,h,p,m,g,y,w,v,k,S,_,T,C,E,P,j,O,I,A,x,N,M,R,L,D,B,$,F,q,H,U,V,W,z,Z,G,K,J,Y,Q,X,ee,te,fe,ae,ne,se,re,ie,oe,ce,de,le,ue,be,he,pe,me,ge,ye,we,ve,ke,Se,_e=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},Te=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.SnapController=f.SNAP_APPROVAL_RESULT=f.SNAP_APPROVAL_UPDATE=f.SNAP_APPROVAL_INSTALL=f.controllerName=void 0;const Ce=e("@metamask/base-controller"),Ee=e("@metamask/permission-controller"),Pe=e("@metamask/rpc-errors"),je=e("@metamask/snaps-rpc-methods"),Oe=e("@metamask/snaps-sdk"),Ie=e("@metamask/snaps-utils"),Ae=e("@metamask/utils"),xe=e("@xstate/fsm"),Ne=e("async-mutex"),Me=e("nanoid"),Re=e("semver"),Le=e("./constants.cjs"),De=e("./location/index.cjs"),Be=e("./registry/index.cjs"),$e=e("./RequestQueue.cjs"),Fe=e("./selectors.cjs"),qe=e("./Timer.cjs"),He=e("../fsm.cjs"),Ue=e("../logging.cjs"),Ve=e("../utils.cjs");f.controllerName="SnapController",f.SNAP_APPROVAL_INSTALL="wallet_installSnap",f.SNAP_APPROVAL_UPDATE="wallet_updateSnap",f.SNAP_APPROVAL_RESULT="wallet_installSnapResult";const We=new Set(["initialPermissions","id","version","enabled","blocked"]),ze={snaps:{},snapStates:{},unencryptedSnapStates:{}};function Ze(e){return Object.keys(e).reduce(((t,f)=>(We.has(f)&&(t[f]=e[f]),t)),{})}class Ge extends Ce.BaseController{constructor({closeAllConnections:e,messenger:t,state:E,dynamicPermissions:P=["eth_accounts"],environmentEndowmentPermissions:j=[],excludedPermissions:O={},idleTimeCheckInterval:I=(0,Ae.inMilliseconds)(5,Ae.Duration.Second),maxIdleTime:A=(0,Ae.inMilliseconds)(30,Ae.Duration.Second),maxRequestTime:x=(0,Ae.inMilliseconds)(60,Ae.Duration.Second),fetchFunction:N=globalThis.fetch.bind(undefined),featureFlags:M={},detectSnapLocation:R=De.detectSnapLocation,preinstalledSnaps:L=null,encryptor:D,getMnemonicSeed:B,getFeatureFlags:$=(()=>({})),clientCryptography:F}){super({messenger:t,metadata:{snapStates:{persist:!0,anonymous:!1},unencryptedSnapStates:{persist:!0,anonymous:!1},snaps:{persist:e=>Object.values(e).filter((e=>e.status!==Ie.SnapStatus.Installing)).map((e=>({...e,status:Ie.SnapStatus.Stopped}))).reduce(((e,t)=>(e[t.id]=t,e)),{}),anonymous:!1}},name:f.controllerName,state:{...ze,...E}}),a.add(this),n.set(this,void 0),s.set(this,void 0),r.set(this,void 0),i.set(this,void 0),o.set(this,void 0),c.set(this,void 0),d.set(this,void 0),l.set(this,void 0),u.set(this,void 0),b.set(this,void 0),h.set(this,void 0),p.set(this,void 0),m.set(this,void 0),g.set(this,void 0),y.set(this,void 0),w.set(this,void 0),v.set(this,void 0),k.set(this,void 0),_e(this,n,e,"f"),_e(this,s,P,"f"),_e(this,r,j,"f"),_e(this,i,O,"f"),_e(this,o,M,"f"),_e(this,c,N,"f"),_e(this,d,I,"f"),_e(this,l,A,"f"),this.maxRequestTime=x,_e(this,m,R,"f"),_e(this,u,D,"f"),_e(this,b,B,"f"),_e(this,h,$,"f"),_e(this,p,F,"f"),_e(this,k,L,"f"),this._onUnhandledSnapError=this._onUnhandledSnapError.bind(this),this._onOutboundRequest=this._onOutboundRequest.bind(this),this._onOutboundResponse=this._onOutboundResponse.bind(this),_e(this,y,new Map,"f"),_e(this,g,new Map,"f"),Te(this,a,"m",C).call(this),this.messagingSystem.subscribe("ExecutionService:unhandledError",this._onUnhandledSnapError),this.messagingSystem.subscribe("ExecutionService:outboundRequest",this._onOutboundRequest),this.messagingSystem.subscribe("ExecutionService:outboundResponse",this._onOutboundResponse),this.messagingSystem.subscribe("SnapController:snapInstalled",(({id:e},t)=>{Te(this,a,"m",ke).call(this,t,e,Ie.HandlerType.OnInstall).catch((t=>{(0,Ie.logError)(`Error when calling \`onInstall\` lifecycle hook for snap "${e}": ${(0,Oe.getErrorMessage)(t)}`)}))})),this.messagingSystem.subscribe("SnapController:snapUpdated",(({id:e},t,f)=>{Te(this,a,"m",ke).call(this,f,e,Ie.HandlerType.OnUpdate).catch((t=>{(0,Ie.logError)(`Error when calling \`onUpdate\` lifecycle hook for snap "${e}": ${(0,Oe.getErrorMessage)(t)}`)}))})),this.messagingSystem.subscribe("KeyringController:lock",Te(this,a,"m",Se).bind(this)),Te(this,a,"m",S).call(this),Te(this,a,"m",_).call(this),Te(this,k,"f")&&Te(this,a,"m",T).call(this,Te(this,k,"f")),Object.values(this.state?.snaps??{}).forEach((e=>Te(this,a,"m",pe).call(this,e.id)))}async updateBlockedSnaps(){Te(this,a,"m",I).call(this),await this.messagingSystem.call("SnapsRegistry:update");const e=await this.messagingSystem.call("SnapsRegistry:get",Object.values(this.state.snaps).reduce(((e,t)=>(e[t.id]={version:t.version,checksum:t.manifest.source.shasum},e)),{}));await Promise.all(Object.entries(e).map((async([e,{status:t,reason:f}])=>t===Be.SnapsRegistryStatus.Blocked?Te(this,a,"m",E).call(this,e,f):Te(this,a,"m",P).call(this,e))))}_onUnhandledSnapError(e,t){(0,Ie.logError)(`Unhandled error from "${e}":`,t),this.stopSnap(e,Ie.SnapStatusEvents.Crash).catch((e=>{(0,Ie.logError)(e)}))}_onOutboundRequest(e){const t=Te(this,a,"m",he).call(this,e);t.pendingInboundRequests.filter((e=>"running"===e.timer.status)).forEach((e=>e.timer.pause())),t.pendingOutboundRequests+=1}_onOutboundResponse(e){const t=Te(this,a,"m",he).call(this,e);t.pendingOutboundRequests-=1,0===t.pendingOutboundRequests&&t.pendingInboundRequests.filter((e=>"paused"===e.timer.status)).forEach((e=>e.timer.resume()))}async startSnap(e){Te(this,a,"m",I).call(this);const t=this.state.snaps[e];if(!t.enabled)throw new Error(`Snap "${e}" is disabled.`);await Te(this,a,"m",G).call(this,{snapId:e,sourceCode:t.sourceCode})}enableSnap(e){if(this.getExpect(e),this.state.snaps[e].blocked)throw new Error(`Snap "${e}" is blocked and cannot be enabled.`);this.update((t=>{t.snaps[e].enabled=!0})),this.messagingSystem.publish("SnapController:snapEnabled",this.getTruncatedExpect(e))}async disableSnap(e){if(!this.has(e))throw new Error(`Snap "${e}" not found.`);this.update((t=>{t.snaps[e].enabled=!1})),this.isRunning(e)&&await this.stopSnap(e,Ie.SnapStatusEvents.Stop),this.messagingSystem.publish("SnapController:snapDisabled",this.getTruncatedExpect(e))}async stopSnap(e,t=Ie.SnapStatusEvents.Stop){const f=Te(this,a,"m",be).call(this,e);if(!f)throw new Error(`The snap "${e}" is not running.`);if(!f.stopping){f.stopping=!0;try{this.isRunning(e)&&(Te(this,n,"f")?.call(this,e),await Te(this,a,"m",N).call(this,e))}finally{f.lastRequest=null,f.pendingInboundRequests=[],f.pendingOutboundRequests=0,f.stopping=!1,this.isRunning(e)&&Te(this,a,"m",x).call(this,e,t)}}}async stopAllSnaps(e=Ie.SnapStatusEvents.Stop){const t=Object.values(this.state.snaps).filter((e=>this.isRunning(e.id))).map((async t=>this.stopSnap(t.id,e)));await Promise.allSettled(t)}isRunning(e){return"running"===this.getExpect(e).status}has(e){return Boolean(this.get(e))}get(e){return this.state.snaps[e]}getExpect(e){const t=this.get(e);return(0,Ae.assert)(t!==undefined,new Error(`Snap "${e}" not found.`)),t}getTruncated(e){const t=this.get(e);return t?Ze(t):null}getTruncatedExpect(e){return Ze(this.getExpect(e))}async updateSnapState(e,t,f){const n=Te(this,a,"m",he).call(this,e);f?n.state=t:n.unencryptedState=t,Te(this,a,"m",$).call(this,e,t,f).catch((e=>{(0,Ie.logError)(e)}))}clearSnapState(e,t){const f=Te(this,a,"m",he).call(this,e);t?f.state=null:f.unencryptedState=null,Te(this,a,"m",$).call(this,e,null,t).catch((e=>{(0,Ie.logError)(e)}))}async getSnapState(e,t){const f=Te(this,a,"m",he).call(this,e);return await f.getStateMutex.runExclusive((async()=>{const n=t?f.state:f.unencryptedState;if(n!==undefined)return n;const s=t?this.state.snapStates[e]:this.state.unencryptedSnapStates[e];if(null===s||s===undefined)return null;if(!t){const e=JSON.parse(s);return f.unencryptedState=e,e}const r=await Te(this,a,"m",L).call(this,e,s);return f.state=r,r}))}async getSnapFile(e,t,f=Oe.AuxiliaryFileEncoding.Base64){const a=this.getExpect(e),n=(0,Ie.normalizeRelative)(t),s=a.auxiliaryFiles?.find((e=>e.path===n))?.value;if(!s)return null;const r=await(0,Ie.encodeAuxiliaryFile)(s,f);return(0,Ae.assert)(r.length{Te(this,n,"f")?.call(this,e)})),await this.messagingSystem.call("ExecutionService:terminateAllSnaps"),e.forEach((e=>Te(this,a,"m",U).call(this,e))),this.update((e=>{e.snaps={},e.snapStates={}})),Te(this,g,"f").clear(),Te(this,k,"f")&&(Te(this,a,"m",T).call(this,Te(this,k,"f")),Object.values(this.state?.snaps).forEach((e=>Te(this,a,"m",pe).call(this,e.id))))}async removeSnap(e){return this.removeSnaps([e])}async removeSnaps(e){if(!Array.isArray(e))throw new Error("Expected array of snap ids.");e.forEach((e=>{const t=this.getExpect(e);(0,Ae.assert)(!1!==t.removable,`${e} is not removable.`)})),await Promise.all(e.map((async e=>{const t=this.getExpect(e),f=this.getTruncatedExpect(e);await this.disableSnap(e),Te(this,a,"m",U).call(this,e),Te(this,a,"m",H).call(this,e),Te(this,g,"f").delete(e),this.update((t=>{delete t.snaps[e],delete t.snapStates[e],delete t.unencryptedSnapStates[e]})),t.status!==Ie.SnapStatus.Installing&&this.messagingSystem.publish("SnapController:snapUninstalled",f)})))}removeSnapFromSubject(e,t){const f=this.messagingSystem.call("PermissionController:getPermissions",e),a=f?.[je.WALLET_SNAP_PERMISSION_KEY]?.caveats?.find((e=>e.type===Ie.SnapCaveatType.SnapIds));if(!a)return;if(Boolean(a.value?.[t])){const f={...a.value};delete f[t],Object.keys(f).length>0?this.messagingSystem.call("PermissionController:updateCaveat",e,je.WALLET_SNAP_PERMISSION_KEY,Ie.SnapCaveatType.SnapIds,f):this.messagingSystem.call("PermissionController:revokePermissions",{[e]:[je.WALLET_SNAP_PERMISSION_KEY]})}}revokeDynamicSnapPermissions(e,t){(0,Ae.assert)(t.every((e=>Te(this,s,"f").includes(e))),"Non-dynamic permissions cannot be revoked"),this.messagingSystem.call("PermissionController:revokePermissions",{[e]:t})}incrementActiveReferences(e){Te(this,a,"m",he).call(this,e).activeReferences+=1}decrementActiveReferences(e){const t=Te(this,a,"m",he).call(this,e);(0,Ae.assert)(t.activeReferences>0,"SnapController reference management is in an invalid state."),t.activeReferences-=1}getAllSnaps(){return Object.values(this.state.snaps).map(Ze)}getRunnableSnaps(){return(0,Fe.getRunnableSnaps)(this.getAllSnaps())}getPermittedSnaps(e){const t=this.messagingSystem.call("PermissionController:getPermissions",e)??{},f=t[je.WALLET_SNAP_PERMISSION_KEY]?.caveats?.find((e=>e.type===Ie.SnapCaveatType.SnapIds))?.value??{};return Object.keys(f).reduce(((e,t)=>{const f=this.get(t),a=this.getTruncated(t);return a&&f?.status!==Ie.SnapStatus.Installing&&(e[t]=a),e}),{})}async installSnaps(e,t){Te(this,a,"m",I).call(this);const f={},n=Object.keys(t),s=[],r=[];try{for(const[n,{version:i}]of Object.entries(t)){(0,Ie.assertIsValidSnapId)(n);const[t,d]=(0,Ie.resolveVersionRange)(i);if(t)throw Pe.rpcErrors.invalidParams(`The "version" field must be a valid SemVer version range if specified. Received: "${i}".`);const l=Te(this,m,"f").call(this,n,{versionRange:d,fetch:Te(this,c,"f"),allowLocal:Te(this,o,"f").allowLocalSnaps,resolveVersion:async e=>Te(this,o,"f").requireAllowlist?await Te(this,a,"m",z).call(this,n,e):e}),u=this.has(n)&&!l.shouldAlwaysReload;if(u&&Te(this,a,"m",ve).call(this,n,d)){const e=this.getExpect(n);s.push({snapId:n,oldVersion:e.version});let t=Te(this,a,"m",ce).call(this,n);if(t!==undefined)throw new Error("This snap is already being updated.");t=Te(this,a,"m",de).call(this,n),t.newVersion=d}else u||r.push(n);f[n]=await this.processRequestedSnap(e,n,l,d)}r.forEach((t=>this.messagingSystem.publish("SnapController:snapInstalled",this.getTruncatedExpect(t),e,!1))),s.forEach((({snapId:t,oldVersion:f})=>this.messagingSystem.publish("SnapController:snapUpdated",this.getTruncatedExpect(t),f,e,!1))),n.forEach((e=>Te(this,y,"f").delete(e)))}catch(e){const t=r.filter((e=>this.has(e)));await this.removeSnaps(t);const f=[...Te(this,y,"f").keys()],n=s.map((({snapId:e})=>e)).filter((e=>f.includes(e)));throw await Te(this,a,"m",ue).call(this,n),e}return f}async processRequestedSnap(e,t,n,s){const r=this.getTruncated(t);if(r&&!n.shouldAlwaysReload)return(0,Ae.satisfiesVersionRange)(r.version,s)?r:await this.updateSnap(e,t,n,s,!1);Te(this,a,"m",O).call(this);let i=Te(this,a,"m",V).call(this,{origin:e,snapId:t,type:f.SNAP_APPROVAL_INSTALL});this.messagingSystem.publish("SnapController:snapInstallStarted",t,e,!1),r&&this.isRunning(t)&&await this.stopSnap(t,Ie.SnapStatusEvents.Stop),r&&n.shouldAlwaysReload&&Te(this,a,"m",U).call(this,t);try{const{sourceCode:r}=await Te(this,a,"m",Z).call(this,{origin:e,id:t,location:n,versionRange:s});await this.authorize(t,i),i=Te(this,a,"m",V).call(this,{origin:e,snapId:t,type:f.SNAP_APPROVAL_RESULT}),await Te(this,a,"m",G).call(this,{snapId:t,sourceCode:r});const o=this.getTruncatedExpect(t);return Te(this,a,"m",W).call(this,i.id,{loading:!1,type:f.SNAP_APPROVAL_INSTALL}),o}catch(n){(0,Ie.logError)(`Error when adding ${t}.`,n);const s=n instanceof Error?n.message:n.toString();throw Te(this,a,"m",W).call(this,i.id,{loading:!1,type:f.SNAP_APPROVAL_INSTALL,error:s}),this.messagingSystem.publish("SnapController:snapInstallFailed",t,e,!1,s),n}}async updateSnap(e,t,n,s=Ie.DEFAULT_REQUESTED_SNAP_VERSION,r=!0){Te(this,a,"m",O).call(this),Te(this,a,"m",I).call(this);const i=this.getExpect(t);if(i.preinstalled)throw new Error("Preinstalled Snaps cannot be manually updated.");if(!(0,Ae.isValidSemVerRange)(s))throw new Error(`Received invalid snap version range: "${s}".`);let o=Te(this,a,"m",V).call(this,{origin:e,snapId:t,type:f.SNAP_APPROVAL_UPDATE});try{this.messagingSystem.publish("SnapController:snapInstallStarted",t,e,!0);const c=i.manifest,d=await(0,Ve.fetchSnap)(t,n),{sourceCode:l,manifest:u}=d,b=u.result,h=b.version;if(!(0,Ae.gtVersion)(h,i.version))throw Pe.rpcErrors.invalidParams(`Snap "${t}@${i.version}" is already installed. Couldn't update to a version inside requested "${s}" range.`);if(!(0,Ae.satisfiesVersionRange)(h,s))throw new Error(`Version mismatch. Manifest for "${t}" specifies version "${h}" which doesn't satisfy requested version range "${s}".`);await Te(this,a,"m",j).call(this,t,{version:h,checksum:b.source.shasum,permissions:b.initialPermissions,platformVersion:b.platformVersion});const p=(0,je.processSnapPermissions)(b.initialPermissions);Te(this,a,"m",Y).call(this,p);const{newPermissions:m,unusedPermissions:g,approvedPermissions:y}=Te(this,a,"m",me).call(this,t,p),{newConnections:w,unusedConnections:v,approvedConnections:k}=Te(this,a,"m",ye).call(this,t,c.initialConnections??{},b.initialConnections??{});Te(this,a,"m",W).call(this,o.id,{permissions:m,newVersion:b.version,newPermissions:m,approvedPermissions:y,unusedPermissions:g,newConnections:w,unusedConnections:v,approvedConnections:k,loading:!1});const{permissions:S,..._}=await o.promise;o=Te(this,a,"m",V).call(this,{origin:e,snapId:t,type:f.SNAP_APPROVAL_RESULT}),this.isRunning(t)&&await this.stopSnap(t,Ie.SnapStatusEvents.Stop),Te(this,a,"m",x).call(this,t,Ie.SnapStatusEvents.Update),Te(this,a,"m",J).call(this,{origin:e,id:t,files:d,isUpdate:!0}),Te(this,a,"m",we).call(this,{snapId:t,unusedPermissions:g,newPermissions:S,requestData:_}),b.initialConnections&&Te(this,a,"m",F).call(this,t,c.initialConnections??null,b.initialConnections);const T=Te(this,a,"m",ce).call(this,t);T!==undefined&&(T.permissions.revoked=g,T.permissions.granted=S,T.permissions.requestData=_);const C=l.toString();(0,Ae.assert)("string"==typeof C&&C.length>0,`Invalid source code for snap "${t}".`);try{await Te(this,a,"m",G).call(this,{snapId:t,sourceCode:C})}catch{throw new Error(`Snap ${t} crashed with updated source code.`)}const E=this.getTruncatedExpect(t);return r&&this.messagingSystem.publish("SnapController:snapUpdated",E,i.version,e,!1),Te(this,a,"m",W).call(this,o.id,{loading:!1,type:f.SNAP_APPROVAL_UPDATE}),E}catch(n){(0,Ie.logError)(`Error when updating ${t},`,n);const s=n instanceof Error?n.message:n.toString();throw Te(this,a,"m",W).call(this,o.id,{loading:!1,error:s,type:f.SNAP_APPROVAL_UPDATE}),this.messagingSystem.publish("SnapController:snapInstallFailed",t,e,!0,s),n}}async getRegistryMetadata(e){return Te(this,a,"m",I).call(this),await this.messagingSystem.call("SnapsRegistry:getMetadata",e)}async authorize(e,t){(0,Ue.log)(`Authorizing snap: ${e}`);const f=this.state.snaps[e],{initialPermissions:n,initialConnections:s}=f;try{const r=(0,je.processSnapPermissions)(n);Te(this,a,"m",Y).call(this,r),Te(this,a,"m",W).call(this,t.id,{loading:!1,connections:s??{},permissions:r});const{permissions:i,...o}=await t.promise;Te(this,a,"m",we).call(this,{snapId:e,newPermissions:i,requestData:o}),f.manifest.initialConnections&&Te(this,a,"m",F).call(this,e,null,f.manifest.initialConnections)}finally{Te(this,a,"m",he).call(this,e).installPromise=null}}destroy(){super.destroy(),Te(this,w,"f")&&clearTimeout(Te(this,w,"f")),this.messagingSystem.unsubscribe("ExecutionService:unhandledError",this._onUnhandledSnapError),this.messagingSystem.unsubscribe("ExecutionService:outboundRequest",this._onOutboundRequest),this.messagingSystem.unsubscribe("ExecutionService:outboundResponse",this._onOutboundResponse),this.messagingSystem.clearEventSubscriptions("SnapController:snapInstalled"),this.messagingSystem.clearEventSubscriptions("SnapController:snapUpdated")}async handleRequest({snapId:e,origin:t,handler:f,request:n}){Te(this,a,"m",I).call(this);const s={jsonrpc:"2.0",id:(0,Me.nanoid)(),...n};(0,Ae.assertIsJsonRpcRequest)(s);const r=je.handlerEndowments[f];(0,Ae.assert)("string"==typeof r||null===r,"'permissionName' must be either a string or null.");const i=this.messagingSystem.call("PermissionController:getPermissions",e);if(!(null===r||i&&(0,Ae.hasProperty)(i,r)))throw new Error(`Snap "${e}" is not permitted to use "${r}".`);const o=r?i[r]:undefined;if(r===je.SnapEndowments.Rpc||r===je.SnapEndowments.Keyring){(0,Ae.assert)(o);const f=this.messagingSystem.call("SubjectMetadataController:getSubjectMetadata",t),a=r===je.SnapEndowments.Rpc?(0,je.getRpcCaveatOrigins)(o):(0,je.getKeyringCaveatOrigins)(o);if((0,Ae.assert)(a),!(0,Ie.isOriginAllowed)(a,f?.subjectType??Ee.SubjectType.Website,t))throw new Error(`Snap "${e}" is not permitted to handle requests from "${t}".`)}const c=Te(this,a,"m",ee).call(this,e);if(!c)throw new Error(`Snap RPC message handler not found for snap "${e}".`);return c({origin:t,handler:f,request:s,timeout:Te(this,a,"m",X).call(this,o)})}}f.SnapController=Ge,n=new WeakMap,s=new WeakMap,r=new WeakMap,i=new WeakMap,o=new WeakMap,c=new WeakMap,d=new WeakMap,l=new WeakMap,u=new WeakMap,b=new WeakMap,h=new WeakMap,p=new WeakMap,m=new WeakMap,g=new WeakMap,y=new WeakMap,w=new WeakMap,v=new WeakMap,k=new WeakMap,a=new WeakSet,S=function(){const e=({snapId:e})=>this.getExpect(e).enabled,t={initial:Ie.SnapStatus.Installing,states:{[Ie.SnapStatus.Installing]:{on:{[Ie.SnapStatusEvents.Start]:{target:Ie.SnapStatus.Running,cond:e}}},[Ie.SnapStatus.Updating]:{on:{[Ie.SnapStatusEvents.Start]:{target:Ie.SnapStatus.Running,cond:e},[Ie.SnapStatusEvents.Stop]:Ie.SnapStatus.Stopped}},[Ie.SnapStatus.Running]:{on:{[Ie.SnapStatusEvents.Stop]:Ie.SnapStatus.Stopped,[Ie.SnapStatusEvents.Crash]:Ie.SnapStatus.Crashed}},[Ie.SnapStatus.Stopped]:{on:{[Ie.SnapStatusEvents.Start]:{target:Ie.SnapStatus.Running,cond:e},[Ie.SnapStatusEvents.Update]:Ie.SnapStatus.Updating}},[Ie.SnapStatus.Crashed]:{on:{[Ie.SnapStatusEvents.Start]:{target:Ie.SnapStatus.Running,cond:e},[Ie.SnapStatusEvents.Update]:Ie.SnapStatus.Updating}}}};_e(this,v,(0,xe.createMachine)(t),"f"),(0,He.validateMachine)(Te(this,v,"f"))},_=function(){this.messagingSystem.registerActionHandler(`${f.controllerName}:clearSnapState`,((...e)=>this.clearSnapState(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:get`,((...e)=>this.get(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:getSnapState`,(async(...e)=>this.getSnapState(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:handleRequest`,(async(...e)=>this.handleRequest(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:has`,((...e)=>this.has(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:updateBlockedSnaps`,(async()=>this.updateBlockedSnaps())),this.messagingSystem.registerActionHandler(`${f.controllerName}:updateSnapState`,(async(...e)=>this.updateSnapState(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:enable`,((...e)=>this.enableSnap(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:disable`,(async(...e)=>this.disableSnap(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:remove`,(async(...e)=>this.removeSnap(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:getPermitted`,((...e)=>this.getPermittedSnaps(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:install`,(async(...e)=>this.installSnaps(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:getAll`,((...e)=>this.getAllSnaps(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:getRunnableSnaps`,((...e)=>this.getRunnableSnaps(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:incrementActiveReferences`,((...e)=>this.incrementActiveReferences(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:decrementActiveReferences`,((...e)=>this.decrementActiveReferences(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:getRegistryMetadata`,(async(...e)=>this.getRegistryMetadata(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:disconnectOrigin`,((...e)=>this.removeSnapFromSubject(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:revokeDynamicPermissions`,((...e)=>this.revokeDynamicSnapPermissions(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:getFile`,(async(...e)=>this.getSnapFile(...e))),this.messagingSystem.registerActionHandler(`${f.controllerName}:stopAllSnaps`,(async(...e)=>this.stopAllSnaps(...e)))},T=function(e){for(const{snapId:t,manifest:f,files:n,removable:s,hidden:r,hideSnapBranding:i}of e){const e=this.get(t),o=e!==undefined,c=o&&(0,Ae.gtVersion)(f.version,e.version);if(o&&(!c||!0!==e.preinstalled))continue;const d=new Ie.VirtualFile({path:Ie.NpmSnapFileNames.Manifest,value:JSON.stringify(f),result:f}),l=n.map((({path:e,value:t})=>new Ie.VirtualFile({value:t,path:e}))),{filePath:u,iconPath:b}=f.source.location.npm,h=l.find((e=>e.path===u)),p=b?l.find((e=>e.path===b)):undefined;(0,Ae.assert)(h,"Source code not provided for preinstalled snap."),(0,Ae.assert)(!b||b&&p,"Icon not provided for preinstalled snap."),(0,Ae.assert)(f.source.files===undefined,"Auxiliary files are not currently supported for preinstalled snaps.");const m=f.source.locales?.map((e=>l.find((t=>t.path===e))))??[],g=(0,Ie.getValidatedLocalizationFiles)(m.filter(Boolean));(0,Ae.assert)(m.length===g.length,"Missing localization files for preinstalled snap.");const y={manifest:d,sourceCode:h,svgIcon:p,auxiliaryFiles:[],localizationFiles:g};Te(this,a,"m",J).call(this,{id:t,origin:"metamask",files:y,removable:s,hidden:r,hideSnapBranding:i,preinstalled:!0});const w=(0,je.processSnapPermissions)(f.initialPermissions);Te(this,a,"m",Y).call(this,w);const{newPermissions:v,unusedPermissions:k}=Te(this,a,"m",me).call(this,t,w);Te(this,a,"m",we).call(this,{snapId:t,newPermissions:v,unusedPermissions:k}),f.initialConnections&&Te(this,a,"m",F).call(this,t,e?.initialConnections??null,f.initialConnections),this.update((e=>{e.snaps[t].status=Ie.SnapStatus.Stopped})),c?this.messagingSystem.publish("SnapController:snapUpdated",this.getTruncatedExpect(t),e.version,"metamask",!0):this.messagingSystem.publish("SnapController:snapInstalled",this.getTruncatedExpect(t),"metamask",!0)}},C=function e(){_e(this,w,setTimeout((()=>{Te(this,a,"m",A).call(this).catch((e=>{(0,Ie.logError)(e)})),Te(this,a,"m",e).call(this)}),Te(this,d,"f")),"f")},E=async function(e,t){if(this.has(e)){try{this.update((f=>{f.snaps[e].blocked=!0,f.snaps[e].blockInformation=t})),await this.disableSnap(e)}catch(t){(0,Ie.logError)(`Encountered error when stopping blocked snap "${e}".`,t)}this.messagingSystem.publish(`${f.controllerName}:snapBlocked`,e,t)}},P=function(e){this.has(e)&&this.state.snaps[e].blocked&&(this.update((t=>{t.snaps[e].blocked=!1,delete t.snaps[e].blockInformation})),this.messagingSystem.publish(`${f.controllerName}:snapUnblocked`,e))},j=async function(e,{platformVersion:t,...f}){const n=(await this.messagingSystem.call("SnapsRegistry:get",{[e]:f}))[e];if(n.status===Be.SnapsRegistryStatus.Blocked)throw new Error(`Cannot install version "${f.version}" of snap "${e}": The version is blocked. ${n.reason?.explanation??""}`);const s=Object.keys(f.permissions).some((e=>!Le.ALLOWED_PERMISSIONS.includes(e)));if(Te(this,o,"f").requireAllowlist&&s&&n.status!==Be.SnapsRegistryStatus.Verified)throw new Error(`Cannot install version "${f.version}" of snap "${e}": ${n.status===Be.SnapsRegistryStatus.Unavailable?"The registry is temporarily unavailable.":"The snap is not on the allowlist."}`);Te(this,a,"m",Q).call(this,e,t)},O=function(){(0,Ae.assert)(!0!==Te(this,o,"f").disableSnapInstallation,"Installing Snaps is currently disabled in this version of MetaMask.")},I=function(){const e=Te(this,h,"f").call(this);(0,Ae.assert)(!0!==e.disableSnaps,"The Snaps platform requires basic functionality to be used. Enable basic functionality in the settings to use the Snaps platform.")},A=async function(){const e=[...Te(this,g,"f").entries()];return Promise.all(e.filter((([e,t])=>0===t.activeReferences&&0===t.pendingInboundRequests.length&&t.lastRequest&&Te(this,l,"f")&&(0,Ae.timeSince)(t.lastRequest)>Te(this,l,"f"))).map((async([e])=>this.stopSnap(e,Ie.SnapStatusEvents.Stop))))},x=function(e,t){const{interpreter:f}=Te(this,a,"m",he).call(this,e);f.send(t),this.update((t=>{t.snaps[e].status=f.state.value}))},N=async function(e){await this.messagingSystem.call("ExecutionService:terminateSnap",e),await new Promise((e=>setTimeout(e,1)));Te(this,a,"m",he).call(this,e).pendingInboundRequests.filter((e=>"finished"!==e.timer.status)).forEach((e=>e.timer.finish())),await new Promise((e=>setTimeout(e,1))),this.messagingSystem.publish("SnapController:snapTerminated",this.getTruncatedExpect(e))},M=async function({snapId:e,salt:t,useCache:f,keyMetadata:n}){const s=Te(this,a,"m",he).call(this,e);if(s.encryptionKey&&s.encryptionSalt&&f)return{key:await Te(this,u,"f").importKey(s.encryptionKey),salt:s.encryptionSalt};const r=t??Te(this,u,"f").generateSalt(),i=await Te(this,b,"f").call(this),o=await(0,je.getEncryptionEntropy)({snapId:e,seed:i,cryptographicFunctions:Te(this,p,"f")}),c=await Te(this,u,"f").keyFromPassword(o,r,!0,n),d=await Te(this,u,"f").exportKey(c);return f&&(s.encryptionKey=d,s.encryptionSalt=r),{key:c,salt:r}},R=function(e){const t=Te(this,a,"m",he).call(this,e);return null!==t.encryptionKey&&null!==t.encryptionSalt},L=async function(e,t){try{const f=JSON.parse(t),{salt:n,keyMetadata:s}=f,r=Te(this,a,"m",R).call(this,e)||Te(this,u,"f").isVaultUpdated(t),{key:i}=await Te(this,a,"m",M).call(this,{snapId:e,salt:n,useCache:r,keyMetadata:s??Le.LEGACY_ENCRYPTION_KEY_DERIVATION_OPTIONS});return await Te(this,u,"f").decryptWithKey(i,f)}catch{throw Pe.rpcErrors.internal({message:"Failed to decrypt snap state, the state must be corrupted."})}},D=async function(e,t){const{key:f,salt:n}=await Te(this,a,"m",M).call(this,{snapId:e,useCache:!0}),s=await Te(this,u,"f").encryptWithKey(f,t);return s.salt=n,JSON.stringify(s)},B=async function(e,t,f){return null===t?null:f?await Te(this,a,"m",D).call(this,e,t):JSON.stringify(t)},$=async function(e,t,f){const n=Te(this,a,"m",he).call(this,e);await n.stateMutex.runExclusive((async()=>{const n=await Te(this,a,"m",B).call(this,e,t,f);return f?this.update((t=>{t.snapStates[e]=n})):this.update((t=>{t.unencryptedSnapStates[e]=n}))}))},F=function(e,t,f){if(t){const a=(0,Ve.setDiff)(t,f);for(const t of Object.keys(a))this.removeSnapFromSubject(t,e)}for(const t of Object.keys(f))Te(this,a,"m",q).call(this,t,e)},q=function(e,t){const f=this.messagingSystem.call("PermissionController:getPermissions",e),a=f?.[je.WALLET_SNAP_PERMISSION_KEY]?.caveats?.find((e=>e.type===Ie.SnapCaveatType.SnapIds));if(Boolean(a?.value?.[t]))return;if(a)return void this.messagingSystem.call("PermissionController:updateCaveat",e,je.WALLET_SNAP_PERMISSION_KEY,Ie.SnapCaveatType.SnapIds,{...a.value,[t]:{}});const n={[je.WALLET_SNAP_PERMISSION_KEY]:{caveats:[{type:Ie.SnapCaveatType.SnapIds,value:{[t]:{}}}]}};this.messagingSystem.call("PermissionController:grantPermissions",{approvedPermissions:n,subject:{origin:e}})},H=function(e){const t=this.messagingSystem.call("PermissionController:getSubjectNames");for(const f of t)this.removeSnapFromSubject(f,e)},U=function(e){this.messagingSystem.call("PermissionController:hasPermissions",e)&&this.messagingSystem.call("PermissionController:revokeAllPermissions",e)},V=function({origin:e,snapId:t,type:f}){const a=(0,Me.nanoid)();return{id:a,promise:this.messagingSystem.call("ApprovalController:addRequest",{origin:e,id:a,type:f,requestData:{metadata:{id:a,origin:t,dappOrigin:e},snapId:t},requestState:{loading:!0}},!0)}},W=function(e,t){try{this.messagingSystem.call("ApprovalController:updateRequestState",{id:e,requestState:t})}catch{}},z=async function(e,t){return await this.messagingSystem.call("SnapsRegistry:resolveVersion",e,t)},Z=async function(e){const{id:t,location:f,versionRange:n}=e;Te(this,a,"m",pe).call(this,t);const s=Te(this,a,"m",he).call(this,t);s.installPromise||((0,Ue.log)(`Adding snap: ${t}`),s.installPromise=(async()=>{const s=await(0,Ve.fetchSnap)(t,f),r=s.manifest.result;if(!(0,Ae.satisfiesVersionRange)(r.version,n))throw new Error(`Version mismatch. Manifest for "${t}" specifies version "${r.version}" which doesn't satisfy requested version range "${n}".`);return await Te(this,a,"m",j).call(this,t,{version:r.version,checksum:r.source.shasum,permissions:r.initialPermissions,platformVersion:r.platformVersion}),Te(this,a,"m",J).call(this,{...e,files:s,id:t})})());try{return await s.installPromise}catch(e){throw s.installPromise=null,e}},G=async function(e){const{snapId:t}=e;if(this.isRunning(t))throw new Error(`Snap "${t}" is already started.`);try{const f=Te(this,a,"m",he).call(this,t),n=await this.messagingSystem.call("ExecutionService:executeSnap",{...e,endowments:await Te(this,a,"m",K).call(this,t)});return Te(this,a,"m",x).call(this,t,Ie.SnapStatusEvents.Start),f.lastRequest=Date.now(),n}catch(e){throw await Te(this,a,"m",N).call(this,t),e}},K=async function(e){let t=[];for(const f of Te(this,r,"f"))if(this.messagingSystem.call("PermissionController:hasPermission",e,f)){const a=await this.messagingSystem.call("PermissionController:getEndowments",e,f);if(a){if(!Array.isArray(a)||a.some((e=>"string"!=typeof e)))throw new Error("Expected an array of string endowment names.");t=t.concat(a)}}const f=[...new Set([...Ie.DEFAULT_ENDOWMENTS,...t])];return f.length0,`Invalid source code for snap "${t}".`);const g=b.map((e=>((0,Ae.assert)("string"==typeof e.data.base64),{path:e.path,value:e.data.base64}))),y=this.state.snaps[t],w=[...y?.versionHistory??[],{version:p,date:Date.now(),origin:f}],k=h.map((e=>e.result)),S={...y,blocked:!1,enabled:!0,removable:r,preinstalled:i,hidden:o,hideSnapBranding:c,id:t,initialConnections:d.result.initialConnections,initialPermissions:d.result.initialPermissions,manifest:d.result,status:Te(this,v,"f").config.initial,sourceCode:m,version:p,versionHistory:w,auxiliaryFiles:g,localizationFiles:k};delete S.blockInformation;const{inversePatches:_}=this.update((e=>{e.snaps[t]=S}));if(s){const e=Te(this,a,"m",ce).call(this,t);e!==undefined&&(e.statePatches=_)}const{proposedName:T}=(0,Ie.getLocalizedSnapManifest)(d.result,"en",k);return this.messagingSystem.call("SubjectMetadataController:addSubjectMetadata",{subjectType:Ee.SubjectType.Snap,name:T,origin:S.id,version:p,svgIcon:u?.toString()??null}),{...S,sourceCode:m}},Y=function(e){const t=Object.keys(e),f=Array.from(new Set(Object.values(je.handlerEndowments)));(0,Ae.assert)(t.some((e=>f.includes(e))),`A snap must request at least one of the following permissions: ${f.filter((e=>null!==e)).join(", ")}.`);const a=t.reduce(((e,t)=>((0,Ae.hasProperty)(Te(this,i,"f"),t)&&e.push(Te(this,i,"f")[t]),e)),[]);(0,Ae.assert)(0===a.length,`One or more permissions are not allowed:\n${a.join("\n")}`)},Q=function(e,t){if(t!==undefined&&(0,Re.gt)(t,(0,Ie.getPlatformVersion)())){const f=`The Snap "${e}" requires platform version "${t}" which is greater than the current platform version "${(0,Ie.getPlatformVersion)()}".`;if(Te(this,o,"f").rejectInvalidPlatformVersion)throw new Error(f);(0,Ie.logWarning)(f)}},X=function(e){return(0,je.getMaxRequestTimeCaveat)(e)??this.maxRequestTime},ee=function(e){const t=Te(this,a,"m",he).call(this,e),f=t.rpcHandler;if(f)return f;const n=new $e.RequestQueue(5),s=new Map,r=async({origin:t,handler:f,request:r,timeout:i})=>{if(!this.state.snaps[e].enabled)throw new Error(`Snap "${e}" is disabled.`);if(this.state.snaps[e].status===Ie.SnapStatus.Installing)throw new Error(`Snap "${e}" is currently being installed. Please try again later.`);if(!this.isRunning(e)){let f=s.get(e);if(f){if(n.get(t)>=n.maxQueueSize)throw new Error("Exceeds maximum number of requests waiting to be resolved, please try again.")}else f=this.startSnap(e),s.set(e,f);n.increment(t);try{await f}finally{n.decrement(t),s.get(e)===f&&s.delete(e)}}const o=new qe.Timer(i);Te(this,a,"m",ie).call(this,e,r.id,o);const c=this.messagingSystem.call("ExecutionService:handleRpcRequest",e,{origin:t,handler:f,request:r});try{const t=await(0,Ve.withTimeout)(c,o);if(t===Ve.hasTimedOut)throw new Error(`${e} failed to respond to the request in time.`);await Te(this,a,"m",re).call(this,e,f,t);const n=await Te(this,a,"m",ae).call(this,e,f,r,t);return Te(this,a,"m",oe).call(this,e,r.id),n}catch(t){Te(this,a,"m",oe).call(this,e,r.id);const[f,n]=(0,Ie.unwrapError)(t);throw n||await this.stopSnap(e,Ie.SnapStatusEvents.Crash),f}};return t.rpcHandler=r,r},te=async function(e,t,f){return this.messagingSystem.call("SnapInterfaceController:createInterface",e,t,undefined,f)},fe=function(e,t){(0,Ae.assert)(this.messagingSystem.call("SnapInterfaceController:getInterface",e,t))},ae=async function(e,t,f,n){switch(t){case Ie.HandlerType.OnTransaction:case Ie.HandlerType.OnSignature:case Ie.HandlerType.OnHomePage:case Ie.HandlerType.OnSettingsPage:{const t=n;if(t&&(0,Ae.hasProperty)(t,"content")){const{content:f,...n}=t;return{...n,id:await Te(this,a,"m",te).call(this,e,f)}}return n}case Ie.HandlerType.OnAssetsLookup:return Te(this,a,"m",ne).call(this,e,f,n);case Ie.HandlerType.OnAssetsConversion:return Te(this,a,"m",se).call(this,f,n);default:return n}},ne=function(e,{params:t},{assets:f}){const a=this.messagingSystem.call("PermissionController:getPermissions",e);(0,Ae.assert)(a);const n=a[je.SnapEndowments.Assets],s=(0,je.getChainIdsCaveat)(n);(0,Ae.assert)(s);const{assets:r}=t;return{assets:Object.keys(f).reduce(((e,t)=>{const a=t;return s.some((e=>a.startsWith(e)))&&r.includes(a)&&(e[a]=f[a]),e}),{})}},se=function({params:e},{conversionRates:t}){const{conversions:f}=e;return{conversionRates:f.reduce(((e,f)=>{var a;const n=t[f.from]?.[f.to];return n&&(e[a=f.from]??(e[a]={}),e[f.from][f.to]=n),e}),{})}},re=async function(e,t,f){switch(t){case Ie.HandlerType.OnTransaction:(0,Ae.assertStruct)(f,Ie.OnTransactionResponseStruct),f&&(0,Ae.hasProperty)(f,"id")&&Te(this,a,"m",fe).call(this,e,f.id);break;case Ie.HandlerType.OnSignature:(0,Ae.assertStruct)(f,Ie.OnSignatureResponseStruct),f&&(0,Ae.hasProperty)(f,"id")&&Te(this,a,"m",fe).call(this,e,f.id);break;case Ie.HandlerType.OnHomePage:(0,Ae.assertStruct)(f,Ie.OnHomePageResponseStruct),f&&(0,Ae.hasProperty)(f,"id")&&Te(this,a,"m",fe).call(this,e,f.id);break;case Ie.HandlerType.OnSettingsPage:(0,Ae.assertStruct)(f,Ie.OnSettingsPageResponseStruct),f&&(0,Ae.hasProperty)(f,"id")&&Te(this,a,"m",fe).call(this,e,f.id);break;case Ie.HandlerType.OnNameLookup:(0,Ae.assertStruct)(f,Ie.OnNameLookupResponseStruct);break;case Ie.HandlerType.OnAssetsLookup:(0,Ae.assertStruct)(f,Oe.OnAssetsLookupResponseStruct);break;case Ie.HandlerType.OnAssetsConversion:(0,Ae.assertStruct)(f,Oe.OnAssetsConversionResponseStruct)}},ie=function(e,t,f){const n=Te(this,a,"m",he).call(this,e);n.pendingInboundRequests.push({requestId:t,timer:f}),n.lastRequest=null},oe=function(e,t){const f=Te(this,a,"m",he).call(this,e);f.pendingInboundRequests=f.pendingInboundRequests.filter((e=>e.requestId!==t)),0===f.pendingInboundRequests.length&&(f.lastRequest=Date.now())},ce=function(e){return Te(this,y,"f").get(e)},de=function(e){(0,Ae.assert)(Te(this,y,"f").get(e)===undefined,new Error(`Snap "${e}" rollback snapshot already exists.`)),Te(this,y,"f").set(e,{statePatches:[],permissions:{},newVersion:""});const t=Te(this,y,"f").get(e);return(0,Ae.assert)(t!==undefined,new Error(`Snapshot creation failed for ${e}.`)),t},le=async function(e){const t=Te(this,a,"m",ce).call(this,e);if(!t)throw new Error("A snapshot does not exist for this snap.");await this.stopSnap(e,Ie.SnapStatusEvents.Stop),this.get(e)?.status!==Ie.SnapStatus.Stopped&&Te(this,a,"m",x).call(this,e,Ie.SnapStatusEvents.Stop);const{statePatches:f,permissions:n}=t;f?.length&&this.applyPatches(f),this.get(e)?.status!==Ie.SnapStatus.Stopped&&this.update((t=>{t.snaps[e].status=Ie.SnapStatus.Stopped})),Te(this,a,"m",we).call(this,{snapId:e,unusedPermissions:n.granted,newPermissions:n.revoked,requestData:n.requestData});const s=this.getTruncatedExpect(e);this.messagingSystem.publish("SnapController:snapRolledback",s,t.newVersion),Te(this,y,"f").delete(e)},ue=async function(e){for(const t of e)await Te(this,a,"m",le).call(this,t)},be=function(e){return Te(this,g,"f").get(e)},he=function(e){const t=Te(this,a,"m",be).call(this,e);return(0,Ae.assert)(t!==undefined,new Error(`Snap "${e}" runtime data not found`)),t},pe=function(e){if(Te(this,g,"f").has(e))return;const t=this.get(e),f=(0,xe.interpret)(Te(this,v,"f"));f.start({context:{snapId:e},value:t?.status??Te(this,v,"f").config.initial}),(0,He.forceStrict)(f),Te(this,g,"f").set(e,{lastRequest:null,rpcHandler:null,installPromise:null,encryptionKey:null,encryptionSalt:null,activeReferences:0,pendingInboundRequests:[],pendingOutboundRequests:0,interpreter:f,stopping:!1,stateMutex:new Ne.Mutex,getStateMutex:new Ne.Mutex})},me=function(e,t){const f=this.messagingSystem.call("PermissionController:getPermissions",e)??{},a=(0,Ve.permissionsDiff)(t,f),n=(0,Ve.permissionsDiff)(f,t);return{newPermissions:a,unusedPermissions:n,approvedPermissions:(0,Ve.permissionsDiff)(f,n)}},ge=function(e,t){const f=this.messagingSystem.call("PermissionController:getPermissions",t),a=f?.[je.WALLET_SNAP_PERMISSION_KEY]?.caveats?.find((e=>e.type===Ie.SnapCaveatType.SnapIds));return Boolean(a?.value?.[e])},ye=function(e,t,f){const n=Object.keys(t).filter((t=>Te(this,a,"m",ge).call(this,e,t))).reduce(((e,f)=>(e[f]=t[f],e)),{}),s=(0,Ve.setDiff)(f,n),r=(0,Ve.setDiff)(n,f);return{newConnections:s,unusedConnections:r,approvedConnections:(0,Ve.setDiff)(n,r)}},we=function({snapId:e,unusedPermissions:t={},newPermissions:f={},requestData:a}){const n=Object.keys(t);(0,Ae.isNonEmptyArray)(n)&&this.messagingSystem.call("PermissionController:revokePermissions",{[e]:n}),(0,Ae.isNonEmptyArray)(Object.keys(f))&&this.messagingSystem.call("PermissionController:grantPermissions",{approvedPermissions:f,subject:{origin:e},requestData:a})},ve=function(e,t){const f=this.getExpect(e);return!(0,Ae.satisfiesVersionRange)(f.version,t)&&!(0,Ae.gtRange)(f.version,t)},ke=async function(e,t,f){const a=je.handlerEndowments[f];(0,Ae.assert)(a,"Lifecycle hook must have an endowment.");this.messagingSystem.call("PermissionController:hasPermission",t,a)&&await this.handleRequest({snapId:t,handler:f,origin:e,request:{jsonrpc:"2.0",method:f}})},Se=function(){for(const e of Te(this,g,"f").values())e.encryptionKey=null,e.encryptionSalt=null,e.state=undefined}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/SnapController.cjs"}],[2656,{"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.Timer=void 0;const a=e("@metamask/utils");f.Timer=class{constructor(e){(0,a.assert)(!Number.isNaN(e),new TypeError("Can't start a timer with NaN time")),(0,a.assert)(e>=0,new TypeError("Can't start a timer with negative time")),this.state={value:"stopped",remaining:e}}get status(){return this.state.value}get remaining(){return this.state.remaining}cancel(){(0,a.assert)("paused"===this.status||"running"===this.status,new Error("Tried to cancel a not running Timer")),this.onFinish(!1)}finish(){(0,a.assert)("finished"!==this.status,new Error("Tried to finish a finished Timer.")),this.onFinish(!0)}pause(){(0,a.assert)("running"===this.state.value,new Error("Tried to pause a not running Timer"));const{callback:e,start:t,timeout:f,remaining:n}=this.state;f!==undefined&&clearTimeout(f),this.state={value:"paused",callback:e,remaining:n-(Date.now()-t)}}start(e){(0,a.assert)("stopped"===this.state.value,new Error("Tried to start an already running Timer"));const{remaining:t}=this.state;this.state={value:"paused",remaining:t,callback:e},this.resume()}resume(){(0,a.assert)("paused"===this.state.value,new Error("Tried to resume not paused Timer"));const{remaining:e,callback:t}=this.state,f=Date.now();let n;e!==Number.POSITIVE_INFINITY&&(n=setTimeout((()=>this.onFinish(!0)),e)),this.state={value:"running",callback:t,remaining:e,start:f,timeout:n}}onFinish(e){(0,a.assert)("running"===this.state.value||"paused"===this.state.value),"running"===this.state.value&&this.state.timeout!==undefined&&clearTimeout(this.state.timeout);const{callback:t,remaining:f}=this.state;this.state={value:"finished",remaining:"running"===this.state.value?f-(Date.now()-this.state.start):f},e&&t()}}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/Timer.cjs"}],[2657,{"@metamask/snaps-rpc-methods":2700},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.LEGACY_ENCRYPTION_KEY_DERIVATION_OPTIONS=f.ALLOWED_PERMISSIONS=void 0;const a=e("@metamask/snaps-rpc-methods");f.ALLOWED_PERMISSIONS=Object.freeze(["snap_dialog","snap_manageState","snap_notify","snap_getLocale",a.SnapEndowments.Cronjob,a.SnapEndowments.HomePage,a.SnapEndowments.LifecycleHooks,a.SnapEndowments.EthereumProvider,a.SnapEndowments.TransactionInsight,a.SnapEndowments.SignatureInsight]),f.LEGACY_ENCRYPTION_KEY_DERIVATION_OPTIONS={algorithm:"PBKDF2",params:{iterations:1e4}}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/constants.cjs"}],[2658,{"./SnapController.cjs":2655,"./location/index.cjs":2660,"./registry/index.cjs":2664,"./selectors.cjs":2667},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./location/index.cjs"),f),n(e("./SnapController.cjs"),f),n(e("./selectors.cjs"),f),n(e("./registry/index.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/index.cjs"}],[2659,{"@metamask/snaps-utils":2850,"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.HttpLocation=void 0;const a=e("@metamask/snaps-utils"),n=e("@metamask/utils");f.HttpLocation=class{constructor(e,t={}){this.cache=new Map,(0,n.assertStruct)(e.toString(),a.HttpSnapIdStruct,"Invalid Snap Id: "),this.fetchFn=t.fetch??globalThis.fetch.bind(undefined),this.fetchOptions=t.fetchOptions,this.url=e}async manifest(){if(this.validatedManifest)return this.validatedManifest.clone();const e=new URL(a.NpmSnapFileNames.Manifest,this.url).toString(),t=await this.fetchFn(e,this.fetchOptions);if(!t.ok)throw new Error(`Failed to fetch "${e}". Status code: ${t.status}.`);const f=await t.text(),n=(0,a.parseJson)(f),s=new a.VirtualFile({value:f,result:(0,a.createSnapManifest)(n),path:a.NpmSnapFileNames.Manifest,data:{canonicalPath:e}});return this.validatedManifest=s,this.manifest()}async fetch(e){const t=(0,a.normalizeRelative)(e),f=this.cache.get(t);if(f!==undefined)return f.clone();const s=this.toCanonical(t).toString(),r=await this.fetchFn(s,this.fetchOptions);if(!r.ok)throw new Error(`Failed to fetch "${s}". Status code: ${r.status}.`);const i=await r.arrayBuffer(),o=new a.VirtualFile({value:new Uint8Array(i),path:t,data:{canonicalPath:s}});return(0,n.assert)(!this.cache.has(t),"Corrupted cache, multiple files with same path."),this.cache.set(t,o),this.fetch(t)}get root(){return new URL(this.url)}toCanonical(e){return(0,n.assert)(!e.startsWith("/"),"Tried to parse absolute path."),new URL(e,this.url)}}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/location/http.cjs"}],[266,{"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.default=function(e){(0,a.hasProperty)(e,"NetworkController")&&(0,a.isObject)(e.NetworkController)&&(0,a.hasProperty)(e.NetworkController,"provider")&&(0,a.hasProperty)(e.NetworkController,"providerConfig")&&delete e.NetworkController.provider;return{...e}};var a=e("@metamask/utils")}}},{package:"$root$",file:"app/scripts/migrations/077-supplements/077-supplement-for-086.ts"}],[2660,{"./http.cjs":2659,"./local.cjs":2661,"./location.cjs":2662,"./npm.cjs":2663},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./location.cjs"),f),n(e("./npm.cjs"),f),n(e("./local.cjs"),f),n(e("./http.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/location/index.cjs"}],[2661,{"./http.cjs":2659,"@metamask/snaps-utils":2850,"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},s=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.LocalLocation=void 0;const r=e("@metamask/snaps-utils"),i=e("@metamask/utils"),o=e("./http.cjs");function c(e){return(0,i.assert)(e.data.canonicalPath!==undefined),e.data.canonicalPath=`local:${e.data.canonicalPath}`,e}f.LocalLocation=class{constructor(e,t={}){a.set(this,void 0),(0,i.assertStruct)(e.toString(),r.LocalSnapIdStruct,"Invalid Snap Id"),(0,i.assert)(t.fetchOptions===undefined,"Currently adding fetch options to local: is unsupported."),n(this,a,new o.HttpLocation(new URL(e.toString().slice(r.SnapIdPrefixes.local.length)),{...t,fetchOptions:{cache:"no-cache"}}),"f")}async manifest(){return c(await s(this,a,"f").manifest())}async fetch(e){return c(await s(this,a,"f").fetch(e))}get shouldAlwaysReload(){return!0}},a=new WeakMap}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/location/local.cjs"}],[2662,{"./http.cjs":2659,"./local.cjs":2661,"./npm.cjs":2663,"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.detectSnapLocation=void 0;const a=e("@metamask/utils"),n=e("./http.cjs"),s=e("./local.cjs"),r=e("./npm.cjs");f.detectSnapLocation=function(e,t){const f=t?.allowHttp??!1,i=t?.allowLocal??!1,o=new URL(e);switch(o.protocol){case"npm:":return new r.NpmLocation(o,t);case"local:":return(0,a.assert)(i,new TypeError("Fetching local snaps is disabled.")),new s.LocalLocation(o,t);case"http:":case"https:":return(0,a.assert)(f,new TypeError("Fetching snaps through http/https is disabled.")),new n.HttpLocation(o,t);default:throw new TypeError(`Unrecognized "${o.protocol}" snap location protocol.`)}}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/location/location.cjs"}],[2663,{"@metamask/snaps-utils":2850,"@metamask/utils":2950,"browserify-zlib":4068,"concat-stream":2669,"get-npm-tarball-url":4480,"readable-stream":5274,"readable-web-to-node-stream":5275,"tar-stream":2673},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s,r,i=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)},o=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.getNpmCanonicalBasePath=f.fetchNpmMetadata=f.NpmLocation=f.TARBALL_SIZE_SAFETY_LIMIT=f.BaseNpmLocation=f.DEFAULT_NPM_REGISTRY=void 0;const d=e("@metamask/snaps-utils"),l=e("@metamask/utils"),u=e("browserify-zlib"),b=c(e("concat-stream")),h=c(e("get-npm-tarball-url")),p=e("readable-stream"),m=e("readable-web-to-node-stream"),g=e("tar-stream");f.DEFAULT_NPM_REGISTRY=new URL("https://registry.npmjs.org");class y{constructor(e,t={}){a.add(this),n.set(this,void 0),s.set(this,void 0);const r=t.allowCustomRegistries??!1,i=t.fetch??globalThis.fetch.bind(undefined),o=t.versionRange??d.DEFAULT_REQUESTED_SNAP_VERSION,c=t.resolveVersion??(async e=>e);let u;(0,l.assertStruct)(e.toString(),d.NpmSnapIdStruct,"Invalid Snap Id: "),""===e.host&&""===e.port&&""===e.username&&""===e.password?u=f.DEFAULT_NPM_REGISTRY:(u="https://",e.username&&(u+=e.username,e.password&&(u+=`:${e.password}`),u+="@"),u+=e.host,u=new URL(u),(0,l.assert)(r,new TypeError(`Custom NPM registries are disabled, tried to use "${u.toString()}".`))),(0,l.assert)("/"===u.pathname&&""===u.search&&""===u.hash),(0,l.assert)(""!==e.pathname&&"/"!==e.pathname,new TypeError("The package name in NPM location is empty."));let b=e.pathname;b.startsWith("/")&&(b=b.slice(1)),this.meta={requestedRange:o,registry:u,packageName:b,fetch:i,resolveVersion:c}}async manifest(){if(i(this,n,"f"))return i(this,n,"f").clone();const e=await this.fetch("snap.manifest.json"),t=(0,d.parseJson)(e.toString());return e.result=(0,d.createSnapManifest)(t),o(this,n,e,"f"),this.manifest()}async fetch(e){const t=(0,d.normalizeRelative)(e);i(this,s,"f")||(await i(this,a,"m",r).call(this),(0,l.assert)(i(this,s,"f")!==undefined));const f=i(this,s,"f").get(t);return(0,l.assert)(f!==undefined,new TypeError(`File "${e}" not found in package.`)),f.clone()}get packageName(){return this.meta.packageName}get version(){return(0,l.assert)(this.meta.version!==undefined,"Tried to access version without first fetching NPM package."),this.meta.version}get registry(){return this.meta.registry}get versionRange(){return this.meta.requestedRange}}f.BaseNpmLocation=y,n=new WeakMap,s=new WeakMap,a=new WeakSet,r=async function(){(0,l.assert)(i(this,s,"f")===undefined);const e=await this.meta.resolveVersion(this.meta.requestedRange),{tarballURL:t,targetVersion:f}=await async function(e,t,f,a){if(k(f)&&(0,l.isValidSemVerVersion)(t))return{tarballURL:(0,h.default)(e,t),targetVersion:t};const n=await w(e,f,a),s=Object.keys(n?.versions??{}).map((e=>((0,l.assertIsSemVerVersion)(e),e))),r=(0,d.getTargetVersion)(s,t);if(null===r)throw new Error(`Failed to find a matching version in npm metadata for package "${e}" and requested semver range "${t}".`);const i=n?.versions?.[r]?.dist?.tarball;return{tarballURL:i,targetVersion:r}}(this.meta.packageName,e,this.meta.registry,this.meta.fetch);if(!(0,d.isValidUrl)(t)||!t.toString().endsWith(".tgz"))throw new Error(`Failed to find valid tarball URL in NPM metadata for package "${this.meta.packageName}".`);const a=new URL(t);a.hostname=this.meta.registry.hostname,a.protocol=this.meta.registry.protocol;const n=await this.fetchNpmTarball(a);o(this,s,n,"f"),this.meta.version=f},f.TARBALL_SIZE_SAFETY_LIMIT=262144e3;async function w(e,t,f){const a=await f(new URL(e,t).toString(),{headers:{accept:k(t)?"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*":"application/json"}});if(!a.ok)throw new Error(`Failed to fetch NPM registry entry. Status code: ${a.status}.`);const n=await a.json();if(!(0,l.isObject)(n))throw new Error(`Failed to fetch package "${e}" metadata from npm.`);return n}function v(e,t){let f="npm://";return""!==e.username&&(f+=e.username,""!==e.password&&(f+=`:${e.password}`),f+="@"),`${f}${e.host}/${t}/`}function k(e){return e.toString()===f.DEFAULT_NPM_REGISTRY.toString()}f.NpmLocation=class extends y{async fetchNpmTarball(e){const t=await this.meta.fetch(e.toString());if(!t.ok||!t.body)throw new Error(`Failed to fetch tarball for package "${this.meta.packageName}".`);const a=t.headers.get("content-length");(0,l.assert)(a,"Snap tarball has invalid content-length");const n=parseInt(a,10);return(0,l.assert)(n<=f.TARBALL_SIZE_SAFETY_LIMIT,"Snap tarball exceeds size limit"),new Promise(((e,a)=>{const n=new Map,s=function(e,t){(0,l.assert)(e.endsWith("/"),"Base needs to end with '/' for relative paths to be added as children instead of siblings."),(0,l.assert)(e.startsWith("npm:"),'Protocol mismatch, expected "npm:".');const a=(0,g.extract)();let n=0;return a.on("entry",((s,r,i)=>{const{name:o,type:c}=s;if("file"===c){const s=o.replace(S,"");return r.pipe((0,b.default)({encoding:"uint8array"},(r=>{try{n+=r.byteLength,(0,l.assert)(ni())),r.resume()})),a}(v(this.meta.registry,this.meta.packageName),n),r=t.body;if("pipeThrough"in r&&"DecompressionStream"in globalThis){const t=new DecompressionStream("gzip"),f=r.pipeThrough(t);(0,p.pipeline)(_(f),s,(t=>{t?a(t):e(n)}))}else(0,p.pipeline)(_(r),(0,u.createGunzip)(),s,(t=>{t?a(t):e(n)}))}))}},f.fetchNpmMetadata=w,f.getNpmCanonicalBasePath=v;const S=/^package\//u;function _(e){return"function"!=typeof e.getReader?e:new m.ReadableWebToNodeStream(e)}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/location/npm.cjs"}],[2664,{"./json.cjs":2665,"./registry.cjs":2666},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),n(e("./registry.cjs"),f),n(e("./json.cjs"),f)}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/registry/index.cjs"}],[2665,{"./registry.cjs":2666,"@metamask/base-controller":1383,"@metamask/snaps-registry":2679,"@metamask/snaps-utils":2850,"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a,n,s,r,i,o,c,d,l,u,b,h,p,m,g,y,w,v=this&&this.__classPrivateFieldSet||function(e,t,f,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(e,f):n?n.value=f:t.set(e,f),f},k=this&&this.__classPrivateFieldGet||function(e,t,f,a){if("a"===f&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===f?a:"a"===f?a.call(e):a?a.value:t.get(e)};Object.defineProperty(f,"__esModule",{value:!0}),f.JsonSnapsRegistry=void 0;const S=e("@metamask/base-controller"),_=e("@metamask/snaps-registry"),T=e("@metamask/snaps-utils"),C=e("@metamask/utils"),E=e("./registry.cjs"),P={database:null,lastUpdated:null,databaseUnavailable:!1};class j extends S.BaseController{constructor({messenger:e,state:t,url:f={registry:"https://acl.execution.metamask.io/latest/registry.json",signature:"https://acl.execution.metamask.io/latest/signature.json"},publicKey:d="0x025b65308f0f0fb8bc7f7ff87bfc296e0330eee5d3c1d1ee4a048b2fd6a86fa0a6",fetchFunction:u=globalThis.fetch.bind(undefined),recentFetchThreshold:b=(0,C.inMilliseconds)(5,C.Duration.Minute),refetchOnAllowlistMiss:h=!0}){super({messenger:e,metadata:{database:{persist:!0,anonymous:!1},lastUpdated:{persist:!0,anonymous:!1},databaseUnavailable:{persist:!0,anonymous:!1}},name:"SnapsRegistry",state:{...P,...t}}),a.add(this),n.set(this,void 0),s.set(this,void 0),r.set(this,void 0),i.set(this,void 0),o.set(this,void 0),c.set(this,void 0),v(this,n,f,"f"),v(this,s,d,"f"),v(this,r,u,"f"),v(this,i,b,"f"),v(this,o,h,"f"),v(this,c,null,"f"),this.messagingSystem.registerActionHandler("SnapsRegistry:get",(async(...e)=>k(this,a,"m",p).call(this,...e))),this.messagingSystem.registerActionHandler("SnapsRegistry:getMetadata",(async(...e)=>k(this,a,"m",g).call(this,...e))),this.messagingSystem.registerActionHandler("SnapsRegistry:resolveVersion",(async(...e)=>k(this,a,"m",m).call(this,...e))),this.messagingSystem.registerActionHandler("SnapsRegistry:update",(async()=>k(this,a,"m",l).call(this)))}}f.JsonSnapsRegistry=j,n=new WeakMap,s=new WeakMap,r=new WeakMap,i=new WeakMap,o=new WeakMap,c=new WeakMap,a=new WeakSet,d=function(){return this.state.lastUpdated&&Date.now()-this.state.lastUpdated{t.database=JSON.parse(e),t.lastUpdated=Date.now(),t.databaseUnavailable=!1}))}catch{this.update((e=>{e.databaseUnavailable=!0}))}},b=async function(){return null===this.state.database&&await k(this,a,"m",l).call(this),this.state.database},h=async function e(t,f,n=!1){const s=await k(this,a,"m",b).call(this),r=s?.blockedSnaps.find((e=>"id"in e?e.id===t&&(0,C.satisfiesVersionRange)(f.version,e.versionRange):e.checksum===f.checksum));if(r)return{status:E.SnapsRegistryStatus.Blocked,reason:r.reason};const i=s?.verifiedSnaps[t],c=i?.versions?.[f.version];return c&&c.checksum===f.checksum?{status:E.SnapsRegistryStatus.Verified}:k(this,o,"f")&&!n?(await k(this,a,"m",l).call(this),k(this,a,"m",e).call(this,t,f,!0)):{status:this.state.databaseUnavailable?E.SnapsRegistryStatus.Unavailable:E.SnapsRegistryStatus.Unverified}},p=async function(e){return Object.entries(e).reduce((async(e,[t,f])=>{const n=await k(this,a,"m",h).call(this,t,f),s=await e;return s[t]=n,s}),Promise.resolve({}))},m=async function e(t,f,n=!1){const s=await k(this,a,"m",b).call(this),r=s?.verifiedSnaps[t]?.versions??null;if(!r&&k(this,o,"f")&&!n)return await k(this,a,"m",l).call(this),k(this,a,"m",e).call(this,t,f,!0);if(!r)return f;const i=(0,T.getTargetVersion)(Object.keys(r),f);return i||!k(this,o,"f")||n?i?((0,C.assertIsSemVerRange)(i),i):f:(await k(this,a,"m",l).call(this),k(this,a,"m",e).call(this,t,f,!0))},g=async function(e){const t=await k(this,a,"m",b).call(this);return t?.verifiedSnaps[e]?.metadata??null},y=function(e,t){(0,C.assert)(k(this,s,"f"),"No public key provided.");const f=(0,_.verify)({registry:e,signature:JSON.parse(t),publicKey:k(this,s,"f")});(0,C.assert)(f,"Invalid registry signature.")},w=async function(e){const t=await k(this,r,"f").call(this,e);if(!t.ok)throw new Error(`Failed to fetch ${e}.`);return await t.text()}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/registry/json.cjs"}],[2666,{},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a;Object.defineProperty(f,"__esModule",{value:!0}),f.SnapsRegistryStatus=void 0,function(e){e[e.Unverified=0]="Unverified",e[e.Blocked=1]="Blocked",e[e.Verified=2]="Verified",e[e.Unavailable=3]="Unavailable"}(a||(f.SnapsRegistryStatus=a={}))}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/registry/registry.cjs"}],[2667,{},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.getRunnableSnaps=void 0;f.getRunnableSnaps=e=>e.filter((e=>e.enabled&&!e.blocked))}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/snaps/selectors.cjs"}],[2668,{"./snaps/Timer.cjs":2656,"@metamask/snaps-sdk":2746,"@metamask/snaps-utils":2850,"fast-deep-equal":4427},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.fetchSnap=f.getSnapFiles=f.withTimeout=f.hasTimedOut=f.delayWithTimer=f.delay=f.permissionsDiff=f.setDiff=void 0;const n=e("@metamask/snaps-sdk"),s=e("@metamask/snaps-utils"),r=a(e("fast-deep-equal")),i=e("./snaps/Timer.cjs");function o(e,t){let f;const a=new Promise(((a,n)=>{e.start((()=>{t===undefined?a():a(t)})),f=n}));return a.cancel=()=>{"finished"!==e.status&&(e.cancel(),f(new Error("The delay has been canceled.")))},a}async function c(e,t){return t&&0!==t.length?await Promise.all(t.map((async t=>e.fetch(t)))):[]}f.setDiff=function(e,t){return Object.entries(e).reduce(((e,[f,a])=>(f in t||(e[f]=a),e)),{})},f.permissionsDiff=function(e,t){return Object.entries(e).reduce(((e,[f,a])=>{const n=f in t;return(!n||n&&!(0,r.default)(a.caveats??[],t[f].caveats??[]))&&(e[f]=a),e}),{})},f.delay=function(e,t){return o(new i.Timer(e),t)},f.delayWithTimer=o,f.hasTimedOut=Symbol("Used to check if the requested promise has timeout (see withTimeout)"),f.withTimeout=async function(e,t){const a=o("number"==typeof t?new i.Timer(t):t,f.hasTimedOut);try{return await Promise.race([e,a])}finally{a.cancel()}},f.getSnapFiles=c,f.fetchSnap=async function(e,t){try{const e=await t.manifest(),f=await t.fetch(e.result.source.location.npm.filePath);(0,n.assert)(f.size{e.data.base64=await(0,s.encodeBase64)(e)})));const o=await c(t,e.result.source.locales),d={manifest:e,sourceCode:f,svgIcon:r,auxiliaryFiles:i,localizationFiles:(0,s.getValidatedLocalizationFiles)(o)};return await(0,s.validateFetchedSnap)(d),d}catch(t){throw new Error(`Failed to fetch snap "${e}": ${(0,n.getErrorMessage)(t)}.`)}}}}},{package:"@metamask/snaps-controllers",file:"node_modules/@metamask/snaps-controllers/dist/utils.cjs"}],[2669,{buffer:4074,"buffer-from":4079,inherits:4650,"readable-stream":5274,typedarray:5617},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){(function(f){(function(){var a=e("readable-stream").Writable,n=e("inherits"),s=e("buffer-from");if("undefined"==typeof Uint8Array)var r=e("typedarray").Uint8Array;else r=Uint8Array;function i(e,t){if(!(this instanceof i))return new i(e,t);"function"==typeof e&&(t=e,e={}),e||(e={});var f=e.encoding,n=!1;f?"u8"!==(f=String(f).toLowerCase())&&"uint8"!==f||(f="uint8array"):n=!0,a.call(this,{objectMode:!0}),this.encoding=f,this.shouldInferEncoding=n,t&&this.on("finish",(function(){t(this.getBody())})),this.body=[]}t.exports=i,n(i,a),i.prototype._write=function(e,t,f){this.body.push(e),f()},i.prototype.inferEncoding=function(e){var t=e===undefined?this.body[0]:e;return f.isBuffer(t)?"buffer":"undefined"!=typeof Uint8Array&&t instanceof Uint8Array?"uint8array":Array.isArray(t)?"array":"string"==typeof t?"string":"[object Object]"===Object.prototype.toString.call(t)?"object":"buffer"},i.prototype.getBody=function(){return this.encoding||0!==this.body.length?(this.shouldInferEncoding&&(this.encoding=this.inferEncoding()),"array"===this.encoding?function(e){for(var t=[],f=0;fconcat-stream",file:"node_modules/@metamask/snaps-controllers/node_modules/concat-stream/index.js"}],[267,{"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.default=function(e){if((0,a.hasProperty)(e,"NftController")&&(0,a.isObject)(e.NftController)){const t=e.NftController;if((0,a.hasProperty)(t,"allNftContracts")&&(0,a.isObject)(t.allNftContracts)){const{allNftContracts:e}=t;Object.keys(e).every((t=>(0,a.isObject)(e[t])))&&Object.keys(e).forEach((t=>{const f=e[t];if((0,a.isObject)(f)&&n(f))for(const e of Object.keys(f))(0,a.isStrictHexString)(e)||delete f[e]}))}if((0,a.hasProperty)(t,"allNfts")&&(0,a.isObject)(t.allNfts)){const{allNfts:e}=t;Object.keys(e).every((t=>(0,a.isObject)(e[t])))&&Object.keys(e).forEach((t=>{const f=e[t];if((0,a.isObject)(f)&&n(f))for(const e of Object.keys(f))(0,a.isStrictHexString)(e)||delete f[e]}))}e.NftController=t}if((0,a.hasProperty)(e,"TokenListController")&&(0,a.isObject)(e.TokenListController)){const t=e.TokenListController;if((0,a.hasProperty)(t,"tokensChainsCache")&&(0,a.isObject)(t.tokensChainsCache)&&n(t.tokensChainsCache))for(const e of Object.keys(t.tokensChainsCache))(0,a.isStrictHexString)(e)||delete t.tokensChainsCache[e]}if((0,a.hasProperty)(e,"TokensController")&&(0,a.isObject)(e.TokensController)){const t=e.TokensController;if((0,a.hasProperty)(t,"allTokens")&&(0,a.isObject)(t.allTokens)&&n(t.allTokens)){const{allTokens:e}=t;for(const f of Object.keys(e))(0,a.isStrictHexString)(f)||delete t.allTokens[f]}if((0,a.hasProperty)(t,"allIgnoredTokens")&&(0,a.isObject)(t.allIgnoredTokens)&&n(t.allIgnoredTokens)){const{allIgnoredTokens:e}=t;for(const f of Object.keys(e))(0,a.isStrictHexString)(f)||delete t.allIgnoredTokens[f]}if((0,a.hasProperty)(t,"allDetectedTokens")&&(0,a.isObject)(t.allDetectedTokens)&&n(t.allDetectedTokens)){const{allDetectedTokens:e}=t;for(const f of Object.keys(e))(0,a.isStrictHexString)(f)||delete t.allDetectedTokens[f]}e.TokensController=t}return e};var a=e("@metamask/utils");function n(e){return Object.keys(e).some((e=>(0,a.isStrictHexString)(e)))}}}},{package:"$root$",file:"app/scripts/migrations/077-supplements/077-supplement-for-088.ts"}],[2670,{fs:4039},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){const a={S_IFMT:61440,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960};try{t.exports=e("fs").constants||a}catch{t.exports=a}}}},{package:"@metamask/snaps-controllers>tar-stream",file:"node_modules/@metamask/snaps-controllers/node_modules/tar-stream/constants.js"}],[2671,{"./headers":2672,b4a:3968,"fast-fifo":4429,streamx:5596},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){const{Writable:a,Readable:n,getStreamError:s}=e("streamx"),r=e("fast-fifo"),i=e("b4a"),o=e("./headers"),c=i.alloc(0);class d{constructor(){this.buffered=0,this.shifted=0,this.queue=new r,this._offset=0}push(e){this.buffered+=e.byteLength,this.queue.push(e)}shiftFirst(e){return 0===this._buffered?null:this._next(e)}shift(e){if(e>this.buffered)return null;if(0===e)return c;let t=this._next(e);if(e===t.byteLength)return t;const f=[t];for(;(e-=t.byteLength)>0;)t=this._next(e),f.push(t);return i.concat(f)}_next(e){const t=this.queue.peek(),f=t.byteLength-this._offset;if(e>=f){const e=this._offset?t.subarray(this._offset,t.byteLength):t;return this.queue.shift(),this._offset=0,this.buffered-=f,this.shifted+=f,e}return this.buffered-=e,this.shifted+=e,t.subarray(this._offset,this._offset+=e)}}class l extends n{constructor(e,t,f){super(),this.header=t,this.offset=f,this._parent=e}_read(e){0===this.header.size&&this.push(null),this._parent._stream===this&&this._parent._update(),e(null)}_predestroy(){this._parent.destroy(s(this))}_detach(){this._parent._stream===this&&(this._parent._stream=null,this._parent._missing=h(this.header.size),this._parent._update())}_destroy(e){this._detach(),e(null)}}class u extends a{constructor(e){super(e),e||(e={}),this._buffer=new d,this._offset=0,this._header=null,this._stream=null,this._missing=0,this._longHeader=!1,this._callback=b,this._locked=!1,this._finished=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null,this._filenameEncoding=e.filenameEncoding||"utf-8",this._allowUnknownFormat=!!e.allowUnknownFormat,this._unlockBound=this._unlock.bind(this)}_unlock(e){if(this._locked=!1,e)return this.destroy(e),void this._continueWrite(e);this._update()}_consumeHeader(){if(this._locked)return!1;this._offset=this._buffer.shifted;try{this._header=o.decode(this._buffer.shift(512),this._filenameEncoding,this._allowUnknownFormat)}catch(e){return this._continueWrite(e),!1}if(!this._header)return!0;switch(this._header.type){case"gnu-long-path":case"gnu-long-link-path":case"pax-global-header":case"pax-header":return this._longHeader=!0,this._missing=this._header.size,!0}return this._locked=!0,this._applyLongHeaders(),0===this._header.size||"directory"===this._header.type?(this.emit("entry",this._header,this._createStream(),this._unlockBound),!0):(this._stream=this._createStream(),this._missing=this._header.size,this.emit("entry",this._header,this._stream,this._unlockBound),!0)}_applyLongHeaders(){this._gnuLongPath&&(this._header.name=this._gnuLongPath,this._gnuLongPath=null),this._gnuLongLinkPath&&(this._header.linkname=this._gnuLongLinkPath,this._gnuLongLinkPath=null),this._pax&&(this._pax.path&&(this._header.name=this._pax.path),this._pax.linkpath&&(this._header.linkname=this._pax.linkpath),this._pax.size&&(this._header.size=parseInt(this._pax.size,10)),this._header.pax=this._pax,this._pax=null)}_decodeLongHeader(e){switch(this._header.type){case"gnu-long-path":this._gnuLongPath=o.decodeLongPath(e,this._filenameEncoding);break;case"gnu-long-link-path":this._gnuLongLinkPath=o.decodeLongPath(e,this._filenameEncoding);break;case"pax-global-header":this._paxGlobal=o.decodePax(e);break;case"pax-header":this._pax=null===this._paxGlobal?o.decodePax(e):Object.assign({},this._paxGlobal,o.decodePax(e))}}_consumeLongHeader(){this._longHeader=!1,this._missing=h(this._header.size);const e=this._buffer.shift(this._header.size);try{this._decodeLongHeader(e)}catch(e){return this._continueWrite(e),!1}return!0}_consumeStream(){const e=this._buffer.shiftFirst(this._missing);if(null===e)return!1;this._missing-=e.byteLength;const t=this._stream.push(e);return 0===this._missing?(this._stream.push(null),t&&this._stream._detach(),t&&!1===this._locked):t}_createStream(){return new l(this,this._header,this._offset)}_update(){for(;this._buffer.buffered>0&&!this.destroying;)if(this._missing>0){if(null!==this._stream){if(!1===this._consumeStream())return;continue}if(!0===this._longHeader){if(this._missing>this._buffer.buffered)break;if(!1===this._consumeLongHeader())return!1;continue}const e=this._buffer.shiftFirst(this._missing);null!==e&&(this._missing-=e.byteLength)}else{if(this._buffer.buffered<512)break;if(null!==this._stream||!1===this._consumeHeader())return}this._continueWrite(null)}_continueWrite(e){const t=this._callback;this._callback=b,t(e)}_write(e,t){this._callback=t,this._buffer.push(e),this._update()}_final(e){this._finished=0===this._missing&&0===this._buffer.buffered,e(this._finished?null:new Error("Unexpected end of data"))}_predestroy(){this._continueWrite(null)}_destroy(e){this._stream&&this._stream.destroy(s(this)),e(null)}[Symbol.asyncIterator](){let e=null,t=null,f=null,a=null,n=null;const s=this;return this.on("entry",(function(e,s,r){n=r,s.on("error",b),t?(t({value:s,done:!1}),t=f=null):a=s})),this.on("error",(t=>{e=t})),this.on("close",(function(){if(r(e),!t)return;e?f(e):t({value:undefined,done:!0});t=f=null})),{[Symbol.asyncIterator](){return this},next:()=>new Promise(i),return:()=>o(null),throw:e=>o(e)};function r(e){if(!n)return;const t=n;n=null,t(e)}function i(n,i){return e?i(e):a?(n({value:a,done:!1}),void(a=null)):(t=n,f=i,r(null),void(s._finished&&t&&(t({value:undefined,done:!0}),t=f=null)))}function o(e){return s.destroy(e),r(e),new Promise(((t,f)=>{if(s.destroyed)return t({value:undefined,done:!0});s.once("close",(function(){e?f(e):t({value:undefined,done:!0})}))}))}}}function b(){}function h(e){return(e&=511)&&512-e}t.exports=function(e){return new u(e)}}}},{package:"@metamask/snaps-controllers>tar-stream",file:"node_modules/@metamask/snaps-controllers/node_modules/tar-stream/extract.js"}],[2672,{b4a:3968},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){const a=e("b4a"),n="0000000000000000000",s="7777777777777777777",r="0".charCodeAt(0),i=a.from([117,115,116,97,114,0]),o=a.from([r,r]),c=a.from([117,115,116,97,114,32]),d=a.from([32,0]),l=257,u=263;function b(e,t,f,a){for(;ft?s.slice(0,t)+" ":n.slice(0,t-e.length)+e+" "}function m(e,t,f){if(128&(e=e.subarray(t,t+f))[t=0])return function(e){let t;if(128===e[0])t=!0;else{if(255!==e[0])return null;t=!1}const f=[];let a;for(a=e.length-1;a>0;a--){const n=e[a];t?f.push(n):f.push(255-n)}let n=0;const s=f.length;for(a=0;a=s?s:n>=0||(n+=s)>=0?n:0);for(;t=Math.pow(10,f)&&f++,t+f+e}f.decodeLongPath=function(e,t){return g(e,0,e.length,t)},f.encodePax=function(e){let t="";e.name&&(t+=y(" path="+e.name+"\n")),e.linkname&&(t+=y(" linkpath="+e.linkname+"\n"));const f=e.pax;if(f)for(const e in f)t+=y(" "+e+"="+f[e]+"\n");return a.from(t)},f.decodePax=function(e){const t={};for(;e.length;){let f=0;for(;f100;){const e=f.indexOf("/");if(-1===e)return null;n+=n?"/"+f.slice(0,e):f.slice(0,e),f=f.slice(e+1)}return a.byteLength(f)>100||a.byteLength(n)>155||e.linkname&&a.byteLength(e.linkname)>100?null:(a.write(t,f),a.write(t,p(4095&e.mode,6),100),a.write(t,p(e.uid,6),108),a.write(t,p(e.gid,6),116),function(e,t,f){e.toString(8).length>11?function(e,t,f){t[f]=128;for(let a=11;a>0;a--)t[f+a]=255&e,e=Math.floor(e/256)}(e,t,f):a.write(t,p(e,11),f)}(e.size,t,124),a.write(t,p(e.mtime.getTime()/1e3|0,11),136),t[156]=r+function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}(e.type),e.linkname&&a.write(t,e.linkname,157),a.copy(i,t,l),a.copy(o,t,263),e.uname&&a.write(t,e.uname,265),e.gname&&a.write(t,e.gname,297),a.write(t,p(e.devmajor||0,6),329),a.write(t,p(e.devminor||0,6),337),n&&a.write(t,n,345),a.write(t,p(h(t),6),148),t)},f.decode=function(e,t,f){let n=0===e[156]?0:e[156]-r,s=g(e,0,100,t);const o=m(e,100,8),b=m(e,108,8),p=m(e,116,8),y=m(e,124,12),w=m(e,136,12),v=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}(n),k=0===e[157]?null:g(e,157,100,t),S=g(e,265,32),_=g(e,297,32),T=m(e,329,8),C=m(e,337,8),E=h(e);if(256===E)return null;if(E!==m(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(function(e){return a.equals(i,e.subarray(l,263))}(e))e[345]&&(s=g(e,345,155,t)+"/"+s);else if(function(e){return a.equals(c,e.subarray(l,263))&&a.equals(d,e.subarray(u,265))}(e));else if(!f)throw new Error("Invalid tar header: unknown format.");return 0===n&&s&&"/"===s[s.length-1]&&(n=5),{name:s,mode:o,uid:b,gid:p,size:y,mtime:new Date(1e3*w),type:v,linkname:k,uname:S,gname:_,devmajor:T,devminor:C,pax:null}}}}},{package:"@metamask/snaps-controllers>tar-stream",file:"node_modules/@metamask/snaps-controllers/node_modules/tar-stream/headers.js"}],[2673,{"./extract":2671,"./pack":2674},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){f.extract=e("./extract"),f.pack=e("./pack")}}},{package:"@metamask/snaps-controllers>tar-stream",file:"node_modules/@metamask/snaps-controllers/node_modules/tar-stream/index.js"}],[2674,{"./constants":2670,"./headers":2672,b4a:3968,streamx:5596},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){const{Readable:a,Writable:n,getStreamError:s}=e("streamx"),r=e("b4a"),i=e("./constants"),o=e("./headers"),c=r.alloc(1024);class d extends n{constructor(e,t,f){super({mapWritable:h,eagerOpen:!0}),this.written=0,this.header=t,this._callback=f,this._linkname=null,this._isLinkname="symlink"===t.type&&!t.linkname,this._isVoid="file"!==t.type&&"contiguous-file"!==t.type,this._finished=!1,this._pack=e,this._openCallback=null,null===this._pack._stream?this._pack._stream=this:this._pack._pending.push(this)}_open(e){this._openCallback=e,this._pack._stream===this&&this._continueOpen()}_continuePack(e){if(null===this._callback)return;const t=this._callback;this._callback=null,t(e)}_continueOpen(){null===this._pack._stream&&(this._pack._stream=this);const e=this._openCallback;if(this._openCallback=null,null!==e){if(this._pack.destroying)return e(new Error("pack stream destroyed"));if(this._pack._finalized)return e(new Error("pack stream is already finalized"));this._pack._stream=this,this._isLinkname||this._pack._encode(this.header),this._isVoid&&(this._finish(),this._continuePack(null)),e(null)}}_write(e,t){return this._isLinkname?(this._linkname=this._linkname?r.concat([this._linkname,e]):e,t(null)):this._isVoid?e.byteLength>0?t(new Error("No body allowed for this entry")):t():(this.written+=e.byteLength,this._pack.push(e)?t():void(this._pack._drain=t))}_finish(){this._finished||(this._finished=!0,this._isLinkname&&(this.header.linkname=this._linkname?r.toString(this._linkname,"utf-8"):"",this._pack._encode(this.header)),b(this._pack,this.header.size),this._pack._done(this))}_final(e){if(this.written!==this.header.size)return e(new Error("Size mismatch"));this._finish(),e(null)}_getError(){return s(this)||new Error("tar entry destroyed")}_predestroy(){this._pack.destroy(this._getError())}_destroy(e){this._pack._done(this),this._continuePack(this._finished?null:this._getError()),e()}}class l extends a{constructor(e){super(e),this._drain=u,this._finalized=!1,this._finalizing=!1,this._pending=[],this._stream=null}entry(e,t,f){if(this._finalized||this.destroying)throw new Error("already finalized or destroyed");"function"==typeof t&&(f=t,t=null),f||(f=u),e.size&&"symlink"!==e.type||(e.size=0),e.type||(e.type=function(e){switch(e&i.S_IFMT){case i.S_IFBLK:return"block-device";case i.S_IFCHR:return"character-device";case i.S_IFDIR:return"directory";case i.S_IFIFO:return"fifo";case i.S_IFLNK:return"symlink"}return"file"}(e.mode)),e.mode||(e.mode="directory"===e.type?493:420),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),"string"==typeof t&&(t=r.from(t));const a=new d(this,e,f);return r.isBuffer(t)?(e.size=t.byteLength,a.write(t),a.end(),a):(a._isVoid,a)}finalize(){this._stream||this._pending.length>0?this._finalizing=!0:this._finalized||(this._finalized=!0,this.push(c),this.push(null))}_done(e){e===this._stream&&(this._stream=null,this._finalizing&&this.finalize(),this._pending.length&&this._pending.shift()._continueOpen())}_encode(e){if(!e.pax){const t=o.encode(e);if(t)return void this.push(t)}this._encodePax(e)}_encodePax(e){const t=o.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),f={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.byteLength,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(o.encode(f)),this.push(t),b(this,t.byteLength),f.size=e.size,f.type=e.type,this.push(o.encode(f))}_doDrain(){const e=this._drain;this._drain=u,e()}_predestroy(){const e=s(this);for(this._stream&&this._stream.destroy(e);this._pending.length;){const t=this._pending.shift();t.destroy(e),t._continueOpen()}this._doDrain()}_read(e){this._doDrain(),e()}}function u(){}function b(e,t){(t&=511)&&e.push(c.subarray(0,512-t))}function h(e){return r.isBuffer(e)?e:r.from(e)}t.exports=function(e){return new l(e)}}}},{package:"@metamask/snaps-controllers>tar-stream",file:"node_modules/@metamask/snaps-controllers/node_modules/tar-stream/pack.js"}],[2679,{"./verify":2680,"@metamask/superstruct":2872,"@metamask/utils":2950},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){var a=this&&this.__createBinding||(Object.create?function(e,t,f,a){a===undefined&&(a=f);var n=Object.getOwnPropertyDescriptor(t,f);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[f]}}),Object.defineProperty(e,a,n)}:function(e,t,f,a){a===undefined&&(a=f),e[a]=t[f]}),n=this&&this.__exportStar||function(e,t){for(var f in e)"default"===f||Object.prototype.hasOwnProperty.call(t,f)||a(t,e,f)};Object.defineProperty(f,"__esModule",{value:!0}),f.SnapsRegistryDatabaseStruct=f.BlockedSnapStruct=f.BlockReasonStruct=f.VerifiedSnapStruct=f.ImagePathStruct=f.AdditionalSourceCodeStruct=f.SupportStruct=f.AuditStruct=f.AuthorStruct=void 0;const s=e("@metamask/superstruct"),r=e("@metamask/utils"),i=(0,s.refine)((0,s.string)(),"Npm ID",(e=>e.startsWith("npm:"))),o=(0,s.object)({checksum:r.ChecksumStruct});f.AuthorStruct=(0,s.object)({name:(0,s.string)(),website:(0,s.string)()}),f.AuditStruct=(0,s.object)({auditor:(0,s.string)(),report:(0,s.string)()}),f.SupportStruct=(0,s.object)({knowledgeBase:(0,s.optional)((0,s.string)()),faq:(0,s.optional)((0,s.string)()),contact:(0,s.optional)((0,s.string)()),keyRecovery:(0,s.optional)((0,s.string)())}),f.AdditionalSourceCodeStruct=(0,s.object)({name:(0,s.string)(),url:(0,s.string)()}),f.ImagePathStruct=(0,s.pattern)((0,s.string)(),/\.\/images\/.*\/\d+\.(?:png|jpe?g)$/u),f.VerifiedSnapStruct=(0,s.object)({id:i,metadata:(0,s.object)({name:(0,s.string)(),type:(0,s.optional)((0,s.enums)(["account"])),author:(0,s.optional)(f.AuthorStruct),website:(0,s.optional)((0,s.string)()),onboard:(0,s.optional)((0,s.boolean)()),summary:(0,s.optional)((0,s.string)()),description:(0,s.optional)((0,s.string)()),audits:(0,s.optional)((0,s.array)(f.AuditStruct)),category:(0,s.optional)((0,s.enums)(["interoperability","notifications","transaction insights","account management","name resolution"])),tags:(0,s.optional)((0,s.array)((0,s.string)())),support:(0,s.optional)(f.SupportStruct),sourceCode:(0,s.optional)((0,s.string)()),hidden:(0,s.optional)((0,s.boolean)()),privateCode:(0,s.optional)((0,s.boolean)()),privacyPolicy:(0,s.optional)((0,s.string)()),termsOfUse:(0,s.optional)((0,s.string)()),additionalSourceCode:(0,s.optional)((0,s.array)(f.AdditionalSourceCodeStruct)),screenshots:(0,s.optional)((0,s.size)((0,s.array)(f.ImagePathStruct),3,3))}),versions:(0,s.record)(r.VersionStruct,o)}),f.BlockReasonStruct=(0,s.object)({explanation:(0,s.optional)((0,s.string)()),url:(0,s.optional)((0,s.string)())}),f.BlockedSnapStruct=(0,s.union)([(0,s.object)({id:i,versionRange:r.VersionRangeStruct,reason:(0,s.optional)(f.BlockReasonStruct)}),(0,s.object)({checksum:r.ChecksumStruct,reason:(0,s.optional)(f.BlockReasonStruct)})]),f.SnapsRegistryDatabaseStruct=(0,s.object)({verifiedSnaps:(0,s.record)(i,f.VerifiedSnapStruct),blockedSnaps:(0,s.array)(f.BlockedSnapStruct)}),n(e("./verify"),f)}}},{package:"@metamask/snaps-utils>@metamask/snaps-registry",file:"node_modules/@metamask/snaps-registry/dist/index.js"}],[268,{"./077-supplements/077-supplement-for-082":264,"./077-supplements/077-supplement-for-084":265,"./077-supplements/077-supplement-for-086":266,"./077-supplements/077-supplement-for-088":267,"@metamask/utils":2950,lodash:4855,loglevel:4863},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.default=void 0;var a=e("lodash"),n=d(e("loglevel")),s=e("@metamask/utils"),r=d(e("./077-supplements/077-supplement-for-082")),i=d(e("./077-supplements/077-supplement-for-084")),o=d(e("./077-supplements/077-supplement-for-086")),c=d(e("./077-supplements/077-supplement-for-088"));function d(e){return e&&e.__esModule?e:{default:e}}f.default={version:77,async migrate(e){const t=(0,a.cloneDeep)(e);t.meta.version=77;let f=function(e){if(!(0,s.hasProperty)(e,"TokenListController"))return n.default.warn("Skipping migration, TokenListController state is missing"),e;var t,f;if(!(0,s.isObject)(e.TokenListController))return null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.TokenListController is "+typeof e.TokenListController)),e;if(!(0,s.hasProperty)(e.TokenListController,"tokensChainsCache"))return n.default.warn("Skipping migration, TokenListController.tokensChainsCache state is missing"),e;const{TokenListController:a}=e,{tokensChainsCache:r}=a;let i,o;for(const e in r){var c,d;if(i=r[e].data||{},o={},Array.isArray(i))for(const e of i)o[e.address]=e;else if((null===(c=Object.keys(i)[0])||void 0===c?void 0:c.toLowerCase())!==(null===(d=i[Object.keys(i)[0]])||void 0===d||null===(d=d.address)||void 0===d?void 0:d.toLowerCase()))for(const e in i)o[i[e].address]=i[e];r[e].data=Object.keys(o).length>0?o:i}return a.tokensChainsCache=r,{...e,TokenListController:{...a}}}(t.data);return f=(0,r.default)(f),f=(0,i.default)(f),f=(0,o.default)(f),f=(0,c.default)(f),t.data=f,t}}}}},{package:"$root$",file:"app/scripts/migrations/077.js"}],[2680,{"@metamask/superstruct":2872,"@metamask/utils":2950,"@noble/curves/secp256k1":2991,"@noble/hashes/sha256":3e3},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.verify=f.SignatureStruct=void 0;const a=e("@metamask/superstruct"),n=e("@metamask/utils"),s=e("@noble/curves/secp256k1"),r=e("@noble/hashes/sha256");f.SignatureStruct=(0,a.object)({signature:n.StrictHexStruct,curve:(0,a.literal)("secp256k1"),format:(0,a.literal)("DER")}),f.verify=function({registry:e,signature:t,publicKey:a}){(0,n.assertStruct)(t,f.SignatureStruct,"Invalid signature object");const i=(0,n.hexToBytes)(a);return s.secp256k1.verify((0,n.remove0x)(t.signature),(0,r.sha256)((0,n.stringToBytes)(e)),i)}}}},{package:"@metamask/snaps-utils>@metamask/snaps-registry",file:"node_modules/@metamask/snaps-registry/dist/verify.js"}],[269,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,a.cloneDeep)(e);return t.meta.version=s,t.data=function(e){if(!(0,n.hasProperty)(e,"PhishingController")||!(0,n.isObject)(e.PhishingController))return e;const{PhishingController:t}=e;return delete t.phishing,delete t.lastFetched,e}(t.data),t},f.version=void 0;var a=e("lodash"),n=e("@metamask/utils");const s=f.version=78}}},{package:"$root$",file:"app/scripts/migrations/078.ts"}],[27,{},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.getCronjobControllerMessenger=function(e){return e.getRestricted({name:"CronjobController",allowedEvents:["SnapController:snapInstalled","SnapController:snapUpdated","SnapController:snapUninstalled","SnapController:snapEnabled","SnapController:snapDisabled"],allowedActions:["PermissionController:getPermissions","SnapController:handleRequest","SnapController:getAll"]})}}}},{package:"$root$",file:"app/scripts/controller-init/messengers/snaps/cronjob-controller-messenger.ts"}],[270,{lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.default=void 0;var a=e("lodash");f.default={version:79,async migrate(e){const t=(0,a.cloneDeep)(e);t.meta.version=79;const f=function(e){var t,f;(null==e||null===(t=e.AppStateController)||void 0===t?void 0:t.collectiblesDetectionNoticeDismissed)!==undefined&&delete e.AppStateController.collectiblesDetectionNoticeDismissed;(null==e||null===(f=e.metamask)||void 0===f?void 0:f.collectiblesDropdownState)!==undefined&&delete e.metamask.collectiblesDropdownState;return e}(t.data);return t.data=f,t}}}}},{package:"$root$",file:"app/scripts/migrations/079.js"}],[271,{lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.default=void 0;var a=e("lodash");f.default={version:80,async migrate(e){const t=(0,a.cloneDeep)(e);t.meta.version=80;const f=function(e){var t;(null==e||null===(t=e.metamask)||void 0===t?void 0:t.showPortfolioTooltip)!==undefined&&delete e.metamask.showPortfolioTooltip;return e}(t.data);return t.data=f,t}}}}},{package:"$root$",file:"app/scripts/migrations/080.js"}],[272,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,a.cloneDeep)(e);t.meta.version=s;const f=function(e){if(!(0,n.hasProperty)(e,"SnapController")||!(0,n.hasProperty)(e,"PermissionController")||!(0,n.isObject)(e.PermissionController))return e;const{PermissionController:t}=e,{subjects:f}=t;if(!(0,n.isObject)(f))return e;const s="wallet_snap_";for(const[t,r]of Object.entries(f)){if(!(0,n.isObject)(r)||!(0,n.isObject)(r.permissions))return e;let f,i=1;const{permissions:o}=r,c={...o};for(const[r,d]of Object.entries(o))if(r.startsWith(s)){if(!(0,n.isObject)(d)||!(0,n.hasProperty)(d,"id")||!(0,n.hasProperty)(d,"date"))return e;if((0,n.hasProperty)(c,"wallet_snap")||(c.wallet_snap={caveats:[{type:"snapIds",value:{}}],invoker:t,parentCapability:"wallet_snap"}),!(0,n.isObject)(c.wallet_snap))return e;if(!(0,a.isArray)(c.wallet_snap.caveats))return e;const o=r.slice(s.length),l=c.wallet_snap.caveats[0];if(!(0,n.isObject)(l))return e;if(!(0,n.hasProperty)(l,"type")||"snapIds"!==l.type||!(0,n.hasProperty)(l,"value")||!(0,n.isObject)(l.value))return e;if(l.value[o]={},"number"!=typeof d.date||"string"!=typeof d.id)return e;d.date>i&&(i=d.date,f=d.id),delete c[r]}c.wallet_snap&&(c.wallet_snap.date=i,c.wallet_snap.id=f,r.permissions=c)}return e}(t.data);return t.data=f,t},f.version=void 0;var a=e("lodash"),n=e("@metamask/utils");const s=f.version=81}}},{package:"$root$",file:"app/scripts/migrations/081.ts"}],[273,{"@metamask/utils":2950,lodash:4855,loglevel:4863,uuid:5663},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,n.cloneDeep)(e);return t.meta.version=o,t.data=function(e){if(!(0,s.hasProperty)(e,"PreferencesController"))return i.default.warn("state.PreferencesController is undefined"),e;if(!(0,s.isObject)(e.PreferencesController)){var t,f;return null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.PreferencesController is "+typeof e.PreferencesController)),e}if(!(0,s.hasProperty)(e,"NetworkController")||!(0,s.isObject)(e.NetworkController)){var a,n;return null===(a=global.sentry)||void 0===a||null===(n=a.captureException)||void 0===n||n.call(a,new Error("typeof state.NetworkController is "+typeof e.NetworkController)),e}if(!(0,s.hasProperty)(e.PreferencesController,"frequentRpcListDetail")||!Array.isArray(e.PreferencesController.frequentRpcListDetail)){var o,c;if(!(e.NetworkController.networkConfigurations&&e.PreferencesController.frequentRpcListDetail===undefined))null===(o=global.sentry)||void 0===o||null===(c=o.captureException)||void 0===c||c.call(o,new Error("typeof state.PreferencesController.frequentRpcListDetail is "+typeof e.PreferencesController.frequentRpcListDetail));return e}if(!e.PreferencesController.frequentRpcListDetail.every(s.isObject)){var d,l;const t=e.PreferencesController.frequentRpcListDetail.find((e=>!(0,s.isObject)(e)));return null===(d=global.sentry)||void 0===d||null===(l=d.captureException)||void 0===l||l.call(d,new Error("state.PreferencesController.frequentRpcListDetail contains an element of type "+typeof t)),e}const{PreferencesController:u,NetworkController:b}=e,{frequentRpcListDetail:h}=u;if(!Array.isArray(h))return e;const p=h.reduce(((e,{rpcUrl:t,chainId:f,ticker:a,nickname:n,rpcPrefs:s})=>({...e,[(0,r.v4)()]:{rpcUrl:t,chainId:f,ticker:a,rpcPrefs:s,nickname:n}})),{});return delete u.frequentRpcListDetail,{...e,NetworkController:{...b,networkConfigurations:p},PreferencesController:{...u}}}(t.data),t},f.version=void 0;var a,n=e("lodash"),s=e("@metamask/utils"),r=e("uuid"),i=(a=e("loglevel"))&&a.__esModule?a:{default:a};const o=f.version=82}}},{package:"$root$",file:"app/scripts/migrations/082.ts"}],[274,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,a.cloneDeep)(e);return t.meta.version=s,t.data=function(e){if(!(0,n.isObject)(e.NetworkController)){var t,f;return null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.NetworkController is "+typeof e.NetworkController)),e}const{NetworkController:a}=e;if(!(0,n.isObject)(a.networkConfigurations)){var s,r;return null===(s=global.sentry)||void 0===s||null===(r=s.captureException)||void 0===r||r.call(s,new Error("typeof NetworkController.networkConfigurations is "+typeof a.networkConfigurations)),e}const{networkConfigurations:i}=a,o={};for(const t of Object.keys(i)){const f=i[t];if(!(0,n.isObject)(f))return e;o[t]={...f,id:t}}return{...e,NetworkController:{...a,networkConfigurations:o}}}(t.data),t},f.version=void 0;var a=e("lodash"),n=e("@metamask/utils");const s=f.version=83}}},{package:"$root$",file:"app/scripts/migrations/083.ts"}],[275,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,a.cloneDeep)(e);return t.meta.version=s,t.data=function(e){if(!(0,n.hasProperty)(e,"NetworkController")||!(0,n.isObject)(e.NetworkController)){var t,f;return null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.NetworkController is "+typeof e.NetworkController)),e}if(!(0,n.hasProperty)(e.NetworkController,"network")){var a,s;if(e.NetworkController.networkId===undefined)null===(a=global.sentry)||void 0===a||null===(s=a.captureException)||void 0===s||s.call(a,new Error("typeof state.NetworkController.network is "+typeof e.NetworkController.network));return e}const r={...e.NetworkController};"loading"===r.network?(r.networkId=null,r.networkStatus="unknown"):(r.networkId=r.network,r.networkStatus="available");return delete r.network,{...e,NetworkController:r}}(t.data),t},f.version=void 0;var a=e("lodash"),n=e("@metamask/utils");const s=f.version=84}}},{package:"$root$",file:"app/scripts/migrations/084.ts"}],[276,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,a.cloneDeep)(e);return t.meta.version=s,t.data=function(e){if(!(0,n.isObject)(e.NetworkController)){var t,f;return null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.NetworkController is "+typeof e.NetworkController)),e}return delete e.NetworkController.previousProviderStore,e}(t.data),t},f.version=void 0;var a=e("lodash"),n=e("@metamask/utils");const s=f.version=85}}},{package:"$root$",file:"app/scripts/migrations/085.ts"}],[277,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,n.cloneDeep)(e);return t.meta.version=s,t.data=function(e){if((0,a.hasProperty)(e,"NetworkController")&&(0,a.isObject)(e.NetworkController)&&(0,a.hasProperty)(e.NetworkController,"provider")){const t=e.NetworkController;return t.providerConfig=t.provider,delete t.provider,{...e,NetworkController:t}}var t,f;if((0,a.isObject)(e.NetworkController)){if(!(0,a.hasProperty)(e.NetworkController,"provider")){var n,s;if(e.NetworkController.providerConfig===undefined)null===(n=global.sentry)||void 0===n||null===(s=n.captureException)||void 0===s||s.call(n,new Error("typeof state.NetworkController.provider is "+typeof e.NetworkController.provider))}}else null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.NetworkController is "+typeof e.NetworkController));return e}(t.data),t},f.version=void 0;var a=e("@metamask/utils"),n=e("lodash");const s=f.version=86}}},{package:"$root$",file:"app/scripts/migrations/086.ts"}],[278,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,n.cloneDeep)(e);return t.meta.version=s,t.data=function(e){if(!(0,a.isObject)(e.TokensController)){var t,f;return null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.TokensController is "+typeof e.TokensController)),e}return delete e.TokensController.suggestedAssets,e}(t.data),t},f.version=void 0;var a=e("@metamask/utils"),n=e("lodash");const s=f.version=87}}},{package:"$root$",file:"app/scripts/migrations/087.ts"}],[279,{"@metamask/utils":2950,"bn.js":4026,lodash:4855,loglevel:4863},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,s.cloneDeep)(e);return t.meta.version=o,function(e){if((0,a.hasProperty)(e,"NftController")&&(0,a.isObject)(e.NftController)){const o=e.NftController;if((0,a.hasProperty)(o,"allNftContracts")&&(0,a.isObject)(o.allNftContracts)){const{allNftContracts:e}=o;Object.keys(e).every((t=>(0,a.isObject)(e[t])))&&Object.keys(e).forEach((t=>{const f=e[t];if((0,a.isObject)(f)){for(const e of Object.keys(f))"undefined"!==e&&e!==undefined&&"null"!==e||delete f[e];e[t]=(0,s.mapKeys)(f,((e,t)=>c(t)))}}))}else if((0,a.hasProperty)(o,"allNftContracts")){var t,f;null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.NftController.allNftContracts is "+typeof o.allNftContracts))}else r.default.warn("typeof state.NftController.allNftContracts is "+typeof o.allNftContracts);if((0,a.hasProperty)(o,"allNfts")&&(0,a.isObject)(o.allNfts)){const{allNfts:e}=o;Object.keys(e).every((t=>(0,a.isObject)(e[t])))&&Object.keys(e).forEach((t=>{const f=e[t];if((0,a.isObject)(f)){for(const e of Object.keys(f))"undefined"!==e&&e!==undefined&&"null"!==e||delete f[e];e[t]=(0,s.mapKeys)(f,((e,t)=>c(t)))}}))}else if((0,a.hasProperty)(o,"allNfts")){var n,i;null===(n=global.sentry)||void 0===n||null===(i=n.captureException)||void 0===i||i.call(n,new Error("typeof state.NftController.allNfts is "+typeof o.allNfts))}else r.default.warn("typeof state.NftController.allNfts is "+typeof o.allNfts);e.NftController=o}else if((0,a.hasProperty)(e,"NftController")){var o,d;null===(o=global.sentry)||void 0===o||null===(d=o.captureException)||void 0===d||d.call(o,new Error("typeof state.NftController is "+typeof e.NftController))}else r.default.warn("typeof state.NftController is undefined");if((0,a.hasProperty)(e,"TokenListController")&&(0,a.isObject)(e.TokenListController)){const t=e.TokenListController;if((0,a.hasProperty)(t,"tokensChainsCache")&&(0,a.isObject)(t.tokensChainsCache)){for(const e of Object.keys(t.tokensChainsCache))"undefined"!==e&&e!==undefined&&"null"!==e||delete t.tokensChainsCache[e];t.tokensChainsCache=(0,s.mapKeys)(t.tokensChainsCache,((e,t)=>c(t)))}else if((0,a.hasProperty)(t,"tokensChainsCache")){var l,u;null===(l=global.sentry)||void 0===l||null===(u=l.captureException)||void 0===u||u.call(l,new Error("typeof state.TokenListController.tokensChainsCache is "+typeof e.TokenListController.tokensChainsCache))}else r.default.warn("typeof state.TokenListController.tokensChainsCache is undefined")}else r.default.warn("typeof state.TokenListController is "+typeof e.TokenListController);if((0,a.hasProperty)(e,"TokensController")&&(0,a.isObject)(e.TokensController)){const t=e.TokensController;if((0,a.hasProperty)(t,"allTokens")&&(0,a.isObject)(t.allTokens)){const{allTokens:e}=t;for(const t of Object.keys(e))"undefined"!==t&&t!==undefined&&"null"!==t||delete e[t];t.allTokens=(0,s.mapKeys)(e,((e,t)=>c(t)))}else if((0,a.hasProperty)(t,"allTokens")){var b,h;null===(b=global.sentry)||void 0===b||null===(h=b.captureException)||void 0===h||h.call(b,new Error("typeof state.TokensController.allTokens is "+typeof t.allTokens))}else r.default.warn("typeof state.TokensController.allTokens is "+typeof t.allTokens);if((0,a.hasProperty)(t,"allIgnoredTokens")&&(0,a.isObject)(t.allIgnoredTokens)){const{allIgnoredTokens:e}=t;for(const t of Object.keys(e))"undefined"!==t&&t!==undefined&&"null"!==t||delete e[t];t.allIgnoredTokens=(0,s.mapKeys)(e,((e,t)=>c(t)))}else if((0,a.hasProperty)(t,"allIgnoredTokens")){var p,m;null===(p=global.sentry)||void 0===p||null===(m=p.captureException)||void 0===m||m.call(p,new Error("typeof state.TokensController.allIgnoredTokens is "+typeof t.allIgnoredTokens))}else r.default.warn("typeof state.TokensController.allIgnoredTokens is "+typeof t.allIgnoredTokens);if((0,a.hasProperty)(t,"allDetectedTokens")&&(0,a.isObject)(t.allDetectedTokens)){const{allDetectedTokens:e}=t;for(const t of Object.keys(e))"undefined"!==t&&t!==undefined&&"null"!==t||delete e[t];t.allDetectedTokens=(0,s.mapKeys)(e,((e,t)=>c(t)))}else if((0,a.hasProperty)(t,"allDetectedTokens")){var g,y;null===(g=global.sentry)||void 0===g||null===(y=g.captureException)||void 0===y||y.call(g,new Error("typeof state.TokensController.allDetectedTokens is "+typeof t.allDetectedTokens))}else r.default.warn("typeof state.TokensController.allDetectedTokens is "+typeof t.allDetectedTokens);e.TokensController=t}else{var w,v;null===(w=global.sentry)||void 0===w||null===(v=w.captureException)||void 0===v||v.call(w,new Error("typeof state.TokensController is "+typeof e.TokensController))}}(t.data),t},f.version=void 0;var a=e("@metamask/utils"),n=i(e("bn.js")),s=e("lodash"),r=i(e("loglevel"));function i(e){return e&&e.__esModule?e:{default:e}}const o=f.version=88;function c(e){if("string"==typeof e&&(0,a.isStrictHexString)(e))return e;return`0x${n.default.isBN(e)?e.toString(16):new n.default(e.toString(10),10).toString(16)}`}}}},{package:"$root$",file:"app/scripts/migrations/088.ts"}],[28,{},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.getExecutionServiceMessenger=function(e){return e.getRestricted({name:"ExecutionService",allowedEvents:[],allowedActions:[]})}}}},{package:"$root$",file:"app/scripts/controller-init/messengers/snaps/execution-service-messenger.ts"}],[280,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,n.cloneDeep)(e);return t.meta.version=s,t.data=function(e){if((0,a.hasProperty)(e,"NetworkController")&&(0,a.isObject)(e.NetworkController)&&(0,a.hasProperty)(e.NetworkController,"providerConfig")&&(0,a.isObject)(e.NetworkController.providerConfig)){const{networkConfigurations:t,providerConfig:f}=e.NetworkController;if(!(0,a.isObject)(t))return e;if(f.id)return e;let n;for(const s of Object.keys(t)){const r=t[s];if(!(0,a.isObject)(r))return e;if(r.rpcUrl===f.rpcUrl){n=r.id;break}}return n?(e.NetworkController.providerConfig={...f,id:n},{...e,NetworkController:e.NetworkController}):e}var t,f;if((0,a.isObject)(e.NetworkController)){if(!(0,a.isObject)(e.NetworkController.providerConfig)){var n,s;null===(n=global.sentry)||void 0===n||null===(s=n.captureException)||void 0===s||s.call(n,new Error("typeof state.NetworkController.providerConfig is "+typeof e.NetworkController.providerConfig))}}else null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.NetworkController is "+typeof e.NetworkController));return e}(t.data),t},f.version=void 0;var a=e("@metamask/utils"),n=e("lodash");const s=f.version=89}}},{package:"$root$",file:"app/scripts/migrations/089.ts"}],[281,{"@metamask/utils":2950,lodash:4855,loglevel:4863},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,n.cloneDeep)(e);return t.meta.version=i,t.data=function(e){if(!(0,s.hasProperty)(e,"PhishingController"))return r.default.warn("typeof state.PhishingController is undefined"),e;if(!(0,s.isObject)(e.PhishingController)){var t,f;return null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.PhishingController is "+typeof e.PhishingController)),e}if(!(0,s.hasProperty)(e.PhishingController,"listState"))return r.default.warn("typeof state.PhishingController.listState is "+typeof e.PhishingController),e;return delete e.PhishingController.listState,e}(t.data),t},f.version=void 0;var a,n=e("lodash"),s=e("@metamask/utils"),r=(a=e("loglevel"))&&a.__esModule?a:{default:a};const i=f.version=90}}},{package:"$root$",file:"app/scripts/migrations/090.ts"}],[282,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,n.cloneDeep)(e);return t.meta.version=s,t.data=function(e){if((0,a.hasProperty)(e,"NetworkController")&&(0,a.isObject)(e.NetworkController)&&(0,a.hasProperty)(e.NetworkController,"networkConfigurations")&&(0,a.isObject)(e.NetworkController.networkConfigurations)){const{networkConfigurations:t}=e.NetworkController;for(const[e,f]of Object.entries(t))(0,a.isObject)(f)&&(f.chainId||delete t[e]);return e.NetworkController={...e.NetworkController,networkConfigurations:t},{...e,NetworkController:e.NetworkController}}var t,f;if((0,a.isObject)(e.NetworkController)){if(!(0,a.isObject)(e.NetworkController.networkConfigurations)){var n,s;null===(n=global.sentry)||void 0===n||null===(s=n.captureException)||void 0===s||s.call(n,new Error("typeof state.NetworkController.networkConfigurations is "+typeof e.NetworkController.networkConfigurations))}}else null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.NetworkController is "+typeof e.NetworkController));return e}(t.data),t},f.version=void 0;var a=e("@metamask/utils"),n=e("lodash");const s=f.version=91}}},{package:"$root$",file:"app/scripts/migrations/091.ts"}],[283,{"@metamask/utils":2950,lodash:4855,loglevel:4863},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,n.cloneDeep)(e);return t.meta.version=i,t.data=function(e){if(!(0,s.hasProperty)(e,"TokenListController"))return r.default.warn("Skipping migration, TokenListController state is missing"),e;var t,f;if(!(0,s.isObject)(e.TokenListController))return null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.TokenListController is "+typeof e.TokenListController)),e;if(!(0,s.hasProperty)(e.TokenListController,"tokensChainsCache"))return r.default.warn("Skipping migration, TokenListController.tokensChainsCache state is missing"),e;e.TokenListController.tokensChainsCache===undefined&&delete e.TokenListController.tokensChainsCache;return e}(t.data),t},f.version=void 0;var a,n=e("lodash"),s=e("@metamask/utils"),r=(a=e("loglevel"))&&a.__esModule?a:{default:a};const i=f.version=92.1}}},{package:"$root$",file:"app/scripts/migrations/092.1.ts"}],[284,{"@metamask/utils":2950,"@sentry/browser":3084,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,s.cloneDeep)(e);return t.meta.version=r,t.data=function(e){return function(e){const t=["networkId","networkStatus","providerConfig","networkDetails","networkConfigurations"];if(!(0,a.hasProperty)(e,"NetworkController")||!(0,s.isObject)(e.NetworkController))return(0,n.captureException)(`Migration ${r}: Invalid NetworkController state: ${typeof e.NetworkController}`),e;const f=e.NetworkController,i=(0,s.pick)(f,t);return{...e,NetworkController:i}}(e)}(t.data),t},f.version=void 0;var a=e("@metamask/utils"),n=e("@sentry/browser"),s=e("lodash");const r=f.version=92.2}}},{package:"$root$",file:"app/scripts/migrations/092.2.ts"}],[285,{"@metamask/utils":2950,lodash:4855,loglevel:4863},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,s.cloneDeep)(e);return t.meta.version=i,function(e){!function(e){if((0,n.isNullOrUndefined)(e.PreferencesController))return void r.default.warn(`Migration #${i}: preferences controller null or undefined, skipping migration`);if((0,n.hasProperty)(e,"AppStateController")&&(0,n.isObject)(e.AppStateController)&&(0,n.hasProperty)(e,"PreferencesController")&&(0,n.isObject)(e.PreferencesController)){var t;const f=null===(t=e.PreferencesController)||void 0===t?void 0:t.advancedGasFee,a=(0,n.isObject)(f)&&o(f);e.AppStateController.hadAdvancedGasFeesSetPriorToMigration92_3=a,(null===e.PreferencesController.advancedGasFee||(0,n.isObject)(e.PreferencesController.advancedGasFee)&&o(e.PreferencesController.advancedGasFee))&&(e.PreferencesController.advancedGasFee={})}else if(!1===(0,n.isObject)(e.AppStateController)){var f,a;null===(f=global.sentry)||void 0===f||null===(a=f.captureException)||void 0===a||a.call(f,new Error("typeof state.AppStateController is "+typeof e.AppStateController))}else if(!1===(0,n.isObject)(e.PreferencesController)){var s,c;null===(s=global.sentry)||void 0===s||null===(c=s.captureException)||void 0===c||c.call(s,new Error("typeof state.PreferencesController is "+typeof e.PreferencesController))}}(e)}(t.data),t},f.version=void 0;var a,n=e("@metamask/utils"),s=e("lodash"),r=(a=e("loglevel"))&&a.__esModule?a:{default:a};const i=f.version=92.3;function o(e){const t=Object.keys(e);return!(!t.includes("maxBaseFee")&&!t.includes("priorityFee"))}}}},{package:"$root$",file:"app/scripts/migrations/092.3.ts"}],[286,{"@metamask/utils":2950,lodash:4855,loglevel:4863},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,n.cloneDeep)(e);return t.meta.version=i,t.data=function(e){if((0,s.hasProperty)(e,"PhishingController")&&(0,s.isObject)(e.PhishingController))delete e.PhishingController.stalelistLastFetched,delete e.PhishingController.hotlistLastFetched;else if((0,s.hasProperty)(e,"PhishingController")){var t,f;null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.PhishingController is "+typeof e.PhishingController))}else r.default.warn("typeof state.PhishingController is undefined");return e}(t.data),t},f.version=void 0;var a,n=e("lodash"),s=e("@metamask/utils"),r=(a=e("loglevel"))&&a.__esModule?a:{default:a};const i=f.version=92}}},{package:"$root$",file:"app/scripts/migrations/092.ts"}],[287,{"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,a.cloneDeep)(e);return t.meta.version=s,t.data=function(e){if((0,n.hasProperty)(e,"NetworkController")&&(0,n.isObject)(e.NetworkController)&&(0,n.hasProperty)(e.NetworkController,"providerConfig")&&(0,n.isObject)(e.NetworkController.providerConfig)){const{providerConfig:t}=e.NetworkController;return t.ticker?e:(e.NetworkController.providerConfig={ticker:"ETH",...t},{...e,NetworkController:e.NetworkController})}var t,f;if((0,n.isObject)(e.NetworkController)){if((0,n.isObject)(e.NetworkController)&&!(0,n.isObject)(e.NetworkController.providerConfig)){var a,s;null===(a=global.sentry)||void 0===a||null===(s=a.captureException)||void 0===s||s.call(a,new Error("typeof state.NetworkController.providerConfig is "+typeof e.NetworkController.providerConfig))}}else null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.NetworkController is "+typeof e.NetworkController));return e}(t.data),t},f.version=void 0;var a=e("lodash"),n=e("@metamask/utils");const s=f.version=93}}},{package:"$root$",file:"app/scripts/migrations/093.ts"}],[288,{"@metamask/controller-utils":1474,"@metamask/network-controller":2176,"@metamask/utils":2950,lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,a.cloneDeep)(e);return t.meta.version=i,t.data=function(e){if((0,n.hasProperty)(e,"NetworkController")&&(0,n.isObject)(e.NetworkController)&&(0,n.hasProperty)(e.NetworkController,"providerConfig")&&(0,n.isObject)(e.NetworkController.providerConfig)&&((0,n.hasProperty)(e.NetworkController.providerConfig,"id")||(0,n.hasProperty)(e.NetworkController.providerConfig,"type")&&e.NetworkController.providerConfig.type!==r.NetworkType.rpc)){const t=e.NetworkController.providerConfig.id||e.NetworkController.providerConfig.type;if(!t||"string"!=typeof t)return e;const f={[t]:{EIPS:{},status:s.NetworkStatus.Unknown}};if((0,n.hasProperty)(e.NetworkController,"networkDetails")&&(0,n.isObject)(e.NetworkController.networkDetails)){const{networkDetails:a}=e.NetworkController;a.EIPS&&(0,n.isObject)(a.EIPS)&&(f[t].EIPS={...a.EIPS}),delete e.NetworkController.networkDetails}return(0,n.hasProperty)(e.NetworkController,"networkStatus")&&"string"==typeof e.NetworkController.networkStatus&&(f[t].status=e.NetworkController.networkStatus,delete e.NetworkController.networkStatus),{...e,NetworkController:{...e.NetworkController,networksMetadata:f,selectedNetworkClientId:t}}}var t,f;if((0,n.isObject)(e.NetworkController)){if((0,n.isObject)(e.NetworkController)&&!(0,n.isObject)(e.NetworkController.providerConfig)){var a,i;null===(a=global.sentry)||void 0===a||null===(i=a.captureException)||void 0===i||i.call(a,new Error("typeof state.NetworkController.providerConfig is "+typeof e.NetworkController.providerConfig))}else if((0,n.isObject)(e.NetworkController)&&(0,n.isObject)(e.NetworkController.providerConfig)){var o,c;null===(o=global.sentry)||void 0===o||null===(c=o.captureException)||void 0===c||c.call(o,new Error(`typeof state.NetworkController.providerConfig.id is ${typeof e.NetworkController.providerConfig.id} and state.NetworkController.providerConfig.type is ${e.NetworkController.providerConfig.type}`))}}else null===(t=global.sentry)||void 0===t||null===(f=t.captureException)||void 0===f||f.call(t,new Error("typeof state.NetworkController is "+typeof e.NetworkController));return e}(t.data),t},f.version=void 0;var a=e("lodash"),n=e("@metamask/utils"),s=e("@metamask/network-controller"),r=e("@metamask/controller-utils");const i=f.version=94}}},{package:"$root$",file:"app/scripts/migrations/094.ts"}],[2883,{},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){t.exports={hstBytecode:"0x6101406040523480156200001257600080fd5b506040516200323e3803806200323e83398181016040528101906200003891906200065b565b82806040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525085848682600390816200008491906200094c565b5081600490816200009691906200094c565b5080600560006101000a81548160ff021916908360ff160217905550505050620000d5620000c9620001ce60201b60201c565b620001d660201b60201c565b60008280519060200120905060008280519060200120905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260e081815250508161010081815250504660a081815250506200013e8184846200029c60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050806101208181525050505050505050620001c433600560009054906101000a900460ff16600a620001ab919062000bb6565b86620001b8919062000c07565b620002d860201b60201c565b5050505062000dfb565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008383834630604051602001620002b995949392919062000cc3565b6040516020818303038152906040528051906020012090509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200034a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003419062000d81565b60405180910390fd5b6200035e600083836200044560201b60201c565b806002600082825462000372919062000da3565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000425919062000dde565b60405180910390a362000441600083836200044a60201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620004788162000463565b81146200048457600080fd5b50565b60008151905062000498816200046d565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004f382620004a8565b810181811067ffffffffffffffff82111715620005155762000514620004b9565b5b80604052505050565b60006200052a6200044f565b9050620005388282620004e8565b919050565b600067ffffffffffffffff8211156200055b576200055a620004b9565b5b6200056682620004a8565b9050602081019050919050565b60005b838110156200059357808201518184015260208101905062000576565b60008484015250505050565b6000620005b6620005b0846200053d565b6200051e565b905082815260208101848484011115620005d557620005d4620004a3565b5b620005e284828562000573565b509392505050565b600082601f8301126200060257620006016200049e565b5b8151620006148482602086016200059f565b91505092915050565b600060ff82169050919050565b62000635816200061d565b81146200064157600080fd5b50565b60008151905062000655816200062a565b92915050565b6000806000806080858703121562000678576200067762000459565b5b6000620006888782880162000487565b945050602085015167ffffffffffffffff811115620006ac57620006ab6200045e565b5b620006ba87828801620005ea565b9350506040620006cd8782880162000644565b925050606085015167ffffffffffffffff811115620006f157620006f06200045e565b5b620006ff87828801620005ea565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200075e57607f821691505b60208210810362000774576200077362000716565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200079f565b620007ea86836200079f565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200082d62000827620008218462000463565b62000802565b62000463565b9050919050565b6000819050919050565b62000849836200080c565b62000861620008588262000834565b848454620007ac565b825550505050565b600090565b6200087862000869565b620008858184846200083e565b505050565b5b81811015620008ad57620008a16000826200086e565b6001810190506200088b565b5050565b601f821115620008fc57620008c6816200077a565b620008d1846200078f565b81016020851015620008e1578190505b620008f9620008f0856200078f565b8301826200088a565b50505b505050565b600082821c905092915050565b6000620009216000198460080262000901565b1980831691505092915050565b60006200093c83836200090e565b9150826002028217905092915050565b62000957826200070b565b67ffffffffffffffff811115620009735762000972620004b9565b5b6200097f825462000745565b6200098c828285620008b1565b600060209050601f831160018114620009c45760008415620009af578287015190505b620009bb85826200092e565b86555062000a2b565b601f198416620009d4866200077a565b60005b82811015620009fe57848901518255600182019150602085019450602081019050620009d7565b8683101562000a1e578489015162000a1a601f8916826200090e565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ac15780860481111562000a995762000a9862000a33565b5b600185161562000aa95780820291505b808102905062000ab98562000a62565b945062000a79565b94509492505050565b60008262000adc576001905062000baf565b8162000aec576000905062000baf565b816001811462000b05576002811462000b105762000b46565b600191505062000baf565b60ff84111562000b255762000b2462000a33565b5b8360020a91508482111562000b3f5762000b3e62000a33565b5b5062000baf565b5060208310610133831016604e8410600b841016171562000b805782820a90508381111562000b7a5762000b7962000a33565b5b62000baf565b62000b8f848484600162000a6f565b9250905081840481111562000ba95762000ba862000a33565b5b81810290505b9392505050565b600062000bc38262000463565b915062000bd0836200061d565b925062000bff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000aca565b905092915050565b600062000c148262000463565b915062000c218362000463565b925082820262000c318162000463565b9150828204841483151762000c4b5762000c4a62000a33565b5b5092915050565b6000819050919050565b62000c678162000c52565b82525050565b62000c788162000463565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cab8262000c7e565b9050919050565b62000cbd8162000c9e565b82525050565b600060a08201905062000cda600083018862000c5c565b62000ce9602083018762000c5c565b62000cf8604083018662000c5c565b62000d07606083018562000c6d565b62000d16608083018462000cb2565b9695505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d69601f8362000d20565b915062000d768262000d31565b602082019050919050565b6000602082019050818103600083015262000d9c8162000d5a565b9050919050565b600062000db08262000463565b915062000dbd8362000463565b925082820190508082111562000dd85762000dd762000a33565b5b92915050565b600060208201905062000df5600083018462000c6d565b92915050565b60805160a05160c05160e05161010051610120516123f362000e4b6000396000610ed901526000610f1b01526000610efa01526000610e2f01526000610e8501526000610eae01526123f36000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d7146102e5578063a9059cbb14610315578063d505accf14610345578063dd62ed3e14610361578063f2fde38b1461039157610116565b8063715018a61461026f5780637ecebe00146102795780638da5cb5b146102a957806395d89b41146102c757610116565b8063313ce567116100e9578063313ce567146101b75780633644e515146101d557806339509351146101f357806340c10f191461022357806370a082311461023f57610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b6101236103ad565b60405161013091906115f5565b60405180910390f35b610153600480360381019061014e91906116b0565b61043f565b604051610160919061170b565b60405180910390f35b610171610462565b60405161017e9190611735565b60405180910390f35b6101a1600480360381019061019c9190611750565b61046c565b6040516101ae919061170b565b60405180910390f35b6101bf61049b565b6040516101cc91906117bf565b60405180910390f35b6101dd6104ae565b6040516101ea91906117f3565b60405180910390f35b61020d600480360381019061020891906116b0565b6104bd565b60405161021a919061170b565b60405180910390f35b61023d600480360381019061023891906116b0565b6104f4565b005b6102596004803603810190610254919061180e565b61050a565b6040516102669190611735565b60405180910390f35b610277610552565b005b610293600480360381019061028e919061180e565b610566565b6040516102a09190611735565b60405180910390f35b6102b16105b6565b6040516102be919061184a565b60405180910390f35b6102cf6105e0565b6040516102dc91906115f5565b60405180910390f35b6102ff60048036038101906102fa91906116b0565b610672565b60405161030c919061170b565b60405180910390f35b61032f600480360381019061032a91906116b0565b6106e9565b60405161033c919061170b565b60405180910390f35b61035f600480360381019061035a91906118bd565b61070c565b005b61037b6004803603810190610376919061195f565b61084e565b6040516103889190611735565b60405180910390f35b6103ab60048036038101906103a6919061180e565b6108d5565b005b6060600380546103bc906119ce565b80601f01602080910402602001604051908101604052809291908181526020018280546103e8906119ce565b80156104355780601f1061040a57610100808354040283529160200191610435565b820191906000526020600020905b81548152906001019060200180831161041857829003601f168201915b5050505050905090565b60008061044a610958565b9050610457818585610960565b600191505092915050565b6000600254905090565b600080610477610958565b9050610484858285610b29565b61048f858585610bb5565b60019150509392505050565b600560009054906101000a900460ff1681565b60006104b8610e2b565b905090565b6000806104c8610958565b90506104e98185856104da858961084e565b6104e49190611a2e565b610960565b600191505092915050565b6104fc610f45565b6105068282610fc3565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61055a610f45565b6105646000611119565b565b60006105af600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206111df565b9050919050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546105ef906119ce565b80601f016020809104026020016040519081016040528092919081815260200182805461061b906119ce565b80156106685780601f1061063d57610100808354040283529160200191610668565b820191906000526020600020905b81548152906001019060200180831161064b57829003601f168201915b5050505050905090565b60008061067d610958565b9050600061068b828661084e565b9050838110156106d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c790611ad4565b60405180910390fd5b6106dd8286868403610960565b60019250505092915050565b6000806106f4610958565b9050610701818585610bb5565b600191505092915050565b8342111561074f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074690611b40565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861077e8c6111ed565b8960405160200161079496959493929190611b60565b60405160208183030381529060405280519060200120905060006107b78261124b565b905060006107c782878787611265565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082e90611c0d565b60405180910390fd5b6108428a8a8a610960565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108dd610f45565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390611c9f565b60405180910390fd5b61095581611119565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c690611d31565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590611dc3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b1c9190611735565b60405180910390a3505050565b6000610b35848461084e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610baf5781811015610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890611e2f565b60405180910390fd5b610bae8484848403610960565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b90611ec1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90611f53565b60405180910390fd5b610c9e838383611290565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90611fe5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e129190611735565b60405180910390a3610e25848484611295565b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015610ea757507f000000000000000000000000000000000000000000000000000000000000000046145b15610ed4577f00000000000000000000000000000000000000000000000000000000000000009050610f42565b610f3f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061129a565b90505b90565b610f4d610958565b73ffffffffffffffffffffffffffffffffffffffff16610f6b6105b6565b73ffffffffffffffffffffffffffffffffffffffff1614610fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb890612051565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611032576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611029906120bd565b60405180910390fd5b61103e60008383611290565b80600260008282546110509190611a2e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111019190611735565b60405180910390a361111560008383611295565b5050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081600001549050919050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061123a816111df565b9150611245816112d4565b50919050565b600061125e611258610e2b565b836112ea565b9050919050565b60008060006112768787878761131d565b91509150611283816113ff565b8192505050949350505050565b505050565b505050565b600083838346306040516020016112b59594939291906120dd565b6040516020818303038152906040528051906020012090509392505050565b6001816000016000828254019250508190555050565b600082826040516020016112ff9291906121a8565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c11156113585760006003915091506113f6565b60006001878787876040516000815260200160405260405161137d94939291906121df565b6020604051602081039080840390855afa15801561139f573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113ed576000600192509250506113f6565b80600092509250505b94509492505050565b6000600481111561141357611412612224565b5b81600481111561142657611425612224565b5b031561156257600160048111156114405761143f612224565b5b81600481111561145357611452612224565b5b03611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a9061229f565b60405180910390fd5b600260048111156114a7576114a6612224565b5b8160048111156114ba576114b9612224565b5b036114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f19061230b565b60405180910390fd5b6003600481111561150e5761150d612224565b5b81600481111561152157611520612224565b5b03611561576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115589061239d565b60405180910390fd5b5b50565b600081519050919050565b600082825260208201905092915050565b60005b8381101561159f578082015181840152602081019050611584565b60008484015250505050565b6000601f19601f8301169050919050565b60006115c782611565565b6115d18185611570565b93506115e1818560208601611581565b6115ea816115ab565b840191505092915050565b6000602082019050818103600083015261160f81846115bc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116478261161c565b9050919050565b6116578161163c565b811461166257600080fd5b50565b6000813590506116748161164e565b92915050565b6000819050919050565b61168d8161167a565b811461169857600080fd5b50565b6000813590506116aa81611684565b92915050565b600080604083850312156116c7576116c6611617565b5b60006116d585828601611665565b92505060206116e68582860161169b565b9150509250929050565b60008115159050919050565b611705816116f0565b82525050565b600060208201905061172060008301846116fc565b92915050565b61172f8161167a565b82525050565b600060208201905061174a6000830184611726565b92915050565b60008060006060848603121561176957611768611617565b5b600061177786828701611665565b935050602061178886828701611665565b92505060406117998682870161169b565b9150509250925092565b600060ff82169050919050565b6117b9816117a3565b82525050565b60006020820190506117d460008301846117b0565b92915050565b6000819050919050565b6117ed816117da565b82525050565b600060208201905061180860008301846117e4565b92915050565b60006020828403121561182457611823611617565b5b600061183284828501611665565b91505092915050565b6118448161163c565b82525050565b600060208201905061185f600083018461183b565b92915050565b61186e816117a3565b811461187957600080fd5b50565b60008135905061188b81611865565b92915050565b61189a816117da565b81146118a557600080fd5b50565b6000813590506118b781611891565b92915050565b600080600080600080600060e0888a0312156118dc576118db611617565b5b60006118ea8a828b01611665565b97505060206118fb8a828b01611665565b965050604061190c8a828b0161169b565b955050606061191d8a828b0161169b565b945050608061192e8a828b0161187c565b93505060a061193f8a828b016118a8565b92505060c06119508a828b016118a8565b91505092959891949750929550565b6000806040838503121561197657611975611617565b5b600061198485828601611665565b925050602061199585828601611665565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806119e657607f821691505b6020821081036119f9576119f861199f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611a398261167a565b9150611a448361167a565b9250828201905080821115611a5c57611a5b6119ff565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611abe602583611570565b9150611ac982611a62565b604082019050919050565b60006020820190508181036000830152611aed81611ab1565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000611b2a601d83611570565b9150611b3582611af4565b602082019050919050565b60006020820190508181036000830152611b5981611b1d565b9050919050565b600060c082019050611b7560008301896117e4565b611b82602083018861183b565b611b8f604083018761183b565b611b9c6060830186611726565b611ba96080830185611726565b611bb660a0830184611726565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000611bf7601e83611570565b9150611c0282611bc1565b602082019050919050565b60006020820190508181036000830152611c2681611bea565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611c89602683611570565b9150611c9482611c2d565b604082019050919050565b60006020820190508181036000830152611cb881611c7c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611d1b602483611570565b9150611d2682611cbf565b604082019050919050565b60006020820190508181036000830152611d4a81611d0e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611dad602283611570565b9150611db882611d51565b604082019050919050565b60006020820190508181036000830152611ddc81611da0565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611e19601d83611570565b9150611e2482611de3565b602082019050919050565b60006020820190508181036000830152611e4881611e0c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611eab602583611570565b9150611eb682611e4f565b604082019050919050565b60006020820190508181036000830152611eda81611e9e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611f3d602383611570565b9150611f4882611ee1565b604082019050919050565b60006020820190508181036000830152611f6c81611f30565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611fcf602683611570565b9150611fda82611f73565b604082019050919050565b60006020820190508181036000830152611ffe81611fc2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061203b602083611570565b915061204682612005565b602082019050919050565b6000602082019050818103600083015261206a8161202e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006120a7601f83611570565b91506120b282612071565b602082019050919050565b600060208201905081810360008301526120d68161209a565b9050919050565b600060a0820190506120f260008301886117e4565b6120ff60208301876117e4565b61210c60408301866117e4565b6121196060830185611726565b612126608083018461183b565b9695505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000612171600283612130565b915061217c8261213b565b600282019050919050565b6000819050919050565b6121a261219d826117da565b612187565b82525050565b60006121b382612164565b91506121bf8285612191565b6020820191506121cf8284612191565b6020820191508190509392505050565b60006080820190506121f460008301876117e4565b61220160208301866117b0565b61220e60408301856117e4565b61221b60608301846117e4565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000612289601883611570565b915061229482612253565b602082019050919050565b600060208201905081810360008301526122b88161227c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b60006122f5601f83611570565b9150612300826122bf565b602082019050919050565b60006020820190508181036000830152612324816122e8565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000612387602283611570565b91506123928261232b565b604082019050919050565b600060208201905081810360008301526123b68161237a565b905091905056fea26469706673582212205e8d7bb733a28b307c6266e71d7fce8f78067e564cdf5e388464ca543c2ea25b64736f6c63430008120033",hstAbi:[{inputs:[{internalType:"uint256",name:"initialAmount",type:"uint256"},{internalType:"string",name:"tokenName",type:"string"},{internalType:"uint8",name:"decimalUnits",type:"uint8"},{internalType:"string",name:"tokenSymbol",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],piggybankBytecode:"0x608060405234801561001057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000808190555061023b806100686000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632e1a7d4d1461005c5780638da5cb5b1461009d578063d0e30db0146100f4575b600080fd5b34801561006857600080fd5b5061008760048036038101908080359060200190929190505050610112565b6040518082815260200191505060405180910390f35b3480156100a957600080fd5b506100b26101d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100fc6101f6565b6040518082815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561017057600080fd5b8160008082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156101c5573d6000803e3d6000fd5b506000549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003460008082825401925050819055506000549050905600a165627a7a72305820f237db3ec816a52589d82512117bc85bc08d3537683ffeff9059108caf3e5d400029",piggybankAbi:[{constant:!1,inputs:[{name:"withdrawAmount",type:"uint256"}],name:"withdraw",outputs:[{name:"remainingBal",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[],name:"deposit",outputs:[{name:"",type:"uint256"}],payable:!0,stateMutability:"payable",type:"function"},{inputs:[],payable:!1,stateMutability:"nonpayable",type:"constructor"}],nftsAbi:[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"currentTokenId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"numberOfTokens",type:"uint256"}],name:"mintNFTs",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}],nftsBytecode:"0x60806040523480156200001157600080fd5b506040518060400160405280600c81526020017f54657374446170704e46547300000000000000000000000000000000000000008152506040518060400160405280600381526020017f54444e000000000000000000000000000000000000000000000000000000000081525081600090816200008f919062000324565b508060019081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b612be6806200041b6000396000f3fe608060405234801561001057600080fd5b50600436106100f45760003560e01c806342842e0e11610097578063a22cb46511610066578063a22cb46514610283578063b88d4fde1461029f578063c87b56dd146102bb578063e985e9c5146102eb576100f4565b806342842e0e146101e95780636352211e1461020557806370a082311461023557806395d89b4114610265576100f4565b8063081812fc116100d3578063081812fc14610165578063095ea7b31461019557806323b872dd146101b15780633b4b1381146101cd576100f4565b80629a9b7b146100f957806301ffc9a71461011757806306fdde0314610147575b600080fd5b61010161031b565b60405161010e91906119ac565b60405180910390f35b610131600480360381019061012c9190611a33565b61032c565b60405161013e9190611a7b565b60405180910390f35b61014f61040e565b60405161015c9190611b26565b60405180910390f35b61017f600480360381019061017a9190611b74565b6104a0565b60405161018c9190611be2565b60405180910390f35b6101af60048036038101906101aa9190611c29565b6104e6565b005b6101cb60048036038101906101c69190611c69565b6105fd565b005b6101e760048036038101906101e29190611b74565b61065d565b005b61020360048036038101906101fe9190611c69565b6106ac565b005b61021f600480360381019061021a9190611b74565b6106cc565b60405161022c9190611be2565b60405180910390f35b61024f600480360381019061024a9190611cbc565b610752565b60405161025c91906119ac565b60405180910390f35b61026d610809565b60405161027a9190611b26565b60405180910390f35b61029d60048036038101906102989190611d15565b61089b565b005b6102b960048036038101906102b49190611e8a565b6108b1565b005b6102d560048036038101906102d09190611b74565b610913565b6040516102e29190611b26565b60405180910390f35b61030560048036038101906103009190611f0d565b6109ac565b6040516103129190611a7b565b60405180910390f35b60006103276006610a40565b905090565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103f757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610407575061040682610a4e565b5b9050919050565b60606000805461041d90611f7c565b80601f016020809104026020016040519081016040528092919081815260200182805461044990611f7c565b80156104965780601f1061046b57610100808354040283529160200191610496565b820191906000526020600020905b81548152906001019060200180831161047957829003601f168201915b5050505050905090565b60006104ab82610ab8565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104f1826106cc565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610561576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105589061201f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610580610b03565b73ffffffffffffffffffffffffffffffffffffffff1614806105af57506105ae816105a9610b03565b6109ac565b5b6105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e5906120b1565b60405180910390fd5b6105f88383610b0b565b505050565b61060e610608610b03565b82610bc4565b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064490612143565b60405180910390fd5b610658838383610c59565b505050565b6000600190505b8181116106a8576106756006610f52565b60006106816006610a40565b905061069461068e610b03565b82610f68565b5080806106a090612192565b915050610664565b5050565b6106c7838383604051806020016040528060008152506108b1565b505050565b6000806106d883610f86565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074090612226565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b9906122b8565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606001805461081890611f7c565b80601f016020809104026020016040519081016040528092919081815260200182805461084490611f7c565b80156108915780601f1061086657610100808354040283529160200191610891565b820191906000526020600020905b81548152906001019060200180831161087457829003601f168201915b5050505050905090565b6108ad6108a6610b03565b8383610fc3565b5050565b6108c26108bc610b03565b83610bc4565b610901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f890612143565b60405180910390fd5b61090d8484848461112f565b50505050565b6060600060405180610160016040528061013c8152602001612a7561013c9139905060006109408461118b565b61094983611259565b6109528661118b565b604051602001610964939291906124b6565b6040516020818303038152906040529050600061098082611259565b604051602001610990919061255f565b6040516020818303038152906040529050809350505050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600081600001549050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610ac1816113d1565b610b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af790612226565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610b7e836106cc565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610bd0836106cc565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610c125750610c1181856109ac565b5b80610c5057508373ffffffffffffffffffffffffffffffffffffffff16610c38846104a0565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610c79826106cc565b73ffffffffffffffffffffffffffffffffffffffff1614610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc6906125f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3590612685565b60405180910390fd5b610d4b8383836001611412565b8273ffffffffffffffffffffffffffffffffffffffff16610d6b826106cc565b73ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906125f3565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f4d8383836001611418565b505050565b6001816000016000828254019250508190555050565b610f8282826040518060200160405280600081525061141e565b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611031576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611028906126f1565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111229190611a7b565b60405180910390a3505050565b61113a848484610c59565b61114684848484611479565b611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90612783565b60405180910390fd5b50505050565b60606000600161119a84611600565b01905060008167ffffffffffffffff8111156111b9576111b8611d5f565b5b6040519080825280601f01601f1916602001820160405280156111eb5781602001600182028036833780820191505090505b509050600082602001820190505b60011561124e578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611242576112416127a3565b5b049450600085036111f9575b819350505050919050565b6060600082510361127b576040518060200160405280600081525090506113cc565b6000604051806060016040528060408152602001612a3560409139905060006003600285516112aa91906127d2565b6112b49190612806565b60046112c09190612837565b905060006020826112d191906127d2565b67ffffffffffffffff8111156112ea576112e9611d5f565b5b6040519080825280601f01601f19166020018201604052801561131c5781602001600182028036833780820191505090505b509050818152600183018586518101602084015b8183101561138b576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f8116850151825360018201915050611330565b6003895106600181146113a557600281146113b5576113c0565b613d3d60f01b60028303526113c0565b603d60f81b60018303525b50505050508093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff166113f383610f86565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b6114288383611753565b6114356000848484611479565b611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90612783565b60405180910390fd5b505050565b600061149a8473ffffffffffffffffffffffffffffffffffffffff16611970565b156115f3578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026114c3610b03565b8786866040518563ffffffff1660e01b81526004016114e594939291906128ce565b6020604051808303816000875af192505050801561152157506040513d601f19601f8201168201806040525081019061151e919061292f565b60015b6115a3573d8060008114611551576040519150601f19603f3d011682016040523d82523d6000602084013e611556565b606091505b50600081510361159b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159290612783565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506115f8565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061165e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611654576116536127a3565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061169b576d04ee2d6d415b85acef81000000008381611691576116906127a3565b5b0492506020810190505b662386f26fc1000083106116ca57662386f26fc1000083816116c0576116bf6127a3565b5b0492506010810190505b6305f5e10083106116f3576305f5e10083816116e9576116e86127a3565b5b0492506008810190505b612710831061171857612710838161170e5761170d6127a3565b5b0492506004810190505b6064831061173b5760648381611731576117306127a3565b5b0492506002810190505b600a831061174a576001810190505b80915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b9906129a8565b60405180910390fd5b6117cb816113d1565b1561180b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180290612a14565b60405180910390fd5b611819600083836001611412565b611822816113d1565b15611862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185990612a14565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461196c600083836001611418565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000819050919050565b6119a681611993565b82525050565b60006020820190506119c1600083018461199d565b92915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611a10816119db565b8114611a1b57600080fd5b50565b600081359050611a2d81611a07565b92915050565b600060208284031215611a4957611a486119d1565b5b6000611a5784828501611a1e565b91505092915050565b60008115159050919050565b611a7581611a60565b82525050565b6000602082019050611a906000830184611a6c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ad0578082015181840152602081019050611ab5565b60008484015250505050565b6000601f19601f8301169050919050565b6000611af882611a96565b611b028185611aa1565b9350611b12818560208601611ab2565b611b1b81611adc565b840191505092915050565b60006020820190508181036000830152611b408184611aed565b905092915050565b611b5181611993565b8114611b5c57600080fd5b50565b600081359050611b6e81611b48565b92915050565b600060208284031215611b8a57611b896119d1565b5b6000611b9884828501611b5f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bcc82611ba1565b9050919050565b611bdc81611bc1565b82525050565b6000602082019050611bf76000830184611bd3565b92915050565b611c0681611bc1565b8114611c1157600080fd5b50565b600081359050611c2381611bfd565b92915050565b60008060408385031215611c4057611c3f6119d1565b5b6000611c4e85828601611c14565b9250506020611c5f85828601611b5f565b9150509250929050565b600080600060608486031215611c8257611c816119d1565b5b6000611c9086828701611c14565b9350506020611ca186828701611c14565b9250506040611cb286828701611b5f565b9150509250925092565b600060208284031215611cd257611cd16119d1565b5b6000611ce084828501611c14565b91505092915050565b611cf281611a60565b8114611cfd57600080fd5b50565b600081359050611d0f81611ce9565b92915050565b60008060408385031215611d2c57611d2b6119d1565b5b6000611d3a85828601611c14565b9250506020611d4b85828601611d00565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611d9782611adc565b810181811067ffffffffffffffff82111715611db657611db5611d5f565b5b80604052505050565b6000611dc96119c7565b9050611dd58282611d8e565b919050565b600067ffffffffffffffff821115611df557611df4611d5f565b5b611dfe82611adc565b9050602081019050919050565b82818337600083830152505050565b6000611e2d611e2884611dda565b611dbf565b905082815260208101848484011115611e4957611e48611d5a565b5b611e54848285611e0b565b509392505050565b600082601f830112611e7157611e70611d55565b5b8135611e81848260208601611e1a565b91505092915050565b60008060008060808587031215611ea457611ea36119d1565b5b6000611eb287828801611c14565b9450506020611ec387828801611c14565b9350506040611ed487828801611b5f565b925050606085013567ffffffffffffffff811115611ef557611ef46119d6565b5b611f0187828801611e5c565b91505092959194509250565b60008060408385031215611f2457611f236119d1565b5b6000611f3285828601611c14565b9250506020611f4385828601611c14565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f9457607f821691505b602082108103611fa757611fa6611f4d565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612009602183611aa1565b915061201482611fad565b604082019050919050565b6000602082019050818103600083015261203881611ffc565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b600061209b603d83611aa1565b91506120a68261203f565b604082019050919050565b600060208201905081810360008301526120ca8161208e565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b600061212d602d83611aa1565b9150612138826120d1565b604082019050919050565b6000602082019050818103600083015261215c81612120565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061219d82611993565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121cf576121ce612163565b5b600182019050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612210601883611aa1565b915061221b826121da565b602082019050919050565b6000602082019050818103600083015261223f81612203565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006122a2602983611aa1565b91506122ad82612246565b604082019050919050565b600060208201905081810360008301526122d181612295565b9050919050565b600081905092915050565b7f7b226e616d65223a2022546573742044617070204e4654732023000000000000600082015250565b6000612319601a836122d8565b9150612324826122e3565b601a82019050919050565b600061233a82611a96565b61234481856122d8565b9350612354818560208601611ab2565b80840191505092915050565b7f222c20226465736372697074696f6e223a2022546573742044617070204e465460008201527f7320666f722074657374696e672e222c2022696d616765223a2022646174613a60208201527f696d6167652f7376672b786d6c3b6261736536342c0000000000000000000000604082015250565b60006123e26055836122d8565b91506123ed82612360565b605582019050919050565b7f222c202261747472696275746573223a205b7b2274726169745f74797065223a60008201527f2022546f6b656e204964222c202276616c7565223a2022000000000000000000602082015250565b60006124546037836122d8565b915061245f826123f8565b603782019050919050565b7f227d5d7d00000000000000000000000000000000000000000000000000000000600082015250565b60006124a06004836122d8565b91506124ab8261246a565b600482019050919050565b60006124c18261230c565b91506124cd828661232f565b91506124d8826123d5565b91506124e4828561232f565b91506124ef82612447565b91506124fb828461232f565b915061250682612493565b9150819050949350505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000612549601d836122d8565b915061255482612513565b601d82019050919050565b600061256a8261253c565b9150612576828461232f565b915081905092915050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006125dd602583611aa1565b91506125e882612581565b604082019050919050565b6000602082019050818103600083015261260c816125d0565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061266f602483611aa1565b915061267a82612613565b604082019050919050565b6000602082019050818103600083015261269e81612662565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006126db601983611aa1565b91506126e6826126a5565b602082019050919050565b6000602082019050818103600083015261270a816126ce565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061276d603283611aa1565b915061277882612711565b604082019050919050565b6000602082019050818103600083015261279c81612760565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006127dd82611993565b91506127e883611993565b9250828201905080821115612800576127ff612163565b5b92915050565b600061281182611993565b915061281c83611993565b92508261282c5761282b6127a3565b5b828204905092915050565b600061284282611993565b915061284d83611993565b925082820261285b81611993565b9150828204841483151761287257612871612163565b5b5092915050565b600081519050919050565b600082825260208201905092915050565b60006128a082612879565b6128aa8185612884565b93506128ba818560208601611ab2565b6128c381611adc565b840191505092915050565b60006080820190506128e36000830187611bd3565b6128f06020830186611bd3565b6128fd604083018561199d565b818103606083015261290f8184612895565b905095945050505050565b60008151905061292981611a07565b92915050565b600060208284031215612945576129446119d1565b5b60006129538482850161291a565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000612992602083611aa1565b915061299d8261295c565b602082019050919050565b600060208201905081810360008301526129c181612985565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006129fe601c83611aa1565b9150612a09826129c8565b602082019050919050565b60006020820190508181036000830152612a2d816129f1565b905091905056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f3c737667206865696768743d22333530222077696474683d22333530222076696577426f783d2230203020313030203130302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f737667223e3c646566733e3c706174682069643d224d7950617468222066696c6c3d226e6f6e6522207374726f6b653d227265642220643d224d31302c3930205139302c39302039302c3435205139302c31302035302c3130205131302c31302031302c3430205131302c37302034352c3730205137302c37302037352c353022202f3e3c2f646566733e3c746578743e3c746578745061746820687265663d22234d7950617468223e517569636b2062726f776e20666f78206a756d7073206f76657220746865206c617a7920646f672e3c2f74657874506174683e3c2f746578743e3c2f7376673ea2646970667358221220922487cf7bfec55ad9cf0c646397333bb79204b1a8ef63134f78b23d697570ef64736f6c63430008120033",failingContractAbi:[{payable:!0,stateMutability:"payable",type:"fallback"}],failingContractBytecode:"0x6080604052348015600f57600080fd5b50608b8061001e6000396000f3fe6080604052610fff3411600e57fe5b3373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156053573d6000803e3d6000fd5b5000fea265627a7a72315820631b0dbb6b871cdbfdec2773af15ebfb8e52c794cf836fe27ec21f1aed17180f64736f6c634300050c0032",multisigBytecode:"0x60806040523480156200001157600080fd5b50600060405180606001604052807307be9763a718c0539017e2ab6fc42853b4aeeb6b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001731c53dc20d1e36ed8359250de626acae36bd28a2973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001733ebf9d63c3ae5d70b252a885d65168960102e7f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250905060006001905060005b6003811015620002f65760008382600381106200011c576200011b62000306565b5b60200201519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000195576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200018c9062000396565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000225576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021c9062000408565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080620002ed9062000463565b915050620000fa565b50806002819055505050620004b0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f696e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b60006200037e600d8362000335565b91506200038b8262000346565b602082019050919050565b60006020820190508181036000830152620003b1816200036f565b9050919050565b7f6f776e6572206e6f7420756e6971756500000000000000000000000000000000600082015250565b6000620003f060108362000335565b9150620003fd82620003b8565b602082019050919050565b600060208201905081810360008301526200042381620003e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000620004708262000459565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620004a557620004a46200042a565b5b600182019050919050565b611e6b80620004c06000396000f3fe6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b54906119b6565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b9891906119d6565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611bb6565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c88565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611d04565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611db2565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611e15565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920657865637574656400000000000000000000000000600082015250565b60006118056013836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006119a06014836116b7565b91506119ab8261196a565b602082019050919050565b600060208201905081810360008301526119cf81611993565b9050919050565b60006119e182611154565b91506119ec83611154565b9250828201905080821115611a0457611a036118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a6c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611a2f565b611a768683611a2f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611ab3611aae611aa984611154565b611a8e565b611154565b9050919050565b6000819050919050565b611acd83611a98565b611ae1611ad982611aba565b848454611a3c565b825550505050565b600090565b611af6611ae9565b611b01818484611ac4565b505050565b5b81811015611b2557611b1a600082611aee565b600181019050611b07565b5050565b601f821115611b6a57611b3b81611a0a565b611b4484611a1f565b81016020851015611b53578190505b611b67611b5f85611a1f565b830182611b06565b50505b505050565b600082821c905092915050565b6000611b8d60001984600802611b6f565b1980831691505092915050565b6000611ba68383611b7c565b9150826002028217905092915050565b611bbf82611309565b67ffffffffffffffff811115611bd857611bd761151d565b5b611be28254611939565b611bed828285611b29565b600060209050601f831160018114611c205760008415611c0e578287015190505b611c188582611b9a565b865550611c80565b601f198416611c2e86611a0a565b60005b82811015611c5657848901518255600182019150602085019450602081019050611c31565b86831015611c735784890151611c6f601f891682611b7c565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c9d600083018561115e565b8181036020830152611caf8184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611cee6011836116b7565b9150611cf982611cb8565b602082019050919050565b60006020820190508181036000830152611d1d81611ce1565b9050919050565b600081905092915050565b60008154611d3c81611939565b611d468186611d24565b94506001821660008114611d615760018114611d7657611da9565b60ff1983168652811515820286019350611da9565b611d7f85611a0a565b60005b83811015611da157815481890152600182019150602081019050611d82565b838801955050505b50505092915050565b6000611dbe8284611d2f565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611dff6009836116b7565b9150611e0a82611dc9565b602082019050919050565b60006020820190508181036000830152611e2e81611df2565b905091905056fea2646970667358221220e80b06134352e414f93f26d7441824c8082a405d8e55c88888f0cb1868b6c4bf64736f6c63430008110033",multisigAbi:[{inputs:[{internalType:"uint256",name:"_txIndex",type:"uint256"}],name:"confirmTransaction",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"uint256",name:"txIndex",type:"uint256"}],name:"ConfirmTransaction",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"balance",type:"uint256"}],name:"Deposit",type:"event"},{inputs:[{internalType:"uint256",name:"_txIndex",type:"uint256"}],name:"executeTransaction",outputs:[],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"uint256",name:"txIndex",type:"uint256"}],name:"ExecuteTransaction",type:"event"},{inputs:[{internalType:"uint256",name:"_txIndex",type:"uint256"}],name:"revokeConfirmation",outputs:[],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"uint256",name:"txIndex",type:"uint256"}],name:"RevokeConfirmation",type:"event"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_value",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"submitTransaction",outputs:[],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"uint256",name:"txIndex",type:"uint256"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"},{indexed:!1,internalType:"bytes",name:"data",type:"bytes"}],name:"SubmitTransaction",type:"event"},{stateMutability:"payable",type:"receive"},{inputs:[],name:"getOwners",outputs:[{internalType:"address[]",name:"",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_txIndex",type:"uint256"}],name:"getTransaction",outputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"executed",type:"bool"},{internalType:"uint256",name:"numConfirmations",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTransactionCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],name:"isConfirmed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isOwner",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"numConfirmationsRequired",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"owners",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"transactions",outputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"executed",type:"bool"},{internalType:"uint256",name:"numConfirmations",type:"uint256"}],stateMutability:"view",type:"function"}],erc1155Abi:[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mintBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"newuri",type:"string"}],name:"setURI",outputs:[],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"values",type:"uint256[]"}],name:"TransferBatch",type:"event"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"accounts",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenid",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}],erc1155Bytecode:"0x60806040523480156200001157600080fd5b5060405180608001604052806043815260200162003893604391396200003d816200006460201b60201c565b506200005e620000526200007960201b60201c565b6200008160201b60201c565b620004a8565b8060029081620000759190620003c1565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001c957607f821691505b602082108103620001df57620001de62000181565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200020a565b6200025586836200020a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002a26200029c62000296846200026d565b62000277565b6200026d565b9050919050565b6000819050919050565b620002be8362000281565b620002d6620002cd82620002a9565b84845462000217565b825550505050565b600090565b620002ed620002de565b620002fa818484620002b3565b505050565b5b81811015620003225762000316600082620002e3565b60018101905062000300565b5050565b601f82111562000371576200033b81620001e5565b6200034684620001fa565b8101602085101562000356578190505b6200036e6200036585620001fa565b830182620002ff565b50505b505050565b600082821c905092915050565b6000620003966000198460080262000376565b1980831691505092915050565b6000620003b1838362000383565b9150826002028217905092915050565b620003cc8262000147565b67ffffffffffffffff811115620003e857620003e762000152565b5b620003f48254620001b0565b6200040182828562000326565b600060209050601f83116001811462000439576000841562000424578287015190505b620004308582620003a3565b865550620004a0565b601f1984166200044986620001e5565b60005b8281101562000473578489015182556001820191506020850194506020810190506200044c565b868310156200049357848901516200048f601f89168262000383565b8355505b6001600288020188555050505b505050505050565b6133db80620004b86000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c80634e1273f41161008c578063a22cb46511610066578063a22cb46514610248578063e985e9c514610264578063f242432a14610294578063f2fde38b146102b0576100e9565b80634e1273f4146101f0578063715018a6146102205780638da5cb5b1461022a576100e9565b806306fdde03116100c857806306fdde031461016a5780630e89341c146101885780631f7fdffa146101b85780632eb2c2d6146101d4576100e9565b8062fdd58e146100ee57806301ffc9a71461011e57806302fe53051461014e575b600080fd5b61010860048036038101906101039190611bb3565b6102cc565b6040516101159190611c02565b60405180910390f35b61013860048036038101906101339190611c75565b610394565b6040516101459190611cbd565b60405180910390f35b61016860048036038101906101639190611e1e565b610476565b005b61017261048a565b60405161017f9190611ee6565b60405180910390f35b6101a2600480360381019061019d9190611f08565b6104c3565b6040516101af9190611ee6565b60405180910390f35b6101d260048036038101906101cd919061209e565b6104fe565b005b6101ee60048036038101906101e99190612159565b610518565b005b61020a600480360381019061020591906122eb565b6105b9565b6040516102179190612421565b60405180910390f35b6102286106d2565b005b6102326106e6565b60405161023f9190612452565b60405180910390f35b610262600480360381019061025d9190612499565b610710565b005b61027e600480360381019061027991906124d9565b610726565b60405161028b9190611cbd565b60405180910390f35b6102ae60048036038101906102a99190612519565b6107ba565b005b6102ca60048036038101906102c591906125b0565b61085b565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361033c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103339061264f565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061045f57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046f575061046e826108de565b5b9050919050565b61047e610948565b610487816109c6565b50565b6040518060400160405280600781526020017f455243313135350000000000000000000000000000000000000000000000000081525081565b60606104ce826109d9565b6104d783610a6d565b6040516020016104e89291906126f7565b6040516020818303038152906040529050919050565b610506610948565b61051284848484610b3b565b50505050565b610520610d67565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610566575061056585610560610d67565b610726565b5b6105a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059c90612798565b60405180910390fd5b6105b28585858585610d6f565b5050505050565b606081518351146105ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f69061282a565b60405180910390fd5b6000835167ffffffffffffffff81111561061c5761061b611cf3565b5b60405190808252806020026020018201604052801561064a5781602001602082028036833780820191505090505b50905060005b84518110156106c75761069785828151811061066f5761066e61284a565b5b602002602001015185838151811061068a5761068961284a565b5b60200260200101516102cc565b8282815181106106aa576106a961284a565b5b602002602001018181525050806106c0906128a8565b9050610650565b508091505092915050565b6106da610948565b6106e46000611090565b565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61072261071b610d67565b8383611156565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6107c2610d67565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610808575061080785610802610d67565b610726565b5b610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083e90612798565b60405180910390fd5b61085485858585856112c2565b5050505050565b610863610948565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c990612962565b60405180910390fd5b6108db81611090565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610950610d67565b73ffffffffffffffffffffffffffffffffffffffff1661096e6106e6565b73ffffffffffffffffffffffffffffffffffffffff16146109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb906129ce565b60405180910390fd5b565b80600290816109d59190612bfa565b5050565b6060600280546109e890612a1d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1490612a1d565b8015610a615780601f10610a3657610100808354040283529160200191610a61565b820191906000526020600020905b815481529060010190602001808311610a4457829003601f168201915b50505050509050919050565b606060006001610a7c8461155d565b01905060008167ffffffffffffffff811115610a9b57610a9a611cf3565b5b6040519080825280601f01601f191660200182016040528015610acd5781602001600182028036833780820191505090505b509050600082602001820190505b600115610b30578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581610b2457610b23612ccc565b5b04945060008503610adb575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba190612d6d565b60405180910390fd5b8151835114610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be590612dff565b60405180910390fd5b6000610bf8610d67565b9050610c09816000878787876116b0565b60005b8451811015610cc257838181518110610c2857610c2761284a565b5b6020026020010151600080878481518110610c4657610c4561284a565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ca89190612e1f565b925050819055508080610cba906128a8565b915050610c0c565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610d3a929190612e53565b60405180910390a4610d51816000878787876116b8565b610d60816000878787876116c0565b5050505050565b600033905090565b8151835114610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa90612dff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1990612efc565b60405180910390fd5b6000610e2c610d67565b9050610e3c8187878787876116b0565b60005b8451811015610fed576000858281518110610e5d57610e5c61284a565b5b602002602001015190506000858381518110610e7c57610e7b61284a565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1490612f8e565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fd29190612e1f565b9250508190555050505080610fe6906128a8565b9050610e3f565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611064929190612e53565b60405180910390a461107a8187878787876116b8565b6110888187878787876116c0565b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb90613020565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516112b59190611cbd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132890612efc565b60405180910390fd5b600061133b610d67565b9050600061134885611897565b9050600061135585611897565b90506113658389898585896116b0565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050858110156113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f390612f8e565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114b19190612e1f565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a60405161152e929190613040565b60405180910390a4611544848a8a86868a6116b8565b611552848a8a8a8a8a611911565b505050505050505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106115bb577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816115b1576115b0612ccc565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106115f8576d04ee2d6d415b85acef810000000083816115ee576115ed612ccc565b5b0492506020810190505b662386f26fc10000831061162757662386f26fc10000838161161d5761161c612ccc565b5b0492506010810190505b6305f5e1008310611650576305f5e100838161164657611645612ccc565b5b0492506008810190505b612710831061167557612710838161166b5761166a612ccc565b5b0492506004810190505b60648310611698576064838161168e5761168d612ccc565b5b0492506002810190505b600a83106116a7576001810190505b80915050919050565b505050505050565b505050505050565b6116df8473ffffffffffffffffffffffffffffffffffffffff16611ae8565b1561188f578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016117259594939291906130be565b6020604051808303816000875af192505050801561176157506040513d601f19601f8201168201806040525081019061175e919061313b565b60015b6118065761176d613175565b806308c379a0036117c95750611781613197565b8061178c57506117cb565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c09190611ee6565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd90613299565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461188d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118849061332b565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff8111156118b6576118b5611cf3565b5b6040519080825280602002602001820160405280156118e45781602001602082028036833780820191505090505b50905082816000815181106118fc576118fb61284a565b5b60200260200101818152505080915050919050565b6119308473ffffffffffffffffffffffffffffffffffffffff16611ae8565b15611ae0578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161197695949392919061334b565b6020604051808303816000875af19250505080156119b257506040513d601f19601f820116820180604052508101906119af919061313b565b60015b611a57576119be613175565b806308c379a003611a1a57506119d2613197565b806119dd5750611a1c565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a119190611ee6565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4e90613299565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad59061332b565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b4a82611b1f565b9050919050565b611b5a81611b3f565b8114611b6557600080fd5b50565b600081359050611b7781611b51565b92915050565b6000819050919050565b611b9081611b7d565b8114611b9b57600080fd5b50565b600081359050611bad81611b87565b92915050565b60008060408385031215611bca57611bc9611b15565b5b6000611bd885828601611b68565b9250506020611be985828601611b9e565b9150509250929050565b611bfc81611b7d565b82525050565b6000602082019050611c176000830184611bf3565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c5281611c1d565b8114611c5d57600080fd5b50565b600081359050611c6f81611c49565b92915050565b600060208284031215611c8b57611c8a611b15565b5b6000611c9984828501611c60565b91505092915050565b60008115159050919050565b611cb781611ca2565b82525050565b6000602082019050611cd26000830184611cae565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611d2b82611ce2565b810181811067ffffffffffffffff82111715611d4a57611d49611cf3565b5b80604052505050565b6000611d5d611b0b565b9050611d698282611d22565b919050565b600067ffffffffffffffff821115611d8957611d88611cf3565b5b611d9282611ce2565b9050602081019050919050565b82818337600083830152505050565b6000611dc1611dbc84611d6e565b611d53565b905082815260208101848484011115611ddd57611ddc611cdd565b5b611de8848285611d9f565b509392505050565b600082601f830112611e0557611e04611cd8565b5b8135611e15848260208601611dae565b91505092915050565b600060208284031215611e3457611e33611b15565b5b600082013567ffffffffffffffff811115611e5257611e51611b1a565b5b611e5e84828501611df0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ea1578082015181840152602081019050611e86565b60008484015250505050565b6000611eb882611e67565b611ec28185611e72565b9350611ed2818560208601611e83565b611edb81611ce2565b840191505092915050565b60006020820190508181036000830152611f008184611ead565b905092915050565b600060208284031215611f1e57611f1d611b15565b5b6000611f2c84828501611b9e565b91505092915050565b600067ffffffffffffffff821115611f5057611f4f611cf3565b5b602082029050602081019050919050565b600080fd5b6000611f79611f7484611f35565b611d53565b90508083825260208201905060208402830185811115611f9c57611f9b611f61565b5b835b81811015611fc55780611fb18882611b9e565b845260208401935050602081019050611f9e565b5050509392505050565b600082601f830112611fe457611fe3611cd8565b5b8135611ff4848260208601611f66565b91505092915050565b600067ffffffffffffffff82111561201857612017611cf3565b5b61202182611ce2565b9050602081019050919050565b600061204161203c84611ffd565b611d53565b90508281526020810184848401111561205d5761205c611cdd565b5b612068848285611d9f565b509392505050565b600082601f83011261208557612084611cd8565b5b813561209584826020860161202e565b91505092915050565b600080600080608085870312156120b8576120b7611b15565b5b60006120c687828801611b68565b945050602085013567ffffffffffffffff8111156120e7576120e6611b1a565b5b6120f387828801611fcf565b935050604085013567ffffffffffffffff81111561211457612113611b1a565b5b61212087828801611fcf565b925050606085013567ffffffffffffffff81111561214157612140611b1a565b5b61214d87828801612070565b91505092959194509250565b600080600080600060a0868803121561217557612174611b15565b5b600061218388828901611b68565b955050602061219488828901611b68565b945050604086013567ffffffffffffffff8111156121b5576121b4611b1a565b5b6121c188828901611fcf565b935050606086013567ffffffffffffffff8111156121e2576121e1611b1a565b5b6121ee88828901611fcf565b925050608086013567ffffffffffffffff81111561220f5761220e611b1a565b5b61221b88828901612070565b9150509295509295909350565b600067ffffffffffffffff82111561224357612242611cf3565b5b602082029050602081019050919050565b600061226761226284612228565b611d53565b9050808382526020820190506020840283018581111561228a57612289611f61565b5b835b818110156122b3578061229f8882611b68565b84526020840193505060208101905061228c565b5050509392505050565b600082601f8301126122d2576122d1611cd8565b5b81356122e2848260208601612254565b91505092915050565b6000806040838503121561230257612301611b15565b5b600083013567ffffffffffffffff8111156123205761231f611b1a565b5b61232c858286016122bd565b925050602083013567ffffffffffffffff81111561234d5761234c611b1a565b5b61235985828601611fcf565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61239881611b7d565b82525050565b60006123aa838361238f565b60208301905092915050565b6000602082019050919050565b60006123ce82612363565b6123d8818561236e565b93506123e38361237f565b8060005b838110156124145781516123fb888261239e565b9750612406836123b6565b9250506001810190506123e7565b5085935050505092915050565b6000602082019050818103600083015261243b81846123c3565b905092915050565b61244c81611b3f565b82525050565b60006020820190506124676000830184612443565b92915050565b61247681611ca2565b811461248157600080fd5b50565b6000813590506124938161246d565b92915050565b600080604083850312156124b0576124af611b15565b5b60006124be85828601611b68565b92505060206124cf85828601612484565b9150509250929050565b600080604083850312156124f0576124ef611b15565b5b60006124fe85828601611b68565b925050602061250f85828601611b68565b9150509250929050565b600080600080600060a0868803121561253557612534611b15565b5b600061254388828901611b68565b955050602061255488828901611b68565b945050604061256588828901611b9e565b935050606061257688828901611b9e565b925050608086013567ffffffffffffffff81111561259757612596611b1a565b5b6125a388828901612070565b9150509295509295909350565b6000602082840312156125c6576125c5611b15565b5b60006125d484828501611b68565b91505092915050565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000612639602a83611e72565b9150612644826125dd565b604082019050919050565b600060208201905081810360008301526126688161262c565b9050919050565b600081905092915050565b600061268582611e67565b61268f818561266f565b935061269f818560208601611e83565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b60006126e160058361266f565b91506126ec826126ab565b600582019050919050565b6000612703828561267a565b915061270f828461267a565b915061271a826126d4565b91508190509392505050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612782602e83611e72565b915061278d82612726565b604082019050919050565b600060208201905081810360008301526127b181612775565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000612814602983611e72565b915061281f826127b8565b604082019050919050565b6000602082019050818103600083015261284381612807565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128b382611b7d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128e5576128e4612879565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061294c602683611e72565b9150612957826128f0565b604082019050919050565b6000602082019050818103600083015261297b8161293f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129b8602083611e72565b91506129c382612982565b602082019050919050565b600060208201905081810360008301526129e7816129ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a3557607f821691505b602082108103612a4857612a476129ee565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612ab07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a73565b612aba8683612a73565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612af7612af2612aed84611b7d565b612ad2565b611b7d565b9050919050565b6000819050919050565b612b1183612adc565b612b25612b1d82612afe565b848454612a80565b825550505050565b600090565b612b3a612b2d565b612b45818484612b08565b505050565b5b81811015612b6957612b5e600082612b32565b600181019050612b4b565b5050565b601f821115612bae57612b7f81612a4e565b612b8884612a63565b81016020851015612b97578190505b612bab612ba385612a63565b830182612b4a565b50505b505050565b600082821c905092915050565b6000612bd160001984600802612bb3565b1980831691505092915050565b6000612bea8383612bc0565b9150826002028217905092915050565b612c0382611e67565b67ffffffffffffffff811115612c1c57612c1b611cf3565b5b612c268254612a1d565b612c31828285612b6d565b600060209050601f831160018114612c645760008415612c52578287015190505b612c5c8582612bde565b865550612cc4565b601f198416612c7286612a4e565b60005b82811015612c9a57848901518255600182019150602085019450602081019050612c75565b86831015612cb75784890151612cb3601f891682612bc0565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d57602183611e72565b9150612d6282612cfb565b604082019050919050565b60006020820190508181036000830152612d8681612d4a565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000612de9602883611e72565b9150612df482612d8d565b604082019050919050565b60006020820190508181036000830152612e1881612ddc565b9050919050565b6000612e2a82611b7d565b9150612e3583611b7d565b9250828201905080821115612e4d57612e4c612879565b5b92915050565b60006040820190508181036000830152612e6d81856123c3565b90508181036020830152612e8181846123c3565b90509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ee6602583611e72565b9150612ef182612e8a565b604082019050919050565b60006020820190508181036000830152612f1581612ed9565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000612f78602a83611e72565b9150612f8382612f1c565b604082019050919050565b60006020820190508181036000830152612fa781612f6b565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b600061300a602983611e72565b915061301582612fae565b604082019050919050565b6000602082019050818103600083015261303981612ffd565b9050919050565b60006040820190506130556000830185611bf3565b6130626020830184611bf3565b9392505050565b600081519050919050565b600082825260208201905092915050565b600061309082613069565b61309a8185613074565b93506130aa818560208601611e83565b6130b381611ce2565b840191505092915050565b600060a0820190506130d36000830188612443565b6130e06020830187612443565b81810360408301526130f281866123c3565b9050818103606083015261310681856123c3565b9050818103608083015261311a8184613085565b90509695505050505050565b60008151905061313581611c49565b92915050565b60006020828403121561315157613150611b15565b5b600061315f84828501613126565b91505092915050565b60008160e01c9050919050565b600060033d11156131945760046000803e613191600051613168565b90505b90565b600060443d10613224576131a9611b0b565b60043d036004823e80513d602482011167ffffffffffffffff821117156131d1575050613224565b808201805167ffffffffffffffff8111156131ef5750505050613224565b80602083010160043d03850181111561320c575050505050613224565b61321b82602001850186611d22565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000613283603483611e72565b915061328e82613227565b604082019050919050565b600060208201905081810360008301526132b281613276565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000613315602883611e72565b9150613320826132b9565b604082019050919050565b6000602082019050818103600083015261334481613308565b9050919050565b600060a0820190506133606000830188612443565b61336d6020830187612443565b61337a6040830186611bf3565b6133876060830185611bf3565b81810360808301526133998184613085565b9050969550505050505056fea2646970667358221220de231ea0ba52331673a6ab1f561443459e5e047d956a2026f062e8977c23fe6d64736f6c63430008110033697066733a2f2f626166796265696478666d777963677a6370347632746f67666c70716832676e69627565786a79346d347171777870376e68336a78357a6c6834792f",heavyCallData:"0xc73a2d6000000000000000000000000029e39327b5b1e500b87fc0fcae3856cd8f96ed2a0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000bc0000000000000000000000000000000000000000000000000000000000000005dc000000000000000000000000d5b2bceeaaaccb2bf152207f7e8c4abcaa7d58810000000000000000000000008604cc05defadf687b317133ac92ab95e484cf8f00000000000000000000000045b52e84203075293a1ae315eed77973f36a02a800000000000000000000000066c5e9b0f33d5327ccfc1217983edeeffda3f476000000000000000000000000ec8ebe87cd2e87a3cb5e11a2bf0b3c690d3284fd00000000000000000000000060e8516995a547e29f40b6ccb1188b12abd64054000000000000000000000000e6cb08c29cb266203b5dbb6e61798adddb6662d60000000000000000000000008a6843bffac8ce7b9c8fbac14b67cf27c096c3c3000000000000000000000000d54ac9bd5b62b2c2354b08b07847ac6cd198d1d4000000000000000000000000791be5f2ea14535c2dbedea81e5d159a5538978c00000000000000000000000036fc8c8e7af892b65c1523c055bca0c4840f813900000000000000000000000004f402c356fd2cf32413855274f0d1765293f1cd00000000000000000000000030225593f28afbf18ed60bb8a9f5c67ebb894de8000000000000000000000000bd8d7f6f6df33da424311859df8077f0b6554d0e000000000000000000000000d30136c39fcc9644aa94ed614a6f5150529af0c90000000000000000000000005c7f4363f01fbc22865913ff83d3bb385853900f0000000000000000000000005b46037a21c6e4a48b27dcf969d5ee7afdbc4395000000000000000000000000d20ff4505da9db0fdd613c378aea1b83635c6001000000000000000000000000e67999986bbf88960f711fa96715f2f4764c9d6f000000000000000000000000cee374e86350ad40514519b0afbe9b89be3d817d000000000000000000000000c3967b776605474329fc46c3fab995cd73d62010000000000000000000000000f6b56cac3304967a7fe43dcae4274af3952f79210000000000000000000000005e62c72544891ed9f8cdb51781fe7b7d23ef0a88000000000000000000000000faa9a410f7253afb90abf30a695eb0dda60c413200000000000000000000000030c842b5091bca284e6ce48f3a07d6957f17b2250000000000000000000000001a0ea668ab7e1a70d8e3bdb92b68128f95a6619e000000000000000000000000b50b840b62008e017b056d170899cdefcafe6eb50000000000000000000000007cc2a45f59e49a32e400cd69cc9791088dd5d9e90000000000000000000000007089850e5e121aaa283305d0eaaaf0e5d047733c000000000000000000000000e2554fad8029084ad076bdd48a058c5035254ae900000000000000000000000014e294a0fe3cfc9a359af4e2f62e5dc37504bf2a0000000000000000000000002ed70f82f54a2a7af08017e37e99b513b4d34bf0000000000000000000000000a51b9db75c5eb702e0a465961f1b0d39f8406a9000000000000000000000000018a45c4d2ff2bcb1f1b3ebf39459b4543854b22d000000000000000000000000ff47917ebf51f3f8af4ce96bbff772831ef3dda3000000000000000000000000ae5fc3963c7f2219f2b025e6da20e08dd81b1b73000000000000000000000000008c0ae37a27f324ab993d6ad703c7cc0590a96100000000000000000000000043d2782ad3a14a6217aaa8df86302b97dab6a17200000000000000000000000092ce7b68f1557ce2b3349e96037edb3544a4534c0000000000000000000000005823327ae76c52bf1cdccb5df83d84f8dac7ba070000000000000000000000004268ad59931a985cdf9e71a535aae3380e20da390000000000000000000000005e76efe7855c491bbc2a292251e856d0e343105900000000000000000000000013072f58bd08b36c7c07101d2b685a7676f8a712000000000000000000000000af3f7896de336665a1189bae09d352558da94b1400000000000000000000000051678842a6b5da52ea6f6408a2e020230e0bd1a70000000000000000000000008cc4624656cff26d9c1b14fa16d64abea798ee17000000000000000000000000ed86800f8db12808b9a60d207a28758cd9cd316e000000000000000000000000bc56a6cf5e4c2d8cf80ed4bd13aabfd2e22855af0000000000000000000000003af792366d1229b6c5636d31a2de370aff1db97c0000000000000000000000000270947611dd30283d5cbcdb21df449a0853b163000000000000000000000000fd7b829029403b6cdd531170128e2fe88192fc51000000000000000000000000371ae267b89849342035174e5df7a01fe931715f000000000000000000000000025126a5dd13108d1103b4c2c09cb4d63bc6b8b8000000000000000000000000000000000000e59fc57340cd50d1b12221601b87000000000000000000000000b4be85887d68a3dfdd5e9826a5b7744379fd34e400000000000000000000000000fc74e65b721798d0ff2317c4a6f22497a6cd3c000000000000000000000000ab8e38785eddfa9ee423d41a2eb726abf296e8b6000000000000000000000000196d4992c2cda716dc2318685ca84d0f55b9ce95000000000000000000000000b1ca90153b878ce58865b88c6dc4b5bb34ca0bf3000000000000000000000000c158a986f6c52b047596ad79bbe992066cec4e5e000000000000000000000000992aeed82a4b881aca33fa3a3e193f18e73bb62100000000000000000000000094dfa939389376d7b2a7e6d04971ed5de6b102ec000000000000000000000000c8eb3f9e5164a8fe2381c007cecb3e55b15f2bf100000000000000000000000010783fc60fcf8329f3720a46dc3f2fca299d2e3d000000000000000000000000360bfcbf398d46130c6b0141fe577946173d01220000000000000000000000009f952bcf19997129fe00e8e89201d9f8a74a69c5000000000000000000000000abfe18c5489dee761f498de533797521a618644600000000000000000000000009fd21ac7d34b00a761a343e881ad14965f9ebf4000000000000000000000000d78a5400c158a9ed30d7690ef3d83c481b34ea810000000000000000000000000df4bc0917290cc3d44825e1733dab1298a5a9700000000000000000000000007b9c87cd45e5511bc3068246a8e3c8a6dd1391160000000000000000000000009c436aeeaccfab49cc3490637d7222c4a91216e7000000000000000000000000c95541e72f68cb0e79c3499b63289d2058592cfe000000000000000000000000b4970e83254782faff75dce14576e08aa82a0d1e000000000000000000000000a4be070487fa0246e0b4643d8c3dcd343e5d09dc00000000000000000000000087d96f0a2ebcdb963647d91ffa8cbd6119f97333000000000000000000000000d26797821a6e3c284adf6e1d30af2ba8759afe92000000000000000000000000ff9e392bb799ef5ea531910936b202e144e4fdc9000000000000000000000000ea080eaa293fbc68f1d3987f5b635a42c19e061d0000000000000000000000009d5ae7c585bb8f7a1253730627a112b6962616ae000000000000000000000000867155c409b67c68268cc63d94664d582117f6fe000000000000000000000000f256a3322c74dc142a2c97b80f5dc77fc78e562800000000000000000000000073298bae560be65f87f188b9ec442b1347ed332b0000000000000000000000008ef48458420aab48e113e695d26861355b7bb1c0000000000000000000000000ab95146bbba85da74d14284fb9bb28d3d39d32630000000000000000000000009aa30100c3a15ed1666de178b6364a6dc6f5a36a00000000000000000000000070e3c4344899bb38c562dff11df40b8ce08bc3b00000000000000000000000003c5ea9a2fc1f22b27a6105389b8b17e71983567b00000000000000000000000085c4df6129108855971a1610c4942617a1a82a0800000000000000000000000062948d76f274442b62b645e62cb7cb6d7ee754b7000000000000000000000000543266537a73700d740520893b5b1932a952fdab000000000000000000000000d1c8a54652b3dbc488360698d654ce4afcc3a0af000000000000000000000000fb1c57e378e2ee9c6e02f2ba7c25ff1a13236b8c0000000000000000000000008f381722d639763f8fe8a75e738e038bd6a0a5060000000000000000000000005a2f798b968fbda78f8e65eaa4e560a7d56ea625000000000000000000000000309c347c6dd47eb2017438fb34005b2ee5343460000000000000000000000000c0d98ee52d4bf463ebde675e773e355d0e062aa600000000000000000000000064ba61444e72d013c1ffb3c370e4b57c481d7bd40000000000000000000000007d51e15a97ac5cdfc70eec053da8cf4fb9766c84000000000000000000000000fd891b556e648140b1b737a5b8c5a008ac7d347f000000000000000000000000a52ab65c10a50a888c0aeb0887c6176c0f5155770000000000000000000000002cd2dd17d0411926a862e546af9f16c9f0a762b80000000000000000000000000494003b66d871a74b8ec1acc3b0e074040dc7e2000000000000000000000000f86ef7e28a737a9d5c4715024d3e168e814847b5000000000000000000000000659db7f3ea1801dde55259fccbb1e8608f8ebdef00000000000000000000000061e2267817bb80f0869824d48aff8bcaaa49b1a6000000000000000000000000a9b9c4c4d44d60bb01835039fcf20eb75a5eaec10000000000000000000000008e4e3b2da5f7c55bad2e15e1895435129b6f26e7000000000000000000000000f6e72ec98b0772a6be2670e652b5c00c769226da0000000000000000000000002d543bae3e38748d8f6d7000a8970911398c038c00000000000000000000000002b2b1e1b67bd42c837c817dedbdd7e48c9f0821000000000000000000000000148ea5bf39cac195f3d304a53bc574747f53a32f00000000000000000000000029380ecb5b10088b4b68ce8df9c189d197ad72bf0000000000000000000000009ea3c5e5f1b8da034e43b6f97497bfd1306fc32800000000000000000000000082acc7e3da35bcddf4866611cdfbf5918369013a000000000000000000000000af541244d3e53969cef6c05518b175e61cfbbf4d000000000000000000000000bac8ab92ecfbb5d35a941a357fdc2266902ab25b00000000000000000000000021b72b3fe1a4976438bbf2a0ff51a269a6b47d510000000000000000000000007912c4fd2ae6d1a4c457f0baa003d23a17816fc00000000000000000000000000eef84e76d6e45a7cca9ce7999df9b139351bf89000000000000000000000000e63eb1081754e4d7c5c77f09ebcd6327b023f053000000000000000000000000188697f39e2ec9e6e3c5fd5cbb36b8c01c81a53f000000000000000000000000659082a1b071fe769fd4fc8acc3c056986375081000000000000000000000000094928eded5986caff51617138fe574cf646ec81000000000000000000000000d9a5a7822ea8a01cec1e4e90fbea8b653ed8ff83000000000000000000000000174fea849a354b53e98fde9e782fc54195ecae46000000000000000000000000ff5cb36995b8d37c701ebb7e0643eafbb860da63000000000000000000000000f7afe9fd8ba4829fbaa06f7b30303bf3b53d6647000000000000000000000000aa89fc4148e51875fbc6f3804c812bc9e9658b0a00000000000000000000000049bfb97814d11a011a6ea5ff62f6277cac36f1ff00000000000000000000000014d5bc9e6699c20e60e739b1e1c54e2c22d7491d0000000000000000000000000dad61fa03b78b035452b366f743671d6acea4ab0000000000000000000000006161c8fa4d840628174d4f2fb35c31f4d2cbc8d10000000000000000000000004fa03c9726b2813ef857392da80517935bebb5bc000000000000000000000000ecd9fff42f8f3495b50c2839166fce93135c96f50000000000000000000000009258d132956012b6b09110838654d31f3ca849d60000000000000000000000003d6af85fa5b7b57a001d2d8301c6bfffc3f04529000000000000000000000000139a2a403f4f1818835c42695b5a1863aa82715400000000000000000000000049a22f70d8b8118c6ce7cf0b61fe8b6d5cc3f0b2000000000000000000000000424022c1ba008d117a8d6da2889b75ac9e6cc9430000000000000000000000009d585c991c3e5696d44ce45e3fe9333e40f4b11e000000000000000000000000412cfe1eb5d03e37cad6cfaa8cc90545a0d16508000000000000000000000000e53d6dcc93a6e9abda9cf8cce93c52b1003a29fa0000000000000000000000008ea6b66e0cc397e645e44378dc6595c73326fcf5000000000000000000000000fa791fc87b712deb2ff515d3720287767f3c20ba0000000000000000000000008458d8789487d47c255f08d409bded5fe83c58bb000000000000000000000000aa168c45db4bd18a29deb0d1fab18c6da6c112f3000000000000000000000000bc3304a1196a5434123495a459c184f548b68d5a00000000000000000000000099423a7d7fd197ce197a58c389e6dd39d9717580000000000000000000000000a6c26951acf00f0d7466c328ea25a059bc05f1db000000000000000000000000dad26d70b90be3ea4fadd705bc440657b87d52f9000000000000000000000000d29e71cae19862f40840b9306bbac5266056753400000000000000000000000062bc6128db0996a0158cc0e6fdfb843d90f9ed3d000000000000000000000000d30c4dd08d93d21d7b030127e95aba7672aacb08000000000000000000000000f5b1ae5b41bec4ac1b6485df24f972db899f600b00000000000000000000000054fa906787b3311e7235c6b9dcec090e734874f5000000000000000000000000a204bca124c1074678f44379a2bdaf0547e3e2e000000000000000000000000065a8489e88888e74f5ba9616070fd7d15aa505140000000000000000000000003df548eeed197cdf495e670163d223af3f0eae690000000000000000000000008f5fa47921f80109450d070810901120779510500000000000000000000000004bef12b203cb1cac617e538c4f77014050121a290000000000000000000000006b1d2a999bacda8dd72481b192a83f2cc3ef65d30000000000000000000000008cacee3d04c0e2bbf9354f11bbbe158e010cc4d50000000000000000000000007296625bb042ddf0ae124ccda8e32f5fa0ac680b000000000000000000000000a4ea6a3d5e72d1d04437cc085758c4d08aad0a4000000000000000000000000015ac0865e11dd3a4941f2e9794fbbd71d12690f4000000000000000000000000a8a06c5f0b8f8136534a16b32fd4af53546e15d8000000000000000000000000c8d1a1bbb931826662aaabd67aef863454f14957000000000000000000000000aa79b91d3fd0ef0d86705be3ed5951be23a6174200000000000000000000000025815a1a4805bc795a796dde9f02acf9a31874fa000000000000000000000000c5008caf7f7ee6880cfcfbbfb6457dc97f38eaad00000000000000000000000026bf1ecfe1953be4edc210d8048acd863bf6cd03000000000000000000000000d886727d8c3c94f65d111e0e11e97bfb886e950f000000000000000000000000537b53b82dbe822e58bbe9fedcfb784214c2cbab000000000000000000000000ef53545c33b6eb9ef612db5e2e1c93c4dd4b1c310000000000000000000000008f5970eb1e23bd672a468391584ac1a1e587c7fc0000000000000000000000003bb018bf2cce6b18e4f16213714497f4796c6bd1000000000000000000000000dd95e694d2429b17e7a1e8e373b038f811a1b803000000000000000000000000ab34046ac556d7e8c321640079d3f02bdb840e5f000000000000000000000000a4ef36e51dd45415905a732b28b62f70bb44a68200000000000000000000000084bbb658b34622b35fc021388697bf7ed8c1f7f0000000000000000000000000245b9fc5d1446d133757323e9184237043a512aa00000000000000000000000074bb4735ee10770168a16aba2952eb6442b3f975000000000000000000000000032a6baa92574b361111ab223edf19dc782be597000000000000000000000000e0c6460bb5b29fdf6a0c2d2997d5e2d7745c42b1000000000000000000000000477ceb2c5999cf8016d6d91ba981fa736aeb532500000000000000000000000027aaba0db8f8d7524575df598f79070475f1a1f10000000000000000000000004447775a958a0264c45d9ade1ce0ef71b40313cf00000000000000000000000005b9342315be6d007da15813f07d9475727536470000000000000000000000006e4e77238f6232ae48133c94cd46b07165862ac000000000000000000000000042be9b4b12a8021529a1440158c84f624c316d10000000000000000000000000f1b88e3575fc5fcd7e8c7733230dba237ab4eaac0000000000000000000000001ffe25d40e27b50eb61167a4e65e7f3211da14b000000000000000000000000032d0ab3ee2bb27b48edaa7c3c5c6ee026e4faf0a000000000000000000000000b6d34715f0bdb1dacd7497ffd0d5098d455a7d95000000000000000000000000cc1d0f888ffd519b23ea6d0396568eb2bb9ee371000000000000000000000000fe554654d36e12b02bcc398b8a5fbe812a8eb83300000000000000000000000041649414d94ab18bb7253e8fa8c89466230cdc320000000000000000000000000e4d2c272f192bcc5ef7bb3d8a09bda087652162000000000000000000000000cff37308a09a9c4400d62c413d393ff4e55084cf0000000000000000000000007f94e30381aa6657c45833ec7fce2e493c1888ef00000000000000000000000054b74b0fc13f384b8c0de82235e742b59e018af10000000000000000000000005495c350222ad0cc58325329c037cc7cb77dad6e000000000000000000000000d58d5006d9af7fe1502d7421a89c7c4315da0509000000000000000000000000803f16a5036047fbd661c6dbd0cb9e778cdb74ae0000000000000000000000000e2aeeaa52752e111ffa3609409bc6bb55a87ce7000000000000000000000000386579df93cdfa1b9d2d1d5444b77fbb9dc3b63c000000000000000000000000d246ad6fa23950168b71bbd744c5194cd4b7135c0000000000000000000000002b72f9e46d21a2eed78bdb8570a25c9290b30583000000000000000000000000e7e51a81d958d47d8b4f304595b8c75d535d168e000000000000000000000000a5e6cb5915a768aa26a1e5d0ab04141c86babd7800000000000000000000000071e3d70629b8333a7aa721e13707d5d40a964f07000000000000000000000000c413a8b5d166c955d431a4ae83ff47d34725d23b0000000000000000000000004ffd0a59a26cb2aa76d403215e4cc2845c053994000000000000000000000000079c9bc694c6c5ff912e96d7b25e0ebb9f09b4f5000000000000000000000000c32d0c87949e5810cfe4c53494b23ceb36a691ea0000000000000000000000001f224091c492115a5bcb5abac1666d65dbde36af000000000000000000000000fdafb2fbb76ddcc3b442a2888968635a9efa84c5000000000000000000000000e0bd3f264a27d024dcc727b0a7a3720fbef4e03c0000000000000000000000005670417dc755c8b933c217c73a32b86774f3bf62000000000000000000000000c10002ac4f1f4c239d49ba4b8316cf88809d61f00000000000000000000000004416764f7ce645376cbb2b06d3978a60ed0e0c750000000000000000000000008fdb8d400a3dfafc9a892cd8a131f89c6a503155000000000000000000000000e00cf18cbca9ec92307930e6bb2bc7d3dad922e1000000000000000000000000e356c63e98c3a50de0060ba9545b83ac968602e90000000000000000000000008aab260f0ac15d1f340a07425f2da6b7c26b63d800000000000000000000000056f5beb8bdff775a63c51b4ee995dcf0e5087187000000000000000000000000909e50ef37415d5f41db550fc5eeb0a465015988000000000000000000000000cdd603d3c8e21b49c1c30fe6370c02491b51c5a400000000000000000000000021b2671e160ac5d05a035de0a858f87ab304dce60000000000000000000000007eff3da556834fd1b3413a6b8c8b76b56965f279000000000000000000000000f3792d9808c19638155a1cc6072cdaa8ee25f0ac00000000000000000000000000fc78a3b9fee98c00277bafc3411a6342e375b100000000000000000000000052b2b8645b7b4c73a8fc672d726ba6e4453e83cb00000000000000000000000010e6ffbac013b40ed9625f4aaf2b37a38d817d7d000000000000000000000000fb6fc8c34d32eedc472730c5db9f585160963f4f000000000000000000000000fc696e938656445a4025648715bc8c394a4da25800000000000000000000000003a6b8965c3e11ae46236b500c20e7a5300488300000000000000000000000001b9fc028057b39eee8116926517ef62b34813dc7000000000000000000000000fbc0793d9edbe4af428a73bd80e7fb9a14b0c972000000000000000000000000ce19208a425f5420b80630098cffe210a9ecef9a000000000000000000000000ad80769bfa6c474764dc4944f3ab1cd6250a42a7000000000000000000000000b7cc1ffeb87b4076cfdf9e77a4f18bf1d5eace9e000000000000000000000000e308a1ce5985f7a2f27198e56856fec5cffe93bd000000000000000000000000d5b32e77edb007a8ac34f60ce5ed690b82ec45af000000000000000000000000d05cd7e6a0f6fb1cbe59a57ccbb0781dd6ef9127000000000000000000000000bde099d173791374b29638a2469ebd2efa47116f0000000000000000000000004a47a4519ef3a2f080ceba2f844ba6d318ed84e700000000000000000000000085b21c29afb3fbde4015ac8b6b50bc654abd3f3d000000000000000000000000f664c88016233a9780445877763ff63719aec5230000000000000000000000009c09d9481f69ee5276ad9bbf61e583897df5b718000000000000000000000000214f5d5bde137daa38f98099151e0f31865977f8000000000000000000000000e8edb42f7a0c3e4e9744f68ec19cca27320509bf0000000000000000000000005ab3f0d7a78ceffa4318ea9980722ff537bb3c400000000000000000000000002e660eb2e338e690140759666c6ae673664a31270000000000000000000000009cff30ff287931c256dcbfe1e689851e4aed1dfc000000000000000000000000cc5ab443e573215536e179b53ac640a6adbc684100000000000000000000000027f6a60d6ab6a2bf84995b0afe73e2c488efe2ed0000000000000000000000001a38e5e0e75765f11ae2e98ee324f765ba5a5cb2000000000000000000000000c14b0e634be9a7f861ef502fcdd4587facc4251800000000000000000000000044250e31407e99e635ce7e93682def938428dbc3000000000000000000000000c624135d4b79c1d695e33104e74b898c8f04d5cc0000000000000000000000000a894e1fa08506fd882ee073df3adf3226093a7a000000000000000000000000d6f6846493d3abfa0651b323a3dfddc1dd7015d40000000000000000000000003ce81ab1112c2e90eca7a94a6a3ce6990391e55a0000000000000000000000000ddeb1b901cb671266050945aa9d67d684dd9b50000000000000000000000000b550b1273ba26f20be571d9bdeab1f19f8fa45a2000000000000000000000000df5cf14b948eb1683acc72ed8a567ed4b2658c0e0000000000000000000000009c9da8263e86e668ffcdaf93dd4f2f5f96ea3425000000000000000000000000c59d479c3f2ecdb5236129ab6ef2d0a7a362e891000000000000000000000000cb8a7edd8eabf5e0265bcdcef9eefed70912509b000000000000000000000000bc3f4514c0b904b0c1df04f12cc916d223e1dbc7000000000000000000000000a7b499eeb624d79102c8825edd963aac6d85b8a30000000000000000000000002d300100e8f8d22d472665650070229f7b5b833e000000000000000000000000008c3e1a887b51c6c05dc605d7123e967784db0a00000000000000000000000048da1c51f5e5385e315a29684d3abe5c5a4dd843000000000000000000000000d2f2edb2bd794772532440cafc7a9726880eb5090000000000000000000000005e897303d13a43e1f672a7ead19d085af2a25e500000000000000000000000004b8eb61e987be1247599e8280a4f65f753eacbd70000000000000000000000001797e49aad3c36885c36ebf01d61434ab3cd8055000000000000000000000000469ed508517464c00f25b17c747dbb01d4d8b39f0000000000000000000000004ecbd087f72cb572b35c2e555b35fe196b2faa380000000000000000000000009ef2b0444063b1aa229f88f20194f0e41fb69f1b000000000000000000000000461485c9b6ac44694ccc09056e0039a49fdf966a0000000000000000000000009e8058fd6009bfbb26a77569d811eb40cb4ad38c000000000000000000000000a0dedc54331ba87cce9d379e17d7dc6b9fc73a66000000000000000000000000f611144cd3db0bb10a8a69a2d2ba772b57b56007000000000000000000000000c36494a4a9fcc064d54eb384ce30fd87150790aa0000000000000000000000003251113fc564094d881fe39a9fb4c612e436209b000000000000000000000000c9037febb8d9344878ec5cc460578fafa11e2bc300000000000000000000000023306110c75e59977d21453de15ec41004ae7fb6000000000000000000000000c5bf2ab6ba025f634b8dcd2ac14bd2eb1c1dbbdc00000000000000000000000020b38d59bec9601f8235a16ce5c66e6cc3191348000000000000000000000000e9d70f70a7904c17c43a7122f3c838ff96307519000000000000000000000000917e5db2aa752b973751d48032de900788894917000000000000000000000000cec87c07a6946ec56e4efcc22adc040b4c4c4fbc000000000000000000000000cfc585731bf0b927a22594770c746eac1116c065000000000000000000000000838a76a4d98c305f8f6c53c916ace02e972785e40000000000000000000000008d43245f7aa693e3213d76deaae87ba6188c12450000000000000000000000009a3415e9ef21af8935c1c29bfa4acebcc32b7ca3000000000000000000000000ebcb2a1eec49edafca24801a84fc9fcd5ecab5130000000000000000000000003083c46eb15cc0c087a03f60269edf1de8186f380000000000000000000000007f6b33db8912d521debcd1e92d1aa48c19aa5fbd00000000000000000000000041ffbfce05a68d043711a850b5be0fafc73c307f000000000000000000000000cbac76f751b4da4f20c4b0446c41fe40c3e6518a0000000000000000000000007e67bd29fb8c654e0918f7a231744a1f41068aed0000000000000000000000004c1debef73595d4e89efc0cb649f52673286505c000000000000000000000000133f1ea64aefb18ef6cbf86ebc8995e5212543930000000000000000000000002271d2ee41a103f858acbde735e58cfa3eccfaad000000000000000000000000c922ed9e05b48c2b655db1dd1ef2e368b02e56800000000000000000000000000e75eabd04986a8fb0b8cb30d6dd069c86e5e14200000000000000000000000039715a9f5032bfa66f34a1ab3f385230a0dde0f00000000000000000000000003ca91f9ff1ad69e88956ad30ee71de7052b979ce000000000000000000000000645a91780558c473ab7bfee81f15802e22fff21a0000000000000000000000001dd5b4f216d4cfb5ee63122238e0fad6cf8e9a6d00000000000000000000000089f5721b5fe6017ebec30059b20be93a404a2bd80000000000000000000000004a92092a80ca1798ffc0e0cdf227926187f2562d00000000000000000000000026312c714bfa3ac08b5300900b9e81a05d329aaf0000000000000000000000006521f65649268d864313ce52f17b8633039e71ab0000000000000000000000008bd851d688aa99cdf0c85783e397e4614bef7957000000000000000000000000abdce81965c5428953dc976c1a52b2d7b9eda808000000000000000000000000868b4ad9e9257c9c3b6e2dc3e16164fbc4fba08e0000000000000000000000004814ea6590ddd4e46ebe658049ed7810cf66d41c000000000000000000000000bd54bb829eda85bf1cb52e7fb98d9fe32dee92d1000000000000000000000000dac1ed8a27e8a5d8eefb548e21784a9609126ad100000000000000000000000091a041e1fae3452dc33ba267a7e42a4d27ef078100000000000000000000000001142d441ec29f6ae4b18ac067a3df3706ff009400000000000000000000000081f95ce7176b733eff726b0ba1e71b3c485a5e12000000000000000000000000d333828ca6903fb51d57e32b3a6e85f347f662900000000000000000000000004f546dfa1bfe96929d0982bd6aec5d4a41583425000000000000000000000000cc747a877b2968b093ce233a16be6ccf44bd4fc6000000000000000000000000094faa7ae4569585ce3a62233eb4a7c0b4413f1f000000000000000000000000ab88e5fd49e88919ad9112ff8ed1bc4dc0dc198f00000000000000000000000006857767f6d2ddb54b808c2677b940153e084b14000000000000000000000000835612c3065c8ddb0acb72dd53f2ba3245f10180000000000000000000000000e742c794bfe6393b9cb5643058d9810ef488e1ac000000000000000000000000ad31f9ea0cc78a56754ed344c3bb774c01363d7600000000000000000000000056ea1f7b4d77559dad82ade32c503699c41fe47200000000000000000000000029c9f5189be1ca21b48b38fa41d1c3fbbb6bf8870000000000000000000000000fd987fa28a517d89a955cc7793653f96869c131000000000000000000000000258b5e9167af21ddb8881bd1da7f54e80ab6b842000000000000000000000000bb7d0b9f00b0a46bf8391c8413415310a375eb21000000000000000000000000b72265a023a13c715ae9694e4ede2d1c6de18966000000000000000000000000327053a90ded7e9698707f04757d24e564daeacd00000000000000000000000009bab7d98090d44383b4d30e50896e3e6029175c0000000000000000000000007eaa9bec47c94d5cc8b474639a91dd81cb3a4ea900000000000000000000000048cbf984e6f9153bc365a91fdd90c8af0a220ee6000000000000000000000000b36a4db681c25b0e3c6e21c6a3887d06e3db52cd000000000000000000000000c665d671e0c8fc7084e5f72ea46c25c3d0b51dfa00000000000000000000000028e12f2762e8e8ce61c5cabaab663241624e72e90000000000000000000000009077e6519b983d8d9710cd04a8b25ad7217179d6000000000000000000000000c2eb680d21fcbf3721cadb0df78815545e51ccd10000000000000000000000002c4a92cf4fad7eb444a7078f76adbd7f32686b0a000000000000000000000000695b8737cb7b1edf502cccca0b79ed869e59328e000000000000000000000000d353e76ac892d5d0d931ca5f40dae5800b7139a3000000000000000000000000b1bb721cbf9372551b278f10dc54868ff0a37f4e000000000000000000000000f7820e372787fe9b82f6a847686b8cbec995c816000000000000000000000000befaf1c1c28c821114434d689d9004e8a3279022000000000000000000000000565b15221ff10041e0e520720869bef8499b7c5b0000000000000000000000008c717ac9b751ee2d4f0fab977e9ebb1b6851e49900000000000000000000000075d8e93997420bf2ba58261fa33100217fef8c79000000000000000000000000241690119e74a7110863d521be2da335ad53809e0000000000000000000000002b258a28bf2d990b23571cdce909b2756dd15d2a00000000000000000000000027231d823a20dc3aa236539d85f3b76f393b57ef000000000000000000000000b3386e770a94461d906c78a964759513469646b4000000000000000000000000ad7c446646b456d08c80c9bd16cacf4969d460200000000000000000000000002a5439809888cf9eed0e826bdc0ff786da91d7810000000000000000000000004fa419790eca14ad0206cabafc99141c8f524a31000000000000000000000000c57576ebb34ee74a7fdbca77870d1ed5faa5d68500000000000000000000000036021494ea600a40fe1bf979c2018ab195018b43000000000000000000000000e307c873344b6148d3343530820eb9e741247ec10000000000000000000000006087cec6493d8011e7d8ca65295ac90bad77e044000000000000000000000000d52227ea777c1bdca06134c8684c35802808456100000000000000000000000091c7e0783e8d0cf2e89568841b87252d2c4b560b000000000000000000000000322b40ec5986412bdf83819d031bf474715255cb000000000000000000000000bfa95956621c42233e68faa656006e084fb5bf96000000000000000000000000e9a07563bf8791f3a2f662e485f8d13cb7ffc7d700000000000000000000000063d7e2ab0ccb37b3a3c21a0af172f959c68eb710000000000000000000000000385fdbf59b42d64684d18d5736182c7f333e93720000000000000000000000003dd2f54e4b52b18c065b4bba446573144e6fc864000000000000000000000000a616d2a8f9850796942c879b28fab13ef33f5192000000000000000000000000a77b8028850e0eed3d4d6c9004c82952c95af43d000000000000000000000000daa342cda190492c4f8c691a2cde66ee7ba0350e000000000000000000000000eb8fe4df46cf9628b73a567c78df5029ca6ef02400000000000000000000000062b3699b9c21316bc40864e8a7a252d135622ae6000000000000000000000000395348ce540dd74b4f25ba7f63b3a10b58bc13a5000000000000000000000000452008779b6bd5b2bcdd113d1e3f10c5e27b5cf8000000000000000000000000573d90a5d015d4488493b515aabf2f23bb0aac500000000000000000000000004c3b3ac18c668e946cbd6b9bc27fc6edda22daaf000000000000000000000000c9583125f22baf9384427a90f7e66c3e775d2910000000000000000000000000e16bf22ae0db1de8fae99b5c45c6057b1daa37be0000000000000000000000002087c20efc0f71951006825575a0e01573078376000000000000000000000000d3c2bc74c75f195172f54ec3711006262ba89b4d000000000000000000000000cae1256724534d14a8abe25e31dd3cd7f63075c5000000000000000000000000247a7742d7174fe852c4783014819b9751347f05000000000000000000000000074ac2f9b4cc6eca9293fe474337a2361759cc5200000000000000000000000003e7ab483ea1d177e4be2472bf16ca17b8cf280d000000000000000000000000e7a60bbb3f90319bf4c3eaa5cc379674e8efd37f00000000000000000000000063c48f596a8ad105759b91d3dda07d6ffd2e5b7f000000000000000000000000aeb1c8afd914113c8dc3178a4dda6150ad8dbf7f00000000000000000000000077d733b7eb4c99f4f392644d2af12af19ce4c59f000000000000000000000000e0541ebaf5341be25245f70c48d99d014541ec41000000000000000000000000d333714f50a0c51c0c69fb4b310a299169e560230000000000000000000000003a1db9cf6c894b826c94b1548dbc69499613d41c000000000000000000000000bc5244d2c4a313a10247c926f7de379d20c1d7e3000000000000000000000000923e254a296d2fef2523899e431f222dcfe2dadc000000000000000000000000e22984a5d866bab5eca3ec88a3ef6183f618d545000000000000000000000000ed7bd8e03b782a27eb7e75b242160b79718cea33000000000000000000000000ff14187e55986891e7690b8e62c43a14494ad62f00000000000000000000000078eefd588cf13adaca171c3ecb87112c0162010f000000000000000000000000d60bcd0f3b4f6e361e7a83a84d1405d27b45824900000000000000000000000067eb77d75f5ef2b469c8f85049049c4c4d6ca9200000000000000000000000005e10b51622b0d37bc97b8b7d1dc1f92bb385a9f70000000000000000000000007e27882710b211b119b6ca9b5a1c436972d6ae8800000000000000000000000007103ff9543353808918f30aad597830d5a28f0f0000000000000000000000007d1b71a98d689ad670a2966837f83740cf5b4d60000000000000000000000000a3167de8fb19349a584ed42dc46042881f194dda000000000000000000000000cda52a2808ada7cdd58759b8a8c14c498d857a5a000000000000000000000000ac8b721a9ebf49a9eebc3c6a7f4946515e75131a00000000000000000000000037f4c1f8fd22ed8c4c4c24ebca3318487073ea990000000000000000000000001af95833d6525503ce0bafeeafc0826d02d1647f00000000000000000000000007239cca2e85ef0dad7238e787548d897c8dc3520000000000000000000000006493acb422f21a1ea4a51a53a350d02ad80a8957000000000000000000000000ee498e495f3c71ce09029aea0176cf4789ba28f0000000000000000000000000830d69a5eebdaaae16c72f37f89060c3529791b60000000000000000000000008fbefa27af0669412c216abeba2cff002f2eabf300000000000000000000000010e210ccf768bb5c3060762fa54aae52df06057e000000000000000000000000be1a71564339010ec9cb8de18a3bb2394f6329b3000000000000000000000000c9f79973d7e6b59cef4f5101df93455220bd32b90000000000000000000000005081f3ce11c267508456813cf0513bdf9a0fc2640000000000000000000000003685756dd15312090964329c821170902aedfb2f0000000000000000000000005841355c7c61baeb66a81c301816d6c8059cc54d000000000000000000000000ea0f656eaae34dcaf45a55c2e55ef6a6ae46c7e90000000000000000000000002683a0bece4173bf51b171afbe99c9143866e98c0000000000000000000000003d4ed4950a6279d105e7d159ea575b2950da1bdd0000000000000000000000002d7d38d2d366817aa52a5d96a5decbed7e44bca2000000000000000000000000bfe30abdec1c649ac8b7fc4b79d7c844722430d80000000000000000000000006cdc49f833de078537443303ed01e911c69bede40000000000000000000000004b47052498d469ac9521606a67d6f02afeb0985a000000000000000000000000a695482722c05d8424e7f34bc49ab9ac32fd156a000000000000000000000000045c81f38f553b360b31b27414b4a18d67ecceb1000000000000000000000000ac7748d9446e3adb17fa9c48feea0c842c7ece0700000000000000000000000079d563613453f2b40960d88967d76f339c8fa4a40000000000000000000000002ebbac8fe5047f1b856a525b223c79cb1904b7e700000000000000000000000080f81da33842f36d07b438b070e0568e57c6564d000000000000000000000000ca5fec448e36ade77f135fa2d9c19f06d1c4a998000000000000000000000000e0427d2e89446b6fda7e80e5851f927897c2651d000000000000000000000000aa93142a47f28a5bcfea59939d9d804bc39b4a08000000000000000000000000d7467784791ebae72180623a438f5a8c93602a50000000000000000000000000c42bdcc85264f114c3dfcac2c9207b89ef6a9232000000000000000000000000464f8b2631129c90e0161f605010ba8bf8d8ca34000000000000000000000000c6a036e204699c4dc3e04808f63528b259fe5cf40000000000000000000000001de459384f35da4209ea75b23fc2b9dbb4e5cdf3000000000000000000000000ebb7b8c14930f1702292826ec9ce9a7701838264000000000000000000000000ace3371545521ba5bb1bd1555d360c680e835eb0000000000000000000000000e182b2f7598ca7891848883fff0f0cf28d9bc00d000000000000000000000000079e22556777613b8e2c0db06aa07bbe01f14125000000000000000000000000b0545999f70ef4d5038b8b41a94ae56a7aaab1e0000000000000000000000000da5b90b4f175c6af7a7def1236f77acaf4ed4e8300000000000000000000000022a8490d883ca52e22d916f7f6e4a33374ad356d00000000000000000000000079e8b5350975d4ba973906bae7ec1148dcb14dbf0000000000000000000000008eb7cc0f95a016f7e07794fc0f1798e6c5218e45000000000000000000000000b1bceb19451d8f80ef73b4e90b11ed8c72814696000000000000000000000000e744907d3c1c754f3bac044a17b89dcf157973e4000000000000000000000000fdcc0d9b5a2c995ca3be7632e16133f0d24d3d9800000000000000000000000069a0411e7fb4e4b0d2091bf99f69d7aaaa8510c8000000000000000000000000334f97881a501757bb6f8902de1bbba28a5b97e30000000000000000000000001d6c0cf97dc1f32af088c5434fc4fdaa305b500900000000000000000000000099272f8d48a482057ca876254fd2f4c5c1655074000000000000000000000000ebacd448a23f63a156841d440778be89613be97b000000000000000000000000e332f3d7676d0638fd010ffe6deeb256deeefc65000000000000000000000000a3507ff85d22ecec2cf72b92f26d8dad0249ff72000000000000000000000000e6a415fa6078cd240eb4b9d010d0c3f5546bada400000000000000000000000047d7781ee178d0f231e982dff86112047f48a91a00000000000000000000000052bd492c97a80f6160d0311c3b05a91546e547430000000000000000000000000b8b86d95fe1b36a15e36caa35a6ca3a74261c0d00000000000000000000000002ba8fb70f4f60b111889f1da2cef29ffd7367c8000000000000000000000000ef96ded9f4b2187aaf76f2cc67b2d225fd3190170000000000000000000000006145186d5afe79a30b09f181be7f1ea4abaaf83a000000000000000000000000dfd39a4585342d172636a24a88cbd729c267d25300000000000000000000000071d50beb6d246a489048ec3da237c3ca44eff610000000000000000000000000626337298570eafde40464bdae441a53273f6a2800000000000000000000000050a59fb0c284a99dd9c7f182cfb9c4acebcd5a480000000000000000000000004d3875545893e21bae6f1e0ab137cc2d9451bfcc0000000000000000000000008c5ef3a6236088d285ffc8001276a119cd4d5d7b0000000000000000000000009bc03bc9b1c0ce17049cb45a4326a724956af45900000000000000000000000097a6269fb7ed12a879ac373b3aa42862b8bc78530000000000000000000000001397c79e8f1d0d591b614817680ca15cb1f3855400000000000000000000000095ecba579c0835323c39b94a4b1f98c86cac68b20000000000000000000000009711b60da2bfeadce1eb4bbee1b08aa60f267b00000000000000000000000000259fa9ebcd6ab0ba2f5440a212741803fbadc178000000000000000000000000f5aef882a95c9fa5cf0f493c32b7cf3ea99ac9de0000000000000000000000002e1ca5ddcdf6d9329dc176bdd5be1a77269f2e8c000000000000000000000000dcc2a0d748d35c3fbd175b20b471a8f243bfecac00000000000000000000000055215eee3bd6b429dea5bbb60272c80842f13cdc0000000000000000000000008a086ad1e53c0493111fca21986c4848dccd6cba000000000000000000000000ed5f9b83855c29c3360e4cdff9f25d298868a17a000000000000000000000000811b42a7fe9fce7edd6c83fce60fc194f889c94f0000000000000000000000005c09fa5a199e0ae1b659c82987bd5c24deab57be0000000000000000000000002d54248256479a321d71583a30fac6364dea77dd000000000000000000000000ae14afad8c8e81f291895dace49ace8277f0cc7f000000000000000000000000e60ff6e3f268b51e402349ab283e00f885117fce000000000000000000000000e0b1f74d17c27b887699ac6a38433e9ecad4ecb400000000000000000000000009ccbaffa4b0b4370d12f7497ffe3a399e70d50b000000000000000000000000bda80edcdfe2860fe033cccc91b0c09b847c7399000000000000000000000000b451f7f66d3870128a06740fd1b4e1e6c342a5ab000000000000000000000000b2cd6beb632df28acdf8ee7fd1afe3a7ebf4801300000000000000000000000029aeb8a940cdc55beaf8c7e46b88a3158e7c2a30000000000000000000000000ad7255a0890020ca534eb8b033ccdfbe023b7559000000000000000000000000dfaef79df67c30bbb68791b938542fcbb2d4d605000000000000000000000000554ee323622b9eaccc38e885780f1643d567b1940000000000000000000000004d90cd83c0aac70628607a3b808ac452a06c155c000000000000000000000000153831cbcf6b04462ead4b9e6b235692210781c5000000000000000000000000509585532b696839103105c3a271e2e3148e037a000000000000000000000000065ef5a5e1035d1f45eb376029de5e01549579b4000000000000000000000000900537623941fbae7c252d34463d290d93e59ef1000000000000000000000000fcdcbf6d3242b4ed79d20725d534e1877bd949b80000000000000000000000008a622db949db8a19eb24bbbb9a15b4d80b8e995f000000000000000000000000d63bd4bb4f8d4e701e3f94ebb8f6d017a57ca44300000000000000000000000052e43010a396d79460e19b51f0fcef3ecdc2047c00000000000000000000000076260476c32e62bf829e79c6268771e9d9c2c490000000000000000000000000b9a910f432444831752d86fbd41600e511135063000000000000000000000000e74412e6a676f1fbe6557a4099aff62befc33f93000000000000000000000000b38760f15d0dfe3c82c026cf9abeb0d4d19b7708000000000000000000000000080cbf6a5485b7f0214d8bc7d108e85cdb92e01200000000000000000000000040e7cf2a6227f061eb320d03b25cb4e813b06f13000000000000000000000000c1a87e0063b2301b6c41e472ffd2008d346c45b4000000000000000000000000ff79125440d6dc838ae23c8d07e8af9bc8a99ed20000000000000000000000000a9a0894e2bcb6c376945f44e2bef2c1177aab640000000000000000000000004bb2e3a92fc77ab86595ce49071d5846ddb24210000000000000000000000000fba03010b419678582701d3260da6d94b050bba0000000000000000000000000881360c3dedf21ff7c73842c990443363110603c00000000000000000000000024394b2ec2b65ec7b749a84e9ef3df84775ea9ee00000000000000000000000086a851c344c76f39a5258d9fe431b2660fae8479000000000000000000000000282c134d3e30de85d18fe326a7cc5b915e366e1300000000000000000000000031923e1811cb6d5c26870439d457705505dcf4020000000000000000000000006947ec0057330e87c767f4fd046dca0221cfe935000000000000000000000000bf2ba54b232bbc8c99293d0a6c604ddad8579788000000000000000000000000133d65546c8d8f6d15eaccf30018d08907d91de5000000000000000000000000942e2816d9ce0d72292c6553061fb0b9647a1979000000000000000000000000e7ee2983d7c9b2fa7cd723cba478fb30ef3db6a8000000000000000000000000f20d916a979fd3bc702bc1f9956986066c8fe6180000000000000000000000000d2c183882e67c1e2cc0a74ba9d4b63582e1ff930000000000000000000000003d7fa056685d3c5f12f96fe51d65ca28cf695d58000000000000000000000000be40dce09b34e7eea9c45d3bf75c62f63225de14000000000000000000000000dd8b6adb81d8d82e0345f23c9161836c3ee9c99e0000000000000000000000008d7a429b0b6284806bcd50809c52ba60e849a0f400000000000000000000000035259374d389c4b05e693191c82cf6df1a53d9bf0000000000000000000000004335335c596ac1fb3872a4f3b02ddc5418f8e33d000000000000000000000000930387df77c0d9ad248de6ad90dc0dba1a923e2f0000000000000000000000004de57a1fd9ef62530347e6a7071bfc0ff3858b79000000000000000000000000afc307c70ee6e9215af5156dab0705fc468fe97800000000000000000000000003da327ddd35ff1c65e921cd70654540e94fb549000000000000000000000000c5c65adfb86d6f7504c0b0965101c6373eb1cb7d000000000000000000000000ab1770bd54544e877fb30420cb895a9db9f79a24000000000000000000000000ecda563991035af334ddba25bd41b82aa81bbdb70000000000000000000000004901912738c5b5c9fbf6c9007cc9c83da46a70280000000000000000000000009604e0d3eb9e326ac72b64ea05fe7092798ecbfd000000000000000000000000b4807865a786e9e9e26e6a9610f2078e7fc507fb000000000000000000000000328378b3a987dada0d4931fe12dd7a728c55ee7a0000000000000000000000001d226a8aa192b8b7ff64fe18a8f0e42acaa9e20a0000000000000000000000002848912a441b2e9b37746463ff24d49fd1271699000000000000000000000000124c098efef3ad4e1b6dbc1c9117f83138ccd57800000000000000000000000030ffe33b3ef0df80ba7ba302ccdafde6db8c4fc60000000000000000000000002a407ddaf58e38225e7e3df8f67a6880ef0e380a000000000000000000000000862597d51bc2f83e7013fff18b4cba6c6cece67200000000000000000000000053739a2adfb3e5ace1ed588ce01a5c1160069e21000000000000000000000000daffbb57fd438b362f6a25e66d900e8ee484e4910000000000000000000000008534e505d1221707d878c4a54b2a591d1430d043000000000000000000000000e5206a185df7639808ddf311cea2aa719447b6120000000000000000000000001d8dce33fa34901385aac2097bf8eedb99724dd400000000000000000000000098e997a08a568ff27b98857e854bd6ce275f64e20000000000000000000000004fbf9e07284544a0517683851028ad948b89737d0000000000000000000000002862eebcd5002ce53b320fadb48c9aba1246f602000000000000000000000000d6582b29ec5bd190070def91986befe53d32325e000000000000000000000000fcf0e4a2f84422b1eca6f5967045022213632bc60000000000000000000000004e2a38140276b3e03eddf692c6a106289e5809f70000000000000000000000005011550b4be96c4fe335d8c268bcfbfb488495af000000000000000000000000354dcb5f999b84d64918d6d4faa884acfa881224000000000000000000000000c12e8cbd46a7641f76ac966fe48b7fb0adb7999a0000000000000000000000008359725745f297ff73dbf649ed11579fbb25f0f00000000000000000000000000e034e7e7287491f408a6e619aa6be9c0139f8eb0000000000000000000000008d470921050899284b451d6a65f4204eee4aaf8f0000000000000000000000006f19c31d30f230a5d30c419d422b0f3bddd0cad30000000000000000000000002931d50c0adc64d975688cab6f2f8b4b736ec17e00000000000000000000000074dbc9dca031c891dd44253eedb79135dfbe92bd000000000000000000000000cdb1360fc9b47479e240783aa9949149fb362901000000000000000000000000b0088f87f70e37a4e812e8d328b3a09ab92099880000000000000000000000004e00af16642c6c4734d0c5abc6a3a9a300fd25e90000000000000000000000008a9bf2e6dda2117e3fac7f2ea858730f1fac34b800000000000000000000000091e87facc142bdec03538a285aebf6cc82848b440000000000000000000000008ca55b7384faf856b3d31d3c672ab42c4abadf8b000000000000000000000000edc7abd7d94e35d3a4fd96fea0c5ff08c1ddb01e000000000000000000000000bc8b718bfb350629ebbdbffc97e58cd156c6308d000000000000000000000000cecb8569542c204e69b78fb58a0b85dc479ddd7900000000000000000000000074147c53def7b21f33d98fb397e9d7446e1eed6d000000000000000000000000e7a84907ab3c709ba6a51d438368a93b4c6d876b0000000000000000000000007520f2d285f190aae4d3f3682a10119732596f9400000000000000000000000016a1ac4aa017a756aaa26b3bdb4adf3fc91c8e1f00000000000000000000000021d492ac9170e2c6ea1fb8b920c6db4e589ba4cf000000000000000000000000dd020557598322364f8e7968b6cced1237db477a000000000000000000000000ab06ef1d486721a83c94b30b58ab9e28c5a1049d0000000000000000000000009859f916c7b46aeae52bee615f93f2f4641bbe6e00000000000000000000000037b4bda59ae81c7d1b9044ee068cf02d201fb98d0000000000000000000000006a1c370071c500e4ccefce0c4df1057a404b1282000000000000000000000000bde046fac58ea77375a3f5c881159fa924fb53070000000000000000000000002b62f1c725adc85479f0a2b383f42be09b23686f000000000000000000000000453653f39d593aee3711d6a7585f37a4014b0e2a000000000000000000000000bae3991f8bbd92deab2031ea3cf46804b61c4586000000000000000000000000fd6a9c5aaf13c8da0ac785f7d3c48f557f328ab2000000000000000000000000d9bba38aa48772f78ea7e58fd5297bf1bdf74d740000000000000000000000001c7411ce07ee24cca0fab2401d66ef72b81f83d0000000000000000000000000bc129cc918d399d49b12423f2181e9db16545bc3000000000000000000000000458bf75cd1e902430bd48c82b598d659829b0a4f0000000000000000000000001fa104a5d400b3ee258228d60171ea5a0ee4a5a50000000000000000000000002375369d950d49897193ebcad32d99206c37d10a000000000000000000000000cda28d21ef23cd4191b1ecb2bea81a0b364865bf0000000000000000000000007ff67ad49af14f8da288128c1acb5c62d7ec04620000000000000000000000001feee7725378994fd5f743765759ba388d4bf97c000000000000000000000000e9080f406657c7926795a25ffdee9a0f40558529000000000000000000000000d6ba25d4a09af00027fe14fc4a4638b3350514fb00000000000000000000000063b1a49ae9c6565866d0234519b8199adc732bfe0000000000000000000000007e5fb4b5f68a651efb482daf3ec67455082a8bf60000000000000000000000004a370aaec96c9f9a2b35703511bf056816481bde0000000000000000000000002bd2c68427a41402a63159cce60730b6f7d90a4a0000000000000000000000009abced7d542657d164c20df2342e27d444f523a3000000000000000000000000517a88a5dbb82711de86b38e065c8720317599f600000000000000000000000003a189d2152d7f6b3c2d9e5b8d97e59d8e4c3a80000000000000000000000000739aae502ae48909018ddcdc47c3f40a03bd0b7300000000000000000000000061d0c70f4759be5d91f89b6d98a6e730723442fe0000000000000000000000008847610937bc3ec70b6ff34883c7d685276216750000000000000000000000005771571f448c1bc263a806acfada504d0cf3c2a9000000000000000000000000675b4072d0662d841b3066f6ecaddef6aad13bdc000000000000000000000000044eb5581e45aa390428b406b53f1054b255fd7b000000000000000000000000ac166bca1d6fc0c4792eed26ab7683cbf4bdfc2d000000000000000000000000e317be6b5b46d9e922a271eebf1708ebf46ab031000000000000000000000000695607da9c3c12b2bfc34fac98ee533cd0a12ca30000000000000000000000009ef037c4045c2ff3311b9f4cd6365dc1875ef857000000000000000000000000fc7b3d3acb29ac35fd0e4e035f6b654fa3b85a3f00000000000000000000000099026dd44d1486e52c4727cb911edc20d6d8939e0000000000000000000000001550a947ce49b1976154339565e598a604470245000000000000000000000000deabaff52ddb2195c08d9858420775e17e9cfe960000000000000000000000002801597fde43b1dd6d03d20670a2f71235450eb60000000000000000000000004304ecb5504e1790c8f4d5ab2a03b85c466824b50000000000000000000000002ae982827977d5dbb9dfefd1e201fecb395f480d0000000000000000000000003cb4ebaf657cc0a8cf7733e9ccafb0bd28a561fc0000000000000000000000003ddd130cf4ccb30bc778faeb757efdb8ed364b65000000000000000000000000abb1674e79d8e360a24a8328a223011e881c67aa00000000000000000000000063dc003b6581e1ef0b562b65ec9130acdadb9d85000000000000000000000000ea87f33f90c0da853dc5007bb39fa37ff2047527000000000000000000000000b9d73301efb1c45cf26f65cdcb57c74bb442ee190000000000000000000000005ebc7a6f0ecbc069065fce49b0ed28b5e6dbdaf8000000000000000000000000248afd6f369bc0e6e8984e5dea06adf4da23fb260000000000000000000000002a230f6e28ac76747d6b91a361968ff777f5747b000000000000000000000000a81d6cd05acd9dcbc30160219a03dbb5dfa0b0120000000000000000000000004706cf76b3860c706ec00db15b076e4d213669e7000000000000000000000000e31b9b3e5b631a55521b3706a7a8b67dc8c91f790000000000000000000000003e1e164fc45a96e0bd2653f1986eaed4caec80170000000000000000000000001be1b46206cb1e59ef3447f6badef8bf2af960aa0000000000000000000000005685d07153e3f446d267bf7bcb9e0c64a98c3567000000000000000000000000988f8331e7274c8e212161d6cb4571c9865a18af000000000000000000000000f8f01dfcb7c02d915b9e6ce25efb2ee5fda4cecc000000000000000000000000624733e4831e9e2eca4fa86eb65107e5cc65f2f20000000000000000000000009dbab61676e52c3df50eeb680a41e7e6647a17b20000000000000000000000001aa8673b965b7dc8d1536ef476ed2b10866781bc000000000000000000000000799666c1bcad7809033fb4b8978f5e06b138a328000000000000000000000000496ce14f05eeb085206744a342da6c7a5c5406950000000000000000000000008b05164d782b83f533dbd1ceb77e1812c2eb4956000000000000000000000000ba548b8bfd1170b46fd3fd6f4ab9d36f12c49a1d0000000000000000000000006f838d8c8cafa0c8542d8a514cdc6b3d59fba1bf000000000000000000000000f0dddfdbb6c1595aa846b32616afdc5679c74c85000000000000000000000000f2dec1bb9942549fb8263b6c4b04c0eadeaec72900000000000000000000000001149dedd07c2f0a3374a69e82deb6a0fe1f1604000000000000000000000000f3c6ca7417227eee66b1a2111763ead4df03b4a8000000000000000000000000bad430afd9c7389bd780db322680e6444fdf3e02000000000000000000000000acd8ba436150366e0661572cbaa1ec948315fbe40000000000000000000000003d6be6886fdff734e077e98fdda1ef2117deb748000000000000000000000000c6fee0d295fdc41534644cfb916a8f9f803a0793000000000000000000000000a4404fb67dc517fdda7bb2a28a5a6f6021ea44460000000000000000000000006866d5862794b63c6a3d26ebaf6229563e38c55b0000000000000000000000005a9e3772b5d9cffef8052b80b27aff4120d7917e0000000000000000000000004cc249e3cf0deebb7c0cdcda3d1fb06f0fc9ff6d0000000000000000000000000a03b1d8e9b24f214eedb2961648c23e0857059e000000000000000000000000c6d100c15675ce0ae42dd2eee8427ba89c78c678000000000000000000000000038f1a897d6f29cff77a872c9ef1266143427df0000000000000000000000000bdb2ffb226dc7eeda9a0bdefc701fd46bd1b2b6f0000000000000000000000001728603ec857977265c701200a095ca3defae6e2000000000000000000000000ec0b5ba6357e17215aee0d11e8dfe32481aabf6f00000000000000000000000077eae549171212c5cd00216a9aa80080dd17bca100000000000000000000000001ebfb0d35f54ae82cb76f43a2748f43687c848d000000000000000000000000992c3adcd40951d2c994e23602e4a359f10fa47f000000000000000000000000575b302abbb2fc589e50d8c02eb0e9d5ff92098f000000000000000000000000be7026680e04905a784ad8fa3492bbbd42fd676b000000000000000000000000c4256f97f3b817a909b770bbd3b4b4014203067d0000000000000000000000006a51cdb0aa8e3dbda911be9499bc8cb98e249c8d000000000000000000000000aa11c0e6592a8d36e0c9fc80fc255703afc28c8e000000000000000000000000c38a9ba36fb646ae269bff7233ab6a2ebf2bdda8000000000000000000000000894e0e39ae292b05c9eef15a20d5ba72a95bb44e00000000000000000000000028ed083115ed98f935cbd0e6349c3f6255b0c1ac00000000000000000000000095428fc85b2d764ad142172d83f6ee9ae07613dc000000000000000000000000c82374b316791d047107529d00e4705685716d7f000000000000000000000000d7ba85c737fa0e9173983d91da5406361dad7b0a000000000000000000000000443f5c8976a96296e07a61ccde81d1c614c0d11a00000000000000000000000036f12b51f8e595377bd47b3e73ddc2002569bed8000000000000000000000000cb5d531b8d568582893057e1c0d0cc5ad3af653300000000000000000000000037deadf4c978cb6f8ba495ffc2ed5a1d6af82ff60000000000000000000000004a51f8cb54edc4f3bd201607f5d7c91bd3986593000000000000000000000000719324b03b02bc6aa0c9d20df5cf3fc8522f5d6b00000000000000000000000033f1bfe93b9914c79ac208f62aa1c652751d27610000000000000000000000000ccf5abe78cddf513b78e96d4468c6865b2fb58b000000000000000000000000cb8a4dbdac2f3d976d79a1da2c7ac3f55ad389510000000000000000000000004cb780fd3286f2d10199b61423d1c804bd2a5d2b0000000000000000000000006e9a1e60c4386770f2c9197add572e09fba5c1b4000000000000000000000000fd4fa566faa6bd85ff31bd152e92bc0e7fee85b20000000000000000000000004e5a6500f048d89fc210be6a2e77f90f6abb1cdc00000000000000000000000059306410eef7a1f9a73406da77a8b4f2fa8aa5fa0000000000000000000000004b1df378cd5648db50e8f3a0dede73913bac080c0000000000000000000000005948ee330df6bc0d507eb7d3de4aab03f350d657000000000000000000000000a394ac5fab69542a9f2c8e291c4770078aa12d0a000000000000000000000000f0ffababe82dd698ae14a2045e8c2fff678bad2100000000000000000000000035b3e2b7e5b8d435648a25ed5cd1f7c4b6a50f350000000000000000000000002baa5b7fa176bd541c6f3636a72f2d8e2fbaa7e4000000000000000000000000d8a086cb7ccb1680243bb12198742b24a406b526000000000000000000000000c86a92f1c9fc2b73dd65ea489d6b790c9f29923c000000000000000000000000a55295a4a5e0c5e417aaa85bd3bb746fae3b56b3000000000000000000000000efe522cf3487f5951ee4ea52c9af4dffcd9348a70000000000000000000000006c2f0b8b3c4415c123d1fd62abf560630aeb8355000000000000000000000000ba83167ad5e670d66d18d790ab9fe812a9f248f40000000000000000000000002a2e3102e8e29f6836f1ce4ac3a7ed7eb67ae9b800000000000000000000000011ecb40bc4b42642e99c60960fd472687156740c000000000000000000000000cc58f1bfb20554fa8af89c71d69c7011671c9b93000000000000000000000000f5251a3e994b076dc403ed57e4498cb48d436bd30000000000000000000000009255766422eef0df9ad3b6b9a80dfb6fd88de98c0000000000000000000000001aebb617c9cede74327dc9b7837c650441ee7802000000000000000000000000f690dc6e603c865f416913ba4fb6437c94ba30410000000000000000000000008999ad933f1a529ab8f0afa9821243b046143060000000000000000000000000fe1133495757d2d7021bbf1f0bb621dcb0aa70fb0000000000000000000000005eda4bdc70237e396232a91a3135ae9c2278ba210000000000000000000000005fab7cfbed6aab512de64ee23bcd19f3ecb78db8000000000000000000000000db9ad42b6268a367a3b7bbcd2389ac75b30d1bc4000000000000000000000000dbf507476f25bb5adcbb53a836b26200a42b641e000000000000000000000000ebe25fa8daec9cbeaefe2c543588fccda866cedb00000000000000000000000028ad1b4fbacf113dc410473d7e5978f4a9455fa3000000000000000000000000fd4e107e7124eb51e5926d50d661cdf1ca48b9d5000000000000000000000000101fb72ca5782e61b11ecf6d525ac18f69497b3500000000000000000000000028c933cdb4f1388b66db285029010fd3f643cbdd0000000000000000000000005a996f2516deed54f4dccb7f211e8e551e20263800000000000000000000000030e36263ec884255c087d00db38d609da7b66bee0000000000000000000000000191b411b34e9f43a6f5f6fcc41f0a6aaa30e7440000000000000000000000000d9abf2b5254b04a0db2cfae61510d5d4983a621000000000000000000000000328c3bde2137e3bf6a4df752f26491fa8f479da5000000000000000000000000362a270129396e7fe3cfc7af3dfd88d1683552a1000000000000000000000000d8734ed66772bad2e608db38d9f167bd1b49ad73000000000000000000000000e9c59798e49a039823d731ee64cbde71512714820000000000000000000000004e69c56263b21aa440d73a297c63cc5fbd1d68bb000000000000000000000000c3e3176360633abe2ad5c6ae66275599390de1590000000000000000000000009248fd5b45d9c6286c139173c4971b4cd358597800000000000000000000000034274ed5c887cb1e9f4cf408c4b2705c98394aff0000000000000000000000003949ba04c05349a7974f820ffd0f80f22b393626000000000000000000000000f8d0a47f588bf007d9538533c244b8d6f8a958770000000000000000000000005cd43cff8b02802e2f24532eeba495946573a349000000000000000000000000d0a2569a53e4d07505d19c72386c140df06857120000000000000000000000009c29067cfe92cbb1f7c190e995f782177c1c47570000000000000000000000005553f975bf79041cc1b85db8845e5f9ad6d971540000000000000000000000008fe684aa685eafeae901672ae314bb11deb8096e000000000000000000000000272781144d28498c20ba567b3de6eb5367b8a024000000000000000000000000710b4a7868cfa17e73ebfeb14216c3f7daa96eb9000000000000000000000000d1834d8a773be485cac87429f7fab2008cf79a1b000000000000000000000000b0cc4ed0cc3c2231581eaf6fea6f422928a23f4f000000000000000000000000ae08fb209963ae114a3360cf4d903e2de0098969000000000000000000000000dd887a406b2f75537487e40b219d6fc5301d269900000000000000000000000058145b77d03c8c96e0b798077450e7bb6688b3230000000000000000000000001c6e91da67fcc61b43ec3051b1cbbc913b832b75000000000000000000000000ea1df1c65d6a45285693e630f335b420ba0e0aeb000000000000000000000000bc6e020f23ca25829c56b18956f89ba5dded9de1000000000000000000000000ba231b02c128f7a55c6a1e2ecf7e6035bc4f9027000000000000000000000000b83766dc78447e0a0f610b4597d46659acec9b01000000000000000000000000180446883fc57c891505717a095a49a9b7fa528600000000000000000000000092235ffbc005aa78bcd74d5e7f784c701bc3f702000000000000000000000000dbc83d56a310250852f63b715361ac2dc28cea640000000000000000000000004c8e399fb9731cd75b5ee53dd83a203db0f543b5000000000000000000000000fc6ece3aefff65a7f75ab22da3fec92a2d087ea70000000000000000000000007cf49dc2b97dfa48f60913fa2dea6e8dda6e7c7c00000000000000000000000016af5148b30b0f21ec044f7397ee434951429fae000000000000000000000000267385efdf48ec1e90ac6f3063dd198309647877000000000000000000000000ee2b31fcf6c51ed01ae06cce05293c30afa5eb870000000000000000000000006ff097bd87ce51c0fd15db018673bb67cc0991ca000000000000000000000000a78c0c839ecd0d34263dd87035d6b74762feffd3000000000000000000000000d4676d016af03d7ceaf5281fad2cc606f241a32e0000000000000000000000007c1bd68dc078b2113ce867ac07ed898d044787d10000000000000000000000001628562483c93462d2a22d615d4d83a1dfbb1426000000000000000000000000c47b3e00dc0b94789372673cc9bf65ad1ceed3ab000000000000000000000000964ed78baaa44e4db3b2ce291b2deac5cc4b18210000000000000000000000005b9253041c53c494c888cc6bfd5f77ffb96c91400000000000000000000000001f9b9b580315c8790c9ad60b43c8c410a8aba3c9000000000000000000000000351c9297a85b3537e358a17d682008e6e78af9b9000000000000000000000000399cf1ca9b8dcc369ee3bb2a6516144de43e506d000000000000000000000000ed2b5b2aa27fd631f435286a01b5cf6aa94520600000000000000000000000008d5ccb11e92b08f163b8e8641c8242ed436bdcc80000000000000000000000003f48bc1debe6925f3d14eefb4af237e4a7a1ceee0000000000000000000000001e44bb849975f5b3d4dc9204ca8c5bbfee5915fd0000000000000000000000000143cbc9206e6a32dc06e526792a49b4b92ead030000000000000000000000000ec061d7eed1022bc12a2daacfd6f766654bede90000000000000000000000002befa876d327a00e04cce02a41505a88e1aa9d4e00000000000000000000000026e548ef3b5fa252fab382dc0bec33637be6f0d80000000000000000000000004e9b47c6d3d79eddb681a2bfd71fb05d796498a90000000000000000000000001e89a49487a5728f6c5255a9722d4aac498606dc00000000000000000000000090f9e7ce9e4771fc901481c37a286e2543907d4f000000000000000000000000f3bc4f290fb281caa77399ef708efe82746a8e9c00000000000000000000000069a058aa57781fb832951206804a41b23a20492c000000000000000000000000525950301f8222189b47000012eb6f74a17370740000000000000000000000004bcbebcd29a8f73ee7b2be81ce926f33e30d511700000000000000000000000033b2e84157a2d087b582efbd91fc9dbb5d97022e000000000000000000000000d8fcaae329180b8a49ccc0b91e8100ba6011142000000000000000000000000018ab0086b373b066dc0d211dfa565ac43bb9e5780000000000000000000000007c185f7ea1dfd3297d95a87aee247a248ebdedfa000000000000000000000000d152926beefd40caef59040a2144980e481a59e30000000000000000000000004ec793ca699c4913e12c89c538ee7915b8afebfa000000000000000000000000d31572bb08146d593d09af0a46dd6621dd2903ea000000000000000000000000d93e2a5f280ff03e6029f2524b81488350aad5ee000000000000000000000000092e6a22f0083cb40e08107fa28291b655eb934200000000000000000000000074ba88baee2e66b8f7c9308eaba8858552bd1ce5000000000000000000000000a7f39ab40c2cb2e7fab679d81aa9f2ca6b7ebdf10000000000000000000000006fb1e33bb029f74fb47b8df20fd5c805e0a37d05000000000000000000000000ab79ae5388f0f31721c4beed8b4b36c5a581eb480000000000000000000000009deff269b22849889cae9a965769f576a1e72d2700000000000000000000000017597b968f8a8c792ba92f92f71be686785ce0180000000000000000000000006015befd85b0412c703e2b6b29b02da9a2c1b30e0000000000000000000000004ec7dc978149d6bdec97fd202d2e7d0fba895544000000000000000000000000bd8570663f58fbd51ce6f98b21594efddc2bf9ae00000000000000000000000035b33f520c7ebdc26c5f33af6c6cb3dce58aa3fa0000000000000000000000000a14ad941ecd8042a8f2661fc1d929cc0be7a3950000000000000000000000004d4e60a66195197e0e45a77b03fa7ac3bae68832000000000000000000000000ee1a89411b6588c415402cedf988c7171695db77000000000000000000000000972add6aaf83dbbad455278de2507280ab6322600000000000000000000000009a9d98f94748fe0b709a3b78823858e763f1722d000000000000000000000000bcc6d5ba28b7632b7827704448fea9143c41d9600000000000000000000000006d5d8ea644f879411df87e23fe078f6461673a2c000000000000000000000000d9a0a16e5a634bf5a02962b667f17c65bae14086000000000000000000000000eb515bb2aedf8323111bd2c3b6d88142e7103c8e000000000000000000000000908135a9d1a7aa1e6e5a844110ff20f2f13e6839000000000000000000000000a7bf2712349bd3dcbc0cebbf49fdd2449077d744000000000000000000000000c83f292f12cf02a29d7d8154ba24a96307350dc9000000000000000000000000fb92b5ebfc1d08ecf5dc285e63ae6e54208ebe1700000000000000000000000000967eee711ec809300d864aa8f2d37472d53c50000000000000000000000000aae4ff8f49e1509ccb6959cd464477231e1c9ffb000000000000000000000000fcc6b1fa966290836ae98667f86c1fd49e5c1706000000000000000000000000a200369d36d9a1040bddddf7f83995220e87211c000000000000000000000000f6d25cc2b033b70f5749039fc99a1eb6b58cd52d00000000000000000000000087fe0390205aef00cf88d8db9f811768887bba4e00000000000000000000000045e9105e61a2455af444f503aa416c11d34567960000000000000000000000008b154dfcad9268c4ce0249cd8d5bb1f5e619e35d0000000000000000000000008d6627e0cf014d2db67471979a18b812c1e1517e00000000000000000000000038fe505c4f58b4649e18adab6e5f9d83fcfd943d000000000000000000000000734da2175ba348e531f9947f0fa18c7feb34f8890000000000000000000000003cb39da1b50fa8573c9557496968c52a87e4eccf0000000000000000000000006f7cab2f48ecf2d537f118ebe9530a4d68596201000000000000000000000000b373eba1752d83c428590abd73302a9f84aac055000000000000000000000000a675dbdf8e0a06c4346d5adbb33d3d53a18f9b600000000000000000000000000f12519997020842b86aa351fc9a82ece62b12be000000000000000000000000f064fe3437346b288f518cccf9b95d760046aeba0000000000000000000000002fdfc5409e99a911a6466f361f71a56d74bef27a00000000000000000000000009598bad0bdac58f98c2c17efa6f5d0100e5846200000000000000000000000094352d84298ed59d8c19edc7f8f513dd8b2ae0380000000000000000000000008e44c406c5bb7e78f2965d99f275fc02a39591d400000000000000000000000017f3187bfe1000476b9c3497c0b6b9e089361d1d00000000000000000000000040590179e5e8293f03ca04f93ed85e51d518f057000000000000000000000000ccde0e7bfd320a9469c0d6d38723bd14a90a15b70000000000000000000000002261eb0f2667dd2cbc892c467334b9e7f2ba98a40000000000000000000000002d6beea57ddecd4c21c99ab5bfa7b0bcba5aaa8f0000000000000000000000003125bbe44d15f2ebf4f5e52d7d7445652c01d28a000000000000000000000000b5992660d27dadcc144314cf2bf0e1ae97f6f965000000000000000000000000f256665490a66fd7074916acf98eaca4fc2cdee00000000000000000000000004fec0c2786d6cc87aeeac487c6706cd31b73c4a1000000000000000000000000ebcff99858a44049f4cd92dee10986c56b8c28dc000000000000000000000000dbd672ecf4d0224ebf221885572fe1711d97939c0000000000000000000000006face1420a8683be8341a2f43e29469199e54bee000000000000000000000000ab1524c9d4b257f961f42ab1cd07971c161693a60000000000000000000000009d4ba3bdd88de29f0ccb159b0b35fef0f38950e7000000000000000000000000ced7b72c9d1a326889e7395fb2cb2d4a325a722d000000000000000000000000bc1003870a1e87a4e7396ff1a49b5e9ab3fe7b0e000000000000000000000000caa2ffc857e4376f5aab145666ae259b0be0f879000000000000000000000000491ead6f489d20ae69f8df70a4a8d0c73975ee4d000000000000000000000000470b13f1fab3f111ad4113be197a354c862843d2000000000000000000000000a7a6ff102ebc2475289e693610892691cc3313d100000000000000000000000098f0a66f12f43c20c54f38a66fa1963d6455baa2000000000000000000000000d56a29dd749b1c1b8bc16cb5b0ced51090d468c9000000000000000000000000175dc92d3bb4c2ccae82004096efaf0c090be7d0000000000000000000000000c38346e133959e513745a501c12a7898d68ef6a800000000000000000000000066d8180c6a35b0f68c2c9941714ed590746df6e40000000000000000000000008ee0d8db6388b33a9288cc43c9bc9ebf7737a1ae000000000000000000000000d6207496afcd05c2ac48bb7bb1bc3b71037c5756000000000000000000000000ad1beedfa832593e42c0222173423d774912f7e600000000000000000000000039c262809397aa397dd355ecf90242c6c9cfa9930000000000000000000000002da2b1567ccdf89fa2bbdf18a9d8479400e86e2d000000000000000000000000aa070096a3ab0115eb454ee4f17298a393d0c1e90000000000000000000000000222ff554db6c5b978d5acacbc849f5afc036085000000000000000000000000aafe96d382ed5821644e309b2caf49fb0754f1990000000000000000000000008dca893df421e7a9559c9de3a2487b0e07da5ec8000000000000000000000000ae788e48ab19b3340c6bc8af4e29595f3cae8c8a00000000000000000000000080e34c5dffc9c96cd90a04b8d0d021c9f13323df000000000000000000000000b95947a053fec30af9e7dfddb2a437ec272e110c0000000000000000000000004fc429d5b7538a5f093d699f8c3af294a5bb03b1000000000000000000000000df530b3b421d3a2d828ad6851bae963ee63c148c000000000000000000000000d7af5ea14fad145b2d9fd57e321d7bf8301980b50000000000000000000000009eadefd54836a6b25c838d32d6d7cb9dab85f01a00000000000000000000000080b8fd7a9db81a99e73cca1128bb79745c214af80000000000000000000000000c8cf45f4dd7dbb70cd7ea4c0779292ce17e1f820000000000000000000000000f6929e178471f7f03f3051a7ec6e4aae2c5bd92000000000000000000000000e14f5db0abd01e1682e6df5e65f50083fa3cb538000000000000000000000000df5d9e73614a14423030c53984c0e405ca505794000000000000000000000000d396e6bb568ac710d233edb13aacce5cdbf457d100000000000000000000000005f558e1a876fc4a26c637dd57b53d2a7b7dd2a4000000000000000000000000a47e175eb6269fbff4b2ea17ac0db229235d54e5000000000000000000000000323bad741208e02e09afb713ce323c7be45248ba000000000000000000000000562dbe00e61e5d947a2bc2ef3d420c7631ed64bf000000000000000000000000bc699cbc71fca5f9744a23ba9abc3012a5d5f0ff000000000000000000000000b77eb7b5703bb25f08f2f25ab59662ee6cfcd276000000000000000000000000f4813754ae0d94bdc5c530a82785881e7d6d5ba2000000000000000000000000440007add1f7d9a965b4aa940752ea59d145bbdf000000000000000000000000ab69ba8247be4fab97de4d25b3f8b96c2170cf0a0000000000000000000000003c7682ab15d957532b2545a6671daec62320f58d000000000000000000000000425c819b99deea7f05fee03f470889f2b77aea390000000000000000000000009ceb9fb5a67a2294319001dfd8ffa805fa8dd9df000000000000000000000000c21ecd29a0d4699c729552702ab8bd9cf562829f000000000000000000000000f33797902a452d02f06d6eef1adf7fce8963067800000000000000000000000062db4a484339b6e36b05837e6dba37ccaca657610000000000000000000000009c9c28ccc2dec1d7f0c3f772edf7eaaa62d753be000000000000000000000000973d32eb15d492cb560127370c58ad8272516cd600000000000000000000000092f9629f7de897defc811c797101ac7b76a09bf7000000000000000000000000f894b9ee58654b206296f5897132b2ca01c3ea6100000000000000000000000035ef738c1e10d55cf4cce953a273f1afd81740990000000000000000000000001c745e1aa92cf2df858ed48c13098a6c9bd4e7f4000000000000000000000000dd47e92829c6879e3985502ce7d879a370c22cb10000000000000000000000009e3b0419c02799b9c448802c093a85870a54bb6a000000000000000000000000f8074a01acfe268d1e2794a81c9fd499116f5d5000000000000000000000000064073b1ff142a711e726fd8d50af95573e27b11900000000000000000000000083004857ee927864a72de1695253be177b2cc5f1000000000000000000000000a8e5ed7f8c0d7e37b5ceab6fcbe2d1e5a4e997b20000000000000000000000009551f723aa830f0baf8e043349661241885c5230000000000000000000000000061a501f2f742e5d33ff5a3d5e04d1541be051ee000000000000000000000000d1c413ffc53dacaa9f6ca341cba6bdc1df3272ea0000000000000000000000002086c74f696aeb8f736493501bb2ac2343346519000000000000000000000000eeb93c705c52f2b6595706b5bba0ad6fc5f19fe10000000000000000000000007d0fbe2cf94cbf2598b550636b40313fe098792f000000000000000000000000de1d55448e4ae6468c1f9395ebe98442b0f39a67000000000000000000000000e03c202d4a3686739653adb2c8a7207f8693187400000000000000000000000065066df6a7c0b0332b570ee5c1959d608fd53466000000000000000000000000687a78291e1d4c07003f3daaf3475441a994e28800000000000000000000000052b875659b28885c05762097201cf8b20092d17500000000000000000000000032d897232c74a68fb781d181de9bd6529554449f000000000000000000000000bdabea0c1fad23526d9bea31d97624b893feba6f0000000000000000000000007af06015c50daec67fcc9f9d4da836b0f2c033460000000000000000000000007817e0f3877b86371f80746fe2ef186df1807e4c00000000000000000000000025e886ffa79e1e054a80851b81fec680c4b918a0000000000000000000000000cc0f40373dcf44d429b14891d9594ca8190298c2000000000000000000000000a03f7b8e6adf87502080aeb662192d5815feecd9000000000000000000000000770113c6b64fcc68bee5418232e4b61b784933280000000000000000000000009da7933e5edb826bbcee04920a6946c6362442aa000000000000000000000000b591f6dd55e67e2fb424376651ff237eb79206b7000000000000000000000000bee163867a45a85885bbfeff222d1b3d67441f650000000000000000000000007eb90c251fc75be71fc8183a5f680b05b14aa6bc00000000000000000000000007fb2b104759bd8e17deef07213aa9056f282786000000000000000000000000f1860d19f4b14504b03dc50f060f99370400a99c000000000000000000000000e18155c63a2f6a8b765a6c78e3862889f5cc93c80000000000000000000000002cb50433fa3bf17f566920b1ed841c935e288a0f0000000000000000000000004bd0e685140583750794cacb4b8f8ebc5a862b1c000000000000000000000000991fccda7e3b454213f0c5efb86f335777c4ab850000000000000000000000009b97fbb99f7efb3f3098eed5dfea04eca6efcb180000000000000000000000005e4cc975e6f5b288c285844078723ad8e0a2017800000000000000000000000048f7bc37d162c426c41d3ee7ac0f00b4047ede6a0000000000000000000000004e709b1c6261cb94e881f80949b6e73632004069000000000000000000000000ad7143f4e9c06924c2c9a507b1e1421fdaa9622300000000000000000000000070e839d353d7a63b8d8fe31fe15ed9bad2d06268000000000000000000000000a39f4d0b7330937ff7af41ebf0f601eae7e15a94000000000000000000000000891c646e6241a643447736142715dd26cea98df600000000000000000000000066d107a1030aae792845a3d06303446ecdd9188300000000000000000000000005cc45df3ff22e486a3ecffd7c3ef8fdb087e4fe000000000000000000000000c945795c0eaab92fd63ce49d70b61d77b84f52ca000000000000000000000000a725696b13e93f39ee452241465e4a1251799c490000000000000000000000001eb43ec6de654f2b528dcb661376fd1fc2260e10000000000000000000000000ecad4d1a58a666989062530398e82f3bd38b687b000000000000000000000000e6719ea90e688de2559a1702fc945803892d7266000000000000000000000000c0007d6dcd1e5d8517409a4c61f278c6798807c80000000000000000000000003884968ca02eb4aed7ca9276af3f54c4e7a8c98b000000000000000000000000f1a500ca1982c2291f4a3bff2f65a11529a31331000000000000000000000000e6a37c6afb7a6e19a46908acf98b71c83783d6670000000000000000000000003e861e1ed53e329a8594dd14647679ccd80d99bd000000000000000000000000d9744cd4aa86dd1b338f02e00ae02c3ddfa39d1800000000000000000000000037786115a2cb70f7ccdbeba2a9decefafdeb4a43000000000000000000000000349eb68d9435b1c40a159943fed079a9ec3077c0000000000000000000000000dbf5c6c55ea1b408b57d00e0f8b3bffda08e1e330000000000000000000000008188af55a4c4e8b28678f61ff14c34f649ac084d00000000000000000000000087a34874fa707f2fb9385603d21ca6daa8337be7000000000000000000000000a79562bc38b775aabddb83c58a49c1383f542fc8000000000000000000000000450c4e566871a7ee86e35306a1adb131111869d00000000000000000000000000bd954cd2108f667d3c3b2e3b23a8b1e70a6af360000000000000000000000005a43991d77333af2e87dc23bd9105c2ba8737b4e000000000000000000000000a2645ef7c9a0dd305b25bc3549be80c717b3d514000000000000000000000000ab533b5ac3011679c11203d5acccd24fef7d612300000000000000000000000047a8ba3abdbdd2ffe9368bad55939270279ba5ec000000000000000000000000400ea6522867456e988235675b9cb5b1cf5b79c8000000000000000000000000f2ff9961c6cf369fb796b4086e53ed04d0d654430000000000000000000000004860acbc0df7569f3a15cb35431c7816c8187fad0000000000000000000000006a66c9d7016e148772e854b7f16a97f00306b6ab000000000000000000000000c272b081843ffccd02b9a20c7c921ecfe8c5c46e00000000000000000000000016669272466e69ad95e5cbe8dc0867fe6dccdd0c0000000000000000000000007f6cd5785ce45995abe2cb5681f274952b097feb0000000000000000000000000a43e5cd991852e539dacd2996ead14cb9ff490900000000000000000000000086e641ee8371ae4d499ba6cee9d855d5f401dec70000000000000000000000004acc1e0ba16f0ffa7dd369fb56d8d79063e05a0b0000000000000000000000001c4f216efa7f7702e12e5133c2001d1a82c82d0e0000000000000000000000005a078e88896710367d7a4c6f1eeb0e9af2bfe7d30000000000000000000000000c4ee08401116e07b2cf124c08c6fb360a39b9f8000000000000000000000000087d6b0d57dc130d7f2ea5ab8d3ebeb0a5c82be00000000000000000000000008e083ec6bc0ffe81a1c4d9d80b20272ca8aa8fae0000000000000000000000004594a3d3b1408001010eb76c898353d03b6ae438000000000000000000000000114126d6a665a36afbc1401f0476cb1630184ad3000000000000000000000000906213ab8781e5339d18ea071d16c13bf3e5b4f1000000000000000000000000ac2bd235baa2d8356e6bce7d173a3e5c2b9702a0000000000000000000000000f72b9a27045b0889bc685d014dd89aedc47ee805000000000000000000000000556d35e94b09c6d88511ff4aac3a2feeb78ab0c4000000000000000000000000b5b7472fe40818f8589ed85469629d84ee7a42c20000000000000000000000003cb6a397b9ecaa8d60d5b480248bbc3ab22a997500000000000000000000000055c4aaabbf82e6ad9132733abf50f9b10c9fa9d3000000000000000000000000fb7c27cf8b2718fe2b8b212e86b9a9a6a7c5e2be0000000000000000000000008029906fd001e4e8816531958fbff060ff918dc7000000000000000000000000a9762e8071ff7228257f3580ba72a0983ed46f3f00000000000000000000000021c234154ce5bb4e1edeb834e2e43d2a41920be3000000000000000000000000961b6c741631ba87ce2d51d6f0ddb7c633209a000000000000000000000000004a4efa60fdc2454f329f196691ceeb6e60f038e1000000000000000000000000b050ecb43eca8026cc91c7fbf43eae6dd1d7c763000000000000000000000000139fa9389c71f521e9e8062dd036a70645e60e5d000000000000000000000000273e2da523ad68b8913e6029fa3a492c35c067c20000000000000000000000006f4706f06cc79728ce0c82f72ed520c53473c951000000000000000000000000b22266495962759957565a2db3d28ee1fb610dab000000000000000000000000e371248984e0ba16e1aa234531f9c40ece534f71000000000000000000000000678ffc1f45a6819feb41d9406d514904b8c3829e000000000000000000000000dfc047532b45072d651f03424c4fd1b9218616f30000000000000000000000009cc4b9f1bec518858863024b637eec962bec0f4b0000000000000000000000005fad995a349278c6399e44e2d5ea491c9ac92bd80000000000000000000000005428e37f2c95c7b49a0876786a2a782d98977dcf0000000000000000000000007dbe0789cd6aa189ba8dffdc9eba7fc9d3b4ffc80000000000000000000000004f914a90a2d62f80d64a694b4068dc0ba02292a700000000000000000000000027d2b9db3c40b66524c5618377e089a1a1d255ea000000000000000000000000595aa7a3fba245d0f5b2d522aa60df781ce565fb000000000000000000000000b33e34059048dd366e3e12f924b7ca0fd95488db000000000000000000000000a4d08258e3bf3fe45b444be085c6f0a4b8f9f40f000000000000000000000000a193af2ae191c446e52a6ff49aa17368be04278f0000000000000000000000002f365aa21f1e67be790c102902abd5f1e6ef7683000000000000000000000000294ed8d68804a98e814356741d886b29db7e41cf000000000000000000000000a64e6d26f344b45ad211a3d33a150e2edc8d42d7000000000000000000000000dd8449f0660d702da0a7d5fd807b53a8c6d454c00000000000000000000000006314436e9118d315ed665127e199c68bb04bb7e4000000000000000000000000b66cb21e265f94fb11b9975f537eed33c0e818c100000000000000000000000054dd4fc8fa9e85904dd62e2daf023c213452a2a1000000000000000000000000db093e39fffe5e9599d8ec95979b63f63c52ed7a000000000000000000000000102253fd1c46775fccd4fac65beca04b06157c980000000000000000000000004562f3fa4c9bb02148181a28b04b1a7f5df476e6000000000000000000000000fdc4d20d8dad52b2613d4badc6fd4e64592642a300000000000000000000000070ec37d94367ce892347e2972697a72aef59f1b0000000000000000000000000f7ebfe9c6cf4eab3e518e6042c7a1802b600d8b9000000000000000000000000c50b8553f15a08f262204513e738821b885654d8000000000000000000000000c0dbc44db7d9f07b919932fb9415d110306409310000000000000000000000007389ac4efd828062e0c4a1ad453072d4f59313c200000000000000000000000007951bcf8912450486501795a98c2a2d594fc2230000000000000000000000008a723408d92e41e86e379d6b8f6a4dce0185642a0000000000000000000000003bff4b16e2c71215e83df554117d40a5f5bc2d09000000000000000000000000719ee15e09a7ef088314710269f00277104b4ff0000000000000000000000000b52e0ecebdfd4f847dc019ba70fd0cc92ab59fc60000000000000000000000004944bd8c5e463e9d5ca38bc44242e216dfe80dc50000000000000000000000003a84102f0952c08df4ed58bb011c23d2eee9a9300000000000000000000000005789584469dbea9b1e6484eb5abe7f36d20ae54a00000000000000000000000098149d0424200a79ee0f18d2d72c4332c0dee318000000000000000000000000262bde3a026da75eab79996b99a412895c4d1904000000000000000000000000d37e42ef234c05c09965ba9e1e3f3ac61a7f03260000000000000000000000008ee53a7b24d6ea1012a9c04aaa1b1b2792bc3fa6000000000000000000000000d758075781cba9da9f999f10680f8f67a5613c4f000000000000000000000000acbd60094da973b6e795ca7c440f61ef9b01a0c60000000000000000000000004eb859fc83977267fbb6ae1066a51fb4c9086c28000000000000000000000000fceca98413f1b67910bbb0bea7c17d4b7c6efe8e000000000000000000000000d12d07b32caae5973d52ffed143dc7607bc8ac120000000000000000000000009f981188b0b4cbdb62a6a62d9bf04171a932851e0000000000000000000000000f2ace8fc2580d637c15728c7690f6ef666b16f300000000000000000000000055ae0cce1b10627ffcfaed1ca9084ee837159cd500000000000000000000000099030fc55e2b5e02eed5935592d4f262fb1f758e0000000000000000000000003e596ae1b88981e994a95069ed451bc78c02acfc000000000000000000000000221b3096a034fbdab87c8a957d056eee1ccec6df0000000000000000000000000a9073e4310d6299ab0561794ddefcfb41bb0cf3000000000000000000000000ec0c2767113d568c44283de04c0739356ee528080000000000000000000000008bd7b1f756747b2bf4ee1048b64b49f4256ec687000000000000000000000000578264fcb5fde0c62a716471f626c93677acad180000000000000000000000006f02309b819652f16af214670abc26b3902dfe4c00000000000000000000000088a218bdd10af88c0675169fb37afce526f3f7b80000000000000000000000002509b27d9a0a1cafd7af4bda0b21eb7ffa5278b60000000000000000000000001168f8464556e36ec9ba9baf6578cdb42e2067020000000000000000000000002feeb9b05c27c6547037fe83a32a7d683a57cc8e000000000000000000000000b5cb21dfe9f63843f0daaaab27aa5153dfebf22f000000000000000000000000a1372c03f10cabeaa3df38c6dfa3c3a61d240ffe00000000000000000000000038a1b57797b9d7e790ba7504660d79e604a30de9000000000000000000000000e90494334da06c35300a346255c5133536584c970000000000000000000000009fb76fd33e685b77b0f99e69749b1529a5da74a50000000000000000000000001ded7d0dc647c186d99bf3de6cabc6cf0f012315000000000000000000000000cc3dce1228acc2fc9a7c5b711634f91f1ef0c53e000000000000000000000000916f05d61f8b7b976e024410cf046734764a33c5000000000000000000000000713e42bb87939e709c2df47b6b7bace4e07f90cb00000000000000000000000007e275dac2ea86a5201f1d9a245cbf9988bc9976000000000000000000000000a31f9730149e37535f65d4a77e2743160ef9ea27000000000000000000000000329934040d2396f0a2d57676340e6f21583b1d2e00000000000000000000000024b7b2bb5c860e82c64894abf61d02d3a930466e00000000000000000000000090e4aef56826e14c39fe5baf5ec7c70dd41408c800000000000000000000000096f4b7bf2d584a7d53d31199dff8f8f3ad2043b5000000000000000000000000d8b276df19c69c05c3b7e742e1e8831c297c4c97000000000000000000000000ebc065e199b9f1dfcb253e3a542df30d4d58d328000000000000000000000000f04b86c1ab6e8d2b8023638cf4d8dded0cbc51ae000000000000000000000000919c659b4c78cdfd0ef467207f8aa315c427e34c000000000000000000000000d6529d312e6aecf87e8976865a30f031f7758e25000000000000000000000000239ff9c1483910de885ecf6f077e11edc255d31a000000000000000000000000ce4f53f02e3255533ad8f6b1dca489c06cf67ea10000000000000000000000002858c497e203bf2d519e7954a2a9fbb569f6a17e000000000000000000000000880ba33cc89bd5071a7f7ab07c28f51bc65f4aca0000000000000000000000002150443ab0bf8cb2c10a5783a32e6d630ee41ce50000000000000000000000007e1d2b944c96d47571df8bda10c6281fda1326ff000000000000000000000000172ee77b829c6dd399192cf342cea9ccfce6bfcc00000000000000000000000048724c96e994e9e8c68c80035f294ac38cf45e39000000000000000000000000c0376ae87672dd9cfab983e59cf7a098739ed6c3000000000000000000000000d6aac01503f0d12431a2c418048dfd09b57377b2000000000000000000000000643fe667b63cba773eaf5c5f335a52633f6429ff0000000000000000000000004d452a32e50d39814dfd9d1f2157a86d8d99e654000000000000000000000000640e856761365eadf6a1289c6ef5f4868db76abe0000000000000000000000007dc978363a925a0a01dcc020a332796618f9ed9800000000000000000000000025564861cf29f1673a9fc972bae11efdc386a02100000000000000000000000033c1f661993696fdc5a5621016f5360e282ba519000000000000000000000000da9331bcb0625d2a2c254280ff42418316c758f7000000000000000000000000431e875654d4787dc1188b544dea602bfe5e26360000000000000000000000000f49466ec8b578c6ee173f547178eefec784b218000000000000000000000000cd186522a1624e16e2bc2b4378cd99192f3185d800000000000000000000000005c12b24cc41aaa3f984e8967e7dc76e025b251a000000000000000000000000dfffaeeaabf1140d1ddf98a7138b96cf1e63a08b0000000000000000000000004d7aea98e0e51c852e5bda40eda72de911e3f4640000000000000000000000000ab1716b61dd2860fbdd5027c0ce52a49eb74aaf000000000000000000000000b87cbc66f4e2caa4a583113c39aa436905a34d7900000000000000000000000022823d8d25ef69ecd09051ad197003ffb81cb90d0000000000000000000000006c88b047764b552b6f9819572d7ef65951186d24000000000000000000000000da52002ddb5ad541d1559466fd7505c562480dd8000000000000000000000000c2dcf1c47f4fa0209ca1684a4f303ed3d9d5156d000000000000000000000000f79bde72b8cac1affcf760bb597b2bb48c705dc1000000000000000000000000da75b6a037144fa5aa4c3e89174da87a4cee33e200000000000000000000000094b0f482eccfbd7b8544c4b6030332acdfa1b9b600000000000000000000000058e698c822ea745e022752357b4b74919a7f63bb0000000000000000000000006672232ef30188b2d42ba940df86a3466bcf87100000000000000000000000000661a112029ad286555d557580135c082ce18b400000000000000000000000002ee0174d5560be42ee4f2f16006d2a3c3c98c9180000000000000000000000007bf3a0e1456b5d01ef1e92392b883896fa87d7fa0000000000000000000000009895e2025bcc648c00d77b99d4f49752d47c48d8000000000000000000000000541f7cb56317d60a4a541d86d918cf54e2d98c52000000000000000000000000ac1f4db92311837bcbb9f291150151d69377d563000000000000000000000000ebee0a735d84c0e4450ae89d7c9ae77431897e7600000000000000000000000068a7498a3b4d3411a2b6dd2151c3d6c8cf8f4620000000000000000000000000ce6e05033f0d3efaa5a33c715acf9438d1004865000000000000000000000000509a99981b712cddb497439a6e4f3c85832e3367000000000000000000000000457302bffa721a2f7f2610937a7024ebb3f15f85000000000000000000000000d3cc17eb62697f648ed42fb75cfce0d35a7715de000000000000000000000000115b1802f63501855838913a38662fe1f1251bf70000000000000000000000009a13b0ac9a02afcb40c88b973c0a5ae0aad071c800000000000000000000000021245c5e0e7f12c61eb71e907305f47096d3242f00000000000000000000000015f700b0f42a10a69ac81a5cb85c2f9eda3e083c000000000000000000000000e1414813ba858c1874866c5a617bd39aac0541100000000000000000000000003bb90a5c2022385f9f34e39bfd18d0217421e419000000000000000000000000c7ba33bf5f72016b081b33dbcb12865efa3d7b4d000000000000000000000000e3723ed2a414fb1fd29f1a96de06fb59d8b10687000000000000000000000000ee07d70648fde964ecea34d1dceedec7503d7f28000000000000000000000000f5002a6847d434aa8e9b73d9339fd3de1456af540000000000000000000000006cc4bcca5c136a8e9d2880c55d3c13b715ba75c30000000000000000000000003d58c0a21e7e12ec4aacdceb423f2970088928b0000000000000000000000000117115561576a3641338c33c0164fe545927e425000000000000000000000000292477d467c9e26ed443c3b7491074de0428dd3300000000000000000000000098e657790dd0e4a0817936d9060cba60355a112f000000000000000000000000837eedfb3127ae0cdf3167f58850fb08aa32c8da0000000000000000000000009e86aee9504ee524f8fb7b7217682888f660ed1f000000000000000000000000eda7f4ac44602c093a34e4db81cd0daf8125f816000000000000000000000000d1ee97f39a0150ed893e1a352b3e5e9a3c61e06c0000000000000000000000000b413d400a0f0dfa355abbd4c5ada46a012375200000000000000000000000000c2ba7d2f29b191b76314bd23dc40acedae339af0000000000000000000000003dba1b337fd8bb70961088574208ce4dda0d286f00000000000000000000000060627ec96ecdb80cffac9c45093dfc26e221a40a0000000000000000000000002258ed0d58be79d995bc42f48e6ac68695cd0f9700000000000000000000000068f8ef1792689006d7c1495ffa0c6e05f8fdf1eb000000000000000000000000a18054bcf91e39add7826fc03de1669dd9f6a2aa000000000000000000000000854458aa178223c2fe2e8201e479296cacedbd8000000000000000000000000036def8f0ac235fd911a720e779e51dff85a0a4fc000000000000000000000000c82312874814994e21779a6900ea4f2602a6fe34000000000000000000000000a965a9709fbbf1ede317cf23b407648af9596316000000000000000000000000f509728cce4d6b9f222125e5d3563b0d23fe62ba000000000000000000000000f1458cd0973528b4b4d7331c163fb52cdb11028c00000000000000000000000064c22eb4ed453d96462602b4c499b1c6c02baf24000000000000000000000000c83f5ac04da5f9b79ee71ebefb100d14bc2c5b760000000000000000000000005e13e899332445051444d85ff7a74e23f524ee80000000000000000000000000197f025e23d0e61fb8351dd0e3802d64ca8effc50000000000000000000000002315149fd1b9bd3f25d03c6416b2e9777787d10c000000000000000000000000da38c543596b7e1b79ad0ac2c7797adb914ea3c50000000000000000000000002a2580f391088b45dea8bf1511d3e9ab33bce3ba0000000000000000000000009b92ad474a91006569c30d682ac33d63033a28e400000000000000000000000048f3dcdeee76f5922c4add6fcb99cde2c3dfc8d300000000000000000000000020ee7da46251bfda05432191ca1024315e79ffbb0000000000000000000000002aeef1082e4456cd146799c026b2e673813639dd000000000000000000000000708e50da4d4d9ff67bf815aa37a8f8b8da9233aa000000000000000000000000cb5bfd704af45400337d5bb3437aa52ff9dfb53f00000000000000000000000057156fcd264e79718f92fbc2a9177742f73e87b1000000000000000000000000bb65b81b91026e7040a4114a57fc52c9ca58a5e00000000000000000000000002c5b3eefdbc52871028ccb36a6b0af35664a0ded00000000000000000000000078fa029f04251cc810dff72ccc7b4764dbc16899000000000000000000000000205882d8f8c220a166894196dcdf52221d371e79000000000000000000000000df749c7b1d75eb198ae8720b67bc0e29b238c57c00000000000000000000000089d3e1a21888d918a085f18d15765cac73d3491c000000000000000000000000687f0edbe84d21171cc210fd192c347adb5d522f000000000000000000000000e69d34cb7aa746005aced88f580aa663ad13cc2c000000000000000000000000624260517cd02339cc41525f05fb7520ab11fc2a000000000000000000000000e07dccad61212aa022811e7f191b1807303068ed000000000000000000000000206b44cb741271bf515356babd729e3bd8b457a2000000000000000000000000da264514ac9b13a5c6d547e8803f97d8cda61596000000000000000000000000fbfd253608f1c96f65969d1d68597453e08c6230000000000000000000000000a24e06f53baae8e0af768d7061db17430e62ce80000000000000000000000000206c44a4da3cfde2f65c5a68bb07ba68539ae7be0000000000000000000000008468e574fb5db6e27950c8c810120d4142235983000000000000000000000000d0b80ce58f314bb0282bbeacc4bc0be5265e98c0000000000000000000000000b6e5ef80f496732d6a2bf9db4b0f35d6c97012ff0000000000000000000000006ba6acb7ee108c68f6dd36235b1e78c6cf4a0c2e0000000000000000000000008b00638dc0bfcdf4ee1cee7759124a9bac88552a00000000000000000000000069c5b8837f37ae3cd4bded366e274921f03c5368000000000000000000000000a1736401b2f2f44f53192f0bec17a06992fa0a5500000000000000000000000001416328522cb218bd1bae8da6927c65a958098d0000000000000000000000005f2f23f750eec2eedf55f3a22afe3db1c52cde1a000000000000000000000000f6358fb3bc61f70d56a47e176b6accea2035992a000000000000000000000000114e6758ac4d2e2b24b215db058237287a5100950000000000000000000000004bcf5834e5855b9a5994304d61620531fd0da08a00000000000000000000000076515acb5b7f4cfa9b9ccd85b64677beced3c4d70000000000000000000000009c7eb293a5d282419960b9d24ca41c91875386e80000000000000000000000008f38268190dbb6b9e940c1cd56f458adbbd44a55000000000000000000000000ff9d38ad51dae408da8e6d29cd3c5fbb3a6ece3a000000000000000000000000681e50893310ceee725c578be3d77481899185c2000000000000000000000000795dea9077e8b8fd9a95d982147404a1452bbb9d000000000000000000000000617f9f68b96f0457248ea49ec942249861753f5e000000000000000000000000ff5aa4babf6d0e24d5d96fabe742d15b574a78e80000000000000000000000009543510d5cf81d9866316ec1222fda3086fa7db60000000000000000000000001924c794d6b6cab91a962690289afe85d0459716000000000000000000000000ce06107e6da013bc582a7d59edb510d2330b8d8e000000000000000000000000153a180d4b192012f7be569c1069a8f7ce6592ac0000000000000000000000009ca613fd1ebbe22189d530f979d0ab089ea1d2c5000000000000000000000000b7bc693f9dd288279063d9a26fa89eb192a5f0d200000000000000000000000095235fccf388ff4f643cde984f416f36ac695b1d000000000000000000000000c17ae17b5101966f5f2ddc93bff749da1e3409ce00000000000000000000000021c56dcb0243d43d28273e543d5928d2faa35c5c000000000000000000000000eb1e5374f77e431395e28f26a3fe80a55fd0d6bb0000000000000000000000001465d4b92d9eb822a2369f991b3584d0eb948785000000000000000000000000daa4d46dd8dc873e34cad34ae37625f16380cd69000000000000000000000000c3f0326736f43d3953a4f56a33be21007a950ad30000000000000000000000009816f25e95b250345f6eae2122cc94f9a23b89530000000000000000000000007c9cc94756ef50e502e0e85b2bdc6800dff41812000000000000000000000000dfec4867013d35005e59203d655dacf5cfdc1dcd00000000000000000000000070f0e321e774a8b2d1f5deed9e986a43f74cf688000000000000000000000000ba1b8eb871f2f76782dd81b907c64bab7b3681890000000000000000000000005ed72f027a169ed44438d607dff4c7025782b645000000000000000000000000f28cd679465996efe64777d2e0fe62c3f8c609450000000000000000000000002fdb53b0ba4c7fee798d629481007427b46e267d000000000000000000000000eb921c064ff52ac5cd31d96c5ef7fca16bbaf927000000000000000000000000d88fd8f87ba2f0bafd0c6f152a5bac8ebc8db8d1000000000000000000000000e8e3ffe2bf03dd28a3aff3a683b1dd27ced8605b00000000000000000000000059db03e27e40ea4f669b3bd5fbb73ed61c75aff8000000000000000000000000be1569949e37bdeece55ec58d03d66caff2bc4de00000000000000000000000053b7b89b5be9643fbcdd0d793a50e76772cfe0ca000000000000000000000000098d8aba812a86724b4e07a31718a6756d563de600000000000000000000000086d2e23e4cd6bba15b715030942b2e7de11c43da000000000000000000000000087dc380d1da603a9ea42221ad925c00246433db000000000000000000000000bad03efa26529e6fedc649f9ba2ae225a571177c000000000000000000000000296b49bc84c64946efa728976998bb59866478390000000000000000000000007fbb8a44e616eb3cdfc5acd682ef203f2ed19eb0000000000000000000000000794573e061e6ec91fdab00115f6feace061c64b8000000000000000000000000e029a052281920451f4dc3c3a892809ffbc843340000000000000000000000005e8a3017f8cf22c7d42b960ac635292c7d0f559e000000000000000000000000c74e232392cc8662ed0f949aac158cf4e5f34d780000000000000000000000009dbe9921207d2b5e1ecda9c7a78f38a4dc63d97c000000000000000000000000d35893adbaab104ecdcf055985c5c9ad29264657000000000000000000000000dcc66a8c37eeb7bea445f309c18cdf46f6c5d653000000000000000000000000bb21f1e2ce6f728e109222cd483adb671f994228000000000000000000000000c83c8916a1b9414de7f42deef4eb01917ec744510000000000000000000000002ba719cc38ced934f2e906f591909ced348a89cd000000000000000000000000089b06271f3ae08aa0c7b701b13d29f920697077000000000000000000000000c8d359cec0965edf37b5c7db0413d9631fbd8db50000000000000000000000007ec7823546cc74edfddd650bbbfb28eddde18ea00000000000000000000000003c1885378c8cc14c13d976390a9ab5f274c1a2640000000000000000000000008fe0c1eaba4515717526c474998a4ef048de60ee000000000000000000000000b92d273980ba118f81f037f8dea66ddf6e60d2980000000000000000000000008eee4596c913946bd43606a8d4fec39fc7e8e058000000000000000000000000358b937bc97bb0756f06c61b325e9ba2d8699fbe000000000000000000000000c706e0b13f2934dda029ce9e0e848360815c8741000000000000000000000000330544b31aa7b083175a3dcb4c491b8bb535257d0000000000000000000000008a58c882191a6950d427e857e5b9759535faaca2000000000000000000000000b2dd021fae8ec93029c809adc9f00b69758de64a00000000000000000000000045d7aba28ad24e63d7cc8a2820bd5f9e43d1da120000000000000000000000005283824dc1da992ab050f1f11e1ff82a68fc6ab2000000000000000000000000e2b321ceefb2df6def2c4adfe0fdb23325529e8f000000000000000000000000fb0b325d90f27f5c8512981f23c6f7f406b7b1b40000000000000000000000004669f10272474e6b71daa34dd254e90bf5ecc3640000000000000000000000005248b51a5ae489b82629707be13b4dc7d531bc10000000000000000000000000fd01bbaf585d777a6382d06efb7be594cf7d38b4000000000000000000000000ab963c501ddf83f0b58d2c3aeb4d8224cc0d14c400000000000000000000000087ce9c8a157ce25d91e0dc57243c4e568a61fe4e000000000000000000000000c3aed72a4eb0271bdcd18b1a490499a983e6d9a4000000000000000000000000a1505e511cf6cb413a302c1e75968b349e343d770000000000000000000000001ed770c21c8a46562a0cc57e42dc105c45f85fab00000000000000000000000097fd9f29b44695573b20e0ecfb9ca12807030122000000000000000000000000e935448c28c081bea19ef833438ba5630dd8d554000000000000000000000000077b2c100b8714648f6f0e69cf9cf7bb01c305b10000000000000000000000005b5a6ae20cc6fb2f8d702e8f45833fce9bce653f0000000000000000000000002019189f256d77be1596c788488be2697f765858000000000000000000000000eef7f7767963576d37091408fe78af25a5c350e4000000000000000000000000169c7c34142cff8223040f8dd545d7300fbfe3ef00000000000000000000000053e6e54d42451aa85b67411f32eb4df275a5960700000000000000000000000033cf4977eedae8278e3c0344df3eb86b3c83480f000000000000000000000000344493bc265c494016453203c6dcee53b72066a200000000000000000000000096422ae2c0738a8173783268660da4ba1f20b96b000000000000000000000000da1c31fc8e9f7bb881e578f65ff304203ed80b83000000000000000000000000c9f5299ccf3335b7a9c9e6d2ab3a724056a7cafe0000000000000000000000005305d68c9290aa087a516481b2d2cc49b52141560000000000000000000000009ce8125089a3223e51ca772d69057483dd6f020f000000000000000000000000d0a35fe2813b7a31ad834b9bcb8482c45886c0f700000000000000000000000064241be80ee10fa0a2dff64267f6f8ac7b384fe8000000000000000000000000653181142dc87d1bc4a1b7849604d4ba510a4a3d000000000000000000000000c5e407847656e565e90f7723a7f14c384c1069b2000000000000000000000000f02d2149b3ef8b87bac85f580aafb85441155306000000000000000000000000391b6da9c61b077e76a42d314cd8aaaee1d6a77d0000000000000000000000008b29d8e15ad9e8b81fcace4dbbe4728c86fb0994000000000000000000000000d2ccd2b9b210965b2e03555366603b542dbc85230000000000000000000000001f8231ef50e99d361b5252a24ec2ec44285367e10000000000000000000000001e8ad123d9dff38f57745fb2570c0c9adfed24bd0000000000000000000000007fed03f9bb8c83b38e825e7eb5569b7253f28f98000000000000000000000000b7e928a5765399ee25f9c2e3379e88d7bc1c7cf2000000000000000000000000a52e7eddcbe96dc7f4ef8d4eb2d60c304f8172b4000000000000000000000000465a63919063585ae552f4356bf365f02bc2f17f0000000000000000000000007eec817616db347f1a2df574d40ba231e6ca3aa70000000000000000000000007750144e95462f292564d82e86ccd4137280cd9300000000000000000000000026c3ef14247b192758ef7dc14a2786a2701da67400000000000000000000000062c0dc342636b0838ec86ac9200a7c64cbd492fc00000000000000000000000048b576c87e788a762d6f95a456f2a39113b469500000000000000000000000008177578fc92e9ab1cb026b6af1abcfb2ead5c3df00000000000000000000000064a08e968efd1c50c10a5ba3f94cea6a2d1c6e3b000000000000000000000000ff830e8764b2550fd758a6a211387336faa697ac0000000000000000000000004d462004250bed9ca7566753d91418f5fcf2ce1600000000000000000000000045b77723de0c158d8e71cd2def61a0ff984507a5000000000000000000000000e9dadd9ded105d67e6cb7aadc48be0c2d45df6520000000000000000000000003bb5a214218d9f12b5acd7ab5b9b56498076a4a80000000000000000000000000d3c17af32e1d47d91ea55e107880cc27e7abc520000000000000000000000003e198b4c62cc84bf66e97c21c6ed8ab09f4f78460000000000000000000000006e30cc87180210014712adcedeb744fda0bb5dd7000000000000000000000000cc17b9a72cd3242267d50fc7a04985878ada4075000000000000000000000000044acee661740e6492ddfe36b2e1722ece47576a0000000000000000000000003f31e1e3ed93ca354b580cc83178932c8d55a548000000000000000000000000d7d653a0041621a0788b194400090abec994d8690000000000000000000000005f8d277d8a252ef402a0d361a817f3f3635be74000000000000000000000000023c071a45b98a4070aa26dbabe230cfd6e2202b900000000000000000000000016ffeaf4aed279360e12fbb5c62baffdaa377f7d000000000000000000000000c42709c680799ca52851692037326ec8c0019da300000000000000000000000090096022b8ecf8e60d246ad85aaa5f229b108f72000000000000000000000000e46a81f6bc4c3d7c38166cdf36022020accb0a55000000000000000000000000b1ab14d1bd518729ec423f8612039df0e52c5911000000000000000000000000ea959ab4f605220165e47f4983b2b0da900c6917000000000000000000000000cbf286503ae67e06fb6a58517d2c7acbba1d0371000000000000000000000000f9efc778754c1bb02bd02ba3c26e4e30e40b8b95000000000000000000000000723d93df6881fba4a8ebeb1368132c4b210d6723000000000000000000000000bcd94405c34a3faa38ecb93bbc69eaecf5e704c100000000000000000000000014f1e421756b9f1218af316fb7a4fd74518749a10000000000000000000000001f0ef0a58c5bf8ec3912d64f017cfdf0ef6e413400000000000000000000000063f9dbfe4338f4191461b3c6e95630a02f962f5d0000000000000000000000002e89237570bffa2174718a198910770ee40fa9910000000000000000000000002d946ce4dfeca3a151a7c156c17f10762e55fdb0000000000000000000000000c980962e0c4865cb53b65a91378435520d1a487a0000000000000000000000003a0017248d8c15a97bec8f3a8a3798933b2b3c07000000000000000000000000d1d41aa19768b159d07fe5e64a36ad843108c186000000000000000000000000879a6e7eb589e67e474f6867fb9e2c01dfca525b0000000000000000000000002e4bf81368e50fdd3d478c46743013985378397b00000000000000000000000089d69d17b0f595f19c4c8657593dec4ce2c359e5000000000000000000000000a1e55e3445416a0ab0e185a04595a3be9371ed3d00000000000000000000000076e267d626d273ae07af42e92ab0cf30d3faf65d0000000000000000000000005565d1bd425febbabdb574a4cb129dac139565f50000000000000000000000004fcfec92fbfcacac5588bffdf9cc3451486d9c850000000000000000000000000f2f7050e19130f942e1724920b5ff5af9db717a000000000000000000000000da04862735138ff7d963ebe1f0ada67ebc38d6b400000000000000000000000068a7d17935dd49078c165abc395bd8cc475deb81000000000000000000000000df3fb88802bada47f1a6eafd14aa58ac57bca501000000000000000000000000e2a570028d28158557c25691f4af5c3b0d5b0845000000000000000000000000600996e99c79eb9b3ed93fb0a4e127ec6411c1ac00000000000000000000000069c386c9473cd81f3c29f99daf1a53c6412d846c000000000000000000000000457b4b7ac604b4190ea27160a7744f8b02926bf2000000000000000000000000011483a493cf5fdab7a9fc365fb27cb5f394a16a000000000000000000000000c95122aecf71faf7271acffb977771a7ee08c302000000000000000000000000da80b1fb0cd82c95d85e78972f8a0038dbd3714500000000000000000000000073dcc3334cd7b111f4a3340899a3962b9473da6f00000000000000000000000096f3f3f3d9bf076313b0b30436a7823e6a60c765000000000000000000000000311a32c2af9a167cbbabb6d88efe4f9c0c3fc3350000000000000000000000005bfdb1fa1f81161ec4271fe21f5c8b2662e3f22d0000000000000000000000001195814ebded671252f277ced357dbec74cb29980000000000000000000000009ab7cb139dbd9c9b659324232bf09dbf574d600b00000000000000000000000055549b29391589c93f27c06704c30cdfd41830e7000000000000000000000000a097d71baa9eab44704eea9ff01081dffd1b8e56000000000000000000000000a7697bbfd13f737c2d77333ccd8c250150c7410e0000000000000000000000007d8373e0fab20f73a5ff4b25433a2446edc0b0fd00000000000000000000000052525a3eeff5af67e385dd2cb23b6aa986bfaea70000000000000000000000007e55648f627e6081a8505cd5e568780ce12a5f9f0000000000000000000000008e9a0d20c86d23a8200852fdec455f9d03b52672000000000000000000000000299a42e204254cfa14298ded9a9b2f570fe805c200000000000000000000000065b6f9a133a2f36bedd2cbdd422bb763e27f62a1000000000000000000000000fbe0028e8ec61c67ff8bef21f419bcf5dce48276000000000000000000000000ff7128cac9b2dbf6b31785095ba76ba4c3146f1b0000000000000000000000001269cd4c51701cfa1ece62ee8d358b16c7a047a1000000000000000000000000f35831063cb9630a95d5793bd9dc60104026398e00000000000000000000000087a427c0a3508705f7f7d0c8b90e270f4f3d82680000000000000000000000008fe27f7973fea894a629130aefa6e34a5b0a8e1f000000000000000000000000075dd3c64f87798dae2d23a38f38c1f6ac041ec9000000000000000000000000e24f16ab77256c7630f7ca7aa975fa63cf80349900000000000000000000000056e128490ddf7ca0d40470a719fab47a8ac87cd1000000000000000000000000d6a39ef7e4d2814d7536549c59a89d1afdb1c6bf0000000000000000000000005797c881d5a4bda37bd1eab4fde8eb28a5e21322000000000000000000000000831283a628f377ccf760d885968c6a0b8019c22a000000000000000000000000cad33b8948a491f5aef2b43a62ff7aba212190e800000000000000000000000040276d2b40c06db2117cad18859826f6c95c924c0000000000000000000000008ab093a6f60f8f802cefa06cc41fb9ffebd37784000000000000000000000000eb62b2e2c7524f6f899b37dddc72ac84c0b7c45b0000000000000000000000005f24d55cb7729c69b26a136e68b6d921712d82eb00000000000000000000000099fe04b8cc24e9eaf1c6e71d8bc013752e2de3b70000000000000000000000002ca94c51e900ec97c4c64385136fc7cb5546a2d0000000000000000000000000c94c889a8ba65c06a7e0c5920ccdb33f548267990000000000000000000000001de75196b6f5064537b66c9361a08d5c8bcf3dc800000000000000000000000091d62ba28ab82990dcf9b2337614dd0c773b0a9f0000000000000000000000008c3996617922c3ca288958c233141d2672b6c4cf0000000000000000000000001c269bebfd3e2930a0b192c11dc6d2458aec6d0d0000000000000000000000007a70d539f38f91aec73fd33010db377514e4b3b60000000000000000000000009a9928156986447a89f41653ece4085af71d6ca30000000000000000000000000a1d2baaa2dd95f2a50f2e33e418a36808e65fc6000000000000000000000000bd22e386fc1c6c4d57832aeea27b209733466f8e000000000000000000000000f628398cdafd94d72360f1159d1ff342f11f3a3e0000000000000000000000001d76f7cae0756cc599178e1d47ef1d46e9f08b6b000000000000000000000000cb2396735159e0bfb6f1e9aa1c7913c6141ec1bf000000000000000000000000d83ff01c5dea3f44eae2d41b12d79bb487f455f9000000000000000000000000a0425d3aa00cf20c812b828e4fd7ed01ff4c978e0000000000000000000000003d337c13f8755c202874213af588306a8f1548f90000000000000000000000007259a7e5f1fdd8d048b8b1799adf823980ea08ae000000000000000000000000968145b1a97e6bf9c347d1b2b6a7c024e6d5d5d20000000000000000000000000bf2c9843a284ded4467f43e259d21340f65d0610000000000000000000000001931164fc4115cc5a244e758879fe23448957ed300000000000000000000000070fb75e866d6eb8fa80a454acfe3f44002b326da000000000000000000000000dbcc190d7c5144c832ffea3d6ecea2b5fb2e8b91000000000000000000000000fe5d4f8e6bfdc08b5b0cacd8201d8f3aff1dbe6b00000000000000000000000047aacef91af223ee6783184fa9d6c0b4dabbe09a0000000000000000000000004159dea474e626170b60784b6ceff0a54de2d1a8000000000000000000000000ebc5e0140f5939f1ceadf5009c1f578fab03907d000000000000000000000000d5598f43de007bd1c79751cd65d7ca637f57814a0000000000000000000000008a00923dbb6c7b43ae712a1de31deb68c7636d360000000000000000000000005dd803d1a9c9182bce8593234dac5afd9f01ef4b00000000000000000000000033af77ad508b027932eb7ded6f204615c976d18d000000000000000000000000f8a7606a22f13df180348f41d5ee32a4310c8e61000000000000000000000000f59922e034abec3142f748a92b1a7826d1845a07000000000000000000000000d187bfdf291d3bf2ea8927ed096ae2caa59f2ccd0000000000000000000000000e7fb5fff3168fe035ec136b762496a98546b92e000000000000000000000000bf5288b99cde6923b947ef84b298f1094152a4fb0000000000000000000000006f009b8d79fa1b5287dece7aaf676eedbc6b599a000000000000000000000000851daf22253640768f0437f34f116bd8d36d52c1000000000000000000000000beb9999fe3334db5521c3c64ca735b4aaae4ea4800000000000000000000000001992b46350a48e7729eca9cec6c7890aab9723d0000000000000000000000000d5ec52a7b9f60d95a2d273e058b7b77e296dd0a000000000000000000000000a7e7c2de88ca6d805aec3e28b90727125533ef1400000000000000000000000065e9a5cbfee2ce93dbe10d542b07b8fa765ef0fa000000000000000000000000a9ca26cd9079aeb529dbe8e17a39f677531ec5df0000000000000000000000008c9e0f84beb56e860f586eddf4067f8133b1e4d300000000000000000000000061a88fe3b8882eb3bbcf1b78d5439c77102f07e60000000000000000000000005dcdabb4284d30c7a864cf14e62adfe83e027321000000000000000000000000a2ee40748a415837ca364afb6065504024dc7c8100000000000000000000000097f54afb50e01647bb4132eb4c00b2d8c1bf7c71000000000000000000000000ce46006c7db33a3356cc3ea0ddf52e1c35727be2000000000000000000000000546a9a88a3b1c1d3fc519d1e673f87dc17d9f412000000000000000000000000bf37a2f4f1eafe152e8336465cfaad1fda44b588000000000000000000000000b6e2e07235b295655571cf59b6080a561453c0a20000000000000000000000000287db886c189e8262946ab9f066af5063c633370000000000000000000000009d496f328952edb9e869b085df86c2a91e94a407000000000000000000000000db6307d00b414554ef0b4e59ecc44af6302fef2c000000000000000000000000c8c16c236a825f3dca939b84c1e34cf03507bbc500000000000000000000000002661c7785b87a4407a27bd2919037b2b6d81c180000000000000000000000004acf1a18191e89b406f0968fa52ba0b842e5dd92000000000000000000000000674a10e8fd1e6753d38f429cd6cf7bb1f4ba46ea000000000000000000000000b84694ac523e08fb38531c35ef8f04d9724c07f80000000000000000000000004b89910ca8ffec03795a34b3ffe9a441894e0abc00000000000000000000000096923a8882264cb6fd65d72b861ef098951a2710000000000000000000000000162dabb3bde01894a7f6360cf24d7bbfc09239d8000000000000000000000000250ad130b712f83641b917afb02c8ccf39b52bc5000000000000000000000000eb4f30e7308ee042590508c7d722d8f17c718676000000000000000000000000cc342bc3e27066a6387ac927856053819d826f03000000000000000000000000157853dff7210c2d5e21faa621be31f84b9f4e3300000000000000000000000065800785b93dee4ec20310c0ac81c75722014671000000000000000000000000a530596bc4219b8d07e80c82189fffab8b97094c00000000000000000000000045f42c655b4a3e84a87e0448cebcb948e4be387e00000000000000000000000000000000000000000000000000000000000005dc00000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e78400000000000000000000000000000000000000000000000000001daff710e784000"}}}},{package:"@metamask/test-dapp",file:"node_modules/@metamask/test-dapp/dist/constants.json"}],[289,{lodash:4855},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),f.migrate=async function(e){const t=(0,a.cloneDeep)(e);return t.meta.version=n,function(e){(function(e){var t,f;const a=(null===(t=e.IncomingTransactionsController)||void 0===t?void 0:t.incomingTransactions)||{};if(0===Object.keys(a).length)return;const n=(null===(f=e.TransactionController)||void 0===f?void 0:f.transactions)||{},s=Object.values(a).reduce(((e,t)=>(e[t.id]=t,e)),n);e.TransactionController={...e.TransactionController||{},transactions:s}})(e),function(e){var t;const f=(null===(t=e.IncomingTransactionsController)||void 0===t?void 0:t.incomingTransactions)||{};if(0===Object.keys(f).length)return;const a={};for(const e of Object.values(f)){if(!e.blockNumber||!e.chainId||!e.txParams.to)continue;const t=parseInt(e.blockNumber,10),f=`${e.chainId}#${e.txParams.to.toLowerCase()}`,n=a[f]||-1;a[f]=Math.max(n,t)}e.TransactionController={...e.TransactionController,lastFetchedBlockNumbers:a}}(e),function(e){delete e.IncomingTransactionsController}(e)}(t.data),t},f.version=void 0;var a=e("lodash");const n=f.version=95}}},{package:"$root$",file:"app/scripts/migrations/095.ts"}],[29,{"./cronjob-controller-messenger":27,"./execution-service-messenger":28,"./rate-limit-controller-messenger":30,"./snap-controller-messenger":31,"./snap-insights-controller-messenger":32,"./snap-interface-controller-messenger":33,"./snaps-registry-messenger":34},function(){with(this.scopeTerminator)with(this.globalThis)return function(){"use strict";return function(e,t,f){Object.defineProperty(f,"__esModule",{value:!0}),Object.defineProperty(f,"getCronjobControllerMessenger",{enumerable:!0,get:function(){return a.getCronjobControllerMessenger}}),Object.defineProperty(f,"getExecutionServiceMessenger",{enumerable:!0,get:function(){return n.getExecutionServiceMessenger}}),Object.defineProperty(f,"getRateLimitControllerInitMessenger",{enumerable:!0,get:function(){return s.getRateLimitControllerInitMessenger}}),Object.defineProperty(f,"getRateLimitControllerMessenger",{enumerable:!0,get:function(){return s.getRateLimitControllerMessenger}}),Object.defineProperty(f,"getSnapControllerInitMessenger",{enumerable:!0,get:function(){return r.getSnapControllerInitMessenger}}),Object.defineProperty(f,"getSnapControllerMessenger",{enumerable:!0,get:function(){return r.getSnapControllerMessenger}}),Object.defineProperty(f,"getSnapInsightsControllerMessenger",{enumerable:!0,get:function(){return i.getSnapInsightsControllerMessenger}}),Object.defineProperty(f,"getSnapInterfaceControllerMessenger",{enumerable:!0,get:function(){return o.getSnapInterfaceControllerMessenger}}),Object.defineProperty(f,"getSnapsRegistryMessenger",{enumerable:!0,get:function(){return c.getSnapsRegistryMessenger}});var a=e("./cronjob-controller-messenger"),n=e("./execution-service-messenger"),s=e("./rate-limit-controller-messenger"),r=e("./snap-controller-messenger"),i=e("./snap-insights-controller-messenger"),o=e("./snap-interface-controller-messenger"),c=e("./snaps-registry-messenger")}}},{package:"$root$",file:"app/scripts/controller-init/messengers/snaps/index.ts"}]],[],{});