gamegold 5.7.8 → 5.7.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/gamegold-worker.js +19 -19
- package/lib/gamegold.js +43 -43
- package/package.json +1 -1
package/lib/gamegold-worker.js
CHANGED
|
@@ -52,7 +52,7 @@ const path = require('path');var gpath = path.join(__dirname, '../../../', 'node
|
|
|
52
52
|
* tx.js - transaction object for vallnet
|
|
53
53
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
54
54
|
* https://github.com/bookmansoft/gamegold
|
|
55
|
-
*/const r=i(0),a=i(2),s=i(3),n=i(6),o=i(26),c=i(33),u=i(15),h=i(17),l=i(1),p=i(4),d=i(113),f=i(28),m=i(46),g=i(62),v=i(100),y=i(7),b=i(29),w=i(112),{opcodes:x,hashType:k}=i(19);function S(e,t){this.data=null,this.size=e,this.witness=t}i(60),e.exports=class e{constructor(e){e=e||{},this.version=1,this.inputs=e.inputs||[],this.outputs=e.outputs||[],this.locktime=0,this.mutable=!1,this._hash=null,this._hhash=null,this._whash=null,this._raw=null,this._size=-1,this._witness=-1,this._sigops=-1,this._hashPrevouts=null,this._hashSequence=null,this._hashOutputs=null,e&&this.fromOptions(e)}fromOptions(e){if(r(e,"TX data is required."),null!=e.version&&(r(a.isU32(e.version),"Version must be a uint32."),this.version=e.version),e.inputs){this.inputs=[],r(Array.isArray(e.inputs),"Inputs must be an array.");for(const t of e.inputs)this.inputs.push(new d(t))}if(e.outputs){this.outputs=[],r(Array.isArray(e.outputs),"Outputs must be an array.");for(const t of e.outputs)this.outputs.push(new f(t))}return null!=e.locktime&&(r(a.isU32(e.locktime),"Locktime must be a uint32."),this.locktime=e.locktime),this}static fromOptions(t){return(new e).fromOptions(t)}clone(){return(new e).inject(this)}inject(e,t=0){this.version=e.version;for(const i of e.inputs)if(this.inputs.push(i.clone()),0!=t&&this.inputs.length>=t)break;for(const i of e.outputs)if(this.outputs.push(i.clone()),0!=t&&this.outputs.length>=t)break;return this.locktime=e.locktime,this}refresh(){this._hash=null,this._hhash=null,this._whash=null,this._raw=null,this._size=-1,this._witness=-1,this._sigops=-1,this._hashPrevouts=null,this._hashSequence=null,this._hashOutputs=null}hash(e){let t=this._hash;if(t||(t=n.hash256(this.toNormal()),this.mutable)||(this._hash=t),"hex"===e){let e=this._hhash;e||(e=t.toString("hex"),this.mutable)||(this._hhash=e),t=e}return t}witnessHash(e){if(!this.hasWitness())return this.hash(e);let t=this._whash;return t||(t=n.hash256(this.toRaw()),this.mutable)||(this._whash=t),"hex"===e?t.toString("hex"):t}toRaw(){return this.frame().data}toNormal(){return this.hasWitness()?this.frameNormal().data:this.toRaw()}toWriter(e){return this.mutable?this.hasWitness()?this.writeWitness(e):this.writeNormal(e):(e.writeBytes(this.toRaw()),e)}toNormalWriter(e){return this.hasWitness()?(this.writeNormal(e),e):this.toWriter(e)}frame(){if(this.mutable)return r(!this._raw),this.hasWitness()?this.frameWitness():this.frameNormal();if(this._raw){r(0<=this._size),r(0<=this._witness);const e=new S(this._size,this._witness);return e.data=this._raw,e}let e;return e=this.hasWitness()?this.frameWitness():this.frameNormal(),this._raw=e.data,this._size=e.size,this._witness=e.witness,e}getSizes(){return this.mutable?this.hasWitness()?this.getWitnessSizes():this.getNormalSizes():this.frame()}getVirtualSize(){var e=y.WITNESS_SCALE_FACTOR;return(this.getWeight()+e-1)/e|0}getSigopsSize(e){var t=y.WITNESS_SCALE_FACTOR,i=b.BYTES_PER_SIGOP;return(Math.max(this.getWeight(),e*i)+t-1)/t|0}getWeight(){var e=this.getSizes();return(e.size-e.witness)*(y.WITNESS_SCALE_FACTOR-1)+e.size}getSize(){return this.getSizes().size}getBaseSize(){var e=this.getSizes();return e.size-e.witness}hasWitness(){if(-1!==this._witness)return 0!==this._witness;for(const e of this.inputs)if(0<e.witness.items.length)return!0;return!1}signatureHash(e,t,i,a,s){if(r(0<=e&&e<this.inputs.length),r(t instanceof h),r("number"==typeof i),r("number"==typeof a),0===s)return this.signatureHashV0(e,t,a);if(1===s)return this.signatureHashV1(e,t,i,a);throw new Error("Unknown sighash version.")}get opr(){var e={};return 0<this.outputs.length&&(e.data=this.outputs[0].getReturnData([x.OP_RETURN]),e.data)&&"inner"==e.data.$tag&&(e.isDerived=!0),e}signatureHashV0(e,t,i){if((31&i)===k.SINGLE){if(e>=this.outputs.length)return Buffer.from(s.ONE_HASH)}else if((31&i)===k.ZERO&&0==this.outputs.length)return Buffer.from(s.ONE_HASH);t=t.removeSeparators();var r=this.hashSize(e,t,i),a=p.pool(r);if(a.writeU32(this.version),i&k.ANYONECANPAY)r=this.inputs[e],a.writeVarint(1),r.prevout.toWriter(a),a.writeVarBytes(t.toRaw()),a.writeU32(r.sequence);else{a.writeVarint(this.inputs.length);for(let r=0;r<this.inputs.length;r++){var o=this.inputs[r];if(o.prevout.toWriter(a),r===e)a.writeVarBytes(t.toRaw()),a.writeU32(o.sequence);else switch(a.writeVarint(0),31&i){case k.NONE:case k.SINGLE:case k.ZERO:a.writeU32(0);break;default:a.writeU32(o.sequence)}}}switch(31&i){case k.NONE:a.writeVarint(0);break;case k.SINGLE:var c=this.outputs[e];a.writeVarint(e+1);for(let t=0;t<e;t++)a.writeI64(-1),a.writeVarint(0);c.toWriter(a);break;case k.ZERO:c=this.outputs[0],a.writeVarint(1),c.toWriter(a);break;default:a.writeVarint(this.outputs.length);for(const e of this.outputs)e.toWriter(a)}return a.writeU32(this.locktime),a.writeU32(i),n.hash256(a.render())}hashSize(e,t,i){let r=0;switch(r+=4,r=i&k.ANYONECANPAY?(r=r+1+36)+t.getVarSize()+4:(r=(r+=s.sizeVarint(this.inputs.length))+41*(this.inputs.length-1)+36)+t.getVarSize()+4,31&i){case k.NONE:r+=1;break;case k.SINGLE:r=(r=r+s.sizeVarint(e+1)+9*e)+this.outputs[e].getSize();break;case k.ZERO:0<this.outputs.length?r=(r+=s.sizeVarint(1))+this.outputs[0].getSize():r+=1;break;default:r+=s.sizeVarint(this.outputs.length);for(const e of this.outputs)r+=e.getSize()}return r+8}signatureHashV1(e,t,i,r){const a=this.inputs[e];let o=s.ZERO_HASH,c=s.ZERO_HASH,u=s.ZERO_HASH;if(!(r&k.ANYONECANPAY))if(this._hashPrevouts)o=this._hashPrevouts;else{const e=p.pool(36*this.inputs.length);for(const t of this.inputs)t.prevout.toWriter(e);o=n.hash256(e.render()),this.mutable||(this._hashPrevouts=o)}if(!(r&k.ANYONECANPAY)&&(31&r)!==k.ZERO&&(31&r)!==k.SINGLE&&(31&r)!==k.NONE)if(this._hashSequence)c=this._hashSequence;else{const e=p.pool(4*this.inputs.length);for(const t of this.inputs)e.writeU32(t.sequence);c=n.hash256(e.render()),this.mutable||(this._hashSequence=c)}if((31&r)!==k.SINGLE&&(31&r)!==k.ZERO&&(31&r)!==k.NONE)if(this._hashOutputs)u=this._hashOutputs;else{let e=0;for(const t of this.outputs)e+=t.getSize();const t=p.pool(e);for(const e of this.outputs)e.toWriter(t);u=n.hash256(t.render()),this.mutable||(this._hashOutputs=u)}else(31&r)===k.SINGLE?e<this.outputs.length&&(e=this.outputs[e],u=n.hash256(e.toRaw())):(31&r)===k.ZERO&&0<this.outputs.length&&(e=this.outputs[0],u=n.hash256(e.toRaw()));e=156+t.getVarSize();const h=p.pool(e);return h.writeU32(this.version),h.writeBytes(o),h.writeBytes(c),h.writeHash(a.prevout.hash),h.writeU32(a.prevout.index),h.writeVarBytes(t.toRaw()),h.writeI64(i),h.writeU32(a.sequence),h.writeBytes(u),h.writeU32(this.locktime),h.writeU32(r),n.hash256(h.render())}checksig(e,t,i,r,a,s){var n;return 0!==r.length&&(n=r[r.length-1],e=this.signatureHash(e,t,i,n,s),o.verify(e,r.slice(0,-1),a))}signature(e,t,i,r,a,s){return null==a&&(a=k.ALL),e=this.signatureHash(e,t,i,a,s=null==s?0:s),t=o.sign(e,r),(i=new p(t.length+1)).writeBytes(t),i.writeU8(a),i.render()}check(e,t,i){if(0===this.inputs.length)throw new w("UNKNOWN_ERROR","No inputs.");if(!this.isCoinbase())for(let a=0;a<this.inputs.length;a++){var r=this.inputs[a].prevout;if(!(r=e.getOutput(r)))throw new w("UNKNOWN_ERROR","No coin available.");this.checkInput(a,r,t,i)}}checkInput(e,t,i,a){var s=this.inputs[e];r(s,"Input does not exist."),r(t,"No coin passed.");try{h.verifyScript(s.script,s.witness,t.script,this,e,t.value,i,a)}catch(e){throw e}}async checkAsync(e,t,i,r){if(0===this.inputs.length)throw new w("UNKNOWN_ERROR","No inputs.");this.isCoinbase()||(r&&r.enabled?await r.check(this,e,t,i):this.check(e,t,i))}verify(e,t,i){try{this.check(e,t,i)}catch(e){if("ScriptError"===e.type)return!1;throw e}return!0}verifyInputs(e,t){var[e]=this.checkInputs(e,t);return-1!==e}verifyInput(e,t,i,r){try{this.checkInput(e,t,i,r)}catch(e){if("ScriptError"===e.type)return!1;throw e}return!0}async verifyAsync(e,t,i,r){try{await this.checkAsync(e,t,i,r)}catch(e){if("ScriptError"===e.type)return!1;throw e}return!0}isCoinbase(){return 1===this.inputs.length&&this.inputs[0].prevout.isNull()}isRBF(){if(2!==this.version)for(const e of this.inputs)if(e.isRBF())return!0;return!1}getFee(e){return this.hasCoins(e)?this.getInputValue(e)-this.getOutputValue():0}getInputValue(e){let t=0;for(var{prevout:i}of this.inputs){if(!(i=e.getOutput(i)))return 0;t+=i.value}return t}getOutputValue(){let e=0;for(const t of this.outputs)e+=t.value;return e}_getInputAddresses(e){var t=Object.create(null),i=[];if(!this.isCoinbase())for(const s of this.inputs){var r,a=e?e.getOutputFor(s):null;!(a=s.getAddress(a))||t[r=a.getHash("hex")]||(t[r]=!0,i.push(a))}return[i,t]}_getOutputAddresses(){var e=Object.create(null),t=[];for(const a of this.outputs){var i,r=a.getAddress();!r||e[i=r.getHash("hex")]||(e[i]=!0,t.push(r))}return[t,e]}_getAddresses(e){var[t,i]=this._getInputAddresses(e);for(const e of this.getOutputAddresses()){var r=e.getHash("hex");i[r]||(i[r]=!0,t.push(e))}return[t,i]}getInputAddresses(e){var[e]=this._getInputAddresses(e);return e}getOutputAddresses(){var[e]=this._getOutputAddresses();return e}getAddresses(e){var[e]=this._getAddresses(e);return e}getInputHashes(e,t){if("hex"===t)return[,t]=this._getInputAddresses(e),Object.keys(t);var i=[];for(const t of this.getInputAddresses(e))i.push(t.getHash());return i}getOutputHashes(e){if("hex"===e)return[,e]=this._getOutputAddresses(),Object.keys(e);var t=[];for(const e of this.getOutputAddresses())t.push(e.getHash());return t}getHashes(e,t){if("hex"===t)return[,t]=this._getAddresses(e),Object.keys(t);var i=[];for(const t of this.getAddresses(e))i.push(t.getHash());return i}hasCoins(e){if(0===this.inputs.length)return!1;for(var{prevout:t}of this.inputs)if(!e.hasEntry(t))return!1;return!0}isFinal(e,t){var i=y.LOCKTIME_THRESHOLD;if(0!==this.locktime&&!(this.locktime<(this.locktime<i?e:t)))for(const e of this.inputs)if(4294967295!==e.sequence)return!1;return!0}static mergeOrder(e){return r(Array.isArray(e)),e.reduce((e,t)=>null==e||1==e.outputs.length||1<t.outputs.length&&t.outputs[1].value>e.outputs[1].value?t:e,null)}verifyLocktime(e,t){var i=y.LOCKTIME_THRESHOLD;e=this.inputs[e];return r(e,"Input does not exist."),r(0<=t,"Locktime must be non-negative."),this.locktime<i==t<i&&!(t>this.locktime)&&4294967295!==e.sequence}verifySequence(e,t){var i=y.SEQUENCE_DISABLE_FLAG,a=y.SEQUENCE_TYPE_FLAG,s=y.SEQUENCE_MASK;e=this.inputs[e];return r(e,"Input does not exist."),r(0<=t,"Locktime must be non-negative."),!!(t&i)||!(this.version<2||e.sequence&i||(e.sequence&a)!=(t&a)||(t&s)>(e.sequence&s))}getLegacySigops(){if(-1!==this._sigops)return this._sigops;let e=0;for(const t of this.inputs)e+=t.script.getSigops(!1);for(const t of this.outputs)e+=t.script.getSigops(!1);return this.mutable||(this._sigops=e),e}getScripthashSigops(e){if(this.isCoinbase())return 0;let t=0;for(const r of this.inputs){var i=e.getOutputFor(r);i&&i.script.isScripthash()&&(t+=i.script.getScripthashSigops(r.script))}return t}getWitnessSigops(e){if(this.isCoinbase())return 0;let t=0;for(const r of this.inputs){var i=e.getOutputFor(r);i&&(t+=i.script.getWitnessSigops(r.script,r.witness))}return t}getSigopsCost(e,t){null==t&&(t=h.flags.STANDARD_VERIFY_FLAGS);var i=y.WITNESS_SCALE_FACTOR;let r=this.getLegacySigops()*i;return t&h.flags.VERIFY_P2SH&&(r+=this.getScripthashSigops(e)*i),t&h.flags.VERIFY_WITNESS&&(r+=this.getWitnessSigops(e)),r}getSigops(e,t){var i=y.WITNESS_SCALE_FACTOR;return(this.getSigopsCost(e,t)+i-1)/i|0}isSane(){var[e]=this.checkSanity();return e}checkSanity(){if(0===this.inputs.length)return[!1,"bad-txns-vin-empty",100];if(0===this.outputs.length)return[!1,"bad-txns-vout-empty",100];if(this.getBaseSize()>y.MAX_BLOCK_SIZE)return[!1,"bad-txns-oversize",100];let e=0;for(const t of this.outputs){if(t.value<0)return[!1,"bad-txns-vout-negative",100];if(t.value>y.MAX_MONEY)return[!1,"bad-txns-vout-toolarge",100];if((e+=t.value)<0||e>y.MAX_MONEY)return[!1,"bad-txns-txouttotal-toolarge",100]}var t=new Set;for(const e of this.inputs){var i=e.prevout.toKey();if(t.has(i))return[!1,"bad-txns-inputs-duplicate",100];t.add(i)}if(this.isCoinbase()){var r=this.inputs[0].script.getSize();if(r<2||100<r)return[!1,"bad-cb-length",100]}else for(const e of this.inputs)if(e.prevout.isNull())return[!1,"bad-txns-prevout-null",10];return[!0,"valid",0]}isStandard(){var[e]=this.checkStandard();return e}checkStandard(){if(this.version<1||this.version>b.MAX_TX_VERSION)return[!1,"version",0];if(this.getWeight()>=b.MAX_TX_WEIGHT)return[!1,"tx-size",0];for(const e of this.inputs){if(1650<e.script.getSize())return[!1,"scriptsig-size",0];if(!e.script.isPushOnly())return[!1,"scriptsig-not-pushonly",0]}let e=0;for(const t of this.outputs){if(!t.script.isStandard())return[!1,"scriptpubkey",0];if(t.script.isNulldata())e++;else{if(t.script.isMultisig()&&!b.BARE_MULTISIG)return[!1,"bare-multisig",0];if(t.isDust())return[!1,"dust",0]}}return 1<e?[!1,"multi-op-return",0]:[!0,"valid",0]}hasStandardInputs(e){if(!this.isCoinbase())for(const r of this.inputs){var t=e.getOutputFor(r);if(!t)return!1;if(!t.script.isPubkeyhash())if(t.script.isScripthash()){var i=r.script.getRedeem();if(!i)return!1;if(i.getSigops(!0)>b.MAX_P2SH_SIGOPS)return!1}else if(t.script.isUnknown())return!1}return!0}hasStandardWitness(e){if(!this.isCoinbase())for(const r of this.inputs){var t,i=r.witness;if((t=e.getOutputFor(r))&&0!==i.items.length){let e=t.script;if(e.isScripthash()&&!(e=r.script.getRedeem()))return!1;if(!e.isProgram())return!1;if(e.isWitnessPubkeyhash()){if(2!==i.items.length)return!1;if(73<i.items[0].length)return!1;if(65<i.items[1].length)return!1}else if(e.isWitnessScripthash()){if(i.items.length-1>b.MAX_P2WSH_STACK)return!1;for(let e=0;e<i.items.length-1;e++)if(i.items[e].length>b.MAX_P2WSH_PUSH)return!1;if((t=i.items[i.items.length-1]).length>b.MAX_P2WSH_SIZE)return!1;if((t=h.fromRaw(t)).isPubkey()){if(i.items.length-1!=1)return!1;if(73<i.items[0].length)return!1}else if(t.isPubkeyhash()){if(r.witness.items.length-1!=2)return!1;if(73<i.items[0].length)return!1;if(65<i.items[1].length)return!1}else{var[t]=t.getMultisig();if(-1!==t){if(i.items.length-1!==t+1)return!1;if(0!==i.items[0].length)return!1;for(let e=1;e<i.items.length-1;e++)if(73<i.items[e].length)return!1}}}else{if(i.items.length>b.MAX_P2WSH_STACK)return!1;for(const e of i.items)if(e.length>b.MAX_P2WSH_PUSH)return!1}}}return!0}checkInputs(e,t){r("number"==typeof t);let i=0;for(var{prevout:a}of this.inputs){var s=e.getEntry(a);if(!s)return[-1,"bad-txns-inputs-missingorspent",0];if(s.coinbase&&0<s.height&&t<s.height+y.COINBASE_MATURITY)return[-1,"bad-txns-premature-spend-of-coinbase",0];if(s=e.getOutput(a),r(s),s.value<0||s.value>y.MAX_MONEY)return[-1,"bad-txns-inputvalues-outofrange",100];if((i+=s.value)<0||i>y.MAX_MONEY)return[-1,"bad-txns-inputvalues-outofrange",100]}var n=this.getOutputValue();return i<n?[-1,"bad-txns-in-belowout",100]:(n=i-n)<0?[-1,"bad-txns-fee-negative",100]:n>y.MAX_MONEY?[-1,"bad-txns-fee-outofrange",100]:[n,"valid",0]}getModifiedSize(e){null==e&&(e=this.getVirtualSize());for(const i of this.inputs){var t=41+Math.min(110,i.script.getSize());t<e&&(e-=t)}return e}getPriority(e,t,i){if(r("number"==typeof t,"Must pass in height."),this.isCoinbase())return 0;null==i&&(i=this.getVirtualSize());let a=0;for(var{prevout:s}of this.inputs){var n=e.getOutput(s);n&&-1!==(s=e.getHeight(s))&&s<=t&&(a+=n.value*(t-s))}return Math.floor(a/i)}getChainValue(e){if(this.isCoinbase())return 0;let t=0;for(var{prevout:i}of this.inputs){var r=e.getOutput(i);r&&-1!==e.getHeight(i)&&(t+=r.value)}return t}isFree(e,t,i){return this.getPriority(e,t,i)>b.FREE_THRESHOLD}getMinFee(e,t){return null==e&&(e=this.getVirtualSize()),b.getMinFee(e,t)}getRoundFee(e,t){return null==e&&(e=this.getVirtualSize()),b.getRoundFee(e,t)}getRate(e,t){return(e=this.getFee(e))<0?0:(null==t&&(t=this.getVirtualSize()),b.getRate(t,e))}getPrevout(){if(this.isCoinbase())return[];var e=Object.create(null);for(const t of this.inputs)e[t.prevout.hash]=!0;return Object.keys(e)}isWatched(e){let t=!1;e.test(this.hash())&&(t=!0);for(let r=0;r<this.outputs.length;r++){var i=this.outputs[r];i.script.test(e)&&((e.update===v.flags.ALL||e.update===v.flags.PUBKEY_ONLY&&(i.script.isPubkey()||i.script.isMultisig()))&&(i=m.fromTX(this,r),e.add(i.toRaw())),t=!0)}if(t)return t;for(const t of this.inputs){var r=t.prevout;if(e.test(r.toRaw()))return!0;if(t.script.test(e))return!0}return!1}rhash(){return a.revHex(this.hash("hex"))}rwhash(){return a.revHex(this.witnessHash("hex"))}txid(){return this.rhash()}wtxid(){return this.rwhash()}toInv(){return new g(g.types.TX,this.hash("hex"))}inspect(){return this.format()}format(e,t,i){let r=0,s=0,n=-1,o=null,u=0,h=null;return e&&(s=this.getFee(e),r=this.getRate(e),Number.isSafeInteger(r)||(r=0)),t&&(n=t.height,o=a.revHex(t.hash),u=t.time,h=a.date(u)),null==i&&(i=-1),{hash:this.txid(),witnessHash:this.wtxid(),size:this.getSize(),virtualSize:this.getVirtualSize(),value:c.btc(this.getOutputValue()),fee:c.btc(s),rate:c.btc(r),minFee:c.btc(this.getMinFee()),height:n,block:o,time:u,date:h,index:i,version:this.version,inputs:this.inputs.map(t=>{var i=e?e.getOutputFor(t):null;return t.format(i)}),outputs:this.outputs,locktime:this.locktime}}formatInsight(e,t=0){return null==e&&(e=-1),{hash:this.hash("hex"),rhash:this.txid(),witnessHash:this.wtxid(),txid:function(){return this.rhash},ps:t,index:e,version:this.version,flag:1,locktime:this.locktime,raw:this.toRaw(),inputs:this.inputs.map(e=>e.formatInsight()),outputs:this.outputs.map(e=>e.formatInsight())}}static EncodeSpenderValue(e,t,i,r){var a=Buffer.allocUnsafe(72);return a.write(e,0,"hex"),a.writeUInt32BE(t,32,!0),a.writeUInt32BE(i,36,!0),a.write(r,40,"hex"),a}static DecodeSpenderValue(e){return r(Buffer.isBuffer(e)),r(72===e.length),{txid:e.toString("hex",0,32),inputIndex:e.readUInt32BE(32,!0),blockHeight:e.readUInt32BE(36,!0),blockHash:e.toString("hex",40,32)}}toJSON(){return this.getJSON()}getJSON(e,t,i,r){let s,n,o,c,h,l;return t&&(n=this.getFee(t),s=this.getRate(t),Number.isSafeInteger(s)||(s=0)),i&&(o=i.height,c=a.revHex(i.hash),h=i.time,l=a.date(h)),e=u.get(e),{hash:this.txid(),witnessHash:this.wtxid(),fee:n,rate:s,mtime:a.now(),height:o,block:c,time:h,date:l,index:r,version:this.version,inputs:this.inputs.map(i=>{var r=t?t.getCoinFor(i):null;return i.getJSON(e,r)}),outputs:this.outputs.map(t=>t.getJSON(e)),locktime:this.locktime,hex:this.toRaw().toString("hex")}}fromJSON(e){r(e,"TX data is required."),r(a.isU32(e.version),"Version must be a uint32."),r(Array.isArray(e.inputs),"Inputs must be an array."),r(Array.isArray(e.outputs),"Outputs must be an array."),r(a.isU32(e.locktime),"Locktime must be a uint32."),this.version=e.version;for(const t of e.inputs)this.inputs.push(d.fromJSON(t));for(const t of e.outputs)this.outputs.push(f.fromJSON(t));return this.locktime=e.locktime,this}static fromJSON(t){return(new e).fromJSON(t)}static fromRaw(t,i){return"string"==typeof t&&(t=Buffer.from(t,i)),(new e).fromRaw(t)}static fromReader(t){return(new e).fromReader(t)}fromRaw(e){return this.fromReader(new l(e))}fromReader(e){if(!((t=e).left()<6)&&0===t.data[t.offset+4]&&0!==t.data[t.offset+5])return this.fromWitnessReader(e);e.start(),this.version=e.readU32();var t,i=e.readVarint();for(let t=0;t<i;t++)this.inputs.push(d.fromReader(e));var r=e.readVarint();for(let t=0;t<r;t++)this.outputs.push(f.fromReader(e));return this.locktime=e.readU32(),this.mutable?e.end():(this._raw=e.endData(),this._size=this._raw.length,this._witness=0),this}fromWitnessReader(e){e.start(),this.version=e.readU32(),r(0===e.readU8(),"Non-zero marker.");let t=e.readU8();r(0!==t,"Flags byte is zero.");var i=e.readVarint();for(let t=0;t<i;t++)this.inputs.push(d.fromReader(e));var a=e.readVarint();for(let t=0;t<a;t++)this.outputs.push(f.fromReader(e));let s=0,n=!1;if(1&t){t^=1,s=e.offset;for(const t of this.inputs)t.witness.fromReader(e),0<t.witness.items.length&&(n=!0);s=e.offset-s+2}if(0!==t)throw new Error("Unknown witness flag.");if(0===this.inputs.length&&0!==this.outputs.length)throw new Error("Zero input witness tx.");return this.locktime=e.readU32(),!this.mutable&&n?(this._raw=e.endData(),this._size=this._raw.length,this._witness=s):e.end(),this}frameNormal(){var e=this.getNormalSizes(),t=new p(e.size);return this.writeNormal(t),e.data=t.render(),e}frameWitness(){var e=this.getWitnessSizes(),t=new p(e.size);return this.writeWitness(t),e.data=t.render(),e}writeNormal(e){if(0===this.inputs.length&&0!==this.outputs.length)throw new Error("Cannot serialize zero-input tx.");e.writeU32(this.version),e.writeVarint(this.inputs.length);for(const t of this.inputs)t.toWriter(e);e.writeVarint(this.outputs.length);for(const t of this.outputs)t.toWriter(e);return e.writeU32(this.locktime),e}writeWitness(e){if(0===this.inputs.length&&0!==this.outputs.length)throw new Error("Cannot serialize zero-input tx.");e.writeU32(this.version),e.writeU8(0),e.writeU8(1),e.writeVarint(this.inputs.length);for(const t of this.inputs)t.toWriter(e);e.writeVarint(this.outputs.length);for(const t of this.outputs)t.toWriter(e);var t=e.offset;for(const t of this.inputs)t.witness.toWriter(e);if(t=e.offset-t,e.writeU32(this.locktime),t===this.inputs.length)throw new Error("Cannot serialize empty-witness tx.");return e}getNormalSizes(){let e=0;e=(e+=4)+s.sizeVarint(this.inputs.length);for(const t of this.inputs)e+=t.getSize();e+=s.sizeVarint(this.outputs.length);for(const t of this.outputs)e+=t.getSize();return new S(e+=4,0)}getWitnessSizes(){let e=0,t=0;e+=4,t+=2,e+=s.sizeVarint(this.inputs.length);for(const i of this.inputs)e+=i.getSize(),t+=i.witness.getVarSize();e+=s.sizeVarint(this.outputs.length);for(const t of this.outputs)e+=t.getSize();return new S((e+=4)+t,t)}static isTX(t){return t instanceof e}}},function(e,t,i){"use strict";
|
|
55
|
+
*/const r=i(0),a=i(2),s=i(3),n=i(6),o=i(26),c=i(33),u=i(15),h=i(17),l=i(1),p=i(4),d=i(113),f=i(28),m=i(46),g=i(63),v=i(100),y=i(7),b=i(29),w=i(112),{opcodes:x,hashType:k}=i(19);function S(e,t){this.data=null,this.size=e,this.witness=t}i(60),e.exports=class e{constructor(e){e=e||{},this.version=1,this.inputs=e.inputs||[],this.outputs=e.outputs||[],this.locktime=0,this.mutable=!1,this._hash=null,this._hhash=null,this._whash=null,this._raw=null,this._size=-1,this._witness=-1,this._sigops=-1,this._hashPrevouts=null,this._hashSequence=null,this._hashOutputs=null,e&&this.fromOptions(e)}fromOptions(e){if(r(e,"TX data is required."),null!=e.version&&(r(a.isU32(e.version),"Version must be a uint32."),this.version=e.version),e.inputs){this.inputs=[],r(Array.isArray(e.inputs),"Inputs must be an array.");for(const t of e.inputs)this.inputs.push(new d(t))}if(e.outputs){this.outputs=[],r(Array.isArray(e.outputs),"Outputs must be an array.");for(const t of e.outputs)this.outputs.push(new f(t))}return null!=e.locktime&&(r(a.isU32(e.locktime),"Locktime must be a uint32."),this.locktime=e.locktime),this}static fromOptions(t){return(new e).fromOptions(t)}clone(){return(new e).inject(this)}inject(e,t=0){this.version=e.version;for(const i of e.inputs)if(this.inputs.push(i.clone()),0!=t&&this.inputs.length>=t)break;for(const i of e.outputs)if(this.outputs.push(i.clone()),0!=t&&this.outputs.length>=t)break;return this.locktime=e.locktime,this}refresh(){this._hash=null,this._hhash=null,this._whash=null,this._raw=null,this._size=-1,this._witness=-1,this._sigops=-1,this._hashPrevouts=null,this._hashSequence=null,this._hashOutputs=null}hash(e){let t=this._hash;if(t||(t=n.hash256(this.toNormal()),this.mutable)||(this._hash=t),"hex"===e){let e=this._hhash;e||(e=t.toString("hex"),this.mutable)||(this._hhash=e),t=e}return t}witnessHash(e){if(!this.hasWitness())return this.hash(e);let t=this._whash;return t||(t=n.hash256(this.toRaw()),this.mutable)||(this._whash=t),"hex"===e?t.toString("hex"):t}toRaw(){return this.frame().data}toNormal(){return this.hasWitness()?this.frameNormal().data:this.toRaw()}toWriter(e){return this.mutable?this.hasWitness()?this.writeWitness(e):this.writeNormal(e):(e.writeBytes(this.toRaw()),e)}toNormalWriter(e){return this.hasWitness()?(this.writeNormal(e),e):this.toWriter(e)}frame(){if(this.mutable)return r(!this._raw),this.hasWitness()?this.frameWitness():this.frameNormal();if(this._raw){r(0<=this._size),r(0<=this._witness);const e=new S(this._size,this._witness);return e.data=this._raw,e}let e;return e=this.hasWitness()?this.frameWitness():this.frameNormal(),this._raw=e.data,this._size=e.size,this._witness=e.witness,e}getSizes(){return this.mutable?this.hasWitness()?this.getWitnessSizes():this.getNormalSizes():this.frame()}getVirtualSize(){var e=y.WITNESS_SCALE_FACTOR;return(this.getWeight()+e-1)/e|0}getSigopsSize(e){var t=y.WITNESS_SCALE_FACTOR,i=b.BYTES_PER_SIGOP;return(Math.max(this.getWeight(),e*i)+t-1)/t|0}getWeight(){var e=this.getSizes();return(e.size-e.witness)*(y.WITNESS_SCALE_FACTOR-1)+e.size}getSize(){return this.getSizes().size}getBaseSize(){var e=this.getSizes();return e.size-e.witness}hasWitness(){if(-1!==this._witness)return 0!==this._witness;for(const e of this.inputs)if(0<e.witness.items.length)return!0;return!1}signatureHash(e,t,i,a,s){if(r(0<=e&&e<this.inputs.length),r(t instanceof h),r("number"==typeof i),r("number"==typeof a),0===s)return this.signatureHashV0(e,t,a);if(1===s)return this.signatureHashV1(e,t,i,a);throw new Error("Unknown sighash version.")}get opr(){var e={};return 0<this.outputs.length&&(e.data=this.outputs[0].getReturnData([x.OP_RETURN]),e.data)&&"inner"==e.data.$tag&&(e.isDerived=!0),e}signatureHashV0(e,t,i){if((31&i)===k.SINGLE){if(e>=this.outputs.length)return Buffer.from(s.ONE_HASH)}else if((31&i)===k.ZERO&&0==this.outputs.length)return Buffer.from(s.ONE_HASH);t=t.removeSeparators();var r=this.hashSize(e,t,i),a=p.pool(r);if(a.writeU32(this.version),i&k.ANYONECANPAY)r=this.inputs[e],a.writeVarint(1),r.prevout.toWriter(a),a.writeVarBytes(t.toRaw()),a.writeU32(r.sequence);else{a.writeVarint(this.inputs.length);for(let r=0;r<this.inputs.length;r++){var o=this.inputs[r];if(o.prevout.toWriter(a),r===e)a.writeVarBytes(t.toRaw()),a.writeU32(o.sequence);else switch(a.writeVarint(0),31&i){case k.NONE:case k.SINGLE:case k.ZERO:a.writeU32(0);break;default:a.writeU32(o.sequence)}}}switch(31&i){case k.NONE:a.writeVarint(0);break;case k.SINGLE:var c=this.outputs[e];a.writeVarint(e+1);for(let t=0;t<e;t++)a.writeI64(-1),a.writeVarint(0);c.toWriter(a);break;case k.ZERO:c=this.outputs[0],a.writeVarint(1),c.toWriter(a);break;default:a.writeVarint(this.outputs.length);for(const e of this.outputs)e.toWriter(a)}return a.writeU32(this.locktime),a.writeU32(i),n.hash256(a.render())}hashSize(e,t,i){let r=0;switch(r+=4,r=i&k.ANYONECANPAY?(r=r+1+36)+t.getVarSize()+4:(r=(r+=s.sizeVarint(this.inputs.length))+41*(this.inputs.length-1)+36)+t.getVarSize()+4,31&i){case k.NONE:r+=1;break;case k.SINGLE:r=(r=r+s.sizeVarint(e+1)+9*e)+this.outputs[e].getSize();break;case k.ZERO:0<this.outputs.length?r=(r+=s.sizeVarint(1))+this.outputs[0].getSize():r+=1;break;default:r+=s.sizeVarint(this.outputs.length);for(const e of this.outputs)r+=e.getSize()}return r+8}signatureHashV1(e,t,i,r){const a=this.inputs[e];let o=s.ZERO_HASH,c=s.ZERO_HASH,u=s.ZERO_HASH;if(!(r&k.ANYONECANPAY))if(this._hashPrevouts)o=this._hashPrevouts;else{const e=p.pool(36*this.inputs.length);for(const t of this.inputs)t.prevout.toWriter(e);o=n.hash256(e.render()),this.mutable||(this._hashPrevouts=o)}if(!(r&k.ANYONECANPAY)&&(31&r)!==k.ZERO&&(31&r)!==k.SINGLE&&(31&r)!==k.NONE)if(this._hashSequence)c=this._hashSequence;else{const e=p.pool(4*this.inputs.length);for(const t of this.inputs)e.writeU32(t.sequence);c=n.hash256(e.render()),this.mutable||(this._hashSequence=c)}if((31&r)!==k.SINGLE&&(31&r)!==k.ZERO&&(31&r)!==k.NONE)if(this._hashOutputs)u=this._hashOutputs;else{let e=0;for(const t of this.outputs)e+=t.getSize();const t=p.pool(e);for(const e of this.outputs)e.toWriter(t);u=n.hash256(t.render()),this.mutable||(this._hashOutputs=u)}else(31&r)===k.SINGLE?e<this.outputs.length&&(e=this.outputs[e],u=n.hash256(e.toRaw())):(31&r)===k.ZERO&&0<this.outputs.length&&(e=this.outputs[0],u=n.hash256(e.toRaw()));e=156+t.getVarSize();const h=p.pool(e);return h.writeU32(this.version),h.writeBytes(o),h.writeBytes(c),h.writeHash(a.prevout.hash),h.writeU32(a.prevout.index),h.writeVarBytes(t.toRaw()),h.writeI64(i),h.writeU32(a.sequence),h.writeBytes(u),h.writeU32(this.locktime),h.writeU32(r),n.hash256(h.render())}checksig(e,t,i,r,a,s){var n;return 0!==r.length&&(n=r[r.length-1],e=this.signatureHash(e,t,i,n,s),o.verify(e,r.slice(0,-1),a))}signature(e,t,i,r,a,s){return null==a&&(a=k.ALL),e=this.signatureHash(e,t,i,a,s=null==s?0:s),t=o.sign(e,r),(i=new p(t.length+1)).writeBytes(t),i.writeU8(a),i.render()}check(e,t,i){if(0===this.inputs.length)throw new w("UNKNOWN_ERROR","No inputs.");if(!this.isCoinbase())for(let a=0;a<this.inputs.length;a++){var r=this.inputs[a].prevout;if(!(r=e.getOutput(r)))throw new w("UNKNOWN_ERROR","No coin available.");this.checkInput(a,r,t,i)}}checkInput(e,t,i,a){var s=this.inputs[e];r(s,"Input does not exist."),r(t,"No coin passed.");try{h.verifyScript(s.script,s.witness,t.script,this,e,t.value,i,a)}catch(e){throw e}}async checkAsync(e,t,i,r){if(0===this.inputs.length)throw new w("UNKNOWN_ERROR","No inputs.");this.isCoinbase()||(r&&r.enabled?await r.check(this,e,t,i):this.check(e,t,i))}verify(e,t,i){try{this.check(e,t,i)}catch(e){if("ScriptError"===e.type)return!1;throw e}return!0}verifyInputs(e,t){var[e]=this.checkInputs(e,t);return-1!==e}verifyInput(e,t,i,r){try{this.checkInput(e,t,i,r)}catch(e){if("ScriptError"===e.type)return!1;throw e}return!0}async verifyAsync(e,t,i,r){try{await this.checkAsync(e,t,i,r)}catch(e){if("ScriptError"===e.type)return!1;throw e}return!0}isCoinbase(){return 1===this.inputs.length&&this.inputs[0].prevout.isNull()}isRBF(){if(2!==this.version)for(const e of this.inputs)if(e.isRBF())return!0;return!1}getFee(e){return this.hasCoins(e)?this.getInputValue(e)-this.getOutputValue():0}getInputValue(e){let t=0;for(var{prevout:i}of this.inputs){if(!(i=e.getOutput(i)))return 0;t+=i.value}return t}getOutputValue(){let e=0;for(const t of this.outputs)e+=t.value;return e}_getInputAddresses(e){var t=Object.create(null),i=[];if(!this.isCoinbase())for(const s of this.inputs){var r,a=e?e.getOutputFor(s):null;!(a=s.getAddress(a))||t[r=a.getHash("hex")]||(t[r]=!0,i.push(a))}return[i,t]}_getOutputAddresses(){var e=Object.create(null),t=[];for(const a of this.outputs){var i,r=a.getAddress();!r||e[i=r.getHash("hex")]||(e[i]=!0,t.push(r))}return[t,e]}_getAddresses(e){var[t,i]=this._getInputAddresses(e);for(const e of this.getOutputAddresses()){var r=e.getHash("hex");i[r]||(i[r]=!0,t.push(e))}return[t,i]}getInputAddresses(e){var[e]=this._getInputAddresses(e);return e}getOutputAddresses(){var[e]=this._getOutputAddresses();return e}getAddresses(e){var[e]=this._getAddresses(e);return e}getInputHashes(e,t){if("hex"===t)return[,t]=this._getInputAddresses(e),Object.keys(t);var i=[];for(const t of this.getInputAddresses(e))i.push(t.getHash());return i}getOutputHashes(e){if("hex"===e)return[,e]=this._getOutputAddresses(),Object.keys(e);var t=[];for(const e of this.getOutputAddresses())t.push(e.getHash());return t}getHashes(e,t){if("hex"===t)return[,t]=this._getAddresses(e),Object.keys(t);var i=[];for(const t of this.getAddresses(e))i.push(t.getHash());return i}hasCoins(e){if(0===this.inputs.length)return!1;for(var{prevout:t}of this.inputs)if(!e.hasEntry(t))return!1;return!0}isFinal(e,t){var i=y.LOCKTIME_THRESHOLD;if(0!==this.locktime&&!(this.locktime<(this.locktime<i?e:t)))for(const e of this.inputs)if(4294967295!==e.sequence)return!1;return!0}static mergeOrder(e){return r(Array.isArray(e)),e.reduce((e,t)=>null==e||1==e.outputs.length||1<t.outputs.length&&t.outputs[1].value>e.outputs[1].value?t:e,null)}verifyLocktime(e,t){var i=y.LOCKTIME_THRESHOLD;e=this.inputs[e];return r(e,"Input does not exist."),r(0<=t,"Locktime must be non-negative."),this.locktime<i==t<i&&!(t>this.locktime)&&4294967295!==e.sequence}verifySequence(e,t){var i=y.SEQUENCE_DISABLE_FLAG,a=y.SEQUENCE_TYPE_FLAG,s=y.SEQUENCE_MASK;e=this.inputs[e];return r(e,"Input does not exist."),r(0<=t,"Locktime must be non-negative."),!!(t&i)||!(this.version<2||e.sequence&i||(e.sequence&a)!=(t&a)||(t&s)>(e.sequence&s))}getLegacySigops(){if(-1!==this._sigops)return this._sigops;let e=0;for(const t of this.inputs)e+=t.script.getSigops(!1);for(const t of this.outputs)e+=t.script.getSigops(!1);return this.mutable||(this._sigops=e),e}getScripthashSigops(e){if(this.isCoinbase())return 0;let t=0;for(const r of this.inputs){var i=e.getOutputFor(r);i&&i.script.isScripthash()&&(t+=i.script.getScripthashSigops(r.script))}return t}getWitnessSigops(e){if(this.isCoinbase())return 0;let t=0;for(const r of this.inputs){var i=e.getOutputFor(r);i&&(t+=i.script.getWitnessSigops(r.script,r.witness))}return t}getSigopsCost(e,t){null==t&&(t=h.flags.STANDARD_VERIFY_FLAGS);var i=y.WITNESS_SCALE_FACTOR;let r=this.getLegacySigops()*i;return t&h.flags.VERIFY_P2SH&&(r+=this.getScripthashSigops(e)*i),t&h.flags.VERIFY_WITNESS&&(r+=this.getWitnessSigops(e)),r}getSigops(e,t){var i=y.WITNESS_SCALE_FACTOR;return(this.getSigopsCost(e,t)+i-1)/i|0}isSane(){var[e]=this.checkSanity();return e}checkSanity(){if(0===this.inputs.length)return[!1,"bad-txns-vin-empty",100];if(0===this.outputs.length)return[!1,"bad-txns-vout-empty",100];if(this.getBaseSize()>y.MAX_BLOCK_SIZE)return[!1,"bad-txns-oversize",100];let e=0;for(const t of this.outputs){if(t.value<0)return[!1,"bad-txns-vout-negative",100];if(t.value>y.MAX_MONEY)return[!1,"bad-txns-vout-toolarge",100];if((e+=t.value)<0||e>y.MAX_MONEY)return[!1,"bad-txns-txouttotal-toolarge",100]}var t=new Set;for(const e of this.inputs){var i=e.prevout.toKey();if(t.has(i))return[!1,"bad-txns-inputs-duplicate",100];t.add(i)}if(this.isCoinbase()){var r=this.inputs[0].script.getSize();if(r<2||100<r)return[!1,"bad-cb-length",100]}else for(const e of this.inputs)if(e.prevout.isNull())return[!1,"bad-txns-prevout-null",10];return[!0,"valid",0]}isStandard(){var[e]=this.checkStandard();return e}checkStandard(){if(this.version<1||this.version>b.MAX_TX_VERSION)return[!1,"version",0];if(this.getWeight()>=b.MAX_TX_WEIGHT)return[!1,"tx-size",0];for(const e of this.inputs){if(1650<e.script.getSize())return[!1,"scriptsig-size",0];if(!e.script.isPushOnly())return[!1,"scriptsig-not-pushonly",0]}let e=0;for(const t of this.outputs){if(!t.script.isStandard())return[!1,"scriptpubkey",0];if(t.script.isNulldata())e++;else{if(t.script.isMultisig()&&!b.BARE_MULTISIG)return[!1,"bare-multisig",0];if(t.isDust())return[!1,"dust",0]}}return 1<e?[!1,"multi-op-return",0]:[!0,"valid",0]}hasStandardInputs(e){if(!this.isCoinbase())for(const r of this.inputs){var t=e.getOutputFor(r);if(!t)return!1;if(!t.script.isPubkeyhash())if(t.script.isScripthash()){var i=r.script.getRedeem();if(!i)return!1;if(i.getSigops(!0)>b.MAX_P2SH_SIGOPS)return!1}else if(t.script.isUnknown())return!1}return!0}hasStandardWitness(e){if(!this.isCoinbase())for(const r of this.inputs){var t,i=r.witness;if((t=e.getOutputFor(r))&&0!==i.items.length){let e=t.script;if(e.isScripthash()&&!(e=r.script.getRedeem()))return!1;if(!e.isProgram())return!1;if(e.isWitnessPubkeyhash()){if(2!==i.items.length)return!1;if(73<i.items[0].length)return!1;if(65<i.items[1].length)return!1}else if(e.isWitnessScripthash()){if(i.items.length-1>b.MAX_P2WSH_STACK)return!1;for(let e=0;e<i.items.length-1;e++)if(i.items[e].length>b.MAX_P2WSH_PUSH)return!1;if((t=i.items[i.items.length-1]).length>b.MAX_P2WSH_SIZE)return!1;if((t=h.fromRaw(t)).isPubkey()){if(i.items.length-1!=1)return!1;if(73<i.items[0].length)return!1}else if(t.isPubkeyhash()){if(r.witness.items.length-1!=2)return!1;if(73<i.items[0].length)return!1;if(65<i.items[1].length)return!1}else{var[t]=t.getMultisig();if(-1!==t){if(i.items.length-1!==t+1)return!1;if(0!==i.items[0].length)return!1;for(let e=1;e<i.items.length-1;e++)if(73<i.items[e].length)return!1}}}else{if(i.items.length>b.MAX_P2WSH_STACK)return!1;for(const e of i.items)if(e.length>b.MAX_P2WSH_PUSH)return!1}}}return!0}checkInputs(e,t){r("number"==typeof t);let i=0;for(var{prevout:a}of this.inputs){var s=e.getEntry(a);if(!s)return[-1,"bad-txns-inputs-missingorspent",0];if(s.coinbase&&0<s.height&&t<s.height+y.COINBASE_MATURITY)return[-1,"bad-txns-premature-spend-of-coinbase",0];if(s=e.getOutput(a),r(s),s.value<0||s.value>y.MAX_MONEY)return[-1,"bad-txns-inputvalues-outofrange",100];if((i+=s.value)<0||i>y.MAX_MONEY)return[-1,"bad-txns-inputvalues-outofrange",100]}var n=this.getOutputValue();return i<n?[-1,"bad-txns-in-belowout",100]:(n=i-n)<0?[-1,"bad-txns-fee-negative",100]:n>y.MAX_MONEY?[-1,"bad-txns-fee-outofrange",100]:[n,"valid",0]}getModifiedSize(e){null==e&&(e=this.getVirtualSize());for(const i of this.inputs){var t=41+Math.min(110,i.script.getSize());t<e&&(e-=t)}return e}getPriority(e,t,i){if(r("number"==typeof t,"Must pass in height."),this.isCoinbase())return 0;null==i&&(i=this.getVirtualSize());let a=0;for(var{prevout:s}of this.inputs){var n=e.getOutput(s);n&&-1!==(s=e.getHeight(s))&&s<=t&&(a+=n.value*(t-s))}return Math.floor(a/i)}getChainValue(e){if(this.isCoinbase())return 0;let t=0;for(var{prevout:i}of this.inputs){var r=e.getOutput(i);r&&-1!==e.getHeight(i)&&(t+=r.value)}return t}isFree(e,t,i){return this.getPriority(e,t,i)>b.FREE_THRESHOLD}getMinFee(e,t){return null==e&&(e=this.getVirtualSize()),b.getMinFee(e,t)}getRoundFee(e,t){return null==e&&(e=this.getVirtualSize()),b.getRoundFee(e,t)}getRate(e,t){return(e=this.getFee(e))<0?0:(null==t&&(t=this.getVirtualSize()),b.getRate(t,e))}getPrevout(){if(this.isCoinbase())return[];var e=Object.create(null);for(const t of this.inputs)e[t.prevout.hash]=!0;return Object.keys(e)}isWatched(e){let t=!1;e.test(this.hash())&&(t=!0);for(let r=0;r<this.outputs.length;r++){var i=this.outputs[r];i.script.test(e)&&((e.update===v.flags.ALL||e.update===v.flags.PUBKEY_ONLY&&(i.script.isPubkey()||i.script.isMultisig()))&&(i=m.fromTX(this,r),e.add(i.toRaw())),t=!0)}if(t)return t;for(const t of this.inputs){var r=t.prevout;if(e.test(r.toRaw()))return!0;if(t.script.test(e))return!0}return!1}rhash(){return a.revHex(this.hash("hex"))}rwhash(){return a.revHex(this.witnessHash("hex"))}txid(){return this.rhash()}wtxid(){return this.rwhash()}toInv(){return new g(g.types.TX,this.hash("hex"))}inspect(){return this.format()}format(e,t,i){let r=0,s=0,n=-1,o=null,u=0,h=null;return e&&(s=this.getFee(e),r=this.getRate(e),Number.isSafeInteger(r)||(r=0)),t&&(n=t.height,o=a.revHex(t.hash),u=t.time,h=a.date(u)),null==i&&(i=-1),{hash:this.txid(),witnessHash:this.wtxid(),size:this.getSize(),virtualSize:this.getVirtualSize(),value:c.btc(this.getOutputValue()),fee:c.btc(s),rate:c.btc(r),minFee:c.btc(this.getMinFee()),height:n,block:o,time:u,date:h,index:i,version:this.version,inputs:this.inputs.map(t=>{var i=e?e.getOutputFor(t):null;return t.format(i)}),outputs:this.outputs,locktime:this.locktime}}formatInsight(e,t=0){return null==e&&(e=-1),{hash:this.hash("hex"),rhash:this.txid(),witnessHash:this.wtxid(),txid:function(){return this.rhash},ps:t,index:e,version:this.version,flag:1,locktime:this.locktime,raw:this.toRaw(),inputs:this.inputs.map(e=>e.formatInsight()),outputs:this.outputs.map(e=>e.formatInsight())}}static EncodeSpenderValue(e,t,i,r){var a=Buffer.allocUnsafe(72);return a.write(e,0,"hex"),a.writeUInt32BE(t,32,!0),a.writeUInt32BE(i,36,!0),a.write(r,40,"hex"),a}static DecodeSpenderValue(e){return r(Buffer.isBuffer(e)),r(72===e.length),{txid:e.toString("hex",0,32),inputIndex:e.readUInt32BE(32,!0),blockHeight:e.readUInt32BE(36,!0),blockHash:e.toString("hex",40,32)}}toJSON(){return this.getJSON()}getJSON(e,t,i,r){let s,n,o,c,h,l;return t&&(n=this.getFee(t),s=this.getRate(t),Number.isSafeInteger(s)||(s=0)),i&&(o=i.height,c=a.revHex(i.hash),h=i.time,l=a.date(h)),e=u.get(e),{hash:this.txid(),witnessHash:this.wtxid(),fee:n,rate:s,mtime:a.now(),height:o,block:c,time:h,date:l,index:r,version:this.version,inputs:this.inputs.map(i=>{var r=t?t.getCoinFor(i):null;return i.getJSON(e,r)}),outputs:this.outputs.map(t=>t.getJSON(e)),locktime:this.locktime,hex:this.toRaw().toString("hex")}}fromJSON(e){r(e,"TX data is required."),r(a.isU32(e.version),"Version must be a uint32."),r(Array.isArray(e.inputs),"Inputs must be an array."),r(Array.isArray(e.outputs),"Outputs must be an array."),r(a.isU32(e.locktime),"Locktime must be a uint32."),this.version=e.version;for(const t of e.inputs)this.inputs.push(d.fromJSON(t));for(const t of e.outputs)this.outputs.push(f.fromJSON(t));return this.locktime=e.locktime,this}static fromJSON(t){return(new e).fromJSON(t)}static fromRaw(t,i){return"string"==typeof t&&(t=Buffer.from(t,i)),(new e).fromRaw(t)}static fromReader(t){return(new e).fromReader(t)}fromRaw(e){return this.fromReader(new l(e))}fromReader(e){if(!((t=e).left()<6)&&0===t.data[t.offset+4]&&0!==t.data[t.offset+5])return this.fromWitnessReader(e);e.start(),this.version=e.readU32();var t,i=e.readVarint();for(let t=0;t<i;t++)this.inputs.push(d.fromReader(e));var r=e.readVarint();for(let t=0;t<r;t++)this.outputs.push(f.fromReader(e));return this.locktime=e.readU32(),this.mutable?e.end():(this._raw=e.endData(),this._size=this._raw.length,this._witness=0),this}fromWitnessReader(e){e.start(),this.version=e.readU32(),r(0===e.readU8(),"Non-zero marker.");let t=e.readU8();r(0!==t,"Flags byte is zero.");var i=e.readVarint();for(let t=0;t<i;t++)this.inputs.push(d.fromReader(e));var a=e.readVarint();for(let t=0;t<a;t++)this.outputs.push(f.fromReader(e));let s=0,n=!1;if(1&t){t^=1,s=e.offset;for(const t of this.inputs)t.witness.fromReader(e),0<t.witness.items.length&&(n=!0);s=e.offset-s+2}if(0!==t)throw new Error("Unknown witness flag.");if(0===this.inputs.length&&0!==this.outputs.length)throw new Error("Zero input witness tx.");return this.locktime=e.readU32(),!this.mutable&&n?(this._raw=e.endData(),this._size=this._raw.length,this._witness=s):e.end(),this}frameNormal(){var e=this.getNormalSizes(),t=new p(e.size);return this.writeNormal(t),e.data=t.render(),e}frameWitness(){var e=this.getWitnessSizes(),t=new p(e.size);return this.writeWitness(t),e.data=t.render(),e}writeNormal(e){if(0===this.inputs.length&&0!==this.outputs.length)throw new Error("Cannot serialize zero-input tx.");e.writeU32(this.version),e.writeVarint(this.inputs.length);for(const t of this.inputs)t.toWriter(e);e.writeVarint(this.outputs.length);for(const t of this.outputs)t.toWriter(e);return e.writeU32(this.locktime),e}writeWitness(e){if(0===this.inputs.length&&0!==this.outputs.length)throw new Error("Cannot serialize zero-input tx.");e.writeU32(this.version),e.writeU8(0),e.writeU8(1),e.writeVarint(this.inputs.length);for(const t of this.inputs)t.toWriter(e);e.writeVarint(this.outputs.length);for(const t of this.outputs)t.toWriter(e);var t=e.offset;for(const t of this.inputs)t.witness.toWriter(e);if(t=e.offset-t,e.writeU32(this.locktime),t===this.inputs.length)throw new Error("Cannot serialize empty-witness tx.");return e}getNormalSizes(){let e=0;e=(e+=4)+s.sizeVarint(this.inputs.length);for(const t of this.inputs)e+=t.getSize();e+=s.sizeVarint(this.outputs.length);for(const t of this.outputs)e+=t.getSize();return new S(e+=4,0)}getWitnessSizes(){let e=0,t=0;e+=4,t+=2,e+=s.sizeVarint(this.inputs.length);for(const i of this.inputs)e+=i.getSize(),t+=i.witness.getVarSize();e+=s.sizeVarint(this.outputs.length);for(const t of this.outputs)e+=t.getSize();return new S((e+=4)+t,t)}static isTX(t){return t instanceof e}}},function(e,t,i){"use strict";
|
|
56
56
|
/*!
|
|
57
57
|
* Packet.js - worker packets for vallnet
|
|
58
58
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
@@ -141,15 +141,15 @@ let r=[];[i(558),i(559),i(560),i(561),i(562),i(563),i(564),i(565),i(566),i(567),
|
|
|
141
141
|
/*!
|
|
142
142
|
* coinview.js - coin viewpoint object for vallnet
|
|
143
143
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
144
|
-
*/const r=i(322),a=i(247),s=i(145);e.exports=class e{constructor(){this.map=new Map,this.undo=new a}clone(){var t,i,r=new e;for([t,i]of this.map)r.map.set(t,i.clone());return r.undo=a.fromRaw(this.undo.toRaw()),r}get(e){return this.map.get(e)}has(e){return this.map.has(e)}add(e,t){return this.map.set(e,t),t}ensure(e){return this.map.get(e)||this.add(e,new r)}remove(e){var t=this.map.get(e);return t?(this.map.delete(e),t):null}addTX(e,t,i){var a=e.hash("hex");e=r.fromTX(e,t,i);return this.add(a,e)}removeTX(e,t,i){var a=e.hash("hex");for(const a of(e=r.fromTX(e,t,i)).outputs.values())a.spent=!0;return this.add(a,e)}addEntry(e,t){var{hash:e,index:i}=e;return this.ensure(e).add(i,t)}addIndex(e,t,i,r){var a=e.hash("hex");return this.ensure(a).add(t,s.fromTX(e,t,i,r))}addCoin(e){return this.ensure(e.hash).addCoin(e)}addOutput(e,t){var{hash:e,index:i}=e;return this.ensure(e).addOutput(i,t)}spendEntry(e){var{hash:e,index:t}=e;return(e=(e=this.get(e))&&e.spend(t))?(this.undo.push(e),e):null}removeEntry(e){var{hash:e,index:t}=e;return(e=this.get(e))?e.remove(t):null}hasEntry(e){var{hash:e,index:t}=e;return!!(e=this.get(e))&&e.has(t)}getEntry(e){var{hash:e,index:t}=e;return(e=this.get(e))?e.get(t):null}isUnspent(e){var{hash:e,index:t}=e;return!!(e=this.get(e))&&e.isUnspent(t)}getCoin(e){var t=this.get(e.hash);return t?t.getCoin(e):null}getOutput(e){var{hash:e,index:t}=e;return(e=this.get(e))?e.getOutput(t):null}getHeight(e){return(e=this.getEntry(e))?e.height:-1}isCoinbase(e){return!!(e=this.getEntry(e))&&e.coinbase}hasEntryFor(e){return this.hasEntry(e.prevout)}getEntryFor(e){return this.getEntry(e.prevout)}isUnspentFor(e){return this.isUnspent(e.prevout)}getCoinFor(e){return this.getCoin(e.prevout)}getOutputFor(e){return this.getOutput(e.prevout)}getHeightFor(e){return this.getHeight(e.prevout)}isCoinbaseFor(e){return this.isCoinbase(e.prevout)}async readCoin(e,t){var i=this.getEntry(t);return i||((i=await e.readCoin(t))?this.addEntry(t,i):null)}async readInputs(e,t){let i=!0;for(var{prevout:r}of t.inputs)await this.readCoin(e,r)||(i=!1);return i}async spendInputs(e,t){let i=0;for(;i<t.inputs.length;){for(var r=Math.min(i+4,t.inputs.length),a=[];i<r;i++){var s=t.inputs[i].prevout;a.push(this.readCoin(e,s))}for(const e of await Promise.all(a)){if(!e||e.spent)return!1;e.spent=!0,this.undo.push(e)}}return!0}getSize(e){let t=0;for(var{prevout:i}of(t+=e.inputs.length,e.inputs))(i=this.getEntry(i))&&(t+=i.getSize());return t}toWriter(e,t){for(var{prevout:i}of t.inputs)(i=this.getEntry(i))?(e.writeU8(1),i.toWriter(e)):e.writeU8(0);return e}fromReader(e,t){for(var{prevout:i}of t.inputs){var r;0!==e.readU8()&&(r=s.fromReader(e),this.addEntry(i,r))}return this}static fromReader(t,i){return(new e).fromReader(t,i)}}},function(e,t
|
|
144
|
+
*/const r=i(322),a=i(247),s=i(145);e.exports=class e{constructor(){this.map=new Map,this.undo=new a}clone(){var t,i,r=new e;for([t,i]of this.map)r.map.set(t,i.clone());return r.undo=a.fromRaw(this.undo.toRaw()),r}get(e){return this.map.get(e)}has(e){return this.map.has(e)}add(e,t){return this.map.set(e,t),t}ensure(e){return this.map.get(e)||this.add(e,new r)}remove(e){var t=this.map.get(e);return t?(this.map.delete(e),t):null}addTX(e,t,i){var a=e.hash("hex");e=r.fromTX(e,t,i);return this.add(a,e)}removeTX(e,t,i){var a=e.hash("hex");for(const a of(e=r.fromTX(e,t,i)).outputs.values())a.spent=!0;return this.add(a,e)}addEntry(e,t){var{hash:e,index:i}=e;return this.ensure(e).add(i,t)}addIndex(e,t,i,r){var a=e.hash("hex");return this.ensure(a).add(t,s.fromTX(e,t,i,r))}addCoin(e){return this.ensure(e.hash).addCoin(e)}addOutput(e,t){var{hash:e,index:i}=e;return this.ensure(e).addOutput(i,t)}spendEntry(e){var{hash:e,index:t}=e;return(e=(e=this.get(e))&&e.spend(t))?(this.undo.push(e),e):null}removeEntry(e){var{hash:e,index:t}=e;return(e=this.get(e))?e.remove(t):null}hasEntry(e){var{hash:e,index:t}=e;return!!(e=this.get(e))&&e.has(t)}getEntry(e){var{hash:e,index:t}=e;return(e=this.get(e))?e.get(t):null}isUnspent(e){var{hash:e,index:t}=e;return!!(e=this.get(e))&&e.isUnspent(t)}getCoin(e){var t=this.get(e.hash);return t?t.getCoin(e):null}getOutput(e){var{hash:e,index:t}=e;return(e=this.get(e))?e.getOutput(t):null}getHeight(e){return(e=this.getEntry(e))?e.height:-1}isCoinbase(e){return!!(e=this.getEntry(e))&&e.coinbase}hasEntryFor(e){return this.hasEntry(e.prevout)}getEntryFor(e){return this.getEntry(e.prevout)}isUnspentFor(e){return this.isUnspent(e.prevout)}getCoinFor(e){return this.getCoin(e.prevout)}getOutputFor(e){return this.getOutput(e.prevout)}getHeightFor(e){return this.getHeight(e.prevout)}isCoinbaseFor(e){return this.isCoinbase(e.prevout)}async readCoin(e,t){var i=this.getEntry(t);return i||((i=await e.readCoin(t))?this.addEntry(t,i):null)}async readInputs(e,t){let i=!0;for(var{prevout:r}of t.inputs)await this.readCoin(e,r)||(i=!1);return i}async spendInputs(e,t){let i=0;for(;i<t.inputs.length;){for(var r=Math.min(i+4,t.inputs.length),a=[];i<r;i++){var s=t.inputs[i].prevout;a.push(this.readCoin(e,s))}for(const e of await Promise.all(a)){if(!e||e.spent)return!1;e.spent=!0,this.undo.push(e)}}return!0}getSize(e){let t=0;for(var{prevout:i}of(t+=e.inputs.length,e.inputs))(i=this.getEntry(i))&&(t+=i.getSize());return t}toWriter(e,t){for(var{prevout:i}of t.inputs)(i=this.getEntry(i))?(e.writeU8(1),i.toWriter(e)):e.writeU8(0);return e}fromReader(e,t){for(var{prevout:i}of t.inputs){var r;0!==e.readU8()&&(r=s.fromReader(e),this.addEntry(i,r))}return this}static fromReader(t,i){return(new e).fromReader(t,i)}}},function(e,t,i){"use strict";
|
|
145
145
|
/*!
|
|
146
|
-
*
|
|
146
|
+
* lru.js - LRU cache for vallnet
|
|
147
147
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
148
|
-
*/const r=i(
|
|
148
|
+
*/const r=i(0),a=i(258);function s(e,t){this.key=e,this.value=t,this.next=null,this.prev=null}e.exports=class{constructor(e=1e3,t){this.map=new Map,this.size=0,this.items=0,this.head=null,this.tail=null,this.pending=null,r("number"==typeof e,"Capacity must be a number."),r(0<=e,"Capacity cannot be negative."),r(!t||"function"==typeof t,"Bad size callback."),this.capacity=e,this.getSize=t}_getSize(e){return this.getSize?120+Math.floor(1.375*e.key.length)+this.getSize(e.value):1}_compact(){if(!(this.size<=this.capacity)){let e,t;for(e=this.head;e&&!(this.size<=this.capacity);e=t)this.size-=this._getSize(e),this.items--,this.map.delete(e.key),t=e.next,e.prev=null,e.next=null;e?(this.head=e).prev=null:(this.head=null,this.tail=null)}}reset(){let e,t;for(e=this.head;e;e=t)this.map.delete(e.key),this.items--,t=e.next,e.prev=null,e.next=null;r(!e),this.size=0,this.head=null,this.tail=null}set(e,t){if(0!==this.capacity){e=String(e);let i=this.map.get(e);i?(this.size-=this._getSize(i),i.value=t,this.size+=this._getSize(i),this._removeList(i),this._appendList(i)):(i=new s(e,t),this.map.set(e,i),this._appendList(i),this.size+=this._getSize(i),this.items++),this._compact()}}get(e){return 0===this.capacity?null:(e=String(e),(e=this.map.get(e))?(this._removeList(e),this._appendList(e),e.value):null)}has(e){return 0!==this.capacity&&this.map.has(String(e))}remove(e){if(0===this.capacity)return!1;e=String(e);var t=this.map.get(e);return!!t&&(this.size-=this._getSize(t),this.items--,this.map.delete(e),this._removeList(t),!0)}_prependList(e){this._insertList(null,e)}_appendList(e){this._insertList(this.tail,e)}_insertList(e,t){r(!t.next),r(!t.prev),null==e?this.head?((this.head.prev=t).next=this.head,this.head=t):(this.head=t,this.tail=t):(t.next=e.next,(t.prev=e).next=t,e===this.tail&&(this.tail=t))}_removeList(e){e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e===this.head&&(this.head=e.next),e===this.tail&&(this.tail=e.prev||this.head),this.head||r(!this.tail),this.tail||r(!this.head),e.prev=null,e.next=null}keys(){var e=[];for(let t=this.head;t;t=t.next)t===this.head&&r(!t.prev),t.prev||r(t===this.head),t.next||r(t===this.tail),e.push(t.key);return e}values(){var e=[];for(let t=this.head;t;t=t.next)e.push(t.value);return e}toArray(){var e=[];for(let t=this.head;t;t=t.next)e.push(t);return e}batch(){return new a(this)}start(){r(!this.pending),this.pending=this.batch()}clear(){r(this.pending),this.pending.clear()}drop(){r(this.pending),this.pending=null}commit(){r(this.pending),this.pending.commit(),this.pending=null}push(e,t){r(this.pending),0!==this.capacity&&this.pending.set(e,t)}unpush(e){r(this.pending),0!==this.capacity&&this.pending.remove(e)}}},function(e,t){e.exports=require("http")},function(e,t,i){"use strict";
|
|
149
149
|
/*!
|
|
150
|
-
*
|
|
150
|
+
* invitem.js - inv item object for vallnet
|
|
151
151
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
152
|
-
*/const r=i(0),a=i(258);function s(e,t){this.key=e,this.value=t,this.next=null,this.prev=null}e.exports=class{constructor(e=1e3,t){this.map=new Map,this.size=0,this.items=0,this.head=null,this.tail=null,this.pending=null,r("number"==typeof e,"Capacity must be a number."),r(0<=e,"Capacity cannot be negative."),r(!t||"function"==typeof t,"Bad size callback."),this.capacity=e,this.getSize=t}_getSize(e){return this.getSize?120+Math.floor(1.375*e.key.length)+this.getSize(e.value):1}_compact(){if(!(this.size<=this.capacity)){let e,t;for(e=this.head;e&&!(this.size<=this.capacity);e=t)this.size-=this._getSize(e),this.items--,this.map.delete(e.key),t=e.next,e.prev=null,e.next=null;e?(this.head=e).prev=null:(this.head=null,this.tail=null)}}reset(){let e,t;for(e=this.head;e;e=t)this.map.delete(e.key),this.items--,t=e.next,e.prev=null,e.next=null;r(!e),this.size=0,this.head=null,this.tail=null}set(e,t){if(0!==this.capacity){e=String(e);let i=this.map.get(e);i?(this.size-=this._getSize(i),i.value=t,this.size+=this._getSize(i),this._removeList(i),this._appendList(i)):(i=new s(e,t),this.map.set(e,i),this._appendList(i),this.size+=this._getSize(i),this.items++),this._compact()}}get(e){return 0===this.capacity?null:(e=String(e),(e=this.map.get(e))?(this._removeList(e),this._appendList(e),e.value):null)}has(e){return 0!==this.capacity&&this.map.has(String(e))}remove(e){if(0===this.capacity)return!1;e=String(e);var t=this.map.get(e);return!!t&&(this.size-=this._getSize(t),this.items--,this.map.delete(e),this._removeList(t),!0)}_prependList(e){this._insertList(null,e)}_appendList(e){this._insertList(this.tail,e)}_insertList(e,t){r(!t.next),r(!t.prev),null==e?this.head?((this.head.prev=t).next=this.head,this.head=t):(this.head=t,this.tail=t):(t.next=e.next,(t.prev=e).next=t,e===this.tail&&(this.tail=t))}_removeList(e){e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e===this.head&&(this.head=e.next),e===this.tail&&(this.tail=e.prev||this.head),this.head||r(!this.tail),this.tail||r(!this.head),e.prev=null,e.next=null}keys(){var e=[];for(let t=this.head;t;t=t.next)t===this.head&&r(!t.prev),t.prev||r(t===this.head),t.next||r(t===this.tail),e.push(t.key);return e}values(){var e=[];for(let t=this.head;t;t=t.next)e.push(t.value);return e}toArray(){var e=[];for(let t=this.head;t;t=t.next)e.push(t);return e}batch(){return new a(this)}start(){r(!this.pending),this.pending=this.batch()}clear(){r(this.pending),this.pending.clear()}drop(){r(this.pending),this.pending=null}commit(){r(this.pending),this.pending.commit(),this.pending=null}push(e,t){r(this.pending),0!==this.capacity&&this.pending.set(e,t)}unpush(e){r(this.pending),0!==this.capacity&&this.pending.remove(e)}}},function(e,t,i){"use strict";var r,a,s=i(76),n=s.freeze,o=(i=i(11)).inherits,c=i.notEnumerableProp;function u(e,t){function i(r){if(!(this instanceof i))return new i(r);c(this,"message","string"==typeof r?r:t),c(this,"name",e),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return o(i,Error),i}i=u("Warning","warning");var h=u("CancellationError","cancellation error"),l=u("TimeoutError","timeout error"),p=u("AggregateError","aggregate error");try{r=TypeError,a=RangeError}catch(e){r=u("TypeError","type error"),a=u("RangeError","range error")}for(var d="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),f=0;f<d.length;++f)"function"==typeof Array.prototype[d[f]]&&(p.prototype[d[f]]=Array.prototype[d[f]]);s.defineProperty(p.prototype,"length",{value:0,configurable:!1,writable:!0,enumerable:!0}),p.prototype.isOperational=!0;var m=0;function g(e){if(!(this instanceof g))return new g(e);c(this,"name","OperationalError"),c(this,"message",e),this.cause=e,this.isOperational=!0,e instanceof Error?(c(this,"message",e.message),c(this,"stack",e.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}p.prototype.toString=function(){var e="\n"+Array(4*m+1).join(" ")+"AggregateError of:\n";m++;for(var t=Array(4*m+1).join(" "),i=0;i<this.length;++i){for(var r=this[i]===this?"[Circular AggregateError]":this[i]+"",a=r.split("\n"),s=0;s<a.length;++s)a[s]=t+a[s];e+=(r=a.join("\n"))+"\n"}return m--,e},o(g,Error);var v=Error.__BluebirdErrorTypes__;v||(v=n({CancellationError:h,TimeoutError:l,OperationalError:g,RejectionError:g,AggregateError:p}),s.defineProperty(Error,"__BluebirdErrorTypes__",{value:v,writable:!1,enumerable:!1,configurable:!1})),e.exports={Error:Error,TypeError:r,RangeError:a,CancellationError:v.CancellationError,OperationalError:v.OperationalError,TimeoutError:v.TimeoutError,AggregateError:v.AggregateError,Warning:i}},function(e,t,i){e.exports={read:function(e,t,i){var c=e;"string"!=typeof e&&(r.buffer(e,"buf"),e=e.toString("ascii"));for(var u,b,w=e.trim().split(/[\r\n]+/g),x=-1;!u&&x<w.length;)u=w[++x].match(/[-]+[ ]*BEGIN ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);r.ok(u,"invalid PEM header");for(var k=w.length;!b&&0<k;)b=w[--k].match(/[-]+[ ]*END ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);r.ok(b,"invalid PEM footer"),r.equal(u[2],b[2]);var S,_=u[2].toLowerCase();u[1]&&(r.equal(u[1],b[1],"PEM header and footer mismatch"),S=u[1].trim()),w=w.slice(x,k+1);for(var E,j,A,R,I={};u=(w=w.slice(1))[0].match(/^([A-Za-z0-9-]+): (.+)$/);)I[u[1].toLowerCase()]=u[2];if((w=w.slice(0,-1).join(""),e=n.from(w,"base64"),I["proc-type"])&&("4"===(O=I["proc-type"].split(","))[0]&&"ENCRYPTED"===O[1])){if("string"==typeof t.passphrase&&(t.passphrase=n.from(t.passphrase,"utf-8")),!n.isBuffer(t.passphrase))throw new f.KeyEncryptedError(t.filename,"PEM");O=I["dek-info"].split(","),r.ok(2===O.length),E=O[0].toLowerCase(),A=n.from(O[1],"hex"),j=o.opensslKeyDeriv(E,A,t.passphrase,1).key}if(S&&"encrypted"===S.toLowerCase()){var O;if((C=((O=new a.BerReader(e)).readSequence(),O.readSequence(),R=O.offset+O.length,O.readOID()))!==m)throw new Error("Unsupported PEM/PKCS8 encryption scheme: "+C);O.readSequence(),O.readSequence();var C=O.offset+O.length;if((P=O.readOID())!==g)throw new Error("Unsupported PBES2 KDF: "+P);O.readSequence();var P=O.readString(a.Ber.OctetString,!0),T=O.readInt(),B="sha1";if(O.offset<C){O.readSequence();var N=O.readOID();if(void 0===(B=y[N]))throw new Error("Unsupported PBKDF2 hash: "+N)}if(O._offset=C,O.readSequence(),N=O.readOID(),void 0===(E=v[N]))throw new Error("Unsupported PBES2 cipher: "+N);if(A=O.readString(a.Ber.OctetString,!0),O._offset=R,e=O.readString(a.Ber.OctetString,!0),"string"==typeof t.passphrase&&(t.passphrase=n.from(t.passphrase,"utf-8")),!n.isBuffer(t.passphrase))throw new f.KeyEncryptedError(t.filename,"PEM");E=(C=o.opensshCipherInfo(E)).opensslName,j=o.pbkdf2(B,P,T,C.keySize,t.passphrase),S=void 0}if(E&&j&&A){var z,F=s.createDecipheriv(E,j,A),L=[];for(F.once("error",(function(e){if(-1!==e.toString().indexOf("bad decrypt"))throw new Error("Incorrect passphrase supplied, could not decrypt key");throw e})),F.write(e),F.end();null!==(z=F.read());)L.push(z);e=n.concat(L)}return S&&"openssh"===S.toLowerCase()?p.readSSHPrivate(_,e,t):S&&"ssh2"===S.toLowerCase()?d.readType(_,e,t):((N=new a.BerReader(e)).originalInput=c,N.readSequence(),S?(i&&r.strictEqual(i,"pkcs1"),h.readPkcs1(S,_,N)):(i&&r.strictEqual(i,"pkcs8"),l.readPkcs8(S,_,N)))},write:function(e,t,i){r.object(e);var s,o={ecdsa:"EC",rsa:"RSA",dsa:"DSA",ed25519:"EdDSA"}[e.type],p=new a.BerWriter;if(u.isPrivateKey(e))i&&"pkcs8"===i?(s="PRIVATE KEY",l.writePkcs8(p,e)):(i&&r.strictEqual(i,"pkcs1"),s=o+" PRIVATE KEY",h.writePkcs1(p,e));else{if(!c.isKey(e))throw new Error("key is not a Key or PrivateKey");i&&"pkcs1"===i?(s=o+" PUBLIC KEY",h.writePkcs1(p,e)):(i&&r.strictEqual(i,"pkcs8"),s="PUBLIC KEY",l.writePkcs8(p,e))}var d=p.buffer.toString("base64"),f=(o=d.length+d.length/64+18+16+2*s.length+10,n.alloc(o)),m=0;m+=f.write("-----BEGIN "+s+"-----\n",m);for(var g=0;g<d.length;){var v=g+64;v>d.length&&(v=d.length),m+=f.write(d.slice(g,v),m),f[m++]=10,g=v}return m+=f.write("-----END "+s+"-----\n",m),f.slice(0,m)}};var r=i(10),a=i(58),s=i(8),n=i(12).Buffer,o=(i(30),i(25)),c=i(23),u=i(24),h=i(179),l=i(104),p=i(134),d=i(66),f=i(51),m="1.2.840.113549.1.5.13",g="1.2.840.113549.1.5.12",v={"1.2.840.113549.3.7":"3des-cbc","2.16.840.1.101.3.4.1.2":"aes128-cbc","2.16.840.1.101.3.4.1.42":"aes256-cbc"},y=(Object.keys(v).forEach((function(e){v[e]})),{"1.2.840.113549.2.7":"sha1","1.2.840.113549.2.9":"sha256","1.2.840.113549.2.11":"sha512"});Object.keys(y).forEach((function(e){y[e]}))},function(e,t,i){e.exports={read:p.bind(void 0,!1,void 0),readType:p.bind(void 0,!1),write:function(e,t){r.object(e);var i,o=l(e),h=s.info[e.type];c.isPrivateKey(e)&&(h=s.privInfo[e.type]);var p=h.parts,d=new u({});for(d.writeString(o),i=0;i<p.length;++i){var f=e.part[p[i]].data;!1!==h.normalize&&(f="ed25519"===e.type?n.zeroPadToLength(f,32):n.mpNormalize(f)),"ed25519"===e.type&&"k"===p[i]&&(f=a.concat([f,e.part.A.data])),d.writeBuffer(f)}return d.toBuffer()},readPartial:p.bind(void 0,!0),readInternal:p,keyTypeToAlg:l,algToKeyType:h};var r=i(10),a=i(12).Buffer,s=i(30),n=i(25),o=i(23),c=i(24),u=i(91);function h(e){if(r.string(e),"ssh-dss"===e)return"dsa";if("ssh-rsa"===e)return"rsa";if("ssh-ed25519"===e)return"ed25519";if("ssh-curve25519"===e)return"curve25519";if(e.match(/^ecdsa-sha2-/))return"ecdsa";throw new Error("Unknown algorithm "+e)}function l(e){if(r.object(e),"dsa"===e.type)return"ssh-dss";if("rsa"===e.type)return"ssh-rsa";if("ed25519"===e.type)return"ssh-ed25519";if("curve25519"===e.type)return"ssh-curve25519";if("ecdsa"===e.type)return"ecdsa-sha2-"+e.part.curve.data.toString();throw new Error("Unknown key type "+e.type)}function p(e,t,i,l){"string"==typeof i&&(i=a.from(i)),r.buffer(i,"buf");var p={},d=p.parts=[],f=new u({buffer:i}),m=(i=f.readString(),r.ok(!f.atEnd(),"key must have at least one part"),p.type=h(i),s.info[p.type].parts.length);for(t&&"private"===t&&(m=s.privInfo[p.type].parts.length);!f.atEnd()&&d.length<m;)d.push(f.readPart());for(;!e&&!f.atEnd();)d.push(f.readPart());r.ok(1<=d.length,"key must have at least one part"),r.ok(e||f.atEnd(),"leftover bytes at end of key");for(var g=o,v=s.info[p.type],y=("private"!==t&&v.parts.length===d.length||(v=s.privInfo[p.type],g=c),r.strictEqual(v.parts.length,d.length),"ecdsa"===p.type&&(t=/^ecdsa-sha2-(.+)$/.exec(i),r.ok(null!==t),r.strictEqual(t[1],d[0].data.toString())),!0),b=0;b<v.parts.length;++b){var w,x=d[b];x.name=v.parts[b],"ed25519"===p.type&&"k"===x.name&&(x.data=x.data.slice(0,32)),"curve"!==x.name&&!1!==v.normalize&&(w="ed25519"===p.type?n.zeroPadToLength(x.data,32):n.mpNormalize(x.data)).toString("binary")!==x.data.toString("binary")&&(x.data=w,y=!1)}return y&&(p._rfc4253Cache=f.toBuffer()),e&&"object"==typeof e&&(e.remainder=f.remainder(),e.consumed=f._offset),new g(p)}},function(e,t,i){"use strict";
|
|
152
|
+
*/const r=i(1);i(22);const a=i(4),s=i(2);class n{constructor(e,t){this.type=e,this.hash=t}getSize(){return 36}formatInsight(){return{type:this.type,hash:{type:"Buffer",data:this.toRaw()}}}toWriter(e){return e.writeU32(this.type),e.writeHash(this.hash),e}toRaw(){return this.toWriter(new a(36)).render()}fromReader(e){return this.type=e.readU32(),this.hash=e.readHash("hex"),this}fromRaw(e){return this.fromReader(new r(e))}static fromReader(e){return(new n).fromReader(e)}static fromRaw(e,t){return"string"==typeof e&&(e=Buffer.from(e,t)),(new n).fromRaw(e)}isBlock(){switch(this.type){case n.types.BLOCK:case n.types.WITNESS_BLOCK:case n.types.FILTERED_BLOCK:case n.types.WITNESS_FILTERED_BLOCK:case n.types.CMPCT_BLOCK:return!0;default:return!1}}isTX(){switch(this.type){case n.types.TX:case n.types.WITNESS_TX:return!0;default:return!1}}hasWitness(){return 0!=(this.type&n.WITNESS_FLAG)}rhash(){return s.revHex(this.hash)}}n.types={ERROR:0,TX:1,BLOCK:2,FILTERED_BLOCK:3,WITNESS_TX:1|1<<30,WITNESS_BLOCK:2|1<<30,WITNESS_FILTERED_BLOCK:3|1<<30,CMPCT_BLOCK:4},n.typesByVal=s.reverse(n.types),n.WITNESS_FLAG=1<<30,e.exports=n},function(e,t,i){"use strict";var r,a,s=i(76),n=s.freeze,o=(i=i(11)).inherits,c=i.notEnumerableProp;function u(e,t){function i(r){if(!(this instanceof i))return new i(r);c(this,"message","string"==typeof r?r:t),c(this,"name",e),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this)}return o(i,Error),i}i=u("Warning","warning");var h=u("CancellationError","cancellation error"),l=u("TimeoutError","timeout error"),p=u("AggregateError","aggregate error");try{r=TypeError,a=RangeError}catch(e){r=u("TypeError","type error"),a=u("RangeError","range error")}for(var d="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),f=0;f<d.length;++f)"function"==typeof Array.prototype[d[f]]&&(p.prototype[d[f]]=Array.prototype[d[f]]);s.defineProperty(p.prototype,"length",{value:0,configurable:!1,writable:!0,enumerable:!0}),p.prototype.isOperational=!0;var m=0;function g(e){if(!(this instanceof g))return new g(e);c(this,"name","OperationalError"),c(this,"message",e),this.cause=e,this.isOperational=!0,e instanceof Error?(c(this,"message",e.message),c(this,"stack",e.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}p.prototype.toString=function(){var e="\n"+Array(4*m+1).join(" ")+"AggregateError of:\n";m++;for(var t=Array(4*m+1).join(" "),i=0;i<this.length;++i){for(var r=this[i]===this?"[Circular AggregateError]":this[i]+"",a=r.split("\n"),s=0;s<a.length;++s)a[s]=t+a[s];e+=(r=a.join("\n"))+"\n"}return m--,e},o(g,Error);var v=Error.__BluebirdErrorTypes__;v||(v=n({CancellationError:h,TimeoutError:l,OperationalError:g,RejectionError:g,AggregateError:p}),s.defineProperty(Error,"__BluebirdErrorTypes__",{value:v,writable:!1,enumerable:!1,configurable:!1})),e.exports={Error:Error,TypeError:r,RangeError:a,CancellationError:v.CancellationError,OperationalError:v.OperationalError,TimeoutError:v.TimeoutError,AggregateError:v.AggregateError,Warning:i}},function(e,t,i){e.exports={read:function(e,t,i){var c=e;"string"!=typeof e&&(r.buffer(e,"buf"),e=e.toString("ascii"));for(var u,b,w=e.trim().split(/[\r\n]+/g),x=-1;!u&&x<w.length;)u=w[++x].match(/[-]+[ ]*BEGIN ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);r.ok(u,"invalid PEM header");for(var k=w.length;!b&&0<k;)b=w[--k].match(/[-]+[ ]*END ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);r.ok(b,"invalid PEM footer"),r.equal(u[2],b[2]);var S,_=u[2].toLowerCase();u[1]&&(r.equal(u[1],b[1],"PEM header and footer mismatch"),S=u[1].trim()),w=w.slice(x,k+1);for(var E,j,A,R,I={};u=(w=w.slice(1))[0].match(/^([A-Za-z0-9-]+): (.+)$/);)I[u[1].toLowerCase()]=u[2];if((w=w.slice(0,-1).join(""),e=n.from(w,"base64"),I["proc-type"])&&("4"===(O=I["proc-type"].split(","))[0]&&"ENCRYPTED"===O[1])){if("string"==typeof t.passphrase&&(t.passphrase=n.from(t.passphrase,"utf-8")),!n.isBuffer(t.passphrase))throw new f.KeyEncryptedError(t.filename,"PEM");O=I["dek-info"].split(","),r.ok(2===O.length),E=O[0].toLowerCase(),A=n.from(O[1],"hex"),j=o.opensslKeyDeriv(E,A,t.passphrase,1).key}if(S&&"encrypted"===S.toLowerCase()){var O;if((C=((O=new a.BerReader(e)).readSequence(),O.readSequence(),R=O.offset+O.length,O.readOID()))!==m)throw new Error("Unsupported PEM/PKCS8 encryption scheme: "+C);O.readSequence(),O.readSequence();var C=O.offset+O.length;if((P=O.readOID())!==g)throw new Error("Unsupported PBES2 KDF: "+P);O.readSequence();var P=O.readString(a.Ber.OctetString,!0),T=O.readInt(),B="sha1";if(O.offset<C){O.readSequence();var N=O.readOID();if(void 0===(B=y[N]))throw new Error("Unsupported PBKDF2 hash: "+N)}if(O._offset=C,O.readSequence(),N=O.readOID(),void 0===(E=v[N]))throw new Error("Unsupported PBES2 cipher: "+N);if(A=O.readString(a.Ber.OctetString,!0),O._offset=R,e=O.readString(a.Ber.OctetString,!0),"string"==typeof t.passphrase&&(t.passphrase=n.from(t.passphrase,"utf-8")),!n.isBuffer(t.passphrase))throw new f.KeyEncryptedError(t.filename,"PEM");E=(C=o.opensshCipherInfo(E)).opensslName,j=o.pbkdf2(B,P,T,C.keySize,t.passphrase),S=void 0}if(E&&j&&A){var z,F=s.createDecipheriv(E,j,A),L=[];for(F.once("error",(function(e){if(-1!==e.toString().indexOf("bad decrypt"))throw new Error("Incorrect passphrase supplied, could not decrypt key");throw e})),F.write(e),F.end();null!==(z=F.read());)L.push(z);e=n.concat(L)}return S&&"openssh"===S.toLowerCase()?p.readSSHPrivate(_,e,t):S&&"ssh2"===S.toLowerCase()?d.readType(_,e,t):((N=new a.BerReader(e)).originalInput=c,N.readSequence(),S?(i&&r.strictEqual(i,"pkcs1"),h.readPkcs1(S,_,N)):(i&&r.strictEqual(i,"pkcs8"),l.readPkcs8(S,_,N)))},write:function(e,t,i){r.object(e);var s,o={ecdsa:"EC",rsa:"RSA",dsa:"DSA",ed25519:"EdDSA"}[e.type],p=new a.BerWriter;if(u.isPrivateKey(e))i&&"pkcs8"===i?(s="PRIVATE KEY",l.writePkcs8(p,e)):(i&&r.strictEqual(i,"pkcs1"),s=o+" PRIVATE KEY",h.writePkcs1(p,e));else{if(!c.isKey(e))throw new Error("key is not a Key or PrivateKey");i&&"pkcs1"===i?(s=o+" PUBLIC KEY",h.writePkcs1(p,e)):(i&&r.strictEqual(i,"pkcs8"),s="PUBLIC KEY",l.writePkcs8(p,e))}var d=p.buffer.toString("base64"),f=(o=d.length+d.length/64+18+16+2*s.length+10,n.alloc(o)),m=0;m+=f.write("-----BEGIN "+s+"-----\n",m);for(var g=0;g<d.length;){var v=g+64;v>d.length&&(v=d.length),m+=f.write(d.slice(g,v),m),f[m++]=10,g=v}return m+=f.write("-----END "+s+"-----\n",m),f.slice(0,m)}};var r=i(10),a=i(58),s=i(8),n=i(12).Buffer,o=(i(30),i(25)),c=i(23),u=i(24),h=i(179),l=i(104),p=i(134),d=i(66),f=i(51),m="1.2.840.113549.1.5.13",g="1.2.840.113549.1.5.12",v={"1.2.840.113549.3.7":"3des-cbc","2.16.840.1.101.3.4.1.2":"aes128-cbc","2.16.840.1.101.3.4.1.42":"aes256-cbc"},y=(Object.keys(v).forEach((function(e){v[e]})),{"1.2.840.113549.2.7":"sha1","1.2.840.113549.2.9":"sha256","1.2.840.113549.2.11":"sha512"});Object.keys(y).forEach((function(e){y[e]}))},function(e,t,i){e.exports={read:p.bind(void 0,!1,void 0),readType:p.bind(void 0,!1),write:function(e,t){r.object(e);var i,o=l(e),h=s.info[e.type];c.isPrivateKey(e)&&(h=s.privInfo[e.type]);var p=h.parts,d=new u({});for(d.writeString(o),i=0;i<p.length;++i){var f=e.part[p[i]].data;!1!==h.normalize&&(f="ed25519"===e.type?n.zeroPadToLength(f,32):n.mpNormalize(f)),"ed25519"===e.type&&"k"===p[i]&&(f=a.concat([f,e.part.A.data])),d.writeBuffer(f)}return d.toBuffer()},readPartial:p.bind(void 0,!0),readInternal:p,keyTypeToAlg:l,algToKeyType:h};var r=i(10),a=i(12).Buffer,s=i(30),n=i(25),o=i(23),c=i(24),u=i(91);function h(e){if(r.string(e),"ssh-dss"===e)return"dsa";if("ssh-rsa"===e)return"rsa";if("ssh-ed25519"===e)return"ed25519";if("ssh-curve25519"===e)return"curve25519";if(e.match(/^ecdsa-sha2-/))return"ecdsa";throw new Error("Unknown algorithm "+e)}function l(e){if(r.object(e),"dsa"===e.type)return"ssh-dss";if("rsa"===e.type)return"ssh-rsa";if("ed25519"===e.type)return"ssh-ed25519";if("curve25519"===e.type)return"ssh-curve25519";if("ecdsa"===e.type)return"ecdsa-sha2-"+e.part.curve.data.toString();throw new Error("Unknown key type "+e.type)}function p(e,t,i,l){"string"==typeof i&&(i=a.from(i)),r.buffer(i,"buf");var p={},d=p.parts=[],f=new u({buffer:i}),m=(i=f.readString(),r.ok(!f.atEnd(),"key must have at least one part"),p.type=h(i),s.info[p.type].parts.length);for(t&&"private"===t&&(m=s.privInfo[p.type].parts.length);!f.atEnd()&&d.length<m;)d.push(f.readPart());for(;!e&&!f.atEnd();)d.push(f.readPart());r.ok(1<=d.length,"key must have at least one part"),r.ok(e||f.atEnd(),"leftover bytes at end of key");for(var g=o,v=s.info[p.type],y=("private"!==t&&v.parts.length===d.length||(v=s.privInfo[p.type],g=c),r.strictEqual(v.parts.length,d.length),"ecdsa"===p.type&&(t=/^ecdsa-sha2-(.+)$/.exec(i),r.ok(null!==t),r.strictEqual(t[1],d[0].data.toString())),!0),b=0;b<v.parts.length;++b){var w,x=d[b];x.name=v.parts[b],"ed25519"===p.type&&"k"===x.name&&(x.data=x.data.slice(0,32)),"curve"!==x.name&&!1!==v.normalize&&(w="ed25519"===p.type?n.zeroPadToLength(x.data,32):n.mpNormalize(x.data)).toString("binary")!==x.data.toString("binary")&&(x.data=w,y=!1)}return y&&(p._rfc4253Cache=f.toBuffer()),e&&"object"==typeof e&&(e.remainder=f.remainder(),e.consumed=f._offset),new g(p)}},function(e,t,i){"use strict";
|
|
153
153
|
/*!
|
|
154
154
|
* private.js - hd private keys for vallnet
|
|
155
155
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
@@ -201,7 +201,7 @@ let r=[];[i(558),i(559),i(560),i(561),i(562),i(563),i(564),i(565),i(566),i(567),
|
|
|
201
201
|
* pkg.js - package constants
|
|
202
202
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
203
203
|
* https://github.com/bookmansoft/gamegold
|
|
204
|
-
*/t.protocol="vallnet",t.version="5.7.
|
|
204
|
+
*/t.protocol="vallnet",t.version="5.7.10",t.url="https://github.com/bookmansoft/gamegold"},function(e,t,i){"use strict";
|
|
205
205
|
/*!
|
|
206
206
|
* common.js - p2p constants for vallnet
|
|
207
207
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
@@ -240,7 +240,7 @@ let r=[];[i(558),i(559),i(560),i(561),i(562),i(563),i(564),i(565),i(566),i(567),
|
|
|
240
240
|
* utils/index.js - utils for vallnet
|
|
241
241
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
242
242
|
* https://github.com/bookmansoft/gamegold
|
|
243
|
-
*/t.ASN1=i(324),t.AsyncObject=i(71),t.base32=i(226),t.base58=i(69),t.bech32=i(237),t.Bloom=i(100),t.co=i(36),t.encoding=i(3),t.enforce=i(579),t.fs=i(59),t.GCSFilter=i(580),t.Heap=i(306),t.Int64=i(110),t.IP=i(55),t.List=i(149),t.Lock=i(35),t.LRU=i(
|
|
243
|
+
*/t.ASN1=i(324),t.AsyncObject=i(71),t.base32=i(226),t.base58=i(69),t.bech32=i(237),t.Bloom=i(100),t.co=i(36),t.encoding=i(3),t.enforce=i(579),t.fs=i(59),t.GCSFilter=i(580),t.Heap=i(306),t.Int64=i(110),t.IP=i(55),t.List=i(149),t.Lock=i(35),t.LRU=i(61),t.MappedLock=i(198),t.murmur3=i(144),t.nfkd=i(303),t.PEM=i(223),t.ProtoWriter=i(161),t.ProtoReader=i(160),t.RBT=i(257),t.BufferReader=i(1),t.RollingFilter=i(227),t.StaticWriter=i(4),t.util=i(2),t.Validator=i(80),t.BufferWriter=i(22);var{verifyData:r,signObj:a,verifyObj:s,generateKey:n}=i(72),r=(t.verifyData=r,t.signObj=a,t.verifyObj=s,t.generateKey=n,i(140)).sortWithSeq;t.sortWithSeq=r},function(e,t,i){"use strict";
|
|
244
244
|
/*!
|
|
245
245
|
* mempool.js - mempool for vallnet
|
|
246
246
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
@@ -268,7 +268,7 @@ let r=[];[i(558),i(559),i(560),i(561),i(562),i(563),i(564),i(565),i(566),i(567),
|
|
|
268
268
|
/*!
|
|
269
269
|
* abstractblock.js - abstract block object for vallnet
|
|
270
270
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
271
|
-
*/const r=i(0),a=i(2),s=i(6),n=i(1),o=i(4),c=i(
|
|
271
|
+
*/const r=i(0),a=i(2),s=i(6),n=i(1),o=i(4),c=i(63),u=i(3),h=i(7);e.exports=class{constructor(){this.version=1,this.prevBlock=u.NULL_HASH,this.merkleRoot=u.NULL_HASH,this.time=0,this.bits=0,this.nonce=0,this.mutable=!1,this._hash=null,this._hhash=null}parseOptions(e){return r(e,"Block data is required."),r(a.isU32(e.version)),r("string"==typeof e.prevBlock),r("string"==typeof e.merkleRoot),r(a.isU32(e.time)),r(a.isU32(e.bits)),r(a.isU32(e.nonce)),this.version=e.version,this.prevBlock=e.prevBlock,this.merkleRoot=e.merkleRoot,this.time=e.time,this.bits=e.bits,this.nonce=e.nonce,null!=e.mutable&&(this.mutable=Boolean(e.mutable)),this}parseJSON(e){return r(e,"Block data is required."),r(a.isU32(e.version)),r("string"==typeof e.prevBlock),r("string"==typeof e.merkleRoot),r(a.isU32(e.time)),r(a.isU32(e.bits)),r(a.isU32(e.nonce)),this.version=e.version,this.prevBlock=a.revHex(e.prevBlock),this.merkleRoot=a.revHex(e.merkleRoot),this.time=e.time,this.bits=e.bits,this.nonce=e.nonce,this}isMemory(){return!1}_refresh(){this._hash=null,this._hhash=null}refresh(){return this._refresh()}hash(e){let t=this._hash;if(t||(t=s.hash256(this.toHead()),this.mutable)||(this._hash=t),"hex"===e){let e=this._hhash;e||(e=t.toString("hex"),this.mutable)||(this._hhash=e),t=e}return t}toHead(){return this.writeHead(new o(80)).render()}fromHead(e){return this.readHead(new n(e))}writeHead(e){return e.writeU32(this.version),e.writeHash(this.prevBlock),e.writeHash(this.merkleRoot),e.writeU32(this.time),e.writeU32(this.bits),e.writeU32(this.nonce),e}readHead(e){return this.version=e.readU32(),this.prevBlock=e.readHash("hex"),this.merkleRoot=e.readHash("hex"),this.time=e.readU32(),this.bits=e.readU32(),this.nonce=e.readU32(),this}verify(){return!!this.verifyPOW()&&!!this.verifyBody()}verifyPOW(){return h.verifyPOW(this.hash(),this.bits)}verifyBody(){throw new Error("Abstract method.")}rhash(){return a.revHex(this.hash("hex"))}toInv(){return new c(c.types.BLOCK,this.hash("hex"))}}},function(e,t){e.exports=require("querystring")},function(e,t,i){
|
|
272
272
|
/*!
|
|
273
273
|
* selector.js
|
|
274
274
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
@@ -282,7 +282,7 @@ const r=i(19).opcodes;function a(e){let t=null;return new(0,(a.list[e.type]||a.l
|
|
|
282
282
|
/*!
|
|
283
283
|
* wallet.js - wallet object for vallnet
|
|
284
284
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
285
|
-
*/const r=i(0);var a=i(16);const s=i(15),n=i(2),o=i(3),c=i(35),u=i(198),h=i(140).sortWithSeq,l=i(6),p=i(94),d=i(1),f=i(4),m=i(69),g=i(334);i(218);const v=i(109),y=i(73),b=i(13),w=i(68),x=i(17),k=i(219),S=i(156),_=i(28),E=i(157),j=i(337),A=i(63),R=i(26),I=i(29),O=i(7),C=i(310),P=i(38),T=S.Mnemonic,{opcodes:B,hashType:N}=i(19),z=i(165),F=i(77),L=i(78),M=i(141),D=i(46),H=i(20),U=i(42),q=i(54),{NotifyMsg:V,ContractStatus:K,ContractType:W,PropStatus:$}=i(5),Y=i(37).VerifyError,G=i(153).ErItem,X=i(154).ErAbolishItem,J=i(228).EnchancementItem,Q=i(67),Z=i(59),ee=i(83),te=i(85).txdb,ie=i(31);class re extends a{constructor(e,t){super(),r(e,"DB required."),this.db=e,this.network=e.network,this.logger=e.logger,this.readLock=new u,this.writeLock=new c,this.sendLock=new c,this.indexCache=new A(1e4),this.accountCache=new A(1e4),this.pathCache=new A(1e5),this.current=null,this.wid=0,this.id=null,this.initialized=!1,this.watchOnly=!1,this.accountDepth=0,this.token=o.ZERO_HASH,this.tokenDepth=0,this.master=new j,this.txdb=new g(this),this.account=null,t&&this.fromOptions(t)}fromOptions(e){let t,i,a=e.master;return a?("string"==typeof a&&(a=S.PrivateKey.fromBase58(a,this.network)),r(S.isPrivate(a),"Must create wallet with hd private key.")):(i=new T(e.mnemonic),a=S.fromMnemonic(i,this.network)),r(a.network===this.network,"Network mismatch for master key."),this.master.fromKey(a,i),null!=e.wid&&(r(n.isU32(e.wid)),this.wid=e.wid),e.id&&(r(y.isName(e.id),"Bad wallet ID."),t=e.id),null!=e.initialized&&(r("boolean"==typeof e.initialized),this.initialized=e.initialized),null!=e.watchOnly&&(r("boolean"==typeof e.watchOnly),this.watchOnly=e.watchOnly),null!=e.accountDepth&&(r(n.isU32(e.accountDepth)),this.accountDepth=e.accountDepth),e.token&&(r(Buffer.isBuffer(e.token)),r(32===e.token.length),this.token=e.token),t=t||this.getID(),this.id=t,this}static fromOptions(e,t){return new re(e).fromOptions(t)}async init(e){var t=e.passphrase;r(!this.initialized),this.initialized=!0,t&&await this.master.encrypt(t),e=await this._createAccount(e,t);r(e),this.account=e,this.logger.info("Wallet initialized (%s).",this.id),await this.txdb.open()}async open(){r(this.initialized);var e=await this.getAccount(0);if(!e)throw new Error("Default account not found.");this.account=e,this.logger.info("Wallet opened (%s).",this.id),await this.txdb.open()}async ensureNotifyKey(){this.notifyKey||(await this.ensureAccount({name:"alliance",witness:!0}),this.notifyKey=await this.createReceive("alliance",1,this.master),this.notifyAddress=this.notifyKey.getAddress("string"))}async createAllianceInfo(e,t,i){var r={alliancename:e,nodeid:t};return e?(r.alliancePrivateKey=l.hash256(Buffer.concat([Buffer.from(e),this.master.key.privateKey])),i?(r.prv=Buffer.alloc(0),r.pub=Buffer.from(i,"hex"),r.awardAddress=b.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(this.network.type),r.mnemonic=new T):(i=l.hash256(Buffer.concat([Buffer.from(e+"-"+t),this.master.key.privateKey])),r.mnemonic=new T({entropy:i,language:this.master.mnemonic.language,passphrase:this.master.mnemonic.passphrase}),r.prv=l.hash256(Buffer.from(r.mnemonic.toSeed().toString("hex"))),r.pub=R.publicKeyCreate(r.prv,!0),e=j.fromKey(S.fromMnemonic(r.mnemonic),this.network.type).key.deriveAccount(44,0).derive(9).derive(1),r.awardAddress=b.fromWitnessPubkeyhash(l.hash160(e.publicKey),this.network.type).toString(this.network.type))):(r.mnemonic=T.fromOptions(this.master.mnemonic),r.prv=l.hash256(Buffer.from(r.mnemonic.toSeed().toString("hex"))),r.pub=R.publicKeyCreate(r.prv,!0),r.awardAddress=b.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(this.network.type)),r.address=b.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(),r}async destroy(){var e=await this.writeLock.lock(),t=await this.sendLock.lock();try{this.db.unregister(this),await this.master.destroy(),this.readLock.destroy(),this.writeLock.destroy(),this.sendLock.destroy()}finally{t(),e()}}async addSharedKey(e,t){var i=await this.writeLock.lock();try{return await this._addSharedKey(e,t)}finally{i()}}async _addSharedKey(e,t){if(t||(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");let i;this.start();try{i=await e.addSharedKey(t)}catch(e){throw this.drop(),e}return await this.commit(),i}async removeSharedKey(e,t){var i=await this.writeLock.lock();try{return await this._removeSharedKey(e,t)}finally{i()}}async _removeSharedKey(e,t){if(t||(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");let i;this.start();try{i=await e.removeSharedKey(t)}catch(e){throw this.drop(),e}return await this.commit(),i}async setPassphrase(e,t){e&&await this.decrypt(e),t&&await this.encrypt(t)}async encrypt(e){var t=await this.writeLock.lock();try{return await this._encrypt(e)}finally{t()}}async _encrypt(e){e=await this.master.encrypt(e,!0),this.start();try{await this.db.encryptKeys(this,e)}catch(t){throw p(e),this.drop(),t}p(e),this.save(),await this.commit()}async decrypt(e){var t=await this.writeLock.lock();try{return await this._decrypt(e)}finally{t()}}async _decrypt(e){e=await this.master.decrypt(e,!0),this.start();try{await this.db.decryptKeys(this,e)}catch(t){throw p(e),this.drop(),t}p(e),this.save(),await this.commit()}async rename(e){var t=await this.writeLock.lock();try{return await this.db.rename(this,e)}finally{t()}}async writeBalanceLog(e){var t=await this.writeLock.lock();try{return await this.db.writeBalanceLog(this,e)}finally{t()}}async renameAccount(e,t){var i=await this.writeLock.lock();try{return await this._renameAccount(e,t)}finally{i()}}async _renameAccount(e,t){if(!y.isName(t))throw new Error("Bad account name.");var i=await this.getAccount(e);if(!i)throw new Error("Account not found.");if(0===i.accountIndex)throw new Error("Cannot rename default account.");if(await this.hasAccount(t))throw new Error("Account name not available.");e=i.name,this.start(),this.db.renameAccount(i,t),await this.commit(),this.indexCache.remove(e),e=this.pathCache.values();for(const r of e)r.account===i.accountIndex&&(r.name=t)}async lock(){var e=await this.writeLock.lock(),t=await this.sendLock.lock();try{await this.master.lock()}finally{t(),e()}}unlock(e,t){return this.master.unlock(e,t)}getID(){r(this.master.key,"Cannot derive id.");var e,t=this.master.key.derive(44);(e=new f(37)).writeBytes(t.publicKey),e.writeU32(this.network.magic),t=l.hash160(e.render());return(e=new f(27)).writeU8(3),e.writeU8(190),e.writeU8(4),e.writeBytes(t),e.writeChecksum(),m.encode(e.render())}async createAccount(e,t){var i=await this.writeLock.lock();try{return await this._createAccount(e,t)}finally{i()}}async _createAccount(e,t){let i,a,s=e.name,o=(s=s||this.accountDepth.toString(10),0);if(0!=this.accountDepth&&(o=n.hashInt(s)),await this.hasAccountIndex(o))throw new Error("Account Index Conflict.");if(await this.hasAccount(s))throw new Error("Account already exists.");if(await this.unlock(t),this.watchOnly&&e.accountKey){if("string"==typeof(i=e.accountKey)&&(i=S.PublicKey.fromBase58(i,this.network)),!S.isPublic(i))throw new Error("Must add HD public keys to watch only wallet.");r(i.network===this.network,"Network mismatch for watch only key.")}else r(this.master.key),i=(i=this.master.key.deriveAccount(44,o)).toPublic();t={wid:this.wid,id:this.id,name:0===this.accountDepth?"default":s,witness:e.witness,watchOnly:this.watchOnly,accountKey:i,accountIndex:o,type:e.type,m:e.m,n:e.n,keys:e.keys},this.start();try{(a=E.fromOptions(this.db,t)).wallet=this,await a.init()}catch(e){throw this.drop(),e}return this.logger.info("Created account %s/%s/%d.",a.id,a.name,a.accountIndex),this.accountDepth++,this.save(),await this.commit(),a}async ensureAccount(e,t){var i=e.name;return(i=await this.getAccount(i))||this.createAccount(e,t)}getAccounts(){return this.db.getAccounts(this.wid)}getAccountMap(){return this.db.getAccountMap(this.wid)}getAddressHashes(e){return null!=e?this.getAccountHashes(e):this.db.getWalletHashes(this.wid)}async getAccountHashes(e){return e=await this.ensureIndex(e,!0),this.db.getAccountHashes(this.wid,e)}async getAccount(e){if(this.account&&(null==e||"default"===e||"number"==typeof e&&0===e||"string"==typeof e&&0===e.length))return this.account;if(-1===(e=await this.getAccountIndex(e)))return null;var t=await this.readLock.lock(e);try{return await this._getAccount(e)}finally{t()}}async _getAccount(e){var t=this.accountCache.get(e);return t||((t=await this.db.getAccount(this.wid,e))?(t.wallet=this,t.wid=this.wid,t.id=this.id,t.watchOnly=this.watchOnly,await t.open(),this.accountCache.set(e,t),t):null)}async getAccountIndex(e){var t;return null==e?-1:"number"==typeof e?e:null!=(t=this.indexCache.get(e))?t:-1===(t=await this.db.getAccountIndex(this.wid,e))?-1:(this.indexCache.set(e,t),t)}async getAccountName(e){var t;return"string"==typeof e?e:(t=this.accountCache.get(e))?t.name:this.db.getAccountName(this.wid,e)}async hasAccount(e){return-1!==(e=await this.getAccountIndex(e))&&(!!this.accountCache.has(e)||this.db.hasAccount(this.wid,e))}async hasAccountIndex(e){return!!this.accountCache.has(e)||this.db.hasAccount(this.wid,e)}createReceive(e,t=0,i=null){return this.createKey(e,0,t,i)}createChange(e){return this.createKey(e,1)}createNested(e){return this.createKey(e,2)}async createKey(e,t,i=0,r=null){var a=await this.writeLock.lock();try{return await this._createKey(e,t,i,r)}finally{a()}}async _createKey(e,t,i=0,r=null){if(null==t&&(t=e,e=null),!(e=await this.getAccount(e=e||0)))throw new Error("Account not found.");let a;this.start();try{a=await e.createKey(t,i,r)}catch(e){throw this.drop(),e}return await this.commit(),a}async deriveKey(e,t,i,r=null){let a=null;var s=await this.writeLock.lock();try{this.start(),a=await this._deriveKey(e,t,i,r),await this.commit()}catch(e){throw this.drop(),e}finally{s()}return a}async _deriveKey(e,t,i=0,r=null){if(null==t&&(t=e,e=null),e=e||0,e=parseInt(e),e=await this.getAccount(e))return t=await e.deriveKey(t,i,r),await e.saveKey(t),t;throw new Error("Account not found.")}save(){return this.db.save(this)}async saveAccount(e){var t=await this.writeLock.lock();try{this.start(),e._save(),await this.commit(),0==e.accountIndex&&(this.account=e)}finally{t()}}start(){return this.db.start(this)}drop(){return this.db.drop(this)}clear(){return this.db.clear(this)}commit(){return this.db.commit(this)}async hasAddress(e){return e=b.getHash(e,"hex"),null!=await this.getPath(e)}async ownedAddress(e){return!!await this.getKey(e)}async getPath(e){return(e=await this.readPath(e))?(e.name=await this.getAccountName(e.account),r(e.name),this.pathCache.set(e.hash,e),e):null}async readPath(e){e=b.getHash(e,"hex");var t=this.pathCache.get(e);return t||((t=await this.db.getPath(this.wid,e))?(t.id=this.id,t):null)}async hasPath(e){return e=b.getHash(e,"hex"),!!this.pathCache.has(e)||this.db.hasPath(this.wid,e)}async getPaths(e){if(null!=e)return this.getAccountPaths(e);var t=[];for(const e of await this.db.getWalletPaths(this.wid))e.id=this.id,e.name=await this.getAccountName(e.account),r(e.name),this.pathCache.set(e.hash,e),t.push(e);return t}async getAccountPaths(e){var t=await this.ensureIndex(e,!0),i=await this.getAccountHashes(t),a=await this.getAccountName(e),s=(r(a),[]);for(const e of i){var n=await this.readPath(e);r(n),r(n.account===t),n.name=a,this.pathCache.set(n.hash,n),s.push(n)}return s}async importKey(e,t,i){var r=await this.writeLock.lock();try{return await this._importKey(e,t,i)}finally{r()}}async _importKey(e,t,i){if(e&&"object"==typeof e&&(i=t,t=e,e=null),null==e&&(e=0),r(t.network===this.network,"Network mismatch for key."),this.watchOnly){if(t.privateKey)throw new Error("Cannot import privkey into watch-only wallet.")}else if(!t.privateKey)throw new Error("Cannot import pubkey into non watch-only wallet.");var a=t.getHash("hex");if(await this.getPath(a))throw new Error("Key already exists.");if(!(a=await this.getAccount(e)))throw new Error("Account not found.");if(a.type!==E.types.PUBKEYHASH)throw new Error("Cannot import into non-pkh account.");await this.unlock(i),e=k.fromRing(a,t).toPath(),this.master.encrypted&&(e.data=this.master.encipher(e.data,e.hash),r(e.data),e.encrypted=!0),this.start();try{await a.savePath(e)}catch(e){throw this.drop(),e}await this.commit()}async importAddress(e,t){var i=await this.writeLock.lock();try{return await this._importAddress(e,t)}finally{i()}}async _importAddress(e,t){if(t||(t=e,e=null),null==e&&(e=0),t.network!==this.network)throw new Error("Network mismatch for address.");if(!this.watchOnly)throw new Error("Cannot import address into non watch-only wallet.");if(await this.getPath(t))throw new Error("Address already exists.");if(!(e=await this.getAccount(e)))throw new Error("Account not found.");if(e.type!==E.types.PUBKEYHASH)throw new Error("Cannot import into non-pkh account.");t=v.fromAddress(e,t),this.start();try{await e.savePath(t)}catch(e){throw this.drop(),e}await this.commit()}async fund(e,t){var i=await this.writeLock.lock();try{return await this._fund(e,t)}finally{i()}}async _fund(e,t){if(t=t||{},!this.initialized)throw new Error("Wallet is not initialized.");if(this.watchOnly)throw new Error("Cannot fund from watch-only wallet.");let i;if(null!=t.account){if(!(i=await this.getAccount(t.account)))throw new Error("Account not found.")}else i=this.account;if(!i.initialized)throw new Error("Account is not initialized.");let a,s=t.rate;return null==s&&(s=await this.db.estimateFee(t.blocks)),a=t.smart?await this.getSmartCoins(i.name):(a=await this.getCoins(i.name),this.txdb.filterConserved(a)),await e.fund(a,{allowPreInput:t.allowPreInput,noChange:t.noChange,selection:t.selection,round:t.round,depth:t.depth,hardFee:t.hardFee,subtractFee:t.subtractFee,subtractIndex:t.subtractIndex,changeAddress:i.change.getAddress(),height:this.db.curHeight,rate:s,maxFee:t.maxFee,estimate:e=>this.estimateSize(e),network:this.network}),!t.allowInfiniteFee&&t.noChange&&r(e.getFee()<=C.MAX_FEE,"TX exceeds MAX_FEE."),a}async getAccountByAddress(e){return e=b.getHash(e,"hex"),(e=await this.getPath(e))?this.getAccount(e.account):null}async estimateSize(e){var t=O.WITNESS_SCALE_FACTOR,i=b.fromScript(e);if(!i)return-1;var r=await this.getAccountByAddress(i);if(!r)return-1;let a=0;if(e.isScripthash()&&r.witness)switch(r.type){case E.types.PUBKEYHASH:a=4*(a+23);break;case E.types.MULTISIG:a=4*(a+35)}switch(r.type){case E.types.PUBKEYHASH:a=a+74+34;break;case E.types.MULTISIG:a=(a=(a=(a=(a+=1)+74*r.m)+3+1)+34*r.n)+1+1}return r.witness?a=((a+=1)+t-1)/t|0:a+=o.sizeVarint(a),a}async createTX(e){var t=e.outputs,i=new w;r(Array.isArray(t),"Outputs must be an array."),r(0<t.length,"No outputs available."),e.comment&&("object"==typeof e.comment&&(e.comment=JSON.stringify(e.comment)),i.outputs.push(_.fromScript(x.createScript(Buffer.from(e.comment),x.types.NULLDATA),0)));for(const e of t){var a=new _(e),s=a.getAddress();if(a.isDust())throw new Error("Output is dust.");if(0<a.value){if(!s)throw new Error("Cannot send to unknown address.");if(s.isNull())throw new Error("Cannot send to null address.")}i.outputs.push(a)}let n=null;if(e.inputs)for(const t of e.inputs){var o=await this.getTX(t.hash);o&&(o=q.fromTX(o.tx,t.index,-1,0))&&(n=o.getAddress(),e.allowPreInput=!0,i.addCoin(o))}else await this.fund(i,e);if(n&&((t=new _).value=i.getFee()-C.MIN_FEE,t.script.fromAddress(n),i.outputs.push(t),i.changeIndex=i.outputs.length-1),!1!==e.sort&&i.sortMembers(),null!=e.locktime&&i.setLocktime(e.locktime),r(i.isSane(),"TX failed sanity check."),r(i.verifyInputs(this.db.curHeight+1),"TX failed context check."),0===await this.template(i))throw new Error("Templating failed.");return i}async send(e,t){var i=await this.sendLock.lock();try{return await this._send(e,t)}finally{i()}}async _send(e,t){return t&&(e.account=t),t=await this.createTX(e,!0),await this.sign(t),this.sendMTX(t,{sendafter:e.sendafter})}async sendMTX(e,t={}){if(!e.isSigned())throw new Error("TX could not be fully signed.");var i=e.toTX();if(i.getSigopsCost(e.view)>I.MAX_TX_SIGOPS_COST)throw new Error("TX exceeds policy sigops.");if(i.getWeight()>I.MAX_TX_WEIGHT)throw new Error("TX exceeds policy weight.");return t.sendafter||(this.logger.debug("Sending wallet tx (%s): %s",this.id,i.txid()),await this.db.addTX(i),await this.db.send(i)),i}async resend(){var e=await this.getPending(),t=(0<e.length&&this.logger.info("Rebroadcasting %d transactions.",e.length),[]);for(const i of e)t.push(i.tx);for(const e of h(t))await this.db.send(e);return t}async deriveInputs(e){r(e.mutable);var t=[];for(const r of await this.getInputPaths(e)){var i=await this.getAccount(r.account);i&&(i=i.derivePath(r,this.master))&&t.push(i)}return t}async getKey(e){try{var t,i=b.getHash(e,"hex",this.network.type),r=await this.getPath(i);return r&&(t=await this.getAccount(r.account))?t.derivePath(r,this.master):null}catch{return null}}async exportToFile(e){if(!Z.unsupported){var t=await this.db.getTip(),i=n.date();let o="",c=[n.fmt("# Wallet Dump created by %s %s",ee.protocol,ee.version),n.fmt("# * Created on %s",i),n.fmt("# * Best block at time of backup was %d (%s).",t.height,n.revHex(t.hash)),n.fmt("# * File: %s",e.file),""];var r,a;t=n.fmt("W %s wid= %s",this.toRaw().toString("base64"),this.wid),t=(c.push(t),await this.getAccounts());for(const e of t){var s=await this.getAccount(e);s=n.fmt("C %s name= %s index= %d",s.toRaw().toString("base64"),s.name,s.accountIndex);c.push(s)}for(const t of await this.getAddressHashes())this.watchOnly?(r=b.fromWitnessPubkeyhash(Buffer.from(t,"hex"),this.network.type).toString(),r=n.fmt("A %s %s label= account= %s branch= %s index= %s addr= %s","S",i,0,-1,-1,r),c.push(r)):(r=await this.getPrivateKey(t))&&(a=r.getAddress("string"),a=n.fmt("A %s %s label= account= %s branch= %s index= %s addr= %s",r.toSecret(),i,r.account,r.branch,r.index,a),c.push(a),e.fragment)&&1e5<c.length&&(o=c.join("\n"),await Z.writeFile(e.file.split(".").reduce((e,t)=>(e?e+="."+t:e=t+"-1",e),""),o,"utf8"),c=[]);c.push(""),c.push("# End of dump"),c.push(""),o=c.join("\n"),await Z.writeFile(e.file,o,"utf8")}}async getPrivateKey(e,t){if(e=b.getHash(e,"hex"),!(e=await this.getPath(e)))return null;var i=await this.getAccount(e.account);return i?(await this.unlock(t),(t=i.derivePath(e,this.master)).privateKey?t:null):null}async getInputPaths(e){if(r(e.mutable),!e.hasCoins())throw new Error("Not all coins available.");var t=[];for(const r of e.getInputHashes("hex")){var i=await this.getPath(r);i&&t.push(i)}return t}async getOutputPaths(e){var t=[];for(const r of e.getOutputHashes("hex")){var i=await this.getPath(r);i&&t.push(i)}return t}async setLookahead(e,t){var i=await this.writeLock.lock();try{return this._setLookahead(e,t)}finally{i()}}async _setLookahead(e,t){if(null==t&&(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");this.start();try{await e.setLookahead(t)}catch(e){throw this.drop(),e}await this.commit()}async syncOutputDepth(e){var t=new Map;for(const r of e.outputs){var i=r.path;i&&-1!==i.index&&(t.has(i.account)||t.set(i.account,[]),t.get(i.account).push(i))}var a,s,n=[];for([a,s]of t){let e=-1,t=-1,i=-1;for(const r of s)switch(r.branch){case 0:r.index>e&&(e=r.index);break;case 1:r.index>t&&(t=r.index);break;case 2:r.index>i&&(i=r.index)}e+=2,t+=2,i+=2;var o=await this.getAccount(a);(o=(r(o),await o.syncDepth(e,t,i)))&&n.push(o)}return n}async getRedeem(e){"string"==typeof e&&(e=Buffer.from(e,"hex"));var t=await this.getKey(e.toString("hex"));return t?t.getRedeem(e):null}async template(e){var t=await this.deriveInputs(e);return e.sign(t)}async onSaleList(e,t){return(await(await this.getPropList()).predict(async(e,i)=>!!i.bid&&await this.belongToAccount(t,i.bid.address))).where([["pst",$.Sale]]).paginate(10,e).records()}async mySaleList(e,t){return(await(await this.getPropList()).predict(async(e,i)=>this.belongToAccount(t,i.current.address))).where([["pst",$.Sale]]).paginate(10,e).records()}async getPropList(){const e=await this.db.loadVpList();var t=[];for(let i=0;i<e.length;i++){let r=e[i];t.push((async()=>{await this.getPrivateKey(r.current.address)&&(e[i]=[r.pid,r])})())}return await Promise.all(t),new ie(e)}async propCreate(e,t){var i,a=new w;for(i of e){var s=await this.ensureCp(i.cid,!0);!s||i.cid==this.network.genesisId||(i.gold=(0|i.gold)>>>0,i.gold<O.MINPROPVALUE)||(i.pid||(i.pid=M()),i.oid||(i.oid=i.pid),a.propCreate(s.current.address,i),i.index=a.outputs.length-1)}if(0<a.outputs.length){t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a);var n,o=a.commit();for(n of(await this.db.addTX(o[0]),await this.db.send(o[0]),r(o[0].verify(o[1],x.flags.STANDARD_VERIFY_FLAGS)),e))n.hash=o[0].hash("hex"),n.txid=o[0].txid();return o}return[]}async attach(e,t){var i,a=new w;for(i of e)a.attach(i.address,i.value,i.data);if(0<a.outputs.length){t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a);var s,n=a.commit();for(s of(await this.db.addTX(n[0]),await this.db.send(n[0]),r(n[0].verify(n[1],x.flags.STANDARD_VERIFY_FLAGS)),e))s.hash=n[0].hash("hex"),s.txid=n[0].txid();return n}return[]}async sendSecret(e,t,i){let r=this.db.$contacts.get(e);if(!r||!r.sender){var a=(await this.createReceive(i)).getAddress("string");if(e==a)throw new F(L.errors.TYPE_ERROR,"Forbid Sending to Self Address.");r=await this.db.ensureContact({contact:e,messenger:a,wallet:this,account:i})}if(r)return r.send(t);throw new F(L.errors.TYPE_ERROR,"Invalid Address.")}async commNotify(e){r(!!e),r(!!e.dst),r(!!e.content);var t=new w,i=e.src||this.getReceive().toString(),a=(i=new V(W.notify,M(),this.db.curHeight,{src:i,content:e.content}),_.fromScript(x.createScript(i.toRaw(),x.types.NULLDATA),0));t.outputs.push(a),a={address:e.dst,locktime:O.BLOCK_DAY,locktype:"csb",value:.1*O.COIN},t.outputs.push(new _(a)),e.account?await this.fund(t,{account:e.account,noChange:!0,allowInfiniteFee:!0}):await this.fund(t,{noChange:!0,allowInfiniteFee:!0}),await this.sign(t),a=t.commit();return r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.addTX(a[0]),this.logger.debug("Sending tx on wallet(%s): %s",this.id,a[0].txid()),await this.db.send(a[0]),i.hash=a[0].hash("hex"),i.height=-1,i}async cpRegister(e,t,i,a){if(r(!!t&&"object"==typeof t),!await this.db.client.execute("canExecute",[{confirm:!1,cid:t.cid,name:t.name,oper:W.cpRegister}]))throw new F(L.errors.TYPE_ERROR,"Invalid CP Register Info.");const s=new w;e||(n=await this.createReceive(i),e=n.getAddress());var n=await this.getKey(e);if(!n)throw new F(L.errors.TYPE_ERROR,"Invalid CP Register Address, Not along to this wallet.");if(t.pubAddress=e.toString(),t.pubKey=n.getPublicKey("hex"),t.signMethod="secp256k1",n=await this.createAllianceInfo(),t.register=n.pub.toString("hex"),s.cpRegister(e,O.registerFee,t),n=async()=>{i?await this.fund(s,{account:i}):await this.fund(s),await this.sign(s);var a=s.commit();return r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.addTX(a[0]),await this.db.send(a[0]),t.txid=a[0].txid(),t.addr=e.toString(),a},!a)return n();n()}getSCAddress(e){return e=Q.fromMnemonic(T.fromOptions(O.SmartContractMnemonic),this.network).deriveAccount(44,e).derive(9).derive(1),b.fromWitnessPubkeyhash(l.hash160(e.publicKey),this.network)}async cpChange(e,t){var i=await this.ensureCp(e.cid);if(i.cid==this.network.genesisId||"ATHENA"==i.name)throw new F(L.errors.TYPE_ERROR,"Invalid cp name.");var a=await this.getTX(i.current.hash);if(!a)throw new F(L.errors.TYPE_ERROR,"Do not have permission to change this info.");if(a=a.tx,!await this.belongToAccount(t,a.outputs[0].getAddress()))throw new F(L.errors.TYPE_ERROR,"Invalid account info.");if(e.newName){if(!await this.db.client.execute("canExecute",[{confirm:!1,cid:i.cid,name:e.newName,oper:W.cpChange}]))throw new F(L.errors.TYPE_ERROR,"Invalid CP Change Info.")}else e.newName=i.name;return e.addr||(e.addr=b.fromString(i.current.address)),i=w.cpChange(a,e),t?await this.fund(i,{allowPreInput:!0,account:t}):await this.fund(i,{allowPreInput:!0}),await this.sign(i),a=i.commit(),await this.db.send(a[0]),r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),e.txid=a[0].txid(),a}async propExchangeList(e,t,i=!1){var a,s,n,o=new w,c=[];for([a,s,n]of e){var u,h=null;if(h=await this.getTX(a.hash)){if(h=h.tx,u=a.index,h&&h.outputs&&!(h.outputs.length<=u)){if(i){if(!await this.ownedAddress(h.outputs[u].getAddress())){this.logger.error("not owned prop:",a.hash,a.index);continue}}else if(!await this.belongToAccount(t,h.outputs[u].getAddress())){this.logger.error("not owned prop:",a.hash,a.index);continue}var l=h.outputs[u].getReturnData();l&&(o.propExchange(h,u,s),l.index=o.outputs.length-1,l.addr=s.toString(),c.push(l))}}else this.logger.error("tx not find:",a.hash,n)}return t?await this.fund(o,{allowPreInput:!0,account:t}):await this.fund(o,{allowPreInput:!0}),await this.sign(o),e=o.commit(),await this.db.addTX(e[0]),await this.db.send(e[0]),r(e[0].verify(e[1],x.flags.STANDARD_VERIFY_FLAGS)),e.push(c),e}async propDonate(e,t){var i=e.index;if(!(e=await this.getTX(e.hash))||!e.tx||!e.tx.outputs||e.tx.outputs.length<=i)throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");if(!await this.belongToAccount(t,e.tx.outputs[i].getAddress()))throw new F(L.errors.TYPE_ERROR,"Props that do not belong to you.");if(!(t=e.tx.outputs[i].getReturnData()))throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");if(t.cid&&t.cid==this.network.genesisId)throw new Y(e.tx,"invalid","Special props that can not to donate",100);var r=new w;return(e=(r.addInputFromTx(e.tx,i),r.addOutput(x.createScript(Buffer.from(JSON.stringify({value:e.tx.outputs[i].value,cid:t.cid,pid:t.pid,oid:t.oid,gaddr:this.getAddress().toString(this.network)})),x.types.NULLDATA),0),await this.sign(r,null,N.NONE|N.ANYONECANPAY),r.commit())).push(t),e}async propReceive(e,t){var i=(e=w.fromTX(e,1)).inputs[0].prevout,r=e.outputs[0].getReturnData();e.view.addOutput({hash:e.inputs[0].prevout.hash,index:e.inputs[0].prevout.index},new _({value:r.value})),e.outputs.pop();let a=this.getAddress().toString(this.network);t&&(s={cid:r.cid,uid:t},a=(s=await this.tokenCreate(s,t)).data.addr),e.outputs.push(_.fromScript(a,r.value,{oper:W.propExchange,pid:r.pid,cid:r.cid,oid:r.oid,prev:{hash:i.hash,index:i.index}})),t?await this.fund(e,{allowPreInput:!0,account:t}):await this.fund(e,{allowPreInput:!0}),await this.sign(e,null,N.ALL,[0]);var s=e.commit();return await this.db.send(s[0]),r.simAddr=a,[s[0],null,r]}async belongToAccount(e,t){return!!t&&!(!(t=await this.getAccountByAddress(t))||e&&t.name!==e)}async propExchange(e,t,i){let a=null,s=0;var n;return Array.isArray(e)?(a=e[0],s=e[1]):(n=await this.getTX(e.hash))&&(a=n.tx,s=e.index),!a||!a.outputs||a.outputs.length<=s?(this.logger.error("Invalid tx info."),null):await this.ownedAddress(a.outputs[s].getAddress())?(n=a.outputs[s].getReturnData())?(e=(new w).propExchange(a,s,t),n.index=e.outputs.length-1,i?await this.fund(e,{allowPreInput:!0,account:i}):await this.fund(e,{allowPreInput:!0}),await this.sign(e),t=e.commit(),await this.db.addTX(t[0]),await this.db.send(t[0]),r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS)),t.push(n),t):(this.logger.error("Invalid tx info."),null):(this.logger.error("Invalid user."),null)}async propFound(e,t,i){if(e=await this.getTX(e),r(e),!(e=e.tx))throw new F(L.errors.TYPE_ERROR,"Invalid hex string.");var a=e.outputs[t],s=a.getReturnData();if(!s||s.oper!==W.propExchange&&s.oper!==W.propCreate)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");if(s.cid==this.network.genesisId)throw new Y(block,"invalid","prop found supertoken",100);var n=new w;n.addInputFromTx(e,t),e=_.fromScript(a.getAddress(),a.value),n.outputs.push(e),i?await this.fund(n,{allowPreInput:!0,subtractFee:!0,account:i}):await this.fund(n,{allowPreInput:!0,subtractFee:!0}),await this.sign(n),t=n.commit();return await this.db.send(t[0]),r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS)),t.push(s),t}async propSale(e,t,i,a){let s=await this.getTX(e);if(!s)throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");if(s.getDepth(this.db.curHeight)<=0)throw new F(L.errors.TYPE_ERROR,"No enough confirmations.");if(!(s=s.tx))throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");var n=s.outputs[t].getReturnData([x.opcodes.OP_PROPEXCHANGE,x.opcodes.OP_PROPCREATE]);if(!n)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");if(!await this.ownedAddress(s.outputs[t].getAddress()))throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");var o=await this.getCoin(e,t);if(!o||-1===o.height)throw new F(L.errors.WALLET_INSUFFICIENT_FUNDS,"Invalid coin.");if(await this.txdb.isSpent(e,t))throw new F(L.errors.WALLET_INSUFFICIENT_FUNDS,"Invalid coin.");if(i<=s.outputs[t].value)throw new F(L.errors.TYPE_ERROR,"Invalid fixed price.");if(n.cid==this.network.genesisId)throw new Y(s,"invalid","prop not for sale",100);return e=(o=new w).addInputFromTx(s,t),t={oper:W.propSale,pid:n.pid,prev:{hash:e.prevout.hash,index:e.prevout.index},fixed:i,period:this.db.curHeight+O.BLOCK_DAY},n=_.fromScript(x.createScript(Buffer.from(JSON.stringify(t)),x.types.NULLDATA),0),o.outputs.push(n),await this.sign(o,null,N.SINGLE|N.ANYONECANPAY),e=o.commit(),r(e[0].verify(e[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.send(e[0]),e}async propBuy(e,t,i){let r=null;try{(a=await this.db.client.execute("getPropById",[e]))&&(r=a[0])}catch(e){console.log("remote get prop by id",e.message)}if(!(r=r||this.db.propList.get(e))||r.pst!=$.Sale||!r.bid||!r.bid.raw)throw new F(L.errors.INVALID_PARAMS,"Invalid Tx Hash.");var a=H.fromRaw(Buffer.from(r.bid.raw,"hex")),s=(e=(await this.createReceive(i)).getAddress(),r.gold);if(t<s)throw new Error("wrong price");if(1<a.outputs.length&&t<a.outputs[1].value)throw new Error("low bid price than before");var n=w.fromTX(a,1);if(!n.outputs[0].getReturnType(B.OP_RETURN))throw new Error("not a sale order");return await this.remove(a.hash("hex")),n.view.addOutput({hash:n.inputs[0].prevout.hash,index:n.inputs[0].prevout.index},new _({value:r.gold})),t=new _({address:r.current.address,value:t}),n.addOutput(t),t={oper:W.propExchange,pid:r.pid,cid:r.cid,oid:r.oid,prev:{hash:n.inputs[0].prevout.hash,index:n.inputs[0].prevout.index}},e=_.fromScript(e,s,t),n.outputs.push(e),i?await this.fund(n,{allowPreInput:!0,account:i}):await this.fund(n,{allowPreInput:!0}),await this.sign(n,null,N.ALL,[0]),s=n.commit(),r.owned||this.db.client.watchOutpoint((new D).fromOptions(a.inputs[0].prevout)),await this.db.send(s[0]),s}async getTXByAmount(e,t){let i=null;var r;for(r of await this.getCoins(t))if(!(r.height<=0)&&r.value==e){i=r;break}return i&&(t=await this.getTX(i.hash))?[t.tx,i.index,i.height]:[]}async contractCreate(e,t,i,a,s){if(this.db.transactionList.query(e,a)!=K.None)throw new F(L.errors.TYPE_ERROR,"Contract with the same address finded.");if(0!=parseInt(t%1e3,10))throw new F(L.errors.TYPE_ERROR,"Contract source should an integer multiple of 1000.");if(!await U.checkSum(this.network,e,a))throw new F(L.errors.TYPE_ERROR,"Create contract with an invalid Address or a Address with old transations.");let n=!1,[o,c,u]=await this.getTXByAmount(t,s);if(!o){n=!0;var h=new w;let e="";e=(s?await this.createReceive(s):this).getAddress(),h.outputs.push(_.fromScript(e,t)),s?await this.fund(h,{allowPreInput:!0,account:s}):await this.fund(h,{allowPreInput:!0}),await this.sign(h),h=h.commit(),r(h[0].verify(h[1],x.flags.STANDARD_VERIFY_FLAGS)),o=h[0],c=0,u=-1}(h=new w).addInputFromTx(o,c,u);let l="";l=(s?await this.createReceive(s):this).getAddress();var p=await this.getKey(l);e={oper:W.contractCreate,type:e,addr:a,src:t,dst:i,srcact:s,alice:p.getPublicKey("hex"),period:this.db.curHeight+O.TRANSACTION_PERIOD},a=_.fromScript(x.createScript(Buffer.from(JSON.stringify(e)),x.types.NULLDATA),0),h.outputs.push(a),await this.sign(h,null,N.SINGLE|N.ANYONECANPAY),t=h.commit();return n&&await this.db.send(o),await this.db.send(t[0]),t}async contractPromise(e,t){if(!(e=this.db.transactionList.get(e))||e.transStatus!=K.CreatedOnMem)throw new F(L.errors.INVALID_PARAMS,"Invalid Tx id.");if(!(e=H.fromRaw(Buffer.from(e.raw,"hex"))))throw new F(L.errors.TYPE_ERROR,"Invalid Tx id.");var i=U.parseContract(e);if(!i||i.oper!==W.contractCreate)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");var r=w.fromTX(e,1);if(!r.outputs[0].getReturnType(B.OP_RETURN))throw new Error("not a valid contract");r.view.addOutput({hash:r.inputs[0].prevout.hash,index:r.inputs[0].prevout.index},new _({value:i.src}));let a="";a=(t?await this.createReceive(t):this).getAddress();var s=await this.getKey(a);e={oper:W.contractPromise,prevhash:e.hash("hex"),type:i.type,addr:i.addr,dst:i.dst,srcact:i.srcact,dstact:t,bob:s.getPublicKey("hex"),period:i.period},t=new x([z.fromSymbol("promise"),z.fromData(Buffer.from(JSON.stringify(e))),z.fromSymbol("drop"),z.fromSymbol("greaterthan"),z.fromSymbol("drop"),z.fromSymbol("if"),z.fromData(l.hash160(Buffer.from(e.bob,"hex"))),z.fromSymbol("else"),z.fromData(l.hash160(Buffer.from(i.alice,"hex"))),z.fromSymbol("endif"),z.fromSymbol("checksig")]),r.outputs.push(_.fromScript(t,i.src)),await this.remove(e.prevhash),await this.sign(r,null,N.ALL,[0]),s=r.commit();return await this.db.send(s[0]),e.current={hash:s[0].hash("hex"),index:0},e.raw=s[0].toRaw().toString("hex"),e.transStatus=K.Promised,this.db.transactionList.saveContract(e,!0),s}async contractExecute(e,t){if(!(e=this.db.transactionList.get(e))||e.transStatus!=K.Confirmed&&e.transStatus!=K.Expired)throw new F(L.errors.INVALID_PARAMS,"Invalid Tx id.");if(!(e=H.fromRaw(Buffer.from(e.raw,"hex"))))throw new F(L.errors.TYPE_ERROR,"Invalid Tx id.");t=t||1;var i=U.parseContract(e);if(!i||i.oper!==W.contractPromise)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");var a=e.outputs[1].getReturnData();if(!a||a.oper!==W.contractPromise)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");r.strictEqual(i.addr,a.addr),r.strictEqual(i.type,a.type),r.strictEqual(i.dst,a.dst),r.strictEqual(i.period,a.period),r.strictEqual(i.srcact,a.srcact),r.strictEqual(i.dstact,a.dstact);var s=this.db.transactionList.query(i.type,i.addr);if(s!=K.Confirmed&&s!=K.Expired)throw new F(L.errors.TYPE_ERROR,"Contract Promise not Check yet.");if(s==K.Expired&&1!=t||s==K.Confirmed&&2!=t)throw new F(L.errors.TYPE_ERROR,"Invalid Executor.");let n=i.srcact,o=(2==t&&(n=i.dstact),"");o=(n?await this.createReceive(n):this).getAddress();var c=new w,u=(c.addInputFromTx(e,1),{oper:W.contractExecute,type:i.type,addr:i.addr,master:t});u=_.fromScript(x.createScript(Buffer.from(JSON.stringify(u)),x.types.NULLDATA),0),c.outputs.push(u),u=_.fromScript(o,e.outputs[1].value),c.outputs.push(u),e=1==t?await P.fromPublic(Buffer.from(i.ori.alice,"hex")):await P.fromPublic(Buffer.from(a.bob,"hex")),u=await this.getKey(e.getAddress()),await c.signAsync(u,x.hashType.ALL,this.db.workers),t=c.commit();return r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS,s)),await this.db.send(t[0]),t}async htlcDeal(e,t){var i=await this.getTX(e.hash);let r=null;if(t){if(!(t=await this.getAccount(t)))throw new F(L.errors.TYPE_ERROR,"Invalid Account.");r=t.getReceive().toString()}else r=this.getReceive().toString();t=new w;var a=(new x).pushOp(B.OP_1);e.suggest&&a.pushData(Buffer.from(e.sa,"hex")),t.addInput({prevout:{hash:e.hash,index:e.index},script:a}),t.addOutput(r,i.tx.outputs[e.index].value-1e4),t.view.addOutput({hash:e.hash,index:e.index},new _(i.tx.outputs[e.index])),await this.sign(t,null,N.ALL),a=t.commit();return await this.db.send(a[0]),a}async htlcCancel(e,t){let i=null;var r=await this.getTX(e.hash);if(!(i=r?r.tx.outputs[e.index]:i))throw new F(L.errors.TYPE_ERROR,"Invalid Input.");let a=null;if(t){if(!(r=await this.getAccount(t)))throw new F(L.errors.TYPE_ERROR,"Invalid Account.");a=r.getReceive().toString()}else a=this.getReceive().toString();return t=new w,r=(new x).pushOp(B.OP_0),e.suggest&&r.pushData(Buffer.from(e.sa,"hex")),t.addInput({prevout:{hash:e.hash,index:e.index},script:r}),e.suggest?t.setSequence(0,2*O.HTLC_CANCEL_PERIOD,!1):t.setSequence(0,O.HTLC_CANCEL_PERIOD,!1),t.addOutput(a,i.value-1e4),t.view.addOutput({hash:e.hash,index:e.index},new _(i)),r=await this.getKey(e.master),await t.signAsync(r,x.hashType.ALL,this.db.workers),e=t.commit(),await this.db.send(e[0]),e}async sendContracts(e,t,i){var r,a=new w;for(r of e)a.outputs.push(i.create(r));return t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a),e=a.commit(),await this.db.addTX(e[0]),await this.db.send(e[0]),e}async tokenCreate(e,t="",i){r(e&&"object"==typeof e,"Token data should be a object"),r(e.cid,"Token data should has a cid property"),r(e.uid,"Token data should has a uid property"),e.time=!0,await this.ensureAccount({name:t,witness:!0});let a=null;if(i){if(!await this.belongToAccount(t,i))throw new F(L.errors.TYPE_ERROR,`tokenCreate address error: addr:${i} is not belongs to account:`+t);a=await this.getKey(i)}else a=await this.createReceive(t,n.hashInt(e.cid),this.master);return a.signData(e)}async sign(e,t,i=x.hashType.ALL,r){if(this.watchOnly)throw new Error("Cannot sign from a watch-only wallet.");return await this.unlock(t),t=await this.deriveInputs(e),e.signAsync(t,i,this.db.workers,r)}getCoinView(e){return this.txdb.getCoinView(e)}getSpentView(e){return this.txdb.getSpentView(e)}toDetails(e){return this.txdb.toDetails(e)}getDetails(e){return this.txdb.getDetails(e)}async getCoin(e,t){return this.txdb.getCoin(e,t)}async getCredit(e,t){return this.txdb.getCredit(e,t)}async getStatusOfSC(e){return this.txdb.getStatusOfSC(e)}async setStatusOfSC(e,t){var i=await this.writeLock.lock();try{this.txdb.start();try{await this.txdb._setStatusOfSC(e,t),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}}finally{i()}}getLockedCoins(){return this.txdb.lockedCoins.values}getTX(e){return this.txdb.getTX(e)}getBlocks(){return this.txdb.getBlocks()}getBlock(e){return this.txdb.getBlock(e)}async add(e,t,i){var r=await this.writeLock.lock();try{return await this._add(e,t,i)}finally{r()}}async _add(e,t,i){let r,a;this.txdb.start();try{(r=await this.txdb._add(e,t,i))&&(a=await this.syncOutputDepth(r)),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}return a&&0<a.length&&(this.db.emit("address",this.id,a),this.emit("address",a)),r}async resetBalance(){var e=await this.writeLock.lock();try{this.txdb.start();try{this.txdb.pending.unconfirmed=0,this.txdb.pending.confirmed=0;for(const e of await this.getAccounts()){var t=await this.getBalance(e);this.txdb.pending.unconfirmed+=t.unconfirmed,this.txdb.pending.confirmed+=t.confirmed}this.txdb.put(te.R,this.txdb.pending.commit()),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}}finally{e()}return this.txdb.state.toBalance()}async unconfirm(e){var t=await this.writeLock.lock();try{return await this.txdb.unconfirm(e)}finally{t()}}async remove(e){var t=await this.writeLock.lock();try{return await this.txdb.remove(e)}finally{t()}}async zap(e,t){var i=await this.writeLock.lock();try{return await this._zap(e,t)}finally{i()}}async _zap(e,t){return e=await this.ensureIndex(e),this.txdb.zap(e,t)}async abandon(e){var t=await this.writeLock.lock();try{return await this._abandon(e)}finally{t()}}_abandon(e){return this.txdb.abandon(e)}conserveCoin(e){return this.txdb.conserveCoin(e)}unConserveCoin(e){return this.txdb.unConserveCoin(e)}isConserved(e){return this.txdb.isConserved(e)}getConserved(){return this.txdb.getConserved()}async getHistory(e){return e=await this.ensureIndex(e),this.txdb.getHistory(e)}async getCoins(e){return e=await this.ensureIndex(e),this.txdb.getCoins(e)}async getCredits(e){return e=await this.ensureIndex(e),this.txdb.getCredits(e)}async getSmartCoins(e){var t=[];for(const r of await this.getCredits(e)){var i=r.coin;r.spent||this.txdb.isConserved(i)||-1===i.height&&!r.own||t.push(i)}return t}async getPending(e){return e=await this.ensureIndex(e),this.txdb.getPending(e)}async getBalance(e){return e=await this.ensureIndex(e),this.txdb.getBalance(e)}async queryBalanceLog(e,t=0){return(e=await this.ensureIndex(e))?this.db.queryBalanceLog(this.wid,e,t):[]}async getRange(e,t){return e&&"object"==typeof e&&(t=e,e=null),e=await this.ensureIndex(e),this.txdb.getRange(e,t)}async getLast(e,t){return e=await this.ensureIndex(e),this.txdb.getLast(e,t)}async ensureIndex(e,t){if(null==e){if(t)throw new Error("No account provided.");return null}if(-1===(t=await this.getAccountIndex(e)))throw new Error("Account not found.");return t}getAddress(e){return this.account.getAddress(e)}getReceive(e){return this.account.getReceive(e)}getChange(e){return this.account.getChange(e)}getNested(e){return this.account.getNested(e)}inspect(){return{wid:this.wid,id:this.id,network:this.network.type,initialized:this.initialized,accountDepth:this.accountDepth,token:this.token.toString("hex"),tokenDepth:this.tokenDepth,state:this.txdb.state?this.txdb.state.toJSON(!0):null,master:this.master,account:this.account}}toJSON(e){return{network:this.network.type,wid:this.wid,id:this.id,initialized:this.initialized,watchOnly:this.watchOnly,accountDepth:this.accountDepth,token:this.token.toString("hex"),tokenDepth:this.tokenDepth,height:this.db.curHeight,state:this.txdb.state.toJSON(!0),master:this.master.toJSON(e),account:this.account.toJSON(!0)}}getSize(){var e=0;return(e+=50)+o.sizeVarString(this.id,"ascii")+o.sizeVarlen(this.master.getSize())}toRaw(){var e=this.getSize();return(e=new f(e)).writeU32(this.network.magic),e.writeU32(this.wid),e.writeVarString(this.id,"ascii"),e.writeU8(this.initialized?1:0),e.writeU8(this.watchOnly?1:0),e.writeU32(this.accountDepth),e.writeBytes(this.token),e.writeU32(this.tokenDepth),e.writeVarBytes(this.master.toRaw()),e.render()}fromRaw(e){e=new d(e);var t=s.fromMagic(e.readU32());return this.wid=e.readU32(),this.id=e.readVarString("ascii"),this.initialized=1===e.readU8(),this.watchOnly=1===e.readU8(),this.accountDepth=e.readU32(),this.token=e.readBytes(32),this.tokenDepth=e.readU32(),this.master.fromRaw(e.readVarBytes()),r(t===this.db.network,"Wallet network mismatch."),this}static fromRaw(e,t){return new re(e).fromRaw(t)}static isWallet(e){return e instanceof re}async issueCreate(e,t,i){var r=new G(e),a=((a=(r.source.subjectName||(r.source.subjectName=r.erid),P.fromPrivate(Buffer.from(e.key,"hex"),!0,this.network))).witness=!0,r.sign(a,!0,this.network),r.toOptions(!0));return i?this.send({outputs:[{address:e.address,value:1e4}],comment:a},t):(r=await this.send({outputs:[{address:e.address,value:1e4}],comment:a},t),a.txid=r.txid()),a}async caAbolish(e,t,i){var r=P.fromPrivate(Buffer.from(e.key,"hex"),!0,this.network),a=(r.witness=!0,await this.db.client.execute("ca.byId",[e.erid]));if(!a)throw new F(L.errors.TYPE_ERROR,"ca.abolish: Invalid erid.");if(a.source.cid!=e.cid)throw new F(L.errors.TYPE_ERROR,"ca.abolish: Invalid cid.");if(a.source.uid!=e.uid)throw new F(L.errors.TYPE_ERROR,"ca.abolish: Invalid uid.");var s=a.signature;if(a.sign(r,!0,this.network),a.witness!=e.witness||a.signature!=s)throw new F(L.errors.TYPE_ERROR,"ca.abolish: You have no permission to abolish this witness.");return(a=new X(e)).sign(r),s=a.toOptions(!0),i?this.send({outputs:[{address:e.address,value:1e4}],comment:s},t):await this.send({outputs:[{address:e.address,value:1e4}],comment:s},t),s}async enchanceCp(e,t){var i=((e=new J(e)).oper="enchanceCp",await this.ensureCp(e.to)),r=await this.ensureCp(e.from);if(!(r=await this.getKey(r.pubAddress)))throw new F(L.errors.TYPE_ERROR,"Invalid cid, Not along to this wallet.");return e.sign(r),r=e.toOptions(!0),[await this.send({outputs:[{address:i.pubAddress,value:1e4}],comment:r},t),r]}async ensureCp(e,t=!1){if(await this.db.flushCP([e]),(e=this.db.cpList.getItem(e))||t)return e;throw new F(L.errors.TYPE_ERROR,"Invalid cid, cannot find cp.")}}e.exports=re},function(e,t,i){"use strict";
|
|
285
|
+
*/const r=i(0);var a=i(16);const s=i(15),n=i(2),o=i(3),c=i(35),u=i(198),h=i(140).sortWithSeq,l=i(6),p=i(94),d=i(1),f=i(4),m=i(69),g=i(334);i(218);const v=i(109),y=i(73),b=i(13),w=i(68),x=i(17),k=i(219),S=i(156),_=i(28),E=i(157),j=i(337),A=i(61),R=i(26),I=i(29),O=i(7),C=i(310),P=i(38),T=S.Mnemonic,{opcodes:B,hashType:N}=i(19),z=i(165),F=i(77),L=i(78),M=i(141),D=i(46),H=i(20),U=i(42),q=i(54),{NotifyMsg:V,ContractStatus:K,ContractType:W,PropStatus:$}=i(5),Y=i(37).VerifyError,G=i(153).ErItem,X=i(154).ErAbolishItem,J=i(228).EnchancementItem,Q=i(67),Z=i(59),ee=i(83),te=i(85).txdb,ie=i(31);class re extends a{constructor(e,t){super(),r(e,"DB required."),this.db=e,this.network=e.network,this.logger=e.logger,this.readLock=new u,this.writeLock=new c,this.sendLock=new c,this.indexCache=new A(1e4),this.accountCache=new A(1e4),this.pathCache=new A(1e5),this.current=null,this.wid=0,this.id=null,this.initialized=!1,this.watchOnly=!1,this.accountDepth=0,this.token=o.ZERO_HASH,this.tokenDepth=0,this.master=new j,this.txdb=new g(this),this.account=null,t&&this.fromOptions(t)}fromOptions(e){let t,i,a=e.master;return a?("string"==typeof a&&(a=S.PrivateKey.fromBase58(a,this.network)),r(S.isPrivate(a),"Must create wallet with hd private key.")):(i=new T(e.mnemonic),a=S.fromMnemonic(i,this.network)),r(a.network===this.network,"Network mismatch for master key."),this.master.fromKey(a,i),null!=e.wid&&(r(n.isU32(e.wid)),this.wid=e.wid),e.id&&(r(y.isName(e.id),"Bad wallet ID."),t=e.id),null!=e.initialized&&(r("boolean"==typeof e.initialized),this.initialized=e.initialized),null!=e.watchOnly&&(r("boolean"==typeof e.watchOnly),this.watchOnly=e.watchOnly),null!=e.accountDepth&&(r(n.isU32(e.accountDepth)),this.accountDepth=e.accountDepth),e.token&&(r(Buffer.isBuffer(e.token)),r(32===e.token.length),this.token=e.token),t=t||this.getID(),this.id=t,this}static fromOptions(e,t){return new re(e).fromOptions(t)}async init(e){var t=e.passphrase;r(!this.initialized),this.initialized=!0,t&&await this.master.encrypt(t),e=await this._createAccount(e,t);r(e),this.account=e,this.logger.info("Wallet initialized (%s).",this.id),await this.txdb.open()}async open(){r(this.initialized);var e=await this.getAccount(0);if(!e)throw new Error("Default account not found.");this.account=e,this.logger.info("Wallet opened (%s).",this.id),await this.txdb.open()}async ensureNotifyKey(){this.notifyKey||(await this.ensureAccount({name:"alliance",witness:!0}),this.notifyKey=await this.createReceive("alliance",1,this.master),this.notifyAddress=this.notifyKey.getAddress("string"))}async createAllianceInfo(e,t,i){var r={alliancename:e,nodeid:t};return e?(r.alliancePrivateKey=l.hash256(Buffer.concat([Buffer.from(e),this.master.key.privateKey])),i?(r.prv=Buffer.alloc(0),r.pub=Buffer.from(i,"hex"),r.awardAddress=b.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(this.network.type),r.mnemonic=new T):(i=l.hash256(Buffer.concat([Buffer.from(e+"-"+t),this.master.key.privateKey])),r.mnemonic=new T({entropy:i,language:this.master.mnemonic.language,passphrase:this.master.mnemonic.passphrase}),r.prv=l.hash256(Buffer.from(r.mnemonic.toSeed().toString("hex"))),r.pub=R.publicKeyCreate(r.prv,!0),e=j.fromKey(S.fromMnemonic(r.mnemonic),this.network.type).key.deriveAccount(44,0).derive(9).derive(1),r.awardAddress=b.fromWitnessPubkeyhash(l.hash160(e.publicKey),this.network.type).toString(this.network.type))):(r.mnemonic=T.fromOptions(this.master.mnemonic),r.prv=l.hash256(Buffer.from(r.mnemonic.toSeed().toString("hex"))),r.pub=R.publicKeyCreate(r.prv,!0),r.awardAddress=b.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(this.network.type)),r.address=b.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(),r}async destroy(){var e=await this.writeLock.lock(),t=await this.sendLock.lock();try{this.db.unregister(this),await this.master.destroy(),this.readLock.destroy(),this.writeLock.destroy(),this.sendLock.destroy()}finally{t(),e()}}async addSharedKey(e,t){var i=await this.writeLock.lock();try{return await this._addSharedKey(e,t)}finally{i()}}async _addSharedKey(e,t){if(t||(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");let i;this.start();try{i=await e.addSharedKey(t)}catch(e){throw this.drop(),e}return await this.commit(),i}async removeSharedKey(e,t){var i=await this.writeLock.lock();try{return await this._removeSharedKey(e,t)}finally{i()}}async _removeSharedKey(e,t){if(t||(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");let i;this.start();try{i=await e.removeSharedKey(t)}catch(e){throw this.drop(),e}return await this.commit(),i}async setPassphrase(e,t){e&&await this.decrypt(e),t&&await this.encrypt(t)}async encrypt(e){var t=await this.writeLock.lock();try{return await this._encrypt(e)}finally{t()}}async _encrypt(e){e=await this.master.encrypt(e,!0),this.start();try{await this.db.encryptKeys(this,e)}catch(t){throw p(e),this.drop(),t}p(e),this.save(),await this.commit()}async decrypt(e){var t=await this.writeLock.lock();try{return await this._decrypt(e)}finally{t()}}async _decrypt(e){e=await this.master.decrypt(e,!0),this.start();try{await this.db.decryptKeys(this,e)}catch(t){throw p(e),this.drop(),t}p(e),this.save(),await this.commit()}async rename(e){var t=await this.writeLock.lock();try{return await this.db.rename(this,e)}finally{t()}}async writeBalanceLog(e){var t=await this.writeLock.lock();try{return await this.db.writeBalanceLog(this,e)}finally{t()}}async renameAccount(e,t){var i=await this.writeLock.lock();try{return await this._renameAccount(e,t)}finally{i()}}async _renameAccount(e,t){if(!y.isName(t))throw new Error("Bad account name.");var i=await this.getAccount(e);if(!i)throw new Error("Account not found.");if(0===i.accountIndex)throw new Error("Cannot rename default account.");if(await this.hasAccount(t))throw new Error("Account name not available.");e=i.name,this.start(),this.db.renameAccount(i,t),await this.commit(),this.indexCache.remove(e),e=this.pathCache.values();for(const r of e)r.account===i.accountIndex&&(r.name=t)}async lock(){var e=await this.writeLock.lock(),t=await this.sendLock.lock();try{await this.master.lock()}finally{t(),e()}}unlock(e,t){return this.master.unlock(e,t)}getID(){r(this.master.key,"Cannot derive id.");var e,t=this.master.key.derive(44);(e=new f(37)).writeBytes(t.publicKey),e.writeU32(this.network.magic),t=l.hash160(e.render());return(e=new f(27)).writeU8(3),e.writeU8(190),e.writeU8(4),e.writeBytes(t),e.writeChecksum(),m.encode(e.render())}async createAccount(e,t){var i=await this.writeLock.lock();try{return await this._createAccount(e,t)}finally{i()}}async _createAccount(e,t){let i,a,s=e.name,o=(s=s||this.accountDepth.toString(10),0);if(0!=this.accountDepth&&(o=n.hashInt(s)),await this.hasAccountIndex(o))throw new Error("Account Index Conflict.");if(await this.hasAccount(s))throw new Error("Account already exists.");if(await this.unlock(t),this.watchOnly&&e.accountKey){if("string"==typeof(i=e.accountKey)&&(i=S.PublicKey.fromBase58(i,this.network)),!S.isPublic(i))throw new Error("Must add HD public keys to watch only wallet.");r(i.network===this.network,"Network mismatch for watch only key.")}else r(this.master.key),i=(i=this.master.key.deriveAccount(44,o)).toPublic();t={wid:this.wid,id:this.id,name:0===this.accountDepth?"default":s,witness:e.witness,watchOnly:this.watchOnly,accountKey:i,accountIndex:o,type:e.type,m:e.m,n:e.n,keys:e.keys},this.start();try{(a=E.fromOptions(this.db,t)).wallet=this,await a.init()}catch(e){throw this.drop(),e}return this.logger.info("Created account %s/%s/%d.",a.id,a.name,a.accountIndex),this.accountDepth++,this.save(),await this.commit(),a}async ensureAccount(e,t){var i=e.name;return(i=await this.getAccount(i))||this.createAccount(e,t)}getAccounts(){return this.db.getAccounts(this.wid)}getAccountMap(){return this.db.getAccountMap(this.wid)}getAddressHashes(e){return null!=e?this.getAccountHashes(e):this.db.getWalletHashes(this.wid)}async getAccountHashes(e){return e=await this.ensureIndex(e,!0),this.db.getAccountHashes(this.wid,e)}async getAccount(e){if(this.account&&(null==e||"default"===e||"number"==typeof e&&0===e||"string"==typeof e&&0===e.length))return this.account;if(-1===(e=await this.getAccountIndex(e)))return null;var t=await this.readLock.lock(e);try{return await this._getAccount(e)}finally{t()}}async _getAccount(e){var t=this.accountCache.get(e);return t||((t=await this.db.getAccount(this.wid,e))?(t.wallet=this,t.wid=this.wid,t.id=this.id,t.watchOnly=this.watchOnly,await t.open(),this.accountCache.set(e,t),t):null)}async getAccountIndex(e){var t;return null==e?-1:"number"==typeof e?e:null!=(t=this.indexCache.get(e))?t:-1===(t=await this.db.getAccountIndex(this.wid,e))?-1:(this.indexCache.set(e,t),t)}async getAccountName(e){var t;return"string"==typeof e?e:(t=this.accountCache.get(e))?t.name:this.db.getAccountName(this.wid,e)}async hasAccount(e){return-1!==(e=await this.getAccountIndex(e))&&(!!this.accountCache.has(e)||this.db.hasAccount(this.wid,e))}async hasAccountIndex(e){return!!this.accountCache.has(e)||this.db.hasAccount(this.wid,e)}createReceive(e,t=0,i=null){return this.createKey(e,0,t,i)}createChange(e){return this.createKey(e,1)}createNested(e){return this.createKey(e,2)}async createKey(e,t,i=0,r=null){var a=await this.writeLock.lock();try{return await this._createKey(e,t,i,r)}finally{a()}}async _createKey(e,t,i=0,r=null){if(null==t&&(t=e,e=null),!(e=await this.getAccount(e=e||0)))throw new Error("Account not found.");let a;this.start();try{a=await e.createKey(t,i,r)}catch(e){throw this.drop(),e}return await this.commit(),a}async deriveKey(e,t,i,r=null){let a=null;var s=await this.writeLock.lock();try{this.start(),a=await this._deriveKey(e,t,i,r),await this.commit()}catch(e){throw this.drop(),e}finally{s()}return a}async _deriveKey(e,t,i=0,r=null){if(null==t&&(t=e,e=null),e=e||0,e=parseInt(e),e=await this.getAccount(e))return t=await e.deriveKey(t,i,r),await e.saveKey(t),t;throw new Error("Account not found.")}save(){return this.db.save(this)}async saveAccount(e){var t=await this.writeLock.lock();try{this.start(),e._save(),await this.commit(),0==e.accountIndex&&(this.account=e)}finally{t()}}start(){return this.db.start(this)}drop(){return this.db.drop(this)}clear(){return this.db.clear(this)}commit(){return this.db.commit(this)}async hasAddress(e){return e=b.getHash(e,"hex"),null!=await this.getPath(e)}async ownedAddress(e){return!!await this.getKey(e)}async getPath(e){return(e=await this.readPath(e))?(e.name=await this.getAccountName(e.account),r(e.name),this.pathCache.set(e.hash,e),e):null}async readPath(e){e=b.getHash(e,"hex");var t=this.pathCache.get(e);return t||((t=await this.db.getPath(this.wid,e))?(t.id=this.id,t):null)}async hasPath(e){return e=b.getHash(e,"hex"),!!this.pathCache.has(e)||this.db.hasPath(this.wid,e)}async getPaths(e){if(null!=e)return this.getAccountPaths(e);var t=[];for(const e of await this.db.getWalletPaths(this.wid))e.id=this.id,e.name=await this.getAccountName(e.account),r(e.name),this.pathCache.set(e.hash,e),t.push(e);return t}async getAccountPaths(e){var t=await this.ensureIndex(e,!0),i=await this.getAccountHashes(t),a=await this.getAccountName(e),s=(r(a),[]);for(const e of i){var n=await this.readPath(e);r(n),r(n.account===t),n.name=a,this.pathCache.set(n.hash,n),s.push(n)}return s}async importKey(e,t,i){var r=await this.writeLock.lock();try{return await this._importKey(e,t,i)}finally{r()}}async _importKey(e,t,i){if(e&&"object"==typeof e&&(i=t,t=e,e=null),null==e&&(e=0),r(t.network===this.network,"Network mismatch for key."),this.watchOnly){if(t.privateKey)throw new Error("Cannot import privkey into watch-only wallet.")}else if(!t.privateKey)throw new Error("Cannot import pubkey into non watch-only wallet.");var a=t.getHash("hex");if(await this.getPath(a))throw new Error("Key already exists.");if(!(a=await this.getAccount(e)))throw new Error("Account not found.");if(a.type!==E.types.PUBKEYHASH)throw new Error("Cannot import into non-pkh account.");await this.unlock(i),e=k.fromRing(a,t).toPath(),this.master.encrypted&&(e.data=this.master.encipher(e.data,e.hash),r(e.data),e.encrypted=!0),this.start();try{await a.savePath(e)}catch(e){throw this.drop(),e}await this.commit()}async importAddress(e,t){var i=await this.writeLock.lock();try{return await this._importAddress(e,t)}finally{i()}}async _importAddress(e,t){if(t||(t=e,e=null),null==e&&(e=0),t.network!==this.network)throw new Error("Network mismatch for address.");if(!this.watchOnly)throw new Error("Cannot import address into non watch-only wallet.");if(await this.getPath(t))throw new Error("Address already exists.");if(!(e=await this.getAccount(e)))throw new Error("Account not found.");if(e.type!==E.types.PUBKEYHASH)throw new Error("Cannot import into non-pkh account.");t=v.fromAddress(e,t),this.start();try{await e.savePath(t)}catch(e){throw this.drop(),e}await this.commit()}async fund(e,t){var i=await this.writeLock.lock();try{return await this._fund(e,t)}finally{i()}}async _fund(e,t){if(t=t||{},!this.initialized)throw new Error("Wallet is not initialized.");if(this.watchOnly)throw new Error("Cannot fund from watch-only wallet.");let i;if(null!=t.account){if(!(i=await this.getAccount(t.account)))throw new Error("Account not found.")}else i=this.account;if(!i.initialized)throw new Error("Account is not initialized.");let a,s=t.rate;return null==s&&(s=await this.db.estimateFee(t.blocks)),a=t.smart?await this.getSmartCoins(i.name):(a=await this.getCoins(i.name),this.txdb.filterConserved(a)),await e.fund(a,{allowPreInput:t.allowPreInput,noChange:t.noChange,selection:t.selection,round:t.round,depth:t.depth,hardFee:t.hardFee,subtractFee:t.subtractFee,subtractIndex:t.subtractIndex,changeAddress:i.change.getAddress(),height:this.db.curHeight,rate:s,maxFee:t.maxFee,estimate:e=>this.estimateSize(e),network:this.network}),!t.allowInfiniteFee&&t.noChange&&r(e.getFee()<=C.MAX_FEE,"TX exceeds MAX_FEE."),a}async getAccountByAddress(e){return e=b.getHash(e,"hex"),(e=await this.getPath(e))?this.getAccount(e.account):null}async estimateSize(e){var t=O.WITNESS_SCALE_FACTOR,i=b.fromScript(e);if(!i)return-1;var r=await this.getAccountByAddress(i);if(!r)return-1;let a=0;if(e.isScripthash()&&r.witness)switch(r.type){case E.types.PUBKEYHASH:a=4*(a+23);break;case E.types.MULTISIG:a=4*(a+35)}switch(r.type){case E.types.PUBKEYHASH:a=a+74+34;break;case E.types.MULTISIG:a=(a=(a=(a=(a+=1)+74*r.m)+3+1)+34*r.n)+1+1}return r.witness?a=((a+=1)+t-1)/t|0:a+=o.sizeVarint(a),a}async createTX(e){var t=e.outputs,i=new w;r(Array.isArray(t),"Outputs must be an array."),r(0<t.length,"No outputs available."),e.comment&&("object"==typeof e.comment&&(e.comment=JSON.stringify(e.comment)),i.outputs.push(_.fromScript(x.createScript(Buffer.from(e.comment),x.types.NULLDATA),0)));for(const e of t){var a=new _(e),s=a.getAddress();if(a.isDust())throw new Error("Output is dust.");if(0<a.value){if(!s)throw new Error("Cannot send to unknown address.");if(s.isNull())throw new Error("Cannot send to null address.")}i.outputs.push(a)}let n=null;if(e.inputs)for(const t of e.inputs){var o=await this.getTX(t.hash);o&&(o=q.fromTX(o.tx,t.index,-1,0))&&(n=o.getAddress(),e.allowPreInput=!0,i.addCoin(o))}else await this.fund(i,e);if(n&&((t=new _).value=i.getFee()-C.MIN_FEE,t.script.fromAddress(n),i.outputs.push(t),i.changeIndex=i.outputs.length-1),!1!==e.sort&&i.sortMembers(),null!=e.locktime&&i.setLocktime(e.locktime),r(i.isSane(),"TX failed sanity check."),r(i.verifyInputs(this.db.curHeight+1),"TX failed context check."),0===await this.template(i))throw new Error("Templating failed.");return i}async send(e,t){var i=await this.sendLock.lock();try{return await this._send(e,t)}finally{i()}}async _send(e,t){return t&&(e.account=t),t=await this.createTX(e,!0),await this.sign(t),this.sendMTX(t,{sendafter:e.sendafter})}async sendMTX(e,t={}){if(!e.isSigned())throw new Error("TX could not be fully signed.");var i=e.toTX();if(i.getSigopsCost(e.view)>I.MAX_TX_SIGOPS_COST)throw new Error("TX exceeds policy sigops.");if(i.getWeight()>I.MAX_TX_WEIGHT)throw new Error("TX exceeds policy weight.");return t.sendafter||(this.logger.debug("Sending wallet tx (%s): %s",this.id,i.txid()),await this.db.addTX(i),await this.db.send(i)),i}async resend(){var e=await this.getPending(),t=(0<e.length&&this.logger.info("Rebroadcasting %d transactions.",e.length),[]);for(const i of e)t.push(i.tx);for(const e of h(t))await this.db.send(e);return t}async deriveInputs(e){r(e.mutable);var t=[];for(const r of await this.getInputPaths(e)){var i=await this.getAccount(r.account);i&&(i=i.derivePath(r,this.master))&&t.push(i)}return t}async getKey(e){try{var t,i=b.getHash(e,"hex",this.network.type),r=await this.getPath(i);return r&&(t=await this.getAccount(r.account))?t.derivePath(r,this.master):null}catch{return null}}async exportToFile(e){if(!Z.unsupported){var t=await this.db.getTip(),i=n.date();let o="",c=[n.fmt("# Wallet Dump created by %s %s",ee.protocol,ee.version),n.fmt("# * Created on %s",i),n.fmt("# * Best block at time of backup was %d (%s).",t.height,n.revHex(t.hash)),n.fmt("# * File: %s",e.file),""];var r,a;t=n.fmt("W %s wid= %s",this.toRaw().toString("base64"),this.wid),t=(c.push(t),await this.getAccounts());for(const e of t){var s=await this.getAccount(e);s=n.fmt("C %s name= %s index= %d",s.toRaw().toString("base64"),s.name,s.accountIndex);c.push(s)}for(const t of await this.getAddressHashes())this.watchOnly?(r=b.fromWitnessPubkeyhash(Buffer.from(t,"hex"),this.network.type).toString(),r=n.fmt("A %s %s label= account= %s branch= %s index= %s addr= %s","S",i,0,-1,-1,r),c.push(r)):(r=await this.getPrivateKey(t))&&(a=r.getAddress("string"),a=n.fmt("A %s %s label= account= %s branch= %s index= %s addr= %s",r.toSecret(),i,r.account,r.branch,r.index,a),c.push(a),e.fragment)&&1e5<c.length&&(o=c.join("\n"),await Z.writeFile(e.file.split(".").reduce((e,t)=>(e?e+="."+t:e=t+"-1",e),""),o,"utf8"),c=[]);c.push(""),c.push("# End of dump"),c.push(""),o=c.join("\n"),await Z.writeFile(e.file,o,"utf8")}}async getPrivateKey(e,t){if(e=b.getHash(e,"hex"),!(e=await this.getPath(e)))return null;var i=await this.getAccount(e.account);return i?(await this.unlock(t),(t=i.derivePath(e,this.master)).privateKey?t:null):null}async getInputPaths(e){if(r(e.mutable),!e.hasCoins())throw new Error("Not all coins available.");var t=[];for(const r of e.getInputHashes("hex")){var i=await this.getPath(r);i&&t.push(i)}return t}async getOutputPaths(e){var t=[];for(const r of e.getOutputHashes("hex")){var i=await this.getPath(r);i&&t.push(i)}return t}async setLookahead(e,t){var i=await this.writeLock.lock();try{return this._setLookahead(e,t)}finally{i()}}async _setLookahead(e,t){if(null==t&&(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");this.start();try{await e.setLookahead(t)}catch(e){throw this.drop(),e}await this.commit()}async syncOutputDepth(e){var t=new Map;for(const r of e.outputs){var i=r.path;i&&-1!==i.index&&(t.has(i.account)||t.set(i.account,[]),t.get(i.account).push(i))}var a,s,n=[];for([a,s]of t){let e=-1,t=-1,i=-1;for(const r of s)switch(r.branch){case 0:r.index>e&&(e=r.index);break;case 1:r.index>t&&(t=r.index);break;case 2:r.index>i&&(i=r.index)}e+=2,t+=2,i+=2;var o=await this.getAccount(a);(o=(r(o),await o.syncDepth(e,t,i)))&&n.push(o)}return n}async getRedeem(e){"string"==typeof e&&(e=Buffer.from(e,"hex"));var t=await this.getKey(e.toString("hex"));return t?t.getRedeem(e):null}async template(e){var t=await this.deriveInputs(e);return e.sign(t)}async onSaleList(e,t){return(await(await this.getPropList()).predict(async(e,i)=>!!i.bid&&await this.belongToAccount(t,i.bid.address))).where([["pst",$.Sale]]).paginate(10,e).records()}async mySaleList(e,t){return(await(await this.getPropList()).predict(async(e,i)=>this.belongToAccount(t,i.current.address))).where([["pst",$.Sale]]).paginate(10,e).records()}async getPropList(){const e=await this.db.loadVpList();var t=[];for(let i=0;i<e.length;i++){let r=e[i];t.push((async()=>{await this.getPrivateKey(r.current.address)&&(e[i]=[r.pid,r])})())}return await Promise.all(t),new ie(e)}async propCreate(e,t){var i,a=new w;for(i of e){var s=await this.ensureCp(i.cid,!0);!s||i.cid==this.network.genesisId||(i.gold=(0|i.gold)>>>0,i.gold<O.MINPROPVALUE)||(i.pid||(i.pid=M()),i.oid||(i.oid=i.pid),a.propCreate(s.current.address,i),i.index=a.outputs.length-1)}if(0<a.outputs.length){t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a);var n,o=a.commit();for(n of(await this.db.addTX(o[0]),await this.db.send(o[0]),r(o[0].verify(o[1],x.flags.STANDARD_VERIFY_FLAGS)),e))n.hash=o[0].hash("hex"),n.txid=o[0].txid();return o}return[]}async attach(e,t){var i,a=new w;for(i of e)a.attach(i.address,i.value,i.data);if(0<a.outputs.length){t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a);var s,n=a.commit();for(s of(await this.db.addTX(n[0]),await this.db.send(n[0]),r(n[0].verify(n[1],x.flags.STANDARD_VERIFY_FLAGS)),e))s.hash=n[0].hash("hex"),s.txid=n[0].txid();return n}return[]}async sendSecret(e,t,i){let r=this.db.$contacts.get(e);if(!r||!r.sender){var a=(await this.createReceive(i)).getAddress("string");if(e==a)throw new F(L.errors.TYPE_ERROR,"Forbid Sending to Self Address.");r=await this.db.ensureContact({contact:e,messenger:a,wallet:this,account:i})}if(r)return r.send(t);throw new F(L.errors.TYPE_ERROR,"Invalid Address.")}async commNotify(e){r(!!e),r(!!e.dst),r(!!e.content);var t=new w,i=e.src||this.getReceive().toString(),a=(i=new V(W.notify,M(),this.db.curHeight,{src:i,content:e.content}),_.fromScript(x.createScript(i.toRaw(),x.types.NULLDATA),0));t.outputs.push(a),a={address:e.dst,locktime:O.BLOCK_DAY,locktype:"csb",value:.1*O.COIN},t.outputs.push(new _(a)),e.account?await this.fund(t,{account:e.account,noChange:!0,allowInfiniteFee:!0}):await this.fund(t,{noChange:!0,allowInfiniteFee:!0}),await this.sign(t),a=t.commit();return r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.addTX(a[0]),this.logger.debug("Sending tx on wallet(%s): %s",this.id,a[0].txid()),await this.db.send(a[0]),i.hash=a[0].hash("hex"),i.height=-1,i}async cpRegister(e,t,i,a){if(r(!!t&&"object"==typeof t),!await this.db.client.execute("canExecute",[{confirm:!1,cid:t.cid,name:t.name,oper:W.cpRegister}]))throw new F(L.errors.TYPE_ERROR,"Invalid CP Register Info.");const s=new w;e||(n=await this.createReceive(i),e=n.getAddress());var n=await this.getKey(e);if(!n)throw new F(L.errors.TYPE_ERROR,"Invalid CP Register Address, Not along to this wallet.");if(t.pubAddress=e.toString(),t.pubKey=n.getPublicKey("hex"),t.signMethod="secp256k1",n=await this.createAllianceInfo(),t.register=n.pub.toString("hex"),s.cpRegister(e,O.registerFee,t),n=async()=>{i?await this.fund(s,{account:i}):await this.fund(s),await this.sign(s);var a=s.commit();return r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.addTX(a[0]),await this.db.send(a[0]),t.txid=a[0].txid(),t.addr=e.toString(),a},!a)return n();n()}getSCAddress(e){return e=Q.fromMnemonic(T.fromOptions(O.SmartContractMnemonic),this.network).deriveAccount(44,e).derive(9).derive(1),b.fromWitnessPubkeyhash(l.hash160(e.publicKey),this.network)}async cpChange(e,t){var i=await this.ensureCp(e.cid);if(i.cid==this.network.genesisId||"ATHENA"==i.name)throw new F(L.errors.TYPE_ERROR,"Invalid cp name.");var a=await this.getTX(i.current.hash);if(!a)throw new F(L.errors.TYPE_ERROR,"Do not have permission to change this info.");if(a=a.tx,!await this.belongToAccount(t,a.outputs[0].getAddress()))throw new F(L.errors.TYPE_ERROR,"Invalid account info.");if(e.newName){if(!await this.db.client.execute("canExecute",[{confirm:!1,cid:i.cid,name:e.newName,oper:W.cpChange}]))throw new F(L.errors.TYPE_ERROR,"Invalid CP Change Info.")}else e.newName=i.name;return e.addr||(e.addr=b.fromString(i.current.address)),i=w.cpChange(a,e),t?await this.fund(i,{allowPreInput:!0,account:t}):await this.fund(i,{allowPreInput:!0}),await this.sign(i),a=i.commit(),await this.db.send(a[0]),r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),e.txid=a[0].txid(),a}async propExchangeList(e,t,i=!1){var a,s,n,o=new w,c=[];for([a,s,n]of e){var u,h=null;if(h=await this.getTX(a.hash)){if(h=h.tx,u=a.index,h&&h.outputs&&!(h.outputs.length<=u)){if(i){if(!await this.ownedAddress(h.outputs[u].getAddress())){this.logger.error("not owned prop:",a.hash,a.index);continue}}else if(!await this.belongToAccount(t,h.outputs[u].getAddress())){this.logger.error("not owned prop:",a.hash,a.index);continue}var l=h.outputs[u].getReturnData();l&&(o.propExchange(h,u,s),l.index=o.outputs.length-1,l.addr=s.toString(),c.push(l))}}else this.logger.error("tx not find:",a.hash,n)}return t?await this.fund(o,{allowPreInput:!0,account:t}):await this.fund(o,{allowPreInput:!0}),await this.sign(o),e=o.commit(),await this.db.addTX(e[0]),await this.db.send(e[0]),r(e[0].verify(e[1],x.flags.STANDARD_VERIFY_FLAGS)),e.push(c),e}async propDonate(e,t){var i=e.index;if(!(e=await this.getTX(e.hash))||!e.tx||!e.tx.outputs||e.tx.outputs.length<=i)throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");if(!await this.belongToAccount(t,e.tx.outputs[i].getAddress()))throw new F(L.errors.TYPE_ERROR,"Props that do not belong to you.");if(!(t=e.tx.outputs[i].getReturnData()))throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");if(t.cid&&t.cid==this.network.genesisId)throw new Y(e.tx,"invalid","Special props that can not to donate",100);var r=new w;return(e=(r.addInputFromTx(e.tx,i),r.addOutput(x.createScript(Buffer.from(JSON.stringify({value:e.tx.outputs[i].value,cid:t.cid,pid:t.pid,oid:t.oid,gaddr:this.getAddress().toString(this.network)})),x.types.NULLDATA),0),await this.sign(r,null,N.NONE|N.ANYONECANPAY),r.commit())).push(t),e}async propReceive(e,t){var i=(e=w.fromTX(e,1)).inputs[0].prevout,r=e.outputs[0].getReturnData();e.view.addOutput({hash:e.inputs[0].prevout.hash,index:e.inputs[0].prevout.index},new _({value:r.value})),e.outputs.pop();let a=this.getAddress().toString(this.network);t&&(s={cid:r.cid,uid:t},a=(s=await this.tokenCreate(s,t)).data.addr),e.outputs.push(_.fromScript(a,r.value,{oper:W.propExchange,pid:r.pid,cid:r.cid,oid:r.oid,prev:{hash:i.hash,index:i.index}})),t?await this.fund(e,{allowPreInput:!0,account:t}):await this.fund(e,{allowPreInput:!0}),await this.sign(e,null,N.ALL,[0]);var s=e.commit();return await this.db.send(s[0]),r.simAddr=a,[s[0],null,r]}async belongToAccount(e,t){return!!t&&!(!(t=await this.getAccountByAddress(t))||e&&t.name!==e)}async propExchange(e,t,i){let a=null,s=0;var n;return Array.isArray(e)?(a=e[0],s=e[1]):(n=await this.getTX(e.hash))&&(a=n.tx,s=e.index),!a||!a.outputs||a.outputs.length<=s?(this.logger.error("Invalid tx info."),null):await this.ownedAddress(a.outputs[s].getAddress())?(n=a.outputs[s].getReturnData())?(e=(new w).propExchange(a,s,t),n.index=e.outputs.length-1,i?await this.fund(e,{allowPreInput:!0,account:i}):await this.fund(e,{allowPreInput:!0}),await this.sign(e),t=e.commit(),await this.db.addTX(t[0]),await this.db.send(t[0]),r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS)),t.push(n),t):(this.logger.error("Invalid tx info."),null):(this.logger.error("Invalid user."),null)}async propFound(e,t,i){if(e=await this.getTX(e),r(e),!(e=e.tx))throw new F(L.errors.TYPE_ERROR,"Invalid hex string.");var a=e.outputs[t],s=a.getReturnData();if(!s||s.oper!==W.propExchange&&s.oper!==W.propCreate)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");if(s.cid==this.network.genesisId)throw new Y(block,"invalid","prop found supertoken",100);var n=new w;n.addInputFromTx(e,t),e=_.fromScript(a.getAddress(),a.value),n.outputs.push(e),i?await this.fund(n,{allowPreInput:!0,subtractFee:!0,account:i}):await this.fund(n,{allowPreInput:!0,subtractFee:!0}),await this.sign(n),t=n.commit();return await this.db.send(t[0]),r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS)),t.push(s),t}async propSale(e,t,i,a){let s=await this.getTX(e);if(!s)throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");if(s.getDepth(this.db.curHeight)<=0)throw new F(L.errors.TYPE_ERROR,"No enough confirmations.");if(!(s=s.tx))throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");var n=s.outputs[t].getReturnData([x.opcodes.OP_PROPEXCHANGE,x.opcodes.OP_PROPCREATE]);if(!n)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");if(!await this.ownedAddress(s.outputs[t].getAddress()))throw new F(L.errors.TYPE_ERROR,"Invalid tx info.");var o=await this.getCoin(e,t);if(!o||-1===o.height)throw new F(L.errors.WALLET_INSUFFICIENT_FUNDS,"Invalid coin.");if(await this.txdb.isSpent(e,t))throw new F(L.errors.WALLET_INSUFFICIENT_FUNDS,"Invalid coin.");if(i<=s.outputs[t].value)throw new F(L.errors.TYPE_ERROR,"Invalid fixed price.");if(n.cid==this.network.genesisId)throw new Y(s,"invalid","prop not for sale",100);return e=(o=new w).addInputFromTx(s,t),t={oper:W.propSale,pid:n.pid,prev:{hash:e.prevout.hash,index:e.prevout.index},fixed:i,period:this.db.curHeight+O.BLOCK_DAY},n=_.fromScript(x.createScript(Buffer.from(JSON.stringify(t)),x.types.NULLDATA),0),o.outputs.push(n),await this.sign(o,null,N.SINGLE|N.ANYONECANPAY),e=o.commit(),r(e[0].verify(e[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.send(e[0]),e}async propBuy(e,t,i){let r=null;try{(a=await this.db.client.execute("getPropById",[e]))&&(r=a[0])}catch(e){console.log("remote get prop by id",e.message)}if(!(r=r||this.db.propList.get(e))||r.pst!=$.Sale||!r.bid||!r.bid.raw)throw new F(L.errors.INVALID_PARAMS,"Invalid Tx Hash.");var a=H.fromRaw(Buffer.from(r.bid.raw,"hex")),s=(e=(await this.createReceive(i)).getAddress(),r.gold);if(t<s)throw new Error("wrong price");if(1<a.outputs.length&&t<a.outputs[1].value)throw new Error("low bid price than before");var n=w.fromTX(a,1);if(!n.outputs[0].getReturnType(B.OP_RETURN))throw new Error("not a sale order");return await this.remove(a.hash("hex")),n.view.addOutput({hash:n.inputs[0].prevout.hash,index:n.inputs[0].prevout.index},new _({value:r.gold})),t=new _({address:r.current.address,value:t}),n.addOutput(t),t={oper:W.propExchange,pid:r.pid,cid:r.cid,oid:r.oid,prev:{hash:n.inputs[0].prevout.hash,index:n.inputs[0].prevout.index}},e=_.fromScript(e,s,t),n.outputs.push(e),i?await this.fund(n,{allowPreInput:!0,account:i}):await this.fund(n,{allowPreInput:!0}),await this.sign(n,null,N.ALL,[0]),s=n.commit(),r.owned||this.db.client.watchOutpoint((new D).fromOptions(a.inputs[0].prevout)),await this.db.send(s[0]),s}async getTXByAmount(e,t){let i=null;var r;for(r of await this.getCoins(t))if(!(r.height<=0)&&r.value==e){i=r;break}return i&&(t=await this.getTX(i.hash))?[t.tx,i.index,i.height]:[]}async contractCreate(e,t,i,a,s){if(this.db.transactionList.query(e,a)!=K.None)throw new F(L.errors.TYPE_ERROR,"Contract with the same address finded.");if(0!=parseInt(t%1e3,10))throw new F(L.errors.TYPE_ERROR,"Contract source should an integer multiple of 1000.");if(!await U.checkSum(this.network,e,a))throw new F(L.errors.TYPE_ERROR,"Create contract with an invalid Address or a Address with old transations.");let n=!1,[o,c,u]=await this.getTXByAmount(t,s);if(!o){n=!0;var h=new w;let e="";e=(s?await this.createReceive(s):this).getAddress(),h.outputs.push(_.fromScript(e,t)),s?await this.fund(h,{allowPreInput:!0,account:s}):await this.fund(h,{allowPreInput:!0}),await this.sign(h),h=h.commit(),r(h[0].verify(h[1],x.flags.STANDARD_VERIFY_FLAGS)),o=h[0],c=0,u=-1}(h=new w).addInputFromTx(o,c,u);let l="";l=(s?await this.createReceive(s):this).getAddress();var p=await this.getKey(l);e={oper:W.contractCreate,type:e,addr:a,src:t,dst:i,srcact:s,alice:p.getPublicKey("hex"),period:this.db.curHeight+O.TRANSACTION_PERIOD},a=_.fromScript(x.createScript(Buffer.from(JSON.stringify(e)),x.types.NULLDATA),0),h.outputs.push(a),await this.sign(h,null,N.SINGLE|N.ANYONECANPAY),t=h.commit();return n&&await this.db.send(o),await this.db.send(t[0]),t}async contractPromise(e,t){if(!(e=this.db.transactionList.get(e))||e.transStatus!=K.CreatedOnMem)throw new F(L.errors.INVALID_PARAMS,"Invalid Tx id.");if(!(e=H.fromRaw(Buffer.from(e.raw,"hex"))))throw new F(L.errors.TYPE_ERROR,"Invalid Tx id.");var i=U.parseContract(e);if(!i||i.oper!==W.contractCreate)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");var r=w.fromTX(e,1);if(!r.outputs[0].getReturnType(B.OP_RETURN))throw new Error("not a valid contract");r.view.addOutput({hash:r.inputs[0].prevout.hash,index:r.inputs[0].prevout.index},new _({value:i.src}));let a="";a=(t?await this.createReceive(t):this).getAddress();var s=await this.getKey(a);e={oper:W.contractPromise,prevhash:e.hash("hex"),type:i.type,addr:i.addr,dst:i.dst,srcact:i.srcact,dstact:t,bob:s.getPublicKey("hex"),period:i.period},t=new x([z.fromSymbol("promise"),z.fromData(Buffer.from(JSON.stringify(e))),z.fromSymbol("drop"),z.fromSymbol("greaterthan"),z.fromSymbol("drop"),z.fromSymbol("if"),z.fromData(l.hash160(Buffer.from(e.bob,"hex"))),z.fromSymbol("else"),z.fromData(l.hash160(Buffer.from(i.alice,"hex"))),z.fromSymbol("endif"),z.fromSymbol("checksig")]),r.outputs.push(_.fromScript(t,i.src)),await this.remove(e.prevhash),await this.sign(r,null,N.ALL,[0]),s=r.commit();return await this.db.send(s[0]),e.current={hash:s[0].hash("hex"),index:0},e.raw=s[0].toRaw().toString("hex"),e.transStatus=K.Promised,this.db.transactionList.saveContract(e,!0),s}async contractExecute(e,t){if(!(e=this.db.transactionList.get(e))||e.transStatus!=K.Confirmed&&e.transStatus!=K.Expired)throw new F(L.errors.INVALID_PARAMS,"Invalid Tx id.");if(!(e=H.fromRaw(Buffer.from(e.raw,"hex"))))throw new F(L.errors.TYPE_ERROR,"Invalid Tx id.");t=t||1;var i=U.parseContract(e);if(!i||i.oper!==W.contractPromise)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");var a=e.outputs[1].getReturnData();if(!a||a.oper!==W.contractPromise)throw new F(L.errors.TYPE_ERROR,"Invalid tx type.");r.strictEqual(i.addr,a.addr),r.strictEqual(i.type,a.type),r.strictEqual(i.dst,a.dst),r.strictEqual(i.period,a.period),r.strictEqual(i.srcact,a.srcact),r.strictEqual(i.dstact,a.dstact);var s=this.db.transactionList.query(i.type,i.addr);if(s!=K.Confirmed&&s!=K.Expired)throw new F(L.errors.TYPE_ERROR,"Contract Promise not Check yet.");if(s==K.Expired&&1!=t||s==K.Confirmed&&2!=t)throw new F(L.errors.TYPE_ERROR,"Invalid Executor.");let n=i.srcact,o=(2==t&&(n=i.dstact),"");o=(n?await this.createReceive(n):this).getAddress();var c=new w,u=(c.addInputFromTx(e,1),{oper:W.contractExecute,type:i.type,addr:i.addr,master:t});u=_.fromScript(x.createScript(Buffer.from(JSON.stringify(u)),x.types.NULLDATA),0),c.outputs.push(u),u=_.fromScript(o,e.outputs[1].value),c.outputs.push(u),e=1==t?await P.fromPublic(Buffer.from(i.ori.alice,"hex")):await P.fromPublic(Buffer.from(a.bob,"hex")),u=await this.getKey(e.getAddress()),await c.signAsync(u,x.hashType.ALL,this.db.workers),t=c.commit();return r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS,s)),await this.db.send(t[0]),t}async htlcDeal(e,t){var i=await this.getTX(e.hash);let r=null;if(t){if(!(t=await this.getAccount(t)))throw new F(L.errors.TYPE_ERROR,"Invalid Account.");r=t.getReceive().toString()}else r=this.getReceive().toString();t=new w;var a=(new x).pushOp(B.OP_1);e.suggest&&a.pushData(Buffer.from(e.sa,"hex")),t.addInput({prevout:{hash:e.hash,index:e.index},script:a}),t.addOutput(r,i.tx.outputs[e.index].value-1e4),t.view.addOutput({hash:e.hash,index:e.index},new _(i.tx.outputs[e.index])),await this.sign(t,null,N.ALL),a=t.commit();return await this.db.send(a[0]),a}async htlcCancel(e,t){let i=null;var r=await this.getTX(e.hash);if(!(i=r?r.tx.outputs[e.index]:i))throw new F(L.errors.TYPE_ERROR,"Invalid Input.");let a=null;if(t){if(!(r=await this.getAccount(t)))throw new F(L.errors.TYPE_ERROR,"Invalid Account.");a=r.getReceive().toString()}else a=this.getReceive().toString();return t=new w,r=(new x).pushOp(B.OP_0),e.suggest&&r.pushData(Buffer.from(e.sa,"hex")),t.addInput({prevout:{hash:e.hash,index:e.index},script:r}),e.suggest?t.setSequence(0,2*O.HTLC_CANCEL_PERIOD,!1):t.setSequence(0,O.HTLC_CANCEL_PERIOD,!1),t.addOutput(a,i.value-1e4),t.view.addOutput({hash:e.hash,index:e.index},new _(i)),r=await this.getKey(e.master),await t.signAsync(r,x.hashType.ALL,this.db.workers),e=t.commit(),await this.db.send(e[0]),e}async sendContracts(e,t,i){var r,a=new w;for(r of e)a.outputs.push(i.create(r));return t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a),e=a.commit(),await this.db.addTX(e[0]),await this.db.send(e[0]),e}async tokenCreate(e,t="",i){r(e&&"object"==typeof e,"Token data should be a object"),r(e.cid,"Token data should has a cid property"),r(e.uid,"Token data should has a uid property"),e.time=!0,await this.ensureAccount({name:t,witness:!0});let a=null;if(i){if(!await this.belongToAccount(t,i))throw new F(L.errors.TYPE_ERROR,`tokenCreate address error: addr:${i} is not belongs to account:`+t);a=await this.getKey(i)}else a=await this.createReceive(t,n.hashInt(e.cid),this.master);return a.signData(e)}async sign(e,t,i=x.hashType.ALL,r){if(this.watchOnly)throw new Error("Cannot sign from a watch-only wallet.");return await this.unlock(t),t=await this.deriveInputs(e),e.signAsync(t,i,this.db.workers,r)}getCoinView(e){return this.txdb.getCoinView(e)}getSpentView(e){return this.txdb.getSpentView(e)}toDetails(e){return this.txdb.toDetails(e)}getDetails(e){return this.txdb.getDetails(e)}async getCoin(e,t){return this.txdb.getCoin(e,t)}async getCredit(e,t){return this.txdb.getCredit(e,t)}async getStatusOfSC(e){return this.txdb.getStatusOfSC(e)}async setStatusOfSC(e,t){var i=await this.writeLock.lock();try{this.txdb.start();try{await this.txdb._setStatusOfSC(e,t),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}}finally{i()}}getLockedCoins(){return this.txdb.lockedCoins.values}getTX(e){return this.txdb.getTX(e)}getBlocks(){return this.txdb.getBlocks()}getBlock(e){return this.txdb.getBlock(e)}async add(e,t,i){var r=await this.writeLock.lock();try{return await this._add(e,t,i)}finally{r()}}async _add(e,t,i){let r,a;this.txdb.start();try{(r=await this.txdb._add(e,t,i))&&(a=await this.syncOutputDepth(r)),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}return a&&0<a.length&&(this.db.emit("address",this.id,a),this.emit("address",a)),r}async resetBalance(){var e=await this.writeLock.lock();try{this.txdb.start();try{this.txdb.pending.unconfirmed=0,this.txdb.pending.confirmed=0;for(const e of await this.getAccounts()){var t=await this.getBalance(e);this.txdb.pending.unconfirmed+=t.unconfirmed,this.txdb.pending.confirmed+=t.confirmed}this.txdb.put(te.R,this.txdb.pending.commit()),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}}finally{e()}return this.txdb.state.toBalance()}async unconfirm(e){var t=await this.writeLock.lock();try{return await this.txdb.unconfirm(e)}finally{t()}}async remove(e){var t=await this.writeLock.lock();try{return await this.txdb.remove(e)}finally{t()}}async zap(e,t){var i=await this.writeLock.lock();try{return await this._zap(e,t)}finally{i()}}async _zap(e,t){return e=await this.ensureIndex(e),this.txdb.zap(e,t)}async abandon(e){var t=await this.writeLock.lock();try{return await this._abandon(e)}finally{t()}}_abandon(e){return this.txdb.abandon(e)}conserveCoin(e){return this.txdb.conserveCoin(e)}unConserveCoin(e){return this.txdb.unConserveCoin(e)}isConserved(e){return this.txdb.isConserved(e)}getConserved(){return this.txdb.getConserved()}async getHistory(e){return e=await this.ensureIndex(e),this.txdb.getHistory(e)}async getCoins(e){return e=await this.ensureIndex(e),this.txdb.getCoins(e)}async getCredits(e){return e=await this.ensureIndex(e),this.txdb.getCredits(e)}async getSmartCoins(e){var t=[];for(const r of await this.getCredits(e)){var i=r.coin;r.spent||this.txdb.isConserved(i)||-1===i.height&&!r.own||t.push(i)}return t}async getPending(e){return e=await this.ensureIndex(e),this.txdb.getPending(e)}async getBalance(e){return e=await this.ensureIndex(e),this.txdb.getBalance(e)}async queryBalanceLog(e,t=0){return(e=await this.ensureIndex(e))?this.db.queryBalanceLog(this.wid,e,t):[]}async getRange(e,t){return e&&"object"==typeof e&&(t=e,e=null),e=await this.ensureIndex(e),this.txdb.getRange(e,t)}async getLast(e,t){return e=await this.ensureIndex(e),this.txdb.getLast(e,t)}async ensureIndex(e,t){if(null==e){if(t)throw new Error("No account provided.");return null}if(-1===(t=await this.getAccountIndex(e)))throw new Error("Account not found.");return t}getAddress(e){return this.account.getAddress(e)}getReceive(e){return this.account.getReceive(e)}getChange(e){return this.account.getChange(e)}getNested(e){return this.account.getNested(e)}inspect(){return{wid:this.wid,id:this.id,network:this.network.type,initialized:this.initialized,accountDepth:this.accountDepth,token:this.token.toString("hex"),tokenDepth:this.tokenDepth,state:this.txdb.state?this.txdb.state.toJSON(!0):null,master:this.master,account:this.account}}toJSON(e){return{network:this.network.type,wid:this.wid,id:this.id,initialized:this.initialized,watchOnly:this.watchOnly,accountDepth:this.accountDepth,token:this.token.toString("hex"),tokenDepth:this.tokenDepth,height:this.db.curHeight,state:this.txdb.state.toJSON(!0),master:this.master.toJSON(e),account:this.account.toJSON(!0)}}getSize(){var e=0;return(e+=50)+o.sizeVarString(this.id,"ascii")+o.sizeVarlen(this.master.getSize())}toRaw(){var e=this.getSize();return(e=new f(e)).writeU32(this.network.magic),e.writeU32(this.wid),e.writeVarString(this.id,"ascii"),e.writeU8(this.initialized?1:0),e.writeU8(this.watchOnly?1:0),e.writeU32(this.accountDepth),e.writeBytes(this.token),e.writeU32(this.tokenDepth),e.writeVarBytes(this.master.toRaw()),e.render()}fromRaw(e){e=new d(e);var t=s.fromMagic(e.readU32());return this.wid=e.readU32(),this.id=e.readVarString("ascii"),this.initialized=1===e.readU8(),this.watchOnly=1===e.readU8(),this.accountDepth=e.readU32(),this.token=e.readBytes(32),this.tokenDepth=e.readU32(),this.master.fromRaw(e.readVarBytes()),r(t===this.db.network,"Wallet network mismatch."),this}static fromRaw(e,t){return new re(e).fromRaw(t)}static isWallet(e){return e instanceof re}async issueCreate(e,t,i){var r=new G(e),a=((a=(r.source.subjectName||(r.source.subjectName=r.erid),P.fromPrivate(Buffer.from(e.key,"hex"),!0,this.network))).witness=!0,r.sign(a,!0,this.network),r.toOptions(!0));return i?this.send({outputs:[{address:e.address,value:1e4}],comment:a},t):(r=await this.send({outputs:[{address:e.address,value:1e4}],comment:a},t),a.txid=r.txid()),a}async caAbolish(e,t,i){var r=P.fromPrivate(Buffer.from(e.key,"hex"),!0,this.network),a=(r.witness=!0,await this.db.client.execute("ca.byId",[e.erid]));if(!a)throw new F(L.errors.TYPE_ERROR,"ca.abolish: Invalid erid.");if(a.source.cid!=e.cid)throw new F(L.errors.TYPE_ERROR,"ca.abolish: Invalid cid.");if(a.source.uid!=e.uid)throw new F(L.errors.TYPE_ERROR,"ca.abolish: Invalid uid.");var s=a.signature;if(a.sign(r,!0,this.network),a.witness!=e.witness||a.signature!=s)throw new F(L.errors.TYPE_ERROR,"ca.abolish: You have no permission to abolish this witness.");return(a=new X(e)).sign(r),s=a.toOptions(!0),i?this.send({outputs:[{address:e.address,value:1e4}],comment:s},t):await this.send({outputs:[{address:e.address,value:1e4}],comment:s},t),s}async enchanceCp(e,t){var i=((e=new J(e)).oper="enchanceCp",await this.ensureCp(e.to)),r=await this.ensureCp(e.from);if(!(r=await this.getKey(r.pubAddress)))throw new F(L.errors.TYPE_ERROR,"Invalid cid, Not along to this wallet.");return e.sign(r),r=e.toOptions(!0),[await this.send({outputs:[{address:i.pubAddress,value:1e4}],comment:r},t),r]}async ensureCp(e,t=!1){if(await this.db.flushCP([e]),(e=this.db.cpList.getItem(e))||t)return e;throw new F(L.errors.TYPE_ERROR,"Invalid cid, cannot find cp.")}}e.exports=re},function(e,t,i){"use strict";
|
|
286
286
|
/*!
|
|
287
287
|
* BlockMeta.js - walletdb records
|
|
288
288
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
@@ -329,7 +329,7 @@ const r=i(19).opcodes;function a(e){let t=null;return new(0,(a.list[e.type]||a.l
|
|
|
329
329
|
* common.js - common functions for hd
|
|
330
330
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
331
331
|
* https://github.com/bookmansoft/gamegold
|
|
332
|
-
*/const r=i(0);i=i(
|
|
332
|
+
*/const r=i(0);i=i(61);const a=t;a.HARDENED=2147483648,a.MIN_ENTROPY=128,a.MAX_ENTROPY=512,a.cache=new i(500),a.parsePath=function(e,t){r("string"==typeof e),r("boolean"==typeof t),r(1<=e.length),r(e.length<=3062);var i=e.split("/");if("m"!==(e=i[0])&&"M"!==e&&"m'"!==e&&"M'"!==e)throw new Error("Invalid path root.");var s=[];for(let e=1;e<i.length;e++){let r=i[e];var n="'"===r[r.length-1];if(10<(r=n?r.slice(0,-1):r).length)throw new Error("Path index too large.");if(!/^\d+$/.test(r))throw new Error("Path index is non-numeric.");let o=parseInt(r,10);if(o>>>0!==o)throw new Error("Path index out of range.");if(n&&(o=(o|a.HARDENED)>>>0),!t&&o&a.HARDENED)throw new Error("Path index cannot be hardened.");s.push(o)}return s},a.isMaster=function(e){return 0===e.depth&&0===e.childIndex&&0===e.parentFingerPrint},a.isAccount=function(e,t){return(null==t||(t=(a.HARDENED|t)>>>0,e.childIndex===t))&&(3===e.depth&&0!=(e.childIndex&a.HARDENED))}},function(e,t,i){"use strict";
|
|
333
333
|
/*!
|
|
334
334
|
* txsorter.js - commonly required functions utils.
|
|
335
335
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
@@ -374,7 +374,7 @@ const r=i(19).opcodes;function a(e){let t=null;return new(0,(a.list[e.type]||a.l
|
|
|
374
374
|
* selector.js
|
|
375
375
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
376
376
|
*/
|
|
377
|
-
function r(e){let t=null;var i=r.list[e.contract.options.type];return i?new(t=i.path)(e):t}r.list={relay:{name:"relay",path:i(203),desc:"中继合约,调用第三方合约"},vem:{name:"vem",path:i(204),desc:"自动售货机,销售道具"},example:{name:"example",path:i(205),desc:"示例合约,调用者转入1VC,合约自动转回0.5VC"},issue:{name:"issue",path:i(206),desc:"公共服务-签证合约"},multisig:{name:"multisig",path:i(207),desc:"多重签名合约"}},e.exports=r},function(e,t,i){var r=i(31);const a=i(4),s=i(3),n=i(6),o=i(
|
|
377
|
+
function r(e){let t=null;var i=r.list[e.contract.options.type];return i?new(t=i.path)(e):t}r.list={relay:{name:"relay",path:i(203),desc:"中继合约,调用第三方合约"},vem:{name:"vem",path:i(204),desc:"自动售货机,销售道具"},example:{name:"example",path:i(205),desc:"示例合约,调用者转入1VC,合约自动转回0.5VC"},issue:{name:"issue",path:i(206),desc:"公共服务-签证合约"},multisig:{name:"multisig",path:i(207),desc:"多重签名合约"}},e.exports=r},function(e,t,i){var r=i(31);const a=i(4),s=i(3),n=i(6),o=i(61);class c extends r{constructor(e){super(),this.db=e||{getEr:()=>{},setEr:()=>{},delEr:()=>{}},this.cache=new o(1e4)}async loadHistory(){}async getEr(e){return this.cache.get(e)||this.db.getEr(e)}async setEr(e,t){(e=new u(e)).txid=t.txid(),await this.db.setEr(e,t),this.cache.set(e.erid,e)}async delEr(e,t){e.txid=t.txid(),await this.db.delEr(e),this.cache.remove(e.erid)}async query(e){let t=!1,i=null,r=[];for(var a of e)if(a&&Array.isArray(a)){if("erid"==a[0])return{list:[await this.getEr(a[1])],page:0,count:1};"merge"==a[0]?t=a[1]:"pubkey"==a[0]?i=a[1]:r.push(a)}return i?this.db.byPubkey(i,r,t):{list:[],page:0,count:1}}}class u{constructor(e){this.fromOptions(e=e||{})}fromOptions(e){this.oper=e.oper||"erIssue",this.erid=e.erid,this.witness=e.witness||"",this.validHeight=e.validHeight,this.startHeight=e.startHeight||0,this.signature=e.signature||"",this.source=null,e.source&&(this.source={},this.source.subjectName=e.source.subjectName,this.source.pubkey=e.source.pubkey,this.source.subjectHash=e.source.subjectHash,this.source.cluster=e.source.cluster,this.source.cid=e.source.cid,this.source.uid=e.source.uid,this.source.blob=e.source.blob||JSON.stringify({})),this.wid=e.wid||0,this.account=e.account||""}toRaw(){return Buffer.from(JSON.stringify(this.toOptions(!0)),"utf-8")}toOptions(e=!1){var t={};return t.oper=this.oper||"erIssue",t.erid=this.erid,t.witness=this.witness||"",t.validHeight=this.validHeight,e&&(t.startHeight=this.startHeight,t.signature=this.signature||""),this.source&&(t.source={},t.source.subjectName=this.source.subjectName,t.source.pubkey=this.source.pubkey,t.source.subjectHash=this.source.subjectHash,t.source.cluster=this.source.cluster||"",t.source.blob=this.source.blob||JSON.stringify({}),t.source.cid=this.source.cid||"",t.source.uid=this.source.uid||0),t}getSignObjSize(e){let t=0;return t=(t=(t=(t+=s.sizeVarString(e.oper,"utf8"))+s.sizeVarString(e.erid,"utf8"))+s.sizeVarString(e.witness,"ascii"))+4+4,e.source?(t=(t=(t=(t+=s.sizeVarString(e.source.subjectName,"utf8"))+s.sizeVarString(e.source.pubkey,"utf8"))+s.sizeVarString(e.source.subjectHash,"utf8"))+s.sizeVarString(e.source.cluster,"utf8"))+s.sizeVarString(e.source.cid,"utf8")+4:t}toWriter(e,t){return t.writeVarString(e.oper,"utf8"),t.writeVarString(e.erid,"utf8"),t.writeVarString(e.witness,"ascii"),t.writeU32(e.validHeight),t.writeU32(e.startHeight),e.source&&(t.writeVarString(e.source.subjectName,"utf8"),t.writeVarString(e.source.pubkey,"utf8"),t.writeVarString(e.source.subjectHash,"utf8"),t.writeVarString(e.source.cluster,"utf8"),t.writeVarString(e.source.cid,"utf8"),t.writeU32(e.source.uid)),t}toHash(){var e=this.toOptions();return n.hash256(this.toWriter(e,new a(this.getSignObjSize(e))).render())}fromRaw(e){return e=JSON.parse(e.toString("utf8")),this.fromOptions(e),this}static fromRaw(e){return(new u).fromRaw(e)}sign(e){this.signature=e.sign(this.toHash()).toString("hex")}verifying(e){return e.verify(this.toHash(),Buffer.from(this.signature,"hex"))}}c.ErItem=u,e.exports=c},function(e,t,i){var r=i(31);const a=i(4),s=i(3),n=i(6);class o extends r{constructor(e){super(),this.db=e||{getErAbolish:()=>{},setErAbolish:()=>{},delErAbolish:()=>{},loadErAbolishList:()=>{}}}async loadHistory(){}async getErAb(e){return this.db.getErAbolish(e)}async setErAb(e,t){e=new c(e),await this.db.setErAbolish(e),this.set(e.erid,e)}async delErAb(e,t){await this.db.delErAbolish(e),this.delete(e.erid)}async query(e){let t=!1;for(var i of e)"cluster"==i[0]&&(t=i[1]);for(var r of e){if("erid"==r[0])return{list:[await this.getErAb(r[1])],page:0,count:1};if("pubkey"==r[0])return this.db.byPubkey(r[1],t)}return{list:[],page:0,count:1}}}class c{constructor(e){this.fromOptions(e=e||{})}fromOptions(e){this.oper=e.oper||"erAbolish",this.erid=e.erid,this.witness=e.witness||"",this.abolishHeight=e.abolishHeight,this.startHeight=e.startHeight||0,this.signature=e.signature||""}toOptions(e){var t={};return t.oper=this.oper||"erAbolish",t.erid=this.erid,t.witness=this.witness||"",t.abolishHeight=this.abolishHeight,e&&(t.startHeight=this.startHeight,t.signature=this.signature||""),t}getMsgSize(){var e=0;return(e+=s.sizeVarString(this.oper,"utf8"))+s.sizeVarString(this.erid,"utf8")+s.sizeVarString(this.witness,"ascii")+4+4}toWriter(e,t){return t.writeVarString(this.oper,"utf8"),t.writeVarString(this.erid,"utf8"),t.writeVarString(this.witness,"ascii"),t.writeU32(this.abolishHeight),t.writeU32(this.startHeight),t}toHash(){var e=this.toOptions();return n.hash256(this.toWriter(e,new a(this.getMsgSize(e))).render())}toRaw(){return Buffer.from(JSON.stringify(this.toOptions(!0)),"utf-8")}fromReader(e){return e=JSON.parse(e.toString("utf8")),this.fromOptions(e),this}fromRaw(e){return this.fromReader(e)}static fromRaw(e){return(new c).fromRaw(e)}sign(e){this.signature=e.sign(this.toHash()).toString("hex")}verifying(e){return e.verify(this.toHash(),Buffer.from(this.signature,"hex"))}}o.ErAbolishItem=c,e.exports=o},function(e,t,i){"use strict";
|
|
378
378
|
/*!
|
|
379
379
|
* jobs.js - worker jobs for vallnet
|
|
380
380
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
@@ -451,7 +451,7 @@ const r=i(5).ContractType;e.exports=function(e){if(!e)return i(188);switch(e.ope
|
|
|
451
451
|
* pem.js - pem parsing for vallnet
|
|
452
452
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
453
453
|
* https://github.com/bookmansoft/gamegold
|
|
454
|
-
*/const r=i(0),a=t;a.parse=function(e){var t=[];let i,a="";for(;e.length;){var s=/^-----BEGIN ([^\-]+)-----/.exec(e);if(s)e=e.substring(s[0].length),i=s[1];else if(s=/^-----END ([^\-]+)-----/.exec(e)){e=e.substring(s[0].length),r(i===s[1],"Tag mismatch.");var n=i.split(" ")[0].toLowerCase(),o=Buffer.from(a,"base64");t.push({tag:i,type:n,data:o}),a="",i=null}else if(s=/^[a-zA-Z0-9\+=\/]+/.exec(e))e=e.substring(s[0].length),a+=s[0];else{if(!(s=/^\s+/.exec(e)))throw new Error("PEM parse error.");e=e.substring(s[0].length)}}return r(0!==t.length,"PEM parse error."),r(!i,"Un-ended tag."),r(0===a.length,"Trailing data."),t},a.decode=function(e){var t=(e=a.parse(e))[0];let i=null,r=((e=e[1])&&-1!==e.tag.indexOf("PARAMETERS")&&(i=e.data),null);switch(t.type){case"dsa":r="dsa";break;case"rsa":r="rsa";break;case"ec":r="ecdsa"}return{type:t.type,alg:r,data:t.data,params:i}},a.encode=function(e,t,i){let r="";i&&(t+=" "+i),t=t.toUpperCase(),e=e.toString("base64");for(let t=0;t<e.length;t+=64)r+=e.slice(t,t+64)+"\n";return`-----BEGIN ${t}-----\n`+r+`-----END ${t}-----\n`}},function(e,t,i){var r=i(411);class a{constructor(e){this.endpoint=e}Get(e,t,i){return e=this.endpoint+"/"+e,t&&(e+="?"+Object.keys(t).reduce((e,i)=>(""!=e&&(e+="&"),e+i+"="+("object"==typeof t[i]?JSON.stringify(t[i]):t[i])),"")),a.pGetUrl(e).then(i).catch(e=>{console.error(e)})}Post(e,t,i){return e=this.endpoint+"/"+e,a.pPostUrl(e,t).then(i).catch(t=>{console.log(`access ${e} error: `+t.message)})}static pGetUrl(e,t){return(t=t||{})["User-Agent"]="Request-Promise",r({uri:e,headers:t,json:!0})}static pPostUrl(e,t){return r({method:"POST",uri:e,body:t,json:!0})}}e.exports=a},function(e,t,i){"use strict";
|
|
454
|
+
*/const r=i(0),a=t;a.parse=function(e){var t=[];let i,a="";for(;e.length;){var s=/^-----BEGIN ([^\-]+)-----/.exec(e);if(s)e=e.substring(s[0].length),i=s[1];else if(s=/^-----END ([^\-]+)-----/.exec(e)){e=e.substring(s[0].length),r(i===s[1],"Tag mismatch.");var n=i.split(" ")[0].toLowerCase(),o=Buffer.from(a,"base64");t.push({tag:i,type:n,data:o}),a="",i=null}else if(s=/^[a-zA-Z0-9\+=\/]+/.exec(e))e=e.substring(s[0].length),a+=s[0];else{if(!(s=/^\s+/.exec(e)))throw new Error("PEM parse error.");e=e.substring(s[0].length)}}return r(0!==t.length,"PEM parse error."),r(!i,"Un-ended tag."),r(0===a.length,"Trailing data."),t},a.decode=function(e){var t=(e=a.parse(e))[0];let i=null,r=((e=e[1])&&-1!==e.tag.indexOf("PARAMETERS")&&(i=e.data),null);switch(t.type){case"dsa":r="dsa";break;case"rsa":r="rsa";break;case"ec":r="ecdsa"}return{type:t.type,alg:r,data:t.data,params:i}},a.encode=function(e,t,i){let r="";i&&(t+=" "+i),t=t.toUpperCase(),e=e.toString("base64");for(let t=0;t<e.length;t+=64)r+=e.slice(t,t+64)+"\n";return`-----BEGIN ${t}-----\n`+r+`-----END ${t}-----\n`}},function(e,t,i){var r=i(411);class a{constructor(e){this.endpoint=e}Get(e,t,i){return e=this.endpoint+"/"+e,t&&(e+="?"+Object.keys(t).reduce((e,i)=>(""!=e&&(e+="&"),e+i+"="+("object"==typeof t[i]?JSON.stringify(t[i]):t[i])),"")),a.pGetUrl(e).then(i).catch(e=>{console.error(e)})}Post(e,t,i){return e=this.endpoint+"/"+e,a.pPostUrl(e,t).then(i).catch(t=>{console.log(`access ${e} error: `+t.message)})}static pGetUrl(e,t){return(t=t||{})["User-Agent"]="Request-Promise",r({uri:e,headers:t,json:!0})}static pPostUrl(e,t){if(e&&t)return r({method:"POST",uri:e,body:t,json:!0})}}e.exports=a},function(e,t,i){"use strict";
|
|
455
455
|
/*!
|
|
456
456
|
* mime-types
|
|
457
457
|
* Copyright(c) 2014 Jonathan Ong
|
|
@@ -830,11 +830,11 @@ const r=i(5).ContractType;e.exports=function(e){if(!e)return i(188);switch(e.ope
|
|
|
830
830
|
/*!
|
|
831
831
|
* accountdb.js - storage for account management
|
|
832
832
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
833
|
-
*/const r=i(8),a=i(0),s=i(73),n=i(119),o=i(157),c=i(609),u=i(85),h=u.walletdb,l=i(6),p=i(158),d=i(125),f=i(167);var{}=i(37);const m=i(46),g=i(13);i(20),i(68);const v=i(197),y=i(67),b=i(42),{BlockFinalType:w,ContractEnvType:x}=i(5),k=i(159),S=i(611),_=i(31);var E=i(71);const j=i(2),A=i(140).sortWithSeq,R=i(35),I=i(198),O=i(63),C=i(100),P=i(3),T=P.U32,B=i(338),N=i(339),z=i(340),F=z.vpItem,L=i(616),M=L.vpItem,D=i(314);i(617);const H=D.cpItem,U=i(154),q=U.ErAbolishItem,V=i(44).broadcast,K=i(146),W=K.vpItem,$=i(153),Y=$.ErItem,G=i(618),X=G.AuditItem,J=i(307),Q=i(109),Z=i(619),ee=i(308),te=i(120),ie=i(620),re=i(218),ae=i(38),se=i(36),ne=i(59),oe=i(78),ce=oe.errors,ue=i(77);class he extends E{constructor(e){super(),this.readyLoad=!1,this.options=new c(e),this.network=this.options.network,this.logger=this.options.logger.context("wallet"),this.workers=this.options.workers,this.keys={hmacSalt:P.DefaultChainCode},e.keys&&e.keys.hmacSalt&&(a(Buffer.isBuffer(e.keys.hmacSalt)),this.keys.hmacSalt=e.keys.hmacSalt),this.client=this.options.client,this.client&&(this.client.wdb=this),this.jsonp=this.options.jsonp,this.jsonp&&(this.jsonp.wdb=this),this.spv=this.options.spv,this.feeRate=this.options.feeRate,this.db=f(this.options),this.rpc=new B(this),this.primary=null,this.state=new Z,this.wallets=new Map,this.depth=0,this.rescanning=!1,this.bound=!1,this.newRecord=!0,this.readLock=new I,this.writeLock=new R,this.txLock=new R,this.scanLock=new R,this.widCache=new O(1e4),this.pathMapCache=new O(1e5),this.filter=new C,this.middleHashMem=new Set,this.middleHashChain=new Set,this.autoTaskMgr=new k(this),this.transactionList=new N(this),this.htlcList=new z(this),this.commentList=new L(this),this.NotifyList=new _,this.propList=new K(this),this.$contacts=new _,this.cpList=new D(this),this.cpMemList=new D(this),this.auditList=new G(this),this.erList=new $(this),this.erAbList=new U(this),this.hmacConnection=[],this._init()}async logAudit(e){e.height=this.curHeight,e.time=j.now(),e.erid=l.sha256(j.stringify(e)).toString("hex"),e=new X(e),await this.auditList.setAudit(e)}async getAccountByAddress(e,t){if(e){let a=null;if(a=t?await this.getWalletsByTX(t):await this.getWallets())for(const t of a){var i=await this.get(t);if(i){var r=await i.getPath(e);if(r)return[i.wid,r.name,i.id]}}}return[0,"",""]}_init(){let e=1e6,t=-1;this.spv&&(e=2e4,t=C.flags.ALL),this.filter=C.fromRate(e,.001,t)}get mode(){return x.Wallet}async getTXFromAll(e){return this.getTXFromDb(e)}async checkNewRecord(){var e={createIfMissing:this.db.options.createIfMissing,errorIfExists:this.db.options.errorIfExists};this.db.options.createIfMissing=!1,this.db.options.errorIfExists=!0;try{await this.db.open();var t=await this.db.checkVersion(h,6);this.newRecord="new"==t}catch(e){if(-1!=e.message.indexOf("does not exist (create_if_missing is false)"))this.newRecord=!0;else{if(-1==e.message.indexOf("exists (error_if_exists is true)"))throw e;this.newRecord=!1}}try{await this.db.close()}catch(e){}this.db.options.createIfMissing=e.createIfMissing,this.db.options.errorIfExists=e.errorIfExists}async isNewRecord(){return await this.checkNewRecord(),this.newRecord}setmnemonic(e){if(this.options.mnemonic=this.options.mnemonic||{},e.bits)this.options.mnemonic={bits:e.bits};else if(e.entropy)this.options.mnemonic={entropy:Buffer.from(e.entropy,"hex")};else if(e.phrase){var t=this.testmnemonic(e.phrase);if(0!=t.code)throw t.msg;this.options.mnemonic={phrase:e.phrase}}e.passphrase&&(this.options.mnemonic.passphrase=e.passphrase),e.language&&(this.options.mnemonic.language=e.language)}testmnemonic(e){try{return new v(e),{code:0}}catch(e){return{code:-1,msg:e.message}}}async getContracts(e){var t=await this.db.values({gte:u.txdb.tx(P.NULL_HASH),lte:u.txdb.tx(P.HIGH_HASH),parse:e=>j.parseJson(e.toString())});return e?t.filter(t=>t.srcact==e||t.dstact==e):t}isFull(){return this.spv||this.synced||!1}async _open(e){}async handleNotify(e,t=!1){if(!t){let i=e.body.content;if("string"==typeof i)try{i=JSON.parse(e.body.content)}catch(e){return}"object"==typeof i&&"secret"===i.type&&(t={contact:e.body.src,messenger:e.body.dst},i.init&&(t.init=Buffer.from(i.init,"hex")),i.packet&&(t.packet=Buffer.from(i.packet)),await this.handleSecret(t))}}async handleSecret(e){if(e.contact&&e.messenger&&e.contact!=e.messenger){try{g.fromString(e.contact,this.network.type),g.fromString(e.messenger,this.network.type)}catch(e){return}var t=await this.ensureContact(e);t&&await t.ensureMessenger(e).answer(e)}}async scanContact(e,t=-1){var i=async e=>{var t;e.witness&&"witnesspubkeyhash"==e.getType()&&(t=e.witness.getPubkeyhashInput()[1],e=g.fromWitness(e.witness).toString(),t)&&e&&await this.ensureContact({contact:e,publicKey:t})};if(0<=t&&t<e.inputs.length)await i(e.inputs[t]);else for(var r of e.inputs)await i(r)}async ensureContact(e){if(!e.contact||e.contact==e.messenger)return null;try{g.fromString(e.contact,this.network.type),e.messenger&&g.fromString(e.messenger,this.network.type)}catch(e){return null}e.network=this.network.type,this.$contacts.get(e.contact)||this.$contacts.set(e.contact,new S(e));var t=this.$contacts.get(e.contact);if(e.messenger&&!(e=t.ensureMessenger(e)).wallet){var i,[i,r]=await this.getAccountByAddress(e.address);if(!(i=await this.get(i)))return;e.wallet=i,e.account=r}return t}getCps(){return this.db.values({gte:u.txdb.cp(P.ZERO_CID,"hex"),lte:u.txdb.cp(P.MAX_CID,"hex"),parse:e=>H.fromRaw(e)})}async _close(){await this.disconnect(),this.http&&this.options.listen&&await this.http.close();for(const e of this.wallets.values())await e.destroy();await this.db.close(),this.options.listen&&await this.logger.close()}async destroy(){await this.db.destroy(),this.widCache.reset(),this.pathMapCache.reset()}async load(e){if(this.readyLoad){var t=await this.ensure({id:"primary",witness:!0,mnemonic:this.options.mnemonic}),i=await this.txLock.lock();try{await this.init(e),await this.watch(),await t.createReceive(0,1,t.master,this.network.type),await t.ensureNotifyKey(),await this.sync()}finally{i()}setTimeout(()=>{this.resend()},5e3)}}async disconnect(){this.client&&await this.client._close(),this.jsonp&&await this.jsonp._close()}async flushCP(e,t=!1){this.client&&(e=e||[],t||(e=this.cpList.excludeCids(e),t=t||0<e.length),t)&&await this.client.execute("cp.remoteQuery",[[["cid","include",e]]])}async watch(){let e=this.db.iterator({gte:h.p(P.NULL_HASH),lte:h.p(P.HIGH_HASH)}),t=0,i=0;for(;;){var r=await e.next();if(!r)break;try{var a=h.pp(r.key);this.addHash(a,!1)}catch(t){throw await e.end(),t}t++}for(e=this.db.iterator({gte:h.o(P.NULL_HASH,0),lte:h.o(P.HIGH_HASH,4294967295)});;){var s=await e.next();if(!s)break;try{var[n,o]=h.oo(s.key);this.addOutpoint(n,o)}catch(t){throw await e.end(),t}i++}this.logger.info("Filter: Added %d hashes to AccountDB filter.",t),this.logger.info("Filter: Added %d outpoints to AccountDB filter.",i),await this.setFilter()}async sync(){if(this.client){let t,i=this.curHeight;for(;0<=i;){var e=await this.getBlock(i);if(!e)break;if(t=await this.client.getEntry(e.hash))break;i--}t||(i=this.state.startHeight,t=await this.client.getEntry(this.state.startHash))||(i=0),await this.cpList.loadHistory(),await this.cpMemList.loadHistory(),await this.propList.loadHistory(),await this.htlcList.loadHistory(),await this.commentList.loadHistory(),await this.transactionList.loadHistory(),await this.loadContact(),await this.erList.loadHistory(),await this.auditList.loadHistory(),await this.erAbList.loadHistory(),await this._rescan(i,!1)}}async _rescan(e,t=!0){if(this.client){null==e&&(e=this.state.startHeight),a(e>>>0===e,"WDB: Must pass in a height.");var i=this.curHeight;t=(await this.rollback(e,t),this.logger.info("AccountDB is scanning %d blocks.",i-e+1),await this.getTip());try{this.rescanning=!0,await this.client.rescan(t.hash,this.eid)}finally{this.rescanning=!1}}}async rescan(e){var t=await this.txLock.lock();try{return await this._rescan(e,!1)}finally{t()}}async send(e){return this.client?this.client.send(e):(this.emit("send",e),Promise.resolve())}async getTX(e){for(const i of this.wallets.values()){var t=await i.getTX(e);if(t)return t.tx}return null}async getTXFromDb(e){for(const i of this.wallets.values()){var t=await i.getTX(e);if(t)return t.tx}return null}async getExtendTX(e){for(const i of this.wallets.values()){var t=await i.getTX(e);if(t)return t}return null}async removeTX(e){this.client?await this.client.removeTX(e):this.emit("remove",e)}async estimateFee(e){return 0<this.feeRate?this.feeRate:!this.client||(e=await this.client.estimateFee(e))<this.network.feeRate?this.network.feeRate:e>this.network.maxFeeRate?this.network.maxFeeRate:e}setFilter(){return this.client?this.client.setFilter(this.filter):(this.emit("filter.set",this.filter),Promise.resolve())}resetFilter(){return this.client?this.client.resetFilter():(this.emit("filter.reset"),Promise.resolve())}backup(e){return this.db.backup(e)}async wipe(){this.logger.warning("Wiping AccountDB TXDB..."),this.logger.warning("I hope you know what you're doing.");var e=this.db.iterator({gte:Buffer.from([0]),lte:Buffer.from([255])}),t=this.db.batch();let i=0;for(;;){var r=await e.next();if(!r)break;try{switch(r.key[0]){case 98:case 99:case 101:case 116:case 111:case 104:case 82:t.del(r.key),i++}}catch(t){throw await e.end(),t}}this.logger.warning("Wiped %d txdb records.",i),await t.write()}async getDepth(){var e=this.db.iterator({gte:h.w(0),lte:h.w(4294967295),reverse:!0,limit:1}),t=await e.next();return t?(await e.end(),h.ww(t.key)+1):1}start(e){return a(!e.current,"WDB: Batch already started."),e.current=this.db.batch(),e.accountCache.start(),e.pathCache.start(),e.current}drop(e){var t=this.batch(e);e.current=null,e.accountCache.drop(),e.pathCache.drop(),t.clear()}clear(e){var t=this.batch(e);e.accountCache.clear(),e.pathCache.clear(),t.clear()}batch(e){return a(e.current,"WDB: Batch does not exist."),e.current}async commit(e){var t=this.batch(e);try{await t.write()}catch(e){throw this.drop(),e}e.current=null,e.accountCache.commit(),e.pathCache.commit()}testFilter(e){return this.filter.test(e,"hex")}addHash(e,t=!0){this.filter.add(e,"hex"),t&&(t=Buffer.from(e,"hex"),this.client?this.client.addFilter(t):this.emit("filter.add",t))}addOutpoint(e,t){e=new m(e,t),this.filter.add(e.toRaw())}dump(){return this.db.dump()}register(e){a(!this.wallets.has(e.wid)),this.wallets.set(e.wid,e)}unregister(e){a(this.wallets.has(e.wid)),this.wallets.delete(e.wid)}async getWalletID(e){var t;return e?"number"==typeof e?e:this.widCache.get(e)||((t=await this.db.get(h.l(e)))?(t=t.readUInt32LE(0,!0),this.widCache.set(e,t),t):null):null}async get(e){if(!(e=await this.getWalletID(e)))return null;var t=await this.readLock.lock(e);try{return await this._get(e)}finally{t()}}async _get(e){var t=this.wallets.get(e);return t||((t=await this.db.get(h.w(e)))?(await(e=n.fromRaw(this,t)).open(),this.register(e),e):null)}async loadBackup(e){if(ne.unsupported)throw new ue(ce.INTERNAL_ERROR,"FS not available.");let t=null;var i;for(i of(await ne.readFile(e,"utf8")).split(/\n+/))if(0!==(i=i.trim()).length&&!/^\s*#/.test(i)){var r=i.split(/\s+/);if(r.length<4)throw new ue(ce.DESERIALIZATION_ERROR,"Malformed wallet Data File.");switch(r[0]){case"W":var s=Buffer.from(r[1],"base64");s=n.fromRaw(this,s);await this.replace(s),t=await this.get(s.id),this.logger.info("Import Wallet %s(%s)",t.id,t.wid);break;case"C":s=Buffer.from(r[1],"base64");(c=((u=o.fromRaw(this,s)).wallet=t,u.wid=t.wid,u.id=t.id,u.initialized=!0,u.watchOnly=t.watchOnly,u.receive=u.deriveReceive(u.receiveDepth-1),u.change=u.deriveChange(u.changeDepth-1),u.witness&&(u.nested=u.deriveNested(u.nestedDepth-1)),t.master.key.deriveAccount(44,u.accountIndex))).publicKey.toString("hex")!==u.accountKey.publicKey.toString("hex")&&a(c.publicKey.toString("hex")==u.accountKey.publicKey.toString("hex")),await t.saveAccount(u),this.logger.info("Import Account %s(%s)",u.name,u.accountIndex);break;case"A":var c=oe.parseSecret(r[1],this.network),u=parseInt(r[5]),h=parseInt(r[7]),l=parseInt(r[9]),p=r[11].trim();if(h<0||l<0)try{await t.importKey(u,c)}catch(e){this.logger.error(`loadBackup: ${e.message} account/secret: ${u}/`+p)}else{var d=await t.deriveKey(u,h,l),f=await t.deriveKey(u,h,l,t.master);d.getAddress("string")!==f.getAddress("string")&&this.logger.error(`loadBackup: not-equal-1: ${d.getAddress("string")} != `+f.getAddress("string")),d.getAddress("string")!==p&&this.logger.error(`loadBackup: not-equal-2: ${d.getAddress("string")} != `+p)}this.logger.info("Import Address %s %s %s %s",u,h,l,p)}}return t.accountCache.reset(),t}save(e){var t=e.wid,i=e.id,r=this.batch(e);this.widCache.set(i,t),r.put(h.w(t),e.toRaw()),r.put(h.l(i),T(t))}async rename(e,t){var i=await this.writeLock.lock();try{return await this._rename(e,t)}finally{i()}}async _rename(e,t){var i=e.id;if(!s.isName(t))throw new Error("WDB: Bad wallet ID.");if(await this.has(t))throw new Error("WDB: ID not available.");this.start(e).del(h.l(i)),e.id=t,this.save(e),await this.commit(e),this.widCache.remove(i),i=e.pathCache.values();for(const e of i)e.id=t}async replace(e){var t=await this.writeLock.lock();try{return await this._replace(e)}finally{t()}}async _replace(e){var t=this.start(e);t.del(h.l(e.id)),t.del(h.w(e.wid)),this.save(e),await this.commit(e),this.widCache.remove(e.id),this.wallets.delete(e.wid)}renameAccount(e,t){var i=e.wallet;this.batch(i).del(h.i(e.wid,e.name)),e.name=t,this.saveAccount(e)}async auth(e,t){if("string"==typeof t){if(!j.isHex256(t))throw new Error("WDB Authentication: Invalid Token.");t=Buffer.from(t,"hex")}e=y.getHmac(e.toString(),this.keys.hmacSalt);var i=r.createHmac("sha256",e.random);i=Buffer.from(i.update(e.token).digest("hex"),"hex");if(!p(t,i))throw new Error("WDB Authentication: CRC Error.")}async create(e){var t=await this.writeLock.lock();e=e||{};try{return await this._create(e)}finally{t()}}async _create(e){if(await this.has(e.id))throw new Error("WDB: Wallet already exists.");"string"==typeof e.mnemonic&&(e.mnemonic={phrase:e.mnemonic}),e.mnemonic=e.mnemonic||{},!e.mnemonic.language&&this.options.mnemonic&&this.options.mnemonic.language&&(e.mnemonic.language=this.options.mnemonic.language);var t=n.fromOptions(this,e);return t.wid=this.depth++,await t.init(e),this.register(t),this.logger.info("Created wallet %s in AccountDB.",t.id),t}async has(e){return null!=await this.getWalletID(e)}async ensure(e){return await this.get(e.id)||this.create(e)}async getAccount(e,t){return(e=await this.db.get(h.a(e,t)))?o.fromRaw(this,e):null}getAccounts(e){return this.db.values({gte:h.n(e,0),lte:h.n(e,4294967295),parse:e=>e.toString("ascii")})}async getAccountMap(e){for(var t={},i=this.db.iterator({gte:h.n(e,0),lte:h.n(e,4294967295),values:!0});;){var r=await i.next();if(!r)break;try{var[,a]=h.nn(r.key);t[a]=r.value.toString("ascii")}catch(e){throw await i.end(),e}}return t}async getAccountIndex(e,t){return(e=await this.db.get(h.i(e,t)))?e.readUInt32LE(0,!0):-1}async getAccountName(e,t){return(e=await this.db.get(h.n(e,t)))?e.toString("ascii"):null}saveAccount(e){var t=e.wid,i=e.wallet,r=e.accountIndex,a=e.name,s=this.batch(i);s.put(h.a(t,r),e.toRaw()),s.put(h.i(t,a),T(r)),s.put(h.n(t,r),Buffer.from(a,"ascii")),i.accountCache.push(r,e)}hasAccount(e,t){return"number"==typeof e&&"number"==typeof t&&this.db.has(h.a(e,t))}async getPathMap(e){var t=this.pathMapCache.get(e);return t||((t=await this.db.get(h.p(e)))?(t=ie.fromRaw(e,t),this.pathMapCache.set(e,t),t):null)}saveKey(e,t){return this.savePath(e,t.toPath())}async savePath(e,t){var i=e.wid,r=t.hash,a=this.batch(e);this.addHash(r);let s=await this.getPathMap(r);(s=s||new ie(r)).add(i)&&(this.pathMapCache.set(r,s),e.pathCache.push(r,t),a.put(h.p(r),s.toRaw()),a.put(h.P(i,r),t.toRaw()),a.put(h.r(i,t.account,r),null))}async getPath(e,t){var i=await this.db.get(h.P(e,t));return i?((i=Q.fromRaw(i)).wid=e,i.hash=t,i):null}hasPath(e,t){return this.db.has(h.P(e,t))}getHashes(){return this.db.keys({gte:h.p(P.NULL_HASH),lte:h.p(P.HIGH_HASH),parse:h.pp})}getOutpoints(){return this.db.keys({gte:h.o(P.NULL_HASH,0),lte:h.o(P.HIGH_HASH,4294967295),parse:e=>{var[e,t]=h.oo(e);return new m(e,t)}})}getWalletHashes(e){return this.db.keys({gte:h.P(e,P.NULL_HASH),lte:h.P(e,P.HIGH_HASH),parse:h.Pp})}getAccountHashes(e,t){return this.db.keys({gte:h.r(e,t,P.NULL_HASH),lte:h.r(e,t,P.HIGH_HASH),parse:h.rr})}async getWalletPaths(e){var t=[];for(const a of await this.db.range({gte:h.P(e,P.NULL_HASH),lte:h.P(e,P.HIGH_HASH)})){var i=h.Pp(a.key),r=Q.fromRaw(a.value);r.hash=i,r.wid=e,t.push(r)}return t}async encryptKeys(e,t){var i,r,s=e.wid,n=await e.getPaths(),o=this.batch(e);for(i of n)i.data&&(a(!i.encrypted),r=Buffer.from(i.hash,"hex").slice(0,16),(i=i.clone()).data=d.encipher(i.data,t,r),i.encrypted=!0,e.pathCache.push(i.hash,i),o.put(h.P(s,i.hash),i.toRaw()))}async decryptKeys(e,t){var i,r,s=e.wid,n=await e.getPaths(),o=this.batch(e);for(i of n)i.data&&(a(i.encrypted),r=Buffer.from(i.hash,"hex").slice(0,16),(i=i.clone()).data=d.decipher(i.data,t,r),i.encrypted=!1,e.pathCache.push(i.hash,i),o.put(h.P(s,i.hash),i.toRaw()))}async resend(){var e,t={};for(const e of await this.db.keys({gte:h.w(0),lte:h.w(4294967295)})){var i=h.ww(e),r=await this.resendPending(i);r&&Array.isArray(r)&&(t[i]=r)}for(e of Object.keys(t))if(await this.get(parseInt(e)))for(const i of t[e]){try{await this.send(i)}catch(e){this.logger.warning("wdb resend:",e.message)}await se.timeout(50)}}async resendPending(e){var t=await this.get(e),i=await this.db.keys({gte:u.txdb.prefix(e,u.txdb.p(P.NULL_HASH)),lte:u.txdb.prefix(e,u.txdb.p(P.HIGH_HASH))});if(0!==i.length){this.logger.info("Rebroadcasting %d transactions for %d.",i.length,e);var r=[];for(const o of i){var a=u.txdb.pp(o),s=u.txdb.prefix(e,u.txdb.t(a));if((s=await this.db.get(s))&&!(s=re.fromRaw(s)).tx.isCoinbase())try{var n=await b.FactoryOfContract({tx:s.tx,env:this});await n.isBlockFinal()==w.Expired?t&&(await this.removeTX(s.tx),await t.remove(a),await n.erase()):"notify"!=n.oper&&r.push(s.tx)}catch(e){this.logger.error("TX(%s) Smart Contract Error: %s",s.tx.txid(),e.message)}}return A(r)}}getWallets(){return this.db.keys({gte:h.l("\0"),lte:h.l("ÿ"),parse:h.ll})}async getWalletsByTX(e){var t=new Set;if(!e.isCoinbase())for(const r of e.inputs){var i=r.prevout;if(this.testFilter(i.toRaw())&&(i=await this.getOutpointMap(i.hash,i.index)))for(const e of i.wids)t.add(e)}for(const i of e.getOutputHashes("hex"))if(this.testFilter(i)){var r=await this.getPathMap(i);if(r)for(const e of r.wids)t.add(e)}return 0===t.size?null:t}async getState(){var e=await this.db.get(h.R);return e?Z.fromRaw(e):null}async init(e){var t=this.options.startHeight;let i;if(this.client){if(null!=t){if(!(i=await this.client.getEntry(t)))throw new Error("WDB: Could not find start block.")}else i=await this.client.getTip();i=te.fromEntry(i)}else i=te.fromEntry(this.network.genesis);this.logger.info("Initializing AccountDB chain state (height %d).",i.height),(t=await this.getState())?this.state=t:await this.resetState(i,!1),await this.ensure({id:"primary",witness:!0,mnemonic:this.options.mnemonic}),e&&e.backup&&await this.loadBackup(e.backup)}async resetState(e,t){for(var i=this.state.clone(),r=(i.startHeight=e.height,i.startHash=e.hash,i.height=e.height,i.marked=t,this.db.batch()),a=this.db.iterator({gte:h.h(e.height),lte:h.h(4294967295),values:!1});;){var s=await a.next();if(!s)break;try{r.del(s.key)}catch(e){throw await a.end(),e}}r.put(h.h(e.height),e.toHash()),r.put(h.R,i.toRaw()),await r.write(),this.state=i}async syncState(e){var t=this.state.clone(),i=this.db.batch();if(e.height<t.height){let a=t.height;var r=a-e.height;for(let e=0;e<r;e++)i.del(h.h(a--))}else e.height>t.height&&a(e.height===t.height+1,`Bad chain sync tip ${e.height} while state `+t.height);t.height=e.height,i.put(h.h(e.height),e.toHash()),i.put(h.R,t.toRaw()),await i.write(),this.state=t,V("block/tips",t)}get curHeight(){return this.state.height}get tidCreator(){return u.txdb.tx}get finder(){return this.getTXFromDb.bind(this)}rpcExecute(){return this.rpc.execute.apply(this.rpc,arguments)}async getBlockMap(e){var t=await this.db.get(h.b(e));return t?ee.fromRaw(e,t):null}writeBlockMap(e,t,i){this.batch(e).put(h.b(t),i.toRaw())}unwriteBlockMap(e,t){this.batch(e).del(h.b(t))}async getOutpointMap(e,t){var i=await this.db.get(h.o(e,t));return i?J.fromRaw(e,t,i):null}writeOutpointMap(e,t,i,r){e=this.batch(e),this.addOutpoint(t,i),e.put(h.o(t,i),r.toRaw())}unwriteOutpointMap(e,t,i){this.batch(e).del(h.o(t,i))}async writeBalanceLog(e,t){var i=h.log(e.wid,t.aidx,t.height,t.hash),r=(t=Buffer.from(JSON.stringify(t)),await this.writeLock.lock());try{this.start(e).put(i,t),await this.commit(e)}finally{r()}}async queryBalanceLog(e,t,i=0){return this.db.values({gte:h.log(e,t,i,P.NULL_HASH),lte:h.log(e,t,this.curHeight,P.HIGH_HASH),parse:e=>JSON.parse(e.toString())})}async getBlock(e){var t,i=await this.db.get(h.h(e));return i?((t=new te).hash=i.toString("hex"),t.height=e,t):null}async getTip(){var e=await this.getBlock(this.curHeight);if(e)return e;throw new Error("WDB: Tip not found!")}async rollback(e,t=!0){if(e>this.curHeight)throw new Error("WDB: Cannot rollback to the future.");if(e===this.curHeight)return this.logger.debug("Rolled back to same height (%d).",e),!0;this.logger.info("Rolling back %d AccountDB blocks to height %d.",this.curHeight-e,e);var i=await this.getBlock(e);let r=!1;return i?(await this.revert(i.height),await this.syncState(i),t):(i=new te,e>=this.state.startHeight?(i.height=this.state.startHeight,i.hash=this.state.startHash,r=this.state.marked,this.logger.warning("Rolling back AccountDB to start block (%d).",i.height)):(i.height=0,i.hash=this.network.genesis.hash,r=!1,this.logger.warning("Rolling back AccountDB to genesis block.")),await this.revert(i.height),await this.resetState(i,r),!1)}async revert(e){var t=this.db.iterator({gte:h.b(e+1),lte:h.b(4294967295),reverse:!0,values:!0});let i=0;for(;;){var r=await t.next();if(!r)break;try{var a=h.bb(r.key),s=ee.fromRaw(a,r.value),n=s.toArray();i+=n.length;for(let e=n.length-1;0<=e;e--){var o=await this.getTX(n[e].hash);o&&await this._unconfirm(o,s)}}catch(e){throw await t.end(),e}}this.logger.info("Rolled back %d AccountDB transactions.",i)}async addBlock(e,t){var i=await this.txLock.lock();try{return await this._addBlock(e,t)}finally{i()}}async _addBlock(e,t){var i=te.fromEntry(e);let r=0;if(i.height<this.curHeight)this.logger.warning("AccountDB is connecting low blocks (%d).",i.height);else{if(i.height===this.curHeight)this.logger.warning("Already saw AccountDB block (%d).",i.height);else if(i.height!==this.curHeight+1)throw new Error(`WDB(addBlock): Bad disconnection (height mismatch, tip ${i.height} while state ${this.curHeight})`);if(await this.syncState(i),await this.propList.save(),!(this.options.checkpoints&&i.height<=this.network.lastCheckpoint)){for(const e of t)await this._insert(e,i)&&r++;0<r&&this.logger.info("Connected AccountDB block %s (tx=%d).",j.revHex(i.hash),r)}}return r}async removeBlock(e,t){var i=await this.txLock.lock();try{return await this._removeBlock(e,t)}finally{i()}}async _removeBlock(e,t){if((e=te.fromEntry(e)).height>this.curHeight)return this.logger.warning("AccountDB is disconnecting high blocks (%d).",e.height),0;if(e.height!==this.curHeight)throw new Error(`WDB(removeBlock): Bad disconnection (height mismatch, tip ${e.height} / ${j.revHex(e.hash)} while state ${this.curHeight})`);var i=await this.getBlock(e.height-1);if(!i)throw new Error(`WDB(removeBlock): Bad disconnection (no previous block of ${e.height} / ${j.revHex(e.hash)}).`);var r=await this.getBlockMap(e.height);if(r){for(let e=t.length-1;0<=e;e--)await this._unconfirm(t[e],r);this.logger.warning("Disconnected wallet block %s (tx=%d).",j.revHex(e.hash),r.txs.size)}return await this.syncState(i),await this.propList.save(),r?r.txs.size:0}async rescanBlock(e,t){if(this.rescanning){var i=await this.scanLock.lock();try{await this._addBlock(e,t)}catch(e){throw this.emit("error",e),e}finally{i()}}else this.logger.warning("Unsolicited rescan block: %s.",e.height)}async addTX(e,t,i){var r=await this.txLock.lock();try{return await this._insert(e,t,i)}finally{r()}}listNotify(e){return this.NotifyList.deletes([["h","<",this.curHeight-12]]),this.NotifyList.query(e)}listContact(e,t,i){return this.$contacts.query(e,t,i)}async setCp(e){await this.batchPut(u.txdb.cp(e.cid),e.toRaw())}async delCp(e){await this.batchDel(u.txdb.cp(e))}async delVp(e){var t=this.db.batch();t.del(u.txdb.VP(e.pid)),await t.write()}async setVp(e,t){var i=this.db.batch();i.put(u.txdb.VP(e.pid),e.toRaw()),await i.write()}async getVp(e){return(e=await this.db.get(u.txdb.VP(e)))?W.fromRaw(e):null}async getVpByAddress(e){return{list:[],count:0}}async getVpByOid(e){return{list:[],count:0}}async loadVpList(){return this.db.values({gte:u.txdb.VP(P.ZERO_CID,"hex"),lte:u.txdb.VP(P.MAX_CID,"hex"),parse:e=>W.fromRaw(e)})}async saveContact(e){var t=this.db.batch();t.put(u.txdb.CT(e.getAddress()),e.toRaw()),await t.write()}async loadContact(e){var t;for(t of await this.db.values({gte:u.txdb.CT(P.ZERO_HASH160_HEX),lte:u.txdb.CT(P.MAX_HASH160_HEX),parse:e=>S.fromRaw(e,this)}))t.sender&&(t.sender.wallet=await this.get(t.sender.wid)),this.$contacts.set(t.address,t)}async delHtlc(e){var t;(e=new F(e)).id&&(this.htlcList.delete(e.id),this.htlcList.delAccount(e),(t=this.db.batch()).del(u.txdb.VH(e.shash,e.sidx)),await t.write())}async setSuggest(e){e=new F(e);var t,[t,i]=(this.htlcList.set(e.id,e),await this.getAccountByAddress(e.aa)),[t,i]=(t&&this.htlcList.setAccount(e,t,i),await this.getAccountByAddress(e.ba));(t=(t&&this.htlcList.setAccount(e,t,i),this.db.batch())).put(u.txdb.VH(e.shash,e.sidx),e.toRaw()),await t.write()}async setAssent(e){e=new F(e);var t,[t,i]=(this.htlcList.set(e.id,e),await this.getAccountByAddress(e.ab)),[t,i]=(t&&this.htlcList.setAccount(e,t,i),await this.getAccountByAddress(e.bb));(t=(t&&this.htlcList.setAccount(e,t,i),this.db.batch())).put(u.txdb.VH(e.shash,e.sidx),e.toRaw()),await t.write()}async loadHtlcList(){return this.db.values({gte:u.txdb.VH(P.ZERO_CID,0),lte:u.txdb.VH(P.MAX_CID,4294967295),parse:e=>F.fromRaw(e)})}async delComment(e){var t;(e=new M(e)).id&&(this.commentList.delete(e.id),this.commentList.delAccount(e),(t=this.db.batch()).del(u.txdb.VC(e.shash,e.sidx)),await t.write())}async setComment(e){e=new M(e);var t,[t,i]=(this.commentList.set(e.id,e),await this.getAccountByAddress(e.bob));(t=(t&&(this.commentList.setAccount(e,t,i),this.emit("comm.comment",e)),this.db.batch())).put(u.txdb.VC(e.shash,e.sidx),e.toRaw()),await t.write()}async loadCommentList(){return this.db.values({gte:u.txdb.VC(P.ZERO_CID,0),lte:u.txdb.VC(P.MAX_CID,4294967295),parse:e=>M.fromRaw(e)})}async delEr(e){var t=this.db.batch();t.del(u.txdb.ER(e.erid)),t.del(u.txdb.ERR(e.witness,e.erid,e.txid)),await t.write()}async setEr(e,t){t&&e.source&&(i=g.fromWitnessPubkeyhash(l.hash160(Buffer.from(e.source.pubkey,"hex")),this.network),[i,t]=await this.getAccountByAddress(i,t),e.wid=i,e.account=t);var i=this.db.batch();t=u.txdb.ERR(e.witness,e.erid,e.txid);i.put(t,e.toRaw()),i.put(u.txdb.ER(e.erid),t),await i.write()}async getEr(e){var t;return(e=await this.db.get(u.txdb.ER(e)))&&([,,t]=u.txdb.ERRR(e),e=await this.db.get(e))?((e=Y.fromRaw(e)).txid=t,e):null}async byPubkey(e,t,i=!1){var r,a=new _;e=await this.db.values({gte:u.txdb.ERR(e,P.NULL_HASH,P.NULL_HASH),lte:u.txdb.ERR(e,P.HIGH_HASH,P.HIGH_HASH),parse:e=>Y.fromRaw(e)});let s=[],n=new Map;if(i){for(var o of e)(!n.get(o.source.cluster)||o.startHeight>n.get(o.source.cluster).startHeight)&&n.set(o.source.cluster,await this.caVerifyObj(o));s=n.values()}else s=e;for(r of s)a.set(r.erid,r);return a.query(t)}async caVerifyObj(e){var t={verify:!1};if(!e||e.validHeight<=this.curHeight)return t;var i=await this.erAbList.getErAb(e.erid);return i&&i.abolishHeight<this.curHeight?t:(i=ae.fromPublic(Buffer.from(e.witness,"hex"),this.network.type),e.verify(i)?(e.verify=!0,0<(i=this.cpList.query([["pubKey",e.witness]])).list.length&&(e.cpid=i.list[0].cid),e):t)}async delErAbolish(e){var t=this.db.batch();t.del(u.txdb.ERA(e.erid)),await t.write()}async setErAbolish(e){var t=this.db.batch();t.put(u.txdb.ERA(e.erid),e.toRaw()),await t.write()}async getErAbolish(e){return(e=await this.db.get(u.txdb.ERA(e)))?q.fromRaw(e):null}loadErAbolishList(){return this.db.values({gte:u.txdb.ERA(P.ZERO_CID),lte:u.txdb.ERA(P.MAX_CID),parse:e=>q.fromRaw(e)})}async delAudit(e){var t=this.db.batch();t.del(u.txdb.AU(e.erid)),await t.write()}async setAudit(e){var t=this.db.batch();t.put(u.txdb.AU(e.erid),e.toRaw()),await t.write()}async getAudit(e){return(e=await this.db.get(u.txdb.AU(e)))?X.fromRaw(e):null}async loadAuditList(){return this.db.values({gte:u.txdb.AU(P.NULL_HASH),lte:u.txdb.AU(P.HIGH_HASH),parse:e=>X.fromRaw(e)})}async batchPut(e,t){var i=this.db.batch();i.put(e,t),await i.write()}async batchDel(e){var t=this.db.batch();t.del(e),await t.write()}async _insert(e,t,i){a(!e.mutable,"WDB: Cannot add mutable TX.");let r=await this.getWalletsByTX(e);if(r){this.logger.info("Incoming transaction for %d wallets in AccountDB (%s).",r.size,e.txid()),!t||this.state.marked||(this.logger.info("Marking AccountDB start block at %s (%d).",j.revHex(t.hash),t.height),await this.resetState(t,!0));let n=!1;for(const o of r){var s=await this.get(o);a(s),await s.add(e,t,i)&&(this.logger.info("Added transaction to wallet in AccountDB: %s (%d).",s.id,o),n=!0)}n||(r=null)}try{var n=await b.FactoryOfContract({env:this,block:t,tx:e});t?await n.confirm():await n.insert()}catch(n){t?this.logger.error("TX(%s) Smart Contract Confirm Error: %s",e.txid(),n.message):this.logger.error("TX(%s) Smart Contract Insert Error: %s",e.txid(),n.message)}return r}async _unconfirm(e,t){if(t)try{await(await b.FactoryOfContract({env:this,block:t,tx:e})).unconfirm()}catch(e){this.logger.error("Smart Contract Unconfirm Error: %s",e.message)}var i=e.hash("hex");if(!(e=t.txs.get(i).wids))return null;for(const t of e){var r=await this.get(t);a(r),await r.unconfirm(i)}}async resetChain(e){var t=await this.txLock.lock();try{return await this._resetChain(e)}finally{t()}}async _resetChain(e){if(e.height>this.curHeight)throw new Error(`WDB: Bad reset height ${e.height} while curHeight `+this.curHeight);var t;for(t of(await this.rollback(e.height)||await this._rescan(),await this.getWallets())){var i=await this.get(t);for(const t of await i.getPending())try{await i.abandon(t.hash)}catch(e){}}}async saveMSTrans(e){var t=await this.writeLock.lock();try{return await this._saveMSTrans(e)}finally{t()}}async _saveMSTrans(e){var t=this.db.batch();t.put(h.ms(g.getHash(e.addr,"hex"),e.txid),Buffer.from(JSON.stringify(e))),await t.write()}async listMSTrans(e){return e=g.getHash(e,"hex"),this.db.values({gte:h.ms(e,P.NULL_HASH),lte:h.ms(e,P.HIGH_HASH),parse:e=>JSON.parse(e.toString())})}async delMSTrans(e,t){var i=await this.writeLock.lock();try{return await this._delMSTrans(e,t)}finally{i()}}async _delMSTrans(e,t){e=g.getHash(e,"hex");var i=this.db.batch();i.del(h.ms(e,t)),await i.write()}}he.layout=h,e.exports=he},function(e,t,i){"use strict";
|
|
833
|
+
*/const r=i(8),a=i(0),s=i(73),n=i(119),o=i(157),c=i(609),u=i(85),h=u.walletdb,l=i(6),p=i(158),d=i(125),f=i(167);var{}=i(37);const m=i(46),g=i(13);i(20),i(68);const v=i(197),y=i(67),b=i(42),{BlockFinalType:w,ContractEnvType:x}=i(5),k=i(159),S=i(611),_=i(31);var E=i(71);const j=i(2),A=i(140).sortWithSeq,R=i(35),I=i(198),O=i(61),C=i(100),P=i(3),T=P.U32,B=i(338),N=i(339),z=i(340),F=z.vpItem,L=i(616),M=L.vpItem,D=i(314);i(617);const H=D.cpItem,U=i(154),q=U.ErAbolishItem,V=i(44).broadcast,K=i(146),W=K.vpItem,$=i(153),Y=$.ErItem,G=i(618),X=G.AuditItem,J=i(307),Q=i(109),Z=i(619),ee=i(308),te=i(120),ie=i(620),re=i(218),ae=i(38),se=i(36),ne=i(59),oe=i(78),ce=oe.errors,ue=i(77);class he extends E{constructor(e){super(),this.readyLoad=!1,this.options=new c(e),this.network=this.options.network,this.logger=this.options.logger.context("wallet"),this.workers=this.options.workers,this.keys={hmacSalt:P.DefaultChainCode},e.keys&&e.keys.hmacSalt&&(a(Buffer.isBuffer(e.keys.hmacSalt)),this.keys.hmacSalt=e.keys.hmacSalt),this.client=this.options.client,this.client&&(this.client.wdb=this),this.jsonp=this.options.jsonp,this.jsonp&&(this.jsonp.wdb=this),this.spv=this.options.spv,this.feeRate=this.options.feeRate,this.db=f(this.options),this.rpc=new B(this),this.primary=null,this.state=new Z,this.wallets=new Map,this.depth=0,this.rescanning=!1,this.bound=!1,this.newRecord=!0,this.readLock=new I,this.writeLock=new R,this.txLock=new R,this.scanLock=new R,this.widCache=new O(1e4),this.pathMapCache=new O(1e5),this.filter=new C,this.middleHashMem=new Set,this.middleHashChain=new Set,this.autoTaskMgr=new k(this),this.transactionList=new N(this),this.htlcList=new z(this),this.commentList=new L(this),this.NotifyList=new _,this.propList=new K(this),this.$contacts=new _,this.cpList=new D(this),this.cpMemList=new D(this),this.auditList=new G(this),this.erList=new $(this),this.erAbList=new U(this),this.hmacConnection=[],this._init()}async logAudit(e){e.height=this.curHeight,e.time=j.now(),e.erid=l.sha256(j.stringify(e)).toString("hex"),e=new X(e),await this.auditList.setAudit(e)}async getAccountByAddress(e,t){if(e){let a=null;if(a=t?await this.getWalletsByTX(t):await this.getWallets())for(const t of a){var i=await this.get(t);if(i){var r=await i.getPath(e);if(r)return[i.wid,r.name,i.id]}}}return[0,"",""]}_init(){let e=1e6,t=-1;this.spv&&(e=2e4,t=C.flags.ALL),this.filter=C.fromRate(e,.001,t)}get mode(){return x.Wallet}async getTXFromAll(e){return this.getTXFromDb(e)}async checkNewRecord(){var e={createIfMissing:this.db.options.createIfMissing,errorIfExists:this.db.options.errorIfExists};this.db.options.createIfMissing=!1,this.db.options.errorIfExists=!0;try{await this.db.open();var t=await this.db.checkVersion(h,6);this.newRecord="new"==t}catch(e){if(-1!=e.message.indexOf("does not exist (create_if_missing is false)"))this.newRecord=!0;else{if(-1==e.message.indexOf("exists (error_if_exists is true)"))throw e;this.newRecord=!1}}try{await this.db.close()}catch(e){}this.db.options.createIfMissing=e.createIfMissing,this.db.options.errorIfExists=e.errorIfExists}async isNewRecord(){return await this.checkNewRecord(),this.newRecord}setmnemonic(e){if(this.options.mnemonic=this.options.mnemonic||{},e.bits)this.options.mnemonic={bits:e.bits};else if(e.entropy)this.options.mnemonic={entropy:Buffer.from(e.entropy,"hex")};else if(e.phrase){var t=this.testmnemonic(e.phrase);if(0!=t.code)throw t.msg;this.options.mnemonic={phrase:e.phrase}}e.passphrase&&(this.options.mnemonic.passphrase=e.passphrase),e.language&&(this.options.mnemonic.language=e.language)}testmnemonic(e){try{return new v(e),{code:0}}catch(e){return{code:-1,msg:e.message}}}async getContracts(e){var t=await this.db.values({gte:u.txdb.tx(P.NULL_HASH),lte:u.txdb.tx(P.HIGH_HASH),parse:e=>j.parseJson(e.toString())});return e?t.filter(t=>t.srcact==e||t.dstact==e):t}isFull(){return this.spv||this.synced||!1}async _open(e){}async handleNotify(e,t=!1){if(!t){let i=e.body.content;if("string"==typeof i)try{i=JSON.parse(e.body.content)}catch(e){return}"object"==typeof i&&"secret"===i.type&&(t={contact:e.body.src,messenger:e.body.dst},i.init&&(t.init=Buffer.from(i.init,"hex")),i.packet&&(t.packet=Buffer.from(i.packet)),await this.handleSecret(t))}}async handleSecret(e){if(e.contact&&e.messenger&&e.contact!=e.messenger){try{g.fromString(e.contact,this.network.type),g.fromString(e.messenger,this.network.type)}catch(e){return}var t=await this.ensureContact(e);t&&await t.ensureMessenger(e).answer(e)}}async scanContact(e,t=-1){var i=async e=>{var t;e.witness&&"witnesspubkeyhash"==e.getType()&&(t=e.witness.getPubkeyhashInput()[1],e=g.fromWitness(e.witness).toString(),t)&&e&&await this.ensureContact({contact:e,publicKey:t})};if(0<=t&&t<e.inputs.length)await i(e.inputs[t]);else for(var r of e.inputs)await i(r)}async ensureContact(e){if(!e.contact||e.contact==e.messenger)return null;try{g.fromString(e.contact,this.network.type),e.messenger&&g.fromString(e.messenger,this.network.type)}catch(e){return null}e.network=this.network.type,this.$contacts.get(e.contact)||this.$contacts.set(e.contact,new S(e));var t=this.$contacts.get(e.contact);if(e.messenger&&!(e=t.ensureMessenger(e)).wallet){var i,[i,r]=await this.getAccountByAddress(e.address);if(!(i=await this.get(i)))return;e.wallet=i,e.account=r}return t}getCps(){return this.db.values({gte:u.txdb.cp(P.ZERO_CID,"hex"),lte:u.txdb.cp(P.MAX_CID,"hex"),parse:e=>H.fromRaw(e)})}async _close(){await this.disconnect(),this.http&&this.options.listen&&await this.http.close();for(const e of this.wallets.values())await e.destroy();await this.db.close(),this.options.listen&&await this.logger.close()}async destroy(){await this.db.destroy(),this.widCache.reset(),this.pathMapCache.reset()}async load(e){if(this.readyLoad){var t=await this.ensure({id:"primary",witness:!0,mnemonic:this.options.mnemonic}),i=await this.txLock.lock();try{await this.init(e),await this.watch(),await t.createReceive(0,1,t.master,this.network.type),await t.ensureNotifyKey(),await this.sync()}finally{i()}setTimeout(()=>{this.resend()},5e3)}}async disconnect(){this.client&&await this.client._close(),this.jsonp&&await this.jsonp._close()}async flushCP(e,t=!1){this.client&&(e=e||[],t||(e=this.cpList.excludeCids(e),t=t||0<e.length),t)&&await this.client.execute("cp.remoteQuery",[[["cid","include",e]]])}async watch(){let e=this.db.iterator({gte:h.p(P.NULL_HASH),lte:h.p(P.HIGH_HASH)}),t=0,i=0;for(;;){var r=await e.next();if(!r)break;try{var a=h.pp(r.key);this.addHash(a,!1)}catch(t){throw await e.end(),t}t++}for(e=this.db.iterator({gte:h.o(P.NULL_HASH,0),lte:h.o(P.HIGH_HASH,4294967295)});;){var s=await e.next();if(!s)break;try{var[n,o]=h.oo(s.key);this.addOutpoint(n,o)}catch(t){throw await e.end(),t}i++}this.logger.info("Filter: Added %d hashes to AccountDB filter.",t),this.logger.info("Filter: Added %d outpoints to AccountDB filter.",i),await this.setFilter()}async sync(){if(this.client){let t,i=this.curHeight;for(;0<=i;){var e=await this.getBlock(i);if(!e)break;if(t=await this.client.getEntry(e.hash))break;i--}t||(i=this.state.startHeight,t=await this.client.getEntry(this.state.startHash))||(i=0),await this.cpList.loadHistory(),await this.cpMemList.loadHistory(),await this.propList.loadHistory(),await this.htlcList.loadHistory(),await this.commentList.loadHistory(),await this.transactionList.loadHistory(),await this.loadContact(),await this.erList.loadHistory(),await this.auditList.loadHistory(),await this.erAbList.loadHistory(),await this._rescan(i,!1)}}async _rescan(e,t=!0){if(this.client){null==e&&(e=this.state.startHeight),a(e>>>0===e,"WDB: Must pass in a height.");var i=this.curHeight;t=(await this.rollback(e,t),this.logger.info("AccountDB is scanning %d blocks.",i-e+1),await this.getTip());try{this.rescanning=!0,await this.client.rescan(t.hash,this.eid)}finally{this.rescanning=!1}}}async rescan(e){var t=await this.txLock.lock();try{return await this._rescan(e,!1)}finally{t()}}async send(e){return this.client?this.client.send(e):(this.emit("send",e),Promise.resolve())}async getTX(e){for(const i of this.wallets.values()){var t=await i.getTX(e);if(t)return t.tx}return null}async getTXFromDb(e){for(const i of this.wallets.values()){var t=await i.getTX(e);if(t)return t.tx}return null}async getExtendTX(e){for(const i of this.wallets.values()){var t=await i.getTX(e);if(t)return t}return null}async removeTX(e){this.client?await this.client.removeTX(e):this.emit("remove",e)}async estimateFee(e){return 0<this.feeRate?this.feeRate:!this.client||(e=await this.client.estimateFee(e))<this.network.feeRate?this.network.feeRate:e>this.network.maxFeeRate?this.network.maxFeeRate:e}setFilter(){return this.client?this.client.setFilter(this.filter):(this.emit("filter.set",this.filter),Promise.resolve())}resetFilter(){return this.client?this.client.resetFilter():(this.emit("filter.reset"),Promise.resolve())}backup(e){return this.db.backup(e)}async wipe(){this.logger.warning("Wiping AccountDB TXDB..."),this.logger.warning("I hope you know what you're doing.");var e=this.db.iterator({gte:Buffer.from([0]),lte:Buffer.from([255])}),t=this.db.batch();let i=0;for(;;){var r=await e.next();if(!r)break;try{switch(r.key[0]){case 98:case 99:case 101:case 116:case 111:case 104:case 82:t.del(r.key),i++}}catch(t){throw await e.end(),t}}this.logger.warning("Wiped %d txdb records.",i),await t.write()}async getDepth(){var e=this.db.iterator({gte:h.w(0),lte:h.w(4294967295),reverse:!0,limit:1}),t=await e.next();return t?(await e.end(),h.ww(t.key)+1):1}start(e){return a(!e.current,"WDB: Batch already started."),e.current=this.db.batch(),e.accountCache.start(),e.pathCache.start(),e.current}drop(e){var t=this.batch(e);e.current=null,e.accountCache.drop(),e.pathCache.drop(),t.clear()}clear(e){var t=this.batch(e);e.accountCache.clear(),e.pathCache.clear(),t.clear()}batch(e){return a(e.current,"WDB: Batch does not exist."),e.current}async commit(e){var t=this.batch(e);try{await t.write()}catch(e){throw this.drop(),e}e.current=null,e.accountCache.commit(),e.pathCache.commit()}testFilter(e){return this.filter.test(e,"hex")}addHash(e,t=!0){this.filter.add(e,"hex"),t&&(t=Buffer.from(e,"hex"),this.client?this.client.addFilter(t):this.emit("filter.add",t))}addOutpoint(e,t){e=new m(e,t),this.filter.add(e.toRaw())}dump(){return this.db.dump()}register(e){a(!this.wallets.has(e.wid)),this.wallets.set(e.wid,e)}unregister(e){a(this.wallets.has(e.wid)),this.wallets.delete(e.wid)}async getWalletID(e){var t;return e?"number"==typeof e?e:this.widCache.get(e)||((t=await this.db.get(h.l(e)))?(t=t.readUInt32LE(0,!0),this.widCache.set(e,t),t):null):null}async get(e){if(!(e=await this.getWalletID(e)))return null;var t=await this.readLock.lock(e);try{return await this._get(e)}finally{t()}}async _get(e){var t=this.wallets.get(e);return t||((t=await this.db.get(h.w(e)))?(await(e=n.fromRaw(this,t)).open(),this.register(e),e):null)}async loadBackup(e){if(ne.unsupported)throw new ue(ce.INTERNAL_ERROR,"FS not available.");let t=null;var i;for(i of(await ne.readFile(e,"utf8")).split(/\n+/))if(0!==(i=i.trim()).length&&!/^\s*#/.test(i)){var r=i.split(/\s+/);if(r.length<4)throw new ue(ce.DESERIALIZATION_ERROR,"Malformed wallet Data File.");switch(r[0]){case"W":var s=Buffer.from(r[1],"base64");s=n.fromRaw(this,s);await this.replace(s),t=await this.get(s.id),this.logger.info("Import Wallet %s(%s)",t.id,t.wid);break;case"C":s=Buffer.from(r[1],"base64");(c=((u=o.fromRaw(this,s)).wallet=t,u.wid=t.wid,u.id=t.id,u.initialized=!0,u.watchOnly=t.watchOnly,u.receive=u.deriveReceive(u.receiveDepth-1),u.change=u.deriveChange(u.changeDepth-1),u.witness&&(u.nested=u.deriveNested(u.nestedDepth-1)),t.master.key.deriveAccount(44,u.accountIndex))).publicKey.toString("hex")!==u.accountKey.publicKey.toString("hex")&&a(c.publicKey.toString("hex")==u.accountKey.publicKey.toString("hex")),await t.saveAccount(u),this.logger.info("Import Account %s(%s)",u.name,u.accountIndex);break;case"A":var c=oe.parseSecret(r[1],this.network),u=parseInt(r[5]),h=parseInt(r[7]),l=parseInt(r[9]),p=r[11].trim();if(h<0||l<0)try{await t.importKey(u,c)}catch(e){this.logger.error(`loadBackup: ${e.message} account/secret: ${u}/`+p)}else{var d=await t.deriveKey(u,h,l),f=await t.deriveKey(u,h,l,t.master);d.getAddress("string")!==f.getAddress("string")&&this.logger.error(`loadBackup: not-equal-1: ${d.getAddress("string")} != `+f.getAddress("string")),d.getAddress("string")!==p&&this.logger.error(`loadBackup: not-equal-2: ${d.getAddress("string")} != `+p)}this.logger.info("Import Address %s %s %s %s",u,h,l,p)}}return t.accountCache.reset(),t}save(e){var t=e.wid,i=e.id,r=this.batch(e);this.widCache.set(i,t),r.put(h.w(t),e.toRaw()),r.put(h.l(i),T(t))}async rename(e,t){var i=await this.writeLock.lock();try{return await this._rename(e,t)}finally{i()}}async _rename(e,t){var i=e.id;if(!s.isName(t))throw new Error("WDB: Bad wallet ID.");if(await this.has(t))throw new Error("WDB: ID not available.");this.start(e).del(h.l(i)),e.id=t,this.save(e),await this.commit(e),this.widCache.remove(i),i=e.pathCache.values();for(const e of i)e.id=t}async replace(e){var t=await this.writeLock.lock();try{return await this._replace(e)}finally{t()}}async _replace(e){var t=this.start(e);t.del(h.l(e.id)),t.del(h.w(e.wid)),this.save(e),await this.commit(e),this.widCache.remove(e.id),this.wallets.delete(e.wid)}renameAccount(e,t){var i=e.wallet;this.batch(i).del(h.i(e.wid,e.name)),e.name=t,this.saveAccount(e)}async auth(e,t){if("string"==typeof t){if(!j.isHex256(t))throw new Error("WDB Authentication: Invalid Token.");t=Buffer.from(t,"hex")}e=y.getHmac(e.toString(),this.keys.hmacSalt);var i=r.createHmac("sha256",e.random);i=Buffer.from(i.update(e.token).digest("hex"),"hex");if(!p(t,i))throw new Error("WDB Authentication: CRC Error.")}async create(e){var t=await this.writeLock.lock();e=e||{};try{return await this._create(e)}finally{t()}}async _create(e){if(await this.has(e.id))throw new Error("WDB: Wallet already exists.");"string"==typeof e.mnemonic&&(e.mnemonic={phrase:e.mnemonic}),e.mnemonic=e.mnemonic||{},!e.mnemonic.language&&this.options.mnemonic&&this.options.mnemonic.language&&(e.mnemonic.language=this.options.mnemonic.language);var t=n.fromOptions(this,e);return t.wid=this.depth++,await t.init(e),this.register(t),this.logger.info("Created wallet %s in AccountDB.",t.id),t}async has(e){return null!=await this.getWalletID(e)}async ensure(e){return await this.get(e.id)||this.create(e)}async getAccount(e,t){return(e=await this.db.get(h.a(e,t)))?o.fromRaw(this,e):null}getAccounts(e){return this.db.values({gte:h.n(e,0),lte:h.n(e,4294967295),parse:e=>e.toString("ascii")})}async getAccountMap(e){for(var t={},i=this.db.iterator({gte:h.n(e,0),lte:h.n(e,4294967295),values:!0});;){var r=await i.next();if(!r)break;try{var[,a]=h.nn(r.key);t[a]=r.value.toString("ascii")}catch(e){throw await i.end(),e}}return t}async getAccountIndex(e,t){return(e=await this.db.get(h.i(e,t)))?e.readUInt32LE(0,!0):-1}async getAccountName(e,t){return(e=await this.db.get(h.n(e,t)))?e.toString("ascii"):null}saveAccount(e){var t=e.wid,i=e.wallet,r=e.accountIndex,a=e.name,s=this.batch(i);s.put(h.a(t,r),e.toRaw()),s.put(h.i(t,a),T(r)),s.put(h.n(t,r),Buffer.from(a,"ascii")),i.accountCache.push(r,e)}hasAccount(e,t){return"number"==typeof e&&"number"==typeof t&&this.db.has(h.a(e,t))}async getPathMap(e){var t=this.pathMapCache.get(e);return t||((t=await this.db.get(h.p(e)))?(t=ie.fromRaw(e,t),this.pathMapCache.set(e,t),t):null)}saveKey(e,t){return this.savePath(e,t.toPath())}async savePath(e,t){var i=e.wid,r=t.hash,a=this.batch(e);this.addHash(r);let s=await this.getPathMap(r);(s=s||new ie(r)).add(i)&&(this.pathMapCache.set(r,s),e.pathCache.push(r,t),a.put(h.p(r),s.toRaw()),a.put(h.P(i,r),t.toRaw()),a.put(h.r(i,t.account,r),null))}async getPath(e,t){var i=await this.db.get(h.P(e,t));return i?((i=Q.fromRaw(i)).wid=e,i.hash=t,i):null}hasPath(e,t){return this.db.has(h.P(e,t))}getHashes(){return this.db.keys({gte:h.p(P.NULL_HASH),lte:h.p(P.HIGH_HASH),parse:h.pp})}getOutpoints(){return this.db.keys({gte:h.o(P.NULL_HASH,0),lte:h.o(P.HIGH_HASH,4294967295),parse:e=>{var[e,t]=h.oo(e);return new m(e,t)}})}getWalletHashes(e){return this.db.keys({gte:h.P(e,P.NULL_HASH),lte:h.P(e,P.HIGH_HASH),parse:h.Pp})}getAccountHashes(e,t){return this.db.keys({gte:h.r(e,t,P.NULL_HASH),lte:h.r(e,t,P.HIGH_HASH),parse:h.rr})}async getWalletPaths(e){var t=[];for(const a of await this.db.range({gte:h.P(e,P.NULL_HASH),lte:h.P(e,P.HIGH_HASH)})){var i=h.Pp(a.key),r=Q.fromRaw(a.value);r.hash=i,r.wid=e,t.push(r)}return t}async encryptKeys(e,t){var i,r,s=e.wid,n=await e.getPaths(),o=this.batch(e);for(i of n)i.data&&(a(!i.encrypted),r=Buffer.from(i.hash,"hex").slice(0,16),(i=i.clone()).data=d.encipher(i.data,t,r),i.encrypted=!0,e.pathCache.push(i.hash,i),o.put(h.P(s,i.hash),i.toRaw()))}async decryptKeys(e,t){var i,r,s=e.wid,n=await e.getPaths(),o=this.batch(e);for(i of n)i.data&&(a(i.encrypted),r=Buffer.from(i.hash,"hex").slice(0,16),(i=i.clone()).data=d.decipher(i.data,t,r),i.encrypted=!1,e.pathCache.push(i.hash,i),o.put(h.P(s,i.hash),i.toRaw()))}async resend(){var e,t={};for(const e of await this.db.keys({gte:h.w(0),lte:h.w(4294967295)})){var i=h.ww(e),r=await this.resendPending(i);r&&Array.isArray(r)&&(t[i]=r)}for(e of Object.keys(t))if(await this.get(parseInt(e)))for(const i of t[e]){try{await this.send(i)}catch(e){this.logger.warning("wdb resend:",e.message)}await se.timeout(50)}}async resendPending(e){var t=await this.get(e),i=await this.db.keys({gte:u.txdb.prefix(e,u.txdb.p(P.NULL_HASH)),lte:u.txdb.prefix(e,u.txdb.p(P.HIGH_HASH))});if(0!==i.length){this.logger.info("Rebroadcasting %d transactions for %d.",i.length,e);var r=[];for(const o of i){var a=u.txdb.pp(o),s=u.txdb.prefix(e,u.txdb.t(a));if((s=await this.db.get(s))&&!(s=re.fromRaw(s)).tx.isCoinbase())try{var n=await b.FactoryOfContract({tx:s.tx,env:this});await n.isBlockFinal()==w.Expired?t&&(await this.removeTX(s.tx),await t.remove(a),await n.erase()):"notify"!=n.oper&&r.push(s.tx)}catch(e){this.logger.error("TX(%s) Smart Contract Error: %s",s.tx.txid(),e.message)}}return A(r)}}getWallets(){return this.db.keys({gte:h.l("\0"),lte:h.l("ÿ"),parse:h.ll})}async getWalletsByTX(e){var t=new Set;if(!e.isCoinbase())for(const r of e.inputs){var i=r.prevout;if(this.testFilter(i.toRaw())&&(i=await this.getOutpointMap(i.hash,i.index)))for(const e of i.wids)t.add(e)}for(const i of e.getOutputHashes("hex"))if(this.testFilter(i)){var r=await this.getPathMap(i);if(r)for(const e of r.wids)t.add(e)}return 0===t.size?null:t}async getState(){var e=await this.db.get(h.R);return e?Z.fromRaw(e):null}async init(e){var t=this.options.startHeight;let i;if(this.client){if(null!=t){if(!(i=await this.client.getEntry(t)))throw new Error("WDB: Could not find start block.")}else i=await this.client.getTip();i=te.fromEntry(i)}else i=te.fromEntry(this.network.genesis);this.logger.info("Initializing AccountDB chain state (height %d).",i.height),(t=await this.getState())?this.state=t:await this.resetState(i,!1),await this.ensure({id:"primary",witness:!0,mnemonic:this.options.mnemonic}),e&&e.backup&&await this.loadBackup(e.backup)}async resetState(e,t){for(var i=this.state.clone(),r=(i.startHeight=e.height,i.startHash=e.hash,i.height=e.height,i.marked=t,this.db.batch()),a=this.db.iterator({gte:h.h(e.height),lte:h.h(4294967295),values:!1});;){var s=await a.next();if(!s)break;try{r.del(s.key)}catch(e){throw await a.end(),e}}r.put(h.h(e.height),e.toHash()),r.put(h.R,i.toRaw()),await r.write(),this.state=i}async syncState(e){var t=this.state.clone(),i=this.db.batch();if(e.height<t.height){let a=t.height;var r=a-e.height;for(let e=0;e<r;e++)i.del(h.h(a--))}else e.height>t.height&&a(e.height===t.height+1,`Bad chain sync tip ${e.height} while state `+t.height);t.height=e.height,i.put(h.h(e.height),e.toHash()),i.put(h.R,t.toRaw()),await i.write(),this.state=t,V("block/tips",t)}get curHeight(){return this.state.height}get tidCreator(){return u.txdb.tx}get finder(){return this.getTXFromDb.bind(this)}rpcExecute(){return this.rpc.execute.apply(this.rpc,arguments)}async getBlockMap(e){var t=await this.db.get(h.b(e));return t?ee.fromRaw(e,t):null}writeBlockMap(e,t,i){this.batch(e).put(h.b(t),i.toRaw())}unwriteBlockMap(e,t){this.batch(e).del(h.b(t))}async getOutpointMap(e,t){var i=await this.db.get(h.o(e,t));return i?J.fromRaw(e,t,i):null}writeOutpointMap(e,t,i,r){e=this.batch(e),this.addOutpoint(t,i),e.put(h.o(t,i),r.toRaw())}unwriteOutpointMap(e,t,i){this.batch(e).del(h.o(t,i))}async writeBalanceLog(e,t){var i=h.log(e.wid,t.aidx,t.height,t.hash),r=(t=Buffer.from(JSON.stringify(t)),await this.writeLock.lock());try{this.start(e).put(i,t),await this.commit(e)}finally{r()}}async queryBalanceLog(e,t,i=0){return this.db.values({gte:h.log(e,t,i,P.NULL_HASH),lte:h.log(e,t,this.curHeight,P.HIGH_HASH),parse:e=>JSON.parse(e.toString())})}async getBlock(e){var t,i=await this.db.get(h.h(e));return i?((t=new te).hash=i.toString("hex"),t.height=e,t):null}async getTip(){var e=await this.getBlock(this.curHeight);if(e)return e;throw new Error("WDB: Tip not found!")}async rollback(e,t=!0){if(e>this.curHeight)throw new Error("WDB: Cannot rollback to the future.");if(e===this.curHeight)return this.logger.debug("Rolled back to same height (%d).",e),!0;this.logger.info("Rolling back %d AccountDB blocks to height %d.",this.curHeight-e,e);var i=await this.getBlock(e);let r=!1;return i?(await this.revert(i.height),await this.syncState(i),t):(i=new te,e>=this.state.startHeight?(i.height=this.state.startHeight,i.hash=this.state.startHash,r=this.state.marked,this.logger.warning("Rolling back AccountDB to start block (%d).",i.height)):(i.height=0,i.hash=this.network.genesis.hash,r=!1,this.logger.warning("Rolling back AccountDB to genesis block.")),await this.revert(i.height),await this.resetState(i,r),!1)}async revert(e){var t=this.db.iterator({gte:h.b(e+1),lte:h.b(4294967295),reverse:!0,values:!0});let i=0;for(;;){var r=await t.next();if(!r)break;try{var a=h.bb(r.key),s=ee.fromRaw(a,r.value),n=s.toArray();i+=n.length;for(let e=n.length-1;0<=e;e--){var o=await this.getTX(n[e].hash);o&&await this._unconfirm(o,s)}}catch(e){throw await t.end(),e}}this.logger.info("Rolled back %d AccountDB transactions.",i)}async addBlock(e,t){var i=await this.txLock.lock();try{return await this._addBlock(e,t)}finally{i()}}async _addBlock(e,t){var i=te.fromEntry(e);let r=0;if(i.height<this.curHeight)this.logger.warning("AccountDB is connecting low blocks (%d).",i.height);else{if(i.height===this.curHeight)this.logger.warning("Already saw AccountDB block (%d).",i.height);else if(i.height!==this.curHeight+1)throw new Error(`WDB(addBlock): Bad disconnection (height mismatch, tip ${i.height} while state ${this.curHeight})`);if(await this.syncState(i),await this.propList.save(),!(this.options.checkpoints&&i.height<=this.network.lastCheckpoint)){for(const e of t)await this._insert(e,i)&&r++;0<r&&this.logger.info("Connected AccountDB block %s (tx=%d).",j.revHex(i.hash),r)}}return r}async removeBlock(e,t){var i=await this.txLock.lock();try{return await this._removeBlock(e,t)}finally{i()}}async _removeBlock(e,t){if((e=te.fromEntry(e)).height>this.curHeight)return this.logger.warning("AccountDB is disconnecting high blocks (%d).",e.height),0;if(e.height!==this.curHeight)throw new Error(`WDB(removeBlock): Bad disconnection (height mismatch, tip ${e.height} / ${j.revHex(e.hash)} while state ${this.curHeight})`);var i=await this.getBlock(e.height-1);if(!i)throw new Error(`WDB(removeBlock): Bad disconnection (no previous block of ${e.height} / ${j.revHex(e.hash)}).`);var r=await this.getBlockMap(e.height);if(r){for(let e=t.length-1;0<=e;e--)await this._unconfirm(t[e],r);this.logger.warning("Disconnected wallet block %s (tx=%d).",j.revHex(e.hash),r.txs.size)}return await this.syncState(i),await this.propList.save(),r?r.txs.size:0}async rescanBlock(e,t){if(this.rescanning){var i=await this.scanLock.lock();try{await this._addBlock(e,t)}catch(e){throw this.emit("error",e),e}finally{i()}}else this.logger.warning("Unsolicited rescan block: %s.",e.height)}async addTX(e,t,i){var r=await this.txLock.lock();try{return await this._insert(e,t,i)}finally{r()}}listNotify(e){return this.NotifyList.deletes([["h","<",this.curHeight-12]]),this.NotifyList.query(e)}listContact(e,t,i){return this.$contacts.query(e,t,i)}async setCp(e){await this.batchPut(u.txdb.cp(e.cid),e.toRaw())}async delCp(e){await this.batchDel(u.txdb.cp(e))}async delVp(e){var t=this.db.batch();t.del(u.txdb.VP(e.pid)),await t.write()}async setVp(e,t){var i=this.db.batch();i.put(u.txdb.VP(e.pid),e.toRaw()),await i.write()}async getVp(e){return(e=await this.db.get(u.txdb.VP(e)))?W.fromRaw(e):null}async getVpByAddress(e){return{list:[],count:0}}async getVpByOid(e){return{list:[],count:0}}async loadVpList(){return this.db.values({gte:u.txdb.VP(P.ZERO_CID,"hex"),lte:u.txdb.VP(P.MAX_CID,"hex"),parse:e=>W.fromRaw(e)})}async saveContact(e){var t=this.db.batch();t.put(u.txdb.CT(e.getAddress()),e.toRaw()),await t.write()}async loadContact(e){var t;for(t of await this.db.values({gte:u.txdb.CT(P.ZERO_HASH160_HEX),lte:u.txdb.CT(P.MAX_HASH160_HEX),parse:e=>S.fromRaw(e,this)}))t.sender&&(t.sender.wallet=await this.get(t.sender.wid)),this.$contacts.set(t.address,t)}async delHtlc(e){var t;(e=new F(e)).id&&(this.htlcList.delete(e.id),this.htlcList.delAccount(e),(t=this.db.batch()).del(u.txdb.VH(e.shash,e.sidx)),await t.write())}async setSuggest(e){e=new F(e);var t,[t,i]=(this.htlcList.set(e.id,e),await this.getAccountByAddress(e.aa)),[t,i]=(t&&this.htlcList.setAccount(e,t,i),await this.getAccountByAddress(e.ba));(t=(t&&this.htlcList.setAccount(e,t,i),this.db.batch())).put(u.txdb.VH(e.shash,e.sidx),e.toRaw()),await t.write()}async setAssent(e){e=new F(e);var t,[t,i]=(this.htlcList.set(e.id,e),await this.getAccountByAddress(e.ab)),[t,i]=(t&&this.htlcList.setAccount(e,t,i),await this.getAccountByAddress(e.bb));(t=(t&&this.htlcList.setAccount(e,t,i),this.db.batch())).put(u.txdb.VH(e.shash,e.sidx),e.toRaw()),await t.write()}async loadHtlcList(){return this.db.values({gte:u.txdb.VH(P.ZERO_CID,0),lte:u.txdb.VH(P.MAX_CID,4294967295),parse:e=>F.fromRaw(e)})}async delComment(e){var t;(e=new M(e)).id&&(this.commentList.delete(e.id),this.commentList.delAccount(e),(t=this.db.batch()).del(u.txdb.VC(e.shash,e.sidx)),await t.write())}async setComment(e){e=new M(e);var t,[t,i]=(this.commentList.set(e.id,e),await this.getAccountByAddress(e.bob));(t=(t&&(this.commentList.setAccount(e,t,i),this.emit("comm.comment",e)),this.db.batch())).put(u.txdb.VC(e.shash,e.sidx),e.toRaw()),await t.write()}async loadCommentList(){return this.db.values({gte:u.txdb.VC(P.ZERO_CID,0),lte:u.txdb.VC(P.MAX_CID,4294967295),parse:e=>M.fromRaw(e)})}async delEr(e){var t=this.db.batch();t.del(u.txdb.ER(e.erid)),t.del(u.txdb.ERR(e.witness,e.erid,e.txid)),await t.write()}async setEr(e,t){t&&e.source&&(i=g.fromWitnessPubkeyhash(l.hash160(Buffer.from(e.source.pubkey,"hex")),this.network),[i,t]=await this.getAccountByAddress(i,t),e.wid=i,e.account=t);var i=this.db.batch();t=u.txdb.ERR(e.witness,e.erid,e.txid);i.put(t,e.toRaw()),i.put(u.txdb.ER(e.erid),t),await i.write()}async getEr(e){var t;return(e=await this.db.get(u.txdb.ER(e)))&&([,,t]=u.txdb.ERRR(e),e=await this.db.get(e))?((e=Y.fromRaw(e)).txid=t,e):null}async byPubkey(e,t,i=!1){var r,a=new _;e=await this.db.values({gte:u.txdb.ERR(e,P.NULL_HASH,P.NULL_HASH),lte:u.txdb.ERR(e,P.HIGH_HASH,P.HIGH_HASH),parse:e=>Y.fromRaw(e)});let s=[],n=new Map;if(i){for(var o of e)(!n.get(o.source.cluster)||o.startHeight>n.get(o.source.cluster).startHeight)&&n.set(o.source.cluster,await this.caVerifyObj(o));s=n.values()}else s=e;for(r of s)a.set(r.erid,r);return a.query(t)}async caVerifyObj(e){var t={verify:!1};if(!e||e.validHeight<=this.curHeight)return t;var i=await this.erAbList.getErAb(e.erid);return i&&i.abolishHeight<this.curHeight?t:(i=ae.fromPublic(Buffer.from(e.witness,"hex"),this.network.type),e.verify(i)?(e.verify=!0,0<(i=this.cpList.query([["pubKey",e.witness]])).list.length&&(e.cpid=i.list[0].cid),e):t)}async delErAbolish(e){var t=this.db.batch();t.del(u.txdb.ERA(e.erid)),await t.write()}async setErAbolish(e){var t=this.db.batch();t.put(u.txdb.ERA(e.erid),e.toRaw()),await t.write()}async getErAbolish(e){return(e=await this.db.get(u.txdb.ERA(e)))?q.fromRaw(e):null}loadErAbolishList(){return this.db.values({gte:u.txdb.ERA(P.ZERO_CID),lte:u.txdb.ERA(P.MAX_CID),parse:e=>q.fromRaw(e)})}async delAudit(e){var t=this.db.batch();t.del(u.txdb.AU(e.erid)),await t.write()}async setAudit(e){var t=this.db.batch();t.put(u.txdb.AU(e.erid),e.toRaw()),await t.write()}async getAudit(e){return(e=await this.db.get(u.txdb.AU(e)))?X.fromRaw(e):null}async loadAuditList(){return this.db.values({gte:u.txdb.AU(P.NULL_HASH),lte:u.txdb.AU(P.HIGH_HASH),parse:e=>X.fromRaw(e)})}async batchPut(e,t){var i=this.db.batch();i.put(e,t),await i.write()}async batchDel(e){var t=this.db.batch();t.del(e),await t.write()}async _insert(e,t,i){a(!e.mutable,"WDB: Cannot add mutable TX.");let r=await this.getWalletsByTX(e);if(r){this.logger.info("Incoming transaction for %d wallets in AccountDB (%s).",r.size,e.txid()),!t||this.state.marked||(this.logger.info("Marking AccountDB start block at %s (%d).",j.revHex(t.hash),t.height),await this.resetState(t,!0));let n=!1;for(const o of r){var s=await this.get(o);a(s),await s.add(e,t,i)&&(this.logger.info("Added transaction to wallet in AccountDB: %s (%d).",s.id,o),n=!0)}n||(r=null)}try{var n=await b.FactoryOfContract({env:this,block:t,tx:e});t?await n.confirm():await n.insert()}catch(n){t?this.logger.error("TX(%s) Smart Contract Confirm Error: %s",e.txid(),n.message):this.logger.error("TX(%s) Smart Contract Insert Error: %s",e.txid(),n.message)}return r}async _unconfirm(e,t){if(t)try{await(await b.FactoryOfContract({env:this,block:t,tx:e})).unconfirm()}catch(e){this.logger.error("Smart Contract Unconfirm Error: %s",e.message)}var i=e.hash("hex");if(!(e=t.txs.get(i).wids))return null;for(const t of e){var r=await this.get(t);a(r),await r.unconfirm(i)}}async resetChain(e){var t=await this.txLock.lock();try{return await this._resetChain(e)}finally{t()}}async _resetChain(e){if(e.height>this.curHeight)throw new Error(`WDB: Bad reset height ${e.height} while curHeight `+this.curHeight);var t;for(t of(await this.rollback(e.height)||await this._rescan(),await this.getWallets())){var i=await this.get(t);for(const t of await i.getPending())try{await i.abandon(t.hash)}catch(e){}}}async saveMSTrans(e){var t=await this.writeLock.lock();try{return await this._saveMSTrans(e)}finally{t()}}async _saveMSTrans(e){var t=this.db.batch();t.put(h.ms(g.getHash(e.addr,"hex"),e.txid),Buffer.from(JSON.stringify(e))),await t.write()}async listMSTrans(e){return e=g.getHash(e,"hex"),this.db.values({gte:h.ms(e,P.NULL_HASH),lte:h.ms(e,P.HIGH_HASH),parse:e=>JSON.parse(e.toString())})}async delMSTrans(e,t){var i=await this.writeLock.lock();try{return await this._delMSTrans(e,t)}finally{i()}}async _delMSTrans(e,t){e=g.getHash(e,"hex");var i=this.db.batch();i.del(h.ms(e,t)),await i.write()}}he.layout=h,e.exports=he},function(e,t,i){"use strict";
|
|
834
834
|
/*!
|
|
835
835
|
* txdb.js - persistent transaction pool
|
|
836
836
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
837
|
-
*/const r=i(2),a=i(63),s=i(0),n=i(33),o=i(60),c=i(54),u=i(46),h=i(307),l=i(85).txdb,p=i(3),d=i(29),f=i(17),m=i(308),g=i(218),v=i(309),y=i(584),b=i(585);i(119),i(120);const w=i(586);i(20);const x=i(42),k=i(117),S=i(19).nestingCodes;class _{constructor(e){this.wallet=e,this.walletdb=e.db,this.logger=this.walletdb.logger,this.network=this.walletdb.network,this.options=this.walletdb.options,this.coinCache=new a(this.options.coinCache),this.conserved=new Set,this.lockedCoins=new Map,this.virtualAmount=new Map,this.state=null,this.pending=null,this.events=[]}async open(){let e=null;try{e=await this.getState()}catch(t){this.logger.info("TXDB State Format Error."),e=null}e?(this.state=e,this.logger.info("TXDB loaded for %s.",this.wallet.id)):(this.state=new y(this.wallet.wid,this.wallet.id),this.logger.info("TXDB created for %s.",this.wallet.id)),this.logger.info("TXDB State: tx=%d coin=%s.",this.state.tx,this.state.coin),this.logger.info("Balance: unconfirmed=%s confirmed=%s.",n.btc(this.state.unconfirmed),n.btc(this.state.confirmed)),this.pending=this.state.clone(),await this.loadLockedCoins(),this.state=this.pending}start(){return this.pending=this.state.clone(),this.coinCache.start(),this.wallet.start()}drop(){return this.pending=null,this.events.length=0,this.coinCache.drop(),this.wallet.drop()}clear(){return this.pending=this.state.clone(),this.events.length=0,this.coinCache.clear(),this.wallet.clear()}async commit(){try{await this.wallet.commit()}catch(e){throw this.pending=null,this.events.length=0,this.coinCache.drop(),e}if(this.pending.committed)for(var[e,t,i]of(this.state=this.pending,this.events))this.walletdb.emit(e,this.wallet.id,t,i),"tx"==e&&this.walletdb.emit("tx.received."+t.rhash(),this.wallet.id,t,i),this.wallet.emit(e,t,i);this.pending=null,this.events.length=0,this.coinCache.commit()}emit(e,t,i){this.events.push([e,t,i])}prefix(e){return s(this.wallet.wid),l.prefix(this.wallet.wid,e)}put(e,t){s(this.wallet.current),this.wallet.current.put(this.prefix(e),t)}del(e){s(this.wallet.current),this.wallet.current.del(this.prefix(e))}get(e){return this.walletdb.db.get(this.prefix(e))}has(e){return this.walletdb.db.has(this.prefix(e))}range(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.range(e)}keys(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.keys(e)}values(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.values(e)}async getPath(e){return(e=e.getAddress())?this.wallet.getPath(e):null}async hasPath(e){return!!(e=e.getAddress())&&this.wallet.hasPath(e)}async saveCredit(e,t){var i=e.coin,r=i.toKey(),a=e.toRaw();let s=await this.walletdb.getOutpointMap(i.hash,i.index);(s=s||new h(i.hash,i.index)).add(this.wallet.wid)&&this.walletdb.writeOutpointMap(this.wallet,i.hash,i.index,s),this.put(l.c(i.hash,i.index),a),this.put(l.C(t.account,i.hash,i.index),null),this.coinCache.push(r,e)}async removeCredit(e,t){var i=(e=e.coin).toKey();await this.removeOutpointMap(e.hash,e.index),this.del(l.C(t.account,e.hash,e.index)),this.del(l.c(e.hash,e.index)),this.coinCache.unpush(i)}spendCredit(e,t,i){var r=t.inputs[i].prevout;t=u.fromTX(t,i);this.put(l.d(t.hash,t.index),e.coin.toRaw()),this.put(l.s(r.hash,r.index),t.toRaw())}unspendCredit(e,t){var i=e.inputs[t].prevout;e=u.fromTX(e,t);this.del(l.s(i.hash,i.index)),this.del(l.d(e.hash,e.index))}writeInput(e,t){var i=e.inputs[t].prevout;e=u.fromTX(e,t);this.put(l.s(i.hash,i.index),e.toRaw())}removeInput(e,t){e=e.inputs[t].prevout,this.del(l.s(e.hash,e.index))}async resolveInput(e,t,i,r,a,n){var o,c=e.hash("hex");return!!(c=await this.getSpender(c,t))&&!await this.hasSpentCoin(c)&&(o=await this.getTX(c.hash),s(o),(e=b.fromTX(e,t,i,r)).own=n,this.spendCredit(e,o.tx,c.index),-1===o.height&&(e.spent=!0,-1!==i&&(this.changeConfirmed(e.coin,1),e.coin.lockedByLocktime(i,r)||e.coin.lockedBySequence(i,r))&&this.addLocked(e.coin),await this.saveCredit(e,a)),!0)}async isDoubleSpend(e){for(var{prevout:t}of e.inputs)if(await this.isSpent(t.hash,t.index))return!0;return!1}async isRBF(e){if(e.isRBF())return!0;for(var{prevout:t}of e.inputs)if(t=l.r(t.hash),await this.has(t))return!0;return!1}async getSpender(e,t){return(e=await this.get(l.s(e,t)))?u.fromRaw(e):null}isSpent(e,t){return this.has(l.s(e,t))}async removeOutpointMap(e,t){var i=await this.walletdb.getOutpointMap(e,t);i&&i.remove(this.wallet.wid)&&(0===i.wids.size?this.walletdb.unwriteOutpointMap(this.wallet,e,t):this.walletdb.writeOutpointMap(this.wallet,e,t,i))}async addBlockMap(e,t){let i=await this.walletdb.getBlockMap(t);(i=i||new m(t)).add(e,this.wallet.wid)&&this.walletdb.writeBlockMap(this.wallet,t,i)}async removeBlockMap(e,t){var i=await this.walletdb.getBlockMap(t);i&&i.remove(e,this.wallet.wid)&&(0===i.txs.size?this.walletdb.unwriteBlockMap(this.wallet,t):this.walletdb.writeBlockMap(this.wallet,t,i))}getBlocks(){return this.keys({gte:l.b(0),lte:l.b(4294967295),parse:e=>l.bb(e)})}async getStatusOfSC(e){return(e=await this.get(l.de(e)))?{txs:e.toString().split(",")}:{}}async _setStatusOfSC(e,t){t=t.reduce((e,t)=>(e&&(e+=","),e+t),""),this.put(l.de(e),Buffer.from(t))}async getBlock(e){return(e=await this.get(l.b(e)))?w.fromRaw(e):null}async addBlock(e,t){var i=l.b(t.height);let r,a=await this.get(i);a||(r=w.fromMeta(t),a=r.toRaw()),r=Buffer.allocUnsafe(a.length+32),a.copy(r,0),t=r.readUInt32LE(40,!0),r.writeUInt32LE(t+1,40,!0),e.copy(r,a.length),this.put(i,r)}async removeBlock(e,t){t=l.b(t);var i,r=await this.get(t);r&&(i=r.readUInt32LE(40,!0),s(0<i),s(r.slice(-32).equals(e)),1===i?this.del(t):((e=r.slice(0,-32)).writeUInt32LE(i-1,40,!0),this.put(t,e)))}async addBlockSlow(e,t){let i=await this.getBlock(t.height);(i=i||w.fromMeta(t)).add(e)&&this.put(l.b(t.height),i.toRaw())}async removeBlockSlow(e,t){var i=await this.getBlock(t);i&&i.remove(e)&&(0===i.hashes.length?this.del(l.b(t)):this.put(l.b(t),i.toRaw()))}async _add(e,t,i){s(!e.mutable,"Cannot add mutable TX to wallet."),i=i||{};var a=e.hash("hex"),n=await this.getTX(a);if(t){if(!e.isCoinbase()){var o=await this.getSpentCredits(e);for(let r=0;r<e.inputs.length;r++){var c=e.inputs[r],u=c.prevout;let a=o[r];if(a||(a=await this.getCredit(u.hash,u.index)))try{await this.emitCoinSpent(c,a.coin,e,t)}catch(i){this.logger.error("add block:",i.message)}}}if(n)return-1===n.height||(this.logger.debug("txdb._add: Existing tx is already confirmed.",r.revHex(a)),this.walletdb.rescanning)?this._confirm(n,t):null;await this.removeConflicts(e,!1),this.del(l.r(a))}else{if(n&&!i.reorg)return null;if(await this.isRBF(e))return this.put(l.r(a),null),null;if(!await this.removeConflicts(e,!0))return null}return n=g.fromTX(e,t),this.insert(n,t)}async insert(e,t){var i=e.tx,a=e.hash,n=t?t.height:-1,o=t?t.mtp:0,c=new E(this,e,t),u=new Set;let h=!1,p=!1;if(!i.isCoinbase())for(let e=0;e<i.inputs.length;e++){var d=i.inputs[e].prevout;if(d=await this.getCredit(d.hash,d.index)){var f=d.coin;if(!t&&!await this.verifyInput(i,e,f))return this.clear(),null;var m=await this.getPath(f);s(m),c.setInput(e,m,f),u.add(m.account),this.spendCredit(d,i,e),this.changeUnconfirmed(f,-1),t?(this.changeConfirmed(f,-1),await this.removeCredit(d,m),this.removeLocked(f)):(d.spent=!0,await this.saveCredit(d,m)),p=!0,h=!0}else this.writeInput(i,e)}for(let e=0;e<i.outputs.length;e++){var g,v=i.outputs[e],y=await this.getPath(v);y&&(c.setOutput(e,y),u.add(y.account),await this.resolveInput(i,e,n,o,y,h)||((g=b.fromTX(i,e,n,o)).own=h,this.changeUnconfirmed(v,1),t&&this.changeConfirmed(v,1),await this.saveCredit(g,y),(g.coin.lockedByLocktime(n,o)||g.coin.lockedBySequence(n,o))&&this.addLocked(g.coin)),p=!0)}if(!p)return this.clear(),null;this.put(l.t(a),e.toRaw()),this.logger.spam("layout.t insert",r.revHex(a)),this.put(l.m(e.mtime,a),null),t?this.put(l.h(n,a),null):this.put(l.p(a),null);for(const i of u)this.put(l.T(i,a),null),this.put(l.M(i,e.mtime,a),null),t?this.put(l.H(i,n,a),null):this.put(l.P(i,a),null);return t&&(await this.addBlockMap(a,n),await this.addBlock(i.hash(),t),this.refreshLocked(n,r.now())),this.pending.tx++,this.put(l.R,this.pending.commit()),this.unConserveTX(i),this.emit("tx",i,c),this.emit("balance",this.pending.toBalance(),c),c}async _confirm(e,t){var i=e.tx,a=e.hash,n=t.height,o=t.mtp||t.time,c=new E(this,e,t),u=new Set;let h=!1;if(e.setBlock(t),!i.isCoinbase()){var p=await this.getSpentCredits(i);for(let e=0;e<i.inputs.length;e++){var d=i.inputs[e].prevout;let t=p[e];if(!t){if(!(t=await this.getCredit(d.hash,d.index)))continue;this.spendCredit(t,i,e),this.changeUnconfirmed(t.coin,-1)}d=t.coin;var f=await this.getPath(d);s(f),c.setInput(e,f,d),u.add(f.account),this.changeConfirmed(d,-1),await this.removeCredit(t,f),this.removeLocked(t.coin),h=!0}}for(let e=0;e<i.outputs.length;e++){var m=i.outputs[e],g=await this.getPath(m);if(g&&(c.setOutput(e,g),u.add(g.account),!await this.resolveInput(i,e,n,o,g,h))){let t=await this.getCredit(a,e);t||((t=b.fromTX(i,e,n,o)).own=!0,this.changeUnconfirmed(m,1)),t.spent&&await this.updateSpentCoin(i,e,n),this.changeConfirmed(m,1),t.coin.time=o,t.coin.height=n,await this.saveCredit(t,g),(t.coin.lockedByLocktime(n,o)||t.coin.lockedBySequence(n,o))&&this.addLocked(t.coin)}}this.del(l.r(a)),this.put(l.t(a),e.toRaw()),this.logger.spam("layout.t confirm",r.revHex(a)),this.del(l.p(a)),this.put(l.h(n,a),null);for(const t of u)this.put(l.T(t,a),null),this.put(l.M(t,e.mtime,a),null),this.del(l.P(t,a)),this.put(l.H(t,n,a),null);return t&&(await this.addBlockMap(a,n),await this.addBlock(i.hash(),t),this.refreshLocked(n,r.now())),this.put(l.R,this.pending.commit()),this.unConserveTX(i),this.emit("confirmed",i,c),this.emit("balance",this.pending.toBalance(),c),c}async remove(e){return(e=await this.getTX(e))?this.removeRecursive(e):null}changeUnconfirmed(e,t){e.isColored||(1===t?(this.pending.coin++,this.pending.unconfirmed+=e.value):(this.pending.coin--,this.pending.unconfirmed-=e.value))}changeConfirmed(e,t){e.isColored||(1===t?this.pending.confirmed+=e.value:this.pending.confirmed-=e.value)}changeLocked(e,t,i){t.isColored||(1===i?e.locked+=t.value:e.locked-=t.value)}async removeRecursive(e){s(e);var t=e.tx,i=e.hash;for(let e=0;e<t.outputs.length;e++){var r=await this.getSpender(i,e);r&&(r=await this.getTX(r.hash),await this.removeRecursive(r))}return this.start(),e=await this.erase(e,e.getBlock()),s(e),await this.commit(),e}async unconfirm(e){let t;this.start();try{t=await this._unconfirm(e)}catch(e){throw this.drop(),e}return await this.commit(),t}async _unconfirm(e){return(e=await this.getTX(e))&&-1!==e.height?this.disconnect(e,e.getBlock()):null}async disconnect(e,t){s(t);var i=e.tx,a=e.hash,n=t.height,o=t.mtp||t.time,c=new E(this,e,t),u=new Set;if(e.unsetBlock(),!i.isCoinbase()){var h=await this.getSpentCredits(i);for(let t=0;t<i.inputs.length;t++){var p=h[t];if(p){var d=p.coin;try{s(-1!==d.height)}catch(e){this.logger.warning("tx(%s): coin.height = -1: %s",i.txid(),e.message)}var f=await this.getPath(d);s(f),c.setInput(t,f,d),u.add(f.account),this.changeConfirmed(d,1),p.spent=!0,await this.saveCredit(p,f),(p.coin.lockedByLocktime(n,o)||p.coin.lockedBySequence(n,o))&&this.addLocked(p.coin)}}}for(let e=0;e<i.outputs.length;e++){var m,g=i.outputs[e],v=await this.getPath(g);v&&((m=await this.getCredit(a,e))?(m.spent&&await this.updateSpentCoin(i,e,n),c.setOutput(e,v),u.add(v.account),this.changeConfirmed(g,-1),m.coin.height=-1,await this.saveCredit(m,v)):await this.updateSpentCoin(i,e,n))}await this.removeBlockMap(a,n),await this.removeBlock(i.hash(),n),this.refreshLocked(n,r.now()),this.put(l.t(a),e.toRaw()),this.put(l.p(a),null),this.del(l.h(n,a));for(const e of u)this.put(l.P(e,a),null),this.del(l.H(e,n,a));return this.put(l.R,this.pending.commit()),this.emit("unconfirmed",i,c),this.emit("balance",this.pending.toBalance(),c),c}async erase(e,t){var i=e.tx,a=e.hash,n=t?t.height:-1,o=t?t.mtp:0,c=new E(this,e,t),u=new Set;if(!i.isCoinbase()){var h=await this.getSpentCredits(i);for(let e=0;e<i.inputs.length;e++){var p,d,f=h[e];f?(p=f.coin,d=await this.getPath(p),s(d),c.setInput(e,d,p),u.add(d.account),this.changeUnconfirmed(p,1),t&&this.changeConfirmed(p,1),this.unspendCredit(i,e),await this.saveCredit(f,d),(f.coin.lockedByLocktime(n,o)||f.coin.lockedBySequence(n,o))&&this.addLocked(f.coin)):this.removeInput(i,e)}}for(let e=0;e<i.outputs.length;e++){var m,g=i.outputs[e],v=await this.getPath(g);v&&(c.setOutput(e,v),u.add(v.account),m=b.fromTX(i,e,n,o),this.changeUnconfirmed(g,-1),t&&this.changeConfirmed(g,-1),await this.removeCredit(m,v),this.removeLocked(m.coin))}this.del(l.r(a)),this.del(l.t(a)),this.logger.spam("layout.t erase",r.revHex(a)),this.del(l.m(e.mtime,a)),t?this.del(l.h(n,a)):this.del(l.p(a));for(const i of u)this.del(l.T(i,a)),this.del(l.M(i,e.mtime,a)),t?this.del(l.H(i,n,a)):this.del(l.P(i,a));t&&(await this.removeBlockMap(a,n),await this.removeBlockSlow(a,n),this.refreshLocked(n,r.now())),this.pending.tx--,this.put(l.R,this.pending.commit());try{await(await x.FactoryOfContract({env:this.walletdb,tx:i,block:t})).erase()}catch(e){this.logger.error("TX(%s) Smart Contract Erase Error: %s",i.txid(),e.message)}return this.emit("tx.remove",i,c),this.emit("balance",this.pending.toBalance(),c),c}async removeConflict(e){var t;return e?(t=e.tx,this.logger.warning("Handling conflicting tx: %s.",t.txid()),this.drop(),e=await this.removeRecursive(e),this.start(),this.logger.warning("Removed conflict: %s.",t.txid()),this.emit("conflict",t,e),e):Promise.resolve()}async removeConflicts(e,t){var i=e.hash("hex"),r=[];if(!e.isCoinbase()){for(let o=0;o<e.inputs.length;o++){if((a=e.inputs[o].prevout).hash!==p.NULL_HASH&&(a=await this.getSpender(a.hash,a.index))&&a.hash!==i){var a=await this.getTX(a.hash),n=(s(a),a.getBlock());if(t&&n)return!1;r[o]=a}}for(const e of r)await this.removeConflict(e)}return!0}async verifyInput(e,t,i){var r=f.flags.MANDATORY_VERIFY_FLAGS;return!this.options.verify||e.verifyInput(t,i,r)}conserveTX(e){if(!e.isCoinbase())for(const t of e.inputs)this.conserveCoin(t.prevout)}unConserveTX(e){if(!e.isCoinbase())for(const t of e.inputs)this.unConserveCoin(t.prevout)}conserveCoin(e){e=e.toKey(),this.conserved.add(e)}unConserveCoin(e){return e=e.toKey(),this.conserved.delete(e)}isConserved(e){return e=e.toKey(),this.conserved.has(e)}filterConserved(e){var t=[];for(const i of e)this.isConserved(i)||t.push(i);return t}getConserved(){var e=[];for(const t of this.conserved.keys())e.push(u.fromKey(t));return e}getAccountHistoryHashes(e){return this.keys({gte:l.T(e,p.NULL_HASH),lte:l.T(e,p.HIGH_HASH),parse:e=>{var[,e]=l.Tt(e);return e}})}getHistoryHashes(e){return null!=e?this.getAccountHistoryHashes(e):this.keys({gte:l.t(p.NULL_HASH),lte:l.t(p.HIGH_HASH),parse:e=>l.tt(e)})}getAccountPendingHashes(e){return this.keys({gte:l.P(e,p.NULL_HASH),lte:l.P(e,p.HIGH_HASH),parse:e=>{var[,e]=l.Pp(e);return e}})}getPendingHashes(e){return null!=e?this.getAccountPendingHashes(e):this.keys({gte:l.p(p.NULL_HASH),lte:l.p(p.HIGH_HASH),parse:e=>l.pp(e)})}getAccountOutpoints(e){return void 0!==e&&null!=e?this.keys({gte:l.C(e,p.NULL_HASH,0),lte:l.C(e,p.HIGH_HASH,4294967295),parse:e=>{var[,e,t]=l.Cc(e);return new u(e,t)}}):this.keys({gte:l.c(p.NULL_HASH,0),lte:l.c(p.HIGH_HASH,4294967295),parse:e=>{var[e,t]=l.cc(e);return new u(e,t)}})}getAccountHeightRangeHashes(e,t){var i=t.start||0,r=t.end||4294967295;return this.keys({gte:l.H(e,i,p.NULL_HASH),lte:l.H(e,r,p.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,,e]=l.Hh(e);return e}})}getHeightRangeHashes(e,t){var i;return e&&"object"==typeof e&&(t=e,e=null),null!=e?this.getAccountHeightRangeHashes(e,t):(e=t.start||0,i=t.end||4294967295,this.keys({gte:l.h(e,p.NULL_HASH),lte:l.h(i,p.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,e]=l.hh(e);return e}}))}getHeightHashes(e){return this.getHeightRangeHashes({start:e,end:e})}getAccountRangeHashes(e,t){var i=t.start||0,r=t.end||4294967295;return this.keys({gte:l.M(e,i,p.NULL_HASH),lte:l.M(e,r,p.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,,e]=l.Mm(e);return e}})}getRangeHashes(e,t){var i;return e&&"object"==typeof e&&(t=e,e=null),null!=e?this.getAccountRangeHashes(e,t):(e=t.start||0,i=t.end||4294967295,this.keys({gte:l.m(e,p.NULL_HASH),lte:l.m(i,p.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,e]=l.mm(e);return e}}))}async getRange(e,t){var i=[];e&&"object"==typeof e&&(t=e,e=null),e=await this.getRangeHashes(e,t);for(const t of e){var r=await this.getTX(t);s(r),i.push(r)}return i}getLast(e,t){return this.getRange(e,{start:0,end:4294967295,reverse:!0,limit:t||10})}getHistory(e){return null!=e?this.getAccountHistory(e):this.values({gte:l.t(p.NULL_HASH),lte:l.t(p.HIGH_HASH),parse:g.fromRaw})}async getAccountHistory(e){var t=[];for(const r of await this.getHistoryHashes(e)){var i=await this.getTX(r);s(i),t.push(i)}return t}async getPending(e){var t=[];for(const r of await this.getPendingHashes(e)){var i=await this.getTX(r);s(i),t.push(i)}return t}getCredits(e){return void 0!==e&&null!=e?this.getAccountCredits(e):this.range({gte:l.c(p.NULL_HASH,0),lte:l.c(p.HIGH_HASH,4294967295),parse:(e,t)=>{var[e,i]=l.cc(e),r=(t=b.fromRaw(t),u.toKey(e,i));return t.coin.hash=e,t.coin.index=i,this.coinCache.set(r,t),t}})}async fillCoins(){var e;for(e of await this.keys({gte:l.C(0,p.NULL_HASH,0),lte:l.C(4294967295,p.HIGH_HASH,4294967295),parse:e=>{var t,[e,t,i]=l.Cc(e);return(t=new u(t,i)).wid=this.wallet.wid,t.account=e,[t.toKey(),t]}})){var t=await this.get(l.c(e[1].hash,e[1].index));t&&((t=b.fromRaw(t)).coin.hash=e[1].hash,t.coin.index=e[1].index,this.coinCache.set(e[0],t))}}async getAccountCredits(e){var t=[];for(const r of await this.getAccountOutpoints(e)){var i=await this.getCredit(r.hash,r.index);i||(this.logger.warning("getAccountCredits: credit not found.",r.hash,r.index),s(i)),t.push(i)}return t}async getSpentCredits(e){if(e.isCoinbase())return[];var t=e.hash("hex");const i=[];for(let t=0;t<e.inputs.length;t++)i.push(null);return await this.range({gte:l.d(t,0),lte:l.d(t,4294967295),parse:(t,r)=>{var[,t]=l.dd(t),a=(r=c.fromRaw(r),e.inputs[t]);s(a),r.hash=a.prevout.hash,r.index=a.prevout.index,i[t]=new b(r)}}),i}async getCoins(e){const t=[];if(void 0!==e&&null!=e)for(const r of await this.getAccountOutpoints(e)){var i=await this.getCredit(r.hash,r.index);i||(this.logger.warning("getCoins: credit not found.",r.hash,r.index),s(i)),i.spent||t.push(i.coin)}else await this.range({gte:l.c(p.NULL_HASH,0),lte:l.c(p.HIGH_HASH,4294967295),parse:(e,i)=>{var[e,r]=l.cc(e),a=(i=b.fromRaw(i),u.toKey(e,r));i.coin.hash=e,i.coin.index=r,this.coinCache.set(a,i),i.spent||t.push(i.coin)}});return t}async getSpentCoins(e){if(e.isCoinbase())return[];var t=[];for(const i of await this.getSpentCredits(e))i?t.push(i.coin):t.push(null);return t}async getCoinView(e){var t=new o;if(!e.isCoinbase())for(const r of e.inputs){var i=r.prevout;(i=await this.getCoin(i.hash,i.index))&&t.addCoin(i)}return t}async getSpentView(e){var t=new o;if(!e.isCoinbase())for(const i of await this.getSpentCoins(e))i&&t.addCoin(i);return t}async getState(){var e=await this.get(l.R);return e?y.fromRaw(this.wallet.wid,this.wallet.id,e):null}async loadLockedCoins(){var e=this.walletdb.curHeight,t=r.now();for(const r of await this.wallet.getCredits()){var i=r.coin;i.getAddress()&&(i.lockedByLocktime(e,t)||i.lockedBySequence(e,t))&&this.addLocked(i)}}refreshLocked(e,t){for(const i of this.lockedCoins.values())i.lockedByLocktime(e,t)||i.lockedBySequence(e,t)||this.removeLocked(i)}addLocked(e){var t=l.prefix(this.wallet.wid,l.c(e.hash,e.index));this.lockedCoins.has(t)||(this.lockedCoins.set(t,e),this.changeLocked(this.pending,e,1))}removeLocked(e){var t=l.prefix(this.wallet.wid,l.c(e.hash,e.index));this.lockedCoins.has(t)&&(this.lockedCoins.delete(t),this.changeLocked(this.pending,e,-1))}async getTX(e){return(e=await this.get(l.t(e)))?g.fromRaw(e):null}async getDetails(e){return(e=await this.getTX(e))?this.toDetails(e):null}async toDetails(e){var t=[];if(!Array.isArray(e))return this._toDetail(e);for(const r of e){var i=await this._toDetail(r);i&&t.push(i)}return t}async _toDetail(e){var t=e.tx,i=e.getBlock(),r=new E(this,e,i),a=await this.getSpentCoins(t);for(let e=0;e<t.inputs.length;e++){var s=a[e];let t=null;s&&(t=await this.getPath(s)),r.setInput(e,t,s)}for(let e=0;e<t.outputs.length;e++){var n=t.outputs[e];n=await this.getPath(n);r.setOutput(e,n)}return r}hasTX(e){return this.has(l.t(e))}async getCoin(e,t){return(e=await this.getCredit(e,t))?e.coin:null}async emitCoinSpent(e,t,i,r){(i={env:this.walletdb,block:r,tx:i,hash:e.prevout.hash,i:e.prevout.index,height:r.height,output:t,type:t.getReturnType(),data:t.getReturnData(S)}).data&&await k(i).spent(e)}async getCredit(e,t){var i=this.state,r=u.toKey(e,t),a=this.coinCache.get(r);return a||((a=await this.get(l.c(e,t)))?((a=b.fromRaw(a)).coin.hash=e,a.coin.index=t,i===this.state&&this.coinCache.set(r,a),a):null)}async getSpentCoin(e,t){return(e=await this.get(l.d(e.hash,e.index)))?(e=c.fromRaw(e),t&&(e.hash=t.hash,e.index=t.index),e):null}hasSpentCoin(e){return this.has(l.d(e.hash,e.index))}async updateSpentCoin(e,t,i){e=u.fromTX(e,t);(t=await this.getSpender(e.hash,e.index))&&(e=await this.getSpentCoin(t,e))&&(e.height=i,this.put(l.d(t.hash,t.index),e.toRaw()))}async hasCoin(e,t){var i=u.toKey(e,t);return!!this.coinCache.has(i)||this.has(l.c(e,t))}async getBalance(e){return null!=e?this.getAccountBalance(e):this.state.toBalance()}addAccountAmount(e,t){this.virtualAmount.has(e)?this.virtualAmount.set(e,this.virtualAmount.get(e)+t):this.virtualAmount.set(e,t)}checkAccountAmount(e){this.virtualAmount.get(e)&&this.virtualAmount.delete(e)}async getAccountBalance(e){var t=await this.getAccountCredits(e),i=new v(this.wallet.wid,this.wallet.id,e),r=this.walletdb.curHeight,a=this.network.now();for(const e of t){var s=e.coin;s.isColored||(e.spent||(i.unconfirmed+=s.value),-1!==s.height&&(i.confirmed+=s.value)),(s.lockedByLocktime(r,a)||s.lockedBySequence(r,a))&&this.changeLocked(i,s,1)}return this.virtualAmount.get(e)&&(i.unconfirmed+=this.virtualAmount.get(e)),i}async zap(e,t){s(r.isU32(t));var i=r.now(),a=[];for(const r of await this.getRange(e,{start:0,end:i-t}))-1===r.height&&(s(i-r.mtime>=t),this.logger.debug("Zapping TX: %s (%s)",r.tx.txid(),this.wallet.id),await this.remove(r.hash),a.push(r.hash));return a}async abandon(e){if(await this.has(l.p(e)))return this.remove(e)}}_.layout=l;class E{constructor(e,t,i){this.wallet=e.wallet,this.network=this.wallet.network,this.wid=this.wallet.wid,this.id=this.wallet.id,this.chainHeight=e.walletdb.curHeight,this.hash=t.hash,this.tx=t.tx,this.mtime=t.mtime,this.size=this.tx.getSize(),this.vsize=this.tx.getVirtualSize(),this.block=null,this.height=-1,this.time=0,i&&(this.block=i.hash,this.height=i.height,this.time=i.time),this.inputs=[],this.outputs=[],this.init()}init(){for(const t of this.tx.inputs){var e=new j;e.address=t.getAddress(),this.inputs.push(e)}for(const e of this.tx.outputs){var t=new j;t.value=e.value,t.address=e.getAddress(),this.outputs.push(t)}}setInput(e,t,i){var r=this.inputs[e];r.prevout=this.tx.inputs[e].prevout,i&&(r.value=i.value,r.address=i.getAddress()),t&&(r.path=t)}setOutput(e,t){e=this.outputs[e],t&&(e.path=t)}getDepth(){var e;return-1===this.height||(e=this.chainHeight-this.height)<0?0:1+e}getFee(){let e=0,t=0;for(const t of this.inputs){if(!t.path)return 0;e+=t.value}for(const e of this.outputs)t+=e.value;return e-t}getRate(e){return d.getRate(this.vsize,e)}toJSON(){var e=this.getFee();let t=this.getRate(e);return Number.isSafeInteger(t)||(t=0),{wid:this.wid,id:this.id,hash:r.revHex(this.hash),height:this.height,block:this.block?r.revHex(this.block):null,time:this.time,mtime:this.mtime,date:r.date(this.time||this.mtime),size:this.size,virtualSize:this.vsize,fee:e,rate:t,confirmations:this.getDepth(),inputs:this.inputs.map(e=>e.getJSON(this.network)),outputs:this.outputs.map(e=>e.getJSON(this.network)),tx:this.tx.toRaw().toString("hex")}}}class j{constructor(){this.value=0,this.address=null,this.path=null}toJSON(){return this.getJSON()}getJSON(e){return{prevout:this.prevout?this.prevout.toJSON():null,value:this.value,address:this.address?this.address.toString(e):null,path:this.path?this.path.toJSON():null}}}e.exports=_},function(e,t){e.exports=require("child_process")},function(e,t,i){"use strict";
|
|
837
|
+
*/const r=i(2),a=i(61),s=i(0),n=i(33),o=i(60),c=i(54),u=i(46),h=i(307),l=i(85).txdb,p=i(3),d=i(29),f=i(17),m=i(308),g=i(218),v=i(309),y=i(584),b=i(585);i(119),i(120);const w=i(586);i(20);const x=i(42),k=i(117),S=i(19).nestingCodes;class _{constructor(e){this.wallet=e,this.walletdb=e.db,this.logger=this.walletdb.logger,this.network=this.walletdb.network,this.options=this.walletdb.options,this.coinCache=new a(this.options.coinCache),this.conserved=new Set,this.lockedCoins=new Map,this.virtualAmount=new Map,this.state=null,this.pending=null,this.events=[]}async open(){let e=null;try{e=await this.getState()}catch(t){this.logger.info("TXDB State Format Error."),e=null}e?(this.state=e,this.logger.info("TXDB loaded for %s.",this.wallet.id)):(this.state=new y(this.wallet.wid,this.wallet.id),this.logger.info("TXDB created for %s.",this.wallet.id)),this.logger.info("TXDB State: tx=%d coin=%s.",this.state.tx,this.state.coin),this.logger.info("Balance: unconfirmed=%s confirmed=%s.",n.btc(this.state.unconfirmed),n.btc(this.state.confirmed)),this.pending=this.state.clone(),await this.loadLockedCoins(),this.state=this.pending}start(){return this.pending=this.state.clone(),this.coinCache.start(),this.wallet.start()}drop(){return this.pending=null,this.events.length=0,this.coinCache.drop(),this.wallet.drop()}clear(){return this.pending=this.state.clone(),this.events.length=0,this.coinCache.clear(),this.wallet.clear()}async commit(){try{await this.wallet.commit()}catch(e){throw this.pending=null,this.events.length=0,this.coinCache.drop(),e}if(this.pending.committed)for(var[e,t,i]of(this.state=this.pending,this.events))this.walletdb.emit(e,this.wallet.id,t,i),"tx"==e&&this.walletdb.emit("tx.received."+t.rhash(),this.wallet.id,t,i),this.wallet.emit(e,t,i);this.pending=null,this.events.length=0,this.coinCache.commit()}emit(e,t,i){this.events.push([e,t,i])}prefix(e){return s(this.wallet.wid),l.prefix(this.wallet.wid,e)}put(e,t){s(this.wallet.current),this.wallet.current.put(this.prefix(e),t)}del(e){s(this.wallet.current),this.wallet.current.del(this.prefix(e))}get(e){return this.walletdb.db.get(this.prefix(e))}has(e){return this.walletdb.db.has(this.prefix(e))}range(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.range(e)}keys(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.keys(e)}values(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.values(e)}async getPath(e){return(e=e.getAddress())?this.wallet.getPath(e):null}async hasPath(e){return!!(e=e.getAddress())&&this.wallet.hasPath(e)}async saveCredit(e,t){var i=e.coin,r=i.toKey(),a=e.toRaw();let s=await this.walletdb.getOutpointMap(i.hash,i.index);(s=s||new h(i.hash,i.index)).add(this.wallet.wid)&&this.walletdb.writeOutpointMap(this.wallet,i.hash,i.index,s),this.put(l.c(i.hash,i.index),a),this.put(l.C(t.account,i.hash,i.index),null),this.coinCache.push(r,e)}async removeCredit(e,t){var i=(e=e.coin).toKey();await this.removeOutpointMap(e.hash,e.index),this.del(l.C(t.account,e.hash,e.index)),this.del(l.c(e.hash,e.index)),this.coinCache.unpush(i)}spendCredit(e,t,i){var r=t.inputs[i].prevout;t=u.fromTX(t,i);this.put(l.d(t.hash,t.index),e.coin.toRaw()),this.put(l.s(r.hash,r.index),t.toRaw())}unspendCredit(e,t){var i=e.inputs[t].prevout;e=u.fromTX(e,t);this.del(l.s(i.hash,i.index)),this.del(l.d(e.hash,e.index))}writeInput(e,t){var i=e.inputs[t].prevout;e=u.fromTX(e,t);this.put(l.s(i.hash,i.index),e.toRaw())}removeInput(e,t){e=e.inputs[t].prevout,this.del(l.s(e.hash,e.index))}async resolveInput(e,t,i,r,a,n){var o,c=e.hash("hex");return!!(c=await this.getSpender(c,t))&&!await this.hasSpentCoin(c)&&(o=await this.getTX(c.hash),s(o),(e=b.fromTX(e,t,i,r)).own=n,this.spendCredit(e,o.tx,c.index),-1===o.height&&(e.spent=!0,-1!==i&&(this.changeConfirmed(e.coin,1),e.coin.lockedByLocktime(i,r)||e.coin.lockedBySequence(i,r))&&this.addLocked(e.coin),await this.saveCredit(e,a)),!0)}async isDoubleSpend(e){for(var{prevout:t}of e.inputs)if(await this.isSpent(t.hash,t.index))return!0;return!1}async isRBF(e){if(e.isRBF())return!0;for(var{prevout:t}of e.inputs)if(t=l.r(t.hash),await this.has(t))return!0;return!1}async getSpender(e,t){return(e=await this.get(l.s(e,t)))?u.fromRaw(e):null}isSpent(e,t){return this.has(l.s(e,t))}async removeOutpointMap(e,t){var i=await this.walletdb.getOutpointMap(e,t);i&&i.remove(this.wallet.wid)&&(0===i.wids.size?this.walletdb.unwriteOutpointMap(this.wallet,e,t):this.walletdb.writeOutpointMap(this.wallet,e,t,i))}async addBlockMap(e,t){let i=await this.walletdb.getBlockMap(t);(i=i||new m(t)).add(e,this.wallet.wid)&&this.walletdb.writeBlockMap(this.wallet,t,i)}async removeBlockMap(e,t){var i=await this.walletdb.getBlockMap(t);i&&i.remove(e,this.wallet.wid)&&(0===i.txs.size?this.walletdb.unwriteBlockMap(this.wallet,t):this.walletdb.writeBlockMap(this.wallet,t,i))}getBlocks(){return this.keys({gte:l.b(0),lte:l.b(4294967295),parse:e=>l.bb(e)})}async getStatusOfSC(e){return(e=await this.get(l.de(e)))?{txs:e.toString().split(",")}:{}}async _setStatusOfSC(e,t){t=t.reduce((e,t)=>(e&&(e+=","),e+t),""),this.put(l.de(e),Buffer.from(t))}async getBlock(e){return(e=await this.get(l.b(e)))?w.fromRaw(e):null}async addBlock(e,t){var i=l.b(t.height);let r,a=await this.get(i);a||(r=w.fromMeta(t),a=r.toRaw()),r=Buffer.allocUnsafe(a.length+32),a.copy(r,0),t=r.readUInt32LE(40,!0),r.writeUInt32LE(t+1,40,!0),e.copy(r,a.length),this.put(i,r)}async removeBlock(e,t){t=l.b(t);var i,r=await this.get(t);r&&(i=r.readUInt32LE(40,!0),s(0<i),s(r.slice(-32).equals(e)),1===i?this.del(t):((e=r.slice(0,-32)).writeUInt32LE(i-1,40,!0),this.put(t,e)))}async addBlockSlow(e,t){let i=await this.getBlock(t.height);(i=i||w.fromMeta(t)).add(e)&&this.put(l.b(t.height),i.toRaw())}async removeBlockSlow(e,t){var i=await this.getBlock(t);i&&i.remove(e)&&(0===i.hashes.length?this.del(l.b(t)):this.put(l.b(t),i.toRaw()))}async _add(e,t,i){s(!e.mutable,"Cannot add mutable TX to wallet."),i=i||{};var a=e.hash("hex"),n=await this.getTX(a);if(t){if(!e.isCoinbase()){var o=await this.getSpentCredits(e);for(let r=0;r<e.inputs.length;r++){var c=e.inputs[r],u=c.prevout;let a=o[r];if(a||(a=await this.getCredit(u.hash,u.index)))try{await this.emitCoinSpent(c,a.coin,e,t)}catch(i){this.logger.error("add block:",i.message)}}}if(n)return-1===n.height||(this.logger.debug("txdb._add: Existing tx is already confirmed.",r.revHex(a)),this.walletdb.rescanning)?this._confirm(n,t):null;await this.removeConflicts(e,!1),this.del(l.r(a))}else{if(n&&!i.reorg)return null;if(await this.isRBF(e))return this.put(l.r(a),null),null;if(!await this.removeConflicts(e,!0))return null}return n=g.fromTX(e,t),this.insert(n,t)}async insert(e,t){var i=e.tx,a=e.hash,n=t?t.height:-1,o=t?t.mtp:0,c=new E(this,e,t),u=new Set;let h=!1,p=!1;if(!i.isCoinbase())for(let e=0;e<i.inputs.length;e++){var d=i.inputs[e].prevout;if(d=await this.getCredit(d.hash,d.index)){var f=d.coin;if(!t&&!await this.verifyInput(i,e,f))return this.clear(),null;var m=await this.getPath(f);s(m),c.setInput(e,m,f),u.add(m.account),this.spendCredit(d,i,e),this.changeUnconfirmed(f,-1),t?(this.changeConfirmed(f,-1),await this.removeCredit(d,m),this.removeLocked(f)):(d.spent=!0,await this.saveCredit(d,m)),p=!0,h=!0}else this.writeInput(i,e)}for(let e=0;e<i.outputs.length;e++){var g,v=i.outputs[e],y=await this.getPath(v);y&&(c.setOutput(e,y),u.add(y.account),await this.resolveInput(i,e,n,o,y,h)||((g=b.fromTX(i,e,n,o)).own=h,this.changeUnconfirmed(v,1),t&&this.changeConfirmed(v,1),await this.saveCredit(g,y),(g.coin.lockedByLocktime(n,o)||g.coin.lockedBySequence(n,o))&&this.addLocked(g.coin)),p=!0)}if(!p)return this.clear(),null;this.put(l.t(a),e.toRaw()),this.logger.spam("layout.t insert",r.revHex(a)),this.put(l.m(e.mtime,a),null),t?this.put(l.h(n,a),null):this.put(l.p(a),null);for(const i of u)this.put(l.T(i,a),null),this.put(l.M(i,e.mtime,a),null),t?this.put(l.H(i,n,a),null):this.put(l.P(i,a),null);return t&&(await this.addBlockMap(a,n),await this.addBlock(i.hash(),t),this.refreshLocked(n,r.now())),this.pending.tx++,this.put(l.R,this.pending.commit()),this.unConserveTX(i),this.emit("tx",i,c),this.emit("balance",this.pending.toBalance(),c),c}async _confirm(e,t){var i=e.tx,a=e.hash,n=t.height,o=t.mtp||t.time,c=new E(this,e,t),u=new Set;let h=!1;if(e.setBlock(t),!i.isCoinbase()){var p=await this.getSpentCredits(i);for(let e=0;e<i.inputs.length;e++){var d=i.inputs[e].prevout;let t=p[e];if(!t){if(!(t=await this.getCredit(d.hash,d.index)))continue;this.spendCredit(t,i,e),this.changeUnconfirmed(t.coin,-1)}d=t.coin;var f=await this.getPath(d);s(f),c.setInput(e,f,d),u.add(f.account),this.changeConfirmed(d,-1),await this.removeCredit(t,f),this.removeLocked(t.coin),h=!0}}for(let e=0;e<i.outputs.length;e++){var m=i.outputs[e],g=await this.getPath(m);if(g&&(c.setOutput(e,g),u.add(g.account),!await this.resolveInput(i,e,n,o,g,h))){let t=await this.getCredit(a,e);t||((t=b.fromTX(i,e,n,o)).own=!0,this.changeUnconfirmed(m,1)),t.spent&&await this.updateSpentCoin(i,e,n),this.changeConfirmed(m,1),t.coin.time=o,t.coin.height=n,await this.saveCredit(t,g),(t.coin.lockedByLocktime(n,o)||t.coin.lockedBySequence(n,o))&&this.addLocked(t.coin)}}this.del(l.r(a)),this.put(l.t(a),e.toRaw()),this.logger.spam("layout.t confirm",r.revHex(a)),this.del(l.p(a)),this.put(l.h(n,a),null);for(const t of u)this.put(l.T(t,a),null),this.put(l.M(t,e.mtime,a),null),this.del(l.P(t,a)),this.put(l.H(t,n,a),null);return t&&(await this.addBlockMap(a,n),await this.addBlock(i.hash(),t),this.refreshLocked(n,r.now())),this.put(l.R,this.pending.commit()),this.unConserveTX(i),this.emit("confirmed",i,c),this.emit("balance",this.pending.toBalance(),c),c}async remove(e){return(e=await this.getTX(e))?this.removeRecursive(e):null}changeUnconfirmed(e,t){e.isColored||(1===t?(this.pending.coin++,this.pending.unconfirmed+=e.value):(this.pending.coin--,this.pending.unconfirmed-=e.value))}changeConfirmed(e,t){e.isColored||(1===t?this.pending.confirmed+=e.value:this.pending.confirmed-=e.value)}changeLocked(e,t,i){t.isColored||(1===i?e.locked+=t.value:e.locked-=t.value)}async removeRecursive(e){s(e);var t=e.tx,i=e.hash;for(let e=0;e<t.outputs.length;e++){var r=await this.getSpender(i,e);r&&(r=await this.getTX(r.hash),await this.removeRecursive(r))}return this.start(),e=await this.erase(e,e.getBlock()),s(e),await this.commit(),e}async unconfirm(e){let t;this.start();try{t=await this._unconfirm(e)}catch(e){throw this.drop(),e}return await this.commit(),t}async _unconfirm(e){return(e=await this.getTX(e))&&-1!==e.height?this.disconnect(e,e.getBlock()):null}async disconnect(e,t){s(t);var i=e.tx,a=e.hash,n=t.height,o=t.mtp||t.time,c=new E(this,e,t),u=new Set;if(e.unsetBlock(),!i.isCoinbase()){var h=await this.getSpentCredits(i);for(let t=0;t<i.inputs.length;t++){var p=h[t];if(p){var d=p.coin;try{s(-1!==d.height)}catch(e){this.logger.warning("tx(%s): coin.height = -1: %s",i.txid(),e.message)}var f=await this.getPath(d);s(f),c.setInput(t,f,d),u.add(f.account),this.changeConfirmed(d,1),p.spent=!0,await this.saveCredit(p,f),(p.coin.lockedByLocktime(n,o)||p.coin.lockedBySequence(n,o))&&this.addLocked(p.coin)}}}for(let e=0;e<i.outputs.length;e++){var m,g=i.outputs[e],v=await this.getPath(g);v&&((m=await this.getCredit(a,e))?(m.spent&&await this.updateSpentCoin(i,e,n),c.setOutput(e,v),u.add(v.account),this.changeConfirmed(g,-1),m.coin.height=-1,await this.saveCredit(m,v)):await this.updateSpentCoin(i,e,n))}await this.removeBlockMap(a,n),await this.removeBlock(i.hash(),n),this.refreshLocked(n,r.now()),this.put(l.t(a),e.toRaw()),this.put(l.p(a),null),this.del(l.h(n,a));for(const e of u)this.put(l.P(e,a),null),this.del(l.H(e,n,a));return this.put(l.R,this.pending.commit()),this.emit("unconfirmed",i,c),this.emit("balance",this.pending.toBalance(),c),c}async erase(e,t){var i=e.tx,a=e.hash,n=t?t.height:-1,o=t?t.mtp:0,c=new E(this,e,t),u=new Set;if(!i.isCoinbase()){var h=await this.getSpentCredits(i);for(let e=0;e<i.inputs.length;e++){var p,d,f=h[e];f?(p=f.coin,d=await this.getPath(p),s(d),c.setInput(e,d,p),u.add(d.account),this.changeUnconfirmed(p,1),t&&this.changeConfirmed(p,1),this.unspendCredit(i,e),await this.saveCredit(f,d),(f.coin.lockedByLocktime(n,o)||f.coin.lockedBySequence(n,o))&&this.addLocked(f.coin)):this.removeInput(i,e)}}for(let e=0;e<i.outputs.length;e++){var m,g=i.outputs[e],v=await this.getPath(g);v&&(c.setOutput(e,v),u.add(v.account),m=b.fromTX(i,e,n,o),this.changeUnconfirmed(g,-1),t&&this.changeConfirmed(g,-1),await this.removeCredit(m,v),this.removeLocked(m.coin))}this.del(l.r(a)),this.del(l.t(a)),this.logger.spam("layout.t erase",r.revHex(a)),this.del(l.m(e.mtime,a)),t?this.del(l.h(n,a)):this.del(l.p(a));for(const i of u)this.del(l.T(i,a)),this.del(l.M(i,e.mtime,a)),t?this.del(l.H(i,n,a)):this.del(l.P(i,a));t&&(await this.removeBlockMap(a,n),await this.removeBlockSlow(a,n),this.refreshLocked(n,r.now())),this.pending.tx--,this.put(l.R,this.pending.commit());try{await(await x.FactoryOfContract({env:this.walletdb,tx:i,block:t})).erase()}catch(e){this.logger.error("TX(%s) Smart Contract Erase Error: %s",i.txid(),e.message)}return this.emit("tx.remove",i,c),this.emit("balance",this.pending.toBalance(),c),c}async removeConflict(e){var t;return e?(t=e.tx,this.logger.warning("Handling conflicting tx: %s.",t.txid()),this.drop(),e=await this.removeRecursive(e),this.start(),this.logger.warning("Removed conflict: %s.",t.txid()),this.emit("conflict",t,e),e):Promise.resolve()}async removeConflicts(e,t){var i=e.hash("hex"),r=[];if(!e.isCoinbase()){for(let o=0;o<e.inputs.length;o++){if((a=e.inputs[o].prevout).hash!==p.NULL_HASH&&(a=await this.getSpender(a.hash,a.index))&&a.hash!==i){var a=await this.getTX(a.hash),n=(s(a),a.getBlock());if(t&&n)return!1;r[o]=a}}for(const e of r)await this.removeConflict(e)}return!0}async verifyInput(e,t,i){var r=f.flags.MANDATORY_VERIFY_FLAGS;return!this.options.verify||e.verifyInput(t,i,r)}conserveTX(e){if(!e.isCoinbase())for(const t of e.inputs)this.conserveCoin(t.prevout)}unConserveTX(e){if(!e.isCoinbase())for(const t of e.inputs)this.unConserveCoin(t.prevout)}conserveCoin(e){e=e.toKey(),this.conserved.add(e)}unConserveCoin(e){return e=e.toKey(),this.conserved.delete(e)}isConserved(e){return e=e.toKey(),this.conserved.has(e)}filterConserved(e){var t=[];for(const i of e)this.isConserved(i)||t.push(i);return t}getConserved(){var e=[];for(const t of this.conserved.keys())e.push(u.fromKey(t));return e}getAccountHistoryHashes(e){return this.keys({gte:l.T(e,p.NULL_HASH),lte:l.T(e,p.HIGH_HASH),parse:e=>{var[,e]=l.Tt(e);return e}})}getHistoryHashes(e){return null!=e?this.getAccountHistoryHashes(e):this.keys({gte:l.t(p.NULL_HASH),lte:l.t(p.HIGH_HASH),parse:e=>l.tt(e)})}getAccountPendingHashes(e){return this.keys({gte:l.P(e,p.NULL_HASH),lte:l.P(e,p.HIGH_HASH),parse:e=>{var[,e]=l.Pp(e);return e}})}getPendingHashes(e){return null!=e?this.getAccountPendingHashes(e):this.keys({gte:l.p(p.NULL_HASH),lte:l.p(p.HIGH_HASH),parse:e=>l.pp(e)})}getAccountOutpoints(e){return void 0!==e&&null!=e?this.keys({gte:l.C(e,p.NULL_HASH,0),lte:l.C(e,p.HIGH_HASH,4294967295),parse:e=>{var[,e,t]=l.Cc(e);return new u(e,t)}}):this.keys({gte:l.c(p.NULL_HASH,0),lte:l.c(p.HIGH_HASH,4294967295),parse:e=>{var[e,t]=l.cc(e);return new u(e,t)}})}getAccountHeightRangeHashes(e,t){var i=t.start||0,r=t.end||4294967295;return this.keys({gte:l.H(e,i,p.NULL_HASH),lte:l.H(e,r,p.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,,e]=l.Hh(e);return e}})}getHeightRangeHashes(e,t){var i;return e&&"object"==typeof e&&(t=e,e=null),null!=e?this.getAccountHeightRangeHashes(e,t):(e=t.start||0,i=t.end||4294967295,this.keys({gte:l.h(e,p.NULL_HASH),lte:l.h(i,p.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,e]=l.hh(e);return e}}))}getHeightHashes(e){return this.getHeightRangeHashes({start:e,end:e})}getAccountRangeHashes(e,t){var i=t.start||0,r=t.end||4294967295;return this.keys({gte:l.M(e,i,p.NULL_HASH),lte:l.M(e,r,p.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,,e]=l.Mm(e);return e}})}getRangeHashes(e,t){var i;return e&&"object"==typeof e&&(t=e,e=null),null!=e?this.getAccountRangeHashes(e,t):(e=t.start||0,i=t.end||4294967295,this.keys({gte:l.m(e,p.NULL_HASH),lte:l.m(i,p.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,e]=l.mm(e);return e}}))}async getRange(e,t){var i=[];e&&"object"==typeof e&&(t=e,e=null),e=await this.getRangeHashes(e,t);for(const t of e){var r=await this.getTX(t);s(r),i.push(r)}return i}getLast(e,t){return this.getRange(e,{start:0,end:4294967295,reverse:!0,limit:t||10})}getHistory(e){return null!=e?this.getAccountHistory(e):this.values({gte:l.t(p.NULL_HASH),lte:l.t(p.HIGH_HASH),parse:g.fromRaw})}async getAccountHistory(e){var t=[];for(const r of await this.getHistoryHashes(e)){var i=await this.getTX(r);s(i),t.push(i)}return t}async getPending(e){var t=[];for(const r of await this.getPendingHashes(e)){var i=await this.getTX(r);s(i),t.push(i)}return t}getCredits(e){return void 0!==e&&null!=e?this.getAccountCredits(e):this.range({gte:l.c(p.NULL_HASH,0),lte:l.c(p.HIGH_HASH,4294967295),parse:(e,t)=>{var[e,i]=l.cc(e),r=(t=b.fromRaw(t),u.toKey(e,i));return t.coin.hash=e,t.coin.index=i,this.coinCache.set(r,t),t}})}async fillCoins(){var e;for(e of await this.keys({gte:l.C(0,p.NULL_HASH,0),lte:l.C(4294967295,p.HIGH_HASH,4294967295),parse:e=>{var t,[e,t,i]=l.Cc(e);return(t=new u(t,i)).wid=this.wallet.wid,t.account=e,[t.toKey(),t]}})){var t=await this.get(l.c(e[1].hash,e[1].index));t&&((t=b.fromRaw(t)).coin.hash=e[1].hash,t.coin.index=e[1].index,this.coinCache.set(e[0],t))}}async getAccountCredits(e){var t=[];for(const r of await this.getAccountOutpoints(e)){var i=await this.getCredit(r.hash,r.index);i||(this.logger.warning("getAccountCredits: credit not found.",r.hash,r.index),s(i)),t.push(i)}return t}async getSpentCredits(e){if(e.isCoinbase())return[];var t=e.hash("hex");const i=[];for(let t=0;t<e.inputs.length;t++)i.push(null);return await this.range({gte:l.d(t,0),lte:l.d(t,4294967295),parse:(t,r)=>{var[,t]=l.dd(t),a=(r=c.fromRaw(r),e.inputs[t]);s(a),r.hash=a.prevout.hash,r.index=a.prevout.index,i[t]=new b(r)}}),i}async getCoins(e){const t=[];if(void 0!==e&&null!=e)for(const r of await this.getAccountOutpoints(e)){var i=await this.getCredit(r.hash,r.index);i||(this.logger.warning("getCoins: credit not found.",r.hash,r.index),s(i)),i.spent||t.push(i.coin)}else await this.range({gte:l.c(p.NULL_HASH,0),lte:l.c(p.HIGH_HASH,4294967295),parse:(e,i)=>{var[e,r]=l.cc(e),a=(i=b.fromRaw(i),u.toKey(e,r));i.coin.hash=e,i.coin.index=r,this.coinCache.set(a,i),i.spent||t.push(i.coin)}});return t}async getSpentCoins(e){if(e.isCoinbase())return[];var t=[];for(const i of await this.getSpentCredits(e))i?t.push(i.coin):t.push(null);return t}async getCoinView(e){var t=new o;if(!e.isCoinbase())for(const r of e.inputs){var i=r.prevout;(i=await this.getCoin(i.hash,i.index))&&t.addCoin(i)}return t}async getSpentView(e){var t=new o;if(!e.isCoinbase())for(const i of await this.getSpentCoins(e))i&&t.addCoin(i);return t}async getState(){var e=await this.get(l.R);return e?y.fromRaw(this.wallet.wid,this.wallet.id,e):null}async loadLockedCoins(){var e=this.walletdb.curHeight,t=r.now();for(const r of await this.wallet.getCredits()){var i=r.coin;i.getAddress()&&(i.lockedByLocktime(e,t)||i.lockedBySequence(e,t))&&this.addLocked(i)}}refreshLocked(e,t){for(const i of this.lockedCoins.values())i.lockedByLocktime(e,t)||i.lockedBySequence(e,t)||this.removeLocked(i)}addLocked(e){var t=l.prefix(this.wallet.wid,l.c(e.hash,e.index));this.lockedCoins.has(t)||(this.lockedCoins.set(t,e),this.changeLocked(this.pending,e,1))}removeLocked(e){var t=l.prefix(this.wallet.wid,l.c(e.hash,e.index));this.lockedCoins.has(t)&&(this.lockedCoins.delete(t),this.changeLocked(this.pending,e,-1))}async getTX(e){return(e=await this.get(l.t(e)))?g.fromRaw(e):null}async getDetails(e){return(e=await this.getTX(e))?this.toDetails(e):null}async toDetails(e){var t=[];if(!Array.isArray(e))return this._toDetail(e);for(const r of e){var i=await this._toDetail(r);i&&t.push(i)}return t}async _toDetail(e){var t=e.tx,i=e.getBlock(),r=new E(this,e,i),a=await this.getSpentCoins(t);for(let e=0;e<t.inputs.length;e++){var s=a[e];let t=null;s&&(t=await this.getPath(s)),r.setInput(e,t,s)}for(let e=0;e<t.outputs.length;e++){var n=t.outputs[e];n=await this.getPath(n);r.setOutput(e,n)}return r}hasTX(e){return this.has(l.t(e))}async getCoin(e,t){return(e=await this.getCredit(e,t))?e.coin:null}async emitCoinSpent(e,t,i,r){(i={env:this.walletdb,block:r,tx:i,hash:e.prevout.hash,i:e.prevout.index,height:r.height,output:t,type:t.getReturnType(),data:t.getReturnData(S)}).data&&await k(i).spent(e)}async getCredit(e,t){var i=this.state,r=u.toKey(e,t),a=this.coinCache.get(r);return a||((a=await this.get(l.c(e,t)))?((a=b.fromRaw(a)).coin.hash=e,a.coin.index=t,i===this.state&&this.coinCache.set(r,a),a):null)}async getSpentCoin(e,t){return(e=await this.get(l.d(e.hash,e.index)))?(e=c.fromRaw(e),t&&(e.hash=t.hash,e.index=t.index),e):null}hasSpentCoin(e){return this.has(l.d(e.hash,e.index))}async updateSpentCoin(e,t,i){e=u.fromTX(e,t);(t=await this.getSpender(e.hash,e.index))&&(e=await this.getSpentCoin(t,e))&&(e.height=i,this.put(l.d(t.hash,t.index),e.toRaw()))}async hasCoin(e,t){var i=u.toKey(e,t);return!!this.coinCache.has(i)||this.has(l.c(e,t))}async getBalance(e){return null!=e?this.getAccountBalance(e):this.state.toBalance()}addAccountAmount(e,t){this.virtualAmount.has(e)?this.virtualAmount.set(e,this.virtualAmount.get(e)+t):this.virtualAmount.set(e,t)}checkAccountAmount(e){this.virtualAmount.get(e)&&this.virtualAmount.delete(e)}async getAccountBalance(e){var t=await this.getAccountCredits(e),i=new v(this.wallet.wid,this.wallet.id,e),r=this.walletdb.curHeight,a=this.network.now();for(const e of t){var s=e.coin;s.isColored||(e.spent||(i.unconfirmed+=s.value),-1!==s.height&&(i.confirmed+=s.value)),(s.lockedByLocktime(r,a)||s.lockedBySequence(r,a))&&this.changeLocked(i,s,1)}return this.virtualAmount.get(e)&&(i.unconfirmed+=this.virtualAmount.get(e)),i}async zap(e,t){s(r.isU32(t));var i=r.now(),a=[];for(const r of await this.getRange(e,{start:0,end:i-t}))-1===r.height&&(s(i-r.mtime>=t),this.logger.debug("Zapping TX: %s (%s)",r.tx.txid(),this.wallet.id),await this.remove(r.hash),a.push(r.hash));return a}async abandon(e){if(await this.has(l.p(e)))return this.remove(e)}}_.layout=l;class E{constructor(e,t,i){this.wallet=e.wallet,this.network=this.wallet.network,this.wid=this.wallet.wid,this.id=this.wallet.id,this.chainHeight=e.walletdb.curHeight,this.hash=t.hash,this.tx=t.tx,this.mtime=t.mtime,this.size=this.tx.getSize(),this.vsize=this.tx.getVirtualSize(),this.block=null,this.height=-1,this.time=0,i&&(this.block=i.hash,this.height=i.height,this.time=i.time),this.inputs=[],this.outputs=[],this.init()}init(){for(const t of this.tx.inputs){var e=new j;e.address=t.getAddress(),this.inputs.push(e)}for(const e of this.tx.outputs){var t=new j;t.value=e.value,t.address=e.getAddress(),this.outputs.push(t)}}setInput(e,t,i){var r=this.inputs[e];r.prevout=this.tx.inputs[e].prevout,i&&(r.value=i.value,r.address=i.getAddress()),t&&(r.path=t)}setOutput(e,t){e=this.outputs[e],t&&(e.path=t)}getDepth(){var e;return-1===this.height||(e=this.chainHeight-this.height)<0?0:1+e}getFee(){let e=0,t=0;for(const t of this.inputs){if(!t.path)return 0;e+=t.value}for(const e of this.outputs)t+=e.value;return e-t}getRate(e){return d.getRate(this.vsize,e)}toJSON(){var e=this.getFee();let t=this.getRate(e);return Number.isSafeInteger(t)||(t=0),{wid:this.wid,id:this.id,hash:r.revHex(this.hash),height:this.height,block:this.block?r.revHex(this.block):null,time:this.time,mtime:this.mtime,date:r.date(this.time||this.mtime),size:this.size,virtualSize:this.vsize,fee:e,rate:t,confirmations:this.getDepth(),inputs:this.inputs.map(e=>e.getJSON(this.network)),outputs:this.outputs.map(e=>e.getJSON(this.network)),tx:this.tx.toRaw().toString("hex")}}}class j{constructor(){this.value=0,this.address=null,this.path=null}toJSON(){return this.getJSON()}getJSON(e){return{prevout:this.prevout?this.prevout.toJSON():null,value:this.value,address:this.address?this.address.toString(e):null,path:this.path?this.path.toJSON():null}}}e.exports=_},function(e,t){e.exports=require("child_process")},function(e,t,i){"use strict";
|
|
838
838
|
/*!
|
|
839
839
|
* master.js - master process for vallnet
|
|
840
840
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|
|
@@ -920,7 +920,7 @@ e.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.
|
|
|
920
920
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
921
921
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
922
922
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
923
|
-
*/var r=i(271).Store,a=i(272).permuteDomain,s=i(273).pathMatch,n=i(9);function o(){r.call(this),this.idx={}}n.inherits(o,r),(t.MemoryCookieStore=o).prototype.idx=null,o.prototype.synchronous=!0,o.prototype.inspect=function(){return"{ idx: "+n.inspect(this.idx,!1,2)+" }"},n.inspect.custom&&(o.prototype[n.inspect.custom]=o.prototype.inspect),o.prototype.findCookie=function(e,t,i,r){return this.idx[e]&&this.idx[e][t]?r(null,this.idx[e][t][i]||null):r(null,void 0)},o.prototype.findCookies=function(e,t,i){var r=[];if(!e)return i(null,[]);var n=t?function(e){Object.keys(e).forEach((function(i){if(s(t,i)){var a,n=e[i];for(a in n)r.push(n[a])}}))}:function(e){for(var t in e){var i,a=e[t];for(i in a)r.push(a[i])}},o=(e=a(e)||[e],this.idx);e.forEach((function(e){(e=o[e])&&n(e)})),i(null,r)},o.prototype.putCookie=function(e,t){this.idx[e.domain]||(this.idx[e.domain]={}),this.idx[e.domain][e.path]||(this.idx[e.domain][e.path]={}),this.idx[e.domain][e.path][e.key]=e,t(null)},o.prototype.updateCookie=function(e,t,i){this.putCookie(t,i)},o.prototype.removeCookie=function(e,t,i,r){this.idx[e]&&this.idx[e][t]&&this.idx[e][t][i]&&delete this.idx[e][t][i],r(null)},o.prototype.removeCookies=function(e,t,i){return this.idx[e]&&(t?delete this.idx[e][t]:delete this.idx[e]),i(null)},o.prototype.removeAllCookies=function(e){return this.idx={},e(null)},o.prototype.getAllCookies=function(e){var t=[],i=this.idx;Object.keys(i).forEach((function(e){Object.keys(i[e]).forEach((function(r){Object.keys(i[e][r]).forEach((function(a){null!==a&&t.push(i[e][r][a])}))}))})),t.sort((function(e,t){return(e.creationIndex||0)-(t.creationIndex||0)})),e(null,t)}},function(e,t){e.exports="2.5.0"},function(e,t){function i(e,t){var i=[],r=[];return null==t&&(t=function(e,t){return i[0]===t?"[Circular ~]":"[Circular ~."+r.slice(0,i.indexOf(t)).join(".")+"]"}),function(a,s){var n;return 0<i.length?(~(n=i.indexOf(this))?i.splice(n+1):i.push(this),~n?r.splice(n,1/0,a):r.push(a),~i.indexOf(s)&&(s=t.call(this,a,s))):i.push(s),null==e?s:e.call(this,a,s)}}(e.exports=function(e,t,r,a){return JSON.stringify(e,i(t,a),r)}).getSerialize=i},function(e,t,i){"use strict";var r=i(61),a=i(82),s=i(43),n=i(9),o=i(47),c=i(174),u=i(460),h=i(461),l=i(463),p=i(225),d=i(182),f=i(479),m=i(480),g=i(172),v=i(287),y=i(487).strict,b=i(173),w=i(267),x=i(488),k=i(489).Querystring,S=i(492).Har,_=i(549).Auth,E=i(550).OAuth,j=i(552),A=i(553).Multipart,R=i(554).Redirect,I=i(555).Tunnel,O=i(557),C=i(39).Buffer,P=b.safeStringify,T=b.isReadStream,B=b.toBase64,N=b.defer,z=b.copy,F=b.version,L=w.jar(),M={};function D(){return{uri:this.uri,method:this.method,headers:this.headers}}function H(){return{statusCode:this.statusCode,body:this.body,headers:this.headers,request:D.call(this.request)}}function U(e){var t=this,i=(e.har&&(t._har=new S(t),e=t._har.options(e)),o.Stream.call(t),Object.keys(U.prototype)),r=function(e,t){var i,r={};for(i in t)-1===e.indexOf(i)&&(r[i]=t[i]);return r}(i,e);g(t,r),e=function(e,t){var i,r={};for(i in t){var a=!(-1===e.indexOf(i)),s="function"==typeof t[i];a&&s||(r[i]=t[i])}return r}(i,e),t.readable=!0,t.writable=!0,e.method&&(t.explicitMethod=!0),t._qs=new k(t),t._auth=new _(t),t._oauth=new E(t),t._multipart=new A(t),t._redirect=new R(t),t._tunnel=new I(t),t.init(e)}function q(){U.debug&&console.error("REQUEST %s",n.format.apply(n,arguments))}n.inherits(U,o.Stream),U.debug=process.env.NODE_DEBUG&&/\brequest\b/.test(process.env.NODE_DEBUG),U.prototype.debug=q,U.prototype.init=function(e){var t,i=this;for(t in e=e||{},i.headers=i.headers?z(i.headers):{},i.headers)void 0===i.headers[t]&&delete i.headers[t];if(d.httpify(i,i.headers),i.method||(i.method=e.method||"GET"),i.localAddress||(i.localAddress=e.localAddress),i._qs.init(e),q(e),i.pool||!1===i.pool||(i.pool=M),i.dests=i.dests||[],i.__isRequestRequest=!0,!i._callback&&i.callback&&(i._callback=i.callback,i.callback=function(){i._callbackCalled||(i._callbackCalled=!0,i._callback.apply(i,arguments))},i.on("error",i.callback.bind()),i.on("complete",i.callback.bind(i,null))),!i.uri&&i.url&&(i.uri=i.url,delete i.url),i.baseUrl){if("string"!=typeof i.baseUrl)return i.emit("error",new Error("options.baseUrl must be a string"));if("string"!=typeof i.uri)return i.emit("error",new Error("options.uri must be a string when using options.baseUrl"));if(0===i.uri.indexOf("//")||-1!==i.uri.indexOf("://"))return i.emit("error",new Error("options.uri must be a path when using options.baseUrl"));var n=i.baseUrl.lastIndexOf("/")===i.baseUrl.length-1,o=0===i.uri.indexOf("/");n&&o?i.uri=i.baseUrl+i.uri.slice(1):n||o?i.uri=i.baseUrl+i.uri:""===i.uri?i.uri=i.baseUrl:i.uri=i.baseUrl+"/"+i.uri,delete i.baseUrl}if(!i.uri)return i.emit("error",new Error("options.uri is a required argument"));if("string"==typeof i.uri&&(i.uri=s.parse(i.uri)),i.uri.href||(i.uri.href=s.format(i.uri)),"unix:"===i.uri.protocol)return i.emit("error",new Error("`unix://` URL scheme is no longer supported. Please use the format `http://unix:SOCKET:PATH`"));if("unix"===i.uri.host&&i.enableUnixSocket(),!1===i.strictSSL&&(i.rejectUnauthorized=!1),i.uri.pathname||(i.uri.pathname="/"),!(i.uri.host||i.uri.hostname&&i.uri.port||i.uri.isUnix))return n='Invalid URI "'+s.format(i.uri)+'"',0===Object.keys(e).length&&(n+=". This can be caused by a crappy redirection."),i.abort(),i.emit("error",new Error(n));if(i.hasOwnProperty("proxy")||(i.proxy=x(i.uri)),i.tunnel=i._tunnel.isEnabled(),i.proxy&&i._tunnel.setup(e),i._redirect.onRequest(e),i.setHost=!1,i.hasHeader("host")||(o=i.originalHostHeaderName||"host",i.setHeader(o,i.uri.host),i.uri.port&&("80"===i.uri.port&&"http:"===i.uri.protocol||"443"===i.uri.port&&"https:"===i.uri.protocol)&&i.setHeader(o,i.uri.hostname),i.setHost=!0),i.jar(i._jar||e.jar),i.uri.port||("http:"===i.uri.protocol?i.uri.port=80:"https:"===i.uri.protocol&&(i.uri.port=443)),i.proxy&&!i.tunnel?(i.port=i.proxy.port,i.host=i.proxy.hostname):(i.port=i.uri.port,i.host=i.uri.hostname),e.form&&i.form(e.form),e.formData){var c,u=e.formData,h=i.form(),l=function(e,t){t&&t.hasOwnProperty("value")&&t.hasOwnProperty("options")?h.append(e,t.value,t.options):h.append(e,t)};for(c in u)if(u.hasOwnProperty(c)){var m=u[c];if(m instanceof Array)for(var g=0;g<m.length;g++)l(c,m[g]);else l(c,m)}}function b(){var e;y(i.body)&&(i.body=C.from(i.body)),i.hasHeader("content-length")||((e="string"==typeof i.body?C.byteLength(i.body):Array.isArray(i.body)?i.body.reduce((function(e,t){return e+t.length}),0):i.body.length)?i.setHeader("content-length",e):i.emit("error",new Error("Argument error, options.body.")))}e.qs&&i.qs(e.qs),i.uri.path?i.path=i.uri.path:i.path=i.uri.pathname+(i.uri.search||""),0===i.path.length&&(i.path="/"),e.aws&&i.aws(e.aws),e.hawk&&i.hawk(e.hawk),e.httpSignature&&i.httpSignature(e.httpSignature),e.auth&&(Object.prototype.hasOwnProperty.call(e.auth,"username")&&(e.auth.user=e.auth.username),Object.prototype.hasOwnProperty.call(e.auth,"password")&&(e.auth.pass=e.auth.password),i.auth(e.auth.user,e.auth.pass,e.auth.sendImmediately,e.auth.bearer)),i.gzip&&!i.hasHeader("accept-encoding")&&i.setHeader("accept-encoding","gzip, deflate"),i.uri.auth&&!i.hasHeader("authorization")&&(n=i.uri.auth.split(":").map((function(e){return i._qs.unescape(e)})),i.auth(n[0],n.slice(1).join(":"),!0)),!i.tunnel&&i.proxy&&i.proxy.auth&&!i.hasHeader("proxy-authorization")&&(o=i.proxy.auth.split(":").map((function(e){return i._qs.unescape(e)})),n="Basic "+B(o.join(":")),i.setHeader("proxy-authorization",n)),i.proxy&&!i.tunnel&&(i.path=i.uri.protocol+"//"+i.uri.host+i.path),e.json&&i.json(e.json),e.multipart&&i.multipart(e.multipart),e.time&&(i.timing=!0,i.elapsedTime=i.elapsedTime||0),i.body&&!v(i.body)&&b(),e.oauth?i.oauth(e.oauth):i._oauth.params&&i.hasHeader("authorization")&&i.oauth(i._oauth.params);o=(i.proxy&&!i.tunnel?i.proxy:i.uri).protocol,n=i.httpModules||{};if(i.httpModule=n[o]||{"http:":r,"https:":a}[o],!i.httpModule)return i.emit("error",new Error("Invalid protocol: "+o));e.ca&&(i.ca=e.ca),i.agent||(e.agentOptions&&(i.agentOptions=e.agentOptions),e.agentClass?i.agentClass=e.agentClass:e.forever?0===(n=F()).major&&n.minor<=10?i.agentClass="http:"===o?f:f.SSL:(i.agentClass=i.httpModule.Agent,i.agentOptions=i.agentOptions||{},i.agentOptions.keepAlive=!0):i.agentClass=i.httpModule.Agent),!1===i.pool?i.agent=!1:i.agent=i.agent||i.getNewAgent(),i.on("pipe",(function(e){if(i.ntick&&i._started&&i.emit("error",new Error("You cannot pipe to this stream after the outbound request has started.")),i.src=e,T(e))i.hasHeader("content-type")||i.setHeader("content-type",p.lookup(e.path));else{if(e.headers)for(var t in e.headers)i.hasHeader(t)||i.setHeader(t,e.headers[t]);i._json&&!i.hasHeader("content-type")&&i.setHeader("content-type","application/json"),e.method&&!i.explicitMethod&&(i.method=e.method)}})),N((function(){var e;i._aborted||(e=function(){i._form&&(!i._auth.hasAuth||i._auth.hasAuth&&i._auth.sentAuth)&&i._form.pipe(i),i._multipart&&i._multipart.chunked&&i._multipart.body.pipe(i),i.body?v(i.body)?i.body.pipe(i):(b(),Array.isArray(i.body)?i.body.forEach((function(e){i.write(e)})):i.write(i.body),i.end()):i.requestBodyStream?(console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe."),i.requestBodyStream.pipe(i)):i.src||(i._auth.hasAuth&&!i._auth.sentAuth||"GET"!==i.method&&void 0!==i.method&&i.setHeader("content-length",0),i.end())},i._form&&!i.hasHeader("content-length")?(i.setHeader(i._form.getHeaders(),!0),i._form.getLength((function(t,r){t||isNaN(r)||i.setHeader("content-length",r),e()}))):e(),i.ntick=!0)}))},U.prototype.getNewAgent=function(){var e=this,t=e.agentClass,i={};if(e.agentOptions)for(var r in e.agentOptions)i[r]=e.agentOptions[r];e.ca&&(i.ca=e.ca),e.ciphers&&(i.ciphers=e.ciphers),e.secureProtocol&&(i.secureProtocol=e.secureProtocol),e.secureOptions&&(i.secureOptions=e.secureOptions),void 0!==e.rejectUnauthorized&&(i.rejectUnauthorized=e.rejectUnauthorized),e.cert&&e.key&&(i.key=e.key,i.cert=e.cert),e.pfx&&(i.pfx=e.pfx),e.passphrase&&(i.passphrase=e.passphrase);var a="",n=(t!==e.httpModule.Agent&&(a+=t.name),e.proxy);return((n="string"==typeof n?s.parse(n):n)&&"https:"===n.protocol||"https:"===this.uri.protocol)&&(i.ca&&(a&&(a+=":"),a+=i.ca),void 0!==i.rejectUnauthorized&&(a&&(a+=":"),a+=i.rejectUnauthorized),i.cert&&(a&&(a+=":"),a+=i.cert.toString("ascii")+i.key.toString("ascii")),i.pfx&&(a&&(a+=":"),a+=i.pfx.toString("ascii")),i.ciphers&&(a&&(a+=":"),a+=i.ciphers),i.secureProtocol&&(a&&(a+=":"),a+=i.secureProtocol),i.secureOptions)&&(a&&(a+=":"),a+=i.secureOptions),e.pool===M&&!a&&0===Object.keys(i).length&&e.httpModule.globalAgent?e.httpModule.globalAgent:(a=e.uri.protocol+a,e.pool[a]||(e.pool[a]=new t(i),e.pool.maxSockets&&(e.pool[a].maxSockets=e.pool.maxSockets)),e.pool[a])},U.prototype.start=function(){var e,t,i=this;if(i.timing&&(e=(new Date).getTime(),t=O()),!i._aborted){i._started=!0,i.method=i.method||"GET",i.href=i.uri.href,i.src&&i.src.stat&&i.src.stat.size&&!i.hasHeader("content-length")&&i.setHeader("content-length",i.src.stat.size),i._aws&&i.aws(i._aws,!0);var r,a=z(i);delete a.auth,q("make request",i.uri.href),delete a.timeout;try{i.req=i.httpModule.request(a)}catch(e){return void i.emit("error",e)}i.timing&&(i.startTime=e,i.startTimeNow=t,i.timings={}),i.timeout&&!i.timeoutTimer&&(i.timeout<0?r=0:"number"==typeof i.timeout&&isFinite(i.timeout)&&(r=i.timeout)),i.req.on("response",i.onRequestResponse.bind(i)),i.req.on("error",i.onRequestError.bind(i)),i.req.on("drain",(function(){i.emit("drain")})),i.req.on("socket",(function(e){function t(){i.req.setTimeout(r,(function(){var e;i.req&&(i.abort(),(e=new Error("ESOCKETTIMEDOUT")).code="ESOCKETTIMEDOUT",e.connect=!1,i.emit("error",e))}))}var a,s,n,o=e._connecting||e.connecting;i.timing&&(i.timings.socket=O()-i.startTimeNow,o)&&(s=function(){i.timings.connect=O()-i.startTimeNow},e.once("lookup",a=function(){i.timings.lookup=O()-i.startTimeNow}),e.once("connect",s),i.req.once("error",(function(){e.removeListener("lookup",a),e.removeListener("connect",s)}))),void 0!==r&&(o?(e.on("connect",n=function(){e.removeListener("connect",n),i.clearTimeout(),t()}),i.req.on("error",(function(t){e.removeListener("connect",n)})),i.timeoutTimer=setTimeout((function(){e.removeListener("connect",n),i.abort();var t=new Error("ETIMEDOUT");t.code="ETIMEDOUT",t.connect=!0,i.emit("error",t)}),r)):t()),i.emit("socket",e)})),i.emit("request",i.req)}},U.prototype.onRequestError=function(e){var t=this;t._aborted||(t.req&&t.req._reusedSocket&&"ECONNRESET"===e.code&&t.agent.addRequestNoreuse?(t.agent={addRequest:t.agent.addRequestNoreuse.bind(t.agent)},t.start(),t.req.end()):(t.clearTimeout(),t.emit("error",e)))},U.prototype.onRequestResponse=function(e){var t,i,r,s,n=this;n.timing&&(n.timings.response=O()-n.startTimeNow),q("onRequestResponse",n.uri.href,e.statusCode,e.headers),e.on("end",(function(){n.timing&&(n.timings.end=O()-n.startTimeNow,e.timingStart=n.startTime,n.timings.socket||(n.timings.socket=0),n.timings.lookup||(n.timings.lookup=n.timings.socket),n.timings.connect||(n.timings.connect=n.timings.lookup),n.timings.response||(n.timings.response=n.timings.connect),q("elapsed time",n.timings.end),n.elapsedTime+=Math.round(n.timings.end),e.elapsedTime=n.elapsedTime,e.timings=n.timings,e.timingPhases={wait:n.timings.socket,dns:n.timings.lookup-n.timings.socket,tcp:n.timings.connect-n.timings.lookup,firstByte:n.timings.response-n.timings.connect,download:n.timings.end-n.timings.response,total:n.timings.end}),q("response end",n.uri.href,e.statusCode,e.headers)})),n._aborted?(q("aborted",n.uri.href),e.resume()):((n.response=e).request=n,e.toJSON=H,n.httpModule!==a||!n.strictSSL||e.hasOwnProperty("socket")&&e.socket.authorized?(n.originalHost=n.getHeader("host"),n.originalHostHeaderName||(n.originalHostHeaderName=n.hasHeader("host")),n.setHost&&n.removeHeader("host"),n.clearTimeout(),t=n._jar&&n._jar.setCookie?n._jar:L,s=function(e){try{t.setCookie(e,n.uri.href,{ignoreError:!0})}catch(e){n.emit("error",e)}},e.caseless=d(e.headers),e.caseless.has("set-cookie")&&!n._disableCookies&&(r=e.caseless.has("set-cookie"),Array.isArray(e.headers[r])?e.headers[r].forEach(s):s(e.headers[r])),n._redirect.onResponse(e)||(e.on("close",(function(){n._ended||n.response.emit("end")})),e.once("end",(function(){n._ended=!0})),!n.gzip||(s=e.statusCode,"HEAD"===n.method)||100<=s&&s<200||204===s||304===s?i=e:(r=(r=e.headers["content-encoding"]||"identity").trim().toLowerCase(),s={flush:c.Z_SYNC_FLUSH,finishFlush:c.Z_SYNC_FLUSH},"gzip"===r?(i=c.createGunzip(s),e.pipe(i)):"deflate"===r?(i=c.createInflate(s),e.pipe(i)):("identity"!==r&&q("ignoring unrecognized Content-Encoding "+r),i=e)),n.encoding&&(0!==n.dests.length?console.error("Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid."):i.setEncoding(n.encoding)),n._paused&&i.pause(),n.responseContent=i,n.emit("response",e),n.dests.forEach((function(e){n.pipeDest(e)})),i.on("data",(function(t){n.timing&&!n.responseStarted&&(n.responseStartTime=(new Date).getTime(),e.responseStartTime=n.responseStartTime),n._destdata=!0,n.emit("data",t)})),i.once("end",(function(e){n.emit("end",e)})),i.on("error",(function(e){n.emit("error",e)})),i.on("close",(function(){n.emit("close")})),n.callback?n.readResponseBody(e):n.on("end",(function(){n._aborted?q("aborted",n.uri.href):n.emit("complete",e)})),q("finish init function",n.uri.href))):(q("strict ssl error",n.uri.href),s=e.hasOwnProperty("socket")?e.socket.authorizationError:n.uri.href+" does not support SSL",n.emit("error",new Error("SSL Error: "+s))))},U.prototype.readResponseBody=function(e){var t=this,i=(q("reading response's body"),[]),r=0,a=[];t.on("data",(function(e){C.isBuffer(e)?e.length&&(r+=e.length,i.push(e)):a.push(e)})),t.on("end",(function(){if(q("end event",t.uri.href),t._aborted)q("aborted",t.uri.href),i=[],r=0;else{if(r?(q("has body",t.uri.href,r),e.body=C.concat(i,r),null!==t.encoding&&(e.body=e.body.toString(t.encoding)),i=[],r=0):a.length&&("utf8"===t.encoding&&0<a[0].length&&"\ufeff"===a[0][0]&&(a[0]=a[0].substring(1)),e.body=a.join("")),t._json)try{e.body=JSON.parse(e.body,t._jsonReviver)}catch(e){q("invalid JSON received",t.uri.href)}q("emitting complete",t.uri.href),void 0!==e.body||t._json||(e.body=null===t.encoding?C.alloc(0):""),t.emit("complete",e,e.body)}}))},U.prototype.abort=function(){this._aborted=!0,this.req?this.req.abort():this.response&&this.response.destroy(),this.clearTimeout(),this.emit("abort")},U.prototype.pipeDest=function(e){var t,i=this.response;if(e.headers&&!e.headersSent&&(i.caseless.has("content-type")&&(t=i.caseless.has("content-type"),e.setHeader?e.setHeader(t,i.headers[t]):e.headers[t]=i.headers[t]),i.caseless.has("content-length"))&&(t=i.caseless.has("content-length"),e.setHeader?e.setHeader(t,i.headers[t]):e.headers[t]=i.headers[t]),e.setHeader&&!e.headersSent){for(var r in i.headers)this.gzip&&"content-encoding"===r||e.setHeader(r,i.headers[r]);e.statusCode=i.statusCode}this.pipefilter&&this.pipefilter(i,e)},U.prototype.qs=function(e,t){var i,r=this,a=!t&&r.uri.query?r._qs.parse(r.uri.query):{};for(i in e)a[i]=e[i];return""!==(t=r._qs.stringify(a))&&(r.uri=s.parse(r.uri.href.split("?")[0]+"?"+t),r.url=r.uri,r.path=r.uri.path,"unix"===r.uri.host)&&r.enableUnixSocket(),r},U.prototype.form=function(e){var t=this;return e?(/^application\/x-www-form-urlencoded\b/.test(t.getHeader("content-type"))||t.setHeader("content-type","application/x-www-form-urlencoded"),t.body="string"==typeof e?t._qs.rfc3986(e.toString("utf8")):t._qs.stringify(e).toString("utf8"),t):(t._form=new m,t._form.on("error",(function(e){e.message="form-data: "+e.message,t.emit("error",e),t.abort()})),t._form)},U.prototype.multipart=function(e){return this._multipart.onRequest(e),this._multipart.chunked||(this.body=this._multipart.body),this},U.prototype.json=function(e){var t=this;return t.hasHeader("accept")||t.setHeader("accept","application/json"),"function"==typeof t.jsonReplacer&&(t._jsonReplacer=t.jsonReplacer),t._json=!0,"boolean"==typeof e?void 0!==t.body&&(/^application\/x-www-form-urlencoded\b/.test(t.getHeader("content-type"))?t.body=t._qs.rfc3986(t.body):t.body=P(t.body,t._jsonReplacer),t.hasHeader("content-type")||t.setHeader("content-type","application/json")):(t.body=P(e,t._jsonReplacer),t.hasHeader("content-type")||t.setHeader("content-type","application/json")),"function"==typeof t.jsonReviver&&(t._jsonReviver=t.jsonReviver),t},U.prototype.getHeader=function(e,t){var i,r;return t=t||this.headers,Object.keys(t).forEach((function(a){a.length===e.length&&(r=new RegExp(e,"i"),a.match(r))&&(i=t[a])})),i},U.prototype.enableUnixSocket=function(){var e=(t=this.uri.path.split(":"))[0],t=t[1];this.socketPath=e,this.uri.pathname=t,this.uri.path=t,this.uri.host=e,this.uri.hostname=e,this.uri.isUnix=!0},U.prototype.auth=function(e,t,i,r){return this._auth.onRequest(e,t,i,r),this},U.prototype.aws=function(e,t){var i,r=this;return t?4===e.sign_version||"4"===e.sign_version?(t={host:r.uri.host,path:r.uri.path,method:r.method,headers:r.headers,body:r.body},e.service&&(t.service=e.service),t=h.sign(t,{accessKeyId:e.key,secretAccessKey:e.secret,sessionToken:e.session}),r.setHeader("authorization",t.headers.Authorization),r.setHeader("x-amz-date",t.headers["X-Amz-Date"]),t.headers["X-Amz-Security-Token"]&&r.setHeader("x-amz-security-token",t.headers["X-Amz-Security-Token"])):(t=new Date,r.setHeader("date",t.toUTCString()),t={key:e.key,secret:e.secret,verb:r.method.toUpperCase(),date:t,contentType:r.getHeader("content-type")||"",md5:r.getHeader("content-md5")||"",amazonHeaders:u.canonicalizeHeaders(r.headers)},i=r.uri.path,e.bucket&&i?t.resource="/"+e.bucket+i:e.bucket&&!i?t.resource="/"+e.bucket:!e.bucket&&i?t.resource=i:e.bucket||i||(t.resource="/"),t.resource=u.canonicalizeResource(t.resource),r.setHeader("authorization",u.authorization(t))):r._aws=e,r},U.prototype.httpSignature=function(e){var t=this;return l.signRequest({getHeader:function(e){return t.getHeader(e,t.headers)},setHeader:function(e,i){t.setHeader(e,i)},method:t.method,path:t.path},e),q("httpSignature authorization",t.getHeader("authorization")),t},U.prototype.hawk=function(e){this.setHeader("Authorization",j.header(this.uri,this.method,e))},U.prototype.oauth=function(e){return this._oauth.onRequest(e),this},U.prototype.jar=function(e){var t,i,r,a=this;return 0===a._redirect.redirectsFollowed&&(a.originalCookieHeader=a.getHeader("cookie")),e?(i=e.getCookieString?e:L,r=a.uri.href,i&&(t=i.getCookieString(r))):a._disableCookies=!(t=!1),t&&t.length&&(a.originalCookieHeader?a.setHeader("cookie",a.originalCookieHeader+"; "+t):a.setHeader("cookie",t)),a._jar=e,a},U.prototype.pipe=function(e,t){if(!this.response)return this.dests.push(e),o.Stream.prototype.pipe.call(this,e,t),e;if(this._destdata)this.emit("error",new Error("You cannot pipe after data has been emitted from the response."));else{if(!this._ended)return o.Stream.prototype.pipe.call(this,e,t),this.pipeDest(e),e;this.emit("error",new Error("You cannot pipe after the response has been ended."))}},U.prototype.write=function(){if(!this._aborted)return this._started||this.start(),this.req?this.req.write.apply(this.req,arguments):void 0},U.prototype.end=function(e){this._aborted||(e&&this.write(e),this._started||this.start(),this.req&&this.req.end())},U.prototype.pause=function(){this.responseContent?this.responseContent.pause.apply(this.responseContent,arguments):this._paused=!0},U.prototype.resume=function(){this.responseContent?this.responseContent.resume.apply(this.responseContent,arguments):this._paused=!1},U.prototype.destroy=function(){this.clearTimeout(),this._ended?this.response&&this.response.destroy():this.end()},U.prototype.clearTimeout=function(){this.timeoutTimer&&(clearTimeout(this.timeoutTimer),this.timeoutTimer=null)},U.defaultProxyHeaderWhiteList=I.defaultProxyHeaderWhiteList.slice(),U.defaultProxyHeaderExclusiveList=I.defaultProxyHeaderExclusiveList.slice(),U.prototype.toJSON=D,e.exports=U},function(e,t,i){
|
|
923
|
+
*/var r=i(271).Store,a=i(272).permuteDomain,s=i(273).pathMatch,n=i(9);function o(){r.call(this),this.idx={}}n.inherits(o,r),(t.MemoryCookieStore=o).prototype.idx=null,o.prototype.synchronous=!0,o.prototype.inspect=function(){return"{ idx: "+n.inspect(this.idx,!1,2)+" }"},n.inspect.custom&&(o.prototype[n.inspect.custom]=o.prototype.inspect),o.prototype.findCookie=function(e,t,i,r){return this.idx[e]&&this.idx[e][t]?r(null,this.idx[e][t][i]||null):r(null,void 0)},o.prototype.findCookies=function(e,t,i){var r=[];if(!e)return i(null,[]);var n=t?function(e){Object.keys(e).forEach((function(i){if(s(t,i)){var a,n=e[i];for(a in n)r.push(n[a])}}))}:function(e){for(var t in e){var i,a=e[t];for(i in a)r.push(a[i])}},o=(e=a(e)||[e],this.idx);e.forEach((function(e){(e=o[e])&&n(e)})),i(null,r)},o.prototype.putCookie=function(e,t){this.idx[e.domain]||(this.idx[e.domain]={}),this.idx[e.domain][e.path]||(this.idx[e.domain][e.path]={}),this.idx[e.domain][e.path][e.key]=e,t(null)},o.prototype.updateCookie=function(e,t,i){this.putCookie(t,i)},o.prototype.removeCookie=function(e,t,i,r){this.idx[e]&&this.idx[e][t]&&this.idx[e][t][i]&&delete this.idx[e][t][i],r(null)},o.prototype.removeCookies=function(e,t,i){return this.idx[e]&&(t?delete this.idx[e][t]:delete this.idx[e]),i(null)},o.prototype.removeAllCookies=function(e){return this.idx={},e(null)},o.prototype.getAllCookies=function(e){var t=[],i=this.idx;Object.keys(i).forEach((function(e){Object.keys(i[e]).forEach((function(r){Object.keys(i[e][r]).forEach((function(a){null!==a&&t.push(i[e][r][a])}))}))})),t.sort((function(e,t){return(e.creationIndex||0)-(t.creationIndex||0)})),e(null,t)}},function(e,t){e.exports="2.5.0"},function(e,t){function i(e,t){var i=[],r=[];return null==t&&(t=function(e,t){return i[0]===t?"[Circular ~]":"[Circular ~."+r.slice(0,i.indexOf(t)).join(".")+"]"}),function(a,s){var n;return 0<i.length?(~(n=i.indexOf(this))?i.splice(n+1):i.push(this),~n?r.splice(n,1/0,a):r.push(a),~i.indexOf(s)&&(s=t.call(this,a,s))):i.push(s),null==e?s:e.call(this,a,s)}}(e.exports=function(e,t,r,a){return JSON.stringify(e,i(t,a),r)}).getSerialize=i},function(e,t,i){"use strict";var r=i(62),a=i(82),s=i(43),n=i(9),o=i(47),c=i(174),u=i(460),h=i(461),l=i(463),p=i(225),d=i(182),f=i(479),m=i(480),g=i(172),v=i(287),y=i(487).strict,b=i(173),w=i(267),x=i(488),k=i(489).Querystring,S=i(492).Har,_=i(549).Auth,E=i(550).OAuth,j=i(552),A=i(553).Multipart,R=i(554).Redirect,I=i(555).Tunnel,O=i(557),C=i(39).Buffer,P=b.safeStringify,T=b.isReadStream,B=b.toBase64,N=b.defer,z=b.copy,F=b.version,L=w.jar(),M={};function D(){return{uri:this.uri,method:this.method,headers:this.headers}}function H(){return{statusCode:this.statusCode,body:this.body,headers:this.headers,request:D.call(this.request)}}function U(e){var t=this,i=(e.har&&(t._har=new S(t),e=t._har.options(e)),o.Stream.call(t),Object.keys(U.prototype)),r=function(e,t){var i,r={};for(i in t)-1===e.indexOf(i)&&(r[i]=t[i]);return r}(i,e);g(t,r),e=function(e,t){var i,r={};for(i in t){var a=!(-1===e.indexOf(i)),s="function"==typeof t[i];a&&s||(r[i]=t[i])}return r}(i,e),t.readable=!0,t.writable=!0,e.method&&(t.explicitMethod=!0),t._qs=new k(t),t._auth=new _(t),t._oauth=new E(t),t._multipart=new A(t),t._redirect=new R(t),t._tunnel=new I(t),t.init(e)}function q(){U.debug&&console.error("REQUEST %s",n.format.apply(n,arguments))}n.inherits(U,o.Stream),U.debug=process.env.NODE_DEBUG&&/\brequest\b/.test(process.env.NODE_DEBUG),U.prototype.debug=q,U.prototype.init=function(e){var t,i=this;for(t in e=e||{},i.headers=i.headers?z(i.headers):{},i.headers)void 0===i.headers[t]&&delete i.headers[t];if(d.httpify(i,i.headers),i.method||(i.method=e.method||"GET"),i.localAddress||(i.localAddress=e.localAddress),i._qs.init(e),q(e),i.pool||!1===i.pool||(i.pool=M),i.dests=i.dests||[],i.__isRequestRequest=!0,!i._callback&&i.callback&&(i._callback=i.callback,i.callback=function(){i._callbackCalled||(i._callbackCalled=!0,i._callback.apply(i,arguments))},i.on("error",i.callback.bind()),i.on("complete",i.callback.bind(i,null))),!i.uri&&i.url&&(i.uri=i.url,delete i.url),i.baseUrl){if("string"!=typeof i.baseUrl)return i.emit("error",new Error("options.baseUrl must be a string"));if("string"!=typeof i.uri)return i.emit("error",new Error("options.uri must be a string when using options.baseUrl"));if(0===i.uri.indexOf("//")||-1!==i.uri.indexOf("://"))return i.emit("error",new Error("options.uri must be a path when using options.baseUrl"));var n=i.baseUrl.lastIndexOf("/")===i.baseUrl.length-1,o=0===i.uri.indexOf("/");n&&o?i.uri=i.baseUrl+i.uri.slice(1):n||o?i.uri=i.baseUrl+i.uri:""===i.uri?i.uri=i.baseUrl:i.uri=i.baseUrl+"/"+i.uri,delete i.baseUrl}if(!i.uri)return i.emit("error",new Error("options.uri is a required argument"));if("string"==typeof i.uri&&(i.uri=s.parse(i.uri)),i.uri.href||(i.uri.href=s.format(i.uri)),"unix:"===i.uri.protocol)return i.emit("error",new Error("`unix://` URL scheme is no longer supported. Please use the format `http://unix:SOCKET:PATH`"));if("unix"===i.uri.host&&i.enableUnixSocket(),!1===i.strictSSL&&(i.rejectUnauthorized=!1),i.uri.pathname||(i.uri.pathname="/"),!(i.uri.host||i.uri.hostname&&i.uri.port||i.uri.isUnix))return n='Invalid URI "'+s.format(i.uri)+'"',0===Object.keys(e).length&&(n+=". This can be caused by a crappy redirection."),i.abort(),i.emit("error",new Error(n));if(i.hasOwnProperty("proxy")||(i.proxy=x(i.uri)),i.tunnel=i._tunnel.isEnabled(),i.proxy&&i._tunnel.setup(e),i._redirect.onRequest(e),i.setHost=!1,i.hasHeader("host")||(o=i.originalHostHeaderName||"host",i.setHeader(o,i.uri.host),i.uri.port&&("80"===i.uri.port&&"http:"===i.uri.protocol||"443"===i.uri.port&&"https:"===i.uri.protocol)&&i.setHeader(o,i.uri.hostname),i.setHost=!0),i.jar(i._jar||e.jar),i.uri.port||("http:"===i.uri.protocol?i.uri.port=80:"https:"===i.uri.protocol&&(i.uri.port=443)),i.proxy&&!i.tunnel?(i.port=i.proxy.port,i.host=i.proxy.hostname):(i.port=i.uri.port,i.host=i.uri.hostname),e.form&&i.form(e.form),e.formData){var c,u=e.formData,h=i.form(),l=function(e,t){t&&t.hasOwnProperty("value")&&t.hasOwnProperty("options")?h.append(e,t.value,t.options):h.append(e,t)};for(c in u)if(u.hasOwnProperty(c)){var m=u[c];if(m instanceof Array)for(var g=0;g<m.length;g++)l(c,m[g]);else l(c,m)}}function b(){var e;y(i.body)&&(i.body=C.from(i.body)),i.hasHeader("content-length")||((e="string"==typeof i.body?C.byteLength(i.body):Array.isArray(i.body)?i.body.reduce((function(e,t){return e+t.length}),0):i.body.length)?i.setHeader("content-length",e):i.emit("error",new Error("Argument error, options.body.")))}e.qs&&i.qs(e.qs),i.uri.path?i.path=i.uri.path:i.path=i.uri.pathname+(i.uri.search||""),0===i.path.length&&(i.path="/"),e.aws&&i.aws(e.aws),e.hawk&&i.hawk(e.hawk),e.httpSignature&&i.httpSignature(e.httpSignature),e.auth&&(Object.prototype.hasOwnProperty.call(e.auth,"username")&&(e.auth.user=e.auth.username),Object.prototype.hasOwnProperty.call(e.auth,"password")&&(e.auth.pass=e.auth.password),i.auth(e.auth.user,e.auth.pass,e.auth.sendImmediately,e.auth.bearer)),i.gzip&&!i.hasHeader("accept-encoding")&&i.setHeader("accept-encoding","gzip, deflate"),i.uri.auth&&!i.hasHeader("authorization")&&(n=i.uri.auth.split(":").map((function(e){return i._qs.unescape(e)})),i.auth(n[0],n.slice(1).join(":"),!0)),!i.tunnel&&i.proxy&&i.proxy.auth&&!i.hasHeader("proxy-authorization")&&(o=i.proxy.auth.split(":").map((function(e){return i._qs.unescape(e)})),n="Basic "+B(o.join(":")),i.setHeader("proxy-authorization",n)),i.proxy&&!i.tunnel&&(i.path=i.uri.protocol+"//"+i.uri.host+i.path),e.json&&i.json(e.json),e.multipart&&i.multipart(e.multipart),e.time&&(i.timing=!0,i.elapsedTime=i.elapsedTime||0),i.body&&!v(i.body)&&b(),e.oauth?i.oauth(e.oauth):i._oauth.params&&i.hasHeader("authorization")&&i.oauth(i._oauth.params);o=(i.proxy&&!i.tunnel?i.proxy:i.uri).protocol,n=i.httpModules||{};if(i.httpModule=n[o]||{"http:":r,"https:":a}[o],!i.httpModule)return i.emit("error",new Error("Invalid protocol: "+o));e.ca&&(i.ca=e.ca),i.agent||(e.agentOptions&&(i.agentOptions=e.agentOptions),e.agentClass?i.agentClass=e.agentClass:e.forever?0===(n=F()).major&&n.minor<=10?i.agentClass="http:"===o?f:f.SSL:(i.agentClass=i.httpModule.Agent,i.agentOptions=i.agentOptions||{},i.agentOptions.keepAlive=!0):i.agentClass=i.httpModule.Agent),!1===i.pool?i.agent=!1:i.agent=i.agent||i.getNewAgent(),i.on("pipe",(function(e){if(i.ntick&&i._started&&i.emit("error",new Error("You cannot pipe to this stream after the outbound request has started.")),i.src=e,T(e))i.hasHeader("content-type")||i.setHeader("content-type",p.lookup(e.path));else{if(e.headers)for(var t in e.headers)i.hasHeader(t)||i.setHeader(t,e.headers[t]);i._json&&!i.hasHeader("content-type")&&i.setHeader("content-type","application/json"),e.method&&!i.explicitMethod&&(i.method=e.method)}})),N((function(){var e;i._aborted||(e=function(){i._form&&(!i._auth.hasAuth||i._auth.hasAuth&&i._auth.sentAuth)&&i._form.pipe(i),i._multipart&&i._multipart.chunked&&i._multipart.body.pipe(i),i.body?v(i.body)?i.body.pipe(i):(b(),Array.isArray(i.body)?i.body.forEach((function(e){i.write(e)})):i.write(i.body),i.end()):i.requestBodyStream?(console.warn("options.requestBodyStream is deprecated, please pass the request object to stream.pipe."),i.requestBodyStream.pipe(i)):i.src||(i._auth.hasAuth&&!i._auth.sentAuth||"GET"!==i.method&&void 0!==i.method&&i.setHeader("content-length",0),i.end())},i._form&&!i.hasHeader("content-length")?(i.setHeader(i._form.getHeaders(),!0),i._form.getLength((function(t,r){t||isNaN(r)||i.setHeader("content-length",r),e()}))):e(),i.ntick=!0)}))},U.prototype.getNewAgent=function(){var e=this,t=e.agentClass,i={};if(e.agentOptions)for(var r in e.agentOptions)i[r]=e.agentOptions[r];e.ca&&(i.ca=e.ca),e.ciphers&&(i.ciphers=e.ciphers),e.secureProtocol&&(i.secureProtocol=e.secureProtocol),e.secureOptions&&(i.secureOptions=e.secureOptions),void 0!==e.rejectUnauthorized&&(i.rejectUnauthorized=e.rejectUnauthorized),e.cert&&e.key&&(i.key=e.key,i.cert=e.cert),e.pfx&&(i.pfx=e.pfx),e.passphrase&&(i.passphrase=e.passphrase);var a="",n=(t!==e.httpModule.Agent&&(a+=t.name),e.proxy);return((n="string"==typeof n?s.parse(n):n)&&"https:"===n.protocol||"https:"===this.uri.protocol)&&(i.ca&&(a&&(a+=":"),a+=i.ca),void 0!==i.rejectUnauthorized&&(a&&(a+=":"),a+=i.rejectUnauthorized),i.cert&&(a&&(a+=":"),a+=i.cert.toString("ascii")+i.key.toString("ascii")),i.pfx&&(a&&(a+=":"),a+=i.pfx.toString("ascii")),i.ciphers&&(a&&(a+=":"),a+=i.ciphers),i.secureProtocol&&(a&&(a+=":"),a+=i.secureProtocol),i.secureOptions)&&(a&&(a+=":"),a+=i.secureOptions),e.pool===M&&!a&&0===Object.keys(i).length&&e.httpModule.globalAgent?e.httpModule.globalAgent:(a=e.uri.protocol+a,e.pool[a]||(e.pool[a]=new t(i),e.pool.maxSockets&&(e.pool[a].maxSockets=e.pool.maxSockets)),e.pool[a])},U.prototype.start=function(){var e,t,i=this;if(i.timing&&(e=(new Date).getTime(),t=O()),!i._aborted){i._started=!0,i.method=i.method||"GET",i.href=i.uri.href,i.src&&i.src.stat&&i.src.stat.size&&!i.hasHeader("content-length")&&i.setHeader("content-length",i.src.stat.size),i._aws&&i.aws(i._aws,!0);var r,a=z(i);delete a.auth,q("make request",i.uri.href),delete a.timeout;try{i.req=i.httpModule.request(a)}catch(e){return void i.emit("error",e)}i.timing&&(i.startTime=e,i.startTimeNow=t,i.timings={}),i.timeout&&!i.timeoutTimer&&(i.timeout<0?r=0:"number"==typeof i.timeout&&isFinite(i.timeout)&&(r=i.timeout)),i.req.on("response",i.onRequestResponse.bind(i)),i.req.on("error",i.onRequestError.bind(i)),i.req.on("drain",(function(){i.emit("drain")})),i.req.on("socket",(function(e){function t(){i.req.setTimeout(r,(function(){var e;i.req&&(i.abort(),(e=new Error("ESOCKETTIMEDOUT")).code="ESOCKETTIMEDOUT",e.connect=!1,i.emit("error",e))}))}var a,s,n,o=e._connecting||e.connecting;i.timing&&(i.timings.socket=O()-i.startTimeNow,o)&&(s=function(){i.timings.connect=O()-i.startTimeNow},e.once("lookup",a=function(){i.timings.lookup=O()-i.startTimeNow}),e.once("connect",s),i.req.once("error",(function(){e.removeListener("lookup",a),e.removeListener("connect",s)}))),void 0!==r&&(o?(e.on("connect",n=function(){e.removeListener("connect",n),i.clearTimeout(),t()}),i.req.on("error",(function(t){e.removeListener("connect",n)})),i.timeoutTimer=setTimeout((function(){e.removeListener("connect",n),i.abort();var t=new Error("ETIMEDOUT");t.code="ETIMEDOUT",t.connect=!0,i.emit("error",t)}),r)):t()),i.emit("socket",e)})),i.emit("request",i.req)}},U.prototype.onRequestError=function(e){var t=this;t._aborted||(t.req&&t.req._reusedSocket&&"ECONNRESET"===e.code&&t.agent.addRequestNoreuse?(t.agent={addRequest:t.agent.addRequestNoreuse.bind(t.agent)},t.start(),t.req.end()):(t.clearTimeout(),t.emit("error",e)))},U.prototype.onRequestResponse=function(e){var t,i,r,s,n=this;n.timing&&(n.timings.response=O()-n.startTimeNow),q("onRequestResponse",n.uri.href,e.statusCode,e.headers),e.on("end",(function(){n.timing&&(n.timings.end=O()-n.startTimeNow,e.timingStart=n.startTime,n.timings.socket||(n.timings.socket=0),n.timings.lookup||(n.timings.lookup=n.timings.socket),n.timings.connect||(n.timings.connect=n.timings.lookup),n.timings.response||(n.timings.response=n.timings.connect),q("elapsed time",n.timings.end),n.elapsedTime+=Math.round(n.timings.end),e.elapsedTime=n.elapsedTime,e.timings=n.timings,e.timingPhases={wait:n.timings.socket,dns:n.timings.lookup-n.timings.socket,tcp:n.timings.connect-n.timings.lookup,firstByte:n.timings.response-n.timings.connect,download:n.timings.end-n.timings.response,total:n.timings.end}),q("response end",n.uri.href,e.statusCode,e.headers)})),n._aborted?(q("aborted",n.uri.href),e.resume()):((n.response=e).request=n,e.toJSON=H,n.httpModule!==a||!n.strictSSL||e.hasOwnProperty("socket")&&e.socket.authorized?(n.originalHost=n.getHeader("host"),n.originalHostHeaderName||(n.originalHostHeaderName=n.hasHeader("host")),n.setHost&&n.removeHeader("host"),n.clearTimeout(),t=n._jar&&n._jar.setCookie?n._jar:L,s=function(e){try{t.setCookie(e,n.uri.href,{ignoreError:!0})}catch(e){n.emit("error",e)}},e.caseless=d(e.headers),e.caseless.has("set-cookie")&&!n._disableCookies&&(r=e.caseless.has("set-cookie"),Array.isArray(e.headers[r])?e.headers[r].forEach(s):s(e.headers[r])),n._redirect.onResponse(e)||(e.on("close",(function(){n._ended||n.response.emit("end")})),e.once("end",(function(){n._ended=!0})),!n.gzip||(s=e.statusCode,"HEAD"===n.method)||100<=s&&s<200||204===s||304===s?i=e:(r=(r=e.headers["content-encoding"]||"identity").trim().toLowerCase(),s={flush:c.Z_SYNC_FLUSH,finishFlush:c.Z_SYNC_FLUSH},"gzip"===r?(i=c.createGunzip(s),e.pipe(i)):"deflate"===r?(i=c.createInflate(s),e.pipe(i)):("identity"!==r&&q("ignoring unrecognized Content-Encoding "+r),i=e)),n.encoding&&(0!==n.dests.length?console.error("Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid."):i.setEncoding(n.encoding)),n._paused&&i.pause(),n.responseContent=i,n.emit("response",e),n.dests.forEach((function(e){n.pipeDest(e)})),i.on("data",(function(t){n.timing&&!n.responseStarted&&(n.responseStartTime=(new Date).getTime(),e.responseStartTime=n.responseStartTime),n._destdata=!0,n.emit("data",t)})),i.once("end",(function(e){n.emit("end",e)})),i.on("error",(function(e){n.emit("error",e)})),i.on("close",(function(){n.emit("close")})),n.callback?n.readResponseBody(e):n.on("end",(function(){n._aborted?q("aborted",n.uri.href):n.emit("complete",e)})),q("finish init function",n.uri.href))):(q("strict ssl error",n.uri.href),s=e.hasOwnProperty("socket")?e.socket.authorizationError:n.uri.href+" does not support SSL",n.emit("error",new Error("SSL Error: "+s))))},U.prototype.readResponseBody=function(e){var t=this,i=(q("reading response's body"),[]),r=0,a=[];t.on("data",(function(e){C.isBuffer(e)?e.length&&(r+=e.length,i.push(e)):a.push(e)})),t.on("end",(function(){if(q("end event",t.uri.href),t._aborted)q("aborted",t.uri.href),i=[],r=0;else{if(r?(q("has body",t.uri.href,r),e.body=C.concat(i,r),null!==t.encoding&&(e.body=e.body.toString(t.encoding)),i=[],r=0):a.length&&("utf8"===t.encoding&&0<a[0].length&&"\ufeff"===a[0][0]&&(a[0]=a[0].substring(1)),e.body=a.join("")),t._json)try{e.body=JSON.parse(e.body,t._jsonReviver)}catch(e){q("invalid JSON received",t.uri.href)}q("emitting complete",t.uri.href),void 0!==e.body||t._json||(e.body=null===t.encoding?C.alloc(0):""),t.emit("complete",e,e.body)}}))},U.prototype.abort=function(){this._aborted=!0,this.req?this.req.abort():this.response&&this.response.destroy(),this.clearTimeout(),this.emit("abort")},U.prototype.pipeDest=function(e){var t,i=this.response;if(e.headers&&!e.headersSent&&(i.caseless.has("content-type")&&(t=i.caseless.has("content-type"),e.setHeader?e.setHeader(t,i.headers[t]):e.headers[t]=i.headers[t]),i.caseless.has("content-length"))&&(t=i.caseless.has("content-length"),e.setHeader?e.setHeader(t,i.headers[t]):e.headers[t]=i.headers[t]),e.setHeader&&!e.headersSent){for(var r in i.headers)this.gzip&&"content-encoding"===r||e.setHeader(r,i.headers[r]);e.statusCode=i.statusCode}this.pipefilter&&this.pipefilter(i,e)},U.prototype.qs=function(e,t){var i,r=this,a=!t&&r.uri.query?r._qs.parse(r.uri.query):{};for(i in e)a[i]=e[i];return""!==(t=r._qs.stringify(a))&&(r.uri=s.parse(r.uri.href.split("?")[0]+"?"+t),r.url=r.uri,r.path=r.uri.path,"unix"===r.uri.host)&&r.enableUnixSocket(),r},U.prototype.form=function(e){var t=this;return e?(/^application\/x-www-form-urlencoded\b/.test(t.getHeader("content-type"))||t.setHeader("content-type","application/x-www-form-urlencoded"),t.body="string"==typeof e?t._qs.rfc3986(e.toString("utf8")):t._qs.stringify(e).toString("utf8"),t):(t._form=new m,t._form.on("error",(function(e){e.message="form-data: "+e.message,t.emit("error",e),t.abort()})),t._form)},U.prototype.multipart=function(e){return this._multipart.onRequest(e),this._multipart.chunked||(this.body=this._multipart.body),this},U.prototype.json=function(e){var t=this;return t.hasHeader("accept")||t.setHeader("accept","application/json"),"function"==typeof t.jsonReplacer&&(t._jsonReplacer=t.jsonReplacer),t._json=!0,"boolean"==typeof e?void 0!==t.body&&(/^application\/x-www-form-urlencoded\b/.test(t.getHeader("content-type"))?t.body=t._qs.rfc3986(t.body):t.body=P(t.body,t._jsonReplacer),t.hasHeader("content-type")||t.setHeader("content-type","application/json")):(t.body=P(e,t._jsonReplacer),t.hasHeader("content-type")||t.setHeader("content-type","application/json")),"function"==typeof t.jsonReviver&&(t._jsonReviver=t.jsonReviver),t},U.prototype.getHeader=function(e,t){var i,r;return t=t||this.headers,Object.keys(t).forEach((function(a){a.length===e.length&&(r=new RegExp(e,"i"),a.match(r))&&(i=t[a])})),i},U.prototype.enableUnixSocket=function(){var e=(t=this.uri.path.split(":"))[0],t=t[1];this.socketPath=e,this.uri.pathname=t,this.uri.path=t,this.uri.host=e,this.uri.hostname=e,this.uri.isUnix=!0},U.prototype.auth=function(e,t,i,r){return this._auth.onRequest(e,t,i,r),this},U.prototype.aws=function(e,t){var i,r=this;return t?4===e.sign_version||"4"===e.sign_version?(t={host:r.uri.host,path:r.uri.path,method:r.method,headers:r.headers,body:r.body},e.service&&(t.service=e.service),t=h.sign(t,{accessKeyId:e.key,secretAccessKey:e.secret,sessionToken:e.session}),r.setHeader("authorization",t.headers.Authorization),r.setHeader("x-amz-date",t.headers["X-Amz-Date"]),t.headers["X-Amz-Security-Token"]&&r.setHeader("x-amz-security-token",t.headers["X-Amz-Security-Token"])):(t=new Date,r.setHeader("date",t.toUTCString()),t={key:e.key,secret:e.secret,verb:r.method.toUpperCase(),date:t,contentType:r.getHeader("content-type")||"",md5:r.getHeader("content-md5")||"",amazonHeaders:u.canonicalizeHeaders(r.headers)},i=r.uri.path,e.bucket&&i?t.resource="/"+e.bucket+i:e.bucket&&!i?t.resource="/"+e.bucket:!e.bucket&&i?t.resource=i:e.bucket||i||(t.resource="/"),t.resource=u.canonicalizeResource(t.resource),r.setHeader("authorization",u.authorization(t))):r._aws=e,r},U.prototype.httpSignature=function(e){var t=this;return l.signRequest({getHeader:function(e){return t.getHeader(e,t.headers)},setHeader:function(e,i){t.setHeader(e,i)},method:t.method,path:t.path},e),q("httpSignature authorization",t.getHeader("authorization")),t},U.prototype.hawk=function(e){this.setHeader("Authorization",j.header(this.uri,this.method,e))},U.prototype.oauth=function(e){return this._oauth.onRequest(e),this},U.prototype.jar=function(e){var t,i,r,a=this;return 0===a._redirect.redirectsFollowed&&(a.originalCookieHeader=a.getHeader("cookie")),e?(i=e.getCookieString?e:L,r=a.uri.href,i&&(t=i.getCookieString(r))):a._disableCookies=!(t=!1),t&&t.length&&(a.originalCookieHeader?a.setHeader("cookie",a.originalCookieHeader+"; "+t):a.setHeader("cookie",t)),a._jar=e,a},U.prototype.pipe=function(e,t){if(!this.response)return this.dests.push(e),o.Stream.prototype.pipe.call(this,e,t),e;if(this._destdata)this.emit("error",new Error("You cannot pipe after data has been emitted from the response."));else{if(!this._ended)return o.Stream.prototype.pipe.call(this,e,t),this.pipeDest(e),e;this.emit("error",new Error("You cannot pipe after the response has been ended."))}},U.prototype.write=function(){if(!this._aborted)return this._started||this.start(),this.req?this.req.write.apply(this.req,arguments):void 0},U.prototype.end=function(e){this._aborted||(e&&this.write(e),this._started||this.start(),this.req&&this.req.end())},U.prototype.pause=function(){this.responseContent?this.responseContent.pause.apply(this.responseContent,arguments):this._paused=!0},U.prototype.resume=function(){this.responseContent?this.responseContent.resume.apply(this.responseContent,arguments):this._paused=!1},U.prototype.destroy=function(){this.clearTimeout(),this._ended?this.response&&this.response.destroy():this.end()},U.prototype.clearTimeout=function(){this.timeoutTimer&&(clearTimeout(this.timeoutTimer),this.timeoutTimer=null)},U.defaultProxyHeaderWhiteList=I.defaultProxyHeaderWhiteList.slice(),U.defaultProxyHeaderExclusiveList=I.defaultProxyHeaderExclusiveList.slice(),U.prototype.toJSON=D,e.exports=U},function(e,t,i){
|
|
924
924
|
/*!
|
|
925
925
|
* Copyright 2010 LearnBoost <dev@learnboost.com>
|
|
926
926
|
*
|
|
@@ -936,16 +936,16 @@ e.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.
|
|
|
936
936
|
* See the License for the specific language governing permissions and
|
|
937
937
|
* limitations under the License.
|
|
938
938
|
*/
|
|
939
|
-
var r=i(8),a=i(43).parse,s=["acl","location","logging","notification","partNumber","policy","requestPayment","torrent","uploadId","uploads","versionId","versioning","versions","website"];function n(e){return"AWS "+e.key+":"+c(e)}function o(e){return r.createHmac("sha1",e.secret).update(e.message).digest("base64")}function c(e){return e.message=u(e),o(e)}function u(e){var t=e.amazonHeaders||"";return t&&(t+="\n"),[e.verb,e.md5,e.contentType,e.date?e.date.toUTCString():"",t+e.resource].join("\n")}function h(e){return"GET\n\n\n"+e.date+"\n"+e.resource}e.exports=n,e.exports.authorization=n,e.exports.hmacSha1=o,e.exports.sign=c,e.exports.signQuery=function(e){return e.message=h(e),o(e)},e.exports.stringToSign=u,e.exports.queryStringToSign=h,e.exports.canonicalizeHeaders=function(e){for(var t=[],i=Object.keys(e),r=0,a=i.length;r<a;++r){var s=i[r],n=e[s];0===(s=s.toLowerCase()).indexOf("x-amz")&&t.push(s+":"+n)}return t.sort().join("\n")},e.exports.canonicalizeResource=function(e){var t=a(e,!0),i=(e=t.pathname,[]);return Object.keys(t.query).forEach((function(e){var r;~s.indexOf(e)&&(r=""==t.query[e]?"":"="+encodeURIComponent(t.query[e]),i.push(e+r))})),e+(i.length?"?"+i.sort().join("&"):"")}},function(e,t,i){var r=i(43),a=i(116),s=i(8),n=i(462)(1e3);function o(e,t,i){return s.createHmac("sha256",e).update(t,"utf8").digest(i)}function c(e,t){return s.createHash("sha256").update(e,"utf8").digest(t)}function u(e){return e.replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function h(e){return u(encodeURIComponent(e))}var l={authorization:!0,connection:!0,"x-amzn-trace-id":!0,"user-agent":!0,expect:!0,"presigned-expires":!0,range:!0};function p(e,t){var i=(e="string"==typeof e?r.parse(e):e).headers=e.headers||{},a=(!this.service||!this.region)&&this.matchHost(e.hostname||e.host||i.Host||i.host);this.request=e,this.credentials=t||this.defaultCredentials(),this.service=e.service||a[0]||"",this.region=e.region||a[1]||"us-east-1","email"===this.service&&(this.service="ses"),!e.method&&e.body&&(e.method="POST"),i.Host||i.host||(i.Host=e.hostname||e.host||this.createHost(),e.port&&(i.Host+=":"+e.port)),e.hostname||e.host||(e.hostname=i.Host||i.host),this.isCodeCommitGit="codecommit"===this.service&&"GIT"===e.method}p.prototype.matchHost=function(e){var t=((e||"").match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(\.cn)?$/)||[]).slice(1,3);if("s3"==(t="es"===t[1]?t.reverse():t)[1])t[0]="s3",t[1]="us-east-1";else for(var i=0;i<2;i++)if(/^s3-/.test(t[i])){t[1]=t[i].slice(3),t[0]="s3";break}return t},p.prototype.isSingleRegion=function(){return 0<=["s3","sdb"].indexOf(this.service)&&"us-east-1"===this.region||0<=["cloudfront","ls","route53","iam","importexport","sts"].indexOf(this.service)},p.prototype.createHost=function(){var e=this.isSingleRegion()?"":"."+this.region;return("ses"===this.service?"email":this.service)+e+".amazonaws.com"},p.prototype.prepareRequest=function(){this.parsePath();var e,t=this.request,i=t.headers;t.signQuery?(this.parsedPath.query=e=this.parsedPath.query||{},this.credentials.sessionToken&&(e["X-Amz-Security-Token"]=this.credentials.sessionToken),"s3"!==this.service||e["X-Amz-Expires"]||(e["X-Amz-Expires"]=86400),e["X-Amz-Date"]?this.datetime=e["X-Amz-Date"]:e["X-Amz-Date"]=this.getDateTime(),e["X-Amz-Algorithm"]="AWS4-HMAC-SHA256",e["X-Amz-Credential"]=this.credentials.accessKeyId+"/"+this.credentialString(),e["X-Amz-SignedHeaders"]=this.signedHeaders()):(t.doNotModifyHeaders||this.isCodeCommitGit||(!t.body||i["Content-Type"]||i["content-type"]||(i["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8"),!t.body||i["Content-Length"]||i["content-length"]||(i["Content-Length"]=Buffer.byteLength(t.body)),!this.credentials.sessionToken||i["X-Amz-Security-Token"]||i["x-amz-security-token"]||(i["X-Amz-Security-Token"]=this.credentials.sessionToken),"s3"!==this.service||i["X-Amz-Content-Sha256"]||i["x-amz-content-sha256"]||(i["X-Amz-Content-Sha256"]=c(this.request.body||"","hex")),i["X-Amz-Date"]||i["x-amz-date"]?this.datetime=i["X-Amz-Date"]||i["x-amz-date"]:i["X-Amz-Date"]=this.getDateTime()),delete i.Authorization,delete i.authorization)},p.prototype.sign=function(){return this.parsedPath||this.prepareRequest(),this.request.signQuery?this.parsedPath.query["X-Amz-Signature"]=this.signature():this.request.headers.Authorization=this.authHeader(),this.request.path=this.formatPath(),this.request},p.prototype.getDateTime=function(){var e;return this.datetime||(e=this.request.headers,e=new Date(e.Date||e.date||new Date),this.datetime=e.toISOString().replace(/[:\-]|\.\d{3}/g,""),this.isCodeCommitGit&&(this.datetime=this.datetime.slice(0,-1))),this.datetime},p.prototype.getDate=function(){return this.getDateTime().substr(0,8)},p.prototype.authHeader=function(){return["AWS4-HMAC-SHA256 Credential="+this.credentials.accessKeyId+"/"+this.credentialString(),"SignedHeaders="+this.signedHeaders(),"Signature="+this.signature()].join(", ")},p.prototype.signature=function(){var e=this.getDate(),t=[this.credentials.secretAccessKey,e,this.region,this.service].join(),i=n.get(t);return i||(e=o("AWS4"+this.credentials.secretAccessKey,e),e=o(e,this.region),e=o(e,this.service),i=o(e,"aws4_request"),n.set(t,i)),o(i,this.stringToSign(),"hex")},p.prototype.stringToSign=function(){return["AWS4-HMAC-SHA256",this.getDateTime(),this.credentialString(),c(this.canonicalString(),"hex")].join("\n")},p.prototype.canonicalString=function(){this.parsedPath||this.prepareRequest();var e,t,i=this.parsedPath.path,r=this.parsedPath.query,a=this.request.headers,s="",n="s3"!==this.service,o="s3"===this.service||this.request.doNotEncodePath,u="s3"===this.service,l="s3"===this.service;a="s3"===this.service&&this.request.signQuery?"UNSIGNED-PAYLOAD":this.isCodeCommitGit?"":a["X-Amz-Content-Sha256"]||a["x-amz-content-sha256"]||c(this.request.body||"","hex");return r&&(e=Object.keys(r).reduce((function(e,t){return t&&(e[h(t)]=Array.isArray(r[t])&&l?r[t][0]:r[t]),e}),{}),t=[],Object.keys(e).sort().forEach((function(i){Array.isArray(e[i])?e[i].map(h).sort().forEach((function(e){t.push(i+"="+e)})):t.push(i+"="+h(e[i]))})),s=t.join("&")),"/"!==i&&("/"!==(i=(i=n?i.replace(/\/{2,}/g,"/"):i).split("/").reduce((function(e,t){return n&&".."===t?e.pop():n&&"."===t||(o&&(t=decodeURIComponent(t.replace(/\+/g," "))),e.push(h(t))),e}),[]).join("/"))[0]&&(i="/"+i),u)&&(i=i.replace(/%2F/g,"/")),[this.request.method||"GET",i,s,this.canonicalHeaders()+"\n",this.signedHeaders(),a].join("\n")},p.prototype.canonicalHeaders=function(){var e=this.request.headers;return Object.keys(e).filter((function(e){return null==l[e.toLowerCase()]})).sort((function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:1})).map((function(t){return t.toLowerCase()+":"+e[t].toString().trim().replace(/\s+/g," ")})).join("\n")},p.prototype.signedHeaders=function(){return Object.keys(this.request.headers).map((function(e){return e.toLowerCase()})).filter((function(e){return null==l[e]})).sort().join(";")},p.prototype.credentialString=function(){return[this.getDate(),this.region,this.service,"aws4_request"].join("/")},p.prototype.defaultCredentials=function(){var e=process.env;return{accessKeyId:e.AWS_ACCESS_KEY_ID||e.AWS_ACCESS_KEY,secretAccessKey:e.AWS_SECRET_ACCESS_KEY||e.AWS_SECRET_KEY,sessionToken:e.AWS_SESSION_TOKEN}},p.prototype.parsePath=function(){var e=this.request.path||"/",t=(e=/[^0-9A-Za-z;,/?:@&=+$\-_.!~*'()#%]/.test(e)?encodeURI(decodeURI(e)):e).indexOf("?"),i=null;0<=t&&(i=a.parse(e.slice(t+1)),e=e.slice(0,t)),this.parsedPath={path:e,query:i}},p.prototype.formatPath=function(){var e=this.parsedPath.path,t=this.parsedPath.query;return t?(null!=t[""]&&delete t[""],e+"?"+u(a.stringify(t))):e},t.RequestSigner=p,t.sign=function(e,t){return new p(e,t).sign()}},function(e,t){function i(e){this.capacity=0|e,this.map=Object.create(null),this.list=new r}function r(){this.firstNode=null,this.lastNode=null}function a(e,t){this.key=e,this.val=t,this.prev=null,this.next=null}e.exports=function(e){return new i(e)},i.prototype.get=function(e){if(null!=(e=this.map[e]))return this.used(e),e.val},i.prototype.set=function(e,t){var i=this.map[e];if(null!=i)i.val=t;else{if(this.capacity||this.prune(),!this.capacity)return!1;i=new a(e,t),this.map[e]=i,this.capacity--}return this.used(i),!0},i.prototype.used=function(e){this.list.moveToFront(e)},i.prototype.prune=function(){var e=this.list.pop();null!=e&&(delete this.map[e.key],this.capacity++)},r.prototype.moveToFront=function(e){this.firstNode!=e&&(this.remove(e),null==this.firstNode?(this.firstNode=e,(this.lastNode=e).prev=null,e.next=null):(e.prev=null,e.next=this.firstNode,e.next.prev=e,this.firstNode=e))},r.prototype.pop=function(){var e=this.lastNode;return null!=e&&this.remove(e),e},r.prototype.remove=function(e){this.firstNode==e?this.firstNode=e.next:null!=e.prev&&(e.prev.next=e.next),this.lastNode==e?this.lastNode=e.prev:null!=e.next&&(e.next.prev=e.prev)}},function(e,t,i){var r=i(464),a=i(472),s=i(476);i=i(132);e.exports={parse:r.parseRequest,parseRequest:r.parseRequest,sign:a.signRequest,signRequest:a.signRequest,createSigner:a.createSigner,isSigner:a.isSigner,sshKeyToPEM:i.sshKeyToPEM,sshKeyFingerprint:i.fingerprint,pemToRsaSSHKey:i.pemToRsaSSHKey,verify:s.verifySignature,verifySignature:s.verifySignature,verifyHMAC:s.verifyHMAC}},function(e,t,i){var r=i(10),a=i(9),s=((i=i(132)).HASH_ALGOS,i.PK_ALGOS,i.HttpSignatureError),n=i.InvalidAlgorithmError,o=i.validateAlgorithm;function c(e){s.call(this,e,c)}function u(e){s.call(this,e,u)}function h(e){s.call(this,e,h)}function l(e){s.call(this,e,l)}function p(e){s.call(this,e,p)}a.inherits(c,s),a.inherits(u,s),a.inherits(h,s),a.inherits(l,s),a.inherits(p,s),e.exports={parseRequest:function(e,t){r.object(e,"request"),r.object(e.headers,"request.headers"),void 0===(t=void 0===t?{}:t).headers&&(t.headers=[e.headers["x-date"]?"x-date":"date"]),r.object(t,"options"),r.arrayOfString(t.headers,"options.headers"),r.optionalFinite(t.clockSkew,"options.clockSkew");var i=t.authorizationHeaderName||"authorization";if(!e.headers[i])throw new l("no "+i+" header present in the request");t.clockSkew=t.clockSkew||300;var a=0,s=0,d=0,f="",m="",g={scheme:"",params:{},signingString:""},v=e.headers[i];for(a=0;a<v.length;a++){var y=v.charAt(a);switch(Number(s)){case 0:" "!==y?g.scheme+=y:s=1;break;case 1:switch(Number(d)){case 0:var b=y.charCodeAt(0);if(65<=b&&b<=90||97<=b&&b<=122)f+=y;else{if("="!==y)throw new u("bad param format");if(0===f.length)throw new u("bad param format");d=1}break;case 1:if('"'!==y)throw new u("bad param format");m="",d=2;break;case 2:'"'===y?(g.params[f]=m,d=3):m+=y;break;case 3:if(","!==y)throw new u("bad param format");f="",d=0;break;default:throw new Error("Invalid substate")}break;default:throw new Error("Invalid substate")}}if(g.params.headers&&""!==g.params.headers?g.params.headers=g.params.headers.split(" "):e.headers["x-date"]?g.params.headers=["x-date"]:g.params.headers=["date"],!g.scheme||"Signature"!==g.scheme)throw new u('scheme was not "Signature"');if(!g.params.keyId)throw new u("keyId was not specified");if(!g.params.algorithm)throw new u("algorithm was not specified");if(!g.params.signature)throw new u("signature was not specified");g.params.algorithm=g.params.algorithm.toLowerCase();try{o(g.params.algorithm)}catch(e){throw e instanceof n?new h(g.params.algorithm+" is not supported"):e}for(a=0;a<g.params.headers.length;a++){var w=g.params.headers[a].toLowerCase();if("request-line"===(g.params.headers[a]=w)){if(t.strict)throw new p("request-line is not a valid header with strict parsing enabled.");g.signingString+=e.method+" "+e.url+" HTTP/"+e.httpVersion}else if("(request-target)"===w)g.signingString+="(request-target): "+e.method.toLowerCase()+" "+e.url;else{var x=e.headers[w];if(void 0===x)throw new l(w+" was not in the request");g.signingString+=w+": "+x}a+1<g.params.headers.length&&(g.signingString+="\n")}if(e.headers.date||e.headers["x-date"]){i=e.headers["x-date"]?new Date(e.headers["x-date"]):new Date(e.headers.date);var k=new Date;if((k=Math.abs(k.getTime()-i.getTime()))>1e3*t.clockSkew)throw new c("clock skew of "+k/1e3+"s was greater than "+t.clockSkew+"s")}if(t.headers.forEach((function(e){if(g.params.headers.indexOf(e.toLowerCase())<0)throw new l(e+" was not a signed header")})),t.algorithms&&-1===t.algorithms.indexOf(g.params.algorithm))throw new h(g.params.algorithm+" is not a supported algorithm");return g.algorithm=g.params.algorithm.toUpperCase(),g.keyId=g.params.keyId,g}}},function(e,t,i){var r,a,s=i(176),n=i(177),o=i(466);i=i(467);for(r in e.exports={Reader:o,Writer:i},n)n.hasOwnProperty(r)&&(e.exports[r]=n[r]);for(a in s)s.hasOwnProperty(a)&&(e.exports[a]=s[a])},function(e,t,i){var r=i(0),a=i(12).Buffer,s=i(177),n=i(176).newInvalidAsn1Error;function o(e){if(!e||!a.isBuffer(e))throw new TypeError("data must be a node Buffer");this._buf=e,this._size=e.length,this._len=0,this._offset=0}Object.defineProperty(o.prototype,"length",{enumerable:!0,get:function(){return this._len}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){return this._offset}}),Object.defineProperty(o.prototype,"remain",{get:function(){return this._size-this._offset}}),Object.defineProperty(o.prototype,"buffer",{get:function(){return this._buf.slice(this._offset)}}),o.prototype.readByte=function(e){var t;return this._size-this._offset<1?null:(t=255&this._buf[this._offset],e||(this._offset+=1),t)},o.prototype.peek=function(){return this.readByte(!0)},o.prototype.readLength=function(e){if((e=void 0===e?this._offset:e)>=this._size)return null;var t=255&this._buf[e++];if(null===t)return null;if(128==(128&t)){if(0==(t&=127))throw n("Indefinite length not supported");if(4<t)throw n("encoding too long");if(this._size-e<t)return null;for(var i=this._len=0;i<t;i++)this._len=(this._len<<8)+(255&this._buf[e++])}else this._len=t;return e},o.prototype.readSequence=function(e){var t=this.peek();if(null===t)return null;if(void 0!==e&&e!==t)throw n("Expected 0x"+e.toString(16)+": got 0x"+t.toString(16));return null===(e=this.readLength(this._offset+1))?null:(this._offset=e,t)},o.prototype.readInt=function(){return this._readTag(s.Integer)},o.prototype.readBoolean=function(){return 0!==this._readTag(s.Boolean)},o.prototype.readEnumeration=function(){return this._readTag(s.Enumeration)},o.prototype.readString=function(e,t){e=e||s.OctetString;var i=this.peek();if(null===i)return null;if(i!==e)throw n("Expected 0x"+e.toString(16)+": got 0x"+i.toString(16));return null===(e=this.readLength(this._offset+1))||this.length>this._size-e?null:(this._offset=e,0===this.length?t?a.alloc(0):"":(i=this._buf.slice(this._offset,this._offset+this.length),this._offset+=this.length,t?i:i.toString("utf8")))},o.prototype.readOID=function(e){e=e||s.OID;var t=this.readString(e,!0);if(null===t)return null;for(var i=[],r=0,a=0;a<t.length;a++){var n=255&t[a];r=(r<<7)+(127&n);0==(128&n)&&(i.push(r),r=0)}return r=i.shift(),i.unshift(r%40),i.unshift(r/40>>0),i.join(".")},o.prototype._readTag=function(e){if(r.ok(void 0!==e),null===(t=this.peek()))return null;if(t!==e)throw n("Expected 0x"+e.toString(16)+": got 0x"+t.toString(16));if(null===(e=this.readLength(this._offset+1)))return null;if(4<this.length)throw n("Integer too long: "+this.length);if(this.length>this._size-e)return null;this._offset=e;for(var t=this._buf[this._offset],i=0,a=0;a<this.length;a++)i=(i<<=8)|255&this._buf[this._offset++];return 128==(128&t)&&4!==a&&(i-=1<<8*a),i>>0},e.exports=o},function(e,t,i){var r=i(0),a=i(12).Buffer,s=i(177),n=i(176).newInvalidAsn1Error,o={size:1024,growthFactor:8};function c(e){var t,i;t=o,i=e||{},r.ok(t),r.equal(typeof t,"object"),r.ok(i),r.equal(typeof i,"object"),Object.getOwnPropertyNames(t).forEach((function(e){var r;i[e]||(r=Object.getOwnPropertyDescriptor(t,e),Object.defineProperty(i,e,r))})),e=i,this._buf=a.alloc(e.size||1024),this._size=this._buf.length,this._offset=0,this._options=e,this._seq=[]}Object.defineProperty(c.prototype,"buffer",{get:function(){if(this._seq.length)throw n(this._seq.length+" unended sequence(s)");return this._buf.slice(0,this._offset)}}),c.prototype.writeByte=function(e){if("number"!=typeof e)throw new TypeError("argument must be a Number");this._ensure(1),this._buf[this._offset++]=e},c.prototype.writeInt=function(e,t){if("number"!=typeof e)throw new TypeError("argument must be a Number");"number"!=typeof t&&(t=s.Integer);for(var i=4;(0==(4286578688&e)||-8388608==(4286578688&e))&&1<i;)i--,e<<=8;if(4<i)throw n("BER ints cannot be > 0xffffffff");for(this._ensure(2+i),this._buf[this._offset++]=t,this._buf[this._offset++]=i;0<i--;)this._buf[this._offset++]=(4278190080&e)>>>24,e<<=8},c.prototype.writeNull=function(){this.writeByte(s.Null),this.writeByte(0)},c.prototype.writeEnumeration=function(e,t){if("number"!=typeof e)throw new TypeError("argument must be a Number");return"number"!=typeof t&&(t=s.Enumeration),this.writeInt(e,t)},c.prototype.writeBoolean=function(e,t){if("boolean"!=typeof e)throw new TypeError("argument must be a Boolean");"number"!=typeof t&&(t=s.Boolean),this._ensure(3),this._buf[this._offset++]=t,this._buf[this._offset++]=1,this._buf[this._offset++]=e?255:0},c.prototype.writeString=function(e,t){if("string"!=typeof e)throw new TypeError("argument must be a string (was: "+typeof e+")");"number"!=typeof t&&(t=s.OctetString);var i=a.byteLength(e);this.writeByte(t),this.writeLength(i),i&&(this._ensure(i),this._buf.write(e,this._offset),this._offset+=i)},c.prototype.writeBuffer=function(e,t){if("number"!=typeof t)throw new TypeError("tag must be a number");if(!a.isBuffer(e))throw new TypeError("argument must be a buffer");this.writeByte(t),this.writeLength(e.length),this._ensure(e.length),e.copy(this._buf,this._offset,0,e.length),this._offset+=e.length},c.prototype.writeStringArray=function(e){if(!e instanceof Array)throw new TypeError("argument must be an Array[String]");var t=this;e.forEach((function(e){t.writeString(e)}))},c.prototype.writeOID=function(e,t){if("string"!=typeof e)throw new TypeError("argument must be a string");if("number"!=typeof t&&(t=s.OID),!/^([0-9]+\.){3,}[0-9]+$/.test(e))throw new Error("argument is not a valid OID string");e=e.split(".");var i=[],r=(i.push(40*parseInt(e[0],10)+parseInt(e[1],10)),e.slice(2).forEach((function(e){var t;t=i,(e=parseInt(e,10))<128?t.push(e):(e<16384?t.push(e>>>7|128):(e<2097152?t.push(e>>>14|128):(e<268435456?t.push(e>>>21|128):(t.push(255&(e>>>28|128)),t.push(255&(e>>>21|128))),t.push(255&(e>>>14|128))),t.push(255&(e>>>7|128))),t.push(127&e))})),this);this._ensure(2+i.length),this.writeByte(t),this.writeLength(i.length),i.forEach((function(e){r.writeByte(e)}))},c.prototype.writeLength=function(e){if("number"!=typeof e)throw new TypeError("argument must be a Number");if(this._ensure(4),!(e<=127))if(e<=255)this._buf[this._offset++]=129;else{if(e<=65535)this._buf[this._offset++]=130;else{if(!(e<=16777215))throw n("Length too long (> 4 bytes)");this._buf[this._offset++]=131,this._buf[this._offset++]=e>>16}this._buf[this._offset++]=e>>8}this._buf[this._offset++]=e},c.prototype.startSequence=function(e){"number"!=typeof e&&(e=s.Sequence|s.Constructor),this.writeByte(e),this._seq.push(this._offset),this._ensure(3),this._offset+=3},c.prototype.endSequence=function(){var e=this._seq.pop(),t=e+3,i=this._offset-t;if(i<=127)this._shift(t,i,-2),this._buf[e]=i;else if(i<=255)this._shift(t,i,-1),this._buf[e]=129,this._buf[e+1]=i;else if(i<=65535)this._buf[e]=130,this._buf[e+1]=i>>8,this._buf[e+2]=i;else{if(!(i<=16777215))throw n("Sequence too long");this._shift(t,i,1),this._buf[e]=131,this._buf[e+1]=i>>16,this._buf[e+2]=i>>8,this._buf[e+3]=i}},c.prototype._shift=function(e,t,i){r.ok(void 0!==e),r.ok(void 0!==t),r.ok(i),this._buf.copy(this._buf,e+i,e,e+t),this._offset+=i},c.prototype._ensure=function(e){var t;r.ok(e),this._size-this._offset<e&&((t=this._size*this._options.growthFactor)-this._offset<e&&(t+=e),e=a.alloc(t),this._buf.copy(e,0,0,this._offset),this._buf=e,this._size=t)},e.exports=c},function(e,t,i){var r=i(8),a=i(102).BigInteger,s=(i(133).ECPointFp,i(12).Buffer);function n(e,t){return e.length>=t?e:n("0"+e,t)}t.ECCurves=i(469),t.ECKey=function(e,t,i){var o=e(),c=o.getN(),u=Math.floor(c.bitLength()/8);if(t)if(i)e=o.getCurve(),this.P=e.decodePointHex(t.toString("hex"));else{if(t.length!=u)return!1;h=new a(t.toString("hex"),16)}else{i=c.subtract(a.ONE);var h=new a(r.randomBytes(c.bitLength())).mod(i).add(a.ONE);this.P=o.getG().multiply(h)}this.P&&(this.PublicKey=s.from(o.getCurve().encodeCompressedPointHex(this.P),"hex")),h&&(this.PrivateKey=s.from(n(h.toString(16),2*u),"hex"),this.deriveSharedSecret=function(e){return!(!e||!e.P)&&(e=e.P.multiply(h),s.from(n(e.getX().toBigInteger().toString(16),2*u),"hex"))})}},function(e,t,i){var r=i(102).BigInteger,a=i(133).ECCurveFp;function s(e,t,i,r){this.curve=e,this.g=t,this.n=i,this.h=r}function n(e){return new r(e,16)}s.prototype.getCurve=function(){return this.curve},s.prototype.getG=function(){return this.g},s.prototype.getN=function(){return this.n},s.prototype.getH=function(){return this.h},e.exports={secp128r1:function(){var e=n("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF"),t=n("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC"),i=n("E87579C11079F43DD824993C2CEE5ED3"),o=n("FFFFFFFE0000000075A30D1B9038A115"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("04161FF7528B899B2D0C28607CA52C5B86CF5AC8395BAFEB13C02DA292DDED7A83"),new s(e,t,o,c)},secp160k1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73"),t=r.ZERO,i=n("7"),o=n("0100000000000000000001B8FA16DFAB9ACA16B6B3"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("043B4C382CE37AA192A4019E763036F4F5DD4D7EBB938CF935318FDCED6BC28286531733C3F03C4FEE"),new s(e,t,o,c)},secp160r1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF"),t=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC"),i=n("1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45"),o=n("0100000000000000000001F4C8F927AED3CA752257"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("044A96B5688EF573284664698968C38BB913CBFC8223A628553168947D59DCC912042351377AC5FB32"),new s(e,t,o,c)},secp192k1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37"),t=r.ZERO,i=n("3"),o=n("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("04DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D"),new s(e,t,o,c)},secp192r1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF"),t=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC"),i=n("64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1"),o=n("FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("04188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF101207192B95FFC8DA78631011ED6B24CDD573F977A11E794811"),new s(e,t,o,c)},secp224r1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001"),t=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE"),i=n("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4"),o=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("04B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34"),new s(e,t,o,c)},secp256r1:function(){var e=n("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"),t=n("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC"),i=n("5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B"),o=n("FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5"),new s(e,t,o,c)}}},function(e,t,i){e.exports={read:function(e,t){if(n.isBuffer(e)&&(e=e.toString("ascii")),(e=e.trim().split(/[ \t\n]+/g)).length<2||3<e.length)throw new Error("Not a valid SSH certificate line");var i=e[0];e=e[1];return g(e=n.from(e,"base64"),i)},verify:function(e,t){return!1},sign:function(e,t){void 0===e.signatures.openssh&&(e.signatures.openssh={});try{var i=b(e,!0)}catch(t){return delete e.signatures.openssh,!1}e=e.signatures.openssh;var r=void 0;return"rsa"!==t.type&&"dsa"!==t.type||(r="sha1"),(t=t.createSign(r)).write(i),e.signature=t.sign(),!0},signAsync:function(e,t,i){void 0===e.signatures.openssh&&(e.signatures.openssh={});try{var r=b(e,!0)}catch(t){return delete e.signatures.openssh,void i(t)}var a=e.signatures.openssh;t(r,(function(e,t){if(e)i(e);else{try{t.toBuffer("ssh")}catch(e){return void i(e)}a.signature=t,i()}}))},write:function(e,t){void 0===t&&(t={});var i=b(e);e=w(e.subjectKey)+" "+i.toString("base64");return t.comment&&(e=e+" "+t.comment),e},fromBuffer:g,toBuffer:b};var r=i(10),a=i(91),s=i(8),n=i(12).Buffer,o=i(30),c=i(23),u=(i(24),i(106)),h=i(66),l=i(57),p=i(25),d=i(105),f={user:1,host:2},m=(Object.keys(f).forEach((function(e){f[f[e]]=e})),/^ecdsa-sha2-([^@-]+)-cert-v01@openssh.com$/);function g(e,t,i){var s=new a({buffer:e});e=s.readString();if(void 0!==t&&e!==t)throw new Error("SSH certificate algorithm mismatch");void 0===t&&(t=e),(e={signatures:{}}).signatures.openssh={},e.signatures.openssh.nonce=s.readBuffer();for(var n={},g=n.parts=[],y=(n.type=function(e){if("ssh-rsa-cert-v01@openssh.com"===e)return"rsa";if("ssh-dss-cert-v01@openssh.com"===e)return"dsa";if(e.match(m))return"ecdsa";if("ssh-ed25519-cert-v01@openssh.com"===e)return"ed25519";throw new Error("Unsupported cert type "+e)}(t),o.info[n.type].parts.length);g.length<y;)g.push(s.readPart());r.ok(1<=g.length,"key must have at least one part");var b=o.info[n.type];"ecdsa"===n.type&&(t=m.exec(t),r.ok(null!==t),r.strictEqual(t[1],g[0].data.toString()));for(var w,x=0;x<b.parts.length;++x)g[x].name=b.parts[x],"curve"!==g[x].name&&!1!==b.normalize&&((w=g[x]).data=p.mpNormalize(w.data));e.subjectKey=new c(n),e.serial=s.readInt64();for(var k=f[s.readInt()],S=(r.string(k,"valid cert type"),e.signatures.openssh.keyId=s.readString(),[]),_=(t=s.readBuffer(),new a({buffer:t}));!_.atEnd();)S.push(_.readString());0===S.length&&(S=["*"]),e.subjects=S.map((function(e){if("user"===k)return u.forUser(e);if("host"===k)return u.forHost(e);throw new Error("Unknown identity type "+k)})),e.validFrom=v(s.readInt64()),e.validUntil=v(s.readInt64());for(var E,j=[],A=new a({buffer:s.readBuffer()});!A.atEnd();)(E={critical:!0}).name=A.readString(),E.data=A.readBuffer(),j.push(E);for(A=new a({buffer:s.readBuffer()});!A.atEnd();)(E={critical:!1}).name=A.readString(),E.data=A.readBuffer(),j.push(E);return e.signatures.openssh.exts=j,s.readBuffer(),n=s.readBuffer(),e.issuerKey=h.read(n),e.issuer=u.forHost("**"),t=s.readBuffer(),e.signatures.openssh.signature=l.parse(t,e.issuerKey.type,"ssh"),void 0!==i&&(i.remainder=s.remainder(),i.consumed=s._offset),new d(e)}function v(e){var t=4294967296*e.readUInt32BE(0),i=(t+=e.readUInt32BE(4),new Date);return i.setTime(1e3*t),i.sourceInt64=e,i}function y(e){var t,i;return void 0!==e.sourceInt64?e.sourceInt64:(e=Math.round(e.getTime()/1e3),t=Math.floor(e/4294967296),e=Math.floor(e%4294967296),(i=n.alloc(8)).writeUInt32BE(t,0),i.writeUInt32BE(e,4),i)}function b(e,t){r.object(e.signatures.openssh,"signature for openssh format");var i=e.signatures.openssh,c=(void 0===i.nonce&&(i.nonce=s.randomBytes(16)),new a({})),u=(c.writeString(w(e.subjectKey)),c.writeBuffer(i.nonce),e.subjectKey),l=(o.info[u.type].parts.forEach((function(e){c.writePart(u.part[e])})),c.writeInt64(e.serial),e.subjects[0].type),p=(r.notStrictEqual(l,"unknown"),e.subjects.forEach((function(e){r.strictEqual(e.type,l)})),l=f[l],c.writeInt(l),void 0===i.keyId&&(i.keyId=e.subjects[0].type+"_"+(e.subjects[0].uid||e.subjects[0].hostname)),c.writeString(i.keyId),new a({})),d=(e.subjects.forEach((function(e){l===f.host?p.writeString(e.hostname):l===f.user&&p.writeString(e.uid)})),c.writeBuffer(p.toBuffer()),c.writeInt64(y(e.validFrom)),c.writeInt64(y(e.validUntil)),i.exts),m=(void 0===d&&(d=[]),new a({}));return d.forEach((function(e){!0===e.critical&&(m.writeString(e.name),m.writeBuffer(e.data))})),c.writeBuffer(m.toBuffer()),m=new a({}),d.forEach((function(e){!0!==e.critical&&(m.writeString(e.name),m.writeBuffer(e.data))})),c.writeBuffer(m.toBuffer()),c.writeBuffer(n.alloc(0)),p=h.write(e.issuerKey),c.writeBuffer(p),t||c.writeBuffer(i.signature.toBuffer("ssh")),c.toBuffer()}function w(e){if("rsa"===e.type)return"ssh-rsa-cert-v01@openssh.com";if("dsa"===e.type)return"ssh-dss-cert-v01@openssh.com";if("ecdsa"===e.type)return"ecdsa-sha2-"+e.curve+"-cert-v01@openssh.com";if("ed25519"===e.type)return"ssh-ed25519-cert-v01@openssh.com";throw new Error("Unsupported key type "+e.type)}},function(e,t,i){var r=i(278),a=(e.exports={read:function(e,t){"string"!=typeof e&&(a.buffer(e,"buf"),e=e.toString("ascii"));for(var i,n,o=e.trim().split(/[\r\n]+/g),c=-1;!i&&c<o.length;)i=o[++c].match(/[-]+[ ]*BEGIN CERTIFICATE[ ]*[-]+/);a.ok(i,"invalid PEM header");for(var u=o.length;!n&&0<u;)n=o[--u].match(/[-]+[ ]*END CERTIFICATE[ ]*[-]+/);for(a.ok(n,"invalid PEM footer"),o=o.slice(c,u+1);i=(o=o.slice(1))[0].match(/^([A-Za-z0-9-]+): (.+)$/);)i[1].toLowerCase(),i[2];return o=o.slice(0,-1).join(""),e=s.from(o,"base64"),r.read(e,t)},verify:r.verify,sign:r.sign,write:function(e,t){e=r.write(e,t),t="CERTIFICATE";var i=e.toString("base64"),a=(e=i.length+i.length/64+18+16+2*t.length+10,s.alloc(e)),n=0;n+=a.write("-----BEGIN "+t+"-----\n",n);for(var o=0;o<i.length;){var c=o+64;c>i.length&&(c=i.length),n+=a.write(i.slice(o,c),n),a[n++]=10,o=c}return n+=a.write("-----END "+t+"-----\n",n),a.slice(0,n)}},i(10)),s=(i(58),i(12).Buffer);i(30),i(25),i(23),i(24),i(65),i(106),i(57),i(105)},function(e,t,i){var r=i(10),a=i(8),s=(i(61),i(9)),n=i(175),o=i(473),c=i(132),u=i(9).format,h=c.HASH_ALGOS,l=c.PK_ALGOS,p=c.InvalidAlgorithmError,d=c.HttpSignatureError,f=c.validateAlgorithm,m='Signature keyId="%s",algorithm="%s",headers="%s",signature="%s"';function g(e){d.call(this,e,g)}function v(e){d.call(this,e,v)}function y(e){r.object(e,"options");var t=[];if(void 0!==e.algorithm&&(r.string(e.algorithm,"options.algorithm"),t=f(e.algorithm)),this.rs_alg=t,void 0!==e.sign)r.func(e.sign,"options.sign"),this.rs_signFunc=e.sign;else if("hmac"===t[0]&&void 0!==e.key){if(r.string(e.keyId,"options.keyId"),this.rs_keyId=e.keyId,"string"!=typeof e.key&&!Buffer.isBuffer(e.key))throw new TypeError("options.key for HMAC must be a string or Buffer");this.rs_signer=a.createHmac(t[1].toUpperCase(),e.key),this.rs_signer.sign=function(){var e=this.digest("base64");return{hashAlgorithm:t[1],toString:function(){return e}}}}else{if(void 0===e.key)throw new TypeError("options.sign (func) or options.key is required");var i=e.key;if("string"!=typeof i&&!Buffer.isBuffer(i)||(i=n.parsePrivateKey(i)),r.ok(n.PrivateKey.isPrivateKey(i,[1,2]),"options.key must be a sshpk.PrivateKey"),this.rs_key=i,r.string(e.keyId,"options.keyId"),this.rs_keyId=e.keyId,!l[i.type])throw new p(i.type.toUpperCase()+" type keys are not supported");if(void 0!==t[0]&&i.type!==t[0])throw new p("options.key must be a "+t[0].toUpperCase()+" key, was given a "+i.type.toUpperCase()+" key instead");this.rs_signer=i.createSign(t[1])}this.rs_headers=[],this.rs_lines=[]}s.inherits(g,d),s.inherits(v,d),y.prototype.writeHeader=function(e,t){return r.string(e,"header"),e=e.toLowerCase(),r.string(t,"value"),this.rs_headers.push(e),this.rs_signFunc?this.rs_lines.push(e+": "+t):(e=e+": "+t,0<this.rs_headers.length&&(e="\n"+e),this.rs_signer.update(e)),t},y.prototype.writeDateHeader=function(){return this.writeHeader("date",o.rfc1123(new Date))},y.prototype.writeTarget=function(e,t){r.string(e,"method"),r.string(t,"path"),e=e.toLowerCase(),this.writeHeader("(request-target)",e+" "+t)},y.prototype.sign=function(e){if(r.func(e,"callback"),this.rs_headers.length<1)throw new Error("At least one header must be signed");if(this.rs_signFunc){var t=this.rs_lines.join("\n"),i=this;this.rs_signFunc(t,(function(t,a){if(t)e(t);else{try{r.object(a,"signature"),r.string(a.keyId,"signature.keyId"),r.string(a.algorithm,"signature.algorithm"),r.string(a.signature,"signature.signature"),s=f(a.algorithm),n=u(m,a.keyId,a.algorithm,i.rs_headers.join(" "),a.signature)}catch(t){return void e(t)}e(null,n)}}))}else{try{var a=this.rs_signer.sign()}catch(t){return void e(t)}var s=(this.rs_alg[0]||this.rs_key.type)+"-"+a.hashAlgorithm,n=(t=a.toString(),u(m,this.rs_keyId,s,this.rs_headers.join(" "),t));e(null,n)}},e.exports={isSigner:function(e){return"object"==typeof e&&e instanceof y},createSigner:function(e){return new y(e)},signRequest:function(e,t){r.object(e,"request"),r.object(t,"options"),r.optionalString(t.algorithm,"options.algorithm"),r.string(t.keyId,"options.keyId"),r.optionalArrayOfString(t.headers,"options.headers"),r.optionalString(t.httpVersion,"options.httpVersion"),e.getHeader("Date")||e.setHeader("Date",o.rfc1123(new Date)),t.headers||(t.headers=["date"]),t.httpVersion||(t.httpVersion="1.1");for(var i=[],s=(t.algorithm&&(t.algorithm=t.algorithm.toLowerCase(),i=f(t.algorithm)),""),c=0;c<t.headers.length;c++){if("string"!=typeof t.headers[c])throw new TypeError("options.headers must be an array of Strings");var d=t.headers[c].toLowerCase();if("request-line"===d){if(t.strict)throw new v("request-line is not a valid header with strict parsing enabled.");s+=e.method+" "+e.path+" HTTP/"+t.httpVersion}else if("(request-target)"===d)s+="(request-target): "+e.method.toLowerCase()+" "+e.path;else{var y=e.getHeader(d);if(void 0===y||""===y)throw new g(d+" was not in the request");s+=d+": "+y}c+1<t.headers.length&&(s+="\n")}if(e.hasOwnProperty("_stringToSign")&&(e._stringToSign=s),"hmac"===i[0]){if("string"!=typeof t.key&&!Buffer.isBuffer(t.key))throw new TypeError("options.key must be a string or Buffer");var b=a.createHmac(i[1].toUpperCase(),t.key);b.update(s),b=b.digest("base64")}else{var w=t.key;if("string"!=typeof w&&!Buffer.isBuffer(w)||(w=n.parsePrivateKey(t.key)),r.ok(n.PrivateKey.isPrivateKey(w,[1,2]),"options.key must be a sshpk.PrivateKey"),!l[w.type])throw new p(w.type.toUpperCase()+" type keys are not supported");if(void 0!==i[0]&&w.type!==i[0])throw new p("options.key must be a "+i[0].toUpperCase()+" key, was given a "+w.type.toUpperCase()+" key instead");if((i=w.createSign(i[1])).update(s),i=i.sign(),!h[i.hashAlgorithm])throw new p(i.hashAlgorithm.toUpperCase()+" is not a supported hash algorithm");t.algorithm=w.type+"-"+i.hashAlgorithm,b=i.toString(),r.notStrictEqual(b,"","empty signature produced")}return w=t.authorizationHeaderName||"Authorization",e.setHeader(w,u(m,t.keyId,t.algorithm,t.headers.join(" "),b)),!0}}},function(e,t,i){var r=i(10),a=(i(9),i(279)),s=i(474),n=i(475);function o(e,t){return r.equal(typeof t,"string"),Object.prototype.hasOwnProperty.call(e,t)}t.deepCopy=function e(t){var i,r,a="__deepCopy";if(t&&t[a])throw new Error("attempted deep copy of cyclic object");if(t&&t.constructor==Object){for(r in i={},t[a]=!0,t)r!=a&&(i[r]=e(t[r]));return delete t[a],i}if(t&&t.constructor==Array){for(i=[],t[a]=!0,r=0;r<t.length;r++)i.push(e(t[r]));return delete t[a],i}return t},t.deepEqual=function e(t,i){if(typeof t!=typeof i)return!1;if(null===t||null===i||"object"!=typeof t)return t===i;if(t.constructor!=i.constructor)return!1;for(var r in t){if(!i.hasOwnProperty(r))return!1;if(!e(t[r],i[r]))return!1}for(r in i)if(!t.hasOwnProperty(r))return!1;return!0},t.isEmpty=function(e){for(var t in e)return!1;return!0},t.hasKey=o,t.forEachKey=function(e,t){for(var i in e)o(e,i)&&t(i,e[i])},t.pluck=function(e,t){return r.equal(typeof t,"string"),function e(t,i){if(null!==t&&"object"==typeof t){if(t.hasOwnProperty(i))return t[i];var r=i.indexOf(".");if(-1!=r){var a=i.substr(0,r);if(t.hasOwnProperty(a))return e(t[a],i.substr(r+1))}}}(e,t)},t.flattenObject=function e(t,i){if(0===i)return[t];r.ok(null!==t),r.equal(typeof t,"object"),r.equal(typeof i,"number"),r.ok(0<=i);var a=[];for(var s in t)e(t[s],i-1).forEach((function(e){a.push([s].concat(e))}));return a},t.flattenIter=function(e,t,i){!function e(t,i,a,s){var n;if(0===i)return(n=a.slice(0)).push(t),void s(n);for(var o in r.ok(null!==t),r.equal(typeof t,"object"),r.equal(typeof i,"number"),r.ok(0<=i),t)(n=a.slice(0)).push(o),e(t[o],i-1,n,s)}(e,t,[],i)},t.validateJsonObject=C,t.validateJsonObjectJS=C,t.randElt=function(e){return r.ok(Array.isArray(e)&&0<e.length,"randElt argument must be a non-empty array"),e[Math.floor(Math.random()*e.length)]},t.extraProperties=function(e,t){r.ok("object"==typeof e&&null!==e,"obj argument must be a non-null object"),r.ok(Array.isArray(t),"allowed argument must be an array of strings");for(var i=0;i<t.length;i++)r.ok("string"==typeof t[i],"allowed argument must be an array of strings");return Object.keys(e).filter((function(e){return-1===t.indexOf(e)}))},t.mergeObjects=N,t.startsWith=function(e,t){return e.substr(0,t.length)==t},t.endsWith=function(e,t){return e.substr(e.length-t.length,t.length)==t},t.parseInteger=function(e,t){r.string(e,"str"),r.optionalObject(t,"options");var i,a=!1,s=p;t&&(a=o(t,"base"),s=N(s,t),r.number(s.base,"options.base"),r.ok(2<=s.base,"options.base >= 2"),r.ok(s.base<=36,"options.base <= 36"),r.bool(s.allowSign,"options.allowSign"),r.bool(s.allowPrefix,"options.allowPrefix"),r.bool(s.allowTrailing,"options.allowTrailing"),r.bool(s.allowImprecise,"options.allowImprecise"),r.bool(s.trimWhitespace,"options.trimWhitespace"),r.bool(s.leadingZeroIsOctal,"options.leadingZeroIsOctal"),s.leadingZeroIsOctal)&&r.ok(!a,'"base" and "leadingZeroIsOctal" are mutually exclusive');t=-1;var n=s.base,c=1,u=0,C=0,P=e.length;if(s.trimWhitespace)for(;C<P&&O(e.charCodeAt(C));)++C;for(s.allowSign&&("-"===e[C]?(C+=1,c=-1):"+"===e[C]&&(C+=1)),"0"===e[C]&&(!s.allowPrefix||-1===(t=function(e){return e===k||e===g?2:e===S||e===v?8:e===_||e===y?10:e===E||e===b?16:-1}(e.charCodeAt(C+1)))||a&&t!==n||(n=t,C+=2),-1===t)&&s.leadingZeroIsOctal&&(n=8),a=C;C<P&&-1!==(i=function(e){return d<=e&&e<=f?e-A:m<=e&&e<=w?e-R:x<=e&&e<=j?e-I:-1}(e.charCodeAt(C)))&&i<n;++C)u=u*n+i;if(a===C)return new Error("invalid number: "+JSON.stringify(e));if(s.trimWhitespace)for(;C<P&&O(e.charCodeAt(C));)++C;return C<P&&!s.allowTrailing?new Error("trailing characters after number: "+JSON.stringify(e.slice(C))):0===u?0:(t=u*c,s.allowImprecise||!(h<u||t<l)?t:new Error("number is outside of the supported range: "+JSON.stringify(e.slice(a,C))))},t.iso8601=function(e){return"number"==typeof e&&(e=new Date(e)),r.ok(e.constructor===Date),a.sprintf("%4d-%02d-%02dT%02d:%02d:%02d.%03dZ",e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds())},t.rfc1123=function(e){return a.sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",u[e.getUTCDay()],e.getUTCDate(),c[e.getUTCMonth()],e.getUTCFullYear(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds())},t.parseDateTime=function(e){var t=+e;return isNaN(t)?new Date(e):new Date(t)},t.hrtimediff=T,t.hrtimeDiff=T,t.hrtimeAccum=B,t.hrtimeAdd=function(e,t){return P(e),B([e[0],e[1]],t)},t.hrtimeNanosec=function(e){return P(e),Math.floor(1e9*e[0]+e[1])},t.hrtimeMicrosec=function(e){return P(e),Math.floor(1e6*e[0]+e[1]/1e3)},t.hrtimeMillisec=function(e){return P(e),Math.floor(1e3*e[0]+e[1]/1e6)};var c=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],h=Number.MAX_SAFE_INTEGER||9007199254740991,l=Number.MIN_SAFE_INTEGER||-9007199254740991,p={base:10,allowSign:!0,allowPrefix:!1,allowTrailing:!1,allowImprecise:!1,trimWhitespace:!1,leadingZeroIsOctal:!1},d=48,f=57,m=65,g=66,v=79,y=84,b=88,w=90,x=97,k=98,S=111,_=116,E=120,j=122,A=48,R=55,I=87;function O(e){return 32===e||9<=e&&e<=13||160===e||5760===e||6158===e||8192<=e&&e<=8202||8232===e||8233===e||8239===e||8287===e||12288===e||65279===e}function C(e,t){var i,r,a;return 0===(t=n.validate(t,e)).errors.length?null:(t=(e=t.errors[0]).property,-1!=(r=(i=e.message.toLowerCase()).indexOf("the property "))&&-1!=(a=i.indexOf(" is not defined in the schema and the schema does not allow additional properties"))&&(r+="the property ".length,t=""===t?i.substr(r,a-r):t+"."+i.substr(r,a-r),i="unsupported property"),(a=new s.VError('property "%s": %s',t,i)).jsv_details=e,a)}function P(e){r.ok(0<=e[0]&&0<=e[1],"negative numbers not allowed in hrtimes"),r.ok(e[1]<1e9,"nanoseconds column overflow")}function T(e,t){P(e),P(t),r.ok(e[0]>t[0]||e[0]==t[0]&&e[1]>=t[1],"negative differences not allowed");var i=[e[0]-t[0],0];return e[1]>=t[1]?i[1]=e[1]-t[1]:(i[0]--,i[1]=1e9-(t[1]-e[1])),i}function B(e,t){return P(e),P(t),e[1]+=t[1],1e9<=e[1]&&(e[0]++,e[1]-=1e9),e[0]+=t[0],e}function N(e,t,i){var r,a={};if(i)for(r in i)a[r]=i[r];if(e)for(r in e)a[r]=e[r];if(t)for(r in t)a[r]=t[r];return a}},function(e,t,i){var r=i(10),a=i(9),s=i(279),n=i(86).isError,o=s.sprintf;function c(e){var t,i,a,s;if(r.object(e,"args"),r.bool(e.strict,"args.strict"),r.array(e.argv,"args.argv"),0===(t=e.argv).length)i={},a=[];else if(n(t[0]))i={cause:t[0]},a=t.slice(1);else if("object"==typeof t[0]){for(s in i={},t[0])i[s]=t[0][s];a=t.slice(1)}else r.string(t[0],"first argument to VError, SError, or WError constructor must be a string, object, or Error"),i={},a=t;return r.object(i),{options:i,shortmessage:0===(a=i.strict||e.strict?a:a.map((function(e){return null===e?"null":void 0===e?"undefined":e}))).length?"":o.apply(null,a)}}function u(){var e,t,i,a=Array.prototype.slice.call(arguments,0);if(!(this instanceof u))return t=Object.create(u.prototype),u.apply(t,arguments),t;if((e=c({argv:a,strict:!1})).options.name&&(r.string(e.options.name,'error\'s "name" must be a string'),this.name=e.options.name),this.jse_shortmsg=e.shortmessage,t=e.shortmessage,(a=e.options.cause)&&(r.ok(n(a),"cause is not an Error"),this.jse_cause=a,e.options.skipCauseMessage||(t+=": "+a.message)),this.jse_info={},e.options.info)for(i in e.options.info)this.jse_info[i]=e.options.info[i];return this.message=t,Error.call(this,t),Error.captureStackTrace&&(a=e.options.constructorOpt||this.constructor,Error.captureStackTrace(this,a)),this}function h(){var e,t=Array.prototype.slice.call(arguments,0);return this instanceof h?(e=(t=c({argv:t,strict:!0})).options,u.call(this,e,"%s",t.shortmessage),this):(e=Object.create(h.prototype),h.apply(e,arguments),e)}function l(e){r.array(e,"list of errors"),r.ok(0<e.length,"must be at least one error"),this.ase_errors=e,u.call(this,{cause:e[0]},"first of %d error%s",e.length,1==e.length?"":"s")}function p(){var e,t,i=Array.prototype.slice.call(arguments,0);return this instanceof p?((t=(e=c({argv:i,strict:!1})).options).skipCauseMessage=!0,u.call(this,t,"%s",e.shortmessage),this):(t=Object.create(p.prototype),p.apply(t,i),t)}((e.exports=u).VError=u).SError=h,u.WError=p,u.MultiError=l,a.inherits(u,Error),u.prototype.name="VError",u.prototype.toString=function(){var e=this.hasOwnProperty("name")&&this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(e+=": "+this.message),e},u.prototype.cause=function(){var e=u.cause(this);return null===e?void 0:e},u.cause=function(e){return r.ok(n(e),"err must be an Error"),n(e.jse_cause)?e.jse_cause:null},u.info=function(e){var t,i,a;if(r.ok(n(e),"err must be an Error"),t=null!==(i=u.cause(e))?u.info(i):{},"object"==typeof e.jse_info&&null!==e.jse_info)for(a in e.jse_info)t[a]=e.jse_info[a];return t},u.findCauseByName=function(e,t){var i;for(r.ok(n(e),"err must be an Error"),r.string(t,"name"),r.ok(0<t.length,"name cannot be empty"),i=e;null!==i;i=u.cause(i))if(r.ok(n(i)),i.name==t)return i;return null},u.hasCauseWithName=function(e,t){return null!==u.findCauseByName(e,t)},u.fullStack=function(e){r.ok(n(e),"err must be an Error");var t=u.cause(e);return t?e.stack+"\ncaused by: "+u.fullStack(t):e.stack},u.errorFromList=function(e){return r.arrayOfObject(e,"errors"),0===e.length?null:(e.forEach((function(e){r.ok(n(e))})),1==e.length?e[0]:new l(e))},u.errorForEach=function(e,t){r.ok(n(e),"err must be an Error"),r.func(t,"func"),e instanceof l?e.errors().forEach((function(e){t(e)})):t(e)},a.inherits(h,u),a.inherits(l,u),l.prototype.name="MultiError",l.prototype.errors=function(){return this.ase_errors.slice(0)},a.inherits(p,u),p.prototype.name="WError",p.prototype.toString=function(){var e=this.hasOwnProperty("name")&&this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(e+=": "+this.message),this.jse_cause&&this.jse_cause.message&&(e+="; caused by "+this.jse_cause.toString()),e},p.prototype.cause=function(e){return n(e)&&(this.jse_cause=e),this.jse_cause}},function(e,t,i){void 0!==(t=function(){return(t=e).Integer={type:"integer"},i={String:String,Boolean:Boolean,Number:Number,Object:Object,Array:Array,Date:Date},t.validate=e,t.checkPropertyChange=function(t,i,r){return e(t,i,{changing:r||"property"})},e=t._validate=function(e,t,r){var a=(r=r||{}).changing;function s(e){return e.type||i[e.name]==e&&e.name.toLowerCase()}var n=[];function o(e,t,i,c){function u(e){n.push({property:i,message:e})}if(i+=i?"number"==typeof c?"["+c+"]":void 0===c?"":"."+c:c,!("object"!=typeof t||t instanceof Array)||!i&&"function"==typeof t||t&&s(t)){if(a&&t.readonly&&u("is a readonly field, it can not be changed"),t.extends&&o(e,t.extends,i,c),void 0===e)t.required&&u("is missing and it is required");else if(n=n.concat(g(s(t),e)),t.disallow&&!g(t.disallow,e).length&&u(" disallowed value was matched"),null!==e){if(e instanceof Array){if(t.items){var h=t.items instanceof Array,l=t.items;for(c=0,f=e.length;c<f;c+=1)h&&(l=t.items[c]),r.coerce&&(e[c]=r.coerce(e[c],l)),n.concat(o(e[c],l,i,c))}t.minItems&&e.length<t.minItems&&u("There must be a minimum of "+t.minItems+" in the array"),t.maxItems&&e.length>t.maxItems&&u("There must be a maximum of "+t.maxItems+" in the array")}else(t.properties||t.additionalProperties)&&n.concat(function(e,t,i,s){if("object"==typeof t)for(var c in("object"!=typeof e||e instanceof Array)&&n.push({property:i,message:"an object is required"}),t){var u,h;!t.hasOwnProperty(c)||"__proto__"==c||"constructor"==c||void 0===(u=e.hasOwnProperty(c)?e[c]:void 0)&&r.existingOnly||(h=t[c],void 0===u&&h.default&&(u=e[c]=h.default),o(u=r.coerce&&c in e?e[c]=r.coerce(u,h):u,h,i,c))}for(c in e){if(e.hasOwnProperty(c)&&("_"!=c.charAt(0)||"_"!=c.charAt(1))&&t&&!t[c]&&!1===s){if(r.filter){delete e[c];continue}n.push({property:i,message:"The property "+c+" is not defined in the schema and the schema does not allow additional properties"})}var l=t&&t[c]&&t[c].requires;!l||l in e||n.push({property:i,message:"the presence of the property "+c+" requires that "+l+" also be present"}),u=e[c],!s||t&&"object"==typeof t&&c in t||o(u=r.coerce?e[c]=r.coerce(u,s):u,s,i,c),!a&&u&&u.$schema&&(n=n.concat(o(u,u.$schema,i,c)))}return n}(e,t.properties,i,t.additionalProperties));if(t.pattern&&"string"==typeof e&&!e.match(t.pattern)&&u("does not match the regex pattern "+t.pattern),t.maxLength&&"string"==typeof e&&e.length>t.maxLength&&u("may only be "+t.maxLength+" characters long"),t.minLength&&"string"==typeof e&&e.length<t.minLength&&u("must be at least "+t.minLength+" characters long"),void 0!==t.minimum&&typeof e==typeof t.minimum&&t.minimum>e&&u("must have a minimum value of "+t.minimum),void 0!==t.maximum&&typeof e==typeof t.maximum&&t.maximum<e&&u("must have a maximum value of "+t.maximum),t.enum){for(var p,d=t.enum,f=d.length,m=0;m<f;m++)if(d[m]===e){p=1;break}p||u("does not have a value in the enumeration "+d.join(", "))}"number"==typeof t.maxDecimal&&e.toString().match(new RegExp("\\.[0-9]{"+(t.maxDecimal+1)+",}"))&&u("may only have "+t.maxDecimal+" digits of decimal places")}}else"function"==typeof t?e instanceof t||u("is not an instance of the class/constructor "+t.name):t&&u("Invalid schema/property definition "+t);return null;function g(e,t){if(e){if(!("string"!=typeof e||"any"==e||("null"==e?null===t:typeof t==e)||t instanceof Array&&"array"==e||t instanceof Date&&"date"==e||"integer"==e&&t%1==0))return[{property:i,message:t+" - "+typeof t+" value found, but a "+e+" is required"}];if(e instanceof Array){for(var r=[],a=0;a<e.length&&(r=g(e[a],t)).length;a++);if(r.length)return r}else{var s,c;if("object"==typeof e)return s=n,n=[],o(t,e,i),c=n,n=s,c}}return[]}}return t&&o(e,t,"",a||""),!a&&e&&e.$schema&&o(e,e.$schema,"",""),{valid:!n.length,errors:n}},t.mustBeValid=function(e){if(!e.valid)throw new TypeError(e.errors.map((function(e){return"for property "+e.property+": "+e.message})).join(", \n"))},t;function e(t,i){return e(t,i,{changing:!1})}var t,i}.apply(t,[]))&&(e.exports=t)},function(e,t,i){var r=i(10),a=i(8),s=i(175),n=((i=i(132)).HASH_ALGOS,i.PK_ALGOS,i.InvalidAlgorithmError,i.HttpSignatureError,i.validateAlgorithm);e.exports={verifySignature:function(e,t){r.object(e,"parsedSignature"),"string"!=typeof t&&!Buffer.isBuffer(t)||(t=s.parseKey(t)),r.ok(s.Key.isKey(t,[1,1]),"pubkey must be a sshpk.Key");var i=n(e.algorithm);return"hmac"!==i[0]&&i[0]===t.type&&((t=t.createVerify(i[1])).update(e.signingString),t.verify(e.params.signature,"base64"))},verifyHMAC:function(e,t){r.object(e,"parsedHMAC"),r.string(t,"secret");var i,s,o=n(e.algorithm);return"hmac"===o[0]&&(o=o[1].toUpperCase(),(s=a.createHmac(o,t)).update(e.signingString),(i=a.createHmac(o,t)).update(s.digest()),i=i.digest(),(s=a.createHmac(o,t)).update(new Buffer(e.params.signature,"base64")),s=s.digest(),"string"==typeof i?i===s:Buffer.isBuffer(i)&&!i.equals?i.toString("binary")===s.toString("binary"):i.equals(s))}}},function(e,t,i){
|
|
939
|
+
var r=i(8),a=i(43).parse,s=["acl","location","logging","notification","partNumber","policy","requestPayment","torrent","uploadId","uploads","versionId","versioning","versions","website"];function n(e){return"AWS "+e.key+":"+c(e)}function o(e){return r.createHmac("sha1",e.secret).update(e.message).digest("base64")}function c(e){return e.message=u(e),o(e)}function u(e){var t=e.amazonHeaders||"";return t&&(t+="\n"),[e.verb,e.md5,e.contentType,e.date?e.date.toUTCString():"",t+e.resource].join("\n")}function h(e){return"GET\n\n\n"+e.date+"\n"+e.resource}e.exports=n,e.exports.authorization=n,e.exports.hmacSha1=o,e.exports.sign=c,e.exports.signQuery=function(e){return e.message=h(e),o(e)},e.exports.stringToSign=u,e.exports.queryStringToSign=h,e.exports.canonicalizeHeaders=function(e){for(var t=[],i=Object.keys(e),r=0,a=i.length;r<a;++r){var s=i[r],n=e[s];0===(s=s.toLowerCase()).indexOf("x-amz")&&t.push(s+":"+n)}return t.sort().join("\n")},e.exports.canonicalizeResource=function(e){var t=a(e,!0),i=(e=t.pathname,[]);return Object.keys(t.query).forEach((function(e){var r;~s.indexOf(e)&&(r=""==t.query[e]?"":"="+encodeURIComponent(t.query[e]),i.push(e+r))})),e+(i.length?"?"+i.sort().join("&"):"")}},function(e,t,i){var r=i(43),a=i(116),s=i(8),n=i(462)(1e3);function o(e,t,i){return s.createHmac("sha256",e).update(t,"utf8").digest(i)}function c(e,t){return s.createHash("sha256").update(e,"utf8").digest(t)}function u(e){return e.replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function h(e){return u(encodeURIComponent(e))}var l={authorization:!0,connection:!0,"x-amzn-trace-id":!0,"user-agent":!0,expect:!0,"presigned-expires":!0,range:!0};function p(e,t){var i=(e="string"==typeof e?r.parse(e):e).headers=e.headers||{},a=(!this.service||!this.region)&&this.matchHost(e.hostname||e.host||i.Host||i.host);this.request=e,this.credentials=t||this.defaultCredentials(),this.service=e.service||a[0]||"",this.region=e.region||a[1]||"us-east-1","email"===this.service&&(this.service="ses"),!e.method&&e.body&&(e.method="POST"),i.Host||i.host||(i.Host=e.hostname||e.host||this.createHost(),e.port&&(i.Host+=":"+e.port)),e.hostname||e.host||(e.hostname=i.Host||i.host),this.isCodeCommitGit="codecommit"===this.service&&"GIT"===e.method}p.prototype.matchHost=function(e){var t=((e||"").match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com(\.cn)?$/)||[]).slice(1,3);if("s3"==(t="es"===t[1]?t.reverse():t)[1])t[0]="s3",t[1]="us-east-1";else for(var i=0;i<2;i++)if(/^s3-/.test(t[i])){t[1]=t[i].slice(3),t[0]="s3";break}return t},p.prototype.isSingleRegion=function(){return 0<=["s3","sdb"].indexOf(this.service)&&"us-east-1"===this.region||0<=["cloudfront","ls","route53","iam","importexport","sts"].indexOf(this.service)},p.prototype.createHost=function(){var e=this.isSingleRegion()?"":"."+this.region;return("ses"===this.service?"email":this.service)+e+".amazonaws.com"},p.prototype.prepareRequest=function(){this.parsePath();var e,t=this.request,i=t.headers;t.signQuery?(this.parsedPath.query=e=this.parsedPath.query||{},this.credentials.sessionToken&&(e["X-Amz-Security-Token"]=this.credentials.sessionToken),"s3"!==this.service||e["X-Amz-Expires"]||(e["X-Amz-Expires"]=86400),e["X-Amz-Date"]?this.datetime=e["X-Amz-Date"]:e["X-Amz-Date"]=this.getDateTime(),e["X-Amz-Algorithm"]="AWS4-HMAC-SHA256",e["X-Amz-Credential"]=this.credentials.accessKeyId+"/"+this.credentialString(),e["X-Amz-SignedHeaders"]=this.signedHeaders()):(t.doNotModifyHeaders||this.isCodeCommitGit||(!t.body||i["Content-Type"]||i["content-type"]||(i["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8"),!t.body||i["Content-Length"]||i["content-length"]||(i["Content-Length"]=Buffer.byteLength(t.body)),!this.credentials.sessionToken||i["X-Amz-Security-Token"]||i["x-amz-security-token"]||(i["X-Amz-Security-Token"]=this.credentials.sessionToken),"s3"!==this.service||i["X-Amz-Content-Sha256"]||i["x-amz-content-sha256"]||(i["X-Amz-Content-Sha256"]=c(this.request.body||"","hex")),i["X-Amz-Date"]||i["x-amz-date"]?this.datetime=i["X-Amz-Date"]||i["x-amz-date"]:i["X-Amz-Date"]=this.getDateTime()),delete i.Authorization,delete i.authorization)},p.prototype.sign=function(){return this.parsedPath||this.prepareRequest(),this.request.signQuery?this.parsedPath.query["X-Amz-Signature"]=this.signature():this.request.headers.Authorization=this.authHeader(),this.request.path=this.formatPath(),this.request},p.prototype.getDateTime=function(){var e;return this.datetime||(e=this.request.headers,e=new Date(e.Date||e.date||new Date),this.datetime=e.toISOString().replace(/[:\-]|\.\d{3}/g,""),this.isCodeCommitGit&&(this.datetime=this.datetime.slice(0,-1))),this.datetime},p.prototype.getDate=function(){return this.getDateTime().substr(0,8)},p.prototype.authHeader=function(){return["AWS4-HMAC-SHA256 Credential="+this.credentials.accessKeyId+"/"+this.credentialString(),"SignedHeaders="+this.signedHeaders(),"Signature="+this.signature()].join(", ")},p.prototype.signature=function(){var e=this.getDate(),t=[this.credentials.secretAccessKey,e,this.region,this.service].join(),i=n.get(t);return i||(e=o("AWS4"+this.credentials.secretAccessKey,e),e=o(e,this.region),e=o(e,this.service),i=o(e,"aws4_request"),n.set(t,i)),o(i,this.stringToSign(),"hex")},p.prototype.stringToSign=function(){return["AWS4-HMAC-SHA256",this.getDateTime(),this.credentialString(),c(this.canonicalString(),"hex")].join("\n")},p.prototype.canonicalString=function(){this.parsedPath||this.prepareRequest();var e,t,i=this.parsedPath.path,r=this.parsedPath.query,a=this.request.headers,s="",n="s3"!==this.service,o="s3"===this.service||this.request.doNotEncodePath,u="s3"===this.service,l="s3"===this.service;a="s3"===this.service&&this.request.signQuery?"UNSIGNED-PAYLOAD":this.isCodeCommitGit?"":a["X-Amz-Content-Sha256"]||a["x-amz-content-sha256"]||c(this.request.body||"","hex");return r&&(e=Object.keys(r).reduce((function(e,t){return t&&(e[h(t)]=Array.isArray(r[t])&&l?r[t][0]:r[t]),e}),{}),t=[],Object.keys(e).sort().forEach((function(i){Array.isArray(e[i])?e[i].map(h).sort().forEach((function(e){t.push(i+"="+e)})):t.push(i+"="+h(e[i]))})),s=t.join("&")),"/"!==i&&("/"!==(i=(i=n?i.replace(/\/{2,}/g,"/"):i).split("/").reduce((function(e,t){return n&&".."===t?e.pop():n&&"."===t||(o&&(t=decodeURIComponent(t.replace(/\+/g," "))),e.push(h(t))),e}),[]).join("/"))[0]&&(i="/"+i),u)&&(i=i.replace(/%2F/g,"/")),[this.request.method||"GET",i,s,this.canonicalHeaders()+"\n",this.signedHeaders(),a].join("\n")},p.prototype.canonicalHeaders=function(){var e=this.request.headers;return Object.keys(e).filter((function(e){return null==l[e.toLowerCase()]})).sort((function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:1})).map((function(t){return t.toLowerCase()+":"+e[t].toString().trim().replace(/\s+/g," ")})).join("\n")},p.prototype.signedHeaders=function(){return Object.keys(this.request.headers).map((function(e){return e.toLowerCase()})).filter((function(e){return null==l[e]})).sort().join(";")},p.prototype.credentialString=function(){return[this.getDate(),this.region,this.service,"aws4_request"].join("/")},p.prototype.defaultCredentials=function(){var e=process.env;return{accessKeyId:e.AWS_ACCESS_KEY_ID||e.AWS_ACCESS_KEY,secretAccessKey:e.AWS_SECRET_ACCESS_KEY||e.AWS_SECRET_KEY,sessionToken:e.AWS_SESSION_TOKEN}},p.prototype.parsePath=function(){var e=this.request.path||"/",t=(e=/[^0-9A-Za-z;,/?:@&=+$\-_.!~*'()#%]/.test(e)?encodeURI(decodeURI(e)):e).indexOf("?"),i=null;0<=t&&(i=a.parse(e.slice(t+1)),e=e.slice(0,t)),this.parsedPath={path:e,query:i}},p.prototype.formatPath=function(){var e=this.parsedPath.path,t=this.parsedPath.query;return t?(null!=t[""]&&delete t[""],e+"?"+u(a.stringify(t))):e},t.RequestSigner=p,t.sign=function(e,t){return new p(e,t).sign()}},function(e,t){function i(e){this.capacity=0|e,this.map=Object.create(null),this.list=new r}function r(){this.firstNode=null,this.lastNode=null}function a(e,t){this.key=e,this.val=t,this.prev=null,this.next=null}e.exports=function(e){return new i(e)},i.prototype.get=function(e){if(null!=(e=this.map[e]))return this.used(e),e.val},i.prototype.set=function(e,t){var i=this.map[e];if(null!=i)i.val=t;else{if(this.capacity||this.prune(),!this.capacity)return!1;i=new a(e,t),this.map[e]=i,this.capacity--}return this.used(i),!0},i.prototype.used=function(e){this.list.moveToFront(e)},i.prototype.prune=function(){var e=this.list.pop();null!=e&&(delete this.map[e.key],this.capacity++)},r.prototype.moveToFront=function(e){this.firstNode!=e&&(this.remove(e),null==this.firstNode?(this.firstNode=e,(this.lastNode=e).prev=null,e.next=null):(e.prev=null,e.next=this.firstNode,e.next.prev=e,this.firstNode=e))},r.prototype.pop=function(){var e=this.lastNode;return null!=e&&this.remove(e),e},r.prototype.remove=function(e){this.firstNode==e?this.firstNode=e.next:null!=e.prev&&(e.prev.next=e.next),this.lastNode==e?this.lastNode=e.prev:null!=e.next&&(e.next.prev=e.prev)}},function(e,t,i){var r=i(464),a=i(472),s=i(476);i=i(132);e.exports={parse:r.parseRequest,parseRequest:r.parseRequest,sign:a.signRequest,signRequest:a.signRequest,createSigner:a.createSigner,isSigner:a.isSigner,sshKeyToPEM:i.sshKeyToPEM,sshKeyFingerprint:i.fingerprint,pemToRsaSSHKey:i.pemToRsaSSHKey,verify:s.verifySignature,verifySignature:s.verifySignature,verifyHMAC:s.verifyHMAC}},function(e,t,i){var r=i(10),a=i(9),s=((i=i(132)).HASH_ALGOS,i.PK_ALGOS,i.HttpSignatureError),n=i.InvalidAlgorithmError,o=i.validateAlgorithm;function c(e){s.call(this,e,c)}function u(e){s.call(this,e,u)}function h(e){s.call(this,e,h)}function l(e){s.call(this,e,l)}function p(e){s.call(this,e,p)}a.inherits(c,s),a.inherits(u,s),a.inherits(h,s),a.inherits(l,s),a.inherits(p,s),e.exports={parseRequest:function(e,t){r.object(e,"request"),r.object(e.headers,"request.headers"),void 0===(t=void 0===t?{}:t).headers&&(t.headers=[e.headers["x-date"]?"x-date":"date"]),r.object(t,"options"),r.arrayOfString(t.headers,"options.headers"),r.optionalFinite(t.clockSkew,"options.clockSkew");var i=t.authorizationHeaderName||"authorization";if(!e.headers[i])throw new l("no "+i+" header present in the request");t.clockSkew=t.clockSkew||300;var a=0,s=0,d=0,f="",m="",g={scheme:"",params:{},signingString:""},v=e.headers[i];for(a=0;a<v.length;a++){var y=v.charAt(a);switch(Number(s)){case 0:" "!==y?g.scheme+=y:s=1;break;case 1:switch(Number(d)){case 0:var b=y.charCodeAt(0);if(65<=b&&b<=90||97<=b&&b<=122)f+=y;else{if("="!==y)throw new u("bad param format");if(0===f.length)throw new u("bad param format");d=1}break;case 1:if('"'!==y)throw new u("bad param format");m="",d=2;break;case 2:'"'===y?(g.params[f]=m,d=3):m+=y;break;case 3:if(","!==y)throw new u("bad param format");f="",d=0;break;default:throw new Error("Invalid substate")}break;default:throw new Error("Invalid substate")}}if(g.params.headers&&""!==g.params.headers?g.params.headers=g.params.headers.split(" "):e.headers["x-date"]?g.params.headers=["x-date"]:g.params.headers=["date"],!g.scheme||"Signature"!==g.scheme)throw new u('scheme was not "Signature"');if(!g.params.keyId)throw new u("keyId was not specified");if(!g.params.algorithm)throw new u("algorithm was not specified");if(!g.params.signature)throw new u("signature was not specified");g.params.algorithm=g.params.algorithm.toLowerCase();try{o(g.params.algorithm)}catch(e){throw e instanceof n?new h(g.params.algorithm+" is not supported"):e}for(a=0;a<g.params.headers.length;a++){var w=g.params.headers[a].toLowerCase();if("request-line"===(g.params.headers[a]=w)){if(t.strict)throw new p("request-line is not a valid header with strict parsing enabled.");g.signingString+=e.method+" "+e.url+" HTTP/"+e.httpVersion}else if("(request-target)"===w)g.signingString+="(request-target): "+e.method.toLowerCase()+" "+e.url;else{var x=e.headers[w];if(void 0===x)throw new l(w+" was not in the request");g.signingString+=w+": "+x}a+1<g.params.headers.length&&(g.signingString+="\n")}if(e.headers.date||e.headers["x-date"]){i=e.headers["x-date"]?new Date(e.headers["x-date"]):new Date(e.headers.date);var k=new Date;if((k=Math.abs(k.getTime()-i.getTime()))>1e3*t.clockSkew)throw new c("clock skew of "+k/1e3+"s was greater than "+t.clockSkew+"s")}if(t.headers.forEach((function(e){if(g.params.headers.indexOf(e.toLowerCase())<0)throw new l(e+" was not a signed header")})),t.algorithms&&-1===t.algorithms.indexOf(g.params.algorithm))throw new h(g.params.algorithm+" is not a supported algorithm");return g.algorithm=g.params.algorithm.toUpperCase(),g.keyId=g.params.keyId,g}}},function(e,t,i){var r,a,s=i(176),n=i(177),o=i(466);i=i(467);for(r in e.exports={Reader:o,Writer:i},n)n.hasOwnProperty(r)&&(e.exports[r]=n[r]);for(a in s)s.hasOwnProperty(a)&&(e.exports[a]=s[a])},function(e,t,i){var r=i(0),a=i(12).Buffer,s=i(177),n=i(176).newInvalidAsn1Error;function o(e){if(!e||!a.isBuffer(e))throw new TypeError("data must be a node Buffer");this._buf=e,this._size=e.length,this._len=0,this._offset=0}Object.defineProperty(o.prototype,"length",{enumerable:!0,get:function(){return this._len}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){return this._offset}}),Object.defineProperty(o.prototype,"remain",{get:function(){return this._size-this._offset}}),Object.defineProperty(o.prototype,"buffer",{get:function(){return this._buf.slice(this._offset)}}),o.prototype.readByte=function(e){var t;return this._size-this._offset<1?null:(t=255&this._buf[this._offset],e||(this._offset+=1),t)},o.prototype.peek=function(){return this.readByte(!0)},o.prototype.readLength=function(e){if((e=void 0===e?this._offset:e)>=this._size)return null;var t=255&this._buf[e++];if(null===t)return null;if(128==(128&t)){if(0==(t&=127))throw n("Indefinite length not supported");if(4<t)throw n("encoding too long");if(this._size-e<t)return null;for(var i=this._len=0;i<t;i++)this._len=(this._len<<8)+(255&this._buf[e++])}else this._len=t;return e},o.prototype.readSequence=function(e){var t=this.peek();if(null===t)return null;if(void 0!==e&&e!==t)throw n("Expected 0x"+e.toString(16)+": got 0x"+t.toString(16));return null===(e=this.readLength(this._offset+1))?null:(this._offset=e,t)},o.prototype.readInt=function(){return this._readTag(s.Integer)},o.prototype.readBoolean=function(){return 0!==this._readTag(s.Boolean)},o.prototype.readEnumeration=function(){return this._readTag(s.Enumeration)},o.prototype.readString=function(e,t){e=e||s.OctetString;var i=this.peek();if(null===i)return null;if(i!==e)throw n("Expected 0x"+e.toString(16)+": got 0x"+i.toString(16));return null===(e=this.readLength(this._offset+1))||this.length>this._size-e?null:(this._offset=e,0===this.length?t?a.alloc(0):"":(i=this._buf.slice(this._offset,this._offset+this.length),this._offset+=this.length,t?i:i.toString("utf8")))},o.prototype.readOID=function(e){e=e||s.OID;var t=this.readString(e,!0);if(null===t)return null;for(var i=[],r=0,a=0;a<t.length;a++){var n=255&t[a];r=(r<<7)+(127&n);0==(128&n)&&(i.push(r),r=0)}return r=i.shift(),i.unshift(r%40),i.unshift(r/40>>0),i.join(".")},o.prototype._readTag=function(e){if(r.ok(void 0!==e),null===(t=this.peek()))return null;if(t!==e)throw n("Expected 0x"+e.toString(16)+": got 0x"+t.toString(16));if(null===(e=this.readLength(this._offset+1)))return null;if(4<this.length)throw n("Integer too long: "+this.length);if(this.length>this._size-e)return null;this._offset=e;for(var t=this._buf[this._offset],i=0,a=0;a<this.length;a++)i=(i<<=8)|255&this._buf[this._offset++];return 128==(128&t)&&4!==a&&(i-=1<<8*a),i>>0},e.exports=o},function(e,t,i){var r=i(0),a=i(12).Buffer,s=i(177),n=i(176).newInvalidAsn1Error,o={size:1024,growthFactor:8};function c(e){var t,i;t=o,i=e||{},r.ok(t),r.equal(typeof t,"object"),r.ok(i),r.equal(typeof i,"object"),Object.getOwnPropertyNames(t).forEach((function(e){var r;i[e]||(r=Object.getOwnPropertyDescriptor(t,e),Object.defineProperty(i,e,r))})),e=i,this._buf=a.alloc(e.size||1024),this._size=this._buf.length,this._offset=0,this._options=e,this._seq=[]}Object.defineProperty(c.prototype,"buffer",{get:function(){if(this._seq.length)throw n(this._seq.length+" unended sequence(s)");return this._buf.slice(0,this._offset)}}),c.prototype.writeByte=function(e){if("number"!=typeof e)throw new TypeError("argument must be a Number");this._ensure(1),this._buf[this._offset++]=e},c.prototype.writeInt=function(e,t){if("number"!=typeof e)throw new TypeError("argument must be a Number");"number"!=typeof t&&(t=s.Integer);for(var i=4;(0==(4286578688&e)||-8388608==(4286578688&e))&&1<i;)i--,e<<=8;if(4<i)throw n("BER ints cannot be > 0xffffffff");for(this._ensure(2+i),this._buf[this._offset++]=t,this._buf[this._offset++]=i;0<i--;)this._buf[this._offset++]=(4278190080&e)>>>24,e<<=8},c.prototype.writeNull=function(){this.writeByte(s.Null),this.writeByte(0)},c.prototype.writeEnumeration=function(e,t){if("number"!=typeof e)throw new TypeError("argument must be a Number");return"number"!=typeof t&&(t=s.Enumeration),this.writeInt(e,t)},c.prototype.writeBoolean=function(e,t){if("boolean"!=typeof e)throw new TypeError("argument must be a Boolean");"number"!=typeof t&&(t=s.Boolean),this._ensure(3),this._buf[this._offset++]=t,this._buf[this._offset++]=1,this._buf[this._offset++]=e?255:0},c.prototype.writeString=function(e,t){if("string"!=typeof e)throw new TypeError("argument must be a string (was: "+typeof e+")");"number"!=typeof t&&(t=s.OctetString);var i=a.byteLength(e);this.writeByte(t),this.writeLength(i),i&&(this._ensure(i),this._buf.write(e,this._offset),this._offset+=i)},c.prototype.writeBuffer=function(e,t){if("number"!=typeof t)throw new TypeError("tag must be a number");if(!a.isBuffer(e))throw new TypeError("argument must be a buffer");this.writeByte(t),this.writeLength(e.length),this._ensure(e.length),e.copy(this._buf,this._offset,0,e.length),this._offset+=e.length},c.prototype.writeStringArray=function(e){if(!e instanceof Array)throw new TypeError("argument must be an Array[String]");var t=this;e.forEach((function(e){t.writeString(e)}))},c.prototype.writeOID=function(e,t){if("string"!=typeof e)throw new TypeError("argument must be a string");if("number"!=typeof t&&(t=s.OID),!/^([0-9]+\.){3,}[0-9]+$/.test(e))throw new Error("argument is not a valid OID string");e=e.split(".");var i=[],r=(i.push(40*parseInt(e[0],10)+parseInt(e[1],10)),e.slice(2).forEach((function(e){var t;t=i,(e=parseInt(e,10))<128?t.push(e):(e<16384?t.push(e>>>7|128):(e<2097152?t.push(e>>>14|128):(e<268435456?t.push(e>>>21|128):(t.push(255&(e>>>28|128)),t.push(255&(e>>>21|128))),t.push(255&(e>>>14|128))),t.push(255&(e>>>7|128))),t.push(127&e))})),this);this._ensure(2+i.length),this.writeByte(t),this.writeLength(i.length),i.forEach((function(e){r.writeByte(e)}))},c.prototype.writeLength=function(e){if("number"!=typeof e)throw new TypeError("argument must be a Number");if(this._ensure(4),!(e<=127))if(e<=255)this._buf[this._offset++]=129;else{if(e<=65535)this._buf[this._offset++]=130;else{if(!(e<=16777215))throw n("Length too long (> 4 bytes)");this._buf[this._offset++]=131,this._buf[this._offset++]=e>>16}this._buf[this._offset++]=e>>8}this._buf[this._offset++]=e},c.prototype.startSequence=function(e){"number"!=typeof e&&(e=s.Sequence|s.Constructor),this.writeByte(e),this._seq.push(this._offset),this._ensure(3),this._offset+=3},c.prototype.endSequence=function(){var e=this._seq.pop(),t=e+3,i=this._offset-t;if(i<=127)this._shift(t,i,-2),this._buf[e]=i;else if(i<=255)this._shift(t,i,-1),this._buf[e]=129,this._buf[e+1]=i;else if(i<=65535)this._buf[e]=130,this._buf[e+1]=i>>8,this._buf[e+2]=i;else{if(!(i<=16777215))throw n("Sequence too long");this._shift(t,i,1),this._buf[e]=131,this._buf[e+1]=i>>16,this._buf[e+2]=i>>8,this._buf[e+3]=i}},c.prototype._shift=function(e,t,i){r.ok(void 0!==e),r.ok(void 0!==t),r.ok(i),this._buf.copy(this._buf,e+i,e,e+t),this._offset+=i},c.prototype._ensure=function(e){var t;r.ok(e),this._size-this._offset<e&&((t=this._size*this._options.growthFactor)-this._offset<e&&(t+=e),e=a.alloc(t),this._buf.copy(e,0,0,this._offset),this._buf=e,this._size=t)},e.exports=c},function(e,t,i){var r=i(8),a=i(102).BigInteger,s=(i(133).ECPointFp,i(12).Buffer);function n(e,t){return e.length>=t?e:n("0"+e,t)}t.ECCurves=i(469),t.ECKey=function(e,t,i){var o=e(),c=o.getN(),u=Math.floor(c.bitLength()/8);if(t)if(i)e=o.getCurve(),this.P=e.decodePointHex(t.toString("hex"));else{if(t.length!=u)return!1;h=new a(t.toString("hex"),16)}else{i=c.subtract(a.ONE);var h=new a(r.randomBytes(c.bitLength())).mod(i).add(a.ONE);this.P=o.getG().multiply(h)}this.P&&(this.PublicKey=s.from(o.getCurve().encodeCompressedPointHex(this.P),"hex")),h&&(this.PrivateKey=s.from(n(h.toString(16),2*u),"hex"),this.deriveSharedSecret=function(e){return!(!e||!e.P)&&(e=e.P.multiply(h),s.from(n(e.getX().toBigInteger().toString(16),2*u),"hex"))})}},function(e,t,i){var r=i(102).BigInteger,a=i(133).ECCurveFp;function s(e,t,i,r){this.curve=e,this.g=t,this.n=i,this.h=r}function n(e){return new r(e,16)}s.prototype.getCurve=function(){return this.curve},s.prototype.getG=function(){return this.g},s.prototype.getN=function(){return this.n},s.prototype.getH=function(){return this.h},e.exports={secp128r1:function(){var e=n("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF"),t=n("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC"),i=n("E87579C11079F43DD824993C2CEE5ED3"),o=n("FFFFFFFE0000000075A30D1B9038A115"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("04161FF7528B899B2D0C28607CA52C5B86CF5AC8395BAFEB13C02DA292DDED7A83"),new s(e,t,o,c)},secp160k1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73"),t=r.ZERO,i=n("7"),o=n("0100000000000000000001B8FA16DFAB9ACA16B6B3"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("043B4C382CE37AA192A4019E763036F4F5DD4D7EBB938CF935318FDCED6BC28286531733C3F03C4FEE"),new s(e,t,o,c)},secp160r1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF"),t=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC"),i=n("1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45"),o=n("0100000000000000000001F4C8F927AED3CA752257"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("044A96B5688EF573284664698968C38BB913CBFC8223A628553168947D59DCC912042351377AC5FB32"),new s(e,t,o,c)},secp192k1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37"),t=r.ZERO,i=n("3"),o=n("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("04DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D"),new s(e,t,o,c)},secp192r1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF"),t=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC"),i=n("64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1"),o=n("FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("04188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF101207192B95FFC8DA78631011ED6B24CDD573F977A11E794811"),new s(e,t,o,c)},secp224r1:function(){var e=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001"),t=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE"),i=n("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4"),o=n("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("04B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34"),new s(e,t,o,c)},secp256r1:function(){var e=n("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"),t=n("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC"),i=n("5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B"),o=n("FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551"),c=r.ONE;return t=(e=new a(e,t,i)).decodePointHex("046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5"),new s(e,t,o,c)}}},function(e,t,i){e.exports={read:function(e,t){if(n.isBuffer(e)&&(e=e.toString("ascii")),(e=e.trim().split(/[ \t\n]+/g)).length<2||3<e.length)throw new Error("Not a valid SSH certificate line");var i=e[0];e=e[1];return g(e=n.from(e,"base64"),i)},verify:function(e,t){return!1},sign:function(e,t){void 0===e.signatures.openssh&&(e.signatures.openssh={});try{var i=b(e,!0)}catch(t){return delete e.signatures.openssh,!1}e=e.signatures.openssh;var r=void 0;return"rsa"!==t.type&&"dsa"!==t.type||(r="sha1"),(t=t.createSign(r)).write(i),e.signature=t.sign(),!0},signAsync:function(e,t,i){void 0===e.signatures.openssh&&(e.signatures.openssh={});try{var r=b(e,!0)}catch(t){return delete e.signatures.openssh,void i(t)}var a=e.signatures.openssh;t(r,(function(e,t){if(e)i(e);else{try{t.toBuffer("ssh")}catch(e){return void i(e)}a.signature=t,i()}}))},write:function(e,t){void 0===t&&(t={});var i=b(e);e=w(e.subjectKey)+" "+i.toString("base64");return t.comment&&(e=e+" "+t.comment),e},fromBuffer:g,toBuffer:b};var r=i(10),a=i(91),s=i(8),n=i(12).Buffer,o=i(30),c=i(23),u=(i(24),i(106)),h=i(66),l=i(57),p=i(25),d=i(105),f={user:1,host:2},m=(Object.keys(f).forEach((function(e){f[f[e]]=e})),/^ecdsa-sha2-([^@-]+)-cert-v01@openssh.com$/);function g(e,t,i){var s=new a({buffer:e});e=s.readString();if(void 0!==t&&e!==t)throw new Error("SSH certificate algorithm mismatch");void 0===t&&(t=e),(e={signatures:{}}).signatures.openssh={},e.signatures.openssh.nonce=s.readBuffer();for(var n={},g=n.parts=[],y=(n.type=function(e){if("ssh-rsa-cert-v01@openssh.com"===e)return"rsa";if("ssh-dss-cert-v01@openssh.com"===e)return"dsa";if(e.match(m))return"ecdsa";if("ssh-ed25519-cert-v01@openssh.com"===e)return"ed25519";throw new Error("Unsupported cert type "+e)}(t),o.info[n.type].parts.length);g.length<y;)g.push(s.readPart());r.ok(1<=g.length,"key must have at least one part");var b=o.info[n.type];"ecdsa"===n.type&&(t=m.exec(t),r.ok(null!==t),r.strictEqual(t[1],g[0].data.toString()));for(var w,x=0;x<b.parts.length;++x)g[x].name=b.parts[x],"curve"!==g[x].name&&!1!==b.normalize&&((w=g[x]).data=p.mpNormalize(w.data));e.subjectKey=new c(n),e.serial=s.readInt64();for(var k=f[s.readInt()],S=(r.string(k,"valid cert type"),e.signatures.openssh.keyId=s.readString(),[]),_=(t=s.readBuffer(),new a({buffer:t}));!_.atEnd();)S.push(_.readString());0===S.length&&(S=["*"]),e.subjects=S.map((function(e){if("user"===k)return u.forUser(e);if("host"===k)return u.forHost(e);throw new Error("Unknown identity type "+k)})),e.validFrom=v(s.readInt64()),e.validUntil=v(s.readInt64());for(var E,j=[],A=new a({buffer:s.readBuffer()});!A.atEnd();)(E={critical:!0}).name=A.readString(),E.data=A.readBuffer(),j.push(E);for(A=new a({buffer:s.readBuffer()});!A.atEnd();)(E={critical:!1}).name=A.readString(),E.data=A.readBuffer(),j.push(E);return e.signatures.openssh.exts=j,s.readBuffer(),n=s.readBuffer(),e.issuerKey=h.read(n),e.issuer=u.forHost("**"),t=s.readBuffer(),e.signatures.openssh.signature=l.parse(t,e.issuerKey.type,"ssh"),void 0!==i&&(i.remainder=s.remainder(),i.consumed=s._offset),new d(e)}function v(e){var t=4294967296*e.readUInt32BE(0),i=(t+=e.readUInt32BE(4),new Date);return i.setTime(1e3*t),i.sourceInt64=e,i}function y(e){var t,i;return void 0!==e.sourceInt64?e.sourceInt64:(e=Math.round(e.getTime()/1e3),t=Math.floor(e/4294967296),e=Math.floor(e%4294967296),(i=n.alloc(8)).writeUInt32BE(t,0),i.writeUInt32BE(e,4),i)}function b(e,t){r.object(e.signatures.openssh,"signature for openssh format");var i=e.signatures.openssh,c=(void 0===i.nonce&&(i.nonce=s.randomBytes(16)),new a({})),u=(c.writeString(w(e.subjectKey)),c.writeBuffer(i.nonce),e.subjectKey),l=(o.info[u.type].parts.forEach((function(e){c.writePart(u.part[e])})),c.writeInt64(e.serial),e.subjects[0].type),p=(r.notStrictEqual(l,"unknown"),e.subjects.forEach((function(e){r.strictEqual(e.type,l)})),l=f[l],c.writeInt(l),void 0===i.keyId&&(i.keyId=e.subjects[0].type+"_"+(e.subjects[0].uid||e.subjects[0].hostname)),c.writeString(i.keyId),new a({})),d=(e.subjects.forEach((function(e){l===f.host?p.writeString(e.hostname):l===f.user&&p.writeString(e.uid)})),c.writeBuffer(p.toBuffer()),c.writeInt64(y(e.validFrom)),c.writeInt64(y(e.validUntil)),i.exts),m=(void 0===d&&(d=[]),new a({}));return d.forEach((function(e){!0===e.critical&&(m.writeString(e.name),m.writeBuffer(e.data))})),c.writeBuffer(m.toBuffer()),m=new a({}),d.forEach((function(e){!0!==e.critical&&(m.writeString(e.name),m.writeBuffer(e.data))})),c.writeBuffer(m.toBuffer()),c.writeBuffer(n.alloc(0)),p=h.write(e.issuerKey),c.writeBuffer(p),t||c.writeBuffer(i.signature.toBuffer("ssh")),c.toBuffer()}function w(e){if("rsa"===e.type)return"ssh-rsa-cert-v01@openssh.com";if("dsa"===e.type)return"ssh-dss-cert-v01@openssh.com";if("ecdsa"===e.type)return"ecdsa-sha2-"+e.curve+"-cert-v01@openssh.com";if("ed25519"===e.type)return"ssh-ed25519-cert-v01@openssh.com";throw new Error("Unsupported key type "+e.type)}},function(e,t,i){var r=i(278),a=(e.exports={read:function(e,t){"string"!=typeof e&&(a.buffer(e,"buf"),e=e.toString("ascii"));for(var i,n,o=e.trim().split(/[\r\n]+/g),c=-1;!i&&c<o.length;)i=o[++c].match(/[-]+[ ]*BEGIN CERTIFICATE[ ]*[-]+/);a.ok(i,"invalid PEM header");for(var u=o.length;!n&&0<u;)n=o[--u].match(/[-]+[ ]*END CERTIFICATE[ ]*[-]+/);for(a.ok(n,"invalid PEM footer"),o=o.slice(c,u+1);i=(o=o.slice(1))[0].match(/^([A-Za-z0-9-]+): (.+)$/);)i[1].toLowerCase(),i[2];return o=o.slice(0,-1).join(""),e=s.from(o,"base64"),r.read(e,t)},verify:r.verify,sign:r.sign,write:function(e,t){e=r.write(e,t),t="CERTIFICATE";var i=e.toString("base64"),a=(e=i.length+i.length/64+18+16+2*t.length+10,s.alloc(e)),n=0;n+=a.write("-----BEGIN "+t+"-----\n",n);for(var o=0;o<i.length;){var c=o+64;c>i.length&&(c=i.length),n+=a.write(i.slice(o,c),n),a[n++]=10,o=c}return n+=a.write("-----END "+t+"-----\n",n),a.slice(0,n)}},i(10)),s=(i(58),i(12).Buffer);i(30),i(25),i(23),i(24),i(65),i(106),i(57),i(105)},function(e,t,i){var r=i(10),a=i(8),s=(i(62),i(9)),n=i(175),o=i(473),c=i(132),u=i(9).format,h=c.HASH_ALGOS,l=c.PK_ALGOS,p=c.InvalidAlgorithmError,d=c.HttpSignatureError,f=c.validateAlgorithm,m='Signature keyId="%s",algorithm="%s",headers="%s",signature="%s"';function g(e){d.call(this,e,g)}function v(e){d.call(this,e,v)}function y(e){r.object(e,"options");var t=[];if(void 0!==e.algorithm&&(r.string(e.algorithm,"options.algorithm"),t=f(e.algorithm)),this.rs_alg=t,void 0!==e.sign)r.func(e.sign,"options.sign"),this.rs_signFunc=e.sign;else if("hmac"===t[0]&&void 0!==e.key){if(r.string(e.keyId,"options.keyId"),this.rs_keyId=e.keyId,"string"!=typeof e.key&&!Buffer.isBuffer(e.key))throw new TypeError("options.key for HMAC must be a string or Buffer");this.rs_signer=a.createHmac(t[1].toUpperCase(),e.key),this.rs_signer.sign=function(){var e=this.digest("base64");return{hashAlgorithm:t[1],toString:function(){return e}}}}else{if(void 0===e.key)throw new TypeError("options.sign (func) or options.key is required");var i=e.key;if("string"!=typeof i&&!Buffer.isBuffer(i)||(i=n.parsePrivateKey(i)),r.ok(n.PrivateKey.isPrivateKey(i,[1,2]),"options.key must be a sshpk.PrivateKey"),this.rs_key=i,r.string(e.keyId,"options.keyId"),this.rs_keyId=e.keyId,!l[i.type])throw new p(i.type.toUpperCase()+" type keys are not supported");if(void 0!==t[0]&&i.type!==t[0])throw new p("options.key must be a "+t[0].toUpperCase()+" key, was given a "+i.type.toUpperCase()+" key instead");this.rs_signer=i.createSign(t[1])}this.rs_headers=[],this.rs_lines=[]}s.inherits(g,d),s.inherits(v,d),y.prototype.writeHeader=function(e,t){return r.string(e,"header"),e=e.toLowerCase(),r.string(t,"value"),this.rs_headers.push(e),this.rs_signFunc?this.rs_lines.push(e+": "+t):(e=e+": "+t,0<this.rs_headers.length&&(e="\n"+e),this.rs_signer.update(e)),t},y.prototype.writeDateHeader=function(){return this.writeHeader("date",o.rfc1123(new Date))},y.prototype.writeTarget=function(e,t){r.string(e,"method"),r.string(t,"path"),e=e.toLowerCase(),this.writeHeader("(request-target)",e+" "+t)},y.prototype.sign=function(e){if(r.func(e,"callback"),this.rs_headers.length<1)throw new Error("At least one header must be signed");if(this.rs_signFunc){var t=this.rs_lines.join("\n"),i=this;this.rs_signFunc(t,(function(t,a){if(t)e(t);else{try{r.object(a,"signature"),r.string(a.keyId,"signature.keyId"),r.string(a.algorithm,"signature.algorithm"),r.string(a.signature,"signature.signature"),s=f(a.algorithm),n=u(m,a.keyId,a.algorithm,i.rs_headers.join(" "),a.signature)}catch(t){return void e(t)}e(null,n)}}))}else{try{var a=this.rs_signer.sign()}catch(t){return void e(t)}var s=(this.rs_alg[0]||this.rs_key.type)+"-"+a.hashAlgorithm,n=(t=a.toString(),u(m,this.rs_keyId,s,this.rs_headers.join(" "),t));e(null,n)}},e.exports={isSigner:function(e){return"object"==typeof e&&e instanceof y},createSigner:function(e){return new y(e)},signRequest:function(e,t){r.object(e,"request"),r.object(t,"options"),r.optionalString(t.algorithm,"options.algorithm"),r.string(t.keyId,"options.keyId"),r.optionalArrayOfString(t.headers,"options.headers"),r.optionalString(t.httpVersion,"options.httpVersion"),e.getHeader("Date")||e.setHeader("Date",o.rfc1123(new Date)),t.headers||(t.headers=["date"]),t.httpVersion||(t.httpVersion="1.1");for(var i=[],s=(t.algorithm&&(t.algorithm=t.algorithm.toLowerCase(),i=f(t.algorithm)),""),c=0;c<t.headers.length;c++){if("string"!=typeof t.headers[c])throw new TypeError("options.headers must be an array of Strings");var d=t.headers[c].toLowerCase();if("request-line"===d){if(t.strict)throw new v("request-line is not a valid header with strict parsing enabled.");s+=e.method+" "+e.path+" HTTP/"+t.httpVersion}else if("(request-target)"===d)s+="(request-target): "+e.method.toLowerCase()+" "+e.path;else{var y=e.getHeader(d);if(void 0===y||""===y)throw new g(d+" was not in the request");s+=d+": "+y}c+1<t.headers.length&&(s+="\n")}if(e.hasOwnProperty("_stringToSign")&&(e._stringToSign=s),"hmac"===i[0]){if("string"!=typeof t.key&&!Buffer.isBuffer(t.key))throw new TypeError("options.key must be a string or Buffer");var b=a.createHmac(i[1].toUpperCase(),t.key);b.update(s),b=b.digest("base64")}else{var w=t.key;if("string"!=typeof w&&!Buffer.isBuffer(w)||(w=n.parsePrivateKey(t.key)),r.ok(n.PrivateKey.isPrivateKey(w,[1,2]),"options.key must be a sshpk.PrivateKey"),!l[w.type])throw new p(w.type.toUpperCase()+" type keys are not supported");if(void 0!==i[0]&&w.type!==i[0])throw new p("options.key must be a "+i[0].toUpperCase()+" key, was given a "+w.type.toUpperCase()+" key instead");if((i=w.createSign(i[1])).update(s),i=i.sign(),!h[i.hashAlgorithm])throw new p(i.hashAlgorithm.toUpperCase()+" is not a supported hash algorithm");t.algorithm=w.type+"-"+i.hashAlgorithm,b=i.toString(),r.notStrictEqual(b,"","empty signature produced")}return w=t.authorizationHeaderName||"Authorization",e.setHeader(w,u(m,t.keyId,t.algorithm,t.headers.join(" "),b)),!0}}},function(e,t,i){var r=i(10),a=(i(9),i(279)),s=i(474),n=i(475);function o(e,t){return r.equal(typeof t,"string"),Object.prototype.hasOwnProperty.call(e,t)}t.deepCopy=function e(t){var i,r,a="__deepCopy";if(t&&t[a])throw new Error("attempted deep copy of cyclic object");if(t&&t.constructor==Object){for(r in i={},t[a]=!0,t)r!=a&&(i[r]=e(t[r]));return delete t[a],i}if(t&&t.constructor==Array){for(i=[],t[a]=!0,r=0;r<t.length;r++)i.push(e(t[r]));return delete t[a],i}return t},t.deepEqual=function e(t,i){if(typeof t!=typeof i)return!1;if(null===t||null===i||"object"!=typeof t)return t===i;if(t.constructor!=i.constructor)return!1;for(var r in t){if(!i.hasOwnProperty(r))return!1;if(!e(t[r],i[r]))return!1}for(r in i)if(!t.hasOwnProperty(r))return!1;return!0},t.isEmpty=function(e){for(var t in e)return!1;return!0},t.hasKey=o,t.forEachKey=function(e,t){for(var i in e)o(e,i)&&t(i,e[i])},t.pluck=function(e,t){return r.equal(typeof t,"string"),function e(t,i){if(null!==t&&"object"==typeof t){if(t.hasOwnProperty(i))return t[i];var r=i.indexOf(".");if(-1!=r){var a=i.substr(0,r);if(t.hasOwnProperty(a))return e(t[a],i.substr(r+1))}}}(e,t)},t.flattenObject=function e(t,i){if(0===i)return[t];r.ok(null!==t),r.equal(typeof t,"object"),r.equal(typeof i,"number"),r.ok(0<=i);var a=[];for(var s in t)e(t[s],i-1).forEach((function(e){a.push([s].concat(e))}));return a},t.flattenIter=function(e,t,i){!function e(t,i,a,s){var n;if(0===i)return(n=a.slice(0)).push(t),void s(n);for(var o in r.ok(null!==t),r.equal(typeof t,"object"),r.equal(typeof i,"number"),r.ok(0<=i),t)(n=a.slice(0)).push(o),e(t[o],i-1,n,s)}(e,t,[],i)},t.validateJsonObject=C,t.validateJsonObjectJS=C,t.randElt=function(e){return r.ok(Array.isArray(e)&&0<e.length,"randElt argument must be a non-empty array"),e[Math.floor(Math.random()*e.length)]},t.extraProperties=function(e,t){r.ok("object"==typeof e&&null!==e,"obj argument must be a non-null object"),r.ok(Array.isArray(t),"allowed argument must be an array of strings");for(var i=0;i<t.length;i++)r.ok("string"==typeof t[i],"allowed argument must be an array of strings");return Object.keys(e).filter((function(e){return-1===t.indexOf(e)}))},t.mergeObjects=N,t.startsWith=function(e,t){return e.substr(0,t.length)==t},t.endsWith=function(e,t){return e.substr(e.length-t.length,t.length)==t},t.parseInteger=function(e,t){r.string(e,"str"),r.optionalObject(t,"options");var i,a=!1,s=p;t&&(a=o(t,"base"),s=N(s,t),r.number(s.base,"options.base"),r.ok(2<=s.base,"options.base >= 2"),r.ok(s.base<=36,"options.base <= 36"),r.bool(s.allowSign,"options.allowSign"),r.bool(s.allowPrefix,"options.allowPrefix"),r.bool(s.allowTrailing,"options.allowTrailing"),r.bool(s.allowImprecise,"options.allowImprecise"),r.bool(s.trimWhitespace,"options.trimWhitespace"),r.bool(s.leadingZeroIsOctal,"options.leadingZeroIsOctal"),s.leadingZeroIsOctal)&&r.ok(!a,'"base" and "leadingZeroIsOctal" are mutually exclusive');t=-1;var n=s.base,c=1,u=0,C=0,P=e.length;if(s.trimWhitespace)for(;C<P&&O(e.charCodeAt(C));)++C;for(s.allowSign&&("-"===e[C]?(C+=1,c=-1):"+"===e[C]&&(C+=1)),"0"===e[C]&&(!s.allowPrefix||-1===(t=function(e){return e===k||e===g?2:e===S||e===v?8:e===_||e===y?10:e===E||e===b?16:-1}(e.charCodeAt(C+1)))||a&&t!==n||(n=t,C+=2),-1===t)&&s.leadingZeroIsOctal&&(n=8),a=C;C<P&&-1!==(i=function(e){return d<=e&&e<=f?e-A:m<=e&&e<=w?e-R:x<=e&&e<=j?e-I:-1}(e.charCodeAt(C)))&&i<n;++C)u=u*n+i;if(a===C)return new Error("invalid number: "+JSON.stringify(e));if(s.trimWhitespace)for(;C<P&&O(e.charCodeAt(C));)++C;return C<P&&!s.allowTrailing?new Error("trailing characters after number: "+JSON.stringify(e.slice(C))):0===u?0:(t=u*c,s.allowImprecise||!(h<u||t<l)?t:new Error("number is outside of the supported range: "+JSON.stringify(e.slice(a,C))))},t.iso8601=function(e){return"number"==typeof e&&(e=new Date(e)),r.ok(e.constructor===Date),a.sprintf("%4d-%02d-%02dT%02d:%02d:%02d.%03dZ",e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds())},t.rfc1123=function(e){return a.sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",u[e.getUTCDay()],e.getUTCDate(),c[e.getUTCMonth()],e.getUTCFullYear(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds())},t.parseDateTime=function(e){var t=+e;return isNaN(t)?new Date(e):new Date(t)},t.hrtimediff=T,t.hrtimeDiff=T,t.hrtimeAccum=B,t.hrtimeAdd=function(e,t){return P(e),B([e[0],e[1]],t)},t.hrtimeNanosec=function(e){return P(e),Math.floor(1e9*e[0]+e[1])},t.hrtimeMicrosec=function(e){return P(e),Math.floor(1e6*e[0]+e[1]/1e3)},t.hrtimeMillisec=function(e){return P(e),Math.floor(1e3*e[0]+e[1]/1e6)};var c=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],h=Number.MAX_SAFE_INTEGER||9007199254740991,l=Number.MIN_SAFE_INTEGER||-9007199254740991,p={base:10,allowSign:!0,allowPrefix:!1,allowTrailing:!1,allowImprecise:!1,trimWhitespace:!1,leadingZeroIsOctal:!1},d=48,f=57,m=65,g=66,v=79,y=84,b=88,w=90,x=97,k=98,S=111,_=116,E=120,j=122,A=48,R=55,I=87;function O(e){return 32===e||9<=e&&e<=13||160===e||5760===e||6158===e||8192<=e&&e<=8202||8232===e||8233===e||8239===e||8287===e||12288===e||65279===e}function C(e,t){var i,r,a;return 0===(t=n.validate(t,e)).errors.length?null:(t=(e=t.errors[0]).property,-1!=(r=(i=e.message.toLowerCase()).indexOf("the property "))&&-1!=(a=i.indexOf(" is not defined in the schema and the schema does not allow additional properties"))&&(r+="the property ".length,t=""===t?i.substr(r,a-r):t+"."+i.substr(r,a-r),i="unsupported property"),(a=new s.VError('property "%s": %s',t,i)).jsv_details=e,a)}function P(e){r.ok(0<=e[0]&&0<=e[1],"negative numbers not allowed in hrtimes"),r.ok(e[1]<1e9,"nanoseconds column overflow")}function T(e,t){P(e),P(t),r.ok(e[0]>t[0]||e[0]==t[0]&&e[1]>=t[1],"negative differences not allowed");var i=[e[0]-t[0],0];return e[1]>=t[1]?i[1]=e[1]-t[1]:(i[0]--,i[1]=1e9-(t[1]-e[1])),i}function B(e,t){return P(e),P(t),e[1]+=t[1],1e9<=e[1]&&(e[0]++,e[1]-=1e9),e[0]+=t[0],e}function N(e,t,i){var r,a={};if(i)for(r in i)a[r]=i[r];if(e)for(r in e)a[r]=e[r];if(t)for(r in t)a[r]=t[r];return a}},function(e,t,i){var r=i(10),a=i(9),s=i(279),n=i(86).isError,o=s.sprintf;function c(e){var t,i,a,s;if(r.object(e,"args"),r.bool(e.strict,"args.strict"),r.array(e.argv,"args.argv"),0===(t=e.argv).length)i={},a=[];else if(n(t[0]))i={cause:t[0]},a=t.slice(1);else if("object"==typeof t[0]){for(s in i={},t[0])i[s]=t[0][s];a=t.slice(1)}else r.string(t[0],"first argument to VError, SError, or WError constructor must be a string, object, or Error"),i={},a=t;return r.object(i),{options:i,shortmessage:0===(a=i.strict||e.strict?a:a.map((function(e){return null===e?"null":void 0===e?"undefined":e}))).length?"":o.apply(null,a)}}function u(){var e,t,i,a=Array.prototype.slice.call(arguments,0);if(!(this instanceof u))return t=Object.create(u.prototype),u.apply(t,arguments),t;if((e=c({argv:a,strict:!1})).options.name&&(r.string(e.options.name,'error\'s "name" must be a string'),this.name=e.options.name),this.jse_shortmsg=e.shortmessage,t=e.shortmessage,(a=e.options.cause)&&(r.ok(n(a),"cause is not an Error"),this.jse_cause=a,e.options.skipCauseMessage||(t+=": "+a.message)),this.jse_info={},e.options.info)for(i in e.options.info)this.jse_info[i]=e.options.info[i];return this.message=t,Error.call(this,t),Error.captureStackTrace&&(a=e.options.constructorOpt||this.constructor,Error.captureStackTrace(this,a)),this}function h(){var e,t=Array.prototype.slice.call(arguments,0);return this instanceof h?(e=(t=c({argv:t,strict:!0})).options,u.call(this,e,"%s",t.shortmessage),this):(e=Object.create(h.prototype),h.apply(e,arguments),e)}function l(e){r.array(e,"list of errors"),r.ok(0<e.length,"must be at least one error"),this.ase_errors=e,u.call(this,{cause:e[0]},"first of %d error%s",e.length,1==e.length?"":"s")}function p(){var e,t,i=Array.prototype.slice.call(arguments,0);return this instanceof p?((t=(e=c({argv:i,strict:!1})).options).skipCauseMessage=!0,u.call(this,t,"%s",e.shortmessage),this):(t=Object.create(p.prototype),p.apply(t,i),t)}((e.exports=u).VError=u).SError=h,u.WError=p,u.MultiError=l,a.inherits(u,Error),u.prototype.name="VError",u.prototype.toString=function(){var e=this.hasOwnProperty("name")&&this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(e+=": "+this.message),e},u.prototype.cause=function(){var e=u.cause(this);return null===e?void 0:e},u.cause=function(e){return r.ok(n(e),"err must be an Error"),n(e.jse_cause)?e.jse_cause:null},u.info=function(e){var t,i,a;if(r.ok(n(e),"err must be an Error"),t=null!==(i=u.cause(e))?u.info(i):{},"object"==typeof e.jse_info&&null!==e.jse_info)for(a in e.jse_info)t[a]=e.jse_info[a];return t},u.findCauseByName=function(e,t){var i;for(r.ok(n(e),"err must be an Error"),r.string(t,"name"),r.ok(0<t.length,"name cannot be empty"),i=e;null!==i;i=u.cause(i))if(r.ok(n(i)),i.name==t)return i;return null},u.hasCauseWithName=function(e,t){return null!==u.findCauseByName(e,t)},u.fullStack=function(e){r.ok(n(e),"err must be an Error");var t=u.cause(e);return t?e.stack+"\ncaused by: "+u.fullStack(t):e.stack},u.errorFromList=function(e){return r.arrayOfObject(e,"errors"),0===e.length?null:(e.forEach((function(e){r.ok(n(e))})),1==e.length?e[0]:new l(e))},u.errorForEach=function(e,t){r.ok(n(e),"err must be an Error"),r.func(t,"func"),e instanceof l?e.errors().forEach((function(e){t(e)})):t(e)},a.inherits(h,u),a.inherits(l,u),l.prototype.name="MultiError",l.prototype.errors=function(){return this.ase_errors.slice(0)},a.inherits(p,u),p.prototype.name="WError",p.prototype.toString=function(){var e=this.hasOwnProperty("name")&&this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(e+=": "+this.message),this.jse_cause&&this.jse_cause.message&&(e+="; caused by "+this.jse_cause.toString()),e},p.prototype.cause=function(e){return n(e)&&(this.jse_cause=e),this.jse_cause}},function(e,t,i){void 0!==(t=function(){return(t=e).Integer={type:"integer"},i={String:String,Boolean:Boolean,Number:Number,Object:Object,Array:Array,Date:Date},t.validate=e,t.checkPropertyChange=function(t,i,r){return e(t,i,{changing:r||"property"})},e=t._validate=function(e,t,r){var a=(r=r||{}).changing;function s(e){return e.type||i[e.name]==e&&e.name.toLowerCase()}var n=[];function o(e,t,i,c){function u(e){n.push({property:i,message:e})}if(i+=i?"number"==typeof c?"["+c+"]":void 0===c?"":"."+c:c,!("object"!=typeof t||t instanceof Array)||!i&&"function"==typeof t||t&&s(t)){if(a&&t.readonly&&u("is a readonly field, it can not be changed"),t.extends&&o(e,t.extends,i,c),void 0===e)t.required&&u("is missing and it is required");else if(n=n.concat(g(s(t),e)),t.disallow&&!g(t.disallow,e).length&&u(" disallowed value was matched"),null!==e){if(e instanceof Array){if(t.items){var h=t.items instanceof Array,l=t.items;for(c=0,f=e.length;c<f;c+=1)h&&(l=t.items[c]),r.coerce&&(e[c]=r.coerce(e[c],l)),n.concat(o(e[c],l,i,c))}t.minItems&&e.length<t.minItems&&u("There must be a minimum of "+t.minItems+" in the array"),t.maxItems&&e.length>t.maxItems&&u("There must be a maximum of "+t.maxItems+" in the array")}else(t.properties||t.additionalProperties)&&n.concat(function(e,t,i,s){if("object"==typeof t)for(var c in("object"!=typeof e||e instanceof Array)&&n.push({property:i,message:"an object is required"}),t){var u,h;!t.hasOwnProperty(c)||"__proto__"==c||"constructor"==c||void 0===(u=e.hasOwnProperty(c)?e[c]:void 0)&&r.existingOnly||(h=t[c],void 0===u&&h.default&&(u=e[c]=h.default),o(u=r.coerce&&c in e?e[c]=r.coerce(u,h):u,h,i,c))}for(c in e){if(e.hasOwnProperty(c)&&("_"!=c.charAt(0)||"_"!=c.charAt(1))&&t&&!t[c]&&!1===s){if(r.filter){delete e[c];continue}n.push({property:i,message:"The property "+c+" is not defined in the schema and the schema does not allow additional properties"})}var l=t&&t[c]&&t[c].requires;!l||l in e||n.push({property:i,message:"the presence of the property "+c+" requires that "+l+" also be present"}),u=e[c],!s||t&&"object"==typeof t&&c in t||o(u=r.coerce?e[c]=r.coerce(u,s):u,s,i,c),!a&&u&&u.$schema&&(n=n.concat(o(u,u.$schema,i,c)))}return n}(e,t.properties,i,t.additionalProperties));if(t.pattern&&"string"==typeof e&&!e.match(t.pattern)&&u("does not match the regex pattern "+t.pattern),t.maxLength&&"string"==typeof e&&e.length>t.maxLength&&u("may only be "+t.maxLength+" characters long"),t.minLength&&"string"==typeof e&&e.length<t.minLength&&u("must be at least "+t.minLength+" characters long"),void 0!==t.minimum&&typeof e==typeof t.minimum&&t.minimum>e&&u("must have a minimum value of "+t.minimum),void 0!==t.maximum&&typeof e==typeof t.maximum&&t.maximum<e&&u("must have a maximum value of "+t.maximum),t.enum){for(var p,d=t.enum,f=d.length,m=0;m<f;m++)if(d[m]===e){p=1;break}p||u("does not have a value in the enumeration "+d.join(", "))}"number"==typeof t.maxDecimal&&e.toString().match(new RegExp("\\.[0-9]{"+(t.maxDecimal+1)+",}"))&&u("may only have "+t.maxDecimal+" digits of decimal places")}}else"function"==typeof t?e instanceof t||u("is not an instance of the class/constructor "+t.name):t&&u("Invalid schema/property definition "+t);return null;function g(e,t){if(e){if(!("string"!=typeof e||"any"==e||("null"==e?null===t:typeof t==e)||t instanceof Array&&"array"==e||t instanceof Date&&"date"==e||"integer"==e&&t%1==0))return[{property:i,message:t+" - "+typeof t+" value found, but a "+e+" is required"}];if(e instanceof Array){for(var r=[],a=0;a<e.length&&(r=g(e[a],t)).length;a++);if(r.length)return r}else{var s,c;if("object"==typeof e)return s=n,n=[],o(t,e,i),c=n,n=s,c}}return[]}}return t&&o(e,t,"",a||""),!a&&e&&e.$schema&&o(e,e.$schema,"",""),{valid:!n.length,errors:n}},t.mustBeValid=function(e){if(!e.valid)throw new TypeError(e.errors.map((function(e){return"for property "+e.property+": "+e.message})).join(", \n"))},t;function e(t,i){return e(t,i,{changing:!1})}var t,i}.apply(t,[]))&&(e.exports=t)},function(e,t,i){var r=i(10),a=i(8),s=i(175),n=((i=i(132)).HASH_ALGOS,i.PK_ALGOS,i.InvalidAlgorithmError,i.HttpSignatureError,i.validateAlgorithm);e.exports={verifySignature:function(e,t){r.object(e,"parsedSignature"),"string"!=typeof t&&!Buffer.isBuffer(t)||(t=s.parseKey(t)),r.ok(s.Key.isKey(t,[1,1]),"pubkey must be a sshpk.Key");var i=n(e.algorithm);return"hmac"!==i[0]&&i[0]===t.type&&((t=t.createVerify(i[1])).update(e.signingString),t.verify(e.params.signature,"base64"))},verifyHMAC:function(e,t){r.object(e,"parsedHMAC"),r.string(t,"secret");var i,s,o=n(e.algorithm);return"hmac"===o[0]&&(o=o[1].toUpperCase(),(s=a.createHmac(o,t)).update(e.signingString),(i=a.createHmac(o,t)).update(s.digest()),i=i.digest(),(s=a.createHmac(o,t)).update(new Buffer(e.params.signature,"base64")),s=s.digest(),"string"==typeof i?i===s:Buffer.isBuffer(i)&&!i.equals?i.toString("binary")===s.toString("binary"):i.equals(s))}}},function(e,t,i){
|
|
940
940
|
/*!
|
|
941
941
|
* mime-db
|
|
942
942
|
* Copyright(c) 2014 Jonathan Ong
|
|
943
943
|
* Copyright(c) 2015-2022 Douglas Christopher Wilson
|
|
944
944
|
* MIT Licensed
|
|
945
945
|
*/
|
|
946
|
-
e.exports=i(478)},function(e){e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')},function(e,t,i){(e.exports=o).SSL=c;e=i(9);var r=i(61).Agent,a=i(90),s=i(147);i=i(82).Agent;function n(e,t){return"string"==typeof e?e+":"+t:e.host+":"+e.port+":"+(e.localAddress?e.localAddress+":":":")}function o(e){var t=this;t.options=e||{},t.requests={},t.sockets={},t.freeSockets={},t.maxSockets=t.options.maxSockets||r.defaultMaxSockets,t.minSockets=t.options.minSockets||o.defaultMinSockets,t.on("free",(function(e,i,r){i=n(i,r),t.requests[i]&&t.requests[i].length?t.requests[i].shift().onSocket(e):t.sockets[i].length<t.minSockets?(t.freeSockets[i]||(t.freeSockets[i]=[]),t.freeSockets[i].push(e),e._onIdleError=r=function(){e.destroy()},e.on("error",r)):e.destroy()}))}function c(e){o.call(this,e)}e.inherits(o,r),o.defaultMinSockets=5,o.prototype.createConnection=a.createConnection,o.prototype.addRequestNoreuse=r.prototype.addRequest,o.prototype.addRequest=function(e,t,i){var r,a=n(t,i);"string"!=typeof t&&(i=(r=t).port,t=r.host),this.freeSockets[a]&&0<this.freeSockets[a].length&&!e.useChunkedEncodingByDefault?((r=this.freeSockets[a].pop()).removeListener("error",r._onIdleError),delete r._onIdleError,e._reusedSocket=!0,e.onSocket(r)):this.addRequestNoreuse(e,t,i)},o.prototype.removeSocket=function(e,t,i,r){var a;this.sockets[t]?-1!==(a=this.sockets[t].indexOf(e))&&this.sockets[t].splice(a,1):this.sockets[t]&&0===this.sockets[t].length&&(delete this.sockets[t],delete this.requests[t]),this.freeSockets[t]&&-1!==(a=this.freeSockets[t].indexOf(e))&&(this.freeSockets[t].splice(a,1),0===this.freeSockets[t].length)&&delete this.freeSockets[t],this.requests[t]&&this.requests[t].length&&this.createSocket(t,i,r).emit("free")},e.inherits(c,o),c.prototype.createConnection=function(e,t,i){return"object"==typeof e?i=e:"object"==typeof t?i=t:"object"!=typeof i&&(i={}),"number"==typeof e&&(i.port=e),"string"==typeof t&&(i.host=t),s.connect(i)},c.prototype.addRequestNoreuse=i.prototype.addRequest},function(e,t,i){var r=i(280),a=i(9),s=i(34),n=i(61),o=i(82),c=i(43).parse,u=i(88),h=i(225),l=i(482),p=i(486);function d(e){if(!(this instanceof d))return new d;for(var t in this._overheadLength=0,this._valueLength=0,this._valuesToMeasure=[],r.call(this),e=e||{})this[t]=e[t]}e.exports=d,a.inherits(d,r),d.LINE_BREAK="\r\n",d.DEFAULT_CONTENT_TYPE="application/octet-stream",d.prototype.append=function(e,t,i){"string"==typeof(i=i||{})&&(i={filename:i});var s,n=r.prototype.append.bind(this);a.isArray(t="number"==typeof t?""+t:t)?this._error(new Error("Arrays are not supported.")):(e=this._multiPartHeader(e,t,i),s=this._multiPartFooter(),n(e),n(t),n(s),this._trackLength(e,t,i))},d.prototype._trackLength=function(e,t,i){var r=0;null!=i.knownLength?r+=+i.knownLength:Buffer.isBuffer(t)?r=t.length:"string"==typeof t&&(r=Buffer.byteLength(t)),this._valueLength+=r,this._overheadLength+=Buffer.byteLength(e)+d.LINE_BREAK.length,t&&(t.path||t.readable&&t.hasOwnProperty("httpVersion"))&&(i.knownLength||this._valuesToMeasure.push(t))},d.prototype._lengthRetriever=function(e,t){e.hasOwnProperty("fd")?null!=e.end&&e.end!=1/0&&null!=e.start?t(null,e.end+1-(e.start||0)):u.stat(e.path,(function(i,r){i?t(i):(i=r.size-(e.start||0),t(null,i))})):e.hasOwnProperty("httpVersion")?t(null,+e.headers["content-length"]):e.hasOwnProperty("httpModule")?(e.on("response",(function(i){e.pause(),t(null,+i.headers["content-length"])})),e.resume()):t("Unknown stream")},d.prototype._multiPartHeader=function(e,t,i){if("string"==typeof i.header)return i.header;var r,a,s=this._getContentDisposition(t,i),n=(t=this._getContentType(t,i),""),o={"Content-Disposition":["form-data",'name="'+e+'"'].concat(s||[]),"Content-Type":[].concat(t||[])};for(a in"object"==typeof i.header&&p(o,i.header),o)o.hasOwnProperty(a)&&null!=(r=o[a])&&(r=Array.isArray(r)?r:[r]).length&&(n+=a+": "+r.join("; ")+d.LINE_BREAK);return"--"+this.getBoundary()+d.LINE_BREAK+n+d.LINE_BREAK},d.prototype._getContentDisposition=function(e,t){var i,r;return"string"==typeof t.filepath?i=s.normalize(t.filepath).replace(/\\/g,"/"):t.filename||e.name||e.path?i=s.basename(t.filename||e.name||e.path):e.readable&&e.hasOwnProperty("httpVersion")&&(i=s.basename(e.client._httpMessage.path)),i?'filename="'+i+'"':r},d.prototype._getContentType=function(e,t){var i=t.contentType;return(i=(i=!(i=!(i=!i&&e.name?h.lookup(e.name):i)&&e.path?h.lookup(e.path):i)&&e.readable&&e.hasOwnProperty("httpVersion")?e.headers["content-type"]:i)||!t.filepath&&!t.filename?i:h.lookup(t.filepath||t.filename))||"object"!=typeof e?i:d.DEFAULT_CONTENT_TYPE},d.prototype._multiPartFooter=function(){return function(e){var t=d.LINE_BREAK;0===this._streams.length&&(t+=this._lastBoundary()),e(t)}.bind(this)},d.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+d.LINE_BREAK},d.prototype.getHeaders=function(e){var t,i={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(t in e)e.hasOwnProperty(t)&&(i[t.toLowerCase()]=e[t]);return i},d.prototype.getBoundary=function(){return this._boundary||this._generateBoundary(),this._boundary},d.prototype._generateBoundary=function(){for(var e="--------------------------",t=0;t<24;t++)e+=Math.floor(10*Math.random()).toString(16);this._boundary=e},d.prototype.getLengthSync=function(){var e=this._overheadLength+this._valueLength;return this._streams.length&&(e+=this._lastBoundary().length),this.hasKnownLength()||this._error(new Error("Cannot calculate proper length in synchronous way.")),e},d.prototype.hasKnownLength=function(){var e=!0;return!this._valuesToMeasure.length&&e},d.prototype.getLength=function(e){var t=this._overheadLength+this._valueLength;this._streams.length&&(t+=this._lastBoundary().length),this._valuesToMeasure.length?l.parallel(this._valuesToMeasure,this._lengthRetriever,(function(i,r){i?e(i):(r.forEach((function(e){t+=e})),e(null,t))})):process.nextTick(e.bind(this,null,t))},d.prototype.submit=function(e,t){var i,r,a={method:"post"};return"string"==typeof e?(e=c(e),r=p({port:e.port,path:e.pathname,host:e.hostname,protocol:e.protocol},a)):(r=p(e,a)).port||(r.port="https:"==r.protocol?443:80),r.headers=this.getHeaders(e.headers),i=("https:"==r.protocol?o:n).request(r),this.getLength(function(e,r){e?this._error(e):(i.setHeader("Content-Length",r),this.pipe(i),t&&(i.on("error",t),i.on("response",t.bind(this,null))))}.bind(this)),i},d.prototype._error=function(e){this.error||(this.error=e,this.pause(),this.emit("error",e))},d.prototype.toString=function(){return"[object FormData]"}},function(e,t,i){var r=i(47).Stream;i=i(9);function a(){this.source=null,this.dataSize=0,this.maxDataSize=1048576,this.pauseStream=!0,this._maxDataSizeExceeded=!1,this._released=!1,this._bufferedEvents=[]}e.exports=a,i.inherits(a,r),a.create=function(e,t){var i,r=new this;for(i in t=t||{})r[i]=t[i];var a=(r.source=e).emit;return e.emit=function(){return r._handleEmit(arguments),a.apply(e,arguments)},e.on("error",(function(){})),r.pauseStream&&e.pause(),r},Object.defineProperty(a.prototype,"readable",{configurable:!0,enumerable:!0,get:function(){return this.source.readable}}),a.prototype.setEncoding=function(){return this.source.setEncoding.apply(this.source,arguments)},a.prototype.resume=function(){this._released||this.release(),this.source.resume()},a.prototype.pause=function(){this.source.pause()},a.prototype.release=function(){this._released=!0,this._bufferedEvents.forEach(function(e){this.emit.apply(this,e)}.bind(this)),this._bufferedEvents=[]},a.prototype.pipe=function(){var e=r.prototype.pipe.apply(this,arguments);return this.resume(),e},a.prototype._handleEmit=function(e){this._released?this.emit.apply(this,e):("data"===e[0]&&(this.dataSize+=e[1].length,this._checkIfMaxDataSizeExceeded()),this._bufferedEvents.push(e))},a.prototype._checkIfMaxDataSizeExceeded=function(){var e;this._maxDataSizeExceeded||this.dataSize<=this.maxDataSize||(this._maxDataSizeExceeded=!0,e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.",this.emit("error",new Error(e)))}},function(e,t,i){e.exports={parallel:i(483),serial:i(485),serialOrdered:i(286)}},function(e,t,i){var r=i(281),a=i(284),s=i(285);e.exports=function(e,t,i){for(var n=a(e);n.index<(n.keyedList||e).length;)r(e,t,n,(function(e,t){e?i(e,t):0===Object.keys(n.jobs).length&&i(null,n.results)})),n.index++;return s.bind(n,i)}},function(e,t){e.exports=function(e){var t="function"==typeof setImmediate?setImmediate:"object"==typeof process&&"function"==typeof process.nextTick?process.nextTick:null;t?t(e):setTimeout(e,0)}},function(e,t,i){var r=i(286);e.exports=function(e,t,i){return r(e,t,null,i)}},function(e,t){e.exports=function(e,t){return Object.keys(t).forEach((function(i){e[i]=e[i]||t[i]})),e}},function(e,t){(e.exports=a).strict=s,a.loose=n;var i=Object.prototype.toString,r={"[object Int8Array]":!0,"[object Int16Array]":!0,"[object Int32Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Uint16Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0};function a(e){return s(e)||n(e)}function s(e){return e instanceof Int8Array||e instanceof Int16Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Uint16Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array}function n(e){return r[i.call(e)]}},function(e,t,i){"use strict";function r(e){return e.replace(/^\.*/,".").toLowerCase()}function a(e){var t=(e=e.trim().toLowerCase()).split(":",2);return{hostname:r(t[0]),port:t[1],hasPort:-1<e.indexOf(":")}}e.exports=function(e){var t,i,s,n=process.env.NO_PROXY||process.env.no_proxy||"";return"*"===n||""!==n&&(n=n,i=(t=e).port||("https:"===t.protocol?"443":"80"),s=r(t.hostname),n.split(",").map(a).some((function(e){var t=-1<(t=s.indexOf(e.hostname))&&t===s.length-e.hostname.length;return(!e.hasPort||i===e.port)&&t})))?null:"http:"===e.protocol?process.env.HTTP_PROXY||process.env.http_proxy||null:"https:"===e.protocol&&(process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy)||null}},function(e,t,i){"use strict";var r=i(288),a=i(116);function s(e){this.request=e,this.lib=null,this.useQuerystring=null,this.parseOptions=null,this.stringifyOptions=null}s.prototype.init=function(e){this.lib||(this.useQuerystring=e.useQuerystring,this.lib=this.useQuerystring?a:r,this.parseOptions=e.qsParseOptions||{},this.stringifyOptions=e.qsStringifyOptions||{})},s.prototype.stringify=function(e){return this.useQuerystring?this.rfc3986(this.lib.stringify(e,this.stringifyOptions.sep||null,this.stringifyOptions.eq||null,this.stringifyOptions)):this.lib.stringify(e,this.stringifyOptions)},s.prototype.parse=function(e){return this.useQuerystring?this.lib.parse(e,this.parseOptions.sep||null,this.parseOptions.eq||null,this.parseOptions):this.lib.parse(e,this.parseOptions)},s.prototype.rfc3986=function(e){return e.replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))},s.prototype.unescape=a.unescape,t.Querystring=s},function(e,t,i){"use strict";function r(e,t){u.apply(e,c(t)?t:[t])}function a(e,t,i,n,o,u,h,p,d,f,m,g){var v=e;if("function"==typeof h?v=h(t,v):v instanceof Date&&(v=f(v)),null===v){if(n)return u&&!g?u(t,l.encoder):t;v=""}if("string"==typeof v||"number"==typeof v||"boolean"==typeof v||s.isBuffer(v))return u?[m(g?t:u(t,l.encoder))+"="+m(u(v,l.encoder))]:[m(t)+"="+m(String(v))];var y,b=[];if(void 0!==v){y=c(h)?h:(e=Object.keys(v),p?e.sort(p):e);for(var w=0;w<y.length;++w){var x=y[w];o&&null===v[x]||(c(v)?r(b,a(v[x],i(t,x),i,n,o,u,h,p,d,f,m,g)):r(b,a(v[x],t+(d?"."+x:"["+x+"]"),i,n,o,u,h,p,d,f,m,g)))}}return b}var s=i(289),n=i(290),o={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},c=Array.isArray,u=Array.prototype.push,h=Date.prototype.toISOString,l={delimiter:"&",encode:!0,encoder:s.encode,encodeValuesOnly:!1,serializeDate:function(e){return h.call(e)},skipNulls:!1,strictNullHandling:!1};e.exports=function(e,t){var i=e;if(null!==(e=t?s.assign({},t):{}).encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");t=(void 0===e.delimiter?l:e).delimiter;var u=("boolean"==typeof e.strictNullHandling?e:l).strictNullHandling,h=("boolean"==typeof e.skipNulls?e:l).skipNulls,p=("boolean"==typeof e.encode?e:l).encode,d=("function"==typeof e.encoder?e:l).encoder,f="function"==typeof e.sort?e.sort:null,m=void 0!==e.allowDots&&e.allowDots,g=("function"==typeof e.serializeDate?e:l).serializeDate,v=("boolean"==typeof e.encodeValuesOnly?e:l).encodeValuesOnly;if(void 0===e.format)e.format=n.default;else if(!Object.prototype.hasOwnProperty.call(n.formatters,e.format))throw new TypeError("Unknown format option provided.");var y,b=n.formatters[e.format],w=("function"==typeof e.filter?i=(y=e.filter)("",i):c(e.filter)&&(S=y=e.filter),[]);if("object"!=typeof i||null===i)return"";var x=e.arrayFormat in o?e.arrayFormat:!("indices"in e)||e.indices?"indices":"repeat",k=o[x],S=S||Object.keys(i);f&&S.sort(f);for(var _=0;_<S.length;++_){var E=S[_];h&&null===i[E]||r(w,a(i[E],E,k,u,h,p?d:null,y,f,m,g,b,v))}return x=w.join(t),t=!0===e.addQueryPrefix?"?":"",0<x.length?t+x:""}},function(e,t,i){"use strict";function r(e,t,i){if(e){var r=i.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,n=/(\[[^[\]]*])/.exec(r),o=[];if(e=n?r.slice(0,n.index):r){if(!i.plainObjects&&s.call(Object.prototype,e)&&!i.allowPrototypes)return;o.push(e)}for(var c=0;null!==(n=a.exec(r))&&c<i.depth;){if(c+=1,!i.plainObjects&&s.call(Object.prototype,n[1].slice(1,-1))&&!i.allowPrototypes)return;o.push(n[1])}n&&o.push("["+r.slice(n.index)+"]");for(var u=o,h=i,l=t,p=u.length-1;0<=p;--p){var d,f,m,g=u[p];"[]"===g&&h.parseArrays?d=[].concat(l):(d=h.plainObjects?Object.create(null):{},f="["===g.charAt(0)&&"]"===g.charAt(g.length-1)?g.slice(1,-1):g,m=parseInt(f,10),h.parseArrays||""!==f?!isNaN(m)&&g!==f&&String(m)===f&&0<=m&&h.parseArrays&&m<=h.arrayLimit?(d=[])[m]=l:"__proto__"!==f&&(d[f]=l):d={0:l}),l=d}return l}}var a=i(289),s=Object.prototype.hasOwnProperty,n={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:a.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1};e.exports=function(e,t){var i=t?a.assign({},t):{};if(null!==i.decoder&&void 0!==i.decoder&&"function"!=typeof i.decoder)throw new TypeError("Decoder has to be a function.");if(i.ignoreQueryPrefix=!0===i.ignoreQueryPrefix,i.delimiter=("string"==typeof i.delimiter||a.isRegExp(i.delimiter)?i:n).delimiter,i.depth=("number"==typeof i.depth?i:n).depth,i.arrayLimit=("number"==typeof i.arrayLimit?i:n).arrayLimit,i.parseArrays=!1!==i.parseArrays,i.decoder=("function"==typeof i.decoder?i:n).decoder,i.allowDots=("boolean"==typeof i.allowDots?i:n).allowDots,i.plainObjects=("boolean"==typeof i.plainObjects?i:n).plainObjects,i.allowPrototypes=("boolean"==typeof i.allowPrototypes?i:n).allowPrototypes,i.parameterLimit=("number"==typeof i.parameterLimit?i:n).parameterLimit,i.strictNullHandling=("boolean"==typeof i.strictNullHandling?i:n).strictNullHandling,""===e||null==e)return i.plainObjects?Object.create(null):{};for(var o="string"==typeof e?function(e,t){for(var i={},r=(e=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,t.parameterLimit===1/0?void 0:t.parameterLimit),a=e.split(t.delimiter,r),o=0;o<a.length;++o){var c,u,h=-1===(u=-1===(u=(h=a[o]).indexOf("]="))?h.indexOf("="):u+1)?(c=t.decoder(h,n.decoder),t.strictNullHandling?null:""):(c=t.decoder(h.slice(0,u),n.decoder),t.decoder(h.slice(u+1),n.decoder));s.call(i,c)?i[c]=[].concat(i[c]).concat(h):i[c]=h}return i}(e,i):e,c=i.plainObjects?Object.create(null):{},u=Object.keys(o),h=0;h<u.length;++h){var l=r(l=u[h],o[l],i);c=a.merge(c,l,i)}return a.compact(c)}},function(e,t,i){"use strict";var r=i(88),a=i(116),s=i(493),n=i(172);function o(e){this.request=e}o.prototype.reducer=function(e,t){var i;return void 0===e[t.name]?e[t.name]=t.value:(i=[e[t.name],t.value],e[t.name]=i),e},o.prototype.prep=function(e){var t;function i(t){return t.some((function(t){return 0===e.postData.mimeType.indexOf(t)}))}if(e.queryObj={},e.headersObj={},e.postData.jsonObj=!1,e.postData.paramsObj=!1,e.queryString&&e.queryString.length&&(e.queryObj=e.queryString.reduce(this.reducer,{})),e.headers&&e.headers.length&&(e.headersObj=e.headers.reduceRight((function(e,t){return e[t.name]=t.value,e}),{})),e.cookies&&e.cookies.length&&(t=e.cookies.map((function(e){return e.name+"="+e.value}))).length&&(e.headersObj.cookie=t.join("; ")),i(["multipart/mixed","multipart/related","multipart/form-data","multipart/alternative"]))e.postData.mimeType="multipart/form-data";else if(i(["application/x-www-form-urlencoded"]))e.postData.params?(e.postData.paramsObj=e.postData.params.reduce(this.reducer,{}),e.postData.text=a.stringify(e.postData.paramsObj)):e.postData.text="";else if(i(["text/json","text/x-json","application/json","application/x-json"])&&(e.postData.mimeType="application/json",e.postData.text))try{e.postData.jsonObj=JSON.parse(e.postData.text)}catch(t){this.request.debug(t),e.postData.mimeType="text/plain"}return e},o.prototype.options=function(e){var t,i;return e.har&&(n(t={},e.har),(t=t.log&&t.log.entries?t.log.entries[0]:t).url=t.url||e.url||e.uri||e.baseUrl||"/",t.httpVersion=t.httpVersion||"HTTP/1.1",t.queryString=t.queryString||[],t.headers=t.headers||[],t.cookies=t.cookies||[],t.postData=t.postData||{},t.postData.mimeType=t.postData.mimeType||"application/octet-stream",t.bodySize=0,t.headersSize=0,t.postData.size=0,s.request(t))&&((i=this.prep(t)).url&&(e.url=i.url),i.method&&(e.method=i.method),Object.keys(i.queryObj).length&&(e.qs=i.queryObj),Object.keys(i.headersObj).length&&(e.headers=i.headersObj),a("application/x-www-form-urlencoded")?e.form=i.postData.paramsObj:a("application/json")?i.postData.jsonObj&&(e.body=i.postData.jsonObj,e.json=!0):a("multipart/form-data")?(e.formData={},i.postData.params.forEach((function(t){var i={};t.fileName||t.contentType?(t.fileName&&!t.value?i.value=r.createReadStream(t.fileName):t.value&&(i.value=t.value),t.fileName&&(i.options={filename:t.fileName,contentType:t.contentType||null}),e.formData[t.name]=i):e.formData[t.name]=t.value}))):i.postData.text&&(e.body=i.postData.text)),e;function a(e){return 0===i.postData.mimeType.indexOf(e)}},t.Har=o},function(e,t,i){var r,a=i(494),s=i(528),n=i(529);function o(e,t){t=t||{};var o,c=(r=r||((o=new a({allErrors:!0})).addMetaSchema(i(548)),o.addSchema(n),o)).getSchema(e+".json");return new Promise((function(e,i){c(t)?e(t):i(new s(c.errors))}))}t.afterRequest=function(e){return o("afterRequest",e)},t.beforeRequest=function(e){return o("beforeRequest",e)},t.browser=function(e){return o("browser",e)},t.cache=function(e){return o("cache",e)},t.content=function(e){return o("content",e)},t.cookie=function(e){return o("cookie",e)},t.creator=function(e){return o("creator",e)},t.entry=function(e){return o("entry",e)},t.har=function(e){return o("har",e)},t.header=function(e){return o("header",e)},t.log=function(e){return o("log",e)},t.page=function(e){return o("page",e)},t.pageTimings=function(e){return o("pageTimings",e)},t.postData=function(e){return o("postData",e)},t.query=function(e){return o("query",e)},t.request=function(e){return o("request",e)},t.response=function(e){return o("response",e)},t.timings=function(e){return o("timings",e)}},function(e,t,i){"use strict";var r=i(495),a=i(183),s=i(499),n=i(291),o=i(292),c=i(500),u=i(501),h=i(522),l=i(92),p=(e=((e.exports=m).prototype.validate=function(e,t){var i;if("string"==typeof e){if(!(i=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else i=(e=this._addSchema(e)).validate||this._compile(e);return e=i(t),!0!==i.$async&&(this.errors=i.errors),e},m.prototype.compile=function(e,t){return(e=this._addSchema(e,void 0,t)).validate||this._compile(e)},m.prototype.addSchema=function(e,t,i,r){if(Array.isArray(e))for(var s=0;s<e.length;s++)this.addSchema(e[s],void 0,i,r);else{var n=this._getId(e);if(void 0!==n&&"string"!=typeof n)throw new Error("schema id must be string");x(this,t=a.normalizeId(t||n)),this._schemas[t]=this._addSchema(e,i,r,!0)}return this},m.prototype.addMetaSchema=function(e,t,i){return this.addSchema(e,t,i,!0),this},m.prototype.validateSchema=function(e,t){var i=e.$schema;if(void 0!==i&&"string"!=typeof i)throw new Error("$schema must be a string");if(!(i=i||this._opts.defaultMeta||function(e){var t=e._opts.meta;return e._opts.defaultMeta="object"==typeof t?e._getId(t)||t:e.getSchema(p)?p:void 0,e._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),!(this.errors=null);if(!(i=this.validate(i,e))&&t){if(e="schema is invalid: "+this.errorsText(),"log"!=this._opts.validateSchema)throw new Error(e);this.logger.error(e)}return i},m.prototype.getSchema=function(e){var t=g(this,e);switch(typeof t){case"object":return t.validate||this._compile(t);case"string":return this.getSchema(t);case"undefined":return function(e,t){var i,s,o,c=a.schema.call(e,{schema:{}},t);if(c)return i=c.schema,s=c.root,c=c.baseId,o=r.call(e,i,s,void 0,c),e._fragments[t]=new n({ref:t,fragment:!0,schema:i,root:s,baseId:c,validate:o}),o}(this,e)}},m.prototype.removeSchema=function(e){if(e instanceof RegExp)v(this,this._schemas,e),v(this,this._refs,e);else switch(typeof e){case"undefined":return v(this,this._schemas),v(this,this._refs),this._cache.clear(),this;case"string":var t=g(this,e);return t&&this._cache.del(t.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":t=(t=this._opts.serialize)?t(e):e,this._cache.del(t),(t=this._getId(e))&&(t=a.normalizeId(t),delete this._schemas[t],delete this._refs[t])}return this},m.prototype.addFormat=function(e,t){return"string"==typeof t&&(t=new RegExp(t)),this._formats[e]=t,this},m.prototype.errorsText=function(e,t){if(!(e=e||this.errors))return"No errors";for(var i=void 0===(t=t||{}).separator?", ":t.separator,r=void 0===t.dataVar?"data":t.dataVar,a="",s=0;s<e.length;s++){var n=e[s];n&&(a+=r+n.dataPath+" "+n.message+i)}return a.slice(0,-i.length)},m.prototype._addSchema=function(e,t,i,r){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var s,o=(o=this._opts.serialize)?o(e):e,c=this._cache.get(o);if(c)return c;r=r||!1!==this._opts.addUsedSchema,(c=a.normalizeId(this._getId(e)))&&r&&x(this,c),(t=!1!==this._opts.validateSchema&&!t)&&!(s=c&&c==a.normalizeId(e.$schema))&&this.validateSchema(e,!0);var u=a.ids.call(this,e);u=new n({id:c,schema:e,localRefs:u,cacheKey:o,meta:i});return"#"!=c[0]&&r&&(this._refs[c]=u),this._cache.put(o,u),t&&s&&this.validateSchema(e,!0),u},m.prototype._compile=function(e,t){if(e.compiling)return(e.validate=s).schema=e.schema,s.errors=null,s.root=t||s,!0===e.schema.$async&&(s.$async=!0),s;var i,a;e.compiling=!0,e.meta&&(i=this._opts,this._opts=this._metaOpts);try{a=r.call(this,e.schema,t,e.localRefs)}catch(t){throw delete e.validate,t}finally{e.compiling=!1,e.meta&&(this._opts=i)}return e.validate=a,e.refs=a.refs,e.refVal=a.refVal,e.root=a.root,a;function s(){var t=e.validate,i=t.apply(this,arguments);return s.errors=t.errors,i}},m.prototype.compileAsync=i(523),i(524)),e=(m.prototype.addKeyword=e.add,m.prototype.getKeyword=e.get,m.prototype.removeKeyword=e.remove,m.prototype.validateKeyword=e.validate,i(185)),m.ValidationError=e.Validation,m.MissingRefError=e.MissingRef,m.$dataMetaSchema=h,"http://json-schema.org/draft-07/schema"),d=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],f=["/properties"];function m(e){if(!(this instanceof m))return new m(e);e=this._opts=l.copy(e)||{};var t=(_=this)._opts.logger;if(!1===t)_.logger={log:k,warn:k,error:k};else{if(!("object"==typeof(t=void 0===t?console:t)&&t.log&&t.warn&&t.error))throw new Error("logger must implement log, warn and error methods");_.logger=t}if(this._schemas={},this._refs={},this._fragments={},this._formats=c(e.format),this._cache=e.cache||new s,this._loadingSchemas={},this._compilations=[],this.RULES=u(),this._getId=function(e){switch(e.schemaId){case"auto":return w;case"id":return y;default:return b}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=o),this._metaOpts=function(e){for(var t=l.copy(e._opts),i=0;i<d.length;i++)delete t[d[i]];return t}(this),e.formats){var r,a=this;for(r in a._opts.formats){var n=a._opts.formats[r];a.addFormat(r,n)}}if(e.keywords){var g,v=this;for(g in v._opts.keywords){var x=v._opts.keywords[g];v.addKeyword(g,x)}}var S,_,E=((_=this)._opts.$data&&(S=i(527),_.addMetaSchema(S,S.$id,!0)),!1!==_._opts.meta&&(S=i(298),_._opts.$data&&(S=h(S,f)),_.addMetaSchema(S,p,!0),_._refs["http://json-schema.org/schema"]=p),"object"==typeof e.meta&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),this),j=E._opts.schemas;if(j)if(Array.isArray(j))E.addSchema(j);else for(var A in j)E.addSchema(j[A],A)}function g(e,t){return t=a.normalizeId(t),e._schemas[t]||e._refs[t]||e._fragments[t]}function v(e,t,i){for(var r in t){var a=t[r];a.meta||i&&!i.test(r)||(e._cache.del(a.cacheKey),delete t[r])}}function y(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function b(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function w(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function x(e,t){if(e._schemas[t]||e._refs[t])throw new Error('schema with key or id "'+t+'" already exists')}function k(){}},function(e,t,i){"use strict";var r=i(183),a=i(92),s=i(185),n=i(292),o=i(293),c=a.ucs2length,u=i(184),h=s.Validation;function l(e,t,i){for(var r=0;r<this._compilations.length;r++){var a=this._compilations[r];if(a.schema==e&&a.root==t&&a.baseId==i)return r}return-1}function p(e,t){return"var pattern"+e+" = new RegExp("+a.toQuotedString(t[e])+");"}function d(e){return"var default"+e+" = defaults["+e+"];"}function f(e,t){return void 0===t[e]?"":"var refVal"+e+" = refVal["+e+"];"}function m(e){return"var customRule"+e+" = customRules["+e+"];"}function g(e,t){if(!e.length)return"";for(var i="",r=0;r<e.length;r++)i+=t(r,e);return i}e.exports=function e(t,i,v,y){var b=this,w=this._opts,x=[void 0],k={},S=[],_={},E=[],j={},A=[],R=function(e,t,i){var r=l.call(this,e,t,i);return 0<=r?{index:r,compiling:!0}:(r=this._compilations.length,this._compilations[r]={schema:e,root:t,baseId:i},{index:r,compiling:!1})}.call(this,t,i=i||{schema:t,refVal:x,refs:k},y),I=this._compilations[R.index];if(R.compiling)return I.callValidate=function e(){var t=I.validate,i=t.apply(this,arguments);return e.errors=t.errors,i};var O=this._formats,C=this.RULES;try{var P=B(t,i,v,y),T=(I.validate=P,I.callValidate);return T&&(T.schema=P.schema,T.errors=null,T.refs=P.refs,T.refVal=P.refVal,T.root=P.root,T.$async=P.$async,w.sourceCode)&&(T.source=P.source),P}finally{(function(e,t,i){0<=(e=l.call(this,e,t,i))&&this._compilations.splice(e,1)}).call(this,t,i,y)}function B(t,n,l,v){var y=!n||n.schema==t;if(n.schema!=i.schema)return e.call(b,t,n,l,v);l=!0===t.$async,v=o({isTop:!0,schema:t,isRoot:y,baseId:v,root:n,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:s.MissingRef,RULES:C,validate:o,util:a,resolve:r,resolveRef:N,usePattern:L,useDefault:M,useCustomRule:D,opts:w,formats:O,logger:b.logger,self:b}),v=g(x,f)+g(S,p)+g(E,d)+g(A,m)+v,w.processCode&&(v=w.processCode(v,t));try{var _=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",v)(b,C,O,i,x,E,A,u,c,h);x[0]=_}catch(t){throw b.logger.error("Error compiling schema, function code:",v),t}return _.schema=t,_.errors=null,_.refs=k,_.refVal=x,_.root=y?_:n,l&&(_.$async=!0),!0===w.sourceCode&&(_.source={code:v,patterns:S,defaults:E}),_}function N(t,a,s){a=r.url(t,a);var n=k[a];if(void 0!==n)return F(o=x[n],c="refVal["+n+"]");if(!s&&i.refs&&void 0!==(n=i.refs[a]))return F(o=i.refVal[n],c=z(a,o));var o,c=z(a);if(void 0!==(s=void 0===(s=r.call(b,B,i,a))&&(n=v&&v[a])?r.inlineRef(n,w.inlineRefs)?n:e.call(b,n,i,v,t):s))return o=s,n=k[n=a],x[n]=o,F(s,c);delete k[a]}function z(e,t){var i=x.length;return x[i]=t,"refVal"+(k[e]=i)}function F(e,t){return"object"==typeof e||"boolean"==typeof e?{code:t,schema:e,inline:!0}:{code:t,$async:e&&!!e.$async}}function L(e){var t=_[e];return void 0===t&&(t=_[e]=S.length,S[t]=e),"pattern"+t}function M(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return a.toQuotedString(e);case"object":var t,i;return null===e?"null":(t=n(e),void 0===(i=j[t])&&(i=j[t]=E.length,E[i]=e),"default"+i)}}function D(e,t,i,r){if(!1!==b._opts.validateSchema){if((s=e.definition.dependencies)&&!s.every((function(e){return Object.prototype.hasOwnProperty.call(i,e)})))throw new Error("parent schema must have all required keywords: "+s.join(","));if((s=e.definition.validateSchema)&&!s(t)){if(s="keyword schema is invalid: "+b.errorsText(s.errors),"log"!=b._opts.validateSchema)throw new Error(s);b.logger.error(s)}}var a,s=e.definition.compile,n=e.definition.inline,o=e.definition.macro;if(s)a=s.call(b,t,i,r);else if(o)a=o.call(b,t,i,r),!1!==w.validateSchema&&b.validateSchema(a,!0);else if(n)a=n.call(b,r,e.keyword,t,i);else if(!(a=e.definition.validate))return;if(void 0===a)throw new Error('custom keyword "'+e.keyword+'"failed to compile');return{code:"customRule"+(s=A.length),validate:A[s]=a}}}},function(e,t,i){
|
|
946
|
+
e.exports=i(478)},function(e){e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')},function(e,t,i){(e.exports=o).SSL=c;e=i(9);var r=i(62).Agent,a=i(90),s=i(147);i=i(82).Agent;function n(e,t){return"string"==typeof e?e+":"+t:e.host+":"+e.port+":"+(e.localAddress?e.localAddress+":":":")}function o(e){var t=this;t.options=e||{},t.requests={},t.sockets={},t.freeSockets={},t.maxSockets=t.options.maxSockets||r.defaultMaxSockets,t.minSockets=t.options.minSockets||o.defaultMinSockets,t.on("free",(function(e,i,r){i=n(i,r),t.requests[i]&&t.requests[i].length?t.requests[i].shift().onSocket(e):t.sockets[i].length<t.minSockets?(t.freeSockets[i]||(t.freeSockets[i]=[]),t.freeSockets[i].push(e),e._onIdleError=r=function(){e.destroy()},e.on("error",r)):e.destroy()}))}function c(e){o.call(this,e)}e.inherits(o,r),o.defaultMinSockets=5,o.prototype.createConnection=a.createConnection,o.prototype.addRequestNoreuse=r.prototype.addRequest,o.prototype.addRequest=function(e,t,i){var r,a=n(t,i);"string"!=typeof t&&(i=(r=t).port,t=r.host),this.freeSockets[a]&&0<this.freeSockets[a].length&&!e.useChunkedEncodingByDefault?((r=this.freeSockets[a].pop()).removeListener("error",r._onIdleError),delete r._onIdleError,e._reusedSocket=!0,e.onSocket(r)):this.addRequestNoreuse(e,t,i)},o.prototype.removeSocket=function(e,t,i,r){var a;this.sockets[t]?-1!==(a=this.sockets[t].indexOf(e))&&this.sockets[t].splice(a,1):this.sockets[t]&&0===this.sockets[t].length&&(delete this.sockets[t],delete this.requests[t]),this.freeSockets[t]&&-1!==(a=this.freeSockets[t].indexOf(e))&&(this.freeSockets[t].splice(a,1),0===this.freeSockets[t].length)&&delete this.freeSockets[t],this.requests[t]&&this.requests[t].length&&this.createSocket(t,i,r).emit("free")},e.inherits(c,o),c.prototype.createConnection=function(e,t,i){return"object"==typeof e?i=e:"object"==typeof t?i=t:"object"!=typeof i&&(i={}),"number"==typeof e&&(i.port=e),"string"==typeof t&&(i.host=t),s.connect(i)},c.prototype.addRequestNoreuse=i.prototype.addRequest},function(e,t,i){var r=i(280),a=i(9),s=i(34),n=i(62),o=i(82),c=i(43).parse,u=i(88),h=i(225),l=i(482),p=i(486);function d(e){if(!(this instanceof d))return new d;for(var t in this._overheadLength=0,this._valueLength=0,this._valuesToMeasure=[],r.call(this),e=e||{})this[t]=e[t]}e.exports=d,a.inherits(d,r),d.LINE_BREAK="\r\n",d.DEFAULT_CONTENT_TYPE="application/octet-stream",d.prototype.append=function(e,t,i){"string"==typeof(i=i||{})&&(i={filename:i});var s,n=r.prototype.append.bind(this);a.isArray(t="number"==typeof t?""+t:t)?this._error(new Error("Arrays are not supported.")):(e=this._multiPartHeader(e,t,i),s=this._multiPartFooter(),n(e),n(t),n(s),this._trackLength(e,t,i))},d.prototype._trackLength=function(e,t,i){var r=0;null!=i.knownLength?r+=+i.knownLength:Buffer.isBuffer(t)?r=t.length:"string"==typeof t&&(r=Buffer.byteLength(t)),this._valueLength+=r,this._overheadLength+=Buffer.byteLength(e)+d.LINE_BREAK.length,t&&(t.path||t.readable&&t.hasOwnProperty("httpVersion"))&&(i.knownLength||this._valuesToMeasure.push(t))},d.prototype._lengthRetriever=function(e,t){e.hasOwnProperty("fd")?null!=e.end&&e.end!=1/0&&null!=e.start?t(null,e.end+1-(e.start||0)):u.stat(e.path,(function(i,r){i?t(i):(i=r.size-(e.start||0),t(null,i))})):e.hasOwnProperty("httpVersion")?t(null,+e.headers["content-length"]):e.hasOwnProperty("httpModule")?(e.on("response",(function(i){e.pause(),t(null,+i.headers["content-length"])})),e.resume()):t("Unknown stream")},d.prototype._multiPartHeader=function(e,t,i){if("string"==typeof i.header)return i.header;var r,a,s=this._getContentDisposition(t,i),n=(t=this._getContentType(t,i),""),o={"Content-Disposition":["form-data",'name="'+e+'"'].concat(s||[]),"Content-Type":[].concat(t||[])};for(a in"object"==typeof i.header&&p(o,i.header),o)o.hasOwnProperty(a)&&null!=(r=o[a])&&(r=Array.isArray(r)?r:[r]).length&&(n+=a+": "+r.join("; ")+d.LINE_BREAK);return"--"+this.getBoundary()+d.LINE_BREAK+n+d.LINE_BREAK},d.prototype._getContentDisposition=function(e,t){var i,r;return"string"==typeof t.filepath?i=s.normalize(t.filepath).replace(/\\/g,"/"):t.filename||e.name||e.path?i=s.basename(t.filename||e.name||e.path):e.readable&&e.hasOwnProperty("httpVersion")&&(i=s.basename(e.client._httpMessage.path)),i?'filename="'+i+'"':r},d.prototype._getContentType=function(e,t){var i=t.contentType;return(i=(i=!(i=!(i=!i&&e.name?h.lookup(e.name):i)&&e.path?h.lookup(e.path):i)&&e.readable&&e.hasOwnProperty("httpVersion")?e.headers["content-type"]:i)||!t.filepath&&!t.filename?i:h.lookup(t.filepath||t.filename))||"object"!=typeof e?i:d.DEFAULT_CONTENT_TYPE},d.prototype._multiPartFooter=function(){return function(e){var t=d.LINE_BREAK;0===this._streams.length&&(t+=this._lastBoundary()),e(t)}.bind(this)},d.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+d.LINE_BREAK},d.prototype.getHeaders=function(e){var t,i={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(t in e)e.hasOwnProperty(t)&&(i[t.toLowerCase()]=e[t]);return i},d.prototype.getBoundary=function(){return this._boundary||this._generateBoundary(),this._boundary},d.prototype._generateBoundary=function(){for(var e="--------------------------",t=0;t<24;t++)e+=Math.floor(10*Math.random()).toString(16);this._boundary=e},d.prototype.getLengthSync=function(){var e=this._overheadLength+this._valueLength;return this._streams.length&&(e+=this._lastBoundary().length),this.hasKnownLength()||this._error(new Error("Cannot calculate proper length in synchronous way.")),e},d.prototype.hasKnownLength=function(){var e=!0;return!this._valuesToMeasure.length&&e},d.prototype.getLength=function(e){var t=this._overheadLength+this._valueLength;this._streams.length&&(t+=this._lastBoundary().length),this._valuesToMeasure.length?l.parallel(this._valuesToMeasure,this._lengthRetriever,(function(i,r){i?e(i):(r.forEach((function(e){t+=e})),e(null,t))})):process.nextTick(e.bind(this,null,t))},d.prototype.submit=function(e,t){var i,r,a={method:"post"};return"string"==typeof e?(e=c(e),r=p({port:e.port,path:e.pathname,host:e.hostname,protocol:e.protocol},a)):(r=p(e,a)).port||(r.port="https:"==r.protocol?443:80),r.headers=this.getHeaders(e.headers),i=("https:"==r.protocol?o:n).request(r),this.getLength(function(e,r){e?this._error(e):(i.setHeader("Content-Length",r),this.pipe(i),t&&(i.on("error",t),i.on("response",t.bind(this,null))))}.bind(this)),i},d.prototype._error=function(e){this.error||(this.error=e,this.pause(),this.emit("error",e))},d.prototype.toString=function(){return"[object FormData]"}},function(e,t,i){var r=i(47).Stream;i=i(9);function a(){this.source=null,this.dataSize=0,this.maxDataSize=1048576,this.pauseStream=!0,this._maxDataSizeExceeded=!1,this._released=!1,this._bufferedEvents=[]}e.exports=a,i.inherits(a,r),a.create=function(e,t){var i,r=new this;for(i in t=t||{})r[i]=t[i];var a=(r.source=e).emit;return e.emit=function(){return r._handleEmit(arguments),a.apply(e,arguments)},e.on("error",(function(){})),r.pauseStream&&e.pause(),r},Object.defineProperty(a.prototype,"readable",{configurable:!0,enumerable:!0,get:function(){return this.source.readable}}),a.prototype.setEncoding=function(){return this.source.setEncoding.apply(this.source,arguments)},a.prototype.resume=function(){this._released||this.release(),this.source.resume()},a.prototype.pause=function(){this.source.pause()},a.prototype.release=function(){this._released=!0,this._bufferedEvents.forEach(function(e){this.emit.apply(this,e)}.bind(this)),this._bufferedEvents=[]},a.prototype.pipe=function(){var e=r.prototype.pipe.apply(this,arguments);return this.resume(),e},a.prototype._handleEmit=function(e){this._released?this.emit.apply(this,e):("data"===e[0]&&(this.dataSize+=e[1].length,this._checkIfMaxDataSizeExceeded()),this._bufferedEvents.push(e))},a.prototype._checkIfMaxDataSizeExceeded=function(){var e;this._maxDataSizeExceeded||this.dataSize<=this.maxDataSize||(this._maxDataSizeExceeded=!0,e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.",this.emit("error",new Error(e)))}},function(e,t,i){e.exports={parallel:i(483),serial:i(485),serialOrdered:i(286)}},function(e,t,i){var r=i(281),a=i(284),s=i(285);e.exports=function(e,t,i){for(var n=a(e);n.index<(n.keyedList||e).length;)r(e,t,n,(function(e,t){e?i(e,t):0===Object.keys(n.jobs).length&&i(null,n.results)})),n.index++;return s.bind(n,i)}},function(e,t){e.exports=function(e){var t="function"==typeof setImmediate?setImmediate:"object"==typeof process&&"function"==typeof process.nextTick?process.nextTick:null;t?t(e):setTimeout(e,0)}},function(e,t,i){var r=i(286);e.exports=function(e,t,i){return r(e,t,null,i)}},function(e,t){e.exports=function(e,t){return Object.keys(t).forEach((function(i){e[i]=e[i]||t[i]})),e}},function(e,t){(e.exports=a).strict=s,a.loose=n;var i=Object.prototype.toString,r={"[object Int8Array]":!0,"[object Int16Array]":!0,"[object Int32Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Uint16Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0};function a(e){return s(e)||n(e)}function s(e){return e instanceof Int8Array||e instanceof Int16Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Uint16Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array}function n(e){return r[i.call(e)]}},function(e,t,i){"use strict";function r(e){return e.replace(/^\.*/,".").toLowerCase()}function a(e){var t=(e=e.trim().toLowerCase()).split(":",2);return{hostname:r(t[0]),port:t[1],hasPort:-1<e.indexOf(":")}}e.exports=function(e){var t,i,s,n=process.env.NO_PROXY||process.env.no_proxy||"";return"*"===n||""!==n&&(n=n,i=(t=e).port||("https:"===t.protocol?"443":"80"),s=r(t.hostname),n.split(",").map(a).some((function(e){var t=-1<(t=s.indexOf(e.hostname))&&t===s.length-e.hostname.length;return(!e.hasPort||i===e.port)&&t})))?null:"http:"===e.protocol?process.env.HTTP_PROXY||process.env.http_proxy||null:"https:"===e.protocol&&(process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy)||null}},function(e,t,i){"use strict";var r=i(288),a=i(116);function s(e){this.request=e,this.lib=null,this.useQuerystring=null,this.parseOptions=null,this.stringifyOptions=null}s.prototype.init=function(e){this.lib||(this.useQuerystring=e.useQuerystring,this.lib=this.useQuerystring?a:r,this.parseOptions=e.qsParseOptions||{},this.stringifyOptions=e.qsStringifyOptions||{})},s.prototype.stringify=function(e){return this.useQuerystring?this.rfc3986(this.lib.stringify(e,this.stringifyOptions.sep||null,this.stringifyOptions.eq||null,this.stringifyOptions)):this.lib.stringify(e,this.stringifyOptions)},s.prototype.parse=function(e){return this.useQuerystring?this.lib.parse(e,this.parseOptions.sep||null,this.parseOptions.eq||null,this.parseOptions):this.lib.parse(e,this.parseOptions)},s.prototype.rfc3986=function(e){return e.replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))},s.prototype.unescape=a.unescape,t.Querystring=s},function(e,t,i){"use strict";function r(e,t){u.apply(e,c(t)?t:[t])}function a(e,t,i,n,o,u,h,p,d,f,m,g){var v=e;if("function"==typeof h?v=h(t,v):v instanceof Date&&(v=f(v)),null===v){if(n)return u&&!g?u(t,l.encoder):t;v=""}if("string"==typeof v||"number"==typeof v||"boolean"==typeof v||s.isBuffer(v))return u?[m(g?t:u(t,l.encoder))+"="+m(u(v,l.encoder))]:[m(t)+"="+m(String(v))];var y,b=[];if(void 0!==v){y=c(h)?h:(e=Object.keys(v),p?e.sort(p):e);for(var w=0;w<y.length;++w){var x=y[w];o&&null===v[x]||(c(v)?r(b,a(v[x],i(t,x),i,n,o,u,h,p,d,f,m,g)):r(b,a(v[x],t+(d?"."+x:"["+x+"]"),i,n,o,u,h,p,d,f,m,g)))}}return b}var s=i(289),n=i(290),o={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},c=Array.isArray,u=Array.prototype.push,h=Date.prototype.toISOString,l={delimiter:"&",encode:!0,encoder:s.encode,encodeValuesOnly:!1,serializeDate:function(e){return h.call(e)},skipNulls:!1,strictNullHandling:!1};e.exports=function(e,t){var i=e;if(null!==(e=t?s.assign({},t):{}).encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");t=(void 0===e.delimiter?l:e).delimiter;var u=("boolean"==typeof e.strictNullHandling?e:l).strictNullHandling,h=("boolean"==typeof e.skipNulls?e:l).skipNulls,p=("boolean"==typeof e.encode?e:l).encode,d=("function"==typeof e.encoder?e:l).encoder,f="function"==typeof e.sort?e.sort:null,m=void 0!==e.allowDots&&e.allowDots,g=("function"==typeof e.serializeDate?e:l).serializeDate,v=("boolean"==typeof e.encodeValuesOnly?e:l).encodeValuesOnly;if(void 0===e.format)e.format=n.default;else if(!Object.prototype.hasOwnProperty.call(n.formatters,e.format))throw new TypeError("Unknown format option provided.");var y,b=n.formatters[e.format],w=("function"==typeof e.filter?i=(y=e.filter)("",i):c(e.filter)&&(S=y=e.filter),[]);if("object"!=typeof i||null===i)return"";var x=e.arrayFormat in o?e.arrayFormat:!("indices"in e)||e.indices?"indices":"repeat",k=o[x],S=S||Object.keys(i);f&&S.sort(f);for(var _=0;_<S.length;++_){var E=S[_];h&&null===i[E]||r(w,a(i[E],E,k,u,h,p?d:null,y,f,m,g,b,v))}return x=w.join(t),t=!0===e.addQueryPrefix?"?":"",0<x.length?t+x:""}},function(e,t,i){"use strict";function r(e,t,i){if(e){var r=i.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,n=/(\[[^[\]]*])/.exec(r),o=[];if(e=n?r.slice(0,n.index):r){if(!i.plainObjects&&s.call(Object.prototype,e)&&!i.allowPrototypes)return;o.push(e)}for(var c=0;null!==(n=a.exec(r))&&c<i.depth;){if(c+=1,!i.plainObjects&&s.call(Object.prototype,n[1].slice(1,-1))&&!i.allowPrototypes)return;o.push(n[1])}n&&o.push("["+r.slice(n.index)+"]");for(var u=o,h=i,l=t,p=u.length-1;0<=p;--p){var d,f,m,g=u[p];"[]"===g&&h.parseArrays?d=[].concat(l):(d=h.plainObjects?Object.create(null):{},f="["===g.charAt(0)&&"]"===g.charAt(g.length-1)?g.slice(1,-1):g,m=parseInt(f,10),h.parseArrays||""!==f?!isNaN(m)&&g!==f&&String(m)===f&&0<=m&&h.parseArrays&&m<=h.arrayLimit?(d=[])[m]=l:"__proto__"!==f&&(d[f]=l):d={0:l}),l=d}return l}}var a=i(289),s=Object.prototype.hasOwnProperty,n={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:a.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1};e.exports=function(e,t){var i=t?a.assign({},t):{};if(null!==i.decoder&&void 0!==i.decoder&&"function"!=typeof i.decoder)throw new TypeError("Decoder has to be a function.");if(i.ignoreQueryPrefix=!0===i.ignoreQueryPrefix,i.delimiter=("string"==typeof i.delimiter||a.isRegExp(i.delimiter)?i:n).delimiter,i.depth=("number"==typeof i.depth?i:n).depth,i.arrayLimit=("number"==typeof i.arrayLimit?i:n).arrayLimit,i.parseArrays=!1!==i.parseArrays,i.decoder=("function"==typeof i.decoder?i:n).decoder,i.allowDots=("boolean"==typeof i.allowDots?i:n).allowDots,i.plainObjects=("boolean"==typeof i.plainObjects?i:n).plainObjects,i.allowPrototypes=("boolean"==typeof i.allowPrototypes?i:n).allowPrototypes,i.parameterLimit=("number"==typeof i.parameterLimit?i:n).parameterLimit,i.strictNullHandling=("boolean"==typeof i.strictNullHandling?i:n).strictNullHandling,""===e||null==e)return i.plainObjects?Object.create(null):{};for(var o="string"==typeof e?function(e,t){for(var i={},r=(e=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,t.parameterLimit===1/0?void 0:t.parameterLimit),a=e.split(t.delimiter,r),o=0;o<a.length;++o){var c,u,h=-1===(u=-1===(u=(h=a[o]).indexOf("]="))?h.indexOf("="):u+1)?(c=t.decoder(h,n.decoder),t.strictNullHandling?null:""):(c=t.decoder(h.slice(0,u),n.decoder),t.decoder(h.slice(u+1),n.decoder));s.call(i,c)?i[c]=[].concat(i[c]).concat(h):i[c]=h}return i}(e,i):e,c=i.plainObjects?Object.create(null):{},u=Object.keys(o),h=0;h<u.length;++h){var l=r(l=u[h],o[l],i);c=a.merge(c,l,i)}return a.compact(c)}},function(e,t,i){"use strict";var r=i(88),a=i(116),s=i(493),n=i(172);function o(e){this.request=e}o.prototype.reducer=function(e,t){var i;return void 0===e[t.name]?e[t.name]=t.value:(i=[e[t.name],t.value],e[t.name]=i),e},o.prototype.prep=function(e){var t;function i(t){return t.some((function(t){return 0===e.postData.mimeType.indexOf(t)}))}if(e.queryObj={},e.headersObj={},e.postData.jsonObj=!1,e.postData.paramsObj=!1,e.queryString&&e.queryString.length&&(e.queryObj=e.queryString.reduce(this.reducer,{})),e.headers&&e.headers.length&&(e.headersObj=e.headers.reduceRight((function(e,t){return e[t.name]=t.value,e}),{})),e.cookies&&e.cookies.length&&(t=e.cookies.map((function(e){return e.name+"="+e.value}))).length&&(e.headersObj.cookie=t.join("; ")),i(["multipart/mixed","multipart/related","multipart/form-data","multipart/alternative"]))e.postData.mimeType="multipart/form-data";else if(i(["application/x-www-form-urlencoded"]))e.postData.params?(e.postData.paramsObj=e.postData.params.reduce(this.reducer,{}),e.postData.text=a.stringify(e.postData.paramsObj)):e.postData.text="";else if(i(["text/json","text/x-json","application/json","application/x-json"])&&(e.postData.mimeType="application/json",e.postData.text))try{e.postData.jsonObj=JSON.parse(e.postData.text)}catch(t){this.request.debug(t),e.postData.mimeType="text/plain"}return e},o.prototype.options=function(e){var t,i;return e.har&&(n(t={},e.har),(t=t.log&&t.log.entries?t.log.entries[0]:t).url=t.url||e.url||e.uri||e.baseUrl||"/",t.httpVersion=t.httpVersion||"HTTP/1.1",t.queryString=t.queryString||[],t.headers=t.headers||[],t.cookies=t.cookies||[],t.postData=t.postData||{},t.postData.mimeType=t.postData.mimeType||"application/octet-stream",t.bodySize=0,t.headersSize=0,t.postData.size=0,s.request(t))&&((i=this.prep(t)).url&&(e.url=i.url),i.method&&(e.method=i.method),Object.keys(i.queryObj).length&&(e.qs=i.queryObj),Object.keys(i.headersObj).length&&(e.headers=i.headersObj),a("application/x-www-form-urlencoded")?e.form=i.postData.paramsObj:a("application/json")?i.postData.jsonObj&&(e.body=i.postData.jsonObj,e.json=!0):a("multipart/form-data")?(e.formData={},i.postData.params.forEach((function(t){var i={};t.fileName||t.contentType?(t.fileName&&!t.value?i.value=r.createReadStream(t.fileName):t.value&&(i.value=t.value),t.fileName&&(i.options={filename:t.fileName,contentType:t.contentType||null}),e.formData[t.name]=i):e.formData[t.name]=t.value}))):i.postData.text&&(e.body=i.postData.text)),e;function a(e){return 0===i.postData.mimeType.indexOf(e)}},t.Har=o},function(e,t,i){var r,a=i(494),s=i(528),n=i(529);function o(e,t){t=t||{};var o,c=(r=r||((o=new a({allErrors:!0})).addMetaSchema(i(548)),o.addSchema(n),o)).getSchema(e+".json");return new Promise((function(e,i){c(t)?e(t):i(new s(c.errors))}))}t.afterRequest=function(e){return o("afterRequest",e)},t.beforeRequest=function(e){return o("beforeRequest",e)},t.browser=function(e){return o("browser",e)},t.cache=function(e){return o("cache",e)},t.content=function(e){return o("content",e)},t.cookie=function(e){return o("cookie",e)},t.creator=function(e){return o("creator",e)},t.entry=function(e){return o("entry",e)},t.har=function(e){return o("har",e)},t.header=function(e){return o("header",e)},t.log=function(e){return o("log",e)},t.page=function(e){return o("page",e)},t.pageTimings=function(e){return o("pageTimings",e)},t.postData=function(e){return o("postData",e)},t.query=function(e){return o("query",e)},t.request=function(e){return o("request",e)},t.response=function(e){return o("response",e)},t.timings=function(e){return o("timings",e)}},function(e,t,i){"use strict";var r=i(495),a=i(183),s=i(499),n=i(291),o=i(292),c=i(500),u=i(501),h=i(522),l=i(92),p=(e=((e.exports=m).prototype.validate=function(e,t){var i;if("string"==typeof e){if(!(i=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else i=(e=this._addSchema(e)).validate||this._compile(e);return e=i(t),!0!==i.$async&&(this.errors=i.errors),e},m.prototype.compile=function(e,t){return(e=this._addSchema(e,void 0,t)).validate||this._compile(e)},m.prototype.addSchema=function(e,t,i,r){if(Array.isArray(e))for(var s=0;s<e.length;s++)this.addSchema(e[s],void 0,i,r);else{var n=this._getId(e);if(void 0!==n&&"string"!=typeof n)throw new Error("schema id must be string");x(this,t=a.normalizeId(t||n)),this._schemas[t]=this._addSchema(e,i,r,!0)}return this},m.prototype.addMetaSchema=function(e,t,i){return this.addSchema(e,t,i,!0),this},m.prototype.validateSchema=function(e,t){var i=e.$schema;if(void 0!==i&&"string"!=typeof i)throw new Error("$schema must be a string");if(!(i=i||this._opts.defaultMeta||function(e){var t=e._opts.meta;return e._opts.defaultMeta="object"==typeof t?e._getId(t)||t:e.getSchema(p)?p:void 0,e._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),!(this.errors=null);if(!(i=this.validate(i,e))&&t){if(e="schema is invalid: "+this.errorsText(),"log"!=this._opts.validateSchema)throw new Error(e);this.logger.error(e)}return i},m.prototype.getSchema=function(e){var t=g(this,e);switch(typeof t){case"object":return t.validate||this._compile(t);case"string":return this.getSchema(t);case"undefined":return function(e,t){var i,s,o,c=a.schema.call(e,{schema:{}},t);if(c)return i=c.schema,s=c.root,c=c.baseId,o=r.call(e,i,s,void 0,c),e._fragments[t]=new n({ref:t,fragment:!0,schema:i,root:s,baseId:c,validate:o}),o}(this,e)}},m.prototype.removeSchema=function(e){if(e instanceof RegExp)v(this,this._schemas,e),v(this,this._refs,e);else switch(typeof e){case"undefined":return v(this,this._schemas),v(this,this._refs),this._cache.clear(),this;case"string":var t=g(this,e);return t&&this._cache.del(t.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":t=(t=this._opts.serialize)?t(e):e,this._cache.del(t),(t=this._getId(e))&&(t=a.normalizeId(t),delete this._schemas[t],delete this._refs[t])}return this},m.prototype.addFormat=function(e,t){return"string"==typeof t&&(t=new RegExp(t)),this._formats[e]=t,this},m.prototype.errorsText=function(e,t){if(!(e=e||this.errors))return"No errors";for(var i=void 0===(t=t||{}).separator?", ":t.separator,r=void 0===t.dataVar?"data":t.dataVar,a="",s=0;s<e.length;s++){var n=e[s];n&&(a+=r+n.dataPath+" "+n.message+i)}return a.slice(0,-i.length)},m.prototype._addSchema=function(e,t,i,r){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var s,o=(o=this._opts.serialize)?o(e):e,c=this._cache.get(o);if(c)return c;r=r||!1!==this._opts.addUsedSchema,(c=a.normalizeId(this._getId(e)))&&r&&x(this,c),(t=!1!==this._opts.validateSchema&&!t)&&!(s=c&&c==a.normalizeId(e.$schema))&&this.validateSchema(e,!0);var u=a.ids.call(this,e);u=new n({id:c,schema:e,localRefs:u,cacheKey:o,meta:i});return"#"!=c[0]&&r&&(this._refs[c]=u),this._cache.put(o,u),t&&s&&this.validateSchema(e,!0),u},m.prototype._compile=function(e,t){if(e.compiling)return(e.validate=s).schema=e.schema,s.errors=null,s.root=t||s,!0===e.schema.$async&&(s.$async=!0),s;var i,a;e.compiling=!0,e.meta&&(i=this._opts,this._opts=this._metaOpts);try{a=r.call(this,e.schema,t,e.localRefs)}catch(t){throw delete e.validate,t}finally{e.compiling=!1,e.meta&&(this._opts=i)}return e.validate=a,e.refs=a.refs,e.refVal=a.refVal,e.root=a.root,a;function s(){var t=e.validate,i=t.apply(this,arguments);return s.errors=t.errors,i}},m.prototype.compileAsync=i(523),i(524)),e=(m.prototype.addKeyword=e.add,m.prototype.getKeyword=e.get,m.prototype.removeKeyword=e.remove,m.prototype.validateKeyword=e.validate,i(185)),m.ValidationError=e.Validation,m.MissingRefError=e.MissingRef,m.$dataMetaSchema=h,"http://json-schema.org/draft-07/schema"),d=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],f=["/properties"];function m(e){if(!(this instanceof m))return new m(e);e=this._opts=l.copy(e)||{};var t=(_=this)._opts.logger;if(!1===t)_.logger={log:k,warn:k,error:k};else{if(!("object"==typeof(t=void 0===t?console:t)&&t.log&&t.warn&&t.error))throw new Error("logger must implement log, warn and error methods");_.logger=t}if(this._schemas={},this._refs={},this._fragments={},this._formats=c(e.format),this._cache=e.cache||new s,this._loadingSchemas={},this._compilations=[],this.RULES=u(),this._getId=function(e){switch(e.schemaId){case"auto":return w;case"id":return y;default:return b}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=o),this._metaOpts=function(e){for(var t=l.copy(e._opts),i=0;i<d.length;i++)delete t[d[i]];return t}(this),e.formats){var r,a=this;for(r in a._opts.formats){var n=a._opts.formats[r];a.addFormat(r,n)}}if(e.keywords){var g,v=this;for(g in v._opts.keywords){var x=v._opts.keywords[g];v.addKeyword(g,x)}}var S,_,E=((_=this)._opts.$data&&(S=i(527),_.addMetaSchema(S,S.$id,!0)),!1!==_._opts.meta&&(S=i(298),_._opts.$data&&(S=h(S,f)),_.addMetaSchema(S,p,!0),_._refs["http://json-schema.org/schema"]=p),"object"==typeof e.meta&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),this),j=E._opts.schemas;if(j)if(Array.isArray(j))E.addSchema(j);else for(var A in j)E.addSchema(j[A],A)}function g(e,t){return t=a.normalizeId(t),e._schemas[t]||e._refs[t]||e._fragments[t]}function v(e,t,i){for(var r in t){var a=t[r];a.meta||i&&!i.test(r)||(e._cache.del(a.cacheKey),delete t[r])}}function y(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function b(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function w(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function x(e,t){if(e._schemas[t]||e._refs[t])throw new Error('schema with key or id "'+t+'" already exists')}function k(){}},function(e,t,i){"use strict";var r=i(183),a=i(92),s=i(185),n=i(292),o=i(293),c=a.ucs2length,u=i(184),h=s.Validation;function l(e,t,i){for(var r=0;r<this._compilations.length;r++){var a=this._compilations[r];if(a.schema==e&&a.root==t&&a.baseId==i)return r}return-1}function p(e,t){return"var pattern"+e+" = new RegExp("+a.toQuotedString(t[e])+");"}function d(e){return"var default"+e+" = defaults["+e+"];"}function f(e,t){return void 0===t[e]?"":"var refVal"+e+" = refVal["+e+"];"}function m(e){return"var customRule"+e+" = customRules["+e+"];"}function g(e,t){if(!e.length)return"";for(var i="",r=0;r<e.length;r++)i+=t(r,e);return i}e.exports=function e(t,i,v,y){var b=this,w=this._opts,x=[void 0],k={},S=[],_={},E=[],j={},A=[],R=function(e,t,i){var r=l.call(this,e,t,i);return 0<=r?{index:r,compiling:!0}:(r=this._compilations.length,this._compilations[r]={schema:e,root:t,baseId:i},{index:r,compiling:!1})}.call(this,t,i=i||{schema:t,refVal:x,refs:k},y),I=this._compilations[R.index];if(R.compiling)return I.callValidate=function e(){var t=I.validate,i=t.apply(this,arguments);return e.errors=t.errors,i};var O=this._formats,C=this.RULES;try{var P=B(t,i,v,y),T=(I.validate=P,I.callValidate);return T&&(T.schema=P.schema,T.errors=null,T.refs=P.refs,T.refVal=P.refVal,T.root=P.root,T.$async=P.$async,w.sourceCode)&&(T.source=P.source),P}finally{(function(e,t,i){0<=(e=l.call(this,e,t,i))&&this._compilations.splice(e,1)}).call(this,t,i,y)}function B(t,n,l,v){var y=!n||n.schema==t;if(n.schema!=i.schema)return e.call(b,t,n,l,v);l=!0===t.$async,v=o({isTop:!0,schema:t,isRoot:y,baseId:v,root:n,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:s.MissingRef,RULES:C,validate:o,util:a,resolve:r,resolveRef:N,usePattern:L,useDefault:M,useCustomRule:D,opts:w,formats:O,logger:b.logger,self:b}),v=g(x,f)+g(S,p)+g(E,d)+g(A,m)+v,w.processCode&&(v=w.processCode(v,t));try{var _=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",v)(b,C,O,i,x,E,A,u,c,h);x[0]=_}catch(t){throw b.logger.error("Error compiling schema, function code:",v),t}return _.schema=t,_.errors=null,_.refs=k,_.refVal=x,_.root=y?_:n,l&&(_.$async=!0),!0===w.sourceCode&&(_.source={code:v,patterns:S,defaults:E}),_}function N(t,a,s){a=r.url(t,a);var n=k[a];if(void 0!==n)return F(o=x[n],c="refVal["+n+"]");if(!s&&i.refs&&void 0!==(n=i.refs[a]))return F(o=i.refVal[n],c=z(a,o));var o,c=z(a);if(void 0!==(s=void 0===(s=r.call(b,B,i,a))&&(n=v&&v[a])?r.inlineRef(n,w.inlineRefs)?n:e.call(b,n,i,v,t):s))return o=s,n=k[n=a],x[n]=o,F(s,c);delete k[a]}function z(e,t){var i=x.length;return x[i]=t,"refVal"+(k[e]=i)}function F(e,t){return"object"==typeof e||"boolean"==typeof e?{code:t,schema:e,inline:!0}:{code:t,$async:e&&!!e.$async}}function L(e){var t=_[e];return void 0===t&&(t=_[e]=S.length,S[t]=e),"pattern"+t}function M(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return a.toQuotedString(e);case"object":var t,i;return null===e?"null":(t=n(e),void 0===(i=j[t])&&(i=j[t]=E.length,E[i]=e),"default"+i)}}function D(e,t,i,r){if(!1!==b._opts.validateSchema){if((s=e.definition.dependencies)&&!s.every((function(e){return Object.prototype.hasOwnProperty.call(i,e)})))throw new Error("parent schema must have all required keywords: "+s.join(","));if((s=e.definition.validateSchema)&&!s(t)){if(s="keyword schema is invalid: "+b.errorsText(s.errors),"log"!=b._opts.validateSchema)throw new Error(s);b.logger.error(s)}}var a,s=e.definition.compile,n=e.definition.inline,o=e.definition.macro;if(s)a=s.call(b,t,i,r);else if(o)a=o.call(b,t,i,r),!1!==w.validateSchema&&b.validateSchema(a,!0);else if(n)a=n.call(b,r,e.keyword,t,i);else if(!(a=e.definition.validate))return;if(void 0===a)throw new Error('custom keyword "'+e.keyword+'"failed to compile');return{code:"customRule"+(s=A.length),validate:A[s]=a}}}},function(e,t,i){
|
|
947
947
|
/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
|
|
948
|
-
!function(e){"use strict";function t(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];if(t.length>1){t[0]=t[0].slice(0,-1);for(var r=t.length-1,a=1;a<r;++a)t[a]=t[a].slice(1,-1);return t[r]=t[r].slice(1),t.join("")}return t[0]}function i(e){return"(?:"+e+")"}function r(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function a(e){return e.toUpperCase()}function s(e){var r="[A-Za-z]",a="[0-9]",s=t(a,"[A-Fa-f]"),n=i(i("%[EFef]"+s+"%"+s+s+"%"+s+s)+"|"+i("%[89A-Fa-f]"+s+"%"+s+s)+"|"+i("%"+s+s)),o="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",c=t("[\\:\\/\\?\\#\\[\\]\\@]",o),u=e?"[\\uE000-\\uF8FF]":"[]",h=t(r,a,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),l=i(r+t(r,a,"[\\+\\-\\.]")+"*"),p=i(i(n+"|"+t(h,o,"[\\:]"))+"*"),d=(i(i("25[0-5]")+"|"+i("2[0-4]"+a)+"|"+i("1"+a+a)+"|"+i("[1-9]"+a)+"|"+a),i(i("25[0-5]")+"|"+i("2[0-4]"+a)+"|"+i("1"+a+a)+"|"+i("0?[1-9]"+a)+"|0?0?"+a)),f=i(d+"\\."+d+"\\."+d+"\\."+d),m=i(s+"{1,4}"),g=i(i(m+"\\:"+m)+"|"+f),v=i(i(m+"\\:")+"{6}"+g),y=i("\\:\\:"+i(m+"\\:")+"{5}"+g),b=i(i(m)+"?\\:\\:"+i(m+"\\:")+"{4}"+g),w=i(i(i(m+"\\:")+"{0,1}"+m)+"?\\:\\:"+i(m+"\\:")+"{3}"+g),x=i(i(i(m+"\\:")+"{0,2}"+m)+"?\\:\\:"+i(m+"\\:")+"{2}"+g),k=i(i(i(m+"\\:")+"{0,3}"+m)+"?\\:\\:"+m+"\\:"+g),S=i(i(i(m+"\\:")+"{0,4}"+m)+"?\\:\\:"+g),_=i(i(i(m+"\\:")+"{0,5}"+m)+"?\\:\\:"+m),E=i(i(i(m+"\\:")+"{0,6}"+m)+"?\\:\\:"),j=i([v,y,b,w,x,k,S,_,E].join("|")),A=i(i(h+"|"+n)+"+"),R=(i(j+"\\%25"+A),i(j+i("\\%25|\\%(?!"+s+"{2})")+A)),I=i("[vV]"+s+"+\\."+t(h,o,"[\\:]")+"+"),O=i("\\["+i(R+"|"+j+"|"+I)+"\\]"),C=i(i(n+"|"+t(h,o))+"*"),P=i(O+"|"+f+"(?!"+C+")|"+C),T=i(a+"*"),B=i(i(p+"@")+"?"+P+i("\\:"+T)+"?"),N=i(n+"|"+t(h,o,"[\\:\\@]")),z=i(N+"*"),F=i(N+"+"),L=i(i(n+"|"+t(h,o,"[\\@]"))+"+"),M=i(i("\\/"+z)+"*"),D=i("\\/"+i(F+M)+"?"),H=i(L+M),U=i(F+M),q="(?!"+N+")",V=(i(M+"|"+D+"|"+H+"|"+U+"|"+q),i(i(N+"|"+t("[\\/\\?]",u))+"*")),K=i(i(N+"|[\\/\\?]")+"*"),W=i(i("\\/\\/"+B+M)+"|"+D+"|"+U+"|"+q),$=i(l+"\\:"+W+i("\\?"+V)+"?"+i("\\#"+K)+"?"),Y=i(i("\\/\\/"+B+M)+"|"+D+"|"+H+"|"+q),G=i(Y+i("\\?"+V)+"?"+i("\\#"+K)+"?");i($+"|"+G),i(l+"\\:"+W+i("\\?"+V)+"?"),i(i("\\/\\/("+i("("+p+")@")+"?("+P+")"+i("\\:("+T+")")+"?)")+"?("+M+"|"+D+"|"+U+"|"+q+")"),i("\\?("+V+")"),i("\\#("+K+")"),i(i("\\/\\/("+i("("+p+")@")+"?("+P+")"+i("\\:("+T+")")+"?)")+"?("+M+"|"+D+"|"+H+"|"+q+")"),i("\\?("+V+")"),i("\\#("+K+")"),i(i("\\/\\/("+i("("+p+")@")+"?("+P+")"+i("\\:("+T+")")+"?)")+"?("+M+"|"+D+"|"+U+"|"+q+")"),i("\\?("+V+")"),i("\\#("+K+")"),i("("+p+")@"),i("\\:("+T+")");return{NOT_SCHEME:new RegExp(t("[^]",r,a,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",h,o),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",h,o),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",h,o),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",h,o),"g"),NOT_QUERY:new RegExp(t("[^\\%]",h,o,"[\\:\\@\\/\\?]",u),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",h,o,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",h,o),"g"),UNRESERVED:new RegExp(h,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",h,c),"g"),PCT_ENCODED:new RegExp(n,"g"),IPV4ADDRESS:new RegExp("^("+f+")$"),IPV6ADDRESS:new RegExp("^\\[?("+j+")"+i(i("\\%25|\\%(?!"+s+"{2})")+"("+A+")")+"?\\]?$")}}var n=s(!1),o=s(!0),c=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var i=[],r=!0,a=!1,s=void 0;try{for(var n,o=e[Symbol.iterator]();!(r=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);r=!0);}catch(e){a=!0,s=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw s}}return i}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},u=2147483647,h=36,l=/^xn--/,p=/[^\0-\x7E]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,f={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,g=String.fromCharCode;function v(e){throw new RangeError(f[e])}function y(e,t){var i=e.split("@"),r="";i.length>1&&(r=i[0]+"@",e=i[1]);var a=function(e,t){for(var i=[],r=e.length;r--;)i[r]=t(e[r]);return i}((e=e.replace(d,".")).split("."),t).join(".");return r+a}function b(e){for(var t=[],i=0,r=e.length;i<r;){var a=e.charCodeAt(i++);if(a>=55296&&a<=56319&&i<r){var s=e.charCodeAt(i++);56320==(64512&s)?t.push(((1023&a)<<10)+(1023&s)+65536):(t.push(a),i--)}else t.push(a)}return t}var w=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:h},x=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},k=function(e,t,i){var r=0;for(e=i?m(e/700):e>>1,e+=m(e/t);e>455;r+=h)e=m(e/35);return m(r+36*e/(e+38))},S=function(e){var t=[],i=e.length,r=0,a=128,s=72,n=e.lastIndexOf("-");n<0&&(n=0);for(var o=0;o<n;++o)e.charCodeAt(o)>=128&&v("not-basic"),t.push(e.charCodeAt(o));for(var c=n>0?n+1:0;c<i;){for(var l=r,p=1,d=h;;d+=h){c>=i&&v("invalid-input");var f=w(e.charCodeAt(c++));(f>=h||f>m((u-r)/p))&&v("overflow"),r+=f*p;var g=d<=s?1:d>=s+26?26:d-s;if(f<g)break;var y=h-g;p>m(u/y)&&v("overflow"),p*=y}var b=t.length+1;s=k(r-l,b,0==l),m(r/b)>u-a&&v("overflow"),a+=m(r/b),r%=b,t.splice(r++,0,a)}return String.fromCodePoint.apply(String,t)},_=function e(t){var i=[],r=(t=b(t)).length,a=128,s=0,n=72,o=!0,c=!1,l=void 0;try{for(var p,d=t[Symbol.iterator]();!(o=(p=d.next()).done);o=!0){var f=p.value;f<128&&i.push(g(f))}}catch(e){c=!0,l=e}finally{try{!o&&d.return&&d.return()}finally{if(c)throw l}}var y=i.length,w=y;for(y&&i.push("-");w<r;){var S=u,_=!0,E=!1,j=void 0;try{for(var A,R=t[Symbol.iterator]();!(_=(A=R.next()).done);_=!0){var I=A.value;I>=a&&I<S&&(S=I)}}catch(e){E=!0,j=e}finally{try{!_&&R.return&&R.return()}finally{if(E)throw j}}var O=w+1;S-a>m((u-s)/O)&&v("overflow"),s+=(S-a)*O,a=S;var C=!0,P=!1,T=void 0;try{for(var B,N=t[Symbol.iterator]();!(C=(B=N.next()).done);C=!0){var z=B.value;if(z<a&&++s>u&&v("overflow"),z==a){for(var F=s,L=h;;L+=h){var M=L<=n?1:L>=n+26?26:L-n;if(F<M)break;var D=F-M,H=h-M;i.push(g(x(M+D%H,0))),F=m(D/H)}i.push(g(x(F,0))),n=k(s,O,w==y),s=0,++w}}}catch(e){P=!0,T=e}finally{try{!C&&N.return&&N.return()}finally{if(P)throw T}}++s,++a}return i.join("")},E=function(e){return y(e,(function(e){return p.test(e)?"xn--"+_(e):e}))},j=function(e){return y(e,(function(e){return l.test(e)?S(e.slice(4).toLowerCase()):e}))},A={};function R(e){var t=e.charCodeAt(0);return t<16?"%0"+t.toString(16).toUpperCase():t<128?"%"+t.toString(16).toUpperCase():t<2048?"%"+(t>>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function I(e){for(var t="",i=0,r=e.length;i<r;){var a=parseInt(e.substr(i+1,2),16);if(a<128)t+=String.fromCharCode(a),i+=3;else if(a>=194&&a<224){if(r-i>=6){var s=parseInt(e.substr(i+4,2),16);t+=String.fromCharCode((31&a)<<6|63&s)}else t+=e.substr(i,6);i+=6}else if(a>=224){if(r-i>=9){var n=parseInt(e.substr(i+4,2),16),o=parseInt(e.substr(i+7,2),16);t+=String.fromCharCode((15&a)<<12|(63&n)<<6|63&o)}else t+=e.substr(i,9);i+=9}else t+=e.substr(i,3),i+=3}return t}function O(e,t){function i(e){var i=I(e);return i.match(t.UNRESERVED)?i:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,i).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,i).replace(t.NOT_USERINFO,R).replace(t.PCT_ENCODED,a)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,i).toLowerCase().replace(t.NOT_HOST,R).replace(t.PCT_ENCODED,a)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,i).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,R).replace(t.PCT_ENCODED,a)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,i).replace(t.NOT_QUERY,R).replace(t.PCT_ENCODED,a)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,i).replace(t.NOT_FRAGMENT,R).replace(t.PCT_ENCODED,a)),e}function C(e){return e.replace(/^0*(.*)/,"$1")||"0"}function P(e,t){var i=e.match(t.IPV4ADDRESS)||[],r=c(i,2)[1];return r?r.split(".").map(C).join("."):e}function T(e,t){var i=e.match(t.IPV6ADDRESS)||[],r=c(i,3),a=r[1],s=r[2];if(a){for(var n=a.toLowerCase().split("::").reverse(),o=c(n,2),u=o[0],h=o[1],l=h?h.split(":").map(C):[],p=u.split(":").map(C),d=t.IPV4ADDRESS.test(p[p.length-1]),f=d?7:8,m=p.length-f,g=Array(f),v=0;v<f;++v)g[v]=l[v]||p[m+v]||"";d&&(g[f-1]=P(g[f-1],t));var y=g.reduce((function(e,t,i){if(!t||"0"===t){var r=e[e.length-1];r&&r.index+r.length===i?r.length++:e.push({index:i,length:1})}return e}),[]).sort((function(e,t){return t.length-e.length}))[0],b=void 0;if(y&&y.length>1){var w=g.slice(0,y.index),x=g.slice(y.index+y.length);b=w.join(":")+"::"+x.join(":")}else b=g.join(":");return s&&(b+="%"+s),b}return e}var B=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,N=void 0==="".match(/(){0}/)[1];function z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i={},r=!1!==t.iri?o:n;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var a=e.match(B);if(a){N?(i.scheme=a[1],i.userinfo=a[3],i.host=a[4],i.port=parseInt(a[5],10),i.path=a[6]||"",i.query=a[7],i.fragment=a[8],isNaN(i.port)&&(i.port=a[5])):(i.scheme=a[1]||void 0,i.userinfo=-1!==e.indexOf("@")?a[3]:void 0,i.host=-1!==e.indexOf("//")?a[4]:void 0,i.port=parseInt(a[5],10),i.path=a[6]||"",i.query=-1!==e.indexOf("?")?a[7]:void 0,i.fragment=-1!==e.indexOf("#")?a[8]:void 0,isNaN(i.port)&&(i.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?a[4]:void 0)),i.host&&(i.host=T(P(i.host,r),r)),void 0!==i.scheme||void 0!==i.userinfo||void 0!==i.host||void 0!==i.port||i.path||void 0!==i.query?void 0===i.scheme?i.reference="relative":void 0===i.fragment?i.reference="absolute":i.reference="uri":i.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==i.reference&&(i.error=i.error||"URI is not a "+t.reference+" reference.");var s=A[(t.scheme||i.scheme||"").toLowerCase()];if(t.unicodeSupport||s&&s.unicodeSupport)O(i,r);else{if(i.host&&(t.domainHost||s&&s.domainHost))try{i.host=E(i.host.replace(r.PCT_ENCODED,I).toLowerCase())}catch(e){i.error=i.error||"Host's domain name can not be converted to ASCII via punycode: "+e}O(i,n)}s&&s.parse&&s.parse(i,t)}else i.error=i.error||"URI can not be parsed.";return i}function F(e,t){var i=!1!==t.iri?o:n,r=[];return void 0!==e.userinfo&&(r.push(e.userinfo),r.push("@")),void 0!==e.host&&r.push(T(P(String(e.host),i),i).replace(i.IPV6ADDRESS,(function(e,t,i){return"["+t+(i?"%25"+i:"")+"]"}))),"number"!=typeof e.port&&"string"!=typeof e.port||(r.push(":"),r.push(String(e.port))),r.length?r.join(""):void 0}var L=/^\.\.?\//,M=/^\/\.(\/|$)/,D=/^\/\.\.(\/|$)/,H=/^\/?(?:.|\n)*?(?=\/|$)/;function U(e){for(var t=[];e.length;)if(e.match(L))e=e.replace(L,"");else if(e.match(M))e=e.replace(M,"/");else if(e.match(D))e=e.replace(D,"/"),t.pop();else if("."===e||".."===e)e="";else{var i=e.match(H);if(!i)throw new Error("Unexpected dot segment condition");var r=i[0];e=e.slice(r.length),t.push(r)}return t.join("")}function q(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.iri?o:n,r=[],a=A[(t.scheme||e.scheme||"").toLowerCase()];if(a&&a.serialize&&a.serialize(e,t),e.host)if(i.IPV6ADDRESS.test(e.host));else if(t.domainHost||a&&a.domainHost)try{e.host=t.iri?j(e.host):E(e.host.replace(i.PCT_ENCODED,I).toLowerCase())}catch(i){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+i}O(e,i),"suffix"!==t.reference&&e.scheme&&(r.push(e.scheme),r.push(":"));var s=F(e,t);if(void 0!==s&&("suffix"!==t.reference&&r.push("//"),r.push(s),e.path&&"/"!==e.path.charAt(0)&&r.push("/")),void 0!==e.path){var c=e.path;t.absolutePath||a&&a.absolutePath||(c=U(c)),void 0===s&&(c=c.replace(/^\/\//,"/%2F")),r.push(c)}return void 0!==e.query&&(r.push("?"),r.push(e.query)),void 0!==e.fragment&&(r.push("#"),r.push(e.fragment)),r.join("")}function V(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments[3],a={};return r||(e=z(q(e,i),i),t=z(q(t,i),i)),!(i=i||{}).tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=U(t.path||""),a.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=U(t.path||""),a.query=t.query):(t.path?("/"===t.path.charAt(0)?a.path=U(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:a.path=t.path:a.path="/"+t.path,a.path=U(a.path)),a.query=t.query):(a.path=e.path,void 0!==t.query?a.query=t.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function K(e,t){return e&&e.toString().replace(t&&t.iri?o.PCT_ENCODED:n.PCT_ENCODED,I)}var W={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var i="https"===String(e.scheme).toLowerCase();return e.port!==(i?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},$={scheme:"https",domainHost:W.domainHost,parse:W.parse,serialize:W.serialize};function Y(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var G={scheme:"ws",domainHost:!0,parse:function(e,t){var i=e;return i.secure=Y(i),i.resourceName=(i.path||"/")+(i.query?"?"+i.query:""),i.path=void 0,i.query=void 0,i},serialize:function(e,t){if(e.port!==(Y(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var i=e.resourceName.split("?"),r=c(i,2),a=r[0],s=r[1];e.path=a&&"/"!==a?a:void 0,e.query=s,e.resourceName=void 0}return e.fragment=void 0,e}},X={scheme:"wss",domainHost:G.domainHost,parse:G.parse,serialize:G.serialize},J={},Q="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",Z="[0-9A-Fa-f]",ee=i(i("%[EFef]"+Z+"%"+Z+Z+"%"+Z+Z)+"|"+i("%[89A-Fa-f]"+Z+"%"+Z+Z)+"|"+i("%"+Z+Z)),te=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),ie=new RegExp(Q,"g"),re=new RegExp(ee,"g"),ae=new RegExp(t("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',te),"g"),se=new RegExp(t("[^]",Q,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),ne=se;function oe(e){var t=I(e);return t.match(ie)?t:e}var ce={scheme:"mailto",parse:function e(t,i){var r=t,a=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var s=!1,n={},o=r.query.split("&"),c=0,u=o.length;c<u;++c){var h=o[c].split("=");switch(h[0]){case"to":for(var l=h[1].split(","),p=0,d=l.length;p<d;++p)a.push(l[p]);break;case"subject":r.subject=K(h[1],i);break;case"body":r.body=K(h[1],i);break;default:s=!0,n[K(h[0],i)]=K(h[1],i)}}s&&(r.headers=n)}r.query=void 0;for(var f=0,m=a.length;f<m;++f){var g=a[f].split("@");if(g[0]=K(g[0]),i.unicodeSupport)g[1]=K(g[1],i).toLowerCase();else try{g[1]=E(K(g[1],i).toLowerCase())}catch(e){r.error=r.error||"Email address's domain name can not be converted to ASCII via punycode: "+e}a[f]=g.join("@")}return r},serialize:function e(t,i){var r=t,s=function(e){return null!=e?e instanceof Array?e:"number"!=typeof e.length||e.split||e.setInterval||e.call?[e]:Array.prototype.slice.call(e):[]}(t.to);if(s){for(var n=0,o=s.length;n<o;++n){var c=String(s[n]),u=c.lastIndexOf("@"),h=c.slice(0,u).replace(re,oe).replace(re,a).replace(ae,R),l=c.slice(u+1);try{l=i.iri?j(l):E(K(l,i).toLowerCase())}catch(e){r.error=r.error||"Email address's domain name can not be converted to "+(i.iri?"Unicode":"ASCII")+" via punycode: "+e}s[n]=h+"@"+l}r.path=s.join(",")}var p=t.headers=t.headers||{};t.subject&&(p.subject=t.subject),t.body&&(p.body=t.body);var d=[];for(var f in p)p[f]!==J[f]&&d.push(f.replace(re,oe).replace(re,a).replace(se,R)+"="+p[f].replace(re,oe).replace(re,a).replace(ne,R));return d.length&&(r.query=d.join("&")),r}},ue=/^([^\:]+)\:(.*)/,he={scheme:"urn",parse:function(e,t){var i=e.path&&e.path.match(ue),r=e;if(i){var a=t.scheme||r.scheme||"urn",s=i[1].toLowerCase(),n=i[2],o=a+":"+(t.nid||s),c=A[o];r.nid=s,r.nss=n,r.path=void 0,c&&(r=c.parse(r,t))}else r.error=r.error||"URN can not be parsed.";return r},serialize:function(e,t){var i=t.scheme||e.scheme||"urn",r=e.nid,a=i+":"+(t.nid||r),s=A[a];s&&(e=s.serialize(e,t));var n=e,o=e.nss;return n.path=(r||t.nid)+":"+o,n}},le=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,pe={scheme:"urn:uuid",parse:function(e,t){var i=e;return i.uuid=i.nss,i.nss=void 0,t.tolerant||i.uuid&&i.uuid.match(le)||(i.error=i.error||"UUID is not valid."),i},serialize:function(e,t){var i=e;return i.nss=(e.uuid||"").toLowerCase(),i}};A[W.scheme]=W,A[$.scheme]=$,A[G.scheme]=G,A[X.scheme]=X,A[ce.scheme]=ce,A[he.scheme]=he,A[pe.scheme]=pe,e.SCHEMES=A,e.pctEncChar=R,e.pctDecChars=I,e.parse=z,e.removeDotSegments=U,e.serialize=q,e.resolveComponents=V,e.resolve=function(e,t,i){var r=function(e,t){var i=e;if(t)for(var r in t)i[r]=t[r];return i}({scheme:"null"},i);return q(V(z(e,r),z(t,r),r,!0),r)},e.normalize=function(e,t){return"string"==typeof e?e=q(z(e,t),t):"object"===r(e)&&(e=z(q(e,t),t)),e},e.equal=function(e,t,i){return"string"==typeof e?e=q(z(e,i),i):"object"===r(e)&&(e=q(e,i)),"string"==typeof t?t=q(z(t,i),i):"object"===r(t)&&(t=q(t,i)),e===t},e.escapeComponent=function(e,t){return e&&e.toString().replace(t&&t.iri?o.ESCAPE:n.ESCAPE,R)},e.unescapeComponent=K,Object.defineProperty(e,"__esModule",{value:!0})}(t)},function(e,t,i){"use strict";e.exports=function(e){for(var t,i=0,r=e.length,a=0;a<r;)i++,55296<=(t=e.charCodeAt(a++))&&t<=56319&&a<r&&56320==(64512&e.charCodeAt(a))&&a++;return i}},function(e,t,i){"use strict";var r=e.exports=function(e,t,i){"function"==typeof t&&(i=t,t={}),function e(t,i,s,n,o,c,u,h,l,p){if(n&&"object"==typeof n&&!Array.isArray(n)){for(var d in i(n,o,c,u,h,l,p),n){var f=n[d];if(Array.isArray(f)){if(d in r.arrayKeywords)for(var m=0;m<f.length;m++)e(t,i,s,f[m],o+"/"+d+"/"+m,c,o,d,n,m)}else if(d in r.propsKeywords){if(f&&"object"==typeof f)for(var g in f)e(t,i,s,f[g],o+"/"+d+"/"+a(g),c,o,d,n,g)}else(d in r.keywords||t.allKeys&&!(d in r.skipKeywords))&&e(t,i,s,f,o+"/"+d,c,o,d,n)}s(n,o,c,u,h,l,p)}}(t,"function"==typeof(i=t.cb||i)?i:i.pre||function(){},i.post||function(){},e,"",e)};function a(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},function(e,t,i){"use strict";(e=e.exports=function(){this._cache={}}).prototype.put=function(e,t){this._cache[e]=t},e.prototype.get=function(e){return this._cache[e]},e.prototype.del=function(e){delete this._cache[e]},e.prototype.clear=function(){this._cache={}}},function(e,t,i){"use strict";var r=i(92),a=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,s=[0,31,28,31,30,31,30,31,31,30,31,30,31],n=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,o=(i=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i),c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,l=/^(?:\/(?:[^~/]|~0|~1)*)*$/,p=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,d=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function f(e){return r.copy(f[e="full"==e?"full":"fast"])}function m(e){var t,i;return!!(e=e.match(a))&&(t=+e[1],i=+e[2],e=+e[3],1<=i)&&i<=12&&1<=e&&e<=(2!=i||(e=t)%4!=0||e%100==0&&e%400!=0?s[i]:29)}function g(e,t){var i,r,a;return!!(e=e.match(n))&&(i=e[1],r=e[2],a=e[3],e=e[5],i<=23&&r<=59&&a<=59||23==i&&59==r&&60==a)&&(!t||e)}(e.exports=f).fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":l,"json-pointer-uri-fragment":p,"relative-json-pointer":d},f.full={date:m,time:g,"date-time":function(e){return 2==(e=e.split(v)).length&&m(e[0])&&g(e[1],!0)},uri:function(e){return y.test(e)&&o.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":l,"json-pointer-uri-fragment":p,"relative-json-pointer":d};var v=/t|\s/i,y=/\/|:/,b=/[^\\]\\Z/;function w(e){if(b.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},function(e,t,i){"use strict";var r=i(502),a=i(92).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],t=["type","$comment"];return e.all=a(t),e.types=a(["number","integer","string","array","object","boolean","null"]),e.forEach((function(i){i.rules=i.rules.map((function(i){var a,s;return"object"==typeof i&&(s=i[a=Object.keys(i)[0]],i=a,s.forEach((function(i){t.push(i),e.all[i]=!0}))),t.push(i),e.all[i]={keyword:i,code:r[i],implements:s}})),e.all.$comment={keyword:"$comment",code:r.$comment},i.type&&(e.types[i.type]=i)})),e.keywords=a(t.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(503),allOf:i(504),anyOf:i(505),$comment:i(506),const:i(507),contains:i(508),dependencies:i(509),enum:i(510),format:i(511),if:i(512),items:i(513),maximum:i(294),minimum:i(294),maxItems:i(295),minItems:i(295),maxLength:i(296),minLength:i(296),maxProperties:i(297),minProperties:i(297),multipleOf:i(514),not:i(515),oneOf:i(516),pattern:i(517),properties:i(518),propertyNames:i(519),required:i(520),uniqueItems:i(521),validate:i(293)}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a,s=" ",n=e.level,o=e.dataLevel,c=e.schema[t],u=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),h="data"+(o||"");n="valid"+n;if("#"==c||"#/"==c)a=e.isRoot?(r=e.async,"validate"):(r=!0===e.root.schema.$async,"root.refVal[0]");else{var l=e.resolveRef(e.baseId,c,e.isRoot);if(void 0===l){var p=e.MissingRefError.message(e.baseId,c);if("fail"==e.opts.missingRefs)e.logger.error(p),(d=d||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { ref: '"+e.util.escapeQuotes(c)+"' } ",!1!==e.opts.messages&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(c)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(c)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ",t=s,s=d.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+t+"]); ":s+=" validate.errors = ["+t+"]; return false; ":s+=" var err = "+t+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(s+=" if (false) { ");else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,c,p);e.logger.warn(p),u&&(s+=" if (true) { ")}}else l.inline?((t=e.util.copy(e)).level++,p="valid"+t.level,t.schema=l.schema,t.schemaPath="",t.errSchemaPath=c,s+=" "+e.validate(t).replace(/validate\.schema/g,l.code)+" ",u&&(s+=" if ("+p+") { ")):(r=!0===l.$async||e.async&&!1!==l.$async,a=l.code)}if(a){(d=d||[]).push(s),s="",e.opts.passContext?s+=" "+a+".call(this, ":s+=" "+a+"( ",s+=" "+h+", (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);var d;t=s+=" , "+(c=o?"data"+(o-1||""):"parentData")+" , "+(o?e.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(s=d.pop(),r){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(s+=" var "+n+"; "),s+=" try { await "+t+"; ",u&&(s+=" "+n+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(s+=" "+n+" = false; "),s+=" } ",u&&(s+=" if ("+n+") { ")}else s+=" if (!"+t+") { if (vErrors === null) vErrors = "+a+".errors; else vErrors = vErrors.concat("+a+".errors); errors = vErrors.length; } ",u&&(s+=" else { ")}return s}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),n=e.errSchemaPath+"/"+t,o=!e.opts.allErrors,c=e.util.copy(e),u="",h=(c.level++,"valid"+c.level),l=c.baseId,p=!0,d=a;if(d)for(var f,m=-1,g=d.length-1;m<g;)f=d[m+=1],(e.opts.strictKeywords?"object"==typeof f&&0<Object.keys(f).length||!1===f:e.util.schemaHasRules(f,e.RULES.all))&&(p=!1,c.schema=f,c.schemaPath=s+"["+m+"]",c.errSchemaPath=n+"/"+m,r+=" "+e.validate(c)+" ",c.baseId=l,o)&&(r+=" if ("+h+") { ",u+="}");return o&&(r+=p?" if (true) { ":" "+u.slice(0,-1)+" "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=(t=!e.opts.allErrors,s="data"+(s||""),"valid"+a),h=(a="errs__"+a,e.util.copy(e)),l="",p=(h.level++,"valid"+h.level);if(n.every((function(t){return e.opts.strictKeywords?"object"==typeof t&&0<Object.keys(t).length||!1===t:e.util.schemaHasRules(t,e.RULES.all)}))){var d=h.baseId,f=(r+=" var "+a+" = errors; var "+u+" = false; ",e.compositeRule),m=(e.compositeRule=h.compositeRule=!0,n);if(m)for(var g,v=-1,y=m.length-1;v<y;)g=m[v+=1],h.schema=g,h.schemaPath=o+"["+v+"]",h.errSchemaPath=c+"/"+v,r+=" "+e.validate(h)+" ",h.baseId=d,r+=" "+u+" = "+u+" || "+p+"; if (!"+u+") { ",l+="}";e.compositeRule=h.compositeRule=f,r+=" "+l+" if (!"+u+") { var err = ",!1!==e.createErrors?(r+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(r+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+s+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&t&&(e.async?r+=" throw new ValidationError(vErrors); ":r+=" validate.errors = vErrors; return false; "),r+=" } else { errors = "+a+"; if (vErrors !== null) { if ("+a+") vErrors.length = "+a+"; else vErrors = null; } ",e.opts.allErrors&&(r+=" } ")}else t&&(r+=" if (true) { ");return r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.schema[t];t=e.errSchemaPath+"/"+t,e.opts.allErrors,a=e.util.toQuotedString(a);return!0===e.opts.$comment?r+=" console.log("+a+");":"function"==typeof e.opts.$comment&&(r+=" self._opts.$comment("+a+", "+e.util.toQuotedString(t)+", validate.root.schema);"),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u="data"+(s||""),h="valid"+a,l=e.opts.$data&&n&&n.$data;(n=(l&&(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; "),l||(r+=" var schema"+a+" = validate.schema"+o+";"),[])).push(r+="var "+h+" = equal("+u+", schema"+a+"); if (!"+h+") { "),r="",!1!==e.createErrors?(r+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { allowedValue: schema"+a+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be equal to constant' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",s=r,r=n.pop();return!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+s+"]); ":r+=" validate.errors = ["+s+"]; return false; ":r+=" var err = "+s+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" }",c&&(r+=" else { "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u=(s="data"+(s||""),"valid"+a),h="errs__"+a,l=e.util.copy(e),p=(l.level++,"valid"+l.level),d=(a="i"+a,l.dataLevel=e.dataLevel+1),f="data"+d,m=e.baseId,g=e.opts.strictKeywords?"object"==typeof n&&0<Object.keys(n).length||!1===n:e.util.schemaHasRules(n,e.RULES.all);(a=(r+="var "+h+" = errors;var "+u+";",g?(u=e.compositeRule,e.compositeRule=l.compositeRule=!0,l.schema=n,l.schemaPath=o,l.errSchemaPath=t,r+=" var "+p+" = false; for (var "+a+" = 0; "+a+" < "+s+".length; "+a+"++) { ",l.errorPath=e.util.getPathExpr(e.errorPath,a,e.opts.jsonPointers,!0),n=s+"["+a+"]",l.dataPathArr[d]=a,d=e.validate(l),l.baseId=m,e.util.varOccurences(d,f)<2?r+=" "+e.util.varReplace(d,f,n)+" ":r+=" var "+f+" = "+n+"; "+d+" ",r+=" if ("+p+") break; } ",e.compositeRule=l.compositeRule=u,r+=" if (!"+p+") {"):r+=" if ("+s+".length == 0) {",[])).push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: {} ",!1!==e.opts.messages&&(r+=" , message: 'should contain a valid item' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+s+" "),r+=" } "):r+=" {} ",m=r,r=a.pop();return!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else { ",g&&(r+=" errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } "),e.opts.allErrors&&(r+=" } "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a=" ",s=e.level,n=e.dataLevel,o=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,l="data"+(n||""),p=(t="errs__"+s,e.util.copy(e)),d="",f=(p.level++,"valid"+p.level),m={},g={},v=e.opts.ownProperties;for(C in o)"__proto__"!=C&&(T=o[C],(r=Array.isArray(T)?g:m)[C]=T);var y=e.errorPath;for(C in a=a+"var "+t+" = errors;var missing"+s+";",g)if((r=g[C]).length){if(a+=" if ( "+l+e.util.getProperty(C)+" !== undefined ",v&&(a+=" && Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(C)+"') "),h){a+=" && ( ";var b=r;if(b)for(var w=-1,x=b.length-1;w<x;)j=b[w+=1],w&&(a+=" || "),a+=" ( ( "+(O=l+(I=e.util.getProperty(j)))+" === undefined ",v&&(a+=" || ! Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(j)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?j:I)+") ) ";a+=")) { ";var k="' + "+(_="missing"+s)+" + '",S=(e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(y,_,!0):y+" + "+_),S||[]),_=(S.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { property: '"+e.util.escapeQuotes(C)+"', missingProperty: '"+k+"', depsCount: "+r.length+", deps: '"+e.util.escapeQuotes(1==r.length?r[0]:r.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",1==r.length?a+="property "+e.util.escapeQuotes(r[0]):a+="properties "+e.util.escapeQuotes(r.join(", ")),a+=" when property "+e.util.escapeQuotes(C)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",a);a=S.pop();!e.compositeRule&&h?e.async?a+=" throw new ValidationError(["+_+"]); ":a+=" validate.errors = ["+_+"]; return false; ":a+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var E=r;if(E)for(var j,A=-1,R=E.length-1;A<R;){j=E[A+=1];var I=e.util.getProperty(j),O=(k=e.util.escapeQuotes(j),l+I);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(y,j,e.opts.jsonPointers)),a+=" if ( "+O+" === undefined ",v&&(a+=" || ! Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(j)+"') "),a+=") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { property: '"+e.util.escapeQuotes(C)+"', missingProperty: '"+k+"', depsCount: "+r.length+", deps: '"+e.util.escapeQuotes(1==r.length?r[0]:r.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",1==r.length?a+="property "+e.util.escapeQuotes(r[0]):a+="properties "+e.util.escapeQuotes(r.join(", ")),a+=" when property "+e.util.escapeQuotes(C)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}a+=" } ",h&&(d+="}",a+=" else { ")}e.errorPath=y;var C,P=p.baseId;for(C in m){var T=m[C];(e.opts.strictKeywords?"object"==typeof T&&0<Object.keys(T).length||!1===T:e.util.schemaHasRules(T,e.RULES.all))&&(a+=" "+f+" = true; if ( "+l+e.util.getProperty(C)+" !== undefined ",v&&(a+=" && Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(C)+"') "),a+=") { ",p.schema=T,p.schemaPath=c+e.util.getProperty(C),p.errSchemaPath=u+"/"+e.util.escapeFragment(C),a+=" "+e.validate(p)+" ",p.baseId=P,a+=" } ",h)&&(a+=" if ("+f+") { ",d+="}")}return h&&(a+=" "+d+" if ("+t+" == errors) {"),a}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u="data"+(s||""),h="valid"+a,l=e.opts.$data&&n&&n.$data;l&&(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; "),n="i"+a,s="schema"+a,(s=(l||(r+=" var "+s+" = validate.schema"+o+";"),r+="var "+h+";",l&&(r+=" if (schema"+a+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+a+")) "+h+" = false; else {"),r+=h+" = false;for (var "+n+"=0; "+n+"<"+s+".length; "+n+"++) if (equal("+u+", "+s+"["+n+"])) { "+h+" = true; break; }",l&&(r+=" } "),[])).push(r+=" if (!"+h+") { "),r="",!1!==e.createErrors?(r+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { allowedValues: schema"+a+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",n=r,r=s.pop();return!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+n+"]); ":r+=" validate.errors = ["+n+"]; return false; ":r+=" var err = "+n+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" }",c&&(r+=" else { "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u="data"+(s||"");if(!1===e.opts.format)c&&(r+=" if (true) { ");else{var h,l=e.opts.$data&&n&&n.$data,p=(s=l?(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; ","schema"+a):n,e.opts.unknownFormats),d=Array.isArray(p);if(l)r+=" var "+(h="format"+a)+" = formats["+s+"]; var "+(f="isObject"+a)+" = typeof "+h+" == 'object' && !("+h+" instanceof RegExp) && "+h+".validate; var "+(g="formatType"+a)+" = "+f+" && "+h+".type || 'string'; if ("+f+") { ",e.async&&(r+=" var async"+a+" = "+h+".async; "),r+=" "+h+" = "+h+".validate; } if ( ",l&&(r+=" ("+s+" !== undefined && typeof "+s+" != 'string') || "),r+=" (","ignore"!=p&&(r+=" ("+s+" && !"+h+" ",d&&(r+=" && self._opts.unknownFormats.indexOf("+s+") == -1 "),r+=") || "),r+=" ("+h+" && "+g+" == '"+i+"' && !(typeof "+h+" == 'function' ? ",e.async?r+=" (async"+a+" ? await "+h+"("+u+") : "+h+"("+u+")) ":r+=" "+h+"("+u+") ",r+=" : "+h+".test("+u+"))))) {";else{if(!(h=e.formats[n])){if("ignore"==p)return e.logger.warn('unknown format "'+n+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(r+=" if (true) { "),r;if(d&&0<=p.indexOf(n))return c&&(r+=" if (true) { "),r;throw new Error('unknown format "'+n+'" is used in schema at path "'+e.errSchemaPath+'"')}var f,m,g=(f="object"==typeof h&&!(h instanceof RegExp)&&h.validate)&&h.type||"string";if(f&&(m=!0===h.async,h=h.validate),g!=i)return c&&(r+=" if (true) { "),r;if(m){if(!e.async)throw new Error("async format in sync schema");r+=" if (!(await "+(v="formats"+e.util.getProperty(n)+".validate")+"("+u+"))) { "}else{r+=" if (! ";var v="formats"+e.util.getProperty(n);f&&(v+=".validate"),r=r+("function"==typeof h?" "+v+"("+u+") ":" "+v+".test("+u+") ")+") { "}}(a=[]).push(r),r="",!1!==e.createErrors?(r=(r+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { format: ")+(l?""+s:""+e.util.toQuotedString(n))+" } ",!1!==e.opts.messages&&(r=(r+=" , message: 'should match format \"")+(l?"' + "+s+" + '":""+e.util.escapeQuotes(n))+"\"' "),e.opts.verbose&&(r=(r=(r+=" , schema: ")+(l?"validate.schema"+o:""+e.util.toQuotedString(n)))+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",d=r,r=a.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+d+"]); ":r+=" validate.errors = ["+d+"]; return false; ":r+=" var err = "+d+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",c&&(r+=" else { ")}return r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a=" ",s=e.level,n=e.dataLevel,o=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),h=(n="data"+(n||""),"valid"+s),l="errs__"+s,p=e.util.copy(e),d=(p.level++,"valid"+p.level),f=e.schema.then,m=e.schema.else,g=(f=void 0!==f&&(e.opts.strictKeywords?"object"==typeof f&&0<Object.keys(f).length||!1===f:e.util.schemaHasRules(f,e.RULES.all)),m=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&0<Object.keys(m).length||!1===m:e.util.schemaHasRules(m,e.RULES.all)),p.baseId);return f||m?(p.createErrors=!1,p.schema=o,p.schemaPath=c,p.errSchemaPath=t,a+=" var "+l+" = errors; var "+h+" = true; ",o=e.compositeRule,e.compositeRule=p.compositeRule=!0,a+=" "+e.validate(p)+" ",p.baseId=g,p.createErrors=!0,a+=" errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",e.compositeRule=p.compositeRule=o,f?(a+=" if ("+d+") { ",p.schema=e.schema.then,p.schemaPath=e.schemaPath+".then",p.errSchemaPath=e.errSchemaPath+"/then",a+=" "+e.validate(p)+" ",p.baseId=g,a+=" "+h+" = "+d+"; ",f&&m?a+=" var "+(r="ifClause"+s)+" = 'then'; ":r="'then'",a+=" } ",m&&(a+=" else { ")):a+=" if (!"+d+") { ",m&&(p.schema=e.schema.else,p.schemaPath=e.schemaPath+".else",p.errSchemaPath=e.errSchemaPath+"/else",a+=" "+e.validate(p)+" ",p.baseId=g,a+=" "+h+" = "+d+"; ",f&&m?a+=" var "+(r="ifClause"+s)+" = 'else'; ":r="'else'",a+=" } "),a+=" if (!"+h+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { failingKeyword: "+r+" } ",!1!==e.opts.messages&&(a+=" , message: 'should match \"' + "+r+" + '\" schema' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+n+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?a+=" throw new ValidationError(vErrors); ":a+=" validate.errors = vErrors; return false; "),a+=" } ",u&&(a+=" else { ")):u&&(a+=" if (true) { "),a}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,h="data"+(s||""),l=(t="valid"+a,s="errs__"+a,e.util.copy(e)),p="",d=(l.level++,"valid"+l.level),f=(a="i"+a,l.dataLevel=e.dataLevel+1),m="data"+f,g=e.baseId;if(r+="var "+s+" = errors;var "+t+";",Array.isArray(n)){var v,y,b=e.schema.additionalItems,w=(!1===b&&(r+=" "+t+" = "+h+".length <= "+n.length+"; ",v=c,c=e.errSchemaPath+"/additionalItems",(y=y||[]).push(r+=" if (!"+t+") { "),r="",!1!==e.createErrors?(r+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n.length+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have more than "+n.length+" items' "),e.opts.verbose&&(r+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),r+=" } "):r+=" {} ",t=r,r=y.pop(),!e.compositeRule&&u?e.async?r+=" throw new ValidationError(["+t+"]); ":r+=" validate.errors = ["+t+"]; return false; ":r+=" var err = "+t+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",c=v,u)&&(p+="}",r+=" else { "),n);if(w)for(var x=-1,k=w.length-1;x<k;){var S,_,E=w[x+=1];(e.opts.strictKeywords?"object"==typeof E&&0<Object.keys(E).length||!1===E:e.util.schemaHasRules(E,e.RULES.all))&&(r+=" "+d+" = true; if ("+h+".length > "+x+") { ",S=h+"["+x+"]",l.schema=E,l.schemaPath=o+"["+x+"]",l.errSchemaPath=c+"/"+x,l.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),l.dataPathArr[f]=x,_=e.validate(l),l.baseId=g,e.util.varOccurences(_,m)<2?r+=" "+e.util.varReplace(_,m,S)+" ":r+=" var "+m+" = "+S+"; "+_+" ",r+=" } ",u)&&(r+=" if ("+d+") { ",p+="}")}"object"==typeof b&&(e.opts.strictKeywords?"object"==typeof b&&0<Object.keys(b).length||!1===b:e.util.schemaHasRules(b,e.RULES.all))&&(l.schema=b,l.schemaPath=e.schemaPath+".additionalItems",l.errSchemaPath=e.errSchemaPath+"/additionalItems",r+=" "+d+" = true; if ("+h+".length > "+n.length+") { for (var "+a+" = "+n.length+"; "+a+" < "+h+".length; "+a+"++) { ",l.errorPath=e.util.getPathExpr(e.errorPath,a,e.opts.jsonPointers,!0),S=h+"["+a+"]",l.dataPathArr[f]=a,_=e.validate(l),l.baseId=g,e.util.varOccurences(_,m)<2?r+=" "+e.util.varReplace(_,m,S)+" ":r+=" var "+m+" = "+S+"; "+_+" ",u&&(r+=" if (!"+d+") break; "),r+=" } } ",u)&&(r+=" if ("+d+") { ",p+="}")}else(e.opts.strictKeywords?"object"==typeof n&&0<Object.keys(n).length||!1===n:e.util.schemaHasRules(n,e.RULES.all))&&(l.schema=n,l.schemaPath=o,l.errSchemaPath=c,r+=" for (var "+a+" = 0; "+a+" < "+h+".length; "+a+"++) { ",l.errorPath=e.util.getPathExpr(e.errorPath,a,e.opts.jsonPointers,!0),S=h+"["+a+"]",l.dataPathArr[f]=a,_=e.validate(l),l.baseId=g,e.util.varOccurences(_,m)<2?r+=" "+e.util.varReplace(_,m,S)+" ":r+=" var "+m+" = "+S+"; "+_+" ",u&&(r+=" if (!"+d+") break; "),r+=" }");return u&&(r+=" "+p+" if ("+s+" == errors) {"),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,h="data"+(s||""),l=e.opts.$data&&n&&n.$data;s=l?(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; ","schema"+a):n;if(!l&&"number"!=typeof n)throw new Error(t+" must be number");return r+="var division"+a+";if (",l&&(r+=" "+s+" !== undefined && ( typeof "+s+" != 'number' || "),r+=" (division"+a+" = "+h+" / "+s+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+a+") - division"+a+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+a+" !== parseInt(division"+a+") ",r+=" ) ",l&&(r+=" ) "),(t=[]).push(r+=" ) { "),r="",!1!==e.createErrors?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+s+" } ",!1!==e.opts.messages&&(r=r+" , message: 'should be multiple of "+(l?"' + "+s:s+"'")),e.opts.verbose&&(r=(r+=" , schema: ")+(l?"validate.schema"+o:""+n)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),r+=" } "):r+=" {} ",a=r,r=t.pop(),!e.compositeRule&&u?e.async?r+=" throw new ValidationError(["+a+"]); ":r+=" validate.errors = ["+a+"]; return false; ":r+=" var err = "+a+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",u&&(r+=" else { "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a,s=" ",n=e.level,o=e.dataLevel,c=e.schema[t],u=e.schemaPath+e.util.getProperty(t),h=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),l=(o="data"+(o||""),n="errs__"+n,e.util.copy(e)),p=(l.level++,"valid"+l.level);return(e.opts.strictKeywords?"object"==typeof c&&0<Object.keys(c).length||!1===c:e.util.schemaHasRules(c,e.RULES.all))?(l.schema=c,l.schemaPath=u,l.errSchemaPath=t,s+=" var "+n+" = errors; ",c=e.compositeRule,e.compositeRule=l.compositeRule=!0,l.createErrors=!1,l.opts.allErrors&&(a=l.opts.allErrors,l.opts.allErrors=!1),s+=" "+e.validate(l)+" ",l.createErrors=!0,a&&(l.opts.allErrors=a),e.compositeRule=l.compositeRule=c,(r=r||[]).push(s+=" if ("+p+") { "),s="",!1!==e.createErrors?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+o+" "),s+=" } "):s+=" {} ",a=s,s=r.pop(),!e.compositeRule&&h?e.async?s+=" throw new ValidationError(["+a+"]); ":s+=" validate.errors = ["+a+"]; return false; ":s+=" var err = "+a+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { errors = "+n+"; if (vErrors !== null) { if ("+n+") vErrors.length = "+n+"; else vErrors = null; } ",e.opts.allErrors&&(s+=" } ")):(s+=" var err = ",!1!==e.createErrors?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+o+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(s+=" if (false) { ")),s}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=(t=!e.opts.allErrors,s="data"+(s||""),"valid"+a),h="errs__"+a,l=e.util.copy(e),p="",d=(l.level++,"valid"+l.level),f=l.baseId,m="prevValid"+a,g="passingSchemas"+a,v=(a=(r+="var "+h+" = errors , "+m+" = false , "+u+" = false , "+g+" = null; ",e.compositeRule),e.compositeRule=l.compositeRule=!0,n);if(v)for(var y,b=-1,w=v.length-1;b<w;)y=v[b+=1],(e.opts.strictKeywords?"object"==typeof y&&0<Object.keys(y).length||!1===y:e.util.schemaHasRules(y,e.RULES.all))?(l.schema=y,l.schemaPath=o+"["+b+"]",l.errSchemaPath=c+"/"+b,r+=" "+e.validate(l)+" ",l.baseId=f):r+=" var "+d+" = true; ",b&&(r+=" if ("+d+" && "+m+") { "+u+" = false; "+g+" = ["+g+", "+b+"]; } else { ",p+="}"),r+=" if ("+d+") { "+u+" = "+m+" = true; "+g+" = "+b+"; }";return e.compositeRule=l.compositeRule=a,r+=p+"if (!"+u+") { var err = ",!1!==e.createErrors?(r+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { passingSchemas: "+g+" } ",!1!==e.opts.messages&&(r+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+s+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&t&&(e.async?r+=" throw new ValidationError(vErrors); ":r+=" validate.errors = vErrors; return false; "),r+="} else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; }",e.opts.allErrors&&(r+=" } "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u="data"+(s||""),h=e.opts.$data&&n&&n.$data,l=(s=h?(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; ","schema"+a):n,a=h?"(new RegExp("+s+"))":e.usePattern(n),r+="if ( ",h&&(r+=" ("+s+" !== undefined && typeof "+s+" != 'string') || "),[]);l.push(r+=" !"+a+".test("+u+") ) { "),r="",!1!==e.createErrors?(r=(r+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { pattern: ")+(h?""+s:""+e.util.toQuotedString(n))+" } ",!1!==e.opts.messages&&(r=(r+=" , message: 'should match pattern \"")+(h?"' + "+s+" + '":""+e.util.escapeQuotes(n))+"\"' "),e.opts.verbose&&(r=(r=(r+=" , schema: ")+(h?"validate.schema"+o:""+e.util.toQuotedString(n)))+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",a=r,r=l.pop();return!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+a+"]); ":r+=" validate.errors = ["+a+"]; return false; ":r+=" var err = "+a+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",c&&(r+=" else { "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a=" ",s=e.level,n=e.dataLevel,o=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,l="data"+(n||""),p=(t="errs__"+s,e.util.copy(e)),d="",f=(p.level++,"valid"+p.level),m="key"+s,g="idx"+s,v=p.dataLevel=e.dataLevel+1,y="data"+v,b="dataProperties"+s,w=(n=Object.keys(o||{}).filter(C),e.schema.patternProperties||{}),x=Object.keys(w).filter(C),k=e.schema.additionalProperties,S=n.length||x.length,_=!1===k,E="object"==typeof k&&Object.keys(k).length,j=e.opts.removeAdditional,A=_||E||j,R=e.opts.ownProperties,I=e.baseId,O=e.schema.required;function C(e){return"__proto__"!==e}if(O&&(!e.opts.$data||!O.$data)&&O.length<e.opts.loopRequired&&(r=e.util.toHash(O)),a+="var "+t+" = errors;var "+f+" = true;",R&&(a+=" var "+b+" = undefined;"),A){if(a+=R?" "+b+" = "+b+" || Object.keys("+l+"); for (var "+g+"=0; "+g+"<"+b+".length; "+g+"++) { var "+m+" = "+b+"["+g+"]; ":" for (var "+m+" in "+l+") { ",S){if(a+=" var isAdditional"+s+" = !(false ",n.length)if(8<n.length)a+=" || validate.schema"+c+".hasOwnProperty("+m+") ";else{var P=n;if(P)for(var T=-1,B=P.length-1;T<B;)D=P[T+=1],a+=" || "+m+" == "+e.util.toQuotedString(D)+" "}if(x.length){var N=x;if(N)for(var z=-1,F=N.length-1;z<F;)Q=N[z+=1],a+=" || "+e.usePattern(Q)+".test("+m+") "}a+=" ); if (isAdditional"+s+") { "}"all"==j?a+=" delete "+l+"["+m+"]; ":(K=e.errorPath,O="' + "+m+" + '",e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers)),_?j?a+=" delete "+l+"["+m+"]; ":(W=u,u=e.errSchemaPath+"/additionalProperties",(Y=Y||[]).push(a+=" "+f+" = false; "),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { additionalProperty: '"+O+"' } ",!1!==e.opts.messages&&(a+=" , message: '",e.opts._errorDataPathProperty?a+="is an invalid additional property":a+="should NOT have additional properties",a+="' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",G=a,a=Y.pop(),!e.compositeRule&&h?e.async?a+=" throw new ValidationError(["+G+"]); ":a+=" validate.errors = ["+G+"]; return false; ":a+=" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u=W,h&&(a+=" break; ")):E&&("failing"==j?(a+=" var "+t+" = errors; ",A=e.compositeRule,e.compositeRule=p.compositeRule=!0,p.schema=k,p.schemaPath=e.schemaPath+".additionalProperties",p.errSchemaPath=e.errSchemaPath+"/additionalProperties",p.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers),te=l+"["+m+"]",p.dataPathArr[v]=m,ie=e.validate(p),p.baseId=I,e.util.varOccurences(ie,y)<2?a+=" "+e.util.varReplace(ie,y,te)+" ":a+=" var "+y+" = "+te+"; "+ie+" ",a+=" if (!"+f+") { errors = "+t+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+l+"["+m+"]; } ",e.compositeRule=p.compositeRule=A):(p.schema=k,p.schemaPath=e.schemaPath+".additionalProperties",p.errSchemaPath=e.errSchemaPath+"/additionalProperties",p.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers),te=l+"["+m+"]",p.dataPathArr[v]=m,ie=e.validate(p),p.baseId=I,e.util.varOccurences(ie,y)<2?a+=" "+e.util.varReplace(ie,y,te)+" ":a+=" var "+y+" = "+te+"; "+ie+" ",h&&(a+=" if (!"+f+") break; "))),e.errorPath=K),S&&(a+=" } "),a+=" } ",h&&(a+=" if ("+f+") { ",d+="}")}var L=e.opts.useDefaults&&!e.compositeRule;if(n.length){var M=n;if(M)for(var D,H=-1,U=M.length-1;H<U;){var q,V,K,W,$,Y,G,X=o[D=M[H+=1]];(e.opts.strictKeywords?"object"==typeof X&&0<Object.keys(X).length||!1===X:e.util.schemaHasRules(X,e.RULES.all))&&(te=l+($=e.util.getProperty(D)),q=L&&void 0!==X.default,p.schema=X,p.schemaPath=c+$,p.errSchemaPath=u+"/"+e.util.escapeFragment(D),p.errorPath=e.util.getPath(e.errorPath,D,e.opts.jsonPointers),p.dataPathArr[v]=e.util.toQuotedString(D),ie=e.validate(p),p.baseId=I,e.util.varOccurences(ie,y)<2?(ie=e.util.varReplace(ie,y,te),V=te):a+=" var "+(V=y)+" = "+te+"; ",q?a+=" "+ie+" ":(r&&r[D]?(a+=" if ( "+V+" === undefined ",R&&(a+=" || ! Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(D)+"') "),a+=") { "+f+" = false; ",K=e.errorPath,W=u,$=e.util.escapeQuotes(D),e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(K,D,e.opts.jsonPointers)),u=e.errSchemaPath+"/required",(Y=Y||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { missingProperty: '"+$+"' } ",!1!==e.opts.messages&&(a+=" , message: '",e.opts._errorDataPathProperty?a+="is a required property":a+="should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",G=a,a=Y.pop(),!e.compositeRule&&h?e.async?a+=" throw new ValidationError(["+G+"]); ":a+=" validate.errors = ["+G+"]; return false; ":a+=" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u=W,e.errorPath=K,a+=" } else { "):h?(a+=" if ( "+V+" === undefined ",R&&(a+=" || ! Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(D)+"') "),a+=") { "+f+" = true; } else { "):(a+=" if ("+V+" !== undefined ",R&&(a+=" && Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(D)+"') "),a+=" ) { "),a+=" "+ie+" } ")),h&&(a+=" if ("+f+") { ",d+="}")}}if(x.length){var J=x;if(J)for(var Q,Z=-1,ee=J.length-1;Z<ee;){var te,ie;X=w[Q=J[Z+=1]];(e.opts.strictKeywords?"object"==typeof X&&0<Object.keys(X).length||!1===X:e.util.schemaHasRules(X,e.RULES.all))&&(p.schema=X,p.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(Q),p.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(Q),a=(a+=R?" "+b+" = "+b+" || Object.keys("+l+"); for (var "+g+"=0; "+g+"<"+b+".length; "+g+"++) { var "+m+" = "+b+"["+g+"]; ":" for (var "+m+" in "+l+") { ")+" if ("+e.usePattern(Q)+".test("+m+")) { ",p.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers),te=l+"["+m+"]",p.dataPathArr[v]=m,ie=e.validate(p),p.baseId=I,e.util.varOccurences(ie,y)<2?a+=" "+e.util.varReplace(ie,y,te)+" ":a+=" var "+y+" = "+te+"; "+ie+" ",h&&(a+=" if (!"+f+") break; "),a+=" } ",h&&(a+=" else "+f+" = true; "),a+=" } ",h)&&(a+=" if ("+f+") { ",d+="}")}}return h&&(a+=" "+d+" if ("+t+" == errors) {"),a}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a,s,n,o,c,u,h=" ",l=e.level,p=e.dataLevel,d=e.schema[t],f=e.schemaPath+e.util.getProperty(t),m=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),g=(p="data"+(p||""),"errs__"+l),v=e.util.copy(e),y=(v.level++,"valid"+v.level);return h+="var "+g+" = errors;",(e.opts.strictKeywords?"object"==typeof d&&0<Object.keys(d).length||!1===d:e.util.schemaHasRules(d,e.RULES.all))&&(v.schema=d,v.schemaPath=f,v.errSchemaPath=t,d="idx"+l,a="i"+l,s="' + "+(r="key"+l)+" + '",n="data"+(v.dataLevel=e.dataLevel+1),u="dataProperties"+l,c=e.opts.ownProperties,o=e.baseId,c&&(h+=" var "+u+" = undefined; "),h=h+(c?" "+u+" = "+u+" || Object.keys("+p+"); for (var "+d+"=0; "+d+"<"+u+".length; "+d+"++) { var "+r+" = "+u+"["+d+"]; ":" for (var "+r+" in "+p+") { ")+" var startErrs"+l+" = errors; ",c=r,u=e.compositeRule,e.compositeRule=v.compositeRule=!0,d=e.validate(v),v.baseId=o,e.util.varOccurences(d,n)<2?h+=" "+e.util.varReplace(d,n,c)+" ":h+=" var "+n+" = "+c+"; "+d+" ",e.compositeRule=v.compositeRule=u,h+=" if (!"+y+") { for (var "+a+"=startErrs"+l+"; "+a+"<errors; "+a+"++) { vErrors["+a+"].propertyName = "+r+"; } var err = ",!1!==e.createErrors?(h+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { propertyName: '"+s+"' } ",!1!==e.opts.messages&&(h+=" , message: 'property name \\'"+s+"\\' is invalid' "),e.opts.verbose&&(h+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),h+=" } "):h+=" {} ",h+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&m&&(e.async?h+=" throw new ValidationError(vErrors); ":h+=" validate.errors = vErrors; return false; "),m&&(h+=" break; "),h+=" } }"),m&&(h+=" if ("+g+" == errors) {"),h}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=(t=!e.opts.allErrors,"data"+(s||"")),h="valid"+a,l=e.opts.$data&&n&&n.$data;l&&(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; "),s="schema"+a;if(!l)if(n.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],d=n;if(d)for(var f=-1,m=d.length-1;f<m;){var g=d[f+=1],v=e.schema.properties[g];v&&(e.opts.strictKeywords?"object"==typeof v&&0<Object.keys(v).length||!1===v:e.util.schemaHasRules(v,e.RULES.all))||(p[p.length]=g)}}else p=n;if(l||p.length){var y=e.errorPath,b=(n=l||p.length>=e.opts.loopRequired,e.opts.ownProperties);if(t){if(r+=" var missing"+a+"; ",n){l||(r+=" var "+s+" = validate.schema"+o+"; ");var w="' + "+(j="schema"+a+"["+(S="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(y,j,e.opts.jsonPointers)),r+=" var "+h+" = true; ",l&&(r+=" if (schema"+a+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+a+")) "+h+" = false; else {"),r+=" for (var "+S+" = 0; "+S+" < "+s+".length; "+S+"++) { "+h+" = "+u+"["+s+"["+S+"]] !== undefined ",b&&(r+=" && Object.prototype.hasOwnProperty.call("+u+", "+s+"["+S+"]) "),r+="; if (!"+h+") break; } ",l&&(r+=" } "),(E=E||[]).push(r+=" if (!"+h+") { "),r="",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var x=r;r=E.pop()}else{r+=" if ( ";var k=p;if(k)for(var S=-1,_=k.length-1;S<_;)R=k[S+=1],S&&(r+=" || "),r+=" ( ( "+(P=u+(C=e.util.getProperty(R)))+" === undefined ",b&&(r+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(R)+"') "),r+=") && (missing"+a+" = "+e.util.toQuotedString(e.opts.jsonPointers?R:C)+") ) ";r+=") { ",w="' + "+(j="missing"+a)+" + '",e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(y,j,!0):y+" + "+j),(E=E||[]).push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var E;x=r;r=E.pop()}!e.compositeRule&&t?e.async?r+=" throw new ValidationError(["+x+"]); ":r+=" validate.errors = ["+x+"]; return false; ":r+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else { "}else if(n){l||(r+=" var "+s+" = validate.schema"+o+"; ");var j;w="' + "+(j="schema"+a+"["+(S="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(y,j,e.opts.jsonPointers)),l&&(r+=" if ("+s+" && !Array.isArray("+s+")) { var err = ",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+s+" !== undefined) { "),r+=" for (var "+S+" = 0; "+S+" < "+s+".length; "+S+"++) { if ("+u+"["+s+"["+S+"]] === undefined ",b&&(r+=" || ! Object.prototype.hasOwnProperty.call("+u+", "+s+"["+S+"]) "),r+=") { var err = ",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",l&&(r+=" } ")}else{var A=p;if(A)for(var R,I=-1,O=A.length-1;I<O;){R=A[I+=1];var C=e.util.getProperty(R),P=(w=e.util.escapeQuotes(R),u+C);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(y,R,e.opts.jsonPointers)),r+=" if ( "+P+" === undefined ",b&&(r+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(R)+"') "),r+=") { var err = ",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=y}else t&&(r+=" if (true) {");return r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a=" ",s=e.level,n=e.dataLevel,o=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),h="data"+(n||""),l="valid"+s,p=e.opts.$data&&o&&o.$data;n=p?(a+=" var schema"+s+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ","schema"+s):o;return(o||p)&&!1!==e.opts.uniqueItems?(p&&(a+=" var "+l+"; if ("+n+" === false || "+n+" === undefined) "+l+" = true; else if (typeof "+n+" != 'boolean') "+l+" = false; else { "),a+=" var i = "+h+".length , "+l+" = true , j; if (i > 1) { ",s=e.schema.items&&e.schema.items.type,n=Array.isArray(s),!s||"object"==s||"array"==s||n&&(0<=s.indexOf("object")||0<=s.indexOf("array"))?a+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+l+" = false; break outer; } } } ":(a=(a+=" var itemIndices = {}, item; for (;i--;) { var item = "+h+"[i]; ")+" if ("+e.util["checkDataType"+(n?"s":"")](s,"item",e.opts.strictNumbers,!0)+") continue; ",n&&(a+=" if (typeof item == 'string') item = '\"' + item; "),a+=" if (typeof itemIndices[item] == 'number') { "+l+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),a+=" } ",p&&(a+=" } "),(r=r||[]).push(a+=" if (!"+l+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(a=(a+=" , schema: ")+(p?"validate.schema"+c:""+o)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",s=a,a=r.pop(),!e.compositeRule&&u?e.async?a+=" throw new ValidationError(["+s+"]); ":a+=" validate.errors = ["+s+"]; return false; ":a+=" var err = "+s+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",u&&(a+=" else { ")):u&&(a+=" if (true) { "),a}},function(e,t,i){"use strict";var r=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var i=0;i<t.length;i++){e=JSON.parse(JSON.stringify(e));for(var a=t[i].split("/"),s=e,n=1;n<a.length;n++)s=s[a[n]];for(n=0;n<r.length;n++){var o=r[n],c=s[o];c&&(s[o]={anyOf:[c,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]})}}return e}},function(e,t,i){"use strict";var r=i(185).MissingRef;e.exports=function e(t,i,a){var s=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof i&&(a=i,i=void 0);var n=o(t).then((function(){var e=s._addSchema(t,void 0,i);return e.validate||function e(t){try{return s._compile(t)}catch(a){if(a instanceof r)return function(r){var a=r.missingSchema;if(c(a))throw new Error("Schema "+a+" is loaded but "+r.missingRef+" cannot be resolved");return(r=s._loadingSchemas[a])||(r=s._loadingSchemas[a]=s._opts.loadSchema(a)).then(n,n),r.then((function(e){if(!c(a))return o(e).then((function(){c(a)||s.addSchema(e,a,void 0,i)}))})).then((function(){return e(t)}));function n(){delete s._loadingSchemas[a]}function c(e){return s._refs[e]||s._schemas[e]}}(a);throw a}}(e)}));return a&&n.then((function(e){a(null,e)}),a),n;function o(t){return(t=t.$schema)&&!s.getSchema(t)?e.call(s,{$ref:t},!0):Promise.resolve()}}},function(e,t,i){"use strict";var r=/^[a-z_$][a-z0-9_$-]*$/i,a=i(525),s=i(526);e.exports={add:function(e,t){var i=this.RULES;if(i.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!r.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(t){this.validateKeyword(t,!0);var s=t.type;if(Array.isArray(s))for(var n=0;n<s.length;n++)c(e,s[n],t);else c(e,s,t);var o=t.metaSchema;o&&(t.$data&&this._opts.$data&&(o={anyOf:[o,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),t.validateSchema=this.compile(o,!0))}function c(e,t,r){for(var s,n=0;n<i.length;n++){var o=i[n];if(o.type==t){s=o;break}}s||i.push(s={type:t,rules:[]}),r={keyword:e,definition:r,custom:!0,code:a,implements:r.implements},s.rules.push(r),i.custom[e]=r}return i.keywords[e]=i.all[e]=!0,this},get:function(e){var t=this.RULES.custom[e];return t?t.definition:this.RULES.keywords[e]||!1},remove:function(e){var t=this.RULES;delete t.keywords[e],delete t.all[e],delete t.custom[e];for(var i=0;i<t.length;i++)for(var r=t[i].rules,a=0;a<r.length;a++)if(r[a].keyword==e){r.splice(a,1);break}return this},validate:function e(t,i){e.errors=null;var r=this._validateKeyword=this._validateKeyword||this.compile(s,!0);if(r(t))return!0;if(e.errors=r.errors,i)throw new Error("custom keyword definition is invalid: "+this.errorsText(r.errors));return!1}}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a,s,n=" ",o=e.level,c=e.dataLevel,u=e.schema[t],h=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,p=!e.opts.allErrors,d="data"+(c||""),f="valid"+o,m="errs__"+o,g=e.opts.$data&&u&&u.$data,v=g?(n+=" var schema"+o+" = "+e.util.getData(u.$data,c,e.dataPathArr)+"; ","schema"+o):u,y="definition"+o,b=this.definition,w="";if(g&&b.$data){var x="keywordValidate"+o,k=b.validateSchema;n+=" var "+y+" = RULES.custom['"+t+"'].definition; var "+x+" = "+y+".validate;"}else{if(!(j=e.useCustomRule(this,u,e.schema,e)))return;v="validate.schema"+h,x=j.code,r=b.compile,a=b.inline,s=b.macro}t=x+".errors",u="i"+o;var S,_,E,j,A,R="ruleErr"+o,I=b.async;if(I&&!e.async)throw new Error("async keyword in sync schema");return a||s||(n+=t+" = null;"),n+="var "+m+" = errors;var "+f+";",g&&b.$data&&(w+="}",n+=" if ("+v+" === undefined) { "+f+" = true; } else { ",k)&&(w+="}",n+=" "+f+" = "+y+".validateSchema("+v+"); if ("+f+") { "),a?b.statements?n+=" "+j.validate+" ":n+=" "+f+" = "+j.validate+"; ":s?(w="",(g=e.util.copy(e)).level++,S="valid"+g.level,g.schema=j.validate,g.schemaPath="",k=e.compositeRule,e.compositeRule=g.compositeRule=!0,y=e.validate(g).replace(/validate\.schema/g,x),e.compositeRule=g.compositeRule=k,n+=" "+y):((A=A||[]).push(n),n="",n+=" "+x+".call( ",e.opts.passContext?n+="this":n+="self",r||!1===b.schema?n+=" , "+d+" ":n+=" , "+v+" , "+d+" , validate.schema"+e.schemaPath+" ",n+=" , (dataPath || '')",'""'!=e.errorPath&&(n+=" + "+e.errorPath),j=n+=" , "+(_=c?"data"+(c-1||""):"parentData")+" , "+(E=c?e.dataPathArr[c]:"parentDataProperty")+" , rootData ) ",n=A.pop(),!1===b.errors?(n+=" "+f+" = ",I&&(n+="await "),n+=j+"; "):n+=I?" var "+(t="customErrors"+o)+" = null; try { "+f+" = await "+j+"; } catch (e) { "+f+" = false; if (e instanceof ValidationError) "+t+" = e.errors; else throw e; } ":" "+t+" = null; "+f+" = "+j+"; "),b.modifying&&(n+=" if ("+_+") "+d+" = "+_+"["+E+"];"),n+=""+w,b.valid?p&&(n+=" if (true) { "):(n+=" if ( ",void 0===b.valid?n=n+" !"+(s?""+S:f):n+=" "+!b.valid+" ",g=this.keyword,(A=A||[]).push(n+=") { "),(A=A||[]).push(n=""),n="",!1!==e.createErrors?(n+=" { keyword: '"+(g||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { keyword: '"+this.keyword+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),e.opts.verbose&&(n+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",k=n,n=A.pop(),!e.compositeRule&&p?e.async?n+=" throw new ValidationError(["+k+"]); ":n+=" validate.errors = ["+k+"]; return false; ":n+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y=n,n=A.pop(),a?b.errors?"full"!=b.errors&&(n+=" for (var "+u+"="+m+"; "+u+"<errors; "+u+"++) { var "+R+" = vErrors["+u+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+R+".schemaPath === undefined) { "+R+'.schemaPath = "'+l+'"; } ',e.opts.verbose&&(n+=" "+R+".schema = "+v+"; "+R+".data = "+d+"; "),n+=" } "):!1===b.errors?n+=" "+y+" ":(n+=" if ("+m+" == errors) { "+y+" } else { for (var "+u+"="+m+"; "+u+"<errors; "+u+"++) { var "+R+" = vErrors["+u+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+R+".schemaPath === undefined) { "+R+'.schemaPath = "'+l+'"; } ',e.opts.verbose&&(n+=" "+R+".schema = "+v+"; "+R+".data = "+d+"; "),n+=" } } "):s?(n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: '"+(g||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { keyword: '"+this.keyword+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),e.opts.verbose&&(n+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&p&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; ")):!1===b.errors?n+=" "+y+" ":(n+=" if (Array.isArray("+t+")) { if (vErrors === null) vErrors = "+t+"; else vErrors = vErrors.concat("+t+"); errors = vErrors.length; for (var "+u+"="+m+"; "+u+"<errors; "+u+"++) { var "+R+" = vErrors["+u+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; "+R+'.schemaPath = "'+l+'"; ',e.opts.verbose&&(n+=" "+R+".schema = "+v+"; "+R+".data = "+d+"; "),n+=" } } else { "+y+" } "),n+=" } ",p&&(n+=" else { ")),n}},function(e,t,i){"use strict";i=i(298),e.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:i.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:i.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},function(e,t){function i(e){var t="validation failed";this.name="HARError",this.message=t,this.errors=e,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(t).stack}i.prototype=Error.prototype,e.exports=i},function(e,t,i){"use strict";e.exports={afterRequest:i(530),beforeRequest:i(531),browser:i(532),cache:i(533),content:i(534),cookie:i(535),creator:i(536),entry:i(537),har:i(538),header:i(539),log:i(540),page:i(541),pageTimings:i(542),postData:i(543),query:i(544),request:i(545),response:i(546),timings:i(547)}},function(e){e.exports=JSON.parse('{"$id":"afterRequest.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["lastAccess","eTag","hitCount"],"properties":{"expires":{"type":"string","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?"},"lastAccess":{"type":"string","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?"},"eTag":{"type":"string"},"hitCount":{"type":"integer"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"beforeRequest.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["lastAccess","eTag","hitCount"],"properties":{"expires":{"type":"string","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?"},"lastAccess":{"type":"string","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?"},"eTag":{"type":"string"},"hitCount":{"type":"integer"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"browser.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","version"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"cache.json#","$schema":"http://json-schema.org/draft-06/schema#","properties":{"beforeRequest":{"oneOf":[{"type":"null"},{"$ref":"beforeRequest.json#"}]},"afterRequest":{"oneOf":[{"type":"null"},{"$ref":"afterRequest.json#"}]},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"content.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["size","mimeType"],"properties":{"size":{"type":"integer"},"compression":{"type":"integer"},"mimeType":{"type":"string"},"text":{"type":"string"},"encoding":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"cookie.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","value"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"path":{"type":"string"},"domain":{"type":"string"},"expires":{"type":["string","null"],"format":"date-time"},"httpOnly":{"type":"boolean"},"secure":{"type":"boolean"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"creator.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","version"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"entry.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["startedDateTime","time","request","response","cache","timings"],"properties":{"pageref":{"type":"string"},"startedDateTime":{"type":"string","format":"date-time","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))"},"time":{"type":"number","min":0},"request":{"$ref":"request.json#"},"response":{"$ref":"response.json#"},"cache":{"$ref":"cache.json#"},"timings":{"$ref":"timings.json#"},"serverIPAddress":{"type":"string","oneOf":[{"format":"ipv4"},{"format":"ipv6"}]},"connection":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"har.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["log"],"properties":{"log":{"$ref":"log.json#"}}}')},function(e){e.exports=JSON.parse('{"$id":"header.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","value"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"log.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["version","creator","entries"],"properties":{"version":{"type":"string"},"creator":{"$ref":"creator.json#"},"browser":{"$ref":"browser.json#"},"pages":{"type":"array","items":{"$ref":"page.json#"}},"entries":{"type":"array","items":{"$ref":"entry.json#"}},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"page.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["startedDateTime","id","title","pageTimings"],"properties":{"startedDateTime":{"type":"string","format":"date-time","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))"},"id":{"type":"string","unique":true},"title":{"type":"string"},"pageTimings":{"$ref":"pageTimings.json#"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"pageTimings.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","properties":{"onContentLoad":{"type":"number","min":-1},"onLoad":{"type":"number","min":-1},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"postData.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["mimeType"],"properties":{"mimeType":{"type":"string"},"text":{"type":"string"},"params":{"type":"array","required":["name"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"fileName":{"type":"string"},"contentType":{"type":"string"},"comment":{"type":"string"}}},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"query.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","value"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"request.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["method","url","httpVersion","cookies","headers","queryString","headersSize","bodySize"],"properties":{"method":{"type":"string"},"url":{"type":"string","format":"uri"},"httpVersion":{"type":"string"},"cookies":{"type":"array","items":{"$ref":"cookie.json#"}},"headers":{"type":"array","items":{"$ref":"header.json#"}},"queryString":{"type":"array","items":{"$ref":"query.json#"}},"postData":{"$ref":"postData.json#"},"headersSize":{"type":"integer"},"bodySize":{"type":"integer"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"response.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["status","statusText","httpVersion","cookies","headers","content","redirectURL","headersSize","bodySize"],"properties":{"status":{"type":"integer"},"statusText":{"type":"string"},"httpVersion":{"type":"string"},"cookies":{"type":"array","items":{"$ref":"cookie.json#"}},"headers":{"type":"array","items":{"$ref":"header.json#"}},"content":{"$ref":"content.json#"},"redirectURL":{"type":"string"},"headersSize":{"type":"integer"},"bodySize":{"type":"integer"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"timings.json#","$schema":"http://json-schema.org/draft-06/schema#","required":["send","wait","receive"],"properties":{"dns":{"type":"number","min":-1},"connect":{"type":"number","min":-1},"blocked":{"type":"number","min":-1},"send":{"type":"number","min":-1},"wait":{"type":"number","min":-1},"receive":{"type":"number","min":-1},"ssl":{"type":"number","min":-1},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-06/schema#","$id":"http://json-schema.org/draft-06/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"title":{"type":"string"},"description":{"type":"string"},"default":{},"examples":{"type":"array","items":{}},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":{}},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":{},"enum":{"type":"array","minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":{}}')},function(e,t,i){"use strict";var r=i(182),a=i(186),s=(i=i(173)).md5,n=i.toBase64;function o(e){this.request=e,this.hasAuth=!1,this.sentAuth=!1,this.bearerToken=null,this.user=null,this.pass=null}o.prototype.basic=function(e,t,i){if(("string"!=typeof e||void 0!==t&&"string"!=typeof t)&&this.request.emit("error",new Error("auth() received invalid user or password")),this.user=e,this.pass=t,this.hasAuth=!0,i||void 0===i)return i="Basic "+n(e+":"+(t||"")),this.sentAuth=!0,i},o.prototype.bearer=function(e,t){if(this.bearerToken=e,this.hasAuth=!0,t||void 0===t)return t="Bearer "+((e="function"==typeof e?e():e)||""),this.sentAuth=!0,t},o.prototype.digest=function(e,t,i){for(var r={},n=/([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;;){var o=n.exec(i);if(!o)break;r[o[1]]=o[2]||o[3]}var c,u=/(^|,)\s*auth\s*($|,)/.test(r.qop)&&"auth",h=u&&"00000001",l=u&&a().replace(/-/g,""),p=function(e,t,i,r,a,n){return t=s(t+":"+i+":"+r),e&&"md5-sess"===e.toLowerCase()?s(t+":"+a+":"+n):t}(r.algorithm,this.user,r.realm,this.pass,r.nonce,l),d=(e=s(e+":"+t),p=s(u?p+":"+r.nonce+":"+h+":"+l+":"+u+":"+e:p+":"+r.nonce+":"+e),{username:this.user,realm:r.realm,nonce:r.nonce,uri:t,qop:u,response:p,nc:h,cnonce:l,algorithm:r.algorithm,opaque:r.opaque});for(c in i=[],d)d[c]&&("qop"===c||"nc"===c||"algorithm"===c?i.push(c+"="+d[c]):i.push(c+'="'+d[c]+'"'));return i="Digest "+i.join(", "),this.sentAuth=!0,i},o.prototype.onRequest=function(e,t,i,r){var a,s=this.request;void 0===r&&void 0===e?this.request.emit("error",new Error("no auth mechanism defined")):a=void 0!==r?this.bearer(r,i):this.basic(e,t,i),a&&s.setHeader("authorization",a)},o.prototype.onResponse=function(e){var t=this.request;if(!this.hasAuth||this.sentAuth)return null;var i=r(e.headers).get("www-authenticate");e=i&&i.split(" ")[0].toLowerCase();switch(t.debug("reauth",e),e){case"basic":return this.basic(this.user,this.pass,!0);case"bearer":return this.bearer(this.bearerToken,!0);case"digest":return this.digest(t.method,t.path,i)}},t.Auth=o},function(e,t,i){"use strict";var r=i(43),a=i(288),s=i(182),n=i(186),o=i(551),c=i(8),u=i(39).Buffer;function h(e){this.request=e,this.params=null}h.prototype.buildParams=function(e,t,i,r,a,s){var c,u={};for(c in e)u["oauth_"+c]=e[c];u.oauth_version||(u.oauth_version="1.0"),u.oauth_timestamp||(u.oauth_timestamp=Math.floor(Date.now()/1e3).toString()),u.oauth_nonce||(u.oauth_nonce=n().replace(/-/g,"")),u.oauth_signature_method||(u.oauth_signature_method="HMAC-SHA1");var h=u.oauth_consumer_secret||u.oauth_private_key,l=(delete u.oauth_consumer_secret,delete u.oauth_private_key,u.oauth_token_secret),p=(delete u.oauth_token_secret,u.oauth_realm);delete u.oauth_realm,delete u.oauth_transport_method,t=t.protocol+"//"+t.host+t.pathname,r=s.parse([].concat(r,a,s.stringify(u)).join("&"));return u.oauth_signature=o.sign(u.oauth_signature_method,i,t,r,h,l),p&&(u.realm=p),u},h.prototype.buildBodyHash=function(e,t){return["HMAC-SHA1","RSA-SHA1"].indexOf(e.signature_method||"HMAC-SHA1")<0&&this.request.emit("error",new Error("oauth: "+e.signature_method+" signature_method not supported with body_hash signing.")),(e=c.createHash("sha1")).update(t||""),t=e.digest("hex"),u.from(t,"hex").toString("base64")},h.prototype.concatParams=function(e,t,i){i=i||"";var r=Object.keys(e).filter((function(e){return"realm"!==e&&"oauth_signature"!==e})).sort();return e.realm&&r.splice(0,0,"realm"),r.push("oauth_signature"),r.map((function(t){return t+"="+i+o.rfc3986(e[t])+i})).join(t)},h.prototype.onRequest=function(e){var t,i,n=this,o=(n.params=e,n.request.uri||{}),c=n.request.method||"",u=s(n.request.headers),h=n.request.body||"",l=n.request.qsLib||a,p=(u=u.get("content-type")||"","application/x-www-form-urlencoded"),d=e.transport_method||"header",f=(u.slice(0,p.length)===p&&(u=p,t=h),o.query&&(i=o.query),"body"!==d||"POST"===c&&u===p||n.request.emit("error",new Error("oauth: transport_method of body requires POST and content-type "+p)),t||"boolean"!=typeof e.body_hash||(e.body_hash=n.buildBodyHash(e,n.request.body.toString())),n.buildParams(e,o,c,i,t,l));switch(d){case"header":n.request.setHeader("Authorization","OAuth "+n.concatParams(f,",",'"'));break;case"query":var m=n.request.uri.href+=(i?"&":"?")+n.concatParams(f,"&");n.request.uri=r.parse(m),n.request.path=n.request.uri.path;break;case"body":n.request.body=(t?t+"&":"")+n.concatParams(f,"&");break;default:n.request.emit("error",new Error("oauth: transport_method invalid"))}},t.OAuth=h},function(e,t,i){var r=i(8);function a(e,t,i){return r.createHmac(i,e).update(t).digest("base64")}function s(e){return encodeURIComponent(e).replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/'/g,"%27")}function n(e,t){return t<e?1:e<t?-1:0}function o(e,t,i){return i=function(e){var t,i,r=[];for(t in e)if(i=e[t],Array.isArray(i))for(var a=0;a<i.length;a++)r.push([t,i[a]]);else if("object"==typeof i)for(var s in i)r.push([t+"["+s+"]",i[s]]);else r.push([t,i]);return r}(i).map((function(e){return[s(e[0]),s(e[1]||"")]})).sort((function(e,t){return n(e[0],t[0])||n(e[1],t[1])})).map((function(e){return e.join("=")})).join("&"),[s(e?e.toUpperCase():"GET"),s(t),s(i)].join("&")}function c(e,t,i,r,n){return e=o(e,t,i),a([r||"",n||""].map(s).join("&"),e,"sha1")}function u(e,t,i,r,n){return e=o(e,t,i),a([r||"",n||""].map(s).join("&"),e,"sha256")}function h(e,t,i,a,s){return e=o(e,t,i),t=a||"",i=e,r.createSign("RSA-SHA1").update(i).sign(t,"base64")}function l(e,t){return[e||"",t||""].map(s).join("&")}t.hmacsign=c,t.hmacsign256=u,t.rsasign=h,t.plaintext=l,t.sign=function(e,t,i,r,a,s){var n,o=1;switch(e){case"RSA-SHA1":n=h;break;case"HMAC-SHA1":n=c;break;case"HMAC-SHA256":n=u;break;case"PLAINTEXT":n=l,o=4;break;default:throw new Error("Signature method not supported: "+e)}return n.apply(null,[].slice.call(arguments,o))},t.rfc3986=s,t.generateBase=o},function(e,t,i){"use strict";var r=i(8);t.calculateMac=function(e,t){var i="hawk.1.header\n"+t.ts+"\n"+t.nonce+"\n"+(t.method||"").toUpperCase()+"\n"+t.resource+"\n"+t.host.toLowerCase()+"\n"+t.port+"\n"+(t.hash||"")+"\n";return t.ext&&(i+=t.ext.replace("\\","\\\\").replace("\n","\\n")),i+="\n",t.app&&(i=i+t.app+"\n"+(t.dlg||"")+"\n"),r.createHmac(e.algorithm,e.key).update(i).digest("base64")},t.header=function(e,i,a){var s=a.timestamp||Math.floor((Date.now()+(a.localtimeOffsetMsec||0))/1e3),n=a.credentials;return n&&n.id&&n.key&&n.algorithm&&-1!==["sha1","sha256"].indexOf(n.algorithm)?((s={ts:s,nonce:a.nonce||(s=6,r.randomBytes(Math.ceil(6*(s+1)/8)).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"").slice(0,s)),method:i,resource:e.pathname+(e.search||""),host:e.hostname,port:e.port||("http:"===e.protocol?80:443),hash:a.hash,ext:a.ext,app:a.app,dlg:a.dlg}).hash||!a.payload&&""!==a.payload||(s.hash=(i=a.payload,e=n.algorithm,a=a.contentType,(e=r.createHash(e)).update("hawk.1.payload\n"),e.update((a?a.split(";")[0].trim().toLowerCase():"")+"\n"),e.update(i||""),e.update("\n"),e.digest("base64"))),a=t.calculateMac(n,s),i='Hawk id="'+n.id+'", ts="'+s.ts+'", nonce="'+s.nonce+(s.hash?'", hash="'+s.hash:"")+(null!=s.ext&&""!==s.ext?'", ext="'+s.ext.replace(/\\/g,"\\\\").replace(/"/g,'\\"'):"")+'", mac="'+a+'"',s.app?i+', app="'+s.app+(s.dlg?'", dlg="'+s.dlg:"")+'"':i):""}},function(e,t,i){"use strict";var r=i(186),a=i(280),s=i(287),n=i(39).Buffer;function o(e){this.request=e,this.boundary=r(),this.chunked=!1,this.body=null}o.prototype.isChunked=function(e){var t=this,i=!1,r=e.data||e;return r.forEach||t.request.emit("error",new Error("Argument error, options.multipart.")),void 0!==e.chunked&&(i=e.chunked),(i="chunked"===t.request.getHeader("transfer-encoding")||i)||r.forEach((function(e){void 0===e.body&&t.request.emit("error",new Error("Body attribute missing in multipart.")),s(e.body)&&(i=!0)})),i},o.prototype.setHeaders=function(e){e&&!this.request.hasHeader("transfer-encoding")&&this.request.setHeader("transfer-encoding","chunked"),(e=this.request.getHeader("content-type"))&&-1!==e.indexOf("multipart")?-1!==e.indexOf("boundary")?this.boundary=e.replace(/.*boundary=([^\s;]+).*/,"$1"):this.request.setHeader("content-type",e+"; boundary="+this.boundary):this.request.setHeader("content-type","multipart/related; boundary="+this.boundary)},o.prototype.build=function(e,t){var i=this,r=t?new a:[];function s(e){"number"==typeof e&&(e=e.toString()),t?r.append(e):r.push(n.from(e))}return i.request.preambleCRLF&&s("\r\n"),e.forEach((function(e){var t="--"+i.boundary+"\r\n";Object.keys(e).forEach((function(i){"body"!==i&&(t+=i+": "+e[i]+"\r\n")})),s(t+="\r\n"),s(e.body),s("\r\n")})),s("--"+i.boundary+"--"),i.request.postambleCRLF&&s("\r\n"),r},o.prototype.onRequest=function(e){var t=this.isChunked(e);e=e.data||e;this.setHeaders(t),this.chunked=t,this.body=this.build(e,t)},t.Multipart=o},function(e,t,i){"use strict";var r=i(43),a=/^https?:/;function s(e){this.request=e,this.followRedirect=!0,this.followRedirects=!0,this.followAllRedirects=!1,this.followOriginalHttpMethod=!1,this.allowRedirect=function(){return!0},this.maxRedirects=10,this.redirects=[],this.redirectsFollowed=0,this.removeRefererHeader=!1}s.prototype.onRequest=function(e){var t=this;void 0!==e.maxRedirects&&(t.maxRedirects=e.maxRedirects),"function"==typeof e.followRedirect&&(t.allowRedirect=e.followRedirect),void 0!==e.followRedirect&&(t.followRedirects=!!e.followRedirect),void 0!==e.followAllRedirects&&(t.followAllRedirects=e.followAllRedirects),(t.followRedirects||t.followAllRedirects)&&(t.redirects=t.redirects||[]),void 0!==e.removeRefererHeader&&(t.removeRefererHeader=e.removeRefererHeader),void 0!==e.followOriginalHttpMethod&&(t.followOriginalHttpMethod=e.followOriginalHttpMethod)},s.prototype.redirectTo=function(e){var t=this.request,i=null;if(300<=e.statusCode&&e.statusCode<400&&e.caseless.has("location")){var r=e.caseless.get("location");if(t.debug("redirect",r),this.followAllRedirects)i=r;else if(this.followRedirects)switch(t.method){case"PATCH":case"PUT":case"POST":case"DELETE":break;default:i=r}}else 401===e.statusCode&&(e=t._auth.onResponse(e))&&(t.setHeader("authorization",e),i=t.uri);return i},s.prototype.onResponse=function(e){var t=this,i=t.request,s=t.redirectTo(e);if(!s||!t.allowRedirect.call(i,e))return!1;if(i.debug("redirect to",s),e.resume&&e.resume(),t.redirectsFollowed>=t.maxRedirects)return i.emit("error",new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+i.uri.href)),!1;t.redirectsFollowed+=1,a.test(s)||(s=r.resolve(i.uri.href,s));var n=i.uri;return i.uri=r.parse(s),i.uri.protocol!==n.protocol&&delete i.agent,t.redirects.push({statusCode:e.statusCode,redirectUri:s}),t.followAllRedirects&&"HEAD"!==i.method&&401!==e.statusCode&&307!==e.statusCode&&(i.method=t.followOriginalHttpMethod?i.method:"GET"),delete i.src,delete i.req,delete i._started,401!==e.statusCode&&307!==e.statusCode&&(delete i.body,delete i._form,i.headers)&&(i.removeHeader("host"),i.removeHeader("content-type"),i.removeHeader("content-length"),i.uri.hostname!==i.originalHost.split(":")[0])&&i.removeHeader("authorization"),t.removeRefererHeader||i.setHeader("referer",n.href),i.emit("redirect"),i.init(),!0},t.Redirect=s},function(e,t,i){"use strict";var r=i(43),a=i(556),s=["accept","accept-charset","accept-encoding","accept-language","accept-ranges","cache-control","content-encoding","content-language","content-location","content-md5","content-range","content-type","connection","date","expect","max-forwards","pragma","referer","te","user-agent","via"],n=["proxy-authorization"];function o(e){this.request=e,this.proxyHeaderWhiteList=s,this.proxyHeaderExclusiveList=[],void 0!==e.tunnel&&(this.tunnelOverride=e.tunnel)}o.prototype.isEnabled=function(){var e=this.request;return void 0!==this.tunnelOverride?this.tunnelOverride:"https:"===e.uri.protocol},o.prototype.setup=function(e){var t=this.request;if(e=e||{},"string"==typeof t.proxy&&(t.proxy=r.parse(t.proxy)),!t.proxy||!t.tunnel)return!1;e.proxyHeaderWhiteList&&(this.proxyHeaderWhiteList=e.proxyHeaderWhiteList),e.proxyHeaderExclusiveList&&(this.proxyHeaderExclusiveList=e.proxyHeaderExclusiveList);e=this.proxyHeaderExclusiveList.concat(n);var i,s,o,c=this.proxyHeaderWhiteList.concat(e),u=((c=(i=t.headers,s=c.reduce((function(e,t){return e[t.toLowerCase()]=!0,e}),{}),Object.keys(i).filter((function(e){return s[e.toLowerCase()]})).reduce((function(e,t){return e[t]=i[t],e}),{}))).host=(h=(u=t.uri).port,o=u.protocol,u=u.hostname+":",u+=h||("https:"===o?"443":"80")),e.forEach(t.removeHeader,t),o=(h=t).uri,h=h.proxy,o=["https:"===o.protocol?"https":"http","https:"===h.protocol?"Https":"Http"].join("Over"),a[o]),h={proxy:{host:(e=t.proxy).hostname,port:+e.port,proxyAuth:e.auth,headers:c},headers:t.headers,ca:t.ca,cert:t.cert,key:t.key,passphrase:t.passphrase,pfx:t.pfx,ciphers:t.ciphers,rejectUnauthorized:t.rejectUnauthorized,secureOptions:t.secureOptions,secureProtocol:t.secureProtocol};return t.agent=u(h),!0},o.defaultProxyHeaderWhiteList=s,o.defaultProxyHeaderExclusiveList=n,t.Tunnel=o},function(e,t,i){"use strict";i(90);var r,a=i(147),s=i(61),n=i(82),o=i(16),c=i(0),u=i(9),h=i(39).Buffer;function l(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||s.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",(function(e,i,r){for(var a=0,s=t.requests.length;a<s;++a){var n=t.requests[a];if(n.host===i&&n.port===r)return t.requests.splice(a,1),void n.request.onSocket(e)}e.destroy(),t.removeSocket(e)}))}function p(e,t){var i=this;l.prototype.createSocket.call(i,e,(function(r){var s=a.connect(0,d({},i.options,{servername:e.host,socket:r}));i.sockets[i.sockets.indexOf(r)]=s,t(s)}))}function d(e){for(var t=1,i=arguments.length;t<i;++t){var r=arguments[t];if("object"==typeof r)for(var a=Object.keys(r),s=0,n=a.length;s<n;++s){var o=a[s];void 0!==r[o]&&(e[o]=r[o])}}return e}t.httpOverHttp=function(e){return(e=new l(e)).request=s.request,e},t.httpsOverHttp=function(e){return(e=new l(e)).request=s.request,e.createSocket=p,e.defaultPort=443,e},t.httpOverHttps=function(e){return(e=new l(e)).request=n.request,e},t.httpsOverHttps=function(e){return(e=new l(e)).request=n.request,e.createSocket=p,e.defaultPort=443,e},u.inherits(l,o.EventEmitter),l.prototype.addRequest=function(e,t){"string"==typeof t&&(t={host:t,port:arguments[2],path:arguments[3]}),this.sockets.length>=this.maxSockets?this.requests.push({host:t.host,port:t.port,request:e}):this.createConnection({host:t.host,port:t.port,request:e})},l.prototype.createConnection=function(e){var t=this;t.createSocket(e,(function(i){function r(){t.emit("free",i,e.host,e.port)}function a(e){t.removeSocket(i),i.removeListener("free",r),i.removeListener("close",a),i.removeListener("agentRemove",a)}i.on("free",r),i.on("close",a),i.on("agentRemove",a),e.request.onSocket(i)}))},l.prototype.createSocket=function(e,t){var i=this,a={},s=(i.sockets.push(a),d({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1})),n=(s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+h.from(s.proxyAuth).toString("base64")),r("making CONNECT request"),i.request(s));function o(s,o,u){n.removeAllListeners(),o.removeAllListeners(),200===s.statusCode?(c.equal(u.length,0),r("tunneling connection has established"),i.sockets[i.sockets.indexOf(a)]=o,t(o)):(r("tunneling socket could not be established, statusCode=%d",s.statusCode),(u=new Error("tunneling socket could not be established, statusCode="+s.statusCode)).code="ECONNRESET",e.request.emit("error",u),i.removeSocket(a))}n.useChunkedEncodingByDefault=!1,n.once("response",(function(e){e.upgrade=!0})),n.once("upgrade",(function(e,t,i){process.nextTick((function(){o(e,t,i)}))})),n.once("connect",o),n.once("error",(function(t){n.removeAllListeners(),r("tunneling socket could not be established, cause=%s\n",t.message,t.stack),(t=new Error("tunneling socket could not be established, cause="+t.message)).code="ECONNRESET",e.request.emit("error",t),i.removeSocket(a)})),n.end()},l.prototype.removeSocket=function(e){-1!==(e=this.sockets.indexOf(e))&&(this.sockets.splice(e,1),e=this.requests.shift())&&this.createConnection(e)},r=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:function(){},t.debug=r},function(e,t){(function(){var t,i,r,a,s,n;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(e.exports=function(){return(t()-s)/1e6},i=process.hrtime,a=(t=function(){var e=i();return 1e9*e[0]+e[1]})(),n=1e9*process.uptime(),s=a-n):r=Date.now?(e.exports=function(){return Date.now()-r},Date.now()):(e.exports=function(){return(new Date).getTime()-r},(new Date).getTime())}).call(this)},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("block",["tips"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("chain",["full"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("header",["block"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("inv",["inv","tx","block"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("mempool",["transaction"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("config",["changed"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("p2p",["transaction","block","headers"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("prop",["receive"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("notify",["receive","remove"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("ca",["issue","unissue","abolish","unabolish"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("cp",["register"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("sc",["publish"])}},e.exports=i},function(e,t,i){"use strict";var r=i(0);function a(e,t){if(!e)throw new a.AssertionError({message:t,actual:e,expected:!0,operator:"==",stackStartFunction:a})}const s=i(9);function n(e,t,i){if("string"!=typeof e)throw new a.AssertionError({message:t,actual:u(e),expected:"string",operator:"typeof ==",stackStartFunction:i})}function o(e,t,i){if("function"!=typeof e)throw new a.AssertionError({message:t,actual:u(e),expected:"function",operator:"typeof ==",stackStartFunction:i})}function c(e,t,i){if(!Buffer.isBuffer(e))throw new a.AssertionError({message:t,actual:u(e),expected:"buffer",operator:"typeof ==",stackStartFunction:i})}function u(e){var t=typeof e;switch(t){case"object":if(null===e)return"null";if(Array.isArray(e))return"array";if(Buffer.isBuffer(e))return"buffer";if(ArrayBuffer.isView(e))return"arraybuffer";if(s.isError(e))return"error";if(s.isDate(e))return"date";if(s.isRegExp(e))return"regexp";break;case"number":if(isFinite(e))break;return"nan"}return t}function h(e){if(void 0===e)return"undefined";if(null===e)return"null";if(void 0===(e=Object.getPrototypeOf(e)))throw new Error("Bad prototype.");return null===e?"Null":e.constructor?e.constructor.name||"Unknown":"Object"}function l(e){return e.name||"Unknown"}Object.setPrototypeOf(a,r),a.typeOf=function e(t,i,r){if(n(i,"`expected` must be a string.",e),(t=u(t))!==i)throw new a.AssertionError({message:r,actual:t,expected:i,operator:"typeof ==",stackStartFunction:e})},a.notTypeOf=function e(t,i,r){if(n(i,"`expected` must be a string.",e),(t=u(t))===i)throw new a.AssertionError({message:r,actual:t,expected:i,operator:"typeof !=",stackStartFunction:e})},a.instanceOf=function e(t,i,r){if(o(i,"`parent` must be a constructor.",e),!(t instanceof i))throw new a.AssertionError({message:r,actual:h(t),expected:l(i),operator:"instanceof",stackStartFunction:e})},a.notInstanceOf=function e(t,i,r){if(o(i,"`parent` must be a constructor.",e),t instanceof i)throw new a.AssertionError({message:r,actual:h(t),expected:l(i),operator:"not instanceof",stackStartFunction:e})},a.bufferEqual=function e(t,i,r){if(c(t,"`actual` must be a buffer.",e),c(i,"`expected` must be a buffer.",e),t!==i&&!t.equals(i))throw new a.AssertionError({message:r,actual:t.toString("hex"),expected:i.toString("hex"),operator:"===",stackStartFunction:e})},a.notBufferEqual=function e(t,i,r){if(c(t,"`actual` must be a buffer.",e),c(i,"`expected` must be a buffer.",e),t===i||t.equals(i))throw new a.AssertionError({message:r,actual:t.toString("hex"),expected:i.toString("hex"),operator:"!==",stackStartFunction:e})},e.exports=a},function(e,t,i){"use strict";e.exports=["的","一","是","在","不","了","有","和","人","这","中","大","为","上","个","国","我","以","要","他","时","来","用","们","生","到","作","地","于","出","就","分","对","成","会","可","主","发","年","动","同","工","也","能","下","过","子","说","产","种","面","而","方","后","多","定","行","学","法","所","民","得","经","十","三","之","进","着","等","部","度","家","电","力","里","如","水","化","高","自","二","理","起","小","物","现","实","加","量","都","两","体","制","机","当","使","点","从","业","本","去","把","性","好","应","开","它","合","还","因","由","其","些","然","前","外","天","政","四","日","那","社","义","事","平","形","相","全","表","间","样","与","关","各","重","新","线","内","数","正","心","反","你","明","看","原","又","么","利","比","或","但","质","气","第","向","道","命","此","变","条","只","没","结","解","问","意","建","月","公","无","系","军","很","情","者","最","立","代","想","已","通","并","提","直","题","党","程","展","五","果","料","象","员","革","位","入","常","文","总","次","品","式","活","设","及","管","特","件","长","求","老","头","基","资","边","流","路","级","少","图","山","统","接","知","较","将","组","见","计","别","她","手","角","期","根","论","运","农","指","几","九","区","强","放","决","西","被","干","做","必","战","先","回","则","任","取","据","处","队","南","给","色","光","门","即","保","治","北","造","百","规","热","领","七","海","口","东","导","器","压","志","世","金","增","争","济","阶","油","思","术","极","交","受","联","什","认","六","共","权","收","证","改","清","美","再","采","转","更","单","风","切","打","白","教","速","花","带","安","场","身","车","例","真","务","具","万","每","目","至","达","走","积","示","议","声","报","斗","完","类","八","离","华","名","确","才","科","张","信","马","节","话","米","整","空","元","况","今","集","温","传","土","许","步","群","广","石","记","需","段","研","界","拉","林","律","叫","且","究","观","越","织","装","影","算","低","持","音","众","书","布","复","容","儿","须","际","商","非","验","连","断","深","难","近","矿","千","周","委","素","技","备","半","办","青","省","列","习","响","约","支","般","史","感","劳","便","团","往","酸","历","市","克","何","除","消","构","府","称","太","准","精","值","号","率","族","维","划","选","标","写","存","候","毛","亲","快","效","斯","院","查","江","型","眼","王","按","格","养","易","置","派","层","片","始","却","专","状","育","厂","京","识","适","属","圆","包","火","住","调","满","县","局","照","参","红","细","引","听","该","铁","价","严","首","底","液","官","德","随","病","苏","失","尔","死","讲","配","女","黄","推","显","谈","罪","神","艺","呢","席","含","企","望","密","批","营","项","防","举","球","英","氧","势","告","李","台","落","木","帮","轮","破","亚","师","围","注","远","字","材","排","供","河","态","封","另","施","减","树","溶","怎","止","案","言","士","均","武","固","叶","鱼","波","视","仅","费","紧","爱","左","章","早","朝","害","续","轻","服","试","食","充","兵","源","判","护","司","足","某","练","差","致","板","田","降","黑","犯","负","击","范","继","兴","似","余","坚","曲","输","修","故","城","夫","够","送","笔","船","占","右","财","吃","富","春","职","觉","汉","画","功","巴","跟","虽","杂","飞","检","吸","助","升","阳","互","初","创","抗","考","投","坏","策","古","径","换","未","跑","留","钢","曾","端","责","站","简","述","钱","副","尽","帝","射","草","冲","承","独","令","限","阿","宣","环","双","请","超","微","让","控","州","良","轴","找","否","纪","益","依","优","顶","础","载","倒","房","突","坐","粉","敌","略","客","袁","冷","胜","绝","析","块","剂","测","丝","协","诉","念","陈","仍","罗","盐","友","洋","错","苦","夜","刑","移","频","逐","靠","混","母","短","皮","终","聚","汽","村","云","哪","既","距","卫","停","烈","央","察","烧","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","游","久","菜","味","旧","模","湖","货","损","预","阻","毫","普","稳","乙","妈","植","息","扩","银","语","挥","酒","守","拿","序","纸","医","缺","雨","吗","针","刘","啊","急","唱","误","训","愿","审","附","获","茶","鲜","粮","斤","孩","脱","硫","肥","善","龙","演","父","渐","血","欢","械","掌","歌","沙","刚","攻","谓","盾","讨","晚","粒","乱","燃","矛","乎","杀","药","宁","鲁","贵","钟","煤","读","班","伯","香","介","迫","句","丰","培","握","兰","担","弦","蛋","沉","假","穿","执","答","乐","谁","顺","烟","缩","征","脸","喜","松","脚","困","异","免","背","星","福","买","染","井","概","慢","怕","磁","倍","祖","皇","促","静","补","评","翻","肉","践","尼","衣","宽","扬","棉","希","伤","操","垂","秋","宜","氢","套","督","振","架","亮","末","宪","庆","编","牛","触","映","雷","销","诗","座","居","抓","裂","胞","呼","娘","景","威","绿","晶","厚","盟","衡","鸡","孙","延","危","胶","屋","乡","临","陆","顾","掉","呀","灯","岁","措","束","耐","剧","玉","赵","跳","哥","季","课","凯","胡","额","款","绍","卷","齐","伟","蒸","殖","永","宗","苗","川","炉","岩","弱","零","杨","奏","沿","露","杆","探","滑","镇","饭","浓","航","怀","赶","库","夺","伊","灵","税","途","灭","赛","归","召","鼓","播","盘","裁","险","康","唯","录","菌","纯","借","糖","盖","横","符","私","努","堂","域","枪","润","幅","哈","竟","熟","虫","泽","脑","壤","碳","欧","遍","侧","寨","敢","彻","虑","斜","薄","庭","纳","弹","饲","伸","折","麦","湿","暗","荷","瓦","塞","床","筑","恶","户","访","塔","奇","透","梁","刀","旋","迹","卡","氯","遇","份","毒","泥","退","洗","摆","灰","彩","卖","耗","夏","择","忙","铜","献","硬","予","繁","圈","雪","函","亦","抽","篇","阵","阴","丁","尺","追","堆","雄","迎","泛","爸","楼","避","谋","吨","野","猪","旗","累","偏","典","馆","索","秦","脂","潮","爷","豆","忽","托","惊","塑","遗","愈","朱","替","纤","粗","倾","尚","痛","楚","谢","奋","购","磨","君","池","旁","碎","骨","监","捕","弟","暴","割","贯","殊","释","词","亡","壁","顿","宝","午","尘","闻","揭","炮","残","冬","桥","妇","警","综","招","吴","付","浮","遭","徐","您","摇","谷","赞","箱","隔","订","男","吹","园","纷","唐","败","宋","玻","巨","耕","坦","荣","闭","湾","键","凡","驻","锅","救","恩","剥","凝","碱","齿","截","炼","麻","纺","禁","废","盛","版","缓","净","睛","昌","婚","涉","筒","嘴","插","岸","朗","庄","街","藏","姑","贸","腐","奴","啦","惯","乘","伙","恢","匀","纱","扎","辩","耳","彪","臣","亿","璃","抵","脉","秀","萨","俄","网","舞","店","喷","纵","寸","汗","挂","洪","贺","闪","柬","爆","烯","津","稻","墙","软","勇","像","滚","厘","蒙","芳","肯","坡","柱","荡","腿","仪","旅","尾","轧","冰","贡","登","黎","削","钻","勒","逃","障","氨","郭","峰","币","港","伏","轨","亩","毕","擦","莫","刺","浪","秘","援","株","健","售","股","岛","甘","泡","睡","童","铸","汤","阀","休","汇","舍","牧","绕","炸","哲","磷","绩","朋","淡","尖","启","陷","柴","呈","徒","颜","泪","稍","忘","泵","蓝","拖","洞","授","镜","辛","壮","锋","贫","虚","弯","摩","泰","幼","廷","尊","窗","纲","弄","隶","疑","氏","宫","姐","震","瑞","怪","尤","琴","循","描","膜","违","夹","腰","缘","珠","穷","森","枝","竹","沟","催","绳","忆","邦","剩","幸","浆","栏","拥","牙","贮","礼","滤","钠","纹","罢","拍","咱","喊","袖","埃","勤","罚","焦","潜","伍","墨","欲","缝","姓","刊","饱","仿","奖","铝","鬼","丽","跨","默","挖","链","扫","喝","袋","炭","污","幕","诸","弧","励","梅","奶","洁","灾","舟","鉴","苯","讼","抱","毁","懂","寒","智","埔","寄","届","跃","渡","挑","丹","艰","贝","碰","拔","爹","戴","码","梦","芽","熔","赤","渔","哭","敬","颗","奔","铅","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","仓","魏","锐","晓","氮","兼","隐","碍","赫","拨","忠","肃","缸","牵","抢","博","巧","壳","兄","杜","讯","诚","碧","祥","柯","页","巡","矩","悲","灌","龄","伦","票","寻","桂","铺","圣","恐","恰","郑","趣","抬","荒","腾","贴","柔","滴","猛","阔","辆","妻","填","撤","储","签","闹","扰","紫","砂","递","戏","吊","陶","伐","喂","疗","瓶","婆","抚","臂","摸","忍","虾","蜡","邻","胸","巩","挤","偶","弃","槽","劲","乳","邓","吉","仁","烂","砖","租","乌","舰","伴","瓜","浅","丙","暂","燥","橡","柳","迷","暖","牌","秧","胆","详","簧","踏","瓷","谱","呆","宾","糊","洛","辉","愤","竞","隙","怒","粘","乃","绪","肩","籍","敏","涂","熙","皆","侦","悬","掘","享","纠","醒","狂","锁","淀","恨","牲","霸","爬","赏","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鸭","趋","凤","晨","畜","辈","秩","卵","署","梯","炎","滩","棋","驱","筛","峡","冒","啥","寿","译","浸","泉","帽","迟","硅","疆","贷","漏","稿","冠","嫩","胁","芯","牢","叛","蚀","奥","鸣","岭","羊","凭","串","塘","绘","酵","融","盆","锡","庙","筹","冻","辅","摄","袭","筋","拒","僚","旱","钾","鸟","漆","沈","眉","疏","添","棒","穗","硝","韩","逼","扭","侨","凉","挺","碗","栽","炒","杯","患","馏","劝","豪","辽","勃","鸿","旦","吏","拜","狗","埋","辊","掩","饮","搬","骂","辞","勾","扣","估","蒋","绒","雾","丈","朵","姆","拟","宇","辑","陕","雕","偿","蓄","崇","剪","倡","厅","咬","驶","薯","刷","斥","番","赋","奉","佛","浇","漫","曼","扇","钙","桃","扶","仔","返","俗","亏","腔","鞋","棱","覆","框","悄","叔","撞","骗","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","胀","谐","抛","霉","桑","岗","嘛","衰","盗","渗","脏","赖","涌","甜","曹","阅","肌","哩","厉","烃","纬","毅","昨","伪","症","煮","叹","钉","搭","茎","笼","酷","偷","弓","锥","恒","杰","坑","鼻","翼","纶","叙","狱","逮","罐","络","棚","抑","膨","蔬","寺","骤","穆","冶","枯","册","尸","凸","绅","坯","牺","焰","轰","欣","晋","瘦","御","锭","锦","丧","旬","锻","垄","搜","扑","邀","亭","酯","迈","舒","脆","酶","闲","忧","酚","顽","羽","涨","卸","仗","陪","辟","惩","杭","姚","肚","捉","飘","漂","昆","欺","吾","郎","烷","汁","呵","饰","萧","雅","邮","迁","燕","撒","姻","赴","宴","烦","债","帐","斑","铃","旨","醇","董","饼","雏","姿","拌","傅","腹","妥","揉","贤","拆","歪","葡","胺","丢","浩","徽","昂","垫","挡","览","贪","慰","缴","汪","慌","冯","诺","姜","谊","凶","劣","诬","耀","昏","躺","盈","骑","乔","溪","丛","卢","抹","闷","咨","刮","驾","缆","悟","摘","铒","掷","颇","幻","柄","惠","惨","佳","仇","腊","窝","涤","剑","瞧","堡","泼","葱","罩","霍","捞","胎","苍","滨","俩","捅","湘","砍","霞","邵","萄","疯","淮","遂","熊","粪","烘","宿","档","戈","驳","嫂","裕","徙","箭","捐","肠","撑","晒","辨","殿","莲","摊","搅","酱","屏","疫","哀","蔡","堵","沫","皱","畅","叠","阁","莱","敲","辖","钩","痕","坝","巷","饿","祸","丘","玄","溜","曰","逻","彭","尝","卿","妨","艇","吞","韦","怨","矮","歇"]},function(e,t,i){"use strict";e.exports=["的","一","是","在","不","了","有","和","人","這","中","大","為","上","個","國","我","以","要","他","時","來","用","們","生","到","作","地","於","出","就","分","對","成","會","可","主","發","年","動","同","工","也","能","下","過","子","說","產","種","面","而","方","後","多","定","行","學","法","所","民","得","經","十","三","之","進","著","等","部","度","家","電","力","裡","如","水","化","高","自","二","理","起","小","物","現","實","加","量","都","兩","體","制","機","當","使","點","從","業","本","去","把","性","好","應","開","它","合","還","因","由","其","些","然","前","外","天","政","四","日","那","社","義","事","平","形","相","全","表","間","樣","與","關","各","重","新","線","內","數","正","心","反","你","明","看","原","又","麼","利","比","或","但","質","氣","第","向","道","命","此","變","條","只","沒","結","解","問","意","建","月","公","無","系","軍","很","情","者","最","立","代","想","已","通","並","提","直","題","黨","程","展","五","果","料","象","員","革","位","入","常","文","總","次","品","式","活","設","及","管","特","件","長","求","老","頭","基","資","邊","流","路","級","少","圖","山","統","接","知","較","將","組","見","計","別","她","手","角","期","根","論","運","農","指","幾","九","區","強","放","決","西","被","幹","做","必","戰","先","回","則","任","取","據","處","隊","南","給","色","光","門","即","保","治","北","造","百","規","熱","領","七","海","口","東","導","器","壓","志","世","金","增","爭","濟","階","油","思","術","極","交","受","聯","什","認","六","共","權","收","證","改","清","美","再","採","轉","更","單","風","切","打","白","教","速","花","帶","安","場","身","車","例","真","務","具","萬","每","目","至","達","走","積","示","議","聲","報","鬥","完","類","八","離","華","名","確","才","科","張","信","馬","節","話","米","整","空","元","況","今","集","溫","傳","土","許","步","群","廣","石","記","需","段","研","界","拉","林","律","叫","且","究","觀","越","織","裝","影","算","低","持","音","眾","書","布","复","容","兒","須","際","商","非","驗","連","斷","深","難","近","礦","千","週","委","素","技","備","半","辦","青","省","列","習","響","約","支","般","史","感","勞","便","團","往","酸","歷","市","克","何","除","消","構","府","稱","太","準","精","值","號","率","族","維","劃","選","標","寫","存","候","毛","親","快","效","斯","院","查","江","型","眼","王","按","格","養","易","置","派","層","片","始","卻","專","狀","育","廠","京","識","適","屬","圓","包","火","住","調","滿","縣","局","照","參","紅","細","引","聽","該","鐵","價","嚴","首","底","液","官","德","隨","病","蘇","失","爾","死","講","配","女","黃","推","顯","談","罪","神","藝","呢","席","含","企","望","密","批","營","項","防","舉","球","英","氧","勢","告","李","台","落","木","幫","輪","破","亞","師","圍","注","遠","字","材","排","供","河","態","封","另","施","減","樹","溶","怎","止","案","言","士","均","武","固","葉","魚","波","視","僅","費","緊","愛","左","章","早","朝","害","續","輕","服","試","食","充","兵","源","判","護","司","足","某","練","差","致","板","田","降","黑","犯","負","擊","范","繼","興","似","餘","堅","曲","輸","修","故","城","夫","夠","送","筆","船","佔","右","財","吃","富","春","職","覺","漢","畫","功","巴","跟","雖","雜","飛","檢","吸","助","昇","陽","互","初","創","抗","考","投","壞","策","古","徑","換","未","跑","留","鋼","曾","端","責","站","簡","述","錢","副","盡","帝","射","草","衝","承","獨","令","限","阿","宣","環","雙","請","超","微","讓","控","州","良","軸","找","否","紀","益","依","優","頂","礎","載","倒","房","突","坐","粉","敵","略","客","袁","冷","勝","絕","析","塊","劑","測","絲","協","訴","念","陳","仍","羅","鹽","友","洋","錯","苦","夜","刑","移","頻","逐","靠","混","母","短","皮","終","聚","汽","村","雲","哪","既","距","衛","停","烈","央","察","燒","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","遊","久","菜","味","舊","模","湖","貨","損","預","阻","毫","普","穩","乙","媽","植","息","擴","銀","語","揮","酒","守","拿","序","紙","醫","缺","雨","嗎","針","劉","啊","急","唱","誤","訓","願","審","附","獲","茶","鮮","糧","斤","孩","脫","硫","肥","善","龍","演","父","漸","血","歡","械","掌","歌","沙","剛","攻","謂","盾","討","晚","粒","亂","燃","矛","乎","殺","藥","寧","魯","貴","鐘","煤","讀","班","伯","香","介","迫","句","豐","培","握","蘭","擔","弦","蛋","沉","假","穿","執","答","樂","誰","順","煙","縮","徵","臉","喜","松","腳","困","異","免","背","星","福","買","染","井","概","慢","怕","磁","倍","祖","皇","促","靜","補","評","翻","肉","踐","尼","衣","寬","揚","棉","希","傷","操","垂","秋","宜","氫","套","督","振","架","亮","末","憲","慶","編","牛","觸","映","雷","銷","詩","座","居","抓","裂","胞","呼","娘","景","威","綠","晶","厚","盟","衡","雞","孫","延","危","膠","屋","鄉","臨","陸","顧","掉","呀","燈","歲","措","束","耐","劇","玉","趙","跳","哥","季","課","凱","胡","額","款","紹","卷","齊","偉","蒸","殖","永","宗","苗","川","爐","岩","弱","零","楊","奏","沿","露","桿","探","滑","鎮","飯","濃","航","懷","趕","庫","奪","伊","靈","稅","途","滅","賽","歸","召","鼓","播","盤","裁","險","康","唯","錄","菌","純","借","糖","蓋","橫","符","私","努","堂","域","槍","潤","幅","哈","竟","熟","蟲","澤","腦","壤","碳","歐","遍","側","寨","敢","徹","慮","斜","薄","庭","納","彈","飼","伸","折","麥","濕","暗","荷","瓦","塞","床","築","惡","戶","訪","塔","奇","透","梁","刀","旋","跡","卡","氯","遇","份","毒","泥","退","洗","擺","灰","彩","賣","耗","夏","擇","忙","銅","獻","硬","予","繁","圈","雪","函","亦","抽","篇","陣","陰","丁","尺","追","堆","雄","迎","泛","爸","樓","避","謀","噸","野","豬","旗","累","偏","典","館","索","秦","脂","潮","爺","豆","忽","托","驚","塑","遺","愈","朱","替","纖","粗","傾","尚","痛","楚","謝","奮","購","磨","君","池","旁","碎","骨","監","捕","弟","暴","割","貫","殊","釋","詞","亡","壁","頓","寶","午","塵","聞","揭","炮","殘","冬","橋","婦","警","綜","招","吳","付","浮","遭","徐","您","搖","谷","贊","箱","隔","訂","男","吹","園","紛","唐","敗","宋","玻","巨","耕","坦","榮","閉","灣","鍵","凡","駐","鍋","救","恩","剝","凝","鹼","齒","截","煉","麻","紡","禁","廢","盛","版","緩","淨","睛","昌","婚","涉","筒","嘴","插","岸","朗","莊","街","藏","姑","貿","腐","奴","啦","慣","乘","夥","恢","勻","紗","扎","辯","耳","彪","臣","億","璃","抵","脈","秀","薩","俄","網","舞","店","噴","縱","寸","汗","掛","洪","賀","閃","柬","爆","烯","津","稻","牆","軟","勇","像","滾","厘","蒙","芳","肯","坡","柱","盪","腿","儀","旅","尾","軋","冰","貢","登","黎","削","鑽","勒","逃","障","氨","郭","峰","幣","港","伏","軌","畝","畢","擦","莫","刺","浪","秘","援","株","健","售","股","島","甘","泡","睡","童","鑄","湯","閥","休","匯","舍","牧","繞","炸","哲","磷","績","朋","淡","尖","啟","陷","柴","呈","徒","顏","淚","稍","忘","泵","藍","拖","洞","授","鏡","辛","壯","鋒","貧","虛","彎","摩","泰","幼","廷","尊","窗","綱","弄","隸","疑","氏","宮","姐","震","瑞","怪","尤","琴","循","描","膜","違","夾","腰","緣","珠","窮","森","枝","竹","溝","催","繩","憶","邦","剩","幸","漿","欄","擁","牙","貯","禮","濾","鈉","紋","罷","拍","咱","喊","袖","埃","勤","罰","焦","潛","伍","墨","欲","縫","姓","刊","飽","仿","獎","鋁","鬼","麗","跨","默","挖","鏈","掃","喝","袋","炭","污","幕","諸","弧","勵","梅","奶","潔","災","舟","鑑","苯","訟","抱","毀","懂","寒","智","埔","寄","屆","躍","渡","挑","丹","艱","貝","碰","拔","爹","戴","碼","夢","芽","熔","赤","漁","哭","敬","顆","奔","鉛","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","倉","魏","銳","曉","氮","兼","隱","礙","赫","撥","忠","肅","缸","牽","搶","博","巧","殼","兄","杜","訊","誠","碧","祥","柯","頁","巡","矩","悲","灌","齡","倫","票","尋","桂","鋪","聖","恐","恰","鄭","趣","抬","荒","騰","貼","柔","滴","猛","闊","輛","妻","填","撤","儲","簽","鬧","擾","紫","砂","遞","戲","吊","陶","伐","餵","療","瓶","婆","撫","臂","摸","忍","蝦","蠟","鄰","胸","鞏","擠","偶","棄","槽","勁","乳","鄧","吉","仁","爛","磚","租","烏","艦","伴","瓜","淺","丙","暫","燥","橡","柳","迷","暖","牌","秧","膽","詳","簧","踏","瓷","譜","呆","賓","糊","洛","輝","憤","競","隙","怒","粘","乃","緒","肩","籍","敏","塗","熙","皆","偵","懸","掘","享","糾","醒","狂","鎖","淀","恨","牲","霸","爬","賞","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鴨","趨","鳳","晨","畜","輩","秩","卵","署","梯","炎","灘","棋","驅","篩","峽","冒","啥","壽","譯","浸","泉","帽","遲","矽","疆","貸","漏","稿","冠","嫩","脅","芯","牢","叛","蝕","奧","鳴","嶺","羊","憑","串","塘","繪","酵","融","盆","錫","廟","籌","凍","輔","攝","襲","筋","拒","僚","旱","鉀","鳥","漆","沈","眉","疏","添","棒","穗","硝","韓","逼","扭","僑","涼","挺","碗","栽","炒","杯","患","餾","勸","豪","遼","勃","鴻","旦","吏","拜","狗","埋","輥","掩","飲","搬","罵","辭","勾","扣","估","蔣","絨","霧","丈","朵","姆","擬","宇","輯","陝","雕","償","蓄","崇","剪","倡","廳","咬","駛","薯","刷","斥","番","賦","奉","佛","澆","漫","曼","扇","鈣","桃","扶","仔","返","俗","虧","腔","鞋","棱","覆","框","悄","叔","撞","騙","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","脹","諧","拋","黴","桑","崗","嘛","衰","盜","滲","臟","賴","湧","甜","曹","閱","肌","哩","厲","烴","緯","毅","昨","偽","症","煮","嘆","釘","搭","莖","籠","酷","偷","弓","錐","恆","傑","坑","鼻","翼","綸","敘","獄","逮","罐","絡","棚","抑","膨","蔬","寺","驟","穆","冶","枯","冊","屍","凸","紳","坯","犧","焰","轟","欣","晉","瘦","禦","錠","錦","喪","旬","鍛","壟","搜","撲","邀","亭","酯","邁","舒","脆","酶","閒","憂","酚","頑","羽","漲","卸","仗","陪","闢","懲","杭","姚","肚","捉","飄","漂","昆","欺","吾","郎","烷","汁","呵","飾","蕭","雅","郵","遷","燕","撒","姻","赴","宴","煩","債","帳","斑","鈴","旨","醇","董","餅","雛","姿","拌","傅","腹","妥","揉","賢","拆","歪","葡","胺","丟","浩","徽","昂","墊","擋","覽","貪","慰","繳","汪","慌","馮","諾","姜","誼","兇","劣","誣","耀","昏","躺","盈","騎","喬","溪","叢","盧","抹","悶","諮","刮","駕","纜","悟","摘","鉺","擲","頗","幻","柄","惠","慘","佳","仇","臘","窩","滌","劍","瞧","堡","潑","蔥","罩","霍","撈","胎","蒼","濱","倆","捅","湘","砍","霞","邵","萄","瘋","淮","遂","熊","糞","烘","宿","檔","戈","駁","嫂","裕","徙","箭","捐","腸","撐","曬","辨","殿","蓮","攤","攪","醬","屏","疫","哀","蔡","堵","沫","皺","暢","疊","閣","萊","敲","轄","鉤","痕","壩","巷","餓","禍","丘","玄","溜","曰","邏","彭","嘗","卿","妨","艇","吞","韋","怨","矮","歇"]},function(e,t,i){"use strict";e.exports=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]},function(e,t,i){"use strict";e.exports=["abaisser","abandon","abdiquer","abeille","abolir","aborder","aboutir","aboyer","abrasif","abreuver","abriter","abroger","abrupt","absence","absolu","absurde","abusif","abyssal","académie","acajou","acarien","accabler","accepter","acclamer","accolade","accroche","accuser","acerbe","achat","acheter","aciduler","acier","acompte","acquérir","acronyme","acteur","actif","actuel","adepte","adéquat","adhésif","adjectif","adjuger","admettre","admirer","adopter","adorer","adoucir","adresse","adroit","adulte","adverbe","aérer","aéronef","affaire","affecter","affiche","affreux","affubler","agacer","agencer","agile","agiter","agrafer","agréable","agrume","aider","aiguille","ailier","aimable","aisance","ajouter","ajuster","alarmer","alchimie","alerte","algèbre","algue","aliéner","aliment","alléger","alliage","allouer","allumer","alourdir","alpaga","altesse","alvéole","amateur","ambigu","ambre","aménager","amertume","amidon","amiral","amorcer","amour","amovible","amphibie","ampleur","amusant","analyse","anaphore","anarchie","anatomie","ancien","anéantir","angle","angoisse","anguleux","animal","annexer","annonce","annuel","anodin","anomalie","anonyme","anormal","antenne","antidote","anxieux","apaiser","apéritif","aplanir","apologie","appareil","appeler","apporter","appuyer","aquarium","aqueduc","arbitre","arbuste","ardeur","ardoise","argent","arlequin","armature","armement","armoire","armure","arpenter","arracher","arriver","arroser","arsenic","artériel","article","aspect","asphalte","aspirer","assaut","asservir","assiette","associer","assurer","asticot","astre","astuce","atelier","atome","atrium","atroce","attaque","attentif","attirer","attraper","aubaine","auberge","audace","audible","augurer","aurore","automne","autruche","avaler","avancer","avarice","avenir","averse","aveugle","aviateur","avide","avion","aviser","avoine","avouer","avril","axial","axiome","badge","bafouer","bagage","baguette","baignade","balancer","balcon","baleine","balisage","bambin","bancaire","bandage","banlieue","bannière","banquier","barbier","baril","baron","barque","barrage","bassin","bastion","bataille","bateau","batterie","baudrier","bavarder","belette","bélier","belote","bénéfice","berceau","berger","berline","bermuda","besace","besogne","bétail","beurre","biberon","bicycle","bidule","bijou","bilan","bilingue","billard","binaire","biologie","biopsie","biotype","biscuit","bison","bistouri","bitume","bizarre","blafard","blague","blanchir","blessant","blinder","blond","bloquer","blouson","bobard","bobine","boire","boiser","bolide","bonbon","bondir","bonheur","bonifier","bonus","bordure","borne","botte","boucle","boueux","bougie","boulon","bouquin","bourse","boussole","boutique","boxeur","branche","brasier","brave","brebis","brèche","breuvage","bricoler","brigade","brillant","brioche","brique","brochure","broder","bronzer","brousse","broyeur","brume","brusque","brutal","bruyant","buffle","buisson","bulletin","bureau","burin","bustier","butiner","butoir","buvable","buvette","cabanon","cabine","cachette","cadeau","cadre","caféine","caillou","caisson","calculer","calepin","calibre","calmer","calomnie","calvaire","camarade","caméra","camion","campagne","canal","caneton","canon","cantine","canular","capable","caporal","caprice","capsule","capter","capuche","carabine","carbone","caresser","caribou","carnage","carotte","carreau","carton","cascade","casier","casque","cassure","causer","caution","cavalier","caverne","caviar","cédille","ceinture","céleste","cellule","cendrier","censurer","central","cercle","cérébral","cerise","cerner","cerveau","cesser","chagrin","chaise","chaleur","chambre","chance","chapitre","charbon","chasseur","chaton","chausson","chavirer","chemise","chenille","chéquier","chercher","cheval","chien","chiffre","chignon","chimère","chiot","chlorure","chocolat","choisir","chose","chouette","chrome","chute","cigare","cigogne","cimenter","cinéma","cintrer","circuler","cirer","cirque","citerne","citoyen","citron","civil","clairon","clameur","claquer","classe","clavier","client","cligner","climat","clivage","cloche","clonage","cloporte","cobalt","cobra","cocasse","cocotier","coder","codifier","coffre","cogner","cohésion","coiffer","coincer","colère","colibri","colline","colmater","colonel","combat","comédie","commande","compact","concert","conduire","confier","congeler","connoter","consonne","contact","convexe","copain","copie","corail","corbeau","cordage","corniche","corpus","correct","cortège","cosmique","costume","coton","coude","coupure","courage","couteau","couvrir","coyote","crabe","crainte","cravate","crayon","créature","créditer","crémeux","creuser","crevette","cribler","crier","cristal","critère","croire","croquer","crotale","crucial","cruel","crypter","cubique","cueillir","cuillère","cuisine","cuivre","culminer","cultiver","cumuler","cupide","curatif","curseur","cyanure","cycle","cylindre","cynique","daigner","damier","danger","danseur","dauphin","débattre","débiter","déborder","débrider","débutant","décaler","décembre","déchirer","décider","déclarer","décorer","décrire","décupler","dédale","déductif","déesse","défensif","défiler","défrayer","dégager","dégivrer","déglutir","dégrafer","déjeuner","délice","déloger","demander","demeurer","démolir","dénicher","dénouer","dentelle","dénuder","départ","dépenser","déphaser","déplacer","déposer","déranger","dérober","désastre","descente","désert","désigner","désobéir","dessiner","destrier","détacher","détester","détourer","détresse","devancer","devenir","deviner","devoir","diable","dialogue","diamant","dicter","différer","digérer","digital","digne","diluer","dimanche","diminuer","dioxyde","directif","diriger","discuter","disposer","dissiper","distance","divertir","diviser","docile","docteur","dogme","doigt","domaine","domicile","dompter","donateur","donjon","donner","dopamine","dortoir","dorure","dosage","doseur","dossier","dotation","douanier","double","douceur","douter","doyen","dragon","draper","dresser","dribbler","droiture","duperie","duplexe","durable","durcir","dynastie","éblouir","écarter","écharpe","échelle","éclairer","éclipse","éclore","écluse","école","économie","écorce","écouter","écraser","écrémer","écrivain","écrou","écume","écureuil","édifier","éduquer","effacer","effectif","effigie","effort","effrayer","effusion","égaliser","égarer","éjecter","élaborer","élargir","électron","élégant","éléphant","élève","éligible","élitisme","éloge","élucider","éluder","emballer","embellir","embryon","émeraude","émission","emmener","émotion","émouvoir","empereur","employer","emporter","emprise","émulsion","encadrer","enchère","enclave","encoche","endiguer","endosser","endroit","enduire","énergie","enfance","enfermer","enfouir","engager","engin","englober","énigme","enjamber","enjeu","enlever","ennemi","ennuyeux","enrichir","enrobage","enseigne","entasser","entendre","entier","entourer","entraver","énumérer","envahir","enviable","envoyer","enzyme","éolien","épaissir","épargne","épatant","épaule","épicerie","épidémie","épier","épilogue","épine","épisode","épitaphe","époque","épreuve","éprouver","épuisant","équerre","équipe","ériger","érosion","erreur","éruption","escalier","espadon","espèce","espiègle","espoir","esprit","esquiver","essayer","essence","essieu","essorer","estime","estomac","estrade","étagère","étaler","étanche","étatique","éteindre","étendoir","éternel","éthanol","éthique","ethnie","étirer","étoffer","étoile","étonnant","étourdir","étrange","étroit","étude","euphorie","évaluer","évasion","éventail","évidence","éviter","évolutif","évoquer","exact","exagérer","exaucer","exceller","excitant","exclusif","excuse","exécuter","exemple","exercer","exhaler","exhorter","exigence","exiler","exister","exotique","expédier","explorer","exposer","exprimer","exquis","extensif","extraire","exulter","fable","fabuleux","facette","facile","facture","faiblir","falaise","fameux","famille","farceur","farfelu","farine","farouche","fasciner","fatal","fatigue","faucon","fautif","faveur","favori","fébrile","féconder","fédérer","félin","femme","fémur","fendoir","féodal","fermer","féroce","ferveur","festival","feuille","feutre","février","fiasco","ficeler","fictif","fidèle","figure","filature","filetage","filière","filleul","filmer","filou","filtrer","financer","finir","fiole","firme","fissure","fixer","flairer","flamme","flasque","flatteur","fléau","flèche","fleur","flexion","flocon","flore","fluctuer","fluide","fluvial","folie","fonderie","fongible","fontaine","forcer","forgeron","formuler","fortune","fossile","foudre","fougère","fouiller","foulure","fourmi","fragile","fraise","franchir","frapper","frayeur","frégate","freiner","frelon","frémir","frénésie","frère","friable","friction","frisson","frivole","froid","fromage","frontal","frotter","fruit","fugitif","fuite","fureur","furieux","furtif","fusion","futur","gagner","galaxie","galerie","gambader","garantir","gardien","garnir","garrigue","gazelle","gazon","géant","gélatine","gélule","gendarme","général","génie","genou","gentil","géologie","géomètre","géranium","germe","gestuel","geyser","gibier","gicler","girafe","givre","glace","glaive","glisser","globe","gloire","glorieux","golfeur","gomme","gonfler","gorge","gorille","goudron","gouffre","goulot","goupille","gourmand","goutte","graduel","graffiti","graine","grand","grappin","gratuit","gravir","grenat","griffure","griller","grimper","grogner","gronder","grotte","groupe","gruger","grutier","gruyère","guépard","guerrier","guide","guimauve","guitare","gustatif","gymnaste","gyrostat","habitude","hachoir","halte","hameau","hangar","hanneton","haricot","harmonie","harpon","hasard","hélium","hématome","herbe","hérisson","hermine","héron","hésiter","heureux","hiberner","hibou","hilarant","histoire","hiver","homard","hommage","homogène","honneur","honorer","honteux","horde","horizon","horloge","hormone","horrible","houleux","housse","hublot","huileux","humain","humble","humide","humour","hurler","hydromel","hygiène","hymne","hypnose","idylle","ignorer","iguane","illicite","illusion","image","imbiber","imiter","immense","immobile","immuable","impact","impérial","implorer","imposer","imprimer","imputer","incarner","incendie","incident","incliner","incolore","indexer","indice","inductif","inédit","ineptie","inexact","infini","infliger","informer","infusion","ingérer","inhaler","inhiber","injecter","injure","innocent","inoculer","inonder","inscrire","insecte","insigne","insolite","inspirer","instinct","insulter","intact","intense","intime","intrigue","intuitif","inutile","invasion","inventer","inviter","invoquer","ironique","irradier","irréel","irriter","isoler","ivoire","ivresse","jaguar","jaillir","jambe","janvier","jardin","jauger","jaune","javelot","jetable","jeton","jeudi","jeunesse","joindre","joncher","jongler","joueur","jouissif","journal","jovial","joyau","joyeux","jubiler","jugement","junior","jupon","juriste","justice","juteux","juvénile","kayak","kimono","kiosque","label","labial","labourer","lacérer","lactose","lagune","laine","laisser","laitier","lambeau","lamelle","lampe","lanceur","langage","lanterne","lapin","largeur","larme","laurier","lavabo","lavoir","lecture","légal","léger","légume","lessive","lettre","levier","lexique","lézard","liasse","libérer","libre","licence","licorne","liège","lièvre","ligature","ligoter","ligue","limer","limite","limonade","limpide","linéaire","lingot","lionceau","liquide","lisière","lister","lithium","litige","littoral","livreur","logique","lointain","loisir","lombric","loterie","louer","lourd","loutre","louve","loyal","lubie","lucide","lucratif","lueur","lugubre","luisant","lumière","lunaire","lundi","luron","lutter","luxueux","machine","magasin","magenta","magique","maigre","maillon","maintien","mairie","maison","majorer","malaxer","maléfice","malheur","malice","mallette","mammouth","mandater","maniable","manquant","manteau","manuel","marathon","marbre","marchand","mardi","maritime","marqueur","marron","marteler","mascotte","massif","matériel","matière","matraque","maudire","maussade","mauve","maximal","méchant","méconnu","médaille","médecin","méditer","méduse","meilleur","mélange","mélodie","membre","mémoire","menacer","mener","menhir","mensonge","mentor","mercredi","mérite","merle","messager","mesure","métal","météore","méthode","métier","meuble","miauler","microbe","miette","mignon","migrer","milieu","million","mimique","mince","minéral","minimal","minorer","minute","miracle","miroiter","missile","mixte","mobile","moderne","moelleux","mondial","moniteur","monnaie","monotone","monstre","montagne","monument","moqueur","morceau","morsure","mortier","moteur","motif","mouche","moufle","moulin","mousson","mouton","mouvant","multiple","munition","muraille","murène","murmure","muscle","muséum","musicien","mutation","muter","mutuel","myriade","myrtille","mystère","mythique","nageur","nappe","narquois","narrer","natation","nation","nature","naufrage","nautique","navire","nébuleux","nectar","néfaste","négation","négliger","négocier","neige","nerveux","nettoyer","neurone","neutron","neveu","niche","nickel","nitrate","niveau","noble","nocif","nocturne","noirceur","noisette","nomade","nombreux","nommer","normatif","notable","notifier","notoire","nourrir","nouveau","novateur","novembre","novice","nuage","nuancer","nuire","nuisible","numéro","nuptial","nuque","nutritif","obéir","objectif","obliger","obscur","observer","obstacle","obtenir","obturer","occasion","occuper","océan","octobre","octroyer","octupler","oculaire","odeur","odorant","offenser","officier","offrir","ogive","oiseau","oisillon","olfactif","olivier","ombrage","omettre","onctueux","onduler","onéreux","onirique","opale","opaque","opérer","opinion","opportun","opprimer","opter","optique","orageux","orange","orbite","ordonner","oreille","organe","orgueil","orifice","ornement","orque","ortie","osciller","osmose","ossature","otarie","ouragan","ourson","outil","outrager","ouvrage","ovation","oxyde","oxygène","ozone","paisible","palace","palmarès","palourde","palper","panache","panda","pangolin","paniquer","panneau","panorama","pantalon","papaye","papier","papoter","papyrus","paradoxe","parcelle","paresse","parfumer","parler","parole","parrain","parsemer","partager","parure","parvenir","passion","pastèque","paternel","patience","patron","pavillon","pavoiser","payer","paysage","peigne","peintre","pelage","pélican","pelle","pelouse","peluche","pendule","pénétrer","pénible","pensif","pénurie","pépite","péplum","perdrix","perforer","période","permuter","perplexe","persil","perte","peser","pétale","petit","pétrir","peuple","pharaon","phobie","phoque","photon","phrase","physique","piano","pictural","pièce","pierre","pieuvre","pilote","pinceau","pipette","piquer","pirogue","piscine","piston","pivoter","pixel","pizza","placard","plafond","plaisir","planer","plaque","plastron","plateau","pleurer","plexus","pliage","plomb","plonger","pluie","plumage","pochette","poésie","poète","pointe","poirier","poisson","poivre","polaire","policier","pollen","polygone","pommade","pompier","ponctuel","pondérer","poney","portique","position","posséder","posture","potager","poteau","potion","pouce","poulain","poumon","pourpre","poussin","pouvoir","prairie","pratique","précieux","prédire","préfixe","prélude","prénom","présence","prétexte","prévoir","primitif","prince","prison","priver","problème","procéder","prodige","profond","progrès","proie","projeter","prologue","promener","propre","prospère","protéger","prouesse","proverbe","prudence","pruneau","psychose","public","puceron","puiser","pulpe","pulsar","punaise","punitif","pupitre","purifier","puzzle","pyramide","quasar","querelle","question","quiétude","quitter","quotient","racine","raconter","radieux","ragondin","raideur","raisin","ralentir","rallonge","ramasser","rapide","rasage","ratisser","ravager","ravin","rayonner","réactif","réagir","réaliser","réanimer","recevoir","réciter","réclamer","récolter","recruter","reculer","recycler","rédiger","redouter","refaire","réflexe","réformer","refrain","refuge","régalien","région","réglage","régulier","réitérer","rejeter","rejouer","relatif","relever","relief","remarque","remède","remise","remonter","remplir","remuer","renard","renfort","renifler","renoncer","rentrer","renvoi","replier","reporter","reprise","reptile","requin","réserve","résineux","résoudre","respect","rester","résultat","rétablir","retenir","réticule","retomber","retracer","réunion","réussir","revanche","revivre","révolte","révulsif","richesse","rideau","rieur","rigide","rigoler","rincer","riposter","risible","risque","rituel","rival","rivière","rocheux","romance","rompre","ronce","rondin","roseau","rosier","rotatif","rotor","rotule","rouge","rouille","rouleau","routine","royaume","ruban","rubis","ruche","ruelle","rugueux","ruiner","ruisseau","ruser","rustique","rythme","sabler","saboter","sabre","sacoche","safari","sagesse","saisir","salade","salive","salon","saluer","samedi","sanction","sanglier","sarcasme","sardine","saturer","saugrenu","saumon","sauter","sauvage","savant","savonner","scalpel","scandale","scélérat","scénario","sceptre","schéma","science","scinder","score","scrutin","sculpter","séance","sécable","sécher","secouer","sécréter","sédatif","séduire","seigneur","séjour","sélectif","semaine","sembler","semence","séminal","sénateur","sensible","sentence","séparer","séquence","serein","sergent","sérieux","serrure","sérum","service","sésame","sévir","sevrage","sextuple","sidéral","siècle","siéger","siffler","sigle","signal","silence","silicium","simple","sincère","sinistre","siphon","sirop","sismique","situer","skier","social","socle","sodium","soigneux","soldat","soleil","solitude","soluble","sombre","sommeil","somnoler","sonde","songeur","sonnette","sonore","sorcier","sortir","sosie","sottise","soucieux","soudure","souffle","soulever","soupape","source","soutirer","souvenir","spacieux","spatial","spécial","sphère","spiral","stable","station","sternum","stimulus","stipuler","strict","studieux","stupeur","styliste","sublime","substrat","subtil","subvenir","succès","sucre","suffixe","suggérer","suiveur","sulfate","superbe","supplier","surface","suricate","surmener","surprise","sursaut","survie","suspect","syllabe","symbole","symétrie","synapse","syntaxe","système","tabac","tablier","tactile","tailler","talent","talisman","talonner","tambour","tamiser","tangible","tapis","taquiner","tarder","tarif","tartine","tasse","tatami","tatouage","taupe","taureau","taxer","témoin","temporel","tenaille","tendre","teneur","tenir","tension","terminer","terne","terrible","tétine","texte","thème","théorie","thérapie","thorax","tibia","tiède","timide","tirelire","tiroir","tissu","titane","titre","tituber","toboggan","tolérant","tomate","tonique","tonneau","toponyme","torche","tordre","tornade","torpille","torrent","torse","tortue","totem","toucher","tournage","tousser","toxine","traction","trafic","tragique","trahir","train","trancher","travail","trèfle","tremper","trésor","treuil","triage","tribunal","tricoter","trilogie","triomphe","tripler","triturer","trivial","trombone","tronc","tropical","troupeau","tuile","tulipe","tumulte","tunnel","turbine","tuteur","tutoyer","tuyau","tympan","typhon","typique","tyran","ubuesque","ultime","ultrason","unanime","unifier","union","unique","unitaire","univers","uranium","urbain","urticant","usage","usine","usuel","usure","utile","utopie","vacarme","vaccin","vagabond","vague","vaillant","vaincre","vaisseau","valable","valise","vallon","valve","vampire","vanille","vapeur","varier","vaseux","vassal","vaste","vecteur","vedette","végétal","véhicule","veinard","véloce","vendredi","vénérer","venger","venimeux","ventouse","verdure","vérin","vernir","verrou","verser","vertu","veston","vétéran","vétuste","vexant","vexer","viaduc","viande","victoire","vidange","vidéo","vignette","vigueur","vilain","village","vinaigre","violon","vipère","virement","virtuose","virus","visage","viseur","vision","visqueux","visuel","vital","vitesse","viticole","vitrine","vivace","vivipare","vocation","voguer","voile","voisin","voiture","volaille","volcan","voltiger","volume","vorace","vortex","voter","vouloir","voyage","voyelle","wagon","xénon","yacht","zèbre","zénith","zeste","zoologie"]},function(e,t,i){"use strict";e.exports=["abaco","abbaglio","abbinato","abete","abisso","abolire","abrasivo","abrogato","accadere","accenno","accusato","acetone","achille","acido","acqua","acre","acrilico","acrobata","acuto","adagio","addebito","addome","adeguato","aderire","adipe","adottare","adulare","affabile","affetto","affisso","affranto","aforisma","afoso","africano","agave","agente","agevole","aggancio","agire","agitare","agonismo","agricolo","agrumeto","aguzzo","alabarda","alato","albatro","alberato","albo","albume","alce","alcolico","alettone","alfa","algebra","aliante","alibi","alimento","allagato","allegro","allievo","allodola","allusivo","almeno","alogeno","alpaca","alpestre","altalena","alterno","alticcio","altrove","alunno","alveolo","alzare","amalgama","amanita","amarena","ambito","ambrato","ameba","america","ametista","amico","ammasso","ammenda","ammirare","ammonito","amore","ampio","ampliare","amuleto","anacardo","anagrafe","analista","anarchia","anatra","anca","ancella","ancora","andare","andrea","anello","angelo","angolare","angusto","anima","annegare","annidato","anno","annuncio","anonimo","anticipo","anzi","apatico","apertura","apode","apparire","appetito","appoggio","approdo","appunto","aprile","arabica","arachide","aragosta","araldica","arancio","aratura","arazzo","arbitro","archivio","ardito","arenile","argento","argine","arguto","aria","armonia","arnese","arredato","arringa","arrosto","arsenico","arso","artefice","arzillo","asciutto","ascolto","asepsi","asettico","asfalto","asino","asola","aspirato","aspro","assaggio","asse","assoluto","assurdo","asta","astenuto","astice","astratto","atavico","ateismo","atomico","atono","attesa","attivare","attorno","attrito","attuale","ausilio","austria","autista","autonomo","autunno","avanzato","avere","avvenire","avviso","avvolgere","azione","azoto","azzimo","azzurro","babele","baccano","bacino","baco","badessa","badilata","bagnato","baita","balcone","baldo","balena","ballata","balzano","bambino","bandire","baraonda","barbaro","barca","baritono","barlume","barocco","basilico","basso","batosta","battuto","baule","bava","bavosa","becco","beffa","belgio","belva","benda","benevole","benigno","benzina","bere","berlina","beta","bibita","bici","bidone","bifido","biga","bilancia","bimbo","binocolo","biologo","bipede","bipolare","birbante","birra","biscotto","bisesto","bisnonno","bisonte","bisturi","bizzarro","blando","blatta","bollito","bonifico","bordo","bosco","botanico","bottino","bozzolo","braccio","bradipo","brama","branca","bravura","bretella","brevetto","brezza","briglia","brillante","brindare","broccolo","brodo","bronzina","brullo","bruno","bubbone","buca","budino","buffone","buio","bulbo","buono","burlone","burrasca","bussola","busta","cadetto","caduco","calamaro","calcolo","calesse","calibro","calmo","caloria","cambusa","camerata","camicia","cammino","camola","campale","canapa","candela","cane","canino","canotto","cantina","capace","capello","capitolo","capogiro","cappero","capra","capsula","carapace","carcassa","cardo","carisma","carovana","carretto","cartolina","casaccio","cascata","caserma","caso","cassone","castello","casuale","catasta","catena","catrame","cauto","cavillo","cedibile","cedrata","cefalo","celebre","cellulare","cena","cenone","centesimo","ceramica","cercare","certo","cerume","cervello","cesoia","cespo","ceto","chela","chiaro","chicca","chiedere","chimera","china","chirurgo","chitarra","ciao","ciclismo","cifrare","cigno","cilindro","ciottolo","circa","cirrosi","citrico","cittadino","ciuffo","civetta","civile","classico","clinica","cloro","cocco","codardo","codice","coerente","cognome","collare","colmato","colore","colposo","coltivato","colza","coma","cometa","commando","comodo","computer","comune","conciso","condurre","conferma","congelare","coniuge","connesso","conoscere","consumo","continuo","convegno","coperto","copione","coppia","copricapo","corazza","cordata","coricato","cornice","corolla","corpo","corredo","corsia","cortese","cosmico","costante","cottura","covato","cratere","cravatta","creato","credere","cremoso","crescita","creta","criceto","crinale","crisi","critico","croce","cronaca","crostata","cruciale","crusca","cucire","cuculo","cugino","cullato","cupola","curatore","cursore","curvo","cuscino","custode","dado","daino","dalmata","damerino","daniela","dannoso","danzare","datato","davanti","davvero","debutto","decennio","deciso","declino","decollo","decreto","dedicato","definito","deforme","degno","delegare","delfino","delirio","delta","demenza","denotato","dentro","deposito","derapata","derivare","deroga","descritto","deserto","desiderio","desumere","detersivo","devoto","diametro","dicembre","diedro","difeso","diffuso","digerire","digitale","diluvio","dinamico","dinnanzi","dipinto","diploma","dipolo","diradare","dire","dirotto","dirupo","disagio","discreto","disfare","disgelo","disposto","distanza","disumano","dito","divano","divelto","dividere","divorato","doblone","docente","doganale","dogma","dolce","domato","domenica","dominare","dondolo","dono","dormire","dote","dottore","dovuto","dozzina","drago","druido","dubbio","dubitare","ducale","duna","duomo","duplice","duraturo","ebano","eccesso","ecco","eclissi","economia","edera","edicola","edile","editoria","educare","egemonia","egli","egoismo","egregio","elaborato","elargire","elegante","elencato","eletto","elevare","elfico","elica","elmo","elsa","eluso","emanato","emblema","emesso","emiro","emotivo","emozione","empirico","emulo","endemico","enduro","energia","enfasi","enoteca","entrare","enzima","epatite","epilogo","episodio","epocale","eppure","equatore","erario","erba","erboso","erede","eremita","erigere","ermetico","eroe","erosivo","errante","esagono","esame","esanime","esaudire","esca","esempio","esercito","esibito","esigente","esistere","esito","esofago","esortato","esoso","espanso","espresso","essenza","esso","esteso","estimare","estonia","estroso","esultare","etilico","etnico","etrusco","etto","euclideo","europa","evaso","evidenza","evitato","evoluto","evviva","fabbrica","faccenda","fachiro","falco","famiglia","fanale","fanfara","fango","fantasma","fare","farfalla","farinoso","farmaco","fascia","fastoso","fasullo","faticare","fato","favoloso","febbre","fecola","fede","fegato","felpa","feltro","femmina","fendere","fenomeno","fermento","ferro","fertile","fessura","festivo","fetta","feudo","fiaba","fiducia","fifa","figurato","filo","finanza","finestra","finire","fiore","fiscale","fisico","fiume","flacone","flamenco","flebo","flemma","florido","fluente","fluoro","fobico","focaccia","focoso","foderato","foglio","folata","folclore","folgore","fondente","fonetico","fonia","fontana","forbito","forchetta","foresta","formica","fornaio","foro","fortezza","forzare","fosfato","fosso","fracasso","frana","frassino","fratello","freccetta","frenata","fresco","frigo","frollino","fronde","frugale","frutta","fucilata","fucsia","fuggente","fulmine","fulvo","fumante","fumetto","fumoso","fune","funzione","fuoco","furbo","furgone","furore","fuso","futile","gabbiano","gaffe","galateo","gallina","galoppo","gambero","gamma","garanzia","garbo","garofano","garzone","gasdotto","gasolio","gastrico","gatto","gaudio","gazebo","gazzella","geco","gelatina","gelso","gemello","gemmato","gene","genitore","gennaio","genotipo","gergo","ghepardo","ghiaccio","ghisa","giallo","gilda","ginepro","giocare","gioiello","giorno","giove","girato","girone","gittata","giudizio","giurato","giusto","globulo","glutine","gnomo","gobba","golf","gomito","gommone","gonfio","gonna","governo","gracile","grado","grafico","grammo","grande","grattare","gravoso","grazia","greca","gregge","grifone","grigio","grinza","grotta","gruppo","guadagno","guaio","guanto","guardare","gufo","guidare","ibernato","icona","identico","idillio","idolo","idra","idrico","idrogeno","igiene","ignaro","ignorato","ilare","illeso","illogico","illudere","imballo","imbevuto","imbocco","imbuto","immane","immerso","immolato","impacco","impeto","impiego","importo","impronta","inalare","inarcare","inattivo","incanto","incendio","inchino","incisivo","incluso","incontro","incrocio","incubo","indagine","india","indole","inedito","infatti","infilare","inflitto","ingaggio","ingegno","inglese","ingordo","ingrosso","innesco","inodore","inoltrare","inondato","insano","insetto","insieme","insonnia","insulina","intasato","intero","intonaco","intuito","inumidire","invalido","invece","invito","iperbole","ipnotico","ipotesi","ippica","iride","irlanda","ironico","irrigato","irrorare","isolato","isotopo","isterico","istituto","istrice","italia","iterare","labbro","labirinto","lacca","lacerato","lacrima","lacuna","laddove","lago","lampo","lancetta","lanterna","lardoso","larga","laringe","lastra","latenza","latino","lattuga","lavagna","lavoro","legale","leggero","lembo","lentezza","lenza","leone","lepre","lesivo","lessato","lesto","letterale","leva","levigato","libero","lido","lievito","lilla","limatura","limitare","limpido","lineare","lingua","liquido","lira","lirica","lisca","lite","litigio","livrea","locanda","lode","logica","lombare","londra","longevo","loquace","lorenzo","loto","lotteria","luce","lucidato","lumaca","luminoso","lungo","lupo","luppolo","lusinga","lusso","lutto","macabro","macchina","macero","macinato","madama","magico","maglia","magnete","magro","maiolica","malafede","malgrado","malinteso","malsano","malto","malumore","mana","mancia","mandorla","mangiare","manifesto","mannaro","manovra","mansarda","mantide","manubrio","mappa","maratona","marcire","maretta","marmo","marsupio","maschera","massaia","mastino","materasso","matricola","mattone","maturo","mazurca","meandro","meccanico","mecenate","medesimo","meditare","mega","melassa","melis","melodia","meninge","meno","mensola","mercurio","merenda","merlo","meschino","mese","messere","mestolo","metallo","metodo","mettere","miagolare","mica","micelio","michele","microbo","midollo","miele","migliore","milano","milite","mimosa","minerale","mini","minore","mirino","mirtillo","miscela","missiva","misto","misurare","mitezza","mitigare","mitra","mittente","mnemonico","modello","modifica","modulo","mogano","mogio","mole","molosso","monastero","monco","mondina","monetario","monile","monotono","monsone","montato","monviso","mora","mordere","morsicato","mostro","motivato","motosega","motto","movenza","movimento","mozzo","mucca","mucosa","muffa","mughetto","mugnaio","mulatto","mulinello","multiplo","mummia","munto","muovere","murale","musa","muscolo","musica","mutevole","muto","nababbo","nafta","nanometro","narciso","narice","narrato","nascere","nastrare","naturale","nautica","naviglio","nebulosa","necrosi","negativo","negozio","nemmeno","neofita","neretto","nervo","nessuno","nettuno","neutrale","neve","nevrotico","nicchia","ninfa","nitido","nobile","nocivo","nodo","nome","nomina","nordico","normale","norvegese","nostrano","notare","notizia","notturno","novella","nucleo","nulla","numero","nuovo","nutrire","nuvola","nuziale","oasi","obbedire","obbligo","obelisco","oblio","obolo","obsoleto","occasione","occhio","occidente","occorrere","occultare","ocra","oculato","odierno","odorare","offerta","offrire","offuscato","oggetto","oggi","ognuno","olandese","olfatto","oliato","oliva","ologramma","oltre","omaggio","ombelico","ombra","omega","omissione","ondoso","onere","onice","onnivoro","onorevole","onta","operato","opinione","opposto","oracolo","orafo","ordine","orecchino","orefice","orfano","organico","origine","orizzonte","orma","ormeggio","ornativo","orologio","orrendo","orribile","ortensia","ortica","orzata","orzo","osare","oscurare","osmosi","ospedale","ospite","ossa","ossidare","ostacolo","oste","otite","otre","ottagono","ottimo","ottobre","ovale","ovest","ovino","oviparo","ovocito","ovunque","ovviare","ozio","pacchetto","pace","pacifico","padella","padrone","paese","paga","pagina","palazzina","palesare","pallido","palo","palude","pandoro","pannello","paolo","paonazzo","paprica","parabola","parcella","parere","pargolo","pari","parlato","parola","partire","parvenza","parziale","passivo","pasticca","patacca","patologia","pattume","pavone","peccato","pedalare","pedonale","peggio","peloso","penare","pendice","penisola","pennuto","penombra","pensare","pentola","pepe","pepita","perbene","percorso","perdonato","perforare","pergamena","periodo","permesso","perno","perplesso","persuaso","pertugio","pervaso","pesatore","pesista","peso","pestifero","petalo","pettine","petulante","pezzo","piacere","pianta","piattino","piccino","picozza","piega","pietra","piffero","pigiama","pigolio","pigro","pila","pilifero","pillola","pilota","pimpante","pineta","pinna","pinolo","pioggia","piombo","piramide","piretico","pirite","pirolisi","pitone","pizzico","placebo","planare","plasma","platano","plenario","pochezza","poderoso","podismo","poesia","poggiare","polenta","poligono","pollice","polmonite","polpetta","polso","poltrona","polvere","pomice","pomodoro","ponte","popoloso","porfido","poroso","porpora","porre","portata","posa","positivo","possesso","postulato","potassio","potere","pranzo","prassi","pratica","precluso","predica","prefisso","pregiato","prelievo","premere","prenotare","preparato","presenza","pretesto","prevalso","prima","principe","privato","problema","procura","produrre","profumo","progetto","prolunga","promessa","pronome","proposta","proroga","proteso","prova","prudente","prugna","prurito","psiche","pubblico","pudica","pugilato","pugno","pulce","pulito","pulsante","puntare","pupazzo","pupilla","puro","quadro","qualcosa","quasi","querela","quota","raccolto","raddoppio","radicale","radunato","raffica","ragazzo","ragione","ragno","ramarro","ramingo","ramo","randagio","rantolare","rapato","rapina","rappreso","rasatura","raschiato","rasente","rassegna","rastrello","rata","ravveduto","reale","recepire","recinto","recluta","recondito","recupero","reddito","redimere","regalato","registro","regola","regresso","relazione","remare","remoto","renna","replica","reprimere","reputare","resa","residente","responso","restauro","rete","retina","retorica","rettifica","revocato","riassunto","ribadire","ribelle","ribrezzo","ricarica","ricco","ricevere","riciclato","ricordo","ricreduto","ridicolo","ridurre","rifasare","riflesso","riforma","rifugio","rigare","rigettato","righello","rilassato","rilevato","rimanere","rimbalzo","rimedio","rimorchio","rinascita","rincaro","rinforzo","rinnovo","rinomato","rinsavito","rintocco","rinuncia","rinvenire","riparato","ripetuto","ripieno","riportare","ripresa","ripulire","risata","rischio","riserva","risibile","riso","rispetto","ristoro","risultato","risvolto","ritardo","ritegno","ritmico","ritrovo","riunione","riva","riverso","rivincita","rivolto","rizoma","roba","robotico","robusto","roccia","roco","rodaggio","rodere","roditore","rogito","rollio","romantico","rompere","ronzio","rosolare","rospo","rotante","rotondo","rotula","rovescio","rubizzo","rubrica","ruga","rullino","rumine","rumoroso","ruolo","rupe","russare","rustico","sabato","sabbiare","sabotato","sagoma","salasso","saldatura","salgemma","salivare","salmone","salone","saltare","saluto","salvo","sapere","sapido","saporito","saraceno","sarcasmo","sarto","sassoso","satellite","satira","satollo","saturno","savana","savio","saziato","sbadiglio","sbalzo","sbancato","sbarra","sbattere","sbavare","sbendare","sbirciare","sbloccato","sbocciato","sbrinare","sbruffone","sbuffare","scabroso","scadenza","scala","scambiare","scandalo","scapola","scarso","scatenare","scavato","scelto","scenico","scettro","scheda","schiena","sciarpa","scienza","scindere","scippo","sciroppo","scivolo","sclerare","scodella","scolpito","scomparto","sconforto","scoprire","scorta","scossone","scozzese","scriba","scrollare","scrutinio","scuderia","scultore","scuola","scuro","scusare","sdebitare","sdoganare","seccatura","secondo","sedano","seggiola","segnalato","segregato","seguito","selciato","selettivo","sella","selvaggio","semaforo","sembrare","seme","seminato","sempre","senso","sentire","sepolto","sequenza","serata","serbato","sereno","serio","serpente","serraglio","servire","sestina","setola","settimana","sfacelo","sfaldare","sfamato","sfarzoso","sfaticato","sfera","sfida","sfilato","sfinge","sfocato","sfoderare","sfogo","sfoltire","sforzato","sfratto","sfruttato","sfuggito","sfumare","sfuso","sgabello","sgarbato","sgonfiare","sgorbio","sgrassato","sguardo","sibilo","siccome","sierra","sigla","signore","silenzio","sillaba","simbolo","simpatico","simulato","sinfonia","singolo","sinistro","sino","sintesi","sinusoide","sipario","sisma","sistole","situato","slitta","slogatura","sloveno","smarrito","smemorato","smentito","smeraldo","smilzo","smontare","smottato","smussato","snellire","snervato","snodo","sobbalzo","sobrio","soccorso","sociale","sodale","soffitto","sogno","soldato","solenne","solido","sollazzo","solo","solubile","solvente","somatico","somma","sonda","sonetto","sonnifero","sopire","soppeso","sopra","sorgere","sorpasso","sorriso","sorso","sorteggio","sorvolato","sospiro","sosta","sottile","spada","spalla","spargere","spatola","spavento","spazzola","specie","spedire","spegnere","spelatura","speranza","spessore","spettrale","spezzato","spia","spigoloso","spillato","spinoso","spirale","splendido","sportivo","sposo","spranga","sprecare","spronato","spruzzo","spuntino","squillo","sradicare","srotolato","stabile","stacco","staffa","stagnare","stampato","stantio","starnuto","stasera","statuto","stelo","steppa","sterzo","stiletto","stima","stirpe","stivale","stizzoso","stonato","storico","strappo","stregato","stridulo","strozzare","strutto","stuccare","stufo","stupendo","subentro","succoso","sudore","suggerito","sugo","sultano","suonare","superbo","supporto","surgelato","surrogato","sussurro","sutura","svagare","svedese","sveglio","svelare","svenuto","svezia","sviluppo","svista","svizzera","svolta","svuotare","tabacco","tabulato","tacciare","taciturno","tale","talismano","tampone","tannino","tara","tardivo","targato","tariffa","tarpare","tartaruga","tasto","tattico","taverna","tavolata","tazza","teca","tecnico","telefono","temerario","tempo","temuto","tendone","tenero","tensione","tentacolo","teorema","terme","terrazzo","terzetto","tesi","tesserato","testato","tetro","tettoia","tifare","tigella","timbro","tinto","tipico","tipografo","tiraggio","tiro","titanio","titolo","titubante","tizio","tizzone","toccare","tollerare","tolto","tombola","tomo","tonfo","tonsilla","topazio","topologia","toppa","torba","tornare","torrone","tortora","toscano","tossire","tostatura","totano","trabocco","trachea","trafila","tragedia","tralcio","tramonto","transito","trapano","trarre","trasloco","trattato","trave","treccia","tremolio","trespolo","tributo","tricheco","trifoglio","trillo","trincea","trio","tristezza","triturato","trivella","tromba","trono","troppo","trottola","trovare","truccato","tubatura","tuffato","tulipano","tumulto","tunisia","turbare","turchino","tuta","tutela","ubicato","uccello","uccisore","udire","uditivo","uffa","ufficio","uguale","ulisse","ultimato","umano","umile","umorismo","uncinetto","ungere","ungherese","unicorno","unificato","unisono","unitario","unte","uovo","upupa","uragano","urgenza","urlo","usanza","usato","uscito","usignolo","usuraio","utensile","utilizzo","utopia","vacante","vaccinato","vagabondo","vagliato","valanga","valgo","valico","valletta","valoroso","valutare","valvola","vampata","vangare","vanitoso","vano","vantaggio","vanvera","vapore","varano","varcato","variante","vasca","vedetta","vedova","veduto","vegetale","veicolo","velcro","velina","velluto","veloce","venato","vendemmia","vento","verace","verbale","vergogna","verifica","vero","verruca","verticale","vescica","vessillo","vestale","veterano","vetrina","vetusto","viandante","vibrante","vicenda","vichingo","vicinanza","vidimare","vigilia","vigneto","vigore","vile","villano","vimini","vincitore","viola","vipera","virgola","virologo","virulento","viscoso","visione","vispo","vissuto","visura","vita","vitello","vittima","vivanda","vivido","viziare","voce","voga","volatile","volere","volpe","voragine","vulcano","zampogna","zanna","zappato","zattera","zavorra","zefiro","zelante","zelo","zenzero","zerbino","zibetto","zinco","zircone","zitto","zolla","zotico","zucchero","zufolo","zulu","zuppa"]},function(e,t,i){"use strict";e.exports=["あいこくしん","あいさつ","あいだ","あおぞら","あかちゃん","あきる","あけがた","あける","あこがれる","あさい","あさひ","あしあと","あじわう","あずかる","あずき","あそぶ","あたえる","あたためる","あたりまえ","あたる","あつい","あつかう","あっしゅく","あつまり","あつめる","あてな","あてはまる","あひる","あぶら","あぶる","あふれる","あまい","あまど","あまやかす","あまり","あみもの","あめりか","あやまる","あゆむ","あらいぐま","あらし","あらすじ","あらためる","あらゆる","あらわす","ありがとう","あわせる","あわてる","あんい","あんがい","あんこ","あんぜん","あんてい","あんない","あんまり","いいだす","いおん","いがい","いがく","いきおい","いきなり","いきもの","いきる","いくじ","いくぶん","いけばな","いけん","いこう","いこく","いこつ","いさましい","いさん","いしき","いじゅう","いじょう","いじわる","いずみ","いずれ","いせい","いせえび","いせかい","いせき","いぜん","いそうろう","いそがしい","いだい","いだく","いたずら","いたみ","いたりあ","いちおう","いちじ","いちど","いちば","いちぶ","いちりゅう","いつか","いっしゅん","いっせい","いっそう","いったん","いっち","いってい","いっぽう","いてざ","いてん","いどう","いとこ","いない","いなか","いねむり","いのち","いのる","いはつ","いばる","いはん","いびき","いひん","いふく","いへん","いほう","いみん","いもうと","いもたれ","いもり","いやがる","いやす","いよかん","いよく","いらい","いらすと","いりぐち","いりょう","いれい","いれもの","いれる","いろえんぴつ","いわい","いわう","いわかん","いわば","いわゆる","いんげんまめ","いんさつ","いんしょう","いんよう","うえき","うえる","うおざ","うがい","うかぶ","うかべる","うきわ","うくらいな","うくれれ","うけたまわる","うけつけ","うけとる","うけもつ","うける","うごかす","うごく","うこん","うさぎ","うしなう","うしろがみ","うすい","うすぎ","うすぐらい","うすめる","うせつ","うちあわせ","うちがわ","うちき","うちゅう","うっかり","うつくしい","うったえる","うつる","うどん","うなぎ","うなじ","うなずく","うなる","うねる","うのう","うぶげ","うぶごえ","うまれる","うめる","うもう","うやまう","うよく","うらがえす","うらぐち","うらない","うりあげ","うりきれ","うるさい","うれしい","うれゆき","うれる","うろこ","うわき","うわさ","うんこう","うんちん","うんてん","うんどう","えいえん","えいが","えいきょう","えいご","えいせい","えいぶん","えいよう","えいわ","えおり","えがお","えがく","えきたい","えくせる","えしゃく","えすて","えつらん","えのぐ","えほうまき","えほん","えまき","えもじ","えもの","えらい","えらぶ","えりあ","えんえん","えんかい","えんぎ","えんげき","えんしゅう","えんぜつ","えんそく","えんちょう","えんとつ","おいかける","おいこす","おいしい","おいつく","おうえん","おうさま","おうじ","おうせつ","おうたい","おうふく","おうべい","おうよう","おえる","おおい","おおう","おおどおり","おおや","おおよそ","おかえり","おかず","おがむ","おかわり","おぎなう","おきる","おくさま","おくじょう","おくりがな","おくる","おくれる","おこす","おこなう","おこる","おさえる","おさない","おさめる","おしいれ","おしえる","おじぎ","おじさん","おしゃれ","おそらく","おそわる","おたがい","おたく","おだやか","おちつく","おっと","おつり","おでかけ","おとしもの","おとなしい","おどり","おどろかす","おばさん","おまいり","おめでとう","おもいで","おもう","おもたい","おもちゃ","おやつ","おやゆび","およぼす","おらんだ","おろす","おんがく","おんけい","おんしゃ","おんせん","おんだん","おんちゅう","おんどけい","かあつ","かいが","がいき","がいけん","がいこう","かいさつ","かいしゃ","かいすいよく","かいぜん","かいぞうど","かいつう","かいてん","かいとう","かいふく","がいへき","かいほう","かいよう","がいらい","かいわ","かえる","かおり","かかえる","かがく","かがし","かがみ","かくご","かくとく","かざる","がぞう","かたい","かたち","がちょう","がっきゅう","がっこう","がっさん","がっしょう","かなざわし","かのう","がはく","かぶか","かほう","かほご","かまう","かまぼこ","かめれおん","かゆい","かようび","からい","かるい","かろう","かわく","かわら","がんか","かんけい","かんこう","かんしゃ","かんそう","かんたん","かんち","がんばる","きあい","きあつ","きいろ","ぎいん","きうい","きうん","きえる","きおう","きおく","きおち","きおん","きかい","きかく","きかんしゃ","ききて","きくばり","きくらげ","きけんせい","きこう","きこえる","きこく","きさい","きさく","きさま","きさらぎ","ぎじかがく","ぎしき","ぎじたいけん","ぎじにってい","ぎじゅつしゃ","きすう","きせい","きせき","きせつ","きそう","きぞく","きぞん","きたえる","きちょう","きつえん","ぎっちり","きつつき","きつね","きてい","きどう","きどく","きない","きなが","きなこ","きぬごし","きねん","きのう","きのした","きはく","きびしい","きひん","きふく","きぶん","きぼう","きほん","きまる","きみつ","きむずかしい","きめる","きもだめし","きもち","きもの","きゃく","きやく","ぎゅうにく","きよう","きょうりゅう","きらい","きらく","きりん","きれい","きれつ","きろく","ぎろん","きわめる","ぎんいろ","きんかくじ","きんじょ","きんようび","ぐあい","くいず","くうかん","くうき","くうぐん","くうこう","ぐうせい","くうそう","ぐうたら","くうふく","くうぼ","くかん","くきょう","くげん","ぐこう","くさい","くさき","くさばな","くさる","くしゃみ","くしょう","くすのき","くすりゆび","くせげ","くせん","ぐたいてき","くださる","くたびれる","くちこみ","くちさき","くつした","ぐっすり","くつろぐ","くとうてん","くどく","くなん","くねくね","くのう","くふう","くみあわせ","くみたてる","くめる","くやくしょ","くらす","くらべる","くるま","くれる","くろう","くわしい","ぐんかん","ぐんしょく","ぐんたい","ぐんて","けあな","けいかく","けいけん","けいこ","けいさつ","げいじゅつ","けいたい","げいのうじん","けいれき","けいろ","けおとす","けおりもの","げきか","げきげん","げきだん","げきちん","げきとつ","げきは","げきやく","げこう","げこくじょう","げざい","けさき","げざん","けしき","けしごむ","けしょう","げすと","けたば","けちゃっぷ","けちらす","けつあつ","けつい","けつえき","けっこん","けつじょ","けっせき","けってい","けつまつ","げつようび","げつれい","けつろん","げどく","けとばす","けとる","けなげ","けなす","けなみ","けぬき","げねつ","けねん","けはい","げひん","けぶかい","げぼく","けまり","けみかる","けむし","けむり","けもの","けらい","けろけろ","けわしい","けんい","けんえつ","けんお","けんか","げんき","けんげん","けんこう","けんさく","けんしゅう","けんすう","げんそう","けんちく","けんてい","けんとう","けんない","けんにん","げんぶつ","けんま","けんみん","けんめい","けんらん","けんり","こあくま","こいぬ","こいびと","ごうい","こうえん","こうおん","こうかん","ごうきゅう","ごうけい","こうこう","こうさい","こうじ","こうすい","ごうせい","こうそく","こうたい","こうちゃ","こうつう","こうてい","こうどう","こうない","こうはい","ごうほう","ごうまん","こうもく","こうりつ","こえる","こおり","ごかい","ごがつ","ごかん","こくご","こくさい","こくとう","こくない","こくはく","こぐま","こけい","こける","ここのか","こころ","こさめ","こしつ","こすう","こせい","こせき","こぜん","こそだて","こたい","こたえる","こたつ","こちょう","こっか","こつこつ","こつばん","こつぶ","こてい","こてん","ことがら","ことし","ことば","ことり","こなごな","こねこね","このまま","このみ","このよ","ごはん","こひつじ","こふう","こふん","こぼれる","ごまあぶら","こまかい","ごますり","こまつな","こまる","こむぎこ","こもじ","こもち","こもの","こもん","こやく","こやま","こゆう","こゆび","こよい","こよう","こりる","これくしょん","ころっけ","こわもて","こわれる","こんいん","こんかい","こんき","こんしゅう","こんすい","こんだて","こんとん","こんなん","こんびに","こんぽん","こんまけ","こんや","こんれい","こんわく","ざいえき","さいかい","さいきん","ざいげん","ざいこ","さいしょ","さいせい","ざいたく","ざいちゅう","さいてき","ざいりょう","さうな","さかいし","さがす","さかな","さかみち","さがる","さぎょう","さくし","さくひん","さくら","さこく","さこつ","さずかる","ざせき","さたん","さつえい","ざつおん","ざっか","ざつがく","さっきょく","ざっし","さつじん","ざっそう","さつたば","さつまいも","さてい","さといも","さとう","さとおや","さとし","さとる","さのう","さばく","さびしい","さべつ","さほう","さほど","さます","さみしい","さみだれ","さむけ","さめる","さやえんどう","さゆう","さよう","さよく","さらだ","ざるそば","さわやか","さわる","さんいん","さんか","さんきゃく","さんこう","さんさい","ざんしょ","さんすう","さんせい","さんそ","さんち","さんま","さんみ","さんらん","しあい","しあげ","しあさって","しあわせ","しいく","しいん","しうち","しえい","しおけ","しかい","しかく","じかん","しごと","しすう","じだい","したうけ","したぎ","したて","したみ","しちょう","しちりん","しっかり","しつじ","しつもん","してい","してき","してつ","じてん","じどう","しなぎれ","しなもの","しなん","しねま","しねん","しのぐ","しのぶ","しはい","しばかり","しはつ","しはらい","しはん","しひょう","しふく","じぶん","しへい","しほう","しほん","しまう","しまる","しみん","しむける","じむしょ","しめい","しめる","しもん","しゃいん","しゃうん","しゃおん","じゃがいも","しやくしょ","しゃくほう","しゃけん","しゃこ","しゃざい","しゃしん","しゃせん","しゃそう","しゃたい","しゃちょう","しゃっきん","じゃま","しゃりん","しゃれい","じゆう","じゅうしょ","しゅくはく","じゅしん","しゅっせき","しゅみ","しゅらば","じゅんばん","しょうかい","しょくたく","しょっけん","しょどう","しょもつ","しらせる","しらべる","しんか","しんこう","じんじゃ","しんせいじ","しんちく","しんりん","すあげ","すあし","すあな","ずあん","すいえい","すいか","すいとう","ずいぶん","すいようび","すうがく","すうじつ","すうせん","すおどり","すきま","すくう","すくない","すける","すごい","すこし","ずさん","すずしい","すすむ","すすめる","すっかり","ずっしり","ずっと","すてき","すてる","すねる","すのこ","すはだ","すばらしい","ずひょう","ずぶぬれ","すぶり","すふれ","すべて","すべる","ずほう","すぼん","すまい","すめし","すもう","すやき","すらすら","するめ","すれちがう","すろっと","すわる","すんぜん","すんぽう","せあぶら","せいかつ","せいげん","せいじ","せいよう","せおう","せかいかん","せきにん","せきむ","せきゆ","せきらんうん","せけん","せこう","せすじ","せたい","せたけ","せっかく","せっきゃく","ぜっく","せっけん","せっこつ","せっさたくま","せつぞく","せつだん","せつでん","せっぱん","せつび","せつぶん","せつめい","せつりつ","せなか","せのび","せはば","せびろ","せぼね","せまい","せまる","せめる","せもたれ","せりふ","ぜんあく","せんい","せんえい","せんか","せんきょ","せんく","せんげん","ぜんご","せんさい","せんしゅ","せんすい","せんせい","せんぞ","せんたく","せんちょう","せんてい","せんとう","せんぬき","せんねん","せんぱい","ぜんぶ","ぜんぽう","せんむ","せんめんじょ","せんもん","せんやく","せんゆう","せんよう","ぜんら","ぜんりゃく","せんれい","せんろ","そあく","そいとげる","そいね","そうがんきょう","そうき","そうご","そうしん","そうだん","そうなん","そうび","そうめん","そうり","そえもの","そえん","そがい","そげき","そこう","そこそこ","そざい","そしな","そせい","そせん","そそぐ","そだてる","そつう","そつえん","そっかん","そつぎょう","そっけつ","そっこう","そっせん","そっと","そとがわ","そとづら","そなえる","そなた","そふぼ","そぼく","そぼろ","そまつ","そまる","そむく","そむりえ","そめる","そもそも","そよかぜ","そらまめ","そろう","そんかい","そんけい","そんざい","そんしつ","そんぞく","そんちょう","ぞんび","ぞんぶん","そんみん","たあい","たいいん","たいうん","たいえき","たいおう","だいがく","たいき","たいぐう","たいけん","たいこ","たいざい","だいじょうぶ","だいすき","たいせつ","たいそう","だいたい","たいちょう","たいてい","だいどころ","たいない","たいねつ","たいのう","たいはん","だいひょう","たいふう","たいへん","たいほ","たいまつばな","たいみんぐ","たいむ","たいめん","たいやき","たいよう","たいら","たいりょく","たいる","たいわん","たうえ","たえる","たおす","たおる","たおれる","たかい","たかね","たきび","たくさん","たこく","たこやき","たさい","たしざん","だじゃれ","たすける","たずさわる","たそがれ","たたかう","たたく","ただしい","たたみ","たちばな","だっかい","だっきゃく","だっこ","だっしゅつ","だったい","たてる","たとえる","たなばた","たにん","たぬき","たのしみ","たはつ","たぶん","たべる","たぼう","たまご","たまる","だむる","ためいき","ためす","ためる","たもつ","たやすい","たよる","たらす","たりきほんがん","たりょう","たりる","たると","たれる","たれんと","たろっと","たわむれる","だんあつ","たんい","たんおん","たんか","たんき","たんけん","たんご","たんさん","たんじょうび","だんせい","たんそく","たんたい","だんち","たんてい","たんとう","だんな","たんにん","だんねつ","たんのう","たんぴん","だんぼう","たんまつ","たんめい","だんれつ","だんろ","だんわ","ちあい","ちあん","ちいき","ちいさい","ちえん","ちかい","ちから","ちきゅう","ちきん","ちけいず","ちけん","ちこく","ちさい","ちしき","ちしりょう","ちせい","ちそう","ちたい","ちたん","ちちおや","ちつじょ","ちてき","ちてん","ちぬき","ちぬり","ちのう","ちひょう","ちへいせん","ちほう","ちまた","ちみつ","ちみどろ","ちめいど","ちゃんこなべ","ちゅうい","ちゆりょく","ちょうし","ちょさくけん","ちらし","ちらみ","ちりがみ","ちりょう","ちるど","ちわわ","ちんたい","ちんもく","ついか","ついたち","つうか","つうじょう","つうはん","つうわ","つかう","つかれる","つくね","つくる","つけね","つける","つごう","つたえる","つづく","つつじ","つつむ","つとめる","つながる","つなみ","つねづね","つのる","つぶす","つまらない","つまる","つみき","つめたい","つもり","つもる","つよい","つるぼ","つるみく","つわもの","つわり","てあし","てあて","てあみ","ていおん","ていか","ていき","ていけい","ていこく","ていさつ","ていし","ていせい","ていたい","ていど","ていねい","ていひょう","ていへん","ていぼう","てうち","ておくれ","てきとう","てくび","でこぼこ","てさぎょう","てさげ","てすり","てそう","てちがい","てちょう","てつがく","てつづき","でっぱ","てつぼう","てつや","でぬかえ","てぬき","てぬぐい","てのひら","てはい","てぶくろ","てふだ","てほどき","てほん","てまえ","てまきずし","てみじか","てみやげ","てらす","てれび","てわけ","てわたし","でんあつ","てんいん","てんかい","てんき","てんぐ","てんけん","てんごく","てんさい","てんし","てんすう","でんち","てんてき","てんとう","てんない","てんぷら","てんぼうだい","てんめつ","てんらんかい","でんりょく","でんわ","どあい","といれ","どうかん","とうきゅう","どうぐ","とうし","とうむぎ","とおい","とおか","とおく","とおす","とおる","とかい","とかす","ときおり","ときどき","とくい","とくしゅう","とくてん","とくに","とくべつ","とけい","とける","とこや","とさか","としょかん","とそう","とたん","とちゅう","とっきゅう","とっくん","とつぜん","とつにゅう","とどける","ととのえる","とない","となえる","となり","とのさま","とばす","どぶがわ","とほう","とまる","とめる","ともだち","ともる","どようび","とらえる","とんかつ","どんぶり","ないかく","ないこう","ないしょ","ないす","ないせん","ないそう","なおす","ながい","なくす","なげる","なこうど","なさけ","なたでここ","なっとう","なつやすみ","ななおし","なにごと","なにもの","なにわ","なのか","なふだ","なまいき","なまえ","なまみ","なみだ","なめらか","なめる","なやむ","ならう","ならび","ならぶ","なれる","なわとび","なわばり","にあう","にいがた","にうけ","におい","にかい","にがて","にきび","にくしみ","にくまん","にげる","にさんかたんそ","にしき","にせもの","にちじょう","にちようび","にっか","にっき","にっけい","にっこう","にっさん","にっしょく","にっすう","にっせき","にってい","になう","にほん","にまめ","にもつ","にやり","にゅういん","にりんしゃ","にわとり","にんい","にんか","にんき","にんげん","にんしき","にんずう","にんそう","にんたい","にんち","にんてい","にんにく","にんぷ","にんまり","にんむ","にんめい","にんよう","ぬいくぎ","ぬかす","ぬぐいとる","ぬぐう","ぬくもり","ぬすむ","ぬまえび","ぬめり","ぬらす","ぬんちゃく","ねあげ","ねいき","ねいる","ねいろ","ねぐせ","ねくたい","ねくら","ねこぜ","ねこむ","ねさげ","ねすごす","ねそべる","ねだん","ねつい","ねっしん","ねつぞう","ねったいぎょ","ねぶそく","ねふだ","ねぼう","ねほりはほり","ねまき","ねまわし","ねみみ","ねむい","ねむたい","ねもと","ねらう","ねわざ","ねんいり","ねんおし","ねんかん","ねんきん","ねんぐ","ねんざ","ねんし","ねんちゃく","ねんど","ねんぴ","ねんぶつ","ねんまつ","ねんりょう","ねんれい","のいず","のおづま","のがす","のきなみ","のこぎり","のこす","のこる","のせる","のぞく","のぞむ","のたまう","のちほど","のっく","のばす","のはら","のべる","のぼる","のみもの","のやま","のらいぬ","のらねこ","のりもの","のりゆき","のれん","のんき","ばあい","はあく","ばあさん","ばいか","ばいく","はいけん","はいご","はいしん","はいすい","はいせん","はいそう","はいち","ばいばい","はいれつ","はえる","はおる","はかい","ばかり","はかる","はくしゅ","はけん","はこぶ","はさみ","はさん","はしご","ばしょ","はしる","はせる","ぱそこん","はそん","はたん","はちみつ","はつおん","はっかく","はづき","はっきり","はっくつ","はっけん","はっこう","はっさん","はっしん","はったつ","はっちゅう","はってん","はっぴょう","はっぽう","はなす","はなび","はにかむ","はぶらし","はみがき","はむかう","はめつ","はやい","はやし","はらう","はろうぃん","はわい","はんい","はんえい","はんおん","はんかく","はんきょう","ばんぐみ","はんこ","はんしゃ","はんすう","はんだん","ぱんち","ぱんつ","はんてい","はんとし","はんのう","はんぱ","はんぶん","はんぺん","はんぼうき","はんめい","はんらん","はんろん","ひいき","ひうん","ひえる","ひかく","ひかり","ひかる","ひかん","ひくい","ひけつ","ひこうき","ひこく","ひさい","ひさしぶり","ひさん","びじゅつかん","ひしょ","ひそか","ひそむ","ひたむき","ひだり","ひたる","ひつぎ","ひっこし","ひっし","ひつじゅひん","ひっす","ひつぜん","ぴったり","ぴっちり","ひつよう","ひてい","ひとごみ","ひなまつり","ひなん","ひねる","ひはん","ひびく","ひひょう","ひほう","ひまわり","ひまん","ひみつ","ひめい","ひめじし","ひやけ","ひやす","ひよう","びょうき","ひらがな","ひらく","ひりつ","ひりょう","ひるま","ひるやすみ","ひれい","ひろい","ひろう","ひろき","ひろゆき","ひんかく","ひんけつ","ひんこん","ひんしゅ","ひんそう","ぴんち","ひんぱん","びんぼう","ふあん","ふいうち","ふうけい","ふうせん","ぷうたろう","ふうとう","ふうふ","ふえる","ふおん","ふかい","ふきん","ふくざつ","ふくぶくろ","ふこう","ふさい","ふしぎ","ふじみ","ふすま","ふせい","ふせぐ","ふそく","ぶたにく","ふたん","ふちょう","ふつう","ふつか","ふっかつ","ふっき","ふっこく","ぶどう","ふとる","ふとん","ふのう","ふはい","ふひょう","ふへん","ふまん","ふみん","ふめつ","ふめん","ふよう","ふりこ","ふりる","ふるい","ふんいき","ぶんがく","ぶんぐ","ふんしつ","ぶんせき","ふんそう","ぶんぽう","へいあん","へいおん","へいがい","へいき","へいげん","へいこう","へいさ","へいしゃ","へいせつ","へいそ","へいたく","へいてん","へいねつ","へいわ","へきが","へこむ","べにいろ","べにしょうが","へらす","へんかん","べんきょう","べんごし","へんさい","へんたい","べんり","ほあん","ほいく","ぼうぎょ","ほうこく","ほうそう","ほうほう","ほうもん","ほうりつ","ほえる","ほおん","ほかん","ほきょう","ぼきん","ほくろ","ほけつ","ほけん","ほこう","ほこる","ほしい","ほしつ","ほしゅ","ほしょう","ほせい","ほそい","ほそく","ほたて","ほたる","ぽちぶくろ","ほっきょく","ほっさ","ほったん","ほとんど","ほめる","ほんい","ほんき","ほんけ","ほんしつ","ほんやく","まいにち","まかい","まかせる","まがる","まける","まこと","まさつ","まじめ","ますく","まぜる","まつり","まとめ","まなぶ","まぬけ","まねく","まほう","まもる","まゆげ","まよう","まろやか","まわす","まわり","まわる","まんが","まんきつ","まんぞく","まんなか","みいら","みうち","みえる","みがく","みかた","みかん","みけん","みこん","みじかい","みすい","みすえる","みせる","みっか","みつかる","みつける","みてい","みとめる","みなと","みなみかさい","みねらる","みのう","みのがす","みほん","みもと","みやげ","みらい","みりょく","みわく","みんか","みんぞく","むいか","むえき","むえん","むかい","むかう","むかえ","むかし","むぎちゃ","むける","むげん","むさぼる","むしあつい","むしば","むじゅん","むしろ","むすう","むすこ","むすぶ","むすめ","むせる","むせん","むちゅう","むなしい","むのう","むやみ","むよう","むらさき","むりょう","むろん","めいあん","めいうん","めいえん","めいかく","めいきょく","めいさい","めいし","めいそう","めいぶつ","めいれい","めいわく","めぐまれる","めざす","めした","めずらしい","めだつ","めまい","めやす","めんきょ","めんせき","めんどう","もうしあげる","もうどうけん","もえる","もくし","もくてき","もくようび","もちろん","もどる","もらう","もんく","もんだい","やおや","やける","やさい","やさしい","やすい","やすたろう","やすみ","やせる","やそう","やたい","やちん","やっと","やっぱり","やぶる","やめる","ややこしい","やよい","やわらかい","ゆうき","ゆうびんきょく","ゆうべ","ゆうめい","ゆけつ","ゆしゅつ","ゆせん","ゆそう","ゆたか","ゆちゃく","ゆでる","ゆにゅう","ゆびわ","ゆらい","ゆれる","ようい","ようか","ようきゅう","ようじ","ようす","ようちえん","よかぜ","よかん","よきん","よくせい","よくぼう","よけい","よごれる","よさん","よしゅう","よそう","よそく","よっか","よてい","よどがわく","よねつ","よやく","よゆう","よろこぶ","よろしい","らいう","らくがき","らくご","らくさつ","らくだ","らしんばん","らせん","らぞく","らたい","らっか","られつ","りえき","りかい","りきさく","りきせつ","りくぐん","りくつ","りけん","りこう","りせい","りそう","りそく","りてん","りねん","りゆう","りゅうがく","りよう","りょうり","りょかん","りょくちゃ","りょこう","りりく","りれき","りろん","りんご","るいけい","るいさい","るいじ","るいせき","るすばん","るりがわら","れいかん","れいぎ","れいせい","れいぞうこ","れいとう","れいぼう","れきし","れきだい","れんあい","れんけい","れんこん","れんさい","れんしゅう","れんぞく","れんらく","ろうか","ろうご","ろうじん","ろうそく","ろくが","ろこつ","ろじうら","ろしゅつ","ろせん","ろてん","ろめん","ろれつ","ろんぎ","ろんぱ","ろんぶん","ろんり","わかす","わかめ","わかやま","わかれる","わしつ","わじまし","わすれもの","わらう","われる"]},function(e,t,i){"use strict";e.exports=["ábaco","abdomen","abeja","abierto","abogado","abono","aborto","abrazo","abrir","abuelo","abuso","acabar","academia","acceso","acción","aceite","acelga","acento","aceptar","ácido","aclarar","acné","acoger","acoso","activo","acto","actriz","actuar","acudir","acuerdo","acusar","adicto","admitir","adoptar","adorno","aduana","adulto","aéreo","afectar","afición","afinar","afirmar","ágil","agitar","agonía","agosto","agotar","agregar","agrio","agua","agudo","águila","aguja","ahogo","ahorro","aire","aislar","ajedrez","ajeno","ajuste","alacrán","alambre","alarma","alba","álbum","alcalde","aldea","alegre","alejar","alerta","aleta","alfiler","alga","algodón","aliado","aliento","alivio","alma","almeja","almíbar","altar","alteza","altivo","alto","altura","alumno","alzar","amable","amante","amapola","amargo","amasar","ámbar","ámbito","ameno","amigo","amistad","amor","amparo","amplio","ancho","anciano","ancla","andar","andén","anemia","ángulo","anillo","ánimo","anís","anotar","antena","antiguo","antojo","anual","anular","anuncio","añadir","añejo","año","apagar","aparato","apetito","apio","aplicar","apodo","aporte","apoyo","aprender","aprobar","apuesta","apuro","arado","araña","arar","árbitro","árbol","arbusto","archivo","arco","arder","ardilla","arduo","área","árido","aries","armonía","arnés","aroma","arpa","arpón","arreglo","arroz","arruga","arte","artista","asa","asado","asalto","ascenso","asegurar","aseo","asesor","asiento","asilo","asistir","asno","asombro","áspero","astilla","astro","astuto","asumir","asunto","atajo","ataque","atar","atento","ateo","ático","atleta","átomo","atraer","atroz","atún","audaz","audio","auge","aula","aumento","ausente","autor","aval","avance","avaro","ave","avellana","avena","avestruz","avión","aviso","ayer","ayuda","ayuno","azafrán","azar","azote","azúcar","azufre","azul","baba","babor","bache","bahía","baile","bajar","balanza","balcón","balde","bambú","banco","banda","baño","barba","barco","barniz","barro","báscula","bastón","basura","batalla","batería","batir","batuta","baúl","bazar","bebé","bebida","bello","besar","beso","bestia","bicho","bien","bingo","blanco","bloque","blusa","boa","bobina","bobo","boca","bocina","boda","bodega","boina","bola","bolero","bolsa","bomba","bondad","bonito","bono","bonsái","borde","borrar","bosque","bote","botín","bóveda","bozal","bravo","brazo","brecha","breve","brillo","brinco","brisa","broca","broma","bronce","brote","bruja","brusco","bruto","buceo","bucle","bueno","buey","bufanda","bufón","búho","buitre","bulto","burbuja","burla","burro","buscar","butaca","buzón","caballo","cabeza","cabina","cabra","cacao","cadáver","cadena","caer","café","caída","caimán","caja","cajón","cal","calamar","calcio","caldo","calidad","calle","calma","calor","calvo","cama","cambio","camello","camino","campo","cáncer","candil","canela","canguro","canica","canto","caña","cañón","caoba","caos","capaz","capitán","capote","captar","capucha","cara","carbón","cárcel","careta","carga","cariño","carne","carpeta","carro","carta","casa","casco","casero","caspa","castor","catorce","catre","caudal","causa","cazo","cebolla","ceder","cedro","celda","célebre","celoso","célula","cemento","ceniza","centro","cerca","cerdo","cereza","cero","cerrar","certeza","césped","cetro","chacal","chaleco","champú","chancla","chapa","charla","chico","chiste","chivo","choque","choza","chuleta","chupar","ciclón","ciego","cielo","cien","cierto","cifra","cigarro","cima","cinco","cine","cinta","ciprés","circo","ciruela","cisne","cita","ciudad","clamor","clan","claro","clase","clave","cliente","clima","clínica","cobre","cocción","cochino","cocina","coco","código","codo","cofre","coger","cohete","cojín","cojo","cola","colcha","colegio","colgar","colina","collar","colmo","columna","combate","comer","comida","cómodo","compra","conde","conejo","conga","conocer","consejo","contar","copa","copia","corazón","corbata","corcho","cordón","corona","correr","coser","cosmos","costa","cráneo","cráter","crear","crecer","creído","crema","cría","crimen","cripta","crisis","cromo","crónica","croqueta","crudo","cruz","cuadro","cuarto","cuatro","cubo","cubrir","cuchara","cuello","cuento","cuerda","cuesta","cueva","cuidar","culebra","culpa","culto","cumbre","cumplir","cuna","cuneta","cuota","cupón","cúpula","curar","curioso","curso","curva","cutis","dama","danza","dar","dardo","dátil","deber","débil","década","decir","dedo","defensa","definir","dejar","delfín","delgado","delito","demora","denso","dental","deporte","derecho","derrota","desayuno","deseo","desfile","desnudo","destino","desvío","detalle","detener","deuda","día","diablo","diadema","diamante","diana","diario","dibujo","dictar","diente","dieta","diez","difícil","digno","dilema","diluir","dinero","directo","dirigir","disco","diseño","disfraz","diva","divino","doble","doce","dolor","domingo","don","donar","dorado","dormir","dorso","dos","dosis","dragón","droga","ducha","duda","duelo","dueño","dulce","dúo","duque","durar","dureza","duro","ébano","ebrio","echar","eco","ecuador","edad","edición","edificio","editor","educar","efecto","eficaz","eje","ejemplo","elefante","elegir","elemento","elevar","elipse","élite","elixir","elogio","eludir","embudo","emitir","emoción","empate","empeño","empleo","empresa","enano","encargo","enchufe","encía","enemigo","enero","enfado","enfermo","engaño","enigma","enlace","enorme","enredo","ensayo","enseñar","entero","entrar","envase","envío","época","equipo","erizo","escala","escena","escolar","escribir","escudo","esencia","esfera","esfuerzo","espada","espejo","espía","esposa","espuma","esquí","estar","este","estilo","estufa","etapa","eterno","ética","etnia","evadir","evaluar","evento","evitar","exacto","examen","exceso","excusa","exento","exigir","exilio","existir","éxito","experto","explicar","exponer","extremo","fábrica","fábula","fachada","fácil","factor","faena","faja","falda","fallo","falso","faltar","fama","familia","famoso","faraón","farmacia","farol","farsa","fase","fatiga","fauna","favor","fax","febrero","fecha","feliz","feo","feria","feroz","fértil","fervor","festín","fiable","fianza","fiar","fibra","ficción","ficha","fideo","fiebre","fiel","fiera","fiesta","figura","fijar","fijo","fila","filete","filial","filtro","fin","finca","fingir","finito","firma","flaco","flauta","flecha","flor","flota","fluir","flujo","flúor","fobia","foca","fogata","fogón","folio","folleto","fondo","forma","forro","fortuna","forzar","fosa","foto","fracaso","frágil","franja","frase","fraude","freír","freno","fresa","frío","frito","fruta","fuego","fuente","fuerza","fuga","fumar","función","funda","furgón","furia","fusil","fútbol","futuro","gacela","gafas","gaita","gajo","gala","galería","gallo","gamba","ganar","gancho","ganga","ganso","garaje","garza","gasolina","gastar","gato","gavilán","gemelo","gemir","gen","género","genio","gente","geranio","gerente","germen","gesto","gigante","gimnasio","girar","giro","glaciar","globo","gloria","gol","golfo","goloso","golpe","goma","gordo","gorila","gorra","gota","goteo","gozar","grada","gráfico","grano","grasa","gratis","grave","grieta","grillo","gripe","gris","grito","grosor","grúa","grueso","grumo","grupo","guante","guapo","guardia","guerra","guía","guiño","guion","guiso","guitarra","gusano","gustar","haber","hábil","hablar","hacer","hacha","hada","hallar","hamaca","harina","haz","hazaña","hebilla","hebra","hecho","helado","helio","hembra","herir","hermano","héroe","hervir","hielo","hierro","hígado","higiene","hijo","himno","historia","hocico","hogar","hoguera","hoja","hombre","hongo","honor","honra","hora","hormiga","horno","hostil","hoyo","hueco","huelga","huerta","hueso","huevo","huida","huir","humano","húmedo","humilde","humo","hundir","huracán","hurto","icono","ideal","idioma","ídolo","iglesia","iglú","igual","ilegal","ilusión","imagen","imán","imitar","impar","imperio","imponer","impulso","incapaz","índice","inerte","infiel","informe","ingenio","inicio","inmenso","inmune","innato","insecto","instante","interés","íntimo","intuir","inútil","invierno","ira","iris","ironía","isla","islote","jabalí","jabón","jamón","jarabe","jardín","jarra","jaula","jazmín","jefe","jeringa","jinete","jornada","joroba","joven","joya","juerga","jueves","juez","jugador","jugo","juguete","juicio","junco","jungla","junio","juntar","júpiter","jurar","justo","juvenil","juzgar","kilo","koala","labio","lacio","lacra","lado","ladrón","lagarto","lágrima","laguna","laico","lamer","lámina","lámpara","lana","lancha","langosta","lanza","lápiz","largo","larva","lástima","lata","látex","latir","laurel","lavar","lazo","leal","lección","leche","lector","leer","legión","legumbre","lejano","lengua","lento","leña","león","leopardo","lesión","letal","letra","leve","leyenda","libertad","libro","licor","líder","lidiar","lienzo","liga","ligero","lima","límite","limón","limpio","lince","lindo","línea","lingote","lino","linterna","líquido","liso","lista","litera","litio","litro","llaga","llama","llanto","llave","llegar","llenar","llevar","llorar","llover","lluvia","lobo","loción","loco","locura","lógica","logro","lombriz","lomo","lonja","lote","lucha","lucir","lugar","lujo","luna","lunes","lupa","lustro","luto","luz","maceta","macho","madera","madre","maduro","maestro","mafia","magia","mago","maíz","maldad","maleta","malla","malo","mamá","mambo","mamut","manco","mando","manejar","manga","maniquí","manjar","mano","manso","manta","mañana","mapa","máquina","mar","marco","marea","marfil","margen","marido","mármol","marrón","martes","marzo","masa","máscara","masivo","matar","materia","matiz","matriz","máximo","mayor","mazorca","mecha","medalla","medio","médula","mejilla","mejor","melena","melón","memoria","menor","mensaje","mente","menú","mercado","merengue","mérito","mes","mesón","meta","meter","método","metro","mezcla","miedo","miel","miembro","miga","mil","milagro","militar","millón","mimo","mina","minero","mínimo","minuto","miope","mirar","misa","miseria","misil","mismo","mitad","mito","mochila","moción","moda","modelo","moho","mojar","molde","moler","molino","momento","momia","monarca","moneda","monja","monto","moño","morada","morder","moreno","morir","morro","morsa","mortal","mosca","mostrar","motivo","mover","móvil","mozo","mucho","mudar","mueble","muela","muerte","muestra","mugre","mujer","mula","muleta","multa","mundo","muñeca","mural","muro","músculo","museo","musgo","música","muslo","nácar","nación","nadar","naipe","naranja","nariz","narrar","nasal","natal","nativo","natural","náusea","naval","nave","navidad","necio","néctar","negar","negocio","negro","neón","nervio","neto","neutro","nevar","nevera","nicho","nido","niebla","nieto","niñez","niño","nítido","nivel","nobleza","noche","nómina","noria","norma","norte","nota","noticia","novato","novela","novio","nube","nuca","núcleo","nudillo","nudo","nuera","nueve","nuez","nulo","número","nutria","oasis","obeso","obispo","objeto","obra","obrero","observar","obtener","obvio","oca","ocaso","océano","ochenta","ocho","ocio","ocre","octavo","octubre","oculto","ocupar","ocurrir","odiar","odio","odisea","oeste","ofensa","oferta","oficio","ofrecer","ogro","oído","oír","ojo","ola","oleada","olfato","olivo","olla","olmo","olor","olvido","ombligo","onda","onza","opaco","opción","ópera","opinar","oponer","optar","óptica","opuesto","oración","orador","oral","órbita","orca","orden","oreja","órgano","orgía","orgullo","oriente","origen","orilla","oro","orquesta","oruga","osadía","oscuro","osezno","oso","ostra","otoño","otro","oveja","óvulo","óxido","oxígeno","oyente","ozono","pacto","padre","paella","página","pago","país","pájaro","palabra","palco","paleta","pálido","palma","paloma","palpar","pan","panal","pánico","pantera","pañuelo","papá","papel","papilla","paquete","parar","parcela","pared","parir","paro","párpado","parque","párrafo","parte","pasar","paseo","pasión","paso","pasta","pata","patio","patria","pausa","pauta","pavo","payaso","peatón","pecado","pecera","pecho","pedal","pedir","pegar","peine","pelar","peldaño","pelea","peligro","pellejo","pelo","peluca","pena","pensar","peñón","peón","peor","pepino","pequeño","pera","percha","perder","pereza","perfil","perico","perla","permiso","perro","persona","pesa","pesca","pésimo","pestaña","pétalo","petróleo","pez","pezuña","picar","pichón","pie","piedra","pierna","pieza","pijama","pilar","piloto","pimienta","pino","pintor","pinza","piña","piojo","pipa","pirata","pisar","piscina","piso","pista","pitón","pizca","placa","plan","plata","playa","plaza","pleito","pleno","plomo","pluma","plural","pobre","poco","poder","podio","poema","poesía","poeta","polen","policía","pollo","polvo","pomada","pomelo","pomo","pompa","poner","porción","portal","posada","poseer","posible","poste","potencia","potro","pozo","prado","precoz","pregunta","premio","prensa","preso","previo","primo","príncipe","prisión","privar","proa","probar","proceso","producto","proeza","profesor","programa","prole","promesa","pronto","propio","próximo","prueba","público","puchero","pudor","pueblo","puerta","puesto","pulga","pulir","pulmón","pulpo","pulso","puma","punto","puñal","puño","pupa","pupila","puré","quedar","queja","quemar","querer","queso","quieto","química","quince","quitar","rábano","rabia","rabo","ración","radical","raíz","rama","rampa","rancho","rango","rapaz","rápido","rapto","rasgo","raspa","rato","rayo","raza","razón","reacción","realidad","rebaño","rebote","recaer","receta","rechazo","recoger","recreo","recto","recurso","red","redondo","reducir","reflejo","reforma","refrán","refugio","regalo","regir","regla","regreso","rehén","reino","reír","reja","relato","relevo","relieve","relleno","reloj","remar","remedio","remo","rencor","rendir","renta","reparto","repetir","reposo","reptil","res","rescate","resina","respeto","resto","resumen","retiro","retorno","retrato","reunir","revés","revista","rey","rezar","rico","riego","rienda","riesgo","rifa","rígido","rigor","rincón","riñón","río","riqueza","risa","ritmo","rito","rizo","roble","roce","rociar","rodar","rodeo","rodilla","roer","rojizo","rojo","romero","romper","ron","ronco","ronda","ropa","ropero","rosa","rosca","rostro","rotar","rubí","rubor","rudo","rueda","rugir","ruido","ruina","ruleta","rulo","rumbo","rumor","ruptura","ruta","rutina","sábado","saber","sabio","sable","sacar","sagaz","sagrado","sala","saldo","salero","salir","salmón","salón","salsa","salto","salud","salvar","samba","sanción","sandía","sanear","sangre","sanidad","sano","santo","sapo","saque","sardina","sartén","sastre","satán","sauna","saxofón","sección","seco","secreto","secta","sed","seguir","seis","sello","selva","semana","semilla","senda","sensor","señal","señor","separar","sepia","sequía","ser","serie","sermón","servir","sesenta","sesión","seta","setenta","severo","sexo","sexto","sidra","siesta","siete","siglo","signo","sílaba","silbar","silencio","silla","símbolo","simio","sirena","sistema","sitio","situar","sobre","socio","sodio","sol","solapa","soldado","soledad","sólido","soltar","solución","sombra","sondeo","sonido","sonoro","sonrisa","sopa","soplar","soporte","sordo","sorpresa","sorteo","sostén","sótano","suave","subir","suceso","sudor","suegra","suelo","sueño","suerte","sufrir","sujeto","sultán","sumar","superar","suplir","suponer","supremo","sur","surco","sureño","surgir","susto","sutil","tabaco","tabique","tabla","tabú","taco","tacto","tajo","talar","talco","talento","talla","talón","tamaño","tambor","tango","tanque","tapa","tapete","tapia","tapón","taquilla","tarde","tarea","tarifa","tarjeta","tarot","tarro","tarta","tatuaje","tauro","taza","tazón","teatro","techo","tecla","técnica","tejado","tejer","tejido","tela","teléfono","tema","temor","templo","tenaz","tender","tener","tenis","tenso","teoría","terapia","terco","término","ternura","terror","tesis","tesoro","testigo","tetera","texto","tez","tibio","tiburón","tiempo","tienda","tierra","tieso","tigre","tijera","tilde","timbre","tímido","timo","tinta","tío","típico","tipo","tira","tirón","titán","títere","título","tiza","toalla","tobillo","tocar","tocino","todo","toga","toldo","tomar","tono","tonto","topar","tope","toque","tórax","torero","tormenta","torneo","toro","torpedo","torre","torso","tortuga","tos","tosco","toser","tóxico","trabajo","tractor","traer","tráfico","trago","traje","tramo","trance","trato","trauma","trazar","trébol","tregua","treinta","tren","trepar","tres","tribu","trigo","tripa","triste","triunfo","trofeo","trompa","tronco","tropa","trote","trozo","truco","trueno","trufa","tubería","tubo","tuerto","tumba","tumor","túnel","túnica","turbina","turismo","turno","tutor","ubicar","úlcera","umbral","unidad","unir","universo","uno","untar","uña","urbano","urbe","urgente","urna","usar","usuario","útil","utopía","uva","vaca","vacío","vacuna","vagar","vago","vaina","vajilla","vale","válido","valle","valor","válvula","vampiro","vara","variar","varón","vaso","vecino","vector","vehículo","veinte","vejez","vela","velero","veloz","vena","vencer","venda","veneno","vengar","venir","venta","venus","ver","verano","verbo","verde","vereda","verja","verso","verter","vía","viaje","vibrar","vicio","víctima","vida","vídeo","vidrio","viejo","viernes","vigor","vil","villa","vinagre","vino","viñedo","violín","viral","virgo","virtud","visor","víspera","vista","vitamina","viudo","vivaz","vivero","vivir","vivo","volcán","volumen","volver","voraz","votar","voto","voz","vuelo","vulgar","yacer","yate","yegua","yema","yerno","yeso","yodo","yoga","yogur","zafiro","zanja","zapato","zarza","zona","zorro","zumo","zurdo"]},function(e,t,i){"use strict";var r=4294967296,a=2147483648,s=2147483647,n=null;e.exports=class e{constructor(e){void 0===e&&(e=(new Date).getTime()),this.mt=new Array(624),this.mti=625,this.seed(e)}seed(e){var t;for(this.mt[0]=e>>>0,this.mti=1;this.mti<624;this.mti++)t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30,this.mt[this.mti]=(1812433253*((4294901760&t)>>>16)<<16)+1812433253*(65535&t)+this.mti,this.mt[this.mti]>>>=0}seedArray(e){var t,i=1,r=0,a=e.length<624?624:e.length;for(this.seed(19650218);0<a;a--)t=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1664525*((4294901760&t)>>>16)<<16)+1664525*(65535&t))+e[r]+r,this.mt[i]>>>=0,r++,624<=++i&&(this.mt[0]=this.mt[623],i=1),r>=e.length&&(r=0);for(a=623;a;a--)t=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1566083941*((4294901760&t)>>>16)<<16)+1566083941*(65535&t))-i,this.mt[i]>>>=0,624<=++i&&(this.mt[0]=this.mt[623],i=1);this.mt[0]=2147483648}int(){var e,t,i=new Array(0,2567483615);if(624<=this.mti){for(625===this.mti&&this.seed(5489),t=0;t<227;t++)e=this.mt[t]&a|this.mt[t+1]&s,this.mt[t]=this.mt[t+397]^e>>>1^i[1&e];for(;t<623;t++)e=this.mt[t]&a|this.mt[t+1]&s,this.mt[t]=this.mt[t+-227]^e>>>1^i[1&e];e=this.mt[623]&a|this.mt[0]&s,this.mt[623]=this.mt[396]^e>>>1^i[1&e],this.mti=0}return e=this.mt[this.mti++],(e=(e=(e=(e^=e>>>11)^e<<7&2636928640)^e<<15&4022730752)^e>>>18)>>>0}randomBytes(e){var t=Buffer.alloc(e);for(let i=0;i<e;i+=4)t.writeUInt32LE(this.int(),i);return t}int31(){return this.int()>>>1}real(){return this.int()*(1/(r-1))}realx(){return(this.int()+.5)*(1/r)}random(){return this.int()*(1/r)}rndHiRes(){return 1/9007199254740992*(67108864*(this.int()>>>5)+(this.int()>>>6))}static random(){return(n=n||new e).random()}}},function(e,t,i){"use strict";
|
|
948
|
+
!function(e){"use strict";function t(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];if(t.length>1){t[0]=t[0].slice(0,-1);for(var r=t.length-1,a=1;a<r;++a)t[a]=t[a].slice(1,-1);return t[r]=t[r].slice(1),t.join("")}return t[0]}function i(e){return"(?:"+e+")"}function r(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function a(e){return e.toUpperCase()}function s(e){var r="[A-Za-z]",a="[0-9]",s=t(a,"[A-Fa-f]"),n=i(i("%[EFef]"+s+"%"+s+s+"%"+s+s)+"|"+i("%[89A-Fa-f]"+s+"%"+s+s)+"|"+i("%"+s+s)),o="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",c=t("[\\:\\/\\?\\#\\[\\]\\@]",o),u=e?"[\\uE000-\\uF8FF]":"[]",h=t(r,a,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),l=i(r+t(r,a,"[\\+\\-\\.]")+"*"),p=i(i(n+"|"+t(h,o,"[\\:]"))+"*"),d=(i(i("25[0-5]")+"|"+i("2[0-4]"+a)+"|"+i("1"+a+a)+"|"+i("[1-9]"+a)+"|"+a),i(i("25[0-5]")+"|"+i("2[0-4]"+a)+"|"+i("1"+a+a)+"|"+i("0?[1-9]"+a)+"|0?0?"+a)),f=i(d+"\\."+d+"\\."+d+"\\."+d),m=i(s+"{1,4}"),g=i(i(m+"\\:"+m)+"|"+f),v=i(i(m+"\\:")+"{6}"+g),y=i("\\:\\:"+i(m+"\\:")+"{5}"+g),b=i(i(m)+"?\\:\\:"+i(m+"\\:")+"{4}"+g),w=i(i(i(m+"\\:")+"{0,1}"+m)+"?\\:\\:"+i(m+"\\:")+"{3}"+g),x=i(i(i(m+"\\:")+"{0,2}"+m)+"?\\:\\:"+i(m+"\\:")+"{2}"+g),k=i(i(i(m+"\\:")+"{0,3}"+m)+"?\\:\\:"+m+"\\:"+g),S=i(i(i(m+"\\:")+"{0,4}"+m)+"?\\:\\:"+g),_=i(i(i(m+"\\:")+"{0,5}"+m)+"?\\:\\:"+m),E=i(i(i(m+"\\:")+"{0,6}"+m)+"?\\:\\:"),j=i([v,y,b,w,x,k,S,_,E].join("|")),A=i(i(h+"|"+n)+"+"),R=(i(j+"\\%25"+A),i(j+i("\\%25|\\%(?!"+s+"{2})")+A)),I=i("[vV]"+s+"+\\."+t(h,o,"[\\:]")+"+"),O=i("\\["+i(R+"|"+j+"|"+I)+"\\]"),C=i(i(n+"|"+t(h,o))+"*"),P=i(O+"|"+f+"(?!"+C+")|"+C),T=i(a+"*"),B=i(i(p+"@")+"?"+P+i("\\:"+T)+"?"),N=i(n+"|"+t(h,o,"[\\:\\@]")),z=i(N+"*"),F=i(N+"+"),L=i(i(n+"|"+t(h,o,"[\\@]"))+"+"),M=i(i("\\/"+z)+"*"),D=i("\\/"+i(F+M)+"?"),H=i(L+M),U=i(F+M),q="(?!"+N+")",V=(i(M+"|"+D+"|"+H+"|"+U+"|"+q),i(i(N+"|"+t("[\\/\\?]",u))+"*")),K=i(i(N+"|[\\/\\?]")+"*"),W=i(i("\\/\\/"+B+M)+"|"+D+"|"+U+"|"+q),$=i(l+"\\:"+W+i("\\?"+V)+"?"+i("\\#"+K)+"?"),Y=i(i("\\/\\/"+B+M)+"|"+D+"|"+H+"|"+q),G=i(Y+i("\\?"+V)+"?"+i("\\#"+K)+"?");i($+"|"+G),i(l+"\\:"+W+i("\\?"+V)+"?"),i(i("\\/\\/("+i("("+p+")@")+"?("+P+")"+i("\\:("+T+")")+"?)")+"?("+M+"|"+D+"|"+U+"|"+q+")"),i("\\?("+V+")"),i("\\#("+K+")"),i(i("\\/\\/("+i("("+p+")@")+"?("+P+")"+i("\\:("+T+")")+"?)")+"?("+M+"|"+D+"|"+H+"|"+q+")"),i("\\?("+V+")"),i("\\#("+K+")"),i(i("\\/\\/("+i("("+p+")@")+"?("+P+")"+i("\\:("+T+")")+"?)")+"?("+M+"|"+D+"|"+U+"|"+q+")"),i("\\?("+V+")"),i("\\#("+K+")"),i("("+p+")@"),i("\\:("+T+")");return{NOT_SCHEME:new RegExp(t("[^]",r,a,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(t("[^\\%\\:]",h,o),"g"),NOT_HOST:new RegExp(t("[^\\%\\[\\]\\:]",h,o),"g"),NOT_PATH:new RegExp(t("[^\\%\\/\\:\\@]",h,o),"g"),NOT_PATH_NOSCHEME:new RegExp(t("[^\\%\\/\\@]",h,o),"g"),NOT_QUERY:new RegExp(t("[^\\%]",h,o,"[\\:\\@\\/\\?]",u),"g"),NOT_FRAGMENT:new RegExp(t("[^\\%]",h,o,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(t("[^]",h,o),"g"),UNRESERVED:new RegExp(h,"g"),OTHER_CHARS:new RegExp(t("[^\\%]",h,c),"g"),PCT_ENCODED:new RegExp(n,"g"),IPV4ADDRESS:new RegExp("^("+f+")$"),IPV6ADDRESS:new RegExp("^\\[?("+j+")"+i(i("\\%25|\\%(?!"+s+"{2})")+"("+A+")")+"?\\]?$")}}var n=s(!1),o=s(!0),c=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var i=[],r=!0,a=!1,s=void 0;try{for(var n,o=e[Symbol.iterator]();!(r=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);r=!0);}catch(e){a=!0,s=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw s}}return i}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},u=2147483647,h=36,l=/^xn--/,p=/[^\0-\x7E]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,f={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,g=String.fromCharCode;function v(e){throw new RangeError(f[e])}function y(e,t){var i=e.split("@"),r="";i.length>1&&(r=i[0]+"@",e=i[1]);var a=function(e,t){for(var i=[],r=e.length;r--;)i[r]=t(e[r]);return i}((e=e.replace(d,".")).split("."),t).join(".");return r+a}function b(e){for(var t=[],i=0,r=e.length;i<r;){var a=e.charCodeAt(i++);if(a>=55296&&a<=56319&&i<r){var s=e.charCodeAt(i++);56320==(64512&s)?t.push(((1023&a)<<10)+(1023&s)+65536):(t.push(a),i--)}else t.push(a)}return t}var w=function(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:h},x=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},k=function(e,t,i){var r=0;for(e=i?m(e/700):e>>1,e+=m(e/t);e>455;r+=h)e=m(e/35);return m(r+36*e/(e+38))},S=function(e){var t=[],i=e.length,r=0,a=128,s=72,n=e.lastIndexOf("-");n<0&&(n=0);for(var o=0;o<n;++o)e.charCodeAt(o)>=128&&v("not-basic"),t.push(e.charCodeAt(o));for(var c=n>0?n+1:0;c<i;){for(var l=r,p=1,d=h;;d+=h){c>=i&&v("invalid-input");var f=w(e.charCodeAt(c++));(f>=h||f>m((u-r)/p))&&v("overflow"),r+=f*p;var g=d<=s?1:d>=s+26?26:d-s;if(f<g)break;var y=h-g;p>m(u/y)&&v("overflow"),p*=y}var b=t.length+1;s=k(r-l,b,0==l),m(r/b)>u-a&&v("overflow"),a+=m(r/b),r%=b,t.splice(r++,0,a)}return String.fromCodePoint.apply(String,t)},_=function e(t){var i=[],r=(t=b(t)).length,a=128,s=0,n=72,o=!0,c=!1,l=void 0;try{for(var p,d=t[Symbol.iterator]();!(o=(p=d.next()).done);o=!0){var f=p.value;f<128&&i.push(g(f))}}catch(e){c=!0,l=e}finally{try{!o&&d.return&&d.return()}finally{if(c)throw l}}var y=i.length,w=y;for(y&&i.push("-");w<r;){var S=u,_=!0,E=!1,j=void 0;try{for(var A,R=t[Symbol.iterator]();!(_=(A=R.next()).done);_=!0){var I=A.value;I>=a&&I<S&&(S=I)}}catch(e){E=!0,j=e}finally{try{!_&&R.return&&R.return()}finally{if(E)throw j}}var O=w+1;S-a>m((u-s)/O)&&v("overflow"),s+=(S-a)*O,a=S;var C=!0,P=!1,T=void 0;try{for(var B,N=t[Symbol.iterator]();!(C=(B=N.next()).done);C=!0){var z=B.value;if(z<a&&++s>u&&v("overflow"),z==a){for(var F=s,L=h;;L+=h){var M=L<=n?1:L>=n+26?26:L-n;if(F<M)break;var D=F-M,H=h-M;i.push(g(x(M+D%H,0))),F=m(D/H)}i.push(g(x(F,0))),n=k(s,O,w==y),s=0,++w}}}catch(e){P=!0,T=e}finally{try{!C&&N.return&&N.return()}finally{if(P)throw T}}++s,++a}return i.join("")},E=function(e){return y(e,(function(e){return p.test(e)?"xn--"+_(e):e}))},j=function(e){return y(e,(function(e){return l.test(e)?S(e.slice(4).toLowerCase()):e}))},A={};function R(e){var t=e.charCodeAt(0);return t<16?"%0"+t.toString(16).toUpperCase():t<128?"%"+t.toString(16).toUpperCase():t<2048?"%"+(t>>6|192).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase():"%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(63&t|128).toString(16).toUpperCase()}function I(e){for(var t="",i=0,r=e.length;i<r;){var a=parseInt(e.substr(i+1,2),16);if(a<128)t+=String.fromCharCode(a),i+=3;else if(a>=194&&a<224){if(r-i>=6){var s=parseInt(e.substr(i+4,2),16);t+=String.fromCharCode((31&a)<<6|63&s)}else t+=e.substr(i,6);i+=6}else if(a>=224){if(r-i>=9){var n=parseInt(e.substr(i+4,2),16),o=parseInt(e.substr(i+7,2),16);t+=String.fromCharCode((15&a)<<12|(63&n)<<6|63&o)}else t+=e.substr(i,9);i+=9}else t+=e.substr(i,3),i+=3}return t}function O(e,t){function i(e){var i=I(e);return i.match(t.UNRESERVED)?i:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,i).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,i).replace(t.NOT_USERINFO,R).replace(t.PCT_ENCODED,a)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,i).toLowerCase().replace(t.NOT_HOST,R).replace(t.PCT_ENCODED,a)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,i).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,R).replace(t.PCT_ENCODED,a)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,i).replace(t.NOT_QUERY,R).replace(t.PCT_ENCODED,a)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,i).replace(t.NOT_FRAGMENT,R).replace(t.PCT_ENCODED,a)),e}function C(e){return e.replace(/^0*(.*)/,"$1")||"0"}function P(e,t){var i=e.match(t.IPV4ADDRESS)||[],r=c(i,2)[1];return r?r.split(".").map(C).join("."):e}function T(e,t){var i=e.match(t.IPV6ADDRESS)||[],r=c(i,3),a=r[1],s=r[2];if(a){for(var n=a.toLowerCase().split("::").reverse(),o=c(n,2),u=o[0],h=o[1],l=h?h.split(":").map(C):[],p=u.split(":").map(C),d=t.IPV4ADDRESS.test(p[p.length-1]),f=d?7:8,m=p.length-f,g=Array(f),v=0;v<f;++v)g[v]=l[v]||p[m+v]||"";d&&(g[f-1]=P(g[f-1],t));var y=g.reduce((function(e,t,i){if(!t||"0"===t){var r=e[e.length-1];r&&r.index+r.length===i?r.length++:e.push({index:i,length:1})}return e}),[]).sort((function(e,t){return t.length-e.length}))[0],b=void 0;if(y&&y.length>1){var w=g.slice(0,y.index),x=g.slice(y.index+y.length);b=w.join(":")+"::"+x.join(":")}else b=g.join(":");return s&&(b+="%"+s),b}return e}var B=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,N=void 0==="".match(/(){0}/)[1];function z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i={},r=!1!==t.iri?o:n;"suffix"===t.reference&&(e=(t.scheme?t.scheme+":":"")+"//"+e);var a=e.match(B);if(a){N?(i.scheme=a[1],i.userinfo=a[3],i.host=a[4],i.port=parseInt(a[5],10),i.path=a[6]||"",i.query=a[7],i.fragment=a[8],isNaN(i.port)&&(i.port=a[5])):(i.scheme=a[1]||void 0,i.userinfo=-1!==e.indexOf("@")?a[3]:void 0,i.host=-1!==e.indexOf("//")?a[4]:void 0,i.port=parseInt(a[5],10),i.path=a[6]||"",i.query=-1!==e.indexOf("?")?a[7]:void 0,i.fragment=-1!==e.indexOf("#")?a[8]:void 0,isNaN(i.port)&&(i.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?a[4]:void 0)),i.host&&(i.host=T(P(i.host,r),r)),void 0!==i.scheme||void 0!==i.userinfo||void 0!==i.host||void 0!==i.port||i.path||void 0!==i.query?void 0===i.scheme?i.reference="relative":void 0===i.fragment?i.reference="absolute":i.reference="uri":i.reference="same-document",t.reference&&"suffix"!==t.reference&&t.reference!==i.reference&&(i.error=i.error||"URI is not a "+t.reference+" reference.");var s=A[(t.scheme||i.scheme||"").toLowerCase()];if(t.unicodeSupport||s&&s.unicodeSupport)O(i,r);else{if(i.host&&(t.domainHost||s&&s.domainHost))try{i.host=E(i.host.replace(r.PCT_ENCODED,I).toLowerCase())}catch(e){i.error=i.error||"Host's domain name can not be converted to ASCII via punycode: "+e}O(i,n)}s&&s.parse&&s.parse(i,t)}else i.error=i.error||"URI can not be parsed.";return i}function F(e,t){var i=!1!==t.iri?o:n,r=[];return void 0!==e.userinfo&&(r.push(e.userinfo),r.push("@")),void 0!==e.host&&r.push(T(P(String(e.host),i),i).replace(i.IPV6ADDRESS,(function(e,t,i){return"["+t+(i?"%25"+i:"")+"]"}))),"number"!=typeof e.port&&"string"!=typeof e.port||(r.push(":"),r.push(String(e.port))),r.length?r.join(""):void 0}var L=/^\.\.?\//,M=/^\/\.(\/|$)/,D=/^\/\.\.(\/|$)/,H=/^\/?(?:.|\n)*?(?=\/|$)/;function U(e){for(var t=[];e.length;)if(e.match(L))e=e.replace(L,"");else if(e.match(M))e=e.replace(M,"/");else if(e.match(D))e=e.replace(D,"/"),t.pop();else if("."===e||".."===e)e="";else{var i=e.match(H);if(!i)throw new Error("Unexpected dot segment condition");var r=i[0];e=e.slice(r.length),t.push(r)}return t.join("")}function q(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.iri?o:n,r=[],a=A[(t.scheme||e.scheme||"").toLowerCase()];if(a&&a.serialize&&a.serialize(e,t),e.host)if(i.IPV6ADDRESS.test(e.host));else if(t.domainHost||a&&a.domainHost)try{e.host=t.iri?j(e.host):E(e.host.replace(i.PCT_ENCODED,I).toLowerCase())}catch(i){e.error=e.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+i}O(e,i),"suffix"!==t.reference&&e.scheme&&(r.push(e.scheme),r.push(":"));var s=F(e,t);if(void 0!==s&&("suffix"!==t.reference&&r.push("//"),r.push(s),e.path&&"/"!==e.path.charAt(0)&&r.push("/")),void 0!==e.path){var c=e.path;t.absolutePath||a&&a.absolutePath||(c=U(c)),void 0===s&&(c=c.replace(/^\/\//,"/%2F")),r.push(c)}return void 0!==e.query&&(r.push("?"),r.push(e.query)),void 0!==e.fragment&&(r.push("#"),r.push(e.fragment)),r.join("")}function V(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments[3],a={};return r||(e=z(q(e,i),i),t=z(q(t,i),i)),!(i=i||{}).tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=U(t.path||""),a.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=U(t.path||""),a.query=t.query):(t.path?("/"===t.path.charAt(0)?a.path=U(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:a.path=t.path:a.path="/"+t.path,a.path=U(a.path)),a.query=t.query):(a.path=e.path,void 0!==t.query?a.query=t.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function K(e,t){return e&&e.toString().replace(t&&t.iri?o.PCT_ENCODED:n.PCT_ENCODED,I)}var W={scheme:"http",domainHost:!0,parse:function(e,t){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,t){var i="https"===String(e.scheme).toLowerCase();return e.port!==(i?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},$={scheme:"https",domainHost:W.domainHost,parse:W.parse,serialize:W.serialize};function Y(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var G={scheme:"ws",domainHost:!0,parse:function(e,t){var i=e;return i.secure=Y(i),i.resourceName=(i.path||"/")+(i.query?"?"+i.query:""),i.path=void 0,i.query=void 0,i},serialize:function(e,t){if(e.port!==(Y(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var i=e.resourceName.split("?"),r=c(i,2),a=r[0],s=r[1];e.path=a&&"/"!==a?a:void 0,e.query=s,e.resourceName=void 0}return e.fragment=void 0,e}},X={scheme:"wss",domainHost:G.domainHost,parse:G.parse,serialize:G.serialize},J={},Q="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",Z="[0-9A-Fa-f]",ee=i(i("%[EFef]"+Z+"%"+Z+Z+"%"+Z+Z)+"|"+i("%[89A-Fa-f]"+Z+"%"+Z+Z)+"|"+i("%"+Z+Z)),te=t("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),ie=new RegExp(Q,"g"),re=new RegExp(ee,"g"),ae=new RegExp(t("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',te),"g"),se=new RegExp(t("[^]",Q,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),ne=se;function oe(e){var t=I(e);return t.match(ie)?t:e}var ce={scheme:"mailto",parse:function e(t,i){var r=t,a=r.to=r.path?r.path.split(","):[];if(r.path=void 0,r.query){for(var s=!1,n={},o=r.query.split("&"),c=0,u=o.length;c<u;++c){var h=o[c].split("=");switch(h[0]){case"to":for(var l=h[1].split(","),p=0,d=l.length;p<d;++p)a.push(l[p]);break;case"subject":r.subject=K(h[1],i);break;case"body":r.body=K(h[1],i);break;default:s=!0,n[K(h[0],i)]=K(h[1],i)}}s&&(r.headers=n)}r.query=void 0;for(var f=0,m=a.length;f<m;++f){var g=a[f].split("@");if(g[0]=K(g[0]),i.unicodeSupport)g[1]=K(g[1],i).toLowerCase();else try{g[1]=E(K(g[1],i).toLowerCase())}catch(e){r.error=r.error||"Email address's domain name can not be converted to ASCII via punycode: "+e}a[f]=g.join("@")}return r},serialize:function e(t,i){var r=t,s=function(e){return null!=e?e instanceof Array?e:"number"!=typeof e.length||e.split||e.setInterval||e.call?[e]:Array.prototype.slice.call(e):[]}(t.to);if(s){for(var n=0,o=s.length;n<o;++n){var c=String(s[n]),u=c.lastIndexOf("@"),h=c.slice(0,u).replace(re,oe).replace(re,a).replace(ae,R),l=c.slice(u+1);try{l=i.iri?j(l):E(K(l,i).toLowerCase())}catch(e){r.error=r.error||"Email address's domain name can not be converted to "+(i.iri?"Unicode":"ASCII")+" via punycode: "+e}s[n]=h+"@"+l}r.path=s.join(",")}var p=t.headers=t.headers||{};t.subject&&(p.subject=t.subject),t.body&&(p.body=t.body);var d=[];for(var f in p)p[f]!==J[f]&&d.push(f.replace(re,oe).replace(re,a).replace(se,R)+"="+p[f].replace(re,oe).replace(re,a).replace(ne,R));return d.length&&(r.query=d.join("&")),r}},ue=/^([^\:]+)\:(.*)/,he={scheme:"urn",parse:function(e,t){var i=e.path&&e.path.match(ue),r=e;if(i){var a=t.scheme||r.scheme||"urn",s=i[1].toLowerCase(),n=i[2],o=a+":"+(t.nid||s),c=A[o];r.nid=s,r.nss=n,r.path=void 0,c&&(r=c.parse(r,t))}else r.error=r.error||"URN can not be parsed.";return r},serialize:function(e,t){var i=t.scheme||e.scheme||"urn",r=e.nid,a=i+":"+(t.nid||r),s=A[a];s&&(e=s.serialize(e,t));var n=e,o=e.nss;return n.path=(r||t.nid)+":"+o,n}},le=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,pe={scheme:"urn:uuid",parse:function(e,t){var i=e;return i.uuid=i.nss,i.nss=void 0,t.tolerant||i.uuid&&i.uuid.match(le)||(i.error=i.error||"UUID is not valid."),i},serialize:function(e,t){var i=e;return i.nss=(e.uuid||"").toLowerCase(),i}};A[W.scheme]=W,A[$.scheme]=$,A[G.scheme]=G,A[X.scheme]=X,A[ce.scheme]=ce,A[he.scheme]=he,A[pe.scheme]=pe,e.SCHEMES=A,e.pctEncChar=R,e.pctDecChars=I,e.parse=z,e.removeDotSegments=U,e.serialize=q,e.resolveComponents=V,e.resolve=function(e,t,i){var r=function(e,t){var i=e;if(t)for(var r in t)i[r]=t[r];return i}({scheme:"null"},i);return q(V(z(e,r),z(t,r),r,!0),r)},e.normalize=function(e,t){return"string"==typeof e?e=q(z(e,t),t):"object"===r(e)&&(e=z(q(e,t),t)),e},e.equal=function(e,t,i){return"string"==typeof e?e=q(z(e,i),i):"object"===r(e)&&(e=q(e,i)),"string"==typeof t?t=q(z(t,i),i):"object"===r(t)&&(t=q(t,i)),e===t},e.escapeComponent=function(e,t){return e&&e.toString().replace(t&&t.iri?o.ESCAPE:n.ESCAPE,R)},e.unescapeComponent=K,Object.defineProperty(e,"__esModule",{value:!0})}(t)},function(e,t,i){"use strict";e.exports=function(e){for(var t,i=0,r=e.length,a=0;a<r;)i++,55296<=(t=e.charCodeAt(a++))&&t<=56319&&a<r&&56320==(64512&e.charCodeAt(a))&&a++;return i}},function(e,t,i){"use strict";var r=e.exports=function(e,t,i){"function"==typeof t&&(i=t,t={}),function e(t,i,s,n,o,c,u,h,l,p){if(n&&"object"==typeof n&&!Array.isArray(n)){for(var d in i(n,o,c,u,h,l,p),n){var f=n[d];if(Array.isArray(f)){if(d in r.arrayKeywords)for(var m=0;m<f.length;m++)e(t,i,s,f[m],o+"/"+d+"/"+m,c,o,d,n,m)}else if(d in r.propsKeywords){if(f&&"object"==typeof f)for(var g in f)e(t,i,s,f[g],o+"/"+d+"/"+a(g),c,o,d,n,g)}else(d in r.keywords||t.allKeys&&!(d in r.skipKeywords))&&e(t,i,s,f,o+"/"+d,c,o,d,n)}s(n,o,c,u,h,l,p)}}(t,"function"==typeof(i=t.cb||i)?i:i.pre||function(){},i.post||function(){},e,"",e)};function a(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},function(e,t,i){"use strict";(e=e.exports=function(){this._cache={}}).prototype.put=function(e,t){this._cache[e]=t},e.prototype.get=function(e){return this._cache[e]},e.prototype.del=function(e){delete this._cache[e]},e.prototype.clear=function(){this._cache={}}},function(e,t,i){"use strict";var r=i(92),a=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,s=[0,31,28,31,30,31,30,31,31,30,31,30,31],n=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,o=(i=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i),c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,l=/^(?:\/(?:[^~/]|~0|~1)*)*$/,p=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,d=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function f(e){return r.copy(f[e="full"==e?"full":"fast"])}function m(e){var t,i;return!!(e=e.match(a))&&(t=+e[1],i=+e[2],e=+e[3],1<=i)&&i<=12&&1<=e&&e<=(2!=i||(e=t)%4!=0||e%100==0&&e%400!=0?s[i]:29)}function g(e,t){var i,r,a;return!!(e=e.match(n))&&(i=e[1],r=e[2],a=e[3],e=e[5],i<=23&&r<=59&&a<=59||23==i&&59==r&&60==a)&&(!t||e)}(e.exports=f).fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":l,"json-pointer-uri-fragment":p,"relative-json-pointer":d},f.full={date:m,time:g,"date-time":function(e){return 2==(e=e.split(v)).length&&m(e[0])&&g(e[1],!0)},uri:function(e){return y.test(e)&&o.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":l,"json-pointer-uri-fragment":p,"relative-json-pointer":d};var v=/t|\s/i,y=/\/|:/,b=/[^\\]\\Z/;function w(e){if(b.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},function(e,t,i){"use strict";var r=i(502),a=i(92).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],t=["type","$comment"];return e.all=a(t),e.types=a(["number","integer","string","array","object","boolean","null"]),e.forEach((function(i){i.rules=i.rules.map((function(i){var a,s;return"object"==typeof i&&(s=i[a=Object.keys(i)[0]],i=a,s.forEach((function(i){t.push(i),e.all[i]=!0}))),t.push(i),e.all[i]={keyword:i,code:r[i],implements:s}})),e.all.$comment={keyword:"$comment",code:r.$comment},i.type&&(e.types[i.type]=i)})),e.keywords=a(t.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),e.custom={},e}},function(e,t,i){"use strict";e.exports={$ref:i(503),allOf:i(504),anyOf:i(505),$comment:i(506),const:i(507),contains:i(508),dependencies:i(509),enum:i(510),format:i(511),if:i(512),items:i(513),maximum:i(294),minimum:i(294),maxItems:i(295),minItems:i(295),maxLength:i(296),minLength:i(296),maxProperties:i(297),minProperties:i(297),multipleOf:i(514),not:i(515),oneOf:i(516),pattern:i(517),properties:i(518),propertyNames:i(519),required:i(520),uniqueItems:i(521),validate:i(293)}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a,s=" ",n=e.level,o=e.dataLevel,c=e.schema[t],u=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),h="data"+(o||"");n="valid"+n;if("#"==c||"#/"==c)a=e.isRoot?(r=e.async,"validate"):(r=!0===e.root.schema.$async,"root.refVal[0]");else{var l=e.resolveRef(e.baseId,c,e.isRoot);if(void 0===l){var p=e.MissingRefError.message(e.baseId,c);if("fail"==e.opts.missingRefs)e.logger.error(p),(d=d||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { ref: '"+e.util.escapeQuotes(c)+"' } ",!1!==e.opts.messages&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(c)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(c)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ",t=s,s=d.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+t+"]); ":s+=" validate.errors = ["+t+"]; return false; ":s+=" var err = "+t+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(s+=" if (false) { ");else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,c,p);e.logger.warn(p),u&&(s+=" if (true) { ")}}else l.inline?((t=e.util.copy(e)).level++,p="valid"+t.level,t.schema=l.schema,t.schemaPath="",t.errSchemaPath=c,s+=" "+e.validate(t).replace(/validate\.schema/g,l.code)+" ",u&&(s+=" if ("+p+") { ")):(r=!0===l.$async||e.async&&!1!==l.$async,a=l.code)}if(a){(d=d||[]).push(s),s="",e.opts.passContext?s+=" "+a+".call(this, ":s+=" "+a+"( ",s+=" "+h+", (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);var d;t=s+=" , "+(c=o?"data"+(o-1||""):"parentData")+" , "+(o?e.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(s=d.pop(),r){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(s+=" var "+n+"; "),s+=" try { await "+t+"; ",u&&(s+=" "+n+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(s+=" "+n+" = false; "),s+=" } ",u&&(s+=" if ("+n+") { ")}else s+=" if (!"+t+") { if (vErrors === null) vErrors = "+a+".errors; else vErrors = vErrors.concat("+a+".errors); errors = vErrors.length; } ",u&&(s+=" else { ")}return s}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.schema[t],s=e.schemaPath+e.util.getProperty(t),n=e.errSchemaPath+"/"+t,o=!e.opts.allErrors,c=e.util.copy(e),u="",h=(c.level++,"valid"+c.level),l=c.baseId,p=!0,d=a;if(d)for(var f,m=-1,g=d.length-1;m<g;)f=d[m+=1],(e.opts.strictKeywords?"object"==typeof f&&0<Object.keys(f).length||!1===f:e.util.schemaHasRules(f,e.RULES.all))&&(p=!1,c.schema=f,c.schemaPath=s+"["+m+"]",c.errSchemaPath=n+"/"+m,r+=" "+e.validate(c)+" ",c.baseId=l,o)&&(r+=" if ("+h+") { ",u+="}");return o&&(r+=p?" if (true) { ":" "+u.slice(0,-1)+" "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=(t=!e.opts.allErrors,s="data"+(s||""),"valid"+a),h=(a="errs__"+a,e.util.copy(e)),l="",p=(h.level++,"valid"+h.level);if(n.every((function(t){return e.opts.strictKeywords?"object"==typeof t&&0<Object.keys(t).length||!1===t:e.util.schemaHasRules(t,e.RULES.all)}))){var d=h.baseId,f=(r+=" var "+a+" = errors; var "+u+" = false; ",e.compositeRule),m=(e.compositeRule=h.compositeRule=!0,n);if(m)for(var g,v=-1,y=m.length-1;v<y;)g=m[v+=1],h.schema=g,h.schemaPath=o+"["+v+"]",h.errSchemaPath=c+"/"+v,r+=" "+e.validate(h)+" ",h.baseId=d,r+=" "+u+" = "+u+" || "+p+"; if (!"+u+") { ",l+="}";e.compositeRule=h.compositeRule=f,r+=" "+l+" if (!"+u+") { var err = ",!1!==e.createErrors?(r+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(r+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+s+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&t&&(e.async?r+=" throw new ValidationError(vErrors); ":r+=" validate.errors = vErrors; return false; "),r+=" } else { errors = "+a+"; if (vErrors !== null) { if ("+a+") vErrors.length = "+a+"; else vErrors = null; } ",e.opts.allErrors&&(r+=" } ")}else t&&(r+=" if (true) { ");return r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.schema[t];t=e.errSchemaPath+"/"+t,e.opts.allErrors,a=e.util.toQuotedString(a);return!0===e.opts.$comment?r+=" console.log("+a+");":"function"==typeof e.opts.$comment&&(r+=" self._opts.$comment("+a+", "+e.util.toQuotedString(t)+", validate.root.schema);"),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u="data"+(s||""),h="valid"+a,l=e.opts.$data&&n&&n.$data;(n=(l&&(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; "),l||(r+=" var schema"+a+" = validate.schema"+o+";"),[])).push(r+="var "+h+" = equal("+u+", schema"+a+"); if (!"+h+") { "),r="",!1!==e.createErrors?(r+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { allowedValue: schema"+a+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be equal to constant' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",s=r,r=n.pop();return!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+s+"]); ":r+=" validate.errors = ["+s+"]; return false; ":r+=" var err = "+s+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" }",c&&(r+=" else { "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u=(s="data"+(s||""),"valid"+a),h="errs__"+a,l=e.util.copy(e),p=(l.level++,"valid"+l.level),d=(a="i"+a,l.dataLevel=e.dataLevel+1),f="data"+d,m=e.baseId,g=e.opts.strictKeywords?"object"==typeof n&&0<Object.keys(n).length||!1===n:e.util.schemaHasRules(n,e.RULES.all);(a=(r+="var "+h+" = errors;var "+u+";",g?(u=e.compositeRule,e.compositeRule=l.compositeRule=!0,l.schema=n,l.schemaPath=o,l.errSchemaPath=t,r+=" var "+p+" = false; for (var "+a+" = 0; "+a+" < "+s+".length; "+a+"++) { ",l.errorPath=e.util.getPathExpr(e.errorPath,a,e.opts.jsonPointers,!0),n=s+"["+a+"]",l.dataPathArr[d]=a,d=e.validate(l),l.baseId=m,e.util.varOccurences(d,f)<2?r+=" "+e.util.varReplace(d,f,n)+" ":r+=" var "+f+" = "+n+"; "+d+" ",r+=" if ("+p+") break; } ",e.compositeRule=l.compositeRule=u,r+=" if (!"+p+") {"):r+=" if ("+s+".length == 0) {",[])).push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: {} ",!1!==e.opts.messages&&(r+=" , message: 'should contain a valid item' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+s+" "),r+=" } "):r+=" {} ",m=r,r=a.pop();return!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+m+"]); ":r+=" validate.errors = ["+m+"]; return false; ":r+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else { ",g&&(r+=" errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } "),e.opts.allErrors&&(r+=" } "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a=" ",s=e.level,n=e.dataLevel,o=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,l="data"+(n||""),p=(t="errs__"+s,e.util.copy(e)),d="",f=(p.level++,"valid"+p.level),m={},g={},v=e.opts.ownProperties;for(C in o)"__proto__"!=C&&(T=o[C],(r=Array.isArray(T)?g:m)[C]=T);var y=e.errorPath;for(C in a=a+"var "+t+" = errors;var missing"+s+";",g)if((r=g[C]).length){if(a+=" if ( "+l+e.util.getProperty(C)+" !== undefined ",v&&(a+=" && Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(C)+"') "),h){a+=" && ( ";var b=r;if(b)for(var w=-1,x=b.length-1;w<x;)j=b[w+=1],w&&(a+=" || "),a+=" ( ( "+(O=l+(I=e.util.getProperty(j)))+" === undefined ",v&&(a+=" || ! Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(j)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?j:I)+") ) ";a+=")) { ";var k="' + "+(_="missing"+s)+" + '",S=(e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(y,_,!0):y+" + "+_),S||[]),_=(S.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { property: '"+e.util.escapeQuotes(C)+"', missingProperty: '"+k+"', depsCount: "+r.length+", deps: '"+e.util.escapeQuotes(1==r.length?r[0]:r.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",1==r.length?a+="property "+e.util.escapeQuotes(r[0]):a+="properties "+e.util.escapeQuotes(r.join(", ")),a+=" when property "+e.util.escapeQuotes(C)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",a);a=S.pop();!e.compositeRule&&h?e.async?a+=" throw new ValidationError(["+_+"]); ":a+=" validate.errors = ["+_+"]; return false; ":a+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var E=r;if(E)for(var j,A=-1,R=E.length-1;A<R;){j=E[A+=1];var I=e.util.getProperty(j),O=(k=e.util.escapeQuotes(j),l+I);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(y,j,e.opts.jsonPointers)),a+=" if ( "+O+" === undefined ",v&&(a+=" || ! Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(j)+"') "),a+=") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { property: '"+e.util.escapeQuotes(C)+"', missingProperty: '"+k+"', depsCount: "+r.length+", deps: '"+e.util.escapeQuotes(1==r.length?r[0]:r.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",1==r.length?a+="property "+e.util.escapeQuotes(r[0]):a+="properties "+e.util.escapeQuotes(r.join(", ")),a+=" when property "+e.util.escapeQuotes(C)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}a+=" } ",h&&(d+="}",a+=" else { ")}e.errorPath=y;var C,P=p.baseId;for(C in m){var T=m[C];(e.opts.strictKeywords?"object"==typeof T&&0<Object.keys(T).length||!1===T:e.util.schemaHasRules(T,e.RULES.all))&&(a+=" "+f+" = true; if ( "+l+e.util.getProperty(C)+" !== undefined ",v&&(a+=" && Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(C)+"') "),a+=") { ",p.schema=T,p.schemaPath=c+e.util.getProperty(C),p.errSchemaPath=u+"/"+e.util.escapeFragment(C),a+=" "+e.validate(p)+" ",p.baseId=P,a+=" } ",h)&&(a+=" if ("+f+") { ",d+="}")}return h&&(a+=" "+d+" if ("+t+" == errors) {"),a}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u="data"+(s||""),h="valid"+a,l=e.opts.$data&&n&&n.$data;l&&(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; "),n="i"+a,s="schema"+a,(s=(l||(r+=" var "+s+" = validate.schema"+o+";"),r+="var "+h+";",l&&(r+=" if (schema"+a+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+a+")) "+h+" = false; else {"),r+=h+" = false;for (var "+n+"=0; "+n+"<"+s+".length; "+n+"++) if (equal("+u+", "+s+"["+n+"])) { "+h+" = true; break; }",l&&(r+=" } "),[])).push(r+=" if (!"+h+") { "),r="",!1!==e.createErrors?(r+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { allowedValues: schema"+a+" } ",!1!==e.opts.messages&&(r+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",n=r,r=s.pop();return!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+n+"]); ":r+=" validate.errors = ["+n+"]; return false; ":r+=" var err = "+n+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" }",c&&(r+=" else { "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u="data"+(s||"");if(!1===e.opts.format)c&&(r+=" if (true) { ");else{var h,l=e.opts.$data&&n&&n.$data,p=(s=l?(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; ","schema"+a):n,e.opts.unknownFormats),d=Array.isArray(p);if(l)r+=" var "+(h="format"+a)+" = formats["+s+"]; var "+(f="isObject"+a)+" = typeof "+h+" == 'object' && !("+h+" instanceof RegExp) && "+h+".validate; var "+(g="formatType"+a)+" = "+f+" && "+h+".type || 'string'; if ("+f+") { ",e.async&&(r+=" var async"+a+" = "+h+".async; "),r+=" "+h+" = "+h+".validate; } if ( ",l&&(r+=" ("+s+" !== undefined && typeof "+s+" != 'string') || "),r+=" (","ignore"!=p&&(r+=" ("+s+" && !"+h+" ",d&&(r+=" && self._opts.unknownFormats.indexOf("+s+") == -1 "),r+=") || "),r+=" ("+h+" && "+g+" == '"+i+"' && !(typeof "+h+" == 'function' ? ",e.async?r+=" (async"+a+" ? await "+h+"("+u+") : "+h+"("+u+")) ":r+=" "+h+"("+u+") ",r+=" : "+h+".test("+u+"))))) {";else{if(!(h=e.formats[n])){if("ignore"==p)return e.logger.warn('unknown format "'+n+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(r+=" if (true) { "),r;if(d&&0<=p.indexOf(n))return c&&(r+=" if (true) { "),r;throw new Error('unknown format "'+n+'" is used in schema at path "'+e.errSchemaPath+'"')}var f,m,g=(f="object"==typeof h&&!(h instanceof RegExp)&&h.validate)&&h.type||"string";if(f&&(m=!0===h.async,h=h.validate),g!=i)return c&&(r+=" if (true) { "),r;if(m){if(!e.async)throw new Error("async format in sync schema");r+=" if (!(await "+(v="formats"+e.util.getProperty(n)+".validate")+"("+u+"))) { "}else{r+=" if (! ";var v="formats"+e.util.getProperty(n);f&&(v+=".validate"),r=r+("function"==typeof h?" "+v+"("+u+") ":" "+v+".test("+u+") ")+") { "}}(a=[]).push(r),r="",!1!==e.createErrors?(r=(r+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { format: ")+(l?""+s:""+e.util.toQuotedString(n))+" } ",!1!==e.opts.messages&&(r=(r+=" , message: 'should match format \"")+(l?"' + "+s+" + '":""+e.util.escapeQuotes(n))+"\"' "),e.opts.verbose&&(r=(r=(r+=" , schema: ")+(l?"validate.schema"+o:""+e.util.toQuotedString(n)))+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",d=r,r=a.pop(),!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+d+"]); ":r+=" validate.errors = ["+d+"]; return false; ":r+=" var err = "+d+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",c&&(r+=" else { ")}return r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a=" ",s=e.level,n=e.dataLevel,o=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),h=(n="data"+(n||""),"valid"+s),l="errs__"+s,p=e.util.copy(e),d=(p.level++,"valid"+p.level),f=e.schema.then,m=e.schema.else,g=(f=void 0!==f&&(e.opts.strictKeywords?"object"==typeof f&&0<Object.keys(f).length||!1===f:e.util.schemaHasRules(f,e.RULES.all)),m=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&0<Object.keys(m).length||!1===m:e.util.schemaHasRules(m,e.RULES.all)),p.baseId);return f||m?(p.createErrors=!1,p.schema=o,p.schemaPath=c,p.errSchemaPath=t,a+=" var "+l+" = errors; var "+h+" = true; ",o=e.compositeRule,e.compositeRule=p.compositeRule=!0,a+=" "+e.validate(p)+" ",p.baseId=g,p.createErrors=!0,a+=" errors = "+l+"; if (vErrors !== null) { if ("+l+") vErrors.length = "+l+"; else vErrors = null; } ",e.compositeRule=p.compositeRule=o,f?(a+=" if ("+d+") { ",p.schema=e.schema.then,p.schemaPath=e.schemaPath+".then",p.errSchemaPath=e.errSchemaPath+"/then",a+=" "+e.validate(p)+" ",p.baseId=g,a+=" "+h+" = "+d+"; ",f&&m?a+=" var "+(r="ifClause"+s)+" = 'then'; ":r="'then'",a+=" } ",m&&(a+=" else { ")):a+=" if (!"+d+") { ",m&&(p.schema=e.schema.else,p.schemaPath=e.schemaPath+".else",p.errSchemaPath=e.errSchemaPath+"/else",a+=" "+e.validate(p)+" ",p.baseId=g,a+=" "+h+" = "+d+"; ",f&&m?a+=" var "+(r="ifClause"+s)+" = 'else'; ":r="'else'",a+=" } "),a+=" if (!"+h+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { failingKeyword: "+r+" } ",!1!==e.opts.messages&&(a+=" , message: 'should match \"' + "+r+" + '\" schema' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+n+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?a+=" throw new ValidationError(vErrors); ":a+=" validate.errors = vErrors; return false; "),a+=" } ",u&&(a+=" else { ")):u&&(a+=" if (true) { "),a}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,h="data"+(s||""),l=(t="valid"+a,s="errs__"+a,e.util.copy(e)),p="",d=(l.level++,"valid"+l.level),f=(a="i"+a,l.dataLevel=e.dataLevel+1),m="data"+f,g=e.baseId;if(r+="var "+s+" = errors;var "+t+";",Array.isArray(n)){var v,y,b=e.schema.additionalItems,w=(!1===b&&(r+=" "+t+" = "+h+".length <= "+n.length+"; ",v=c,c=e.errSchemaPath+"/additionalItems",(y=y||[]).push(r+=" if (!"+t+") { "),r="",!1!==e.createErrors?(r+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+n.length+" } ",!1!==e.opts.messages&&(r+=" , message: 'should NOT have more than "+n.length+" items' "),e.opts.verbose&&(r+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),r+=" } "):r+=" {} ",t=r,r=y.pop(),!e.compositeRule&&u?e.async?r+=" throw new ValidationError(["+t+"]); ":r+=" validate.errors = ["+t+"]; return false; ":r+=" var err = "+t+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } ",c=v,u)&&(p+="}",r+=" else { "),n);if(w)for(var x=-1,k=w.length-1;x<k;){var S,_,E=w[x+=1];(e.opts.strictKeywords?"object"==typeof E&&0<Object.keys(E).length||!1===E:e.util.schemaHasRules(E,e.RULES.all))&&(r+=" "+d+" = true; if ("+h+".length > "+x+") { ",S=h+"["+x+"]",l.schema=E,l.schemaPath=o+"["+x+"]",l.errSchemaPath=c+"/"+x,l.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),l.dataPathArr[f]=x,_=e.validate(l),l.baseId=g,e.util.varOccurences(_,m)<2?r+=" "+e.util.varReplace(_,m,S)+" ":r+=" var "+m+" = "+S+"; "+_+" ",r+=" } ",u)&&(r+=" if ("+d+") { ",p+="}")}"object"==typeof b&&(e.opts.strictKeywords?"object"==typeof b&&0<Object.keys(b).length||!1===b:e.util.schemaHasRules(b,e.RULES.all))&&(l.schema=b,l.schemaPath=e.schemaPath+".additionalItems",l.errSchemaPath=e.errSchemaPath+"/additionalItems",r+=" "+d+" = true; if ("+h+".length > "+n.length+") { for (var "+a+" = "+n.length+"; "+a+" < "+h+".length; "+a+"++) { ",l.errorPath=e.util.getPathExpr(e.errorPath,a,e.opts.jsonPointers,!0),S=h+"["+a+"]",l.dataPathArr[f]=a,_=e.validate(l),l.baseId=g,e.util.varOccurences(_,m)<2?r+=" "+e.util.varReplace(_,m,S)+" ":r+=" var "+m+" = "+S+"; "+_+" ",u&&(r+=" if (!"+d+") break; "),r+=" } } ",u)&&(r+=" if ("+d+") { ",p+="}")}else(e.opts.strictKeywords?"object"==typeof n&&0<Object.keys(n).length||!1===n:e.util.schemaHasRules(n,e.RULES.all))&&(l.schema=n,l.schemaPath=o,l.errSchemaPath=c,r+=" for (var "+a+" = 0; "+a+" < "+h+".length; "+a+"++) { ",l.errorPath=e.util.getPathExpr(e.errorPath,a,e.opts.jsonPointers,!0),S=h+"["+a+"]",l.dataPathArr[f]=a,_=e.validate(l),l.baseId=g,e.util.varOccurences(_,m)<2?r+=" "+e.util.varReplace(_,m,S)+" ":r+=" var "+m+" = "+S+"; "+_+" ",u&&(r+=" if (!"+d+") break; "),r+=" }");return u&&(r+=" "+p+" if ("+s+" == errors) {"),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=!e.opts.allErrors,h="data"+(s||""),l=e.opts.$data&&n&&n.$data;s=l?(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; ","schema"+a):n;if(!l&&"number"!=typeof n)throw new Error(t+" must be number");return r+="var division"+a+";if (",l&&(r+=" "+s+" !== undefined && ( typeof "+s+" != 'number' || "),r+=" (division"+a+" = "+h+" / "+s+", ",e.opts.multipleOfPrecision?r+=" Math.abs(Math.round(division"+a+") - division"+a+") > 1e-"+e.opts.multipleOfPrecision+" ":r+=" division"+a+" !== parseInt(division"+a+") ",r+=" ) ",l&&(r+=" ) "),(t=[]).push(r+=" ) { "),r="",!1!==e.createErrors?(r+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+s+" } ",!1!==e.opts.messages&&(r=r+" , message: 'should be multiple of "+(l?"' + "+s:s+"'")),e.opts.verbose&&(r=(r+=" , schema: ")+(l?"validate.schema"+o:""+n)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),r+=" } "):r+=" {} ",a=r,r=t.pop(),!e.compositeRule&&u?e.async?r+=" throw new ValidationError(["+a+"]); ":r+=" validate.errors = ["+a+"]; return false; ":r+=" var err = "+a+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",u&&(r+=" else { "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a,s=" ",n=e.level,o=e.dataLevel,c=e.schema[t],u=e.schemaPath+e.util.getProperty(t),h=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),l=(o="data"+(o||""),n="errs__"+n,e.util.copy(e)),p=(l.level++,"valid"+l.level);return(e.opts.strictKeywords?"object"==typeof c&&0<Object.keys(c).length||!1===c:e.util.schemaHasRules(c,e.RULES.all))?(l.schema=c,l.schemaPath=u,l.errSchemaPath=t,s+=" var "+n+" = errors; ",c=e.compositeRule,e.compositeRule=l.compositeRule=!0,l.createErrors=!1,l.opts.allErrors&&(a=l.opts.allErrors,l.opts.allErrors=!1),s+=" "+e.validate(l)+" ",l.createErrors=!0,a&&(l.opts.allErrors=a),e.compositeRule=l.compositeRule=c,(r=r||[]).push(s+=" if ("+p+") { "),s="",!1!==e.createErrors?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+o+" "),s+=" } "):s+=" {} ",a=s,s=r.pop(),!e.compositeRule&&h?e.async?s+=" throw new ValidationError(["+a+"]); ":s+=" validate.errors = ["+a+"]; return false; ":s+=" var err = "+a+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { errors = "+n+"; if (vErrors !== null) { if ("+n+") vErrors.length = "+n+"; else vErrors = null; } ",e.opts.allErrors&&(s+=" } ")):(s+=" var err = ",!1!==e.createErrors?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+o+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(s+=" if (false) { ")),s}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=(t=!e.opts.allErrors,s="data"+(s||""),"valid"+a),h="errs__"+a,l=e.util.copy(e),p="",d=(l.level++,"valid"+l.level),f=l.baseId,m="prevValid"+a,g="passingSchemas"+a,v=(a=(r+="var "+h+" = errors , "+m+" = false , "+u+" = false , "+g+" = null; ",e.compositeRule),e.compositeRule=l.compositeRule=!0,n);if(v)for(var y,b=-1,w=v.length-1;b<w;)y=v[b+=1],(e.opts.strictKeywords?"object"==typeof y&&0<Object.keys(y).length||!1===y:e.util.schemaHasRules(y,e.RULES.all))?(l.schema=y,l.schemaPath=o+"["+b+"]",l.errSchemaPath=c+"/"+b,r+=" "+e.validate(l)+" ",l.baseId=f):r+=" var "+d+" = true; ",b&&(r+=" if ("+d+" && "+m+") { "+u+" = false; "+g+" = ["+g+", "+b+"]; } else { ",p+="}"),r+=" if ("+d+") { "+u+" = "+m+" = true; "+g+" = "+b+"; }";return e.compositeRule=l.compositeRule=a,r+=p+"if (!"+u+") { var err = ",!1!==e.createErrors?(r+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { passingSchemas: "+g+" } ",!1!==e.opts.messages&&(r+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+s+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&t&&(e.async?r+=" throw new ValidationError(vErrors); ":r+=" validate.errors = vErrors; return false; "),r+="} else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; }",e.opts.allErrors&&(r+=" } "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),u="data"+(s||""),h=e.opts.$data&&n&&n.$data,l=(s=h?(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; ","schema"+a):n,a=h?"(new RegExp("+s+"))":e.usePattern(n),r+="if ( ",h&&(r+=" ("+s+" !== undefined && typeof "+s+" != 'string') || "),[]);l.push(r+=" !"+a+".test("+u+") ) { "),r="",!1!==e.createErrors?(r=(r+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { pattern: ")+(h?""+s:""+e.util.toQuotedString(n))+" } ",!1!==e.opts.messages&&(r=(r+=" , message: 'should match pattern \"")+(h?"' + "+s+" + '":""+e.util.escapeQuotes(n))+"\"' "),e.opts.verbose&&(r=(r=(r+=" , schema: ")+(h?"validate.schema"+o:""+e.util.toQuotedString(n)))+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",a=r,r=l.pop();return!e.compositeRule&&c?e.async?r+=" throw new ValidationError(["+a+"]); ":r+=" validate.errors = ["+a+"]; return false; ":r+=" var err = "+a+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+="} ",c&&(r+=" else { "),r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a=" ",s=e.level,n=e.dataLevel,o=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=e.errSchemaPath+"/"+t,h=!e.opts.allErrors,l="data"+(n||""),p=(t="errs__"+s,e.util.copy(e)),d="",f=(p.level++,"valid"+p.level),m="key"+s,g="idx"+s,v=p.dataLevel=e.dataLevel+1,y="data"+v,b="dataProperties"+s,w=(n=Object.keys(o||{}).filter(C),e.schema.patternProperties||{}),x=Object.keys(w).filter(C),k=e.schema.additionalProperties,S=n.length||x.length,_=!1===k,E="object"==typeof k&&Object.keys(k).length,j=e.opts.removeAdditional,A=_||E||j,R=e.opts.ownProperties,I=e.baseId,O=e.schema.required;function C(e){return"__proto__"!==e}if(O&&(!e.opts.$data||!O.$data)&&O.length<e.opts.loopRequired&&(r=e.util.toHash(O)),a+="var "+t+" = errors;var "+f+" = true;",R&&(a+=" var "+b+" = undefined;"),A){if(a+=R?" "+b+" = "+b+" || Object.keys("+l+"); for (var "+g+"=0; "+g+"<"+b+".length; "+g+"++) { var "+m+" = "+b+"["+g+"]; ":" for (var "+m+" in "+l+") { ",S){if(a+=" var isAdditional"+s+" = !(false ",n.length)if(8<n.length)a+=" || validate.schema"+c+".hasOwnProperty("+m+") ";else{var P=n;if(P)for(var T=-1,B=P.length-1;T<B;)D=P[T+=1],a+=" || "+m+" == "+e.util.toQuotedString(D)+" "}if(x.length){var N=x;if(N)for(var z=-1,F=N.length-1;z<F;)Q=N[z+=1],a+=" || "+e.usePattern(Q)+".test("+m+") "}a+=" ); if (isAdditional"+s+") { "}"all"==j?a+=" delete "+l+"["+m+"]; ":(K=e.errorPath,O="' + "+m+" + '",e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers)),_?j?a+=" delete "+l+"["+m+"]; ":(W=u,u=e.errSchemaPath+"/additionalProperties",(Y=Y||[]).push(a+=" "+f+" = false; "),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { additionalProperty: '"+O+"' } ",!1!==e.opts.messages&&(a+=" , message: '",e.opts._errorDataPathProperty?a+="is an invalid additional property":a+="should NOT have additional properties",a+="' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",G=a,a=Y.pop(),!e.compositeRule&&h?e.async?a+=" throw new ValidationError(["+G+"]); ":a+=" validate.errors = ["+G+"]; return false; ":a+=" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u=W,h&&(a+=" break; ")):E&&("failing"==j?(a+=" var "+t+" = errors; ",A=e.compositeRule,e.compositeRule=p.compositeRule=!0,p.schema=k,p.schemaPath=e.schemaPath+".additionalProperties",p.errSchemaPath=e.errSchemaPath+"/additionalProperties",p.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers),te=l+"["+m+"]",p.dataPathArr[v]=m,ie=e.validate(p),p.baseId=I,e.util.varOccurences(ie,y)<2?a+=" "+e.util.varReplace(ie,y,te)+" ":a+=" var "+y+" = "+te+"; "+ie+" ",a+=" if (!"+f+") { errors = "+t+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+l+"["+m+"]; } ",e.compositeRule=p.compositeRule=A):(p.schema=k,p.schemaPath=e.schemaPath+".additionalProperties",p.errSchemaPath=e.errSchemaPath+"/additionalProperties",p.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers),te=l+"["+m+"]",p.dataPathArr[v]=m,ie=e.validate(p),p.baseId=I,e.util.varOccurences(ie,y)<2?a+=" "+e.util.varReplace(ie,y,te)+" ":a+=" var "+y+" = "+te+"; "+ie+" ",h&&(a+=" if (!"+f+") break; "))),e.errorPath=K),S&&(a+=" } "),a+=" } ",h&&(a+=" if ("+f+") { ",d+="}")}var L=e.opts.useDefaults&&!e.compositeRule;if(n.length){var M=n;if(M)for(var D,H=-1,U=M.length-1;H<U;){var q,V,K,W,$,Y,G,X=o[D=M[H+=1]];(e.opts.strictKeywords?"object"==typeof X&&0<Object.keys(X).length||!1===X:e.util.schemaHasRules(X,e.RULES.all))&&(te=l+($=e.util.getProperty(D)),q=L&&void 0!==X.default,p.schema=X,p.schemaPath=c+$,p.errSchemaPath=u+"/"+e.util.escapeFragment(D),p.errorPath=e.util.getPath(e.errorPath,D,e.opts.jsonPointers),p.dataPathArr[v]=e.util.toQuotedString(D),ie=e.validate(p),p.baseId=I,e.util.varOccurences(ie,y)<2?(ie=e.util.varReplace(ie,y,te),V=te):a+=" var "+(V=y)+" = "+te+"; ",q?a+=" "+ie+" ":(r&&r[D]?(a+=" if ( "+V+" === undefined ",R&&(a+=" || ! Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(D)+"') "),a+=") { "+f+" = false; ",K=e.errorPath,W=u,$=e.util.escapeQuotes(D),e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(K,D,e.opts.jsonPointers)),u=e.errSchemaPath+"/required",(Y=Y||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { missingProperty: '"+$+"' } ",!1!==e.opts.messages&&(a+=" , message: '",e.opts._errorDataPathProperty?a+="is a required property":a+="should have required property \\'"+$+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+l+" "),a+=" } "):a+=" {} ",G=a,a=Y.pop(),!e.compositeRule&&h?e.async?a+=" throw new ValidationError(["+G+"]); ":a+=" validate.errors = ["+G+"]; return false; ":a+=" var err = "+G+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u=W,e.errorPath=K,a+=" } else { "):h?(a+=" if ( "+V+" === undefined ",R&&(a+=" || ! Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(D)+"') "),a+=") { "+f+" = true; } else { "):(a+=" if ("+V+" !== undefined ",R&&(a+=" && Object.prototype.hasOwnProperty.call("+l+", '"+e.util.escapeQuotes(D)+"') "),a+=" ) { "),a+=" "+ie+" } ")),h&&(a+=" if ("+f+") { ",d+="}")}}if(x.length){var J=x;if(J)for(var Q,Z=-1,ee=J.length-1;Z<ee;){var te,ie;X=w[Q=J[Z+=1]];(e.opts.strictKeywords?"object"==typeof X&&0<Object.keys(X).length||!1===X:e.util.schemaHasRules(X,e.RULES.all))&&(p.schema=X,p.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(Q),p.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(Q),a=(a+=R?" "+b+" = "+b+" || Object.keys("+l+"); for (var "+g+"=0; "+g+"<"+b+".length; "+g+"++) { var "+m+" = "+b+"["+g+"]; ":" for (var "+m+" in "+l+") { ")+" if ("+e.usePattern(Q)+".test("+m+")) { ",p.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers),te=l+"["+m+"]",p.dataPathArr[v]=m,ie=e.validate(p),p.baseId=I,e.util.varOccurences(ie,y)<2?a+=" "+e.util.varReplace(ie,y,te)+" ":a+=" var "+y+" = "+te+"; "+ie+" ",h&&(a+=" if (!"+f+") break; "),a+=" } ",h&&(a+=" else "+f+" = true; "),a+=" } ",h)&&(a+=" if ("+f+") { ",d+="}")}}return h&&(a+=" "+d+" if ("+t+" == errors) {"),a}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a,s,n,o,c,u,h=" ",l=e.level,p=e.dataLevel,d=e.schema[t],f=e.schemaPath+e.util.getProperty(t),m=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),g=(p="data"+(p||""),"errs__"+l),v=e.util.copy(e),y=(v.level++,"valid"+v.level);return h+="var "+g+" = errors;",(e.opts.strictKeywords?"object"==typeof d&&0<Object.keys(d).length||!1===d:e.util.schemaHasRules(d,e.RULES.all))&&(v.schema=d,v.schemaPath=f,v.errSchemaPath=t,d="idx"+l,a="i"+l,s="' + "+(r="key"+l)+" + '",n="data"+(v.dataLevel=e.dataLevel+1),u="dataProperties"+l,c=e.opts.ownProperties,o=e.baseId,c&&(h+=" var "+u+" = undefined; "),h=h+(c?" "+u+" = "+u+" || Object.keys("+p+"); for (var "+d+"=0; "+d+"<"+u+".length; "+d+"++) { var "+r+" = "+u+"["+d+"]; ":" for (var "+r+" in "+p+") { ")+" var startErrs"+l+" = errors; ",c=r,u=e.compositeRule,e.compositeRule=v.compositeRule=!0,d=e.validate(v),v.baseId=o,e.util.varOccurences(d,n)<2?h+=" "+e.util.varReplace(d,n,c)+" ":h+=" var "+n+" = "+c+"; "+d+" ",e.compositeRule=v.compositeRule=u,h+=" if (!"+y+") { for (var "+a+"=startErrs"+l+"; "+a+"<errors; "+a+"++) { vErrors["+a+"].propertyName = "+r+"; } var err = ",!1!==e.createErrors?(h+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { propertyName: '"+s+"' } ",!1!==e.opts.messages&&(h+=" , message: 'property name \\'"+s+"\\' is invalid' "),e.opts.verbose&&(h+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),h+=" } "):h+=" {} ",h+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&m&&(e.async?h+=" throw new ValidationError(vErrors); ":h+=" validate.errors = vErrors; return false; "),m&&(h+=" break; "),h+=" } }"),m&&(h+=" if ("+g+" == errors) {"),h}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r=" ",a=e.level,s=e.dataLevel,n=e.schema[t],o=e.schemaPath+e.util.getProperty(t),c=e.errSchemaPath+"/"+t,u=(t=!e.opts.allErrors,"data"+(s||"")),h="valid"+a,l=e.opts.$data&&n&&n.$data;l&&(r+=" var schema"+a+" = "+e.util.getData(n.$data,s,e.dataPathArr)+"; "),s="schema"+a;if(!l)if(n.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],d=n;if(d)for(var f=-1,m=d.length-1;f<m;){var g=d[f+=1],v=e.schema.properties[g];v&&(e.opts.strictKeywords?"object"==typeof v&&0<Object.keys(v).length||!1===v:e.util.schemaHasRules(v,e.RULES.all))||(p[p.length]=g)}}else p=n;if(l||p.length){var y=e.errorPath,b=(n=l||p.length>=e.opts.loopRequired,e.opts.ownProperties);if(t){if(r+=" var missing"+a+"; ",n){l||(r+=" var "+s+" = validate.schema"+o+"; ");var w="' + "+(j="schema"+a+"["+(S="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(y,j,e.opts.jsonPointers)),r+=" var "+h+" = true; ",l&&(r+=" if (schema"+a+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+a+")) "+h+" = false; else {"),r+=" for (var "+S+" = 0; "+S+" < "+s+".length; "+S+"++) { "+h+" = "+u+"["+s+"["+S+"]] !== undefined ",b&&(r+=" && Object.prototype.hasOwnProperty.call("+u+", "+s+"["+S+"]) "),r+="; if (!"+h+") break; } ",l&&(r+=" } "),(E=E||[]).push(r+=" if (!"+h+") { "),r="",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var x=r;r=E.pop()}else{r+=" if ( ";var k=p;if(k)for(var S=-1,_=k.length-1;S<_;)R=k[S+=1],S&&(r+=" || "),r+=" ( ( "+(P=u+(C=e.util.getProperty(R)))+" === undefined ",b&&(r+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(R)+"') "),r+=") && (missing"+a+" = "+e.util.toQuotedString(e.opts.jsonPointers?R:C)+") ) ";r+=") { ",w="' + "+(j="missing"+a)+" + '",e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(y,j,!0):y+" + "+j),(E=E||[]).push(r),r="",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ";var E;x=r;r=E.pop()}!e.compositeRule&&t?e.async?r+=" throw new ValidationError(["+x+"]); ":r+=" validate.errors = ["+x+"]; return false; ":r+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else { "}else if(n){l||(r+=" var "+s+" = validate.schema"+o+"; ");var j;w="' + "+(j="schema"+a+"["+(S="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(y,j,e.opts.jsonPointers)),l&&(r+=" if ("+s+" && !Array.isArray("+s+")) { var err = ",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+s+" !== undefined) { "),r+=" for (var "+S+" = 0; "+S+" < "+s+".length; "+S+"++) { if ("+u+"["+s+"["+S+"]] === undefined ",b&&(r+=" || ! Object.prototype.hasOwnProperty.call("+u+", "+s+"["+S+"]) "),r+=") { var err = ",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",l&&(r+=" } ")}else{var A=p;if(A)for(var R,I=-1,O=A.length-1;I<O;){R=A[I+=1];var C=e.util.getProperty(R),P=(w=e.util.escapeQuotes(R),u+C);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(y,R,e.opts.jsonPointers)),r+=" if ( "+P+" === undefined ",b&&(r+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(R)+"') "),r+=") { var err = ",!1!==e.createErrors?(r+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+w+"' } ",!1!==e.opts.messages&&(r+=" , message: '",e.opts._errorDataPathProperty?r+="is a required property":r+="should have required property \\'"+w+"\\'",r+="' "),e.opts.verbose&&(r+=" , schema: validate.schema"+o+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),r+=" } "):r+=" {} ",r+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=y}else t&&(r+=" if (true) {");return r}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a=" ",s=e.level,n=e.dataLevel,o=e.schema[t],c=e.schemaPath+e.util.getProperty(t),u=(t=e.errSchemaPath+"/"+t,!e.opts.allErrors),h="data"+(n||""),l="valid"+s,p=e.opts.$data&&o&&o.$data;n=p?(a+=" var schema"+s+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ","schema"+s):o;return(o||p)&&!1!==e.opts.uniqueItems?(p&&(a+=" var "+l+"; if ("+n+" === false || "+n+" === undefined) "+l+" = true; else if (typeof "+n+" != 'boolean') "+l+" = false; else { "),a+=" var i = "+h+".length , "+l+" = true , j; if (i > 1) { ",s=e.schema.items&&e.schema.items.type,n=Array.isArray(s),!s||"object"==s||"array"==s||n&&(0<=s.indexOf("object")||0<=s.indexOf("array"))?a+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+l+" = false; break outer; } } } ":(a=(a+=" var itemIndices = {}, item; for (;i--;) { var item = "+h+"[i]; ")+" if ("+e.util["checkDataType"+(n?"s":"")](s,"item",e.opts.strictNumbers,!0)+") continue; ",n&&(a+=" if (typeof item == 'string') item = '\"' + item; "),a+=" if (typeof itemIndices[item] == 'number') { "+l+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),a+=" } ",p&&(a+=" } "),(r=r||[]).push(a+=" if (!"+l+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(t)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(a=(a+=" , schema: ")+(p?"validate.schema"+c:""+o)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",s=a,a=r.pop(),!e.compositeRule&&u?e.async?a+=" throw new ValidationError(["+s+"]); ":a+=" validate.errors = ["+s+"]; return false; ":a+=" var err = "+s+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",u&&(a+=" else { ")):u&&(a+=" if (true) { "),a}},function(e,t,i){"use strict";var r=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var i=0;i<t.length;i++){e=JSON.parse(JSON.stringify(e));for(var a=t[i].split("/"),s=e,n=1;n<a.length;n++)s=s[a[n]];for(n=0;n<r.length;n++){var o=r[n],c=s[o];c&&(s[o]={anyOf:[c,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]})}}return e}},function(e,t,i){"use strict";var r=i(185).MissingRef;e.exports=function e(t,i,a){var s=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof i&&(a=i,i=void 0);var n=o(t).then((function(){var e=s._addSchema(t,void 0,i);return e.validate||function e(t){try{return s._compile(t)}catch(a){if(a instanceof r)return function(r){var a=r.missingSchema;if(c(a))throw new Error("Schema "+a+" is loaded but "+r.missingRef+" cannot be resolved");return(r=s._loadingSchemas[a])||(r=s._loadingSchemas[a]=s._opts.loadSchema(a)).then(n,n),r.then((function(e){if(!c(a))return o(e).then((function(){c(a)||s.addSchema(e,a,void 0,i)}))})).then((function(){return e(t)}));function n(){delete s._loadingSchemas[a]}function c(e){return s._refs[e]||s._schemas[e]}}(a);throw a}}(e)}));return a&&n.then((function(e){a(null,e)}),a),n;function o(t){return(t=t.$schema)&&!s.getSchema(t)?e.call(s,{$ref:t},!0):Promise.resolve()}}},function(e,t,i){"use strict";var r=/^[a-z_$][a-z0-9_$-]*$/i,a=i(525),s=i(526);e.exports={add:function(e,t){var i=this.RULES;if(i.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!r.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(t){this.validateKeyword(t,!0);var s=t.type;if(Array.isArray(s))for(var n=0;n<s.length;n++)c(e,s[n],t);else c(e,s,t);var o=t.metaSchema;o&&(t.$data&&this._opts.$data&&(o={anyOf:[o,{$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"}]}),t.validateSchema=this.compile(o,!0))}function c(e,t,r){for(var s,n=0;n<i.length;n++){var o=i[n];if(o.type==t){s=o;break}}s||i.push(s={type:t,rules:[]}),r={keyword:e,definition:r,custom:!0,code:a,implements:r.implements},s.rules.push(r),i.custom[e]=r}return i.keywords[e]=i.all[e]=!0,this},get:function(e){var t=this.RULES.custom[e];return t?t.definition:this.RULES.keywords[e]||!1},remove:function(e){var t=this.RULES;delete t.keywords[e],delete t.all[e],delete t.custom[e];for(var i=0;i<t.length;i++)for(var r=t[i].rules,a=0;a<r.length;a++)if(r[a].keyword==e){r.splice(a,1);break}return this},validate:function e(t,i){e.errors=null;var r=this._validateKeyword=this._validateKeyword||this.compile(s,!0);if(r(t))return!0;if(e.errors=r.errors,i)throw new Error("custom keyword definition is invalid: "+this.errorsText(r.errors));return!1}}},function(e,t,i){"use strict";e.exports=function(e,t,i){var r,a,s,n=" ",o=e.level,c=e.dataLevel,u=e.schema[t],h=e.schemaPath+e.util.getProperty(t),l=e.errSchemaPath+"/"+t,p=!e.opts.allErrors,d="data"+(c||""),f="valid"+o,m="errs__"+o,g=e.opts.$data&&u&&u.$data,v=g?(n+=" var schema"+o+" = "+e.util.getData(u.$data,c,e.dataPathArr)+"; ","schema"+o):u,y="definition"+o,b=this.definition,w="";if(g&&b.$data){var x="keywordValidate"+o,k=b.validateSchema;n+=" var "+y+" = RULES.custom['"+t+"'].definition; var "+x+" = "+y+".validate;"}else{if(!(j=e.useCustomRule(this,u,e.schema,e)))return;v="validate.schema"+h,x=j.code,r=b.compile,a=b.inline,s=b.macro}t=x+".errors",u="i"+o;var S,_,E,j,A,R="ruleErr"+o,I=b.async;if(I&&!e.async)throw new Error("async keyword in sync schema");return a||s||(n+=t+" = null;"),n+="var "+m+" = errors;var "+f+";",g&&b.$data&&(w+="}",n+=" if ("+v+" === undefined) { "+f+" = true; } else { ",k)&&(w+="}",n+=" "+f+" = "+y+".validateSchema("+v+"); if ("+f+") { "),a?b.statements?n+=" "+j.validate+" ":n+=" "+f+" = "+j.validate+"; ":s?(w="",(g=e.util.copy(e)).level++,S="valid"+g.level,g.schema=j.validate,g.schemaPath="",k=e.compositeRule,e.compositeRule=g.compositeRule=!0,y=e.validate(g).replace(/validate\.schema/g,x),e.compositeRule=g.compositeRule=k,n+=" "+y):((A=A||[]).push(n),n="",n+=" "+x+".call( ",e.opts.passContext?n+="this":n+="self",r||!1===b.schema?n+=" , "+d+" ":n+=" , "+v+" , "+d+" , validate.schema"+e.schemaPath+" ",n+=" , (dataPath || '')",'""'!=e.errorPath&&(n+=" + "+e.errorPath),j=n+=" , "+(_=c?"data"+(c-1||""):"parentData")+" , "+(E=c?e.dataPathArr[c]:"parentDataProperty")+" , rootData ) ",n=A.pop(),!1===b.errors?(n+=" "+f+" = ",I&&(n+="await "),n+=j+"; "):n+=I?" var "+(t="customErrors"+o)+" = null; try { "+f+" = await "+j+"; } catch (e) { "+f+" = false; if (e instanceof ValidationError) "+t+" = e.errors; else throw e; } ":" "+t+" = null; "+f+" = "+j+"; "),b.modifying&&(n+=" if ("+_+") "+d+" = "+_+"["+E+"];"),n+=""+w,b.valid?p&&(n+=" if (true) { "):(n+=" if ( ",void 0===b.valid?n=n+" !"+(s?""+S:f):n+=" "+!b.valid+" ",g=this.keyword,(A=A||[]).push(n+=") { "),(A=A||[]).push(n=""),n="",!1!==e.createErrors?(n+=" { keyword: '"+(g||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { keyword: '"+this.keyword+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),e.opts.verbose&&(n+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",k=n,n=A.pop(),!e.compositeRule&&p?e.async?n+=" throw new ValidationError(["+k+"]); ":n+=" validate.errors = ["+k+"]; return false; ":n+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y=n,n=A.pop(),a?b.errors?"full"!=b.errors&&(n+=" for (var "+u+"="+m+"; "+u+"<errors; "+u+"++) { var "+R+" = vErrors["+u+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+R+".schemaPath === undefined) { "+R+'.schemaPath = "'+l+'"; } ',e.opts.verbose&&(n+=" "+R+".schema = "+v+"; "+R+".data = "+d+"; "),n+=" } "):!1===b.errors?n+=" "+y+" ":(n+=" if ("+m+" == errors) { "+y+" } else { for (var "+u+"="+m+"; "+u+"<errors; "+u+"++) { var "+R+" = vErrors["+u+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+R+".schemaPath === undefined) { "+R+'.schemaPath = "'+l+'"; } ',e.opts.verbose&&(n+=" "+R+".schema = "+v+"; "+R+".data = "+d+"; "),n+=" } } "):s?(n+=" var err = ",!1!==e.createErrors?(n+=" { keyword: '"+(g||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { keyword: '"+this.keyword+"' } ",!1!==e.opts.messages&&(n+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),e.opts.verbose&&(n+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&p&&(e.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; ")):!1===b.errors?n+=" "+y+" ":(n+=" if (Array.isArray("+t+")) { if (vErrors === null) vErrors = "+t+"; else vErrors = vErrors.concat("+t+"); errors = vErrors.length; for (var "+u+"="+m+"; "+u+"<errors; "+u+"++) { var "+R+" = vErrors["+u+"]; if ("+R+".dataPath === undefined) "+R+".dataPath = (dataPath || '') + "+e.errorPath+"; "+R+'.schemaPath = "'+l+'"; ',e.opts.verbose&&(n+=" "+R+".schema = "+v+"; "+R+".data = "+d+"; "),n+=" } } else { "+y+" } "),n+=" } ",p&&(n+=" else { ")),n}},function(e,t,i){"use strict";i=i(298),e.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:i.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:i.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},function(e,t){function i(e){var t="validation failed";this.name="HARError",this.message=t,this.errors=e,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(t).stack}i.prototype=Error.prototype,e.exports=i},function(e,t,i){"use strict";e.exports={afterRequest:i(530),beforeRequest:i(531),browser:i(532),cache:i(533),content:i(534),cookie:i(535),creator:i(536),entry:i(537),har:i(538),header:i(539),log:i(540),page:i(541),pageTimings:i(542),postData:i(543),query:i(544),request:i(545),response:i(546),timings:i(547)}},function(e){e.exports=JSON.parse('{"$id":"afterRequest.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["lastAccess","eTag","hitCount"],"properties":{"expires":{"type":"string","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?"},"lastAccess":{"type":"string","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?"},"eTag":{"type":"string"},"hitCount":{"type":"integer"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"beforeRequest.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["lastAccess","eTag","hitCount"],"properties":{"expires":{"type":"string","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?"},"lastAccess":{"type":"string","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))?"},"eTag":{"type":"string"},"hitCount":{"type":"integer"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"browser.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","version"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"cache.json#","$schema":"http://json-schema.org/draft-06/schema#","properties":{"beforeRequest":{"oneOf":[{"type":"null"},{"$ref":"beforeRequest.json#"}]},"afterRequest":{"oneOf":[{"type":"null"},{"$ref":"afterRequest.json#"}]},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"content.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["size","mimeType"],"properties":{"size":{"type":"integer"},"compression":{"type":"integer"},"mimeType":{"type":"string"},"text":{"type":"string"},"encoding":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"cookie.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","value"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"path":{"type":"string"},"domain":{"type":"string"},"expires":{"type":["string","null"],"format":"date-time"},"httpOnly":{"type":"boolean"},"secure":{"type":"boolean"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"creator.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","version"],"properties":{"name":{"type":"string"},"version":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"entry.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["startedDateTime","time","request","response","cache","timings"],"properties":{"pageref":{"type":"string"},"startedDateTime":{"type":"string","format":"date-time","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))"},"time":{"type":"number","min":0},"request":{"$ref":"request.json#"},"response":{"$ref":"response.json#"},"cache":{"$ref":"cache.json#"},"timings":{"$ref":"timings.json#"},"serverIPAddress":{"type":"string","oneOf":[{"format":"ipv4"},{"format":"ipv6"}]},"connection":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"har.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["log"],"properties":{"log":{"$ref":"log.json#"}}}')},function(e){e.exports=JSON.parse('{"$id":"header.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","value"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"log.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["version","creator","entries"],"properties":{"version":{"type":"string"},"creator":{"$ref":"creator.json#"},"browser":{"$ref":"browser.json#"},"pages":{"type":"array","items":{"$ref":"page.json#"}},"entries":{"type":"array","items":{"$ref":"entry.json#"}},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"page.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["startedDateTime","id","title","pageTimings"],"properties":{"startedDateTime":{"type":"string","format":"date-time","pattern":"^(\\\\d{4})(-)?(\\\\d\\\\d)(-)?(\\\\d\\\\d)(T)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(:)?(\\\\d\\\\d)(\\\\.\\\\d+)?(Z|([+-])(\\\\d\\\\d)(:)?(\\\\d\\\\d))"},"id":{"type":"string","unique":true},"title":{"type":"string"},"pageTimings":{"$ref":"pageTimings.json#"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"pageTimings.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","properties":{"onContentLoad":{"type":"number","min":-1},"onLoad":{"type":"number","min":-1},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"postData.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","optional":true,"required":["mimeType"],"properties":{"mimeType":{"type":"string"},"text":{"type":"string"},"params":{"type":"array","required":["name"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"fileName":{"type":"string"},"contentType":{"type":"string"},"comment":{"type":"string"}}},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"query.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["name","value"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"request.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["method","url","httpVersion","cookies","headers","queryString","headersSize","bodySize"],"properties":{"method":{"type":"string"},"url":{"type":"string","format":"uri"},"httpVersion":{"type":"string"},"cookies":{"type":"array","items":{"$ref":"cookie.json#"}},"headers":{"type":"array","items":{"$ref":"header.json#"}},"queryString":{"type":"array","items":{"$ref":"query.json#"}},"postData":{"$ref":"postData.json#"},"headersSize":{"type":"integer"},"bodySize":{"type":"integer"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"response.json#","$schema":"http://json-schema.org/draft-06/schema#","type":"object","required":["status","statusText","httpVersion","cookies","headers","content","redirectURL","headersSize","bodySize"],"properties":{"status":{"type":"integer"},"statusText":{"type":"string"},"httpVersion":{"type":"string"},"cookies":{"type":"array","items":{"$ref":"cookie.json#"}},"headers":{"type":"array","items":{"$ref":"header.json#"}},"content":{"$ref":"content.json#"},"redirectURL":{"type":"string"},"headersSize":{"type":"integer"},"bodySize":{"type":"integer"},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$id":"timings.json#","$schema":"http://json-schema.org/draft-06/schema#","required":["send","wait","receive"],"properties":{"dns":{"type":"number","min":-1},"connect":{"type":"number","min":-1},"blocked":{"type":"number","min":-1},"send":{"type":"number","min":-1},"wait":{"type":"number","min":-1},"receive":{"type":"number","min":-1},"ssl":{"type":"number","min":-1},"comment":{"type":"string"}}}')},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-06/schema#","$id":"http://json-schema.org/draft-06/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"title":{"type":"string"},"description":{"type":"string"},"default":{},"examples":{"type":"array","items":{}},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":{}},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":{},"enum":{"type":"array","minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":{}}')},function(e,t,i){"use strict";var r=i(182),a=i(186),s=(i=i(173)).md5,n=i.toBase64;function o(e){this.request=e,this.hasAuth=!1,this.sentAuth=!1,this.bearerToken=null,this.user=null,this.pass=null}o.prototype.basic=function(e,t,i){if(("string"!=typeof e||void 0!==t&&"string"!=typeof t)&&this.request.emit("error",new Error("auth() received invalid user or password")),this.user=e,this.pass=t,this.hasAuth=!0,i||void 0===i)return i="Basic "+n(e+":"+(t||"")),this.sentAuth=!0,i},o.prototype.bearer=function(e,t){if(this.bearerToken=e,this.hasAuth=!0,t||void 0===t)return t="Bearer "+((e="function"==typeof e?e():e)||""),this.sentAuth=!0,t},o.prototype.digest=function(e,t,i){for(var r={},n=/([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;;){var o=n.exec(i);if(!o)break;r[o[1]]=o[2]||o[3]}var c,u=/(^|,)\s*auth\s*($|,)/.test(r.qop)&&"auth",h=u&&"00000001",l=u&&a().replace(/-/g,""),p=function(e,t,i,r,a,n){return t=s(t+":"+i+":"+r),e&&"md5-sess"===e.toLowerCase()?s(t+":"+a+":"+n):t}(r.algorithm,this.user,r.realm,this.pass,r.nonce,l),d=(e=s(e+":"+t),p=s(u?p+":"+r.nonce+":"+h+":"+l+":"+u+":"+e:p+":"+r.nonce+":"+e),{username:this.user,realm:r.realm,nonce:r.nonce,uri:t,qop:u,response:p,nc:h,cnonce:l,algorithm:r.algorithm,opaque:r.opaque});for(c in i=[],d)d[c]&&("qop"===c||"nc"===c||"algorithm"===c?i.push(c+"="+d[c]):i.push(c+'="'+d[c]+'"'));return i="Digest "+i.join(", "),this.sentAuth=!0,i},o.prototype.onRequest=function(e,t,i,r){var a,s=this.request;void 0===r&&void 0===e?this.request.emit("error",new Error("no auth mechanism defined")):a=void 0!==r?this.bearer(r,i):this.basic(e,t,i),a&&s.setHeader("authorization",a)},o.prototype.onResponse=function(e){var t=this.request;if(!this.hasAuth||this.sentAuth)return null;var i=r(e.headers).get("www-authenticate");e=i&&i.split(" ")[0].toLowerCase();switch(t.debug("reauth",e),e){case"basic":return this.basic(this.user,this.pass,!0);case"bearer":return this.bearer(this.bearerToken,!0);case"digest":return this.digest(t.method,t.path,i)}},t.Auth=o},function(e,t,i){"use strict";var r=i(43),a=i(288),s=i(182),n=i(186),o=i(551),c=i(8),u=i(39).Buffer;function h(e){this.request=e,this.params=null}h.prototype.buildParams=function(e,t,i,r,a,s){var c,u={};for(c in e)u["oauth_"+c]=e[c];u.oauth_version||(u.oauth_version="1.0"),u.oauth_timestamp||(u.oauth_timestamp=Math.floor(Date.now()/1e3).toString()),u.oauth_nonce||(u.oauth_nonce=n().replace(/-/g,"")),u.oauth_signature_method||(u.oauth_signature_method="HMAC-SHA1");var h=u.oauth_consumer_secret||u.oauth_private_key,l=(delete u.oauth_consumer_secret,delete u.oauth_private_key,u.oauth_token_secret),p=(delete u.oauth_token_secret,u.oauth_realm);delete u.oauth_realm,delete u.oauth_transport_method,t=t.protocol+"//"+t.host+t.pathname,r=s.parse([].concat(r,a,s.stringify(u)).join("&"));return u.oauth_signature=o.sign(u.oauth_signature_method,i,t,r,h,l),p&&(u.realm=p),u},h.prototype.buildBodyHash=function(e,t){return["HMAC-SHA1","RSA-SHA1"].indexOf(e.signature_method||"HMAC-SHA1")<0&&this.request.emit("error",new Error("oauth: "+e.signature_method+" signature_method not supported with body_hash signing.")),(e=c.createHash("sha1")).update(t||""),t=e.digest("hex"),u.from(t,"hex").toString("base64")},h.prototype.concatParams=function(e,t,i){i=i||"";var r=Object.keys(e).filter((function(e){return"realm"!==e&&"oauth_signature"!==e})).sort();return e.realm&&r.splice(0,0,"realm"),r.push("oauth_signature"),r.map((function(t){return t+"="+i+o.rfc3986(e[t])+i})).join(t)},h.prototype.onRequest=function(e){var t,i,n=this,o=(n.params=e,n.request.uri||{}),c=n.request.method||"",u=s(n.request.headers),h=n.request.body||"",l=n.request.qsLib||a,p=(u=u.get("content-type")||"","application/x-www-form-urlencoded"),d=e.transport_method||"header",f=(u.slice(0,p.length)===p&&(u=p,t=h),o.query&&(i=o.query),"body"!==d||"POST"===c&&u===p||n.request.emit("error",new Error("oauth: transport_method of body requires POST and content-type "+p)),t||"boolean"!=typeof e.body_hash||(e.body_hash=n.buildBodyHash(e,n.request.body.toString())),n.buildParams(e,o,c,i,t,l));switch(d){case"header":n.request.setHeader("Authorization","OAuth "+n.concatParams(f,",",'"'));break;case"query":var m=n.request.uri.href+=(i?"&":"?")+n.concatParams(f,"&");n.request.uri=r.parse(m),n.request.path=n.request.uri.path;break;case"body":n.request.body=(t?t+"&":"")+n.concatParams(f,"&");break;default:n.request.emit("error",new Error("oauth: transport_method invalid"))}},t.OAuth=h},function(e,t,i){var r=i(8);function a(e,t,i){return r.createHmac(i,e).update(t).digest("base64")}function s(e){return encodeURIComponent(e).replace(/!/g,"%21").replace(/\*/g,"%2A").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/'/g,"%27")}function n(e,t){return t<e?1:e<t?-1:0}function o(e,t,i){return i=function(e){var t,i,r=[];for(t in e)if(i=e[t],Array.isArray(i))for(var a=0;a<i.length;a++)r.push([t,i[a]]);else if("object"==typeof i)for(var s in i)r.push([t+"["+s+"]",i[s]]);else r.push([t,i]);return r}(i).map((function(e){return[s(e[0]),s(e[1]||"")]})).sort((function(e,t){return n(e[0],t[0])||n(e[1],t[1])})).map((function(e){return e.join("=")})).join("&"),[s(e?e.toUpperCase():"GET"),s(t),s(i)].join("&")}function c(e,t,i,r,n){return e=o(e,t,i),a([r||"",n||""].map(s).join("&"),e,"sha1")}function u(e,t,i,r,n){return e=o(e,t,i),a([r||"",n||""].map(s).join("&"),e,"sha256")}function h(e,t,i,a,s){return e=o(e,t,i),t=a||"",i=e,r.createSign("RSA-SHA1").update(i).sign(t,"base64")}function l(e,t){return[e||"",t||""].map(s).join("&")}t.hmacsign=c,t.hmacsign256=u,t.rsasign=h,t.plaintext=l,t.sign=function(e,t,i,r,a,s){var n,o=1;switch(e){case"RSA-SHA1":n=h;break;case"HMAC-SHA1":n=c;break;case"HMAC-SHA256":n=u;break;case"PLAINTEXT":n=l,o=4;break;default:throw new Error("Signature method not supported: "+e)}return n.apply(null,[].slice.call(arguments,o))},t.rfc3986=s,t.generateBase=o},function(e,t,i){"use strict";var r=i(8);t.calculateMac=function(e,t){var i="hawk.1.header\n"+t.ts+"\n"+t.nonce+"\n"+(t.method||"").toUpperCase()+"\n"+t.resource+"\n"+t.host.toLowerCase()+"\n"+t.port+"\n"+(t.hash||"")+"\n";return t.ext&&(i+=t.ext.replace("\\","\\\\").replace("\n","\\n")),i+="\n",t.app&&(i=i+t.app+"\n"+(t.dlg||"")+"\n"),r.createHmac(e.algorithm,e.key).update(i).digest("base64")},t.header=function(e,i,a){var s=a.timestamp||Math.floor((Date.now()+(a.localtimeOffsetMsec||0))/1e3),n=a.credentials;return n&&n.id&&n.key&&n.algorithm&&-1!==["sha1","sha256"].indexOf(n.algorithm)?((s={ts:s,nonce:a.nonce||(s=6,r.randomBytes(Math.ceil(6*(s+1)/8)).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"").slice(0,s)),method:i,resource:e.pathname+(e.search||""),host:e.hostname,port:e.port||("http:"===e.protocol?80:443),hash:a.hash,ext:a.ext,app:a.app,dlg:a.dlg}).hash||!a.payload&&""!==a.payload||(s.hash=(i=a.payload,e=n.algorithm,a=a.contentType,(e=r.createHash(e)).update("hawk.1.payload\n"),e.update((a?a.split(";")[0].trim().toLowerCase():"")+"\n"),e.update(i||""),e.update("\n"),e.digest("base64"))),a=t.calculateMac(n,s),i='Hawk id="'+n.id+'", ts="'+s.ts+'", nonce="'+s.nonce+(s.hash?'", hash="'+s.hash:"")+(null!=s.ext&&""!==s.ext?'", ext="'+s.ext.replace(/\\/g,"\\\\").replace(/"/g,'\\"'):"")+'", mac="'+a+'"',s.app?i+', app="'+s.app+(s.dlg?'", dlg="'+s.dlg:"")+'"':i):""}},function(e,t,i){"use strict";var r=i(186),a=i(280),s=i(287),n=i(39).Buffer;function o(e){this.request=e,this.boundary=r(),this.chunked=!1,this.body=null}o.prototype.isChunked=function(e){var t=this,i=!1,r=e.data||e;return r.forEach||t.request.emit("error",new Error("Argument error, options.multipart.")),void 0!==e.chunked&&(i=e.chunked),(i="chunked"===t.request.getHeader("transfer-encoding")||i)||r.forEach((function(e){void 0===e.body&&t.request.emit("error",new Error("Body attribute missing in multipart.")),s(e.body)&&(i=!0)})),i},o.prototype.setHeaders=function(e){e&&!this.request.hasHeader("transfer-encoding")&&this.request.setHeader("transfer-encoding","chunked"),(e=this.request.getHeader("content-type"))&&-1!==e.indexOf("multipart")?-1!==e.indexOf("boundary")?this.boundary=e.replace(/.*boundary=([^\s;]+).*/,"$1"):this.request.setHeader("content-type",e+"; boundary="+this.boundary):this.request.setHeader("content-type","multipart/related; boundary="+this.boundary)},o.prototype.build=function(e,t){var i=this,r=t?new a:[];function s(e){"number"==typeof e&&(e=e.toString()),t?r.append(e):r.push(n.from(e))}return i.request.preambleCRLF&&s("\r\n"),e.forEach((function(e){var t="--"+i.boundary+"\r\n";Object.keys(e).forEach((function(i){"body"!==i&&(t+=i+": "+e[i]+"\r\n")})),s(t+="\r\n"),s(e.body),s("\r\n")})),s("--"+i.boundary+"--"),i.request.postambleCRLF&&s("\r\n"),r},o.prototype.onRequest=function(e){var t=this.isChunked(e);e=e.data||e;this.setHeaders(t),this.chunked=t,this.body=this.build(e,t)},t.Multipart=o},function(e,t,i){"use strict";var r=i(43),a=/^https?:/;function s(e){this.request=e,this.followRedirect=!0,this.followRedirects=!0,this.followAllRedirects=!1,this.followOriginalHttpMethod=!1,this.allowRedirect=function(){return!0},this.maxRedirects=10,this.redirects=[],this.redirectsFollowed=0,this.removeRefererHeader=!1}s.prototype.onRequest=function(e){var t=this;void 0!==e.maxRedirects&&(t.maxRedirects=e.maxRedirects),"function"==typeof e.followRedirect&&(t.allowRedirect=e.followRedirect),void 0!==e.followRedirect&&(t.followRedirects=!!e.followRedirect),void 0!==e.followAllRedirects&&(t.followAllRedirects=e.followAllRedirects),(t.followRedirects||t.followAllRedirects)&&(t.redirects=t.redirects||[]),void 0!==e.removeRefererHeader&&(t.removeRefererHeader=e.removeRefererHeader),void 0!==e.followOriginalHttpMethod&&(t.followOriginalHttpMethod=e.followOriginalHttpMethod)},s.prototype.redirectTo=function(e){var t=this.request,i=null;if(300<=e.statusCode&&e.statusCode<400&&e.caseless.has("location")){var r=e.caseless.get("location");if(t.debug("redirect",r),this.followAllRedirects)i=r;else if(this.followRedirects)switch(t.method){case"PATCH":case"PUT":case"POST":case"DELETE":break;default:i=r}}else 401===e.statusCode&&(e=t._auth.onResponse(e))&&(t.setHeader("authorization",e),i=t.uri);return i},s.prototype.onResponse=function(e){var t=this,i=t.request,s=t.redirectTo(e);if(!s||!t.allowRedirect.call(i,e))return!1;if(i.debug("redirect to",s),e.resume&&e.resume(),t.redirectsFollowed>=t.maxRedirects)return i.emit("error",new Error("Exceeded maxRedirects. Probably stuck in a redirect loop "+i.uri.href)),!1;t.redirectsFollowed+=1,a.test(s)||(s=r.resolve(i.uri.href,s));var n=i.uri;return i.uri=r.parse(s),i.uri.protocol!==n.protocol&&delete i.agent,t.redirects.push({statusCode:e.statusCode,redirectUri:s}),t.followAllRedirects&&"HEAD"!==i.method&&401!==e.statusCode&&307!==e.statusCode&&(i.method=t.followOriginalHttpMethod?i.method:"GET"),delete i.src,delete i.req,delete i._started,401!==e.statusCode&&307!==e.statusCode&&(delete i.body,delete i._form,i.headers)&&(i.removeHeader("host"),i.removeHeader("content-type"),i.removeHeader("content-length"),i.uri.hostname!==i.originalHost.split(":")[0])&&i.removeHeader("authorization"),t.removeRefererHeader||i.setHeader("referer",n.href),i.emit("redirect"),i.init(),!0},t.Redirect=s},function(e,t,i){"use strict";var r=i(43),a=i(556),s=["accept","accept-charset","accept-encoding","accept-language","accept-ranges","cache-control","content-encoding","content-language","content-location","content-md5","content-range","content-type","connection","date","expect","max-forwards","pragma","referer","te","user-agent","via"],n=["proxy-authorization"];function o(e){this.request=e,this.proxyHeaderWhiteList=s,this.proxyHeaderExclusiveList=[],void 0!==e.tunnel&&(this.tunnelOverride=e.tunnel)}o.prototype.isEnabled=function(){var e=this.request;return void 0!==this.tunnelOverride?this.tunnelOverride:"https:"===e.uri.protocol},o.prototype.setup=function(e){var t=this.request;if(e=e||{},"string"==typeof t.proxy&&(t.proxy=r.parse(t.proxy)),!t.proxy||!t.tunnel)return!1;e.proxyHeaderWhiteList&&(this.proxyHeaderWhiteList=e.proxyHeaderWhiteList),e.proxyHeaderExclusiveList&&(this.proxyHeaderExclusiveList=e.proxyHeaderExclusiveList);e=this.proxyHeaderExclusiveList.concat(n);var i,s,o,c=this.proxyHeaderWhiteList.concat(e),u=((c=(i=t.headers,s=c.reduce((function(e,t){return e[t.toLowerCase()]=!0,e}),{}),Object.keys(i).filter((function(e){return s[e.toLowerCase()]})).reduce((function(e,t){return e[t]=i[t],e}),{}))).host=(h=(u=t.uri).port,o=u.protocol,u=u.hostname+":",u+=h||("https:"===o?"443":"80")),e.forEach(t.removeHeader,t),o=(h=t).uri,h=h.proxy,o=["https:"===o.protocol?"https":"http","https:"===h.protocol?"Https":"Http"].join("Over"),a[o]),h={proxy:{host:(e=t.proxy).hostname,port:+e.port,proxyAuth:e.auth,headers:c},headers:t.headers,ca:t.ca,cert:t.cert,key:t.key,passphrase:t.passphrase,pfx:t.pfx,ciphers:t.ciphers,rejectUnauthorized:t.rejectUnauthorized,secureOptions:t.secureOptions,secureProtocol:t.secureProtocol};return t.agent=u(h),!0},o.defaultProxyHeaderWhiteList=s,o.defaultProxyHeaderExclusiveList=n,t.Tunnel=o},function(e,t,i){"use strict";i(90);var r,a=i(147),s=i(62),n=i(82),o=i(16),c=i(0),u=i(9),h=i(39).Buffer;function l(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||s.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",(function(e,i,r){for(var a=0,s=t.requests.length;a<s;++a){var n=t.requests[a];if(n.host===i&&n.port===r)return t.requests.splice(a,1),void n.request.onSocket(e)}e.destroy(),t.removeSocket(e)}))}function p(e,t){var i=this;l.prototype.createSocket.call(i,e,(function(r){var s=a.connect(0,d({},i.options,{servername:e.host,socket:r}));i.sockets[i.sockets.indexOf(r)]=s,t(s)}))}function d(e){for(var t=1,i=arguments.length;t<i;++t){var r=arguments[t];if("object"==typeof r)for(var a=Object.keys(r),s=0,n=a.length;s<n;++s){var o=a[s];void 0!==r[o]&&(e[o]=r[o])}}return e}t.httpOverHttp=function(e){return(e=new l(e)).request=s.request,e},t.httpsOverHttp=function(e){return(e=new l(e)).request=s.request,e.createSocket=p,e.defaultPort=443,e},t.httpOverHttps=function(e){return(e=new l(e)).request=n.request,e},t.httpsOverHttps=function(e){return(e=new l(e)).request=n.request,e.createSocket=p,e.defaultPort=443,e},u.inherits(l,o.EventEmitter),l.prototype.addRequest=function(e,t){"string"==typeof t&&(t={host:t,port:arguments[2],path:arguments[3]}),this.sockets.length>=this.maxSockets?this.requests.push({host:t.host,port:t.port,request:e}):this.createConnection({host:t.host,port:t.port,request:e})},l.prototype.createConnection=function(e){var t=this;t.createSocket(e,(function(i){function r(){t.emit("free",i,e.host,e.port)}function a(e){t.removeSocket(i),i.removeListener("free",r),i.removeListener("close",a),i.removeListener("agentRemove",a)}i.on("free",r),i.on("close",a),i.on("agentRemove",a),e.request.onSocket(i)}))},l.prototype.createSocket=function(e,t){var i=this,a={},s=(i.sockets.push(a),d({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1})),n=(s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+h.from(s.proxyAuth).toString("base64")),r("making CONNECT request"),i.request(s));function o(s,o,u){n.removeAllListeners(),o.removeAllListeners(),200===s.statusCode?(c.equal(u.length,0),r("tunneling connection has established"),i.sockets[i.sockets.indexOf(a)]=o,t(o)):(r("tunneling socket could not be established, statusCode=%d",s.statusCode),(u=new Error("tunneling socket could not be established, statusCode="+s.statusCode)).code="ECONNRESET",e.request.emit("error",u),i.removeSocket(a))}n.useChunkedEncodingByDefault=!1,n.once("response",(function(e){e.upgrade=!0})),n.once("upgrade",(function(e,t,i){process.nextTick((function(){o(e,t,i)}))})),n.once("connect",o),n.once("error",(function(t){n.removeAllListeners(),r("tunneling socket could not be established, cause=%s\n",t.message,t.stack),(t=new Error("tunneling socket could not be established, cause="+t.message)).code="ECONNRESET",e.request.emit("error",t),i.removeSocket(a)})),n.end()},l.prototype.removeSocket=function(e){-1!==(e=this.sockets.indexOf(e))&&(this.sockets.splice(e,1),e=this.requests.shift())&&this.createConnection(e)},r=process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments);"string"==typeof e[0]?e[0]="TUNNEL: "+e[0]:e.unshift("TUNNEL:"),console.error.apply(console,e)}:function(){},t.debug=r},function(e,t){(function(){var t,i,r,a,s,n;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(e.exports=function(){return(t()-s)/1e6},i=process.hrtime,a=(t=function(){var e=i();return 1e9*e[0]+e[1]})(),n=1e9*process.uptime(),s=a-n):r=Date.now?(e.exports=function(){return Date.now()-r},Date.now()):(e.exports=function(){return(new Date).getTime()-r},(new Date).getTime())}).call(this)},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("block",["tips"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("chain",["full"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("header",["block"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("inv",["inv","tx","block"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("mempool",["transaction"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("config",["changed"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("p2p",["transaction","block","headers"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("prop",["receive"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("notify",["receive","remove"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("ca",["issue","unissue","abolish","unabolish"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("cp",["register"])}},e.exports=i},function(e,t,i){i=i(41);i=new class extends i{constructor(){super("sc",["publish"])}},e.exports=i},function(e,t,i){"use strict";var r=i(0);function a(e,t){if(!e)throw new a.AssertionError({message:t,actual:e,expected:!0,operator:"==",stackStartFunction:a})}const s=i(9);function n(e,t,i){if("string"!=typeof e)throw new a.AssertionError({message:t,actual:u(e),expected:"string",operator:"typeof ==",stackStartFunction:i})}function o(e,t,i){if("function"!=typeof e)throw new a.AssertionError({message:t,actual:u(e),expected:"function",operator:"typeof ==",stackStartFunction:i})}function c(e,t,i){if(!Buffer.isBuffer(e))throw new a.AssertionError({message:t,actual:u(e),expected:"buffer",operator:"typeof ==",stackStartFunction:i})}function u(e){var t=typeof e;switch(t){case"object":if(null===e)return"null";if(Array.isArray(e))return"array";if(Buffer.isBuffer(e))return"buffer";if(ArrayBuffer.isView(e))return"arraybuffer";if(s.isError(e))return"error";if(s.isDate(e))return"date";if(s.isRegExp(e))return"regexp";break;case"number":if(isFinite(e))break;return"nan"}return t}function h(e){if(void 0===e)return"undefined";if(null===e)return"null";if(void 0===(e=Object.getPrototypeOf(e)))throw new Error("Bad prototype.");return null===e?"Null":e.constructor?e.constructor.name||"Unknown":"Object"}function l(e){return e.name||"Unknown"}Object.setPrototypeOf(a,r),a.typeOf=function e(t,i,r){if(n(i,"`expected` must be a string.",e),(t=u(t))!==i)throw new a.AssertionError({message:r,actual:t,expected:i,operator:"typeof ==",stackStartFunction:e})},a.notTypeOf=function e(t,i,r){if(n(i,"`expected` must be a string.",e),(t=u(t))===i)throw new a.AssertionError({message:r,actual:t,expected:i,operator:"typeof !=",stackStartFunction:e})},a.instanceOf=function e(t,i,r){if(o(i,"`parent` must be a constructor.",e),!(t instanceof i))throw new a.AssertionError({message:r,actual:h(t),expected:l(i),operator:"instanceof",stackStartFunction:e})},a.notInstanceOf=function e(t,i,r){if(o(i,"`parent` must be a constructor.",e),t instanceof i)throw new a.AssertionError({message:r,actual:h(t),expected:l(i),operator:"not instanceof",stackStartFunction:e})},a.bufferEqual=function e(t,i,r){if(c(t,"`actual` must be a buffer.",e),c(i,"`expected` must be a buffer.",e),t!==i&&!t.equals(i))throw new a.AssertionError({message:r,actual:t.toString("hex"),expected:i.toString("hex"),operator:"===",stackStartFunction:e})},a.notBufferEqual=function e(t,i,r){if(c(t,"`actual` must be a buffer.",e),c(i,"`expected` must be a buffer.",e),t===i||t.equals(i))throw new a.AssertionError({message:r,actual:t.toString("hex"),expected:i.toString("hex"),operator:"!==",stackStartFunction:e})},e.exports=a},function(e,t,i){"use strict";e.exports=["的","一","是","在","不","了","有","和","人","这","中","大","为","上","个","国","我","以","要","他","时","来","用","们","生","到","作","地","于","出","就","分","对","成","会","可","主","发","年","动","同","工","也","能","下","过","子","说","产","种","面","而","方","后","多","定","行","学","法","所","民","得","经","十","三","之","进","着","等","部","度","家","电","力","里","如","水","化","高","自","二","理","起","小","物","现","实","加","量","都","两","体","制","机","当","使","点","从","业","本","去","把","性","好","应","开","它","合","还","因","由","其","些","然","前","外","天","政","四","日","那","社","义","事","平","形","相","全","表","间","样","与","关","各","重","新","线","内","数","正","心","反","你","明","看","原","又","么","利","比","或","但","质","气","第","向","道","命","此","变","条","只","没","结","解","问","意","建","月","公","无","系","军","很","情","者","最","立","代","想","已","通","并","提","直","题","党","程","展","五","果","料","象","员","革","位","入","常","文","总","次","品","式","活","设","及","管","特","件","长","求","老","头","基","资","边","流","路","级","少","图","山","统","接","知","较","将","组","见","计","别","她","手","角","期","根","论","运","农","指","几","九","区","强","放","决","西","被","干","做","必","战","先","回","则","任","取","据","处","队","南","给","色","光","门","即","保","治","北","造","百","规","热","领","七","海","口","东","导","器","压","志","世","金","增","争","济","阶","油","思","术","极","交","受","联","什","认","六","共","权","收","证","改","清","美","再","采","转","更","单","风","切","打","白","教","速","花","带","安","场","身","车","例","真","务","具","万","每","目","至","达","走","积","示","议","声","报","斗","完","类","八","离","华","名","确","才","科","张","信","马","节","话","米","整","空","元","况","今","集","温","传","土","许","步","群","广","石","记","需","段","研","界","拉","林","律","叫","且","究","观","越","织","装","影","算","低","持","音","众","书","布","复","容","儿","须","际","商","非","验","连","断","深","难","近","矿","千","周","委","素","技","备","半","办","青","省","列","习","响","约","支","般","史","感","劳","便","团","往","酸","历","市","克","何","除","消","构","府","称","太","准","精","值","号","率","族","维","划","选","标","写","存","候","毛","亲","快","效","斯","院","查","江","型","眼","王","按","格","养","易","置","派","层","片","始","却","专","状","育","厂","京","识","适","属","圆","包","火","住","调","满","县","局","照","参","红","细","引","听","该","铁","价","严","首","底","液","官","德","随","病","苏","失","尔","死","讲","配","女","黄","推","显","谈","罪","神","艺","呢","席","含","企","望","密","批","营","项","防","举","球","英","氧","势","告","李","台","落","木","帮","轮","破","亚","师","围","注","远","字","材","排","供","河","态","封","另","施","减","树","溶","怎","止","案","言","士","均","武","固","叶","鱼","波","视","仅","费","紧","爱","左","章","早","朝","害","续","轻","服","试","食","充","兵","源","判","护","司","足","某","练","差","致","板","田","降","黑","犯","负","击","范","继","兴","似","余","坚","曲","输","修","故","城","夫","够","送","笔","船","占","右","财","吃","富","春","职","觉","汉","画","功","巴","跟","虽","杂","飞","检","吸","助","升","阳","互","初","创","抗","考","投","坏","策","古","径","换","未","跑","留","钢","曾","端","责","站","简","述","钱","副","尽","帝","射","草","冲","承","独","令","限","阿","宣","环","双","请","超","微","让","控","州","良","轴","找","否","纪","益","依","优","顶","础","载","倒","房","突","坐","粉","敌","略","客","袁","冷","胜","绝","析","块","剂","测","丝","协","诉","念","陈","仍","罗","盐","友","洋","错","苦","夜","刑","移","频","逐","靠","混","母","短","皮","终","聚","汽","村","云","哪","既","距","卫","停","烈","央","察","烧","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","游","久","菜","味","旧","模","湖","货","损","预","阻","毫","普","稳","乙","妈","植","息","扩","银","语","挥","酒","守","拿","序","纸","医","缺","雨","吗","针","刘","啊","急","唱","误","训","愿","审","附","获","茶","鲜","粮","斤","孩","脱","硫","肥","善","龙","演","父","渐","血","欢","械","掌","歌","沙","刚","攻","谓","盾","讨","晚","粒","乱","燃","矛","乎","杀","药","宁","鲁","贵","钟","煤","读","班","伯","香","介","迫","句","丰","培","握","兰","担","弦","蛋","沉","假","穿","执","答","乐","谁","顺","烟","缩","征","脸","喜","松","脚","困","异","免","背","星","福","买","染","井","概","慢","怕","磁","倍","祖","皇","促","静","补","评","翻","肉","践","尼","衣","宽","扬","棉","希","伤","操","垂","秋","宜","氢","套","督","振","架","亮","末","宪","庆","编","牛","触","映","雷","销","诗","座","居","抓","裂","胞","呼","娘","景","威","绿","晶","厚","盟","衡","鸡","孙","延","危","胶","屋","乡","临","陆","顾","掉","呀","灯","岁","措","束","耐","剧","玉","赵","跳","哥","季","课","凯","胡","额","款","绍","卷","齐","伟","蒸","殖","永","宗","苗","川","炉","岩","弱","零","杨","奏","沿","露","杆","探","滑","镇","饭","浓","航","怀","赶","库","夺","伊","灵","税","途","灭","赛","归","召","鼓","播","盘","裁","险","康","唯","录","菌","纯","借","糖","盖","横","符","私","努","堂","域","枪","润","幅","哈","竟","熟","虫","泽","脑","壤","碳","欧","遍","侧","寨","敢","彻","虑","斜","薄","庭","纳","弹","饲","伸","折","麦","湿","暗","荷","瓦","塞","床","筑","恶","户","访","塔","奇","透","梁","刀","旋","迹","卡","氯","遇","份","毒","泥","退","洗","摆","灰","彩","卖","耗","夏","择","忙","铜","献","硬","予","繁","圈","雪","函","亦","抽","篇","阵","阴","丁","尺","追","堆","雄","迎","泛","爸","楼","避","谋","吨","野","猪","旗","累","偏","典","馆","索","秦","脂","潮","爷","豆","忽","托","惊","塑","遗","愈","朱","替","纤","粗","倾","尚","痛","楚","谢","奋","购","磨","君","池","旁","碎","骨","监","捕","弟","暴","割","贯","殊","释","词","亡","壁","顿","宝","午","尘","闻","揭","炮","残","冬","桥","妇","警","综","招","吴","付","浮","遭","徐","您","摇","谷","赞","箱","隔","订","男","吹","园","纷","唐","败","宋","玻","巨","耕","坦","荣","闭","湾","键","凡","驻","锅","救","恩","剥","凝","碱","齿","截","炼","麻","纺","禁","废","盛","版","缓","净","睛","昌","婚","涉","筒","嘴","插","岸","朗","庄","街","藏","姑","贸","腐","奴","啦","惯","乘","伙","恢","匀","纱","扎","辩","耳","彪","臣","亿","璃","抵","脉","秀","萨","俄","网","舞","店","喷","纵","寸","汗","挂","洪","贺","闪","柬","爆","烯","津","稻","墙","软","勇","像","滚","厘","蒙","芳","肯","坡","柱","荡","腿","仪","旅","尾","轧","冰","贡","登","黎","削","钻","勒","逃","障","氨","郭","峰","币","港","伏","轨","亩","毕","擦","莫","刺","浪","秘","援","株","健","售","股","岛","甘","泡","睡","童","铸","汤","阀","休","汇","舍","牧","绕","炸","哲","磷","绩","朋","淡","尖","启","陷","柴","呈","徒","颜","泪","稍","忘","泵","蓝","拖","洞","授","镜","辛","壮","锋","贫","虚","弯","摩","泰","幼","廷","尊","窗","纲","弄","隶","疑","氏","宫","姐","震","瑞","怪","尤","琴","循","描","膜","违","夹","腰","缘","珠","穷","森","枝","竹","沟","催","绳","忆","邦","剩","幸","浆","栏","拥","牙","贮","礼","滤","钠","纹","罢","拍","咱","喊","袖","埃","勤","罚","焦","潜","伍","墨","欲","缝","姓","刊","饱","仿","奖","铝","鬼","丽","跨","默","挖","链","扫","喝","袋","炭","污","幕","诸","弧","励","梅","奶","洁","灾","舟","鉴","苯","讼","抱","毁","懂","寒","智","埔","寄","届","跃","渡","挑","丹","艰","贝","碰","拔","爹","戴","码","梦","芽","熔","赤","渔","哭","敬","颗","奔","铅","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","仓","魏","锐","晓","氮","兼","隐","碍","赫","拨","忠","肃","缸","牵","抢","博","巧","壳","兄","杜","讯","诚","碧","祥","柯","页","巡","矩","悲","灌","龄","伦","票","寻","桂","铺","圣","恐","恰","郑","趣","抬","荒","腾","贴","柔","滴","猛","阔","辆","妻","填","撤","储","签","闹","扰","紫","砂","递","戏","吊","陶","伐","喂","疗","瓶","婆","抚","臂","摸","忍","虾","蜡","邻","胸","巩","挤","偶","弃","槽","劲","乳","邓","吉","仁","烂","砖","租","乌","舰","伴","瓜","浅","丙","暂","燥","橡","柳","迷","暖","牌","秧","胆","详","簧","踏","瓷","谱","呆","宾","糊","洛","辉","愤","竞","隙","怒","粘","乃","绪","肩","籍","敏","涂","熙","皆","侦","悬","掘","享","纠","醒","狂","锁","淀","恨","牲","霸","爬","赏","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鸭","趋","凤","晨","畜","辈","秩","卵","署","梯","炎","滩","棋","驱","筛","峡","冒","啥","寿","译","浸","泉","帽","迟","硅","疆","贷","漏","稿","冠","嫩","胁","芯","牢","叛","蚀","奥","鸣","岭","羊","凭","串","塘","绘","酵","融","盆","锡","庙","筹","冻","辅","摄","袭","筋","拒","僚","旱","钾","鸟","漆","沈","眉","疏","添","棒","穗","硝","韩","逼","扭","侨","凉","挺","碗","栽","炒","杯","患","馏","劝","豪","辽","勃","鸿","旦","吏","拜","狗","埋","辊","掩","饮","搬","骂","辞","勾","扣","估","蒋","绒","雾","丈","朵","姆","拟","宇","辑","陕","雕","偿","蓄","崇","剪","倡","厅","咬","驶","薯","刷","斥","番","赋","奉","佛","浇","漫","曼","扇","钙","桃","扶","仔","返","俗","亏","腔","鞋","棱","覆","框","悄","叔","撞","骗","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","胀","谐","抛","霉","桑","岗","嘛","衰","盗","渗","脏","赖","涌","甜","曹","阅","肌","哩","厉","烃","纬","毅","昨","伪","症","煮","叹","钉","搭","茎","笼","酷","偷","弓","锥","恒","杰","坑","鼻","翼","纶","叙","狱","逮","罐","络","棚","抑","膨","蔬","寺","骤","穆","冶","枯","册","尸","凸","绅","坯","牺","焰","轰","欣","晋","瘦","御","锭","锦","丧","旬","锻","垄","搜","扑","邀","亭","酯","迈","舒","脆","酶","闲","忧","酚","顽","羽","涨","卸","仗","陪","辟","惩","杭","姚","肚","捉","飘","漂","昆","欺","吾","郎","烷","汁","呵","饰","萧","雅","邮","迁","燕","撒","姻","赴","宴","烦","债","帐","斑","铃","旨","醇","董","饼","雏","姿","拌","傅","腹","妥","揉","贤","拆","歪","葡","胺","丢","浩","徽","昂","垫","挡","览","贪","慰","缴","汪","慌","冯","诺","姜","谊","凶","劣","诬","耀","昏","躺","盈","骑","乔","溪","丛","卢","抹","闷","咨","刮","驾","缆","悟","摘","铒","掷","颇","幻","柄","惠","惨","佳","仇","腊","窝","涤","剑","瞧","堡","泼","葱","罩","霍","捞","胎","苍","滨","俩","捅","湘","砍","霞","邵","萄","疯","淮","遂","熊","粪","烘","宿","档","戈","驳","嫂","裕","徙","箭","捐","肠","撑","晒","辨","殿","莲","摊","搅","酱","屏","疫","哀","蔡","堵","沫","皱","畅","叠","阁","莱","敲","辖","钩","痕","坝","巷","饿","祸","丘","玄","溜","曰","逻","彭","尝","卿","妨","艇","吞","韦","怨","矮","歇"]},function(e,t,i){"use strict";e.exports=["的","一","是","在","不","了","有","和","人","這","中","大","為","上","個","國","我","以","要","他","時","來","用","們","生","到","作","地","於","出","就","分","對","成","會","可","主","發","年","動","同","工","也","能","下","過","子","說","產","種","面","而","方","後","多","定","行","學","法","所","民","得","經","十","三","之","進","著","等","部","度","家","電","力","裡","如","水","化","高","自","二","理","起","小","物","現","實","加","量","都","兩","體","制","機","當","使","點","從","業","本","去","把","性","好","應","開","它","合","還","因","由","其","些","然","前","外","天","政","四","日","那","社","義","事","平","形","相","全","表","間","樣","與","關","各","重","新","線","內","數","正","心","反","你","明","看","原","又","麼","利","比","或","但","質","氣","第","向","道","命","此","變","條","只","沒","結","解","問","意","建","月","公","無","系","軍","很","情","者","最","立","代","想","已","通","並","提","直","題","黨","程","展","五","果","料","象","員","革","位","入","常","文","總","次","品","式","活","設","及","管","特","件","長","求","老","頭","基","資","邊","流","路","級","少","圖","山","統","接","知","較","將","組","見","計","別","她","手","角","期","根","論","運","農","指","幾","九","區","強","放","決","西","被","幹","做","必","戰","先","回","則","任","取","據","處","隊","南","給","色","光","門","即","保","治","北","造","百","規","熱","領","七","海","口","東","導","器","壓","志","世","金","增","爭","濟","階","油","思","術","極","交","受","聯","什","認","六","共","權","收","證","改","清","美","再","採","轉","更","單","風","切","打","白","教","速","花","帶","安","場","身","車","例","真","務","具","萬","每","目","至","達","走","積","示","議","聲","報","鬥","完","類","八","離","華","名","確","才","科","張","信","馬","節","話","米","整","空","元","況","今","集","溫","傳","土","許","步","群","廣","石","記","需","段","研","界","拉","林","律","叫","且","究","觀","越","織","裝","影","算","低","持","音","眾","書","布","复","容","兒","須","際","商","非","驗","連","斷","深","難","近","礦","千","週","委","素","技","備","半","辦","青","省","列","習","響","約","支","般","史","感","勞","便","團","往","酸","歷","市","克","何","除","消","構","府","稱","太","準","精","值","號","率","族","維","劃","選","標","寫","存","候","毛","親","快","效","斯","院","查","江","型","眼","王","按","格","養","易","置","派","層","片","始","卻","專","狀","育","廠","京","識","適","屬","圓","包","火","住","調","滿","縣","局","照","參","紅","細","引","聽","該","鐵","價","嚴","首","底","液","官","德","隨","病","蘇","失","爾","死","講","配","女","黃","推","顯","談","罪","神","藝","呢","席","含","企","望","密","批","營","項","防","舉","球","英","氧","勢","告","李","台","落","木","幫","輪","破","亞","師","圍","注","遠","字","材","排","供","河","態","封","另","施","減","樹","溶","怎","止","案","言","士","均","武","固","葉","魚","波","視","僅","費","緊","愛","左","章","早","朝","害","續","輕","服","試","食","充","兵","源","判","護","司","足","某","練","差","致","板","田","降","黑","犯","負","擊","范","繼","興","似","餘","堅","曲","輸","修","故","城","夫","夠","送","筆","船","佔","右","財","吃","富","春","職","覺","漢","畫","功","巴","跟","雖","雜","飛","檢","吸","助","昇","陽","互","初","創","抗","考","投","壞","策","古","徑","換","未","跑","留","鋼","曾","端","責","站","簡","述","錢","副","盡","帝","射","草","衝","承","獨","令","限","阿","宣","環","雙","請","超","微","讓","控","州","良","軸","找","否","紀","益","依","優","頂","礎","載","倒","房","突","坐","粉","敵","略","客","袁","冷","勝","絕","析","塊","劑","測","絲","協","訴","念","陳","仍","羅","鹽","友","洋","錯","苦","夜","刑","移","頻","逐","靠","混","母","短","皮","終","聚","汽","村","雲","哪","既","距","衛","停","烈","央","察","燒","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","遊","久","菜","味","舊","模","湖","貨","損","預","阻","毫","普","穩","乙","媽","植","息","擴","銀","語","揮","酒","守","拿","序","紙","醫","缺","雨","嗎","針","劉","啊","急","唱","誤","訓","願","審","附","獲","茶","鮮","糧","斤","孩","脫","硫","肥","善","龍","演","父","漸","血","歡","械","掌","歌","沙","剛","攻","謂","盾","討","晚","粒","亂","燃","矛","乎","殺","藥","寧","魯","貴","鐘","煤","讀","班","伯","香","介","迫","句","豐","培","握","蘭","擔","弦","蛋","沉","假","穿","執","答","樂","誰","順","煙","縮","徵","臉","喜","松","腳","困","異","免","背","星","福","買","染","井","概","慢","怕","磁","倍","祖","皇","促","靜","補","評","翻","肉","踐","尼","衣","寬","揚","棉","希","傷","操","垂","秋","宜","氫","套","督","振","架","亮","末","憲","慶","編","牛","觸","映","雷","銷","詩","座","居","抓","裂","胞","呼","娘","景","威","綠","晶","厚","盟","衡","雞","孫","延","危","膠","屋","鄉","臨","陸","顧","掉","呀","燈","歲","措","束","耐","劇","玉","趙","跳","哥","季","課","凱","胡","額","款","紹","卷","齊","偉","蒸","殖","永","宗","苗","川","爐","岩","弱","零","楊","奏","沿","露","桿","探","滑","鎮","飯","濃","航","懷","趕","庫","奪","伊","靈","稅","途","滅","賽","歸","召","鼓","播","盤","裁","險","康","唯","錄","菌","純","借","糖","蓋","橫","符","私","努","堂","域","槍","潤","幅","哈","竟","熟","蟲","澤","腦","壤","碳","歐","遍","側","寨","敢","徹","慮","斜","薄","庭","納","彈","飼","伸","折","麥","濕","暗","荷","瓦","塞","床","築","惡","戶","訪","塔","奇","透","梁","刀","旋","跡","卡","氯","遇","份","毒","泥","退","洗","擺","灰","彩","賣","耗","夏","擇","忙","銅","獻","硬","予","繁","圈","雪","函","亦","抽","篇","陣","陰","丁","尺","追","堆","雄","迎","泛","爸","樓","避","謀","噸","野","豬","旗","累","偏","典","館","索","秦","脂","潮","爺","豆","忽","托","驚","塑","遺","愈","朱","替","纖","粗","傾","尚","痛","楚","謝","奮","購","磨","君","池","旁","碎","骨","監","捕","弟","暴","割","貫","殊","釋","詞","亡","壁","頓","寶","午","塵","聞","揭","炮","殘","冬","橋","婦","警","綜","招","吳","付","浮","遭","徐","您","搖","谷","贊","箱","隔","訂","男","吹","園","紛","唐","敗","宋","玻","巨","耕","坦","榮","閉","灣","鍵","凡","駐","鍋","救","恩","剝","凝","鹼","齒","截","煉","麻","紡","禁","廢","盛","版","緩","淨","睛","昌","婚","涉","筒","嘴","插","岸","朗","莊","街","藏","姑","貿","腐","奴","啦","慣","乘","夥","恢","勻","紗","扎","辯","耳","彪","臣","億","璃","抵","脈","秀","薩","俄","網","舞","店","噴","縱","寸","汗","掛","洪","賀","閃","柬","爆","烯","津","稻","牆","軟","勇","像","滾","厘","蒙","芳","肯","坡","柱","盪","腿","儀","旅","尾","軋","冰","貢","登","黎","削","鑽","勒","逃","障","氨","郭","峰","幣","港","伏","軌","畝","畢","擦","莫","刺","浪","秘","援","株","健","售","股","島","甘","泡","睡","童","鑄","湯","閥","休","匯","舍","牧","繞","炸","哲","磷","績","朋","淡","尖","啟","陷","柴","呈","徒","顏","淚","稍","忘","泵","藍","拖","洞","授","鏡","辛","壯","鋒","貧","虛","彎","摩","泰","幼","廷","尊","窗","綱","弄","隸","疑","氏","宮","姐","震","瑞","怪","尤","琴","循","描","膜","違","夾","腰","緣","珠","窮","森","枝","竹","溝","催","繩","憶","邦","剩","幸","漿","欄","擁","牙","貯","禮","濾","鈉","紋","罷","拍","咱","喊","袖","埃","勤","罰","焦","潛","伍","墨","欲","縫","姓","刊","飽","仿","獎","鋁","鬼","麗","跨","默","挖","鏈","掃","喝","袋","炭","污","幕","諸","弧","勵","梅","奶","潔","災","舟","鑑","苯","訟","抱","毀","懂","寒","智","埔","寄","屆","躍","渡","挑","丹","艱","貝","碰","拔","爹","戴","碼","夢","芽","熔","赤","漁","哭","敬","顆","奔","鉛","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","倉","魏","銳","曉","氮","兼","隱","礙","赫","撥","忠","肅","缸","牽","搶","博","巧","殼","兄","杜","訊","誠","碧","祥","柯","頁","巡","矩","悲","灌","齡","倫","票","尋","桂","鋪","聖","恐","恰","鄭","趣","抬","荒","騰","貼","柔","滴","猛","闊","輛","妻","填","撤","儲","簽","鬧","擾","紫","砂","遞","戲","吊","陶","伐","餵","療","瓶","婆","撫","臂","摸","忍","蝦","蠟","鄰","胸","鞏","擠","偶","棄","槽","勁","乳","鄧","吉","仁","爛","磚","租","烏","艦","伴","瓜","淺","丙","暫","燥","橡","柳","迷","暖","牌","秧","膽","詳","簧","踏","瓷","譜","呆","賓","糊","洛","輝","憤","競","隙","怒","粘","乃","緒","肩","籍","敏","塗","熙","皆","偵","懸","掘","享","糾","醒","狂","鎖","淀","恨","牲","霸","爬","賞","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鴨","趨","鳳","晨","畜","輩","秩","卵","署","梯","炎","灘","棋","驅","篩","峽","冒","啥","壽","譯","浸","泉","帽","遲","矽","疆","貸","漏","稿","冠","嫩","脅","芯","牢","叛","蝕","奧","鳴","嶺","羊","憑","串","塘","繪","酵","融","盆","錫","廟","籌","凍","輔","攝","襲","筋","拒","僚","旱","鉀","鳥","漆","沈","眉","疏","添","棒","穗","硝","韓","逼","扭","僑","涼","挺","碗","栽","炒","杯","患","餾","勸","豪","遼","勃","鴻","旦","吏","拜","狗","埋","輥","掩","飲","搬","罵","辭","勾","扣","估","蔣","絨","霧","丈","朵","姆","擬","宇","輯","陝","雕","償","蓄","崇","剪","倡","廳","咬","駛","薯","刷","斥","番","賦","奉","佛","澆","漫","曼","扇","鈣","桃","扶","仔","返","俗","虧","腔","鞋","棱","覆","框","悄","叔","撞","騙","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","脹","諧","拋","黴","桑","崗","嘛","衰","盜","滲","臟","賴","湧","甜","曹","閱","肌","哩","厲","烴","緯","毅","昨","偽","症","煮","嘆","釘","搭","莖","籠","酷","偷","弓","錐","恆","傑","坑","鼻","翼","綸","敘","獄","逮","罐","絡","棚","抑","膨","蔬","寺","驟","穆","冶","枯","冊","屍","凸","紳","坯","犧","焰","轟","欣","晉","瘦","禦","錠","錦","喪","旬","鍛","壟","搜","撲","邀","亭","酯","邁","舒","脆","酶","閒","憂","酚","頑","羽","漲","卸","仗","陪","闢","懲","杭","姚","肚","捉","飄","漂","昆","欺","吾","郎","烷","汁","呵","飾","蕭","雅","郵","遷","燕","撒","姻","赴","宴","煩","債","帳","斑","鈴","旨","醇","董","餅","雛","姿","拌","傅","腹","妥","揉","賢","拆","歪","葡","胺","丟","浩","徽","昂","墊","擋","覽","貪","慰","繳","汪","慌","馮","諾","姜","誼","兇","劣","誣","耀","昏","躺","盈","騎","喬","溪","叢","盧","抹","悶","諮","刮","駕","纜","悟","摘","鉺","擲","頗","幻","柄","惠","慘","佳","仇","臘","窩","滌","劍","瞧","堡","潑","蔥","罩","霍","撈","胎","蒼","濱","倆","捅","湘","砍","霞","邵","萄","瘋","淮","遂","熊","糞","烘","宿","檔","戈","駁","嫂","裕","徙","箭","捐","腸","撐","曬","辨","殿","蓮","攤","攪","醬","屏","疫","哀","蔡","堵","沫","皺","暢","疊","閣","萊","敲","轄","鉤","痕","壩","巷","餓","禍","丘","玄","溜","曰","邏","彭","嘗","卿","妨","艇","吞","韋","怨","矮","歇"]},function(e,t,i){"use strict";e.exports=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]},function(e,t,i){"use strict";e.exports=["abaisser","abandon","abdiquer","abeille","abolir","aborder","aboutir","aboyer","abrasif","abreuver","abriter","abroger","abrupt","absence","absolu","absurde","abusif","abyssal","académie","acajou","acarien","accabler","accepter","acclamer","accolade","accroche","accuser","acerbe","achat","acheter","aciduler","acier","acompte","acquérir","acronyme","acteur","actif","actuel","adepte","adéquat","adhésif","adjectif","adjuger","admettre","admirer","adopter","adorer","adoucir","adresse","adroit","adulte","adverbe","aérer","aéronef","affaire","affecter","affiche","affreux","affubler","agacer","agencer","agile","agiter","agrafer","agréable","agrume","aider","aiguille","ailier","aimable","aisance","ajouter","ajuster","alarmer","alchimie","alerte","algèbre","algue","aliéner","aliment","alléger","alliage","allouer","allumer","alourdir","alpaga","altesse","alvéole","amateur","ambigu","ambre","aménager","amertume","amidon","amiral","amorcer","amour","amovible","amphibie","ampleur","amusant","analyse","anaphore","anarchie","anatomie","ancien","anéantir","angle","angoisse","anguleux","animal","annexer","annonce","annuel","anodin","anomalie","anonyme","anormal","antenne","antidote","anxieux","apaiser","apéritif","aplanir","apologie","appareil","appeler","apporter","appuyer","aquarium","aqueduc","arbitre","arbuste","ardeur","ardoise","argent","arlequin","armature","armement","armoire","armure","arpenter","arracher","arriver","arroser","arsenic","artériel","article","aspect","asphalte","aspirer","assaut","asservir","assiette","associer","assurer","asticot","astre","astuce","atelier","atome","atrium","atroce","attaque","attentif","attirer","attraper","aubaine","auberge","audace","audible","augurer","aurore","automne","autruche","avaler","avancer","avarice","avenir","averse","aveugle","aviateur","avide","avion","aviser","avoine","avouer","avril","axial","axiome","badge","bafouer","bagage","baguette","baignade","balancer","balcon","baleine","balisage","bambin","bancaire","bandage","banlieue","bannière","banquier","barbier","baril","baron","barque","barrage","bassin","bastion","bataille","bateau","batterie","baudrier","bavarder","belette","bélier","belote","bénéfice","berceau","berger","berline","bermuda","besace","besogne","bétail","beurre","biberon","bicycle","bidule","bijou","bilan","bilingue","billard","binaire","biologie","biopsie","biotype","biscuit","bison","bistouri","bitume","bizarre","blafard","blague","blanchir","blessant","blinder","blond","bloquer","blouson","bobard","bobine","boire","boiser","bolide","bonbon","bondir","bonheur","bonifier","bonus","bordure","borne","botte","boucle","boueux","bougie","boulon","bouquin","bourse","boussole","boutique","boxeur","branche","brasier","brave","brebis","brèche","breuvage","bricoler","brigade","brillant","brioche","brique","brochure","broder","bronzer","brousse","broyeur","brume","brusque","brutal","bruyant","buffle","buisson","bulletin","bureau","burin","bustier","butiner","butoir","buvable","buvette","cabanon","cabine","cachette","cadeau","cadre","caféine","caillou","caisson","calculer","calepin","calibre","calmer","calomnie","calvaire","camarade","caméra","camion","campagne","canal","caneton","canon","cantine","canular","capable","caporal","caprice","capsule","capter","capuche","carabine","carbone","caresser","caribou","carnage","carotte","carreau","carton","cascade","casier","casque","cassure","causer","caution","cavalier","caverne","caviar","cédille","ceinture","céleste","cellule","cendrier","censurer","central","cercle","cérébral","cerise","cerner","cerveau","cesser","chagrin","chaise","chaleur","chambre","chance","chapitre","charbon","chasseur","chaton","chausson","chavirer","chemise","chenille","chéquier","chercher","cheval","chien","chiffre","chignon","chimère","chiot","chlorure","chocolat","choisir","chose","chouette","chrome","chute","cigare","cigogne","cimenter","cinéma","cintrer","circuler","cirer","cirque","citerne","citoyen","citron","civil","clairon","clameur","claquer","classe","clavier","client","cligner","climat","clivage","cloche","clonage","cloporte","cobalt","cobra","cocasse","cocotier","coder","codifier","coffre","cogner","cohésion","coiffer","coincer","colère","colibri","colline","colmater","colonel","combat","comédie","commande","compact","concert","conduire","confier","congeler","connoter","consonne","contact","convexe","copain","copie","corail","corbeau","cordage","corniche","corpus","correct","cortège","cosmique","costume","coton","coude","coupure","courage","couteau","couvrir","coyote","crabe","crainte","cravate","crayon","créature","créditer","crémeux","creuser","crevette","cribler","crier","cristal","critère","croire","croquer","crotale","crucial","cruel","crypter","cubique","cueillir","cuillère","cuisine","cuivre","culminer","cultiver","cumuler","cupide","curatif","curseur","cyanure","cycle","cylindre","cynique","daigner","damier","danger","danseur","dauphin","débattre","débiter","déborder","débrider","débutant","décaler","décembre","déchirer","décider","déclarer","décorer","décrire","décupler","dédale","déductif","déesse","défensif","défiler","défrayer","dégager","dégivrer","déglutir","dégrafer","déjeuner","délice","déloger","demander","demeurer","démolir","dénicher","dénouer","dentelle","dénuder","départ","dépenser","déphaser","déplacer","déposer","déranger","dérober","désastre","descente","désert","désigner","désobéir","dessiner","destrier","détacher","détester","détourer","détresse","devancer","devenir","deviner","devoir","diable","dialogue","diamant","dicter","différer","digérer","digital","digne","diluer","dimanche","diminuer","dioxyde","directif","diriger","discuter","disposer","dissiper","distance","divertir","diviser","docile","docteur","dogme","doigt","domaine","domicile","dompter","donateur","donjon","donner","dopamine","dortoir","dorure","dosage","doseur","dossier","dotation","douanier","double","douceur","douter","doyen","dragon","draper","dresser","dribbler","droiture","duperie","duplexe","durable","durcir","dynastie","éblouir","écarter","écharpe","échelle","éclairer","éclipse","éclore","écluse","école","économie","écorce","écouter","écraser","écrémer","écrivain","écrou","écume","écureuil","édifier","éduquer","effacer","effectif","effigie","effort","effrayer","effusion","égaliser","égarer","éjecter","élaborer","élargir","électron","élégant","éléphant","élève","éligible","élitisme","éloge","élucider","éluder","emballer","embellir","embryon","émeraude","émission","emmener","émotion","émouvoir","empereur","employer","emporter","emprise","émulsion","encadrer","enchère","enclave","encoche","endiguer","endosser","endroit","enduire","énergie","enfance","enfermer","enfouir","engager","engin","englober","énigme","enjamber","enjeu","enlever","ennemi","ennuyeux","enrichir","enrobage","enseigne","entasser","entendre","entier","entourer","entraver","énumérer","envahir","enviable","envoyer","enzyme","éolien","épaissir","épargne","épatant","épaule","épicerie","épidémie","épier","épilogue","épine","épisode","épitaphe","époque","épreuve","éprouver","épuisant","équerre","équipe","ériger","érosion","erreur","éruption","escalier","espadon","espèce","espiègle","espoir","esprit","esquiver","essayer","essence","essieu","essorer","estime","estomac","estrade","étagère","étaler","étanche","étatique","éteindre","étendoir","éternel","éthanol","éthique","ethnie","étirer","étoffer","étoile","étonnant","étourdir","étrange","étroit","étude","euphorie","évaluer","évasion","éventail","évidence","éviter","évolutif","évoquer","exact","exagérer","exaucer","exceller","excitant","exclusif","excuse","exécuter","exemple","exercer","exhaler","exhorter","exigence","exiler","exister","exotique","expédier","explorer","exposer","exprimer","exquis","extensif","extraire","exulter","fable","fabuleux","facette","facile","facture","faiblir","falaise","fameux","famille","farceur","farfelu","farine","farouche","fasciner","fatal","fatigue","faucon","fautif","faveur","favori","fébrile","féconder","fédérer","félin","femme","fémur","fendoir","féodal","fermer","féroce","ferveur","festival","feuille","feutre","février","fiasco","ficeler","fictif","fidèle","figure","filature","filetage","filière","filleul","filmer","filou","filtrer","financer","finir","fiole","firme","fissure","fixer","flairer","flamme","flasque","flatteur","fléau","flèche","fleur","flexion","flocon","flore","fluctuer","fluide","fluvial","folie","fonderie","fongible","fontaine","forcer","forgeron","formuler","fortune","fossile","foudre","fougère","fouiller","foulure","fourmi","fragile","fraise","franchir","frapper","frayeur","frégate","freiner","frelon","frémir","frénésie","frère","friable","friction","frisson","frivole","froid","fromage","frontal","frotter","fruit","fugitif","fuite","fureur","furieux","furtif","fusion","futur","gagner","galaxie","galerie","gambader","garantir","gardien","garnir","garrigue","gazelle","gazon","géant","gélatine","gélule","gendarme","général","génie","genou","gentil","géologie","géomètre","géranium","germe","gestuel","geyser","gibier","gicler","girafe","givre","glace","glaive","glisser","globe","gloire","glorieux","golfeur","gomme","gonfler","gorge","gorille","goudron","gouffre","goulot","goupille","gourmand","goutte","graduel","graffiti","graine","grand","grappin","gratuit","gravir","grenat","griffure","griller","grimper","grogner","gronder","grotte","groupe","gruger","grutier","gruyère","guépard","guerrier","guide","guimauve","guitare","gustatif","gymnaste","gyrostat","habitude","hachoir","halte","hameau","hangar","hanneton","haricot","harmonie","harpon","hasard","hélium","hématome","herbe","hérisson","hermine","héron","hésiter","heureux","hiberner","hibou","hilarant","histoire","hiver","homard","hommage","homogène","honneur","honorer","honteux","horde","horizon","horloge","hormone","horrible","houleux","housse","hublot","huileux","humain","humble","humide","humour","hurler","hydromel","hygiène","hymne","hypnose","idylle","ignorer","iguane","illicite","illusion","image","imbiber","imiter","immense","immobile","immuable","impact","impérial","implorer","imposer","imprimer","imputer","incarner","incendie","incident","incliner","incolore","indexer","indice","inductif","inédit","ineptie","inexact","infini","infliger","informer","infusion","ingérer","inhaler","inhiber","injecter","injure","innocent","inoculer","inonder","inscrire","insecte","insigne","insolite","inspirer","instinct","insulter","intact","intense","intime","intrigue","intuitif","inutile","invasion","inventer","inviter","invoquer","ironique","irradier","irréel","irriter","isoler","ivoire","ivresse","jaguar","jaillir","jambe","janvier","jardin","jauger","jaune","javelot","jetable","jeton","jeudi","jeunesse","joindre","joncher","jongler","joueur","jouissif","journal","jovial","joyau","joyeux","jubiler","jugement","junior","jupon","juriste","justice","juteux","juvénile","kayak","kimono","kiosque","label","labial","labourer","lacérer","lactose","lagune","laine","laisser","laitier","lambeau","lamelle","lampe","lanceur","langage","lanterne","lapin","largeur","larme","laurier","lavabo","lavoir","lecture","légal","léger","légume","lessive","lettre","levier","lexique","lézard","liasse","libérer","libre","licence","licorne","liège","lièvre","ligature","ligoter","ligue","limer","limite","limonade","limpide","linéaire","lingot","lionceau","liquide","lisière","lister","lithium","litige","littoral","livreur","logique","lointain","loisir","lombric","loterie","louer","lourd","loutre","louve","loyal","lubie","lucide","lucratif","lueur","lugubre","luisant","lumière","lunaire","lundi","luron","lutter","luxueux","machine","magasin","magenta","magique","maigre","maillon","maintien","mairie","maison","majorer","malaxer","maléfice","malheur","malice","mallette","mammouth","mandater","maniable","manquant","manteau","manuel","marathon","marbre","marchand","mardi","maritime","marqueur","marron","marteler","mascotte","massif","matériel","matière","matraque","maudire","maussade","mauve","maximal","méchant","méconnu","médaille","médecin","méditer","méduse","meilleur","mélange","mélodie","membre","mémoire","menacer","mener","menhir","mensonge","mentor","mercredi","mérite","merle","messager","mesure","métal","météore","méthode","métier","meuble","miauler","microbe","miette","mignon","migrer","milieu","million","mimique","mince","minéral","minimal","minorer","minute","miracle","miroiter","missile","mixte","mobile","moderne","moelleux","mondial","moniteur","monnaie","monotone","monstre","montagne","monument","moqueur","morceau","morsure","mortier","moteur","motif","mouche","moufle","moulin","mousson","mouton","mouvant","multiple","munition","muraille","murène","murmure","muscle","muséum","musicien","mutation","muter","mutuel","myriade","myrtille","mystère","mythique","nageur","nappe","narquois","narrer","natation","nation","nature","naufrage","nautique","navire","nébuleux","nectar","néfaste","négation","négliger","négocier","neige","nerveux","nettoyer","neurone","neutron","neveu","niche","nickel","nitrate","niveau","noble","nocif","nocturne","noirceur","noisette","nomade","nombreux","nommer","normatif","notable","notifier","notoire","nourrir","nouveau","novateur","novembre","novice","nuage","nuancer","nuire","nuisible","numéro","nuptial","nuque","nutritif","obéir","objectif","obliger","obscur","observer","obstacle","obtenir","obturer","occasion","occuper","océan","octobre","octroyer","octupler","oculaire","odeur","odorant","offenser","officier","offrir","ogive","oiseau","oisillon","olfactif","olivier","ombrage","omettre","onctueux","onduler","onéreux","onirique","opale","opaque","opérer","opinion","opportun","opprimer","opter","optique","orageux","orange","orbite","ordonner","oreille","organe","orgueil","orifice","ornement","orque","ortie","osciller","osmose","ossature","otarie","ouragan","ourson","outil","outrager","ouvrage","ovation","oxyde","oxygène","ozone","paisible","palace","palmarès","palourde","palper","panache","panda","pangolin","paniquer","panneau","panorama","pantalon","papaye","papier","papoter","papyrus","paradoxe","parcelle","paresse","parfumer","parler","parole","parrain","parsemer","partager","parure","parvenir","passion","pastèque","paternel","patience","patron","pavillon","pavoiser","payer","paysage","peigne","peintre","pelage","pélican","pelle","pelouse","peluche","pendule","pénétrer","pénible","pensif","pénurie","pépite","péplum","perdrix","perforer","période","permuter","perplexe","persil","perte","peser","pétale","petit","pétrir","peuple","pharaon","phobie","phoque","photon","phrase","physique","piano","pictural","pièce","pierre","pieuvre","pilote","pinceau","pipette","piquer","pirogue","piscine","piston","pivoter","pixel","pizza","placard","plafond","plaisir","planer","plaque","plastron","plateau","pleurer","plexus","pliage","plomb","plonger","pluie","plumage","pochette","poésie","poète","pointe","poirier","poisson","poivre","polaire","policier","pollen","polygone","pommade","pompier","ponctuel","pondérer","poney","portique","position","posséder","posture","potager","poteau","potion","pouce","poulain","poumon","pourpre","poussin","pouvoir","prairie","pratique","précieux","prédire","préfixe","prélude","prénom","présence","prétexte","prévoir","primitif","prince","prison","priver","problème","procéder","prodige","profond","progrès","proie","projeter","prologue","promener","propre","prospère","protéger","prouesse","proverbe","prudence","pruneau","psychose","public","puceron","puiser","pulpe","pulsar","punaise","punitif","pupitre","purifier","puzzle","pyramide","quasar","querelle","question","quiétude","quitter","quotient","racine","raconter","radieux","ragondin","raideur","raisin","ralentir","rallonge","ramasser","rapide","rasage","ratisser","ravager","ravin","rayonner","réactif","réagir","réaliser","réanimer","recevoir","réciter","réclamer","récolter","recruter","reculer","recycler","rédiger","redouter","refaire","réflexe","réformer","refrain","refuge","régalien","région","réglage","régulier","réitérer","rejeter","rejouer","relatif","relever","relief","remarque","remède","remise","remonter","remplir","remuer","renard","renfort","renifler","renoncer","rentrer","renvoi","replier","reporter","reprise","reptile","requin","réserve","résineux","résoudre","respect","rester","résultat","rétablir","retenir","réticule","retomber","retracer","réunion","réussir","revanche","revivre","révolte","révulsif","richesse","rideau","rieur","rigide","rigoler","rincer","riposter","risible","risque","rituel","rival","rivière","rocheux","romance","rompre","ronce","rondin","roseau","rosier","rotatif","rotor","rotule","rouge","rouille","rouleau","routine","royaume","ruban","rubis","ruche","ruelle","rugueux","ruiner","ruisseau","ruser","rustique","rythme","sabler","saboter","sabre","sacoche","safari","sagesse","saisir","salade","salive","salon","saluer","samedi","sanction","sanglier","sarcasme","sardine","saturer","saugrenu","saumon","sauter","sauvage","savant","savonner","scalpel","scandale","scélérat","scénario","sceptre","schéma","science","scinder","score","scrutin","sculpter","séance","sécable","sécher","secouer","sécréter","sédatif","séduire","seigneur","séjour","sélectif","semaine","sembler","semence","séminal","sénateur","sensible","sentence","séparer","séquence","serein","sergent","sérieux","serrure","sérum","service","sésame","sévir","sevrage","sextuple","sidéral","siècle","siéger","siffler","sigle","signal","silence","silicium","simple","sincère","sinistre","siphon","sirop","sismique","situer","skier","social","socle","sodium","soigneux","soldat","soleil","solitude","soluble","sombre","sommeil","somnoler","sonde","songeur","sonnette","sonore","sorcier","sortir","sosie","sottise","soucieux","soudure","souffle","soulever","soupape","source","soutirer","souvenir","spacieux","spatial","spécial","sphère","spiral","stable","station","sternum","stimulus","stipuler","strict","studieux","stupeur","styliste","sublime","substrat","subtil","subvenir","succès","sucre","suffixe","suggérer","suiveur","sulfate","superbe","supplier","surface","suricate","surmener","surprise","sursaut","survie","suspect","syllabe","symbole","symétrie","synapse","syntaxe","système","tabac","tablier","tactile","tailler","talent","talisman","talonner","tambour","tamiser","tangible","tapis","taquiner","tarder","tarif","tartine","tasse","tatami","tatouage","taupe","taureau","taxer","témoin","temporel","tenaille","tendre","teneur","tenir","tension","terminer","terne","terrible","tétine","texte","thème","théorie","thérapie","thorax","tibia","tiède","timide","tirelire","tiroir","tissu","titane","titre","tituber","toboggan","tolérant","tomate","tonique","tonneau","toponyme","torche","tordre","tornade","torpille","torrent","torse","tortue","totem","toucher","tournage","tousser","toxine","traction","trafic","tragique","trahir","train","trancher","travail","trèfle","tremper","trésor","treuil","triage","tribunal","tricoter","trilogie","triomphe","tripler","triturer","trivial","trombone","tronc","tropical","troupeau","tuile","tulipe","tumulte","tunnel","turbine","tuteur","tutoyer","tuyau","tympan","typhon","typique","tyran","ubuesque","ultime","ultrason","unanime","unifier","union","unique","unitaire","univers","uranium","urbain","urticant","usage","usine","usuel","usure","utile","utopie","vacarme","vaccin","vagabond","vague","vaillant","vaincre","vaisseau","valable","valise","vallon","valve","vampire","vanille","vapeur","varier","vaseux","vassal","vaste","vecteur","vedette","végétal","véhicule","veinard","véloce","vendredi","vénérer","venger","venimeux","ventouse","verdure","vérin","vernir","verrou","verser","vertu","veston","vétéran","vétuste","vexant","vexer","viaduc","viande","victoire","vidange","vidéo","vignette","vigueur","vilain","village","vinaigre","violon","vipère","virement","virtuose","virus","visage","viseur","vision","visqueux","visuel","vital","vitesse","viticole","vitrine","vivace","vivipare","vocation","voguer","voile","voisin","voiture","volaille","volcan","voltiger","volume","vorace","vortex","voter","vouloir","voyage","voyelle","wagon","xénon","yacht","zèbre","zénith","zeste","zoologie"]},function(e,t,i){"use strict";e.exports=["abaco","abbaglio","abbinato","abete","abisso","abolire","abrasivo","abrogato","accadere","accenno","accusato","acetone","achille","acido","acqua","acre","acrilico","acrobata","acuto","adagio","addebito","addome","adeguato","aderire","adipe","adottare","adulare","affabile","affetto","affisso","affranto","aforisma","afoso","africano","agave","agente","agevole","aggancio","agire","agitare","agonismo","agricolo","agrumeto","aguzzo","alabarda","alato","albatro","alberato","albo","albume","alce","alcolico","alettone","alfa","algebra","aliante","alibi","alimento","allagato","allegro","allievo","allodola","allusivo","almeno","alogeno","alpaca","alpestre","altalena","alterno","alticcio","altrove","alunno","alveolo","alzare","amalgama","amanita","amarena","ambito","ambrato","ameba","america","ametista","amico","ammasso","ammenda","ammirare","ammonito","amore","ampio","ampliare","amuleto","anacardo","anagrafe","analista","anarchia","anatra","anca","ancella","ancora","andare","andrea","anello","angelo","angolare","angusto","anima","annegare","annidato","anno","annuncio","anonimo","anticipo","anzi","apatico","apertura","apode","apparire","appetito","appoggio","approdo","appunto","aprile","arabica","arachide","aragosta","araldica","arancio","aratura","arazzo","arbitro","archivio","ardito","arenile","argento","argine","arguto","aria","armonia","arnese","arredato","arringa","arrosto","arsenico","arso","artefice","arzillo","asciutto","ascolto","asepsi","asettico","asfalto","asino","asola","aspirato","aspro","assaggio","asse","assoluto","assurdo","asta","astenuto","astice","astratto","atavico","ateismo","atomico","atono","attesa","attivare","attorno","attrito","attuale","ausilio","austria","autista","autonomo","autunno","avanzato","avere","avvenire","avviso","avvolgere","azione","azoto","azzimo","azzurro","babele","baccano","bacino","baco","badessa","badilata","bagnato","baita","balcone","baldo","balena","ballata","balzano","bambino","bandire","baraonda","barbaro","barca","baritono","barlume","barocco","basilico","basso","batosta","battuto","baule","bava","bavosa","becco","beffa","belgio","belva","benda","benevole","benigno","benzina","bere","berlina","beta","bibita","bici","bidone","bifido","biga","bilancia","bimbo","binocolo","biologo","bipede","bipolare","birbante","birra","biscotto","bisesto","bisnonno","bisonte","bisturi","bizzarro","blando","blatta","bollito","bonifico","bordo","bosco","botanico","bottino","bozzolo","braccio","bradipo","brama","branca","bravura","bretella","brevetto","brezza","briglia","brillante","brindare","broccolo","brodo","bronzina","brullo","bruno","bubbone","buca","budino","buffone","buio","bulbo","buono","burlone","burrasca","bussola","busta","cadetto","caduco","calamaro","calcolo","calesse","calibro","calmo","caloria","cambusa","camerata","camicia","cammino","camola","campale","canapa","candela","cane","canino","canotto","cantina","capace","capello","capitolo","capogiro","cappero","capra","capsula","carapace","carcassa","cardo","carisma","carovana","carretto","cartolina","casaccio","cascata","caserma","caso","cassone","castello","casuale","catasta","catena","catrame","cauto","cavillo","cedibile","cedrata","cefalo","celebre","cellulare","cena","cenone","centesimo","ceramica","cercare","certo","cerume","cervello","cesoia","cespo","ceto","chela","chiaro","chicca","chiedere","chimera","china","chirurgo","chitarra","ciao","ciclismo","cifrare","cigno","cilindro","ciottolo","circa","cirrosi","citrico","cittadino","ciuffo","civetta","civile","classico","clinica","cloro","cocco","codardo","codice","coerente","cognome","collare","colmato","colore","colposo","coltivato","colza","coma","cometa","commando","comodo","computer","comune","conciso","condurre","conferma","congelare","coniuge","connesso","conoscere","consumo","continuo","convegno","coperto","copione","coppia","copricapo","corazza","cordata","coricato","cornice","corolla","corpo","corredo","corsia","cortese","cosmico","costante","cottura","covato","cratere","cravatta","creato","credere","cremoso","crescita","creta","criceto","crinale","crisi","critico","croce","cronaca","crostata","cruciale","crusca","cucire","cuculo","cugino","cullato","cupola","curatore","cursore","curvo","cuscino","custode","dado","daino","dalmata","damerino","daniela","dannoso","danzare","datato","davanti","davvero","debutto","decennio","deciso","declino","decollo","decreto","dedicato","definito","deforme","degno","delegare","delfino","delirio","delta","demenza","denotato","dentro","deposito","derapata","derivare","deroga","descritto","deserto","desiderio","desumere","detersivo","devoto","diametro","dicembre","diedro","difeso","diffuso","digerire","digitale","diluvio","dinamico","dinnanzi","dipinto","diploma","dipolo","diradare","dire","dirotto","dirupo","disagio","discreto","disfare","disgelo","disposto","distanza","disumano","dito","divano","divelto","dividere","divorato","doblone","docente","doganale","dogma","dolce","domato","domenica","dominare","dondolo","dono","dormire","dote","dottore","dovuto","dozzina","drago","druido","dubbio","dubitare","ducale","duna","duomo","duplice","duraturo","ebano","eccesso","ecco","eclissi","economia","edera","edicola","edile","editoria","educare","egemonia","egli","egoismo","egregio","elaborato","elargire","elegante","elencato","eletto","elevare","elfico","elica","elmo","elsa","eluso","emanato","emblema","emesso","emiro","emotivo","emozione","empirico","emulo","endemico","enduro","energia","enfasi","enoteca","entrare","enzima","epatite","epilogo","episodio","epocale","eppure","equatore","erario","erba","erboso","erede","eremita","erigere","ermetico","eroe","erosivo","errante","esagono","esame","esanime","esaudire","esca","esempio","esercito","esibito","esigente","esistere","esito","esofago","esortato","esoso","espanso","espresso","essenza","esso","esteso","estimare","estonia","estroso","esultare","etilico","etnico","etrusco","etto","euclideo","europa","evaso","evidenza","evitato","evoluto","evviva","fabbrica","faccenda","fachiro","falco","famiglia","fanale","fanfara","fango","fantasma","fare","farfalla","farinoso","farmaco","fascia","fastoso","fasullo","faticare","fato","favoloso","febbre","fecola","fede","fegato","felpa","feltro","femmina","fendere","fenomeno","fermento","ferro","fertile","fessura","festivo","fetta","feudo","fiaba","fiducia","fifa","figurato","filo","finanza","finestra","finire","fiore","fiscale","fisico","fiume","flacone","flamenco","flebo","flemma","florido","fluente","fluoro","fobico","focaccia","focoso","foderato","foglio","folata","folclore","folgore","fondente","fonetico","fonia","fontana","forbito","forchetta","foresta","formica","fornaio","foro","fortezza","forzare","fosfato","fosso","fracasso","frana","frassino","fratello","freccetta","frenata","fresco","frigo","frollino","fronde","frugale","frutta","fucilata","fucsia","fuggente","fulmine","fulvo","fumante","fumetto","fumoso","fune","funzione","fuoco","furbo","furgone","furore","fuso","futile","gabbiano","gaffe","galateo","gallina","galoppo","gambero","gamma","garanzia","garbo","garofano","garzone","gasdotto","gasolio","gastrico","gatto","gaudio","gazebo","gazzella","geco","gelatina","gelso","gemello","gemmato","gene","genitore","gennaio","genotipo","gergo","ghepardo","ghiaccio","ghisa","giallo","gilda","ginepro","giocare","gioiello","giorno","giove","girato","girone","gittata","giudizio","giurato","giusto","globulo","glutine","gnomo","gobba","golf","gomito","gommone","gonfio","gonna","governo","gracile","grado","grafico","grammo","grande","grattare","gravoso","grazia","greca","gregge","grifone","grigio","grinza","grotta","gruppo","guadagno","guaio","guanto","guardare","gufo","guidare","ibernato","icona","identico","idillio","idolo","idra","idrico","idrogeno","igiene","ignaro","ignorato","ilare","illeso","illogico","illudere","imballo","imbevuto","imbocco","imbuto","immane","immerso","immolato","impacco","impeto","impiego","importo","impronta","inalare","inarcare","inattivo","incanto","incendio","inchino","incisivo","incluso","incontro","incrocio","incubo","indagine","india","indole","inedito","infatti","infilare","inflitto","ingaggio","ingegno","inglese","ingordo","ingrosso","innesco","inodore","inoltrare","inondato","insano","insetto","insieme","insonnia","insulina","intasato","intero","intonaco","intuito","inumidire","invalido","invece","invito","iperbole","ipnotico","ipotesi","ippica","iride","irlanda","ironico","irrigato","irrorare","isolato","isotopo","isterico","istituto","istrice","italia","iterare","labbro","labirinto","lacca","lacerato","lacrima","lacuna","laddove","lago","lampo","lancetta","lanterna","lardoso","larga","laringe","lastra","latenza","latino","lattuga","lavagna","lavoro","legale","leggero","lembo","lentezza","lenza","leone","lepre","lesivo","lessato","lesto","letterale","leva","levigato","libero","lido","lievito","lilla","limatura","limitare","limpido","lineare","lingua","liquido","lira","lirica","lisca","lite","litigio","livrea","locanda","lode","logica","lombare","londra","longevo","loquace","lorenzo","loto","lotteria","luce","lucidato","lumaca","luminoso","lungo","lupo","luppolo","lusinga","lusso","lutto","macabro","macchina","macero","macinato","madama","magico","maglia","magnete","magro","maiolica","malafede","malgrado","malinteso","malsano","malto","malumore","mana","mancia","mandorla","mangiare","manifesto","mannaro","manovra","mansarda","mantide","manubrio","mappa","maratona","marcire","maretta","marmo","marsupio","maschera","massaia","mastino","materasso","matricola","mattone","maturo","mazurca","meandro","meccanico","mecenate","medesimo","meditare","mega","melassa","melis","melodia","meninge","meno","mensola","mercurio","merenda","merlo","meschino","mese","messere","mestolo","metallo","metodo","mettere","miagolare","mica","micelio","michele","microbo","midollo","miele","migliore","milano","milite","mimosa","minerale","mini","minore","mirino","mirtillo","miscela","missiva","misto","misurare","mitezza","mitigare","mitra","mittente","mnemonico","modello","modifica","modulo","mogano","mogio","mole","molosso","monastero","monco","mondina","monetario","monile","monotono","monsone","montato","monviso","mora","mordere","morsicato","mostro","motivato","motosega","motto","movenza","movimento","mozzo","mucca","mucosa","muffa","mughetto","mugnaio","mulatto","mulinello","multiplo","mummia","munto","muovere","murale","musa","muscolo","musica","mutevole","muto","nababbo","nafta","nanometro","narciso","narice","narrato","nascere","nastrare","naturale","nautica","naviglio","nebulosa","necrosi","negativo","negozio","nemmeno","neofita","neretto","nervo","nessuno","nettuno","neutrale","neve","nevrotico","nicchia","ninfa","nitido","nobile","nocivo","nodo","nome","nomina","nordico","normale","norvegese","nostrano","notare","notizia","notturno","novella","nucleo","nulla","numero","nuovo","nutrire","nuvola","nuziale","oasi","obbedire","obbligo","obelisco","oblio","obolo","obsoleto","occasione","occhio","occidente","occorrere","occultare","ocra","oculato","odierno","odorare","offerta","offrire","offuscato","oggetto","oggi","ognuno","olandese","olfatto","oliato","oliva","ologramma","oltre","omaggio","ombelico","ombra","omega","omissione","ondoso","onere","onice","onnivoro","onorevole","onta","operato","opinione","opposto","oracolo","orafo","ordine","orecchino","orefice","orfano","organico","origine","orizzonte","orma","ormeggio","ornativo","orologio","orrendo","orribile","ortensia","ortica","orzata","orzo","osare","oscurare","osmosi","ospedale","ospite","ossa","ossidare","ostacolo","oste","otite","otre","ottagono","ottimo","ottobre","ovale","ovest","ovino","oviparo","ovocito","ovunque","ovviare","ozio","pacchetto","pace","pacifico","padella","padrone","paese","paga","pagina","palazzina","palesare","pallido","palo","palude","pandoro","pannello","paolo","paonazzo","paprica","parabola","parcella","parere","pargolo","pari","parlato","parola","partire","parvenza","parziale","passivo","pasticca","patacca","patologia","pattume","pavone","peccato","pedalare","pedonale","peggio","peloso","penare","pendice","penisola","pennuto","penombra","pensare","pentola","pepe","pepita","perbene","percorso","perdonato","perforare","pergamena","periodo","permesso","perno","perplesso","persuaso","pertugio","pervaso","pesatore","pesista","peso","pestifero","petalo","pettine","petulante","pezzo","piacere","pianta","piattino","piccino","picozza","piega","pietra","piffero","pigiama","pigolio","pigro","pila","pilifero","pillola","pilota","pimpante","pineta","pinna","pinolo","pioggia","piombo","piramide","piretico","pirite","pirolisi","pitone","pizzico","placebo","planare","plasma","platano","plenario","pochezza","poderoso","podismo","poesia","poggiare","polenta","poligono","pollice","polmonite","polpetta","polso","poltrona","polvere","pomice","pomodoro","ponte","popoloso","porfido","poroso","porpora","porre","portata","posa","positivo","possesso","postulato","potassio","potere","pranzo","prassi","pratica","precluso","predica","prefisso","pregiato","prelievo","premere","prenotare","preparato","presenza","pretesto","prevalso","prima","principe","privato","problema","procura","produrre","profumo","progetto","prolunga","promessa","pronome","proposta","proroga","proteso","prova","prudente","prugna","prurito","psiche","pubblico","pudica","pugilato","pugno","pulce","pulito","pulsante","puntare","pupazzo","pupilla","puro","quadro","qualcosa","quasi","querela","quota","raccolto","raddoppio","radicale","radunato","raffica","ragazzo","ragione","ragno","ramarro","ramingo","ramo","randagio","rantolare","rapato","rapina","rappreso","rasatura","raschiato","rasente","rassegna","rastrello","rata","ravveduto","reale","recepire","recinto","recluta","recondito","recupero","reddito","redimere","regalato","registro","regola","regresso","relazione","remare","remoto","renna","replica","reprimere","reputare","resa","residente","responso","restauro","rete","retina","retorica","rettifica","revocato","riassunto","ribadire","ribelle","ribrezzo","ricarica","ricco","ricevere","riciclato","ricordo","ricreduto","ridicolo","ridurre","rifasare","riflesso","riforma","rifugio","rigare","rigettato","righello","rilassato","rilevato","rimanere","rimbalzo","rimedio","rimorchio","rinascita","rincaro","rinforzo","rinnovo","rinomato","rinsavito","rintocco","rinuncia","rinvenire","riparato","ripetuto","ripieno","riportare","ripresa","ripulire","risata","rischio","riserva","risibile","riso","rispetto","ristoro","risultato","risvolto","ritardo","ritegno","ritmico","ritrovo","riunione","riva","riverso","rivincita","rivolto","rizoma","roba","robotico","robusto","roccia","roco","rodaggio","rodere","roditore","rogito","rollio","romantico","rompere","ronzio","rosolare","rospo","rotante","rotondo","rotula","rovescio","rubizzo","rubrica","ruga","rullino","rumine","rumoroso","ruolo","rupe","russare","rustico","sabato","sabbiare","sabotato","sagoma","salasso","saldatura","salgemma","salivare","salmone","salone","saltare","saluto","salvo","sapere","sapido","saporito","saraceno","sarcasmo","sarto","sassoso","satellite","satira","satollo","saturno","savana","savio","saziato","sbadiglio","sbalzo","sbancato","sbarra","sbattere","sbavare","sbendare","sbirciare","sbloccato","sbocciato","sbrinare","sbruffone","sbuffare","scabroso","scadenza","scala","scambiare","scandalo","scapola","scarso","scatenare","scavato","scelto","scenico","scettro","scheda","schiena","sciarpa","scienza","scindere","scippo","sciroppo","scivolo","sclerare","scodella","scolpito","scomparto","sconforto","scoprire","scorta","scossone","scozzese","scriba","scrollare","scrutinio","scuderia","scultore","scuola","scuro","scusare","sdebitare","sdoganare","seccatura","secondo","sedano","seggiola","segnalato","segregato","seguito","selciato","selettivo","sella","selvaggio","semaforo","sembrare","seme","seminato","sempre","senso","sentire","sepolto","sequenza","serata","serbato","sereno","serio","serpente","serraglio","servire","sestina","setola","settimana","sfacelo","sfaldare","sfamato","sfarzoso","sfaticato","sfera","sfida","sfilato","sfinge","sfocato","sfoderare","sfogo","sfoltire","sforzato","sfratto","sfruttato","sfuggito","sfumare","sfuso","sgabello","sgarbato","sgonfiare","sgorbio","sgrassato","sguardo","sibilo","siccome","sierra","sigla","signore","silenzio","sillaba","simbolo","simpatico","simulato","sinfonia","singolo","sinistro","sino","sintesi","sinusoide","sipario","sisma","sistole","situato","slitta","slogatura","sloveno","smarrito","smemorato","smentito","smeraldo","smilzo","smontare","smottato","smussato","snellire","snervato","snodo","sobbalzo","sobrio","soccorso","sociale","sodale","soffitto","sogno","soldato","solenne","solido","sollazzo","solo","solubile","solvente","somatico","somma","sonda","sonetto","sonnifero","sopire","soppeso","sopra","sorgere","sorpasso","sorriso","sorso","sorteggio","sorvolato","sospiro","sosta","sottile","spada","spalla","spargere","spatola","spavento","spazzola","specie","spedire","spegnere","spelatura","speranza","spessore","spettrale","spezzato","spia","spigoloso","spillato","spinoso","spirale","splendido","sportivo","sposo","spranga","sprecare","spronato","spruzzo","spuntino","squillo","sradicare","srotolato","stabile","stacco","staffa","stagnare","stampato","stantio","starnuto","stasera","statuto","stelo","steppa","sterzo","stiletto","stima","stirpe","stivale","stizzoso","stonato","storico","strappo","stregato","stridulo","strozzare","strutto","stuccare","stufo","stupendo","subentro","succoso","sudore","suggerito","sugo","sultano","suonare","superbo","supporto","surgelato","surrogato","sussurro","sutura","svagare","svedese","sveglio","svelare","svenuto","svezia","sviluppo","svista","svizzera","svolta","svuotare","tabacco","tabulato","tacciare","taciturno","tale","talismano","tampone","tannino","tara","tardivo","targato","tariffa","tarpare","tartaruga","tasto","tattico","taverna","tavolata","tazza","teca","tecnico","telefono","temerario","tempo","temuto","tendone","tenero","tensione","tentacolo","teorema","terme","terrazzo","terzetto","tesi","tesserato","testato","tetro","tettoia","tifare","tigella","timbro","tinto","tipico","tipografo","tiraggio","tiro","titanio","titolo","titubante","tizio","tizzone","toccare","tollerare","tolto","tombola","tomo","tonfo","tonsilla","topazio","topologia","toppa","torba","tornare","torrone","tortora","toscano","tossire","tostatura","totano","trabocco","trachea","trafila","tragedia","tralcio","tramonto","transito","trapano","trarre","trasloco","trattato","trave","treccia","tremolio","trespolo","tributo","tricheco","trifoglio","trillo","trincea","trio","tristezza","triturato","trivella","tromba","trono","troppo","trottola","trovare","truccato","tubatura","tuffato","tulipano","tumulto","tunisia","turbare","turchino","tuta","tutela","ubicato","uccello","uccisore","udire","uditivo","uffa","ufficio","uguale","ulisse","ultimato","umano","umile","umorismo","uncinetto","ungere","ungherese","unicorno","unificato","unisono","unitario","unte","uovo","upupa","uragano","urgenza","urlo","usanza","usato","uscito","usignolo","usuraio","utensile","utilizzo","utopia","vacante","vaccinato","vagabondo","vagliato","valanga","valgo","valico","valletta","valoroso","valutare","valvola","vampata","vangare","vanitoso","vano","vantaggio","vanvera","vapore","varano","varcato","variante","vasca","vedetta","vedova","veduto","vegetale","veicolo","velcro","velina","velluto","veloce","venato","vendemmia","vento","verace","verbale","vergogna","verifica","vero","verruca","verticale","vescica","vessillo","vestale","veterano","vetrina","vetusto","viandante","vibrante","vicenda","vichingo","vicinanza","vidimare","vigilia","vigneto","vigore","vile","villano","vimini","vincitore","viola","vipera","virgola","virologo","virulento","viscoso","visione","vispo","vissuto","visura","vita","vitello","vittima","vivanda","vivido","viziare","voce","voga","volatile","volere","volpe","voragine","vulcano","zampogna","zanna","zappato","zattera","zavorra","zefiro","zelante","zelo","zenzero","zerbino","zibetto","zinco","zircone","zitto","zolla","zotico","zucchero","zufolo","zulu","zuppa"]},function(e,t,i){"use strict";e.exports=["あいこくしん","あいさつ","あいだ","あおぞら","あかちゃん","あきる","あけがた","あける","あこがれる","あさい","あさひ","あしあと","あじわう","あずかる","あずき","あそぶ","あたえる","あたためる","あたりまえ","あたる","あつい","あつかう","あっしゅく","あつまり","あつめる","あてな","あてはまる","あひる","あぶら","あぶる","あふれる","あまい","あまど","あまやかす","あまり","あみもの","あめりか","あやまる","あゆむ","あらいぐま","あらし","あらすじ","あらためる","あらゆる","あらわす","ありがとう","あわせる","あわてる","あんい","あんがい","あんこ","あんぜん","あんてい","あんない","あんまり","いいだす","いおん","いがい","いがく","いきおい","いきなり","いきもの","いきる","いくじ","いくぶん","いけばな","いけん","いこう","いこく","いこつ","いさましい","いさん","いしき","いじゅう","いじょう","いじわる","いずみ","いずれ","いせい","いせえび","いせかい","いせき","いぜん","いそうろう","いそがしい","いだい","いだく","いたずら","いたみ","いたりあ","いちおう","いちじ","いちど","いちば","いちぶ","いちりゅう","いつか","いっしゅん","いっせい","いっそう","いったん","いっち","いってい","いっぽう","いてざ","いてん","いどう","いとこ","いない","いなか","いねむり","いのち","いのる","いはつ","いばる","いはん","いびき","いひん","いふく","いへん","いほう","いみん","いもうと","いもたれ","いもり","いやがる","いやす","いよかん","いよく","いらい","いらすと","いりぐち","いりょう","いれい","いれもの","いれる","いろえんぴつ","いわい","いわう","いわかん","いわば","いわゆる","いんげんまめ","いんさつ","いんしょう","いんよう","うえき","うえる","うおざ","うがい","うかぶ","うかべる","うきわ","うくらいな","うくれれ","うけたまわる","うけつけ","うけとる","うけもつ","うける","うごかす","うごく","うこん","うさぎ","うしなう","うしろがみ","うすい","うすぎ","うすぐらい","うすめる","うせつ","うちあわせ","うちがわ","うちき","うちゅう","うっかり","うつくしい","うったえる","うつる","うどん","うなぎ","うなじ","うなずく","うなる","うねる","うのう","うぶげ","うぶごえ","うまれる","うめる","うもう","うやまう","うよく","うらがえす","うらぐち","うらない","うりあげ","うりきれ","うるさい","うれしい","うれゆき","うれる","うろこ","うわき","うわさ","うんこう","うんちん","うんてん","うんどう","えいえん","えいが","えいきょう","えいご","えいせい","えいぶん","えいよう","えいわ","えおり","えがお","えがく","えきたい","えくせる","えしゃく","えすて","えつらん","えのぐ","えほうまき","えほん","えまき","えもじ","えもの","えらい","えらぶ","えりあ","えんえん","えんかい","えんぎ","えんげき","えんしゅう","えんぜつ","えんそく","えんちょう","えんとつ","おいかける","おいこす","おいしい","おいつく","おうえん","おうさま","おうじ","おうせつ","おうたい","おうふく","おうべい","おうよう","おえる","おおい","おおう","おおどおり","おおや","おおよそ","おかえり","おかず","おがむ","おかわり","おぎなう","おきる","おくさま","おくじょう","おくりがな","おくる","おくれる","おこす","おこなう","おこる","おさえる","おさない","おさめる","おしいれ","おしえる","おじぎ","おじさん","おしゃれ","おそらく","おそわる","おたがい","おたく","おだやか","おちつく","おっと","おつり","おでかけ","おとしもの","おとなしい","おどり","おどろかす","おばさん","おまいり","おめでとう","おもいで","おもう","おもたい","おもちゃ","おやつ","おやゆび","およぼす","おらんだ","おろす","おんがく","おんけい","おんしゃ","おんせん","おんだん","おんちゅう","おんどけい","かあつ","かいが","がいき","がいけん","がいこう","かいさつ","かいしゃ","かいすいよく","かいぜん","かいぞうど","かいつう","かいてん","かいとう","かいふく","がいへき","かいほう","かいよう","がいらい","かいわ","かえる","かおり","かかえる","かがく","かがし","かがみ","かくご","かくとく","かざる","がぞう","かたい","かたち","がちょう","がっきゅう","がっこう","がっさん","がっしょう","かなざわし","かのう","がはく","かぶか","かほう","かほご","かまう","かまぼこ","かめれおん","かゆい","かようび","からい","かるい","かろう","かわく","かわら","がんか","かんけい","かんこう","かんしゃ","かんそう","かんたん","かんち","がんばる","きあい","きあつ","きいろ","ぎいん","きうい","きうん","きえる","きおう","きおく","きおち","きおん","きかい","きかく","きかんしゃ","ききて","きくばり","きくらげ","きけんせい","きこう","きこえる","きこく","きさい","きさく","きさま","きさらぎ","ぎじかがく","ぎしき","ぎじたいけん","ぎじにってい","ぎじゅつしゃ","きすう","きせい","きせき","きせつ","きそう","きぞく","きぞん","きたえる","きちょう","きつえん","ぎっちり","きつつき","きつね","きてい","きどう","きどく","きない","きなが","きなこ","きぬごし","きねん","きのう","きのした","きはく","きびしい","きひん","きふく","きぶん","きぼう","きほん","きまる","きみつ","きむずかしい","きめる","きもだめし","きもち","きもの","きゃく","きやく","ぎゅうにく","きよう","きょうりゅう","きらい","きらく","きりん","きれい","きれつ","きろく","ぎろん","きわめる","ぎんいろ","きんかくじ","きんじょ","きんようび","ぐあい","くいず","くうかん","くうき","くうぐん","くうこう","ぐうせい","くうそう","ぐうたら","くうふく","くうぼ","くかん","くきょう","くげん","ぐこう","くさい","くさき","くさばな","くさる","くしゃみ","くしょう","くすのき","くすりゆび","くせげ","くせん","ぐたいてき","くださる","くたびれる","くちこみ","くちさき","くつした","ぐっすり","くつろぐ","くとうてん","くどく","くなん","くねくね","くのう","くふう","くみあわせ","くみたてる","くめる","くやくしょ","くらす","くらべる","くるま","くれる","くろう","くわしい","ぐんかん","ぐんしょく","ぐんたい","ぐんて","けあな","けいかく","けいけん","けいこ","けいさつ","げいじゅつ","けいたい","げいのうじん","けいれき","けいろ","けおとす","けおりもの","げきか","げきげん","げきだん","げきちん","げきとつ","げきは","げきやく","げこう","げこくじょう","げざい","けさき","げざん","けしき","けしごむ","けしょう","げすと","けたば","けちゃっぷ","けちらす","けつあつ","けつい","けつえき","けっこん","けつじょ","けっせき","けってい","けつまつ","げつようび","げつれい","けつろん","げどく","けとばす","けとる","けなげ","けなす","けなみ","けぬき","げねつ","けねん","けはい","げひん","けぶかい","げぼく","けまり","けみかる","けむし","けむり","けもの","けらい","けろけろ","けわしい","けんい","けんえつ","けんお","けんか","げんき","けんげん","けんこう","けんさく","けんしゅう","けんすう","げんそう","けんちく","けんてい","けんとう","けんない","けんにん","げんぶつ","けんま","けんみん","けんめい","けんらん","けんり","こあくま","こいぬ","こいびと","ごうい","こうえん","こうおん","こうかん","ごうきゅう","ごうけい","こうこう","こうさい","こうじ","こうすい","ごうせい","こうそく","こうたい","こうちゃ","こうつう","こうてい","こうどう","こうない","こうはい","ごうほう","ごうまん","こうもく","こうりつ","こえる","こおり","ごかい","ごがつ","ごかん","こくご","こくさい","こくとう","こくない","こくはく","こぐま","こけい","こける","ここのか","こころ","こさめ","こしつ","こすう","こせい","こせき","こぜん","こそだて","こたい","こたえる","こたつ","こちょう","こっか","こつこつ","こつばん","こつぶ","こてい","こてん","ことがら","ことし","ことば","ことり","こなごな","こねこね","このまま","このみ","このよ","ごはん","こひつじ","こふう","こふん","こぼれる","ごまあぶら","こまかい","ごますり","こまつな","こまる","こむぎこ","こもじ","こもち","こもの","こもん","こやく","こやま","こゆう","こゆび","こよい","こよう","こりる","これくしょん","ころっけ","こわもて","こわれる","こんいん","こんかい","こんき","こんしゅう","こんすい","こんだて","こんとん","こんなん","こんびに","こんぽん","こんまけ","こんや","こんれい","こんわく","ざいえき","さいかい","さいきん","ざいげん","ざいこ","さいしょ","さいせい","ざいたく","ざいちゅう","さいてき","ざいりょう","さうな","さかいし","さがす","さかな","さかみち","さがる","さぎょう","さくし","さくひん","さくら","さこく","さこつ","さずかる","ざせき","さたん","さつえい","ざつおん","ざっか","ざつがく","さっきょく","ざっし","さつじん","ざっそう","さつたば","さつまいも","さてい","さといも","さとう","さとおや","さとし","さとる","さのう","さばく","さびしい","さべつ","さほう","さほど","さます","さみしい","さみだれ","さむけ","さめる","さやえんどう","さゆう","さよう","さよく","さらだ","ざるそば","さわやか","さわる","さんいん","さんか","さんきゃく","さんこう","さんさい","ざんしょ","さんすう","さんせい","さんそ","さんち","さんま","さんみ","さんらん","しあい","しあげ","しあさって","しあわせ","しいく","しいん","しうち","しえい","しおけ","しかい","しかく","じかん","しごと","しすう","じだい","したうけ","したぎ","したて","したみ","しちょう","しちりん","しっかり","しつじ","しつもん","してい","してき","してつ","じてん","じどう","しなぎれ","しなもの","しなん","しねま","しねん","しのぐ","しのぶ","しはい","しばかり","しはつ","しはらい","しはん","しひょう","しふく","じぶん","しへい","しほう","しほん","しまう","しまる","しみん","しむける","じむしょ","しめい","しめる","しもん","しゃいん","しゃうん","しゃおん","じゃがいも","しやくしょ","しゃくほう","しゃけん","しゃこ","しゃざい","しゃしん","しゃせん","しゃそう","しゃたい","しゃちょう","しゃっきん","じゃま","しゃりん","しゃれい","じゆう","じゅうしょ","しゅくはく","じゅしん","しゅっせき","しゅみ","しゅらば","じゅんばん","しょうかい","しょくたく","しょっけん","しょどう","しょもつ","しらせる","しらべる","しんか","しんこう","じんじゃ","しんせいじ","しんちく","しんりん","すあげ","すあし","すあな","ずあん","すいえい","すいか","すいとう","ずいぶん","すいようび","すうがく","すうじつ","すうせん","すおどり","すきま","すくう","すくない","すける","すごい","すこし","ずさん","すずしい","すすむ","すすめる","すっかり","ずっしり","ずっと","すてき","すてる","すねる","すのこ","すはだ","すばらしい","ずひょう","ずぶぬれ","すぶり","すふれ","すべて","すべる","ずほう","すぼん","すまい","すめし","すもう","すやき","すらすら","するめ","すれちがう","すろっと","すわる","すんぜん","すんぽう","せあぶら","せいかつ","せいげん","せいじ","せいよう","せおう","せかいかん","せきにん","せきむ","せきゆ","せきらんうん","せけん","せこう","せすじ","せたい","せたけ","せっかく","せっきゃく","ぜっく","せっけん","せっこつ","せっさたくま","せつぞく","せつだん","せつでん","せっぱん","せつび","せつぶん","せつめい","せつりつ","せなか","せのび","せはば","せびろ","せぼね","せまい","せまる","せめる","せもたれ","せりふ","ぜんあく","せんい","せんえい","せんか","せんきょ","せんく","せんげん","ぜんご","せんさい","せんしゅ","せんすい","せんせい","せんぞ","せんたく","せんちょう","せんてい","せんとう","せんぬき","せんねん","せんぱい","ぜんぶ","ぜんぽう","せんむ","せんめんじょ","せんもん","せんやく","せんゆう","せんよう","ぜんら","ぜんりゃく","せんれい","せんろ","そあく","そいとげる","そいね","そうがんきょう","そうき","そうご","そうしん","そうだん","そうなん","そうび","そうめん","そうり","そえもの","そえん","そがい","そげき","そこう","そこそこ","そざい","そしな","そせい","そせん","そそぐ","そだてる","そつう","そつえん","そっかん","そつぎょう","そっけつ","そっこう","そっせん","そっと","そとがわ","そとづら","そなえる","そなた","そふぼ","そぼく","そぼろ","そまつ","そまる","そむく","そむりえ","そめる","そもそも","そよかぜ","そらまめ","そろう","そんかい","そんけい","そんざい","そんしつ","そんぞく","そんちょう","ぞんび","ぞんぶん","そんみん","たあい","たいいん","たいうん","たいえき","たいおう","だいがく","たいき","たいぐう","たいけん","たいこ","たいざい","だいじょうぶ","だいすき","たいせつ","たいそう","だいたい","たいちょう","たいてい","だいどころ","たいない","たいねつ","たいのう","たいはん","だいひょう","たいふう","たいへん","たいほ","たいまつばな","たいみんぐ","たいむ","たいめん","たいやき","たいよう","たいら","たいりょく","たいる","たいわん","たうえ","たえる","たおす","たおる","たおれる","たかい","たかね","たきび","たくさん","たこく","たこやき","たさい","たしざん","だじゃれ","たすける","たずさわる","たそがれ","たたかう","たたく","ただしい","たたみ","たちばな","だっかい","だっきゃく","だっこ","だっしゅつ","だったい","たてる","たとえる","たなばた","たにん","たぬき","たのしみ","たはつ","たぶん","たべる","たぼう","たまご","たまる","だむる","ためいき","ためす","ためる","たもつ","たやすい","たよる","たらす","たりきほんがん","たりょう","たりる","たると","たれる","たれんと","たろっと","たわむれる","だんあつ","たんい","たんおん","たんか","たんき","たんけん","たんご","たんさん","たんじょうび","だんせい","たんそく","たんたい","だんち","たんてい","たんとう","だんな","たんにん","だんねつ","たんのう","たんぴん","だんぼう","たんまつ","たんめい","だんれつ","だんろ","だんわ","ちあい","ちあん","ちいき","ちいさい","ちえん","ちかい","ちから","ちきゅう","ちきん","ちけいず","ちけん","ちこく","ちさい","ちしき","ちしりょう","ちせい","ちそう","ちたい","ちたん","ちちおや","ちつじょ","ちてき","ちてん","ちぬき","ちぬり","ちのう","ちひょう","ちへいせん","ちほう","ちまた","ちみつ","ちみどろ","ちめいど","ちゃんこなべ","ちゅうい","ちゆりょく","ちょうし","ちょさくけん","ちらし","ちらみ","ちりがみ","ちりょう","ちるど","ちわわ","ちんたい","ちんもく","ついか","ついたち","つうか","つうじょう","つうはん","つうわ","つかう","つかれる","つくね","つくる","つけね","つける","つごう","つたえる","つづく","つつじ","つつむ","つとめる","つながる","つなみ","つねづね","つのる","つぶす","つまらない","つまる","つみき","つめたい","つもり","つもる","つよい","つるぼ","つるみく","つわもの","つわり","てあし","てあて","てあみ","ていおん","ていか","ていき","ていけい","ていこく","ていさつ","ていし","ていせい","ていたい","ていど","ていねい","ていひょう","ていへん","ていぼう","てうち","ておくれ","てきとう","てくび","でこぼこ","てさぎょう","てさげ","てすり","てそう","てちがい","てちょう","てつがく","てつづき","でっぱ","てつぼう","てつや","でぬかえ","てぬき","てぬぐい","てのひら","てはい","てぶくろ","てふだ","てほどき","てほん","てまえ","てまきずし","てみじか","てみやげ","てらす","てれび","てわけ","てわたし","でんあつ","てんいん","てんかい","てんき","てんぐ","てんけん","てんごく","てんさい","てんし","てんすう","でんち","てんてき","てんとう","てんない","てんぷら","てんぼうだい","てんめつ","てんらんかい","でんりょく","でんわ","どあい","といれ","どうかん","とうきゅう","どうぐ","とうし","とうむぎ","とおい","とおか","とおく","とおす","とおる","とかい","とかす","ときおり","ときどき","とくい","とくしゅう","とくてん","とくに","とくべつ","とけい","とける","とこや","とさか","としょかん","とそう","とたん","とちゅう","とっきゅう","とっくん","とつぜん","とつにゅう","とどける","ととのえる","とない","となえる","となり","とのさま","とばす","どぶがわ","とほう","とまる","とめる","ともだち","ともる","どようび","とらえる","とんかつ","どんぶり","ないかく","ないこう","ないしょ","ないす","ないせん","ないそう","なおす","ながい","なくす","なげる","なこうど","なさけ","なたでここ","なっとう","なつやすみ","ななおし","なにごと","なにもの","なにわ","なのか","なふだ","なまいき","なまえ","なまみ","なみだ","なめらか","なめる","なやむ","ならう","ならび","ならぶ","なれる","なわとび","なわばり","にあう","にいがた","にうけ","におい","にかい","にがて","にきび","にくしみ","にくまん","にげる","にさんかたんそ","にしき","にせもの","にちじょう","にちようび","にっか","にっき","にっけい","にっこう","にっさん","にっしょく","にっすう","にっせき","にってい","になう","にほん","にまめ","にもつ","にやり","にゅういん","にりんしゃ","にわとり","にんい","にんか","にんき","にんげん","にんしき","にんずう","にんそう","にんたい","にんち","にんてい","にんにく","にんぷ","にんまり","にんむ","にんめい","にんよう","ぬいくぎ","ぬかす","ぬぐいとる","ぬぐう","ぬくもり","ぬすむ","ぬまえび","ぬめり","ぬらす","ぬんちゃく","ねあげ","ねいき","ねいる","ねいろ","ねぐせ","ねくたい","ねくら","ねこぜ","ねこむ","ねさげ","ねすごす","ねそべる","ねだん","ねつい","ねっしん","ねつぞう","ねったいぎょ","ねぶそく","ねふだ","ねぼう","ねほりはほり","ねまき","ねまわし","ねみみ","ねむい","ねむたい","ねもと","ねらう","ねわざ","ねんいり","ねんおし","ねんかん","ねんきん","ねんぐ","ねんざ","ねんし","ねんちゃく","ねんど","ねんぴ","ねんぶつ","ねんまつ","ねんりょう","ねんれい","のいず","のおづま","のがす","のきなみ","のこぎり","のこす","のこる","のせる","のぞく","のぞむ","のたまう","のちほど","のっく","のばす","のはら","のべる","のぼる","のみもの","のやま","のらいぬ","のらねこ","のりもの","のりゆき","のれん","のんき","ばあい","はあく","ばあさん","ばいか","ばいく","はいけん","はいご","はいしん","はいすい","はいせん","はいそう","はいち","ばいばい","はいれつ","はえる","はおる","はかい","ばかり","はかる","はくしゅ","はけん","はこぶ","はさみ","はさん","はしご","ばしょ","はしる","はせる","ぱそこん","はそん","はたん","はちみつ","はつおん","はっかく","はづき","はっきり","はっくつ","はっけん","はっこう","はっさん","はっしん","はったつ","はっちゅう","はってん","はっぴょう","はっぽう","はなす","はなび","はにかむ","はぶらし","はみがき","はむかう","はめつ","はやい","はやし","はらう","はろうぃん","はわい","はんい","はんえい","はんおん","はんかく","はんきょう","ばんぐみ","はんこ","はんしゃ","はんすう","はんだん","ぱんち","ぱんつ","はんてい","はんとし","はんのう","はんぱ","はんぶん","はんぺん","はんぼうき","はんめい","はんらん","はんろん","ひいき","ひうん","ひえる","ひかく","ひかり","ひかる","ひかん","ひくい","ひけつ","ひこうき","ひこく","ひさい","ひさしぶり","ひさん","びじゅつかん","ひしょ","ひそか","ひそむ","ひたむき","ひだり","ひたる","ひつぎ","ひっこし","ひっし","ひつじゅひん","ひっす","ひつぜん","ぴったり","ぴっちり","ひつよう","ひてい","ひとごみ","ひなまつり","ひなん","ひねる","ひはん","ひびく","ひひょう","ひほう","ひまわり","ひまん","ひみつ","ひめい","ひめじし","ひやけ","ひやす","ひよう","びょうき","ひらがな","ひらく","ひりつ","ひりょう","ひるま","ひるやすみ","ひれい","ひろい","ひろう","ひろき","ひろゆき","ひんかく","ひんけつ","ひんこん","ひんしゅ","ひんそう","ぴんち","ひんぱん","びんぼう","ふあん","ふいうち","ふうけい","ふうせん","ぷうたろう","ふうとう","ふうふ","ふえる","ふおん","ふかい","ふきん","ふくざつ","ふくぶくろ","ふこう","ふさい","ふしぎ","ふじみ","ふすま","ふせい","ふせぐ","ふそく","ぶたにく","ふたん","ふちょう","ふつう","ふつか","ふっかつ","ふっき","ふっこく","ぶどう","ふとる","ふとん","ふのう","ふはい","ふひょう","ふへん","ふまん","ふみん","ふめつ","ふめん","ふよう","ふりこ","ふりる","ふるい","ふんいき","ぶんがく","ぶんぐ","ふんしつ","ぶんせき","ふんそう","ぶんぽう","へいあん","へいおん","へいがい","へいき","へいげん","へいこう","へいさ","へいしゃ","へいせつ","へいそ","へいたく","へいてん","へいねつ","へいわ","へきが","へこむ","べにいろ","べにしょうが","へらす","へんかん","べんきょう","べんごし","へんさい","へんたい","べんり","ほあん","ほいく","ぼうぎょ","ほうこく","ほうそう","ほうほう","ほうもん","ほうりつ","ほえる","ほおん","ほかん","ほきょう","ぼきん","ほくろ","ほけつ","ほけん","ほこう","ほこる","ほしい","ほしつ","ほしゅ","ほしょう","ほせい","ほそい","ほそく","ほたて","ほたる","ぽちぶくろ","ほっきょく","ほっさ","ほったん","ほとんど","ほめる","ほんい","ほんき","ほんけ","ほんしつ","ほんやく","まいにち","まかい","まかせる","まがる","まける","まこと","まさつ","まじめ","ますく","まぜる","まつり","まとめ","まなぶ","まぬけ","まねく","まほう","まもる","まゆげ","まよう","まろやか","まわす","まわり","まわる","まんが","まんきつ","まんぞく","まんなか","みいら","みうち","みえる","みがく","みかた","みかん","みけん","みこん","みじかい","みすい","みすえる","みせる","みっか","みつかる","みつける","みてい","みとめる","みなと","みなみかさい","みねらる","みのう","みのがす","みほん","みもと","みやげ","みらい","みりょく","みわく","みんか","みんぞく","むいか","むえき","むえん","むかい","むかう","むかえ","むかし","むぎちゃ","むける","むげん","むさぼる","むしあつい","むしば","むじゅん","むしろ","むすう","むすこ","むすぶ","むすめ","むせる","むせん","むちゅう","むなしい","むのう","むやみ","むよう","むらさき","むりょう","むろん","めいあん","めいうん","めいえん","めいかく","めいきょく","めいさい","めいし","めいそう","めいぶつ","めいれい","めいわく","めぐまれる","めざす","めした","めずらしい","めだつ","めまい","めやす","めんきょ","めんせき","めんどう","もうしあげる","もうどうけん","もえる","もくし","もくてき","もくようび","もちろん","もどる","もらう","もんく","もんだい","やおや","やける","やさい","やさしい","やすい","やすたろう","やすみ","やせる","やそう","やたい","やちん","やっと","やっぱり","やぶる","やめる","ややこしい","やよい","やわらかい","ゆうき","ゆうびんきょく","ゆうべ","ゆうめい","ゆけつ","ゆしゅつ","ゆせん","ゆそう","ゆたか","ゆちゃく","ゆでる","ゆにゅう","ゆびわ","ゆらい","ゆれる","ようい","ようか","ようきゅう","ようじ","ようす","ようちえん","よかぜ","よかん","よきん","よくせい","よくぼう","よけい","よごれる","よさん","よしゅう","よそう","よそく","よっか","よてい","よどがわく","よねつ","よやく","よゆう","よろこぶ","よろしい","らいう","らくがき","らくご","らくさつ","らくだ","らしんばん","らせん","らぞく","らたい","らっか","られつ","りえき","りかい","りきさく","りきせつ","りくぐん","りくつ","りけん","りこう","りせい","りそう","りそく","りてん","りねん","りゆう","りゅうがく","りよう","りょうり","りょかん","りょくちゃ","りょこう","りりく","りれき","りろん","りんご","るいけい","るいさい","るいじ","るいせき","るすばん","るりがわら","れいかん","れいぎ","れいせい","れいぞうこ","れいとう","れいぼう","れきし","れきだい","れんあい","れんけい","れんこん","れんさい","れんしゅう","れんぞく","れんらく","ろうか","ろうご","ろうじん","ろうそく","ろくが","ろこつ","ろじうら","ろしゅつ","ろせん","ろてん","ろめん","ろれつ","ろんぎ","ろんぱ","ろんぶん","ろんり","わかす","わかめ","わかやま","わかれる","わしつ","わじまし","わすれもの","わらう","われる"]},function(e,t,i){"use strict";e.exports=["ábaco","abdomen","abeja","abierto","abogado","abono","aborto","abrazo","abrir","abuelo","abuso","acabar","academia","acceso","acción","aceite","acelga","acento","aceptar","ácido","aclarar","acné","acoger","acoso","activo","acto","actriz","actuar","acudir","acuerdo","acusar","adicto","admitir","adoptar","adorno","aduana","adulto","aéreo","afectar","afición","afinar","afirmar","ágil","agitar","agonía","agosto","agotar","agregar","agrio","agua","agudo","águila","aguja","ahogo","ahorro","aire","aislar","ajedrez","ajeno","ajuste","alacrán","alambre","alarma","alba","álbum","alcalde","aldea","alegre","alejar","alerta","aleta","alfiler","alga","algodón","aliado","aliento","alivio","alma","almeja","almíbar","altar","alteza","altivo","alto","altura","alumno","alzar","amable","amante","amapola","amargo","amasar","ámbar","ámbito","ameno","amigo","amistad","amor","amparo","amplio","ancho","anciano","ancla","andar","andén","anemia","ángulo","anillo","ánimo","anís","anotar","antena","antiguo","antojo","anual","anular","anuncio","añadir","añejo","año","apagar","aparato","apetito","apio","aplicar","apodo","aporte","apoyo","aprender","aprobar","apuesta","apuro","arado","araña","arar","árbitro","árbol","arbusto","archivo","arco","arder","ardilla","arduo","área","árido","aries","armonía","arnés","aroma","arpa","arpón","arreglo","arroz","arruga","arte","artista","asa","asado","asalto","ascenso","asegurar","aseo","asesor","asiento","asilo","asistir","asno","asombro","áspero","astilla","astro","astuto","asumir","asunto","atajo","ataque","atar","atento","ateo","ático","atleta","átomo","atraer","atroz","atún","audaz","audio","auge","aula","aumento","ausente","autor","aval","avance","avaro","ave","avellana","avena","avestruz","avión","aviso","ayer","ayuda","ayuno","azafrán","azar","azote","azúcar","azufre","azul","baba","babor","bache","bahía","baile","bajar","balanza","balcón","balde","bambú","banco","banda","baño","barba","barco","barniz","barro","báscula","bastón","basura","batalla","batería","batir","batuta","baúl","bazar","bebé","bebida","bello","besar","beso","bestia","bicho","bien","bingo","blanco","bloque","blusa","boa","bobina","bobo","boca","bocina","boda","bodega","boina","bola","bolero","bolsa","bomba","bondad","bonito","bono","bonsái","borde","borrar","bosque","bote","botín","bóveda","bozal","bravo","brazo","brecha","breve","brillo","brinco","brisa","broca","broma","bronce","brote","bruja","brusco","bruto","buceo","bucle","bueno","buey","bufanda","bufón","búho","buitre","bulto","burbuja","burla","burro","buscar","butaca","buzón","caballo","cabeza","cabina","cabra","cacao","cadáver","cadena","caer","café","caída","caimán","caja","cajón","cal","calamar","calcio","caldo","calidad","calle","calma","calor","calvo","cama","cambio","camello","camino","campo","cáncer","candil","canela","canguro","canica","canto","caña","cañón","caoba","caos","capaz","capitán","capote","captar","capucha","cara","carbón","cárcel","careta","carga","cariño","carne","carpeta","carro","carta","casa","casco","casero","caspa","castor","catorce","catre","caudal","causa","cazo","cebolla","ceder","cedro","celda","célebre","celoso","célula","cemento","ceniza","centro","cerca","cerdo","cereza","cero","cerrar","certeza","césped","cetro","chacal","chaleco","champú","chancla","chapa","charla","chico","chiste","chivo","choque","choza","chuleta","chupar","ciclón","ciego","cielo","cien","cierto","cifra","cigarro","cima","cinco","cine","cinta","ciprés","circo","ciruela","cisne","cita","ciudad","clamor","clan","claro","clase","clave","cliente","clima","clínica","cobre","cocción","cochino","cocina","coco","código","codo","cofre","coger","cohete","cojín","cojo","cola","colcha","colegio","colgar","colina","collar","colmo","columna","combate","comer","comida","cómodo","compra","conde","conejo","conga","conocer","consejo","contar","copa","copia","corazón","corbata","corcho","cordón","corona","correr","coser","cosmos","costa","cráneo","cráter","crear","crecer","creído","crema","cría","crimen","cripta","crisis","cromo","crónica","croqueta","crudo","cruz","cuadro","cuarto","cuatro","cubo","cubrir","cuchara","cuello","cuento","cuerda","cuesta","cueva","cuidar","culebra","culpa","culto","cumbre","cumplir","cuna","cuneta","cuota","cupón","cúpula","curar","curioso","curso","curva","cutis","dama","danza","dar","dardo","dátil","deber","débil","década","decir","dedo","defensa","definir","dejar","delfín","delgado","delito","demora","denso","dental","deporte","derecho","derrota","desayuno","deseo","desfile","desnudo","destino","desvío","detalle","detener","deuda","día","diablo","diadema","diamante","diana","diario","dibujo","dictar","diente","dieta","diez","difícil","digno","dilema","diluir","dinero","directo","dirigir","disco","diseño","disfraz","diva","divino","doble","doce","dolor","domingo","don","donar","dorado","dormir","dorso","dos","dosis","dragón","droga","ducha","duda","duelo","dueño","dulce","dúo","duque","durar","dureza","duro","ébano","ebrio","echar","eco","ecuador","edad","edición","edificio","editor","educar","efecto","eficaz","eje","ejemplo","elefante","elegir","elemento","elevar","elipse","élite","elixir","elogio","eludir","embudo","emitir","emoción","empate","empeño","empleo","empresa","enano","encargo","enchufe","encía","enemigo","enero","enfado","enfermo","engaño","enigma","enlace","enorme","enredo","ensayo","enseñar","entero","entrar","envase","envío","época","equipo","erizo","escala","escena","escolar","escribir","escudo","esencia","esfera","esfuerzo","espada","espejo","espía","esposa","espuma","esquí","estar","este","estilo","estufa","etapa","eterno","ética","etnia","evadir","evaluar","evento","evitar","exacto","examen","exceso","excusa","exento","exigir","exilio","existir","éxito","experto","explicar","exponer","extremo","fábrica","fábula","fachada","fácil","factor","faena","faja","falda","fallo","falso","faltar","fama","familia","famoso","faraón","farmacia","farol","farsa","fase","fatiga","fauna","favor","fax","febrero","fecha","feliz","feo","feria","feroz","fértil","fervor","festín","fiable","fianza","fiar","fibra","ficción","ficha","fideo","fiebre","fiel","fiera","fiesta","figura","fijar","fijo","fila","filete","filial","filtro","fin","finca","fingir","finito","firma","flaco","flauta","flecha","flor","flota","fluir","flujo","flúor","fobia","foca","fogata","fogón","folio","folleto","fondo","forma","forro","fortuna","forzar","fosa","foto","fracaso","frágil","franja","frase","fraude","freír","freno","fresa","frío","frito","fruta","fuego","fuente","fuerza","fuga","fumar","función","funda","furgón","furia","fusil","fútbol","futuro","gacela","gafas","gaita","gajo","gala","galería","gallo","gamba","ganar","gancho","ganga","ganso","garaje","garza","gasolina","gastar","gato","gavilán","gemelo","gemir","gen","género","genio","gente","geranio","gerente","germen","gesto","gigante","gimnasio","girar","giro","glaciar","globo","gloria","gol","golfo","goloso","golpe","goma","gordo","gorila","gorra","gota","goteo","gozar","grada","gráfico","grano","grasa","gratis","grave","grieta","grillo","gripe","gris","grito","grosor","grúa","grueso","grumo","grupo","guante","guapo","guardia","guerra","guía","guiño","guion","guiso","guitarra","gusano","gustar","haber","hábil","hablar","hacer","hacha","hada","hallar","hamaca","harina","haz","hazaña","hebilla","hebra","hecho","helado","helio","hembra","herir","hermano","héroe","hervir","hielo","hierro","hígado","higiene","hijo","himno","historia","hocico","hogar","hoguera","hoja","hombre","hongo","honor","honra","hora","hormiga","horno","hostil","hoyo","hueco","huelga","huerta","hueso","huevo","huida","huir","humano","húmedo","humilde","humo","hundir","huracán","hurto","icono","ideal","idioma","ídolo","iglesia","iglú","igual","ilegal","ilusión","imagen","imán","imitar","impar","imperio","imponer","impulso","incapaz","índice","inerte","infiel","informe","ingenio","inicio","inmenso","inmune","innato","insecto","instante","interés","íntimo","intuir","inútil","invierno","ira","iris","ironía","isla","islote","jabalí","jabón","jamón","jarabe","jardín","jarra","jaula","jazmín","jefe","jeringa","jinete","jornada","joroba","joven","joya","juerga","jueves","juez","jugador","jugo","juguete","juicio","junco","jungla","junio","juntar","júpiter","jurar","justo","juvenil","juzgar","kilo","koala","labio","lacio","lacra","lado","ladrón","lagarto","lágrima","laguna","laico","lamer","lámina","lámpara","lana","lancha","langosta","lanza","lápiz","largo","larva","lástima","lata","látex","latir","laurel","lavar","lazo","leal","lección","leche","lector","leer","legión","legumbre","lejano","lengua","lento","leña","león","leopardo","lesión","letal","letra","leve","leyenda","libertad","libro","licor","líder","lidiar","lienzo","liga","ligero","lima","límite","limón","limpio","lince","lindo","línea","lingote","lino","linterna","líquido","liso","lista","litera","litio","litro","llaga","llama","llanto","llave","llegar","llenar","llevar","llorar","llover","lluvia","lobo","loción","loco","locura","lógica","logro","lombriz","lomo","lonja","lote","lucha","lucir","lugar","lujo","luna","lunes","lupa","lustro","luto","luz","maceta","macho","madera","madre","maduro","maestro","mafia","magia","mago","maíz","maldad","maleta","malla","malo","mamá","mambo","mamut","manco","mando","manejar","manga","maniquí","manjar","mano","manso","manta","mañana","mapa","máquina","mar","marco","marea","marfil","margen","marido","mármol","marrón","martes","marzo","masa","máscara","masivo","matar","materia","matiz","matriz","máximo","mayor","mazorca","mecha","medalla","medio","médula","mejilla","mejor","melena","melón","memoria","menor","mensaje","mente","menú","mercado","merengue","mérito","mes","mesón","meta","meter","método","metro","mezcla","miedo","miel","miembro","miga","mil","milagro","militar","millón","mimo","mina","minero","mínimo","minuto","miope","mirar","misa","miseria","misil","mismo","mitad","mito","mochila","moción","moda","modelo","moho","mojar","molde","moler","molino","momento","momia","monarca","moneda","monja","monto","moño","morada","morder","moreno","morir","morro","morsa","mortal","mosca","mostrar","motivo","mover","móvil","mozo","mucho","mudar","mueble","muela","muerte","muestra","mugre","mujer","mula","muleta","multa","mundo","muñeca","mural","muro","músculo","museo","musgo","música","muslo","nácar","nación","nadar","naipe","naranja","nariz","narrar","nasal","natal","nativo","natural","náusea","naval","nave","navidad","necio","néctar","negar","negocio","negro","neón","nervio","neto","neutro","nevar","nevera","nicho","nido","niebla","nieto","niñez","niño","nítido","nivel","nobleza","noche","nómina","noria","norma","norte","nota","noticia","novato","novela","novio","nube","nuca","núcleo","nudillo","nudo","nuera","nueve","nuez","nulo","número","nutria","oasis","obeso","obispo","objeto","obra","obrero","observar","obtener","obvio","oca","ocaso","océano","ochenta","ocho","ocio","ocre","octavo","octubre","oculto","ocupar","ocurrir","odiar","odio","odisea","oeste","ofensa","oferta","oficio","ofrecer","ogro","oído","oír","ojo","ola","oleada","olfato","olivo","olla","olmo","olor","olvido","ombligo","onda","onza","opaco","opción","ópera","opinar","oponer","optar","óptica","opuesto","oración","orador","oral","órbita","orca","orden","oreja","órgano","orgía","orgullo","oriente","origen","orilla","oro","orquesta","oruga","osadía","oscuro","osezno","oso","ostra","otoño","otro","oveja","óvulo","óxido","oxígeno","oyente","ozono","pacto","padre","paella","página","pago","país","pájaro","palabra","palco","paleta","pálido","palma","paloma","palpar","pan","panal","pánico","pantera","pañuelo","papá","papel","papilla","paquete","parar","parcela","pared","parir","paro","párpado","parque","párrafo","parte","pasar","paseo","pasión","paso","pasta","pata","patio","patria","pausa","pauta","pavo","payaso","peatón","pecado","pecera","pecho","pedal","pedir","pegar","peine","pelar","peldaño","pelea","peligro","pellejo","pelo","peluca","pena","pensar","peñón","peón","peor","pepino","pequeño","pera","percha","perder","pereza","perfil","perico","perla","permiso","perro","persona","pesa","pesca","pésimo","pestaña","pétalo","petróleo","pez","pezuña","picar","pichón","pie","piedra","pierna","pieza","pijama","pilar","piloto","pimienta","pino","pintor","pinza","piña","piojo","pipa","pirata","pisar","piscina","piso","pista","pitón","pizca","placa","plan","plata","playa","plaza","pleito","pleno","plomo","pluma","plural","pobre","poco","poder","podio","poema","poesía","poeta","polen","policía","pollo","polvo","pomada","pomelo","pomo","pompa","poner","porción","portal","posada","poseer","posible","poste","potencia","potro","pozo","prado","precoz","pregunta","premio","prensa","preso","previo","primo","príncipe","prisión","privar","proa","probar","proceso","producto","proeza","profesor","programa","prole","promesa","pronto","propio","próximo","prueba","público","puchero","pudor","pueblo","puerta","puesto","pulga","pulir","pulmón","pulpo","pulso","puma","punto","puñal","puño","pupa","pupila","puré","quedar","queja","quemar","querer","queso","quieto","química","quince","quitar","rábano","rabia","rabo","ración","radical","raíz","rama","rampa","rancho","rango","rapaz","rápido","rapto","rasgo","raspa","rato","rayo","raza","razón","reacción","realidad","rebaño","rebote","recaer","receta","rechazo","recoger","recreo","recto","recurso","red","redondo","reducir","reflejo","reforma","refrán","refugio","regalo","regir","regla","regreso","rehén","reino","reír","reja","relato","relevo","relieve","relleno","reloj","remar","remedio","remo","rencor","rendir","renta","reparto","repetir","reposo","reptil","res","rescate","resina","respeto","resto","resumen","retiro","retorno","retrato","reunir","revés","revista","rey","rezar","rico","riego","rienda","riesgo","rifa","rígido","rigor","rincón","riñón","río","riqueza","risa","ritmo","rito","rizo","roble","roce","rociar","rodar","rodeo","rodilla","roer","rojizo","rojo","romero","romper","ron","ronco","ronda","ropa","ropero","rosa","rosca","rostro","rotar","rubí","rubor","rudo","rueda","rugir","ruido","ruina","ruleta","rulo","rumbo","rumor","ruptura","ruta","rutina","sábado","saber","sabio","sable","sacar","sagaz","sagrado","sala","saldo","salero","salir","salmón","salón","salsa","salto","salud","salvar","samba","sanción","sandía","sanear","sangre","sanidad","sano","santo","sapo","saque","sardina","sartén","sastre","satán","sauna","saxofón","sección","seco","secreto","secta","sed","seguir","seis","sello","selva","semana","semilla","senda","sensor","señal","señor","separar","sepia","sequía","ser","serie","sermón","servir","sesenta","sesión","seta","setenta","severo","sexo","sexto","sidra","siesta","siete","siglo","signo","sílaba","silbar","silencio","silla","símbolo","simio","sirena","sistema","sitio","situar","sobre","socio","sodio","sol","solapa","soldado","soledad","sólido","soltar","solución","sombra","sondeo","sonido","sonoro","sonrisa","sopa","soplar","soporte","sordo","sorpresa","sorteo","sostén","sótano","suave","subir","suceso","sudor","suegra","suelo","sueño","suerte","sufrir","sujeto","sultán","sumar","superar","suplir","suponer","supremo","sur","surco","sureño","surgir","susto","sutil","tabaco","tabique","tabla","tabú","taco","tacto","tajo","talar","talco","talento","talla","talón","tamaño","tambor","tango","tanque","tapa","tapete","tapia","tapón","taquilla","tarde","tarea","tarifa","tarjeta","tarot","tarro","tarta","tatuaje","tauro","taza","tazón","teatro","techo","tecla","técnica","tejado","tejer","tejido","tela","teléfono","tema","temor","templo","tenaz","tender","tener","tenis","tenso","teoría","terapia","terco","término","ternura","terror","tesis","tesoro","testigo","tetera","texto","tez","tibio","tiburón","tiempo","tienda","tierra","tieso","tigre","tijera","tilde","timbre","tímido","timo","tinta","tío","típico","tipo","tira","tirón","titán","títere","título","tiza","toalla","tobillo","tocar","tocino","todo","toga","toldo","tomar","tono","tonto","topar","tope","toque","tórax","torero","tormenta","torneo","toro","torpedo","torre","torso","tortuga","tos","tosco","toser","tóxico","trabajo","tractor","traer","tráfico","trago","traje","tramo","trance","trato","trauma","trazar","trébol","tregua","treinta","tren","trepar","tres","tribu","trigo","tripa","triste","triunfo","trofeo","trompa","tronco","tropa","trote","trozo","truco","trueno","trufa","tubería","tubo","tuerto","tumba","tumor","túnel","túnica","turbina","turismo","turno","tutor","ubicar","úlcera","umbral","unidad","unir","universo","uno","untar","uña","urbano","urbe","urgente","urna","usar","usuario","útil","utopía","uva","vaca","vacío","vacuna","vagar","vago","vaina","vajilla","vale","válido","valle","valor","válvula","vampiro","vara","variar","varón","vaso","vecino","vector","vehículo","veinte","vejez","vela","velero","veloz","vena","vencer","venda","veneno","vengar","venir","venta","venus","ver","verano","verbo","verde","vereda","verja","verso","verter","vía","viaje","vibrar","vicio","víctima","vida","vídeo","vidrio","viejo","viernes","vigor","vil","villa","vinagre","vino","viñedo","violín","viral","virgo","virtud","visor","víspera","vista","vitamina","viudo","vivaz","vivero","vivir","vivo","volcán","volumen","volver","voraz","votar","voto","voz","vuelo","vulgar","yacer","yate","yegua","yema","yerno","yeso","yodo","yoga","yogur","zafiro","zanja","zapato","zarza","zona","zorro","zumo","zurdo"]},function(e,t,i){"use strict";var r=4294967296,a=2147483648,s=2147483647,n=null;e.exports=class e{constructor(e){void 0===e&&(e=(new Date).getTime()),this.mt=new Array(624),this.mti=625,this.seed(e)}seed(e){var t;for(this.mt[0]=e>>>0,this.mti=1;this.mti<624;this.mti++)t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30,this.mt[this.mti]=(1812433253*((4294901760&t)>>>16)<<16)+1812433253*(65535&t)+this.mti,this.mt[this.mti]>>>=0}seedArray(e){var t,i=1,r=0,a=e.length<624?624:e.length;for(this.seed(19650218);0<a;a--)t=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1664525*((4294901760&t)>>>16)<<16)+1664525*(65535&t))+e[r]+r,this.mt[i]>>>=0,r++,624<=++i&&(this.mt[0]=this.mt[623],i=1),r>=e.length&&(r=0);for(a=623;a;a--)t=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1566083941*((4294901760&t)>>>16)<<16)+1566083941*(65535&t))-i,this.mt[i]>>>=0,624<=++i&&(this.mt[0]=this.mt[623],i=1);this.mt[0]=2147483648}int(){var e,t,i=new Array(0,2567483615);if(624<=this.mti){for(625===this.mti&&this.seed(5489),t=0;t<227;t++)e=this.mt[t]&a|this.mt[t+1]&s,this.mt[t]=this.mt[t+397]^e>>>1^i[1&e];for(;t<623;t++)e=this.mt[t]&a|this.mt[t+1]&s,this.mt[t]=this.mt[t+-227]^e>>>1^i[1&e];e=this.mt[623]&a|this.mt[0]&s,this.mt[623]=this.mt[396]^e>>>1^i[1&e],this.mti=0}return e=this.mt[this.mti++],(e=(e=(e=(e^=e>>>11)^e<<7&2636928640)^e<<15&4022730752)^e>>>18)>>>0}randomBytes(e){var t=Buffer.alloc(e);for(let i=0;i<e;i+=4)t.writeUInt32LE(this.int(),i);return t}int31(){return this.int()>>>1}real(){return this.int()*(1/(r-1))}realx(){return(this.int()+.5)*(1/r)}random(){return this.int()*(1/r)}rndHiRes(){return 1/9007199254740992*(67108864*(this.int()>>>5)+(this.int()>>>6))}static random(){return(n=n||new e).random()}}},function(e,t,i){"use strict";
|
|
949
949
|
/*!
|
|
950
950
|
* enforce.js - type enforcement for vallnet
|
|
951
951
|
* Copyright (c) 2019-2022, Bookman Software (MIT License).
|