graffen.dk-website/kbpgp/kbpgp-2.0.8-min.js

31 lines
1,004 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.kbpgp=e()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){(function(){var C,DSA,ECDH,ECDSA,ElGamal,RSA;C=require("./const").openpgp.public_key_algorithms,RSA=require("./rsa").RSA,DSA=require("./dsa").DSA,ElGamal=require("./elgamal").ElGamal,ECDSA=require("./ecc/ecdsa").ECDSA,ECDH=require("./ecc/ecdh").ECDH,exports.get_class=function(n){switch(n){case C.RSA:case C.RSA_ENCRYPT_ONLY:case C.RSA_SIGN_ONLY:return RSA;case C.ELGAMAL:return ElGamal;case C.DSA:return DSA;case C.ECDSA:return ECDSA;case C.ECDH:return ECDH;default:throw new Error("unknown public key system: "+n)}}}).call(this)},{"./const":5,"./dsa":6,"./ecc/ecdh":9,"./ecc/ecdsa":10,"./elgamal":12,"./rsa":67}],2:[function(require,module,exports){(function(Buffer){(function(){var BaseKey,BaseKeyPair,C,K,SHA256,SHA512,SRF,bn,bufeq_secure,iced,konst,__iced_k,__iced_k_noop,_ref;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},konst=require("./const"),C=konst.openpgp,K=konst.kb,_ref=require("./hash"),SHA256=_ref.SHA256,SHA512=_ref.SHA512,bn=require("./bn"),bufeq_secure=require("pgp-utils").util.bufeq_secure,SRF=require("./rand").SRF,exports.BaseKey=BaseKey=function(){function BaseKey(){}return BaseKey.alloc=function(klass,raw,d){var err,o,orig_len,_i,_len,_ref1,_ref2;for(null==d&&(d={}),orig_len=raw.length,err=null,_ref1=klass.ORDER,_i=0,_len=_ref1.length;_len>_i;_i++)o=_ref1[_i],null==err&&(_ref2=bn.mpi_from_buffer(raw),err=_ref2[0],d[o]=_ref2[1],raw=_ref2[2]);return err?[err,null]:[null,new klass(d),orig_len-raw.length]},BaseKey.prototype.serialize=function(){var e;return Buffer.concat(function(){var _i,_len,_ref1,_results;for(_ref1=this.ORDER,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)e=_ref1[_i],_results.push(this[e].to_mpi_buffer());return _results}.call(this))},BaseKey.prototype.validity_check=function(cb){return cb(null)},BaseKey}(),exports.BaseKeyPair=BaseKeyPair=function(){function BaseKeyPair(_arg){this.priv=_arg.priv,this.pub=_arg.pub,this.pub.parent=this,null!=this.priv&&(this.priv.parent=this)}return BaseKeyPair.prototype.serialize=function(){return this.pub.serialize()},BaseKeyPair.prototype.hash=function(){return SHA256(this.serialize())},BaseKeyPair.prototype.ekid=function(){return Buffer.concat([new Buffer([K.kid.version,this.get_type()]),this.hash(),new Buffer([K.kid.trailer])])},BaseKeyPair.prototype.can_sign=function(){return null!=this.priv},BaseKeyPair.prototype.can_decrypt=function(){return null!=this.priv},BaseKeyPair.prototype.has_private=function(){return null!=this.priv},BaseKeyPair.prototype.fulfills_flags=function(){return!1},BaseKeyPair.prototype.is_toxic=function(){return!1},BaseKeyPair.prototype.nbits=function(){var _ref1;return null!=(_ref1=this.pub)?_ref1.nbits():void 0},BaseKeyPair.prototype.good_for_flags=function(){return C.key_flags.encrypt_comm|C.key_flags.encrypt_storage|C.key_flags.certify_keys|C.key_flags.sign_data},BaseKeyPair.prototype.eq=function(k2){return this.type===k2.type&&bufeq_secure(this.serialize(),k2.serialize())},BaseKeyPair.prototype.can_perform=function(ops_mask){return ops_mask&konst.ops.sign&&!this.can_sign()?!1:ops_mask&konst.ops.decrypt&&!this.can_decrypt()?!1:!0},BaseKeyPair.parse=function(klass,pub_raw){var err,key,len,_ref1;return _ref1=klass.Pub.alloc(pub_raw),err=_ref1[0],key=_ref1[1],len=_ref1[2],null!=key&&(key=new klass({pub:key})),[err,key,len]},BaseKeyPair.parse_kb=function(klass,pub_raw){var err,key,len,_ref1;return _ref1=klass.Pub.alloc_kb(pub_raw),err=_ref1[0],key=_ref1[1],len=_ref1[2],null!=key&&(key=new klass({pub:key})),[err,key,len]},BaseKeyPair.prototype.add_priv=function(priv_raw){var err,len,_ref1;return _ref1=Priv.alloc(priv_raw),err=_ref1[0],this.priv=_ref1[1],len=_ref1[2],[err,len]},BaseKeyPair.alloc=function(klass,_arg){var err,priv,pub,_ref1,_ref2;return pub=_arg.pub,priv=_arg.priv,_ref1=klass.Pub.alloc(pub),err=_ref1[0],pub=_ref1[1],null==err&&null!=priv&&(_ref2=klass.Priv.alloc(priv,pub),err=_ref2[0],priv=_ref2[1]),null!=err?[err,null]:[null,new klass({priv:priv,pub:pub})]},BaseKeyPair.prototype.read_priv=function(raw_priv){var err,_ref1;return _ref1=this.Priv.alloc(raw_priv,this.pub),err=_ref1[0],this.priv=_ref1[1],err},BaseKeyPair.prototype.find=function(i){return i.mod(this.max_value())},BaseKeyPair.prototype.hide=function(_arg,cb){var L,err,i,max,n,r,r_bits,ret,slosh,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),i=_arg.i,max=_arg.max,slosh=_arg.slosh,ret=err=null,n=this.max_value(),function(){return function(__iced_k){return(L=n.bitLength())>max?__iced_k(err=new Error("Can't hide > "+max+" bits; got "+L)):(r_bits=max-L+slosh,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/basekeypair.iced",funcname:"BaseKeyPair.hide"}),SRF().random_nbit(r_bits,__iced_deferrals.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:127})),__iced_deferrals._fulfill()}(function(){return __iced_k(ret=r.multiply(n).add(i))}))}}(this)(function(){return function(){return cb(err,ret)}}(this))},BaseKeyPair.prototype.validity_check=function(cb){return this.pub.validity_check(cb)},BaseKeyPair}()}).call(this)}).call(this,require("buffer").Buffer)},{"./bn":4,"./const":5,"./hash":14,"./rand":65,buffer:80,"iced-runtime":118,"pgp-utils":163}],3:[function(require,module,exports){(function(Buffer){(function(){var BaseX,BigInteger,base32,base58,buffer_to_ui8a,nbi,nbs,nbv,_ref;_ref=require("bn"),nbv=_ref.nbv,nbi=_ref.nbi,BigInteger=_ref.BigInteger,nbs=require("./bn").nbs,buffer_to_ui8a=require("./util").buffer_to_ui8a,BaseX=function(){function BaseX(alphabet){var a,i,_i,_len,_ref1;for(this.alphabet=alphabet,this.base=this.alphabet.length,this.basebn=nbv(this.base),this.lookup={},_ref1=this.alphabet,i=_i=0,_len=_ref1.length;_len>_i;i=++_i)a=_ref1[i],this.lookup[a]=i}return BaseX.prototype.encode=function(buffer){var c,chars,num,pad,q,r,_i,_len;for(num=nbi().fromBuffer(buffer),chars=function(){var _ref1,_results;for(_results=[];num.compareTo(BigInteger.ZERO)>0;)_ref1=num.divideAndRemainder(this.basebn),q=_ref1[0],r=_ref1[1],c=this.alphabet[r.intValue()],num=q,_results.push(c);return _results}.call(this),chars.reverse(),pad=[],_i=0,_len=buffer.length;_len>_i&&(c=buffer[_i],0===c);_i++)pad.push(this.alphabet[0]);return pad.concat(chars).join("")},BaseX.prototype.decode=function(str){var base,c,char_index,i,num,pad,start,_i,_j,_len,_ref1;for(num=BigInteger.ZERO,base=BigInteger.ONE,i=0,i=_i=0,_len=str.length;_len>_i&&(c=str[i],c===this.alphabet[0]);i=++_i);for(start=i,pad=new Buffer(function(){var _j,_results;for(_results=[],i=_j=0;start>=0?start>_j:_j>start;i=start>=0?++_j:--_j)_results.push(0);return _results}()),_ref1=str.slice(start),i=_j=_ref1.length-1;_j>=0;i=_j+=-1){if(c=_ref1[i],null==(char_index=this.lookup[c]))throw new Error("Value passed is not a valid BaseX string.");num=num.add(base.multiply(nbv(char_index))),base=base.multiply(this.basebn)}return Buffer.concat([pad,new Buffer(num.toByteArray())])},BaseX}(),exports.base58=base58=new BaseX("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),exports.base32=base32=new BaseX("abcdefghijkmnpqrstuvwxyz23456789"),exports.base91=new BaseX("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()-_=+{}[]|;:,<>./?")}).call(this)}).call(this,require("buffer").Buffer)},{"./bn":4,"./util":70,bn:71,buffer:80}],4:[function(require,module,exports){(function(Buffer){(function(){var BigInteger,bn_from_left_n_bits,buffer_shift_right,buffer_to_ui8a,mpi_byte_length,mpi_from_buffer,mpi_to_padded_octets,nbi,nbits,nbs,nbv,toMPI,_ref;_ref=require("bn"),nbv=_ref.nbv,nbi=_ref.nbi,BigInteger=_ref.BigInteger,nbits=_ref.nbits,buffer_to_ui8a=require("./util").buffer_to_ui8a,nbs=function(s,base){var r;return null==base&&(base=10),r=nbi(),r.fromString(s,base)},mpi_byte_length=function(bn){return bn.toByteArray().length},toMPI=function(bn){var ba,hdr,size;return ba=bn.toByteArray(),size=8*(ba.length-1)+nbits(ba[0]),hdr=new Buffer(2),hdr.writeUInt16BE(size,0),Buffer.concat([hdr,new Buffer(ba)])},mpi_from_buffer=function(raw){var err,hdr,i,n_bits,n_bytes;return err=i=null,raw.length<2?err=new Error("need at least 2 bytes; got "+raw.length):(hdr=new Buffer(raw.slice(0,2)),raw=raw.slice(2),n_bits=hdr.readUInt16BE(0),n_bytes=Math.ceil(n_bits/8),raw.length<n_bytes?err=new Error("MPI said "+n_bytes+" bytes but only got "+raw.length):(i=nbi().fromBuffer(raw.slice(0,n_bytes)),raw=raw.slice(n_bytes))),[err,i,raw,n_bytes+2]},mpi_to_padded_octets=function(bn,base){var ba,diff,i,n,pad;return n=base.mpi_byte_length(),ba=bn.toByteArray(),diff=n-ba.length,pad=new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;diff>=0?diff>_i:_i>diff;i=diff>=0?++_i:--_i)_results.push(0);return _results}()),Buffer.concat([pad,new Buffer(ba)])},buffer_shift_right=function(buf,nbits){var c,i,l,mask,nbytes,nxt,rem,_i,_ref1;for(nbytes=nbits>>3,rem=nbits%8,buf=buf.slice(0,buf.length-nbytes),l=buf.length,mask=(1<<rem)-1,i=_i=_ref1=l-1;0>=_ref1?0>=_i:_i>=0;i=0>=_ref1?++_i:--_i)c=buf.readUInt8(i)>>rem,i>0&&(nxt=buf.readUInt8(i-1)&mask,c|=nxt<<8-rem),buf.writeUInt8(c,i);return buf},bn_from_left_n_bits=function(raw,bits){var buf,bytes,rem;return rem=bits%8,bytes=(bits>>3)+(rem?1:0),buf=raw.slice(0,bytes),rem>0&&(buf=buffer_shift_right(buf,8-rem)),nbi().fromBuffer(buf)},exports.toMPI=toMPI,exports.nbs=nbs,exports.mpi_from_buffer=mpi_from_buffer,exports.mpi_to_padded_octets=mpi_to_padded_octets,exports.buffer_shift_right=buffer_shift_right,exports.bn_from_left_n_bits=bn_from_left_n_bits,BigInteger.prototype.to_mpi_buffer=function(){return toMPI(this)},BigInteger.prototype.mpi_byte_length=function(){return mpi_byte_length(this)},BigInteger.prototype.to_padded_octets=function(base){return mpi_to_padded_octets(this,base)},exports.BigInteger=BigInteger,exports.nbi=nbi,exports.nbv=nbv,exports.nbits=nbits}).call(this)}).call(this,require("buffer").Buffer)},{"./util":70,bn:71,buffer:80}],5:[function(require,module,exports){(function(){var config,k,openpgp,v;exports.openpgp=openpgp={public_key_algorithms:{RSA:1,RSA_ENCRYPT_ONLY:2,RSA_SIGN_ONLY:3,ELGAMAL:16,DSA:17,ECDH:18,ECDSA:19,ELGAMAL_SIGN_AND_ENCRYPT:20},symmetric_key_algorithms:{CAST5:3,AES128:7,AES192:8,AES256:9},hash_algorithms:{MD5:1,SHA1:2,RIPEMD160:3,SHA256:8,SHA384:9,SHA512:10,SHA224:11},sig_subpacket:{creation_time:2,expiration_time:3,exportable_certificate:4,trust_signature:5,regular_expression:6,revocable:7,key_expiration_time:9,preferred_symmetric_algorithms:11,revocation_key:12,issuer:16,notation_data:20,preferred_hash_algorithms:21,preferred_compression_algorithms:22,key_server_preferences:23,preferred_key_server:24,primary_user_id:25,policy_uri:26,key_flags:27,signers_user_id:28,reason_for_revocation:29,features:30,signature_target:31,embedded_signature:32,experimental_low:101,experimental_high:110},sig_types:{binary_doc:0,canonical_text:1,issuer:16,persona:17,casual:18,positive:19,subkey_binding:24,primary_binding:25,direct:31,key_revocation:32,subkey_revocation:40,certificate_revocation:48},message_types:{generic:0,public_key:4,private_key:5,signature:8,clearsign:9},s2k:{plain:0,salt:1,salt_iter:3,gnu:101,gnu_dummy:1001},s2k_convention:{none:0,checksum:255,sha1:254},ecdh:{param_bytes:3,version:1},packet_tags:{PKESK:1,signature:2,one_pass_sig:4,secret_key:5,public_key:6,secret_subkey:7,compressed:8,literal:11,public_subkey:14,userid:13,user_attribute:17,SEIPD:18,MDC:19},literal_formats:{binary:98,text:116,utf8:117},versions:{PKESK:3,SEIPD:1,one_pass_sig:3,keymaterial:{V4:4},signature:{V2:2,V3:3,V4:4}},signatures:{key:153,userid:180,user_attribute:209},key_flags:{certify_keys:1,sign_data:2,encrypt_comm:4,encrypt_storage:8,private_split:16,auth:32,shared:128},features:{modification_detection:1},key_server_preferences:{no_modify:128},compression:{none:0,zip:1,zlib:2,bzip:3}},exports.kb={key_encryption:{none:0,triplesec_v1:1,triplesec_v2:2,triplesec_v3:3},packet_tags:{p3skb:513,signature:514,encryption:515},public_key_algorithms:{NACL_EDDSA:32,NACL_DH:33},versions:{V1:1},padding:{EMSA_PCKS1_v1_5:3,RSASSA_PSS:4},key_defaults:{primary:{expire_in:0,nbits:{RSA:4096,ECDSA:384,DSA:2048}},sub:{expire_in:252288e3,nbits:{RSA:2048,ECDH:256,ECDSA:256,DSA:2048,ELGAMAL:2048}}},kid:{version:1,trailer:10,algo:8,len:32}},exports.ops={encrypt:1,decrypt:2,verify:4,sign:8},exports.header={version:"Keybase OpenPGP",comment:"https://keybase.io/crypto"},config={default_key_expire_in:126144e3};for(k in config)v=config[k],exports[k]=v}).call(this)},{}],6:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseKey,BaseKeyPair,BigInteger,C,K,MRF,Pair,Priv,Pub,SRF,bn,bufeq_secure,iced,konst,make_esc,nbits,nbv,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},bn=require("./bn"),nbits=bn.nbits,nbv=bn.nbv,BigInteger=bn.BigInteger,_ref=require("./rand"),SRF=_ref.SRF,MRF=_ref.MRF,_ref1=require("./util"),bufeq_secure=_ref1.bufeq_secure,ASP=_ref1.ASP,make_esc=require("iced-error").make_esc,konst=require("./const"),C=konst.openpgp,K=konst.kb,_ref2=require("./basekeypair"),BaseKey=_ref2.BaseKey,BaseKeyPair=_ref2.BaseKeyPair,_ref3=require("./rand"),SRF=_ref3.SRF,MRF=_ref3.MRF,Pub=function(_super){function Pub(_arg){this.p=_arg.p,this.q=_arg.q,this.g=_arg.g,this.y=_arg.y}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.DSA,Pub.prototype.type=Pub.type,Pub.ORDER=["p","q","g","y"],Pub.prototype.ORDER=Pub.ORDER,Pub.alloc=function(raw){return BaseKey.alloc(Pub,raw)},Pub.prototype.trunc_hash=function(h){return bn.bn_from_left_n_bits(h,this.q.bitLength())},Pub.prototype.nbits=function(){var _ref4;return null!=(_ref4=this.p)?_ref4.bitLength():void 0},Pub.prototype.verify=function(_arg,h,cb){var err,hi,r,s,u1,u2,v,w;return r=_arg[0],s=_arg[1],err=null,hi=this.trunc_hash(h),w=s.modInverse(this.q),u1=hi.multiply(w).mod(this.q),u2=r.multiply(w).mod(this.q),v=this.g.modPow(u1,this.p).multiply(this.y.modPow(u2,this.p)).mod(this.p).mod(this.q),v.equals(r)||(err=new Error("verification failed")),cb(err)},Pub}(BaseKey),Priv=function(_super){function Priv(_arg){this.x=_arg.x,this.pub=_arg.pub}return __extends(Priv,_super),Priv.ORDER=["x"],Priv.prototype.ORDER=Priv.ORDER,Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.sign=function(h,cb){var err,g,hi,k,p,q,r,s,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref4;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,_ref4=this.pub,p=_ref4.p,q=_ref4.q,g=_ref4.g,hi=this.pub.trunc_hash(h),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/dsa.iced",funcname:"Priv.sign"}),SRF().random_zn(q.subtract(bn.nbv(2)),__iced_deferrals.defer({assign_fn:function(){return function(){return k=arguments[0]}}(),lineno:76})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return k=k.add(bn.BigInteger.ONE),r=g.modPow(k,p).mod(q),s=k.modInverse(q).multiply(hi.add(_this.x.multiply(r))).mod(q),cb([r,s])}}(this))},Priv}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=C.public_key_algorithms.DSA,Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.klass_name="DSA",Pair.parse=function(pub_raw){return BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.can_encrypt=function(){return!1},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=this.good_for_flags(),(flags&good_for)===flags},Pair.prototype.good_for_flags=function(){return C.key_flags.certify_keys|C.key_flags.sign_data},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var data,err,hash,hasher,sig,v,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref4;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,err=null,Buffer.isBuffer(sig)&&(_ref4=Pair.read_sig_from_buf(sig),err=_ref4[0],sig=_ref4[1]),hash||(hash=hasher(data)),function(_this){return function(__iced_k){return 2!==sig.length?__iced_k(err=new Error("Expected 2 Bigints in the signature")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/dsa.iced",funcname:"Pair.verify_unpad_and_check_hash"}),_this.pub.verify(sig,hash,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],v=arguments[1]}}(),lineno:126})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var h,hasher,s,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),hasher=_arg.hasher,hasher||(hasher=SHA512),h=hasher(data),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/dsa.iced",funcname:"Pair.pad_and_sign"}),_this.priv.sign(h,__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:135})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,Buffer.concat(function(){var _i,_len,_results;for(_results=[],_i=0,_len=sig.length;_len>_i;_i++)s=sig[_i],_results.push(s.to_mpi_buffer());return _results}()))}}(this))},Pair.parse_sig=function(slice){var buf,err,n,ret,_ref4;if(buf=slice.peek_rest_to_buffer(),_ref4=Pair.read_sig_from_buf(buf),err=_ref4[0],ret=_ref4[1],n=_ref4[2],null!=err)throw err;return slice.advance(n),ret},Pair.read_sig_from_buf=function(buf){var err,n,o,order,orig_len,ret,x;return orig_len=buf.length,order=["r","s"],err=null,ret=function(){var _i,_len,_ref4,_results;for(_results=[],_i=0,_len=order.length;_len>_i;_i++)o=order[_i],null==err&&(_ref4=bn.mpi_from_buffer(buf),err=_ref4[0],x=_ref4[1],buf=_ref4[2],_results.push(x));return _results}(),n=orig_len-buf.length,[err,ret,n]},Pair}(BaseKeyPair),exports.DSA=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"./basekeypair":2,"./bn":4,"./const":5,"./rand":65,"./util":70,buffer:80,"iced-error":115,"iced-runtime":118}],7:[function(require,module,exports){(function(Buffer){(function(){var BaseEccKey,SlicerBuffer,alloc_by_nbits,alloc_by_oid,iced,__iced_k,__iced_k_noop,_ref;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},SlicerBuffer=require("../openpgp/buffer").SlicerBuffer,_ref=require("./curves"),alloc_by_nbits=_ref.alloc_by_nbits,alloc_by_oid=_ref.alloc_by_oid,exports.BaseEccKey=BaseEccKey=function(){function BaseEccKey(_arg){this.curve=_arg.curve,this.R=_arg.R}return BaseEccKey.prototype.serialize=function(){var oid;return oid=this.curve.oid,Buffer.concat([new Buffer([oid.length]),oid,this.curve.point_to_mpi_buffer(this.R)])},BaseEccKey._alloc=function(klass,raw){var R,curve,err,l,len,oid,pre,pub,sb,_ref1,_ref2;if(sb=new SlicerBuffer(raw),pre=sb.rem(),l=sb.read_uint8(),oid=sb.read_buffer(l),_ref1=alloc_by_oid(oid),err=_ref1[0],curve=_ref1[1],null!=err)throw err;if(_ref2=curve.mpi_point_from_slicer_buffer(sb),err=_ref2[0],R=_ref2[1],null!=err)throw err;return pub=new klass({curve:curve,R:R}),pub.read_params(sb),len=pre-sb.rem(),[pub,len]},BaseEccKey.alloc=function(klass,raw){var e,err,len,pub,_ref1;pub=len=err=null;try{_ref1=BaseEccKey._alloc(klass,raw),pub=_ref1[0],len=_ref1[1]}catch(_error){e=_error,err=e}return[err,pub,len]},BaseEccKey.prototype.validity_check=function(cb){return cb(null)},BaseEccKey}(),exports.generate=function(_arg,cb){var Pair,R,asp,curve,err,nbits,priv,pub,ret,x,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbits=_arg.nbits,asp=_arg.asp,Pair=_arg.Pair,ret=null,_ref1=alloc_by_nbits(nbits),err=_ref1[0],curve=_ref1[1],function(){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/base.iced",funcname:"generate"}),curve.random_scalar(__iced_deferrals.defer({assign_fn:function(){return function(){return x=arguments[0]}}(),lineno:55})),__iced_deferrals._fulfill()}(function(){return R=curve.G.multiply(x),pub=new Pair.Pub({curve:curve,R:R}),priv=new Pair.Priv({pub:pub,x:x}),__iced_k(ret=new Pair({pub:pub,priv:priv}))})}}(this)(function(){return function(){return cb(err,ret)}}(this))}}).call(this)}).call(this,require("buffer").Buffer)},{"../openpgp/buffer":35,"./curves":8,buffer:80,"iced-runtime":118}],8:[function(require,module,exports){(function(Buffer){(function(){var BigInteger,Curve,H,OIDS,OID_LOOKUP,SRF,SlicerBuffer,base,bn,iced,k,nist_p256,nist_p384,nist_p521,uint_to_buffer,v,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},BigInteger=require("../bn").BigInteger,base=require("keybase-ecurve"),uint_to_buffer=require("../util").uint_to_buffer,SlicerBuffer=require("../openpgp/buffer").SlicerBuffer,SRF=require("../rand").SRF,bn=require("../bn"),exports.H=H=function(x){return BigInteger.fromHex(x.split(/\s+/).join(""))},exports.Curve=Curve=function(_super){function Curve(_arg){var Gx,Gy,a,b,h,n,p;p=_arg.p,a=_arg.a,b=_arg.b,Gx=_arg.Gx,Gy=_arg.Gy,n=_arg.n,h=_arg.h,this.oid=_arg.oid,h||(h=BigInteger.ONE),Curve.__super__.constructor.call(this,p,a,b,Gx,Gy,n,h)}return __extends(Curve,_super),Curve.prototype.mkpoint=function(_arg){var x,y;return x=_arg.x,y=_arg.y,base.Point.fromAffine(this,x,y)},Curve.prototype.nbits=function(){return this.p.bitLength()},Curve.prototype.mpi_bit_size=function(){return 2*this.mpi_coord_bit_size()+3},Curve.prototype.mpi_coord_byte_size=function(){return Math.ceil(this.nbits()/8)},Curve.prototype.mpi_coord_bit_size=function(){return 8*this.mpi_coord_byte_size()},Curve.prototype._mpi_point_from_slicer_buffer=function(sb){var b,n_bits,n_bytes,point,x,y,_ref;if(n_bits=sb.read_uint16(),n_bits!==(b=this.mpi_bit_size()))throw new Error("Need "+b+" bits for this curve; got "+n_bits);if(4!==sb.read_uint8())throw new Error("Can only handle 0x4 prefix for MPI representations");if(n_bytes=this.mpi_coord_byte_size(),_ref=[BigInteger.fromBuffer(sb.read_buffer(n_bytes)),BigInteger.fromBuffer(sb.read_buffer(n_bytes))],x=_ref[0],y=_ref[1],point=this.mkpoint({x:x,y:y}),!this.isOnCurve(point))throw new Error("Given ECC point isn't on the given curve; data corruption detected.");return[null,point]},Curve.prototype.mpi_point_from_buffer=function(b){return this.mpi_point_from_slicer_buffer(new SlicerBuffer(b))},Curve.prototype.mpi_point_from_slicer_buffer=function(sb){var e,err,point,_ref;err=point=null;try{_ref=this._mpi_point_from_slicer_buffer(sb),err=_ref[0],point=_ref[1]}catch(_error){e=_error,err=e}return[err,point]},Curve.prototype.point_to_mpi_buffer_compact=function(p){return p.affineX.toBuffer(this.p.byteLength())},Curve.prototype.point_to_mpi_buffer=function(p){var ret,sz;return sz=this.mpi_coord_byte_size(),ret=Buffer.concat([uint_to_buffer(16,this.mpi_bit_size()),new Buffer([4]),p.affineX.toBuffer(sz),p.affineY.toBuffer(sz)])},Curve.prototype.random_scalar=function(cb){var k,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/ecc/curves.iced",funcname:"Curve.random_scalar"}),SRF().random_zn(_this.n.subtract(bn.nbv(2)),__iced_deferrals.defer({assign_fn:function(){return function(){return k=arguments[0]}}(),lineno:97})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return k=k.add(bn.BigInteger.ONE),cb(k)}}(this))},Curve}(base.Curve),exports.nist_p256=nist_p256=function(){var Gx,Gy,a,b,n,p;return p=H("FFFFFFFF 00000001 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFF"),a=H("FFFFFFFF 00000001 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFC"),b=H("5AC635D8 AA3A93E7 B3EBBD55 769886BC 651D06B0 CC53B0F6 3BCE3C3E 27D2604B"),n=H("FFFFFFFF 00000000 FFFFFFFF FFFFFFFF BCE6FAAD A7179E84 F3B9CAC2 FC632551"),Gx=H("6B17D1F2 E12C4247 F8BCE6E5 63A440F2 77037D81 2DEB33A0 F4A13945 D898C296"),Gy=H("4FE342E2 FE1A7F9B 8EE7EB4A 7C0F9E16 2BCE3357 6B315ECE CBB64068 37BF51F5"),new Curve({p:p,a:a,b:b,Gx:Gx,Gy:Gy,n:n,oid:OIDS.nist_p256})},exports.nist_p384=nist_p384=function(){var Gx,Gy,a,b,n,p;return p=H("ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff"),a=H("ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc"),b=H("b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef"),n=H("ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973"),Gx=H("aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7"),Gy=H("3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"),new Curve({p:p,a:a,b:b,Gx:Gx,Gy:Gy,n:n,oid:OIDS.nist_p384})},exports.nist_p521=nist_p521=function(){var Gx,Gy,a,b,n,p;return p=H("000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff"),a=H("000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc"),b=H("00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00"),n=H("000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409"),Gx=H("000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66"),Gy=H("00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"),new Curve({p:p,a:a,b:b,Gx:Gx,Gy:Gy,n:n,oid:OIDS.nist_p521})},OIDS={nist_p256:new Buffer([42,134,72,206,61,3,1,7]),nist_p384:new Buffer([43,129,4,0,34]),nist_p521:new Buffer([43,129,4,0,35])},OID_LOOKUP={};for(k in OIDS)v=OIDS[k],OID_LOOKUP[v.toString("hex")]=exports[k];exports.alloc_by_oid=function(oid){var curve,err,f;return Buffer.isBuffer(oid)&&(oid=oid.toString("hex")),err=curve=null,null!=(f=OID_LOOKUP[oid.toLowerCase()])?curve=f():err=new Error("Unknown curve OID: "+oid),[err,curve]},exports.alloc_by_nbits=function(nbits){var err,f,ret;return ret=err=null,nbits||(nbits=256),f=function(){switch(nbits){case 256:return nist_p256;case 384:return nist_p384;case 521:return nist_p521;default:return null}}(),null!=f?ret=f():err=new Error("No curve for "+nbits+" bits"),[err,ret]}}).call(this)}).call(this,require("buffer").Buffer)},{"../bn":4,"../openpgp/buffer":35,"../rand":65,"../util":70,buffer:80,"iced-runtime":118,"keybase-ecurve":148}],9:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseEccKey,BaseKey,BaseKeyPair,Const,Output,Pair,Priv,Pub,SlicerBuffer,bufeq_secure,ecc_pkcs5_pad_data,generate,hashmod,iced,konst,make_esc,sym,uint_to_buffer,unwrap,wrap,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},_ref=require("../util"),uint_to_buffer=_ref.uint_to_buffer,bufeq_secure=_ref.bufeq_secure,ASP=_ref.ASP,make_esc=require("iced-error").make_esc,konst=require("../const"),Const=konst.openpgp,_ref1=require("../basekeypair"),BaseKeyPair=_ref1.BaseKeyPair,BaseKey=_ref1.BaseKey,ecc_pkcs5_pad_data=require("../pad").ecc_pkcs5_pad_data,_ref2=require("./base"),generate=_ref2.generate,BaseEccKey=_ref2.BaseEccKey,hashmod=require("../hash"),sym=require("../symmetric"),SlicerBuffer=require("../openpgp/buffer").SlicerBuffer,_ref3=require("../rfc3394"),wrap=_ref3.wrap,unwrap=_ref3.unwrap,Pub=function(_super){function Pub(){return Pub.__super__.constructor.apply(this,arguments)}return __extends(Pub,_super),Pub.type=Const.public_key_algorithms.ECDH,Pub.prototype.type=Pub.type,Pub.prototype.apply_defaults=function(){return this.cipher||(this.cipher=sym.get_cipher()),this.hasher||(this.hasher=hashmod.SHA512)},Pub.prototype.read_params=function(sb){var n,size,v,val;if((size=sb.read_uint8())<(n=Const.ecdh.param_bytes))throw new Error("Need at least "+n+" bytes of params; got "+size);if((val=sb.read_uint8())!==(v=Const.ecdh.version))throw new Error("Cannot deal with future extensions, byte="+val+"; wanted "+v);return this.hasher=hashmod.alloc_or_throw(sb.read_uint8()),this.cipher=sym.get_cipher(sb.read_uint8()),sb.advance(size-3)},Pub.alloc=function(raw){return BaseEccKey.alloc(Pub,raw)},Pub.prototype.serialize_params=function(){return Buffer.concat([uint_to_buffer(8,Const.ecdh.param_bytes),uint_to_buffer(8,Const.ecdh.version),uint_to_buffer(8,this.hasher.type),uint_to_buffer(8,this.cipher.type)])},Pub.prototype.serialize=function(){return Buffer.concat([Pub.__super__.serialize.call(this),this.serialize_params()])},Pub.prototype.format_params=function(_arg){var fingerprint;return fingerprint=_arg.fingerprint,Buffer.concat([uint_to_buffer(8,this.curve.oid.length),this.curve.oid,uint_to_buffer(8,this.type),this.serialize_params(),new Buffer("Anonymous Sender ","utf8"),fingerprint])},Pub.prototype.kdf=function(_arg){var X,X_compact,buf,hash,o_bytes,params;return X=_arg.X,params=_arg.params,o_bytes=this.cipher.key_size,X_compact=this.curve.point_to_mpi_buffer_compact(X),buf=Buffer.concat([new Buffer([0,0,0,1]),X_compact,params]),hash=this.hasher(buf),hash.slice(0,o_bytes)},Pub.prototype.encrypt=function(m,_arg,cb){var C,G,S,V,fingerprint,key,n,params,v,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref4;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),fingerprint=_arg.fingerprint,_ref4=this.curve,n=_ref4.n,G=_ref4.G,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Pub.encrypt"}),_this.curve.random_scalar(__iced_deferrals.defer({assign_fn:function(){return function(){return v=arguments[0]
}}(),lineno:100})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return V=G.multiply(v),S=_this.R.multiply(v),params=_this.format_params({fingerprint:fingerprint}),key=_this.kdf({X:S,params:params}),C=wrap({key:key,plaintext:m,cipher:_this.cipher}),cb({V:V,C:C})}}(this))},Pub}(BaseEccKey),Priv=function(_super){function Priv(_arg){this.x=_arg.x,this.pub=_arg.pub}return __extends(Priv,_super),Priv.ORDER=["x"],Priv.prototype.ORDER=Priv.ORDER,Priv.prototype.serialize=function(){return this.x.to_mpi_buffer()},Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.decrypt=function(c,_arg,cb){var S,V,curve,err,esc,fingerprint,key,params,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),fingerprint=_arg.fingerprint,esc=make_esc(cb,"Priv::decrypt"),curve=this.pub.curve,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Priv.decrypt"}),c.load_V(curve,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return V=arguments[0]}}(),lineno:141}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _ref4;return S=V.multiply(_this.x),params=_this.pub.format_params({fingerprint:fingerprint}),key=_this.pub.kdf({X:S,params:params}),_ref4=unwrap({key:key,ciphertext:c.C,cipher:_this.pub.cipher}),err=_ref4[0],ret=_ref4[1],cb(err,ret)}}(this))},Priv}(BaseKey),Pair=function(_super){function Pair(){return Pair.__super__.constructor.apply(this,arguments)}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=Const.public_key_algorithms.ECDH,Pair.prototype.type=Pair.type,Pair.klass_name="ECDH",Pair.prototype.get_type=function(){return this.type},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=Const.key_flags.encrypt_comm|Const.key_flags.encrypt_storage,(flags&good_for)===flags},Pair.prototype.can_sign=function(){return!1},Pair.parse=function(pub_raw){var ret;return ret=BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.max_value=function(){return this.pub.p},Pair.prototype.pad_and_encrypt=function(data,_arg,cb){var C,V,err,fingerprint,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref4;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),fingerprint=_arg.fingerprint,err=ret=null,_ref4=ecc_pkcs5_pad_data(data),err=_ref4[0],m=_ref4[1],function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Pair.pad_and_encrypt"}),_this.pub.encrypt(m,{fingerprint:fingerprint},__iced_deferrals.defer({assign_fn:function(){return function(){return C=arguments[0].C,V=arguments[0].V}}(),lineno:196})),__iced_deferrals._fulfill()}(function(){return __iced_k(ret=_this.export_output({C:C,V:V,curve:_this.pub.curve}))})}}(this)(function(){return function(){return cb(err,ret)}}(this))},Pair.prototype.decrypt_and_unpad=function(ciphertext,_arg,cb){var err,fingerprint,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),fingerprint=_arg.fingerprint,err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Pair.decrypt_and_unpad"}),_this.priv.decrypt(ciphertext,{fingerprint:fingerprint},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],m=arguments[1]}}(),lineno:204})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,m,!0)}}(this))},Pair.parse_output=function(buf){return Output.parse(buf)},Pair.prototype.export_output=function(args){return new Output(args)},Pair.generate=function(_arg,cb){var asp,err,nbits,pair,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbits=_arg.nbits,asp=_arg.asp,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdh.iced",funcname:"Pair.generate"}),generate({nbits:nbits,asp:asp,Pair:Pair},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],pair=arguments[1]}}(),lineno:215})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return("undefined"==typeof err||null===err)&&pair.pub.apply_defaults(),cb(err,pair)}}(this))},Pair}(BaseKeyPair),Output=function(){function Output(_arg){this.V_buf=_arg.V_buf,this.C=_arg.C,this.V=_arg.V,this.curve=_arg.curve}return Output.prototype.load_V=function(curve,cb){var err,_ref4;return this.curve=curve,_ref4=curve.mpi_point_from_buffer(this.V_buf),err=_ref4[0],this.V=_ref4[1],cb(err,this.V)},Output.parse=function(buf){var C,V_buf,a,n_bits,n_bytes,ret,sb;if(sb=new SlicerBuffer(buf),n_bits=sb.read_uint16(),n_bytes=Math.ceil(n_bits/8),V_buf=Buffer.concat([buf.slice(0,2),sb.read_buffer(n_bytes)]),n_bytes=sb.read_uint8(),C=sb.consume_rest_to_buffer(),(a=C.length)!==n_bytes)throw new Error("bad C input: wanted "+n_bytes+" bytes, but got "+a);return ret=new Output({V_buf:V_buf,C:C})},Output.prototype.get_V_buf=function(){return null==this.V_buf&&(this.V_buf=this.curve.point_to_mpi_buffer(this.V)),this.V_buf},Output.prototype.hide=function(_arg,cb){var key,max,slosh;return key=_arg.key,max=_arg.max,slosh=_arg.slosh,cb(null)},Output.prototype.find=function(_arg){var key;key=_arg.key},Output.prototype.good_for_flags=function(){return C.key_flags.encrypt_comm|C.key_flags.encrypt_storage},Output.prototype.output=function(){return Buffer.concat([this.get_V_buf(),uint_to_buffer(8,this.C.length),this.C])},Output}(),exports.ECDH=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"../basekeypair":2,"../const":5,"../hash":14,"../openpgp/buffer":35,"../pad":62,"../rfc3394":66,"../symmetric":68,"../util":70,"./base":7,buffer:80,"iced-error":115,"iced-runtime":118}],10:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseEccKey,BaseKey,BaseKeyPair,BigInteger,C,ECDH,K,Pair,Priv,Pub,bn,bufeq_secure,generate,iced,konst,make_esc,nbits,nbv,uint_to_buffer,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},bn=require("../bn"),nbits=bn.nbits,nbv=bn.nbv,BigInteger=bn.BigInteger,_ref=require("../util"),uint_to_buffer=_ref.uint_to_buffer,bufeq_secure=_ref.bufeq_secure,ASP=_ref.ASP,make_esc=require("iced-error").make_esc,konst=require("../const"),C=konst.openpgp,K=konst.kb,_ref1=require("../basekeypair"),BaseKeyPair=_ref1.BaseKeyPair,BaseKey=_ref1.BaseKey,_ref2=require("./base"),generate=_ref2.generate,BaseEccKey=_ref2.BaseEccKey,ECDH=require("./ecdh").ECDH,Pub=function(_super){function Pub(){return Pub.__super__.constructor.apply(this,arguments)}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.ECDSA,Pub.prototype.type=Pub.type,Pub.prototype.nbits=function(){return this.curve.nbits()},Pub.prototype.read_params=function(){},Pub.prototype.trunc_hash=function(h){return bn.bn_from_left_n_bits(h,this.nbits())},Pub.alloc=function(raw){return BaseEccKey.alloc(Pub,raw)},Pub.prototype.verify=function(_arg,h,cb){var err,hi,n,p,r,s,u1,u2,v,w;return r=_arg[0],s=_arg[1],err=null,hi=this.trunc_hash(h),r.signum()<=0||r.compareTo(this.curve.p)>0?err=new Error("bad r"):r.signum()<=0||s.compareTo(this.curve.p)>0?err=new Error("bad s"):(n=this.curve.n,w=s.modInverse(n),u1=hi.multiply(w).mod(n),u2=r.multiply(w).mod(n),p=this.curve.G.multiplyTwo(u1,this.R,u2),v=p.affineX.mod(n),v.equals(r)||(err=new Error("verification failed"))),cb(err)},Pub}(BaseEccKey),Priv=function(_super){function Priv(_arg){this.x=_arg.x,this.pub=_arg.pub}return __extends(Priv,_super),Priv.ORDER=["x"],Priv.prototype.ORDER=Priv.ORDER,Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.sign=function(h,cb){var G,Q,err,hi,k,n,r,s,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref3;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,_ref3=this.pub.curve,n=_ref3.n,G=_ref3.G,hi=this.pub.trunc_hash(h),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdsa.iced",funcname:"Priv.sign"}),_this.pub.curve.random_scalar(__iced_deferrals.defer({assign_fn:function(){return function(){return k=arguments[0]}}(),lineno:79})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){if(Q=G.multiply(k),r=Q.affineX.mod(n),0===r.signum())throw new Error("invalid r-value");return s=k.modInverse(n).multiply(hi.add(_this.x.multiply(r))).mod(n),cb([r,s])}}(this))},Priv}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=C.public_key_algorithms.ECDSA,Pair.prototype.type=Pair.type,Pair.klass_name="ECDSA",Pair.prototype.get_type=function(){return this.type},Pair.parse=function(pub_raw){return BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.can_encrypt=function(){return!1},Pair.subkey_algo=function(flags){return flags&(C.key_flags.certify_keys|C.key_flags.sign_data)?Pair:ECDH},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=C.key_flags.certify_keys|C.key_flags.sign_data,(flags&good_for)===flags},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var data,err,hash,hasher,sig,v,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref3;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,err=null,Buffer.isBuffer(sig)&&(_ref3=Pair.read_sig_from_buf(sig),err=_ref3[0],sig=_ref3[1]),hash||(hash=hasher(data)),function(_this){return function(__iced_k){return 2!==sig.length?__iced_k(err=new Error("Expected 2 Bigints in the signature")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdsa.iced",funcname:"Pair.verify_unpad_and_check_hash"}),_this.pub.verify(sig,hash,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],v=arguments[1]}}(),lineno:132})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var h,hasher,s,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),hasher=_arg.hasher,hasher||(hasher=SHA512),h=hasher(data),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ecc/ecdsa.iced",funcname:"Pair.pad_and_sign"}),_this.priv.sign(h,__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:141})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,Buffer.concat(function(){var _i,_len,_results;for(_results=[],_i=0,_len=sig.length;_len>_i;_i++)s=sig[_i],_results.push(s.to_mpi_buffer());return _results}()))}}(this))},Pair.parse_sig=function(slice){var buf,err,n,ret,_ref3;if(buf=slice.peek_rest_to_buffer(),_ref3=Pair.read_sig_from_buf(buf),err=_ref3[0],ret=_ref3[1],n=_ref3[2],null!=err)throw err;return slice.advance(n),ret},Pair.read_sig_from_buf=function(buf){var err,n,o,order,orig_len,ret,x;return orig_len=buf.length,order=["r","s"],err=null,ret=function(){var _i,_len,_ref3,_results;for(_results=[],_i=0,_len=order.length;_len>_i;_i++)o=order[_i],null==err&&(_ref3=bn.mpi_from_buffer(buf),err=_ref3[0],x=_ref3[1],buf=_ref3[2],_results.push(x));return _results}(),n=orig_len-buf.length,[err,ret,n]},Pair.prototype.good_for_flags=function(){return C.key_flags.certify_keys|C.key_flags.sign_data},Pair.generate=function(_arg,cb){var asp,nbits;return nbits=_arg.nbits,asp=_arg.asp,generate({nbits:nbits,asp:asp,Pair:Pair},cb)},Pair}(BaseKeyPair),exports.ECDSA=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"../basekeypair":2,"../bn":4,"../const":5,"../util":70,"./base":7,"./ecdh":9,buffer:80,"iced-error":115,"iced-runtime":118}],11:[function(require,module,exports){(function(){exports.curves=require("./curves"),exports.ECDSA=require("./ecdsa").ECDSA,exports.ECDH=require("./ecdh").ECDH}).call(this)},{"./curves":8,"./ecdh":9,"./ecdsa":10}],12:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseKey,BaseKeyPair,C,K,MRF,Output,Pair,Priv,Pub,SRF,bn,bufeq_secure,eme_pkcs1_decode,eme_pkcs1_encode,iced,konst,make_esc,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},bn=require("./bn"),_ref=require("./util"),bufeq_secure=_ref.bufeq_secure,ASP=_ref.ASP,make_esc=require("iced-error").make_esc,konst=require("./const"),C=konst.openpgp,K=konst.kb,_ref1=require("./basekeypair"),BaseKeyPair=_ref1.BaseKeyPair,BaseKey=_ref1.BaseKey,_ref2=require("./rand"),SRF=_ref2.SRF,MRF=_ref2.MRF,_ref3=require("./pad"),eme_pkcs1_encode=_ref3.eme_pkcs1_encode,eme_pkcs1_decode=_ref3.eme_pkcs1_decode,Pub=function(_super){function Pub(_arg){this.p=_arg.p,this.g=_arg.g,this.y=_arg.y}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.ELGAMAL,Pub.prototype.type=Pub.type,Pub.ORDER=["p","g","y"],Pub.prototype.ORDER=Pub.ORDER,Pub.alloc=function(raw){return BaseKey.alloc(Pub,raw)},Pub.prototype.encrypt=function(m,cb){var c,k,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Pub.encrypt"}),SRF().random_zn(_this.p.subtract(bn.nbv(2)),__iced_deferrals.defer({assign_fn:function(){return function(){return k=arguments[0]}}(),lineno:35})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return k=k.add(bn.BigInteger.ONE),c=[_this.g.modPow(k,_this.p),_this.y.modPow(k,_this.p).multiply(m).mod(_this.p)],cb(c)}}(this))},Pub}(BaseKey),Priv=function(_super){function Priv(_arg){this.x=_arg.x,this.pub=_arg.pub}return __extends(Priv,_super),Priv.ORDER=["x"],Priv.prototype.ORDER=Priv.ORDER,Priv.prototype.serialize=function(){return this.x.to_mpi_buffer()},Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.decrypt=function(c,cb){var p,ret;return p=this.pub.p,ret=c[0].modPow(this.x,p).modInverse(p).multiply(c[1]).mod(p),cb(null,ret)},Priv}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=C.public_key_algorithms.ELGAMAL,Pair.klass_name="ELGAMAL",Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=this.good_for_flags(),(flags&good_for)===flags},Pair.prototype.good_for_flags=function(){return C.key_flags.encrypt_comm|C.key_flags.encrypt_storage},Pair.prototype.can_sign=function(){return!1},Pair.parse=function(pub_raw){var ret;return ret=BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.max_value=function(){return this.pub.p},Pair.prototype.pad_and_encrypt=function(data,params,cb){var c_mpis,err,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Pair.pad_and_encrypt"}),eme_pkcs1_encode(data,_this.pub.p.mpi_byte_length(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],m=arguments[1]}}(),lineno:112})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Pair.pad_and_encrypt"}),_this.pub.encrypt(m,__iced_deferrals.defer({assign_fn:function(){return function(){return c_mpis=arguments[0]}}(),lineno:114})),__iced_deferrals._fulfill()}(function(){return __iced_k(ret=_this.export_output({c_mpis:c_mpis}))})}(function(){return cb(err,ret)})}}(this))},Pair.prototype.decrypt_and_unpad=function(ciphertext,params,cb){var b,err,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Pair.decrypt_and_unpad"}),_this.priv.decrypt(ciphertext.c(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],m=arguments[1]}}(),lineno:122})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _ref4;return null==err&&(b=m.to_padded_octets(_this.pub.p),_ref4=eme_pkcs1_decode(b),err=_ref4[0],ret=_ref4[1]),cb(err,ret)}}(this))},Pair.parse_output=function(buf){return Output.parse(buf)},Pair.prototype.export_output=function(args){return new Output(args)},Pair}(BaseKeyPair),Output=function(){function Output(_arg){this.c_mpis=_arg.c_mpis,this.c_bufs=_arg.c_bufs}return Output.parse=function(buf){var c_mpis,err,i,n,ret;if(c_mpis=function(){var _i,_ref4,_results;for(_results=[],i=_i=0;2>_i;i=++_i){if(_ref4=bn.mpi_from_buffer(buf),err=_ref4[0],ret=_ref4[1],buf=_ref4[2],n=_ref4[3],null!=err)throw err;_results.push(ret)}return _results}(),0!==buf.length)throw new Error("junk at the end of input");return new Output({c_mpis:c_mpis})},Output.prototype.c=function(){return this.c_mpis},Output.prototype.hide=function(_arg,cb){var c_mpi,err,key,max,new_c_mpis,slosh,tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,max=_arg.max,slosh=_arg.slosh,max||(max=4096),slosh||(slosh=128),err=null,this.c_bufs=null,new_c_mpis=[],function(_this){return function(__iced_k){var _i,_len,_ref4,_results,_while;_ref4=_this.c_mpis,_len=_ref4.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(c_mpi=_ref4[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/elgamal.iced",funcname:"Output.hide"}),key.hide({i:c_mpi,max:max,slosh:slosh},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],tmp=arguments[1]}}(),lineno:164})),__iced_deferrals._fulfill()}(function(){new_c_mpis.push(tmp),function(__iced_k){return null==err?__iced_k():void!function(){_break()}(__iced_k)}(_next)})):_break()})(__iced_k)}}(this)(function(_this){return function(){return null==err&&(_this.c_mpis=new_c_mpis),cb(err)}}(this))},Output.prototype.find=function(_arg){var j,key;return key=_arg.key,this.c_mpis=function(){var _i,_len,_ref4,_results;for(_ref4=this.c_mpis,_results=[],_i=0,_len=_ref4.length;_len>_i;_i++)j=_ref4[_i],_results.push(key.find(j));return _results}.call(this)},Output.prototype.get_c_bufs=function(){var i;return null!=this.c_bufs?this.c_bufs:this.c_bufs=function(){var _i,_len,_ref4,_results;for(_ref4=this.c_mpis,_results=[],_i=0,_len=_ref4.length;_len>_i;_i++)i=_ref4[_i],_results.push(i.to_mpi_buffer());return _results}.call(this)},Output.prototype.output=function(){return Buffer.concat(this.get_c_bufs())},Output}(),exports.ElGamal=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"./basekeypair":2,"./bn":4,"./const":5,"./pad":62,"./rand":65,"./util":70,buffer:80,"iced-error":115,"iced-runtime":118}],13:[function(require,module,exports){(function(){var ASP,BaseKey,BaseKeyPair,C,K,MRF,Pair,Priv,Pub,SRF,bn,bufeq_secure,eme_pkcs1_decode,eme_pkcs1_encode,konst,make_esc,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};bn=require("./bn"),_ref=require("./util"),bufeq_secure=_ref.bufeq_secure,ASP=_ref.ASP,make_esc=require("iced-error").make_esc,konst=require("./const"),C=konst.openpgp,K=konst.kb,_ref1=require("./basekeypair"),BaseKeyPair=_ref1.BaseKeyPair,BaseKey=_ref1.BaseKey,_ref2=require("./rand"),SRF=_ref2.SRF,MRF=_ref2.MRF,_ref3=require("./pad"),eme_pkcs1_encode=_ref3.eme_pkcs1_encode,eme_pkcs1_decode=_ref3.eme_pkcs1_decode,Pub=function(_super){function Pub(raw){this.raw=raw}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.ELGAMAL_SIGN_AND_ENCRYPT,Pub.prototype.type=Pub.type,Pub.ORDER=[],Pub.prototype.ORDER=Pub.ORDER,Pub.alloc=function(raw){return BaseKey.alloc(Pub,raw)},Pub.prototype.encrypt=function(m,cb){return cb(null)},Pub}(BaseKey),Priv=function(_super){function Priv(raw){this.raw=raw}return __extends(Priv,_super),Priv.ORDER=[],Priv.prototype.ORDER=Priv.ORDER,Priv.prototype.serialize=function(){return null},Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.decrypt=function(c,cb){return cb(null)},Priv}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=C.public_key_algorithms.ELGAMAL_SIGN_AND_ENCRYPT,Pair.prototype.type=Pair.type,Pair.prototype.fulfills_flags=function(){return!1},Pair.prototype.is_toxic=function(){return!0},Pair.prototype.can_sign=function(){return!1},Pair.prototype.can_decrypt=function(){return!1},Pair.prototype.err=function(){return new Error("refusing to use ElGamal Sign+Encrypt")},Pair.parse=function(pub_raw){var ret;return ret=BaseKeyPair.parse(Pair,pub_raw)},Pair.prototype.pad_and_encrypt=function(data,cb){return cb(this.err(),null)},Pair.prototype.decrypt_and_unpad=function(ciphertext,params,cb){return cb(this.err(),null)},Pair.parse_output=function(){return null},Pair.prototype.export_output=function(){return null},Pair}(BaseKeyPair),exports.ElGamalSignEncrypt=exports.Pair=Pair}).call(this)},{"./basekeypair":2,"./bn":4,"./const":5,"./pad":62,"./rand":65,"./util":70,"iced-error":115}],14:[function(require,module,exports){(function(){var C,WordArray,algos,alloc,alloc_or_throw,decorate,k,make_hasher,make_streamer,streamers,triplesec,v,_lookup,_ref;C=require("./const").openpgp,triplesec=require("triplesec"),WordArray=triplesec.WordArray,algos=triplesec.hash,decorate=function(f,klass,name,type){return f.type=type,f.algname=name,f.output_length=klass.output_size,f.klass=klass,f},make_hasher=function(klass,name,type){var f;return null!=klass?(f=function(x){return(new klass).bufhash(x)},decorate(f,klass,name,type)):null},make_streamer=function(klass,name,type){return function(){var obj,ret;return obj=new klass,ret=function(buf){return obj.clone().finalize(null!=buf?WordArray.from_buffer(buf):null).to_buffer()},ret.update=function(buf){return null!=buf&&obj.update(WordArray.from_buffer(buf)),this},decorate(ret,klass,name,type)}},_lookup={},exports.streamers=streamers={},_ref=C.hash_algorithms;for(k in _ref)v=_ref[k],_lookup[v]=k,exports[k]=make_hasher(algos[k],k,v),streamers[k]=make_streamer(algos[k],k,v);exports.alloc=alloc=function(typ){var klass,name,ret;return ret=null,name=_lookup[typ],null!=name&&(klass=algos[name]),null!=klass&&(ret=make_hasher(klass,name,typ)),ret},exports.alloc_or_throw=alloc_or_throw=function(typ){var ret;if(ret=alloc(typ),!ret)throw new Error("unknown hash type: "+typ);return ret}}).call(this)},{"./const":5,triplesec:181}],15:[function(require,module,exports){(function(){var C,pjs;C=require("./const"),pjs=require("../package.json"),exports.header={version:C.header.version+(" v"+pjs.version),comment:C.header.comment}}).call(this)},{"../package.json":202,"./const":5}],16:[function(require,module,exports){(function(Buffer){(function(){var K,SHA256,alloc,bufeq_secure,katch,null_hash,obj_extract,pack,purepack,read_base64,seal,unpack,unseal,_ref,_ref1;K=require("../const").kb,_ref=require("../hash"),alloc=_ref.alloc,SHA256=_ref.SHA256,purepack=require("purepack"),_ref1=require("../util"),katch=_ref1.katch,obj_extract=_ref1.obj_extract,bufeq_secure=_ref1.bufeq_secure,null_hash=new Buffer(0),pack=function(x){return purepack.pack(x,{sort_keys:!0})},unpack=function(x){return purepack.unpack(x)},seal=function(_arg){var dohash,hasher,obj,oo,packed;return obj=_arg.obj,dohash=_arg.dohash,hasher=SHA256,oo={version:K.versions.V1,tag:obj.tag,body:obj.body},dohash&&(oo.hash={type:hasher.type,value:null_hash},packed=pack(oo),oo.hash.value=hasher(packed)),pack(oo)},read_base64=function(raw){var parts;return parts=raw.split(/\s+/).join(""),new Buffer(parts,"base64")},unseal=function(buf){var h,hasher,hv,oo,t,_ref2;if(oo=unpack(buf),null!=(hv=null!=oo&&null!=(_ref2=oo.hash)?_ref2.value:void 0)){if(oo.hash.value=null_hash,hasher=alloc(t=oo.hash.type),null==hasher)throw new Error("unknown hash algo: "+t);if(h=hasher(pack(oo)),!bufeq_secure(h,hv))throw new Error("hash mismatch");if(oo.version!==K.versions.V1)throw new Error("unknown version")}return obj_extract(oo,["tag","body"])},exports.seal=seal,exports.pack=pack,exports.unseal=unseal,exports.unpack=unpack,exports.read_base64=read_base64}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../hash":14,"../util":70,buffer:80,purepack:169}],17:[function(require,module,exports){(function(Buffer){(function(){var C,DH,EdDSA,EncKeyManager,Encryption,K,KeyManager,KeyManagerInterface,Signature,SignatureEngine,akatch,alloc,asyncify,base64u,box,buffer_xor,encode,iced,konst,make_esc,unbox,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},KeyManagerInterface=require("../kmi").KeyManagerInterface,make_esc=require("iced-error").make_esc,encode=require("./encode"),_ref=require("../util"),base64u=_ref.base64u,buffer_xor=_ref.buffer_xor,asyncify=_ref.asyncify,akatch=_ref.akatch,konst=require("../const"),alloc=require("./packet/alloc").alloc,Signature=require("./packet/signature").Signature,Encryption=require("./packet/encryption").Encryption,EdDSA=require("../nacl/eddsa").EdDSA,DH=require("../nacl/dh").DH,K=konst.kb,C=konst.openpgp,KeyManager=function(_super){function KeyManager(_arg){this.key=_arg.key,this.server_half=_arg.server_half}return __extends(KeyManager,_super),KeyManager.generate=function(_arg,cb){var algo,err,key,klass,seed,server_half,split,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),algo=_arg.algo,seed=_arg.seed,split=_arg.split,server_half=_arg.server_half,klass=_arg.klass,algo||(algo=EdDSA),klass||(klass=KeyManager),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced",funcname:"KeyManager.generate"}),algo.generate({split:split,seed:seed,server_half:server_half},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],key=arguments[1],server_half=arguments[2]}}(),lineno:29})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,new klass({key:key,server_half:server_half}))}}(this))},KeyManager.prototype.get_mask=function(){return C.key_flags.sign_data|C.key_flags.certify_keys|C.key_flags.auth},KeyManager.prototype.fetch=function(key_ids,flags,cb){var err,key,mask,s;return s=this.key.ekid().toString("hex"),key=null,mask=this.get_mask(),__indexOf.call(key_ids,s)>=0&&(flags&mask)===flags?key=this.key:err=new Error("Key not found"),cb(err,key)},KeyManager.prototype.get_keypair=function(){return this.key},KeyManager.prototype.get_primary_keypair=function(){return this.key},KeyManager.prototype.can_verify=function(){return!0},KeyManager.prototype.eq=function(km2){return this.key.eq(km2.key)},KeyManager.import_public=function(_arg,cb){var err,hex,key,raw,ret,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),hex=_arg.hex,raw=_arg.raw,err=ret=null,null!=hex&&(raw=new Buffer(hex,"hex")),_ref1=EdDSA.parse_kb(raw),err=_ref1[0],key=_ref1[1],function(){return function(__iced_k){return null==err?__iced_k(ret=new KeyManager({key:key})):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced",funcname:"KeyManager.import_public"}),EncKeyManager.import_public({raw:raw},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:66})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))},KeyManager.prototype.check_public_eq=function(km2){return this.eq(km2)},KeyManager.prototype.export_public=function(_arg,cb){var asp,regen,ret;return asp=_arg.asp,regen=_arg.regen,ret=this.key.ekid().toString("hex"),cb(null,ret)},KeyManager.prototype.export_server_half=function(){var _ref1;return null!=(_ref1=this.server_half)?_ref1.toString("hex"):void 0},KeyManager.prototype.get_ekid=function(){return this.get_keypair().ekid()},KeyManager.prototype.get_fp2=function(){return this.get_ekid()},KeyManager.prototype.get_fp2_formatted=function(){return base64u.encode(this.get_fp2())},KeyManager.prototype.get_type=function(){return"kb"},KeyManager.prototype.make_sig_eng=function(){return new SignatureEngine({km:this})},KeyManager}(KeyManagerInterface),EncKeyManager=function(_super){function EncKeyManager(){return EncKeyManager.__super__.constructor.apply(this,arguments)}return __extends(EncKeyManager,_super),EncKeyManager.generate=function(params,cb){return params.algo=DH,params.klass=EncKeyManager,KeyManager.generate(params,cb)},EncKeyManager.prototype.make_sig_eng=function(){return null
},EncKeyManager.prototype.can_sign=function(){return!1},EncKeyManager.prototype.can_verify=function(){return!1},EncKeyManager.prototype.get_mask=function(){return C.key_flags.encrypt_comm|C.key_flags.encrypt_storage},EncKeyManager.import_public=function(_arg,cb){var err,hex,key,raw,ret,_ref1;return hex=_arg.hex,raw=_arg.raw,err=ret=null,null!=hex&&(raw=new Buffer(hex,"hex")),_ref1=DH.parse_kb(raw),err=_ref1[0],key=_ref1[1],null==err&&(ret=new EncKeyManager({key:key})),cb(err,ret)},EncKeyManager}(KeyManager),exports.unbox=unbox=function(_arg,cb){var armored,binary,encrypt_for,esc,packet,rawobj,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,binary=_arg.binary,rawobj=_arg.rawobj,encrypt_for=_arg.encrypt_for,esc=make_esc(cb,"unbox"),function(){return function(__iced_k){return null!=armored||null!=rawobj||null!=binary?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),athrow(new Error("need either 'armored' or 'binary' or 'rawobj'"),esc(__iced_deferrals.defer({lineno:134}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){null!=armored&&(binary=new Buffer(armored,"base64")),function(__iced_k){return null==binary?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),akatch(function(){return encode.unseal(binary)},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return rawobj=arguments[0]}}(),lineno:139}))),__iced_deferrals._fulfill()}(__iced_k)}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),asyncify(alloc(rawobj),esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packet=arguments[0]}}(),lineno:141}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),packet.unbox({encrypt_for:encrypt_for},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return res=arguments[0]}}(),lineno:142}))),__iced_deferrals._fulfill()}(function(){return null!=res.keypair&&(res.km=new KeyManager({key:res.keypair})),null!=res.sender_keypair&&(res.sender_km=new KeyManager({key:res.sender_keypair})),null!=res.receiver_keypair&&(res.receiver_km=new KeyManager({key:res.receiver_keypair})),cb(null,res,binary)})})})}}(this))},box=function(_arg,cb){var anonymous,armored,encrypt_for,esc,msg,packed,packet,sealed,sign_with,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,anonymous=_arg.anonymous,esc=make_esc(cb,"box"),function(){return function(__iced_k){null!=encrypt_for?!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),Encryption.box({sign_with:sign_with,encrypt_for:encrypt_for,plaintext:msg,anonymous:anonymous},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packet=arguments[0]}}(),lineno:158}))),__iced_deferrals._fulfill()}(__iced_k):!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced"}),Signature.box({km:sign_with,payload:msg},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packet=arguments[0]}}(),lineno:160}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return packed=packet.frame_packet(),sealed=encode.seal({obj:packed,dohash:!1}),armored=sealed.toString("base64"),cb(null,armored,sealed)}}(this))},SignatureEngine=function(){function SignatureEngine(_arg){this.km=_arg.km}return SignatureEngine.prototype.get_km=function(){return this.km},SignatureEngine.prototype.box=function(msg,cb){var armored,esc,out,raw,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"SignatureEngine::box"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced",funcname:"SignatureEngine.box"}),box({msg:msg,sign_with:_this.km},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return armored=arguments[0],raw=arguments[1]}}(),lineno:179}))),__iced_deferrals._fulfill()}}(this)(function(){return function(){return out={type:"kb",armored:armored,kb:armored,raw:raw},cb(null,out)}}(this))},SignatureEngine.prototype.unbox=function(msg,cb){var a,arg,b,binary,err,esc,payload,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"SignatureEngine::unbox"),err=payload=null,arg=Buffer.isBuffer(msg)?{binary:msg}:{armored:msg},function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/hilev.iced",funcname:"SignatureEngine.unbox"}),unbox(arg,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return res=arguments[0],binary=arguments[1]}}(),lineno:190}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return res.km.eq(_this.km)?payload=res.payload:(a=res.km.get_ekid().toString("hex"),b=_this.km.get_ekid().toString("hex"),err=new Error("Got wrong signing key: "+a+" != "+b)),cb(err,payload,binary)}}(this))},SignatureEngine}(),module.exports={box:box,unbox:unbox,KeyManager:KeyManager,EncKeyManager:EncKeyManager}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../kmi":27,"../nacl/dh":30,"../nacl/eddsa":31,"../util":70,"./encode":16,"./packet/alloc":18,"./packet/encryption":20,"./packet/signature":22,buffer:80,"iced-error":115,"iced-runtime":118}],18:[function(require,module,exports){(function(){var Encryption,K,P3SKB,Signature;K=require("../../const").kb,P3SKB=require("./p3skb").P3SKB,Signature=require("./signature").Signature,Encryption=require("./encryption").Encryption,exports.alloc=function(_arg){var body,err,ret,tag;return tag=_arg.tag,body=_arg.body,ret=err=null,ret=function(){switch(tag){case K.packet_tags.p3skb:return P3SKB.alloc({tag:tag,body:body});case K.packet_tags.signature:return Signature.alloc({tag:tag,body:body});case K.packet_tags.encryption:return Encryption.alloc({tag:tag,body:body});default:return err=new Error("unknown packet tag: "+tag),null}}(),[err,ret]}}).call(this)},{"../../const":5,"./encryption":20,"./p3skb":21,"./signature":22}],19:[function(require,module,exports){(function(){var K,Packet,seal,util;util=require("../../util"),seal=require("../encode").seal,K=require("../../const").kb,Packet=function(){function Packet(){}return Packet.prototype.frame_packet=function(){return{tag:this.tag(),body:this.get_packet_body()}},Packet.prototype.frame_packet_armored=function(_arg){var dohash,obj;return dohash=_arg.dohash,obj=this.frame_packet(),seal({obj:obj,dohash:dohash}).toString("base64")},Packet.prototype.is_signature=function(){return!1},Packet.prototype.is_p3skb=function(){return!1},Packet.alloc=function(_arg){var P3SKB,Signature,body,err,ret,tag;return tag=_arg.tag,body=_arg.body,ret=err=null,ret=function(){switch(tag){case K.packet_tags.p3skb:return P3SKB=require("./p3skb").P3SKB,P3SKB.alloc({tag:tag,body:body});case K.packet_tags.signature:return Signature=require("./signature").Signature,Signature.alloc({tag:tag,body:body});default:return err=new Error("unknown packet tag: "+tag),null}}(),[err,ret]},Packet.prototype.unbox=function(params,cb){return cb(new Error("unbox() unimplemented for tag="+this.tag))},Packet}(),exports.Packet=Packet}).call(this)},{"../../const":5,"../../util":70,"../encode":16,"./p3skb":21,"./signature":22}],20:[function(require,module,exports){(function(Buffer){(function(){var C,Encryption,K,Packet,dh,iced,konst,make_esc,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},konst=require("../../const"),K=konst.kb,C=konst.openpgp,Packet=require("./base").Packet,make_esc=require("iced-error").make_esc,dh=require("../../nacl/main").dh,Encryption=function(_super){function Encryption(_arg){this.encrypt_for=_arg.encrypt_for,this.sign_with=_arg.sign_with,this.plaintext=_arg.plaintext,this.ciphertext=_arg.ciphertext,this.sender_key=_arg.sender_key,this.nonce=_arg.nonce,this.anonymous=_arg.anonymous,Encryption.__super__.constructor.call(this),this.emphemeral=!1}return __extends(Encryption,_super),Encryption.ENC_TYPE=K.public_key_algorithms.NACL_DH,Encryption.tag=function(){return K.packet_tags.encryption},Encryption.prototype.tag=function(){return Encryption.tag()},Encryption.prototype.get_packet_body=function(){var enc_type;return enc_type=Encryption.ENC_TYPE,{sender_key:this.sender_key,ciphertext:this.ciphertext,nonce:this.nonce,enc_type:enc_type,receiver_key:this.receiver_key}},Encryption.alloc=function(_arg){var a,b,body,err,ret,tag;if(tag=_arg.tag,body=_arg.body,ret=null,err=tag!==Encryption.tag()?new Error("wrong tag found: "+tag):(a=body.enc_type)!==(b=Encryption.ENC_TYPE)?err=new Error("Expected Curve25519 DH (type "+b+"); got "+a):(ret=new Encryption(body),null),null!=err)throw err;return ret},Encryption.prototype.is_signature=function(){return!1},Encryption.prototype.get_sender_keypair=function(_arg,cb){var encrypt,err,ret,sign_with,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sign_with=_arg.sign_with,encrypt=_arg.encrypt,err=ret=null,function(_this){return function(__iced_k){return null!=sign_with?__iced_k(ret=sign_with.get_keypair()):void!function(__iced_k){return null!=_this.sign_with?__iced_k(ret=_this.sign_with.get_keypair()):void!function(__iced_k){return null!=_this.sender_keypair?__iced_k(ret=_this.sender_keypair):void!function(__iced_k){var _ref;return encrypt?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.get_sender_keypair"}),dh.Pair.generate({},__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1.sender_keypair=arguments[1]}}(_this),lineno:56})),__iced_deferrals._fulfill()}(function(){return ret=_this.sender_keypair,__iced_k(_this.emphemeral=!0)}):__iced_k(null!=_this.sender_key?(_ref=dh.Pair.parse_kb(_this.sender_key),err=_ref[0],_this.sender_keypair=_ref[1],_ref,null==err?ret=_this.sender_keypair:void 0):err=new Error("Cannot encrypt without a sender keypair"))}(__iced_k)}(__iced_k)}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))},Encryption.prototype.encrypt=function(params,cb){var esc,plaintext,recvr,sender,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"encrypt"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.encrypt"}),_this.get_sender_keypair({encrypt:!0},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sender=arguments[0]}}(),lineno:71}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){recvr=_this.encrypt_for.get_keypair(),plaintext=Buffer.concat([_this.plaintext,new Buffer([_this.emphemeral?1:0])]),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.encrypt"}),recvr.encrypt_kb({plaintext:plaintext,sender:sender},esc(__iced_deferrals.defer({assign_fn:function(__slot_1,__slot_2){return function(){return __slot_1.ciphertext=arguments[0].ciphertext,__slot_2.nonce=arguments[0].nonce}}(_this,_this),lineno:77}))),__iced_deferrals._fulfill()}(function(){return(!_this.anonymous||_this.emphemeral)&&(_this.sender_key=sender.ekid()),_this.anonymous||(_this.receiver_key=recvr.ekid()),cb(null)})}}(this))},Encryption.prototype.decrypt=function(_arg,cb){var args,encrypt_for,esc,plaintext,recvr,sender,sign_with,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,esc=make_esc(cb,"decrypt"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.decrypt"}),_this.get_sender_keypair({sign_with:sign_with},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sender=arguments[0]}}(),lineno:86}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){args={ciphertext:_this.ciphertext,nonce:_this.nonce,sender:sender},recvr=encrypt_for.get_keypair(),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.decrypt"}),recvr.decrypt_kb(args,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return plaintext=arguments[0]}}(),lineno:89}))),__iced_deferrals._fulfill()}(function(){return _this.plaintext=plaintext.slice(0,-1),_this.emphemeral=plaintext.slice(-1)[0],cb(null,{sender_keypair:sender,plaintext:_this.plaintext,emphemeral:_this.emphemeral,receiver_keypair:recvr})})}}(this))},Encryption.prototype.unbox=function(_arg,cb){var encrypt_for,err,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),encrypt_for=_arg.encrypt_for,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.unbox"}),_this.decrypt({encrypt_for:encrypt_for},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],res=arguments[1]}}(),lineno:97})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,res)}}(this))},Encryption.box=function(_arg,cb){var anonymous,encrypt_for,err,packet,plaintext,sign_with,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,plaintext=_arg.plaintext,anonymous=_arg.anonymous,packet=new Encryption({sign_with:sign_with,encrypt_for:encrypt_for,plaintext:plaintext,anonymous:anonymous}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/encryption.iced",funcname:"Encryption.box"}),packet.encrypt({},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:104})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return"undefined"!=typeof err&&null!==err&&(packet=null),cb(err,packet)}}(this))},Encryption}(Packet),exports.Encryption=Encryption}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../nacl/main":32,"./base":19,buffer:80,"iced-error":115,"iced-runtime":118}],21:[function(require,module,exports){(function(){var Decryptor,K,P3SKB,Packet,SHA512,box,bufeq_secure,bufferify,iced,make_esc,native_rng,pack,rsa,triplesec,__iced_k,__iced_k_noop,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},K=require("../../const").kb,triplesec=require("triplesec"),SHA512=require("../../hash").SHA512,Decryptor=triplesec.Decryptor,native_rng=triplesec.prng.native_rng,Packet=require("./base").Packet,_ref=require("../encode"),pack=_ref.pack,box=_ref.box,make_esc=require("iced-error").make_esc,rsa=require("../../rsa"),_ref1=require("../../util"),bufeq_secure=_ref1.bufeq_secure,bufferify=_ref1.bufferify,P3SKB=function(_super){function P3SKB(_arg){var priv,priv_clear;this.pub=_arg.pub,priv_clear=_arg.priv_clear,priv=_arg.priv,this.type=_arg.type,P3SKB.__super__.constructor.call(this),this.priv=null!=priv?priv:null!=priv_clear?{data:priv_clear,encryption:K.key_encryption.none}:void 0}return __extends(P3SKB,_super),P3SKB.tag=function(){return K.packet_tags.p3skb},P3SKB.prototype.tag=function(){return P3SKB.tag()},P3SKB.prototype.get_packet_body=function(){var ret;return ret={pub:this.pub,priv:this.priv},null!=this.type&&(ret.type=this.type),ret},P3SKB.prototype.lock=function(_arg,cb){var asp,ct,err,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,tsenc=_arg.tsenc,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/p3skb.iced",funcname:"P3SKB.lock"}),tsenc.run({data:_this.priv.data,progress_hook:null!=asp?asp.progress_hook():void 0},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ct=arguments[1]}}(),lineno:30})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(_this.priv.data=ct,_this.priv.encryption=K.key_encryption.triplesec_v3),cb(err)}}(this))},P3SKB.prototype.unlock=function(_arg,cb){var asp,dec,err,progress_hook,raw,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,tsenc=_arg.tsenc,function(_this){return function(__iced_k){switch(_this.priv.encryption){case K.key_encryption.triplesec_v3:case K.key_encryption.triplesec_v2:case K.key_encryption.triplesec_v1:dec=new Decryptor({enc:tsenc}),progress_hook=null!=asp?asp.progress_hook():void 0,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/p3skb.iced",funcname:"P3SKB.unlock"}),dec.run({data:_this.priv.data,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],raw=arguments[1]}}(),lineno:41})),__iced_deferrals._fulfill()}(function(){return dec.scrub(),__iced_k("undefined"==typeof err||null===err?(_this.priv.data=raw,_this.priv.encryption=K.key_encryption.none):void 0)});break;case K.key_encryption.none:return __iced_k();default:return __iced_k(err=new Error("Unknown key encryption type: "+k.encryption))}}}(this)(function(){return function(){return cb(err)}}(this))},P3SKB.alloc=function(_arg){var body,tag;if(tag=_arg.tag,body=_arg.body,tag===P3SKB.tag())return new P3SKB(body);throw new Error("wrong tag found: "+tag)},P3SKB.prototype.has_private=function(){return null!=this.priv},P3SKB.prototype.is_locked=function(){return this.priv.encryption!==K.key_encryption.none},P3SKB.prototype.get_private_data=function(){var _ref2;return null!=(_ref2=this.priv)?_ref2.data:void 0},P3SKB.prototype.get_public_data=function(){return this.pub},P3SKB.prototype.get_key_type=function(){return this.type},P3SKB.prototype.is_p3skb=function(){return!0},P3SKB}(Packet),exports.P3SKB=P3SKB}).call(this)},{"../../const":5,"../../hash":14,"../../rsa":67,"../../util":70,"../encode":16,"./base":19,"iced-error":115,"iced-runtime":118,triplesec:181}],22:[function(require,module,exports){(function(){var C,K,Packet,Signature,eddsa,iced,konst,make_esc,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},konst=require("../../const"),K=konst.kb,C=konst.openpgp,Packet=require("./base").Packet,make_esc=require("iced-error").make_esc,eddsa=require("../../nacl/main").eddsa,Signature=function(_super){function Signature(_arg){this.key=_arg.key,this.payload=_arg.payload,this.sig=_arg.sig,this.detached=_arg.detached,Signature.__super__.constructor.call(this)}return __extends(Signature,_super),Signature.SIG_TYPE=K.public_key_algorithms.NACL_EDDSA,Signature.HASH_TYPE=C.hash_algorithms.SHA512,Signature.tag=function(){return K.packet_tags.signature},Signature.prototype.tag=function(){return Signature.tag()},Signature.prototype.get_packet_body=function(){var hash_type,sig_type;return sig_type=Signature.SIG_TYPE,hash_type=Signature.HASH_TYPE,{key:this.key,payload:this.payload,sig:this.sig,detached:this.detached,sig_type:sig_type,hash_type:hash_type}},Signature.alloc=function(_arg){var a,b,body,err,ret,tag;if(tag=_arg.tag,body=_arg.body,ret=null,err=tag!==Signature.tag()?new Error("wrong tag found: "+tag):(a=body.hash_type)!==(b=Signature.HASH_TYPE)?new Error("Expected SHA512 (type "+b+"); got "+a):(a=body.sig_type)!==(b=Signature.SIG_TYPE)?err=new Error("Expected EDDSA (type "+b+"); got "+a):(ret=new Signature(body),null),null!=err)throw err;return ret},Signature.prototype.is_signature=function(){return!0},Signature.prototype.verify=function(cb){var err,esc,km,pair,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"verify"),err=km=null,_ref=eddsa.Pair.parse_kb(this.key),err=_ref[0],pair=_ref[1],function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/signature.iced",funcname:"Signature.verify"}),pair.verify_kb(_this,esc(__iced_deferrals.defer({lineno:58}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){return cb(err,{keypair:pair,payload:_this.payload})}}(this))},Signature.prototype.unbox=function(params,cb){var err,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/signature.iced",funcname:"Signature.unbox"}),_this.verify(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],res=arguments[1]}}(),lineno:64})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,res)}}(this))},Signature.box=function(_arg,cb){var detached,esc,km,packet,pair,payload,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),km=_arg.km,payload=_arg.payload,esc=make_esc(cb,"@sign"),pair=km.get_keypair(),detached=!0,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/packet/signature.iced",funcname:"Signature.box"}),pair.sign_kb({payload:payload,detached:detached},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:73}))),__iced_deferrals._fulfill()}}(this)(function(){return function(){return packet=new Signature({key:pair.ekid(),payload:payload,sig:sig,detached:detached}),cb(null,packet)}}(this))},Signature}(Packet),exports.Signature=Signature,exports.sign=Signature.sign}).call(this)},{"../../const":5,"../../nacl/main":32,"./base":19,"iced-error":115,"iced-runtime":118}],23:[function(require,module,exports){(function(Buffer){(function(){var SRF,bufxor,genseed,iced,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},SRF=require("../rand").SRF,exports.bufxor=bufxor=function(b1,b2){var arr,c,i;return arr=function(){var _i,_len,_results;for(_results=[],i=_i=0,_len=b1.length;_len>_i;i=++_i)c=b1[i],_results.push(c^b2[i]);return _results}(),new Buffer(arr)},exports.genseed=genseed=function(_arg,cb){var err,len,rseed,seed,server_half,split,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),seed=_arg.seed,split=_arg.split,len=_arg.len,server_half=_arg.server_half,err=rseed=null,null==server_half&&(server_half=null),function(){return function(__iced_k){return null==seed||split&&null==server_half?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/keybase/util.iced"}),SRF().random_bytes(len,__iced_deferrals.defer({assign_fn:function(){return function(){return rseed=arguments[0]}}(),lineno:16})),__iced_deferrals._fulfill()}(__iced_k):__iced_k()}}(this)(function(){return function(){return null!=seed&&seed.length!==len?err=new Error("Wrong seed length; need "+len+" bytes; got "+seed.length):null!=seed&&null!=rseed?(server_half=rseed,seed=bufxor(seed,rseed)):null!=seed&&null!=server_half?seed=bufxor(seed,server_half):null==seed&&(seed=rseed),cb(err,{seed:seed,server_half:server_half})}}(this))}}).call(this)}).call(this,require("buffer").Buffer)},{"../rand":65,buffer:80,"iced-runtime":118}],24:[function(require,module,exports){(function(){var KeyFetcher;KeyFetcher=function(){function KeyFetcher(){}return KeyFetcher.prototype.fetch=function(ids,ops,cb){return cb(new Error("not implemented"))},KeyFetcher}(),exports.KeyFetcher=KeyFetcher}).call(this)},{}],25:[function(require,module,exports){(function(){var KeyFetcher,PgpKeyRing,hexkid,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};KeyFetcher=require("./keyfetch").KeyFetcher,hexkid=function(k){return k.toString("hex")},PgpKeyRing=function(_super){function PgpKeyRing(){this._keys={},this._kms={}}return __extends(PgpKeyRing,_super),PgpKeyRing.prototype.add_key_manager=function(km){var k,keys,kid,_i,_len,_results;for(keys=km.export_pgp_keys_to_keyring(),_results=[],_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],kid=hexkid(k.key_material.get_key_id()),this._keys[kid]=k,_results.push(this._kms[kid]=km);return _results},PgpKeyRing.prototype.fetch=function(key_ids,ops,cb){var err,i,id,k,key_material,km,obj,ret_i,_i,_len,_ref;for(key_material=err=obj=null,key_ids=function(){var _i,_len,_results;for(_results=[],_i=0,_len=key_ids.length;_len>_i;_i++)k=key_ids[_i],_results.push(hexkid(k));return _results}(),km=null,i=_i=0,_len=key_ids.length;_len>_i;i=++_i)if(id=key_ids[i],k=this._keys[id],null!=k&&null!=(_ref=k.key)?_ref.can_perform(ops):void 0){ret_i=i,km=this._kms[id];break}return null==km&&(err=new Error("key not found: "+JSON.stringify(key_ids))),cb(err,km,ret_i)},PgpKeyRing.prototype.find_best_key=function(_arg,cb){var err,flags,key,key_id,kid,km;return key_id=_arg.key_id,flags=_arg.flags,null==(km=this._kms[kid=hexkid(key_id)])?err=new Error("Could not find key for fingerprint "+kid):null==(key=km.find_best_pgp_key(flags))&&(err=new Error("no matching key for flags: "+flags)),cb(err,key)},PgpKeyRing.prototype.lookup=function(key_id){return this._keys[hexkid(key_id)]},PgpKeyRing}(KeyFetcher),exports.PgpKeyRing=PgpKeyRing,exports.KeyRing=PgpKeyRing}).call(this)},{"./keyfetch":24}],26:[function(require,module,exports){(function(){var C,KeyWrapper,Lifespan,Primary,Subkey,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};C=require("./const"),Lifespan=function(){function Lifespan(_arg){this.generated=_arg.generated,this.expire_in=_arg.expire_in,null==this.expire_in&&(this.expire_in=C.default_key_expire_in)}return Lifespan}(),KeyWrapper=function(){function KeyWrapper(_arg){this.key=_arg.key,this.lifespan=_arg.lifespan,this._pgp=_arg._pgp,this._keybase=_arg._keybase,this.flags=_arg.flags}return KeyWrapper.prototype.ekid=function(){return this.key.ekid()},KeyWrapper}(),Subkey=function(_super){function Subkey(_arg){var flags,key,lifespan,_keybase,_pgp;key=_arg.key,flags=_arg.flags,_pgp=_arg._pgp,_keybase=_arg._keybase,this.desc=_arg.desc,lifespan=_arg.lifespan,this.primary=_arg.primary,Subkey.__super__.constructor.call(this,{key:key,lifespan:lifespan,flags:flags,_pgp:_pgp,_keybase:_keybase})}return __extends(Subkey,_super),Subkey}(KeyWrapper),Primary=function(_super){function Primary(_arg){var flags,key,lifespan,_keybase,_pgp;key=_arg.key,lifespan=_arg.lifespan,flags=_arg.flags,_pgp=_arg._pgp,_keybase=_arg._keybase,Primary.__super__.constructor.call(this,{key:key,lifespan:lifespan,flags:flags,_pgp:_pgp,_keybase:_keybase})}return __extends(Primary,_super),Primary}(KeyWrapper),exports.Lifespan=Lifespan,exports.Subkey=Subkey,exports.Primary=Primary}).call(this)},{"./const":5}],27:[function(require,module,exports){(function(){var EUI,KeyFetcher,KeyManagerInterface,SignatureEngineInterface,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};KeyFetcher=require("./keyfetch").KeyFetcher,EUI=new Error("not implemented"),exports.KeyManagerInterface=KeyManagerInterface=function(_super){function KeyManagerInterface(){}return __extends(KeyManagerInterface,_super),KeyManagerInterface.prototype.get_pgp_fingerprint=function(){return null},KeyManagerInterface.prototype.get_ekid=function(){return null},KeyManagerInterface.prototype.get_fp2=function(){return null},KeyManagerInterface.prototype.get_fp2_formatted=function(){return null},KeyManagerInterface.prototype.get_type=function(){return null},KeyManagerInterface.prototype.check_public_eq=function(){return this.EUI},KeyManagerInterface.prototype.get_userids=function(){return[]},KeyManagerInterface.prototype.get_primary_keypair=function(){return null},KeyManagerInterface.prototype.get_all_pgp_key_materials=function(){return[]},KeyManagerInterface.prototype.get_userids_mark_primary=function(){return[]},KeyManagerInterface.prototype.make_sig_eng=function(){return null},KeyManagerInterface.prototype.export_public=function(_arg,cb){var asp,regen;return asp=_arg.asp,regen=_arg.regen,cb(EUI,null)},KeyManagerInterface.prototype.can_verify=function(){return!1},KeyManagerInterface}(KeyFetcher),exports.SignatureEngineInterface=SignatureEngineInterface=function(){function SignatureEngineInterface(_arg){this.km=_arg.km}return SignatureEngineInterface.prototype.get_km=function(){return this.km
},SignatureEngineInterface.prototype.box=function(msg,cb){return cb(EUI)},SignatureEngineInterface.prototype.unbox=function(msb,cb){return cb(EUI)},SignatureEngineInterface}()}).call(this)},{"./keyfetch":24}],28:[function(require,module,exports){(function(){var Lock,NamedLock,Table,iced,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Lock=function(){function Lock(){this._open=!0,this._waiters=[]}return Lock.prototype.acquire=function(cb){return this._open?(this._open=!1,cb()):this._waiters.push(cb)},Lock.prototype.release=function(){var w;return this._waiters.length?(w=this._waiters.shift())():this._open=!0},Lock.prototype.open=function(){return this._open},Lock}(),NamedLock=function(_super){function NamedLock(tab,name){this.tab=tab,this.name=name,NamedLock.__super__.constructor.call(this),this.refs=0}return __extends(NamedLock,_super),NamedLock.prototype.incref=function(){return++this.refs},NamedLock.prototype.decref=function(){return--this.refs},NamedLock.prototype.release=function(){return NamedLock.__super__.release.call(this),0===this.decref()?delete this.tab[this.name]:void 0},NamedLock}(Lock),Table=function(){function Table(){this.locks={}}return Table.prototype.create=function(name){var l;return l=new NamedLock(this,name),this.locks[name]=l},Table.prototype.acquire=function(name,cb,wait){var l,was_open,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),l=this.locks[name]||this.create(name),was_open=l._open,l.incref(),function(){return function(__iced_k){return wait||l._open?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/lock.iced",funcname:"Table.acquire"}),l.acquire(__iced_deferrals.defer({lineno:68})),__iced_deferrals._fulfill()}(__iced_k):__iced_k(l=null)}}(this)(function(){return function(){return cb(l,was_open)}}(this))},Table.prototype.lookup=function(name){return this.locks[name]},Table}(),exports.Lock=Lock,exports.Table=Table}).call(this)},{"iced-runtime":118}],29:[function(require,module,exports){(function(Buffer){(function(){var k,m,mods,util,v,_i,_len;for(mods=[require("./openpgp/keymanager"),require("./basex"),require("./openpgp/burner"),require("./openpgp/hilev"),require("./keyfetch"),require("./keyring")],_i=0,_len=mods.length;_len>_i;_i++){m=mods[_i];for(k in m)v=m[k],exports[k]=v}exports.util=util=require("./util"),exports.ASP=util.ASP,exports.rand=require("./rand"),exports["const"]=require("./const"),exports.processor=require("./openpgp/processor"),exports.armor=require("./openpgp/armor"),exports.keyring=require("./keyring"),exports.parser=require("./openpgp/parser"),exports.Buffer=Buffer,exports.triplesec=require("triplesec"),exports.hash=require("./hash"),exports.ecc=require("./ecc/main"),exports.nacl=require("./nacl/main"),exports.kb=require("./keybase/hilev"),exports.ukm=require("./ukm")}).call(this)}).call(this,require("buffer").Buffer)},{"./basex":3,"./const":5,"./ecc/main":11,"./hash":14,"./keybase/hilev":17,"./keyfetch":24,"./keyring":25,"./nacl/main":32,"./openpgp/armor":33,"./openpgp/burner":36,"./openpgp/hilev":41,"./openpgp/keymanager":42,"./openpgp/parser":56,"./openpgp/processor":57,"./rand":65,"./ukm":69,"./util":70,buffer:80,triplesec:181}],30:[function(require,module,exports){(function(Buffer){(function(){var BaseKey,BaseKeyPair,K,NaclEddsa,Pair,Priv,Pub,SRF,TYPE,b2u,box,bufeq_fast,genseed,iced,konst,u2b,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},box=require("tweetnacl").box,SRF=require("../rand").SRF,konst=require("../const"),K=konst.kb,_ref=require("../util"),genseed=_ref.genseed,bufeq_fast=_ref.bufeq_fast,_ref1=require("../basekeypair"),BaseKey=_ref1.BaseKey,BaseKeyPair=_ref1.BaseKeyPair,_ref2=require("./eddsa"),b2u=_ref2.b2u,u2b=_ref2.u2b,NaclEddsa=require("./eddsa").Pair,TYPE=K.public_key_algorithms.NACL_DH,b2u=function(b){return new Uint8Array(b)},u2b=function(u){return new Buffer(u)},Pub=function(){function Pub(key){this.key=key}return Pub.HEADER=new Buffer([K.kid.version,TYPE]),Pub.TRAILER=new Buffer([K.kid.trailer]),Pub.LEN=Pub.HEADER.length+Pub.TRAILER.length+box.publicKeyLength,Pub.alloc_kb=function(kid){var err,key;return err=key=null,err=kid.length!==Pub.LEN?new Error("bad key length"):bufeq_fast(kid.slice(-1),Pub.TRAILER)?bufeq_fast(kid.slice(0,2),Pub.HEADER)?(key=new Pub(kid.slice(2,-1)),null):new Error("bad header"):new Error("bad trailing byte"),[err,key]},Pub.prototype.serialize=function(){return this.key},Pub.prototype.nbits=function(){return 255},Pub.prototype.read_params=function(){},Pub.prototype.encrypt=function(_arg,cb){var nonce,plaintext,res,sender,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),plaintext=_arg.plaintext,sender=_arg.sender,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/dh.iced",funcname:"Pub.encrypt"}),SRF().random_bytes(box.nonceLength,__iced_deferrals.defer({assign_fn:function(){return function(){return nonce=arguments[0]}}(),lineno:49})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return res=box(b2u(plaintext),b2u(nonce),b2u(_this.key),b2u(sender.priv.key)),cb(null,{ciphertext:u2b(res),nonce:nonce})}}(this))},Pub}(),Priv=function(){function Priv(key){this.key=key}return Priv.prototype.alloc=function(raw){var err,key;return err=key=null,raw.length!==box.secretKeyLength?err=new Error("Bad secret key length"):key=new Priv(raw),[err,key]},Priv.prototype.decrypt=function(_arg,cb){var ciphertext,err,nonce,res,sender;return ciphertext=_arg.ciphertext,nonce=_arg.nonce,sender=_arg.sender,err=res=null,res=box.open(b2u(ciphertext),b2u(nonce),b2u(sender.pub.key),b2u(this.key)),res===!1?(err=new Error("decryption failed"),res=null):res=u2b(res),cb(err,res)},Priv}(),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=K.public_key_algorithms.NACL_DH,Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.klass_name="DH",Pair.prototype.can_encrypt=function(){return!0},Pair.prototype.can_sign=function(){return!1},Pair.prototype.hash=function(){return this.serialize()},Pair.prototype.encrypt_kb=function(_arg,cb){var plaintext,sender;return plaintext=_arg.plaintext,sender=_arg.sender,this.pub.encrypt({plaintext:plaintext,sender:sender},cb)},Pair.prototype.decrypt_kb=function(_arg,cb){var ciphertext,err,nonce,plaintex,plaintext,sender,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ciphertext=_arg.ciphertext,nonce=_arg.nonce,sender=_arg.sender,err=plaintex=null,function(_this){return function(__iced_k){return null==_this.priv?__iced_k(err=new Error("no secret key available")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/dh.iced",funcname:"Pair.decrypt_kb"}),_this.priv.decrypt({ciphertext:ciphertext,nonce:nonce,sender:sender},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],plaintext=arguments[1]}}(),lineno:117})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,plaintext)}}(this))},Pair.subkey_algo=function(flags){return flags&(C.key_flags.encrypt_comm|C.key_flags.encrypt_storage)?Pair:NaclEddsa},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=C.key_flags.encrypt_comm|C.key_flags.encrypt_storage,(flags&good_for)===flags},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var data,hash,hasher,sig;return sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,cb(new Error("verify_unpad_and_check_hash unsupported"))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var hasher;return hasher=_arg.hasher,cb(new Error("pad_and_sign unsupported"))},Pair.parse_kb=function(pub_raw){return BaseKeyPair.parse_kb(Pair,pub_raw)},Pair.parse_sig=function(){var err;throw err=new Error("@parse_sig unsupported")},Pair.read_sig_from_buf=function(){var err;return err=new Error("@read_sig_from_buf unsupported"),[err]},Pair.generate=function(_arg,cb){var arg,err,priv,pub,publicKey,secretKey,seed,server_half,split,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),server_half=_arg.server_half,seed=_arg.seed,split=_arg.split,arg={seed:seed,split:split,len:box.secretKeyLength,server_half:server_half},function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/dh.iced",funcname:"Pair.generate"}),genseed(arg,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],server_half=arguments[1].server_half,seed=arguments[1].seed}}(),lineno:178})),__iced_deferrals._fulfill()}}(this)(function(){return function(){var _ref3;return("undefined"==typeof err||null===err)&&(_ref3=box.keyPair.fromSecretKey(b2u(seed)),secretKey=_ref3.secretKey,publicKey=_ref3.publicKey,pub=new Pub(u2b(publicKey)),priv=new Priv(u2b(secretKey))),cb(err,new Pair({pub:pub,priv:priv}),server_half)}}(this))},Pair}(BaseKeyPair),exports.DH=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"../basekeypair":2,"../const":5,"../rand":65,"../util":70,"./eddsa":31,buffer:80,"iced-runtime":118,tweetnacl:201}],31:[function(require,module,exports){(function(Buffer){(function(){var BaseKey,BaseKeyPair,K,NaclDh,Pair,Priv,Pub,SRF,TYPE,b2u,bufeq_fast,bufeq_secure,genseed,iced,konst,sign,u2b,__iced_k,__iced_k_noop,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},sign=require("tweetnacl/nacl-fast").sign,SRF=require("../rand").SRF,konst=require("../const"),K=konst.kb,_ref=require("../util"),genseed=_ref.genseed,bufeq_secure=_ref.bufeq_secure,bufeq_fast=_ref.bufeq_fast,_ref1=require("../basekeypair"),BaseKey=_ref1.BaseKey,BaseKeyPair=_ref1.BaseKeyPair,NaclDh=require("./dh").Pair,TYPE=K.public_key_algorithms.NACL_EDDSA,exports.b2u=b2u=function(b){return new Uint8Array(b)},exports.u2b=u2b=function(u){return new Buffer(u)},Pub=function(){function Pub(key){this.key=key}return Pub.HEADER=new Buffer([K.kid.version,TYPE]),Pub.TRAILER=new Buffer([K.kid.trailer]),Pub.LEN=Pub.HEADER.length+Pub.TRAILER.length+sign.publicKeyLength,Pub.alloc_kb=function(kid){var err,key;return err=key=null,err=kid.length!==Pub.LEN?new Error("bad key length"):bufeq_fast(kid.slice(-1),Pub.TRAILER)?bufeq_fast(kid.slice(0,2),Pub.HEADER)?(key=new Pub(kid.slice(2,-1)),null):new Error("bad header"):new Error("bad trailing byte"),[err,key]},Pub.prototype.serialize=function(){return this.key},Pub.prototype.nbits=function(){return 255},Pub.prototype.read_params=function(){},Pub.prototype.verify=function(_arg,cb){var detached,err,payload,r_payload,sig;return payload=_arg.payload,sig=_arg.sig,detached=_arg.detached,detached?(null==payload&&(payload=new Buffer([])),sign.detached.verify(b2u(payload),b2u(sig),b2u(this.key))||(err=new Error("signature didn't verify"))):null==(r_payload=sign.open(b2u(sig),b2u(this.key)))?err=new Error("signature didn't verify"):null==(r_payload=u2b(r_payload))?err=new Error("failed to convert from a Uint8Array to a buffer"):null==payload||bufeq_secure(r_payload,payload)?payload=r_payload:err=new Error("got unexpected payload"),cb(err,payload)},Pub}(),Priv=function(){function Priv(key){this.key=key}return Priv.prototype.alloc=function(raw){var err,key;return err=key=null,raw.length!==sign.secretKeyLength?err=new Error("Bad secret key length"):key=new Priv(raw),[err,key]},Priv.prototype.sign=function(_arg,cb){var detached,f,payload,sig;return payload=_arg.payload,detached=_arg.detached,f=detached?sign.detached:sign,sig=u2b(f(b2u(payload),b2u(this.key))),cb(sig)},Priv}(),Pair=function(_super){function Pair(_arg){var priv,pub;pub=_arg.pub,priv=_arg.priv,Pair.__super__.constructor.call(this,{pub:pub,priv:priv})}return __extends(Pair,_super),Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.type=K.public_key_algorithms.NACL_EDDSA,Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.klass_name="EDDSA",Pair.prototype.can_encrypt=function(){return!1},Pair.prototype.hash=function(){return this.serialize()},Pair.prototype.sign_kb=function(_arg,cb){var detached,err,payload,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),payload=_arg.payload,detached=_arg.detached,err=sig=null,function(_this){return function(__iced_k){return null==_this.priv?__iced_k(err=new Error("no secret key available")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/eddsa.iced",funcname:"Pair.sign_kb"}),_this.priv.sign({payload:payload,detached:detached},__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:119})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,sig)}}(this))},Pair.prototype.verify_kb=function(_arg,cb){var detached,payload,sig;return payload=_arg.payload,sig=_arg.sig,detached=_arg.detached,this.pub.verify({payload:payload,sig:sig,detached:detached},cb)},Pair.subkey_algo=function(flags){return flags&(C.key_flags.certify_keys|C.key_flags.sign_data)?Pair:NaclDh},Pair.prototype.fulfills_flags=function(flags){var good_for;return good_for=C.key_flags.certify_keys|C.key_flags.sign_data,(flags&good_for)===flags},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var data,hash,hasher,sig;return sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,cb(new Error("verify_unpad_and_check_hash unsupported"))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var hasher;return hasher=_arg.hasher,cb(new Error("pad_and_sign unsupported"))},Pair.parse_kb=function(pub_raw){return BaseKeyPair.parse_kb(Pair,pub_raw)},Pair.parse_sig=function(){var err;throw err=new Error("@parse_sig unsupported")},Pair.read_sig_from_buf=function(){var err;return err=new Error("@read_sig_from_buf unsupported"),[err]},Pair.generate=function(_arg,cb){var arg,err,priv,pub,publicKey,secretKey,seed,server_half,split,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),seed=_arg.seed,split=_arg.split,server_half=_arg.server_half,arg={seed:seed,split:split,len:sign.seedLength,server_half:server_half},function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/nacl/eddsa.iced",funcname:"Pair.generate"}),genseed(arg,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],server_half=arguments[1].server_half,seed=arguments[1].seed}}(),lineno:185})),__iced_deferrals._fulfill()}}(this)(function(){return function(){var _ref2;return("undefined"==typeof err||null===err)&&(_ref2=sign.keyPair.fromSeed(b2u(seed)),secretKey=_ref2.secretKey,publicKey=_ref2.publicKey,pub=new Pub(u2b(publicKey)),priv=new Priv(u2b(secretKey))),cb(err,new Pair({pub:pub,priv:priv}),server_half)}}(this))},Pair}(BaseKeyPair),exports.EdDSA=exports.Pair=Pair}).call(this)}).call(this,require("buffer").Buffer)},{"../basekeypair":2,"../const":5,"../rand":65,"../util":70,"./dh":30,buffer:80,"iced-runtime":118,"tweetnacl/nacl-fast":200}],32:[function(require,module,exports){(function(){exports.eddsa=require("./eddsa"),exports.dh=require("./dh")}).call(this)},{"./dh":30,"./eddsa":31}],33:[function(require,module,exports){(function(){var C,Ch,Parser,armor,bufeq_fast,decode,katch,uint_to_buffer,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("../util"),katch=_ref.katch,bufeq_fast=_ref.bufeq_fast,uint_to_buffer=_ref.uint_to_buffer,C=require("../const"),Ch=require("../header"),armor=require("pgp-utils").armor,exports.encode=function(type,data){var mt;return mt=C.openpgp.message_types,type=function(){switch(type){case mt.public_key:return"PUBLIC KEY BLOCK";case mt.private_key:return"PRIVATE KEY BLOCK";case mt.signature:return"SIGNATURE";case mt.generic:return"MESSAGE";default:throw new Error("Cannot encode tag type "+type)}}(),armor.encode(Ch,type,data)},Parser=function(_super){function Parser(){return Parser.__super__.constructor.apply(this,arguments)}return __extends(Parser,_super),Parser.prototype.parse_type=function(){var mt;return mt=C.openpgp.message_types,this.ret.type=function(){switch(this.type){case"PUBLIC KEY BLOCK":return mt.public_key;case"PRIVATE KEY BLOCK":return mt.private_key;case"SIGNED MESSAGE":if(this.ret.clearsign)return mt.clearsign;throw new Error("Signed message, but not clear-signed");case"SIGNATURE":return mt.signature;case"MESSAGE":return mt.generic;default:throw new Error("Unknown message type: "+this.type)}}.call(this),this.ret.fields.type=this.type},Parser}(armor.Parser),exports.Message=armor.Message,exports.decode=decode=function(data){return katch(function(){return new Parser(data).parse()})},exports.mdecode=decode=function(data){return katch(function(){return new Parser(data).mparse()})}}).call(this)},{"../const":5,"../header":15,"../util":70,"pgp-utils":163}],34:[function(require,module,exports){(function(){var ASP,BaseBurner,iced,make_esc,__iced_k,__iced_k_noop,__slice=[].slice;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,ASP=require("pgp-utils").util.ASP,exports.BaseBurner=BaseBurner=function(){function BaseBurner(_arg){this.sign_with=_arg.sign_with,this.encrypt_for=_arg.encrypt_for,this.signing_key=_arg.signing_key,this.encryption_key=_arg.encryption_key,this.asp=_arg.asp,this.asp=ASP.make(this.asp)}return BaseBurner.prototype._find_keys=function(cb){var esc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"find_keys"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/baseburner.iced",funcname:"BaseBurner._find_keys"}),_this._find_signing_key(esc(__iced_deferrals.defer({lineno:17}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/baseburner.iced",funcname:"BaseBurner._find_keys"}),_this._find_encryption_key(esc(__iced_deferrals.defer({lineno:18}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/baseburner.iced",funcname:"BaseBurner._find_keys"}),_this._assert_one(esc(__iced_deferrals.defer({lineno:19}))),__iced_deferrals._fulfill()}(function(){return cb(null)})})}}(this))},BaseBurner.prototype._assert_one=function(cb){var err;return err=null,null==this.signing_key&&null==this.encryption_keys&&(err=new Error("need either an encryption or signing key, or both")),cb(err)},BaseBurner.prototype._find_signing_key=function(cb){var err;return err=null,null!=this.sign_with&&null!=this.signing_key?err=new Error("specify either `sign_with` or `signing_key` but not both"):null!=this.sign_with&&null==(this.signing_key=this.sign_with.find_signing_pgp_key())&&(err=new Error("cannot sign with the given KeyManager")),cb(err)},BaseBurner.prototype._find_encryption_key=function(cb){var arrayize,count_true,err,f,i,k,_i,_len,_ref;if(err=null,count_true=function(){var e,i,v,_i,_len;for(v=1<=arguments.length?__slice.call(arguments,0):[],i=0,_i=0,_len=v.length;_len>_i;_i++)e=v[_i],e&&i++;return i},arrayize=function(e){return null==e?[]:"object"==typeof e&&Array.isArray(e)?e:[e]},count_true(null!=this.encrypt_for,null!=this.encryption_key,null!=this.encryption_keys)>1)err=new Error("specify only one of `encrypt_for`, `encryption_keys` and `encryption_key`");else if(null!=this.encrypt_for)for(this.encryption_keys=[],_ref=this.encrypt_for=arrayize(this.encrypt_for),i=_i=0,_len=_ref.length;_len>_i;i=++_i){if(f=_ref[i],null==(k=f.find_crypt_pgp_key())){err=new Error("cannot encrypt with the given KeyManager (i="+i+")");break}this.encryption_keys.push(k)}else null!=this.encryption_key?this.encryption_keys=[this.encryption_key]:null!=this.encryption_keys&&(this.encryption_keys=arrayize(this.encryption_keys));return cb(err)},BaseBurner}()}).call(this)},{"iced-error":115,"iced-runtime":118,"pgp-utils":163}],35:[function(require,module,exports){(function(Buffer){(function(){var SlicerBuffer;SlicerBuffer=function(){function SlicerBuffer(buf,start){if(this.buf=buf,this.start=null!=start?start:0,!Buffer.isBuffer(this.buf))throw new Error("need a Buffer!");this.i=this.start,this._end=null}return SlicerBuffer.prototype.clamp=function(len){var ret;return ret=this._end,this._end=this.i+len,ret},SlicerBuffer.prototype.unclamp=function(e){return this.start=this.i,this._end=e},SlicerBuffer.prototype.len=function(){return this.buf.length-this.start},SlicerBuffer.prototype.rem=function(){return this.buf.length-this.i},SlicerBuffer.prototype.offset=function(){return this.i-this.start},SlicerBuffer.prototype.check=function(){if(this._end&&this.i>this._end||this.i>this.buf.length)throw new Error("read off the end of the packet @"+this.i+"/"+this.buf.length+"/"+this._end)},SlicerBuffer.prototype.read_uint8=function(){var ret;return ret=this.buf.readUInt8(this.i++),this.check(),ret},SlicerBuffer.prototype.read_uint16=function(){var ret;return ret=this.buf.readUInt16BE(this.i),this.i+=2,this.check(),ret},SlicerBuffer.prototype.read_uint32=function(){var ret;return ret=this.buf.readUInt32BE(this.i),this.i+=4,this.check(),ret},SlicerBuffer.prototype.read_buffer_at_most=function(l){return this.read_buffer(Math.min(l,this.rem()))},SlicerBuffer.prototype.read_buffer=function(l){var ret;return ret=this.buf.slice(this.i,this.i+l),this.i+=l,this.check(),ret},SlicerBuffer.prototype.end=function(){return this._end||this.buf.length},SlicerBuffer.prototype.peek_rest_to_buffer=function(){return this.buf.slice(this.i,this.end())},SlicerBuffer.prototype.consume_rest_to_buffer=function(){var ret;return ret=this.peek_rest_to_buffer(),this.i=this.end(),ret},SlicerBuffer.prototype.advance=function(i){return null==i&&(i=1),this.i+=i},SlicerBuffer.prototype.peek_to_buffer=function(len){return this.buf.slice(this.i,this.i+len)},SlicerBuffer.prototype.peek_uint8=function(){return this.buf.readUInt8(this.i)},SlicerBuffer.prototype.peek_uint16=function(){return this.buf.readUInt16BE(this.i)},SlicerBuffer.prototype.read_string=function(){return this.read_buffer(this.read_uint8())},SlicerBuffer.prototype.read_v4_length=function(){var five_byte,len,p;return p=this.peek_uint8(),five_byte=!1,len=192>p?(this.advance(1),p):224>p?this.read_uint16()-49152+192:255>p?(this.advance(1),1<<(31&p)):(this.advance(1),five_byte=!0,this.read_uint32()),[len,five_byte]},SlicerBuffer}(),exports.SlicerBuffer=SlicerBuffer}).call(this)}).call(this,require("buffer").Buffer)},{buffer:80}],36:[function(require,module,exports){(function(Buffer){(function(){var BaseBurner,Burner,C,Compressed,CreationTime,Issuer,Literal,OnePassSignature,PKESK,SEIPD,SHA512,SRF,Signature,WordArray,clearsign,detachsign,dummy_key_id,encode,export_key_pgp,get_cipher,iced,make_esc,make_simple_literals,scrub_buffer,triplesec,unix_time,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,OnePassSignature=require("./packet/one_pass_sig").OnePassSignature,_ref=require("./packet/signature"),Signature=_ref.Signature,CreationTime=_ref.CreationTime,Issuer=_ref.Issuer,Compressed=require("./packet/compressed").Compressed,Literal=require("./packet/literal").Literal,unix_time=require("../util").unix_time,SRF=require("../rand").SRF,triplesec=require("triplesec"),_ref1=require("../symmetric"),export_key_pgp=_ref1.export_key_pgp,get_cipher=_ref1.get_cipher,scrub_buffer=triplesec.util.scrub_buffer,WordArray=triplesec.WordArray,_ref2=require("./packet/sess"),SEIPD=_ref2.SEIPD,PKESK=_ref2.PKESK,C=require("../const").openpgp,SHA512=require("../hash").SHA512,encode=require("./armor").encode,clearsign=require("./clearsign"),detachsign=require("./detachsign"),BaseBurner=require("./baseburner").BaseBurner,dummy_key_id=new Buffer(function(){var _i,_results;for(_results=[],_i=0;16>_i;_i++)_results.push(0);return _results}()),Burner=function(_super){function Burner(_arg){var asp,encrypt_for,encryption_key,sign_with,signing_key;this.literals=_arg.literals,this.opts=_arg.opts,sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,signing_key=_arg.signing_key,encryption_key=_arg.encryption_key,asp=_arg.asp,Burner.__super__.constructor.call(this,{sign_with:sign_with,encrypt_for:encrypt_for,signing_key:signing_key,encryption_key:encryption_key,asp:asp}),this.packets=[],this.opts||(this.opts={}),this.signed_payload=null}return __extends(Burner,_super),Burner.prototype._frame_literals=function(cb){var esc,l,p,sp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_frame_literals"),sp=[],function(_this){return function(__iced_k){var _i,_len,_ref3,_results,_while;_ref3=_this.literals,_len=_ref3.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(l=_ref3[_i],sp.push(l.to_signature_payload()),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._frame_literals"}),l.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:51}))),__iced_deferrals._fulfill()}(function(){return _next(_this.packets.push(p))}),void 0):_break()})(__iced_k)}}(this)(function(_this){return function(){return _this.signed_payload=Buffer.concat(sp),cb(null)}}(this))},Burner.prototype._sign=function(cb){var esc,fp,ops,ops_framed,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_sign'"),ops=new OnePassSignature({sig_type:C.sig_types.binary_doc,hasher:SHA512,sig_klass:this.signing_key.get_klass(),key_id:this.signing_key.get_key_id(),is_final:1}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._sign"}),ops.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ops_framed=arguments[0]}}(),lineno:67}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){sig=new Signature({type:C.sig_types.binary_doc,key:_this.signing_key.key,hashed_subpackets:[new CreationTime(unix_time())],unhashed_subpackets:[new Issuer(_this.signing_key.get_key_id())]}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._sign"}),_this.asp.progress({what:"sign",i:0,total:1},esc(__iced_deferrals.defer({lineno:74}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._sign"}),sig.write(_this.signed_payload,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return fp=arguments[0]}}(),lineno:75}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._sign"}),_this.asp.progress({what:"sign",i:1,total:1},esc(__iced_deferrals.defer({lineno:76}))),__iced_deferrals._fulfill()}(function(){return _this.packets.unshift(ops_framed),_this.packets.push(fp),cb(null)})})})}}(this))},Burner.prototype.collect_packets=function(){var ret;return ret=Buffer.concat(this.packets),this.packets=[],ret},Burner.prototype._compress=function(cb){var esc,inflated,opkt,pkt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_compress"),inflated=this.collect_packets(),pkt=new Compressed({algo:C.compression.zlib,inflated:inflated}),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._compress"}),_this.asp.progress({what:"compress",i:0,total:1},esc(__iced_deferrals.defer({lineno:94}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._compress"}),pkt.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return opkt=arguments[0]}}(),lineno:95}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._compress"}),_this.asp.progress({what:"compress",i:1,total:1},esc(__iced_deferrals.defer({lineno:96}))),__iced_deferrals._fulfill()}(function(){return _this.packets.push(opkt),cb(null)})})}}(this))},Burner.prototype._make_session_key=function(cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this._cipher_algo=C.symmetric_key_algorithms.AES256,this._cipher_info=get_cipher(this._cipher_algo),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._make_session_key"}),SRF().random_bytes(_this._cipher_info.key_size,__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1._session_key=arguments[0]
}}(_this),lineno:105})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return _this._cipher=new _this._cipher_info.klass(WordArray.from_buffer(_this._session_key)),cb(null)}}(this))},Burner.prototype.scrub=function(){return null!=this._cipher&&this._cipher.scrub(),null!=this._session_key?scrub_buffer(this._session_key):void 0},Burner.prototype._encrypt_session_key_once=function(encryption_key,cb){var ekey,esc,fingerprint,key_id,payload,pkesk,pkt,pub_k,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"_encrypt_session_key_once"),payload=export_key_pgp(this._cipher_algo,this._session_key),pub_k=encryption_key.key,fingerprint=encryption_key.get_fingerprint(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),_this.asp.progress({what:"session key encrypt",i:0,total:1},esc(__iced_deferrals.defer({lineno:122}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),pub_k.pad_and_encrypt(payload,{fingerprint:fingerprint},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ekey=arguments[0]}}(),lineno:123}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),_this.asp.progress({what:"session key encrypt",i:1,total:1},esc(__iced_deferrals.defer({lineno:124}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return _this.opts.hide?(key_id=dummy_key_id,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),_this.asp.progress({what:"hide encryption",i:0,total:1},esc(__iced_deferrals.defer({lineno:127}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){var _ref3,_ref4;__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),ekey.hide({max:null!=(_ref3=_this.opts.hide)?_ref3.max:void 0,slosh:null!=(_ref4=_this.opts.hide)?_ref4.slosh:void 0,key:pub_k},esc(__iced_deferrals.defer({lineno:128}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),_this.asp.progress({what:"hide encryption",i:1,total:1},esc(__iced_deferrals.defer({lineno:129}))),__iced_deferrals._fulfill()}(__iced_k)})})):__iced_k(key_id=encryption_key.get_key_id())}(function(){pkt=new PKESK({crypto_type:pub_k.type,key_id:key_id,ekey:ekey}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key_once"}),pkt.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pkesk=arguments[0]}}(),lineno:137}))),__iced_deferrals._fulfill()}(function(){return cb(null,pkesk)})})})})}}(this))},Burner.prototype._encrypt_session_key=function(cb){var esc,k,pkesk,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"_encrypt_session_key"),this._pkesks=[],function(_this){return function(__iced_k){var _i,_len,_ref3,_results,_while;_ref3=_this.encryption_keys,_len=_ref3.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(k=_ref3[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_session_key"}),_this._encrypt_session_key_once(k,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pkesk=arguments[0]}}(),lineno:146}))),__iced_deferrals._fulfill()}(function(){return _next(_this._pkesks.push(pkesk))})):_break()})(__iced_k)}}(this)(function(){return function(){return cb(null)}}(this))},Burner.prototype._encrypt_payload=function(cb){var asp,esc,pkt,plaintext,prefixrandom,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_encrypt_payload"),plaintext=this.collect_packets(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_payload"}),SRF().random_bytes(_this._cipher.blockSize,__iced_deferrals.defer({assign_fn:function(){return function(){return prefixrandom=arguments[0]}}(),lineno:155})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){pkt=new SEIPD({}),asp=_this.asp.section("encrypt payload"),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_payload"}),pkt.encrypt({cipher:_this._cipher,plaintext:plaintext,prefixrandom:prefixrandom,asp:asp},esc(__iced_deferrals.defer({lineno:158}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt_payload"}),pkt.write(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pkt=arguments[0]}}(),lineno:159}))),__iced_deferrals._fulfill()}(function(){return scrub_buffer(plaintext),_this.packets=_this._pkesks.concat([pkt]),cb(null)})})}}(this))},Burner.prototype._encrypt=function(cb){var esc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::_encrypt"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt"}),_this._make_session_key(esc(__iced_deferrals.defer({lineno:168}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt"}),_this._encrypt_session_key(esc(__iced_deferrals.defer({lineno:169}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner._encrypt"}),_this._encrypt_payload(esc(__iced_deferrals.defer({lineno:170}))),__iced_deferrals._fulfill()}(function(){return cb(null)})})}}(this))},Burner.prototype.scrub=function(){},Burner.prototype.burn=function(cb){var esc,output,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Burner::burn"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._find_keys(esc(__iced_deferrals.defer({lineno:181}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._frame_literals(esc(__iced_deferrals.defer({lineno:182}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return null==_this.signing_key?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._sign(esc(__iced_deferrals.defer({lineno:184}))),__iced_deferrals._fulfill()}(__iced_k)}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._compress(esc(__iced_deferrals.defer({lineno:185}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return null==_this.encryption_keys?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"Burner.burn"}),_this._encrypt(esc(__iced_deferrals.defer({lineno:187}))),__iced_deferrals._fulfill()}(__iced_k)}(function(){return output=Buffer.concat(_this.packets),cb(null,output)})})})})}}(this))},Burner}(BaseBurner),exports.Burner=Burner,exports.make_simple_literals=make_simple_literals=function(msg){return[new Literal({data:new Buffer(msg),format:C.literal_formats.utf8,date:unix_time()})]},exports.clearsign=clearsign.sign,exports.detachsign=detachsign.sign,exports.burn=function(_arg,cb){var aout,asp,b,encrypt_for,encryption_key,err,literals,msg,opts,raw,sign_with,signing_key,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,literals=_arg.literals,sign_with=_arg.sign_with,encrypt_for=_arg.encrypt_for,signing_key=_arg.signing_key,encryption_key=_arg.encryption_key,asp=_arg.asp,opts=_arg.opts,null!=msg&&null==literals&&(literals=make_simple_literals(msg)),b=new Burner({literals:literals,sign_with:sign_with,encrypt_for:encrypt_for,signing_key:signing_key,encryption_key:encryption_key,asp:asp,opts:opts}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/burner.iced",funcname:"burn"}),b.burn(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],raw=arguments[1]}}(),lineno:247})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return b.scrub(),"undefined"==typeof raw||null===raw||"undefined"!=typeof err&&null!==err||(aout=encode(C.message_types.generic,raw)),cb(err,aout,raw)}}(this))}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../hash":14,"../rand":65,"../symmetric":68,"../util":70,"./armor":33,"./baseburner":34,"./clearsign":39,"./detachsign":40,"./packet/compressed":46,"./packet/literal":49,"./packet/one_pass_sig":50,"./packet/sess":52,"./packet/signature":53,buffer:80,"iced-error":115,"iced-runtime":118,triplesec:181}],37:[function(require,module,exports){(function(){var CAST5,G,Global,WordArray,ui32a_to_ui8a,ui8a_to_ui32a,_ref;WordArray=require("triplesec").WordArray,_ref=require("../util"),ui8a_to_ui32a=_ref.ui8a_to_ui32a,ui32a_to_ui8a=_ref.ui32a_to_ui8a,Global=function(){function Global(){this.init_schedule(),this.init_sbox()}return Global.prototype.init_schedule=function(){var scheduleA,scheduleB;return scheduleA=new Array(4),scheduleA[0]=new Array(4),scheduleA[0][0]=new Uint8Array([4,0,13,15,12,14,8]),scheduleA[0][1]=new Uint8Array([5,2,16,18,17,19,10]),scheduleA[0][2]=new Uint8Array([6,3,23,22,21,20,9]),scheduleA[0][3]=new Uint8Array([7,1,26,25,27,24,11]),scheduleA[1]=new Array(4),scheduleA[1][0]=new Uint8Array([0,6,21,23,20,22,16]),scheduleA[1][1]=new Uint8Array([1,4,0,2,1,3,18]),scheduleA[1][2]=new Uint8Array([2,5,7,6,5,4,17]),scheduleA[1][3]=new Uint8Array([3,7,10,9,11,8,19]),scheduleA[2]=new Array(4),scheduleA[2][0]=new Uint8Array([4,0,13,15,12,14,8]),scheduleA[2][1]=new Uint8Array([5,2,16,18,17,19,10]),scheduleA[2][2]=new Uint8Array([6,3,23,22,21,20,9]),scheduleA[2][3]=new Uint8Array([7,1,26,25,27,24,11]),scheduleA[3]=new Array(4),scheduleA[3][0]=new Uint8Array([0,6,21,23,20,22,16]),scheduleA[3][1]=new Uint8Array([1,4,0,2,1,3,18]),scheduleA[3][2]=new Uint8Array([2,5,7,6,5,4,17]),scheduleA[3][3]=new Uint8Array([3,7,10,9,11,8,19]),scheduleB=new Array(4),scheduleB[0]=new Array(4),scheduleB[0][0]=new Uint8Array([24,25,23,22,18]),scheduleB[0][1]=new Uint8Array([26,27,21,20,22]),scheduleB[0][2]=new Uint8Array([28,29,19,18,25]),scheduleB[0][3]=new Uint8Array([30,31,17,16,28]),scheduleB[1]=new Array(4),scheduleB[1][0]=new Uint8Array([3,2,12,13,8]),scheduleB[1][1]=new Uint8Array([1,0,14,15,13]),scheduleB[1][2]=new Uint8Array([7,6,8,9,3]),scheduleB[1][3]=new Uint8Array([5,4,10,11,7]),scheduleB[2]=new Array(4),scheduleB[2][0]=new Uint8Array([19,18,28,29,25]),scheduleB[2][1]=new Uint8Array([17,16,30,31,28]),scheduleB[2][2]=new Uint8Array([23,22,24,25,18]),scheduleB[2][3]=new Uint8Array([21,20,26,27,22]),scheduleB[3]=new Array(4),scheduleB[3][0]=new Uint8Array([8,9,7,6,3]),scheduleB[3][1]=new Uint8Array([10,11,5,4,7]),scheduleB[3][2]=new Uint8Array([12,13,3,2,8]),scheduleB[3][3]=new Uint8Array([14,15,1,0,13]),this.scheduleA=scheduleA,this.scheduleB=scheduleB},Global.prototype.init_sbox=function(){var sBox;return sBox=new Array(8),sBox[0]=new Uint32Array([821772500,2678128395,1810681135,1059425402,505495343,2617265619,1610868032,3483355465,3218386727,2294005173,3791863952,2563806837,1852023008,365126098,3269944861,584384398,677919599,3229601881,4280515016,2002735330,1136869587,3744433750,2289869850,2731719981,2714362070,879511577,1639411079,575934255,717107937,2857637483,576097850,2731753936,1725645e3,2810460463,5111599,767152862,2543075244,1251459544,1383482551,3052681127,3089939183,3612463449,1878520045,1510570527,2189125840,2431448366,582008916,3163445557,1265446783,1354458274,3529918736,3202711853,3073581712,3912963487,3029263377,1275016285,4249207360,2905708351,3304509486,1442611557,3585198765,2712415662,2731849581,3248163920,2283946226,208555832,2766454743,1331405426,1447828783,3315356441,3108627284,2957404670,2981538698,3339933917,1669711173,286233437,1465092821,1782121619,3862771680,710211251,980974943,1651941557,430374111,2051154026,704238805,4128970897,3144820574,2857402727,948965521,3333752299,2227686284,718756367,2269778983,2731643755,718440111,2857816721,3616097120,1113355533,2478022182,410092745,1811985197,1944238868,2696854588,1415722873,1682284203,1060277122,1998114690,1503841958,82706478,2315155686,1068173648,845149890,2167947013,1768146376,1993038550,3566826697,3390574031,940016341,3355073782,2328040721,904371731,1205506512,4094660742,2816623006,825647681,85914773,2857843460,1249926541,1417871568,3287612,3211054559,3126306446,1975924523,1353700161,2814456437,2438597621,1800716203,722146342,2873936343,1151126914,4160483941,2877670899,458611604,2866078500,3483680063,770352098,2652916994,3367839148,3940505011,3585973912,3809620402,718646636,2504206814,2914927912,3631288169,2857486607,2860018678,575749918,2857478043,718488780,2069512688,3548183469,453416197,1106044049,3032691430,52586708,3378514636,3459808877,3211506028,1785789304,218356169,3571399134,3759170522,1194783844,1523787992,3007827094,1975193539,2555452411,1341901877,3045838698,3776907964,3217423946,2802510864,2889438986,1057244207,1636348243,3761863214,1462225785,2632663439,481089165,718503062,24497053,3332243209,3344655856,3655024856,3960371065,1195698900,2971415156,3710176158,2115785917,4027663609,3525578417,2524296189,2745972565,3564906415,1372086093,1452307862,2780501478,1476592880,3389271281,18495466,2378148571,901398090,891748256,3279637769,3157290713,2560960102,1447622437,4284372637,216884176,2086908623,1879786977,3588903153,2242455666,2938092967,3559082096,2810645491,758861177,1121993112,215018983,642190776,4169236812,1196255959,2081185372,3508738393,941322904,4124243163,2877523539,1848581667,2205260958,3180453958,2589345134,3694731276,550028657,2519456284,3789985535,2973870856,2093648313,443148163,46942275,2734146937,1117713533,1115362972,1523183689,3717140224,1551984063]),sBox[1]=new Uint32Array([522195092,4010518363,1776537470,960447360,4267822970,4005896314,1435016340,1929119313,2913464185,1310552629,3579470798,3724818106,2579771631,1594623892,417127293,2715217907,2696228731,1508390405,3994398868,3925858569,3695444102,4019471449,3129199795,3770928635,3520741761,990456497,4187484609,2783367035,21106139,3840405339,631373633,3783325702,532942976,396095098,3548038825,4267192484,2564721535,2011709262,2039648873,620404603,3776170075,2898526339,3612357925,4159332703,1645490516,223693667,1567101217,3362177881,1029951347,3470931136,3570957959,1550265121,119497089,972513919,907948164,3840628539,1613718692,3594177948,465323573,2659255085,654439692,2575596212,2699288441,3127702412,277098644,624404830,4100943870,2717858591,546110314,2403699828,3655377447,1321679412,4236791657,1045293279,4010672264,895050893,2319792268,494945126,1914543101,2777056443,3894764339,2219737618,311263384,4275257268,3458730721,669096869,3584475730,3835122877,3319158237,3949359204,2005142349,2713102337,2228954793,3769984788,569394103,3855636576,1425027204,108000370,2736431443,3671869269,3043122623,1750473702,2211081108,762237499,3972989403,2798899386,3061857628,2943854345,867476300,964413654,1591880597,1594774276,2179821409,552026980,3026064248,3726140315,2283577634,3110545105,2152310760,582474363,1582640421,1383256631,2043843868,3322775884,1217180674,463797851,2763038571,480777679,2718707717,2289164131,3118346187,214354409,200212307,3810608407,3025414197,2674075964,3997296425,1847405948,1342460550,510035443,4080271814,815934613,833030224,1620250387,1945732119,2703661145,3966000196,1388869545,3456054182,2687178561,2092620194,562037615,1356438536,3409922145,3261847397,1688467115,2150901366,631725691,3840332284,549916902,3455104640,394546491,837744717,2114462948,751520235,2221554606,2415360136,3999097078,2063029875,803036379,2702586305,821456707,3019566164,360699898,4018502092,3511869016,3677355358,2402471449,812317050,49299192,2570164949,3259169295,2816732080,3331213574,3101303564,2156015656,3705598920,3546263921,143268808,3200304480,1638124008,3165189453,3341807610,578956953,2193977524,3638120073,2333881532,807278310,658237817,2969561766,1641658566,11683945,3086995007,148645947,1138423386,4158756760,1981396783,2401016740,3699783584,380097457,2680394679,2803068651,3334260286,441530178,4016580796,1375954390,761952171,891809099,2183123478,157052462,3683840763,1592404427,341349109,2438483839,1417898363,644327628,2233032776,2353769706,2201510100,220455161,1815641738,182899273,2995019788,3627381533,3702638151,2890684138,1052606899,588164016,1681439879,4038439418,2405343923,4229449282,167996282,1336969661,1688053129,2739224926,1543734051,1046297529,1138201970,2121126012,115334942,1819067631,1902159161,1941945968,2206692869,1159982321]),sBox[2]=new Uint32Array([2381300288,637164959,3952098751,3893414151,1197506559,916448331,2350892612,2932787856,3199334847,4009478890,3905886544,1373570990,2450425862,4037870920,3778841987,2456817877,286293407,124026297,3001279700,1028597854,3115296800,4208886496,2691114635,2188540206,1430237888,1218109995,3572471700,308166588,570424558,2187009021,2455094765,307733056,1310360322,3135275007,1384269543,2388071438,863238079,2359263624,2801553128,3380786597,2831162807,1470087780,1728663345,4072488799,1090516929,532123132,2389430977,1132193179,2578464191,3051079243,1670234342,1434557849,2711078940,1241591150,3314043432,3435360113,3091448339,1812415473,2198440252,267246943,796911696,3619716990,38830015,1526438404,2806502096,374413614,2943401790,1489179520,1603809326,1920779204,168801282,260042626,2358705581,1563175598,2397674057,1356499128,2217211040,514611088,2037363785,2186468373,4022173083,2792511869,2913485016,1173701892,4200428547,3896427269,1334932762,2455136706,602925377,2835607854,1613172210,41346230,2499634548,2457437618,2188827595,41386358,4172255629,1313404830,2405527007,3801973774,2217704835,873260488,2528884354,2478092616,4012915883,2555359016,2006953883,2463913485,575479328,2218240648,2099895446,660001756,2341502190,3038761536,3888151779,3848713377,3286851934,1022894237,1620365795,3449594689,1551255054,15374395,3570825345,4249311020,4151111129,3181912732,310226346,1133119310,530038928,136043402,2476768958,3107506709,2544909567,1036173560,2367337196,1681395281,1758231547,3641649032,306774401,1575354324,3716085866,1990386196,3114533736,2455606671,1262092282,3124342505,2768229131,4210529083,1833535011,423410938,660763973,2187129978,1639812e3,3508421329,3467445492,310289298,272797111,2188552562,2456863912,310240523,677093832,1013118031,901835429,3892695601,1116285435,3036471170,1337354835,243122523,520626091,277223598,4244441197,4194248841,1766575121,594173102,316590669,742362309,3536858622,4176435350,3838792410,2501204839,1229605004,3115755532,1552908988,2312334149,979407927,3959474601,1148277331,176638793,3614686272,2083809052,40992502,1340822838,2731552767,3535757508,3560899520,1354035053,122129617,7215240,2732932949,3118912700,2718203926,2539075635,3609230695,3725561661,1928887091,2882293555,1988674909,2063640240,2491088897,1459647954,4189817080,2302804382,1113892351,2237858528,1927010603,4002880361,1856122846,1594404395,2944033133,3855189863,3474975698,1643104450,4054590833,3431086530,1730235576,2984608721,3084664418,2131803598,4178205752,267404349,1617849798,1616132681,1462223176,736725533,2327058232,551665188,2945899023,1749386277,2575514597,1611482493,674206544,2201269090,3642560800,728599968,1680547377,2620414464,1388111496,453204106,4156223445,1094905244,2754698257,2201108165,3757000246,2704524545,3922940700,3996465027]),sBox[3]=new Uint32Array([2645754912,532081118,2814278639,3530793624,1246723035,1689095255,2236679235,4194438865,2116582143,3859789411,157234593,2045505824,4245003587,1687664561,4083425123,605965023,672431967,1336064205,3376611392,214114848,4258466608,3232053071,489488601,605322005,3998028058,264917351,1912574028,756637694,436560991,202637054,135989450,85393697,2152923392,3896401662,2895836408,2145855233,3535335007,115294817,3147733898,1922296357,3464822751,4117858305,1037454084,2725193275,2127856640,1417604070,1148013728,1827919605,642362335,2929772533,909348033,1346338451,3547799649,297154785,1917849091,4161712827,2883604526,3968694238,1469521537,3780077382,3375584256,1763717519,136166297,4290970789,1295325189,2134727907,2798151366,1566297257,3672928234,2677174161,2672173615,965822077,2780786062,289653839,1133871874,3491843819,35685304,1068898316,418943774,672553190,642281022,2346158704,1954014401,3037126780,4079815205,2030668546,3840588673,672283427,1776201016,359975446,3750173538,555499703,2769985273,1324923,69110472,152125443,3176785106,3822147285,1340634837,798073664,1434183902,15393959,216384236,1303690150,3881221631,3711134124,3960975413,106373927,2578434224,1455997841,1801814300,1578393881,1854262133,3188178946,3258078583,2302670060,1539295533,3505142565,3078625975,2372746020,549938159,3278284284,2620926080,181285381,2865321098,3970029511,68876850,488006234,1728155692,2608167508,836007927,2435231793,919367643,3339422534,3655756360,1457871481,40520939,1380155135,797931188,234455205,2255801827,3990488299,397000196,739833055,3077865373,2871719860,4022553888,772369276,390177364,3853951029,557662966,740064294,1640166671,1699928825,3535942136,622006121,3625353122,68743880,1742502,219489963,1664179233,1577743084,1236991741,410585305,2366487942,823226535,1050371084,3426619607,3586839478,212779912,4147118561,1819446015,1911218849,530248558,3486241071,3252585495,2886188651,3410272728,2342195030,20547779,2982490058,3032363469,3631753222,312714466,1870521650,1493008054,3491686656,615382978,4103671749,2534517445,1932181,2196105170,278426614,6369430,3274544417,2913018367,697336853,2143000447,2946413531,701099306,1558357093,2805003052,3500818408,2321334417,3567135975,216290473,3591032198,23009561,1996984579,3735042806,2024298078,3739440863,569400510,2339758983,3016033873,3097871343,3639523026,3844324983,3256173865,795471839,2951117563,4101031090,4091603803,3603732598,971261452,534414648,428311343,3389027175,2844869880,694888862,1227866773,2456207019,3043454569,2614353370,3749578031,3676663836,459166190,4132644070,1794958188,51825668,2252611902,3084671440,2036672799,3436641603,1099053433,2469121526,3059204941,1323291266,2061838604,1018778475,2233344254,2553501054,334295216,3556750194,1065731521,183467730]),sBox[4]=new Uint32Array([2127105028,745436345,2601412319,2788391185,3093987327,500390133,1155374404,389092991,150729210,3891597772,3523549952,1935325696,716645080,946045387,2901812282,1774124410,3869435775,4039581901,3293136918,3438657920,948246080,363898952,3867875531,1286266623,1598556673,68334250,630723836,1104211938,1312863373,613332731,2377784574,1101634306,441780740,3129959883,1917973735,2510624549,3238456535,2544211978,3308894634,1299840618,4076074851,1756332096,3977027158,297047435,3790297736,2265573040,3621810518,1311375015,1667687725,47300608,3299642885,2474112369,201668394,1468347890,576830978,3594690761,3742605952,1958042578,1747032512,3558991340,1408974056,3366841779,682131401,1033214337,1545599232,4265137049,206503691,103024618,2855227313,1337551222,2428998917,2963842932,4015366655,3852247746,2796956967,3865723491,3747938335,247794022,3755824572,702416469,2434691994,397379957,851939612,2314769512,218229120,1380406772,62274761,214451378,3170103466,2276210409,3845813286,28563499,446592073,1693330814,3453727194,29968656,3093872512,220656637,2470637031,77972100,1667708854,1358280214,4064765667,2395616961,325977563,4277240721,4220025399,3605526484,3355147721,811859167,3069544926,3962126810,652502677,3075892249,4132761541,3498924215,1217549313,3250244479,3858715919,3053989961,1538642152,2279026266,2875879137,574252750,3324769229,2651358713,1758150215,141295887,2719868960,3515574750,4093007735,4194485238,1082055363,3417560400,395511885,2966884026,179534037,3646028556,3738688086,1092926436,2496269142,257381841,3772900718,1636087230,1477059743,2499234752,3811018894,2675660129,3285975680,90732309,1684827095,1150307763,1723134115,3237045386,1769919919,1240018934,815675215,750138730,2239792499,1234303040,1995484674,138143821,675421338,1145607174,1936608440,3238603024,2345230278,2105974004,323969391,779555213,3004902369,2861610098,1017501463,2098600890,2628620304,2940611490,2682542546,1171473753,3656571411,3687208071,4091869518,393037935,159126506,1662887367,1147106178,391545844,3452332695,1891500680,3016609650,1851642611,546529401,1167818917,3194020571,2848076033,3953471836,575554290,475796850,4134673196,450035699,2351251534,844027695,1080539133,86184846,1554234488,3692025454,1972511363,2018339607,1491841390,1141460869,1061690759,4244549243,2008416118,2351104703,2868147542,1598468138,722020353,1027143159,212344630,1387219594,1725294528,3745187956,2500153616,458938280,4129215917,1828119673,544571780,3503225445,2297937496,1241802790,267843827,2694610800,1397140384,1558801448,3782667683,1806446719,929573330,2234912681,400817706,616011623,4121520928,3603768725,1761550015,1968522284,4053731006,4192232858,4005120285,872482584,3140537016,3894607381,2287405443,1963876937,3663887957,1584857e3,2975024454,1833426440,4025083860]),sBox[5]=new Uint32Array([4143615901,749497569,1285769319,3795025788,2514159847,23610292,3974978748,844452780,3214870880,3751928557,2213566365,1676510905,448177848,3730751033,4086298418,2307502392,871450977,3222878141,4110862042,3831651966,2735270553,1310974780,2043402188,1218528103,2736035353,4274605013,2702448458,3936360550,2693061421,162023535,2827510090,687910808,23484817,3784910947,3371371616,779677500,3503626546,3473927188,4157212626,3500679282,4248902014,2466621104,3899384794,1958663117,925738300,1283408968,3669349440,1840910019,137959847,2679828185,1239142320,1315376211,1547541505,1690155329,739140458,3128809933,3933172616,3876308834,905091803,1548541325,4040461708,3095483362,144808038,451078856,676114313,2861728291,2469707347,993665471,373509091,2599041286,4025009006,4170239449,2149739950,3275793571,3749616649,2794760199,1534877388,572371878,2590613551,1753320020,3467782511,1405125690,4270405205,633333386,3026356924,3475123903,632057672,2846462855,1404951397,3882875879,3915906424,195638627,2385783745,3902872553,1233155085,3355999740,2380578713,2702246304,2144565621,3663341248,3894384975,2502479241,4248018925,3094885567,1594115437,572884632,3385116731,767645374,1331858858,1475698373,3793881790,3532746431,1321687957,619889600,1121017241,3440213920,2070816767,2833025776,1933951238,4095615791,890643334,3874130214,859025556,360630002,925594799,1764062180,3920222280,4078305929,979562269,2810700344,4087740022,1949714515,546639971,1165388173,3069891591,1495988560,922170659,1291546247,2107952832,1813327274,3406010024,3306028637,4241950635,153207855,2313154747,1608695416,1150242611,1967526857,721801357,1220138373,3691287617,3356069787,2112743302,3281662835,1111556101,1778980689,250857638,2298507990,673216130,2846488510,3207751581,3562756981,3008625920,3417367384,2198807050,529510932,3547516680,3426503187,2364944742,102533054,2294910856,1617093527,1204784762,3066581635,1019391227,1069574518,1317995090,1691889997,3661132003,510022745,3238594800,1362108837,1817929911,2184153760,805817662,1953603311,3699844737,120799444,2118332377,207536705,2282301548,4120041617,145305846,2508124933,3086745533,3261524335,1877257368,2977164480,3160454186,2503252186,4221677074,759945014,254147243,2767453419,3801518371,629083197,2471014217,907280572,3900796746,940896768,2751021123,2625262786,3161476951,3661752313,3260732218,1425318020,2977912069,1496677566,3988592072,2140652971,3126511541,3069632175,977771578,1392695845,1698528874,1411812681,1369733098,1343739227,3620887944,1142123638,67414216,3102056737,3088749194,1626167401,2546293654,3941374235,697522451,33404913,143560186,2595682037,994885535,1247667115,3859094837,2699155541,3547024625,4114935275,2968073508,3199963069,2732024527,1237921620,951448369,1898488916,1211705605,2790989240,2233243581,3598044975]),sBox[6]=new Uint32Array([2246066201,858518887,1714274303,3485882003,713916271,2879113490,3730835617,539548191,36158695,1298409750,419087104,1358007170,749914897,2989680476,1261868530,2995193822,2690628854,3443622377,3780124940,3796824509,2976433025,4259637129,1551479e3,512490819,1296650241,951993153,2436689437,2460458047,144139966,3136204276,310820559,3068840729,643875328,1969602020,1680088954,2185813161,3283332454,672358534,198762408,896343282,276269502,3014846926,84060815,197145886,376173866,3943890818,3813173521,3545068822,1316698879,1598252827,2633424951,1233235075,859989710,2358460855,3503838400,3409603720,1203513385,1193654839,2792018475,2060853022,207403770,1144516871,3068631394,1121114134,177607304,3785736302,326409831,1929119770,2983279095,4183308101,3474579288,3200513878,3228482096,119610148,1170376745,3378393471,3163473169,951863017,3337026068,3135789130,2907618374,1183797387,2015970143,4045674555,2182986399,2952138740,3928772205,384012900,2454997643,10178499,2879818989,2596892536,111523738,2995089006,451689641,3196290696,235406569,1441906262,3890558523,3013735005,4158569349,1644036924,376726067,1006849064,3664579700,2041234796,1021632941,1374734338,2566452058,371631263,4007144233,490221539,206551450,3140638584,1053219195,1853335209,3412429660,3562156231,735133835,1623211703,3104214392,2738312436,4096837757,3366392578,3110964274,3956598718,3196820781,2038037254,3877786376,2339753847,300912036,3766732888,2372630639,1516443558,4200396704,1574567987,4069441456,4122592016,2699739776,146372218,2748961456,2043888151,35287437,2596680554,655490400,1132482787,110692520,1031794116,2188192751,1324057718,1217253157,919197030,686247489,3261139658,1028237775,3135486431,3059715558,2460921700,986174950,2661811465,4062904701,2752986992,3709736643,367056889,1353824391,731860949,1650113154,1778481506,784341916,357075625,3608602432,1074092588,2480052770,3811426202,92751289,877911070,3600361838,1231880047,480201094,3756190983,3094495953,434011822,87971354,363687820,1717726236,1901380172,3926403882,2481662265,400339184,1490350766,2661455099,1389319756,2558787174,784598401,1983468483,30828846,3550527752,2716276238,3841122214,1765724805,1955612312,1277890269,1333098070,1564029816,2704417615,1026694237,3287671188,1260819201,3349086767,1016692350,1582273796,1073413053,1995943182,694588404,1025494639,3323872702,3551898420,4146854327,453260480,1316140391,1435673405,3038941953,3486689407,1622062951,403978347,817677117,950059133,4246079218,3278066075,1486738320,1417279718,481875527,2549965225,3933690356,760697757,1452955855,3897451437,1177426808,1702951038,4085348628,2447005172,1084371187,3516436277,3068336338,1073369276,1027665953,3284188590,1230553676,1368340146,2226246512,267243139,2274220762,4070734279,2497715176,2423353163,2504755875]),sBox[7]=new Uint32Array([3793104909,3151888380,2817252029,895778965,2005530807,3871412763,237245952,86829237,296341424,3851759377,3974600970,2475086196,709006108,1994621201,2972577594,937287164,3734691505,168608556,3189338153,2225080640,3139713551,3033610191,3025041904,77524477,185966941,1208824168,2344345178,1721625922,3354191921,1066374631,1927223579,1971335949,2483503697,1551748602,2881383779,2856329572,3003241482,48746954,1398218158,2050065058,313056748,4255789917,393167848,1912293076,940740642,3465845460,3091687853,2522601570,2197016661,1727764327,364383054,492521376,1291706479,3264136376,1474851438,1685747964,2575719748,1619776915,1814040067,970743798,1561002147,2925768690,2123093554,1880132620,3151188041,697884420,2550985770,2607674513,2659114323,110200136,1489731079,997519150,1378877361,3527870668,478029773,2766872923,1022481122,431258168,1112503832,897933369,2635587303,669726182,3383752315,918222264,163866573,3246985393,3776823163,114105080,1903216136,761148244,3571337562,1690750982,3166750252,1037045171,1888456500,2010454850,642736655,616092351,365016990,1185228132,4174898510,1043824992,2023083429,2241598885,3863320456,3279669087,3674716684,108438443,2132974366,830746235,606445527,4173263986,2204105912,1844756978,2532684181,4245352700,2969441100,3796921661,1335562986,4061524517,2720232303,2679424040,634407289,885462008,3294724487,3933892248,2094100220,339117932,4048830727,3202280980,1458155303,2689246273,1022871705,2464987878,3714515309,353796843,2822958815,4256850100,4052777845,551748367,618185374,3778635579,4020649912,1904685140,3069366075,2670879810,3407193292,2954511620,4058283405,2219449317,3135758300,1120655984,3447565834,1474845562,3577699062,550456716,3466908712,2043752612,881257467,869518812,2005220179,938474677,3305539448,3850417126,1315485940,3318264702,226533026,965733244,321539988,1136104718,804158748,573969341,3708209826,937399083,3290727049,2901666755,1461057207,4013193437,4066861423,3242773476,2421326174,1581322155,3028952165,786071460,3900391652,3918438532,1485433313,4023619836,3708277595,3678951060,953673138,1467089153,1930354364,1533292819,2492563023,1346121658,1685000834,1965281866,3765933717,4190206607,2052792609,3515332758,690371149,3125873887,2180283551,2903598061,3933952357,436236910,289419410,14314871,1242357089,2904507907,1616633776,2666382180,585885352,3471299210,2699507360,1432659641,277164553,3354103607,770115018,2303809295,3741942315,3177781868,2853364978,2269453327,3774259834,987383833,1290892879,225909803,1741533526,890078084,1496906255,1111072499,916028167,243534141,1252605537,2204162171,531204876,290011180,3916834213,102027703,237315147,209093447,1486785922,220223953,2758195998,4175039106,82940208,3127791296,2569425252,518464269,1353887104,3941492737,2377294467,3935040926]),this.sBox=sBox
},Global}(),G=new Global,CAST5=function(){function CAST5(key){var n;if(this.masking=new Array(16),this.rotate=new Array(16),this.reset(),key.sigBytes!==(n=this.keySize))throw new Error("key must be "+n+" bytes");this.keySchedule(key)}return CAST5.blockSize=8,CAST5.prototype.blockSize=CAST5.blockSize,CAST5.keySize=16,CAST5.prototype.keySize=CAST5.keySize,CAST5.prototype.reset=function(){var i,_i,_results;for(_results=[],i=_i=0;16>_i;i=++_i)this.masking[i]=0,_results.push(this.rotate[i]=0);return _results},CAST5.prototype.encryptBlock=function(words,offset){var bytes,res;return null==offset&&(offset=0),bytes=ui32a_to_ui8a(words),res=this._encrypt_ui8a(bytes),ui8a_to_ui32a(res,words)},CAST5.prototype.decryptBlock=function(words,offset){var bytes,res;return null==offset&&(offset=0),bytes=ui32a_to_ui8a(words),res=this._decrypt_ui8a(bytes),ui8a_to_ui32a(res,words)},CAST5.prototype._encrypt_ui8a=function(src){var dst,i,l,len,r,t,_i;for(len=src.length,dst=new Uint8Array(len),i=_i=0;len>_i;i=_i+=8)l=src[i]<<24|src[i+1]<<16|src[i+2]<<8|src[i+3],r=src[i+4]<<24|src[i+5]<<16|src[i+6]<<8|src[i+7],t=r,r=l^this.f1(r,this.masking[0],this.rotate[0]),l=t,t=r,r=l^this.f2(r,this.masking[1],this.rotate[1]),l=t,t=r,r=l^this.f3(r,this.masking[2],this.rotate[2]),l=t,t=r,r=l^this.f1(r,this.masking[3],this.rotate[3]),l=t,t=r,r=l^this.f2(r,this.masking[4],this.rotate[4]),l=t,t=r,r=l^this.f3(r,this.masking[5],this.rotate[5]),l=t,t=r,r=l^this.f1(r,this.masking[6],this.rotate[6]),l=t,t=r,r=l^this.f2(r,this.masking[7],this.rotate[7]),l=t,t=r,r=l^this.f3(r,this.masking[8],this.rotate[8]),l=t,t=r,r=l^this.f1(r,this.masking[9],this.rotate[9]),l=t,t=r,r=l^this.f2(r,this.masking[10],this.rotate[10]),l=t,t=r,r=l^this.f3(r,this.masking[11],this.rotate[11]),l=t,t=r,r=l^this.f1(r,this.masking[12],this.rotate[12]),l=t,t=r,r=l^this.f2(r,this.masking[13],this.rotate[13]),l=t,t=r,r=l^this.f3(r,this.masking[14],this.rotate[14]),l=t,t=r,r=l^this.f1(r,this.masking[15],this.rotate[15]),l=t,dst[i]=r>>>24&255,dst[i+1]=r>>>16&255,dst[i+2]=r>>>8&255,dst[i+3]=255&r,dst[i+4]=l>>>24&255,dst[i+5]=l>>>16&255,dst[i+6]=l>>>8&255,dst[i+7]=255&l;return dst},CAST5.prototype._decrypt_ui8a=function(src){var dst,i,l,len,r,t,_i;for(len=src.length,dst=new Uint8Array(len),i=_i=0;len>_i;i=_i+=8)l=src[i]<<24|src[i+1]<<16|src[i+2]<<8|src[i+3],r=src[i+4]<<24|src[i+5]<<16|src[i+6]<<8|src[i+7],t=r,r=l^this.f1(r,this.masking[15],this.rotate[15]),l=t,t=r,r=l^this.f3(r,this.masking[14],this.rotate[14]),l=t,t=r,r=l^this.f2(r,this.masking[13],this.rotate[13]),l=t,t=r,r=l^this.f1(r,this.masking[12],this.rotate[12]),l=t,t=r,r=l^this.f3(r,this.masking[11],this.rotate[11]),l=t,t=r,r=l^this.f2(r,this.masking[10],this.rotate[10]),l=t,t=r,r=l^this.f1(r,this.masking[9],this.rotate[9]),l=t,t=r,r=l^this.f3(r,this.masking[8],this.rotate[8]),l=t,t=r,r=l^this.f2(r,this.masking[7],this.rotate[7]),l=t,t=r,r=l^this.f1(r,this.masking[6],this.rotate[6]),l=t,t=r,r=l^this.f3(r,this.masking[5],this.rotate[5]),l=t,t=r,r=l^this.f2(r,this.masking[4],this.rotate[4]),l=t,t=r,r=l^this.f1(r,this.masking[3],this.rotate[3]),l=t,t=r,r=l^this.f3(r,this.masking[2],this.rotate[2]),l=t,t=r,r=l^this.f2(r,this.masking[1],this.rotate[1]),l=t,t=r,r=l^this.f1(r,this.masking[0],this.rotate[0]),l=t,dst[i]=r>>>24&255,dst[i+1]=r>>>16&255,dst[i+2]=r>>>8&255,dst[i+3]=255&r,dst[i+4]=l>>>24&255,dst[i+5]=l>>16&255,dst[i+6]=l>>8&255,dst[i+7]=255&l;return dst},CAST5.prototype.keySchedule=function(key){var a,b,half,i,j,k,ki,kw,round,t,w,x,_i,_j,_k,_l,_m,_results;for(t=function(){var _i,_len,_ref1,_results;for(_ref1=key.words,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)kw=_ref1[_i],_results.push(kw);return _results}(),k=new Array(32),x=[6,7,4,5],ki=0,half=_i=0;2>_i;half=++_i)for(round=_j=0;4>_j;round=++_j){for(j=_k=0;4>_k;j=++_k)a=G.scheduleA[round][j],w=t[a[1]],w^=G.sBox[4][t[a[2]>>>2]>>>24-8*(3&a[2])&255],w^=G.sBox[5][t[a[3]>>>2]>>>24-8*(3&a[3])&255],w^=G.sBox[6][t[a[4]>>>2]>>>24-8*(3&a[4])&255],w^=G.sBox[7][t[a[5]>>>2]>>>24-8*(3&a[5])&255],w^=G.sBox[x[j]][t[a[6]>>>2]>>>24-8*(3&a[6])&255],t[a[0]]=w;for(j=_l=0;4>_l;j=++_l)b=G.scheduleB[round][j],w=G.sBox[4][t[b[0]>>>2]>>>24-8*(3&b[0])&255],w^=G.sBox[5][t[b[1]>>>2]>>>24-8*(3&b[1])&255],w^=G.sBox[6][t[b[2]>>>2]>>>24-8*(3&b[2])&255],w^=G.sBox[7][t[b[3]>>>2]>>>24-8*(3&b[3])&255],w^=G.sBox[4+j][t[b[4]>>>2]>>>24-8*(3&b[4])&255],k[ki]=w,ki++}for(_results=[],i=_m=0;16>_m;i=++_m)this.masking[i]=k[i],_results.push(this.rotate[i]=31&k[16+i]);return _results},CAST5.prototype.f1=function(d,m,r){var I,t;return t=m+d,I=t<<r|t>>>32-r,(G.sBox[0][I>>>24]^G.sBox[1][I>>>16&255])-G.sBox[2][I>>>8&255]+G.sBox[3][255&I]},CAST5.prototype.f2=function(d,m,r){var I,t;return t=m^d,I=t<<r|t>>>32-r,G.sBox[0][I>>>24]-G.sBox[1][I>>>16&255]+G.sBox[2][I>>>8&255]^G.sBox[3][255&I]},CAST5.prototype.f3=function(d,m,r){var I,t;return t=m-d,I=t<<r|t>>>32-r,(G.sBox[0][I>>>24]+G.sBox[1][I>>>16&255]^G.sBox[2][I>>>8&255])-G.sBox[3][255&I]},CAST5}(),exports.CAST5=CAST5}).call(this)},{"../util":70,triplesec:181}],38:[function(require,module,exports){(function(Buffer){(function(){var AES,WordArray,ciphers,decrypt,encrypt,_ref;_ref=require("triplesec"),ciphers=_ref.ciphers,WordArray=_ref.WordArray,AES=ciphers.AES,encrypt=function(_arg){var block_cipher_class,block_size,c,cipher,e,iv,key,list,out,plaintext,pos;return block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,plaintext=_arg.plaintext,iv=_arg.iv,block_cipher_class||(block_cipher_class=AES),cipher||(cipher=new block_cipher_class(WordArray.from_buffer(key))),block_size=cipher.blockSize,c=WordArray.from_buffer(iv.slice(0,block_size)),pos=0,list=function(){var _results;for(_results=[];plaintext.length>pos;)cipher.encryptBlock(c.words,0),e=c,c=WordArray.from_buffer(plaintext.slice(pos,pos+block_size)),e.xor(c,{n_words:c.words.length}),pos+=block_size,c=e,_results.push(e.to_buffer());return _results}(),out=Buffer.concat(list),out.slice(0,plaintext.length)},decrypt=function(_arg){var b,block_cipher_class,block_size,cipher,ciphertext,d,i,iv,key,list,out,pos;return block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,ciphertext=_arg.ciphertext,iv=_arg.iv,block_cipher_class||(block_cipher_class=AES),cipher||(cipher=new block_cipher_class(WordArray.from_buffer(key))),block_size=cipher.blockSize,iv||(iv=new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;block_size>=0?block_size>_i:_i>block_size;i=block_size>=0?++_i:--_i)_results.push(0);return _results}())),b=WordArray.from_buffer(iv.slice(0,block_size)),pos=0,list=function(){var _results;for(_results=[];ciphertext.length>pos;)cipher.encryptBlock(b.words,0),d=b,b=WordArray.from_buffer(ciphertext.slice(pos,pos+block_size)),d.xor(b,{}),pos+=block_size,_results.push(d.to_buffer());return _results}(),out=Buffer.concat(list),out.slice(out,ciphertext.length)},exports.encrypt=encrypt,exports.decrypt=decrypt}).call(this)}).call(this,require("buffer").Buffer)},{buffer:80,triplesec:181}],39:[function(require,module,exports){(function(){var C,Ch,ClearSigner,CreationTime,Issuer,Literal,SHA512,SRF,Signature,Verifier,VerifierBase,WordArray,bufferify,clearsign_header,clearsign_to_sign,dash_escape,dash_unescape_line,dash_unescape_lines,encode,export_key_pgp,get_cipher,hashmod,iced,input_to_cleartext,input_to_cleartext_display,input_to_cleartext_sign,konst,make_esc,scrub_buffer,triplesec,unix_time,whitespace_strip,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,_ref=require("./packet/signature"),Signature=_ref.Signature,CreationTime=_ref.CreationTime,Issuer=_ref.Issuer,_ref1=require("../util"),bufferify=_ref1.bufferify,unix_time=_ref1.unix_time,SRF=require("../rand").SRF,triplesec=require("triplesec"),_ref2=require("../symmetric"),export_key_pgp=_ref2.export_key_pgp,get_cipher=_ref2.get_cipher,scrub_buffer=triplesec.util.scrub_buffer,WordArray=triplesec.WordArray,konst=require("../const"),C=konst.openpgp,Ch=require("../header"),hashmod=require("../hash"),SHA512=hashmod.SHA512,encode=require("./armor").encode,clearsign_header=require("pgp-utils").armor.clearsign_header,Literal=require("./packet/literal").Literal,VerifierBase=require("./verifier").Base,exports.input_to_cleartext=input_to_cleartext=function(raw){var lines,ret;return lines=raw.split(/\n/),ret={show:bufferify(input_to_cleartext_display(lines)),sign:bufferify(input_to_cleartext_sign(lines))}},exports.dash_escape=dash_escape=function(line){return line.length>=1&&"-"===line[0]?"- "+line:line},exports.dash_unescape_line=dash_unescape_line=function(line){var m,out,warn,_ref3;return warn=!1,out=null!=(m=line.match(/^-( )?(.*?)$/))?(1!==(null!=(_ref3=m[1])?_ref3.length:void 0)?warn=!0:void 0,m[2]):line,[out,warn]},exports.dash_unescape_lines=dash_unescape_lines=function(lines,warnings){var i,l,line,ret,warn;return null==warnings&&(warnings=null),ret=function(){var _i,_len,_ref3,_results;for(_results=[],i=_i=0,_len=lines.length;_len>_i;i=++_i)line=lines[i],_ref3=dash_unescape_line(line),l=_ref3[0],warn=_ref3[1],warn&&null!=warnings&&warnings.push("Bad dash-encoding on line "+(i+1)),_results.push(l);return _results}()},exports.input_to_cleartext_display=input_to_cleartext_display=function(lines){var line,out;return out=function(){var _i,_len,_results;for(_results=[],_i=0,_len=lines.length;_len>_i;_i++)line=lines[_i],_results.push(dash_escape(line));return _results}(),(0===lines.length||""!==lines.slice(-1)[0])&&out.push(""),out.join("\n")},exports.clearsign_to_sign=clearsign_to_sign=function(lines,warnings){return lines=dash_unescape_lines(lines,warnings),input_to_cleartext_sign(lines)},exports.input_to_cleartext_sign=input_to_cleartext_sign=function(lines){var line,num_trailing_newlines,t,tmp,_i;for(tmp=function(){var _i,_len,_results;for(_results=[],_i=0,_len=lines.length;_len>_i;_i++)line=lines[_i],_results.push(whitespace_strip(line));return _results}(),num_trailing_newlines=0,_i=tmp.length-1;_i>=0&&(t=tmp[_i],""===t);_i+=-1)num_trailing_newlines++;return num_trailing_newlines>0&&tmp.pop(),tmp.join("\r\n")},exports.whitespace_strip=whitespace_strip=function(line){var m;return line=line.replace(/\r/g,""),(m=line.match(/^(.*?)([ \t]*)$/))?m[1]:line},ClearSigner=function(){function ClearSigner(_arg){this.msg=_arg.msg,this.signing_key=_arg.signing_key}return ClearSigner.prototype._fix_msg=function(cb){return this._cleartext=input_to_cleartext(this.msg.toString("utf8")),cb(null)},ClearSigner.prototype._sign_msg=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this.sig=new Signature({sig_type:C.sig_types.canonical_text,key:this.signing_key.key,hashed_subpackets:[new CreationTime(unix_time())],unhashed_subpackets:[new Issuer(this.signing_key.get_key_id())]}),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"ClearSigner._sign_msg"}),_this.sig.write(_this._cleartext.sign,__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1._sig_output=arguments[1]}}(_this),lineno:117})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return cb(err,_this._sig_output)}}(this))},ClearSigner.prototype.scrub=function(){},ClearSigner.prototype.hasher_name=function(){return this.sig.hasher.algname},ClearSigner.prototype._encode=function(cb){var body,hdr;return hdr=clearsign_header(Ch,this._cleartext.show,this.hasher_name()),body=encode(C.message_types.signature,this._sig_output),cb(null,hdr+body)},ClearSigner.prototype.run=function(cb){var encoded,esc,signature,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"ClearSigner::run"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"ClearSigner.run"}),_this._fix_msg(esc(__iced_deferrals.defer({lineno:139}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"ClearSigner.run"}),_this._sign_msg(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return signature=arguments[0]}}(),lineno:140}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"ClearSigner.run"}),_this._encode(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return encoded=arguments[0]}}(),lineno:141}))),__iced_deferrals._fulfill()}(function(){return cb(null,encoded,signature)})})}}(this))},ClearSigner}(),Verifier=function(_super){function Verifier(_arg){var keyfetch,packets;packets=_arg.packets,this.clearsign=_arg.clearsign,keyfetch=_arg.keyfetch,Verifier.__super__.constructor.call(this,{packets:packets,keyfetch:keyfetch})}return __extends(Verifier,_super),Verifier.prototype._reformat_text=function(cb){var data;return data=bufferify(clearsign_to_sign(this.clearsign.lines)),this._literal=new Literal({data:data,format:C.literal_formats.utf8,date:unix_time()}),cb(null)},Verifier.prototype._make_hasher=function(cb){var err,h;return err=null,h=this.clearsign.headers.hash||"MD5",null==(this._sig.hasher=hashmod[h])&&(err=new Error("Unknown hash algorithm: "+h)),cb(err)},Verifier.prototype._verify=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier._verify"}),_this._sig.verify([_this._literal],__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:182})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},Verifier.prototype._check_headers=function(cb){var err,k,v,_ref3;err=null,_ref3=this.clearsign.headers;for(k in _ref3)if(v=_ref3[k],"hash"!==k){err=new Error("Unallowed header: "+k);break}return cb(err)},Verifier.prototype.run=function(cb){var esc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Verifier::run"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._check_headers(esc(__iced_deferrals.defer({lineno:199}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._find_signature(esc(__iced_deferrals.defer({lineno:200}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._reformat_text(esc(__iced_deferrals.defer({lineno:201}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._fetch_key(esc(__iced_deferrals.defer({lineno:202}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._make_hasher(esc(__iced_deferrals.defer({lineno:203}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"Verifier.run"}),_this._verify(esc(__iced_deferrals.defer({lineno:204}))),__iced_deferrals._fulfill()}(function(){return cb(null,_this._literal)})})})})})}}(this))},Verifier}(VerifierBase),exports.sign=function(_arg,cb){var b,encoded,err,msg,signature,signing_key,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,signing_key=_arg.signing_key,b=new ClearSigner({msg:msg,signing_key:signing_key}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"sign"}),b.run(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],encoded=arguments[1],signature=arguments[2]}}(),lineno:215})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return b.scrub(),cb(err,encoded,signature)}}(this))},exports.verify=function(_arg,cb){var clearsign,err,keyfetch,literal,packets,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,clearsign=_arg.clearsign,keyfetch=_arg.keyfetch,v=new Verifier({packets:packets,clearsign:clearsign,keyfetch:keyfetch}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/clearsign.iced",funcname:"verify"}),v.run(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literal=arguments[1]}}(),lineno:223})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,literal)}}(this))}}).call(this)},{"../const":5,"../hash":14,"../header":15,"../rand":65,"../symmetric":68,"../util":70,"./armor":33,"./packet/literal":49,"./packet/signature":53,"./verifier":61,"iced-error":115,"iced-runtime":118,"pgp-utils":163,triplesec:181}],40:[function(require,module,exports){(function(Buffer){(function(){var C,Ch,CreationTime,Issuer,Literal,Signature,Signer,Verifier,VerifierBase,WordArray,encode,hash_obj_to_fn,iced,konst,make_esc,packetsigs,streamers,unix_time,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,_ref=require("./packet/signature"),Signature=_ref.Signature,CreationTime=_ref.CreationTime,Issuer=_ref.Issuer,unix_time=require("../util").unix_time,WordArray=require("triplesec").WordArray,konst=require("../const"),C=konst.openpgp,Ch=require("../header"),streamers=require("../hash").streamers,encode=require("./armor").encode,Literal=require("./packet/literal").Literal,VerifierBase=require("./verifier").Base,packetsigs=require("./packet/packetsigs"),hash_obj_to_fn=function(obj){var fn;return fn=function(buf){return obj.finalize(WordArray.from_buffer(buf)).to_buffer()},fn.algname=buf.algname},Signer=function(){function Signer(_arg){this.data=_arg.data,this.hash_streamer=_arg.hash_streamer,this.signing_key=_arg.signing_key}return Signer.prototype.run=function(cb){var encoded,esc,signature,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Signer::run"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Signer.run"}),_this._run_hash(esc(__iced_deferrals.defer({lineno:39}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Signer.run"}),_this._sign(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return signature=arguments[0]}}(),lineno:40}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Signer.run"}),_this._encode(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return encoded=arguments[0]}}(),lineno:41}))),__iced_deferrals._fulfill()}(function(){return cb(null,encoded,signature)})})}}(this))},Signer.prototype.scrub=function(){},Signer.prototype._sign=function(cb){var emptybuf,err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this.sig=new Signature({sig_type:C.sig_types.canonical_text,key:this.signing_key.key,hashed_subpackets:[new CreationTime(unix_time())],unhashed_subpackets:[new Issuer(this.signing_key.get_key_id())],hasher:this.hash_streamer}),emptybuf=new Buffer([]),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Signer._sign"}),_this.sig.write(emptybuf,__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1._sig_output=arguments[1]}}(_this),lineno:60})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return cb(err,_this._sig_output)}}(this))},Signer.prototype._encode=function(cb){var err,ret;return err=null,ret=encode(C.message_types.signature,this._sig_output),cb(err,ret)},Signer.prototype._run_hash=function(cb){var err;return err=null,null!=this.hash_streamer||(null!=this.data?(this.hash_streamer=streamers.SHA512(),this.hash_streamer.update(this.data)):err=new Error("Need either a hasher or data")),cb(err)},Signer}(),Verifier=function(_super){function Verifier(_arg){var keyfetch,packets;packets=_arg.packets,this.data=_arg.data,this.data_fn=_arg.data_fn,keyfetch=_arg.keyfetch,Verifier.__super__.constructor.call(this,{packets:packets,keyfetch:keyfetch})}return __extends(Verifier,_super),Verifier.prototype._consume_data=function(cb){var buf_hasher,done,err,go,klass,streamer,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,function(_this){return function(__iced_k){return null==_this.data_fn?__iced_k():(err=null,klass=_this._sig.hasher.klass,streamer=streamers[_this._sig.hasher.algname](),buf_hasher=function(buf){return streamer.update(buf)},go=!0,function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},go?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier._consume_data"}),_this.data_fn(buf_hasher,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],done=arguments[1]}}(),lineno:102})),__iced_deferrals._fulfill()}(function(){return _next(null!=err||done?go=!1:void 0)}):_break()})(__iced_k)}(function(){return __iced_k(_this._sig.hasher=streamer)}),void 0)}}(this)(function(){return function(){return cb(err)}}(this))},Verifier.prototype._verify=function(cb){var data,err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=this.data?[new Literal({data:this.data})]:[],this.literals=data,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier._verify"}),_this._sig.verify(data,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:113})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},Verifier.prototype._make_literals=function(cb){return this.literals.length||this.literals.push(new Literal({data:new Buffer([])})),this.literals[0].push_sig(new packetsigs.Data({sig:this._sig})),cb(null)},Verifier.prototype.run=function(cb){var esc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Verifier::run"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._find_signature(esc(__iced_deferrals.defer({lineno:128}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._fetch_key(esc(__iced_deferrals.defer({lineno:129}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._consume_data(esc(__iced_deferrals.defer({lineno:130}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._verify(esc(__iced_deferrals.defer({lineno:131}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"Verifier.run"}),_this._make_literals(esc(__iced_deferrals.defer({lineno:132}))),__iced_deferrals._fulfill()}(function(){return cb(null,_this.literals)})})})})}}(this))},Verifier}(VerifierBase),exports.sign=function(_arg,cb){var data,encoded,err,hash_streamer,s,signature,signing_key,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,hash_streamer=_arg.hash_streamer,signing_key=_arg.signing_key,s=new Signer({data:data,hash_streamer:hash_streamer,signing_key:signing_key}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"sign"}),s.run(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],encoded=arguments[1],signature=arguments[2]}}(),lineno:139})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return s.scrub(),cb(err,encoded,signature)}}(this))},exports.verify=function(_arg,cb){var data,data_fn,err,keyfetch,literals,packets,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,data_fn=_arg.data_fn,packets=_arg.packets,keyfetch=_arg.keyfetch,v=new Verifier({data:data,data_fn:data_fn,packets:packets,keyfetch:keyfetch}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/detachsign.iced",funcname:"verify"}),v.run(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:147})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,literals)}}(this))}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../hash":14,"../header":15,"../util":70,"./armor":33,"./packet/literal":49,"./packet/packetsigs":51,"./packet/signature":53,"./verifier":61,buffer:80,"iced-error":115,"iced-runtime":118,triplesec:181}],41:[function(require,module,exports){(function(){var SignatureEngine,burn,processor;burn=require("./burner").burn,processor=require("./processor"),SignatureEngine=require("./sigeng").SignatureEngine,exports.box=burn,exports.unbox=processor.do_message}).call(this)},{"./burner":36,"./processor":57,"./sigeng":59}],42:[function(require,module,exports){(function(Buffer){(function(){var ASP,C,ECDSA,Encryptor,Engine,K,KeyBlock,KeyFetched,KeyFetcher,KeyManager,KeyManagerInterface,Lifespan,Message,P3SKB,PgpEngine,Primary,RSA,SignatureEngine,Subkey,assert_no_nulls,athrow,bufeq_secure,bufferify,decode,encode,format_pgp_fingerprint_2,iced,katch,make_esc,opkts,ops_to_keyflags,parse,read_base64,unix_time,unseal,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,_ref4,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},__slice=[].slice;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},RSA=require("../rsa").RSA,ECDSA=require("../ecc/ecdsa").ECDSA,K=require("../const").kb,C=require("../const").openpgp,make_esc=require("iced-error").make_esc,_ref=require("../util"),format_pgp_fingerprint_2=_ref.format_pgp_fingerprint_2,athrow=_ref.athrow,assert_no_nulls=_ref.assert_no_nulls,ASP=_ref.ASP,katch=_ref.katch,bufeq_secure=_ref.bufeq_secure,unix_time=_ref.unix_time,bufferify=_ref.bufferify,ops_to_keyflags=require("./util").ops_to_keyflags,_ref1=require("../keywrapper"),Lifespan=_ref1.Lifespan,Subkey=_ref1.Subkey,Primary=_ref1.Primary,_ref2=require("./armor"),Message=_ref2.Message,encode=_ref2.encode,decode=_ref2.decode,parse=require("./parser").parse,KeyBlock=require("./processor").KeyBlock,opkts=require("./packet/all"),_ref3=require("../keybase/encode"),read_base64=_ref3.read_base64,unseal=_ref3.unseal,P3SKB=require("../keybase/packet/p3skb").P3SKB,_ref4=require("../keyfetch"),KeyFetcher=_ref4.KeyFetcher,KeyFetched=_ref4.KeyFetched,SignatureEngine=require("./sigeng").SignatureEngine,Encryptor=require("triplesec").Encryptor,KeyManagerInterface=require("../kmi").KeyManagerInterface,Engine=function(){function Engine(_arg){var k,_i,_len,_ref5;for(this.primary=_arg.primary,this.subkeys=_arg.subkeys,this.userids=_arg.userids,this.key_manager=_arg.key_manager,this.packets=[],this.messages=[],this._allocate_key_packets(),_ref5=this.subkeys,_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],k.primary=this.primary;this._index_keys()}return Engine.prototype._index_keys=function(){var k,_i,_len,_ref5,_results;for(this._index={},_ref5=this._all_keys(),_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push(this._index[this.ekid(k)]=k);return _results},Engine.prototype.ekid=function(k){return this.key(k).ekid()},Engine.prototype._allocate_key_packets=function(){var key,_i,_len,_ref5,_results;for(this._v_allocate_key_packet(this.primary,{subkey:!1}),_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)key=_ref5[_i],_results.push(this._v_allocate_key_packet(key,{subkey:!0}));
return _results},Engine.prototype._all_keys=function(){return[this.primary].concat(this.subkeys)},Engine.prototype.self_sign_primary=function(args,cb){return this._v_self_sign_primary(args,cb)},Engine.prototype.get_all_key_materials=function(){var k;return[[this.key(this.primary),!0]].concat(function(){var _i,_len,_ref5,_results;for(_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push([this.key(k),!1]);return _results}.call(this))},Engine.prototype.sign_subkeys=function(_arg,cb){var asp,err,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,err=null,function(_this){return function(__iced_k){var _i,_len,_ref5,_results,_while;_ref5=_this.subkeys,_len=_ref5.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(subkey=_ref5[_i],null!=err?_continue():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.sign_subkeys"}),_this._v_sign_subkey({asp:asp,subkey:subkey},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:73})),__iced_deferrals._fulfill()}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},Engine.prototype.get_subkey_materials=function(){var k,_i,_len,_ref5,_results;for(_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push(this.key(k));return _results},Engine.prototype.is_locked=function(){var i,k,_i,_len,_ref5;for(_ref5=this._all_keys(),i=_i=0,_len=_ref5.length;_len>_i;i=++_i)if(k=_ref5[i],this.key(k).is_locked())return!0;return!1},Engine.prototype.has_private=function(){var k,_i,_len,_ref5;for(_ref5=this._all_keys(),_i=0,_len=_ref5.length;_len>_i;_i++)if(k=_ref5[_i],this.key(k).has_private())return!0;return!1},Engine.prototype.sign=function(_arg,cb){var asp,err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.sign"}),_this.self_sign_primary({asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:97})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return"undefined"!=typeof err&&null!==err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.sign"}),_this.sign_subkeys({asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:98})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err)})}}(this))},Engine.prototype.check_eq=function(eng2){var err,i,key,_i,_len,_ref5;if(err=null,this.primary.key.eq(eng2.primary.key))if(this.subkeys.length!==eng2.subkeys.length)err=new Error("different # of subkeys");else for(_ref5=this.subkeys,i=_i=0,_len=_ref5.length;_len>_i;i=++_i)key=_ref5[i],null==this.err&&(key.key.eq(eng2.subkeys[i].key)||(err=new Error("subkey "+i+" doesn't match")));else err=new Error("Primary keys don't match");return err},Engine.prototype.merge_private=function(eng2){var err,i,k,_i,_len,_ref5;if(err=this._merge_private_primary(eng2),null==err)for(_ref5=eng2.subkeys,i=_i=0,_len=_ref5.length;_len>_i&&(k=_ref5[i],null==(err=this._merge_private_subkey(k,i)));i=++_i);return err},Engine.prototype._merge_private_primary=function(eng2){var err;return err=this.key(eng2.primary).has_secret_key_material()?this._merge_1_private(this.primary,eng2.primary)?null:new Error("primary public key doesn't match private key"):null},Engine.prototype._merge_private_subkey=function(k2,i){var ekid,err,k;return err=this.key(k2).has_secret_key_material()?null==(ekid=this.ekid(k2))?new Error("Subkey "+i+" is malformed"):null==(k=this._index[ekid])?new Error("Subkey "+i+" wasn't found in public key"):this._merge_1_private(k,k2)?null:new Error("subkey "+i+" can't be merged"):null},Engine.prototype.unlock_keys=function(_arg,cb){var asp,esc,i,passphrase,subkey,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,passphrase=_arg.passphrase,tsenc=_arg.tsenc,esc=make_esc(cb,"Engine::unlock_keys"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.unlock_keys"}),_this.key(_this.primary).unlock({asp:asp,tsenc:tsenc,passphrase:passphrase},esc(__iced_deferrals.defer({lineno:146}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _len,_ref5,_results,_while;_ref5=_this.subkeys,_len=_ref5.length,i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>i?(subkey=_ref5[i],_this.key(subkey).has_private()?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"Engine.unlock_keys"}),_this.key(subkey).unlock({asp:asp,tsenc:tsenc,passphrase:passphrase},esc(__iced_deferrals.defer({lineno:148}))),__iced_deferrals._fulfill()}(_next):_continue()):_break()})(__iced_k)}(function(){return cb(null)})}}(this))},Engine.prototype.export_keys_to_keyring=function(km){var k,x;return x=function(_this){return function(key_wrapper,is_primary){return{km:km,is_primary:is_primary,key_wrapper:key_wrapper,key_material:_this.key(key_wrapper),key:_this.key(key_wrapper).key}}}(this),[x(this.primary,!0)].concat(function(){var _i,_len,_ref5,_results;for(_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push(x(k,!1));return _results}.call(this))},Engine.prototype._merge_1_private=function(k1,k2){return bufeq_secure(this.ekid(k1),this.ekid(k2))?(this.key(k1).merge_private(this.key(k2)),!0):!1},Engine}(),PgpEngine=function(_super){function PgpEngine(_arg){var key_manager,primary,subkeys,userids;primary=_arg.primary,subkeys=_arg.subkeys,userids=_arg.userids,this.user_attributes=_arg.user_attributes,key_manager=_arg.key_manager,PgpEngine.__super__.constructor.call(this,{primary:primary,subkeys:subkeys,userids:userids,key_manager:key_manager})}return __extends(PgpEngine,_super),PgpEngine.prototype.key=function(k){return k._pgp},PgpEngine.prototype._v_allocate_key_packet=function(key,opts){return null==key._pgp?key._pgp=new opkts.KeyMaterial({key:key.key,timestamp:key.lifespan.generated,flags:key.flags,opts:opts}):void 0},PgpEngine.prototype._v_self_sign_primary=function(_arg,cb){var asp,err,raw_payload,sigs,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,raw_payload=_arg.raw_payload,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"PgpEngine._v_self_sign_primary"}),_this.key(_this.primary).self_sign_key({lifespan:_this.primary.lifespan,userids:_this.userids,raw_payload:raw_payload},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sigs=arguments[1]}}(),lineno:198})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,sigs)}}(this))},PgpEngine.prototype._v_sign_subkey=function(_arg,cb){var asp,err,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,subkey=_arg.subkey,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"PgpEngine._v_sign_subkey"}),_this.key(_this.primary).sign_subkey({subkey:_this.key(subkey),lifespan:subkey.lifespan},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:204})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},PgpEngine.prototype.set_passphrase=function(pp){var k,_i,_len,_ref5,_results;for(this.primary.passphrase=pp,_ref5=this.subkeys,_results=[],_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],_results.push(k.passphrase=pp);return _results},PgpEngine.prototype._export_keys_to_binary=function(opts){var packets,subkey,userid,_i,_j,_len,_len1,_ref5,_ref6;for(packets=[this.key(this.primary).export_framed(opts)],_ref5=this.userids,_i=0,_len=_ref5.length;_len>_i;_i++)userid=_ref5[_i],packets.push(userid.write(),userid.get_framed_signature_output());for(opts.subkey=!0,_ref6=this.subkeys,_j=0,_len1=_ref6.length;_len1>_j;_j++)subkey=_ref6[_j],packets.push(this.key(subkey).export_framed(opts),this.key(subkey).get_subkey_binding_signature_output());return assert_no_nulls(packets),Buffer.concat(packets)},PgpEngine.prototype.export_keys=function(opts){var msg,mt,type;return mt=C.message_types,type=opts["private"]?mt.private_key:mt.public_key,msg=this._export_keys_to_binary(opts),encode(type,msg)},PgpEngine.prototype.export_to_p3skb=function(){var priv_clear,pub;return pub=this._export_keys_to_binary({"private":!1}),priv_clear=this._export_keys_to_binary({"private":!0}),new P3SKB({pub:pub,priv_clear:priv_clear})},PgpEngine.prototype.find_key=function(key_id){var k,_i,_len,_ref5;for(_ref5=this._all_keys(),_i=0,_len=_ref5.length;_len>_i;_i++)if(k=_ref5[_i],bufeq_secure(this.key(k).get_key_id(),key_id))return k;return null},PgpEngine.prototype.find_key_material=function(key_id){var key;return key=this.find_key(key_id),null!=key?this.key(key):null},PgpEngine.prototype.get_key_id=function(){return this.key(this.primary).get_key_id()},PgpEngine.prototype.get_short_key_id=function(){return this.key(this.primary).get_short_key_id()},PgpEngine.prototype.get_fingerprint=function(){return this.key(this.primary).get_fingerprint()},PgpEngine.prototype.get_ekid=function(){return this.key(this.primary).ekid()},PgpEngine.prototype.validity_check=function(cb){var err,k,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,function(_this){return function(__iced_k){var _i,_len,_ref5,_results,_while;_ref5=_this._all_keys(),_len=_ref5.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(k=_ref5[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"PgpEngine.validity_check"}),_this.key(k).validity_check(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:267})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return null==err?__iced_k():void!function(){_break()}(__iced_k)}(_next)})):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},PgpEngine.prototype.find_best_key=function(flags,need_priv){var check,k,wrapper,_i,_len,_ref5;for(null==need_priv&&(need_priv=!1),wrapper=null,check=function(_this){return function(k){var km,ok1,ok2;return km=_this.key(k),ok1=km.fulfills_flags(flags)||(k.flags&flags)===flags,ok2=!need_priv||km.has_private(),ok1&&ok2}}(this),_ref5=this.subkeys,_i=0,_len=_ref5.length;_len>_i;_i++)k=_ref5[_i],null==wrapper&&check(k)&&(wrapper=k);return null==wrapper&&check(this.primary)&&(wrapper=this.primary),null!=wrapper?this.key(wrapper):null},PgpEngine.prototype.fetch=function(key_ids,op_mask,cb){var err,flags,i,key,kid,ret,ret_i,_i,_len;for(flags=ops_to_keyflags(op_mask),err=key=ret=null,key=null,ret_i=null,i=_i=0,_len=key_ids.length;_len>_i;i=++_i)kid=key_ids[i],null==key&&(key=this.find_key(kid),null!=key&&(ret_i=i));return null==key?err=new Error("No keys match the given fingerprint"):this.key(key).fulfills_flags(flags)?ret=this.key(key):err=new Error("We don't have a key for the requested PGP ops"),cb(err,this.key_manager,ret_i)},PgpEngine}(Engine),KeyManager=function(_super){function KeyManager(_arg){this.primary=_arg.primary,this.subkeys=_arg.subkeys,this.userids=_arg.userids,this.armored_pgp_public=_arg.armored_pgp_public,this.armored_pgp_private=_arg.armored_pgp_private,this.user_attributes=_arg.user_attributes,this.pgp=new PgpEngine({primary:this.primary,subkeys:this.subkeys,userids:this.userids,user_attributes:this.user_attributes,key_manager:this}),this.engines=[this.pgp],this._signed=!1,this.p3skb=null}return __extends(KeyManager,_super),KeyManager.generate=function(_arg,cb){var F,KEY_FLAGS_PRIMARY,KEY_FLAGS_STD,asp,bundle,ecc,err,esc,expire_in,flags,gen,generated,i,nbits,nsubs,primary,primary_flags,s,sub_flags,subkey,subkeys,subkeys_out,u,userid,userids,___iced_passed_deferral,__iced_deferrals,__iced_k,_i,_len;for(__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,userid=_arg.userid,userids=_arg.userids,primary=_arg.primary,subkeys=_arg.subkeys,ecc=_arg.ecc,sub_flags=_arg.sub_flags,nsubs=_arg.nsubs,primary_flags=_arg.primary_flags,nbits=_arg.nbits,expire_in=_arg.expire_in,asp=ASP.make(asp),F=C.key_flags,KEY_FLAGS_STD=F.sign_data|F.encrypt_comm|F.encrypt_storage|F.auth,KEY_FLAGS_PRIMARY=KEY_FLAGS_STD|F.certify_keys,primary||(primary={}),primary.flags||(primary.flags=primary_flags||KEY_FLAGS_PRIMARY),primary.expire_in||(primary.expire_in=(null!=expire_in?expire_in.primary:void 0)||K.key_defaults.primary.expire_in),primary.algo||(primary.algo=ecc?ECDSA:RSA),primary.nbits||(primary.nbits=nbits||K.key_defaults.primary.nbits[primary.algo.klass_name]),null!=nsubs&&null==sub_flags&&(sub_flags=function(){var _i,_results;for(_results=[],i=_i=0;nsubs>=0?nsubs>_i:_i>nsubs;i=nsubs>=0?++_i:--_i)_results.push(KEY_FLAGS_STD);return _results}()),subkeys||(subkeys=function(){var _i,_len,_results;for(_results=[],_i=0,_len=sub_flags.length;_len>_i;_i++)flags=sub_flags[_i],_results.push({flags:flags});return _results}()),_i=0,_len=subkeys.length;_len>_i;_i++)subkey=subkeys[_i],subkey.expire_in||(subkey.expire_in=(null!=expire_in?expire_in.subkey:void 0)||K.key_defaults.sub.expire_in),subkey.flags||(subkey.flags=KEY_FLAGS_STD),subkey.algo||(subkey.algo=primary.algo.subkey_algo(subkey.flags)),subkey.nbits||(subkey.nbits=nbits||K.key_defaults.sub.nbits[subkey.algo.klass_name]);generated=unix_time(),esc=make_esc(cb,"KeyManager::generate"),null!=userid&&(userids=[userid]),function(){return function(__iced_k){return null!=userids&&Array.isArray(userids)?__iced_k(userids=function(){var _j,_len1,_results;for(_results=[],_j=0,_len1=userids.length;_len1>_j;_j++)u=userids[_j],_results.push(new opkts.UserID(u));return _results}()):(err=new Error("Need either 'userid' or 'userids' specified as an array"),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.generate"}),athrow(err,esc(__iced_deferrals.defer({lineno:391}))),__iced_deferrals._fulfill()}(__iced_k))}}(this)(function(){return function(){gen=function(_arg1,cb){var err,key,klass,lifespan,params,primary,section,wrapper,___iced_passed_deferral1,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral1=iced.findDeferral(arguments),klass=_arg1.klass,section=_arg1.section,params=_arg1.params,primary=_arg1.primary,asp.section(section),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral1,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced"}),params.algo.generate({asp:asp,nbits:params.nbits},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],key=arguments[1]}}(),lineno:395})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return("undefined"==typeof err||null===err)&&(lifespan=new Lifespan({generated:generated,expire_in:params.expire_in}),wrapper=new klass({key:key,lifespan:lifespan,flags:params.flags,primary:primary})),cb(err,wrapper)}}(this))},function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.generate"}),gen({klass:Primary,section:"primary",params:primary},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return primary=arguments[0]}}(),lineno:401}))),__iced_deferrals._fulfill()}(function(){subkeys_out=[],function(__iced_k){var _len1,_ref5,_results,_while;_ref5=subkeys,_len1=_ref5.length,i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len1>i?(subkey=_ref5[i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.generate"}),gen({klass:Subkey,section:"subkey "+(i+1),params:subkey,primary:primary},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return s=arguments[0]}}(),lineno:404}))),__iced_deferrals._fulfill()}(function(){return _next(subkeys_out.push(s))})):_break()})(__iced_k)}(function(){return bundle=new KeyManager({primary:primary,subkeys:subkeys_out,userids:userids}),cb(null,bundle)})})}}(this))},KeyManager.generate_rsa=function(_arg,cb){var F,asp,primary,subkeys,userid,userids;return asp=_arg.asp,userid=_arg.userid,userids=_arg.userids,F=C.key_flags,primary={flags:F.certify_keys,nbits:4096},subkeys=[{flags:F.encrypt_data|F.encrypt_comm,nbits:2048},{flags:F.sign_data|F.auth,nbits:2048}],KeyManager.generate({asp:asp,userid:userid,userids:userids,primary:primary,subkeys:subkeys},cb)},KeyManager.generate_ecc=function(_arg,cb){var F,asp,primary,subkeys,userid,userids;return asp=_arg.asp,userid=_arg.userid,userids=_arg.userids,F=C.key_flags,primary={flags:F.certify_keys,nbits:384,algo:ECDSA},subkeys=[{flags:F.encrypt_data|F.encrypt_comm,nbits:256},{flags:F.sign_data|F.auth,nbits:256}],KeyManager.generate({asp:asp,userid:userid,userids:userids,primary:primary,subkeys:subkeys},cb)},KeyManager.prototype.set_enc=function(e){return this.tsenc=e},KeyManager.import_from_armored_pgp=function(_arg,cb){var armored,asp,binary,err,msg,opts,raw,ret,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref5,_ref6;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,raw=_arg.raw,binary=_arg.binary,asp=_arg.asp,opts=_arg.opts,msg=binary,err=null,null==msg&&(raw||(raw=armored),asp=ASP.make(asp),warnings=null,ret=null,_ref5=decode(raw),err=_ref5[0],msg=_ref5[1],null==err&&(_ref6=msg.type)!==C.message_types.public_key&&_ref6!==C.message_types.private_key&&(err=new Error("Wanted a public or private key; got: "+msg.type))),function(){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_armored_pgp"}),KeyManager.import_from_pgp_message({msg:msg,asp:asp,opts:opts},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1],warnings=arguments[2]}}(),lineno:482})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_armored_pgp"}),ret.simple_unlock({},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:488})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err,ret,warnings)})}}(this))},KeyManager.prototype.simple_unlock=function(opts,cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,function(_this){return function(__iced_k){return!_this.has_pgp_private()||_this.is_pgp_locked()?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.simple_unlock"}),_this.unlock_pgp({},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:500})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},KeyManager.import_from_p3skb=function(_arg,cb){var armored,asp,err,km,msg,p3skb,raw,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref5;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),raw=_arg.raw,armored=_arg.armored,asp=_arg.asp,armored||(armored=raw),asp=ASP.make(asp),km=null,warnings=null,_ref5=katch(function(){return P3SKB.alloc(unseal(read_base64(armored)))}),err=_ref5[0],p3skb=_ref5[1],function(){return function(__iced_k){return null!=err?__iced_k():(msg=new Message({body:p3skb.pub,type:C.message_types.public_key}),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_p3skb"}),KeyManager.import_from_pgp_message({msg:msg,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],warnings=arguments[2]}}(),lineno:515})),__iced_deferrals._fulfill()}(function(){return __iced_k(null!=km?km.p3skb=p3skb:void 0)}))}}(this)(function(){return function(){return cb(err,km,warnings)}}(this))},KeyManager.prototype.unlock_p3skb=function(_arg,cb){var asp,err,km,msg,passphrase,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,tsenc=_arg.tsenc,passphrase=_arg.passphrase,asp=ASP.make(asp),null==tsenc&&null!=passphrase&&(tsenc=new Encryptor({key:bufferify(passphrase)})),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_p3skb"}),_this.p3skb.unlock({tsenc:tsenc,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:525})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():(msg=new Message({body:_this.p3skb.priv.data,type:C.message_types.private_key}),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_p3skb"}),KeyManager.import_from_pgp_message({msg:msg,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1]}}(),lineno:528})),__iced_deferrals._fulfill()}(__iced_k))}(function(){("undefined"==typeof err||null===err)&&(err=_this.pgp.merge_private(km.pgp)),function(__iced_k){return null!=err?__iced_k():(passphrase=new Buffer([]),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_p3skb"}),_this.unlock_pgp({passphrase:passphrase},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:537})),__iced_deferrals._fulfill()}(__iced_k))}(function(){return cb(err)})})}}(this))},KeyManager.import_from_pgp_message=function(_arg,cb){var asp,bundle,err,k,kb,msg,opts,packets,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref5;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,asp=_arg.asp,opts=_arg.opts,asp=ASP.make(asp),bundle=null,warnings=null,("undefined"==typeof err||null===err)&&(_ref5=parse(msg.body),err=_ref5[0],packets=_ref5[1]),function(){return function(__iced_k){return null!=err?__iced_k():(kb=new KeyBlock(packets,opts),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_pgp_message"}),kb.process(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:552})),__iced_deferrals._fulfill()}(function(){return __iced_k(warnings=kb.warnings)}))}}(this)(function(){return function(){null==err&&(bundle=new KeyManager({primary:KeyManager._wrap_pgp(Primary,kb.primary),subkeys:function(){var _i,_len,_ref6,_results;for(_ref6=kb.subkeys,_results=[],_i=0,_len=_ref6.length;_len>_i;_i++)k=_ref6[_i],_results.push(KeyManager._wrap_pgp(Subkey,k));return _results}(),armored_pgp_public:msg.raw(),user_attributes:kb.user_attributes,userids:kb.userids})),function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.import_from_pgp_message"}),bundle.check_pgp_validity(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:562})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err,bundle,warnings)})}}(this))},KeyManager.prototype.merge_pgp_private=function(_arg,cb){var armored,asp,b2,err,esc,raw,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,raw=_arg.raw,asp=_arg.asp,asp=ASP.make(asp),esc=make_esc(cb,"merge_pgp_private"),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.merge_pgp_private"}),KeyManager.import_from_armored_pgp({armored:armored,raw:raw,asp:asp},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return b2=arguments[0]}}(),lineno:573}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){err=_this.pgp.merge_private(b2.pgp),function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.merge_pgp_private"}),_this.simple_unlock({},esc(__iced_deferrals.defer({lineno:575}))),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err)})}}(this))},KeyManager.prototype.check_pgp_public_eq=function(km2){return this.pgp.check_eq(km2.pgp)},KeyManager.prototype.unlock_pgp=function(_arg,cb){var err,passphrase,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),passphrase=_arg.passphrase,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_pgp"}),_this.pgp.unlock_keys({passphrase:passphrase},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:588})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},KeyManager.prototype.is_pgp_locked=function(){return this.pgp.is_locked()},KeyManager.prototype.is_keybase_locked=function(){return this.keybase.is_locked()},KeyManager.prototype.has_pgp_private=function(){return this.pgp.has_private()},KeyManager.prototype.has_p3skb_private=function(){var _ref5;return null!=(_ref5=this.p3skb)?_ref5.has_private():void 0},KeyManager.prototype.has_keybase_private=function(){return this.keybase.has_private()},KeyManager.prototype.is_p3skb_locked=function(){var _ref5;return null!=(_ref5=this.p3skb)?_ref5.is_locked():void 0},KeyManager.prototype.unlock_keybase=function(_arg,cb){var asp,err,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),tsenc=_arg.tsenc,asp=_arg.asp,asp=ASP.make(asp),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.unlock_keybase"}),_this.keybase.unlock_keys({tsenc:tsenc,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:606})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},KeyManager.prototype.export_private_to_server=function(_arg,cb){var asp,err,p3skb,ret,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),tsenc=_arg.tsenc,asp=_arg.asp,asp=ASP.make(asp),err=ret=null,function(_this){return function(__iced_k){return null!=(err=_this._assert_signed())?__iced_k():(p3skb=_this.pgp.export_to_p3skb(),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.export_private_to_server"}),p3skb.lock({tsenc:tsenc,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:619})),__iced_deferrals._fulfill()}(__iced_k))}}(this)(function(){return function(){return null==err&&(ret=p3skb.frame_packet_armored({dohash:!0})),cb(err,ret)}}(this))},KeyManager.prototype.export_pgp_private_to_client=function(_arg,cb){var asp,err,msg,passphrase,regen;return passphrase=_arg.passphrase,asp=_arg.asp,regen=_arg.regen,asp=ASP.make(asp),err=msg=null,null!=passphrase&&(passphrase=bufferify(passphrase)),!regen&&(msg=this.armored_pgp_private)||null==(err=this._assert_signed())&&(msg=this.pgp.export_keys({"private":!0,passphrase:passphrase})),cb(err,msg)},KeyManager.prototype.export_pgp_private=function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],this.export_pgp_private_to_client.apply(this,args)},KeyManager.prototype.export_pgp_public=function(_arg,cb){var asp,err,msg,regen;return asp=_arg.asp,regen=_arg.regen,asp=ASP.make(asp),err=null,null==(err=this._assert_signed())&&(regen||(msg=this.armored_pgp_public),null==msg&&(msg=this.pgp.export_keys({"private":!1}))),cb(err,msg)},KeyManager.prototype.export_public=function(_arg,cb){var asp,err,msg,regen,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,regen=_arg.regen,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.export_public"}),_this.export_pgp_public({asp:asp,regen:regen},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],msg=arguments[1]
}}(),lineno:654})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,msg)}}(this))},KeyManager.prototype.export_private=function(_arg,cb){var asp,err,p3skb,passphrase,res,tsenc,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),passphrase=_arg.passphrase,p3skb=_arg.p3skb,asp=_arg.asp,function(_this){return function(__iced_k){p3skb?(tsenc=new Encryptor({key:bufferify(passphrase)}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.export_private"}),_this.export_private_to_server({tsenc:tsenc,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],res=arguments[1]}}(),lineno:662})),__iced_deferrals._fulfill()}(__iced_k)):!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.export_private"}),_this.export_pgp_private_to_client({passphrase:passphrase,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],res=arguments[1]}}(),lineno:664})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,res)}}(this))},KeyManager.prototype.sign_pgp=function(_arg,cb){var asp;return asp=_arg.asp,this.pgp.sign({asp:asp},cb)},KeyManager.prototype.sign=function(_arg,cb){var asp,err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),asp=_arg.asp,asp=ASP.make(asp),asp.section("sign"),asp.progress({what:"sign PGP",total:1,i:0}),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager.sign"}),_this.sign_pgp({asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:677})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return asp.progress({what:"sign PGP",total:1,i:1}),("undefined"==typeof err||null===err)&&(_this._signed=!0),cb(err)}}(this))},KeyManager.prototype.get_userids=function(){return this.userids},KeyManager.prototype.get_userids_mark_primary=function(){var do_insert,i,k,max,max_s,mymax,obj,pair,prev,primary_time,ret,s,tab,userid,_i,_len,_ref5;for(max=null,max_s=null,tab={},mymax=function(a,b){return null==a&&null==b?null:null==a?b:null==b?a:a>b?a:b},_ref5=this.userids,i=_i=0,_len=_ref5.length;_len>_i;i=++_i)userid=_ref5[i],null!=userid&&(s=userid.utf8(),pair=userid.time_primary_pair(),obj={userid:userid,pair:pair,i:i},do_insert=!1,null!=(prev=tab[s])?(primary_time=mymax(prev.pair[1],pair[1]),(null==prev.pair[0]||pair[0]&&prev.pair[0]<pair[0])&&(do_insert=!0)):(primary_time=pair[1],do_insert=!0),do_insert&&(tab[s]=obj),null!=primary_time&&(null==max||primary_time>max)&&(max_s=s,max=primary_time));null!=max_s&&(tab[max_s].userid.primary=!0),ret=[];for(k in tab)obj=tab[k],obj.userid.most_recent_sig=obj.pair[0],ret.push(obj.userid);return ret},KeyManager.prototype.fetch=function(key_ids,flags,cb){return this.pgp.fetch(key_ids,flags,cb)},KeyManager.prototype.find_pgp_key=function(key_id){return this.pgp.find_key(key_id)},KeyManager.prototype.find_pgp_key_material=function(key_id){return this.pgp.find_key_material(key_id)},KeyManager.prototype.find_best_pgp_key=function(flags,need_priv){return this.pgp.find_best_key(flags,need_priv)},KeyManager.prototype.find_signing_pgp_key=function(){return this.find_best_pgp_key(C.key_flags.sign_data,!0)},KeyManager.prototype.find_verifying_pgp_key=function(){return this.find_best_pgp_key(C.key_flags.sign_data,!1)},KeyManager.prototype.find_crypt_pgp_key=function(need_priv){return null==need_priv&&(need_priv=!1),this.find_best_pgp_key(C.key_flags.encrypt_comm,need_priv)},KeyManager.prototype.can_verify=function(){return null!=this.find_verifying_pgp_key()},KeyManager.prototype.get_primary_keypair=function(){return this.primary.key},KeyManager.prototype.get_all_pgp_key_materials=function(){return this.pgp.get_all_key_materials()},KeyManager.prototype.export_pgp_keys_to_keyring=function(){return this.pgp.export_keys_to_keyring(this)},KeyManager.prototype.get_pgp_key_id=function(){return this.pgp.get_key_id()},KeyManager.prototype.get_pgp_short_key_id=function(){return this.pgp.get_short_key_id()},KeyManager.prototype.get_pgp_fingerprint=function(){return this.pgp.get_fingerprint()},KeyManager.prototype.get_pgp_fingerprint_str=function(){var _ref5;return null!=(_ref5=this.get_pgp_fingerprint())?_ref5.toString("hex"):void 0},KeyManager.prototype.get_ekid=function(){return this.pgp.get_ekid()},KeyManager.prototype.get_ekid_b64_str=function(){var k;return null!=(k=this.get_ekid())?base64u.encode(k):null},KeyManager.prototype.get_fp2=function(){return this.get_pgp_fingerprint()},KeyManager.prototype.get_fp2_formatted=function(opts){var p;return null!=(p=this.get_fp2())?format_pgp_fingerprint_2(p,opts):null},KeyManager.prototype.get_type=function(){return"pgp"},KeyManager.prototype.check_pgp_validity=function(cb){return this.pgp.validity_check(cb)},KeyManager.prototype.make_sig_eng=function(){return new SignatureEngine({km:this})},KeyManager.prototype._apply_to_engines=function(_arg,cb){var args,e,err,meth,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),args=_arg.args,meth=_arg.meth,err=null,function(_this){return function(__iced_k){var _i,_len,_ref5,_results,_while;_ref5=_this.engines,_len=_ref5.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(e=_ref5[_i],err?_continue():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/keymanager.iced",funcname:"KeyManager._apply_to_engines"}),meth.call(e,args,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:803})),__iced_deferrals._fulfill()}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},KeyManager.prototype._assert_signed=function(){return this._signed?null:new Error("need to sign before export")},KeyManager._wrap_pgp=function(klass,kmp){return new klass({key:kmp.key,lifespan:new Lifespan({generated:kmp.timestamp}),_pgp:kmp})},KeyManager}(KeyManagerInterface),exports.KeyManager=KeyManager,exports.opkts=opkts}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../ecc/ecdsa":10,"../keybase/encode":16,"../keybase/packet/p3skb":21,"../keyfetch":24,"../keywrapper":26,"../kmi":27,"../rsa":67,"../util":70,"./armor":33,"./packet/all":44,"./parser":56,"./processor":57,"./sigeng":59,"./util":60,buffer:80,"iced-error":115,"iced-runtime":118,triplesec:181}],43:[function(require,module,exports){(function(Buffer){(function(){var AES,ASP,Base,Decryptor,Encryptor,SlicerBuffer,WordArray,decrypt,encrypt,iced,make_esc,repeat,rng,test,triplesec,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},WordArray=require("triplesec").WordArray,SlicerBuffer=require("./buffer").SlicerBuffer,triplesec=require("triplesec"),AES=triplesec.ciphers.AES,ASP=require("pgp-utils").util.ASP,make_esc=require("iced-error").make_esc,repeat=function(b,n){return Buffer.concat([b,b.slice(b.length-n)])},Base=function(){function Base(_arg){var asp,key;this.block_cipher_class=_arg.block_cipher_class,key=_arg.key,this.cipher=_arg.cipher,this.resync=_arg.resync,asp=_arg.asp,this.block_cipher_class||(this.block_cipher_class=AES),this.cipher||(this.cipher=new this.block_cipher_class(WordArray.from_buffer(key))),this.block_size=this.cipher.blockSize,this.out_bufs=[],this.asp=ASP.make(asp)}return Base.prototype.compact=function(){var b;return b=Buffer.concat(this.out_bufs),this.out_bufs=[b],b},Base}(),Encryptor=function(_super){function Encryptor(_arg){var asp,block_cipher_class,cipher,key,prefixrandom,resync;block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,prefixrandom=_arg.prefixrandom,resync=_arg.resync,asp=_arg.asp,Encryptor.__super__.constructor.call(this,{block_cipher_class:block_cipher_class,key:key,cipher:cipher,resync:resync,asp:asp}),this._init(prefixrandom)}return __extends(Encryptor,_super),Encryptor.prototype._enc=function(){return this.FRE=WordArray.from_buffer(this.FR),this.cipher.encryptBlock(this.FRE.words,0)},Encryptor.prototype._emit_sb=function(sb){var buf,deficit,i,pad;return buf=(deficit=this.block_size-sb.rem())>0?(pad=new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;deficit>=0?deficit>_i:_i>deficit;i=deficit>=0?++_i:--_i)_results.push(0);return _results}()),Buffer.concat([sb.consume_rest_to_buffer(),pad])):sb.read_buffer(this.block_size),this._emit_buf(buf)},Encryptor.prototype._emit_buf=function(buf){var wa;return wa=WordArray.from_buffer(buf.slice(0,this.block_size)),wa.xor(this.FRE,{n_words:Math.min(wa.words.length,this.FRE.words.length)}),buf=wa.to_buffer(),this.out_bufs.push(buf),this.FR=new Buffer(buf)},Encryptor.prototype._init=function(prefixrandom){var b,canary,ct,i,offset;return this.FR=new Buffer(function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=this.block_size;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)_results.push(0);return _results}.call(this)),prefixrandom=repeat(prefixrandom,2),this._enc(),this._emit_buf(prefixrandom),this._enc(),b=this.FRE.to_buffer(),canary=new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;2>_i;i=++_i)_results.push(b.readUInt8(i)^prefixrandom.readUInt8(this.block_size+i));return _results}.call(this)),this.out_bufs.push(canary),offset=this.resync?2:0,ct=this.compact(),ct.copy(this.FR,0,offset,offset+this.block_size),this._enc()},Encryptor.prototype.enc=function(plaintext,cb){var buf,ct,esc,j,n_wanted,ret,sb,total,wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sb=new SlicerBuffer(plaintext),esc=make_esc(cb,"Encryptor::enc"),this.resync?this._emit_sb(sb):(buf=Buffer.concat([new Buffer([0,0]),sb.read_buffer(this.block_size-2)]),wa=WordArray.from_buffer(buf),wa.xor(this.FRE,{}),buf=wa.to_buffer().slice(2),this.out_bufs.push(buf),ct=this.compact(),ct.copy(this.FR,0,ct.length-this.block_size,ct.length)),total=sb.rem(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced",funcname:"Encryptor.enc"}),_this.asp.progress({what:"ofcb encryption",i:0,total:total},esc(__iced_deferrals.defer({lineno:168}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_i,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(j=sb.rem()))return _break();for(_i=0;4096>_i&&(_this._enc(),_this._emit_sb(sb),j=sb.rem());_i++);!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced",funcname:"Encryptor.enc"}),_this.asp.progress({what:"ofcb encryption",i:total-j,total:total},esc(__iced_deferrals.defer({lineno:177}))),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){return ret=_this.compact(),n_wanted=plaintext.length+_this.block_size+2,ret=ret.slice(0,n_wanted),cb(null,ret)})}}(this))},Encryptor}(Base),Decryptor=function(_super){function Decryptor(_arg){var asp,block_cipher_class,cipher,key,prefixrandom,resync;block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,prefixrandom=_arg.prefixrandom,resync=_arg.resync,this.ciphertext=_arg.ciphertext,asp=_arg.asp,Decryptor.__super__.constructor.call(this,{block_cipher_class:block_cipher_class,key:key,cipher:cipher,resync:resync,asp:asp}),this._init()}return __extends(Decryptor,_super),Decryptor.prototype._init=function(){return this.reset()},Decryptor.prototype.reset=function(){return this.sb=new SlicerBuffer(this.ciphertext)},Decryptor.prototype.next_block=function(){return WordArray.from_buffer(this.sb.read_buffer_at_most(this.block_size))},Decryptor.prototype.get_prefix=function(){return this._prefix},Decryptor.prototype.check=function(cb){var ablock,err,i,iblock,lhs,rhs;return this.reset(),iblock=new WordArray(function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=this.block_size/4;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)_results.push(0);return _results}.call(this)),this.cipher.encryptBlock(iblock.words,0),ablock=this.next_block(),iblock.xor(ablock,{}),this._prefix=iblock.to_buffer(),this.cipher.encryptBlock(ablock.words,0),lhs=65535&iblock.words.slice(-1)[0],rhs=ablock.words[0]>>>16^this.sb.peek_uint16(),err=lhs===rhs?null:new Error("Canary block mismatch: "+lhs+" != "+rhs),cb(err)},Decryptor.prototype.dec=function(cb){var ablock,esc,iblock,j,out,total,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this.reset(),this.resync&&this.sb.advance(2),iblock=this.next_block(),esc=make_esc(cb,"Decryption::dec"),total=this.sb.rem(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced",funcname:"Decryptor.dec"}),_this.asp.progress({what:"ofcb decrypt",i:0,total:total},esc(__iced_deferrals.defer({lineno:239}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_i,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(j=_this.sb.rem()))return _break();for(_i=0;4096>_i&&(ablock=iblock,_this.cipher.encryptBlock(ablock.words,0),iblock=_this.next_block(),ablock.xor(iblock,{}),_this.out_bufs.push(ablock.to_buffer().slice(0,iblock.sigBytes)),j=_this.sb.rem());_i++);!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced",funcname:"Decryptor.dec"}),_this.asp.progress({what:"ofcb decrypt",i:total-j,total:total},esc(__iced_deferrals.defer({lineno:251}))),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){return out=_this.compact(),_this.resync||(out=out.slice(2)),cb(null,out)})}}(this))},Decryptor}(Base),encrypt=function(_arg,cb){var asp,block_cipher_class,cipher,eng,key,plaintext,prefixrandom,resync;return block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,prefixrandom=_arg.prefixrandom,resync=_arg.resync,plaintext=_arg.plaintext,asp=_arg.asp,eng=new Encryptor({block_cipher_class:block_cipher_class,key:key,cipher:cipher,prefixrandom:prefixrandom,resync:resync,asp:asp}),eng.enc(plaintext,cb)},decrypt=function(_arg,cb){var asp,block_cipher_class,cipher,ciphertext,eng,err,key,pt,resync,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),block_cipher_class=_arg.block_cipher_class,key=_arg.key,cipher=_arg.cipher,resync=_arg.resync,ciphertext=_arg.ciphertext,asp=_arg.asp,eng=new Decryptor({block_cipher_class:block_cipher_class,key:key,cipher:cipher,resync:resync,ciphertext:ciphertext,asp:asp}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced"}),eng.check(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:267})),__iced_deferrals._fulfill()}}(this)(function(){return function(){!function(__iced_k){return"undefined"!=typeof err&&null!==err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/ocfb.iced"}),eng.dec(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],pt=arguments[1]}}(),lineno:268})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err,pt)})}}(this))},exports.encrypt=encrypt,exports.decrypt=decrypt,exports.Decryptor=Decryptor,rng=require("crypto").rng,test=function(){var block_cipher_class,ct,key,plaintext,prefixrandom,pt;return plaintext=new Buffer("a man a plan a canal panama. and you know the rest"),key=rng(32),prefixrandom=new Buffer([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]),block_cipher_class=AES,ct=encrypt({block_cipher_class:block_cipher_class,key:key,prefixrandom:prefixrandom,plaintext:plaintext}),console.log(ct.toString("hex")),pt=decrypt({block_cipher_class:block_cipher_class,key:key,prefixrandom:prefixrandom,ciphertext:ct}),console.log(pt.toString("utf8"))}}).call(this)}).call(this,require("buffer").Buffer)},{"./buffer":35,buffer:80,crypto:86,"iced-error":115,"iced-runtime":118,"pgp-utils":163,triplesec:181}],44:[function(require,module,exports){(function(){exports.KeyMaterial=require("./keymaterial").KeyMaterial,exports.Signature=require("./signature").Signature,exports.UserID=require("./userid").UserID}).call(this)},{"./keymaterial":48,"./signature":53,"./userid":55}],45:[function(require,module,exports){(function(Buffer){(function(){var C,Packet,packetsigs,util;util=require("../util"),C=require("../../const").openpgp,packetsigs=require("./packetsigs"),Packet=function(){function Packet(){this._psc=new packetsigs.Collection}return Packet.prototype.frame_packet=function(tag,body){var bufs;return bufs=[new Buffer([192|tag]),util.encode_length(body.length),body],Buffer.concat(bufs)},Packet.prototype.set=function(d){var k,v,_results;_results=[];for(k in d)v=d[k],_results.push(this[k]=v);return _results},Packet.prototype.is_signature=function(){return!1},Packet.prototype.is_key_material=function(){return!1},Packet.prototype.is_duplicate_primary=function(){return!1},Packet.prototype.to_userid=function(){return null},Packet.prototype.to_user_attribute=function(){return null},Packet.prototype.to_literal=function(){return null},Packet.prototype.to_esk_packet=function(){return null},Packet.prototype.to_enc_data_packet=function(){return null},Packet.prototype.replay=function(){return this.frame_packet(this.tag,this.raw)},Packet.prototype.inflate=function(cb){return cb(null,null)},Packet.prototype.push_sig=function(packetsig){return this._psc.push(packetsig)},Packet.prototype.get_psc=function(){return this._psc},Packet.prototype.get_data_signer=function(){return this.get_psc().get_data_signer()},Packet.prototype.get_data_signers=function(){return this.get_psc().get_data_signers()},Packet.prototype.get_signed_userids=function(){return[]},Packet.prototype.get_subkey_binding=function(){return null},Packet.prototype.is_self_signed=function(){return!1},Packet}(),exports.Packet=Packet}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../util":60,"./packetsigs":51,buffer:80}],46:[function(require,module,exports){(function(Buffer){(function(){var C,Compressed,CompressionParser,Packet,asymmetric,bzip_inflate,compressjs,fake_zip_inflate,fix_zip_deflate,iced,uint_to_buffer,zlib,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,asymmetric=require("../../asymmetric"),zlib=require("zlib"),uint_to_buffer=require("../../util").uint_to_buffer,compressjs=require("keybase-compressjs"),fake_zip_inflate=function(buf,cb){var bufs,call_end,err,inflater,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),buf=Buffer.concat([new Buffer([120,156]),buf]),inflater=zlib.createInflate({flush:zlib.Z_FULL_FLUSH}),bufs=[],call_end=function(err){var ret,tmp;return null!=(tmp=cb)?(null!=err&&"Z_BUF_ERROR"===err.code&&(err=null),cb=null,ret=null!=err?null:Buffer.concat(bufs),tmp(err,ret)):void 0},inflater.on("readable",function(){var read_buf;return read_buf=inflater.read(),null!=read_buf?bufs.push(read_buf):void 0}),inflater.on("end",function(){return call_end(null)}),inflater.on("error",function(e){return call_end(e)}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced"}),inflater.write(buf,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:53})),__iced_deferrals._fulfill()}}(this)(function(){return function(){!function(__iced_k){return"undefined"!=typeof err&&null!==err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced"}),inflater.end(err),__iced_deferrals._fulfill()}(__iced_k)}(function(){return"undefined"!=typeof err&&null!==err?call_end(err):void 0})}}(this))},fix_zip_deflate=function(buf,cb){var err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced"}),zlib.deflate(buf,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:62})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,ret)}}(this))},bzip_inflate=function(buf,cb){var e,err,ret;err=null;try{ret=compressjs.Bzip2.decompressFile(buf),null!=ret&&(ret=new Buffer(ret))}catch(_error){e=_error,err=e}return cb(err,ret)},Compressed=function(_super){function Compressed(_arg){this.algo=_arg.algo,this.compressed=_arg.compressed,this.inflated=_arg.inflated}return __extends(Compressed,_super),Compressed.parse=function(slice){return new CompressionParser(slice).parse()},Compressed.prototype.inflate=function(cb){var err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){switch(_this.algo){case C.compression.none:return __iced_k(ret=_this.compressed);case C.compression.zlib:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.inflate"}),zlib.inflate(_this.compressed,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:96})),__iced_deferrals._fulfill()}(__iced_k);break;case C.compression.zip:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.inflate"}),fake_zip_inflate(_this.compressed,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:98})),__iced_deferrals._fulfill()}(__iced_k);break;case C.compression.bzip:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.inflate"}),bzip_inflate(_this.compressed,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:100})),__iced_deferrals._fulfill()}(__iced_k);break;default:return __iced_k(err=new Error("no known inflation -- algo: "+_this.algo))}}}(this)(function(){return function(){return cb(err,ret)}}(this))},Compressed.prototype.deflate=function(cb){var err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){switch(_this.algo){case C.compression.none:return __iced_k(ret=_this.inflated);case C.compression.zlib:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.deflate"}),zlib.deflate(_this.inflated,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:112})),__iced_deferrals._fulfill()}(__iced_k);break;case C.compression.zip:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.deflate"}),fake_zip_deflate(_this.inflated,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:114})),__iced_deferrals._fulfill()}(__iced_k);break;default:return __iced_k(err=new Error("no known deflation -- algo: "+_this.algo))}}}(this)(function(){return function(){return cb(err,ret)}}(this))},Compressed.prototype.write_unframed=function(cb){var bufs,err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.write_unframed"}),_this.deflate(__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1.compressed=arguments[1]}}(_this),lineno:123})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return null==err&&(bufs=[uint_to_buffer(8,_this.algo),_this.compressed],ret=Buffer.concat(bufs)),cb(err,ret)}}(this))},Compressed.prototype.write=function(cb){var err,ret,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/compressed.iced",funcname:"Compressed.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:133})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return null==err&&(ret=_this.frame_packet(C.packet_tags.compressed,unframed)),cb(err,ret)}}(this))},Compressed}(Packet),CompressionParser=function(){function CompressionParser(slice){this.slice=slice}return CompressionParser.prototype.parse=function(){var algo,compressed;return algo=this.slice.read_uint8(),compressed=this.slice.consume_rest_to_buffer(),new Compressed({algo:algo,compressed:compressed})},CompressionParser}(),exports.Compressed=Compressed}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../util":70,"./base":45,buffer:80,"iced-runtime":118,"keybase-compressjs":120,zlib:79}],47:[function(require,module,exports){(function(){var Generic,Packet,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};Packet=require("./base").Packet,Generic=function(_super){function Generic(type,body){this.type=type,this.body=body}return __extends(Generic,_super),Generic}(Packet),exports.Generic=Generic}).call(this)},{"./base":45}],48:[function(require,module,exports){(function(Buffer){(function(){var AES,C,DSA,ECDH,ECDSA,ElGamal,ElGamalSE,KeyMaterial,Packet,Parser,RSA,S,S2K,SHA1,SHA256,SecretKeyMaterial,Signature,bufeq_secure,bufferify,calc_checksum,decrypt,encode,encrypt,iced,katch,make_time_packet,native_rng,packetsigs,symmetric,triplesec,uint_to_buffer,unix_time,util,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},C=require("../../const").openpgp,triplesec=require("triplesec"),_ref=triplesec.hash,SHA1=_ref.SHA1,SHA256=_ref.SHA256,RSA=require("../../rsa").Pair,DSA=require("../../dsa").Pair,ElGamal=require("../../elgamal").Pair,ElGamalSE=require("../../elgamalse").Pair,ECDSA=require("../../ecc/ecdsa").Pair,ECDH=require("../../ecc/ecdh").Pair,AES=triplesec.ciphers.AES,native_rng=triplesec.prng.native_rng,calc_checksum=require("../util").calc_checksum,_ref1=require("../../util"),bufferify=_ref1.bufferify,unix_time=_ref1.unix_time,bufeq_secure=_ref1.bufeq_secure,katch=_ref1.katch,make_time_packet=_ref1.make_time_packet,uint_to_buffer=_ref1.uint_to_buffer,_ref2=require("../cfb"),decrypt=_ref2.decrypt,encrypt=_ref2.encrypt,Packet=require("./base").Packet,S=require("./signature"),Signature=S.Signature,encode=require("../armor").encode,_ref3=require("../s2k"),S2K=_ref3.S2K,SecretKeyMaterial=_ref3.SecretKeyMaterial,symmetric=require("../../symmetric"),util=require("util"),packetsigs=require("./packetsigs"),KeyMaterial=function(_super){function KeyMaterial(_arg){this.key=_arg.key,this.timestamp=_arg.timestamp,this.passphrase=_arg.passphrase,this.skm=_arg.skm,this.opts=_arg.opts,this.flags=_arg.flags,this.opts||(this.opts={}),this.flags||(this.flags=0),this._is_duplicate_primary=!1,KeyMaterial.__super__.constructor.call(this)}return __extends(KeyMaterial,_super),KeyMaterial.prototype._write_private_enc=function(bufs,priv,pp){var c,ct,iv,ivlen,k,ks,plaintext,salt,sha1hash;return bufs.push(new Buffer([C.s2k_convention.sha1,C.symmetric_key_algorithms.AES256,C.s2k.salt_iter,C.hash_algorithms.SHA256])),sha1hash=(new SHA1).bufhash(priv),salt=native_rng(8),bufs.push(salt),c=96,bufs.push(new Buffer([c])),ks=AES.keySize,k=(new S2K).write(pp,salt,c,ks),ivlen=AES.blockSize,iv=native_rng(ivlen),bufs.push(iv),plaintext=Buffer.concat([priv,sha1hash]),ct=encrypt({block_cipher_class:AES,key:k,plaintext:plaintext,iv:iv}),bufs.push(ct)},KeyMaterial.prototype._write_private_clear=function(bufs,priv){return bufs.push(new Buffer([C.s2k_convention.none]),priv,uint_to_buffer(16,calc_checksum(priv)))},KeyMaterial.prototype._write_public=function(bufs){var pub;return pub=this.key.serialize(),bufs.push(new Buffer([C.versions.keymaterial.V4]),uint_to_buffer(32,this.timestamp),new Buffer([this.key.type]),pub)},KeyMaterial.prototype._write_dummy=function(bufs){return bufs.push(new Buffer([C.s2k_convention.sha1,C.symmetric_key_algorithms.AES256,C.s2k.gnu,2]),new Buffer("GNU","utf8"),new Buffer([1]))
},KeyMaterial.prototype.add_flags=function(v){return this.flags|=v},KeyMaterial.prototype.private_body=function(opts){var bufs,p,pp,priv,ret;return bufs=[],this._write_public(bufs),priv=null!=(p=this.key.priv)?p.serialize():null,pp=opts.passphrase||this.passphrase,null==priv?this._write_dummy(bufs):null!=pp?this._write_private_enc(bufs,priv,pp):this._write_private_clear(bufs,priv),ret=Buffer.concat(bufs)},KeyMaterial.prototype.private_framed=function(opts){var T,body,tag;return body=this.private_body(opts),T=C.packet_tags,tag=opts.subkey?T.secret_subkey:T.secret_key,this.frame_packet(tag,body)},KeyMaterial.prototype.public_body=function(){var bufs;return bufs=[],this._write_public(bufs),Buffer.concat(bufs)},KeyMaterial.prototype.get_fingerprint=function(){var data;return data=this.public_body(),(new SHA1).bufhash(Buffer.concat([new Buffer([C.signatures.key]),uint_to_buffer(16,data.length),data]))},KeyMaterial.prototype.get_key_id=function(){return this.get_fingerprint().slice(12,20)},KeyMaterial.prototype.get_short_key_id=function(){return this.get_key_id().slice(-4).toString("hex").toUpperCase()},KeyMaterial.prototype.get_klass=function(){return this.key.constructor},KeyMaterial.prototype.export_framed=function(opts){return null==opts&&(opts={}),opts["private"]?this.private_framed(opts):this.public_framed(opts)},KeyMaterial.prototype.public_framed=function(opts){var T,body,tag;return null==opts&&(opts={}),body=this.public_body(),T=C.packet_tags,tag=opts.subkey?T.public_subkey:T.public_key,this.frame_packet(tag,body)},KeyMaterial.prototype.to_signature_payload=function(){var pk;return pk=this.public_body(),Buffer.concat([new Buffer([C.signatures.key]),uint_to_buffer(16,pk.length),pk])},KeyMaterial.prototype.self_sign_key=function(_arg,cb){var err,lifespan,primary,raw_payload,sig,sigs,userid,userids,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),userids=_arg.userids,lifespan=_arg.lifespan,raw_payload=_arg.raw_payload,err=null,sigs=[],primary=!0,function(_this){return function(__iced_k){var _i,_len,_ref4,_results,_while;_ref4=userids,_len=_ref4.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(userid=_ref4[_i],null!=err?_continue():(sig=null,void function(__iced_k){return _this.key.can_sign()||raw_payload?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial.self_sign_key"}),_this._self_sign_key({userid:userid,lifespan:lifespan,raw_payload:raw_payload,primary:primary},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sig=arguments[1]}}(),lineno:193})),__iced_deferrals._fulfill()}(__iced_k):__iced_k(null==(sig=userid.get_framed_signature_output())?err=new Error("Cannot sign key --- don't have a private key, and can't replay"):void 0)}(function(){return primary=!1,_next(sigs.push(sig))}))):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err,sig)}}(this))},KeyMaterial.prototype._self_sign_key=function(_arg,cb){var err,hsp,lifespan,payload,primary,ps,raw_payload,sig,type,userid,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),userid=_arg.userid,lifespan=_arg.lifespan,raw_payload=_arg.raw_payload,primary=_arg.primary,payload=Buffer.concat([this.to_signature_payload(),userid.to_signature_payload()]),type=C.sig_types.positive,hsp=[new S.CreationTime(lifespan.generated),new S.KeyFlags([this.flags]),new S.PreferredSymmetricAlgorithms([C.symmetric_key_algorithms.AES256,C.symmetric_key_algorithms.AES128]),new S.PreferredHashAlgorithms([C.hash_algorithms.SHA512,C.hash_algorithms.SHA256]),new S.Features([C.features.modification_detection]),new S.KeyServerPreferences([C.key_server_preferences.no_modify])],primary&&hsp.push(new S.PrimaryUserId(1)),lifespan.expire_in&&hsp.push(new S.KeyExpirationTime(lifespan.expire_in)),sig=new Signature({type:type,key:this.key,hashed_subpackets:hsp,unhashed_subpackets:[new S.Issuer(this.get_key_id())]}),function(_this){return function(__iced_k){return raw_payload?__iced_k(sig=payload):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._self_sign_key"}),sig.write(payload,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:235})),__iced_deferrals._fulfill()}(function(){return ps=new packetsigs.SelfSig({userid:userid,type:type,sig:sig,options:_this.flags}),userid.push_sig(ps),__iced_k(_this.push_sig(ps))})}}(this)(function(){return function(){return cb(err,sig)}}(this))},KeyMaterial.prototype.sign_subkey=function(_arg,cb){var err,lifespan,sig,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),subkey=_arg.subkey,lifespan=_arg.lifespan,err=sig=null,function(_this){return function(__iced_k){var _ref4,_ref5;return _this.key.can_sign()?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial.sign_subkey"}),_this._sign_subkey({subkey:subkey,lifespan:lifespan},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:248})),__iced_deferrals._fulfill()}(__iced_k):__iced_k((null!=(_ref4=subkey.get_subkey_binding())&&null!=(_ref5=_ref4.sig)?_ref5.get_framed_output():void 0)?void 0:err=new Error("Cannot sign with subkey --- don't have private key and can't replay"))}}(this)(function(){return function(){return cb(err)}}(this))},KeyMaterial.prototype._sign_subkey=function(_arg,cb){var SKB,err,lifespan,primary_binding,ps,sig,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),subkey=_arg.subkey,lifespan=_arg.lifespan,sig=err=primary_binding=null,function(_this){return function(__iced_k){return subkey.can_sign()?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._sign_subkey"}),subkey._sign_primary_with_subkey({primary:_this,lifespan:lifespan},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],primary_binding=arguments[1]}}(),lineno:260})),__iced_deferrals._fulfill()}(__iced_k):__iced_k()}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._sign_subkey"}),_this._sign_subkey_with_primary({subkey:subkey,lifespan:lifespan,primary_binding:primary_binding},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sig=arguments[1]}}(),lineno:262})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return null==err&&(SKB=packetsigs.SubkeyBinding,ps=new SKB({primary:_this,sig:sig,direction:SKB.DOWN}),subkey.push_sig(ps)),cb(err)})}}(this))},KeyMaterial.prototype._sign_primary_with_subkey=function(_arg,cb){var err,lifespan,payload,primary,sig,sig_unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),primary=_arg.primary,lifespan=_arg.lifespan,payload=Buffer.concat([primary.to_signature_payload(),this.to_signature_payload()]),sig=new Signature({type:C.sig_types.primary_binding,key:this.key,hashed_subpackets:[new S.CreationTime(lifespan.generated)],unhashed_subpackets:[new S.Issuer(this.get_key_id())]}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._sign_primary_with_subkey"}),sig.write_unframed(payload,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sig_unframed=arguments[1]}}(),lineno:286})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,sig_unframed)}}(this))},KeyMaterial.prototype._sign_subkey_with_primary=function(_arg,cb){var err,lifespan,payload,primary_binding,sig,subkey,unhashed_subpackets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),subkey=_arg.subkey,lifespan=_arg.lifespan,primary_binding=_arg.primary_binding,payload=Buffer.concat([this.to_signature_payload(),subkey.to_signature_payload()]),unhashed_subpackets=[new S.Issuer(this.get_key_id())],null!=primary_binding&&unhashed_subpackets.push(new S.EmbeddedSignature({rawsig:primary_binding})),sig=new Signature({type:C.sig_types.subkey_binding,key:this.key,hashed_subpackets:[new S.CreationTime(lifespan.generated),new S.KeyExpirationTime(lifespan.expire_in),new S.KeyFlags([subkey.flags])],unhashed_subpackets:unhashed_subpackets}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial._sign_subkey_with_primary"}),sig.write(payload,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:310})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,sig)}}(this))},KeyMaterial.prototype.merge_private=function(k2){return this.skm=k2.skm},KeyMaterial.parse_public_key=function(slice,opts){return new Parser(slice).parse_public_key(opts)},KeyMaterial.parse_private_key=function(slice,opts){return new Parser(slice).parse_private_key(opts)},KeyMaterial.prototype.is_key_material=function(){return!0},KeyMaterial.prototype.is_primary=function(){var _ref4;return!(null!=(_ref4=this.opts)?_ref4.subkey:void 0)},KeyMaterial.prototype.is_duplicate_primary=function(){return this._is_duplicate_primary},KeyMaterial.prototype.set_duplicate_primary=function(){return this._is_duplicate_primary=!0},KeyMaterial.prototype.ekid=function(){return this.key.ekid()},KeyMaterial.prototype.can_sign=function(){return this.key.can_sign()},KeyMaterial.prototype.is_locked=function(){return!this.key.has_private()&&null!=this.skm&&this.skm.is_locked()},KeyMaterial.prototype.has_private=function(){return this.has_unlocked_private()||this.has_locked_private()},KeyMaterial.prototype.has_locked_private=function(){return this.skm&&this.skm.has_private()},KeyMaterial.prototype.has_unlocked_private=function(){return this.key.has_private()},KeyMaterial.prototype.has_secret_key_material=function(){return null!=this.skm},KeyMaterial.prototype.validity_check=function(cb){var err,msg,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/keymaterial.iced",funcname:"KeyMaterial.validity_check"}),_this.key.validity_check(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:344})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return"undefined"!=typeof err&&null!==err&&(msg="In key "+_this.get_fingerprint().toString("hex")+": "+err.message,err=new Error(err)),cb(err)}}(this))},KeyMaterial.prototype.is_signed_subkey_of=function(primary){return!this.primary_flag&&this.get_psc().is_signed_subkey_of(primary)},KeyMaterial.prototype.get_subkey_binding=function(){return this.opts.subkey?this.get_psc().get_subkey_binding():null},KeyMaterial.prototype.get_subkey_binding_signature_output=function(){var _ref4,_ref5;return null!=(_ref4=this.get_subkey_binding())&&null!=(_ref5=_ref4.sig)?_ref5.get_framed_output():void 0},KeyMaterial.prototype.equal=function(k2){return bufeq_secure(this.ekid(),k2.ekid())},KeyMaterial.prototype.unlock=function(_arg,cb){var c1,c2,end,err,h1,h2,key,passphrase,pt;if(passphrase=_arg.passphrase,null!=passphrase&&(passphrase=bufferify(passphrase)),err=null,null==this.skm)return err=new Error("Cannot unlock secret key -- no material!"),cb(err);if(pt=this.skm.s2k_convention===C.s2k_convention.none?this.skm.payload:this.skm.s2k.type===C.s2k.gnu_dummy?null:null==passphrase?(err=new Error("Key was locked, but no passphrase given"),null):(key=this.skm.s2k.produce_key(passphrase,this.skm.cipher.key_size),decrypt({ciphertext:this.skm.payload,block_cipher_class:this.skm.cipher.klass,iv:this.skm.iv,key:key}))){switch(this.skm.s2k_convention){case C.s2k_convention.sha1:end=pt.length-SHA1.output_size,h1=pt.slice(end),pt=pt.slice(0,end),h2=(new SHA1).bufhash(pt),bufeq_secure(h1,h2)||(err=new Error("bad private key passphrase (hash mismatch)"));break;case C.s2k_convention.checksum:case C.s2k_convention.none:end=pt.length-2,c1=pt.readUInt16BE(end),pt=pt.slice(0,end),c2=calc_checksum(pt),c1!==c2&&(err=new Error("bad private key passphrase (checksum mismatch)"))}null==err&&(err=this.key.read_priv(pt))}return cb(err)},KeyMaterial.prototype.get_all_key_flags=function(){return this._psc.get_all_key_flags()},KeyMaterial.prototype.add_flags=function(v){return this.flags|=v},KeyMaterial.prototype.fulfills_flags=function(flags){var akf,ret;return this.is_revoked()?!1:(akf=this.get_all_key_flags(),ret=(akf&flags)===flags||this.key.fulfills_flags(flags)||this.is_primary()&&0===akf&&(this.key.good_for_flags()&flags)===flags)},KeyMaterial.prototype.get_signed_userids=function(){return this.get_psc().get_signed_userids()},KeyMaterial.prototype.get_signed_user_attributes=function(){return this.get_psc().get_signed_user_attributes()},KeyMaterial.prototype.is_self_signed=function(){return this.get_psc().is_self_signed()},KeyMaterial.prototype.push_sig=function(packetsig){return this.add_flags(packetsig.sig.get_key_flags()),KeyMaterial.__super__.push_sig.call(this,packetsig)},KeyMaterial.prototype.mark_revoked=function(sig){return this.revocation=sig},KeyMaterial.prototype.is_revoked=function(){return null!=this.revocation},KeyMaterial}(Packet),Parser=function(){function Parser(slice){this.slice=slice,this.key=null}return Parser.prototype.parse_public_key_v3=function(){return this.timestamp=this.slice.read_uint32(),this.expiration=this.slice.read_uint16(),this.parse_public_key_mpis()},Parser.prototype.parse_public_key_v4=function(){return this.timestamp=this.slice.read_uint32(),this.parse_public_key_mpis()},Parser.prototype.parse_public_key_mpis=function(){var A,err,key,klass,len,_ref4;if(this.algorithm=this.slice.read_uint8(),A=C.public_key_algorithms,klass=function(){switch(this.algorithm){case A.RSA:case A.RSA_ENCRYPT_ONLY:case A.RSA_SIGN_ONLY:return RSA;case A.DSA:return DSA;case A.ELGAMAL:return ElGamal;case A.ELGAMAL_SIGN_AND_ENCRYPT:return ElGamalSE;case A.ECDSA:return ECDSA;case A.ECDH:return ECDH;default:throw new Error("Unknown key type: "+this.algorithm)}}.call(this),_ref4=klass.parse(this.slice.peek_rest_to_buffer()),err=_ref4[0],key=_ref4[1],len=_ref4[2],null!=err)throw err;return this.slice.advance(len),key},Parser.prototype._parse_public_key=function(){var version;switch(version=this.slice.read_uint8()){case C.versions.keymaterial.V3:return this.parse_public_key_v3();case C.versions.keymaterial.V4:return this.parse_public_key_v4();default:throw new Error("Unknown public key version: "+version)}},Parser.prototype.parse_public_key=function(opts){var key;return key=this._parse_public_key(),new KeyMaterial({key:key,timestamp:this.timestamp,opts:opts})},Parser.prototype.parse_private_key=function(opts){var encrypted_private_key,iv_len,key,skm,sym_enc_alg,_ref4;return skm=new SecretKeyMaterial,key=this._parse_public_key(),encrypted_private_key=!0,sym_enc_alg=null,(skm.s2k_convention=this.slice.read_uint8())===C.s2k_convention.none?encrypted_private_key=!1:(_ref4=skm.s2k_convention)===C.s2k_convention.sha1||_ref4===C.s2k_convention.checksum?(sym_enc_alg=this.slice.read_uint8(),skm.s2k=(new S2K).read(this.slice)):sym_enc_alg=skm.s2k_convention,skm.s2k_convention!==C.s2k_convention.none&&skm.s2k.type===C.s2k.gnu_dummy?skm.payload=null:(sym_enc_alg&&(skm.cipher=symmetric.get_cipher(sym_enc_alg),iv_len=skm.cipher.klass.blockSize,skm.iv=this.slice.read_buffer(iv_len)),skm.payload=this.slice.consume_rest_to_buffer()),new KeyMaterial({key:key,skm:skm,timestamp:this.timestamp,opts:opts})},Parser}(),exports.KeyMaterial=KeyMaterial}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../dsa":6,"../../ecc/ecdh":9,"../../ecc/ecdsa":10,"../../elgamal":12,"../../elgamalse":13,"../../rsa":67,"../../symmetric":68,"../../util":70,"../armor":33,"../cfb":38,"../s2k":58,"../util":60,"./base":45,"./packetsigs":51,"./signature":53,buffer:80,"iced-runtime":118,triplesec:181,util:114}],49:[function(require,module,exports){(function(Buffer){(function(){var C,Literal,LiteralParser,Packet,asymmetric,iced,uint_to_buffer,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child},__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;l>i;i++)if(i in this&&this[i]===item)return i;return-1};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,asymmetric=require("../../asymmetric"),uint_to_buffer=require("../../util").uint_to_buffer,Literal=function(_super){function Literal(_arg){this.format=_arg.format,this.filename=_arg.filename,this.date=_arg.date,this.data=_arg.data,Literal.__super__.constructor.call(this)}return __extends(Literal,_super),Literal.parse=function(slice){return new LiteralParser(slice).parse()},Literal.prototype.toString=function(encoding){return null==encoding&&(encoding=null),this.data.toString(encoding||this.buffer_format())},Literal.prototype.toBuffer=function(){return this.data},Literal.prototype.buffer_format=function(){switch(this.format){case C.literal_formats.text:return"ascii";case C.literal_formats.utf8:return"utf8";default:return"binary"}},Literal.prototype.to_signature_payload=function(){return Buffer.concat([this.data])},Literal.prototype.write_unframed=function(cb){var bufs,ret;return this.filename||(this.filename=new Buffer([])),bufs=[new Buffer([this.format]),uint_to_buffer(8,this.filename.length),this.filename,uint_to_buffer(32,this.date),this.data],ret=Buffer.concat(bufs),cb(null,ret)},Literal.prototype.write=function(cb){var err,raw,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/literal.iced",funcname:"Literal.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],raw=arguments[1]}}(),lineno:41})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return null==err&&(ret=_this.frame_packet(C.packet_tags.literal,raw)),cb(err,ret)}}(this))},Literal.prototype.to_literal=function(){return this},Literal}(Packet),LiteralParser=function(){function LiteralParser(slice){this.slice=slice}return LiteralParser.prototype.parse=function(){var data,date,filename,format,k,known_formats,v;if(known_formats=function(){var _ref,_results;_ref=C.literal_formats,_results=[];for(k in _ref)v=_ref[k],_results.push(v);return _results}(),format=this.slice.read_uint8(),__indexOf.call(known_formats,format)<0)throw new Error("unknwon format: "+format);return filename=this.slice.read_string(),date=this.slice.read_uint32(),data=this.slice.consume_rest_to_buffer(),new Literal({format:format,filename:filename,date:date,data:data})},LiteralParser}(),exports.Literal=Literal}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../util":70,"./base":45,buffer:80,"iced-runtime":118}],50:[function(require,module,exports){(function(Buffer){(function(){var C,OPS_Parser,OnePassSignature,Packet,asymmetric,hash,iced,uint_to_buffer,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,asymmetric=require("../../asymmetric"),hash=require("../../hash"),uint_to_buffer=require("../../util").uint_to_buffer,OnePassSignature=function(_super){function OnePassSignature(_arg){this.sig_type=_arg.sig_type,this.hasher=_arg.hasher,this.sig_klass=_arg.sig_klass,this.key_id=_arg.key_id,this.is_final=_arg.is_final}return __extends(OnePassSignature,_super),OnePassSignature.parse=function(slice){return new OPS_Parser(slice).parse()},OnePassSignature.prototype.write_unframed=function(cb){var bufs,unframed,vals,x;return vals=[C.versions.one_pass_sig,this.sig_type,this.hasher.type,this.sig_klass.type],bufs=function(){var _i,_len,_results;for(_results=[],_i=0,_len=vals.length;_len>_i;_i++)x=vals[_i],_results.push(uint_to_buffer(8,x));return _results}(),bufs.push(this.key_id),bufs.push(uint_to_buffer(8,this.is_final)),unframed=Buffer.concat(bufs),cb(null,unframed)},OnePassSignature.prototype.write=function(cb){var err,framed,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/one_pass_sig.iced",funcname:"OnePassSignature.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:38})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return framed=_this.frame_packet(C.packet_tags.one_pass_sig,unframed),cb(err,framed)}}(this))},OnePassSignature}(Packet),OPS_Parser=function(){function OPS_Parser(slice){this.slice=slice}return OPS_Parser.prototype.parse=function(){var hasher,is_final,key_id,sig_klass,sig_type,v;if((v=this.slice.read_uint8())!==C.versions.one_pass_sig)throw new Error("Unknown OnePassSignature version "+v);return sig_type=this.slice.read_uint8(),hasher=hash.alloc_or_throw(this.slice.read_uint8()),sig_klass=asymmetric.get_class(this.slice.read_uint8()),key_id=this.slice.read_buffer(8),is_final=this.slice.read_uint8(),new OnePassSignature({sig_type:sig_type,hasher:hasher,sig_klass:sig_klass,key_id:key_id,is_final:is_final})},OPS_Parser}(),exports.OnePassSignature=OnePassSignature}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../hash":14,"../../util":70,"./base":45,buffer:80,"iced-runtime":118}],51:[function(require,module,exports){(function(){var Base,Collection,Data,SelfSig,SubkeyBinding,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};Base=function(){function Base(_arg){this.sig=_arg.sig}return Base.prototype.typ=function(){return"none"},Base.prototype.get_key_flags=function(){return this.sig.get_key_flags()},Base}(),SelfSig=function(_super){function SelfSig(_arg){var sig;this.userid=_arg.userid,this.user_attribute=_arg.user_attribute,this.type=_arg.type,sig=_arg.sig,this.options=_arg.options,SelfSig.__super__.constructor.call(this,{sig:sig})}return __extends(SelfSig,_super),SelfSig.prototype.typ=function(){return"self_sig"},SelfSig}(Base),SubkeyBinding=function(_super){function SubkeyBinding(_arg){var sig;this.primary=_arg.primary,sig=_arg.sig,this.direction=_arg.direction,SubkeyBinding.__super__.constructor.call(this,{sig:sig})}return __extends(SubkeyBinding,_super),SubkeyBinding.UP=1,SubkeyBinding.DOWN=2,SubkeyBinding.prototype.typ=function(){return"subkey_binding"},SubkeyBinding.prototype.is_down=function(){return this.direction===SubkeyBinding.DOWN},SubkeyBinding}(Base),Data=function(_super){function Data(_arg){var sig;this.key=_arg.key,sig=_arg.sig,Data.__super__.constructor.call(this,{sig:sig})}return __extends(Data,_super),Data.prototype.typ=function(){return"data"},Data.prototype.get_key_manager=function(){var _ref;return null!=(_ref=this.sig)?_ref.key_manager:void 0},Data}(Base),Collection=function(){function Collection(){this.all=[],this.lookup={self_sig:[],subkey_binding:[],data:[]}}return Collection.prototype.push=function(ps){return this.all.push(ps),this.lookup[ps.typ()].push(ps)},Collection.prototype.is_signed_subkey_of=function(primary){var skb,_i,_len,_ref;for(_ref=this.lookup.subkey_binding,_i=0,_len=_ref.length;_len>_i;_i++)if(skb=_ref[_i],skb.primary.equal(primary)&&skb.is_down())return!0;return!1},Collection.prototype.get_all_key_flags=function(){var p,ret,_i,_len,_ref;for(ret=0,_ref=this.all,_i=0,_len=_ref.length;_len>_i;_i++)p=_ref[_i],ret|=p.get_key_flags();return ret},Collection.prototype.get_signed_userids=function(){var p,u,_i,_len,_ref,_results;for(_ref=this.lookup.self_sig,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)p=_ref[_i],null!=(u=p.userid)&&_results.push(u);return _results},Collection.prototype.get_signed_user_attributes=function(){var p,u,_i,_len,_ref,_results;for(_ref=this.lookup.self_sig,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)p=_ref[_i],null!=(u=p.user_attribute)&&_results.push(u);return _results},Collection.prototype.get_self_sig=function(){return this.lookup.self_sig.length?this.lookup.self_sig[0]:null},Collection.prototype.get_self_sigs=function(){return this.lookup.self_sig},Collection.prototype.is_self_signed=function(){return this.get_signed_userids().length>0},Collection.prototype.get_data_signer=function(){return this.lookup.data.length>0?this.lookup.data[0]:null},Collection.prototype.get_data_signers=function(){return this.lookup.data},Collection.prototype.get_subkey_binding=function(){return this.lookup.subkey_binding.length?this.lookup.subkey_binding[0]:null},Collection}(),exports.SelfSig=SelfSig,exports.SubkeyBinding=SubkeyBinding,exports.Data=Data,exports.Collection=Collection}).call(this)},{}],52:[function(require,module,exports){(function(Buffer){(function(){var ASP,C,Decryptor,MDC,MDC_Parser,PKESK,PKESK_Parser,Packet,SEIPD,SEIPD_Parser,SHA1,asymmetric,bufeq_fast,bufeq_secure,encrypt,iced,make_esc,streamers,uint_to_buffer,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,asymmetric=require("../../asymmetric"),_ref=require("../../hash"),SHA1=_ref.SHA1,streamers=_ref.streamers,_ref1=require("../../util"),uint_to_buffer=_ref1.uint_to_buffer,bufeq_secure=_ref1.bufeq_secure,bufeq_fast=_ref1.bufeq_fast,_ref2=require("../ocfb"),encrypt=_ref2.encrypt,Decryptor=_ref2.Decryptor,ASP=require("pgp-utils").util.ASP,make_esc=require("iced-error").make_esc,PKESK=function(_super){function PKESK(_arg){this.crypto_type=_arg.crypto_type,this.key_id=_arg.key_id,this.ekey=_arg.ekey}return __extends(PKESK,_super),PKESK.parse=function(slice){return new PKESK_Parser(slice).parse()},PKESK.prototype.to_esk_packet=function(){return this},PKESK.prototype.get_key_id=function(){return this.key_id},PKESK.prototype.write_unframed=function(cb){var bufs,err,ret;return bufs=[uint_to_buffer(8,C.versions.PKESK),this.key_id,uint_to_buffer(8,this.crypto_type),this.ekey.output()],ret=Buffer.concat(bufs),err=null,cb(err,ret)},PKESK.prototype.write=function(cb){var err,ret,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"PKESK.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:36})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(ret=_this.frame_packet(C.packet_tags.PKESK,unframed)),cb(err,ret)}}(this))},PKESK}(Packet),SEIPD=function(_super){function SEIPD(_arg){this.ciphertext=_arg.ciphertext}return __extends(SEIPD,_super),SEIPD.parse=function(slice){return new SEIPD_Parser(slice).parse()},SEIPD.prototype.to_enc_data_packet=function(){return this},SEIPD.prototype.check=function(){},SEIPD.prototype.decrypt=function(_arg,cb){var asp,cipher,eng,err,esc,mdc,plaintext,prefix,pt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),cipher=_arg.cipher,asp=_arg.asp,eng=new Decryptor({cipher:cipher,ciphertext:this.ciphertext,asp:asp}),esc=make_esc(cb,"SEIPD::decrypt"),asp=ASP.make(asp),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.decrypt"}),eng.check(esc(__iced_deferrals.defer({lineno:63}))),__iced_deferrals._fulfill()}}(this)(function(){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.decrypt"}),eng.dec(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pt=arguments[0]}}(),lineno:64}))),__iced_deferrals._fulfill()}(function(){var _ref3;_ref3=MDC.parse(pt),mdc=_ref3[0],plaintext=_ref3[1],prefix=eng.get_prefix(),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.decrypt"}),mdc.compute({prefix:prefix,plaintext:plaintext,asp:asp},esc(__iced_deferrals.defer({lineno:70}))),__iced_deferrals._fulfill()}(function(){return err=mdc.check()?null:new Error("MDC mismatch"),cb(err,plaintext)})})}}(this))},SEIPD.prototype.encrypt=function(_arg,cb){var asp,cipher,esc,mdc,mdc_buf,plaintext,prefixrandom,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),cipher=_arg.cipher,plaintext=_arg.plaintext,prefixrandom=_arg.prefixrandom,asp=_arg.asp,mdc=new MDC({}),esc=make_esc(cb,"SEIPD::encrypt"),asp=ASP.make(asp),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.encrypt"}),mdc.compute({plaintext:plaintext,prefix:prefixrandom,asp:asp},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return mdc_buf=arguments[0]
}}(),lineno:81}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){plaintext=Buffer.concat([plaintext,MDC.header,mdc_buf]),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.encrypt"}),encrypt({cipher:cipher,plaintext:plaintext,prefixrandom:prefixrandom},esc(__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1.ciphertext=arguments[0]}}(_this),lineno:83}))),__iced_deferrals._fulfill()}(function(){return cb(null)})}}(this))},SEIPD.prototype.write_unframed=function(cb){var err,ret;return err=ret=null,ret=Buffer.concat([uint_to_buffer(8,C.versions.SEIPD),this.ciphertext]),cb(err,ret)},SEIPD.prototype.write=function(cb){var err,ret,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=err=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"SEIPD.write"}),_this.write_unframed(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:97})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return null==err&&(ret=_this.frame_packet(C.packet_tags.SEIPD,unframed)),cb(err,ret)}}(this))},SEIPD}(Packet),MDC=function(_super){function MDC(_arg){this.digest=_arg.digest}return __extends(MDC,_super),MDC.header=new Buffer([192|C.packet_tags.MDC,SHA1.output_length]),MDC.prototype.header=MDC.header,MDC.parse=function(buf){return new MDC_Parser(buf).parse()},MDC.prototype.compute=function(_arg,cb){var asp,esc,hasher,i,plaintext,prefix,step,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),plaintext=_arg.plaintext,prefix=_arg.prefix,asp=_arg.asp,asp=ASP.make(asp),hasher=streamers.SHA1(),hasher.update(Buffer.concat([prefix,prefix.slice(-2)])),esc=make_esc(cb,"MDC::compute"),step=1048576,function(){return function(__iced_k){var _results,_while;i=0,_begin=0,_end=plaintext.length,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?i+=step:i-=step,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&i>=plaintext.length||_positive===!1&&i<=plaintext.length?_break():(hasher.update(plaintext.slice(i,i+step)),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/packet/sess.iced",funcname:"MDC.compute"}),asp.progress({what:"MDC",total:plaintext.length,i:i},esc(__iced_deferrals.defer({lineno:122}))),__iced_deferrals._fulfill()}(_next))})(__iced_k)}}(this)(function(_this){return function(){return hasher.update(_this.header),_this.computed=hasher(),cb(null,_this.computed)}}(this))},MDC.prototype.check=function(){return bufeq_secure(this.digest,this.computed)},MDC}(Packet),MDC_Parser=function(){function MDC_Parser(buf){this.buf=buf}return MDC_Parser.prototype.parse=function(){var chunk,digest,hl,len,rem;if(hl=MDC.header.length,len=SHA1.output_length+hl,rem=this.buf.slice(0,-len),chunk=this.buf.slice(-len),!bufeq_fast(chunk.slice(0,hl),MDC.header))throw new Error("Missing MDC header");return digest=chunk.slice(hl),[new MDC({digest:digest}),rem]},MDC_Parser}(),SEIPD_Parser=function(){function SEIPD_Parser(slice){this.slice=slice}return SEIPD_Parser.prototype.payload_split=function(){},SEIPD_Parser.prototype.parse=function(){var ciphertext,v;if((v=this.slice.read_uint8())!==C.versions.SEIPD)throw new Error("Unknown SEIPD version "+v);return ciphertext=this.slice.consume_rest_to_buffer(),new SEIPD({ciphertext:ciphertext})},SEIPD_Parser}(),PKESK_Parser=function(){function PKESK_Parser(slice){this.slice=slice}return PKESK_Parser.prototype.parse=function(){var crypto_type,ekey,key_id,klass,v;if((v=this.slice.read_uint8())!==C.versions.PKESK)throw new Error("Unknown PKESK version: "+v);return key_id=this.slice.read_buffer(8),crypto_type=this.slice.read_uint8(),klass=asymmetric.get_class(crypto_type),ekey=klass.parse_output(this.slice.consume_rest_to_buffer()),new PKESK({crypto_type:crypto_type,key_id:key_id,ekey:ekey})},PKESK_Parser}(),exports.SEIPD=SEIPD,exports.PKESK=PKESK,exports.MDC=MDC}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../hash":14,"../../util":70,"../ocfb":43,"./base":45,buffer:80,"iced-error":115,"iced-runtime":118,"pgp-utils":163}],53:[function(require,module,exports){(function(Buffer){(function(){var C,CreationTime,EmbeddedSignature,Experimental,ExpirationTime,Exportable,Features,Issuer,KeyExpirationTime,KeyFlags,KeyServerPreferences,NotationData,Packet,Parser,PolicyURI,Preference,PreferredCompressionAlgorithms,PreferredHashAlgorithms,PreferredKeyServer,PreferredSymmetricAlgorithms,PrimaryUserId,ReasonForRevocation,RegularExpression,Revocable,RevocationKey,S,SHA1,SHA512,Signature,SignatureTarget,Signature_v2,Signature_v2_or_v3,Signature_v3,SignersUserID,SlicerBuffer,SubPacket,Time,Trust,alloc_or_throw,assert,asymmetric,encode_length,iced,make_esc,make_time_packet,packetsigs,uint_to_buffer,unix_time,util,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},Packet=require("./base").Packet,C=require("../../const").openpgp,S=C.sig_subpacket,_ref=require("../util"),encode_length=_ref.encode_length,make_time_packet=_ref.make_time_packet,_ref1=require("../../util"),unix_time=_ref1.unix_time,uint_to_buffer=_ref1.uint_to_buffer,_ref2=require("../../hash"),alloc_or_throw=_ref2.alloc_or_throw,SHA512=_ref2.SHA512,SHA1=_ref2.SHA1,asymmetric=require("../../asymmetric"),util=require("util"),packetsigs=require("./packetsigs"),assert=require("assert"),SlicerBuffer=require("../buffer").SlicerBuffer,make_esc=require("iced-error").make_esc,Signature_v2_or_v3=function(_super){function Signature_v2_or_v3(_arg){this.key=_arg.key,this.hasher=_arg.hasher,this.key_id=_arg.key_id,this.sig_data=_arg.sig_data,this.public_key_class=_arg.public_key_class,this.signed_hash_value_hash=_arg.signed_hash_value_hash,this.time=_arg.time,this.sig=_arg.sig,this.type=_arg.type,this.version=_arg.version,null==this.hasher&&(this.hasher=SHA512),this._framed_output=null}return __extends(Signature_v2_or_v3,_super),Signature_v2_or_v3.prototype.is_signature=function(){return!0},Signature_v2_or_v3.prototype.get_key_id=function(){return this.key_id},Signature_v2_or_v3.prototype.get_issuer_key_id=function(){return this.key_id},Signature_v2_or_v3.prototype.when_generated=function(){return this.time},Signature_v2_or_v3.prototype.time_of_primary_uid_sig=function(){return null},Signature_v2_or_v3.prototype.gen_prefix=function(){return Buffer.concat([new Buffer([C.versions.signature.V3,this.type],uint_to_buffer(32,this.time),this.key_id,new Buffer([this.key.type,this.hasher.type]))])},Signature_v2_or_v3.prototype.prepare_payload=function(data_packets){var bufs,dp;return bufs=function(){var _i,_len,_results;for(_results=[],_i=0,_len=data_packets.length;_len>_i;_i++)dp=data_packets[_i],_results.push(dp.to_signature_payload());return _results}(),bufs.push(new Buffer([this.type]),uint_to_buffer(32,this.time)),Buffer.concat(bufs)},Signature_v2_or_v3.prototype.verify=function(data_packets,cb){var T,b,d,err,hash,payload,s,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),payload=this.prepare_payload(data_packets),hash=this.hasher(payload),s=new SlicerBuffer(hash),v=s.read_uint16(),T=C.sig_types,function(_this){return function(__iced_k){return v!==(b=_this.signed_hash_value_hash)?__iced_k(err=new Error("quick hash check failed: "+v+" != "+b)):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature_v2_or_v3.verify"}),_this.key.verify_unpad_and_check_hash({hash:hash,hasher:_this.hasher,sig:_this.sig},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:76})),__iced_deferrals._fulfill()}(function(){var _i,_len,_ref3;if(null==err&&((_ref3=_this.type)===T.binary_doc||_ref3===T.canonical_text))for(_i=0,_len=data_packets.length;_len>_i;_i++)d=data_packets[_i],d.push_sig(new packetsigs.Data({sig:_this}));return __iced_k()})}}(this)(function(){return function(){return cb(err)}}(this))},Signature_v2_or_v3}(Packet),Signature_v2=function(_super){function Signature_v2(){return Signature_v2.__super__.constructor.apply(this,arguments)}return __extends(Signature_v2,_super),Signature_v2}(Signature_v2_or_v3),Signature_v3=function(_super){function Signature_v3(){return Signature_v3.__super__.constructor.apply(this,arguments)}return __extends(Signature_v3,_super),Signature_v3}(Signature_v2_or_v3),Signature=function(_super){function Signature(_arg){this.key=_arg.key,this.hasher=_arg.hasher,this.key_id=_arg.key_id,this.sig_data=_arg.sig_data,this.public_key_class=_arg.public_key_class,this.signed_hash_value_hash=_arg.signed_hash_value_hash,this.hashed_subpackets=_arg.hashed_subpackets,this.time=_arg.time,this.sig=_arg.sig,this.type=_arg.type,this.unhashed_subpackets=_arg.unhashed_subpackets,this.version=_arg.version,null==this.hasher&&(this.hasher=SHA512),null==this.hashed_subpackets&&(this.hashed_subpackets=[]),null==this.unhashed_subpackets&&(this.unhashed_subpackets=[]),this.subpacket_index=this._make_subpacket_index(),this._framed_output=null}return __extends(Signature,_super),Signature.prototype.get_key_id=function(){var _ref3;return this.key_id?this.key_id:null!=(_ref3=this.subpacket_index.all[S.issuer])?_ref3.id:void 0},Signature.prototype._make_subpacket_index=function(){var p,ret,_i,_j,_len,_len1,_ref3,_ref4;for(ret={hashed:{},unhashed:{},all:{}},_ref3=this.hashed_subpackets,_i=0,_len=_ref3.length;_len>_i;_i++)p=_ref3[_i],ret.hashed[p.type]=p,ret.all[p.type]=p;for(_ref4=this.unhashed_subpackets,_j=0,_len1=_ref4.length;_len1>_j;_j++)p=_ref4[_j],ret.unhashed[p.type]=p,ret.all[p.type]=p;return ret},Signature.prototype.prepare_payload=function(data){var flatsp,hvalue,payload,prefix,s,trailer;return flatsp=Buffer.concat(function(){var _i,_len,_ref3,_results;for(_ref3=this.hashed_subpackets,_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)s=_ref3[_i],_results.push(s.to_buffer());return _results}.call(this)),prefix=Buffer.concat([new Buffer([C.versions.signature.V4,this.type,this.key.type,this.hasher.type]),uint_to_buffer(16,flatsp.length),flatsp]),trailer=Buffer.concat([new Buffer([C.versions.signature.V4,255]),uint_to_buffer(32,prefix.length)]),payload=Buffer.concat([data,prefix,trailer]),hvalue=this.hasher(payload),{prefix:prefix,payload:payload,hvalue:hvalue}},Signature.prototype.write_unframed=function(data,cb){var esc,hvalue,payload,prefix,result2,results,s,sig,uhsp,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref3;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"write_unframed"),uhsp=Buffer.concat(function(){var _i,_len,_ref3,_results;for(_ref3=this.unhashed_subpackets,_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)s=_ref3[_i],_results.push(s.to_buffer());return _results}.call(this)),_ref3=this.prepare_payload(data),prefix=_ref3.prefix,payload=_ref3.payload,hvalue=_ref3.hvalue,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature.write_unframed"}),_this.key.pad_and_sign(payload,{hasher:_this.hasher},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:154}))),__iced_deferrals._fulfill()}}(this)(function(){return function(){return result2=Buffer.concat([uint_to_buffer(16,uhsp.length),uhsp,new Buffer([hvalue.readUInt8(0),hvalue.readUInt8(1)]),sig]),results=Buffer.concat([prefix,result2]),cb(null,results)}}(this))},Signature.prototype.write=function(data,cb){var err,ret,unframed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature.write"}),_this.write_unframed(data,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],unframed=arguments[1]}}(),lineno:167})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(_this._framed_output=ret=_this.frame_packet(C.packet_tags.signature,unframed)),cb(err,ret)}}(this))},Signature.prototype.get_framed_output=function(){return this._framed_output||this.replay()},Signature.parse=function(slice){return new Parser(slice).parse()},Signature.prototype.extract_key=function(data_packets){var p,_i,_len,_results;for(_results=[],_i=0,_len=data_packets.length;_len>_i;_i++){if(p=data_packets[_i],null!=p.key){this.key=p.key;break}_results.push(void 0)}return _results},Signature.prototype.verify=function(data_packets,cb){var err,p,s,subkey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature.verify"}),_this._verify(data_packets,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:196})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _i,_len,_ref3,_results,_while;_ref3=_this.unhashed_subpackets,_len=_ref3.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(p=_ref3[_i],"undefined"!=typeof err&&null!==err||null==(s=p.to_sig())?_continue():void!function(__iced_k){return s.type!==C.sig_types.primary_binding?__iced_k(err=new Error("unknown subpacket signature type: "+s.type)):void!function(__iced_k){return 1!==data_packets.length?__iced_k(err=new Error("Needed 1 data packet for a primary_binding signature")):(subkey=data_packets[0],s.primary=_this.primary,s.key=subkey.key,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature.verify"}),s._verify([subkey],__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:206})),__iced_deferrals._fulfill()}(__iced_k),void 0)}(__iced_k)}(_next)):_break()})(__iced_k)}(function(){return cb(err)})}}(this))},Signature.prototype._verify=function(data_packets,cb){var SKB,T,buffers,d,data,dp,err,hvalue,n,packets,payload,ps,sig,subkey,user_attribute,userid,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,T=C.sig_types,subkey=null,this.data_packets=function(){switch(this.type){case T.binary_doc:case T.canonical_text:return data_packets;case T.issuer:case T.personal:case T.casual:case T.positive:case T.certificate_revocation:return 1!==(n=data_packets.length)?(err=new Error("Only expecting one UserID-style packet in a self-sig (got "+n+")"),[]):[this.primary].concat(data_packets);case T.subkey_binding:case T.primary_binding:case T.subkey_revocation:return packets=[],1!==data_packets.length?err=new Error("Wrong number of data packets; expected only 1"):null==this.primary?err=new Error("Need a primary key for subkey signature"):(subkey=data_packets[0],packets=[this.primary,subkey]),packets;case T.direct:return[this.primary].concat(data_packets);default:return err=new Error("cannot verify sigtype "+this.type),[]}}.call(this),function(_this){return function(__iced_k){var _ref3;return null!=err?__iced_k():(buffers=function(){var _i,_len,_ref3,_results;for(_ref3=this.data_packets,_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)dp=_ref3[_i],_results.push(dp.to_signature_payload());return _results}.call(_this),data=Buffer.concat(buffers),_ref3=_this.prepare_payload(data),payload=_ref3.payload,hvalue=_ref3.hvalue,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/packet/signature.iced",funcname:"Signature._verify"}),_this.key.verify_unpad_and_check_hash({sig:_this.sig,hash:hvalue,hasher:_this.hasher},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:256})),__iced_deferrals._fulfill()}(__iced_k),void 0)}}(this)(function(_this){return function(){var _i,_len,_ref3;if(null==err&&(err=_this._check_key_sig_expiration()),sig=_this,null==err)switch(SKB=packetsigs.SubkeyBinding,_this.type){case T.binary_doc:case T.canonical_text:for(_ref3=_this.data_packets,_i=0,_len=_ref3.length;_len>_i;_i++)d=_ref3[_i],d.push_sig(new packetsigs.Data({sig:sig}));break;case T.issuer:case T.personal:case T.casual:case T.positive:ps=null,null!=(userid=_this.data_packets[1].to_userid())?(ps=new packetsigs.SelfSig({type:_this.type,userid:userid,sig:sig}),userid.push_sig(ps)):null!=(user_attribute=_this.data_packets[1].to_user_attribute())&&(ps=new packetsigs.SelfSig({type:_this.type,user_attribute:user_attribute,sig:sig}),user_attribute.push_sig(ps)),ps&&_this.primary.push_sig(ps);break;case T.subkey_binding:subkey.push_sig(new SKB({primary:_this.primary,sig:sig,direction:SKB.DOWN}));break;case T.primary_binding:subkey.push_sig(new SKB({primary:_this.primary,sig:sig,direction:SKB.UP}));break;case T.subkey_revocation:subkey.mark_revoked(sig)}return cb(err)}}(this))},Signature.prototype.is_signature=function(){return!0},Signature.prototype.when_generated=function(){var _ref3;return null!=(_ref3=this.subpacket_index.hashed[S.creation_time])?_ref3.time:void 0},Signature.prototype.time_primary_pair=function(){var T,_ref3,_ref4;return T=C.sig_types,(_ref3=this.type)===T.issuer||_ref3===T.personal||_ref3===T.casual||_ref3===T.positive?[this.when_generated(),!!(null!=(_ref4=this.subpacket_index.hashed[S.primary_user_id])?_ref4.flag:void 0)]:null},Signature.prototype._check_key_sig_expiration=function(){var T,creation,err,expiration,now,_ref3;return err=null,T=C.sig_types,((_ref3=this.type)===T.issuer||_ref3===T.personal||_ref3===T.casual||_ref3===T.positive||_ref3===T.subkey_binding||_ref3===T.primary_binding)&&(creation=this.subpacket_index.hashed[S.creation_time],expiration=this.subpacket_index.hashed[S.key_expiration_time],now=unix_time(),null!=creation&&null!=expiration&&(expiration=creation.time+expiration.time,now>expiration&&0!==expiration&&(err=new Error("Key expired "+(now-expiration)+"s ago"))),null==err&&null!=(expiration=this.subpacket_index.hashed[S.expiration_time])&&now>expiration.time&&0!==expiration.time&&(err=new Error("Signature expired "+(now-expiration.time)+"s ago"))),err},Signature.prototype.get_key_flags=function(){var _ref3,_ref4,_ref5;return(null!=(_ref3=this.subpacket_index)&&null!=(_ref4=_ref3.hashed)&&null!=(_ref5=_ref4[C.sig_subpacket.key_flags])?_ref5.all_flags():void 0)||0},Signature.prototype.get_issuer_key_id=function(){var _ref3,_ref4;return null!=(_ref3=this.subpacket_index)&&null!=(_ref4=_ref3.all[C.sig_subpacket.issuer])?_ref4.id:void 0},Signature}(Packet),SubPacket=function(){function SubPacket(type){this.type=type,this.critical=!1,this.five_byte_len=!1}return SubPacket.prototype.set_opts=function(d){var k,v;for(k in d)v=d[k],this[k]=v;return!0},SubPacket.prototype.to_buffer=function(){var inner;return inner=this._v_to_buffer(),Buffer.concat([encode_length(inner.length+1,this.five_byte_len),uint_to_buffer(8,this.type|(this.critical?128:0)),inner])},SubPacket.prototype.to_sig=function(){return null},SubPacket.prototype.export_to_option=function(){return null},SubPacket}(),Experimental=function(_super){function Experimental(buf,type){this.buf=buf,this.type=type}return __extends(Experimental,_super),Experimental.parse=function(slice,type){return new Experimental(slice.consume_rest_to_buffer(),type)},Experimental.prototype._v_to_buffer=function(){return this.buf},Experimental}(SubPacket),Time=function(_super){function Time(type,time){this.time=time,this.never_expires=0===this.time,Time.__super__.constructor.call(this,type)}return __extends(Time,_super),Time.parse=function(slice,klass){return new klass(slice.read_uint32())},Time.prototype._v_to_buffer=function(){return uint_to_buffer(32,this.time)},Time}(SubPacket),Preference=function(_super){function Preference(type,v){var e,_i,_len,_ref3;for(this.v=v,Preference.__super__.constructor.call(this,type),_ref3=this.v,_i=0,_len=_ref3.length;_len>_i;_i++)e=_ref3[_i],assert(null!=e)}return __extends(Preference,_super),Preference.parse=function(slice,klass){var c,v;return v=function(){var _i,_len,_ref3,_results;for(_ref3=slice.consume_rest_to_buffer(),_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)c=_ref3[_i],_results.push(c);return _results}(),new klass(v)},Preference.prototype._v_to_buffer=function(){var e;return new Buffer(function(){var _i,_len,_ref3,_results;for(_ref3=this.v,_results=[],_i=0,_len=_ref3.length;_len>_i;_i++)e=_ref3[_i],_results.push(e);return _results}.call(this))},Preference}(SubPacket),CreationTime=function(_super){function CreationTime(t){CreationTime.__super__.constructor.call(this,S.creation_time,t)}return __extends(CreationTime,_super),CreationTime.parse=function(slice){return Time.parse(slice,CreationTime)},CreationTime}(Time),ExpirationTime=function(_super){function ExpirationTime(t){ExpirationTime.__super__.constructor.call(this,S.expiration_time,t)}return __extends(ExpirationTime,_super),ExpirationTime.parse=function(slice){return Time.parse(slice,ExpirationTime)},ExpirationTime}(Time),Exportable=function(_super){function Exportable(flag){this.flag=flag,Exportable.__super__.constructor.call(this,S.exportable_certificate)}return __extends(Exportable,_super),Exportable.parse=function(slice){return new Exportable(slice.read_uint8())},Exportable.prototype._v_to_buffer=function(){return uint_to_buffer(8,this.flag)},Exportable}(SubPacket),Trust=function(_super){function Trust(level,amount){this.level=level,this.amount=amount,Trust.__super__.constructor.call(this,S.trust_signature)}return __extends(Trust,_super),Trust.parse=function(slice){return new Trust(slice.read_uint8(),slice.read_uint8())},Trust.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(8,this.level),uint_to_buffer(8,this.amount)])},Trust}(SubPacket),RegularExpression=function(_super){function RegularExpression(re){this.re=re,RegularExpression.__super__.constructor.call(this,S.regular_expression)}return __extends(RegularExpression,_super),RegularExpression.parse=function(slice){var ret;return ret=new RegularExpression(slice.consume_rest_to_buffer().toString("utf8"))},RegularExpression.prototype._v_to_buffer=function(){return new Buffer(this.re,"utf8")},RegularExpression}(SubPacket),Revocable=function(_super){function Revocable(flag){this.flag=flag,Revocable.__super__.constructor.call(this,S.revocable)}return __extends(Revocable,_super),Revocable.parse=function(slice){return new Revocable(slice.read_uint8())},Revocable.prototype._v_to_buffer=function(){return uint_to_buffer(8,this.flag)},Revocable}(SubPacket),KeyExpirationTime=function(_super){function KeyExpirationTime(t){KeyExpirationTime.__super__.constructor.call(this,S.key_expiration_time,t)}return __extends(KeyExpirationTime,_super),KeyExpirationTime.parse=function(slice){return Time.parse(slice,KeyExpirationTime)},KeyExpirationTime}(Time),PreferredSymmetricAlgorithms=function(_super){function PreferredSymmetricAlgorithms(v){PreferredSymmetricAlgorithms.__super__.constructor.call(this,S.preferred_symmetric_algorithms,v)}return __extends(PreferredSymmetricAlgorithms,_super),PreferredSymmetricAlgorithms.parse=function(slice){return Preference.parse(slice,PreferredSymmetricAlgorithms)},PreferredSymmetricAlgorithms}(Preference),RevocationKey=function(_super){function RevocationKey(key_class,alg,fingerprint){this.key_class=key_class,this.alg=alg,this.fingerprint=fingerprint,RevocationKey.__super__.constructor.call(this,S.revocation_key)}return __extends(RevocationKey,_super),RevocationKey.parse=function(slice){var fp,ka,kc;return kc=slice.read_uint8(),ka=slice.read_uint8(),fp=slice.read_buffer(SHA1.output_length),new RevocationKey(kc,ka,fp)},RevocationKey.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(8,this.key_class),uint_to_buffer(8,this.alg),new Buffer(this.fingerprint)])},RevocationKey}(SubPacket),Issuer=function(_super){function Issuer(id){this.id=id,Issuer.__super__.constructor.call(this,S.issuer)}return __extends(Issuer,_super),Issuer.parse=function(slice){return new Issuer(slice.read_buffer(8))},Issuer.prototype._v_to_buffer=function(){return new Buffer(this.id)},Issuer}(SubPacket),NotationData=function(_super){function NotationData(flags,name,value){this.flags=flags,this.name=name,this.value=value,NotationData.__super__.constructor.call(this,S.notation_data)}return __extends(NotationData,_super),NotationData.parse=function(slice){var flags,name,nl,value,vl;return flags=slice.read_uint32(),nl=slice.read_uint16(),vl=slice.read_uint16(),name=slice.read_buffer(nl),value=slice.read_buffer(vl),new NotationData(flags,name,value)},NotationData.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(32,this.flags),uint_to_buffer(16,this.name.length),uint_to_buffer(16,this.value.length),new Buffer(this.name),new Buffer(this.value)])},NotationData}(SubPacket),PreferredHashAlgorithms=function(_super){function PreferredHashAlgorithms(v){PreferredHashAlgorithms.__super__.constructor.call(this,S.preferred_hash_algorithms,v)}return __extends(PreferredHashAlgorithms,_super),PreferredHashAlgorithms.parse=function(slice){return Preference.parse(slice,PreferredHashAlgorithms)},PreferredHashAlgorithms}(Preference),PreferredCompressionAlgorithms=function(_super){function PreferredCompressionAlgorithms(v){PreferredCompressionAlgorithms.__super__.constructor.call(this,S.preferred_compression_algorithms,v)}return __extends(PreferredCompressionAlgorithms,_super),PreferredCompressionAlgorithms.parse=function(slice){return Preference.parse(slice,PreferredCompressionAlgorithms)},PreferredCompressionAlgorithms}(Preference),KeyServerPreferences=function(_super){function KeyServerPreferences(v){KeyServerPreferences.__super__.constructor.call(this,S.key_server_preferences,v)}return __extends(KeyServerPreferences,_super),KeyServerPreferences.parse=function(slice){return Preference.parse(slice,KeyServerPreferences)},KeyServerPreferences}(Preference),Features=function(_super){function Features(v){Features.__super__.constructor.call(this,S.features,v)}return __extends(Features,_super),Features.parse=function(slice){return Preference.parse(slice,Features)},Features}(Preference),PreferredKeyServer=function(_super){function PreferredKeyServer(server){this.server=server,PreferredKeyServer.__super__.constructor.call(this,S.preferred_key_server)}return __extends(PreferredKeyServer,_super),PreferredKeyServer.parse=function(slice){return new PreferredKeyServer(slice.consume_rest_to_buffer())},PreferredKeyServer.prototype._v_to_buffer=function(){return this.server},PreferredKeyServer}(SubPacket),PrimaryUserId=function(_super){function PrimaryUserId(flag){this.flag=flag,PrimaryUserId.__super__.constructor.call(this,S.primary_user_id)}return __extends(PrimaryUserId,_super),PrimaryUserId.parse=function(slice){return new PrimaryUserId(slice.read_uint8())},PrimaryUserId.prototype._v_to_buffer=function(){return uint_to_buffer(8,this.flag)},PrimaryUserId}(SubPacket),PolicyURI=function(_super){function PolicyURI(flag){this.flag=flag,PolicyURI.__super__.constructor.call(this,S.policy_uri)}return __extends(PolicyURI,_super),PolicyURI.parse=function(slice){return new PolicyURI(slice.consume_rest_to_buffer())},PolicyURI.prototype._v_to_buffer=function(){return this.flag},PolicyURI}(SubPacket),KeyFlags=function(_super){function KeyFlags(v){KeyFlags.__super__.constructor.call(this,S.key_flags,v)}return __extends(KeyFlags,_super),KeyFlags.parse=function(slice){return Preference.parse(slice,KeyFlags)},KeyFlags.prototype.all_flags=function(){var e,ret,_i,_len,_ref3;for(ret=0,_ref3=this.v,_i=0,_len=_ref3.length;_len>_i;_i++)e=_ref3[_i],ret|=e;return ret},KeyFlags}(Preference),SignersUserID=function(_super){function SignersUserID(uid){this.uid=uid,SignersUserID.__super__.constructor.call(this,S.signers_user_id)}return __extends(SignersUserID,_super),SignersUserID.parse=function(slice){return new SignersUserID(slice.consume_rest_to_buffer())},SignersUserID.prototype._v_to_buffer=function(){return this.uid},SignersUserID}(SubPacket),ReasonForRevocation=function(_super){function ReasonForRevocation(flag,reason){this.flag=flag,this.reason=reason,ReasonForRevocation.__super__.constructor.call(this,S.reason_for_revocation)}return __extends(ReasonForRevocation,_super),ReasonForRevocation.parse=function(slice){var flag,reason;return flag=slice.read_uint8(),reason=slice.consume_rest_to_buffer(),new ReasonForRevocation(flag,reason)},ReasonForRevocation.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(8,this.flag),this.reason])},ReasonForRevocation}(SubPacket),SignatureTarget=function(_super){function SignatureTarget(pub_key_alg,hasher,hval){this.pub_key_alg=pub_key_alg,this.hasher=hasher,this.hval=hval,SignatureTarget.__super__.constructor.call(this,S.signature_target)}return __extends(SignatureTarget,_super),SignatureTarget.parse=function(slice){var hasher,hval,pka;return pka=slice.read_uint8(),hasher=alloc_or_throw(slice.read_uint8()),hval=slice.read_buffer(hasher.output_length),new SignatureTarget(pka,hasher,hval)},SignatureTarget.prototype._v_to_buffer=function(){return Buffer.concat([uint_to_buffer(8,this.pub_key_alg),uint_to_buffer(8,this.hasher.type),this.hval])},SignatureTarget}(SubPacket),EmbeddedSignature=function(_super){function EmbeddedSignature(_arg){this.sig=_arg.sig,this.rawsig=_arg.rawsig,EmbeddedSignature.__super__.constructor.call(this,S.embedded_signature)}return __extends(EmbeddedSignature,_super),EmbeddedSignature.prototype._v_to_buffer=function(){return this.rawsig},EmbeddedSignature.prototype.to_sig=function(){return this.sig},EmbeddedSignature.parse=function(slice){var rawsig,sig;return rawsig=slice.peek_rest_to_buffer(),sig=Signature.parse(slice),new EmbeddedSignature({sig:sig,rawsig:rawsig})},EmbeddedSignature}(SubPacket),exports.Signature=Signature,Parser=function(){function Parser(slice){this.slice=slice}return Parser.prototype.parse_v2_or_v3=function(v,klass){var o;if(5!==this.slice.read_uint8())throw new error("Bad one-octet length");return o={},o.type=this.slice.read_uint8(),o.time=this.slice.read_uint32(),o.sig_data=this.slice.peek_rest_to_buffer(),o.key_id=this.slice.read_buffer(8),o.public_key_class=asymmetric.get_class(this.slice.read_uint8()),o.hasher=alloc_or_throw(this.slice.read_uint8()),o.signed_hash_value_hash=this.slice.read_uint16(),o.sig=o.public_key_class.parse_sig(this.slice),o.version=v,new klass(o)
},Parser.prototype.parse_v4=function(){var end,hashed_subpacket_count,o,unhashed_subpacket_count;return o={},o.type=this.slice.read_uint8(),o.public_key_class=asymmetric.get_class(this.slice.read_uint8()),o.hasher=alloc_or_throw(this.slice.read_uint8()),hashed_subpacket_count=this.slice.read_uint16(),end=this.slice.i+hashed_subpacket_count,o.sig_data=this.slice.peek_to_buffer(hashed_subpacket_count),o.hashed_subpackets=function(){var _results;for(_results=[];this.slice.i<end;)_results.push(this.parse_subpacket());return _results}.call(this),unhashed_subpacket_count=this.slice.read_uint16(),end=this.slice.i+unhashed_subpacket_count,o.unhashed_subpackets=function(){var _results;for(_results=[];this.slice.i<end;)_results.push(this.parse_subpacket());return _results}.call(this),o.signed_hash_value_hash=this.slice.read_uint16(),o.sig=o.public_key_class.parse_sig(this.slice),o.version=4,new Signature(o)},Parser.prototype.parse_subpacket=function(){var critical,end,five_byte_len,klass,len,raw_type,ret,type,_ref3;return _ref3=this.slice.read_v4_length(),len=_ref3[0],five_byte_len=_ref3[1],raw_type=this.slice.read_uint8(),type=127&raw_type,critical=!!(128&raw_type),end=this.slice.clamp(len-1),klass=function(){switch(type){case S.creation_time:return CreationTime;case S.expiration_time:return ExpirationTime;case S.exportable_certificate:return Exportable;case S.trust_signature:return Trust;case S.regular_expression:return RegularExpression;case S.revocable:return Revocable;case S.key_expiration_time:return KeyExpirationTime;case S.preferred_symmetric_algorithms:return PreferredSymmetricAlgorithms;case S.revocation_key:return RevocationKey;case S.issuer:return Issuer;case S.notation_data:return NotationData;case S.preferred_hash_algorithms:return PreferredHashAlgorithms;case S.preferred_compression_algorithms:return PreferredCompressionAlgorithms;case S.key_server_preferences:return KeyServerPreferences;case S.preferred_key_server:return PreferredKeyServer;case S.primary_user_id:return PrimaryUserId;case S.policy_uri:return PolicyURI;case S.key_flags:return KeyFlags;case S.signers_user_id:return SignersUserID;case S.reason_for_revocation:return ReasonForRevocation;case S.features:return Features;case S.signature_target:return SignatureTarget;case S.embedded_signature:return EmbeddedSignature;default:if(type>=S.experimental_low&&type<=S.experimental_high)return Experimental;throw new Error("Unknown signature subpacket: "+type)}}(),ret=klass.parse(this.slice,type),ret.set_opts({critical:critical,five_byte_len:five_byte_len}),this.slice.unclamp(end),ret},Parser.prototype.parse=function(){var version;switch(version=this.slice.read_uint8()){case C.versions.signature.V2:return this.parse_v2_or_v3(version,Signature_v2);case C.versions.signature.V3:return this.parse_v2_or_v3(version,Signature_v3);case C.versions.signature.V4:return this.parse_v4();default:throw new Error("Unknown signature version: "+version)}},Parser}(),exports.CreationTime=CreationTime,exports.KeyFlags=KeyFlags,exports.KeyExpirationTime=KeyExpirationTime,exports.PreferredSymmetricAlgorithms=PreferredSymmetricAlgorithms,exports.PreferredHashAlgorithms=PreferredHashAlgorithms,exports.Features=Features,exports.KeyServerPreferences=KeyServerPreferences,exports.Issuer=Issuer,exports.EmbeddedSignature=EmbeddedSignature,exports.PrimaryUserId=PrimaryUserId}).call(this)}).call(this,require("buffer").Buffer)},{"../../asymmetric":1,"../../const":5,"../../hash":14,"../../util":70,"../buffer":35,"../util":60,"./base":45,"./packetsigs":51,assert:75,buffer:80,"iced-error":115,"iced-runtime":118,util:114}],54:[function(require,module,exports){(function(Buffer){(function(){var AES,C,Packet,SHA1,SHA256,UserAttribute,bufferify,encrypt,native_rng,parse,triplesec,uint_to_buffer,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};C=require("../../const").openpgp,triplesec=require("triplesec"),_ref=triplesec.hash,SHA1=_ref.SHA1,SHA256=_ref.SHA256,AES=triplesec.ciphers.AES,native_rng=triplesec.prng.native_rng,_ref1=require("../../util"),bufferify=_ref1.bufferify,uint_to_buffer=_ref1.uint_to_buffer,encrypt=require("../cfb").encrypt,Packet=require("./base").Packet,parse=require("pgp-utils").userid.parse,UserAttribute=function(_super){function UserAttribute(data){this.data=data,UserAttribute.__super__.constructor.call(this)}return __extends(UserAttribute,_super),UserAttribute.prototype.write=function(){return this.frame_packet(C.packet_tags.user_attribute,this.data)},UserAttribute.parse=function(slice){return new UserAttribute(slice.consume_rest_to_buffer())},UserAttribute.prototype.to_user_attribute=function(){return this},UserAttribute.prototype.to_signature_payload=function(){return Buffer.concat([new Buffer([C.signatures.user_attribute]),uint_to_buffer(32,this.data.length),this.data])},UserAttribute}(Packet),exports.UserAttribute=UserAttribute}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../util":70,"../cfb":38,"./base":45,buffer:80,"pgp-utils":163,triplesec:181}],55:[function(require,module,exports){(function(Buffer){(function(){var AES,C,Packet,SHA1,SHA256,UserID,bufferify,encrypt,native_rng,parse,triplesec,uint_to_buffer,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};C=require("../../const").openpgp,triplesec=require("triplesec"),_ref=triplesec.hash,SHA1=_ref.SHA1,SHA256=_ref.SHA256,AES=triplesec.ciphers.AES,native_rng=triplesec.prng.native_rng,_ref1=require("../../util"),bufferify=_ref1.bufferify,uint_to_buffer=_ref1.uint_to_buffer,encrypt=require("../cfb").encrypt,Packet=require("./base").Packet,parse=require("pgp-utils").userid.parse,UserID=function(_super){function UserID(userid,components){this.components=null!=components?components:null,this.userid=bufferify(userid),null==this.compontents&&this._parse(),UserID.__super__.constructor.call(this),this._time_primary_pair=null,this.primary=!1,this.most_recent_sig=null}return __extends(UserID,_super),UserID.prototype.utf8=function(){return this.userid.toString("utf8")},UserID.prototype.write=function(){return this.frame_packet(C.packet_tags.userid,this.userid)},UserID.parse=function(slice){return new UserID(slice.consume_rest_to_buffer())},UserID.prototype.to_userid=function(){return this},UserID.prototype.cmp=function(b){var x,y;return x=this.utf8(),y=b.utf8(),y>x?-1:x===y?0:1},UserID.prototype.to_signature_payload=function(){return Buffer.concat([new Buffer([C.signatures.userid]),uint_to_buffer(32,this.userid.length),this.userid])},UserID.prototype._parse=function(){var c;return null!=(c=parse(this.utf8()))?this.components=c:void 0},UserID.prototype.get_username=function(){var _ref2;return null!=(_ref2=this.components)?_ref2.username:void 0},UserID.prototype.get_comment=function(){var _ref2;return null!=(_ref2=this.components)?_ref2.comment:void 0},UserID.prototype.get_email=function(){var _ref2;return null!=(_ref2=this.components)?_ref2.email:void 0},UserID.prototype.time_primary_pair=function(){var max,p,pairs,ret,s,_i,_len;if(null==this._time_primary_pair){for(pairs=function(){var _i,_len,_ref2,_ref3,_results;for(_ref2=this.get_psc().get_self_sigs(),_results=[],_i=0,_len=_ref2.length;_len>_i;_i++)s=_ref2[_i],_results.push(null!=s&&null!=(_ref3=s.sig)?_ref3.time_primary_pair():void 0);return _results}.call(this),max=null,ret=[null,null],_i=0,_len=pairs.length;_len>_i;_i++)p=pairs[_i],null!=p&&(p[0]&&(null==ret[0]||ret[0]<p[0])&&(ret[0]=p[0]),p[1]&&(null==ret[1]||ret[1]<p[0])&&(ret[1]=p[0]));this._time_primary_pair=ret,this.most_recent_sig=ret[0]}return this._time_primary_pair},UserID.make=function(components){var c,comment,userid;return comment=null!=(c=components.comment)?"("+c+") ":"",userid=""+components.username+" "+comment+"<"+components.email+">",new UserID(userid,components)},UserID.prototype.get_framed_signature_output=function(){var _ref2,_ref3,_ref4;return null!=(_ref2=this.get_psc())&&null!=(_ref3=_ref2.get_self_sig())&&null!=(_ref4=_ref3.sig)?_ref4.get_framed_output():void 0},UserID}(Packet),exports.UserID=UserID}).call(this)}).call(this,require("buffer").Buffer)},{"../../const":5,"../../util":70,"../cfb":38,"./base":45,buffer:80,"pgp-utils":163,triplesec:181}],56:[function(require,module,exports){(function(Buffer){(function(){var C,Compressed,Generic,KeyMaterial,Literal,MessageParser,OnePassSignature,PKESK,PacketParser,SEIPD,Signature,SlicerBuffer,UserAttribute,UserID,inspect,parse,util,_ref;util=require("../util"),SlicerBuffer=require("./buffer").SlicerBuffer,C=require("../const").openpgp,KeyMaterial=require("./packet/keymaterial").KeyMaterial,Signature=require("./packet/signature").Signature,_ref=require("./packet/sess"),SEIPD=_ref.SEIPD,PKESK=_ref.PKESK,UserID=require("./packet/userid").UserID,UserAttribute=require("./packet/user_attribute").UserAttribute,Compressed=require("./packet/compressed").Compressed,Generic=require("./packet/generic").Generic,OnePassSignature=require("./packet/one_pass_sig").OnePassSignature,Literal=require("./packet/literal").Literal,inspect=require("util").inspect,MessageParser=function(){function MessageParser(slice){this.slice=slice}return MessageParser.prototype.parse=function(){var _results;for(_results=[];this.slice.rem();)_results.push(this.parse_packet());return _results},MessageParser.prototype.parse_packet=function(){return new PacketParser(this.slice).parse()},MessageParser}(),PacketParser=function(){function PacketParser(slice){this.slice=slice,this.body=null,this.real_packet_len=null,this.tag=null,this.len=null,this.header_len=null}return PacketParser.prototype.parse_header=function(){return this.parse_tag_and_len(),this.header_len||(this.header_len=this.slice.offset()),this.body||(this.body=new SlicerBuffer(this.slice.read_buffer(this.len))),this.real_packet_len||(this.real_packet_len=this.len),this.slice.unclamp()},PacketParser.prototype.parse=function(){var ret;return this.parse_header(),ret=this.parse_body()},PacketParser.prototype.parse_body=function(){var packet,pt,raw,sb;return pt=C.packet_tags,sb=this.body,raw=sb.peek_rest_to_buffer(),packet=function(){switch(this.tag){case pt.PKESK:return PKESK.parse(sb);case pt.one_pass_sig:return OnePassSignature.parse(sb);case pt.secret_key:return KeyMaterial.parse_private_key(sb,{subkey:!1});case pt.secret_subkey:return KeyMaterial.parse_private_key(sb,{subkey:!0});case pt.public_key:return KeyMaterial.parse_public_key(sb,{subkey:!1});case pt.public_subkey:return KeyMaterial.parse_public_key(sb,{subkey:!0});case pt.signature:return Signature.parse(sb);case pt.userid:return UserID.parse(sb);case pt.user_attribute:return UserAttribute.parse(sb);case pt.SEIPD:return SEIPD.parse(sb);case pt.literal:return Literal.parse(sb);case pt.compressed:return Compressed.parse(sb);default:return new Generic(this.tag,sb)}}.call(this),packet.set({tag:this.tag,real_packet_len:this.real_packet_len,header_len:this.header_len,raw:raw}),packet},PacketParser.prototype.parse_tag_and_len=function(){var c;if(this.slice.len()<2||0===(128&(c=this.slice.read_uint8())))throw new Error("This doesn't look like a binary PGP packet (c="+c+")");return 0===(64&c)?this.parse_tag_and_len_old(c):this.parse_tag_and_len_new(c)},PacketParser.prototype.parse_tag_and_len_old=function(c){return this.tag=(63&c)>>2,this.len=function(){switch(3&c){case 0:return this.slice.read_uint8();case 1:return this.slice.read_uint16();case 2:return this.slice.read_uint32();case 3:return this.slice.rem()}}.call(this)},PacketParser.prototype.parse_tag_and_len_new=function(c){var ret;return this.tag=63&c,ret=this.parse_tag_len_new()},PacketParser.prototype.parse_tag_len_new=function(){var c,d,go,lastlen,packet_length,segments;for(go=!0,segments=[],this.len=0,lastlen=0;go;)go=!1,c=this.slice.read_uint8(),lastlen=192>c?c:255===c?this.slice.read_uint32():224>c?(d=this.slice.read_uint8(),(c-192<<8)+(d+192)):(this.header_len||(this.header_len=this.slice.offset()),packet_length=1<<(31&c),segments.push(this.slice.read_buffer(packet_length)),go=!0,packet_length),this.len+=lastlen;return segments.length?(segments.push(this.slice.read_buffer(lastlen)),this.body=new SlicerBuffer(Buffer.concat(segments)),this.len=this.body.length,this.real_packet_len=this.slice.offset()):void 0},PacketParser}(),exports.parse=parse=function(buf){return util.katch(function(){return new MessageParser(new SlicerBuffer(buf)).parse()})}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../util":70,"./buffer":35,"./packet/compressed":46,"./packet/generic":47,"./packet/keymaterial":48,"./packet/literal":49,"./packet/one_pass_sig":50,"./packet/sess":52,"./packet/signature":53,"./packet/user_attribute":54,"./packet/userid":55,buffer:80,util:114}],57:[function(require,module,exports){(function(){var C,KeyBlock,Message,OPS,Warnings,armor,athrow,bufeq_secure,do_message,hashmod,iced,import_key_pgp,katch,konst,make_esc,parse,unix_time,util,verify_clearsign,verify_detached,__iced_k,__iced_k_noop,_ref;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,OPS=require("../keyfetch").OPS,konst=require("../const"),C=konst.openpgp,_ref=require("../util"),katch=_ref.katch,unix_time=_ref.unix_time,athrow=_ref.athrow,Warnings=_ref.Warnings,bufeq_secure=_ref.bufeq_secure,parse=require("./parser").parse,import_key_pgp=require("../symmetric").import_key_pgp,util=require("util"),armor=require("./armor"),hashmod=require("../hash"),verify_clearsign=require("./clearsign").verify,verify_detached=require("./detachsign").verify,KeyBlock=function(){function KeyBlock(packets,opts){this.packets=packets,this.verified_signatures=[],this.subkeys=[],this.primary=null,this.userids=[],this.user_attributes=[],this.warnings=new Warnings,this.opts=opts||{}}return KeyBlock.prototype.to_obj=function(){return{subkeys:this.subkeys,primary:this.primary,userids:this.userids}},KeyBlock.prototype._extract_keys=function(){var err,i,p,_i,_len,_ref1;if(err=null,this.packets.length)if((this.primary=this.packets[0]).is_primary())for(_ref1=this.packets.slice(1),i=_i=0,_len=_ref1.length;_len>_i;i=++_i)p=_ref1[i],p.is_key_material()&&null==err&&(p.key.is_toxic()?this.warnings.push("Ignoring toxic subkey (ElGamal Encrypt+Sign)"):p.is_primary()?bufeq_secure(p.get_fingerprint(),this.primary.get_fingerprint())?p.set_duplicate_primary():err=new Error("cannot have 2 primary keys"):this.subkeys.push(p));else err=new Error("First packet must be the primary key");else err=new Error("No packets; cannot extract a key");return err},KeyBlock.prototype._check_keys=function(){return this._check_primary()||this._check_subkeys()},KeyBlock.prototype._check_primary=function(){var err;return err=this.primary.is_self_signed()?0===(this.userids=this.primary.get_signed_userids()).length?new Error("no valid Userid signed into key"):(this.user_attributes=this.primary.get_signed_user_attributes(),null):new Error("no valid primary key self-signature")},KeyBlock.prototype._check_subkeys=function(){var err,i,k,msg,subkeys,_i,_len;for(subkeys=this.subkeys,err=null,this.subkeys=[],i=_i=0,_len=subkeys.length;_len>_i;i=++_i)k=subkeys[i],null==err&&(k.is_signed_subkey_of(this.primary)?this.subkeys.push(k):(msg="Subkey "+i+" was invalid; discarding",this.warnings.push(msg)));return err},KeyBlock.prototype.process=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=this._extract_keys(),function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"KeyBlock.process"}),_this._verify_sigs(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:86})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){var _ref1;return null!=err||(null!=(_ref1=_this.opts)?_ref1.no_check_keys:0)||(err=_this._check_keys()),cb(err)}}(this))},KeyBlock.prototype._verify_sigs=function(cb){var err,i,iid,msg,n_sigs,p,pid,tmp,working_set,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,working_set=[],n_sigs=0,function(_this){return function(__iced_k){var _len,_ref1,_results,_while;_ref1=_this.packets.slice(1),_len=_ref1.length,i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>i?(p=_ref1[i],null!=err?_continue():void!function(__iced_k){return p.is_signature()?void!function(__iced_k){return bufeq_secure(iid=p.get_issuer_key_id(),pid=_this.primary.get_key_id())?(n_sigs++,p.key=_this.primary.key,p.primary=_this.primary,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"KeyBlock._verify_sigs"}),p.verify(working_set,__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:110})),__iced_deferrals._fulfill()}(function(){return __iced_k("undefined"!=typeof tmp&&null!==tmp?(msg="Signature failure in packet "+i+": "+tmp.message,_this.warnings.push(msg)):_this.verified_signatures.push(p))}),void 0):(n_sigs++,__iced_k(_this.warnings.push("Skipping signature by another issuer: "+(null!=iid?iid.toString("hex"):void 0)+" != "+(null!=pid?pid.toString("hex"):void 0))))}(__iced_k):(n_sigs>0&&(n_sigs=0,working_set=[]),__iced_k(p.is_duplicate_primary()?void 0:working_set.push(p)))}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(err)}}(this))},KeyBlock}(),Message=function(){function Message(_arg){this.keyfetch=_arg.keyfetch,this.data_fn=_arg.data_fn,this.data=_arg.data,this.strict=_arg.strict,this.literals=[],this.enc_data_packet=null,this.warnings=new Warnings}return Message.prototype._get_session_key=function(cb){var enc,err,esk_packets,fingerprint,index,key_ids,key_material,km,p,packet,pkcs5,privk,sesskey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key_ids=[],esk_packets=[],err=null,pkcs5=!1,key_ids=function(){var _results;for(_results=[];this.packets.length&&(p=this.packets[0].to_esk_packet());)esk_packets.push(p),this.packets.shift(),_results.push(p.get_key_id());return _results}.call(this),function(_this){return function(__iced_k){return key_ids.length?(enc=!0,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._get_session_key"}),_this.keyfetch.fetch(key_ids,konst.ops.decrypt,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],index=arguments[2]}}(),lineno:151})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return null!=err?__iced_k():(packet=esk_packets[index],key_material=km.find_pgp_key_material(key_ids[index]),fingerprint=key_material.get_fingerprint(),privk=key_material.key,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._get_session_key"}),privk.decrypt_and_unpad(packet.ekey,{fingerprint:fingerprint},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],sesskey=arguments[1],pkcs5=arguments[2]}}(),lineno:157})),__iced_deferrals._fulfill()}(function(){return __iced_k(null==err?_this.encryption_subkey=key_material:void 0)}),void 0)}(__iced_k)})):__iced_k(enc=!1)}}(this)(function(){return function(){return cb(err,enc,sesskey,pkcs5)}}(this))},Message.prototype._find_encrypted_data=function(cb){var err,ret;return err=ret=null,this.packets.length&&(ret=this.packets[0].to_enc_data_packet())?this.packets.pop():err=new Error("Could not find encrypted data packet"),cb(err,ret)},Message.prototype._decrypt_with_session_key=function(sesskey,edat,pkcs5,cb){var cipher,err,ret,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),_ref1=katch(function(){return import_key_pgp(sesskey,pkcs5)}),err=_ref1[0],cipher=_ref1[1],function(){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt_with_session_key"}),edat.decrypt({cipher:cipher},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:179})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))},Message.prototype._parse=function(raw,cb){var err,packets,_ref1;return _ref1=parse(raw),err=_ref1[0],packets=_ref1[1],cb(err,packets)},Message.prototype._decrypt=function(cb){var edat,err,esc,is_enc,packets,pkcs5,plaintext,sesskey,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,esc=make_esc(cb,"Message::decrypt"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._get_session_key(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return is_enc=arguments[0],sesskey=arguments[1],pkcs5=arguments[2]}}(),lineno:193}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return is_enc?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._find_encrypted_data(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return edat=arguments[0]}}(),lineno:195}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._decrypt_with_session_key(sesskey,edat,pkcs5,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return plaintext=arguments[0]}}(),lineno:196}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._decrypt"}),_this._parse(plaintext,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packets=arguments[0]}}(),lineno:197}))),__iced_deferrals._fulfill()}(function(){return __iced_k(_this.packets=packets.concat(_this.packets))})})}):__iced_k()}(function(){return cb(err)})}}(this))},Message.prototype._inflate=function(cb){var esc,inflated,p,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=[],esc=make_esc(cb,"Message::_inflate"),function(_this){return function(__iced_k){var _i,_len,_ref1,_results,_while;_ref1=_this.packets,_len=_ref1.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(p=_ref1[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._inflate"}),p.inflate(esc(__iced_deferrals.defer({assign_fn:function(){return function(){return inflated=arguments[0]}}(),lineno:207}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return"undefined"==typeof inflated||null===inflated?__iced_k(packets.push(p)):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._inflate"}),_this._parse(inflated,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:209}))),__iced_deferrals._fulfill()}(function(){return __iced_k(packets.push.apply(packets,p))})}(_next)})):_break()})(__iced_k)}}(this)(function(_this){return function(){return _this.packets=packets,cb(null)}}(this))},Message.prototype._frame_signatures=function(){var o,p,payload,ret,stack,_i,_j,_len,_len1,_ref1;for(ret=[],stack=[],payload=[],_ref1=this.packets,_i=0,_len=_ref1.length;_len>_i;_i++)p=_ref1[_i],p.tag===C.packet_tags.one_pass_sig?stack.push({open:p}):stack.length&&(p.tag===C.packet_tags.signature?(o=stack.pop(),o.close=p,ret.push(o)):payload.push(p));for(_j=0,_len1=ret.length;_len1>_j;_j++)o=ret[_j],o.payload=payload;return ret},Message.prototype._verify_sig=function(sig,cb){var a,b,err,i,key_material,km,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=null,bufeq_secure(a=sig.open.key_id,b=sig.close.get_key_id())||(err=new Error("signature mismatch open v close: "+(null!=a?a.toString("hex"):void 0)+" != "+(null!=b?b.toString("hex"):void 0))),function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_sig"}),_this.keyfetch.fetch([a],konst.ops.verify,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],i=arguments[2]}}(),lineno:247})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k(_this.strict?void 0:(_this.warnings.push("Problem fetching key "+a.toString("hex")+": "+err.toString()),err=null)):(key_material=km.find_pgp_key_material(a),sig.close.key=key_material.key,sig.close.key_manager=km,function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_sig"}),sig.close.verify(sig.payload,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:259})),__iced_deferrals._fulfill()}(__iced_k),void 0)}(function(){return cb(err)})}}(this))},Message.prototype._verify=function(cb){var esc,sig,sigs,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Message::_verify_sigs"),sigs=this._frame_signatures(),function(_this){return function(__iced_k){var _i,_len,_ref1,_results,_while;_ref1=sigs,_len=_ref1.length,_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_len>_i?(sig=_ref1[_i],void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify"}),_this._verify_sig(sig,esc(__iced_deferrals.defer({lineno:273}))),__iced_deferrals._fulfill()}(_next)):_break()})(__iced_k)}}(this)(function(){return function(){return cb(null)}}(this))},Message.prototype.collect_literals=function(){var p,_i,_len,_ref1,_results;for(_ref1=this.packets,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)p=_ref1[_i],p.tag===C.packet_tags.literal&&_results.push(p);return _results},Message.prototype._process_generic=function(_arg,cb){var esc,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,this.packets=packets,esc=make_esc(cb,"Message:process"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process_generic"}),_this._decrypt(esc(__iced_deferrals.defer({lineno:286}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process_generic"}),_this._inflate(esc(__iced_deferrals.defer({lineno:287}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process_generic"}),_this._verify(esc(__iced_deferrals.defer({lineno:288}))),__iced_deferrals._fulfill()}(function(){return cb(null,_this.collect_literals())})})}}(this))},Message.prototype._verify_clearsign=function(_arg,cb){var clearsign,err,literal,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,clearsign=_arg.clearsign,function(_this){return function(__iced_k){return null==clearsign?__iced_k(err=new Error("no clearsign data found")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_clearsign"}),verify_clearsign({packets:packets,clearsign:clearsign,keyfetch:_this.keyfetch},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literal=arguments[1]}}(),lineno:297})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,[literal])}}(this))},Message.prototype.parse_and_process=function(msg,cb){var esc,literals,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"Message::parse_and_process"),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message.parse_and_process"}),_this._parse(msg.body,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return packets=arguments[0]}}(),lineno:304}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message.parse_and_process"}),_this._process({msg:msg,packets:packets},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return literals=arguments[0]}}(),lineno:305}))),__iced_deferrals._fulfill()}(function(){return cb(null,literals)})}}(this))},Message.prototype._verify_signature=function(_arg,cb){var err,literals,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;
__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),packets=_arg.packets,function(_this){return function(__iced_k){return null==_this.data&&null==_this.data_fn?__iced_k(err=new Error("Cannot verify detached signature without data input")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._verify_signature"}),verify_detached({packets:packets,data:_this.data,data_fn:_this.data_fn,keyfetch:_this.keyfetch},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:314})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,literals)}}(this))},Message.prototype._process=function(_arg,cb){var err,literals,msg,packets,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),msg=_arg.msg,packets=_arg.packets,msg.type||(msg.type=C.message_types.generic),function(_this){return function(__iced_k){switch(msg.type){case C.message_types.generic:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process"}),_this._process_generic({packets:packets},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:323})),__iced_deferrals._fulfill()}(__iced_k);break;case C.message_types.clearsign:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process"}),_this._verify_clearsign({packets:packets,clearsign:msg.clearsign},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:325})),__iced_deferrals._fulfill()}(__iced_k);break;case C.message_types.signature:!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced",funcname:"Message._process"}),_this._verify_signature({packets:packets},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:327})),__iced_deferrals._fulfill()}(__iced_k);break;default:return __iced_k(err=new Error("Needed a 'generic', 'clearsign', or 'signature' PGP message, got "+msg.type))}}}(this)(function(){return function(){return cb(err,literals)}}(this))},Message}(),exports.KeyBlock=KeyBlock,exports.Message=Message,exports.do_message=do_message=function(_arg,cb){var armored,data,data_fn,err,esk,keyfetch,literals,msg,msg_type,proc,raw,strict,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref1;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,raw=_arg.raw,msg_type=_arg.msg_type,keyfetch=_arg.keyfetch,data_fn=_arg.data_fn,data=_arg.data,strict=_arg.strict,literals=null,err=msg=warnings=esk=null,null!=armored?(_ref1=armor.decode(armored),err=_ref1[0],msg=_ref1[1]):null!=raw?(msg_type||(msg_type=C.message_types.generic),msg={body:raw,type:msg_type}):err=new Error("No input to do_message; need either 'armored' or 'raw' input"),function(){return function(__iced_k){return null!=err?__iced_k():(null==strict&&(strict=!0),proc=new Message({keyfetch:keyfetch,data_fn:data_fn,data:data,strict:strict}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/processor.iced"}),proc.parse_and_process(msg,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],literals=arguments[1]}}(),lineno:373})),__iced_deferrals._fulfill()}(function(){return warnings=proc.warnings,__iced_k(esk=proc.encryption_subkey)}),void 0)}}(this)(function(){return function(){return cb(err,literals,warnings,esk)}}(this))}}).call(this)},{"../const":5,"../hash":14,"../keyfetch":24,"../symmetric":68,"../util":70,"./armor":33,"./clearsign":39,"./detachsign":40,"./parser":56,"iced-error":115,"iced-runtime":118,util:114}],58:[function(require,module,exports){(function(Buffer){(function(){var C,S2K,SHA256,SecretKeyMaterial,alloc,iterated_s2k,streamers,triplesec,_iterated_s2k_cache,_ref;triplesec=require("triplesec"),C=require("../const").openpgp,_ref=require("../hash"),alloc=_ref.alloc,SHA256=_ref.SHA256,streamers=_ref.streamers,S2K=function(){function S2K(){this.hash=SHA256,this.streamer=streamers.SHA256()}return S2K.prototype._count=function(c,bias){return 16+(15&c)<<(c>>4)+bias},S2K.prototype.set_hash_algorithm=function(which){return null!=(this.hash=alloc(which))?this.streamer=streamers[this.hash.algname]():(console.warn("No such hash: "+which+"; defaulting to SHA-256"),this.hash=SHA256,this.streamer=streamers.SHA256())},S2K.prototype.read=function(slice){var c;switch(this.type=slice.read_uint8(),this.type){case C.s2k.plain:this.set_hash_algorithm(slice.read_uint8());break;case C.s2k.salt:this.set_hash_algorithm(slice.read_uint8()),this.salt=slice.read_buffer(8);break;case C.s2k.salt_iter:this.set_hash_algorithm(slice.read_uint8()),this.salt=slice.read_buffer(8),this.EXPBIAS=6,c=slice.read_uint8(),this.count=this._count(c,this.EXPBIAS);break;case C.s2k.gnu:this.read_gnu_extensions(slice);break;default:throw new Error("unknown s2k type! "+this.type)}return this},S2K.prototype.read_gnu_extensions=function(slice){var buf,gnu_ext_type,id,version;if(version=slice.read_uint8(),"GNU"!==(id=(buf=slice.read_buffer(3)).toString("utf8")))throw new Error("Malformed GNU-extension: "+ext);switch(gnu_ext_type=slice.read_uint8()+1e3){case 1001:return this.type=C.s2k.gnu_dummy;default:throw new("unknown s2k gnu protection mode: "+gnu_ext_type)}},S2K.prototype.write=function(passphrase,salt,c,keysize){var type;return this.type=type=3,this.salt=salt,this.count=this._count(c,6),this.s2kLength=10,this.produce_key(passphrase,keysize)},S2K.prototype.is_dummy=function(){return this.type===C.s2k.gnu_dummy},S2K.prototype.produce_key=function(passphrase,numBytes){var key,key2,prefix,ret,seed;return null==numBytes&&(numBytes=16),ret=function(){switch(this.type){case C.s2k.plain:return this.hash(passphrase);case C.s2k.salt:return this.hash(Buffer.concat([this.salt,passphrase]));case C.s2k.salt_iter:return seed=Buffer.concat([this.salt,passphrase]),key=iterated_s2k({alg:this.hash.algname,seed:seed,count:this.count}),null==numBytes||24!==numBytes&&32!==numBytes?key:(prefix=new Buffer([0]),key2=iterated_s2k({alg:this.hash.algname,seed:seed,count:this.count,prefix:prefix}),Buffer.concat([key,key2]));default:return null}}.call(this),ret.slice(0,numBytes)},S2K}(),_iterated_s2k_cache={},iterated_s2k=function(_arg){var alg,bigbuf,count,i,k,n,prefix,rem,rembuf,ret,seed,streamer,tot,val;if(alg=_arg.alg,seed=_arg.seed,count=_arg.count,prefix=_arg.prefix,k=""+alg+"-"+seed.toString("base64")+"-"+count,null!=prefix&&(k+="-"+prefix.toString("base64")),null!=(val=_iterated_s2k_cache[k]))return val;for(streamer=streamers[alg](),null!=prefix&&streamer.update(prefix),bigbuf=Buffer.concat(function(){var _i,_results;for(_results=[],i=_i=0;4096>_i;i=++_i)_results.push(seed);return _results}()),tot=0;tot+bigbuf.length<=count;)streamer.update(bigbuf),tot+=bigbuf.length;return rem=count-tot,n=Math.ceil(rem/seed.length),rembuf=Buffer.concat(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(seed);return _results}()),ret=streamer(rembuf.slice(0,rem)),_iterated_s2k_cache[k]=ret,ret},SecretKeyMaterial=function(){function SecretKeyMaterial(){this.s2k_convention=null,this.s2k=null,this.iv=null,this.cipher=null,this.payload=null}return SecretKeyMaterial.prototype.is_dummy=function(){return null!=this.s2k&&this.s2k.is_dummy()},SecretKeyMaterial.prototype.has_private=function(){return!this.is_dummy()},SecretKeyMaterial.prototype.is_locked=function(){return this.s2k_convention!==C.s2k_convention.none&&!this.is_dummy()},SecretKeyMaterial}(),exports.S2K=S2K,exports.SecretKeyMaterial=SecretKeyMaterial}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,"../hash":14,buffer:80,triplesec:181}],59:[function(require,module,exports){(function(){var C,SignatureEngine,burn,decode,iced,make_esc,processor,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},make_esc=require("iced-error").make_esc,burn=require("./burner").burn,processor=require("./processor"),decode=require("./armor").decode,C=require("../const"),exports.SignatureEngine=SignatureEngine=function(){function SignatureEngine(_arg){this.km=_arg.km}return SignatureEngine.prototype.get_km=function(){return this.km},SignatureEngine.prototype.box=function(msg,cb){var err,out,signing_key,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),out={type:"pgp"},function(_this){return function(__iced_k){return null==(signing_key=_this.km.find_signing_pgp_key())?__iced_k(err=new Error("No signing key found")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.box"}),burn({msg:msg,signing_key:signing_key},__iced_deferrals.defer({assign_fn:function(__slot_1,__slot_2){return function(){return err=arguments[0],__slot_1.pgp=arguments[1],__slot_2.raw=arguments[2]}}(out,out),lineno:21})),__iced_deferrals._fulfill()}(function(){return __iced_k("undefined"==typeof err||null===err?out.armored=out.pgp:void 0)})}}(this)(function(){return function(){return cb(err,out)}}(this))},SignatureEngine.prototype.decode=function(armored,cb){var err,msg,mt,_ref;return _ref=decode(armored),err=_ref[0],msg=_ref[1],mt=C.openpgp.message_types,null==err&&msg.type!==mt.generic&&(err=new Error("wrong message type; expected a generic message; got "+msg.type)),cb(err,msg)},SignatureEngine.prototype.unbox=function(msg,cb){var eng,esc,literals,msg,payload,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),esc=make_esc(cb,"SignatureEngine::unbox"),function(_this){return function(__iced_k){return"string"!=typeof msg?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.unbox"}),_this.decode(msg,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return msg=arguments[0]}}(),lineno:40}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){eng=new processor.Message({keyfetch:_this.km}),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.unbox"}),eng.parse_and_process({body:msg.body},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return literals=arguments[0]}}(),lineno:42}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/openpgp/sigeng.iced",funcname:"SignatureEngine.unbox"}),_this._check_result(literals,esc(__iced_deferrals.defer({assign_fn:function(){return function(){return payload=arguments[0]}}(),lineno:43}))),__iced_deferrals._fulfill()}(function(){return cb(null,payload,msg.body)})})}}(this))},SignatureEngine.prototype._check_result=function(literals,cb){var b,err,l,n,payload,sw,_ref;return err=payload=null,1!==(n=literals.length)||null==(l=literals[0])?err=new Error("Expected only one pgp literal; got "+n):null==(sw=null!=(_ref=l.get_data_signer())?_ref.sig:void 0)?err=new Error("Expected a signature on the payload message"):null==this.km.find_pgp_key(b=sw.get_key_id())?err=new Error("Failed sanity check; didn't have a key for '"+b.toString("hex")+"'"):payload=l.data,cb(err,payload)},SignatureEngine}()}).call(this)},{"../const":5,"./armor":33,"./burner":36,"./processor":57,"iced-error":115,"iced-runtime":118}],60:[function(require,module,exports){(function(Buffer){(function(){var C,calc_checksum,encode_length,ops_to_keyflags;C=require("../const"),exports.make_time_packet=function(d){var b;return d||(d=Math.floor(Date.now()/1e3)),b=new Buffer(4),b.writeUInt32BE(d,0),b},exports.calc_checksum=calc_checksum=function(text){var i,ret,_i,_ref;for(ret=0,i=_i=0,_ref=text.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)ret=(ret+text.readUInt8(i))%65536;return ret},exports.encode_length=encode_length=function(l,five_byte){var ret;return null==five_byte&&(five_byte=!1),ret=null,l>=8384||five_byte?(ret=new Buffer(5),ret.writeUInt8(255,0),ret.writeUInt32BE(l,1)):192>l?(ret=new Buffer(1),ret.writeUInt8(l,0)):l>=192&&8384>l&&(ret=new Buffer(2),ret.writeUInt16BE(l-192+49152,0)),ret},exports.ops_to_keyflags=ops_to_keyflags=function(ops){var out;return out=0,ops&C.ops.encrypt&&(out|=C.openpgp.key_flags.encrypt_comm),ops&C.ops.decrypt&&(out|=C.openpgp.key_flags.encrypt_comm),ops&C.ops.verify&&(out|=C.openpgp.key_flags.sign_data),ops&C.ops.sign&&(out|=C.openpgp.key_flags.sign_data),out}}).call(this)}).call(this,require("buffer").Buffer)},{"../const":5,buffer:80}],61:[function(require,module,exports){(function(){var Base,C,iced,konst,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},konst=require("../const"),C=konst.openpgp,exports.Base=Base=function(){function Base(_arg){this.packets=_arg.packets,this.keyfetch=_arg.keyfetch,this._sig=null}return Base.prototype._find_signature=function(cb){var err,n;return err=1!==(n=this.packets.length)?new Error("Expected one signature packet; got "+n):(this._sig=this.packets[0]).tag!==C.packet_tags.signature?new Error("Expected a signature packet; but got type="+this.packets[0].tag):null,cb(err)},Base.prototype._fetch_key=function(cb){var err,i,key_id,keymat,km,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key_id=this._sig.get_key_id(),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/openpgp/verifier.iced",funcname:"Base._fetch_key"}),_this.keyfetch.fetch([key_id],konst.ops.verify,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],km=arguments[1],i=arguments[2]}}(),lineno:28})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(keymat=km.find_pgp_key_material(key_id),_this._sig.key=keymat.key,_this._sig.key_manager=km),cb(err)}}(this))},Base}()}).call(this)},{"../const":5,"iced-runtime":118}],62:[function(require,module,exports){(function(Buffer){(function(){var C,SHA512,SRF,bufeq_secure,buffer_to_ui8a,eme_random,emsa_pkcs1_decode,emsa_pkcs1_encode,hash_headers,iced,nbs,__iced_k,__iced_k_noop,_ref;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},SHA512=require("./hash").SHA512,C=require("./const").openpgp,nbs=require("./bn").nbs,_ref=require("./util"),buffer_to_ui8a=_ref.buffer_to_ui8a,bufeq_secure=_ref.bufeq_secure,SRF=require("./rand").SRF,hash_headers={MD5:[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16],SHA1:[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],SHA224:[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28],SHA256:[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32],SHA384:[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48],SHA512:[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64]},exports.emsa_pkcs1_encode=emsa_pkcs1_encode=function(hashed_data,len,opts){var buf,hasher,headers,i,n;return null==opts&&(opts={}),hasher=opts.hasher||SHA512,headers=hash_headers[hasher.algname],n=len-headers.length-3-hasher.output_length,buf=Buffer.concat([new Buffer([0,1]),new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(255);return _results}()),new Buffer([0]),new Buffer(headers),hashed_data]),nbs(buffer_to_ui8a(buf),256)},exports.emsa_pkcs1_decode=emsa_pkcs1_decode=function(v,hasher){var err,h,header,i,ret;if(err=ret=null,i=0,v.length<2)err=new Error("signature was way too short: < 2 bytes");else if(1!==v.readUInt16BE(0))err=new Error("Sig verify error: Didn't get two-byte header 0x00 0x01");else{for(i=2;i<v.length&&255===v.readUInt8(i);)i++;i>=v.length||0!==v.readUInt8(i)?err=new Error("Sig verify error: Missed the 0x0 separator"):(i++,header=hash_headers[hasher.algname],bufeq_secure(new Buffer(header),v.slice(i,header.length+i))?(i+=header.length,h=v.slice(i),h.length!==hasher.output_length?err=new Error("Sig verify error: trailing garbage in signature"):ret=h):err=new Error("Sig verify error: missing ASN header for "+hasher.algname))}return[err,ret]},eme_random=function(n,cb){var b,bytes,c,diff,i,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),bytes=[],function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},bytes.length<n?(diff=n-bytes.length,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/pad.iced"}),SRF().random_bytes(diff,__iced_deferrals.defer({assign_fn:function(){return function(){return b=arguments[0]}}(),lineno:77})),__iced_deferrals._fulfill()}(function(){var _i;for(i=_i=0;diff>=0?diff>_i:_i>diff;i=diff>=0?++_i:--_i)c=b.readUInt8(i),0!==c&&bytes.push(c);return _next()})):_break()})(__iced_k)}}(this)(function(){return function(){return cb(new Buffer(bytes))}}(this))},exports.eme_pkcs1_encode=function(v,len,cb){var PS,buf,err,n_randos,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=err=null,function(){return function(__iced_k){return v.length>len-11?__iced_k(err=new Error("cannot encrypt message -- it's too long!")):(n_randos=len-3-v.length,void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/pad.iced",funcname:"eme_pkcs1_encode"}),eme_random(n_randos,__iced_deferrals.defer({assign_fn:function(){return function(){return PS=arguments[0]}}(),lineno:93})),__iced_deferrals._fulfill()}(function(){return buf=Buffer.concat([new Buffer([0,2]),PS,new Buffer([0]),v]),__iced_k(ret=nbs(buffer_to_ui8a(buf),256))}))}}(this)(function(){return function(){return cb(err,ret)}}(this))},exports.eme_pkcs1_decode=function(v){var err,i,ret;if(err=ret=null,v.length<12)err=new Error("Ciphertext too short, needs to be >= 12 bytes");else if(2!==v.readUInt16BE(0))err=new Error("Failed to find expected header: 0x00 0x02");else{for(i=2;i<v.length&&0!==v.readUInt8(i);)i++;i>=v.length?err=new Error("didn't get 0x00 seperator octet"):(i++,ret=v.slice(i))}return[err,ret]},exports.ecc_pkcs5_pad_data=function(d){var err,pad_len,ret,v;return err=ret=null,pad_len=40-d.length,0>pad_len?err=new Error("Pad underrun"):(v=function(){var _i,_results;for(_results=[],_i=0;pad_len>=0?pad_len>_i:_i>pad_len;pad_len>=0?_i++:_i--)_results.push(pad_len);return _results}(),ret=Buffer.concat([d,new Buffer(v)])),[err,ret]},exports.ecc_pkcs5_unpad_data=function(buf,data_len){var c,err,i,pad_len,_i,_ref1;if(err=null,pad_len=buf.length-data_len,0>pad_len)err=new Error("Pad length was < 0; pad underrun");else if(buf.length%8!==0)err=new Error("Padded data must be a multiple of 8 bytes long");else for(i=_i=data_len,_ref1=buf.length;_ref1>=data_len?_ref1>_i:_i>_ref1;i=_ref1>=data_len?++_i:--_i)if((c=buf.readUInt8(i))!==pad_len){err=new Error("Got bad PKCS#5 pad character "+c+" at position "+i+"; wanted "+pad_len);break}return err}}).call(this)}).call(this,require("buffer").Buffer)},{"./bn":4,"./const":5,"./hash":14,"./rand":65,"./util":70,buffer:80,"iced-runtime":118}],63:[function(require,module,exports){(function(){var ASP,Avg,BigInteger,MRF,PrimeFinder,SRF,Timer,fermat2_test,fta,iced,make_esc,miller_rabin,naive_is_prime,native_rng,nbi,nbs,nbv,prime_search,prng,quickmod,random_prime,small_primes,_MR_inner,_MR_small_check,__iced_k,__iced_k_noop,_ref,_ref1;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},_ref=require("bn"),nbv=_ref.nbv,nbi=_ref.nbi,BigInteger=_ref.BigInteger,prng=require("triplesec").prng,native_rng=prng.native_rng,small_primes=require("./primes").small_primes,make_esc=require("iced-error").make_esc,ASP=require("./util").ASP,nbs=require("./bn").nbs,_ref1=require("./rand"),MRF=_ref1.MRF,SRF=_ref1.SRF,Timer=function(){function Timer(){this.start=Date.now()}return Timer.prototype.stop=function(){return Date.now()-this.start},Timer}(),Avg=function(){function Avg(){this.tot=0,this.n=0}return Avg.prototype.start=function(){return this._t=Date.now()},Avg.prototype.stop=function(){var s;return s=Date.now()-this._t,console.log("ran in "+s),this.tot+=s,this.n++},Avg.prototype.avg=function(){return this.tot/this.n},Avg}(),quickmod=function(p,d){return p.modInt(d)},fta=new Avg,fermat2_test=function(n){var Bl,bl,i,ret,t,_i;for(t=nbv(1),bl=n.bitLength(),bl--,Bl=n.byteLength(),i=_i=bl;0>=bl?0>=_i:_i>=0;i=0>=bl?++_i:--_i)t=t.square(),t.byteLength()>Bl&&(t=t.mod(n)),n.testBit(i)&&(t=t.shiftLeft(1));return t.compareTo(n)>0&&(t=t.mod(n)),ret=0===t.compareTo(nbv(2))},_MR_inner=function(_arg){var a,j,p,p1,r,s,y,_i,_ref2;if(s=_arg.s,r=_arg.r,p=_arg.p,p1=_arg.p1,a=MRF().random_zn(p),y=a.modPow(r,p),0!==y.compareTo(BigInteger.ONE))for(j=_i=_ref2=s-1;0>=_ref2?0>=_i:_i>=0;j=0>=_ref2?++_i:--_i)if(0!==y.compareTo(p1)){if(0===j)return!1;if(y=y.square().mod(p),0===y.compareTo(BigInteger.ONE))return!1}return!0},_MR_small_check=function(_arg){var p,_ref2;return p=_arg.p,p.compareTo(BigInteger.ZERO)<=0?!1:p.compareTo(nbv(7))<=0?2===(_ref2=p.intValue())||3===_ref2||5===_ref2||7===_ref2:p.testBit(0)?!0:!1},miller_rabin=function(_arg,cb){var asp,esc,i,iter,p,p1,r,ret,s,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),p=_arg.p,iter=_arg.iter,asp=_arg.asp,asp||(asp=new ASP({})),iter||(iter=10),esc=make_esc(cb,"miller_rabin"),ret=_MR_small_check({p:p}),function(){return function(__iced_k){return ret?(p1=p.subtract(BigInteger.ONE),s=p1.getLowestSetBit(),r=p1.shiftRight(s),ret=!0,function(__iced_k){var _results,_while;i=0,_begin=0,_end=iter,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?i+=1:i-=1,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&i>=iter||_positive===!1&&iter>=i?_break():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"mr",i:i,total:iter,p:p},esc(__iced_deferrals.defer({lineno:122}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return _MR_inner({s:s,r:r,p:p,p1:p1})?__iced_k():(ret=!1,void function(){_break()}(__iced_k))}(_next)})})(__iced_k)}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"mr",i:iter,total:iter,p:p},esc(__iced_deferrals.defer({lineno:127}))),__iced_deferrals._fulfill()}(__iced_k)}),void 0):__iced_k()}}(this)(function(){return function(){return cb(null,ret)}}(this))},PrimeFinder=function(){function PrimeFinder(p,sieve){this.p=p,this.sieve=sieve,this.inc=0,this.maxinc=-1,this.sievepos=quickmod(this.p,this.sieve.length),this.calcmods()}return PrimeFinder.prototype.getp=function(){return this.p},PrimeFinder.prototype.setmax=function(i){if(-1!==this.maxinc)throw new Error("can only setmax() once");return this.maxinc=i},PrimeFinder.prototype.calcmods=function(){var sp;return this.p=this.p.add(nbv(this.inc)),-1!==this.maxinc&&(this.maxinc-=this.inc),this.inc=0,this.mods=function(){var _i,_len,_results;for(_results=[],_i=0,_len=small_primes.length;_len>_i;_i++)sp=small_primes[_i],_results.push(quickmod(this.p,sp));return _results}.call(this)},PrimeFinder.prototype.decrement_mods_find_divisor=function(){var i,sp,_i,_len;for(i=_i=0,_len=small_primes.length;_len>_i;i=++_i)for(sp=small_primes[i];this.mods[i]+this.inc>=sp;)if(this.mods[i]-=sp,this.mods[i]+this.inc===0)return!0;return!1},PrimeFinder.prototype.next_weak=function(){for(var step;;){if(step=this.sieve[this.sievepos],this.sievepos=(this.sievepos+step)%this.sieve.length,this.inc+=step,this.inc>this.maxinc&&this.maxinc>0)return this.tmp=nbv(0),this.tmp;if(this.inc<0&&this.calcmods(),!this.decrement_mods_find_divisor())return this.tmp=this.p.add(nbv(this.inc)),this.tmp}},PrimeFinder.prototype.next_fermat=function(){for(;;)if(this.next_weak(),!this.tmp||fermat2_test(this.tmp))return this.tmp},PrimeFinder.prototype.next_strong=function(iter){for(null==iter&&(iter=32);;)if(this.next_weak(),!this.tmp||fermat2_test(this.tmp)&&probab_prime(this.tmp,iter))return this.tmp},PrimeFinder}(),prime_search=function(_arg,cb){var asp,esc,i,is_prime,iters,p,pf,pp,pvec,range,ret,sieve,start,tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),start=_arg.start,range=_arg.range,sieve=_arg.sieve,asp=_arg.asp,iters=_arg.iters,iters||(iters=20),pf=new PrimeFinder(start,sieve),pf.setmax(range),pvec=function(){var _results;for(_results=[];(pp=pf.next_weak()).compareTo(BigInteger.ZERO)>0;)_results.push(pp);return _results}(),esc=make_esc(cb,"prime_search"),ret=null,function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},pvec.length&&null==ret?(i=MRF().random_word()%pvec.length,p=pvec[i],function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"fermat",p:p},esc(__iced_deferrals.defer({lineno:226}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){return fermat2_test(p)?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),miller_rabin({p:p,iters:iters,asp:asp},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return is_prime=arguments[0]}}(),lineno:229}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"passed_mr",p:p},esc(__iced_deferrals.defer({lineno:230}))),__iced_deferrals._fulfill()}(function(){return __iced_k(is_prime?ret=p:asp.progress({what:"failed_mr",p:p}))})}):__iced_k()}(function(){return tmp=pvec.pop(),_next(i<pvec.length?pvec[i]=tmp:void 0)})}),void 0):_break()})(__iced_k)}}(this)(function(){return function(){return null==ret&&(ret=nbv(0)),cb(null,ret)}}(this))},random_prime=function(_arg,cb){var asp,e,esc,go,iters,nbits,p,range,sieve,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbits=_arg.nbits,iters=_arg.iters,asp=_arg.asp,e=_arg.e,sieve=[1,2],go=!0,esc=make_esc(cb,"random_prime"),range=nbits,p=null,function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},go?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),SRF().random_nbit(nbits,__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:262})),__iced_deferrals._fulfill()}(function(){p=p.setBit(0).setBit(nbits-1).setBit(nbits-2),function(__iced_k){return null!=e&&0!==p.subtract(BigInteger.ONE).gcd(e).compareTo(BigInteger.ONE)?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"guess",p:p},esc(__iced_deferrals.defer({lineno:265}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),prime_search({start:p,range:range,sieve:sieve,asp:asp,iters:iters},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:266}))),__iced_deferrals._fulfill()}(function(){return __iced_k(go=null==p||0===p.compareTo(BigInteger.ZERO))})})}(_next)}):_break()})(__iced_k)}}(this)(function(){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/primegen.iced"}),asp.progress({what:"found",p:p},esc(__iced_deferrals.defer({lineno:269}))),__iced_deferrals._fulfill()}(function(){return cb(null,p)})}}(this))},exports.naive_is_prime=naive_is_prime=function(n){var biggest,p,_i,_len;for(biggest=Math.floor(Math.sqrt(n)),_i=0,_len=small_primes.length;_len>_i;_i++){if(p=small_primes[_i],p>biggest)return!0;if(n%p===0)return!1}return!1},exports.fermat2_test=fermat2_test,exports.nbs=nbs,exports.small_primes=small_primes,exports.miller_rabin=miller_rabin,exports.random_prime=random_prime}).call(this)},{"./bn":4,"./primes":64,"./rand":65,"./util":70,bn:71,"iced-error":115,"iced-runtime":118,triplesec:181}],64:[function(require,module,exports){(function(){exports.small_primes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973,10007,10009,10037,10039,10061,10067,10069,10079,10091,10093,10099,10103,10111,10133,10139,10141,10151,10159,10163,10169,10177,10181,10193,10211,10223,10243,10247,10253,10259,10267,10271,10273,10289,10301,10303,10313,10321,10331,10333,10337,10343,10357,10369,10391,10399,10427,10429,10433,10453,10457,10459,10463,10477,10487,10499,10501,10513,10529,10531,10559,10567,10589,10597,10601,10607,10613,10627,10631,10639,10651,10657,10663,10667,10687,10691,10709,10711,10723,10729,10733,10739,10753,10771,10781,10789,10799,10831,10837,10847,10853,10859,10861,10867,10883,10889,10891,10903,10909,10937,10939,10949,10957,10973,10979,10987,10993,11003,11027,11047,11057,11059,11069,11071,11083,11087,11093,11113,11117,11119,11131,11149,11159,11161,11171,11173,11177,11197,11213,11239,11243,11251,11257,11261,11273,11279,11287,11299,11311,11317,11321,11329,11351,11353,11369,11383,11393,11399,11411,11423,11437,11443,11447,11467,11471,11483,11489,11491,11497,11503,11519,11527,11549,11551,11579,11587,11593,11597,11617,11621,11633,11657,11677,11681,11689,11699,11701,11717,11719,11731,11743,11777,11779,11783,11789,11801,11807,11813,11821,11827,11831,11833,11839,11863,11867,11887,11897,11903,11909,11923,11927,11933,11939,11941,11953,11959,11969,11971,11981,11987,12007,12011,12037,12041,12043,12049,12071,12073,12097,12101,12107,12109,12113,12119,12143,12149,12157,12161,12163,12197,12203,12211,12227,12239,12241,12251,12253,12263,12269,12277,12281,12289,12301,12323,12329,12343,12347,12373,12377,12379,12391,12401,12409,12413,12421,12433,12437,12451,12457,12473,12479,12487,12491,12497,12503,12511,12517,12527,12539,12541,12547,12553,12569,12577,12583,12589,12601,12611,12613,12619,12637,12641,12647,12653,12659,12671,12689,12697,12703,12713,12721,12739,12743,12757,12763,12781,12791,12799,12809,12821,12823,12829,12841,12853,12889,12893,12899,12907,12911,12917,12919,12923,12941,12953,12959,12967,12973,12979,12983,13001,13003,13007,13009,13033,13037,13043,13049,13063,13093,13099,13103,13109,13121,13127,13147,13151,13159,13163,13171,13177,13183,13187,13217,13219,13229,13241,13249,13259,13267,13291,13297,13309,13313,13327,13331,13337,13339,13367,13381,13397,13399,13411,13417,13421,13441,13451,13457,13463,13469,13477,13487,13499,13513,13523,13537,13553,13567,13577,13591,13597,13613,13619,13627,13633,13649,13669,13679,13681,13687,13691,13693,13697,13709,13711,13721,13723,13729,13751,13757,13759,13763,13781,13789,13799,13807,13829,13831,13841,13859,13873,13877,13879,13883,13901,13903,13907,13913,13921,13931,13933,13963,13967,13997,13999,14009,14011,14029,14033,14051,14057,14071,14081,14083,14087,14107,14143,14149,14153,14159,14173,14177,14197,14207,14221,14243,14249,14251,14281,14293,14303,14321,14323,14327,14341,14347,14369,14387,14389,14401,14407,14411,14419,14423,14431,14437,14447,14449,14461,14479,14489,14503,14519,14533,14537,14543,14549,14551,14557,14561,14563,14591,14593,14621,14627,14629,14633,14639,14653,14657,14669,14683,14699,14713,14717,14723,14731,14737,14741,14747,14753,14759,14767,14771,14779,14783,14797,14813,14821,14827,14831,14843,14851,14867,14869,14879,14887,14891,14897,14923,14929,14939,14947,14951,14957,14969,14983,15013,15017,15031,15053,15061,15073,15077,15083,15091,15101,15107,15121,15131,15137,15139,15149,15161,15173,15187,15193,15199,15217,15227,15233,15241,15259,15263,15269,15271,15277,15287,15289,15299,15307,15313,15319,15329,15331,15349,15359,15361,15373,15377,15383,15391,15401,15413,15427,15439,15443,15451,15461,15467,15473,15493,15497,15511,15527,15541,15551,15559,15569,15581,15583,15601,15607,15619,15629,15641,15643,15647,15649,15661,15667,15671,15679,15683,15727,15731,15733,15737,15739,15749,15761,15767,15773,15787,15791,15797,15803,15809,15817,15823,15859,15877,15881,15887,15889,15901,15907,15913,15919,15923,15937,15959,15971,15973,15991,16001,16007,16033,16057,16061,16063,16067,16069,16073,16087,16091,16097,16103,16111,16127,16139,16141,16183,16187,16189,16193,16217,16223,16229,16231,16249,16253,16267,16273,16301,16319,16333,16339,16349,16361,16363,16369,16381,16411,16417,16421,16427,16433,16447,16451,16453,16477,16481,16487,16493,16519,16529,16547,16553,16561,16567,16573,16603,16607,16619,16631,16633,16649,16651,16657,16661,16673,16691,16693,16699,16703,16729,16741,16747,16759,16763,16787,16811,16823,16829,16831,16843,16871,16879,16883,16889,16901,16903,16921,16927,16931,16937,16943,16963,16979,16981,16987,16993,17011,17021,17027,17029,17033,17041,17047,17053,17077,17093,17099,17107,17117,17123,17137,17159,17167,17183,17189,17191,17203,17207,17209,17231,17239,17257,17291,17293,17299,17317,17321,17327,17333,17341,17351,17359,17377,17383,17387,17389,17393,17401,17417,17419,17431,17443,17449,17467,17471,17477,17483,17489,17491,17497,17509,17519,17539,17551,17569,17573,17579,17581,17597,17599,17609,17623,17627,17657,17659,17669,17681,17683,17707,17713,17729,17737,17747,17749,17761,17783,17789,17791,17807,17827,17837,17839,17851,17863,17881,17891,17903,17909,17911,17921,17923,17929,17939,17957,17959,17971,17977,17981,17987,17989,18013,18041,18043,18047,18049,18059,18061,18077,18089,18097,18119,18121,18127,18131,18133,18143,18149,18169,18181,18191,18199,18211,18217,18223,18229,18233,18251,18253,18257,18269,18287,18289,18301,18307,18311,18313,18329,18341,18353,18367,18371,18379,18397,18401,18413,18427,18433,18439,18443,18451,18457,18461,18481,18493,18503,18517,18521,18523,18539,18541,18553,18583,18587,18593,18617,18637,18661,18671,18679,18691,18701,18713,18719,18731,18743,18749,18757,18773,18787,18793,18797,18803,18839,18859,18869,18899,18911,18913,18917,18919,18947,18959,18973,18979,19001,19009,19013,19031,19037,19051,19069,19073,19079,19081,19087,19121,19139,19141,19157,19163,19181,19183,19207,19211,19213,19219,19231,19237,19249,19259,19267,19273,19289,19301,19309,19319,19333,19373,19379,19381,19387,19391,19403,19417,19421,19423,19427,19429,19433,19441,19447,19457,19463,19469,19471,19477,19483,19489,19501,19507,19531,19541,19543,19553,19559,19571,19577,19583,19597,19603,19609,19661,19681,19687,19697,19699,19709,19717,19727,19739,19751,19753,19759,19763,19777,19793,19801,19813,19819,19841,19843,19853,19861,19867,19889,19891,19913,19919,19927,19937,19949,19961,19963,19973,19979,19991,19993,19997,20011,20021,20023,20029,20047,20051,20063,20071,20089,20101,20107,20113,20117,20123,20129,20143,20147,20149,20161,20173,20177,20183,20201,20219,20231,20233,20249,20261,20269,20287,20297,20323,20327,20333,20341,20347,20353,20357,20359,20369,20389,20393,20399,20407,20411,20431,20441,20443,20477,20479,20483,20507,20509,20521,20533,20543,20549,20551,20563,20593,20599,20611,20627,20639,20641,20663,20681,20693,20707,20717,20719,20731,20743,20747,20749,20753,20759,20771,20773,20789,20807,20809,20849,20857,20873,20879,20887,20897,20899,20903,20921,20929,20939,20947,20959,20963,20981,20983,21001,21011,21013,21017,21019,21023,21031,21059,21061,21067,21089,21101,21107,21121,21139,21143,21149,21157,21163,21169,21179,21187,21191,21193,21211,21221,21227,21247,21269,21277,21283,21313,21317,21319,21323,21341,21347,21377,21379,21383,21391,21397,21401,21407,21419,21433,21467,21481,21487,21491,21493,21499,21503,21517,21521,21523,21529,21557,21559,21563,21569,21577,21587,21589,21599,21601,21611,21613,21617,21647,21649,21661,21673,21683,21701,21713,21727,21737,21739,21751,21757,21767,21773,21787,21799,21803,21817,21821,21839,21841,21851,21859,21863,21871,21881,21893,21911,21929,21937,21943,21961,21977,21991,21997,22003,22013,22027,22031,22037,22039,22051,22063,22067,22073,22079,22091,22093,22109,22111,22123,22129,22133,22147,22153,22157,22159,22171,22189,22193,22229,22247,22259,22271,22273,22277,22279,22283,22291,22303,22307,22343,22349,22367,22369,22381,22391,22397,22409,22433,22441,22447,22453,22469,22481,22483,22501,22511,22531,22541,22543,22549,22567,22571,22573,22613,22619,22621,22637,22639,22643,22651,22669,22679,22691,22697,22699,22709,22717,22721,22727,22739,22741,22751,22769,22777,22783,22787,22807,22811,22817,22853,22859,22861,22871,22877,22901,22907,22921,22937,22943,22961,22963,22973,22993,23003,23011,23017,23021,23027,23029,23039,23041,23053,23057,23059,23063,23071,23081,23087,23099,23117,23131,23143,23159,23167,23173,23189,23197,23201,23203,23209,23227,23251,23269,23279,23291,23293,23297,23311,23321,23327,23333,23339,23357,23369,23371,23399,23417,23431,23447,23459,23473,23497,23509,23531,23537,23539,23549,23557,23561,23563,23567,23581,23593,23599,23603,23609,23623,23627,23629,23633,23663,23669,23671,23677,23687,23689,23719,23741,23743,23747,23753,23761,23767,23773,23789,23801,23813,23819,23827,23831,23833,23857,23869,23873,23879,23887,23893,23899,23909,23911,23917,23929,23957,23971,23977,23981,23993,24001,24007,24019,24023,24029,24043,24049,24061,24071,24077,24083,24091,24097,24103,24107,24109,24113,24121,24133,24137,24151,24169,24179,24181,24197,24203,24223,24229,24239,24247,24251,24281,24317,24329,24337,24359,24371,24373,24379,24391,24407,24413,24419,24421,24439,24443,24469,24473,24481,24499,24509,24517,24527,24533,24547,24551,24571,24593,24611,24623,24631,24659,24671,24677,24683,24691,24697,24709,24733,24749,24763,24767,24781,24793,24799,24809,24821,24841,24847,24851,24859,24877,24889,24907,24917,24919,24923,24943,24953,24967,24971,24977,24979,24989,25013,25031,25033,25037,25057,25073,25087,25097,25111,25117,25121,25127,25147,25153,25163,25169,25171,25183,25189,25219,25229,25237,25243,25247,25253,25261,25301,25303,25307,25309,25321,25339,25343,25349,25357,25367,25373,25391,25409,25411,25423,25439,25447,25453,25457,25463,25469,25471,25523,25537,25541,25561,25577,25579,25583,25589,25601,25603,25609,25621,25633,25639,25643,25657,25667,25673,25679,25693,25703,25717,25733,25741,25747,25759,25763,25771,25793,25799,25801,25819,25841,25847,25849,25867,25873,25889,25903,25913,25919,25931,25933,25939,25943,25951,25969,25981,25997,25999,26003,26017,26021,26029,26041,26053,26083,26099,26107,26111,26113,26119,26141,26153,26161,26171,26177,26183,26189,26203,26209,26227,26237,26249,26251,26261,26263,26267,26293,26297,26309,26317,26321,26339,26347,26357,26371,26387,26393,26399,26407,26417,26423,26431,26437,26449,26459,26479,26489,26497,26501,26513,26539,26557,26561,26573,26591,26597,26627,26633,26641,26647,26669,26681,26683,26687,26693,26699,26701,26711,26713,26717,26723,26729,26731,26737,26759,26777,26783,26801,26813,26821,26833,26839,26849,26861,26863,26879,26881,26891,26893,26903,26921,26927,26947,26951,26953,26959,26981,26987,26993,27011,27017,27031,27043,27059,27061,27067,27073,27077,27091,27103,27107,27109,27127,27143,27179,27191,27197,27211,27239,27241,27253,27259,27271,27277,27281,27283,27299,27329,27337,27361,27367,27397,27407,27409,27427,27431,27437,27449,27457,27479,27481,27487,27509,27527,27529,27539,27541,27551,27581,27583,27611,27617,27631,27647,27653,27673,27689,27691,27697,27701,27733,27737,27739,27743,27749,27751,27763,27767,27773,27779,27791,27793,27799,27803,27809,27817,27823,27827,27847,27851,27883,27893,27901,27917,27919,27941,27943,27947,27953,27961,27967,27983,27997,28001,28019,28027,28031,28051,28057,28069,28081,28087,28097,28099,28109,28111,28123,28151,28163,28181,28183,28201,28211,28219,28229,28277,28279,28283,28289,28297,28307,28309,28319,28349,28351,28387,28393,28403,28409,28411,28429,28433,28439,28447,28463,28477,28493,28499,28513,28517,28537,28541,28547,28549,28559,28571,28573,28579,28591,28597,28603,28607,28619,28621,28627,28631,28643,28649,28657,28661,28663,28669,28687,28697,28703,28711,28723,28729,28751,28753,28759,28771,28789,28793,28807,28813,28817,28837,28843,28859,28867,28871,28879,28901,28909,28921,28927,28933,28949,28961,28979,29009,29017,29021,29023,29027,29033,29059,29063,29077,29101,29123,29129,29131,29137,29147,29153,29167,29173,29179,29191,29201,29207,29209,29221,29231,29243,29251,29269,29287,29297,29303,29311,29327,29333,29339,29347,29363,29383,29387,29389,29399,29401,29411,29423,29429,29437,29443,29453,29473,29483,29501,29527,29531,29537,29567,29569,29573,29581,29587,29599,29611,29629,29633,29641,29663,29669,29671,29683,29717,29723,29741,29753,29759,29761,29789,29803,29819,29833,29837,29851,29863,29867,29873,29879,29881,29917,29921,29927,29947,29959,29983,29989,30011,30013,30029,30047,30059,30071,30089,30091,30097,30103,30109,30113,30119,30133,30137,30139,30161,30169,30181,30187,30197,30203,30211,30223,30241,30253,30259,30269,30271,30293,30307,30313,30319,30323,30341,30347,30367,30389,30391,30403,30427,30431,30449,30467,30469,30491,30493,30497,30509,30517,30529,30539,30553,30557,30559,30577,30593,30631,30637,30643,30649,30661,30671,30677,30689,30697,30703,30707,30713,30727,30757,30763,30773,30781,30803,30809,30817,30829,30839,30841,30851,30853,30859,30869,30871,30881,30893,30911,30931,30937,30941,30949,30971,30977,30983,31013,31019,31033,31039,31051,31063,31069,31079,31081,31091,31121,31123,31139,31147,31151,31153,31159,31177,31181,31183,31189,31193,31219,31223,31231,31237,31247,31249,31253,31259,31267,31271,31277,31307,31319,31321,31327,31333,31337,31357,31379,31387,31391,31393,31397,31469,31477,31481,31489,31511,31513,31517,31531,31541,31543,31547,31567,31573,31583,31601,31607,31627,31643,31649,31657,31663,31667,31687,31699,31721,31723,31727,31729,31741,31751,31769,31771,31793,31799,31817,31847,31849,31859,31873,31883,31891,31907,31957,31963,31973,31981,31991,32003,32009,32027,32029,32051,32057,32059,32063,32069,32077,32083,32089,32099,32117,32119,32141,32143,32159,32173,32183,32189,32191,32203,32213,32233,32237,32251,32257,32261,32297,32299,32303,32309,32321,32323,32327,32341,32353,32359,32363,32369,32371,32377,32381,32401,32411,32413,32423,32429,32441,32443,32467,32479,32491,32497,32503,32507,32531,32533,32537,32561,32563,32569,32573,32579,32587,32603,32609,32611,32621,32633,32647,32653,32687,32693,32707,32713,32717,32719,32749,32771,32779,32783,32789,32797,32801,32803,32831,32833,32839,32843,32869,32887,32909,32911,32917,32933,32939,32941,32957,32969,32971,32983,32987,32993,32999,33013,33023,33029,33037,33049,33053,33071,33073,33083,33091,33107,33113,33119,33149,33151,33161,33179,33181,33191,33199,33203,33211,33223,33247,33287,33289,33301,33311,33317,33329,33331,33343,33347,33349,33353,33359,33377,33391,33403,33409,33413,33427,33457,33461,33469,33479,33487,33493,33503,33521,33529,33533,33547,33563,33569,33577,33581,33587,33589,33599,33601,33613,33617,33619,33623,33629,33637,33641,33647,33679,33703,33713,33721,33739,33749,33751,33757,33767,33769,33773,33791,33797,33809,33811,33827,33829,33851,33857,33863,33871,33889,33893,33911,33923,33931,33937,33941,33961,33967,33997,34019,34031,34033,34039,34057,34061,34123,34127,34129,34141,34147,34157,34159,34171,34183,34211,34213,34217,34231,34253,34259,34261,34267,34273,34283,34297,34301,34303,34313,34319,34327,34337,34351,34361,34367,34369,34381,34403,34421,34429,34439,34457,34469,34471,34483,34487,34499,34501,34511,34513,34519,34537,34543,34549,34583,34589,34591,34603,34607,34613,34631,34649,34651,34667,34673,34679,34687,34693,34703,34721,34729,34739,34747,34757,34759,34763,34781,34807,34819,34841,34843,34847,34849,34871,34877,34883,34897,34913,34919,34939,34949,34961,34963,34981,35023,35027,35051,35053,35059,35069,35081,35083,35089,35099,35107,35111,35117,35129,35141,35149,35153,35159,35171,35201,35221,35227,35251,35257,35267,35279,35281,35291,35311,35317,35323,35327,35339,35353,35363,35381,35393,35401,35407,35419,35423,35437,35447,35449,35461,35491,35507,35509,35521,35527,35531,35533,35537,35543,35569,35573,35591,35593,35597,35603,35617,35671,35677,35729,35731,35747,35753,35759,35771,35797,35801,35803,35809,35831,35837,35839,35851,35863,35869,35879,35897,35899,35911,35923,35933,35951,35963,35969,35977,35983,35993,35999,36007,36011,36013,36017,36037,36061,36067,36073,36083,36097,36107,36109,36131,36137,36151,36161,36187,36191,36209,36217,36229,36241,36251,36263,36269,36277,36293,36299,36307,36313,36319,36341,36343,36353,36373,36383,36389,36433,36451,36457,36467,36469,36473,36479,36493,36497,36523,36527,36529,36541,36551,36559,36563,36571,36583,36587,36599,36607,36629,36637,36643,36653,36671,36677,36683,36691,36697,36709,36713,36721,36739,36749,36761,36767,36779,36781,36787,36791,36793,36809,36821,36833,36847,36857,36871,36877,36887,36899,36901,36913,36919,36923,36929,36931,36943,36947,36973,36979,36997,37003,37013,37019,37021,37039,37049,37057,37061,37087,37097,37117,37123,37139,37159,37171,37181,37189,37199,37201,37217,37223,37243,37253,37273,37277,37307,37309,37313,37321,37337,37339,37357,37361,37363,37369,37379,37397,37409,37423,37441,37447,37463,37483,37489,37493,37501,37507,37511,37517,37529,37537,37547,37549,37561,37567,37571,37573,37579,37589,37591,37607,37619,37633,37643,37649,37657,37663,37691,37693,37699,37717,37747,37781,37783,37799,37811,37813,37831,37847,37853,37861,37871,37879,37889,37897,37907,37951,37957,37963,37967,37987,37991,37993,37997,38011,38039,38047,38053,38069,38083,38113,38119,38149,38153,38167,38177,38183,38189,38197,38201,38219,38231,38237,38239,38261,38273,38281,38287,38299,38303,38317,38321,38327,38329,38333,38351,38371,38377,38393,38431,38447,38449,38453,38459,38461,38501,38543,38557,38561,38567,38569,38593,38603,38609,38611,38629,38639,38651,38653,38669,38671,38677,38693,38699,38707,38711,38713,38723,38729,38737,38747,38749,38767,38783,38791,38803,38821,38833,38839,38851,38861,38867,38873,38891,38903,38917,38921,38923,38933,38953,38959,38971,38977,38993,39019,39023,39041,39043,39047,39079,39089,39097,39103,39107,39113,39119,39133,39139,39157,39161,39163,39181,39191,39199,39209,39217,39227,39229,39233,39239,39241,39251,39293,39301,39313,39317,39323,39341,39343,39359,39367,39371,39373,39383,39397,39409,39419,39439,39443,39451,39461,39499,39503,39509,39511,39521,39541,39551,39563,39569,39581,39607,39619,39623,39631,39659,39667,39671,39679,39703,39709,39719,39727,39733,39749,39761,39769,39779,39791,39799,39821,39827,39829,39839,39841,39847,39857,39863,39869,39877,39883,39887,39901,39929,39937,39953,39971,39979,39983,39989,40009,40013,40031,40037,40039,40063,40087,40093,40099,40111,40123,40127,40129,40151,40153,40163,40169,40177,40189,40193,40213,40231,40237,40241,40253,40277,40283,40289,40343,40351,40357,40361,40387,40423,40427,40429,40433,40459,40471,40483,40487,40493,40499,40507,40519,40529,40531,40543,40559,40577,40583,40591,40597,40609,40627,40637,40639,40693,40697,40699,40709,40739,40751,40759,40763,40771,40787,40801,40813,40819,40823,40829,40841,40847,40849,40853,40867,40879,40883,40897,40903,40927,40933,40939,40949,40961,40973,40993,41011,41017,41023,41039,41047,41051,41057,41077,41081,41113,41117,41131,41141,41143,41149,41161,41177,41179,41183,41189,41201,41203,41213,41221,41227,41231,41233,41243,41257,41263,41269,41281,41299,41333,41341,41351,41357,41381,41387,41389,41399,41411,41413,41443,41453,41467,41479,41491,41507,41513,41519,41521,41539,41543,41549,41579,41593,41597,41603,41609,41611,41617,41621,41627,41641,41647,41651,41659,41669,41681,41687,41719,41729,41737,41759,41761,41771,41777,41801,41809,41813,41843,41849,41851,41863,41879,41887,41893,41897,41903,41911,41927,41941,41947,41953,41957,41959,41969,41981,41983,41999,42013,42017,42019,42023,42043,42061,42071,42073,42083,42089,42101,42131,42139,42157,42169,42179,42181,42187,42193,42197,42209,42221,42223,42227,42239,42257,42281,42283,42293,42299,42307,42323,42331,42337,42349,42359,42373,42379,42391,42397,42403,42407,42409,42433,42437,42443,42451,42457,42461,42463,42467,42473,42487,42491,42499,42509,42533,42557,42569,42571,42577,42589,42611,42641,42643,42649,42667,42677,42683,42689,42697,42701,42703,42709,42719,42727,42737,42743,42751,42767,42773,42787,42793,42797,42821,42829,42839,42841,42853,42859,42863,42899,42901,42923,42929,42937,42943,42953,42961,42967,42979,42989,43003,43013,43019,43037,43049,43051,43063,43067,43093,43103,43117,43133,43151,43159,43177,43189,43201,43207,43223,43237,43261,43271,43283,43291,43313,43319,43321,43331,43391,43397,43399,43403,43411,43427,43441,43451,43457,43481,43487,43499,43517,43541,43543,43573,43577,43579,43591,43597,43607,43609,43613,43627,43633,43649,43651,43661,43669,43691,43711,43717,43721,43753,43759,43777,43781,43783,43787,43789,43793,43801,43853,43867,43889,43891,43913,43933,43943,43951,43961,43963,43969,43973,43987,43991,43997,44017,44021,44027,44029,44041,44053,44059,44071,44087,44089,44101,44111,44119,44123,44129,44131,44159,44171,44179,44189,44201,44203,44207,44221,44249,44257,44263,44267,44269,44273,44279,44281,44293,44351,44357,44371,44381,44383,44389,44417,44449,44453,44483,44491,44497,44501,44507,44519,44531,44533,44537,44543,44549,44563,44579,44587,44617,44621,44623,44633,44641,44647,44651,44657,44683,44687,44699,44701,44711,44729,44741,44753,44771,44773,44777,44789,44797,44809,44819,44839,44843,44851,44867,44879,44887,44893,44909,44917,44927,44939,44953,44959,44963,44971,44983,44987,45007,45013,45053,45061,45077,45083,45119,45121,45127,45131,45137,45139,45161,45179,45181,45191,45197,45233,45247,45259,45263,45281,45289,45293,45307,45317,45319,45329,45337,45341,45343,45361,45377,45389,45403,45413,45427,45433,45439,45481,45491,45497,45503,45523,45533,45541,45553,45557,45569,45587,45589,45599,45613,45631,45641,45659,45667,45673,45677,45691,45697,45707,45737,45751,45757,45763,45767,45779,45817,45821,45823,45827,45833,45841,45853,45863,45869,45887,45893,45943,45949,45953,45959,45971,45979,45989,46021,46027,46049,46051,46061,46073,46091,46093,46099,46103,46133,46141,46147,46153,46171,46181,46183,46187,46199,46219,46229,46237,46261,46271,46273,46279,46301,46307,46309,46327,46337,46349,46351,46381,46399,46411,46439,46441,46447,46451,46457,46471,46477,46489,46499,46507,46511,46523,46549,46559,46567,46573,46589,46591,46601,46619,46633,46639,46643,46649,46663,46679,46681,46687,46691,46703,46723,46727,46747,46751,46757,46769,46771,46807,46811,46817,46819,46829,46831,46853,46861,46867,46877,46889,46901,46919,46933,46957,46993,46997,47017,47041,47051,47057,47059,47087,47093,47111,47119,47123,47129,47137,47143,47147,47149,47161,47189,47207,47221,47237,47251,47269,47279,47287,47293,47297,47303,47309,47317,47339,47351,47353,47363,47381,47387,47389,47407,47417,47419,47431,47441,47459,47491,47497,47501,47507,47513,47521,47527,47533,47543,47563,47569,47581,47591,47599,47609,47623,47629,47639,47653,47657,47659,47681,47699,47701,47711,47713,47717,47737,47741,47743,47777,47779,47791,47797,47807,47809,47819,47837,47843,47857,47869,47881,47903,47911,47917,47933,47939,47947,47951,47963,47969,47977,47981,48017,48023,48029,48049,48073,48079,48091,48109,48119,48121,48131,48157,48163,48179,48187,48193,48197,48221,48239,48247,48259,48271,48281,48299,48311,48313,48337,48341,48353,48371,48383,48397,48407,48409,48413,48437,48449,48463,48473,48479,48481,48487,48491,48497,48523,48527,48533,48539,48541,48563,48571,48589,48593,48611,48619,48623,48647,48649,48661,48673,48677,48679,48731,48733,48751,48757,48761,48767,48779,48781,48787,48799,48809,48817,48821,48823,48847,48857,48859,48869,48871,48883,48889,48907,48947,48953,48973,48989,48991,49003,49009,49019,49031,49033,49037,49043,49057,49069,49081,49103,49109,49117,49121,49123,49139,49157,49169,49171,49177,49193,49199,49201,49207,49211,49223,49253,49261,49277,49279,49297,49307,49331,49333,49339,49363,49367,49369,49391,49393,49409,49411,49417,49429,49433,49451,49459,49463,49477,49481,49499,49523,49529,49531,49537,49547,49549,49559,49597,49603,49613,49627,49633,49639,49663,49667,49669,49681,49697,49711,49727,49739,49741,49747,49757,49783,49787,49789,49801,49807,49811,49823,49831,49843,49853,49871,49877,49891,49919,49921,49927,49937,49939,49943,49957,49991,49993,49999,50021,50023,50033,50047,50051,50053,50069,50077,50087,50093,50101,50111,50119,50123,50129,50131,50147,50153,50159,50177,50207,50221,50227,50231,50261,50263,50273,50287,50291,50311,50321,50329,50333,50341,50359,50363,50377,50383,50387,50411,50417,50423,50441,50459,50461,50497,50503,50513,50527,50539,50543,50549,50551,50581,50587,50591,50593,50599,50627,50647,50651,50671,50683,50707,50723,50741,50753,50767,50773,50777,50789,50821,50833,50839,50849,50857,50867,50873,50891,50893,50909,50923,50929,50951,50957,50969,50971,50989,50993,51001,51031,51043,51047,51059,51061,51071,51109,51131,51133,51137,51151,51157,51169,51193,51197,51199,51203,51217,51229,51239,51241,51257,51263,51283,51287,51307,51329,51341,51343,51347,51349,51361,51383,51407,51413,51419,51421,51427,51431,51437,51439,51449,51461,51473,51479,51481,51487,51503,51511,51517,51521,51539,51551,51563,51577,51581,51593,51599,51607,51613,51631,51637,51647,51659,51673,51679,51683,51691,51713,51719,51721,51749,51767,51769,51787,51797,51803,51817,51827,51829,51839,51853,51859,51869,51871,51893,51899,51907,51913,51929,51941,51949,51971,51973,51977,51991,52009,52021,52027,52051,52057,52067,52069,52081,52103,52121,52127,52147,52153,52163,52177,52181,52183,52189,52201,52223,52237,52249,52253,52259,52267,52289,52291,52301,52313,52321,52361,52363,52369,52379,52387,52391,52433,52453,52457,52489,52501,52511,52517,52529,52541,52543,52553,52561,52567,52571,52579,52583,52609,52627,52631,52639,52667,52673,52691,52697,52709,52711,52721,52727,52733,52747,52757,52769,52783,52807,52813,52817,52837,52859,52861,52879,52883,52889,52901,52903,52919,52937,52951,52957,52963,52967,52973,52981,52999,53003,53017,53047,53051,53069,53077,53087,53089,53093,53101,53113,53117,53129,53147,53149,53161,53171,53173,53189,53197,53201,53231,53233,53239,53267,53269,53279,53281,53299,53309,53323,53327,53353,53359,53377,53381,53401,53407,53411,53419,53437,53441,53453,53479,53503,53507,53527,53549,53551,53569,53591,53593,53597,53609,53611,53617,53623,53629,53633,53639,53653,53657,53681,53693,53699,53717,53719,53731,53759,53773,53777,53783,53791,53813,53819,53831,53849,53857,53861,53881,53887,53891,53897,53899,53917,53923,53927,53939,53951,53959,53987,53993,54001,54011,54013,54037,54049,54059,54083,54091,54101,54121,54133,54139,54151,54163,54167,54181,54193,54217,54251,54269,54277,54287,54293,54311,54319,54323,54331,54347,54361,54367,54371,54377,54401,54403,54409,54413,54419,54421,54437,54443,54449,54469,54493,54497,54499,54503,54517,54521,54539,54541,54547,54559,54563,54577,54581,54583,54601,54617,54623,54629,54631,54647,54667,54673,54679,54709,54713,54721,54727,54751,54767,54773,54779,54787,54799,54829,54833,54851,54869,54877,54881,54907,54917,54919,54941,54949,54959,54973,54979,54983,55001,55009,55021,55049,55051,55057,55061,55073,55079,55103,55109,55117,55127,55147,55163,55171,55201,55207,55213,55217,55219,55229,55243,55249,55259,55291,55313,55331,55333,55337,55339,55343,55351,55373,55381,55399,55411,55439,55441,55457,55469,55487,55501,55511,55529,55541,55547,55579,55589,55603,55609,55619,55621,55631,55633,55639,55661,55663,55667,55673,55681,55691,55697,55711,55717,55721,55733,55763,55787,55793,55799,55807,55813,55817,55819,55823,55829,55837,55843,55849,55871,55889,55897,55901,55903,55921,55927,55931,55933,55949,55967,55987,55997,56003,56009,56039,56041,56053,56081,56087,56093,56099,56101,56113,56123,56131,56149,56167,56171,56179,56197,56207,56209,56237,56239,56249,56263,56267,56269,56299,56311,56333,56359,56369,56377,56383,56393,56401,56417,56431,56437,56443,56453,56467,56473,56477,56479,56489,56501,56503,56509,56519,56527,56531,56533,56543,56569,56591,56597,56599,56611,56629,56633,56659,56663,56671,56681,56687,56701,56711,56713,56731,56737,56747,56767,56773,56779,56783,56807,56809,56813,56821,56827,56843,56857,56873,56891,56893,56897,56909,56911,56921,56923,56929,56941,56951,56957,56963,56983,56989,56993,56999,57037,57041,57047,57059,57073,57077,57089,57097,57107,57119,57131,57139,57143,57149,57163,57173,57179,57191,57193,57203,57221,57223,57241,57251,57259,57269,57271,57283,57287,57301,57329,57331,57347,57349,57367,57373,57383,57389,57397,57413,57427,57457,57467,57487,57493,57503,57527,57529,57557,57559,57571,57587,57593,57601,57637,57641,57649,57653,57667,57679,57689,57697,57709,57713,57719,57727,57731,57737,57751,57773,57781,57787,57791,57793,57803,57809,57829,57839,57847,57853,57859,57881,57899,57901,57917,57923,57943,57947,57973,57977,57991,58013,58027,58031,58043,58049,58057,58061,58067,58073,58099,58109,58111,58129,58147,58151,58153,58169,58171,58189,58193,58199,58207,58211,58217,58229,58231,58237,58243,58271,58309,58313,58321,58337,58363,58367,58369,58379,58391,58393,58403,58411,58417,58427,58439,58441,58451,58453,58477,58481,58511,58537,58543,58549,58567,58573,58579,58601,58603,58613,58631,58657,58661,58679,58687,58693,58699,58711,58727,58733,58741,58757,58763,58771,58787,58789,58831,58889,58897,58901,58907,58909,58913,58921,58937,58943,58963,58967,58979,58991,58997,59009,59011,59021,59023,59029,59051,59053,59063,59069,59077,59083,59093,59107,59113,59119,59123,59141,59149,59159,59167,59183,59197,59207,59209,59219,59221,59233,59239,59243,59263,59273,59281,59333,59341,59351,59357,59359,59369,59377,59387,59393,59399,59407,59417,59419,59441,59443,59447,59453,59467,59471,59473,59497,59509,59513,59539,59557,59561,59567,59581,59611,59617,59621,59627,59629,59651,59659,59663,59669,59671,59693,59699,59707,59723,59729,59743,59747,59753,59771,59779,59791,59797,59809,59833,59863,59879,59887,59921,59929,59951,59957,59971,59981,59999,60013,60017,60029,60037,60041,60077,60083,60089,60091,60101,60103,60107,60127,60133,60139,60149,60161,60167,60169,60209,60217,60223,60251,60257,60259,60271,60289,60293,60317,60331,60337,60343,60353,60373,60383,60397,60413,60427,60443,60449,60457,60493,60497,60509,60521,60527,60539,60589,60601,60607,60611,60617,60623,60631,60637,60647,60649,60659,60661,60679,60689,60703,60719,60727,60733,60737,60757,60761,60763,60773,60779,60793,60811,60821,60859,60869,60887,60889,60899,60901,60913,60917,60919,60923,60937,60943,60953,60961,61001,61007,61027,61031,61043,61051,61057,61091,61099,61121,61129,61141,61151,61153,61169,61211,61223,61231,61253,61261,61283,61291,61297,61331,61333,61339,61343,61357,61363,61379,61381,61403,61409,61417,61441,61463,61469,61471,61483,61487,61493,61507,61511,61519,61543,61547,61553,61559,61561,61583,61603,61609,61613,61627,61631,61637,61643,61651,61657,61667,61673,61681,61687,61703,61717,61723,61729,61751,61757,61781,61813,61819,61837,61843,61861,61871,61879,61909,61927,61933,61949,61961,61967,61979,61981,61987,61991,62003,62011,62017,62039,62047,62053,62057,62071,62081,62099,62119,62129,62131,62137,62141,62143,62171,62189,62191,62201,62207,62213,62219,62233,62273,62297,62299,62303,62311,62323,62327,62347,62351,62383,62401,62417,62423,62459,62467,62473,62477,62483,62497,62501,62507,62533,62539,62549,62563,62581,62591,62597,62603,62617,62627,62633,62639,62653,62659,62683,62687,62701,62723,62731,62743,62753,62761,62773,62791,62801,62819,62827,62851,62861,62869,62873,62897,62903,62921,62927,62929,62939,62969,62971,62981,62983,62987,62989,63029,63031,63059,63067,63073,63079,63097,63103,63113,63127,63131,63149,63179,63197,63199,63211,63241,63247,63277,63281,63299,63311,63313,63317,63331,63337,63347,63353,63361,63367,63377,63389,63391,63397,63409,63419,63421,63439,63443,63463,63467,63473,63487,63493,63499,63521,63527,63533,63541,63559,63577,63587,63589,63599,63601,63607,63611,63617,63629,63647,63649,63659,63667,63671,63689,63691,63697,63703,63709,63719,63727,63737,63743,63761,63773,63781,63793,63799,63803,63809,63823,63839,63841,63853,63857,63863,63901,63907,63913,63929,63949,63977,63997,64007,64013,64019,64033,64037,64063,64067,64081,64091,64109,64123,64151,64153,64157,64171,64187,64189,64217,64223,64231,64237,64271,64279,64283,64301,64303,64319,64327,64333,64373,64381,64399,64403,64433,64439,64451,64453,64483,64489,64499,64513,64553,64567,64577,64579,64591,64601,64609,64613,64621,64627,64633,64661,64663,64667,64679,64693,64709,64717,64747,64763,64781,64783,64793,64811,64817,64849,64853,64871,64877,64879,64891,64901,64919,64921,64927,64937,64951,64969,64997,65003,65011,65027,65029,65033,65053,65063,65071,65089,65099,65101,65111,65119,65123,65129,65141,65147,65167,65171,65173,65179,65183,65203,65213,65239,65257,65267,65269,65287,65293,65309,65323,65327,65353,65357,65371,65381,65393,65407,65413,65419,65423,65437,65447,65449,65479,65497,65519,65521,65537,65539,65543,65551,65557,65563,65579,65581,65587,65599,65609,65617,65629,65633,65647,65651,65657,65677,65687,65699,65701,65707,65713,65717,65719,65729,65731,65761,65777,65789,65809,65827,65831,65837,65839,65843,65851,65867,65881,65899,65921,65927,65929,65951,65957,65963,65981,65983,65993,66029,66037,66041,66047,66067,66071,66083,66089,66103,66107,66109,66137,66161,66169,66173,66179,66191,66221,66239,66271,66293,66301,66337,66343,66347,66359,66361,66373,66377,66383,66403,66413,66431,66449,66457,66463,66467,66491,66499,66509,66523,66529,66533,66541,66553,66569,66571,66587,66593,66601,66617,66629,66643,66653,66683,66697,66701,66713,66721,66733,66739,66749,66751,66763,66791,66797,66809,66821,66841,66851,66853,66863,66877,66883,66889,66919,66923,66931,66943,66947,66949,66959,66973,66977,67003,67021,67033,67043,67049,67057,67061,67073,67079,67103,67121,67129,67139,67141,67153,67157,67169,67181,67187,67189,67211,67213,67217,67219,67231,67247,67261,67271,67273,67289,67307,67339,67343,67349,67369,67391,67399,67409,67411,67421,67427,67429,67433,67447,67453,67477,67481,67489,67493,67499,67511,67523,67531,67537,67547,67559,67567,67577,67579,67589,67601,67607,67619,67631,67651,67679,67699,67709,67723,67733,67741,67751,67757,67759,67763,67777,67783,67789,67801,67807,67819,67829,67843,67853,67867,67883,67891,67901,67927,67931,67933,67939,67943,67957,67961,67967,67979,67987,67993,68023,68041,68053,68059,68071,68087,68099,68111,68113,68141,68147,68161,68171,68207,68209,68213,68219,68227,68239,68261,68279,68281,68311,68329,68351,68371,68389,68399,68437,68443,68447,68449,68473,68477,68483,68489,68491,68501,68507,68521,68531,68539,68543,68567,68581,68597,68611,68633,68639,68659,68669,68683,68687,68699,68711,68713,68729,68737,68743,68749,68767,68771,68777,68791,68813,68819,68821,68863,68879,68881,68891,68897,68899,68903,68909,68917,68927,68947,68963,68993,69001,69011,69019,69029,69031,69061,69067,69073,69109,69119,69127,69143,69149,69151,69163,69191,69193,69197,69203,69221,69233,69239,69247,69257,69259,69263,69313,69317,69337,69341,69371,69379,69383,69389,69401,69403,69427,69431,69439,69457,69463,69467,69473,69481,69491,69493,69497,69499,69539,69557,69593,69623,69653,69661,69677,69691,69697,69709,69737,69739,69761,69763,69767,69779,69809,69821,69827,69829,69833,69847,69857,69859,69877,69899,69911,69929,69931,69941,69959,69991,69997,70001,70003,70009,70019,70039,70051,70061,70067,70079,70099,70111,70117,70121,70123,70139,70141,70157,70163,70177,70181,70183,70199,70201,70207,70223,70229,70237,70241,70249,70271,70289,70297,70309,70313,70321,70327,70351,70373,70379,70381,70393,70423,70429,70439,70451,70457,70459,70481,70487,70489,70501,70507,70529,70537,70549,70571,70573,70583,70589,70607,70619,70621,70627,70639,70657,70663,70667,70687,70709,70717,70729,70753,70769,70783,70793,70823,70841,70843,70849,70853,70867,70877,70879,70891,70901,70913,70919,70921,70937,70949,70951,70957,70969,70979,70981,70991,70997,70999,71011,71023,71039,71059,71069,71081,71089,71119,71129,71143,71147,71153,71161,71167,71171,71191,71209,71233,71237,71249,71257,71261,71263,71287,71293,71317,71327,71329,71333,71339,71341,71347,71353,71359,71363,71387,71389,71399,71411,71413,71419,71429,71437,71443,71453,71471,71473,71479,71483,71503,71527,71537,71549,71551,71563,71569,71593,71597,71633,71647,71663,71671,71693,71699,71707,71711,71713,71719,71741,71761,71777,71789,71807,71809,71821,71837,71843,71849,71861,71867,71879,71881,71887,71899,71909,71917,71933,71941,71947,71963,71971,71983,71987,71993,71999,72019,72031,72043,72047,72053,72073,72077,72089,72091,72101,72103,72109,72139,72161,72167,72169,72173,72211,72221,72223,72227,72229,72251,72253,72269,72271,72277,72287,72307,72313,72337,72341,72353,72367,72379,72383,72421,72431,72461,72467,72469,72481,72493,72497,72503,72533,72547,72551,72559,72577,72613,72617,72623,72643,72647,72649,72661,72671,72673,72679,72689,72701,72707,72719,72727,72733,72739,72763,72767,72797,72817,72823,72859,72869,72871,72883,72889,72893,72901,72907,72911,72923,72931,72937,72949,72953,72959,72973,72977,72997,73009,73013,73019,73037,73039,73043,73061,73063,73079,73091,73121,73127,73133,73141,73181,73189,73237,73243,73259,73277,73291,73303,73309,73327,73331,73351,73361,73363,73369,73379,73387,73417,73421,73433,73453,73459,73471,73477,73483,73517,73523,73529,73547,73553,73561,73571,73583,73589,73597,73607,73609,73613,73637,73643,73651,73673,73679,73681,73693,73699,73709,73721,73727,73751,73757,73771,73783,73819,73823,73847,73849,73859,73867,73877,73883,73897,73907,73939,73943,73951,73961,73973,73999,74017,74021,74027,74047,74051,74071,74077,74093,74099,74101,74131,74143,74149,74159,74161,74167,74177,74189,74197,74201,74203,74209,74219,74231,74257,74279,74287,74293,74297,74311,74317,74323,74353,74357,74363,74377,74381,74383,74411,74413,74419,74441,74449,74453,74471,74489,74507,74509,74521,74527,74531,74551,74561,74567,74573,74587,74597,74609,74611,74623,74653,74687,74699,74707,74713,74717,74719,74729,74731,74747,74759,74761,74771,74779,74797,74821,74827,74831,74843,74857,74861,74869,74873,74887,74891,74897,74903,74923,74929,74933,74941,74959,75011,75013,75017,75029,75037,75041,75079,75083,75109,75133,75149,75161,75167,75169,75181,75193,75209,75211,75217,75223,75227,75239,75253,75269,75277,75289,75307,75323,75329,75337,75347,75353,75367,75377,75389,75391,75401,75403,75407,75431,75437,75479,75503,75511,75521,75527,75533,75539,75541,75553,75557,75571,75577,75583,75611,75617,75619,75629,75641,75653,75659,75679,75683,75689,75703,75707,75709,75721,75731,75743,75767,75773,75781,75787,75793,75797,75821,75833,75853,75869,75883,75913,75931,75937,75941,75967,75979,75983,75989,75991,75997,76001,76003,76031,76039,76079,76081,76091,76099,76103,76123,76129,76147,76157,76159,76163,76207,76213,76231,76243,76249,76253,76259,76261,76283,76289,76303,76333,76343,76367,76369,76379,76387,76403,76421,76423,76441,76463,76471,76481,76487,76493,76507,76511,76519,76537,76541,76543,76561,76579,76597,76603,76607,76631,76649,76651,76667,76673,76679,76697,76717,76733,76753,76757,76771,76777,76781,76801,76819,76829,76831,76837,76847,76871,76873,76883,76907,76913,76919,76943,76949,76961,76963,76991,77003,77017,77023,77029,77041,77047,77069,77081,77093,77101,77137,77141,77153,77167,77171,77191,77201,77213,77237,77239,77243,77249,77261,77263,77267,77269,77279,77291,77317,77323,77339,77347,77351,77359,77369,77377,77383,77417,77419,77431,77447,77471,77477,77479,77489,77491,77509,77513,77521,77527,77543,77549,77551,77557,77563,77569,77573,77587,77591,77611,77617,77621,77641,77647,77659,77681,77687,77689,77699,77711,77713,77719,77723,77731,77743,77747,77761,77773,77783,77797,77801,77813,77839,77849,77863,77867,77893,77899,77929,77933,77951,77969,77977,77983,77999,78007,78017,78031,78041,78049,78059,78079,78101,78121,78137,78139,78157,78163,78167,78173,78179,78191,78193,78203,78229,78233,78241,78259,78277,78283,78301,78307,78311,78317,78341,78347,78367,78401,78427,78437,78439,78467,78479,78487,78497,78509,78511,78517,78539,78541,78553,78569,78571,78577,78583,78593,78607,78623,78643,78649,78653,78691,78697,78707,78713,78721,78737,78779,78781,78787,78791,78797,78803,78809,78823,78839,78853,78857,78877,78887,78889,78893,78901,78919,78929,78941,78977,78979,78989,79031,79039,79043,79063,79087,79103,79111,79133,79139,79147,79151,79153,79159,79181,79187,79193,79201,79229,79231,79241,79259,79273,79279,79283,79301,79309,79319,79333,79337,79349,79357,79367,79379,79393,79397,79399,79411,79423,79427,79433,79451,79481,79493,79531,79537,79549,79559,79561,79579,79589,79601,79609,79613,79621,79627,79631,79633,79657,79669,79687,79691,79693,79697,79699,79757,79769,79777,79801,79811,79813,79817,79823,79829,79841,79843,79847,79861,79867,79873,79889,79901,79903,79907,79939,79943,79967,79973,79979,79987,79997,79999,80021,80039,80051,80071,80077,80107,80111,80141,80147,80149,80153,80167,80173,80177,80191,80207,80209,80221,80231,80233,80239,80251,80263,80273,80279,80287,80309,80317,80329,80341,80347,80363,80369,80387,80407,80429,80447,80449,80471,80473,80489,80491,80513,80527,80537,80557,80567,80599,80603,80611,80621,80627,80629,80651,80657,80669,80671,80677,80681,80683,80687,80701,80713,80737,80747,80749,80761,80777,80779,80783,80789,80803,80809,80819,80831,80833,80849,80863,80897,80909,80911,80917,80923,80929,80933,80953,80963,80989,81001,81013,81017,81019,81023,81031,81041,81043,81047,81049,81071,81077,81083,81097,81101,81119,81131,81157,81163,81173,81181,81197,81199,81203,81223,81233,81239,81281,81283,81293,81299,81307,81331,81343,81349,81353,81359,81371,81373,81401,81409,81421,81439,81457,81463,81509,81517,81527,81533,81547,81551,81553,81559,81563,81569,81611,81619,81629,81637,81647,81649,81667,81671,81677,81689,81701,81703,81707,81727,81737,81749,81761,81769,81773,81799,81817,81839,81847,81853,81869,81883,81899,81901,81919,81929,81931,81937,81943,81953,81967,81971,81973,82003,82007,82009,82013,82021,82031,82037,82039,82051,82067,82073,82129,82139,82141,82153,82163,82171,82183,82189,82193,82207,82217,82219,82223,82231,82237,82241,82261,82267,82279,82301,82307,82339,82349,82351,82361,82373,82387,82393,82421,82457,82463,82469,82471,82483,82487,82493,82499,82507,82529,82531,82549,82559,82561,82567,82571,82591,82601,82609,82613,82619,82633,82651,82657,82699,82721,82723,82727,82729,82757,82759,82763,82781,82787,82793,82799,82811,82813,82837,82847,82883,82889,82891,82903,82913,82939,82963,82981,82997,83003,83009,83023,83047,83059,83063,83071,83077,83089,83093,83101,83117,83137,83177,83203,83207,83219,83221,83227,83231,83233,83243,83257,83267,83269,83273,83299,83311,83339,83341,83357,83383,83389,83399,83401,83407,83417,83423,83431,83437,83443,83449,83459,83471,83477,83497,83537,83557,83561,83563,83579,83591,83597,83609,83617,83621,83639,83641,83653,83663,83689,83701,83717,83719,83737,83761,83773,83777,83791,83813,83833,83843,83857,83869,83873,83891,83903,83911,83921,83933,83939,83969,83983,83987,84011,84017,84047,84053,84059,84061,84067,84089,84121,84127,84131,84137,84143,84163,84179,84181,84191,84199,84211,84221,84223,84229,84239,84247,84263,84299,84307,84313,84317,84319,84347,84349,84377,84389,84391,84401,84407,84421,84431,84437,84443,84449,84457,84463,84467,84481,84499,84503,84509,84521,84523,84533,84551,84559,84589,84629,84631,84649,84653,84659,84673,84691,84697,84701,84713,84719,84731,84737,84751,84761,84787,84793,84809,84811,84827,84857,84859,84869,84871,84913,84919,84947,84961,84967,84977,84979,84991,85009,85021,85027,85037,85049,85061,85081,85087,85091,85093,85103,85109,85121,85133,85147,85159,85193,85199,85201,85213,85223,85229,85237,85243,85247,85259,85297,85303,85313,85331,85333,85361,85363,85369,85381,85411,85427,85429,85439,85447,85451,85453,85469,85487,85513,85517,85523,85531,85549,85571,85577,85597,85601,85607,85619,85621,85627,85639,85643,85661,85667,85669,85691,85703,85711,85717,85733,85751,85781,85793,85817,85819,85829,85831,85837,85843,85847,85853,85889,85903,85909,85931,85933,85991,85999,86011,86017,86027,86029,86069,86077,86083,86111,86113,86117,86131,86137,86143,86161,86171,86179,86183,86197,86201,86209,86239,86243,86249,86257,86263,86269,86287,86291,86293,86297,86311,86323,86341,86351,86353,86357,86369,86371,86381,86389,86399,86413,86423,86441,86453,86461,86467,86477,86491,86501,86509,86531,86533,86539,86561,86573,86579,86587,86599,86627,86629,86677,86689,86693,86711,86719,86729,86743,86753,86767,86771,86783,86813,86837,86843,86851,86857,86861,86869,86923,86927,86929,86939,86951,86959,86969,86981,86993,87011,87013,87037,87041,87049,87071,87083,87103,87107,87119,87121,87133,87149,87151,87179,87181,87187,87211,87221,87223,87251,87253,87257,87277,87281,87293,87299,87313,87317,87323,87337,87359,87383,87403,87407,87421,87427,87433,87443,87473,87481,87491,87509,87511,87517,87523,87539,87541,87547,87553,87557,87559,87583,87587,87589,87613,87623,87629,87631,87641,87643,87649,87671,87679,87683,87691,87697,87701,87719,87721,87739,87743,87751,87767,87793,87797,87803,87811,87833,87853,87869,87877,87881,87887,87911,87917,87931,87943,87959,87961,87973,87977,87991,88001,88003,88007,88019,88037,88069,88079,88093,88117,88129,88169,88177,88211,88223,88237,88241,88259,88261,88289,88301,88321,88327,88337,88339,88379,88397,88411,88423,88427,88463,88469,88471,88493,88499,88513,88523,88547,88589,88591,88607,88609,88643,88651,88657,88661,88663,88667,88681,88721,88729,88741,88747,88771,88789,88793,88799,88801,88807,88811,88813,88817,88819,88843,88853,88861,88867,88873,88883,88897,88903,88919,88937,88951,88969,88993,88997,89003,89009,89017,89021,89041,89051,89057,89069,89071,89083,89087,89101,89107,89113,89119,89123,89137,89153,89189,89203,89209,89213,89227,89231,89237,89261,89269,89273,89293,89303,89317,89329,89363,89371,89381,89387,89393,89399,89413,89417,89431,89443,89449,89459,89477,89491,89501,89513,89519,89521,89527,89533,89561,89563,89567,89591,89597,89599,89603,89611,89627,89633,89653,89657,89659,89669,89671,89681,89689,89753,89759,89767,89779,89783,89797,89809,89819,89821,89833,89839,89849,89867,89891,89897,89899,89909,89917,89923,89939,89959,89963,89977,89983,89989,90001,90007,90011,90017,90019,90023,90031,90053,90059,90067,90071,90073,90089,90107,90121,90127,90149,90163,90173,90187,90191,90197,90199,90203,90217,90227,90239,90247,90263,90271,90281,90289,90313,90353,90359,90371,90373,90379,90397,90401,90403,90407,90437,90439,90469,90473,90481,90499,90511,90523,90527,90529,90533,90547,90583,90599,90617,90619,90631,90641,90647,90659,90677,90679,90697,90703,90709,90731,90749,90787,90793,90803,90821,90823,90833,90841,90847,90863,90887,90901,90907,90911,90917,90931,90947,90971,90977,90989,90997,91009,91019,91033,91079,91081,91097,91099,91121,91127,91129,91139,91141,91151,91153,91159,91163,91183,91193,91199,91229,91237,91243,91249,91253,91283,91291,91297,91303,91309,91331,91367,91369,91373,91381,91387,91393,91397,91411,91423,91433,91453,91457,91459,91463,91493,91499,91513,91529,91541,91571,91573,91577,91583,91591,91621,91631,91639,91673,91691,91703,91711,91733,91753,91757,91771,91781,91801,91807,91811,91813,91823,91837,91841,91867,91873,91909,91921,91939,91943,91951,91957,91961,91967,91969,91997,92003,92009,92033,92041,92051,92077,92083,92107,92111,92119,92143,92153,92173,92177,92179,92189,92203,92219,92221,92227,92233,92237,92243,92251,92269,92297,92311,92317,92333,92347,92353,92357,92363,92369,92377,92381,92383,92387,92399,92401,92413,92419,92431,92459,92461,92467,92479,92489,92503,92507,92551,92557,92567,92569,92581,92593,92623,92627,92639,92641,92647,92657,92669,92671,92681,92683,92693,92699,92707,92717,92723,92737,92753,92761,92767,92779,92789,92791,92801,92809,92821,92831,92849,92857,92861,92863,92867,92893,92899,92921,92927,92941,92951,92957,92959,92987,92993,93001,93047,93053,93059,93077,93083,93089,93097,93103,93113,93131,93133,93139,93151,93169,93179,93187,93199,93229,93239,93241,93251,93253,93257,93263,93281,93283,93287,93307,93319,93323,93329,93337,93371,93377,93383,93407,93419,93427,93463,93479,93481,93487,93491,93493,93497,93503,93523,93529,93553,93557,93559,93563,93581,93601,93607,93629,93637,93683,93701,93703,93719,93739,93761,93763,93787,93809,93811,93827,93851,93871,93887,93889,93893,93901,93911,93913,93923,93937,93941,93949,93967,93971,93979,93983,93997,94007,94009,94033,94049,94057,94063,94079,94099,94109,94111,94117,94121,94151,94153,94169,94201,94207,94219,94229,94253,94261,94273,94291,94307,94309,94321,94327,94331,94343,94349,94351,94379,94397,94399,94421,94427,94433,94439,94441,94447,94463,94477,94483,94513,94529,94531,94541,94543,94547,94559,94561,94573,94583,94597,94603,94613,94621,94649,94651,94687,94693,94709,94723,94727,94747,94771,94777,94781,94789,94793,94811,94819,94823,94837,94841,94847,94849,94873,94889,94903,94907,94933,94949,94951,94961,94993,94999,95003,95009,95021,95027,95063,95071,95083,95087,95089,95093,95101,95107,95111,95131,95143,95153,95177,95189,95191,95203,95213,95219,95231,95233,95239,95257,95261,95267,95273,95279,95287,95311,95317,95327,95339,95369,95383,95393,95401,95413,95419,95429,95441,95443,95461,95467,95471,95479,95483,95507,95527,95531,95539,95549,95561,95569,95581,95597,95603,95617,95621,95629,95633,95651,95701,95707,95713,95717,95723,95731,95737,95747,95773,95783,95789,95791,95801,95803,95813,95819,95857,95869,95873,95881,95891,95911,95917,95923,95929,95947,95957,95959,95971,95987,95989,96001,96013,96017,96043,96053,96059,96079,96097,96137,96149,96157,96167,96179,96181,96199,96211,96221,96223,96233,96259,96263,96269,96281,96289,96293,96323,96329,96331,96337,96353,96377,96401,96419,96431,96443,96451,96457,96461,96469,96479,96487,96493,96497,96517,96527,96553,96557,96581,96587,96589,96601,96643,96661,96667,96671,96697,96703,96731,96737,96739,96749,96757,96763,96769,96779,96787,96797,96799,96821,96823,96827,96847,96851,96857,96893,96907,96911,96931,96953,96959,96973,96979,96989,96997,97001,97003,97007,97021,97039,97073,97081,97103,97117,97127,97151,97157,97159,97169,97171,97177,97187,97213,97231,97241,97259,97283,97301,97303,97327,97367,97369,97373,97379,97381,97387,97397,97423,97429,97441,97453,97459,97463,97499,97501,97511,97523,97547,97549,97553,97561,97571,97577,97579,97583,97607,97609,97613,97649,97651,97673,97687,97711,97729,97771,97777,97787,97789,97813,97829,97841,97843,97847,97849,97859,97861,97871,97879,97883,97919,97927,97931,97943,97961,97967,97973,97987,98009,98011,98017,98041,98047,98057,98081,98101,98123,98129,98143,98179,98207,98213,98221,98227,98251,98257,98269,98297,98299,98317,98321,98323,98327,98347,98369,98377,98387,98389,98407,98411,98419,98429,98443,98453,98459,98467,98473,98479,98491,98507,98519,98533,98543,98561,98563,98573,98597,98621,98627,98639,98641,98663,98669,98689,98711,98713,98717,98729,98731,98737,98773,98779,98801,98807,98809,98837,98849,98867,98869,98873,98887,98893,98897,98899,98909,98911,98927,98929,98939,98947,98953,98963,98981,98993,98999,99013,99017,99023,99041,99053,99079,99083,99089,99103,99109,99119,99131,99133,99137,99139,99149,99173,99181,99191,99223,99233,99241,99251,99257,99259,99277,99289,99317,99347,99349,99367,99371,99377,99391,99397,99401,99409,99431,99439,99469,99487,99497,99523,99527,99529,99551,99559,99563,99571,99577,99581,99607,99611,99623,99643,99661,99667,99679,99689,99707,99709,99713,99719,99721,99733,99761,99767,99787,99793,99809,99817,99823,99829,99833,99839,99859,99871,99877,99881,99901,99907,99923,99929,99961,99971,99989,99991,100003,100019,100043,100049,100057,100069,100103,100109,100129,100151,100153,100169,100183,100189,100193,100207,100213,100237,100267,100271,100279,100291,100297,100313,100333,100343,100357,100361,100363,100379,100391,100393,100403,100411,100417,100447,100459,100469,100483,100493,100501,100511,100517,100519,100523,100537,100547,100549,100559,100591,100609,100613,100621,100649,100669,100673,100693,100699,100703,100733,100741,100747,100769,100787,100799,100801,100811,100823,100829,100847,100853,100907,100913,100927,100931,100937,100943,100957,100981,100987,100999,101009,101021,101027,101051,101063,101081,101089,101107,101111,101113,101117,101119,101141,101149,101159,101161,101173,101183,101197,101203,101207,101209,101221,101267,101273,101279,101281,101287,101293,101323,101333,101341,101347,101359,101363,101377,101383,101399,101411,101419,101429,101449,101467,101477,101483,101489,101501,101503,101513,101527,101531,101533,101537,101561,101573,101581,101599,101603,101611,101627,101641,101653,101663,101681,101693,101701,101719,101723,101737,101741,101747,101749,101771,101789,101797,101807,101833,101837,101839,101863,101869,101873,101879,101891,101917,101921,101929,101939,101957,101963,101977,101987,101999,102001,102013,102019,102023,102031,102043,102059,102061,102071,102077,102079,102101,102103,102107,102121,102139,102149,102161,102181,102191,102197,102199,102203,102217,102229,102233,102241,102251,102253,102259,102293,102299,102301,102317,102329,102337,102359,102367,102397,102407,102409,102433,102437,102451,102461,102481,102497,102499,102503,102523,102533,102539,102547,102551,102559,102563,102587,102593,102607,102611,102643,102647,102653,102667,102673,102677,102679,102701,102761,102763,102769,102793,102797,102811,102829,102841,102859,102871,102877,102881,102911,102913,102929,102931,102953,102967,102983,103001,103007,103043,103049,103067,103069,103079,103087,103091,103093,103099,103123,103141,103171,103177,103183,103217,103231,103237,103289,103291,103307,103319,103333,103349,103357,103387,103391,103393,103399,103409,103421,103423,103451,103457,103471,103483,103511,103529,103549,103553,103561,103567,103573,103577,103583,103591,103613,103619,103643,103651,103657,103669,103681,103687,103699,103703,103723,103769,103787,103801,103811,103813,103837,103841,103843,103867,103889,103903,103913,103919,103951,103963,103967,103969,103979,103981,103991,103993,103997,104003,104009,104021,104033,104047,104053,104059,104087,104089,104107,104113,104119,104123,104147,104149,104161,104173,104179,104183,104207,104231,104233,104239,104243,104281,104287,104297,104309,104311,104323,104327,104347,104369,104381,104383,104393,104399,104417,104459,104471,104473,104479,104491,104513,104527,104537,104543,104549,104551,104561,104579,104593,104597,104623,104639,104651,104659,104677,104681,104683,104693,104701,104707,104711,104717,104723,104729]
}).call(this)},{}],65:[function(require,module,exports){(function(){var BigInteger,Lock,MRF,MediumRandomFountain,SRF,StrongRandomFountain,WordArray,iced,native_rng,prng,__iced_k,__iced_k_noop,_mrf,_ref,_srf;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},BigInteger=require("bn").BigInteger,_ref=require("triplesec"),WordArray=_ref.WordArray,prng=_ref.prng,native_rng=prng.native_rng,Lock=require("./lock").Lock,MediumRandomFountain=function(){function MediumRandomFountain(){}return MediumRandomFountain.prototype.nextBytes=function(v){var b,c,i,_i,_len,_results;for(b=native_rng(v.length),_results=[],i=_i=0,_len=b.length;_len>_i;i=++_i)c=b[i],_results.push(v[i]=c);return _results},MediumRandomFountain.prototype.random_word=function(){return native_rng(4).readUInt32BE(0)},MediumRandomFountain.prototype.random_zn=function(n){for(var i;;)if(i=BigInteger.random_nbit(n.bitLength(),this),i.compareTo(BigInteger.ONE)>0&&i.compareTo(n)<0)return i},MediumRandomFountain}(),_mrf=null,MRF=function(){return null==_mrf&&(_mrf=new MediumRandomFountain),_mrf},StrongRandomFountain=function(){function StrongRandomFountain(){this.buf=null,this.lock=new Lock}return StrongRandomFountain.prototype.random_word=function(cb){var wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_word"}),prng.generate(4,__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:49})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa.to_buffer().readUInt32BE(0))}}(this))},StrongRandomFountain.prototype.random_double=function(cb){var wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_double"}),prng.generate(8,__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:55})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa.to_buffer().readDoubleBE(0))}}(this))},StrongRandomFountain.prototype.rand_0_1=function(cb){var ret,w1,w2,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.rand_0_1"}),_this.random_word(__iced_deferrals.defer({assign_fn:function(){return function(){return w1=arguments[0]}}(),lineno:61})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.rand_0_1"}),_this.random_word(__iced_deferrals.defer({assign_fn:function(){return function(){return w2=arguments[0]}}(),lineno:62})),__iced_deferrals._fulfill()}(function(){return ret=w1*Math.pow(2,-32)+w2*Math.pow(2,-64),cb(ret)})}}(this))},StrongRandomFountain.prototype.random_zn=function(n,cb){var go,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),go=!0,ret=!1,function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},go?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_zn"}),_this.random_nbit(n.bitLength(),__iced_deferrals.defer({assign_fn:function(){return function(){return ret=arguments[0]}}(),lineno:72})),__iced_deferrals._fulfill()}(function(){return _next(go=ret.compareTo(BigInteger.ONE)<=0||ret.compareTo(n)>=0)}):_break()})(__iced_k)}}(this)(function(){return function(){return cb(ret)}}(this))},StrongRandomFountain.prototype.nextBytes=function(v){var i,_i,_ref1,_results;for(_results=[],i=_i=0,_ref1=v.length;_ref1>=0?_ref1>_i:_i>_ref1;i=_ref1>=0?++_i:--_i)_results.push(v[i]=this.buf[i]);return _results},StrongRandomFountain.prototype.random_word_array=function(nbytes,cb){var b,d,max_pull,n,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),ret=new WordArray,max_pull=512,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_word_array"}),_this.lock.acquire(__iced_deferrals.defer({lineno:88})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},(d=nbytes-ret.sigBytes)>0?(n=Math.min(max_pull,d),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_word_array"}),prng.generate(n,__iced_deferrals.defer({assign_fn:function(){return function(){return b=arguments[0]}}(),lineno:91})),__iced_deferrals._fulfill()}(function(){return _next(ret=ret.concat(b))})):_break()})(__iced_k)}(function(){return _this.lock.release(),cb(ret)})}}(this))},StrongRandomFountain.prototype.random_bytes=function(nbytes,cb){var tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_bytes"}),_this.random_word_array(nbytes,__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:99})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(tmp.to_buffer())}}(this))},StrongRandomFountain.prototype.random_nbit=function(nbits,cb){var nbytes,ret,tmp,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbytes=(nbits>>3)+1,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_nbit"}),_this.random_bytes(nbytes,__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:106})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/kbpgp/src/rand.iced",funcname:"StrongRandomFountain.random_nbit"}),_this.lock.acquire(__iced_deferrals.defer({lineno:107})),__iced_deferrals._fulfill()}(function(){return _this.buf=tmp,ret=BigInteger.random_nbit(nbits,_this),_this.lock.release(),cb(ret)})}}(this))},StrongRandomFountain}(),_srf=null,SRF=function(){return null==_srf&&(_srf=new StrongRandomFountain),_srf},exports.MRF=MRF,exports.SRF=SRF}).call(this)},{"./lock":28,bn:71,"iced-runtime":118,triplesec:181}],66:[function(require,module,exports){(function(){var IV,WordArray,bufeq_secure,setup,split64,unwrap,wrap;WordArray=require("triplesec").WordArray,bufeq_secure=require("./util").bufeq_secure,IV=WordArray.from_hex("A6A6A6A6A6A6A6A6"),split64=function(wa){return wa.split(wa.words.length>>1)},exports.wrap=wrap=function(_arg){var A,AES,B,C,P,R,cipher,err,i,j,key,plaintext,r,t,_i,_j,_k,_len,_len1,_ref;if(plaintext=_arg.plaintext,key=_arg.key,cipher=_arg.cipher,_ref=setup({input:plaintext,key:key,cipher:cipher}),err=_ref[0],P=_ref[1],AES=_ref[2],null!=err)throw err;for(A=IV,R=P,t=new WordArray([0,0]),j=_i=0;6>_i;j=++_i)for(i=_j=0,_len=R.length;_len>_j;i=++_j)r=R[i],t.words[1]++,B=A.clone().concat(r),AES.encryptBlock(B.words),A=B.slice(0,2),R[i]=B.slice(2,4),A.xor(t,{});for(C=A,_k=0,_len1=R.length;_len1>_k;_k++)r=R[_k],C.concat(r);return C.to_buffer()},setup=function(_arg){var AES,K,P,a,b,cipher,err,input,key,klass;return input=_arg.input,key=_arg.key,cipher=_arg.cipher,P=split64(WordArray.from_buffer(input)),K=WordArray.from_buffer(key),klass=cipher.klass,AES=new klass(K),err=null,(a=cipher.key_size)!==(b=key.length)&&(err=new Error("Bad key, needed "+a+" bytes, but got "+b)),[err,P,AES]},exports.unwrap=unwrap=function(_arg){var A,AES,B,C,P,R,cipher,ciphertext,err,i,j,key,n,r,t,_i,_j,_k,_len,_ref;if(ciphertext=_arg.ciphertext,key=_arg.key,cipher=_arg.cipher,_ref=setup({input:ciphertext,key:key,cipher:cipher}),err=_ref[0],C=_ref[1],AES=_ref[2],n=_ref[3],null!=err)return[err,null];for(A=C[0],R=C.slice(1),t=new WordArray([0,6*R.length]),j=_i=0;6>_i;j=++_i)for(i=_j=R.length-1;_j>=0;i=_j+=-1)r=R[i],A.xor(t,{}),B=A.clone().concat(r),AES.decryptBlock(B.words),A=B.slice(0,2),R[i]=B.slice(2,4),t.words[1]--;if(A.equal(IV)){for(P=new WordArray([]),_k=0,_len=R.length;_len>_k;_k++)r=R[_k],P.concat(r);return[null,P.to_buffer()]}return[new Error("integrity check failure; got bad IV in decryption"),null]}}).call(this)},{"./util":70,triplesec:181}],67:[function(require,module,exports){(function(Buffer){(function(){var ASP,BaseKey,BaseKeyPair,BigInteger,C,K,MRF,Output,Pair,Priv,Pub,SHA512,SRF,bn,bufeq_secure,eme_pkcs1_decode,eme_pkcs1_encode,emsa_pkcs1_decode,emsa_pkcs1_encode,iced,konst,make_esc,naive_is_prime,nbi,nbits,nbv,random_prime,__iced_k,__iced_k_noop,_ref,_ref1,_ref2,_ref3,_ref4,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},_ref=require("./primegen"),naive_is_prime=_ref.naive_is_prime,random_prime=_ref.random_prime,bn=require("./bn"),nbits=bn.nbits,nbv=bn.nbv,nbs=bn.nbs,nbi=bn.nbi,BigInteger=bn.BigInteger,_ref1=require("./util"),bufeq_secure=_ref1.bufeq_secure,ASP=_ref1.ASP,make_esc=require("iced-error").make_esc,konst=require("./const"),C=konst.openpgp,K=konst.kb,SHA512=require("./hash").SHA512,_ref2=require("./pad"),eme_pkcs1_encode=_ref2.eme_pkcs1_encode,eme_pkcs1_decode=_ref2.eme_pkcs1_decode,emsa_pkcs1_decode=_ref2.emsa_pkcs1_decode,emsa_pkcs1_encode=_ref2.emsa_pkcs1_encode,_ref3=require("./rand"),SRF=_ref3.SRF,MRF=_ref3.MRF,_ref4=require("./basekeypair"),BaseKey=_ref4.BaseKey,BaseKeyPair=_ref4.BaseKeyPair,Priv=function(_super){function Priv(_arg){this.p=_arg.p,this.q=_arg.q,this.d=_arg.d,this.dmp1=_arg.dmp1,this.dmq1=_arg.dmq1,this.u=_arg.u,this.pub=_arg.pub}return __extends(Priv,_super),Priv.prototype.decrypt=function(c,cb){var x,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Priv.decrypt"}),_this.mod_pow_d_crt(c,__iced_deferrals.defer({assign_fn:function(){return function(){return x=arguments[0]}}(),lineno:22})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,x)}}(this))},Priv.prototype.sign=function(m,cb){return this.mod_pow_d_crt(m,cb)},Priv.ORDER=["d","p","q","u"],Priv.prototype.ORDER=Priv.ORDER,Priv.prototype.n=function(){return this.p.multiply(this.q)},Priv.prototype.phi=function(){return this.p.subtract(BigInteger.ONE).multiply(this.q.subtract(BigInteger.ONE))},Priv.prototype.lambda=function(){return this.phi.divide(this.p.subtract(BigInteger.ONE).gcd(this.q.subtract(BigInteger.ONE)))},Priv.alloc=function(raw,pub){return BaseKey.alloc(Priv,raw,{pub:pub})},Priv.prototype.mod_pow_d_crt=function(x,cb){var n,r,r_e,r_inv,x_1,xp,xq,y,y_0,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),null==this.dP&&(this.dP=this.d.mod(this.p.subtract(BigInteger.ONE))),null==this.dQ&&(this.dQ=this.d.mod(this.q.subtract(BigInteger.ONE))),null==this.qInv&&(this.qInv=this.q.modInverse(this.p)),n=this.pub.n,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Priv.mod_pow_d_crt"}),SRF().random_zn(n,__iced_deferrals.defer({assign_fn:function(){return function(){return r=arguments[0]}}(),lineno:141})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){for(r_inv=r.modInverse(n),r_e=r.modPow(_this.pub.e,n),x_1=x.multiply(r_e).mod(n),xp=x_1.mod(_this.p).modPow(_this.dP,_this.p),xq=x_1.mod(_this.q).modPow(_this.dQ,_this.q);xp.compareTo(xq)<0;)xp=xp.add(_this.p);return y_0=xp.subtract(xq).multiply(_this.qInv).mod(_this.p).multiply(_this.q).add(xq),y=y_0.multiply(r_inv).mod(n),cb(y)}}(this))},Priv}(BaseKey),Pub=function(_super){function Pub(_arg){this.n=_arg.n,this.e=_arg.e}return __extends(Pub,_super),Pub.type=C.public_key_algorithms.RSA,Pub.prototype.type=Pub.type,Pub.ORDER=["n","e"],Pub.prototype.ORDER=Pub.ORDER,Pub.prototype.encrypt=function(p,cb){return this.mod_pow(p,this.e,cb)},Pub.prototype.verify=function(s,cb){return this.mod_pow(s,this.e,cb)},Pub.prototype.nbits=function(){var _ref5;return null!=(_ref5=this.n)?_ref5.bitLength():void 0},Pub.alloc=function(raw){return BaseKey.alloc(Pub,raw)},Pub.prototype.mod_pow=function(x,d,cb){return cb(x.modPow(d,this.n))},Pub.prototype.validity_check=function(cb){var err;return err=this.n.gcd(this.e).equals(BigInteger.ONE)?this.n.mod(nbv(2)).equals(BigInteger.ONE)?this.e.compareTo(BigInteger.ONE)<=0?new Error("e <= 1"):this.e.bitLength()>32?new Error("e="+this.e+" > 2^32"):null:new Error("n % 2 != 1"):new Error("gcd(n,e) != 1"),cb(err)},Pub}(BaseKey),Pair=function(_super){function Pair(_arg){var priv,pub;priv=_arg.priv,pub=_arg.pub,Pair.__super__.constructor.call(this,{priv:priv,pub:pub})}return __extends(Pair,_super),Pair.type=C.public_key_algorithms.RSA,Pair.prototype.type=Pair.type,Pair.prototype.get_type=function(){return this.type},Pair.klass_name="RSA",Pair.Pub=Pub,Pair.prototype.Pub=Pub,Pair.Priv=Priv,Pair.prototype.Priv=Priv,Pair.parse=function(pub_raw){return BaseKeyPair.parse(Pair,pub_raw)},Pair.alloc=function(_arg){var priv,pub;return pub=_arg.pub,priv=_arg.priv,BaseKeyPair.alloc({pub:pub,priv:priv})},Pair.subkey_algo=function(){return Pair},Pair.prototype.sanity_check=function(cb){var err,x0,x1,x2,y0,y1,y2,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=0===this.priv.n().compareTo(this.pub.n)?null:new Error("pq != n"),function(_this){return function(__iced_k){return null!=err?__iced_k():(x0=MRF().random_zn(_this.pub.n),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.encrypt(x0,__iced_deferrals.defer({assign_fn:function(){return function(){return x1=arguments[0]}}(),lineno:240})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.decrypt(x1,__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],x2=arguments[1]}}(),lineno:241})),__iced_deferrals._fulfill()}(function(){return __iced_k(null==err&&0!==x0.compareTo(x2)?err=new Error("Decrypt/encrypt failed"):void 0)})}))}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():(y0=MRF().random_zn(_this.pub.n),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.sign(y0,__iced_deferrals.defer({assign_fn:function(){return function(){return y1=arguments[0]}}(),lineno:246})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.sanity_check"}),_this.verify(y1,__iced_deferrals.defer({assign_fn:function(){return function(){return y2=arguments[0]}}(),lineno:247})),__iced_deferrals._fulfill()}(function(){return __iced_k(0!==y0.compareTo(y2)?err=new Error("Sign/verify failed"):void 0)})}))}(function(){return cb(err)})}}(this))},Pair.parse_sig=function(slice){var err,n,raw,ret,_ref5;if(_ref5=bn.mpi_from_buffer(slice.peek_rest_to_buffer()),err=_ref5[0],ret=_ref5[1],raw=_ref5[2],n=_ref5[3],null!=err)throw err;return slice.advance(n),ret},Pair.prototype.encrypt=function(p,cb){return this.pub.encrypt(p,cb)},Pair.prototype.decrypt=function(c,cb){return this.priv.decrypt(c,cb)},Pair.prototype.max_value=function(){return this.pub.n},Pair.make=function(_arg){var d,dmp1,dmq1,e,lambda,n,p,p1,phi,priv,pub,q,q1,u;return p=_arg.p,q=_arg.q,e=_arg.e,phi=_arg.phi,p1=_arg.p1,q1=_arg.q1,lambda=_arg.lambda,n=p.multiply(q),d=e.modInverse(lambda),dmp1=d.mod(p1),dmq1=d.mod(q1),u=p.modInverse(q),pub=new Pub({n:n,e:e}),priv=new Priv({p:p,q:q,d:d,dmp1:dmp1,dmq1:dmq1,u:u,pub:pub}),new Pair({priv:priv,pub:pub})},Pair.prototype.to_openpgp=function(){var key;return key=new((new RSA).keyObject),key.n=this.pub.n,key.e=this.pub.e.intValue(),key.ee=this.pub.e,key.d=this.priv.d,key.p=this.priv.p,key.q=this.priv.q,key.dmp1=this.priv.dmp1,key.dmq1=this.priv.dmq1,key.u=this.priv.u,key},Pair.prototype.sign=function(m,cb){return this.priv.sign(m,cb)},Pair.prototype.verify=function(s,cb){return this.pub.verify(s,cb)},Pair.prototype.pad_and_encrypt=function(data,params,cb){var ct,err,m,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.pad_and_encrypt"}),eme_pkcs1_encode(data,_this.pub.n.mpi_byte_length(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],m=arguments[1]}}(),lineno:306})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.pad_and_encrypt"}),_this.encrypt(m,__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:308})),__iced_deferrals._fulfill()}(function(){return __iced_k(ret=_this.export_output({y_mpi:ct}))})}(function(){return cb(err,ret)})}}(this))},Pair.prototype.decrypt_and_unpad=function(ciphertext,params,cb){var b,err,p,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),err=ret=null,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.decrypt_and_unpad"}),_this.decrypt(ciphertext.y(),__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],p=arguments[1]}}(),lineno:318})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _ref5;return null==err&&(b=p.to_padded_octets(_this.pub.n),_ref5=eme_pkcs1_decode(b),err=_ref5[0],ret=_ref5[1]),cb(err,ret)}}(this))},Pair.prototype.pad_and_sign=function(data,_arg,cb){var hashed_data,hasher,m,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),hasher=_arg.hasher,hasher||(hasher=SHA512),hashed_data=hasher(data),m=emsa_pkcs1_encode(hashed_data,this.pub.n.mpi_byte_length(),{hasher:hasher}),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.pad_and_sign"}),_this.sign(m,__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:330})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(null,sig.to_mpi_buffer())}}(this))},Pair.prototype.verify_unpad_and_check_hash=function(_arg,cb){var b,data,err,hash,hasher,hd1,sig,v,___iced_passed_deferral,__iced_deferrals,__iced_k,_ref5;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),sig=_arg.sig,data=_arg.data,hasher=_arg.hasher,hash=_arg.hash,err=null,Buffer.isBuffer(sig)&&(_ref5=bn.mpi_from_buffer(sig),err=_ref5[0],sig=_ref5[1]),function(_this){return function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.verify_unpad_and_check_hash"}),_this.verify(sig,__iced_deferrals.defer({assign_fn:function(){return function(){return v=arguments[0]}}(),lineno:339})),__iced_deferrals._fulfill()}(function(){var _ref6;return b=v.to_padded_octets(_this.pub.n),_ref6=emsa_pkcs1_decode(b,hasher),err=_ref6[0],hd1=_ref6[1],__iced_k(null==err?(hash||(hash=hasher(data)),bufeq_secure(hd1,hash)?void 0:err=new Error("hash mismatch")):void 0)})}}(this)(function(){return function(){return cb(err)}}(this))},Pair.generate=function(_arg,cb){var asp,e,e_orig,esc,go,iters,key,lambda,nbits,p,p1,phi,q,q1,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbits=_arg.nbits,iters=_arg.iters,e=_arg.e,asp=_arg.asp,e||(e=65537),e_orig=e,nbits||(nbits=4096),iters||(iters=10),asp||(asp=new ASP({})),e=nbv(e_orig),esc=make_esc(cb,"generate_rsa_keypair"),go=!0,nbits>>=1,function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},go?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),random_prime({asp:asp.section("p"),e:e,nbits:nbits,iters:iters},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return p=arguments[0]}}(),lineno:363}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),asp.progress({what:"found",p:p},esc(__iced_deferrals.defer({lineno:364}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),random_prime({asp:asp.section("q"),e:e,nbits:nbits,iters:iters},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return q=arguments[0]}}(),lineno:365}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.generate"}),asp.progress({what:"found",q:q},esc(__iced_deferrals.defer({lineno:366}))),__iced_deferrals._fulfill()}(function(){var _ref5;return p.compareTo(q)<=0&&(_ref5=[q,p],p=_ref5[0],q=_ref5[1]),q1=q.subtract(BigInteger.ONE),p1=p.subtract(BigInteger.ONE),phi=p1.multiply(q1),lambda=phi.divide(q1.gcd(p1)),_next(0!==phi.gcd(e).compareTo(BigInteger.ONE)?("function"==typeof progress_hook?progress_hook({what:"unlucky_phi"}):void 0,go=!0):go=!1)})})})}):_break()})(__iced_k)}}(this)(function(){return function(){return key=Pair.make({p:p,q:q,e:e,phi:phi,p1:p1,q1:q1,lambda:lambda}),cb(null,key)}}(this))},Pair.parse_output=function(buf){return Output.parse(buf)},Pair.prototype.export_output=function(args){return new Output(args)},Pair.prototype.validity_check=function(cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Pair.validity_check"}),_this.pub.validity_check(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:391})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err)}}(this))},Pair}(BaseKeyPair),Output=function(){function Output(_arg){this.y_mpi=_arg.y_mpi,this.y_buf=_arg.y_buf}return Output.parse=function(buf){var err,n,raw,ret,_ref5;if(_ref5=bn.mpi_from_buffer(buf),err=_ref5[0],ret=_ref5[1],raw=_ref5[2],n=_ref5[3],null!=err)throw err;if(0!==raw.length)throw new Error("junk at the end of input");return new Output({y_mpi:ret})},Output.prototype.y=function(){return this.y_mpi},Output.prototype.hide=function(_arg,cb){var err,i,key,max,slosh,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,max=_arg.max,slosh=_arg.slosh,max||(max=8192),slosh||(slosh=128),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/rsa.iced",funcname:"Output.hide"}),key.hide({i:_this.y(),max:max,slosh:slosh},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],i=arguments[1]}}(),lineno:417})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return("undefined"==typeof err||null===err)&&(_this.y_mpi=i,_this.y_buf=null),cb(err)}}(this))},Output.prototype.find=function(_arg){var key;return key=_arg.key,this.y_mpi=key.find(this.y_mpi)},Output.prototype.output=function(){return this.y_buf||this.y_mpi.to_mpi_buffer()},Output}(),exports.RSA=exports.Pair=Pair,exports.Output=Output}).call(this)}).call(this,require("buffer").Buffer)},{"./basekeypair":2,"./bn":4,"./const":5,"./hash":14,"./pad":62,"./primegen":63,"./rand":65,"./util":70,buffer:80,"iced-error":115,"iced-runtime":118}],68:[function(require,module,exports){(function(Buffer){(function(){var AES,C,CAST5,SlicerBuffer,WordArray,checksum2,ecc_pkcs5_unpad_data,export_key_pgp,get_cipher,import_key_pgp,triplesec,uint_to_buffer;C=require("./const").openpgp.symmetric_key_algorithms,triplesec=require("triplesec"),AES=triplesec.ciphers.AES,CAST5=require("./openpgp/cast5").CAST5,SlicerBuffer=require("./openpgp/buffer").SlicerBuffer,WordArray=triplesec.WordArray,uint_to_buffer=require("./util").uint_to_buffer,ecc_pkcs5_unpad_data=require("./pad").ecc_pkcs5_unpad_data,exports.get_cipher=get_cipher=function(n){var ret;return n||(n=C.AES256),ret=function(){switch(n){case C.AES128:return{klass:AES,key_size:16};case C.AES192:return{klass:AES,key_size:24};case C.AES256:return{klass:AES,key_size:32};case C.CAST5:return{klass:CAST5,key_size:CAST5.keySize};default:throw new Error("unknown cipher: "+n)}}(),ret.type=n,ret},exports.checksum2=checksum2=function(buf){var i,res,_i,_ref;for(res=0,i=_i=0,_ref=buf.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)res=res+buf.readUInt8(i)&65535;return res},exports.import_key_pgp=import_key_pgp=function(msg,pkcs5_padding){var checksum,cipher,err,key,ret,sb;if(null==pkcs5_padding&&(pkcs5_padding=!1),sb=new SlicerBuffer(msg),ret=err=null,cipher=get_cipher(sb.read_uint8()),key=sb.read_buffer(cipher.key_size),checksum=sb.read_uint16(),err=checksum2(key)!==checksum?new Error("Checksum mismatch"):pkcs5_padding?ecc_pkcs5_unpad_data(msg,sb.offset()):sb.rem()?new Error("Junk at the end of input"):null,null!=err)throw err;return new cipher.klass(WordArray.from_buffer(key))},exports.export_key_pgp=export_key_pgp=function(algo_id,key){var csum;return csum=checksum2(key),Buffer.concat([new Buffer([algo_id]),key,uint_to_buffer(16,csum)])}}).call(this)}).call(this,require("buffer").Buffer)},{"./const":5,"./openpgp/buffer":35,"./openpgp/cast5":37,"./pad":62,"./util":70,buffer:80,triplesec:181}],69:[function(require,module,exports){(function(){var iced,kb,pgp,__iced_k,__iced_k_noop;iced=require("iced-runtime").iced,__iced_k=__iced_k_noop=function(){},pgp=require("./openpgp/keymanager"),kb=require("./keybase/hilev"),exports.import_armored_public=function(_arg,cb){var armored,asp,err,ret,warnings,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),armored=_arg.armored,asp=_arg.asp,function(){return function(__iced_k){armored.match(/^-{5}BEGIN PGP PUBLIC KEY BLOCK-{5}/)?!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ukm.iced",funcname:"import_armored_public"}),pgp.KeyManager.import_from_armored_pgp({armored:armored,asp:asp},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1],warnings=arguments[2]}}(),lineno:10})),__iced_deferrals._fulfill()}(__iced_k):!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/kbpgp/src/ukm.iced",funcname:"import_armored_public"}),kb.KeyManager.import_public({hex:armored},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:12})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb(err,ret)}}(this))}}).call(this)},{"./keybase/hilev":17,"./openpgp/keymanager":42,"iced-runtime":118}],70:[function(require,module,exports){(function(){var k,m,mods,v,_i,_len;for(mods=[require("pgp-utils").util,require("./openpgp/util"),require("./keybase/util")],_i=0,_len=mods.length;_len>_i;_i++){m=mods[_i];for(k in m)v=m[k],exports[k]=v}}).call(this)},{"./keybase/util":23,"./openpgp/util":60,"pgp-utils":163}],71:[function(require,module,exports){var engine=require("./lib/wrap").engine;syms=require(engine?"./lib/fast":"./lib/pure");for(var k in syms)exports[k]=syms[k]},{"./lib/fast":72,"./lib/pure":73,"./lib/wrap":74}],72:[function(require,module){(function(Buffer){!function(){function BigInteger(a,b){if(!(this instanceof BigInteger))return new BigInteger(a,b);if("string"==typeof a)a=a.replace(/\s+/g,""),b||(b=10),this._v=bigint(a,b);else if("number"==typeof a)this._v=bigint(a);else if("object"==typeof a&&Array.isArray(a))this._v=bigint.fromBuffer(new Buffer(a));else{if(a.constructor!=zed.constructor)throw new Error("failed to get valid inner object in constructor");this._v=a}}function nbi(){return new BigInteger(bigint(0))
}function nbv(i){return new BigInteger(bigint(i))}function bigint_or_number(x){return"number"==typeof x?nbv(x):x}function buffer_to_array(b){for(var ret=new Array,i=0;i<b.length;i++)ret[i]=b.readUInt8(i);return ret}function nbits(x){var t,r=1;return 0!=(t=x>>>16)&&(x=t,r+=16),0!=(t=x>>8)&&(x=t,r+=8),0!=(t=x>>4)&&(x=t,r+=4),0!=(t=x>>2)&&(x=t,r+=2),0!=(t=x>>1)&&(x=t,r+=1),r}var bigint=require("./wrap").engine,zed=bigint(0),one=bigint(1);BigInteger.prototype.bitLength=function(){var ret;return ret=0==this.signum()?0:this._v.bitLength()},BigInteger.prototype.byteLength=function(){return this.bitLength()>>3},BigInteger.prototype.modPowInt=function(i,n){return new BigInteger(this._v.powm(bigint(i),n._v))},BigInteger.prototype.modInt=function(i){return this._v.mod(bigint(i)).toNumber()},BigInteger.prototype.testBit=function(i){var bi=one.shiftLeft(i),tmp=this._v.and(bi),ret=tmp.eq(zed)?0:1;return ret},BigInteger.prototype.setBit=function(i){var mask=bigint(1).shiftLeft(i);return new BigInteger(this._v.or(mask))},BigInteger.prototype.shiftLeft=function(i){return new BigInteger(this._v.shiftLeft(i))},BigInteger.prototype.shiftRight=function(i){return new BigInteger(this._v.shiftRight(i))},BigInteger.prototype.compareTo=function(b){return this._v.cmp(b._v)},BigInteger.prototype.modPow=function(e,n){return new BigInteger(this._v.powm(e._v,n._v))},BigInteger.prototype.square=function(){return new BigInteger(this._v.mul(this._v))},BigInteger.prototype.mod=function(m){var x=this._v.mod(m._v);return x.cmp(zed)<0&&(x=x.add(m._v)),new BigInteger(x)},BigInteger.prototype.abs=function(){return new BigInteger(this._v.abs())},BigInteger.prototype.pow=function(e){return new BigInteger(this._v.pow(bigint_or_number(e)._v))},BigInteger.prototype.intValue=function(){return this._v.toNumber()},BigInteger.prototype.signum=function(){var cmp=this._v.cmp(zed);return ret=cmp>0?1:0===cmp?0:-1},BigInteger.prototype.negate=function(){return new BigInteger(this._v.neg())},BigInteger.prototype.equals=function(b){return this._v.eq(b._v)},BigInteger.prototype.subtract=function(x){return new BigInteger(this._v.sub(x._v))},BigInteger.prototype.add=function(x){return new BigInteger(this._v.add(x._v))},BigInteger.prototype.multiply=function(x){return new BigInteger(this._v.mul(x._v))},BigInteger.prototype.divide=function(x){if(this._v.ge(zed)&&x._v.ge(zed))i=this._v.div(x._v);else{var sign=this.signum()*x.signum();i=this._v.abs().div(x._v.abs()),0>sign&&(i=i.neg())}return new BigInteger(i)},BigInteger.prototype.gcd=function(x){return new BigInteger(this._v.gcd(x._v))},BigInteger.prototype.fromBuffer=function(x){return new BigInteger(bigint.fromBuffer(x))},BigInteger.fromByteArrayUnsigned=function(b){return BigInteger.fromBuffer(new Buffer(b))},BigInteger.fromBuffer=function(x){return new BigInteger(bigint.fromBuffer(x))},BigInteger.fromDERInteger=function(buf){var ret;if(0==buf.length)ret=BigInteger.ZERO;else if(0==buf[0])ret=BigInteger.fromBuffer(buf);else if(ret=BigInteger.fromBuffer(buf),128&buf[0]){var z=BigInteger.ONE.shiftLeft(ret.bitLength());ret=ret.subtract(z)}return ret},BigInteger.prototype.compute_twos_complement=function(){var l=this.add(BigInteger.ONE).bitLength(),bytes=Math.floor(l/8)+1,y=BigInteger.ONE.shiftLeft(8*bytes);return y.add(this)},BigInteger.prototype.toDERInteger=function(){var ret=null,s=this.signum();if(0==s)ret=new Buffer([0]);else if(0>s){var z=this.compute_twos_complement();ret=z.toBuffer()}else{var ret=this.toBuffer();this.bitLength()%8==0&&(pad=new Buffer([0]),ret=Buffer.concat([pad,ret]))}return buffer_to_array(ret)},BigInteger.prototype.divideAndRemainder=function(m){var q=new BigInteger(this._v.div(m._v)),r=new BigInteger(this._v.mod(m._v));return[q,r]},BigInteger.fromString=function(s,base){var bi;return bi=256===base?bigint.fromBuffer(s):bigint(s,base),new BigInteger(bi)},BigInteger.prototype.fromString=function(s,base){return BigInteger.fromString(s,base)},BigInteger.prototype.toByteArray=function(){for(var b=this.toBuffer(),l=b.length,ret=new Array(l),i=0;l>i;i++)ret[i]=b[i];return ret},BigInteger.prototype.toByteArrayUnsigned=function(){return new Uint8Array(this.toBuffer())},BigInteger.prototype.toBuffer=function(size){var ret=null;if(size||(size=0),ret=0==this.signum()?new Buffer([]):this._v.toBuffer(),(diff=size-ret.length)>0){var pad=new Buffer(diff);pad.fill(0),ret=Buffer.concat([pad,ret])}return ret},BigInteger.prototype.toHex=function(size){var x=this;return this.signum()<0&&(x=this.compute_twos_complement()),x.toBuffer(size).toString("hex")},BigInteger.prototype.clone=function(){return new BigInteger(bigint(this._v))},BigInteger.prototype.getLowestSetBit=function(){for(var bl=this._v.bitLength(),ret=-1,mask=bigint(1),i=0;bl>i&&0>ret;i++)mask.and(this._v).eq(zed)?mask=mask.shiftLeft(1):ret=i;return ret},BigInteger.prototype.modInverse=function(n){return new BigInteger(this._v.invertm(n._v))},BigInteger.prototype.isEven=function(){var mask=bigint(1),res=mask.and(this._v);return res.eq(zed)},BigInteger.random_nbit=function(nbits,rf){var nbytes=Math.ceil(nbits/8),buf=new Buffer(nbytes);rf.nextBytes(buf);var ret=bigint.fromBuffer(buf),mask=bigint(1).shiftLeft(nbits).sub(bigint(1));return ret=ret.and(mask),new BigInteger(ret)},BigInteger.fromHex=function(s){if(!s.match(/^[a-fA-F0-9]*$/))throw new Error("hex string invalid: "+s);if(s.length%2!=0)throw new Error("got an odd-length hex-string");return new BigInteger(s,16)},BigInteger.prototype.inspect=function(){return"<BigInteger/fast "+this._v.toString()+">"},BigInteger.prototype.toString=function(base){base||(base=10);var raw=this._v.toString(base);return 0==raw.length?raw="0":16==base&&raw.length>1&&("0"==raw[0]?raw=raw.slice(1):"-0"==raw.slice(0,2)&&(raw="-"+raw.slice(2))),raw},BigInteger.valueOf=function(x){return bigint_or_number(x)},BigInteger.ZERO=nbv(0),BigInteger.ONE=nbv(1),module.exports={BigInteger:BigInteger,nbi:nbi,nbv:nbv,nbits:nbits}}(this)}).call(this,require("buffer").Buffer)},{"./wrap":74,buffer:80}],73:[function(require,module){(function(Buffer){!function(){function BigInteger(a,b,c){return this instanceof BigInteger?void(null!=a&&("number"==typeof a?this.fromNumber(a,b,c):null==b&&"string"!=typeof a?this.fromString(a,256):this.fromString(a,b))):new BigInteger(a,b,c)}function nbi(){return new BigInteger(null)}function am3(i,x,w,j,c,n){for(var xl=16383&x,xh=x>>14;--n>=0;){var l=16383&this[i],h=this[i++]>>14,m=xh*l+h*xl;l=xl*l+((16383&m)<<14)+w[j]+c,c=(l>>28)+(m>>14)+xh*h,w[j++]=268435455&l}return c}function int2char(n){return BI_RM.charAt(n)}function intAt(s,i){var c=BI_RC[s.charCodeAt(i)];return null==c?-1:c}function bnpCopyTo(r){for(var i=this.t-1;i>=0;--i)r[i]=this[i];r.t=this.t,r.s=this.s}function bnpFromInt(x){this.t=1,this.s=0>x?-1:0,x>0?this[0]=x:-1>x?this[0]=x+this.DV:this.t=0}function nbv(i){var r=nbi();return r.fromInt(i),r}function bnpFromString(s,b,unsigned){var k;if(16==b)k=4;else if(8==b)k=3;else if(256==b)k=8;else if(2==b)k=1;else if(32==b)k=5;else{if(4!=b)return this.fromRadix(s,b),this;k=2}this.t=0,this.s=0;for(var i=s.length,mi=!1,sh=0;--i>=0;){var x=8==k?255&s[i]:intAt(s,i);0>x?"-"==s.charAt(i)&&(mi=!0):(mi=!1,0==sh?this[this.t++]=x:sh+k>this.DB?(this[this.t-1]|=(x&(1<<this.DB-sh)-1)<<sh,this[this.t++]=x>>this.DB-sh):this[this.t-1]|=x<<sh,sh+=k,sh>=this.DB&&(sh-=this.DB))}return unsigned||8!=k||0==(128&s[0])||(this.s=-1,sh>0&&(this[this.t-1]|=(1<<this.DB-sh)-1<<sh)),this.clamp(),mi&&BigInteger.ZERO.subTo(this,this),this}function bnpClamp(){for(var c=this.s&this.DM;this.t>0&&this[this.t-1]==c;)--this.t}function bnToString(b){if(this.s<0)return"-"+this.negate().toString(b);var k;if(16==b)k=4;else if(8==b)k=3;else if(2==b)k=1;else if(32==b)k=5;else{if(4!=b)return this.toRadix(b);k=2}var d,km=(1<<k)-1,m=!1,r="",i=this.t,p=this.DB-i*this.DB%k;if(i-->0)for(p<this.DB&&(d=this[i]>>p)>0&&(m=!0,r=int2char(d));i>=0;)k>p?(d=(this[i]&(1<<p)-1)<<k-p,d|=this[--i]>>(p+=this.DB-k)):(d=this[i]>>(p-=k)&km,0>=p&&(p+=this.DB,--i)),d>0&&(m=!0),m&&(r+=int2char(d));return m?r:"0"}function bnNegate(){var r=nbi();return BigInteger.ZERO.subTo(this,r),r}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(a){var r=this.s-a.s;if(0!=r)return r;var i=this.t;if(r=i-a.t,0!=r)return r;for(;--i>=0;)if(0!=(r=this[i]-a[i]))return r;return 0}function nbits(x){var t,r=1;return 0!=(t=x>>>16)&&(x=t,r+=16),0!=(t=x>>8)&&(x=t,r+=8),0!=(t=x>>4)&&(x=t,r+=4),0!=(t=x>>2)&&(x=t,r+=2),0!=(t=x>>1)&&(x=t,r+=1),r}function bnBitLength(){return this.t<=0?0:this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(n,r){var i;for(i=this.t-1;i>=0;--i)r[i+n]=this[i];for(i=n-1;i>=0;--i)r[i]=0;r.t=this.t+n,r.s=this.s}function bnpDRShiftTo(n,r){for(var i=n;i<this.t;++i)r[i-n]=this[i];r.t=Math.max(this.t-n,0),r.s=this.s}function bnpLShiftTo(n,r){var i,bs=n%this.DB,cbs=this.DB-bs,bm=(1<<cbs)-1,ds=Math.floor(n/this.DB),c=this.s<<bs&this.DM;for(i=this.t-1;i>=0;--i)r[i+ds+1]=this[i]>>cbs|c,c=(this[i]&bm)<<bs;for(i=ds-1;i>=0;--i)r[i]=0;r[ds]=c,r.t=this.t+ds+1,r.s=this.s,r.clamp()}function bnpRShiftTo(n,r){r.s=this.s;var ds=Math.floor(n/this.DB);if(ds>=this.t)return void(r.t=0);var bs=n%this.DB,cbs=this.DB-bs,bm=(1<<bs)-1;r[0]=this[ds]>>bs;for(var i=ds+1;i<this.t;++i)r[i-ds-1]|=(this[i]&bm)<<cbs,r[i-ds]=this[i]>>bs;bs>0&&(r[this.t-ds-1]|=(this.s&bm)<<cbs),r.t=this.t-ds,r.clamp()}function bnpSubTo(a,r){for(var i=0,c=0,m=Math.min(a.t,this.t);m>i;)c+=this[i]-a[i],r[i++]=c&this.DM,c>>=this.DB;if(a.t<this.t){for(c-=a.s;i<this.t;)c+=this[i],r[i++]=c&this.DM,c>>=this.DB;c+=this.s}else{for(c+=this.s;i<a.t;)c-=a[i],r[i++]=c&this.DM,c>>=this.DB;c-=a.s}r.s=0>c?-1:0,-1>c?r[i++]=this.DV+c:c>0&&(r[i++]=c),r.t=i,r.clamp()}function bnpMultiplyTo(a,r){var x=this.abs(),y=a.abs(),i=x.t;for(r.t=i+y.t;--i>=0;)r[i]=0;for(i=0;i<y.t;++i)r[i+x.t]=x.am(0,y[i],r,i,0,x.t);r.s=0,r.clamp(),this.s!=a.s&&BigInteger.ZERO.subTo(r,r)}function bnpSquareTo(r){for(var x=this.abs(),i=r.t=2*x.t;--i>=0;)r[i]=0;for(i=0;i<x.t-1;++i){var c=x.am(i,x[i],r,2*i,0,1);(r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1))>=x.DV&&(r[i+x.t]-=x.DV,r[i+x.t+1]=1)}r.t>0&&(r[r.t-1]+=x.am(i,x[i],r,2*i,0,1)),r.s=0,r.clamp()}function bnpDivRemTo(m,q,r){var pm=m.abs();if(!(pm.t<=0)){var pt=this.abs();if(pt.t<pm.t)return null!=q&&q.fromInt(0),void(null!=r&&this.copyTo(r));null==r&&(r=nbi());var y=nbi(),ts=this.s,ms=m.s,nsh=this.DB-nbits(pm[pm.t-1]);nsh>0?(pm.lShiftTo(nsh,y),pt.lShiftTo(nsh,r)):(pm.copyTo(y),pt.copyTo(r));var ys=y.t,y0=y[ys-1];if(0!=y0){var yt=y0*(1<<this.F1)+(ys>1?y[ys-2]>>this.F2:0),d1=this.FV/yt,d2=(1<<this.F1)/yt,e=1<<this.F2,i=r.t,j=i-ys,t=null==q?nbi():q;for(y.dlShiftTo(j,t),r.compareTo(t)>=0&&(r[r.t++]=1,r.subTo(t,r)),BigInteger.ONE.dlShiftTo(ys,t),t.subTo(y,y);y.t<ys;)y[y.t++]=0;for(;--j>=0;){var qd=r[--i]==y0?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);if((r[i]+=y.am(0,qd,r,j,0,ys))<qd)for(y.dlShiftTo(j,t),r.subTo(t,r);r[i]<--qd;)r.subTo(t,r)}null!=q&&(r.drShiftTo(ys,q),ts!=ms&&BigInteger.ZERO.subTo(q,q)),r.t=ys,r.clamp(),nsh>0&&r.rShiftTo(nsh,r),0>ts&&BigInteger.ZERO.subTo(r,r)}}}function bnMod(a){var r=nbi();return this.abs().divRemTo(a,null,r),this.s<0&&r.compareTo(BigInteger.ZERO)>0&&a.subTo(r,r),r}function Classic(m){this.m=m}function cConvert(x){return x.s<0||x.compareTo(this.m)>=0?x.mod(this.m):x}function cRevert(x){return x}function cReduce(x){x.divRemTo(this.m,null,x)}function cMulTo(x,y,r){x.multiplyTo(y,r),this.reduce(r)}function cSqrTo(x,r){x.squareTo(r),this.reduce(r)}function bnpInvDigit(){if(this.t<1)return 0;var x=this[0];if(0==(1&x))return 0;var y=3&x;return y=y*(2-(15&x)*y)&15,y=y*(2-(255&x)*y)&255,y=y*(2-((65535&x)*y&65535))&65535,y=y*(2-x*y%this.DV)%this.DV,y>0?this.DV-y:-y}function Montgomery(m){this.m=m,this.mp=m.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<m.DB-15)-1,this.mt2=2*m.t}function montConvert(x){var r=nbi();return x.abs().dlShiftTo(this.m.t,r),r.divRemTo(this.m,null,r),x.s<0&&r.compareTo(BigInteger.ZERO)>0&&this.m.subTo(r,r),r}function montRevert(x){var r=nbi();return x.copyTo(r),this.reduce(r),r}function montReduce(x){for(;x.t<=this.mt2;)x[x.t++]=0;for(var i=0;i<this.m.t;++i){var j=32767&x[i],u0=j*this.mpl+((j*this.mph+(x[i]>>15)*this.mpl&this.um)<<15)&x.DM;for(j=i+this.m.t,x[j]+=this.m.am(0,u0,x,i,0,this.m.t);x[j]>=x.DV;)x[j]-=x.DV,x[++j]++}x.clamp(),x.drShiftTo(this.m.t,x),x.compareTo(this.m)>=0&&x.subTo(this.m,x)}function montSqrTo(x,r){x.squareTo(r),this.reduce(r)}function montMulTo(x,y,r){x.multiplyTo(y,r),this.reduce(r)}function bnpIsEven(){return 0==(this.t>0?1&this[0]:this.s)}function bnpExp(e,z){if(e>4294967295||1>e)return BigInteger.ONE;var r=nbi(),r2=nbi(),g=z.convert(this),i=nbits(e)-1;for(g.copyTo(r);--i>=0;)if(z.sqrTo(r,r2),(e&1<<i)>0)z.mulTo(r2,g,r);else{var t=r;r=r2,r2=t}return z.revert(r)}function bnModPowInt(e,m){var z;return z=256>e||m.isEven()?new Classic(m):new Montgomery(m),this.exp(e,z)}function bnClone(){var r=nbi();return this.copyTo(r),r}function bnIntValue(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function bnByteValue(){return 0==this.t?this.s:this[0]<<24>>24}function bnShortValue(){return 0==this.t?this.s:this[0]<<16>>16}function bnpChunkSize(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function bnSigNum(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1}function bnpToRadix(b){if(null==b&&(b=10),0==this.signum()||2>b||b>36)return"0";var cs=this.chunkSize(b),a=Math.pow(b,cs),d=nbv(a),y=nbi(),z=nbi(),r="";for(this.divRemTo(d,y,z);y.signum()>0;)r=(a+z.intValue()).toString(b).substr(1)+r,y.divRemTo(d,y,z);return z.intValue().toString(b)+r}function bnpFromRadix(s,b){this.fromInt(0),null==b&&(b=10);for(var cs=this.chunkSize(b),d=Math.pow(b,cs),mi=!1,j=0,w=0,i=0;i<s.length;++i){var x=intAt(s,i);0>x?"-"==s.charAt(i)&&0==this.signum()&&(mi=!0):(w=b*w+x,++j>=cs&&(this.dMultiply(d),this.dAddOffset(w,0),j=0,w=0))}j>0&&(this.dMultiply(Math.pow(b,j)),this.dAddOffset(w,0)),mi&&BigInteger.ZERO.subTo(this,this)}function bnpFromNumber(a,b,c){if("number"==typeof b)if(2>a)this.fromInt(1);else for(this.fromNumber(a,c),this.testBit(a-1)||this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(b);)this.dAddOffset(2,0),this.bitLength()>a&&this.subTo(BigInteger.ONE.shiftLeft(a-1),this);else{var x=new Array,t=7&a;x.length=(a>>3)+1,b.nextBytes(x),t>0?x[0]&=(1<<t)-1:x[0]=0,this.fromString(x,256)}}function bnToByteArray(encode_sign_bit){var i=this.t,r=new Array;r[0]=this.s;var d,p=this.DB-i*this.DB%8,k=0;if(i-->0)for(p<this.DB&&(d=this[i]>>p)!=(this.s&this.DM)>>p&&(r[k++]=d|this.s<<this.DB-p);i>=0;)8>p?(d=(this[i]&(1<<p)-1)<<8-p,d|=this[--i]>>(p+=this.DB-8)):(d=this[i]>>(p-=8)&255,0>=p&&(p+=this.DB,--i)),encode_sign_bit&&(0!=(128&d)&&(d|=-256),0==k&&(128&this.s)!=(128&d)&&++k),(k>0||d!=this.s)&&(r[k++]=d);return r}function bnEquals(a){return 0==this.compareTo(a)}function bnMin(a){return this.compareTo(a)<0?this:a}function bnMax(a){return this.compareTo(a)>0?this:a}function bnpBitwiseTo(a,op,r){var i,f,m=Math.min(a.t,this.t);for(i=0;m>i;++i)r[i]=op(this[i],a[i]);if(a.t<this.t){for(f=a.s&this.DM,i=m;i<this.t;++i)r[i]=op(this[i],f);r.t=this.t}else{for(f=this.s&this.DM,i=m;i<a.t;++i)r[i]=op(f,a[i]);r.t=a.t}r.s=op(this.s,a.s),r.clamp()}function op_and(x,y){return x&y}function bnAnd(a){var r=nbi();return this.bitwiseTo(a,op_and,r),r}function op_or(x,y){return x|y}function bnOr(a){var r=nbi();return this.bitwiseTo(a,op_or,r),r}function op_xor(x,y){return x^y}function bnXor(a){var r=nbi();return this.bitwiseTo(a,op_xor,r),r}function op_andnot(x,y){return x&~y}function bnAndNot(a){var r=nbi();return this.bitwiseTo(a,op_andnot,r),r}function bnNot(){for(var r=nbi(),i=0;i<this.t;++i)r[i]=this.DM&~this[i];return r.t=this.t,r.s=~this.s,r}function bnShiftLeft(n){var r=nbi();return 0>n?this.rShiftTo(-n,r):this.lShiftTo(n,r),r}function bnShiftRight(n){var r=nbi();return 0>n?this.lShiftTo(-n,r):this.rShiftTo(n,r),r}function lbit(x){if(0==x)return-1;var r=0;return 0==(65535&x)&&(x>>=16,r+=16),0==(255&x)&&(x>>=8,r+=8),0==(15&x)&&(x>>=4,r+=4),0==(3&x)&&(x>>=2,r+=2),0==(1&x)&&++r,r}function bnGetLowestSetBit(){for(var i=0;i<this.t;++i)if(0!=this[i])return i*this.DB+lbit(this[i]);return this.s<0?this.t*this.DB:-1}function cbit(x){for(var r=0;0!=x;)x&=x-1,++r;return r}function bnBitCount(){for(var r=0,x=this.s&this.DM,i=0;i<this.t;++i)r+=cbit(this[i]^x);return r}function bnTestBit(n){var j=Math.floor(n/this.DB);return j>=this.t?0!=this.s:0!=(this[j]&1<<n%this.DB)}function bnpChangeBit(n,op){var r=BigInteger.ONE.shiftLeft(n);return this.bitwiseTo(r,op,r),r}function bnSetBit(n){return this.changeBit(n,op_or)}function bnClearBit(n){return this.changeBit(n,op_andnot)}function bnFlipBit(n){return this.changeBit(n,op_xor)}function bnpAddTo(a,r){for(var i=0,c=0,m=Math.min(a.t,this.t);m>i;)c+=this[i]+a[i],r[i++]=c&this.DM,c>>=this.DB;if(a.t<this.t){for(c+=a.s;i<this.t;)c+=this[i],r[i++]=c&this.DM,c>>=this.DB;c+=this.s}else{for(c+=this.s;i<a.t;)c+=a[i],r[i++]=c&this.DM,c>>=this.DB;c+=a.s}r.s=0>c?-1:0,c>0?r[i++]=c:-1>c&&(r[i++]=this.DV+c),r.t=i,r.clamp()}function bnAdd(a){var r=nbi();return this.addTo(a,r),r}function bnSubtract(a){var r=nbi();return this.subTo(a,r),r}function bnMultiply(a){var r=nbi();return this.multiplyTo(a,r),r}function bnSquare(){var r=nbi();return this.squareTo(r),r}function bnDivide(a){var r=nbi();return this.divRemTo(a,r,null),r}function bnRemainder(a){var r=nbi();return this.divRemTo(a,null,r),r}function bnDivideAndRemainder(a){var q=nbi(),r=nbi();return this.divRemTo(a,q,r),new Array(q,r)}function bnpDMultiply(n){this[this.t]=this.am(0,n-1,this,0,0,this.t),++this.t,this.clamp()}function bnpDAddOffset(n,w){if(0!=n){for(;this.t<=w;)this[this.t++]=0;for(this[w]+=n;this[w]>=this.DV;)this[w]-=this.DV,++w>=this.t&&(this[this.t++]=0),++this[w]}}function NullExp(){}function nNop(x){return x}function nMulTo(x,y,r){x.multiplyTo(y,r)}function nSqrTo(x,r){x.squareTo(r)}function bnPow(e){return this.exp(e,new NullExp)}function bnpMultiplyLowerTo(a,n,r){var i=Math.min(this.t+a.t,n);for(r.s=0,r.t=i;i>0;)r[--i]=0;var j;for(j=r.t-this.t;j>i;++i)r[i+this.t]=this.am(0,a[i],r,i,0,this.t);for(j=Math.min(a.t,n);j>i;++i)this.am(0,a[i],r,i,0,n-i);r.clamp()}function bnpMultiplyUpperTo(a,n,r){--n;var i=r.t=this.t+a.t-n;for(r.s=0;--i>=0;)r[i]=0;for(i=Math.max(n-this.t,0);i<a.t;++i)r[this.t+i-n]=this.am(n-i,a[i],r,0,0,this.t+i-n);r.clamp(),r.drShiftTo(1,r)}function Barrett(m){this.r2=nbi(),this.q3=nbi(),BigInteger.ONE.dlShiftTo(2*m.t,this.r2),this.mu=this.r2.divide(m),this.m=m}function barrettConvert(x){if(x.s<0||x.t>2*this.m.t)return x.mod(this.m);if(x.compareTo(this.m)<0)return x;var r=nbi();return x.copyTo(r),this.reduce(r),r}function barrettRevert(x){return x}function barrettReduce(x){for(x.drShiftTo(this.m.t-1,this.r2),x.t>this.m.t+1&&(x.t=this.m.t+1,x.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);x.compareTo(this.r2)<0;)x.dAddOffset(1,this.m.t+1);for(x.subTo(this.r2,x);x.compareTo(this.m)>=0;)x.subTo(this.m,x)}function barrettSqrTo(x,r){x.squareTo(r),this.reduce(r)}function barrettMulTo(x,y,r){x.multiplyTo(y,r),this.reduce(r)}function bnModPow(e,m){var k,z,i=e.bitLength(),r=nbv(1);if(0>=i)return r;k=18>i?1:48>i?3:144>i?4:768>i?5:6,z=8>i?new Classic(m):m.isEven()?new Barrett(m):new Montgomery(m);var g=new Array,n=3,k1=k-1,km=(1<<k)-1;if(g[1]=z.convert(this),k>1){var g2=nbi();for(z.sqrTo(g[1],g2);km>=n;)g[n]=nbi(),z.mulTo(g2,g[n-2],g[n]),n+=2}var w,t,j=e.t-1,is1=!0,r2=nbi();for(i=nbits(e[j])-1;j>=0;){for(i>=k1?w=e[j]>>i-k1&km:(w=(e[j]&(1<<i+1)-1)<<k1-i,j>0&&(w|=e[j-1]>>this.DB+i-k1)),n=k;0==(1&w);)w>>=1,--n;if((i-=n)<0&&(i+=this.DB,--j),is1)g[w].copyTo(r),is1=!1;else{for(;n>1;)z.sqrTo(r,r2),z.sqrTo(r2,r),n-=2;n>0?z.sqrTo(r,r2):(t=r,r=r2,r2=t),z.mulTo(r2,g[w],r)}for(;j>=0&&0==(e[j]&1<<i);)z.sqrTo(r,r2),t=r,r=r2,r2=t,--i<0&&(i=this.DB-1,--j)}return z.revert(r)}function bnGCD(a){var x=this.s<0?this.negate():this.clone(),y=a.s<0?a.negate():a.clone();if(x.compareTo(y)<0){var t=x;x=y,y=t}var i=x.getLowestSetBit(),g=y.getLowestSetBit();if(0>g)return x;for(g>i&&(g=i),g>0&&(x.rShiftTo(g,x),y.rShiftTo(g,y));x.signum()>0;)(i=x.getLowestSetBit())>0&&x.rShiftTo(i,x),(i=y.getLowestSetBit())>0&&y.rShiftTo(i,y),x.compareTo(y)>=0?(x.subTo(y,x),x.rShiftTo(1,x)):(y.subTo(x,y),y.rShiftTo(1,y));return g>0&&y.lShiftTo(g,y),y}function bnpModInt(n){if(0>=n)return 0;var d=this.DV%n,r=this.s<0?n-1:0;if(this.t>0)if(0==d)r=this[0]%n;else for(var i=this.t-1;i>=0;--i)r=(d*r+this[i])%n;return r}function bnModInverse(m){var ac=m.isEven();if(this.isEven()&&ac||0==m.signum())return BigInteger.ZERO;for(var u=m.clone(),v=this.clone(),a=nbv(1),b=nbv(0),c=nbv(0),d=nbv(1);0!=u.signum();){for(;u.isEven();)u.rShiftTo(1,u),ac?(a.isEven()&&b.isEven()||(a.addTo(this,a),b.subTo(m,b)),a.rShiftTo(1,a)):b.isEven()||b.subTo(m,b),b.rShiftTo(1,b);for(;v.isEven();)v.rShiftTo(1,v),ac?(c.isEven()&&d.isEven()||(c.addTo(this,c),d.subTo(m,d)),c.rShiftTo(1,c)):d.isEven()||d.subTo(m,d),d.rShiftTo(1,d);u.compareTo(v)>=0?(u.subTo(v,u),ac&&a.subTo(c,a),b.subTo(d,b)):(v.subTo(u,v),ac&&c.subTo(a,c),d.subTo(b,d))}return 0!=v.compareTo(BigInteger.ONE)?BigInteger.ZERO:d.compareTo(m)>=0?d.subtract(m):d.signum()<0?(d.addTo(m,d),d.signum()<0?d.add(m):d):d}function bnIsProbablePrime(t){var i,x=this.abs();if(1==x.t&&x[0]<=lowprimes[lowprimes.length-1]){for(i=0;i<lowprimes.length;++i)if(x[0]==lowprimes[i])return!0;return!1}if(x.isEven())return!1;for(i=1;i<lowprimes.length;){for(var m=lowprimes[i],j=i+1;j<lowprimes.length&&lplim>m;)m*=lowprimes[j++];for(m=x.modInt(m);j>i;)if(m%lowprimes[i++]==0)return!1}return x.millerRabin(t)}function nbits(x){var t,n=1;return 0!=(t=x>>>16)&&(x=t,n+=16),0!=(t=x>>8)&&(x=t,n+=8),0!=(t=x>>4)&&(x=t,n+=4),0!=(t=x>>2)&&(x=t,n+=2),0!=(t=x>>1)&&(x=t,n+=1),n}function bnToMPI(){var ba=this.toByteArray(),size=8*(ba.length-1)+nbits(ba[0]),result="";return result+=String.fromCharCode((65280&size)>>8),result+=String.fromCharCode(255&size),result+=util.bin2str(ba)}function bnpMillerRabin(t){var n1=this.subtract(BigInteger.ONE),k=n1.getLowestSetBit();if(0>=k)return!1;var r=n1.shiftRight(k);t=t+1>>1,t>lowprimes.length&&(t=lowprimes.length);for(var a=nbi(),i=0;t>i;++i){a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);var y=a.modPow(r,this);if(0!=y.compareTo(BigInteger.ONE)&&0!=y.compareTo(n1)){for(var j=1;j++<k&&0!=y.compareTo(n1);)if(y=y.modPowInt(2,this),0==y.compareTo(BigInteger.ONE))return!1;if(0!=y.compareTo(n1))return!1}}return!0}function bigint_or_number(x){return"number"==typeof x?nbv(x):x}function buffer_to_ui8a(b){for(var l=b.length,ret=new Uint8Array(l),i=0;l>i;i++)ret[i]=b.readUInt8(i);return ret}var dbits;BigInteger.prototype.am=am3,dbits=28,BigInteger.prototype.DB=dbits,BigInteger.prototype.DM=(1<<dbits)-1,BigInteger.prototype.DV=1<<dbits;var BI_FP=52;BigInteger.prototype.FV=Math.pow(2,BI_FP),BigInteger.prototype.F1=BI_FP-dbits,BigInteger.prototype.F2=2*dbits-BI_FP;var rr,vv,BI_RM="0123456789abcdefghijklmnopqrstuvwxyz",BI_RC=new Array;for(rr="0".charCodeAt(0),vv=0;9>=vv;++vv)BI_RC[rr++]=vv;for(rr="a".charCodeAt(0),vv=10;36>vv;++vv)BI_RC[rr++]=vv;for(rr="A".charCodeAt(0),vv=10;36>vv;++vv)BI_RC[rr++]=vv;Classic.prototype.convert=cConvert,Classic.prototype.revert=cRevert,Classic.prototype.reduce=cReduce,Classic.prototype.mulTo=cMulTo,Classic.prototype.sqrTo=cSqrTo,Montgomery.prototype.convert=montConvert,Montgomery.prototype.revert=montRevert,Montgomery.prototype.reduce=montReduce,Montgomery.prototype.mulTo=montMulTo,Montgomery.prototype.sqrTo=montSqrTo,BigInteger.prototype.copyTo=bnpCopyTo,BigInteger.prototype.fromInt=bnpFromInt,BigInteger.prototype.fromString=bnpFromString,BigInteger.prototype.clamp=bnpClamp,BigInteger.prototype.dlShiftTo=bnpDLShiftTo,BigInteger.prototype.drShiftTo=bnpDRShiftTo,BigInteger.prototype.lShiftTo=bnpLShiftTo,BigInteger.prototype.rShiftTo=bnpRShiftTo,BigInteger.prototype.subTo=bnpSubTo,BigInteger.prototype.multiplyTo=bnpMultiplyTo,BigInteger.prototype.squareTo=bnpSquareTo,BigInteger.prototype.divRemTo=bnpDivRemTo,BigInteger.prototype.invDigit=bnpInvDigit,BigInteger.prototype.isEven=bnpIsEven,BigInteger.prototype.exp=bnpExp,BigInteger.prototype.toString=bnToString,BigInteger.prototype.negate=bnNegate,BigInteger.prototype.abs=bnAbs,BigInteger.prototype.compareTo=bnCompareTo,BigInteger.prototype.bitLength=bnBitLength,BigInteger.prototype.mod=bnMod,BigInteger.prototype.modPowInt=bnModPowInt,BigInteger.ZERO=nbv(0),BigInteger.ONE=nbv(1),NullExp.prototype.convert=nNop,NullExp.prototype.revert=nNop,NullExp.prototype.mulTo=nMulTo,NullExp.prototype.sqrTo=nSqrTo,Barrett.prototype.convert=barrettConvert,Barrett.prototype.revert=barrettRevert,Barrett.prototype.reduce=barrettReduce,Barrett.prototype.mulTo=barrettMulTo,Barrett.prototype.sqrTo=barrettSqrTo;var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],lplim=(1<<26)/lowprimes[lowprimes.length-1];BigInteger.prototype.chunkSize=bnpChunkSize,BigInteger.prototype.toRadix=bnpToRadix,BigInteger.prototype.fromRadix=bnpFromRadix,BigInteger.prototype.fromNumber=bnpFromNumber,BigInteger.prototype.bitwiseTo=bnpBitwiseTo,BigInteger.prototype.changeBit=bnpChangeBit,BigInteger.prototype.addTo=bnpAddTo,BigInteger.prototype.dMultiply=bnpDMultiply,BigInteger.prototype.dAddOffset=bnpDAddOffset,BigInteger.prototype.multiplyLowerTo=bnpMultiplyLowerTo,BigInteger.prototype.multiplyUpperTo=bnpMultiplyUpperTo,BigInteger.prototype.modInt=bnpModInt,BigInteger.prototype.millerRabin=bnpMillerRabin,BigInteger.prototype.clone=bnClone,BigInteger.prototype.intValue=bnIntValue,BigInteger.prototype.byteValue=bnByteValue,BigInteger.prototype.shortValue=bnShortValue,BigInteger.prototype.signum=bnSigNum,BigInteger.prototype.toByteArray=bnToByteArray,BigInteger.prototype.equals=bnEquals,BigInteger.prototype.min=bnMin,BigInteger.prototype.max=bnMax,BigInteger.prototype.and=bnAnd,BigInteger.prototype.or=bnOr,BigInteger.prototype.xor=bnXor,BigInteger.prototype.andNot=bnAndNot,BigInteger.prototype.not=bnNot,BigInteger.prototype.shiftLeft=bnShiftLeft,BigInteger.prototype.shiftRight=bnShiftRight,BigInteger.prototype.getLowestSetBit=bnGetLowestSetBit,BigInteger.prototype.bitCount=bnBitCount,BigInteger.prototype.testBit=bnTestBit,BigInteger.prototype.setBit=bnSetBit,BigInteger.prototype.clearBit=bnClearBit,BigInteger.prototype.flipBit=bnFlipBit,BigInteger.prototype.add=bnAdd,BigInteger.prototype.subtract=bnSubtract,BigInteger.prototype.multiply=bnMultiply,BigInteger.prototype.divide=bnDivide,BigInteger.prototype.remainder=bnRemainder,BigInteger.prototype.divideAndRemainder=bnDivideAndRemainder,BigInteger.prototype.modPow=bnModPow,BigInteger.prototype.modInverse=bnModInverse,BigInteger.prototype.pow=bnPow,BigInteger.prototype.gcd=bnGCD,BigInteger.prototype.isProbablePrime=bnIsProbablePrime,BigInteger.prototype.toMPI=bnToMPI,BigInteger.prototype.square=bnSquare,BigInteger.prototype.fromBuffer=function(buf){return this.fromString(buffer_to_ui8a(buf),256,!0),this},BigInteger.fromBuffer=function(buf){var ret=nbi();return ret.fromBuffer(buf),ret},BigInteger.random_nbit=function(nbits,rf){return new BigInteger(nbits,rf)},BigInteger.prototype.inspect=function(){return"<BigInteger/pure "+this.toString()+">"},BigInteger.fromHex=function(s){if(!s.match(/^[a-fA-F0-9]*$/))throw new Error("hex string invalid: "+s);if(s.length%2!=0)throw new Error("got an odd-length hex-string");return new BigInteger(s,16)},BigInteger.valueOf=function(x){return bigint_or_number(x)},BigInteger.prototype.toBuffer=function(size){var x;size||(size=0);var s=this.signum();x=0==s?[]:this.toByteArray(0>s);var ret=new Buffer(x);if((diff=size-x.length)>0){var pad=new Buffer(diff);pad.fill(0),ret=Buffer.concat([pad,ret])}return ret},BigInteger.prototype.byteLength=function(){return this.t},BigInteger.prototype.toDERInteger=function(){return this.toByteArray(!0)},BigInteger.fromDERInteger=function(buf){var x=nbi();return x.fromString(buf,256,!1),x},BigInteger.prototype.toByteArrayUnsigned=function(){return new Uint8Array(this.toBuffer())},BigInteger.fromByteArrayUnsigned=function(b){return BigInteger.fromBuffer(new Buffer(b))},BigInteger.prototype.toHex=function(size){return this.toBuffer(size).toString("hex")},module.exports={BigInteger:BigInteger,nbi:nbi,nbv:nbv,Montgomery:Montgomery,Classic:Classic,nbits:nbits}}(this)}).call(this,require("buffer").Buffer)},{buffer:80}],74:[function(require,module,exports){var engine=null,modules=["bigint","bignum"];for(var i in modules)try{engine=require(modules[i]);break}catch(e){}exports.engine=engine},{}],75:[function(require,module){function replacer(key,value){return util.isUndefined(value)?""+value:!util.isNumber(value)||!isNaN(value)&&isFinite(value)?util.isFunction(value)||util.isRegExp(value)?value.toString():value:value.toString()}function truncate(s,n){return util.isString(s)?s.length<n?s:s.slice(0,n):s}function getMessage(self){return truncate(JSON.stringify(self.actual,replacer),128)+" "+self.operator+" "+truncate(JSON.stringify(self.expected,replacer),128)}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}function ok(value,message){value||fail(value,!0,message,"==",assert.ok)}function _deepEqual(actual,expected){if(actual===expected)return!0;if(util.isBuffer(actual)&&util.isBuffer(expected)){if(actual.length!=expected.length)return!1;for(var i=0;i<actual.length;i++)if(actual[i]!==expected[i])return!1;return!0}return util.isDate(actual)&&util.isDate(expected)?actual.getTime()===expected.getTime():util.isRegExp(actual)&&util.isRegExp(expected)?actual.source===expected.source&&actual.global===expected.global&&actual.multiline===expected.multiline&&actual.lastIndex===expected.lastIndex&&actual.ignoreCase===expected.ignoreCase:util.isObject(actual)||util.isObject(expected)?objEquiv(actual,expected):actual==expected}function isArguments(object){return"[object Arguments]"==Object.prototype.toString.call(object)}function objEquiv(a,b){if(util.isNullOrUndefined(a)||util.isNullOrUndefined(b))return!1;if(a.prototype!==b.prototype)return!1;if(isArguments(a))return isArguments(b)?(a=pSlice.call(a),b=pSlice.call(b),_deepEqual(a,b)):!1;try{var key,i,ka=objectKeys(a),kb=objectKeys(b)}catch(e){return!1}if(ka.length!=kb.length)return!1;for(ka.sort(),kb.sort(),i=ka.length-1;i>=0;i--)if(ka[i]!=kb[i])return!1;for(i=ka.length-1;i>=0;i--)if(key=ka[i],!_deepEqual(a[key],b[key]))return!1;return!0}function expectedException(actual,expected){return actual&&expected?"[object RegExp]"==Object.prototype.toString.call(expected)?expected.test(actual):actual instanceof expected?!0:expected.call({},actual)===!0?!0:!1:!1}function _throws(shouldThrow,block,expected,message){var actual;util.isString(expected)&&(message=expected,expected=null);try{block()}catch(e){actual=e}if(message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:"."),shouldThrow&&!actual&&fail(actual,expected,"Missing expected exception"+message),!shouldThrow&&expectedException(actual,expected)&&fail(actual,expected,"Got unwanted exception"+message),shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual)throw actual}var util=require("util/"),pSlice=Array.prototype.slice,hasOwn=Object.prototype.hasOwnProperty,assert=module.exports=ok;assert.AssertionError=function(options){this.name="AssertionError",this.actual=options.actual,this.expected=options.expected,this.operator=options.operator,options.message?(this.message=options.message,this.generatedMessage=!1):(this.message=getMessage(this),this.generatedMessage=!0);
var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace)Error.captureStackTrace(this,stackStartFunction);else{var err=new Error;if(err.stack){var out=err.stack,fn_name=stackStartFunction.name,idx=out.indexOf("\n"+fn_name);if(idx>=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}},util.inherits(assert.AssertionError,Error),assert.fail=fail,assert.ok=ok,assert.equal=function(actual,expected,message){actual!=expected&&fail(actual,expected,message,"==",assert.equal)},assert.notEqual=function(actual,expected,message){actual==expected&&fail(actual,expected,message,"!=",assert.notEqual)},assert.deepEqual=function(actual,expected,message){_deepEqual(actual,expected)||fail(actual,expected,message,"deepEqual",assert.deepEqual)},assert.notDeepEqual=function(actual,expected,message){_deepEqual(actual,expected)&&fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)},assert.strictEqual=function(actual,expected,message){actual!==expected&&fail(actual,expected,message,"===",assert.strictEqual)},assert.notStrictEqual=function(actual,expected,message){actual===expected&&fail(actual,expected,message,"!==",assert.notStrictEqual)},assert.throws=function(){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(err){if(err)throw err};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)hasOwn.call(obj,key)&&keys.push(key);return keys}},{"util/":77}],76:[function(require,module){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],77:[function(require,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str){return str}function arrayToHash(array){var hash={};return array.forEach(function(val){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(0>recurseTimes)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;l>i;++i)output.push(hasOwnProperty(value,String(i))?formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),!0):"");return keys.forEach(function(key){key.match(/^\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(ctx.seen.indexOf(desc.value)<0?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\n")>-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return 10>n?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i<arguments.length;i++)objects.push(inspect(arguments[i]));return objects.join(" ")}for(var i=1,args=arguments,len=args.length,str=String(f).replace(formatRegExp,function(x){if("%%"===x)return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];len>i;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw new Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":76,_process:99,inherits:97}],78:[function(require,module,exports){(function(process,Buffer){function Zlib(mode){if(mode<exports.DEFLATE||mode>exports.UNZIP)throw new TypeError("Bad argument");this.mode=mode,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function bufferSet(data,offset){for(var i=0;i<data.length;i++)this[offset+i]=data[i]}var msg=require("pako/lib/zlib/messages"),zstream=require("pako/lib/zlib/zstream"),zlib_deflate=require("pako/lib/zlib/deflate.js"),zlib_inflate=require("pako/lib/zlib/inflate.js"),constants=require("pako/lib/zlib/constants");for(var key in constants)exports[key]=constants[key];exports.NONE=0,exports.DEFLATE=1,exports.INFLATE=2,exports.GZIP=3,exports.GUNZIP=4,exports.DEFLATERAW=5,exports.INFLATERAW=6,exports.UNZIP=7,Zlib.prototype.init=function(windowBits,level,memLevel,strategy){switch(this.windowBits=windowBits,this.level=level,this.memLevel=memLevel,this.strategy=strategy,(this.mode===exports.GZIP||this.mode===exports.GUNZIP)&&(this.windowBits+=16),this.mode===exports.UNZIP&&(this.windowBits+=32),(this.mode===exports.DEFLATERAW||this.mode===exports.INFLATERAW)&&(this.windowBits=-this.windowBits),this.strm=new zstream,this.mode){case exports.DEFLATE:case exports.GZIP:case exports.DEFLATERAW:var status=zlib_deflate.deflateInit2(this.strm,this.level,exports.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case exports.INFLATE:case exports.GUNZIP:case exports.INFLATERAW:case exports.UNZIP:var status=zlib_inflate.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}return status!==exports.Z_OK?void this._error(status):(this.write_in_progress=!1,void(this.init_done=!0))},Zlib.prototype.params=function(){throw new Error("deflateParams Not supported")},Zlib.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===exports.NONE)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")},Zlib.prototype.write=function(flush,input,in_off,in_len,out,out_off,out_len){this._writeCheck(),this.write_in_progress=!0;var self=this;return process.nextTick(function(){self.write_in_progress=!1;var res=self._write(flush,input,in_off,in_len,out,out_off,out_len);self.callback(res[0],res[1]),self.pending_close&&self.close()}),this},Zlib.prototype.writeSync=function(flush,input,in_off,in_len,out,out_off,out_len){return this._writeCheck(),this._write(flush,input,in_off,in_len,out,out_off,out_len)},Zlib.prototype._write=function(flush,input,in_off,in_len,out,out_off,out_len){if(this.write_in_progress=!0,flush!==exports.Z_NO_FLUSH&&flush!==exports.Z_PARTIAL_FLUSH&&flush!==exports.Z_SYNC_FLUSH&&flush!==exports.Z_FULL_FLUSH&&flush!==exports.Z_FINISH&&flush!==exports.Z_BLOCK)throw new Error("Invalid flush value");null==input&&(input=new Buffer(0),in_len=0,in_off=0),out.set=out._set?out._set:bufferSet;var strm=this.strm;switch(strm.avail_in=in_len,strm.input=input,strm.next_in=in_off,strm.avail_out=out_len,strm.output=out,strm.next_out=out_off,this.mode){case exports.DEFLATE:case exports.GZIP:case exports.DEFLATERAW:var status=zlib_deflate.deflate(strm,flush);break;case exports.UNZIP:case exports.INFLATE:case exports.GUNZIP:case exports.INFLATERAW:var status=zlib_inflate.inflate(strm,flush);break;default:throw new Error("Unknown mode "+this.mode)}return status!==exports.Z_STREAM_END&&status!==exports.Z_OK&&this._error(status),this.write_in_progress=!1,[strm.avail_in,strm.avail_out]},Zlib.prototype.close=function(){return this.write_in_progress?void(this.pending_close=!0):(this.pending_close=!1,this.mode===exports.DEFLATE||this.mode===exports.GZIP||this.mode===exports.DEFLATERAW?zlib_deflate.deflateEnd(this.strm):zlib_inflate.inflateEnd(this.strm),void(this.mode=exports.NONE))},Zlib.prototype.reset=function(){switch(this.mode){case exports.DEFLATE:case exports.DEFLATERAW:var status=zlib_deflate.deflateReset(this.strm);break;case exports.INFLATE:case exports.INFLATERAW:var status=zlib_inflate.inflateReset(this.strm)}status!==exports.Z_OK&&this._error(status)},Zlib.prototype._error=function(status){this.onerror(msg[status]+": "+this.strm.msg,status),this.write_in_progress=!1,this.pending_close&&this.close()},exports.Zlib=Zlib}).call(this,require("_process"),require("buffer").Buffer)},{_process:99,buffer:80,"pako/lib/zlib/constants":153,"pako/lib/zlib/deflate.js":155,"pako/lib/zlib/inflate.js":157,"pako/lib/zlib/messages":159,"pako/lib/zlib/zstream":161}],79:[function(require,module,exports){(function(process,Buffer){function zlibBuffer(engine,buffer,callback){function flow(){for(var chunk;null!==(chunk=engine.read());)buffers.push(chunk),nread+=chunk.length;engine.once("readable",flow)}function onError(err){engine.removeListener("end",onEnd),engine.removeListener("readable",flow),callback(err)}function onEnd(){var buf=Buffer.concat(buffers,nread);buffers=[],callback(null,buf),engine.close()}var buffers=[],nread=0;engine.on("error",onError),engine.on("end",onEnd),engine.end(buffer),flow()}function zlibBufferSync(engine,buffer){if("string"==typeof buffer&&(buffer=new Buffer(buffer)),!Buffer.isBuffer(buffer))throw new TypeError("Not a string or buffer");var flushFlag=binding.Z_FINISH;return engine._processChunk(buffer,flushFlag)}function Deflate(opts){return this instanceof Deflate?void Zlib.call(this,opts,binding.DEFLATE):new Deflate(opts)}function Inflate(opts){return this instanceof Inflate?void Zlib.call(this,opts,binding.INFLATE):new Inflate(opts)}function Gzip(opts){return this instanceof Gzip?void Zlib.call(this,opts,binding.GZIP):new Gzip(opts)}function Gunzip(opts){return this instanceof Gunzip?void Zlib.call(this,opts,binding.GUNZIP):new Gunzip(opts)}function DeflateRaw(opts){return this instanceof DeflateRaw?void Zlib.call(this,opts,binding.DEFLATERAW):new DeflateRaw(opts)}function InflateRaw(opts){return this instanceof InflateRaw?void Zlib.call(this,opts,binding.INFLATERAW):new InflateRaw(opts)}function Unzip(opts){return this instanceof Unzip?void Zlib.call(this,opts,binding.UNZIP):new Unzip(opts)}function Zlib(opts,mode){if(this._opts=opts=opts||{},this._chunkSize=opts.chunkSize||exports.Z_DEFAULT_CHUNK,Transform.call(this,opts),opts.flush&&opts.flush!==binding.Z_NO_FLUSH&&opts.flush!==binding.Z_PARTIAL_FLUSH&&opts.flush!==binding.Z_SYNC_FLUSH&&opts.flush!==binding.Z_FULL_FLUSH&&opts.flush!==binding.Z_FINISH&&opts.flush!==binding.Z_BLOCK)throw new Error("Invalid flush flag: "+opts.flush);if(this._flushFlag=opts.flush||binding.Z_NO_FLUSH,opts.chunkSize&&(opts.chunkSize<exports.Z_MIN_CHUNK||opts.chunkSize>exports.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+opts.chunkSize);if(opts.windowBits&&(opts.windowBits<exports.Z_MIN_WINDOWBITS||opts.windowBits>exports.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+opts.windowBits);if(opts.level&&(opts.level<exports.Z_MIN_LEVEL||opts.level>exports.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+opts.level);if(opts.memLevel&&(opts.memLevel<exports.Z_MIN_MEMLEVEL||opts.memLevel>exports.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+opts.memLevel);if(opts.strategy&&opts.strategy!=exports.Z_FILTERED&&opts.strategy!=exports.Z_HUFFMAN_ONLY&&opts.strategy!=exports.Z_RLE&&opts.strategy!=exports.Z_FIXED&&opts.strategy!=exports.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+opts.strategy);if(opts.dictionary&&!Buffer.isBuffer(opts.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new binding.Zlib(mode);var self=this;this._hadError=!1,this._binding.onerror=function(message,errno){self._binding=null,self._hadError=!0;var error=new Error(message);error.errno=errno,error.code=exports.codes[errno],self.emit("error",error)};var level=exports.Z_DEFAULT_COMPRESSION;"number"==typeof opts.level&&(level=opts.level);var strategy=exports.Z_DEFAULT_STRATEGY;"number"==typeof opts.strategy&&(strategy=opts.strategy),this._binding.init(opts.windowBits||exports.Z_DEFAULT_WINDOWBITS,level,opts.memLevel||exports.Z_DEFAULT_MEMLEVEL,strategy,opts.dictionary),this._buffer=new Buffer(this._chunkSize),this._offset=0,this._closed=!1,this._level=level,this._strategy=strategy,this.once("end",this.close)}var Transform=require("_stream_transform"),binding=require("./binding"),util=require("util"),assert=require("assert").ok;binding.Z_MIN_WINDOWBITS=8,binding.Z_MAX_WINDOWBITS=15,binding.Z_DEFAULT_WINDOWBITS=15,binding.Z_MIN_CHUNK=64,binding.Z_MAX_CHUNK=1/0,binding.Z_DEFAULT_CHUNK=16384,binding.Z_MIN_MEMLEVEL=1,binding.Z_MAX_MEMLEVEL=9,binding.Z_DEFAULT_MEMLEVEL=8,binding.Z_MIN_LEVEL=-1,binding.Z_MAX_LEVEL=9,binding.Z_DEFAULT_LEVEL=binding.Z_DEFAULT_COMPRESSION,Object.keys(binding).forEach(function(k){k.match(/^Z/)&&(exports[k]=binding[k])}),exports.codes={Z_OK:binding.Z_OK,Z_STREAM_END:binding.Z_STREAM_END,Z_NEED_DICT:binding.Z_NEED_DICT,Z_ERRNO:binding.Z_ERRNO,Z_STREAM_ERROR:binding.Z_STREAM_ERROR,Z_DATA_ERROR:binding.Z_DATA_ERROR,Z_MEM_ERROR:binding.Z_MEM_ERROR,Z_BUF_ERROR:binding.Z_BUF_ERROR,Z_VERSION_ERROR:binding.Z_VERSION_ERROR},Object.keys(exports.codes).forEach(function(k){exports.codes[exports.codes[k]]=k}),exports.Deflate=Deflate,exports.Inflate=Inflate,exports.Gzip=Gzip,exports.Gunzip=Gunzip,exports.DeflateRaw=DeflateRaw,exports.InflateRaw=InflateRaw,exports.Unzip=Unzip,exports.createDeflate=function(o){return new Deflate(o)},exports.createInflate=function(o){return new Inflate(o)},exports.createDeflateRaw=function(o){return new DeflateRaw(o)},exports.createInflateRaw=function(o){return new InflateRaw(o)},exports.createGzip=function(o){return new Gzip(o)},exports.createGunzip=function(o){return new Gunzip(o)},exports.createUnzip=function(o){return new Unzip(o)},exports.deflate=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Deflate(opts),buffer,callback)},exports.deflateSync=function(buffer,opts){return zlibBufferSync(new Deflate(opts),buffer)},exports.gzip=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Gzip(opts),buffer,callback)},exports.gzipSync=function(buffer,opts){return zlibBufferSync(new Gzip(opts),buffer)},exports.deflateRaw=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new DeflateRaw(opts),buffer,callback)},exports.deflateRawSync=function(buffer,opts){return zlibBufferSync(new DeflateRaw(opts),buffer)},exports.unzip=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Unzip(opts),buffer,callback)},exports.unzipSync=function(buffer,opts){return zlibBufferSync(new Unzip(opts),buffer)},exports.inflate=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Inflate(opts),buffer,callback)},exports.inflateSync=function(buffer,opts){return zlibBufferSync(new Inflate(opts),buffer)},exports.gunzip=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new Gunzip(opts),buffer,callback)},exports.gunzipSync=function(buffer,opts){return zlibBufferSync(new Gunzip(opts),buffer)},exports.inflateRaw=function(buffer,opts,callback){return"function"==typeof opts&&(callback=opts,opts={}),zlibBuffer(new InflateRaw(opts),buffer,callback)},exports.inflateRawSync=function(buffer,opts){return zlibBufferSync(new InflateRaw(opts),buffer)},util.inherits(Zlib,Transform),Zlib.prototype.params=function(level,strategy,callback){if(level<exports.Z_MIN_LEVEL||level>exports.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+level);if(strategy!=exports.Z_FILTERED&&strategy!=exports.Z_HUFFMAN_ONLY&&strategy!=exports.Z_RLE&&strategy!=exports.Z_FIXED&&strategy!=exports.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+strategy);if(this._level!==level||this._strategy!==strategy){var self=this;this.flush(binding.Z_SYNC_FLUSH,function(){self._binding.params(level,strategy),self._hadError||(self._level=level,self._strategy=strategy,callback&&callback())})}else process.nextTick(callback)},Zlib.prototype.reset=function(){return this._binding.reset()},Zlib.prototype._flush=function(callback){this._transform(new Buffer(0),"",callback)},Zlib.prototype.flush=function(kind,callback){var ws=this._writableState;if(("function"==typeof kind||void 0===kind&&!callback)&&(callback=kind,kind=binding.Z_FULL_FLUSH),ws.ended)callback&&process.nextTick(callback);else if(ws.ending)callback&&this.once("end",callback);else if(ws.needDrain){var self=this;this.once("drain",function(){self.flush(callback)})}else this._flushFlag=kind,this.write(new Buffer(0),"",callback)},Zlib.prototype.close=function(callback){if(callback&&process.nextTick(callback),!this._closed){this._closed=!0,this._binding.close();var self=this;process.nextTick(function(){self.emit("close")})}},Zlib.prototype._transform=function(chunk,encoding,cb){var flushFlag,ws=this._writableState,ending=ws.ending||ws.ended,last=ending&&(!chunk||ws.length===chunk.length);if(null===!chunk&&!Buffer.isBuffer(chunk))return cb(new Error("invalid input"));last?flushFlag=binding.Z_FINISH:(flushFlag=this._flushFlag,chunk.length>=ws.length&&(this._flushFlag=this._opts.flush||binding.Z_NO_FLUSH));this._processChunk(chunk,flushFlag,cb)},Zlib.prototype._processChunk=function(chunk,flushFlag,cb){function callback(availInAfter,availOutAfter){if(!self._hadError){var have=availOutBefore-availOutAfter;if(assert(have>=0,"have should not go down"),have>0){var out=self._buffer.slice(self._offset,self._offset+have);self._offset+=have,async?self.push(out):(buffers.push(out),nread+=out.length)}if((0===availOutAfter||self._offset>=self._chunkSize)&&(availOutBefore=self._chunkSize,self._offset=0,self._buffer=new Buffer(self._chunkSize)),0===availOutAfter){if(inOff+=availInBefore-availInAfter,availInBefore=availInAfter,!async)return!0;var newReq=self._binding.write(flushFlag,chunk,inOff,availInBefore,self._buffer,self._offset,self._chunkSize);return newReq.callback=callback,void(newReq.buffer=chunk)}return async?void cb():!1}}var availInBefore=chunk&&chunk.length,availOutBefore=this._chunkSize-this._offset,inOff=0,self=this,async="function"==typeof cb;if(!async){var error,buffers=[],nread=0;this.on("error",function(er){error=er});do var res=this._binding.writeSync(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore);while(!this._hadError&&callback(res[0],res[1]));if(this._hadError)throw error;var buf=Buffer.concat(buffers,nread);return this.close(),buf}var req=this._binding.write(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore);req.buffer=chunk,req.callback=callback},util.inherits(Deflate,Zlib),util.inherits(Inflate,Zlib),util.inherits(Gzip,Zlib),util.inherits(Gunzip,Zlib),util.inherits(DeflateRaw,Zlib),util.inherits(InflateRaw,Zlib),util.inherits(Unzip,Zlib)}).call(this,require("_process"),require("buffer").Buffer)},{"./binding":78,_process:99,_stream_transform:110,assert:75,buffer:80,util:114}],80:[function(require,module,exports){function Buffer(subject,encoding,noZero){if(!(this instanceof Buffer))return new Buffer(subject,encoding,noZero);var length,type=typeof subject;if("number"===type)length=subject>0?subject>>>0:0;else if("string"===type)"base64"===encoding&&(subject=base64clean(subject)),length=Buffer.byteLength(subject,encoding);else{if("object"!==type||null===subject)throw new Error("First argument needs to be a number, array or string.");"Buffer"===subject.type&&isArray(subject.data)&&(subject=subject.data),length=+subject.length>0?Math.floor(+subject.length):0}var buf;TYPED_ARRAY_SUPPORT?buf=Buffer._augment(new Uint8Array(length)):(buf=this,buf.length=length,buf._isBuffer=!0);var i;if(TYPED_ARRAY_SUPPORT&&"number"==typeof subject.byteLength)buf._set(subject);else if(isArrayish(subject))if(Buffer.isBuffer(subject))for(i=0;length>i;i++)buf[i]=subject.readUInt8(i);else for(i=0;length>i;i++)buf[i]=(subject[i]%256+256)%256;else if("string"===type)buf.write(subject,0,encoding);else if("number"===type&&!TYPED_ARRAY_SUPPORT&&!noZero)for(i=0;length>i;i++)buf[i]=0;return buf}function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;assert(strLen%2===0,"Invalid hex string"),length>strLen/2&&(length=strLen/2);for(var i=0;length>i;i++){var byte=parseInt(string.substr(2*i,2),16);assert(!isNaN(byte),"Invalid hex string"),buf[offset+i]=byte}return i}function utf8Write(buf,string,offset,length){var charsWritten=blitBuffer(utf8ToBytes(string),buf,offset,length);return charsWritten}function asciiWrite(buf,string,offset,length){var charsWritten=blitBuffer(asciiToBytes(string),buf,offset,length);return charsWritten}function binaryWrite(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){var charsWritten=blitBuffer(base64ToBytes(string),buf,offset,length);return charsWritten}function utf16leWrite(buf,string,offset,length){var charsWritten=blitBuffer(utf16leToBytes(string),buf,offset,length);return charsWritten}function base64Slice(buf,start,end){return base64.fromByteArray(0===start&&end===buf.length?buf:buf.slice(start,end))}function utf8Slice(buf,start,end){var res="",tmp="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)buf[i]<=127?(res+=decodeUtf8Char(tmp)+String.fromCharCode(buf[i]),tmp=""):tmp+="%"+buf[i].toString(16);return res+decodeUtf8Char(tmp)}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;end>i;i++)ret+=String.fromCharCode(buf[i]);return ret}function binarySlice(buf,start,end){return asciiSlice(buf,start,end)}function hexSlice(buf,start,end){var len=buf.length;(!start||0>start)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out="",i=start;end>i;i++)out+=toHex(buf[i]);return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length;i+=2)res+=String.fromCharCode(bytes[i]+256*bytes[i+1]);return res}function readUInt16(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+1<buf.length,"Trying to read beyond buffer length"));var len=buf.length;if(!(offset>=len)){var val;return littleEndian?(val=buf[offset],len>offset+1&&(val|=buf[offset+1]<<8)):(val=buf[offset]<<8,len>offset+1&&(val|=buf[offset+1])),val}}function readUInt32(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3<buf.length,"Trying to read beyond buffer length"));var len=buf.length;if(!(offset>=len)){var val;return littleEndian?(len>offset+2&&(val=buf[offset+2]<<16),len>offset+1&&(val|=buf[offset+1]<<8),val|=buf[offset],len>offset+3&&(val+=buf[offset+3]<<24>>>0)):(len>offset+1&&(val=buf[offset+1]<<16),len>offset+2&&(val|=buf[offset+2]<<8),len>offset+3&&(val|=buf[offset+3]),val+=buf[offset]<<24>>>0),val}}function readInt16(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+1<buf.length,"Trying to read beyond buffer length"));var len=buf.length;if(!(offset>=len)){var val=readUInt16(buf,offset,littleEndian,!0),neg=32768&val;return neg?-1*(65535-val+1):val}}function readInt32(buf,offset,littleEndian,noAssert){noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3<buf.length,"Trying to read beyond buffer length"));var len=buf.length;if(!(offset>=len)){var val=readUInt32(buf,offset,littleEndian,!0),neg=2147483648&val;return neg?-1*(4294967295-val+1):val}}function readFloat(buf,offset,littleEndian,noAssert){return noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(offset+3<buf.length,"Trying to read beyond buffer length")),ieee754.read(buf,offset,littleEndian,23,4)}function readDouble(buf,offset,littleEndian,noAssert){return noAssert||(assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(offset+7<buf.length,"Trying to read beyond buffer length")),ieee754.read(buf,offset,littleEndian,52,8)}function writeUInt16(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+1<buf.length,"trying to write beyond buffer length"),verifuint(value,65535));var len=buf.length;if(!(offset>=len)){for(var i=0,j=Math.min(len-offset,2);j>i;i++)buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>8*(littleEndian?i:1-i);return offset+2}}function writeUInt32(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3<buf.length,"trying to write beyond buffer length"),verifuint(value,4294967295));var len=buf.length;
if(!(offset>=len)){for(var i=0,j=Math.min(len-offset,4);j>i;i++)buf[offset+i]=value>>>8*(littleEndian?i:3-i)&255;return offset+4}}function writeInt16(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+1<buf.length,"Trying to write beyond buffer length"),verifsint(value,32767,-32768));var len=buf.length;if(!(offset>=len))return value>=0?writeUInt16(buf,value,offset,littleEndian,noAssert):writeUInt16(buf,65535+value+1,offset,littleEndian,noAssert),offset+2}function writeInt32(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3<buf.length,"Trying to write beyond buffer length"),verifsint(value,2147483647,-2147483648));var len=buf.length;if(!(offset>=len))return value>=0?writeUInt32(buf,value,offset,littleEndian,noAssert):writeUInt32(buf,4294967295+value+1,offset,littleEndian,noAssert),offset+4}function writeFloat(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+3<buf.length,"Trying to write beyond buffer length"),verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38));var len=buf.length;if(!(offset>=len))return ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert("boolean"==typeof littleEndian,"missing or invalid endian"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset+7<buf.length,"Trying to write beyond buffer length"),verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308));var len=buf.length;if(!(offset>=len))return ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){for(str=stringtrim(str).replace(INVALID_BASE64_RE,"");str.length%4!==0;)str+="=";return str}function stringtrim(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")}function isArray(subject){return(Array.isArray||function(subject){return"[object Array]"===Object.prototype.toString.call(subject)})(subject)}function isArrayish(subject){return isArray(subject)||Buffer.isBuffer(subject)||subject&&"object"==typeof subject&&"number"==typeof subject.length}function toHex(n){return 16>n?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(str){for(var byteArray=[],i=0;i<str.length;i++){var b=str.charCodeAt(i);if(127>=b)byteArray.push(b);else{var start=i;b>=55296&&57343>=b&&i++;for(var h=encodeURIComponent(str.slice(start,i+1)).substr(1).split("%"),j=0;j<h.length;j++)byteArray.push(parseInt(h[j],16))}}return byteArray}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function utf16leToBytes(str){for(var c,hi,lo,byteArray=[],i=0;i<str.length;i++)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(str)}function blitBuffer(src,dst,offset,length){for(var i=0;length>i&&!(i+offset>=dst.length||i>=src.length);i++)dst[i+offset]=src[i];return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function verifuint(value,max){assert("number"==typeof value,"cannot write a non-number as a number"),assert(value>=0,"specified a negative value for writing an unsigned value"),assert(max>=value,"value is larger than maximum value for type"),assert(Math.floor(value)===value,"value has a fractional component")}function verifsint(value,max,min){assert("number"==typeof value,"cannot write a non-number as a number"),assert(max>=value,"value larger than maximum allowed value"),assert(value>=min,"value smaller than minimum allowed value"),assert(Math.floor(value)===value,"value has a fractional component")}function verifIEEE754(value,max,min){assert("number"==typeof value,"cannot write a non-number as a number"),assert(max>=value,"value larger than maximum allowed value"),assert(value>=min,"value smaller than minimum allowed value")}function assert(test,message){if(!test)throw new Error(message||"Failed assertion")}var base64=require("base64-js"),ieee754=require("ieee754");exports.Buffer=Buffer,exports.SlowBuffer=Buffer,exports.INSPECT_MAX_BYTES=50,Buffer.poolSize=8192;var TYPED_ARRAY_SUPPORT=function(){try{var buf=new ArrayBuffer(0),arr=new Uint8Array(buf);return arr.foo=function(){return 42},42===arr.foo()&&"function"==typeof arr.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(e){return!1}}();Buffer.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.isBuffer=function(b){return!(null==b||!b._isBuffer)},Buffer.byteLength=function(str,encoding){var ret;switch(str=str.toString(),encoding||"utf8"){case"hex":ret=str.length/2;break;case"utf8":case"utf-8":ret=utf8ToBytes(str).length;break;case"ascii":case"binary":case"raw":ret=str.length;break;case"base64":ret=base64ToBytes(str).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=2*str.length;break;default:throw new Error("Unknown encoding")}return ret},Buffer.concat=function(list,totalLength){if(assert(isArray(list),"Usage: Buffer.concat(list[, length])"),0===list.length)return new Buffer(0);if(1===list.length)return list[0];var i;if(void 0===totalLength)for(totalLength=0,i=0;i<list.length;i++)totalLength+=list[i].length;var buf=new Buffer(totalLength),pos=0;for(i=0;i<list.length;i++){var item=list[i];item.copy(buf,pos),pos+=item.length}return buf},Buffer.compare=function(a,b){assert(Buffer.isBuffer(a)&&Buffer.isBuffer(b),"Arguments must be Buffers");for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);len>i&&a[i]===b[i];i++);return i!==len&&(x=a[i],y=b[i]),y>x?-1:x>y?1:0},Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset))isFinite(length)||(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=length,length=swap}offset=Number(offset)||0;var remaining=this.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining,encoding=String(encoding||"utf8").toLowerCase();var ret;switch(encoding){case"hex":ret=hexWrite(this,string,offset,length);break;case"utf8":case"utf-8":ret=utf8Write(this,string,offset,length);break;case"ascii":ret=asciiWrite(this,string,offset,length);break;case"binary":ret=binaryWrite(this,string,offset,length);break;case"base64":ret=base64Write(this,string,offset,length);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=utf16leWrite(this,string,offset,length);break;default:throw new Error("Unknown encoding")}return ret},Buffer.prototype.toString=function(encoding,start,end){var self=this;if(encoding=String(encoding||"utf8").toLowerCase(),start=Number(start)||0,end=void 0===end?self.length:Number(end),end===start)return"";var ret;switch(encoding){case"hex":ret=hexSlice(self,start,end);break;case"utf8":case"utf-8":ret=utf8Slice(self,start,end);break;case"ascii":ret=asciiSlice(self,start,end);break;case"binary":ret=binarySlice(self,start,end);break;case"base64":ret=base64Slice(self,start,end);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=utf16leSlice(self,start,end);break;default:throw new Error("Unknown encoding")}return ret},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Buffer.prototype.equals=function(b){return assert(Buffer.isBuffer(b),"Argument must be a Buffer"),0===Buffer.compare(this,b)},Buffer.prototype.compare=function(b){return assert(Buffer.isBuffer(b),"Argument must be a Buffer"),Buffer.compare(this,b)},Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(start||(start=0),end||0===end||(end=this.length),target_start||(target_start=0),end!==start&&0!==target.length&&0!==source.length){assert(end>=start,"sourceEnd < sourceStart"),assert(target_start>=0&&target_start<target.length,"targetStart out of bounds"),assert(start>=0&&start<source.length,"sourceStart out of bounds"),assert(end>=0&&end<=source.length,"sourceEnd out of bounds"),end>this.length&&(end=this.length),target.length-target_start<end-start&&(end=target.length-target_start+start);var len=end-start;if(100>len||!TYPED_ARRAY_SUPPORT)for(var i=0;len>i;i++)target[i+target_start]=this[i+start];else target._set(this.subarray(start,start+len),target_start)}},Buffer.prototype.slice=function(start,end){var len=this.length;if(start=~~start,end=void 0===end?len:~~end,0>start?(start+=len,0>start&&(start=0)):start>len&&(start=len),0>end?(end+=len,0>end&&(end=0)):end>len&&(end=len),start>end&&(end=start),TYPED_ARRAY_SUPPORT)return Buffer._augment(this.subarray(start,end));for(var sliceLen=end-start,newBuf=new Buffer(sliceLen,void 0,!0),i=0;sliceLen>i;i++)newBuf[i]=this[i+start];return newBuf},Buffer.prototype.get=function(offset){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(offset)},Buffer.prototype.set=function(v,offset){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(v,offset)},Buffer.prototype.readUInt8=function(offset,noAssert){return noAssert||(assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset<this.length,"Trying to read beyond buffer length")),offset>=this.length?void 0:this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,!0,noAssert)},Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,!1,noAssert)},Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,!0,noAssert)},Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,!1,noAssert)},Buffer.prototype.readInt8=function(offset,noAssert){if(noAssert||(assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset<this.length,"Trying to read beyond buffer length")),!(offset>=this.length)){var neg=128&this[offset];return neg?-1*(255-this[offset]+1):this[offset]}},Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,!0,noAssert)},Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,!1,noAssert)},Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,!0,noAssert)},Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,!1,noAssert)},Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,!0,noAssert)},Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,!1,noAssert)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,!0,noAssert)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,!1,noAssert)},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset<this.length,"trying to write beyond buffer length"),verifuint(value,255)),offset>=this.length?void 0:(this[offset]=value,offset+1)},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return writeUInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return writeUInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return writeUInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return writeUInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt8=function(value,offset,noAssert){return noAssert||(assert(void 0!==value&&null!==value,"missing value"),assert(void 0!==offset&&null!==offset,"missing offset"),assert(offset<this.length,"Trying to write beyond buffer length"),verifsint(value,127,-128)),offset>=this.length?void 0:(value>=0?this.writeUInt8(value,offset,noAssert):this.writeUInt8(255+value+1,offset,noAssert),offset+1)},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return writeInt16(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return writeInt16(this,value,offset,!1,noAssert)},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return writeInt32(this,value,offset,!0,noAssert)},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return writeInt32(this,value,offset,!1,noAssert)},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),assert(end>=start,"end < start"),end!==start&&0!==this.length){assert(start>=0&&start<this.length,"start out of bounds"),assert(end>=0&&end<=this.length,"end out of bounds");var i;if("number"==typeof value)for(i=start;end>i;i++)this[i]=value;else{var bytes=utf8ToBytes(value.toString()),len=bytes.length;for(i=start;end>i;i++)this[i]=bytes[i%len]}return this}},Buffer.prototype.inspect=function(){for(var out=[],len=this.length,i=0;len>i;i++)if(out[i]=toHex(this[i]),i===exports.INSPECT_MAX_BYTES){out[i+1]="...";break}return"<Buffer "+out.join(" ")+">"},Buffer.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(TYPED_ARRAY_SUPPORT)return new Buffer(this).buffer;for(var buf=new Uint8Array(this.length),i=0,len=buf.length;len>i;i+=1)buf[i]=this[i];return buf.buffer}throw new Error("Buffer.toArrayBuffer not supported in this browser")};var BP=Buffer.prototype;Buffer._augment=function(arr){return arr._isBuffer=!0,arr._get=arr.get,arr._set=arr.set,arr.get=BP.get,arr.set=BP.set,arr.write=BP.write,arr.toString=BP.toString,arr.toLocaleString=BP.toString,arr.toJSON=BP.toJSON,arr.equals=BP.equals,arr.compare=BP.compare,arr.copy=BP.copy,arr.slice=BP.slice,arr.readUInt8=BP.readUInt8,arr.readUInt16LE=BP.readUInt16LE,arr.readUInt16BE=BP.readUInt16BE,arr.readUInt32LE=BP.readUInt32LE,arr.readUInt32BE=BP.readUInt32BE,arr.readInt8=BP.readInt8,arr.readInt16LE=BP.readInt16LE,arr.readInt16BE=BP.readInt16BE,arr.readInt32LE=BP.readInt32LE,arr.readInt32BE=BP.readInt32BE,arr.readFloatLE=BP.readFloatLE,arr.readFloatBE=BP.readFloatBE,arr.readDoubleLE=BP.readDoubleLE,arr.readDoubleBE=BP.readDoubleBE,arr.writeUInt8=BP.writeUInt8,arr.writeUInt16LE=BP.writeUInt16LE,arr.writeUInt16BE=BP.writeUInt16BE,arr.writeUInt32LE=BP.writeUInt32LE,arr.writeUInt32BE=BP.writeUInt32BE,arr.writeInt8=BP.writeInt8,arr.writeInt16LE=BP.writeInt16LE,arr.writeInt16BE=BP.writeInt16BE,arr.writeInt32LE=BP.writeInt32LE,arr.writeInt32BE=BP.writeInt32BE,arr.writeFloatLE=BP.writeFloatLE,arr.writeFloatBE=BP.writeFloatBE,arr.writeDoubleLE=BP.writeDoubleLE,arr.writeDoubleBE=BP.writeDoubleBE,arr.fill=BP.fill,arr.inspect=BP.inspect,arr.toArrayBuffer=BP.toArrayBuffer,arr};var INVALID_BASE64_RE=/[^+\/0-9A-z]/g},{"base64-js":81,ieee754:82}],81:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(exports){"use strict";function decode(elt){var code=elt.charCodeAt(0);return code===PLUS?62:code===SLASH?63:NUMBER>code?-1:NUMBER+10>code?code-NUMBER+26+26:UPPER+26>code?code-UPPER:LOWER+26>code?code-LOWER+26:void 0}function b64ToByteArray(b64){function push(v){arr[L++]=v}var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0,arr=new Arr(3*b64.length/4-placeHolders),l=placeHolders>0?b64.length-4:b64.length;var L=0;for(i=0,j=0;l>i;i+=4,j+=3)tmp=decode(b64.charAt(i))<<18|decode(b64.charAt(i+1))<<12|decode(b64.charAt(i+2))<<6|decode(b64.charAt(i+3)),push((16711680&tmp)>>16),push((65280&tmp)>>8),push(255&tmp);return 2===placeHolders?(tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4,push(255&tmp)):1===placeHolders&&(tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2,push(tmp>>8&255),push(255&tmp)),arr}function uint8ToBase64(uint8){function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(63&num)}var i,temp,length,extraBytes=uint8.length%3,output="";for(i=0,length=uint8.length-extraBytes;length>i;i+=3)temp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=encode(temp>>2),output+=encode(temp<<4&63),output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1],output+=encode(temp>>10),output+=encode(temp>>4&63),output+=encode(temp<<2&63),output+="="}return output}var Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,PLUS="+".charCodeAt(0),SLASH="/".charCodeAt(0),NUMBER="0".charCodeAt(0),LOWER="a".charCodeAt(0),UPPER="A".charCodeAt(0);exports.toByteArray=b64ToByteArray,exports.fromByteArray=uint8ToBase64}("undefined"==typeof exports?this.base64js={}:exports)},{}],82:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?0/0:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=0>value||0===value&&0>1/value?1:0;for(value=Math.abs(value),isNaN(value)||1/0===value?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],83:[function(require,module){(function(Buffer){function toConstructor(fn){return function(){var buffers=[],m={update:function(data,enc){return Buffer.isBuffer(data)||(data=new Buffer(data,enc)),buffers.push(data),this},digest:function(enc){var buf=Buffer.concat(buffers),r=fn(buf);return buffers=null,enc?r.toString(enc):r}};return m}}var createHash=require("sha.js"),md5=toConstructor(require("./md5")),rmd160=toConstructor(require("ripemd160"));module.exports=function(alg){return"md5"===alg?new md5:"rmd160"===alg?new rmd160:createHash(alg)}}).call(this,require("buffer").Buffer)},{"./md5":87,buffer:80,ripemd160:88,"sha.js":90}],84:[function(require,module){(function(Buffer){function Hmac(alg,key){if(!(this instanceof Hmac))return new Hmac(alg,key);this._opad=opad,this._alg=alg,key=this._key=Buffer.isBuffer(key)?key:new Buffer(key),key.length>blocksize?key=createHash(alg).update(key).digest():key.length<blocksize&&(key=Buffer.concat([key,zeroBuffer],blocksize));for(var ipad=this._ipad=new Buffer(blocksize),opad=this._opad=new Buffer(blocksize),i=0;blocksize>i;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=createHash(alg).update(ipad)}var createHash=require("./create-hash"),blocksize=64,zeroBuffer=new Buffer(blocksize);zeroBuffer.fill(0),module.exports=Hmac,Hmac.prototype.update=function(data,enc){return this._hash.update(data,enc),this},Hmac.prototype.digest=function(enc){var h=this._hash.digest();return createHash(this._alg).update(this._opad).update(h).digest(enc)}}).call(this,require("buffer").Buffer)},{"./create-hash":83,buffer:80}],85:[function(require,module){(function(Buffer){function toArray(buf,bigEndian){if(buf.length%intSize!==0){var len=buf.length+(intSize-buf.length%intSize);buf=Buffer.concat([buf,zeroBuffer],len)}for(var arr=[],fn=bigEndian?buf.readInt32BE:buf.readInt32LE,i=0;i<buf.length;i+=intSize)arr.push(fn.call(buf,i));return arr}function toBuffer(arr,size,bigEndian){for(var buf=new Buffer(size),fn=bigEndian?buf.writeInt32BE:buf.writeInt32LE,i=0;i<arr.length;i++)fn.call(buf,arr[i],4*i,!0);return buf}function hash(buf,fn,hashSize,bigEndian){Buffer.isBuffer(buf)||(buf=new Buffer(buf));var arr=fn(toArray(buf,bigEndian),buf.length*chrsz);return toBuffer(arr,hashSize,bigEndian)}var intSize=4,zeroBuffer=new Buffer(intSize);zeroBuffer.fill(0);var chrsz=8;module.exports={hash:hash}}).call(this,require("buffer").Buffer)},{buffer:80}],86:[function(require,module,exports){(function(Buffer){function error(){var m=[].slice.call(arguments).join(" ");throw new Error([m,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}function each(a,f){for(var i in a)f(a[i],i)}var rng=require("./rng");exports.createHash=require("./create-hash"),exports.createHmac=require("./create-hmac"),exports.randomBytes=function(size,callback){if(!callback||!callback.call)return new Buffer(rng(size));try{callback.call(this,void 0,new Buffer(rng(size)))}catch(err){callback(err)}},exports.getHashes=function(){return["sha1","sha256","md5","rmd160"]};var p=require("./pbkdf2")(exports.createHmac);exports.pbkdf2=p.pbkdf2,exports.pbkdf2Sync=p.pbkdf2Sync,each(["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman"],function(name){exports[name]=function(){error("sorry,",name,"is not implemented yet")}})}).call(this,require("buffer").Buffer)},{"./create-hash":83,"./create-hmac":84,"./pbkdf2":94,"./rng":95,buffer:80}],87:[function(require,module){function core_md5(x,len){x[len>>5]|=128<<len%32,x[(len+64>>>9<<4)+14]=len;for(var a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<x.length;i+=16){var olda=a,oldb=b,oldc=c,oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936),d=md5_ff(d,a,b,c,x[i+1],12,-389564586),c=md5_ff(c,d,a,b,x[i+2],17,606105819),b=md5_ff(b,c,d,a,x[i+3],22,-1044525330),a=md5_ff(a,b,c,d,x[i+4],7,-176418897),d=md5_ff(d,a,b,c,x[i+5],12,1200080426),c=md5_ff(c,d,a,b,x[i+6],17,-1473231341),b=md5_ff(b,c,d,a,x[i+7],22,-45705983),a=md5_ff(a,b,c,d,x[i+8],7,1770035416),d=md5_ff(d,a,b,c,x[i+9],12,-1958414417),c=md5_ff(c,d,a,b,x[i+10],17,-42063),b=md5_ff(b,c,d,a,x[i+11],22,-1990404162),a=md5_ff(a,b,c,d,x[i+12],7,1804603682),d=md5_ff(d,a,b,c,x[i+13],12,-40341101),c=md5_ff(c,d,a,b,x[i+14],17,-1502002290),b=md5_ff(b,c,d,a,x[i+15],22,1236535329),a=md5_gg(a,b,c,d,x[i+1],5,-165796510),d=md5_gg(d,a,b,c,x[i+6],9,-1069501632),c=md5_gg(c,d,a,b,x[i+11],14,643717713),b=md5_gg(b,c,d,a,x[i+0],20,-373897302),a=md5_gg(a,b,c,d,x[i+5],5,-701558691),d=md5_gg(d,a,b,c,x[i+10],9,38016083),c=md5_gg(c,d,a,b,x[i+15],14,-660478335),b=md5_gg(b,c,d,a,x[i+4],20,-405537848),a=md5_gg(a,b,c,d,x[i+9],5,568446438),d=md5_gg(d,a,b,c,x[i+14],9,-1019803690),c=md5_gg(c,d,a,b,x[i+3],14,-187363961),b=md5_gg(b,c,d,a,x[i+8],20,1163531501),a=md5_gg(a,b,c,d,x[i+13],5,-1444681467),d=md5_gg(d,a,b,c,x[i+2],9,-51403784),c=md5_gg(c,d,a,b,x[i+7],14,1735328473),b=md5_gg(b,c,d,a,x[i+12],20,-1926607734),a=md5_hh(a,b,c,d,x[i+5],4,-378558),d=md5_hh(d,a,b,c,x[i+8],11,-2022574463),c=md5_hh(c,d,a,b,x[i+11],16,1839030562),b=md5_hh(b,c,d,a,x[i+14],23,-35309556),a=md5_hh(a,b,c,d,x[i+1],4,-1530992060),d=md5_hh(d,a,b,c,x[i+4],11,1272893353),c=md5_hh(c,d,a,b,x[i+7],16,-155497632),b=md5_hh(b,c,d,a,x[i+10],23,-1094730640),a=md5_hh(a,b,c,d,x[i+13],4,681279174),d=md5_hh(d,a,b,c,x[i+0],11,-358537222),c=md5_hh(c,d,a,b,x[i+3],16,-722521979),b=md5_hh(b,c,d,a,x[i+6],23,76029189),a=md5_hh(a,b,c,d,x[i+9],4,-640364487),d=md5_hh(d,a,b,c,x[i+12],11,-421815835),c=md5_hh(c,d,a,b,x[i+15],16,530742520),b=md5_hh(b,c,d,a,x[i+2],23,-995338651),a=md5_ii(a,b,c,d,x[i+0],6,-198630844),d=md5_ii(d,a,b,c,x[i+7],10,1126891415),c=md5_ii(c,d,a,b,x[i+14],15,-1416354905),b=md5_ii(b,c,d,a,x[i+5],21,-57434055),a=md5_ii(a,b,c,d,x[i+12],6,1700485571),d=md5_ii(d,a,b,c,x[i+3],10,-1894986606),c=md5_ii(c,d,a,b,x[i+10],15,-1051523),b=md5_ii(b,c,d,a,x[i+1],21,-2054922799),a=md5_ii(a,b,c,d,x[i+8],6,1873313359),d=md5_ii(d,a,b,c,x[i+15],10,-30611744),c=md5_ii(c,d,a,b,x[i+6],15,-1560198380),b=md5_ii(b,c,d,a,x[i+13],21,1309151649),a=md5_ii(a,b,c,d,x[i+4],6,-145523070),d=md5_ii(d,a,b,c,x[i+11],10,-1120210379),c=md5_ii(c,d,a,b,x[i+2],15,718787259),b=md5_ii(b,c,d,a,x[i+9],21,-343485551),a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd)}return Array(a,b,c,d)}function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)}function md5_ff(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)}function md5_gg(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)}function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)}function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function bit_rol(num,cnt){return num<<cnt|num>>>32-cnt}var helpers=require("./helpers");module.exports=function(buf){return helpers.hash(buf,core_md5,16)}},{"./helpers":85}],88:[function(require,module){(function(Buffer){function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<<n|x>>>32-n}function ripemd160(message){var H=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof message&&(message=new Buffer(message,"utf8"));var m=bytesToWords(message),nBitsLeft=8*message.length,nBitsTotal=8*message.length;m[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,m[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8);for(var i=0;i<m.length;i+=16)processBlock(H,m,i);for(var i=0;5>i;i++){var H_i=H[i];H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8)}var digestbytes=wordsToBytes(H);return new Buffer(digestbytes)}module.exports=ripemd160;var zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0],bytesToWords=function(bytes){for(var words=[],i=0,b=0;i<bytes.length;i++,b+=8)words[b>>>5]|=bytes[i]<<24-b%32;return words},wordsToBytes=function(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes},processBlock=function(H,M,offset){for(var i=0;16>i;i++){var offset_i=offset+i,M_offset_i=M[offset_i];M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8)}var al,bl,cl,dl,el,ar,br,cr,dr,er;ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4];for(var t,i=0;80>i;i+=1)t=al+M[offset+zl[i]]|0,t+=16>i?f1(bl,cl,dl)+hl[0]:32>i?f2(bl,cl,dl)+hl[1]:48>i?f3(bl,cl,dl)+hl[2]:64>i?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t=0|t,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=16>i?f5(br,cr,dr)+hr[0]:32>i?f4(br,cr,dr)+hr[1]:48>i?f3(br,cr,dr)+hr[2]:64>i?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t=0|t,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t}}).call(this,require("buffer").Buffer)},{buffer:80}],89:[function(require,module){var u=require("./util"),write=u.write,fill=u.zeroFill;module.exports=function(Buffer){function Hash(blockSize,finalSize){this._block=new Buffer(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0,this._s=0}function lengthOf(data,enc){return null==enc?data.byteLength||data.length:"ascii"==enc||"binary"==enc?data.length:"hex"==enc?data.length/2:"base64"==enc?data.length/3:void 0}return Hash.prototype.init=function(){this._s=0,this._len=0},Hash.prototype.update=function(data,enc){var length,bl=this._blockSize;enc||"string"!=typeof data||(enc="utf8"),enc?("utf-8"===enc&&(enc="utf8"),("base64"===enc||"utf8"===enc)&&(data=new Buffer(data,enc),enc=null),length=lengthOf(data,enc)):length=data.byteLength||data.length;for(var l=this._len+=length,s=this._s=this._s||0,f=0,buffer=this._block;l>s;){var t=Math.min(length,f+bl-s%bl);write(buffer,data,enc,s%bl,f,t);var ch=t-f;s+=ch,f+=ch,s%bl||this._update(buffer)}return this._s=s,this},Hash.prototype.digest=function(enc){var bl=this._blockSize,fl=this._finalSize,len=8*this._len,x=this._block,bits=len%(8*bl);x[this._len%bl]=128,fill(this._block,this._len%bl+1),bits>=8*fl&&(this._update(this._block),u.zeroFill(this._block,0)),x.writeInt32BE(len,fl+4);var hash=this._update(this._block)||this._hash();return null==enc?hash:hash.toString(enc)},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},Hash}},{"./util":93}],90:[function(require,module,exports){var exports=module.exports=function(alg){var Alg=exports[alg];if(!Alg)throw new Error(alg+" is not supported (we accept pull requests)");return new Alg},Buffer=require("buffer").Buffer,Hash=require("./hash")(Buffer);exports.sha=exports.sha1=require("./sha1")(Buffer,Hash),exports.sha256=require("./sha256")(Buffer,Hash)},{"./hash":89,"./sha1":91,"./sha256":92,buffer:80}],91:[function(require,module){module.exports=function(Buffer,Hash){function Sha1(){return POOL.length?POOL.pop().init():this instanceof Sha1?(this._w=W,Hash.call(this,64,56),this._h=null,void this.init()):new Sha1}function sha1_ft(t,b,c,d){return 20>t?b&c|~b&d:40>t?b^c^d:60>t?b&c|b&d|c&d:b^c^d}function sha1_kt(t){return 20>t?1518500249:40>t?1859775393:60>t?-1894007588:-899497514}function add(x,y){return x+y|0}function rol(num,cnt){return num<<cnt|num>>>32-cnt}var inherits=require("util").inherits;inherits(Sha1,Hash);var A=0,B=4,C=8,D=12,E=16,W=new Int32Array(80),POOL=[];Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,Hash.prototype.init.call(this),this},Sha1.prototype._POOL=POOL;new Buffer(1)instanceof DataView;return Sha1.prototype._update=function(){{var a,b,c,d,e,_a,_b,_c,_d,_e,X=this._block;this._h}a=_a=this._a,b=_b=this._b,c=_c=this._c,d=_d=this._d,e=_e=this._e;for(var w=this._w,j=0;80>j;j++){var W=w[j]=16>j?X.readInt32BE(4*j):rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1),t=add(add(rol(a,5),sha1_ft(j,b,c,d)),add(add(e,W),sha1_kt(j)));e=d,d=c,c=rol(b,30),b=a,a=t}this._a=add(a,_a),this._b=add(b,_b),this._c=add(c,_c),this._d=add(d,_d),this._e=add(e,_e)
},Sha1.prototype._hash=function(){POOL.length<100&&POOL.push(this);var H=new Buffer(20);return H.writeInt32BE(0|this._a,A),H.writeInt32BE(0|this._b,B),H.writeInt32BE(0|this._c,C),H.writeInt32BE(0|this._d,D),H.writeInt32BE(0|this._e,E),H},Sha1}},{util:114}],92:[function(require,module){{var inherits=require("util").inherits;require("./util")}module.exports=function(Buffer,Hash){function Sha256(){POOL.length,this.init(),this._w=W,Hash.call(this,64,56)}function S(X,n){return X>>>n|X<<32-n}function R(X,n){return X>>>n}function Ch(x,y,z){return x&y^~x&z}function Maj(x,y,z){return x&y^x&z^y&z}function Sigma0256(x){return S(x,2)^S(x,13)^S(x,22)}function Sigma1256(x){return S(x,6)^S(x,11)^S(x,25)}function Gamma0256(x){return S(x,7)^S(x,18)^R(x,3)}function Gamma1256(x){return S(x,17)^S(x,19)^R(x,10)}var K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];inherits(Sha256,Hash);var W=new Array(64),POOL=[];Sha256.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this._len=this._s=0,this};return Sha256.prototype._update=function(){var a,b,c,d,e,f,g,h,T1,T2,M=this._block,W=this._w;a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h;for(var j=0;64>j;j++){var w=W[j]=16>j?M.readInt32BE(4*j):Gamma1256(W[j-2])+W[j-7]+Gamma0256(W[j-15])+W[j-16];T1=h+Sigma1256(e)+Ch(e,f,g)+K[j]+w,T2=Sigma0256(a)+Maj(a,b,c),h=g,g=f,f=e,e=d+T1,d=c,c=b,b=a,a=T1+T2}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){POOL.length<10&&POOL.push(this);var H=new Buffer(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},Sha256}},{"./util":93,util:114}],93:[function(require,module,exports){function write(buffer,string,enc,start,from,to){var l=to-from;if("ascii"===enc||"binary"===enc)for(var i=0;l>i;i++)buffer[start+i]=string.charCodeAt(i+from);else if(null==enc)for(var i=0;l>i;i++)buffer[start+i]=string[i+from];else{if("hex"!==enc)throw new Error("base64"===enc?"base64 encoding not yet supported":enc+" encoding not yet supported");for(var i=0;l>i;i++){var j=from+i;buffer[start+i]=parseInt(string[2*j]+string[2*j+1],16)}}}function zeroFill(buf,from){for(var i=from;i<buf.length;i++)buf[i]=0}exports.write=write,exports.zeroFill=zeroFill,exports.toString=toString},{}],94:[function(require,module){(function(Buffer){var blocksize=64,zeroBuffer=new Buffer(blocksize);zeroBuffer.fill(0),module.exports=function(createHmac,exports){return exports=exports||{},exports.pbkdf2=function(password,salt,iterations,keylen,cb){if("function"!=typeof cb)throw new Error("No callback provided to pbkdf2");setTimeout(function(){cb(null,exports.pbkdf2Sync(password,salt,iterations,keylen))})},exports.pbkdf2Sync=function(key,salt,iterations,keylen){if("number"!=typeof iterations)throw new TypeError("Iterations not a number");if(0>iterations)throw new TypeError("Bad iterations");if("number"!=typeof keylen)throw new TypeError("Key length not a number");if(0>keylen)throw new TypeError("Bad key length");var key=Buffer.isBuffer(key)?key:new Buffer(key);key.length>blocksize?key=createHash(alg).update(key).digest():key.length<blocksize&&(key=Buffer.concat([key,zeroBuffer],blocksize));var HMAC,cplen,digtmp,p=0,i=1,itmp=new Buffer(4),out=new Buffer(keylen);for(out.fill(0);keylen;){cplen=keylen>20?20:keylen,itmp[0]=i>>24&255,itmp[1]=i>>16&255,itmp[2]=i>>8&255,itmp[3]=255&i,HMAC=createHmac("sha1",key),HMAC.update(salt),HMAC.update(itmp),digtmp=HMAC.digest(),digtmp.copy(out,p,0,cplen);for(var j=1;iterations>j;j++){HMAC=createHmac("sha1",key),HMAC.update(digtmp),digtmp=HMAC.digest();for(var k=0;cplen>k;k++)out[k]^=digtmp[k]}keylen-=cplen,i++,p+=cplen}return out},exports}}).call(this,require("buffer").Buffer)},{buffer:80}],95:[function(require,module){(function(Buffer){!function(){module.exports=function(size){var bytes=new Buffer(size);return crypto.getRandomValues(bytes),bytes}}()}).call(this,require("buffer").Buffer)},{buffer:80}],96:[function(require,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length))throw er=arguments[1],er instanceof Error?er:TypeError('Uncaught, unspecified "error" event.');if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=new Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-->0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],97:[function(require,module){module.exports="function"==typeof Object.create?function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],98:[function(require,module){module.exports=Array.isArray||function(arr){return"[object Array]"==Object.prototype.toString.call(arr)}},{}],99:[function(require,module){function noop(){}var process=module.exports={};process.nextTick=function(){var canSetImmediate="undefined"!=typeof window&&window.setImmediate,canPost="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(canSetImmediate)return function(f){return window.setImmediate(f)};if(canPost){var queue=[];return window.addEventListener("message",function(ev){var source=ev.source;if((source===window||null===source)&&"process-tick"===ev.data&&(ev.stopPropagation(),queue.length>0)){var fn=queue.shift();fn()}},!0),function(fn){queue.push(fn),window.postMessage("process-tick","*")}}return function(fn){setTimeout(fn,0)}}(),process.title="browser",process.browser=!0,process.env={},process.argv=[],process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(){throw new Error("process.chdir is not supported")}},{}],100:[function(require,module){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":101}],101:[function(require,module){(function(process){function Duplex(options){return this instanceof Duplex?(Readable.call(this,options),Writable.call(this,options),options&&options.readable===!1&&(this.readable=!1),options&&options.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,options&&options.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",onend)):new Duplex(options)}function onend(){this.allowHalfOpen||this._writableState.ended||process.nextTick(this.end.bind(this))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}module.exports=Duplex;var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys},util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");util.inherits(Duplex,Readable),forEach(objectKeys(Writable.prototype),function(method){Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method])})}).call(this,require("_process"))},{"./_stream_readable":103,"./_stream_writable":105,_process:99,"core-util-is":106,inherits:97}],102:[function(require,module){function PassThrough(options){return this instanceof PassThrough?void Transform.call(this,options):new PassThrough(options)}module.exports=PassThrough;var Transform=require("./_stream_transform"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(PassThrough,Transform),PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":104,"core-util-is":106,inherits:97}],103:[function(require,module){(function(process){function ReadableState(options){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||0===hwm?hwm:16384,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=!1,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.calledRead=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.objectMode=!!options.objectMode,this.defaultEncoding=options.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,options.encoding&&(StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding)}function Readable(options){return this instanceof Readable?(this._readableState=new ReadableState(options,this),this.readable=!0,void Stream.call(this)):new Readable(options)}function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er)stream.emit("error",er);else if(null===chunk||void 0===chunk)state.reading=!1,state.ended||onEofChunk(stream,state);else if(state.objectMode||chunk&&chunk.length>0)if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else!state.decoder||addToFront||encoding||(chunk=state.decoder.write(chunk)),state.length+=state.objectMode?1:chunk.length,addToFront?state.buffer.unshift(chunk):(state.reading=!1,state.buffer.push(chunk)),state.needReadable&&emitReadable(stream),maybeReadMore(stream,state);else addToFront||(state.reading=!1);return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||0===state.length)}function roundUpToNextPowerOf2(n){if(n>=MAX_HWM)n=MAX_HWM;else{n--;for(var p=1;32>p;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){return 0===state.length&&state.ended?0:state.objectMode?0===n?0:1:isNaN(n)||null===n?state.flowing&&state.buffer.length?state.buffer[0].length:state.length:0>=n?0:(n>state.highWaterMark&&(state.highWaterMark=roundUpToNextPowerOf2(n)),n>state.length?state.ended?state.length:(state.needReadable=!0,0):n)}function chunkInvalid(state,chunk){var er=null;return Buffer.isBuffer(chunk)||"string"==typeof chunk||null===chunk||void 0===chunk||state.objectMode||er||(er=new TypeError("Invalid non-string/buffer chunk")),er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,state.length>0?emitReadable(stream):endReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=!1,state.emittedReadable||(state.emittedReadable=!0,state.sync?process.nextTick(function(){emitReadable_(stream)}):emitReadable_(stream))}function emitReadable_(stream){stream.emit("readable")}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(function(){maybeReadMore_(stream,state)}))}function maybeReadMore_(stream,state){for(var len=state.length;!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark&&(stream.read(0),len!==state.length);)len=state.length;state.readingMore=!1}function pipeOnDrain(src){return function(){var state=src._readableState;state.awaitDrain--,0===state.awaitDrain&&flow(src)}}function flow(src){function write(dest){var written=dest.write(chunk);!1===written&&state.awaitDrain++}var chunk,state=src._readableState;for(state.awaitDrain=0;state.pipesCount&&null!==(chunk=src.read());)if(1===state.pipesCount?write(state.pipes,0,null):forEach(state.pipes,write),src.emit("data",chunk),state.awaitDrain>0)return;return 0===state.pipesCount?(state.flowing=!1,void(EE.listenerCount(src,"data")>0&&emitDataEvents(src))):void(state.ranOut=!0)}function pipeOnReadable(){this._readableState.ranOut&&(this._readableState.ranOut=!1,flow(this))}function emitDataEvents(stream,startPaused){var state=stream._readableState;if(state.flowing)throw new Error("Cannot switch to old mode now.");var paused=startPaused||!1,readable=!1;stream.readable=!0,stream.pipe=Stream.prototype.pipe,stream.on=stream.addListener=Stream.prototype.on,stream.on("readable",function(){readable=!0;for(var c;!paused&&null!==(c=stream.read());)stream.emit("data",c);null===c&&(readable=!1,stream._readableState.needReadable=!0)}),stream.pause=function(){paused=!0,this.emit("pause")},stream.resume=function(){paused=!1,readable?process.nextTick(function(){stream.emit("readable")}):this.read(0),this.emit("resume")},stream.emit("readable")}function fromList(n,state){var ret,list=state.buffer,length=state.length,stringMode=!!state.decoder,objectMode=!!state.objectMode;if(0===list.length)return null;if(0===length)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length)ret=stringMode?list.join(""):Buffer.concat(list,length),list.length=0;else if(n<list[0].length){var buf=list[0];ret=buf.slice(0,n),list[0]=buf.slice(n)}else if(n===list[0].length)ret=list.shift();else{ret=stringMode?"":new Buffer(n);for(var c=0,i=0,l=list.length;l>i&&n>c;i++){var buf=list[0],cpy=Math.min(n-c,buf.length);stringMode?ret+=buf.slice(0,cpy):buf.copy(ret,c,0,cpy),cpy<buf.length?list[0]=buf.slice(cpy):list.shift(),c+=cpy}}return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error("endReadable called on non-empty stream");!state.endEmitted&&state.calledRead&&(state.ended=!0,process.nextTick(function(){state.endEmitted||0!==state.length||(state.endEmitted=!0,stream.readable=!1,stream.emit("end"))}))}function forEach(xs,f){for(var i=0,l=xs.length;l>i;i++)f(xs[i],i)}function indexOf(xs,x){for(var i=0,l=xs.length;l>i;i++)if(xs[i]===x)return i;return-1}module.exports=Readable;var isArray=require("isarray"),Buffer=require("buffer").Buffer;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;EE.listenerCount||(EE.listenerCount=function(emitter,type){return emitter.listeners(type).length});var Stream=require("stream"),util=require("core-util-is");util.inherits=require("inherits");var StringDecoder;util.inherits(Readable,Stream),Readable.prototype.push=function(chunk,encoding){var state=this._readableState;return"string"!=typeof chunk||state.objectMode||(encoding=encoding||state.defaultEncoding,encoding!==state.encoding&&(chunk=new Buffer(chunk,encoding),encoding="")),readableAddChunk(this,state,chunk,encoding,!1)},Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",!0)},Readable.prototype.setEncoding=function(enc){StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this._readableState.decoder=new StringDecoder(enc),this._readableState.encoding=enc};var MAX_HWM=8388608;Readable.prototype.read=function(n){var state=this._readableState;state.calledRead=!0;var nOrig=n;if(("number"!=typeof n||n>0)&&(state.emittedReadable=!1),0===n&&state.needReadable&&(state.length>=state.highWaterMark||state.ended))return emitReadable(this),null;if(n=howMuchToRead(n,state),0===n&&state.ended)return 0===state.length&&endReadable(this),null;var doRead=state.needReadable;state.length-n<=state.highWaterMark&&(doRead=!0),(state.ended||state.reading)&&(doRead=!1),doRead&&(state.reading=!0,state.sync=!0,0===state.length&&(state.needReadable=!0),this._read(state.highWaterMark),state.sync=!1),doRead&&!state.reading&&(n=howMuchToRead(nOrig,state));var ret;return ret=n>0?fromList(n,state):null,null===ret&&(state.needReadable=!0,n=0),state.length-=n,0!==state.length||state.ended||(state.needReadable=!0),state.ended&&!state.endEmitted&&0===state.length&&endReadable(this),ret},Readable.prototype._read=function(){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(dest,pipeOpts){function onunpipe(readable){readable===src&&cleanup()}function onend(){dest.end()}function cleanup(){dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",cleanup),(!dest._writableState||dest._writableState.needDrain)&&ondrain()}function onerror(er){unpipe(),dest.removeListener("error",onerror),0===EE.listenerCount(dest,"error")&&dest.emit("error",er)}function onclose(){dest.removeListener("finish",onfinish),unpipe()}function onfinish(){dest.removeListener("close",onclose),unpipe()}function unpipe(){src.unpipe(dest)}var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest)}state.pipesCount+=1;var doEnd=(!pipeOpts||pipeOpts.end!==!1)&&dest!==process.stdout&&dest!==process.stderr,endFn=doEnd?onend:cleanup;state.endEmitted?process.nextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);var ondrain=pipeOnDrain(src);return dest.on("drain",ondrain),dest._events&&dest._events.error?isArray(dest._events.error)?dest._events.error.unshift(onerror):dest._events.error=[onerror,dest._events.error]:dest.on("error",onerror),dest.once("close",onclose),dest.once("finish",onfinish),dest.emit("pipe",src),state.flowing||(this.on("readable",pipeOnReadable),state.flowing=!0,process.nextTick(function(){flow(src)})),dest},Readable.prototype.unpipe=function(dest){var state=this._readableState;if(0===state.pipesCount)return this;if(1===state.pipesCount)return dest&&dest!==state.pipes?this:(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,this.removeListener("readable",pipeOnReadable),state.flowing=!1,dest&&dest.emit("unpipe",this),this);if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,this.removeListener("readable",pipeOnReadable),state.flowing=!1;for(var i=0;len>i;i++)dests[i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);return-1===i?this:(state.pipes.splice(i,1),state.pipesCount-=1,1===state.pipesCount&&(state.pipes=state.pipes[0]),dest.emit("unpipe",this),this)},Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if("data"!==ev||this._readableState.flowing||emitDataEvents(this),"readable"===ev&&this.readable){var state=this._readableState;state.readableListening||(state.readableListening=!0,state.emittedReadable=!1,state.needReadable=!0,state.reading?state.length&&emitReadable(this,state):this.read(0))}return res},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.resume=function(){emitDataEvents(this),this.read(0),this.emit("resume")},Readable.prototype.pause=function(){emitDataEvents(this,!0),this.emit("pause")},Readable.prototype.wrap=function(stream){var state=this._readableState,paused=!1,self=this;stream.on("end",function(){if(state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&self.push(chunk)}self.push(null)}),stream.on("data",function(chunk){if(state.decoder&&(chunk=state.decoder.write(chunk)),chunk&&(state.objectMode||chunk.length)){var ret=self.push(chunk);ret||(paused=!0,stream.pause())}});for(var i in stream)"function"==typeof stream[i]&&"undefined"==typeof this[i]&&(this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i));var events=["error","close","destroy","pause","resume"];return forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))}),self._read=function(){paused&&(paused=!1,stream.resume())},self},Readable._fromList=fromList}).call(this,require("_process"))},{_process:99,buffer:80,"core-util-is":106,events:96,inherits:97,isarray:98,stream:112,"string_decoder/":107}],104:[function(require,module){function TransformState(options,stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=!1;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null,ts.writecb=null,null!==data&&void 0!==data&&stream.push(data),cb&&cb(er);var rs=stream._readableState;rs.reading=!1,(rs.needReadable||rs.length<rs.highWaterMark)&&stream._read(rs.highWaterMark)}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options);var stream=(this._transformState=new TransformState(options,this),this);this._readableState.needReadable=!0,this._readableState.sync=!1,this.once("finish",function(){"function"==typeof this._flush?this._flush(function(er){done(stream,er)}):done(stream)})}function done(stream,er){if(er)return stream.emit("error",er);var ws=stream._writableState,ts=(stream._readableState,stream._transformState);if(ws.length)throw new Error("calling transform done when ws.length != 0");if(ts.transforming)throw new Error("calling transform done when still transforming");return stream.push(null)}module.exports=Transform;var Duplex=require("./_stream_duplex"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(Transform,Duplex),Transform.prototype.push=function(chunk,encoding){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,chunk,encoding)},Transform.prototype._transform=function(){throw new Error("not implemented")},Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;if(ts.writecb=cb,ts.writechunk=chunk,ts.writeencoding=encoding,!ts.transforming){var rs=this._readableState;(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)&&this._read(rs.highWaterMark)}},Transform.prototype._read=function(){var ts=this._transformState;null!==ts.writechunk&&ts.writecb&&!ts.transforming?(ts.transforming=!0,this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)):ts.needTransform=!0}},{"./_stream_duplex":101,"core-util-is":106,inherits:97}],105:[function(require,module){(function(process){function WriteReq(chunk,encoding,cb){this.chunk=chunk,this.encoding=encoding,this.callback=cb}function WritableState(options,stream){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||0===hwm?hwm:16384,this.objectMode=!!options.objectMode,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var noDecode=options.decodeStrings===!1;this.decodeStrings=!noDecode,this.defaultEncoding=options.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(er){onwrite(stream,er)},this.writecb=null,this.writelen=0,this.buffer=[],this.errorEmitted=!1}function Writable(options){var Duplex=require("./_stream_duplex");return this instanceof Writable||this instanceof Duplex?(this._writableState=new WritableState(options,this),this.writable=!0,void Stream.call(this)):new Writable(options)}function writeAfterEnd(stream,state,cb){var er=new Error("write after end");stream.emit("error",er),process.nextTick(function(){cb(er)})}function validChunk(stream,state,chunk,cb){var valid=!0;if(!Buffer.isBuffer(chunk)&&"string"!=typeof chunk&&null!==chunk&&void 0!==chunk&&!state.objectMode){var er=new TypeError("Invalid non-string/buffer chunk");stream.emit("error",er),process.nextTick(function(){cb(er)}),valid=!1}return valid}function decodeChunk(state,chunk,encoding){return state.objectMode||state.decodeStrings===!1||"string"!=typeof chunk||(chunk=new Buffer(chunk,encoding)),chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding),Buffer.isBuffer(chunk)&&(encoding="buffer");var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;return ret||(state.needDrain=!0),state.writing?state.buffer.push(new WriteReq(chunk,encoding,cb)):doWrite(stream,state,len,chunk,encoding,cb),ret}function doWrite(stream,state,len,chunk,encoding,cb){state.writelen=len,state.writecb=cb,state.writing=!0,state.sync=!0,stream._write(chunk,encoding,state.onwrite),state.sync=!1}function onwriteError(stream,state,sync,er,cb){sync?process.nextTick(function(){cb(er)}):cb(er),stream._writableState.errorEmitted=!0,stream.emit("error",er)}function onwriteStateUpdate(state){state.writing=!1,state.writecb=null,state.length-=state.writelen,state.writelen=0}function onwrite(stream,er){var state=stream._writableState,sync=state.sync,cb=state.writecb;if(onwriteStateUpdate(state),er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(stream,state);finished||state.bufferProcessing||!state.buffer.length||clearBuffer(stream,state),sync?process.nextTick(function(){afterWrite(stream,state,finished,cb)}):afterWrite(stream,state,finished,cb)}}function afterWrite(stream,state,finished,cb){finished||onwriteDrain(stream,state),cb(),finished&&finishMaybe(stream,state)}function onwriteDrain(stream,state){0===state.length&&state.needDrain&&(state.needDrain=!1,stream.emit("drain"))}function clearBuffer(stream,state){state.bufferProcessing=!0;for(var c=0;c<state.buffer.length;c++){var entry=state.buffer[c],chunk=entry.chunk,encoding=entry.encoding,cb=entry.callback,len=state.objectMode?1:chunk.length;if(doWrite(stream,state,len,chunk,encoding,cb),state.writing){c++;break}}state.bufferProcessing=!1,c<state.buffer.length?state.buffer=state.buffer.slice(c):state.buffer.length=0}function needFinish(stream,state){return state.ending&&0===state.length&&!state.finished&&!state.writing}function finishMaybe(stream,state){var need=needFinish(stream,state);return need&&(state.finished=!0,stream.emit("finish")),need}function endWritable(stream,state,cb){state.ending=!0,finishMaybe(stream,state),cb&&(state.finished?process.nextTick(cb):stream.once("finish",cb)),state.ended=!0}module.exports=Writable;var Buffer=require("buffer").Buffer;Writable.WritableState=WritableState;var util=require("core-util-is");util.inherits=require("inherits");var Stream=require("stream");util.inherits(Writable,Stream),Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))},Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState,ret=!1;return"function"==typeof encoding&&(cb=encoding,encoding=null),Buffer.isBuffer(chunk)?encoding="buffer":encoding||(encoding=state.defaultEncoding),"function"!=typeof cb&&(cb=function(){}),state.ended?writeAfterEnd(this,state,cb):validChunk(this,state,chunk,cb)&&(ret=writeOrBuffer(this,state,chunk,encoding,cb)),ret},Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("not implemented"))},Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;"function"==typeof chunk?(cb=chunk,chunk=null,encoding=null):"function"==typeof encoding&&(cb=encoding,encoding=null),"undefined"!=typeof chunk&&null!==chunk&&this.write(chunk,encoding),state.ending||state.finished||endWritable(this,state,cb)}}).call(this,require("_process"))},{"./_stream_duplex":101,_process:99,buffer:80,"core-util-is":106,inherits:97,stream:112}],106:[function(require,module,exports){(function(Buffer){function isArray(ar){return Array.isArray(ar)
}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function isBuffer(arg){return Buffer.isBuffer(arg)}function objectToString(o){return Object.prototype.toString.call(o)}exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=isBuffer}).call(this,require("buffer").Buffer)},{buffer:80}],107:[function(require,module,exports){function assertEncoding(encoding){if(encoding&&!isBufferEncoding(encoding))throw new Error("Unknown encoding: "+encoding)}function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){var incomplete=this.charReceived=buffer.length%2;return this.charLength=incomplete?2:0,incomplete}function base64DetectIncompleteChar(buffer){var incomplete=this.charReceived=buffer.length%3;return this.charLength=incomplete?3:0,incomplete}var Buffer=require("buffer").Buffer,isBufferEncoding=Buffer.isEncoding||function(encoding){switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},StringDecoder=exports.StringDecoder=function(encoding){switch(this.encoding=(encoding||"utf8").toLowerCase().replace(/[-_]/,""),assertEncoding(encoding),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=base64DetectIncompleteChar;break;default:return void(this.write=passThroughWrite)}this.charBuffer=new Buffer(6),this.charReceived=0,this.charLength=0};StringDecoder.prototype.write=function(buffer){for(var charStr="",offset=0;this.charLength;){var i=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;if(buffer.copy(this.charBuffer,this.charReceived,offset,i),this.charReceived+=i-offset,offset=i,this.charReceived<this.charLength)return"";charStr=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var charCode=charStr.charCodeAt(charStr.length-1);if(!(charCode>=55296&&56319>=charCode)){if(this.charReceived=this.charLength=0,i==buffer.length)return charStr;buffer=buffer.slice(i,buffer.length);break}this.charLength+=this.surrogateSize,charStr=""}var lenIncomplete=this.detectIncompleteChar(buffer),end=buffer.length;this.charLength&&(buffer.copy(this.charBuffer,0,buffer.length-lenIncomplete,end),this.charReceived=lenIncomplete,end-=lenIncomplete),charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1,charCode=charStr.charCodeAt(end);if(charCode>=55296&&56319>=charCode){var size=this.surrogateSize;return this.charLength+=size,this.charReceived+=size,this.charBuffer.copy(this.charBuffer,size,0,size),this.charBuffer.write(charStr.charAt(charStr.length-1),this.encoding),charStr.substring(0,end)}return charStr},StringDecoder.prototype.detectIncompleteChar=function(buffer){for(var i=buffer.length>=3?3:buffer.length;i>0;i--){var c=buffer[buffer.length-i];if(1==i&&c>>5==6){this.charLength=2;break}if(2>=i&&c>>4==14){this.charLength=3;break}if(3>=i&&c>>3==30){this.charLength=4;break}}return i},StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length&&(res=this.write(buffer)),this.charReceived){var cr=this.charReceived,buf=this.charBuffer,enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res}},{buffer:80}],108:[function(require,module){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":102}],109:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js"),exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":101,"./lib/_stream_passthrough.js":102,"./lib/_stream_readable.js":103,"./lib/_stream_transform.js":104,"./lib/_stream_writable.js":105}],110:[function(require,module){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":104}],111:[function(require,module){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":105}],112:[function(require,module){function Stream(){EE.call(this)}module.exports=Stream;var EE=require("events").EventEmitter,inherits=require("inherits");inherits(Stream,EE),Stream.Readable=require("readable-stream/readable.js"),Stream.Writable=require("readable-stream/writable.js"),Stream.Duplex=require("readable-stream/duplex.js"),Stream.Transform=require("readable-stream/transform.js"),Stream.PassThrough=require("readable-stream/passthrough.js"),Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}var source=this;source.on("data",ondata),dest.on("drain",ondrain),dest._isStdio||options&&options.end===!1||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;return source.on("error",onerror),dest.on("error",onerror),source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:96,inherits:97,"readable-stream/duplex.js":100,"readable-stream/passthrough.js":108,"readable-stream/readable.js":109,"readable-stream/transform.js":110,"readable-stream/writable.js":111}],113:[function(require,module){module.exports=require(76)},{}],114:[function(require,module){module.exports=require(77)},{"./support/isBuffer":113,_process:99,inherits:97}],115:[function(require,module,exports){(function(){var BaseError,Canceler,EscErr,EscOk,c_to_camel,ipush,make_error_klass,make_errors,make_esc,to_lower,util,__slice=[].slice;util=require("util"),exports.BaseError=BaseError=function(msg){return Error.captureStackTrace(this,this.constructor),this.message=msg||"Error"},util.inherits(BaseError,Error),BaseError.prototype.name="BaseError",to_lower=function(s){return s[0].toUpperCase()+s.slice(1).toLowerCase()},c_to_camel=function(s){var p;return function(){var _i,_len,_ref,_results;for(_ref=s.split(/_/),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)p=_ref[_i],_results.push(to_lower(p));return _results}().join("")},make_error_klass=function(k,code,default_msg){var ctor;return ctor=function(msg){return BaseError.call(this,msg||default_msg,this.constructor),this.istack=[],this.code=code,this},util.inherits(ctor,BaseError),ctor.prototype.name=k,ctor.prototype.inspect=function(){return"["+k+": "+this.message+" (code "+this.code+")]"},ctor},exports.make_errors=make_errors=function(d){var enam,errno,k,msg,out,val;out={msg:{},name:{},code:{}},d.OK="Success",errno=100;for(k in d)msg=d[k],"OK"!==k?(enam=c_to_camel(k)+"Error",val=errno++,out[enam]=make_error_klass(enam,val,msg)):val=0,out[k]=val,out.msg[k]=out.msg[val]=msg,out.name[k]=out.name[val]=k,out.code[k]=val;return out},ipush=function(e,msg){return null!=msg?(null==e.istack&&(e.istack=[]),e.istack.push(msg)):void 0},exports.make_esc=make_esc=function(gcb,where){return function(lcb){return function(){var args,err;return err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],null==err?lcb.apply(null,args):gcb.__esc?void 0:(gcb.__esc=!0,ipush(err,where),gcb(err))}}},exports.EscOk=EscOk=function(){function EscOk(gcb,where){this.gcb=gcb,this.where=where}return EscOk.prototype.bailout=function(){var t;return this.gcb?(t=this.gcb,this.gcb=null,t(!1)):void 0},EscOk.prototype.check_ok=function(cb){return function(_this){return function(){var args,ok;return ok=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],ok?cb.apply(null,args):_this.bailout()}}(this)},EscOk.prototype.check_err=function(cb){return function(_this){return function(){var args,err;return err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],null!=err?(ipush(err,_this.where),_this.bailout()):cb.apply(null,args)}}(this)},EscOk.prototype.check_non_null=function(cb){return function(_this){return function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],null==args[0]?_this.bailout():cb.apply(null,args)}}(this)},EscOk}(),exports.EscErr=EscErr=function(){function EscErr(gcb,where){this.gcb=gcb,this.where=where}return EscErr.prototype.finish=function(err){var t;return this.gcb?(t=this.gcb,this.gcb=null,t(err)):void 0},EscErr.prototype.check_ok=function(cb,eclass,emsg){return null==eclass&&(eclass=Error),null==emsg&&(emsg=null),function(){var args,err,ok;return ok=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],ok?cb.apply(null,args):(err=new eclass(emsg),ipush(err,this.where),this.finish(err))}},EscErr.prototype.check_err=function(cb){return function(){var args,err;return err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],null!=err?(ipush(err,this.where),this.finish(err)):cb.apply(null,args)}},EscErr}(),exports.Canceler=Canceler=function(){function Canceler(klass){this.klass=null!=klass?klass:Error,this._canceled=!1}return Canceler.prototype.is_canceled=function(){return this._canceled},Canceler.prototype.is_ok=function(){return!this._canceled},Canceler.prototype.cancel=function(){return this._canceled=!0},Canceler.prototype.err=function(){return this._canceled?new this.klass("Aborted"):null},Canceler}(),exports.chain=function(cb,f){return function(){var args;return args=1<=arguments.length?__slice.call(arguments,0):[],f(function(){return cb.apply(null,args)})}},exports.chain_err=function(cb,f){return function(){var args0;return args0=1<=arguments.length?__slice.call(arguments,0):[],f(function(){var args1;return args1=1<=arguments.length?__slice.call(arguments,0):[],cb.apply(null,null!=args1[0]&&null==args0[0]?args1:args0)})}}}).call(this)},{util:114}],116:[function(require,module){(function(){module.exports={k:"__iced_k",k_noop:"__iced_k_noop",param:"__iced_p_",ns:"iced",runtime:"runtime",Deferrals:"Deferrals",deferrals:"__iced_deferrals",fulfill:"_fulfill",b_while:"_break",t_while:"_while",c_while:"_continue",n_while:"_next",n_arg:"__iced_next_arg",defer_method:"defer",slot:"__slot",assign_fn:"assign_fn",autocb:"autocb",retslot:"ret",trace:"__iced_trace",passed_deferral:"__iced_passed_deferral",findDeferral:"findDeferral",lineno:"lineno",parent:"parent",filename:"filename",funcname:"funcname",catchExceptions:"catchExceptions",runtime_modes:["node","inline","window","none","browserify","interp"],trampoline:"trampoline",context:"context"}}).call(this)},{}],117:[function(require,module,exports){(function(){var C,Pipeliner,iced,__iced_k,__iced_k_noop,_iand,_ior,_timeout,__slice=[].slice;__iced_k=__iced_k_noop=function(){},C=require("./const"),exports.iced=iced=require("./runtime"),_timeout=function(cb,t,res,tmp){var arr,rv,which,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),rv=new iced.Rendezvous,tmp[0]=rv.id(!0).defer({assign_fn:function(){return function(){return function(){return arr=__slice.call(arguments,0)}}}(this)(),lineno:20,context:__iced_deferrals}),setTimeout(rv.id(!1).defer({lineno:21,context:__iced_deferrals}),t),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),rv.wait(__iced_deferrals.defer({assign_fn:function(){return function(){return which=arguments[0]}}(),lineno:22})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return res&&(res[0]=which),cb.apply(null,arr)}}(this))},exports.timeout=function(cb,t,res){var tmp;return tmp=[],_timeout(cb,t,res,tmp),tmp[0]},_iand=function(cb,res,tmp){var ok,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),tmp[0]=__iced_deferrals.defer({assign_fn:function(){return function(){return ok=arguments[0]}}(),lineno:39}),__iced_deferrals._fulfill()}}(this)(function(){return function(){return ok||(res[0]=!1),cb()}}(this))},exports.iand=function(cb,res){var tmp;return tmp=[],_iand(cb,res,tmp),tmp[0]},_ior=function(cb,res,tmp){var ok,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced"}),tmp[0]=__iced_deferrals.defer({assign_fn:function(){return function(){return ok=arguments[0]}}(),lineno:58}),__iced_deferrals._fulfill()}}(this)(function(){return function(){return ok&&(res[0]=!0),cb()}}(this))},exports.ior=function(cb,res){var tmp;return tmp=[],_ior(cb,res,tmp),tmp[0]},exports.Pipeliner=Pipeliner=function(){function Pipeliner(window,delay){this.window=window||1,this.delay=delay||0,this.queue=[],this.n_out=0,this.cb=null,this[C.deferrals]=this,this.defer=this._defer}return Pipeliner.prototype.waitInQueue=function(cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_this.n_out>=_this.window?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),_this.cb=__iced_deferrals.defer({lineno:100}),__iced_deferrals._fulfill()}(_next):_break()})(__iced_k)}}(this)(function(_this){return function(){_this.n_out++,function(__iced_k){return _this.delay?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.waitInQueue"}),setTimeout(__iced_deferrals.defer({lineno:108}),_this.delay),__iced_deferrals._fulfill()}(__iced_k):__iced_k()}(function(){return cb()})}}(this))},Pipeliner.prototype.__defer=function(out,deferArgs){var tmp,voidCb,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.__defer"}),voidCb=__iced_deferrals.defer({lineno:122}),out[0]=function(){var args,_ref;return args=1<=arguments.length?__slice.call(arguments,0):[],null!=(_ref=deferArgs.assign_fn)&&_ref.apply(null,args),voidCb()},__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return _this.n_out--,_this.cb?(tmp=_this.cb,_this.cb=null,tmp()):void 0}}(this))},Pipeliner.prototype._defer=function(deferArgs){var tmp;return tmp=[],this.__defer(tmp,deferArgs),tmp[0]},Pipeliner.prototype.flush=function(autocb){var ___iced_passed_deferral,__iced_k,_results,_while;__iced_k=autocb,___iced_passed_deferral=iced.findDeferral(arguments),_results=[],(_while=function(_this){var __iced_deferrals;return function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_this.n_out?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/iced/iced-runtime/src/library.iced",funcname:"Pipeliner.flush"}),_this.cb=__iced_deferrals.defer({lineno:151}),__iced_deferrals._fulfill()}(_next):_break()}}(this))(__iced_k)},Pipeliner}()}).call(this)},{"./const":116,"./runtime":119}],118:[function(require,module,exports){(function(){var k,mod,mods,v,_i,_len;for(exports["const"]=require("./const"),mods=[require("./runtime"),require("./library")],_i=0,_len=mods.length;_len>_i;_i++){mod=mods[_i];for(k in mod)v=mod[k],exports[k]=v}}).call(this)},{"./const":116,"./library":117,"./runtime":119}],119:[function(require,module,exports){(function(process){(function(){var C,Deferrals,Rendezvous,exceptionHandler,findDeferral,make_defer_return,stackWalk,tick_counter,trampoline,warn,__active_trace,__c,_trace_to_string,__slice=[].slice;C=require("./const"),make_defer_return=function(obj,defer_args,id,trace_template,multi){var k,ret,trace,v;trace={};for(k in trace_template)v=trace_template[k],trace[k]=v;return trace[C.lineno]=null!=defer_args?defer_args[C.lineno]:void 0,ret=function(){var inner_args,o,_ref;return inner_args=1<=arguments.length?__slice.call(arguments,0):[],null!=defer_args&&null!=(_ref=defer_args.assign_fn)&&_ref.apply(null,inner_args),obj?(o=obj,multi||(obj=null),o._fulfill(id,trace)):warn("overused deferral at "+_trace_to_string(trace))},ret[C.trace]=trace,ret},__c=0,tick_counter=function(mod){return __c++,__c%mod===0?(__c=0,!0):!1},__active_trace=null,_trace_to_string=function(tr){var fn;return fn=tr[C.funcname]||"<anonymous>",""+fn+" ("+tr[C.filename]+":"+(tr[C.lineno]+1)+")"},warn=function(m){return"undefined"!=typeof console&&null!==console?console.error("ICED warning: "+m):void 0},exports.trampoline=trampoline=function(fn){return tick_counter(500)?"undefined"!=typeof process&&null!==process?process.nextTick(fn):setTimeout(fn):fn()},exports.Deferrals=Deferrals=function(){function Deferrals(k,trace){this.trace=trace,this.continuation=k,this.count=1,this.ret=null}return Deferrals.prototype._call=function(trace){var c;return this.continuation?(__active_trace=trace,c=this.continuation,this.continuation=null,c(this.ret)):warn("Entered dead await at "+_trace_to_string(trace))},Deferrals.prototype._fulfill=function(id,trace){return--this.count>0?void 0:trampoline(function(_this){return function(){return _this._call(trace)}}(this))},Deferrals.prototype.defer=function(args){var self;return this.count++,self=this,make_defer_return(self,args,null,this.trace)},Deferrals}(),exports.findDeferral=findDeferral=function(args){var a,_i,_len;for(_i=0,_len=args.length;_len>_i;_i++)if(a=args[_i],null!=a?a[C.trace]:void 0)return a;return null},exports.Rendezvous=Rendezvous=function(){function Rendezvous(){this.completed=[],this.waiters=[],this.defer_id=0}var RvId;return RvId=function(){function RvId(rv,id,multi){this.rv=rv,this.id=id,this.multi=multi}return RvId.prototype.defer=function(defer_args){return this.rv._defer_with_id(this.id,defer_args,this.multi)},RvId}(),Rendezvous.prototype.wait=function(cb){var x;return this.completed.length?(x=this.completed.shift(),cb(x)):this.waiters.push(cb)},Rendezvous.prototype.defer=function(defer_args){var id;return id=this.defer_id++,this._defer_with_id(id,defer_args)},Rendezvous.prototype.id=function(i,multi){return multi=!!multi,new RvId(this,i,multi)},Rendezvous.prototype._fulfill=function(id){var cb;return this.waiters.length?(cb=this.waiters.shift())(id):this.completed.push(id)},Rendezvous.prototype._defer_with_id=function(id,defer_args,multi){return this.count++,make_defer_return(this,defer_args,id,{},multi)},Rendezvous}(),exports.stackWalk=stackWalk=function(cb){var line,ret,tr,_ref;for(ret=[],tr=cb?cb[C.trace]:__active_trace;tr;)line=" at "+_trace_to_string(tr),ret.push(line),tr=null!=tr&&null!=(_ref=tr[C.parent])?_ref[C.trace]:void 0;return ret},exports.exceptionHandler=exceptionHandler=function(err,logger){var stack;return logger||(logger=console.error),logger(err.stack),stack=stackWalk(),stack.length?(logger("Iced 'stack' trace (w/ real line numbers):"),logger(stack.join("\n"))):void 0},exports.catchExceptions=function(logger){return"undefined"!=typeof process&&null!==process?process.on("uncaughtException",function(err){return exceptionHandler(err,logger),process.exit(1)}):void 0}}).call(this)}).call(this,require("_process"))},{"./const":116,_process:99}],120:[function(require,module,exports){"function"!=typeof console.assert&&(console.assert=function(){}),exports.BWT=require("./outlib/BWT"),exports.BWTC=require("./outlib/BWTC"),exports.BitStream=require("./outlib/BitStream"),exports.Bzip2=require("./outlib/Bzip2"),exports.CRC32=require("./outlib/CRC32"),exports.Context1Model=require("./outlib/Context1Model"),exports.DefSumModel=require("./outlib/DefSumModel"),exports.DeflateDistanceModel=require("./outlib/DeflateDistanceModel"),exports.Dmc=require("./outlib/Dmc"),exports.DummyRangeCoder=require("./outlib/DummyRangeCoder"),exports.FenwickModel=require("./outlib/FenwickModel"),exports.Huffman=require("./outlib/Huffman"),exports.HuffmanAllocator=require("./outlib/HuffmanAllocator"),exports.LogDistanceModel=require("./outlib/LogDistanceModel"),exports.Lzjb=require("./outlib/Lzjb"),exports.LzjbR=require("./outlib/LzjbR"),exports.Lzp3=require("./outlib/Lzp3"),exports.MTFModel=require("./outlib/MTFModel"),exports.NoModel=require("./outlib/NoModel"),exports.PPM=require("./outlib/PPM"),exports.RangeCoder=require("./outlib/RangeCoder"),exports.Simple=require("./outlib/Simple"),exports.Stream=require("./outlib/Stream"),exports.Util=require("./outlib/Util"),exports.freeze=require("./outlib/freeze")},{"./outlib/BWT":121,"./outlib/BWTC":122,"./outlib/BitStream":123,"./outlib/Bzip2":124,"./outlib/CRC32":125,"./outlib/Context1Model":126,"./outlib/DefSumModel":127,"./outlib/DeflateDistanceModel":128,"./outlib/Dmc":129,"./outlib/DummyRangeCoder":130,"./outlib/FenwickModel":131,"./outlib/Huffman":132,"./outlib/HuffmanAllocator":133,"./outlib/LogDistanceModel":134,"./outlib/Lzjb":135,"./outlib/LzjbR":136,"./outlib/Lzp3":137,"./outlib/MTFModel":138,"./outlib/NoModel":139,"./outlib/PPM":140,"./outlib/RangeCoder":141,"./outlib/Simple":142,"./outlib/Stream":143,"./outlib/Util":144,"./outlib/freeze":145}],121:[function(require,module){var libs=[require("./freeze"),require("./Util")],body_fn=function(freeze,Util){var ASSERT=console.assert.bind(console),getCounts=function(T,C,n,k){var i;for(i=0;k>i;i++)C[i]=0;for(i=0;n>i;i++)C[T[i]]++},getBuckets=function(C,B,k,end){var i,sum=0;if(end)for(i=0;k>i;i++)sum+=C[i],B[i]=sum;else for(i=0;k>i;i++)sum+=C[i],B[i]=sum-C[i]},LMSsort=function(T,SA,C,B,n,k){var b,i,j,c0,c1;for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!1),j=n-1,b=B[c1=T[j]],j--,SA[b++]=T[j]<c1?~j:j,i=0;n>i;i++)(j=SA[i])>0?(ASSERT(T[j]>=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(b>i),j--,SA[b++]=T[j]<c1?~j:j,SA[i]=0):0>j&&(SA[i]=~j);for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,1),i=n-1,b=B[c1=0];i>=0;i--)(j=SA[i])>0&&(ASSERT(T[j]<=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(i>=b),j--,SA[--b]=T[j]>c1?~(j+1):j,SA[i]=0)},LMSpostproc=function(T,SA,n,m){var i,j,p,q,plen,qlen,name,c0,c1,diff;for(ASSERT(n>0),i=0;(p=SA[i])<0;i++)SA[i]=~p,ASSERT(n>i+1);if(m>i)for(j=i,i++;ASSERT(n>i),!((p=SA[i])<0&&(SA[j++]=~p,SA[i]=0,j===m));i++);c0=T[i=j=n-1];do c1=c0;while(--i>=0&&(c0=T[i])>=c1);for(;i>=0;){do c1=c0;while(--i>=0&&(c0=T[i])<=c1);if(i>=0){SA[m+(i+1>>>1)]=j-i,j=i+1;do c1=c0;while(--i>=0&&(c0=T[i])>=c1)}}for(i=0,name=0,q=n,qlen=0;m>i;i++){if(p=SA[i],plen=SA[m+(p>>>1)],diff=!0,plen===qlen&&n>q+plen){for(j=0;plen>j&&T[p+j]===T[q+j];)j++;j===plen&&(diff=!1)}diff&&(name++,q=p,qlen=plen),SA[m+(p>>>1)]=name}return name},induceSA=function(T,SA,C,B,n,k){var b,i,j,c0,c1;for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!1),j=n-1,b=B[c1=T[j]],SA[b++]=j>0&&T[j-1]<c1?~j:j,i=0;n>i;i++)j=SA[i],SA[i]=~j,j>0&&(j--,ASSERT(T[j]>=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(b>i),SA[b++]=j>0&&T[j-1]<c1?~j:j);for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!0),i=n-1,b=B[c1=0];i>=0;i--)(j=SA[i])>0?(j--,ASSERT(T[j]<=T[j+1]),(c0=T[j])!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(i>=b),SA[--b]=0===j||T[j-1]>c1?~j:j):SA[i]=~j},computeBWT=function(T,SA,C,B,n,k){var b,i,j,c0,c1,pidx=-1;for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!1),j=n-1,b=B[c1=T[j]],SA[b++]=j>0&&T[j-1]<c1?~j:j,i=0;n>i;i++)(j=SA[i])>0?(j--,ASSERT(T[j]>=T[j+1]),SA[i]=~(c0=T[j]),c0!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(b>i),SA[b++]=j>0&&T[j-1]<c1?~j:j):0!==j&&(SA[i]=~j);for(C===B&&getCounts(T,C,n,k),getBuckets(C,B,k,!0),i=n-1,b=B[c1=0];i>=0;i--)(j=SA[i])>0?(j--,ASSERT(T[j]<=T[j+1]),SA[i]=c0=T[j],c0!==c1&&(B[c1]=b,b=B[c1=c0]),ASSERT(i>=b),SA[--b]=j>0&&T[j-1]>c1?~T[j-1]:j):0!==j?SA[i]=~j:pidx=i;return pidx},SA_IS=function(T,SA,fs,n,k,isbwt){var C,B,RA,i,j,b,m,p,q,name,newfs,c0,c1,pidx=0,flags=0;for(256>=k?(C=Util.makeS32Buffer(k),fs>=k?(B=SA.subarray(n+fs-k),flags=1):(B=Util.makeS32Buffer(k),flags=3)):fs>=k?(C=SA.subarray(n+fs-k),fs-k>=k?(B=SA.subarray(n+fs-2*k),flags=0):1024>=k?(B=Util.makeS32Buffer(k),flags=2):(B=C,flags=8)):(C=B=Util.makeS32Buffer(k),flags=12),getCounts(T,C,n,k),getBuckets(C,B,k,!0),i=0;n>i;i++)SA[i]=0;b=-1,i=n-1,j=n,m=0,c0=T[n-1];do c1=c0;while(--i>=0&&(c0=T[i])>=c1);for(;i>=0;){do c1=c0;while(--i>=0&&(c0=T[i])<=c1);if(i>=0){b>=0&&(SA[b]=j),b=--B[c1],j=i,++m;do c1=c0;while(--i>=0&&(c0=T[i])>=c1)}}if(m>1?(LMSsort(T,SA,C,B,n,k),name=LMSpostproc(T,SA,n,m)):1===m?(SA[b]=j+1,name=1):name=0,m>name){for(0!==(4&flags)&&(C=null,B=null),0!==(2&flags)&&(B=null),newfs=n+fs-2*m,0===(13&flags)&&(newfs>=k+name?newfs-=k:flags|=8),ASSERT(newfs+m>=n>>>1),i=m+(n>>>1)-1,j=2*m+newfs-1;i>=m;i--)0!==SA[i]&&(SA[j--]=SA[i]-1);RA=SA.subarray(m+newfs),SA_IS(RA,SA,newfs,m,name,!1),RA=null,i=n-1,j=2*m-1,c0=T[n-1];do c1=c0;while(--i>=0&&(c0=T[i])>=c1);for(;i>=0;){do c1=c0;while(--i>=0&&(c0=T[i])<=c1);if(i>=0){SA[j--]=i+1;do c1=c0;while(--i>=0&&(c0=T[i])>=c1)}}for(i=0;m>i;i++)SA[i]=SA[m+SA[i]];0!==(4&flags)&&(C=B=Util.makeS32Buffer(k)),0!==(2&flags)&&(B=Util.makeS32Buffer(k))}if(0!==(8&flags)&&getCounts(T,C,n,k),m>1){getBuckets(C,B,k,!0),i=m-1,j=n,p=SA[m-1],c1=T[p];do{for(q=B[c0=c1];j>q;)SA[--j]=0;do{if(SA[--j]=p,--i<0)break;p=SA[i]}while((c1=T[p])===c0)}while(i>=0);for(;j>0;)SA[--j]=0}return isbwt?pidx=computeBWT(T,SA,C,B,n,k):induceSA(T,SA,C,B,n,k),C=null,B=null,pidx},BWT=Object.create(null);return BWT.suffixsort=function(T,SA,n,alphabetSize){if(ASSERT(T&&SA&&T.length>=n&&SA.length>=n),1>=n)return 1===n&&(SA[0]=0),0;if(!alphabetSize)if(1===T.BYTES_PER_ELEMENT)alphabetSize=256;else{if(2!==T.BYTES_PER_ELEMENT)throw new Error("Need to specify alphabetSize");alphabetSize=65536}return ASSERT(alphabetSize>0),T.BYTES_PER_ELEMENT&&ASSERT(alphabetSize<=1<<8*T.BYTES_PER_ELEMENT),SA_IS(T,SA,0,n,alphabetSize,!1)},BWT.bwtransform=function(T,U,A,n,alphabetSize){var i,pidx;if(ASSERT(T&&U&&A),ASSERT(T.length>=n&&U.length>=n&&A.length>=n),1>=n)return 1===n&&(U[0]=T[0]),n;if(!alphabetSize)if(1===T.BYTES_PER_ELEMENT)alphabetSize=256;else{if(2!==T.BYTES_PER_ELEMENT)throw new Error("Need to specify alphabetSize");alphabetSize=65536}for(ASSERT(alphabetSize>0),T.BYTES_PER_ELEMENT&&ASSERT(alphabetSize<=1<<8*T.BYTES_PER_ELEMENT),pidx=SA_IS(T,A,0,n,alphabetSize,!0),U[0]=T[n-1],i=0;pidx>i;i++)U[i+1]=A[i];for(i+=1;n>i;i++)U[i]=A[i];return pidx+1},BWT.unbwtransform=function(T,U,LF,n,pidx){var i,t,C=Util.makeU32Buffer(256);for(i=0;256>i;i++)C[i]=0;for(i=0;n>i;i++)LF[i]=C[T[i]]++;for(i=0,t=0;256>i;i++)t+=C[i],C[i]=t-C[i];for(i=n-1,t=0;i>=0;i--)t=LF[t]+C[U[i]=T[t]],t+=pidx>t?1:0;C=null},BWT.bwtransform2=function(T,U,n,alphabetSize){var i,j,pidx=0;if(ASSERT(T&&U),ASSERT(T.length>=n&&U.length>=n),1>=n)return 1===n&&(U[0]=T[0]),0;if(!alphabetSize)if(1===T.BYTES_PER_ELEMENT)alphabetSize=256;else{if(2!==T.BYTES_PER_ELEMENT)throw new Error("Need to specify alphabetSize");alphabetSize=65536}ASSERT(alphabetSize>0),T.BYTES_PER_ELEMENT&&ASSERT(alphabetSize<=1<<8*T.BYTES_PER_ELEMENT);var TT;if(TT=T.length>=2*n?T:256>=alphabetSize?Util.makeU8Buffer(2*n):65536>=alphabetSize?Util.makeU16Buffer(2*n):Util.makeU32Buffer(2*n),TT!==T)for(i=0;n>i;i++)TT[i]=T[i];for(i=0;n>i;i++)TT[n+i]=TT[i];var A=Util.makeS32Buffer(2*n);for(SA_IS(TT,A,0,2*n,alphabetSize,!1),i=0,j=0;2*n>i;i++){var s=A[i];n>s&&(0===s&&(pidx=j),--s<0&&(s=n-1),U[j++]=T[s])}return ASSERT(j===n),pidx},freeze(BWT)};module.exports=body_fn.apply(null,libs)},{"./Util":144,"./freeze":145}],122:[function(require,module){var libs=[require("./freeze"),require("./BWT"),require("./DefSumModel"),require("./FenwickModel"),require("./LogDistanceModel"),require("./NoModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(freeze,BWT,DefSumModel,FenwickModel,LogDistanceModel,NoModel,RangeCoder,Stream,Util){var F_PROB_MAX=(Stream.EOF,65280),F_PROB_INCR=256;return BWTC=Object.create(null),BWTC.MAGIC="bwtc",BWTC.compressFile=Util.compressFileHelper(BWTC.MAGIC,function(input,output,size,props,finalByte){var encoder=new RangeCoder(output);encoder.encodeStart(finalByte,1);var blockSize=9;"number"==typeof props&&props>=1&&9>=props&&(blockSize=props),encoder.encodeByte(blockSize);var fast=5>=blockSize;blockSize*=1e5;var length,b,c,pidx,i,j,block=Util.makeU8Buffer(blockSize),readBlock=function(){var pos;for(pos=0;blockSize>pos;){var ch=input.readByte();if(0>ch)break;block[pos++]=ch}return pos},U=Util.makeU8Buffer(blockSize),A=Util.makeS32Buffer(blockSize),M=Util.makeU8Buffer(256),bitModelFactory=NoModel.factory(encoder),lenModel=new LogDistanceModel(blockSize,0,bitModelFactory,bitModelFactory);do{if(length=readBlock(),0===length)break;length===block.length?(encoder.encodeFreq(1,0,3),b=block):(encoder.encodeFreq(1,1,3),lenModel.encode(length),b=block.subarray(0,length)),pidx=BWT.bwtransform(b,U,A,length,256),lenModel.encode(pidx);var useTree=Util.makeU16Buffer(512);for(i=0;length>i;i++)c=U[i],useTree[256+c]=1;for(i=255;i>0;i--)useTree[i]=useTree[2*i]+useTree[2*i+1];for(useTree[0]=1,i=1;512>i;i++){var parent=i>>>1,full=1<<9-Util.fls(i);if(0===useTree[parent]||useTree[parent]===2*full);else if(i>=256)encoder.encodeBit(useTree[i]);else{var v=useTree[i];v=0===v?0:v===full?2:1,encoder.encodeFreq(1,v,3)}}var alphabetSize=0;for(i=0;256>i;i++)useTree[256+i]&&(M[alphabetSize++]=i);for(useTree=null,i=0;length>i;i++){for(c=U[i],j=0;alphabetSize>j&&M[j]!==c;j++);for(console.assert(alphabetSize>j),U[i]=j;j>0;j--)M[j]=M[j-1];M[0]=c}var model=new FenwickModel(encoder,alphabetSize+1,F_PROB_MAX,F_PROB_INCR);
fast&&(model=new DefSumModel(encoder,alphabetSize+1));var runLength=0,emitLastRun=function(){for(;0!==runLength;)1&runLength?(model.encode(0),runLength-=1):(model.encode(1),runLength-=2),runLength>>>=1};for(i=0;length>i;i++)c=U[i],0===c?runLength++:(emitLastRun(),model.encode(c+1),runLength=0);emitLastRun()}while(length===block.length);encoder.encodeFreq(1,2,3),encoder.encodeFinish()},!0),BWTC.decompressFile=Util.decompressFileHelper(BWTC.MAGIC,function(input,output){var decoder=new RangeCoder(input);decoder.decodeStart(!0);var blockSize=decoder.decodeByte();console.assert(blockSize>=1&&9>=blockSize);var fast=5>=blockSize;blockSize*=1e5;for(var b,length,i,j,c,block=Util.makeU8Buffer(blockSize),U=Util.makeU8Buffer(blockSize),A=Util.makeS32Buffer(blockSize),M=Util.makeU8Buffer(256),bitModelFactory=NoModel.factory(decoder),lenModel=new LogDistanceModel(blockSize,0,bitModelFactory,bitModelFactory);;){var blockIndicator=decoder.decodeCulFreq(3);if(decoder.decodeUpdate(1,blockIndicator,3),0===blockIndicator)length=blockSize,b=block;else if(1===blockIndicator)length=lenModel.decode(),b=block.subarray(0,length);else if(2===blockIndicator)break;var pidx=lenModel.decode(),useTree=Util.makeU16Buffer(512);for(useTree[0]=1,i=1;512>i;i++){var parent=i>>>1,full=1<<9-Util.fls(i);if(0===useTree[parent]||useTree[parent]===2*full)useTree[i]=useTree[parent]>>>1;else if(i>=256)useTree[i]=decoder.decodeBit();else{var v=decoder.decodeCulFreq(3);decoder.decodeUpdate(1,v,3),useTree[i]=2===v?full:v}}var alphabetSize=0;for(i=0;256>i;i++)useTree[256+i]&&(M[alphabetSize++]=i);useTree=null;var model=new FenwickModel(decoder,alphabetSize+1,F_PROB_MAX,F_PROB_INCR);fast&&(model=new DefSumModel(decoder,alphabetSize+1,!0));var val=1;for(i=0;length>i;)if(c=model.decode(),0===c){for(j=0;val>j;j++)b[i++]=0;val*=2}else if(1===c){for(j=0;val>j;j++)b[i++]=0,b[i++]=0;val*=2}else val=1,b[i++]=c-1;for(i=0;length>i;i++){for(j=b[i],b[i]=c=M[j];j>0;j--)M[j]=M[j-1];M[0]=c}BWT.unbwtransform(block,U,A,length,pidx),output.write(U,0,length)}decoder.decodeFinish()}),BWTC};module.exports=body_fn.apply(null,libs)},{"./BWT":121,"./DefSumModel":127,"./FenwickModel":131,"./LogDistanceModel":134,"./NoModel":139,"./RangeCoder":141,"./Stream":143,"./Util":144,"./freeze":145}],123:[function(require,module){var libs=[require("./Stream")],body_fn=function(Stream){var BitStream=function(stream){(function(){var bufferByte=256;this.readBit=function(){if(0===(255&bufferByte)){var ch=stream.readByte();if(ch===Stream.EOF)return this._eof=!0,ch;bufferByte=ch<<1|1}var bit=256&bufferByte?1:0;return bufferByte<<=1,bit},this.seekBit=function(pos){var n_byte=pos>>>3,n_bit=pos-8*n_byte;this.seek(n_byte),this._eof=!1,this.readBits(n_bit)},this.tellBit=function(){for(var pos=8*stream.tell(),b=bufferByte;0!==(255&b);)pos--,b<<=1;return pos},this.readByte=function(){return 0===(255&bufferByte)?stream.readByte():this.readBits(8)},this.seek=function(pos){stream.seek(pos),bufferByte=256}}).call(this),function(){var bufferByte=1;this.writeBit=function(b){bufferByte<<=1,b&&(bufferByte|=1),256&bufferByte&&(stream.writeByte(255&bufferByte),bufferByte=1)},this.writeByte=function(_byte){1===bufferByte?stream.writeByte(_byte):stream.writeBits(8,_byte)},this.flush=function(){for(;1!==bufferByte;)this.writeBit(0);stream.flush&&stream.flush()}}.call(this)};return BitStream.EOF=Stream.EOF,BitStream.prototype=Object.create(Stream.prototype),BitStream.prototype.readBits=function(n){var i,r=0;if(n>31)return r=65536*this.readBits(n-16),r+this.readBits(16);for(i=0;n>i;i++)r<<=1,this.readBit()>0&&r++;return r},BitStream.prototype.writeBits=function(n,value){if(n>32){var low=65535&value,high=(value-low)/65536;return this.writeBits(n-16,high),void this.writeBits(16,low)}var i;for(i=n-1;i>=0;i--)this.writeBit(value>>>i&1)},BitStream};module.exports=body_fn.apply(null,libs)},{"./Stream":143}],124:[function(require,module){var libs=[require("./freeze"),require("./BitStream"),require("./BWT"),require("./CRC32"),require("./HuffmanAllocator"),require("./Stream"),require("./Util")],body_fn=function(freeze,BitStream,BWT,CRC32,HuffmanAllocator,Stream,Util){var MAX_HUFCODE_BITS=20,MAX_SYMBOLS=258,SYMBOL_RUNA=0,SYMBOL_RUNB=1,MIN_GROUPS=2,MAX_GROUPS=6,GROUP_SIZE=50,WHOLEPI=54156738319193,SQRTPI=25779555029136,EOF=Stream.EOF,mtf=function(array,index){var i,src=array[index];for(i=index;i>0;i--)array[i]=array[i-1];return array[0]=src,src},Err={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},ErrorMessages={};ErrorMessages[Err.LAST_BLOCK]="Bad file checksum",ErrorMessages[Err.NOT_BZIP_DATA]="Not bzip data",ErrorMessages[Err.UNEXPECTED_INPUT_EOF]="Unexpected input EOF",ErrorMessages[Err.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF",ErrorMessages[Err.DATA_ERROR]="Data error",ErrorMessages[Err.OUT_OF_MEMORY]="Out of memory",ErrorMessages[Err.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";var _throw=function(status,optDetail){var msg=ErrorMessages[status]||"unknown error";optDetail&&(msg+=": "+optDetail);var e=new TypeError(msg);throw e.errorCode=status,e},Bunzip=function(inputStream,outputStream){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(inputStream,outputStream)};Bunzip.prototype._init_block=function(){var moreBlocks=this._get_next_block();return moreBlocks?(this.blockCRC=new CRC32,!0):(this.writeCount=-1,!1)},Bunzip.prototype._start_bunzip=function(inputStream,outputStream){var buf=Util.makeU8Buffer(4);(4!==inputStream.read(buf,0,4)||"BZh"!==String.fromCharCode(buf[0],buf[1],buf[2]))&&_throw(Err.NOT_BZIP_DATA,"bad magic");var level=buf[3]-48;(1>level||level>9)&&_throw(Err.NOT_BZIP_DATA,"level out of range"),this.reader=new BitStream(inputStream),this.dbufSize=1e5*level,this.nextoutput=0,this.outputStream=outputStream,this.streamCRC=0},Bunzip.prototype._get_next_block=function(){var i,j,k,reader=this.reader,h=reader.readBits(48);if(h===SQRTPI)return!1;h!==WHOLEPI&&_throw(Err.NOT_BZIP_DATA),this.targetBlockCRC=reader.readBits(32),this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,reader.readBits(1)&&_throw(Err.OBSOLETE_INPUT);var origPointer=reader.readBits(24);origPointer>this.dbufSize&&_throw(Err.DATA_ERROR,"initial position out of bounds");var t=reader.readBits(16),symToByte=Util.makeU8Buffer(256),symTotal=0;for(i=0;16>i;i++)if(t&1<<15-i){var o=16*i;for(k=reader.readBits(16),j=0;16>j;j++)k&1<<15-j&&(symToByte[symTotal++]=o+j)}var groupCount=reader.readBits(3);(MIN_GROUPS>groupCount||groupCount>MAX_GROUPS)&&_throw(Err.DATA_ERROR);var nSelectors=reader.readBits(15);0===nSelectors&&_throw(Err.DATA_ERROR);var mtfSymbol=Util.makeU8Buffer(256);for(i=0;groupCount>i;i++)mtfSymbol[i]=i;var selectors=Util.makeU8Buffer(nSelectors);for(i=0;nSelectors>i;i++){for(j=0;reader.readBits(1);j++)j>=groupCount&&_throw(Err.DATA_ERROR);selectors[i]=mtf(mtfSymbol,j)}var hufGroup,symCount=symTotal+2,groups=[];for(j=0;groupCount>j;j++){var length=Util.makeU8Buffer(symCount),temp=Util.makeU8Buffer(MAX_HUFCODE_BITS+1);for(t=reader.readBits(5),i=0;symCount>i;i++){for(;(1>t||t>MAX_HUFCODE_BITS)&&_throw(Err.DATA_ERROR),reader.readBits(1);)reader.readBits(1)?t--:t++;length[i]=t}var minLen,maxLen;for(minLen=maxLen=length[0],i=1;symCount>i;i++)length[i]>maxLen?maxLen=length[i]:length[i]<minLen&&(minLen=length[i]);hufGroup={},groups.push(hufGroup),hufGroup.permute=Util.makeU16Buffer(MAX_SYMBOLS),hufGroup.limit=Util.makeU32Buffer(MAX_HUFCODE_BITS+2),hufGroup.base=Util.makeU32Buffer(MAX_HUFCODE_BITS+1),hufGroup.minLen=minLen,hufGroup.maxLen=maxLen;var pp=0;for(i=minLen;maxLen>=i;i++)for(temp[i]=hufGroup.limit[i]=0,t=0;symCount>t;t++)length[t]===i&&(hufGroup.permute[pp++]=t);for(i=0;symCount>i;i++)temp[length[i]]++;for(pp=t=0,i=minLen;maxLen>i;i++)pp+=temp[i],hufGroup.limit[i]=pp-1,pp<<=1,t+=temp[i],hufGroup.base[i+1]=pp-t;hufGroup.limit[maxLen+1]=Number.MAX_VALUE,hufGroup.limit[maxLen]=pp+temp[maxLen]-1,hufGroup.base[minLen]=0}var byteCount=Util.makeU32Buffer(256);for(i=0;256>i;i++)mtfSymbol[i]=i;var uc,runPos=0,dbufCount=0,selector=0,dbuf=this.dbuf=Util.makeU32Buffer(this.dbufSize);for(symCount=0;;){for(symCount--||(symCount=GROUP_SIZE-1,selector>=nSelectors&&_throw(Err.DATA_ERROR),hufGroup=groups[selectors[selector++]]),i=hufGroup.minLen,j=reader.readBits(i);i>hufGroup.maxLen&&_throw(Err.DATA_ERROR),!(j<=hufGroup.limit[i]);i++)j=j<<1|reader.readBits(1);j-=hufGroup.base[i],(0>j||j>=MAX_SYMBOLS)&&_throw(Err.DATA_ERROR);var nextSym=hufGroup.permute[j];if(nextSym!==SYMBOL_RUNA&&nextSym!==SYMBOL_RUNB){if(runPos)for(runPos=0,dbufCount+t>=this.dbufSize&&_throw(Err.DATA_ERROR),uc=symToByte[mtfSymbol[0]],byteCount[uc]+=t;t--;)dbuf[dbufCount++]=uc;if(nextSym>symTotal)break;dbufCount>=this.dbufSize&&_throw(Err.DATA_ERROR),i=nextSym-1,uc=mtf(mtfSymbol,i),uc=symToByte[uc],byteCount[uc]++,dbuf[dbufCount++]=uc}else runPos||(runPos=1,t=0),t+=nextSym===SYMBOL_RUNA?runPos:2*runPos,runPos<<=1}for((0>origPointer||origPointer>=dbufCount)&&_throw(Err.DATA_ERROR),j=0,i=0;256>i;i++)k=j+byteCount[i],byteCount[i]=j,j=k;for(i=0;dbufCount>i;i++)uc=255&dbuf[i],dbuf[byteCount[uc]]|=i<<8,byteCount[uc]++;var pos=0,current=0,run=0;return dbufCount&&(pos=dbuf[origPointer],current=255&pos,pos>>=8,run=-1),this.writePos=pos,this.writeCurrent=current,this.writeCount=dbufCount,this.writeRun=run,!0},Bunzip.prototype._read_bunzip=function(){var copies,previous,outbyte;if(this.writeCount<0)return 0;for(var dbuf=this.dbuf,pos=this.writePos,current=this.writeCurrent,dbufCount=this.writeCount,run=(this.outputsize,this.writeRun);dbufCount;){for(dbufCount--,previous=current,pos=dbuf[pos],current=255&pos,pos>>=8,3===run++?(copies=current,outbyte=previous,current=-1):(copies=1,outbyte=current),this.blockCRC.updateCRCRun(outbyte,copies);copies--;)this.outputStream.writeByte(outbyte),this.nextoutput++;current!=previous&&(run=0)}return this.writeCount=dbufCount,this.blockCRC.getCRC()!==this.targetBlockCRC&&_throw(Err.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput},Bunzip.Err=Err,Bunzip.decode=function(input,output,multistream){for(var inputStream=Util.coerceInputStream(input),o=Util.coerceOutputStream(output,output),outputStream=o.stream,bz=new Bunzip(inputStream,outputStream);;){if("eof"in inputStream&&inputStream.eof())break;if(bz._init_block())bz._read_bunzip();else{var targetStreamCRC=bz.reader.readBits(32);if(targetStreamCRC!==bz.streamCRC&&_throw(Err.DATA_ERROR,"Bad stream CRC (got "+bz.streamCRC.toString(16)+" expected "+targetStreamCRC.toString(16)+")"),!(multistream&&"eof"in inputStream)||inputStream.eof())break;bz._start_bunzip(inputStream,outputStream)}}return o.retval},Bunzip.decodeBlock=function(input,pos,output){var inputStream=Util.coerceInputStream(input),o=Util.coerceOutputStream(output,output),outputStream=o.stream,bz=new Bunzip(inputStream,outputStream);bz.reader.seekBit(pos);var moreBlocks=bz._get_next_block();return moreBlocks&&(bz.blockCRC=new CRC32,bz.writeCopies=0,bz._read_bunzip()),o.retval},Bunzip.table=function(input,callback,multistream){var inputStream=new Stream;inputStream.delegate=Util.coerceInputStream(input),inputStream.pos=0,inputStream.readByte=function(){return this.pos++,this.delegate.readByte()},inputStream.tell=function(){return this.pos},inputStream.delegate.eof&&(inputStream.eof=inputStream.delegate.eof.bind(inputStream.delegate));var outputStream=new Stream;outputStream.pos=0,outputStream.writeByte=function(){this.pos++};for(var bz=new Bunzip(inputStream,outputStream),blockSize=bz.dbufSize;;){if("eof"in inputStream&&inputStream.eof())break;var position=bz.reader.tellBit();if(bz._init_block()){var start=outputStream.pos;bz._read_bunzip(),callback(position,outputStream.pos-start)}else{{bz.reader.readBits(32)}if(!(multistream&&"eof"in inputStream)||inputStream.eof())break;bz._start_bunzip(inputStream,outputStream),console.assert(bz.dbufSize===blockSize,"shouldn't change block size within multistream file")}}};var StaticHuffman=function(freq,alphabetSize){var i,mergedFreq=[];for(i=0;alphabetSize>i;i++)mergedFreq[i]=freq[i]<<9|i;mergedFreq.sort(function(a,b){return a-b});var sortedFreq=mergedFreq.map(function(v){return v>>>9});for(HuffmanAllocator.allocateHuffmanCodeLengths(sortedFreq,MAX_HUFCODE_BITS),this.codeLengths=Util.makeU8Buffer(alphabetSize),i=0;alphabetSize>i;i++){var sym=511&mergedFreq[i];this.codeLengths[sym]=sortedFreq[i]}};StaticHuffman.prototype.computeCanonical=function(){var i,alphabetSize=this.codeLengths.length,merged=[];for(i=0;alphabetSize>i;i++)merged[i]=this.codeLengths[i]<<9|i;merged.sort(function(a,b){return a-b}),this.code=Util.makeU32Buffer(alphabetSize);var code=0,prevLen=0;for(i=0;alphabetSize>i;i++){var curLen=merged[i]>>>9,sym=511&merged[i];console.assert(curLen>=prevLen),code<<=curLen-prevLen,this.code[sym]=code++,prevLen=curLen}},StaticHuffman.prototype.cost=function(array,offset,length){var i,cost=0;for(i=0;length>i;i++)cost+=this.codeLengths[array[offset+i]];return cost},StaticHuffman.prototype.emit=function(outStream){var i,currentLength=this.codeLengths[0];for(outStream.writeBits(5,currentLength),i=0;i<this.codeLengths.length;i++){var value,delta,codeLength=this.codeLengths[i];for(console.assert(codeLength>0&&MAX_HUFCODE_BITS>=codeLength),codeLength>currentLength?(value=2,delta=codeLength-currentLength):(value=3,delta=currentLength-codeLength);delta-->0;)outStream.writeBits(2,value);outStream.writeBit(0),currentLength=codeLength}},StaticHuffman.prototype.encode=function(outStream,symbol){outStream.writeBits(this.codeLengths[symbol],this.code[symbol])};var readBlock=function(inStream,block,length,crc){for(var pos=0,lastChar=-1,runLength=0;length>pos&&!(4===runLength&&(block[pos++]=0,pos>=length));){var ch=inStream.readByte();if(ch===EOF)break;if(crc.updateCRC(ch),ch!==lastChar)lastChar=ch,runLength=1;else if(runLength++,runLength>4){if(256>runLength){block[pos-1]++;continue}runLength=1}block[pos++]=ch}return pos},assignSelectors=function(selectors,groups,input){var i,j,k;for(i=0,k=0;i<input.length;i+=GROUP_SIZE){var groupSize=Math.min(GROUP_SIZE,input.length-i),best=0,bestCost=groups[0].cost(input,i,groupSize);for(j=1;j<groups.length;j++){var groupCost=groups[j].cost(input,i,groupSize);bestCost>groupCost&&(best=j,bestCost=groupCost)}selectors[k++]=best}},optimizeHuffmanGroups=function(groups,targetGroups,input,selectors,alphabetSize){for(var i,j,k,groupCounts=[];groups.length<targetGroups;){for(assignSelectors(selectors,groups,input),i=0;i<groups.length;i++)groupCounts[i]=0;for(i=0;i<selectors.length;i++)groupCounts[selectors[i]]++;var which=groupCounts.indexOf(Math.max.apply(Math,groupCounts)),splits=[];for(i=0,j=0;i<selectors.length;i++)if(selectors[i]===which){var start=i*GROUP_SIZE,end=Math.min(start+GROUP_SIZE,input.length);splits.push({index:i,cost:groups[which].cost(input,start,end-start)})}for(splits.sort(function(s1,s2){return s1.cost-s2.cost}),i=splits.length>>>1;i<splits.length;i++)selectors[splits[i].index]=groups.length;groups.push(null);var f,freq=[];for(i=0;i<groups.length;i++)for(f=freq[i]=[],j=0;alphabetSize>j;j++)f[j]=0;for(i=0,j=0;i<input.length;)for(f=freq[selectors[j++]],k=0;GROUP_SIZE>k&&i<input.length;k++)f[input[i++]]++;for(i=0;i<groups.length;i++)groups[i]=new StaticHuffman(freq[i],alphabetSize)}},compressBlock=function(block,length,outStream){var c,i,j,k,U=Util.makeU8Buffer(length),pidx=BWT.bwtransform2(block,U,length,256);outStream.writeBit(0),outStream.writeBits(24,pidx);var used=[],compact=[];for(i=0;length>i;i++)c=block[i],used[c]=!0,compact[c>>>4]=!0;for(i=0;16>i;i++)outStream.writeBit(!!compact[i]);for(i=0;16>i;i++)if(compact[i])for(j=0;16>j;j++)outStream.writeBit(!!used[i<<4|j]);var alphabetSize=0;for(i=0;256>i;i++)used[i]&&alphabetSize++;var A=Util.makeU16Buffer(length+1),endOfBlock=alphabetSize+1,freq=[];for(i=0;endOfBlock>=i;i++)freq[i]=0;var M=Util.makeU8Buffer(alphabetSize);for(i=0,j=0;256>i;i++)used[i]&&(M[j++]=i);used=null,compact=null;var pos=0,runLength=0,emit=function(c){A[pos++]=c,freq[c]++},emitLastRun=function(){for(;0!==runLength;)1&runLength?(emit(0),runLength-=1):(emit(1),runLength-=2),runLength>>>=1};for(i=0;i<U.length;i++){for(c=U[i],j=0;alphabetSize>j&&M[j]!==c;j++);console.assert(j!==alphabetSize),mtf(M,j),0===j?runLength++:(emitLastRun(),emit(j+1),runLength=0)}emitLastRun(),emit(endOfBlock),A=A.subarray(0,pos);var targetGroups,groups=[];for(targetGroups=pos>=2400?6:pos>=1200?5:pos>=600?4:pos>=200?3:2,groups.push(new StaticHuffman(freq,endOfBlock+1)),i=0;endOfBlock>=i;i++)freq[i]=1;groups.push(new StaticHuffman(freq,endOfBlock+1)),freq=null;var selectors=Util.makeU8Buffer(Math.ceil(pos/GROUP_SIZE));for(optimizeHuffmanGroups(groups,targetGroups,A,selectors,endOfBlock+1),assignSelectors(selectors,groups,A),console.assert(groups.length>=MIN_GROUPS&&groups.length<=MAX_GROUPS),outStream.writeBits(3,groups.length),outStream.writeBits(15,selectors.length),i=0;i<groups.length;i++)M[i]=i;for(i=0;i<selectors.length;i++){var s=selectors[i];for(j=0;j<groups.length&&M[j]!==s;j++);for(console.assert(j<groups.length),mtf(M,j);j>0;j--)outStream.writeBit(1);outStream.writeBit(0)}for(i=0;i<groups.length;i++)groups[i].emit(outStream),groups[i].computeCanonical();for(i=0,k=0;pos>i;){var huff=groups[selectors[k++]];for(j=0;GROUP_SIZE>j&&pos>i;j++)huff.encode(outStream,A[i++])}},Bzip2=Object.create(null);return Bzip2.compressFile=function(inStream,outStream,props){inStream=Util.coerceInputStream(inStream);var o=Util.coerceOutputStream(outStream,outStream);outStream=new BitStream(o.stream);var blockSizeMultiplier=9;if("number"==typeof props&&(blockSizeMultiplier=props),1>blockSizeMultiplier||blockSizeMultiplier>9)throw new Error("Invalid block size multiplier");var blockSize=1e5*blockSizeMultiplier;blockSize-=19,outStream.writeByte("B".charCodeAt(0)),outStream.writeByte("Z".charCodeAt(0)),outStream.writeByte("h".charCodeAt(0)),outStream.writeByte("0".charCodeAt(0)+blockSizeMultiplier);var length,block=Util.makeU8Buffer(blockSize),streamCRC=0;do{var crc=new CRC32;length=readBlock(inStream,block,blockSize,crc),length>0&&(streamCRC=((streamCRC<<1|streamCRC>>>31)^crc.getCRC())>>>0,outStream.writeBits(48,WHOLEPI),outStream.writeBits(32,crc.getCRC()),compressBlock(block,length,outStream))}while(length===blockSize);return outStream.writeBits(48,SQRTPI),outStream.writeBits(32,streamCRC),outStream.flush(),o.retval},Bzip2.decompressFile=Bunzip.decode,Bzip2.decompressBlock=Bunzip.decodeBlock,Bzip2.table=Bunzip.table,Bzip2};module.exports=body_fn.apply(null,libs)},{"./BWT":121,"./BitStream":123,"./CRC32":125,"./HuffmanAllocator":133,"./Stream":143,"./Util":144,"./freeze":145}],125:[function(require,module){var libs=[require("./Util")],body_fn=function(Util){var crc32Lookup=Util.arraycopy(Util.makeU32Buffer(256),[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]),CRC32=function(){var crc=4294967295;this.getCRC=function(){return~crc>>>0},this.updateCRC=function(value){crc=crc<<8^crc32Lookup[255&(crc>>>24^value)]},this.updateCRCRun=function(value,count){for(;count-->0;)crc=crc<<8^crc32Lookup[255&(crc>>>24^value)]}};return CRC32};module.exports=body_fn.apply(null,libs)},{"./Util":144}],126:[function(require,module){var libs=[require("./BitStream"),require("./Huffman"),require("./Util")],body_fn=function(BitStream,Huffman,Util){var Context1Model=function(modelFactory,contextSize,alphabetSize){var i;for(this.literalModel=[],i=0;contextSize>i;i++)this.literalModel[i]=modelFactory(alphabetSize)};return Context1Model.prototype.encode=function(ch,context){this.literalModel[context].encode(ch)},Context1Model.prototype.decode=function(context){return this.literalModel[context].decode()},Context1Model.MAGIC="ctx1",Context1Model.compressFile=Util.compressFileHelper(Context1Model.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(outStream),alphabetSize=256;0>fileSize&&alphabetSize++;var coder=Huffman.factory(bitstream,8191),model=new Context1Model(coder,256,alphabetSize),lastchar=32,modelp={encode:function(symbol){model.encode(symbol,lastchar),lastchar=symbol}};Util.compressWithModel(inStream,fileSize,modelp),bitstream.flush()}),Context1Model.decompressFile=Util.decompressFileHelper(Context1Model.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(inStream),alphabetSize=256;0>fileSize&&alphabetSize++;var coder=Huffman.factory(bitstream,8191),model=new Context1Model(coder,256,alphabetSize),lastchar=32,modelp={decode:function(){var symbol=model.decode(lastchar);return lastchar=symbol,symbol}};Util.decompressWithModel(outStream,fileSize,modelp)}),Context1Model};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Huffman":132,"./Util":144}],127:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var LOG_PROB_TOTAL=8,PROB_TOTAL=1<<LOG_PROB_TOTAL,MAX_ESCAPE_COUNT=40,DefSumModel=function(coder,size,isDecoder){var i;console.assert(300>size);var ESCAPE=this.numSyms=size;for(this.coder=coder,this.prob=Util.makeU16Buffer(size+2),this.escape=Util.makeU16Buffer(size+1),this.update=Util.makeU16Buffer(size+1),this.prob[ESCAPE+1]=PROB_TOTAL,i=0;i<=this.numSyms;i++)this.escape[i]=i;if(this.updateCount=0,this.updateThresh=PROB_TOTAL-Math.floor(PROB_TOTAL/2),isDecoder){for(this.probToSym=Util.makeU16Buffer(PROB_TOTAL),this.escProbToSym=Util.makeU16Buffer(this.numSyms),i=0;PROB_TOTAL>i;i++)this.probToSym[i]=ESCAPE;for(i=0;i<this.numSyms;i++)this.escProbToSym[i]=i}};return DefSumModel.factory=function(coder,isDecoder){return function(size){return new DefSumModel(coder,size,isDecoder)}},DefSumModel.prototype._update=function(symbol,isDecoder){if(symbol===this.numSyms){if(this.update[symbol]>=MAX_ESCAPE_COUNT)return;if(this.updateCount>=this.updateThresh-1)return}if(this.update[symbol]++,this.updateCount++,!(this.updateCount<this.updateThresh)){var cumProb,cumEscProb,odd,i,j,k;for(this.escape[0]=this.prob[0]=cumProb=cumEscProb=odd=0,i=0;i<this.numSyms+1;i++){var newProb=(this.prob[i+1]-this.prob[i]>>>1)+this.update[i];newProb?(this.prob[i]=cumProb,cumProb+=newProb,1&newProb&&odd++,this.escape[i]=cumEscProb):(this.prob[i]=cumProb,this.escape[i]=cumEscProb,cumEscProb++)}for(this.prob[i]=cumProb,console.assert(cumProb===PROB_TOTAL),this.updateThresh=PROB_TOTAL-Math.floor((cumProb-odd)/2),i=0;i<this.numSyms+1;i++)this.update[i]=0;if(this.update[this.numSyms]=1,this.updateCount=1,isDecoder)for(i=0,j=0,k=0;i<this.numSyms+1;i++){for(var probLimit=this.prob[i+1];probLimit>j;j++)this.probToSym[j]=i;for(var escProbLimit=this.escape[i+1];escProbLimit>k;k++)this.escProbToSym[k]=i}}},DefSumModel.prototype.encode=function(symbol){var lt_f=this.prob[symbol],sy_f=this.prob[symbol+1]-lt_f;if(console.assert(this.prob[this.numSyms+1]===PROB_TOTAL),sy_f)return this.coder.encodeShift(sy_f,lt_f,LOG_PROB_TOTAL),this._update(symbol);console.assert(symbol!==this.numSyms),this.encode(this.numSyms),lt_f=this.escape[symbol],sy_f=this.escape[symbol+1]-lt_f;var tot_f=this.escape[this.numSyms];return this.coder.encodeFreq(sy_f,lt_f,tot_f),this._update(symbol)},DefSumModel.prototype.decode=function(){var prob=this.coder.decodeCulShift(LOG_PROB_TOTAL),symbol=this.probToSym[prob],lt_f=this.prob[symbol],sy_f=this.prob[symbol+1]-lt_f;if(this.coder.decodeUpdate(sy_f,lt_f,PROB_TOTAL),this._update(symbol,!0),symbol!==this.numSyms)return symbol;var tot_f=this.escape[this.numSyms];return prob=this.coder.decodeCulFreq(tot_f),symbol=this.escProbToSym[prob],lt_f=this.escape[symbol],sy_f=this.escape[symbol+1]-lt_f,this.coder.decodeUpdate(sy_f,lt_f,tot_f),this._update(symbol,!0),symbol},DefSumModel.MAGIC="dfsm",DefSumModel.compressFile=Util.compressFileHelper(DefSumModel.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new DefSumModel(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),DefSumModel.decompressFile=Util.decompressFileHelper(DefSumModel.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);range.decodeStart(!0);var model=new DefSumModel(range,0>fileSize?257:256,!0);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),DefSumModel};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],128:[function(require,module){var libs=[require("./Util")],body_fn=function(Util){var DeflateDistanceModel=function(size,extraStates,lgDistanceModelFactory,lengthBitsModelFactory){var i,bits=Util.fls(size-1);for(this.extraStates=+extraStates||0,this.lgDistanceModel=lgDistanceModelFactory(2*bits+extraStates),this.distanceModel=[],i=3;bits>=i;i++){var numBits=i-2;this.distanceModel[i]=lengthBitsModelFactory(1<<numBits)}};return DeflateDistanceModel.prototype.encode=function(distance){if(4>distance)return void this.lgDistanceModel.encode(distance+this.extraStates);var lgDistance=Util.fls(distance);console.assert(distance&1<<lgDistance-1),console.assert(lgDistance>=3);var nextBit=distance&1<<lgDistance-2?1:0,l=4+2*(lgDistance-3)+nextBit;this.lgDistanceModel.encode(l+this.extraStates);var rest=distance&(1<<lgDistance-2)-1;this.distanceModel[lgDistance].encode(rest)},DeflateDistanceModel.prototype.decode=function(){var l=this.lgDistanceModel.decode()-this.extraStates;if(4>l)return l;var nextBit=1&l,lgDistance=(l-4>>>1)+3,rest=this.distanceModel[lgDistance].decode();return(2+nextBit<<lgDistance-2)+rest},DeflateDistanceModel};module.exports=body_fn.apply(null,libs)},{"./Util":144}],129:[function(require,module){var libs=[require("./MTFModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(MTFModel,RangeCoder,Stream,Util){var MAX_TRANS_CNT=65535,DEFAULT_MIN_CNT1=8,DEFAULT_MIN_CNT2=128,MODEL_PROB_MAX=65280,MODEL_PROB_INCR=256,CLONE_MODELS=!1,PRINT_STATS=!1,Dmc=Object.create(null);Dmc.MAGIC="dmc!";var MarkovNode=function(coder,size,optModel){this.out=[],this.model=optModel?optModel.clone():new MTFModel(coder,size,MODEL_PROB_MAX,MODEL_PROB_INCR),this.count=Util.makeU16Buffer(size),this.sum=0};MarkovNode.prototype.clone=function(coder,size){var i,newNode=new MarkovNode(coder,size,CLONE_MODELS?this.model:null);for(i=0;size>i;i++)newNode.out[i]=this.out[i];return newNode};var MarkovModel=function(coder,size,MIN_CNT1,MIN_CNT2){var i,j;for(this.coder=coder,this.size=size,this.MIN_CNT1=MIN_CNT1||DEFAULT_MIN_CNT1,this.MIN_CNT2=MIN_CNT2||DEFAULT_MIN_CNT2,this.nodes=[],i=0;size>i;i++)this.nodes[i]=new MarkovNode(coder,size);for(i=0;size>i;i++)for(j=0;size>j;j++)this.nodes[i].out[j]=this.nodes[j];this.current=this.nodes[0]};return MarkovModel.prototype.maybeSplit=function(from,symbol,to){var i,trans_cnt=from.count[symbol],next_cnt=to.sum;if(trans_cnt<=this.MIN_CNT1||next_cnt-trans_cnt<=this.MIN_CNT2)return to;var newNode=to.clone(this.coder,this.size);for(this.nodes.push(newNode),from.out[symbol]=newNode,newNode.sum=to.sum=0,i=0;i<this.size;i++)newNode.count[i]=to.count[i]*trans_cnt/next_cnt,newNode.sum+=newNode.count[i],to.count[i]-=newNode.count[i],to.sum+=to.count[i];return newNode},MarkovModel.prototype.encode=function(symbol){var from=this.current;from.model.encode(symbol);var to=from.out[symbol];from.count[symbol]!==MAX_TRANS_CNT&&(from.count[symbol]++,from.sum++),this.current=this.maybeSplit(from,symbol,to)},MarkovModel.prototype.decode=function(){var from=this.current,symbol=from.model.decode(),to=from.out[symbol];return from.count[symbol]!==MAX_TRANS_CNT&&(from.count[symbol]++,from.sum++),this.current=this.maybeSplit(from,symbol,to),symbol},Dmc.compressFile=Util.compressFileHelper(Dmc.MAGIC,function(inStream,outStream,fileSize,props){props=props||{};var MIN_CNT1=+props.m||DEFAULT_MIN_CNT1,MIN_CNT2=+props.n||DEFAULT_MIN_CNT2;Util.writeUnsignedNumber(outStream,MIN_CNT1),Util.writeUnsignedNumber(outStream,MIN_CNT2);var range=new RangeCoder(outStream);range.encodeStart(202,0);for(var mm=new MarkovModel(range,0>fileSize?257:256,MIN_CNT1,MIN_CNT2),inSize=0;inSize!==fileSize;){var ch=inStream.readByte();if(ch===Stream.EOF){mm.encode(256);break}mm.encode(ch),inSize++}var outSize=range.encodeFinish();PRINT_STATS&&console.log("M1",mm.MIN_CNT1,"M2",mm.MIN_CNT2,"states",mm.nodes.length,"size",outSize)}),Dmc.decompressFile=Util.decompressFileHelper(Dmc.MAGIC,function(inStream,outStream,fileSize){var MIN_CNT1=Util.readUnsignedNumber(inStream),MIN_CNT2=Util.readUnsignedNumber(inStream),range=new RangeCoder(inStream);range.decodeStart();for(var mm=new MarkovModel(range,0>fileSize?257:256,MIN_CNT1,MIN_CNT2),outSize=0;outSize!==fileSize;){var ch=mm.decode();if(256===ch)break;outStream.writeByte(ch),outSize++}range.decodeFinish()}),Dmc};module.exports=body_fn.apply(null,libs)},{"./MTFModel":138,"./RangeCoder":141,"./Stream":143,"./Util":144}],130:[function(require,module){var libs=[require("./RangeCoder"),require("./Util")],body_fn=function(RangeCoder,Util){var Dummy=function(stream){RangeCoder.call(this,stream)};return Dummy.prototype=Object.create(RangeCoder.prototype),Dummy.prototype._write8=function(b){Util.writeUnsignedNumber(this.stream,b),this.stream.writeByte(b)},Dummy.prototype._write16=function(s){this.stream.writeByte(s>>>8&255),this.stream.writeByte(255&s)},Dummy.prototype._read8=function(){return this.stream.readByte()
},Dummy.prototype._read16=function(){var hi=this.stream.readByte(),lo=this.stream.readByte();return hi<<8|lo},Dummy.prototype.encodeStart=function(c){this.stream.writeByte(c)},Dummy.prototype.encodeFreq=function(sy_f,lt_f,tot_f){console.assert(sy_f>0),console.assert(tot_f>0),console.assert(1<<23>=tot_f),sy_f+lt_f>tot_f&&console.error("dummy coder: lt_f + sy_f > tot_f",sy_f,lt_f,tot_f),Util.writeUnsignedNumber(this.stream,sy_f),Util.writeUnsignedNumber(this.stream,lt_f),Util.writeUnsignedNumber(this.stream,tot_f)},Dummy.prototype.encodeShift=function(sy_f,lt_f,shift){this.encodeFreq(sy_f,lt_f,1<<shift)},Dummy.prototype.encodeFinish=function(){return 0},Dummy.prototype.decodeStart=function(skipInitialRead){return skipInitialRead?0:this.stream.readByte()},Dummy.prototype.decodeCulFreq=function(tot_f){return console.assert(tot_f>0),this.sy_f=Util.readUnsignedNumber(this.stream),this.lt_f=Util.readUnsignedNumber(this.stream),this.tot_f=Util.readUnsignedNumber(this.stream),tot_f!==this.tot_f&&console.error("decodeCul* wrong total: got",tot_f,"expected",this.tot_f),(this.sy_f>>>1)+this.lt_f},Dummy.prototype.decodeCulShift=function(shift){return this.decodeCulFreq(1<<shift)},Dummy.prototype.decodeUpdate=function(sy_f,lt_f,tot_f){console.assert(sy_f>0),console.assert(tot_f>0),(sy_f!==this.sy_f||lt_f!==this.lt_f||tot_f!==this.tot_f)&&console.error("decodeUpdate wrong parameters; got",sy_f,lt_f,tot_f,"expected",this.sy_f,this.lt_f,this.tot_f)},Dummy.prototype.decodeFinish=function(){},Dummy};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Util":144}],131:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var DEFAULT_MAX_PROB=65280,DEFAULT_INCREMENT=256,ESC_MASK=65535,ESC_SHIFT=0,SYM_MASK=4294901760,SYM_SHIFT=16,SCALE_MASK=4294901758,FenwickModel=function(coder,size,max_prob,increment){this.coder=coder,this.numSyms=size+1,this.tree=Util.makeU32Buffer(2*this.numSyms),this.increment=+increment||DEFAULT_INCREMENT,this.max_prob=+max_prob||DEFAULT_MAX_PROB,console.assert(this.max_prob+(this.increment-1)<=65535),console.assert(65535>=size);var i;for(i=0;size>i;i++)this.tree[this.numSyms+i]=1<<ESC_SHIFT|0<<SYM_SHIFT;this.tree[this.numSyms+i]=0<<ESC_SHIFT|this.increment<<SYM_SHIFT,this._sumTree()};return FenwickModel.factory=function(coder,max_prob,increment){return function(size){return new FenwickModel(coder,size,max_prob,increment)}},FenwickModel.prototype.clone=function(){var i,newModel=new FenwickModel(this.coder,this.size,this.max_prob,this.increment);for(i=1;i<this.tree.length;i++)newModel.tree[i]=this.tree[i];return newModel},FenwickModel.prototype.encode=function(symbol){var i=this.numSyms+symbol,sy_f=this.tree[i],mask=SYM_MASK,shift=SYM_SHIFT,update=this.increment<<SYM_SHIFT;0===(sy_f&SYM_MASK)?(this.encode(this.numSyms-1),mask=ESC_MASK,update-=1<<ESC_SHIFT,shift=ESC_SHIFT):symbol===this.numSyms-1&&(this.tree[1]&ESC_MASK)>>>ESC_SHIFT===1&&(update=-this.tree[i]);for(var lt_f=0;i>1;){var isRight=1&i,parent=i>>>1;isRight&&(lt_f+=this.tree[2*parent]),this.tree[i]+=update,i=parent}var tot_f=this.tree[1];this.tree[1]+=update,sy_f=(sy_f&mask)>>>shift,lt_f=(lt_f&mask)>>>shift,tot_f=(tot_f&mask)>>>shift,this.coder.encodeFreq(sy_f,lt_f,tot_f),(this.tree[1]&SYM_MASK)>>>SYM_SHIFT>=this.max_prob&&this._rescale()},FenwickModel.prototype._decode=function(isEscape){var mask=SYM_MASK,shift=SYM_SHIFT,update=this.increment<<SYM_SHIFT;isEscape&&(mask=ESC_MASK,update-=1<<ESC_SHIFT,shift=ESC_SHIFT);for(var tot_f=(this.tree[1]&mask)>>>shift,prob=this.coder.decodeCulFreq(tot_f),i=1,lt_f=0;i<this.numSyms;){this.tree[i]+=update;var leftProb=(this.tree[2*i]&mask)>>>shift;i*=2,prob-lt_f>=leftProb&&(lt_f+=leftProb,i++)}var symbol=i-this.numSyms,sy_f=(this.tree[i]&mask)>>>shift;if(this.tree[i]+=update,this.coder.decodeUpdate(sy_f,lt_f,tot_f),symbol===this.numSyms-1&&(this.tree[1]&ESC_MASK)>>>ESC_SHIFT===1)for(update=-this.tree[i];i>=1;)this.tree[i]+=update,i>>>=1;return(this.tree[1]&SYM_MASK)>>>SYM_SHIFT>=this.max_prob&&this._rescale(),symbol},FenwickModel.prototype.decode=function(){var symbol=this._decode(!1);return symbol===this.numSyms-1&&(symbol=this._decode(!0)),symbol},FenwickModel.prototype._rescale=function(){var i,prob,noEscape=!0;for(i=0;i<this.numSyms-1;i++)prob=this.tree[this.numSyms+i],0===(prob&ESC_MASK)?(prob=(prob&SCALE_MASK)>>>1,0===prob&&(prob=1<<ESC_SHIFT,noEscape=!1),this.tree[this.numSyms+i]=prob):noEscape=!1;prob=this.tree[this.numSyms+i],prob=(prob&SCALE_MASK)>>>1,noEscape?prob=0:0===prob&&(prob=1<<SYM_SHIFT),this.tree[this.numSyms+i]=prob,this._sumTree()},FenwickModel.prototype._sumTree=function(){var i;for(i=this.numSyms-1;i>0;i--)this.tree[i]=this.tree[2*i]+this.tree[2*i+1]},FenwickModel.MAGIC="fenw",FenwickModel.compressFile=Util.compressFileHelper(FenwickModel.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new FenwickModel(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),FenwickModel.decompressFile=Util.decompressFileHelper(FenwickModel.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);range.decodeStart(!0);var model=new FenwickModel(range,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),FenwickModel};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],132:[function(require,module){var libs=[require("./BitStream"),require("./Util")],body_fn=function(BitStream,Util){var HTable=function(up,down,symbol,weight){this.up=up,this.down=down,this.symbol=symbol,this.weight=weight};HTable.prototype.clone=function(){return new HTable(this.up,this.down,this.symbol,this.weight)},HTable.prototype.set=function(htable){this.up=htable.up,this.down=htable.down,this.symbol=htable.symbol,this.weight=htable.weight};var Huffman=function(size,root,bitstream,max_weight){var i;for(console.assert(size&&"number"==typeof size),(!root||root>size)&&(root=size),(root<<=1)&&root--,this.table=[],i=0;root>=i;i++)this.table[i]=new HTable(0,0,0,0);if(this.map=[],this.size=size)for(i=0;size>i;i++)this.map[i]=0;this.esc=this.root=root,bitstream&&(this.readBit=bitstream.readBit.bind(bitstream),this.writeBit=bitstream.writeBit.bind(bitstream)),this.max_weight=max_weight};return Huffman.factory=function(bitstream,max_weight){return function(size){return new Huffman(size,size,bitstream,max_weight)}},Huffman.prototype.split=function(symbol){var pair,node;return(pair=this.esc)?(this.esc--,(node=this.esc)?(this.table[pair].down=node,this.table[pair].weight=1,this.table[node].up=pair,this.esc--):(pair=0,node=1),this.table[node].symbol=symbol,this.table[node].weight=0,this.table[node].down=0,this.map[symbol]=node,this.table[this.esc].weight=0,this.table[this.esc].down=0,this.table[this.esc].up=pair,node):(console.assert(!1),0)},Huffman.prototype.leader=function(node){for(var prev,symbol,weight=this.table[node].weight,leader=node;weight===this.table[leader+1].weight;)leader++;return leader===node?node:(symbol=this.table[node].symbol,prev=this.table[leader].symbol,this.table[leader].symbol=symbol,this.table[node].symbol=prev,this.map[symbol]=leader,this.map[prev]=node,leader)},Huffman.prototype.slide=function(node){var swap,next=node;if(swap=this.table[next++].clone(),1&swap.weight)for(;swap.weight>this.table[next+1].weight;)next++;return this.table[node].set(this.table[next]),this.table[next].set(swap),this.table[next].up=this.table[node].up,this.table[node].up=swap.up,1&swap.weight?(this.table[swap.down].up=next,this.table[swap.down-1].up=next,this.map[this.table[node].symbol]=node):(this.table[this.table[node].down-1].up=node,this.table[this.table[node].down].up=node,this.map[swap.symbol]=next),next},Huffman.prototype.increment=function(node){var up;for(this.table[node].up===node+1?(this.table[node].weight+=2,node++):node=this.leader(node);this.table[node].weight+=2,up=this.table[node].up;){for(;this.table[node].weight>this.table[node+1].weight;)node=this.slide(node);node=1&this.table[node].weight?up:this.table[node].up}this.max_weight&&this.table[this.root].weight>=this.max_weight&&this.scale(1)},Huffman.prototype.scale=function(bits){for(var weight,prev,node=this.esc;++node<=this.root;)for(1&this.table[node].weight?(weight=-2&this.table[this.table[node].down].weight)&&(weight+=1|this.table[this.table[node].down-1].weight):(weight=this.table[node].weight>>bits&-2)||(this.map[this.table[node].symbol]=0,this.esc++&&this.esc++),this.table[node].weight=weight,prev=node;weight<this.table[--prev].weight;)this.slide(prev);this.table[this.esc].down=0},Huffman.prototype.sendid=function(symbol){for(var max,empty=0;symbol--;)this.map[symbol]||empty++;if(max=this.size-Math.floor((this.root-this.esc)/2)-1)do this.writeBit(1&empty),empty>>=1;while(max>>=1)},Huffman.prototype.encode=function(symbol){var bit,up,idx,node,emit=1;if(!(symbol<this.size))return void console.assert(!1);if(node=this.map[symbol],(idx=node)||(idx=this.esc)){for(;up=this.table[idx].up;)emit<<=1,emit|=1&idx,idx=up;for(;bit=1&emit,emit>>=1;)this.writeBit(bit);node||(this.sendid(symbol),node=this.split(symbol)),this.increment(node)}},Huffman.prototype.readid=function(){var max,symbol,empty=0,bit=1;if(max=this.size-Math.floor((this.root-this.esc)/2)-1)do empty|=this.readBit()?bit:0,bit<<=1;while(max>>=1);for(symbol=0;symbol<this.size;symbol++)if(!this.map[symbol]&&!empty--)return symbol;return console.assert(!1),0},Huffman.prototype.decode=function(){for(var symbol,down,node=this.root;down=this.table[node].down;)node=this.readBit()?down-1:down;if(node===this.esc){if(!this.esc)return console.assert(!1),0;symbol=this.readid(),node=this.split(symbol)}else symbol=this.table[node].symbol;return this.increment(node),symbol},Huffman.MAGIC="huff",Huffman.compressFile=Util.compressFileHelper(Huffman.MAGIC,function(input,output,size){var bitstream=new BitStream(output),alphabetSize=256;0>size&&alphabetSize++;var huff=new Huffman(257,alphabetSize,bitstream,8191);Util.compressWithModel(input,size,huff),bitstream.flush()}),Huffman.decompressFile=Util.decompressFileHelper(Huffman.MAGIC,function(input,output,size){var bitstream=new BitStream(input),alphabetSize=256;0>size&&alphabetSize++;var huff=new Huffman(257,alphabetSize,bitstream,8191);Util.decompressWithModel(output,size,huff)}),Huffman};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Util":144}],133:[function(require,module){var libs=[require("./freeze"),require("./Util")],body_fn=function(freeze,Util){var first=function(array,i,nodesToMove){for(var length=array.length,limit=i,k=array.length-2;i>=nodesToMove&&array[i]%length>limit;)k=i,i-=limit-i+1;for(i=Math.max(nodesToMove-1,i);k>i+1;){var temp=i+k>>1;array[temp]%length>limit?k=temp:i=temp}return k},setExtendedParentPointers=function(array){var length=array.length;array[0]+=array[1];var headNode,tailNode,topNode,temp;for(headNode=0,tailNode=1,topNode=2;length-1>tailNode;tailNode++)topNode>=length||array[headNode]<array[topNode]?(temp=array[headNode],array[headNode++]=tailNode):temp=array[topNode++],topNode>=length||tailNode>headNode&&array[headNode]<array[topNode]?(temp+=array[headNode],array[headNode++]=tailNode+length):temp+=array[topNode++],array[tailNode]=temp},findNodesToRelocate=function(array,maximumLength){var currentDepth,currentNode=array.length-2;for(currentDepth=1;maximumLength-1>currentDepth&&currentNode>1;currentDepth++)currentNode=first(array,currentNode-1,0);return currentNode},allocateNodeLengths=function(array){var currentDepth,availableNodes,lastNode,i,firstNode=array.length-2,nextNode=array.length-1;for(currentDepth=1,availableNodes=2;availableNodes>0;currentDepth++){for(lastNode=firstNode,firstNode=first(array,lastNode-1,0),i=availableNodes-(lastNode-firstNode);i>0;i--)array[nextNode--]=currentDepth;availableNodes=lastNode-firstNode<<1}},allocateNodeLengthsWithRelocation=function(array,nodesToMove,insertDepth){var availableNodes,lastNode,offset,i,firstNode=array.length-2,nextNode=array.length-1,currentDepth=1==insertDepth?2:1,nodesLeftToMove=1==insertDepth?nodesToMove-2:nodesToMove;for(availableNodes=currentDepth<<1;availableNodes>0;currentDepth++){for(lastNode=firstNode,firstNode=nodesToMove>=firstNode?firstNode:first(array,lastNode-1,nodesToMove),offset=0,currentDepth>=insertDepth?offset=Math.min(nodesLeftToMove,1<<currentDepth-insertDepth):currentDepth==insertDepth-1&&(offset=1,array[firstNode]==lastNode&&firstNode++),i=availableNodes-(lastNode-firstNode+offset);i>0;i--)array[nextNode--]=currentDepth;nodesLeftToMove-=offset,availableNodes=lastNode-firstNode+offset<<1}},allocateHuffmanCodeLengths=function(array,maximumLength){switch(array.length){case 2:array[1]=1;case 1:return void(array[0]=1)}setExtendedParentPointers(array);var nodesToRelocate=findNodesToRelocate(array,maximumLength);if(array[0]%array.length>=nodesToRelocate)allocateNodeLengths(array);else{var insertDepth=maximumLength-Util.fls(nodesToRelocate-1);allocateNodeLengthsWithRelocation(array,nodesToRelocate,insertDepth)}};return freeze({allocateHuffmanCodeLengths:allocateHuffmanCodeLengths})};module.exports=body_fn.apply(null,libs)},{"./Util":144,"./freeze":145}],134:[function(require,module){var libs=[require("./Util")],body_fn=function(Util){var LogDistanceModel=function(size,extraStates,lgDistanceModelFactory,lengthBitsModelFactory){var i,bits=Util.fls(size-1);for(this.extraStates=+extraStates||0,this.lgDistanceModel=lgDistanceModelFactory(1+bits+extraStates),this.distanceModel=[],i=2;bits>=i;i++){var numBits=i-1;this.distanceModel[i]=lengthBitsModelFactory(1<<numBits)}};return LogDistanceModel.prototype.encode=function(distance){if(2>distance)return void this.lgDistanceModel.encode(distance+this.extraStates);var lgDistance=Util.fls(distance);console.assert(distance&1<<lgDistance-1),console.assert(lgDistance>=2),this.lgDistanceModel.encode(lgDistance+this.extraStates);var rest=distance&(1<<lgDistance-1)-1;this.distanceModel[lgDistance].encode(rest)},LogDistanceModel.prototype.decode=function(){var lgDistance=this.lgDistanceModel.decode()-this.extraStates;if(2>lgDistance)return lgDistance;var rest=this.distanceModel[lgDistance].decode();return(1<<lgDistance-1)+rest},LogDistanceModel};module.exports=body_fn.apply(null,libs)},{"./Util":144}],135:[function(require,module){var libs=[require("./Stream"),require("./Util")],body_fn=function(Stream,Util){var Lzjb=Object.create(null);Lzjb.MAGIC="lzjb";var NBBY=8,MATCH_BITS=6,MATCH_MIN=3,MATCH_MAX=(1<<MATCH_BITS)+(MATCH_MIN-1),OFFSET_MASK=(1<<16-MATCH_BITS)-1,LEMPEL_SIZE_BASE=1024,EOF=Stream.EOF,C_COMPAT=!0;return Lzjb.compressFile=Util.compressFileHelper(Lzjb.MAGIC,function(inStream,outStream,fileSize,props){var cpy,mlen,offset,hash,hp,lempel,j,LEMPEL_SIZE=LEMPEL_SIZE_BASE,EXPAND=1;"number"==typeof props&&(LEMPEL_SIZE*=2,props=Math.max(1,Math.min(9,props))-1,EXPAND=1<<Math.floor(props/2),1&props&&(EXPAND=Math.round(1.5*EXPAND)),props>=2&&4>=props&&EXPAND++),lempel=Util.makeU16Buffer(LEMPEL_SIZE*EXPAND);for(var window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,winput=function(_byte){return window[windowpos++]=_byte,windowpos>=window.length&&(windowpos=0),_byte},outwindow=Util.makeU8Buffer(17),outpos=0,dumpout=function(){var i;for(i=0;outpos>i;i++)outStream.writeByte(outwindow[i]);outpos=0},unbuffer=[],get=function(){return unbuffer.length?unbuffer.pop():inStream.readByte()},unget=function(_byte){unbuffer.push(_byte)},copymask=1<<NBBY-1,matchpossibility=[];;){var c1=get();if(c1===EOF)break;(copymask<<=1)==1<<NBBY&&(dumpout(),copymask=1,outwindow[0]=0,outpos=1);var c2=get();if(c2===EOF){outwindow[outpos++]=winput(c1);break}var c3=get();if(c3!==EOF){for(hash=(c1<<16)+(c2<<8)+c3,hash^=hash>>9,hash+=hash>>5,hash^=c1,hp=(hash&LEMPEL_SIZE-1)*EXPAND,matchpossibility.length=0,j=0;EXPAND>j;j++){offset=windowpos-lempel[hp+j]&OFFSET_MASK,cpy=window.length+windowpos-offset;var w1=window[cpy&OFFSET_MASK],w2=window[cpy+1&OFFSET_MASK],w3=window[cpy+2&OFFSET_MASK];C_COMPAT&&0===offset?w1=1^c1:1==offset?(w2=c1,w3=c2):2==offset&&(w3=c1),c1===w1&&c2===w2&&c3===w3&&matchpossibility.push(offset)}for(j=EXPAND-1;j>0;j--)lempel[hp+j]=lempel[hp+j-1];if(lempel[hp]=windowpos,0===matchpossibility.length)outwindow[outpos++]=winput(c1),unget(c3),unget(c2);else{outwindow[0]|=copymask,winput(c1),winput(c2),winput(c3);var c4=get(),last=matchpossibility[0],base=window.length+windowpos;for(mlen=MATCH_MIN;MATCH_MAX>mlen&&c4!==EOF;mlen++,base++){for(j=0;j<matchpossibility.length;){var w4=window[base-matchpossibility[j]&OFFSET_MASK];c4!==w4?(last=matchpossibility[j],matchpossibility.splice(j,1)):j++}if(0===matchpossibility.length)break;winput(c4),c4=get()}0!==matchpossibility.length&&(last=matchpossibility[0]),unget(c4),outwindow[outpos++]=mlen-MATCH_MIN<<NBBY-MATCH_BITS|last>>NBBY,outwindow[outpos++]=255&last}}else outwindow[outpos++]=winput(c1),unget(c2)}dumpout()}),Lzjb.decompressFile=Util.decompressFileHelper(Lzjb.MAGIC,function(inStream,outStream,outSize){for(var cpy,copymap,mlen,offset,c,window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,copymask=1<<NBBY-1;0!==outSize&&(c=inStream.readByte(),c!==EOF);)if((copymask<<=1)==1<<NBBY&&(copymask=1,copymap=c,c=inStream.readByte()),copymap&copymask)for(mlen=(c>>NBBY-MATCH_BITS)+MATCH_MIN,offset=(c<<NBBY|inStream.readByte())&OFFSET_MASK,cpy=windowpos-offset,0>cpy&&(cpy+=window.length),outSize>=0&&(outSize-=mlen);--mlen>=0;)c=window[windowpos++]=window[cpy++],outStream.writeByte(c),windowpos>=window.length&&(windowpos=0),cpy>=window.length&&(cpy=0);else outStream.writeByte(c),window[windowpos++]=c,windowpos>=window.length&&(windowpos=0),outSize>=0&&outSize--}),Lzjb};module.exports=body_fn.apply(null,libs)},{"./Stream":143,"./Util":144}],136:[function(require,module){var libs=[require("./Context1Model"),require("./FenwickModel"),require("./LogDistanceModel"),require("./NoModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(Context1Model,FenwickModel,LogDistanceModel,NoModel,RangeCoder,Stream,Util){var LzjbR=Object.create(null);LzjbR.MAGIC="lzjR";var MATCH_BITS=6,MATCH_MIN=3,MATCH_MAX=(1<<MATCH_BITS)+(MATCH_MIN-1),OFFSET_MASK=(1<<16-MATCH_BITS)-1,LEMPEL_SIZE_BASE=1024,LENGTH_MODEL_CUTOFF=32;return LzjbR.compressFile=Util.compressFileHelper(LzjbR.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var cpy,mlen,offset,hash,hp,lempel,j,LEMPEL_SIZE=LEMPEL_SIZE_BASE,EXPAND=1;"number"==typeof props&&(LEMPEL_SIZE*=2,props=Math.max(1,Math.min(9,props))-1,EXPAND=1<<Math.floor(props/2),1&props&&(EXPAND=Math.round(1.5*EXPAND)),props>=2&&4>=props&&EXPAND++);var encoder=new RangeCoder(outStream);encoder.encodeStart(finalByte,1),lempel=Util.makeU16Buffer(LEMPEL_SIZE*EXPAND);for(var window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,winput=function(_byte){return window[windowpos++]=_byte,windowpos>=window.length&&(windowpos=0),_byte},unbuffer=[],get=function(){return unbuffer.length?unbuffer.pop():inStream.readByte()},unget=function(_byte){unbuffer.push(_byte)},matchpossibility=[],MATCH=256,EOF_SYM=257,noModelFactory=NoModel.factory(encoder),modelFactory=FenwickModel.factory(encoder,65280,256),literalModel=new Context1Model(modelFactory,256,(0>fileSize?EOF_SYM:MATCH)+1),sparseModelFactory=function(size){return LENGTH_MODEL_CUTOFF>=size?modelFactory(size):noModelFactory(size)},lenModel=new LogDistanceModel(MATCH_MAX-MATCH_MIN+1,0,modelFactory,sparseModelFactory),posModel=new LogDistanceModel(OFFSET_MASK+1,1,modelFactory,sparseModelFactory),lastChar=32,lastOffset=0;;){var initialPos=windowpos,c1=get();if(c1===Stream.EOF)break;var c2=get();if(c2===Stream.EOF){literalModel.encode(winput(c1),lastChar);break}var c3=get();if(c3!==Stream.EOF){for(hash=(c1<<16)+(c2<<8)+c3,hash^=hash>>9,hash+=hash>>5,hash^=c1,hp=(hash&LEMPEL_SIZE-1)*EXPAND,matchpossibility.length=0,j=0;EXPAND>j;j++){offset=windowpos-lempel[hp+j]&OFFSET_MASK,cpy=window.length+windowpos-offset;var w1=window[cpy&OFFSET_MASK],w2=window[cpy+1&OFFSET_MASK],w3=window[cpy+2&OFFSET_MASK];1==offset?(w2=c1,w3=c2):2==offset&&(w3=c1),c1===w1&&c2===w2&&c3===w3&&matchpossibility.push(offset)}for(j=EXPAND-1;j>0;j--)lempel[hp+j]=lempel[hp+j-1];if(lempel[hp]=windowpos,0===matchpossibility.length)literalModel.encode(winput(c1),lastChar),unget(c3),unget(c2),lastChar=c1;else{literalModel.encode(MATCH,lastChar),winput(c1),winput(c2),winput(c3),lastChar=c3;var c4=get(),last=matchpossibility[0],base=window.length+windowpos;for(mlen=MATCH_MIN;MATCH_MAX>mlen&&c4!==Stream.EOF;mlen++,base++){for(j=0;j<matchpossibility.length;){var w4=window[base-matchpossibility[j]&OFFSET_MASK];c4!==w4?(last=matchpossibility[j],matchpossibility.splice(j,1)):j++}if(0===matchpossibility.length)break;winput(c4),lastChar=c4,c4=get()}0!==matchpossibility.length&&(last=matchpossibility[0]),unget(c4),lenModel.encode(mlen-MATCH_MIN),offset=initialPos-last&OFFSET_MASK,offset===lastOffset?posModel.encode(-1):(posModel.encode(offset),lastOffset=offset)}}else literalModel.encode(winput(c1),lastChar),unget(c2),lastChar=c1}0>fileSize&&literalModel.encode(EOF_SYM,lastChar),encoder.encodeFinish()},!0),LzjbR.decompressFile=Util.decompressFileHelper(LzjbR.MAGIC,function(inStream,outStream,outSize){var cpy,mlen,c,window=Util.makeU8Buffer(OFFSET_MASK+1),windowpos=0,decoder=new RangeCoder(inStream);decoder.decodeStart(!0);for(var MATCH=256,EOF_SYM=257,noModelFactory=NoModel.factory(decoder),modelFactory=FenwickModel.factory(decoder,65280,256),literalModel=new Context1Model(modelFactory,256,(0>outSize?EOF_SYM:MATCH)+1),sparseModelFactory=function(size){return LENGTH_MODEL_CUTOFF>=size?modelFactory(size):noModelFactory(size)},lenModel=new LogDistanceModel(MATCH_MAX-MATCH_MIN+1,0,modelFactory,sparseModelFactory),posModel=new LogDistanceModel(OFFSET_MASK+1,1,modelFactory,sparseModelFactory),lastChar=32,lastOffset=0;0!==outSize&&(c=literalModel.decode(lastChar),c!==EOF_SYM);)if(c===MATCH)for(mlen=lenModel.decode()+MATCH_MIN,cpy=posModel.decode(),0>cpy?cpy=lastOffset:lastOffset=cpy,outSize>=0&&(outSize-=mlen);--mlen>=0;)c=lastChar=window[windowpos++]=window[cpy++],outStream.writeByte(c),windowpos>=window.length&&(windowpos=0),cpy>=window.length&&(cpy=0);else outStream.writeByte(c),window[windowpos++]=lastChar=c,windowpos>=window.length&&(windowpos=0),outSize>=0&&outSize--;decoder.decodeFinish()}),LzjbR};module.exports=body_fn.apply(null,libs)},{"./Context1Model":126,"./FenwickModel":131,"./LogDistanceModel":134,"./NoModel":139,"./RangeCoder":141,"./Stream":143,"./Util":144}],137:[function(require,module){var libs=[require("./BitStream"),require("./Context1Model"),require("./DefSumModel"),require("./FenwickModel"),require("./Huffman"),require("./LogDistanceModel"),require("./NoModel"),require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(BitStream,Context1Model,DefSumModel,FenwickModel,Huffman,LogDistanceModel,NoModel,RangeCoder,Stream,Util){var Lzp3=Object.create(null);Lzp3.MAGIC="lzp3";var USE_HUFFMAN_CODE=!1,USE_DEFSUM=!1,LENGTH_MODEL_CUTOFF=256,MODEL_MAX_PROB=65280,MODEL_INCREMENT=256,CTXT4_TABLE_SIZE=65536,CTXT3_TABLE_SIZE=4096,CTXT2_TABLE_SIZE=65536,LOG_WINDOW_SIZE=20,WINDOW_SIZE=1<<LOG_WINDOW_SIZE,MAX_MATCH_LEN=WINDOW_SIZE-1,MATCH_LEN_CONTEXTS=16,MAX24=16777215,MAX16=65535,Window=function(maxSize){this.buffer=Util.makeU8Buffer(Math.min(maxSize+4,WINDOW_SIZE)),this.pos=0,this.ctxt4=Util.makeU32Buffer(CTXT4_TABLE_SIZE),this.ctxt3=Util.makeU32Buffer(CTXT3_TABLE_SIZE),this.ctxt2=Util.makeU32Buffer(CTXT2_TABLE_SIZE),this.put(99),this.put(83),this.put(97),this.put(32)};return Window.prototype.put=function(_byte){return this.buffer[this.pos++]=_byte,this.pos>=WINDOW_SIZE&&(this.pos=0),_byte},Window.prototype.get=function(pos){return this.buffer[pos&WINDOW_SIZE-1]},Window.prototype.context=function(pos,n){var i,c=0;for(pos=pos-n&WINDOW_SIZE-1,i=0;n>i;i++)c=c<<8|this.buffer[pos++],pos>=WINDOW_SIZE&&(pos=0);return c},Window.prototype.getIndex=function(s,matchLen){var c=this.context(s,4),h4=(c>>>15^c)&CTXT4_TABLE_SIZE-1,h3=(c>>>11^c)&CTXT3_TABLE_SIZE-1,h2=c&MAX16,p=0;return 0===matchLen&&(p=this.ctxt4[h4],0!==p&&c!==this.context(p-1,4)&&(p=0),0===p&&(p=this.ctxt3[h3],0!==p&&(c&MAX24)!==this.context(p-1,3)&&(p=0),0===p&&(p=this.ctxt2[h2],0!==p&&(c&&MAX16)!==this.context(p-1,2)&&(p=0)))),matchLen&&matchLen--,this.ctxt4[h4]=this.ctxt3[h3]=this.ctxt2[h2]=(s|matchLen<<LOG_WINDOW_SIZE)+1,p},Lzp3.compressFile=Util.compressFileHelper(Lzp3.MAGIC,function(inStream,outStream,fileSize){var coderFactory,sparseCoderFactory,flush,window=new Window(fileSize>=0?fileSize:WINDOW_SIZE);if(USE_HUFFMAN_CODE){outStream.writeByte(128);var bitstream=new BitStream(outStream);flush=bitstream.flush.bind(bitstream),coderFactory=Huffman.factory(bitstream,MAX16),sparseCoderFactory=NoModel.factory(bitstream)}else{var range=new RangeCoder(outStream);range.encodeStart(0,0),coderFactory=FenwickModel.factory(range,MODEL_MAX_PROB,MODEL_INCREMENT),USE_DEFSUM&&(coderFactory=DefSumModel.factory(range,!1));var noCoderFactory=NoModel.factory(range);sparseCoderFactory=function(size){return size>LENGTH_MODEL_CUTOFF?noCoderFactory(size):coderFactory(size)},flush=function(){range.encodeFinish()}}var i,huffLiteral=new Context1Model(coderFactory,256,0>fileSize?257:256),huffLen=[];for(i=0;MATCH_LEN_CONTEXTS>i;i++)huffLen[i]=new LogDistanceModel(MAX_MATCH_LEN+1,1,coderFactory,sparseCoderFactory);for(var s,inSize=0,matchContext=0;inSize!==fileSize;){var ch=inStream.readByte();s=window.pos;var p=window.getIndex(s,0);if(0!==p){p--;for(var prevMatchLen=(p>>>LOG_WINDOW_SIZE)+1,matchLen=0;window.get(p+matchLen)===ch&&MAX_MATCH_LEN>matchLen;)matchLen++,window.put(ch),ch=inStream.readByte();huffLen[matchContext&MATCH_LEN_CONTEXTS-1].encode(prevMatchLen===matchLen?-1:matchLen),window.getIndex(s,matchLen),inSize+=matchLen,matchContext<<=1,matchLen>0&&(matchContext|=1)}var context1=window.get(window.pos-1);if(ch===Stream.EOF){0>fileSize&&huffLiteral.encode(256,context1);break}huffLiteral.encode(ch,context1),window.put(ch),inSize++}flush&&flush()}),Lzp3.decompressFile=Util.decompressFileHelper(Lzp3.MAGIC,function(inStream,outStream,fileSize){var coderFactory,sparseCoderFactory,finish,flags=inStream.readByte(),use_huffman_code=!!(128&flags),window=new Window(fileSize>=0?fileSize:WINDOW_SIZE);if(use_huffman_code){var bitstream=new BitStream(inStream);coderFactory=Huffman.factory(bitstream,MAX16),sparseCoderFactory=NoModel.factory(bitstream)}else{var range=new RangeCoder(inStream);range.decodeStart(!0),coderFactory=FenwickModel.factory(range,MODEL_MAX_PROB,MODEL_INCREMENT),USE_DEFSUM&&(coderFactory=DefSumModel.factory(range,!0));var noCoderFactory=NoModel.factory(range);sparseCoderFactory=function(size){return size>LENGTH_MODEL_CUTOFF?noCoderFactory(size):coderFactory(size)},finish=function(){range.decodeFinish()}}var i,huffLiteral=new Context1Model(coderFactory,256,0>fileSize?257:256),huffLen=[];for(i=0;MATCH_LEN_CONTEXTS>i;i++)huffLen[i]=new LogDistanceModel(MAX_MATCH_LEN+1,1,coderFactory,sparseCoderFactory);for(var s,ch,outSize=0,matchContext=0;outSize!==fileSize;){s=window.pos;var p=window.getIndex(s,0);if(0!==p){p--;var prevMatchLen=(p>>>LOG_WINDOW_SIZE)+1,matchLen=huffLen[matchContext&MATCH_LEN_CONTEXTS-1].decode();for(0>matchLen&&(matchLen=prevMatchLen),i=0;matchLen>i;i++)ch=window.get(p+i),outStream.writeByte(window.put(ch));window.getIndex(s,matchLen),outSize+=matchLen,matchContext<<=1,matchLen>0&&(matchContext|=1)}if(outSize===fileSize)break;var context1=window.get(window.pos-1);if(ch=huffLiteral.decode(context1),256===ch)break;outStream.writeByte(window.put(ch)),outSize++}finish&&finish()}),Lzp3};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Context1Model":126,"./DefSumModel":127,"./FenwickModel":131,"./Huffman":132,"./LogDistanceModel":134,"./NoModel":139,"./RangeCoder":141,"./Stream":143,"./Util":144}],138:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var DEFAULT_MAX_PROB=65280,DEFAULT_INCREMENT=256,NUMERIC_SORT=function(a,b){return a-b},MTFModel=function(coder,size,max_prob,increment,betterEscape){this.coder=coder,this.increment=+increment||DEFAULT_INCREMENT,this.max_prob=+max_prob||DEFAULT_MAX_PROB,console.assert(this.max_prob+(this.increment-1)<=65535),this.sym=Util.makeU16Buffer(size+1),this.prob=Util.makeU16Buffer(size+2),this.sym[0]=size,this.prob[0]=0,this.seenSyms=1,this.prob[this.seenSyms]=this.increment,this.numSyms=size,betterEscape&&(this.sortedSeen=[size])};return MTFModel.factory=function(coder,max_prob,increment,betterEscape){return function(size){return new MTFModel(coder,size,max_prob,increment,betterEscape)}},MTFModel.prototype.clone=function(){var i,newModel=new MTFModel(this.coder,this.numSyms,this.max_prob,this.increment,!!this.sortedSeen);for(i=0;i<this.seenSyms;i++)newModel.sym[i]=this.sym[i],newModel.prob[i]=this.prob[i];return newModel.prob[i]=this.prob[i],newModel.seenSyms=this.seenSyms,this.sortedSeen&&(newModel.sortedSeen=this.sortedSeen.slice(0)),newModel},MTFModel.prototype._update=function(symbol,index,sy_f){var j,tot_f;for(j=index;j<this.seenSyms-1;j++)this.sym[j]=this.sym[j+1],this.prob[j]=this.prob[j+1]-sy_f;index<this.seenSyms?(this.sym[j]=symbol,this.prob[j]=this.prob[j+1]-sy_f,this.prob[this.seenSyms]=tot_f=this.prob[this.seenSyms]+this.increment,symbol===this.numSyms&&this.seenSyms>=this.numSyms&&(tot_f=this.prob[--this.seenSyms],this.sortedSeen&&this.sortedSeen.length--)):(tot_f=this.prob[this.seenSyms],this.sym[index]=symbol,this.prob[index]=tot_f,tot_f+=this.increment,this.prob[++this.seenSyms]=tot_f,this.sortedSeen&&(this.sortedSeen.push(symbol),this.sortedSeen.sort(NUMERIC_SORT))),tot_f>=this.max_prob&&this._rescale()},MTFModel.prototype._rescale=function(){var i,j,total=0,noEscape=!0;for(this.sortedSeen&&(this.sortedSeen.length=0),i=0,j=0;i<this.seenSyms;i++){var sym=this.sym[i],sy_f=this.prob[i+1]-this.prob[i];sy_f>>>=1,sy_f>0&&(sym===this.numSyms&&(noEscape=!1),this.sym[j]=sym,this.prob[j++]=total,total+=sy_f,this.sortedSeen&&this.sortedSeen.push(sym))}this.prob[j]=total,this.seenSyms=j,this.sortedSeen&&this.sortedSeen.sort(NUMERIC_SORT),noEscape&&this.seenSyms<this.numSyms&&this._update(this.numSyms,this.seenSyms)},MTFModel.prototype.decode=function(){var i,tot_f=this.prob[this.seenSyms],prob=this.coder.decodeCulFreq(tot_f);for(i=this.seenSyms-1;i>=0&&!(this.prob[i]<=prob);i--);console.assert(i>=0);var symbol=this.sym[i],lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f;if(this.coder.decodeUpdate(sy_f,lt_f,tot_f),this._update(symbol,i,sy_f),symbol===this.numSyms){if(sy_f=1,tot_f=this.numSyms,this.sortedSeen){var seen=this.sortedSeen;for(tot_f=this.numSyms-this.seenSyms,seen[seen.length-1]===this.numSyms&&tot_f++,symbol=lt_f=this.coder.decodeCulFreq(tot_f),i=0;i<seen.length&&seen[i]<=symbol;i++)symbol++}else symbol=lt_f=this.coder.decodeCulFreq(tot_f);this.coder.decodeUpdate(sy_f,lt_f,tot_f),this._update(symbol,this.seenSyms)}return symbol},MTFModel.prototype.encode=function(symbol){var i,sy_f,lt_f,tot_f;for(i=this.seenSyms-1;i>=0;i--)if(symbol===this.sym[i])return lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f,tot_f=this.prob[this.seenSyms],this.coder.encodeFreq(sy_f,lt_f,tot_f),this._update(symbol,i,sy_f);if(console.assert(symbol!==this.numSyms),this.encode(this.numSyms),sy_f=1,lt_f=symbol,tot_f=this.numSyms,this.sortedSeen){var seen=this.sortedSeen;for(tot_f-=this.seenSyms,seen[seen.length-1]===this.numSyms&&tot_f++,i=0;i<seen.length&&seen[i]<symbol;i++)lt_f--}return this.coder.encodeFreq(sy_f,lt_f,tot_f),this._update(symbol,this.seenSyms)},MTFModel.MAGIC="mtfm",MTFModel.compressFile=Util.compressFileHelper(MTFModel.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new MTFModel(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),MTFModel.decompressFile=Util.decompressFileHelper(MTFModel.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);
range.decodeStart(!0);var model=new MTFModel(range,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),MTFModel};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],139:[function(require,module){var libs=[require("./BitStream"),require("./Util")],body_fn=function(BitStream,Util){var NoModel=function(bitstream,size){this.bitstream=bitstream,this.bits=Util.fls(size-1)};return NoModel.factory=function(bitstream){return function(size){return new NoModel(bitstream,size)}},NoModel.prototype.encode=function(symbol){var i;for(i=this.bits-1;i>=0;i--){var b=symbol>>>i&1;this.bitstream.writeBit(b)}},NoModel.prototype.decode=function(){var i,r=0;for(i=this.bits-1;i>=0;i--)r<<=1,this.bitstream.readBit()&&r++;return r},NoModel.MAGIC="nomo",NoModel.compressFile=Util.compressFileHelper(NoModel.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(outStream),model=new NoModel(bitstream,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),bitstream.flush()}),NoModel.decompressFile=Util.decompressFileHelper(NoModel.MAGIC,function(inStream,outStream,fileSize){var bitstream=new BitStream(inStream),model=new NoModel(bitstream,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model)}),NoModel};module.exports=body_fn.apply(null,libs)},{"./BitStream":123,"./Util":144}],140:[function(require,module){var libs=[require("./RangeCoder"),require("./Util")],body_fn=function(RangeCoder,Util){var MAX_CONTEXT=5,LOG_WINDOW_SIZE=18,WINDOW_SIZE=1<<LOG_WINDOW_SIZE,Window=function(){this.buffer=Util.makeU8Buffer(WINDOW_SIZE),this.pos=0,this.firstPass=!0;for(var i=0;MAX_CONTEXT>i;i++)this.put("cSaCsA".charCodeAt(i%6))};Window.prototype.put=function(_byte){return this.buffer[this.pos++]=_byte,this.pos>=WINDOW_SIZE&&(this.pos=0,this.firstPass=!1),_byte},Window.prototype.get=function(pos){return this.buffer[pos&WINDOW_SIZE-1]},Window.prototype.context=function(pos,n){var i,c=[];for(pos=pos-n&WINDOW_SIZE-1,i=0;n>i;i++)c.push(this.buffer[pos++]),pos>=WINDOW_SIZE&&(pos=0);return String.fromCharCode.apply(String,c)};var DMM_INCREMENT=256,DMM_MAX_PROB=65280,PPM=function(coder,size){this.window=new Window,this.contexts=Object.create(null);var Cm1Context=function(){};Cm1Context.prototype.encode=function(symbol,exclude){var i,lt_f=0;for(i=0;symbol>i;i++)exclude[i]||lt_f++;var tot_f=size-exclude.total;coder.encodeFreq(1,lt_f,tot_f)},Cm1Context.prototype.decode=function(exclude){var i,symbol,lt_f,tot_f=size-exclude.total;for(symbol=lt_f=coder.decodeCulFreq(tot_f),i=0;symbol>=i;i++)exclude[i]&&symbol++;return coder.decodeUpdate(1,lt_f,tot_f),symbol},this.cm1coder=new Cm1Context;var DenseMTFModel=function(){this.sym=[size],this.prob=[0,DMM_INCREMENT],this.refcount=0};DenseMTFModel.prototype._rescale=function(){var i,j,seenSyms=this.sym.length,total=0,noEscape=!0;for(i=0,j=0;seenSyms>i;i++){var sym=this.sym[i],sy_f=this.prob[i+1]-this.prob[i];sy_f>>>=1,sy_f>0&&(sym===size&&(noEscape=!1),this.sym[j]=sym,this.prob[j++]=total,total+=sy_f)}return this.prob[j]=total,seenSyms=this.sym.length=j,this.prob.length=seenSyms+1,noEscape&&size>seenSyms&&(total=this._update(size,seenSyms,0,1)),total},DenseMTFModel.prototype.update=function(symbol,incr){var i=0;for(i=0;i<this.sym.length;i++)if(this.sym[i]===symbol)return this._update(symbol,i,this.prob[i+1]-this.prob[i],incr);return this._update(symbol,i,0,incr)},DenseMTFModel.prototype._update=function(symbol,index,sy_f,incr){var i,j,tot_f,seenSyms=this.sym.length;for(j=index;seenSyms-1>j;j++)this.sym[j]=this.sym[j+1],this.prob[j]=this.prob[j+1]-sy_f;if(seenSyms>index)this.sym[j]=symbol,this.prob[j]=this.prob[j+1]-sy_f,this.prob[seenSyms]=tot_f=this.prob[seenSyms]+incr;else if(tot_f=this.prob[seenSyms],this.sym[index]=symbol,this.prob[index]=tot_f,tot_f+=incr,this.prob[++seenSyms]=tot_f,this.sym.length>size)for(i=0;seenSyms>i;i++)size===this.sym[i]&&(this._update(size,i,this.prob[i+1]-this.prob[i],-1),this.sym.length--,this.prob.length--,tot_f=this.prob[this.prob.length-1]);return tot_f>=DMM_MAX_PROB&&(tot_f=this._rescale()),tot_f},DenseMTFModel.prototype.encode=function(symbol,exclude){var i,j,sy_f,lt_f,tot_f,ex_sy_f,seenSyms=this.sym.length,ex_seen=0,ex_lt_f=0,ex_tot_f=0;for(i=seenSyms-1;i>=0;i--){if(lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f,symbol===this.sym[i]){for(j=i-1;j>=0&&ex_seen<exclude.total;j--)exclude[this.sym[j]]&&(ex_seen+=1,ex_sy_f=this.prob[j+1]-this.prob[j],ex_lt_f+=ex_sy_f,ex_tot_f+=ex_sy_f);return tot_f=this.prob[seenSyms],lt_f-=ex_lt_f,tot_f-=ex_tot_f,coder.encodeFreq(sy_f,lt_f,tot_f),symbol===size?(this._update(symbol,i,sy_f,DMM_INCREMENT/2),!1):!0}exclude[this.sym[i]]&&(ex_seen+=1,ex_tot_f+=sy_f)}for(this.encode(size,exclude),console.assert(this.sym[this.sym.length-1]===size),i=0;i<this.sym.length-1;i++)exclude[this.sym[i]]||(exclude[this.sym[i]]=!0,exclude.total++)},DenseMTFModel.prototype.decode=function(exclude){var ex_sy_f,i,seenSyms=this.sym.length,tot_f=this.prob[seenSyms],ex_seen=0,ex_lt_f=0,ex_tot_f=0;for(i=seenSyms-1;i>=0&&ex_seen<exclude.total;i--)exclude[this.sym[i]]&&(ex_seen+=1,ex_tot_f+=this.prob[i+1]-this.prob[i]);var prob=coder.decodeCulFreq(tot_f-ex_tot_f)+ex_tot_f;for(ex_lt_f=ex_tot_f,i=seenSyms-1;i>=0;i--)if(exclude[this.sym[i]])ex_sy_f=this.prob[i+1]-this.prob[i],ex_lt_f-=ex_sy_f,prob-=ex_sy_f;else if(this.prob[i]<=prob)break;console.assert(i>=0);var symbol=this.sym[i],lt_f=this.prob[i],sy_f=this.prob[i+1]-lt_f;if(coder.decodeUpdate(sy_f,lt_f-ex_lt_f,tot_f-ex_tot_f),size>symbol)return symbol;for(this._update(symbol,i,sy_f,DMM_INCREMENT/2),console.assert(this.sym[this.sym.length-1]===size),i=0;i<this.sym.length-1;i++)exclude[this.sym[i]]||(exclude[this.sym[i]]=!0,exclude.total++);return-1},this.newContext=function(){return new DenseMTFModel},this.newExclude=function(){var result=Object.create(null);return result.total=0,result},function(){var i,j;for(i=0;MAX_CONTEXT>i;i++)for(j=0;i>=j;j++){var cc=this.window.context(j+(MAX_CONTEXT-1-i),j);this.contexts[cc]||(this.contexts[cc]=this.newContext()),this.contexts[cc].refcount++}}.call(this)};return PPM.prototype.update=function(symbol,contextString,matchLevel){var model,c,cc;for(c=0;MAX_CONTEXT>=c;c++)cc=contextString.slice(MAX_CONTEXT-c),model=this.contexts[cc],model||(model=this.contexts[cc]=this.newContext()),c>=matchLevel&&model.update(symbol,DMM_INCREMENT/2),model.refcount++;contextString=this.window.context(this.window.pos+MAX_CONTEXT,MAX_CONTEXT);var firstPass=this.window.firstPass;for(c=MAX_CONTEXT;c>=0&&!firstPass;c--)cc=contextString.slice(0,c),model=this.contexts[cc],console.assert(model),--model.refcount<=0&&(console.assert(""!==cc),delete this.contexts[cc]);this.window.put(symbol)},PPM.prototype.decode=function(){var model,c,cc,symbol,contextString=this.window.context(this.window.pos,MAX_CONTEXT),exclude=this.newExclude();for(c=MAX_CONTEXT;c>=0;c--)if(cc=contextString.slice(MAX_CONTEXT-c),model=this.contexts[cc],model&&(symbol=model.decode(exclude),symbol>=0))return this.update(symbol,contextString,c),symbol;return symbol=this.cm1coder.decode(exclude),this.update(symbol,contextString,c),symbol},PPM.prototype.encode=function(symbol){var c,contextString=this.window.context(this.window.pos,MAX_CONTEXT),exclude=this.newExclude();for(c=MAX_CONTEXT;c>=0;c--){var cc=contextString.slice(MAX_CONTEXT-c),model=this.contexts[cc];if(model){var success=model.encode(symbol,exclude);if(success)return void this.update(symbol,contextString,c)}}this.cm1coder.encode(symbol,exclude),this.update(symbol,contextString,c)},PPM.MAGIC="ppm2",PPM.compressFile=Util.compressFileHelper(PPM.MAGIC,function(inStream,outStream,fileSize,props,finalByte){var range=new RangeCoder(outStream);range.encodeStart(finalByte,1);var model=new PPM(range,0>fileSize?257:256);Util.compressWithModel(inStream,fileSize,model),range.encodeFinish()},!0),PPM.decompressFile=Util.decompressFileHelper(PPM.MAGIC,function(inStream,outStream,fileSize){var range=new RangeCoder(inStream);range.decodeStart(!0);var model=new PPM(range,0>fileSize?257:256);Util.decompressWithModel(outStream,fileSize,model),range.decodeFinish()}),PPM};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Util":144}],141:[function(require,module){var libs=[],body_fn=function(){var CODE_BITS=32,Top_value=Math.pow(2,CODE_BITS-1),SHIFT_BITS=CODE_BITS-9,EXTRA_BITS=(CODE_BITS-2)%8+1,Bottom_value=Top_value>>>8,MAX_INT=Math.pow(2,CODE_BITS)-1,RangeCoder=function(stream){this.low=0,this.range=Top_value,this.buffer=0,this.help=0,this.bytecount=0,this.stream=stream},enc_normalize=function(rc,outputStream){for(;rc.range<=Bottom_value;){if(rc.low<255<<SHIFT_BITS){for(outputStream.writeByte(rc.buffer);rc.help;rc.help--)outputStream.writeByte(255);rc.buffer=rc.low>>>SHIFT_BITS&255}else if(rc.low&Top_value){for(outputStream.writeByte(rc.buffer+1);rc.help;rc.help--)outputStream.writeByte(0);rc.buffer=rc.low>>>SHIFT_BITS&255}else if(rc.help++,rc.help>MAX_INT)throw new Error("Too many bytes outstanding, file too large!");rc.range=rc.range<<8>>>0,rc.low=(rc.low<<8&Top_value-1)>>>0,rc.bytecount++}};RangeCoder.prototype.encodeStart=function(c,initlength){this.low=0,this.range=Top_value,this.buffer=c,this.help=0,this.bytecount=initlength},RangeCoder.prototype.encodeFreq=function(sy_f,lt_f,tot_f){enc_normalize(this,this.stream);var r=this.range/tot_f>>>0,tmp=r*lt_f;this.low+=tmp,tot_f>lt_f+sy_f?this.range=r*sy_f:this.range-=tmp},RangeCoder.prototype.encodeShift=function(sy_f,lt_f,shift){enc_normalize(this,this.stream);var r=this.range>>>shift,tmp=r*lt_f;this.low+=tmp,lt_f+sy_f>>>shift?this.range-=tmp:this.range=r*sy_f},RangeCoder.prototype.encodeBit=function(b){this.encodeShift(1,b?1:0,1)},RangeCoder.prototype.encodeByte=function(b){this.encodeShift(1,b,8)},RangeCoder.prototype.encodeShort=function(s){this.encodeShift(1,s,16)},RangeCoder.prototype.encodeFinish=function(){var outputStream=this.stream;enc_normalize(this,outputStream),this.bytecount+=5;var tmp=this.low>>>SHIFT_BITS;if((this.low&Bottom_value-1)>=(16777215&this.bytecount)>>>1&&tmp++,tmp>255)for(outputStream.writeByte(this.buffer+1);this.help;this.help--)outputStream.writeByte(0);else for(outputStream.writeByte(this.buffer);this.help;this.help--)outputStream.writeByte(255);return outputStream.writeByte(255&tmp),outputStream.writeByte(this.bytecount>>>16&255),outputStream.writeByte(this.bytecount>>>8&255),outputStream.writeByte(255&this.bytecount),this.bytecount},RangeCoder.prototype.decodeStart=function(skipInitialRead){var c=skipInitialRead?0:this.stream.readByte();return"number"!=typeof c||0>c?c:(this.buffer=this.stream.readByte(),this.low=this.buffer>>>8-EXTRA_BITS,this.range=1<<EXTRA_BITS,c)};var dec_normalize=function(rc,inputStream){for(;rc.range<=Bottom_value;)rc.low=rc.low<<8|rc.buffer<<EXTRA_BITS&255,rc.buffer=inputStream.readByte(),rc.low|=rc.buffer>>>8-EXTRA_BITS,rc.low=rc.low>>>0,rc.range=rc.range<<8>>>0};return RangeCoder.prototype.decodeCulFreq=function(tot_f){dec_normalize(this,this.stream),this.help=this.range/tot_f>>>0;var tmp=this.low/this.help>>>0;return tmp>=tot_f?tot_f-1:tmp},RangeCoder.prototype.decodeCulShift=function(shift){dec_normalize(this,this.stream),this.help=this.range>>>shift;var tmp=this.low/this.help>>>0;return tmp>>>shift?(1<<shift)-1:tmp},RangeCoder.prototype.decodeUpdate=function(sy_f,lt_f,tot_f){var tmp=this.help*lt_f;this.low-=tmp,tot_f>lt_f+sy_f?this.range=this.help*sy_f:this.range-=tmp},RangeCoder.prototype.decodeBit=function(){var tmp=this.decodeCulShift(1);return this.decodeUpdate(1,tmp,2),tmp},RangeCoder.prototype.decodeByte=function(){var tmp=this.decodeCulShift(8);return this.decodeUpdate(1,tmp,256),tmp},RangeCoder.prototype.decodeShort=function(){var tmp=this.decodeCulShift(16);return this.decodeUpdate(1,tmp,65536),tmp},RangeCoder.prototype.decodeFinish=function(){dec_normalize(this,this.stream)},RangeCoder.prototype.writeBit=RangeCoder.prototype.encodeBit,RangeCoder.prototype.readBit=RangeCoder.prototype.decodeBit,RangeCoder.prototype.writeByte=RangeCoder.prototype.encodeByte,RangeCoder.prototype.readByte=RangeCoder.prototype.decodeByte,RangeCoder};module.exports=body_fn.apply(null,libs)},{}],142:[function(require,module){var libs=[require("./RangeCoder"),require("./Stream"),require("./Util")],body_fn=function(RangeCoder,Stream,Util){var MAX_BLOCK_SIZE=1<<17,Simple=Object.create(null);return Simple.MAGIC="smpl",Simple.compressFile=Util.compressFileHelper(Simple.MAGIC,function(input,output,size,props,finalByte){var encoder=new RangeCoder(output);encoder.encodeStart(finalByte,1);for(var block=Util.makeU8Buffer(MAX_BLOCK_SIZE),counts=[],blockLength=0,sawEOF=!1,readBlock=function(){var pos=0;for(pos=0;256>pos;pos++)counts[pos]=0;if(sawEOF)return void(blockLength=0);for(pos=0;MAX_BLOCK_SIZE>pos;){var c=input.readByte();if(c===Stream.EOF){sawEOF=!0;break}if(block[pos++]=c,counts[c]++,65535===counts[c])break}blockLength=pos};;){var i;if(readBlock(),sawEOF&&0===blockLength)break;for(encoder.encodeBit(!0),i=0;256>i;i++)encoder.encodeShort(counts[i]);for(counts[256]=blockLength,i=256;i;i--)counts[i-1]=counts[i]-counts[i-1];for(i=0;blockLength>i;i++){var ch=block[i];encoder.encodeFreq(counts[ch+1]-counts[ch],counts[ch],counts[256])}}encoder.encodeBit(!1),encoder.encodeFinish()},!0),Simple.decompressFile=Util.decompressFileHelper(Simple.MAGIC,function(input,output){var decoder=new RangeCoder(input);for(decoder.decodeStart(!0);decoder.decodeBit();){var i,counts=[];for(i=0;256>i;i++)counts[i]=decoder.decodeShort();var blocksize=0;for(i=0;256>i;i++){var tmp=counts[i];counts[i]=blocksize,blocksize+=tmp}for(counts[256]=blocksize,i=0;blocksize>i;i++){var symbol,cf=decoder.decodeCulFreq(blocksize);for(symbol=0;256>symbol&&!(counts[symbol]<=cf&&cf<counts[symbol+1]);symbol++);decoder.decodeUpdate(counts[symbol+1]-counts[symbol],counts[symbol],blocksize),output.writeByte(symbol)}}decoder.decodeFinish()}),Simple};module.exports=body_fn.apply(null,libs)},{"./RangeCoder":141,"./Stream":143,"./Util":144}],143:[function(require,module){var libs=[require("./freeze")],body_fn=function(freeze){var EOF=-1,Stream=function(){};return Stream.prototype.readByte=function(){var buf=[0],len=this.read(buf,0,1);return 0===len?(this._eof=!0,EOF):buf[0]},Stream.prototype.read=function(buf,bufOffset,length){for(var ch,bytesRead=0;length>bytesRead;){if(ch=this.readByte(),ch===EOF){this._eof=!0;break}buf[bufOffset+bytesRead++]=ch}return bytesRead},Stream.prototype.eof=function(){return!!this._eof},Stream.prototype.seek=function(){throw new Error("Stream is not seekable.")},Stream.prototype.tell=function(){throw new Error("Stream is not seekable.")},Stream.prototype.writeByte=function(_byte){var buf=[_byte];this.write(buf,0,1)},Stream.prototype.write=function(buf,bufOffset,length){var i;for(i=0;length>i;i++)this.writeByte(buf[bufOffset+i]);return length},Stream.prototype.flush=function(){},Stream.EOF=EOF,freeze(Stream)};module.exports=body_fn.apply(null,libs)},{"./freeze":145}],144:[function(require,module){(function(process,Buffer){var libs=[require("./freeze"),require("./Stream")],body_fn=function(freeze,Stream){var Util=Object.create(null),EOF=Stream.EOF;Util.coerceInputStream=function(input,forceRead){if("readByte"in input){if(forceRead&&!("read"in input)){var s=input;input=new Stream,input.readByte=function(){var ch=s.readByte();return ch===EOF&&(this._eof=!0),ch},"size"in s&&(input.size=s.size),"seek"in s&&(input.seek=function(pos){s.seek(pos),this._eof=!1}),"tell"in s&&(input.tell=s.tell.bind(s))}}else{var buffer=input;input=new Stream,input.size=buffer.length,input.pos=0,input.readByte=function(){return this.pos>=this.size?EOF:buffer[this.pos++]},input.read=function(buf,bufOffset,length){for(var bytesRead=0;length>bytesRead&&this.pos<buffer.length;)buf[bufOffset++]=buffer[this.pos++],bytesRead++;return bytesRead},input.seek=function(pos){this.pos=pos},input.tell=function(){return this.pos},input.eof=function(){return this.pos>=buffer.length}}return input};var BufferStream=function(buffer,resizeOk){this.buffer=buffer,this.resizeOk=resizeOk,this.pos=0};BufferStream.prototype=Object.create(Stream.prototype),BufferStream.prototype.writeByte=function(_byte){if(this.resizeOk&&this.pos>=this.buffer.length){var newBuffer=Util.makeU8Buffer(2*this.buffer.length);newBuffer.set(this.buffer),this.buffer=newBuffer}this.buffer[this.pos++]=_byte},BufferStream.prototype.getBuffer=function(){if(this.pos!==this.buffer.length){if(!this.resizeOk)throw new TypeError("outputsize does not match decoded input");var newBuffer=Util.makeU8Buffer(this.pos);newBuffer.set(this.buffer.subarray(0,this.pos)),this.buffer=newBuffer}return this.buffer},Util.coerceOutputStream=function(output,size){var r={stream:output,retval:output};if(output){if("object"==typeof output&&"writeByte"in output)return r;"number"==typeof size?(console.assert(size>=0),r.stream=new BufferStream(Util.makeU8Buffer(size),!1)):r.stream=new BufferStream(output,!1)}else r.stream=new BufferStream(Util.makeU8Buffer(16384),!0);return Object.defineProperty(r,"retval",{get:r.stream.getBuffer.bind(r.stream)}),r},Util.compressFileHelper=function(magic,guts,suppressFinalByte){return function(inStream,outStream,props){inStream=Util.coerceInputStream(inStream);var o=Util.coerceOutputStream(outStream,outStream);outStream=o.stream;var i;for(i=0;i<magic.length;i++)outStream.writeByte(magic.charCodeAt(i));var fileSize;if(fileSize="size"in inStream&&inStream.size>=0?inStream.size:-1,suppressFinalByte){var tmpOutput=Util.coerceOutputStream([]);for(Util.writeUnsignedNumber(tmpOutput.stream,fileSize+1),tmpOutput=tmpOutput.retval,i=0;i<tmpOutput.length-1;i++)outStream.writeByte(tmpOutput[i]);suppressFinalByte=tmpOutput[tmpOutput.length-1]}else Util.writeUnsignedNumber(outStream,fileSize+1);return guts(inStream,outStream,fileSize,props,suppressFinalByte),o.retval}},Util.decompressFileHelper=function(magic,guts){return function(inStream,outStream){inStream=Util.coerceInputStream(inStream);var i;for(i=0;i<magic.length;i++)if(magic.charCodeAt(i)!==inStream.readByte())throw new Error("Bad magic");var fileSize=Util.readUnsignedNumber(inStream)-1,o=Util.coerceOutputStream(outStream,fileSize);return outStream=o.stream,guts(inStream,outStream,fileSize),o.retval}},Util.compressWithModel=function(inStream,fileSize,model){for(var inSize=0;inSize!==fileSize;){var ch=inStream.readByte();if(ch===EOF){model.encode(256);break}model.encode(ch),inSize++}},Util.decompressWithModel=function(outStream,fileSize,model){for(var outSize=0;outSize!==fileSize;){var ch=model.decode();if(256===ch)break;outStream.writeByte(ch),outSize++}},Util.writeUnsignedNumber=function(output,n){console.assert(n>=0);var i,bytes=[];do bytes.push(127&n),n=Math.floor(n/128);while(0!==n);for(bytes[0]|=128,i=bytes.length-1;i>=0;i--)output.writeByte(bytes[i]);return output},Util.readUnsignedNumber=function(input){for(var c,n=0;;){if(c=input.readByte(),128&c){n+=127&c;break}n=128*(n+c)}return n};var zerofill=function(a){for(var i=0,len=a.length;len>i;i++)a[i]=0;return a},fallbackarray=function(size){return zerofill(new Array(size))},ensureZeroed=function(a){return a};"undefined"!=typeof process&&Array.prototype.some.call(new Uint32Array(128),function(x){return 0!==x})&&(ensureZeroed=zerofill),Util.makeU8Buffer="undefined"!=typeof Uint8Array?function(size){return ensureZeroed(new Uint8Array(size))}:"undefined"!=typeof Buffer?function(size){var b=new Buffer(size);return b.fill(0),b}:fallbackarray,Util.makeU16Buffer="undefined"!=typeof Uint16Array?function(size){return ensureZeroed(new Uint16Array(size))}:fallbackarray,Util.makeU32Buffer="undefined"!=typeof Uint32Array?function(size){return ensureZeroed(new Uint32Array(size))}:fallbackarray,Util.makeS32Buffer="undefined"!=typeof Int32Array?function(size){return ensureZeroed(new Int32Array(size))}:fallbackarray,Util.arraycopy=function(dst,src){console.assert(dst.length>=src.length);for(var i=0,len=src.length;len>i;i++)dst[i]=src[i];return dst};var bytemsb=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8];console.assert(256===bytemsb.length);var fls=Util.fls=function(v){return console.assert(v>=0),v>4294967295?32+fls(Math.floor(v/4294967296)):0!==(4294901760&v)?0!==(4278190080&v)?24+bytemsb[v>>>24&255]:16+bytemsb[v>>>16]:0!==(65280&v)?8+bytemsb[v>>>8]:bytemsb[v]};return Util.log2c=function(v){return 0===v?-1:fls(v-1)},freeze(Util)};module.exports=body_fn.apply(null,libs)}).call(this,require("_process"),require("buffer").Buffer)},{"./Stream":143,"./freeze":145,_process:99,buffer:80}],145:[function(require,module){var libs=[],body_fn=function(){"use strict";return Object.freeze?Object.freeze:function(o){return o}};module.exports=body_fn.apply(null,libs)},{}],146:[function(require,module){function Curve(p,a,b,Gx,Gy,n,h){this.p=p,this.a=a,this.b=b,this.G=Point.fromAffine(this,Gx,Gy),this.n=n,this.h=h,this.infinity=new Point(this,null,null,BigInteger.ZERO),this.pOverFour=p.add(BigInteger.ONE).shiftRight(2)}var assert=require("assert"),BigInteger=require("bn").BigInteger,Point=require("./point");Curve.prototype.pointFromX=function(isOdd,x){var alpha=x.pow(3).add(this.a.multiply(x)).add(this.b).mod(this.p),beta=alpha.modPow(this.pOverFour,this.p),y=beta;return beta.isEven()^!isOdd&&(y=this.p.subtract(y)),Point.fromAffine(this,x,y)},Curve.prototype.isInfinity=function(Q){return Q===this.infinity?!0:0===Q.z.signum()&&0!==Q.y.signum()},Curve.prototype.isOnCurve=function(Q){if(this.isInfinity(Q))return!0;var x=Q.affineX,y=Q.affineY,a=this.a,b=this.b,p=this.p;if(x.signum()<0||x.compareTo(p)>=0)return!1;if(y.signum()<0||y.compareTo(p)>=0)return!1;var lhs=y.square().mod(p),rhs=x.pow(3).add(a.multiply(x)).add(b).mod(p);return lhs.equals(rhs)},Curve.prototype.validate=function(Q){assert(!this.isInfinity(Q),"Point is at infinity"),assert(this.isOnCurve(Q),"Point is not on the curve");var nQ=Q.multiply(this.n);return assert(this.isInfinity(nQ),"Point is not a scalar multiple of G"),!0},module.exports=Curve},{"./point":150,assert:75,bn:71}],147:[function(require,module){module.exports={secp128r1:{p:"fffffffdffffffffffffffffffffffff",a:"fffffffdfffffffffffffffffffffffc",b:"e87579c11079f43dd824993c2cee5ed3",n:"fffffffe0000000075a30d1b9038a115",h:"01",Gx:"161ff7528b899b2d0c28607ca52c5b86",Gy:"cf5ac8395bafeb13c02da292dded7a83"},secp160k1:{p:"fffffffffffffffffffffffffffffffeffffac73",a:"00",b:"07",n:"0100000000000000000001b8fa16dfab9aca16b6b3",h:"01",Gx:"3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",Gy:"938cf935318fdced6bc28286531733c3f03c4fee"},secp160r1:{p:"ffffffffffffffffffffffffffffffff7fffffff",a:"ffffffffffffffffffffffffffffffff7ffffffc",b:"1c97befc54bd7a8b65acf89f81d4d4adc565fa45",n:"0100000000000000000001f4c8f927aed3ca752257",h:"01",Gx:"4a96b5688ef573284664698968c38bb913cbfc82",Gy:"23a628553168947d59dcc912042351377ac5fb32"},secp192k1:{p:"fffffffffffffffffffffffffffffffffffffffeffffee37",a:"00",b:"03",n:"fffffffffffffffffffffffe26f2fc170f69466a74defd8d",h:"01",Gx:"db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",Gy:"9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"},secp192r1:{p:"fffffffffffffffffffffffffffffffeffffffffffffffff",a:"fffffffffffffffffffffffffffffffefffffffffffffffc",b:"64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",n:"ffffffffffffffffffffffff99def836146bc9b1b4d22831",h:"01",Gx:"188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",Gy:"07192b95ffc8da78631011ed6b24cdd573f977a11e794811"},secp256k1:{p:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",a:"00",b:"07",n:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",h:"01",Gx:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",Gy:"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"},secp256r1:{p:"ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",a:"ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",b:"5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",n:"ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",h:"01",Gx:"6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",Gy:"4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"}}},{}],148:[function(require,module){var Point=require("./point"),Curve=require("./curve"),getCurveByName=require("./names");module.exports={Curve:Curve,Point:Point,getCurveByName:getCurveByName}},{"./curve":146,"./names":149,"./point":150}],149:[function(require,module){function getCurveByName(name){var curve=curves[name];if(!curve)return null;var p=new BigInteger(curve.p,16),a=new BigInteger(curve.a,16),b=new BigInteger(curve.b,16),n=new BigInteger(curve.n,16),h=new BigInteger(curve.h,16),Gx=new BigInteger(curve.Gx,16),Gy=new BigInteger(curve.Gy,16);return new Curve(p,a,b,Gx,Gy,n,h)}var BigInteger=require("bn").BigInteger,curves=require("./curves"),Curve=require("./curve");module.exports=getCurveByName},{"./curve":146,"./curves":147,bn:71}],150:[function(require,module){(function(Buffer){function Point(curve,x,y,z){assert.notStrictEqual(z,void 0,"Missing Z coordinate"),this.curve=curve,this.x=x,this.y=y,this.z=z,this._zInv=null,this.compressed=!0}var assert=require("assert"),BigInteger=require("bn").BigInteger,THREE=BigInteger.valueOf(3);Object.defineProperty(Point.prototype,"zInv",{get:function(){return null===this._zInv&&(this._zInv=this.z.modInverse(this.curve.p)),this._zInv}}),Object.defineProperty(Point.prototype,"affineX",{get:function(){return this.x.multiply(this.zInv).mod(this.curve.p)}}),Object.defineProperty(Point.prototype,"affineY",{get:function(){return this.y.multiply(this.zInv).mod(this.curve.p)}}),Point.fromAffine=function(curve,x,y){return new Point(curve,x,y,BigInteger.ONE)},Point.prototype.equals=function(other){if(other===this)return!0;if(this.curve.isInfinity(this))return this.curve.isInfinity(other);if(this.curve.isInfinity(other))return this.curve.isInfinity(this);var u=other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p);if(0!==u.signum())return!1;var v=other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p);return 0===v.signum()},Point.prototype.negate=function(){var y=this.curve.p.subtract(this.y);return new Point(this.curve,this.x,y,this.z)},Point.prototype.add=function(b){if(this.curve.isInfinity(this))return b;if(this.curve.isInfinity(b))return this;var x1=this.x,y1=this.y,x2=b.x,y2=b.y,u=y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p),v=x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p);if(0===v.signum())return 0===u.signum()?this.twice():this.curve.infinity;var v2=v.square(),v3=v2.multiply(v),x1v2=x1.multiply(v2),zu2=u.square().multiply(this.z),x3=zu2.subtract(x1v2.shiftLeft(1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p),y3=x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.p),z3=v3.multiply(this.z).multiply(b.z).mod(this.curve.p);return new Point(this.curve,x3,y3,z3)},Point.prototype.twice=function(){if(this.curve.isInfinity(this))return this;if(0===this.y.signum())return this.curve.infinity;var x1=this.x,y1=this.y,y1z1=y1.multiply(this.z),y1sqz1=y1z1.multiply(y1).mod(this.curve.p),a=this.curve.a,w=x1.square().multiply(THREE);0!==a.signum()&&(w=w.add(this.z.square().multiply(a))),w=w.mod(this.curve.p);var x3=w.square().subtract(x1.shiftLeft(3).multiply(y1sqz1)).shiftLeft(1).multiply(y1z1).mod(this.curve.p),y3=w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(1)).shiftLeft(2).multiply(y1sqz1).subtract(w.pow(3)).mod(this.curve.p),z3=y1z1.pow(3).shiftLeft(3).mod(this.curve.p);return new Point(this.curve,x3,y3,z3)},Point.prototype.multiply=function(k){if(this.curve.isInfinity(this))return this;if(0===k.signum())return this.curve.infinity;for(var e=k,h=e.multiply(THREE),neg=this.negate(),R=this,i=h.bitLength()-2;i>0;--i){R=R.twice();var hBit=h.testBit(i),eBit=e.testBit(i);hBit!=eBit&&(R=R.add(hBit?this:neg))}return R},Point.prototype.multiplyTwo=function(j,x,k){var i;i=j.bitLength()>k.bitLength()?j.bitLength()-1:k.bitLength()-1;for(var R=this.curve.infinity,both=this.add(x);i>=0;){R=R.twice();var jBit=j.testBit(i),kBit=k.testBit(i);jBit?R=R.add(kBit?both:this):kBit&&(R=R.add(x)),--i}return R},Point.prototype.getEncoded=function(compressed){if(void 0==compressed&&(compressed=this.compressed),this.curve.isInfinity(this))return new Buffer("00","hex");var buffer,x=this.affineX,y=this.affineY,byteLength=Math.floor((this.curve.p.bitLength()+7)/8);return compressed?(buffer=new Buffer(1+byteLength),buffer.writeUInt8(y.isEven()?2:3,0)):(buffer=new Buffer(1+byteLength+byteLength),buffer.writeUInt8(4,0),y.toBuffer(byteLength).copy(buffer,1+byteLength)),x.toBuffer(byteLength).copy(buffer,1),buffer},Point.decodeFrom=function(curve,buffer){var Q,type=buffer.readUInt8(0),compressed=4!==type,x=BigInteger.fromBuffer(buffer.slice(1,33)),byteLength=Math.floor((curve.p.bitLength()+7)/8);if(compressed){assert.equal(buffer.length,byteLength+1,"Invalid sequence length"),assert(2===type||3===type,"Invalid sequence tag");var isOdd=3===type;Q=curve.pointFromX(isOdd,x)}else{assert.equal(buffer.length,1+byteLength+byteLength,"Invalid sequence length");var y=BigInteger.fromBuffer(buffer.slice(1+byteLength));Q=Point.fromAffine(curve,x,y)}return Q.compressed=compressed,Q},Point.prototype.toString=function(){return this.curve.isInfinity(this)?"(INFINITY)":"("+this.affineX.toString()+","+this.affineY.toString()+")"},module.exports=Point}).call(this,require("buffer").Buffer)},{assert:75,bn:71,buffer:80}],151:[function(require,module,exports){"use strict";var TYPED_OK="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;exports.assign=function(obj){for(var sources=Array.prototype.slice.call(arguments,1);sources.length;){var source=sources.shift();if(source){if("object"!=typeof source)throw new TypeError(source+"must be non-object");for(var p in source)source.hasOwnProperty(p)&&(obj[p]=source[p])}}return obj},exports.shrinkBuf=function(buf,size){return buf.length===size?buf:buf.subarray?buf.subarray(0,size):(buf.length=size,buf)};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray)return void dest.set(src.subarray(src_offs,src_offs+len),dest_offs);for(var i=0;len>i;i++)dest[dest_offs+i]=src[src_offs+i]},flattenChunks:function(chunks){var i,l,len,pos,chunk,result;for(len=0,i=0,l=chunks.length;l>i;i++)len+=chunks[i].length;for(result=new Uint8Array(len),pos=0,i=0,l=chunks.length;l>i;i++)chunk=chunks[i],result.set(chunk,pos),pos+=chunk.length;return result}},fnUntyped={arraySet:function(dest,src,src_offs,len,dest_offs){for(var i=0;len>i;i++)dest[dest_offs+i]=src[src_offs+i]},flattenChunks:function(chunks){return[].concat.apply([],chunks)}};exports.setTyped=function(on){on?(exports.Buf8=Uint8Array,exports.Buf16=Uint16Array,exports.Buf32=Int32Array,exports.assign(exports,fnTyped)):(exports.Buf8=Array,exports.Buf16=Array,exports.Buf32=Array,exports.assign(exports,fnUntyped))},exports.setTyped(TYPED_OK)},{}],152:[function(require,module){"use strict";function adler32(adler,buf,len,pos){for(var s1=65535&adler|0,s2=adler>>>16&65535|0,n=0;0!==len;){n=len>2e3?2e3:len,len-=n;do s1=s1+buf[pos++]|0,s2=s2+s1|0;while(--n);s1%=65521,s2%=65521}return s1|s2<<16|0}module.exports=adler32},{}],153:[function(require,module){module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}
},{}],154:[function(require,module){"use strict";function makeTable(){for(var c,table=[],n=0;256>n;n++){c=n;for(var k=0;8>k;k++)c=1&c?3988292384^c>>>1:c>>>1;table[n]=c}return table}function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc=-1^crc;for(var i=pos;end>i;i++)crc=crc>>>8^t[255&(crc^buf[i])];return-1^crc}var crcTable=makeTable();module.exports=crc32},{}],155:[function(require,module,exports){"use strict";function err(strm,errorCode){return strm.msg=msg[errorCode],errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){for(var len=buf.length;--len>=0;)buf[len]=0}function flush_pending(strm){var s=strm.state,len=s.pending;len>strm.avail_out&&(len=strm.avail_out),0!==len&&(utils.arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out),strm.next_out+=len,s.pending_out+=len,strm.total_out+=len,strm.avail_out-=len,s.pending-=len,0===s.pending&&(s.pending_out=0))}function flush_block_only(s,last){trees._tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last),s.block_start=s.strstart,flush_pending(s.strm)}function put_byte(s,b){s.pending_buf[s.pending++]=b}function putShortMSB(s,b){s.pending_buf[s.pending++]=b>>>8&255,s.pending_buf[s.pending++]=255&b}function read_buf(strm,buf,start,size){var len=strm.avail_in;return len>size&&(len=size),0===len?0:(strm.avail_in-=len,utils.arraySet(buf,strm.input,strm.next_in,len,start),1===strm.state.wrap?strm.adler=adler32(strm.adler,buf,len,start):2===strm.state.wrap&&(strm.adler=crc32(strm.adler,buf,len,start)),strm.next_in+=len,strm.total_in+=len,len)}function longest_match(s,cur_match){var match,len,chain_length=s.max_chain_length,scan=s.strstart,best_len=s.prev_length,nice_match=s.nice_match,limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0,_win=s.window,wmask=s.w_mask,prev=s.prev,strend=s.strstart+MAX_MATCH,scan_end1=_win[scan+best_len-1],scan_end=_win[scan+best_len];s.prev_length>=s.good_match&&(chain_length>>=2),nice_match>s.lookahead&&(nice_match=s.lookahead);do if(match=cur_match,_win[match+best_len]===scan_end&&_win[match+best_len-1]===scan_end1&&_win[match]===_win[scan]&&_win[++match]===_win[scan+1]){scan+=2,match++;do;while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&strend>scan);if(len=MAX_MATCH-(strend-scan),scan=strend-MAX_MATCH,len>best_len){if(s.match_start=cur_match,best_len=len,len>=nice_match)break;scan_end1=_win[scan+best_len-1],scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&0!==--chain_length);return best_len<=s.lookahead?best_len:s.lookahead}function fill_window(s){var p,n,m,more,str,_w_size=s.w_size;do{if(more=s.window_size-s.lookahead-s.strstart,s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){utils.arraySet(s.window,s.window,_w_size,_w_size,0),s.match_start-=_w_size,s.strstart-=_w_size,s.block_start-=_w_size,n=s.hash_size,p=n;do m=s.head[--p],s.head[p]=m>=_w_size?m-_w_size:0;while(--n);n=_w_size,p=n;do m=s.prev[--p],s.prev[p]=m>=_w_size?m-_w_size:0;while(--n);more+=_w_size}if(0===s.strm.avail_in)break;if(n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more),s.lookahead+=n,s.lookahead+s.insert>=MIN_MATCH)for(str=s.strstart-s.insert,s.ins_h=s.window[str],s.ins_h=(s.ins_h<<s.hash_shift^s.window[str+1])&s.hash_mask;s.insert&&(s.ins_h=(s.ins_h<<s.hash_shift^s.window[str+MIN_MATCH-1])&s.hash_mask,s.prev[str&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=str,str++,s.insert--,!(s.lookahead+s.insert<MIN_MATCH)););}while(s.lookahead<MIN_LOOKAHEAD&&0!==s.strm.avail_in)}function deflate_stored(s,flush){var max_block_size=65535;for(max_block_size>s.pending_buf_size-5&&(max_block_size=s.pending_buf_size-5);;){if(s.lookahead<=1){if(fill_window(s),0===s.lookahead&&flush===Z_NO_FLUSH)return BS_NEED_MORE;if(0===s.lookahead)break}s.strstart+=s.lookahead,s.lookahead=0;var max_start=s.block_start+max_block_size;if((0===s.strstart||s.strstart>=max_start)&&(s.lookahead=s.strstart-max_start,s.strstart=max_start,flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE;if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=0,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.strstart>s.block_start&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_NEED_MORE}function deflate_fast(s,flush){for(var hash_head,bflush;;){if(s.lookahead<MIN_LOOKAHEAD){if(fill_window(s),s.lookahead<MIN_LOOKAHEAD&&flush===Z_NO_FLUSH)return BS_NEED_MORE;if(0===s.lookahead)break}if(hash_head=0,s.lookahead>=MIN_MATCH&&(s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask,hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),0!==hash_head&&s.strstart-hash_head<=s.w_size-MIN_LOOKAHEAD&&(s.match_length=longest_match(s,hash_head)),s.match_length>=MIN_MATCH)if(bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do s.strstart++,s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask,hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart;while(0!==--s.match_length);s.strstart++}else s.strstart+=s.match_length,s.match_length=0,s.ins_h=s.window[s.strstart],s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+1])&s.hash_mask;else bflush=trees._tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++;if(bflush&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=s.strstart<MIN_MATCH-1?s.strstart:MIN_MATCH-1,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.last_lit&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_slow(s,flush){for(var hash_head,bflush,max_insert;;){if(s.lookahead<MIN_LOOKAHEAD){if(fill_window(s),s.lookahead<MIN_LOOKAHEAD&&flush===Z_NO_FLUSH)return BS_NEED_MORE;if(0===s.lookahead)break}if(hash_head=0,s.lookahead>=MIN_MATCH&&(s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask,hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart),s.prev_length=s.match_length,s.prev_match=s.match_start,s.match_length=MIN_MATCH-1,0!==hash_head&&s.prev_length<s.max_lazy_match&&s.strstart-hash_head<=s.w_size-MIN_LOOKAHEAD&&(s.match_length=longest_match(s,hash_head),s.match_length<=5&&(s.strategy===Z_FILTERED||s.match_length===MIN_MATCH&&s.strstart-s.match_start>4096)&&(s.match_length=MIN_MATCH-1)),s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH,bflush=trees._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH),s.lookahead-=s.prev_length-1,s.prev_length-=2;do++s.strstart<=max_insert&&(s.ins_h=(s.ins_h<<s.hash_shift^s.window[s.strstart+MIN_MATCH-1])&s.hash_mask,hash_head=s.prev[s.strstart&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=s.strstart);while(0!==--s.prev_length);if(s.match_available=0,s.match_length=MIN_MATCH-1,s.strstart++,bflush&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}else if(s.match_available){if(bflush=trees._tr_tally(s,0,s.window[s.strstart-1]),bflush&&flush_block_only(s,!1),s.strstart++,s.lookahead--,0===s.strm.avail_out)return BS_NEED_MORE}else s.match_available=1,s.strstart++,s.lookahead--}return s.match_available&&(bflush=trees._tr_tally(s,0,s.window[s.strstart-1]),s.match_available=0),s.insert=s.strstart<MIN_MATCH-1?s.strstart:MIN_MATCH-1,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.last_lit&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_rle(s,flush){for(var bflush,prev,scan,strend,_win=s.window;;){if(s.lookahead<=MAX_MATCH){if(fill_window(s),s.lookahead<=MAX_MATCH&&flush===Z_NO_FLUSH)return BS_NEED_MORE;if(0===s.lookahead)break}if(s.match_length=0,s.lookahead>=MIN_MATCH&&s.strstart>0&&(scan=s.strstart-1,prev=_win[scan],prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan])){strend=s.strstart+MAX_MATCH;do;while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&strend>scan);s.match_length=MAX_MATCH-(strend-scan),s.match_length>s.lookahead&&(s.match_length=s.lookahead)}if(s.match_length>=MIN_MATCH?(bflush=trees._tr_tally(s,1,s.match_length-MIN_MATCH),s.lookahead-=s.match_length,s.strstart+=s.match_length,s.match_length=0):(bflush=trees._tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++),bflush&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=0,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.last_lit&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_huff(s,flush){for(var bflush;;){if(0===s.lookahead&&(fill_window(s),0===s.lookahead)){if(flush===Z_NO_FLUSH)return BS_NEED_MORE;break}if(s.match_length=0,bflush=trees._tr_tally(s,0,s.window[s.strstart]),s.lookahead--,s.strstart++,bflush&&(flush_block_only(s,!1),0===s.strm.avail_out))return BS_NEED_MORE}return s.insert=0,flush===Z_FINISH?(flush_block_only(s,!0),0===s.strm.avail_out?BS_FINISH_STARTED:BS_FINISH_DONE):s.last_lit&&(flush_block_only(s,!1),0===s.strm.avail_out)?BS_NEED_MORE:BS_BLOCK_DONE}function lm_init(s){s.window_size=2*s.w_size,zero(s.head),s.max_lazy_match=configuration_table[s.level].max_lazy,s.good_match=configuration_table[s.level].good_length,s.nice_match=configuration_table[s.level].nice_length,s.max_chain_length=configuration_table[s.level].max_chain,s.strstart=0,s.block_start=0,s.lookahead=0,s.insert=0,s.match_length=s.prev_length=MIN_MATCH-1,s.match_available=0,s.ins_h=0}function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new utils.Buf16(2*HEAP_SIZE),this.dyn_dtree=new utils.Buf16(2*(2*D_CODES+1)),this.bl_tree=new utils.Buf16(2*(2*BL_CODES+1)),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new utils.Buf16(MAX_BITS+1),this.heap=new utils.Buf16(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new utils.Buf16(2*L_CODES+1),zero(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function deflateResetKeep(strm){var s;return strm&&strm.state?(strm.total_in=strm.total_out=0,strm.data_type=Z_UNKNOWN,s=strm.state,s.pending=0,s.pending_out=0,s.wrap<0&&(s.wrap=-s.wrap),s.status=s.wrap?INIT_STATE:BUSY_STATE,strm.adler=2===s.wrap?0:1,s.last_flush=Z_NO_FLUSH,trees._tr_init(s),Z_OK):err(strm,Z_STREAM_ERROR)}function deflateReset(strm){var ret=deflateResetKeep(strm);return ret===Z_OK&&lm_init(strm.state),ret}function deflateSetHeader(strm,head){return strm&&strm.state?2!==strm.state.wrap?Z_STREAM_ERROR:(strm.state.gzhead=head,Z_OK):Z_STREAM_ERROR}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm)return Z_STREAM_ERROR;var wrap=1;if(level===Z_DEFAULT_COMPRESSION&&(level=6),0>windowBits?(wrap=0,windowBits=-windowBits):windowBits>15&&(wrap=2,windowBits-=16),1>memLevel||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||8>windowBits||windowBits>15||0>level||level>9||0>strategy||strategy>Z_FIXED)return err(strm,Z_STREAM_ERROR);8===windowBits&&(windowBits=9);var s=new DeflateState;return strm.state=s,s.strm=strm,s.wrap=wrap,s.gzhead=null,s.w_bits=windowBits,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=memLevel+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+MIN_MATCH-1)/MIN_MATCH),s.window=new utils.Buf8(2*s.w_size),s.head=new utils.Buf16(s.hash_size),s.prev=new utils.Buf16(s.w_size),s.lit_bufsize=1<<memLevel+6,s.pending_buf_size=4*s.lit_bufsize,s.pending_buf=new utils.Buf8(s.pending_buf_size),s.d_buf=s.lit_bufsize>>1,s.l_buf=3*s.lit_bufsize,s.level=level,s.strategy=strategy,s.method=method,deflateReset(strm)}function deflateInit(strm,level){return deflateInit2(strm,level,Z_DEFLATED,MAX_WBITS,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY)}function deflate(strm,flush){var old_flush,s,beg,val;if(!strm||!strm.state||flush>Z_BLOCK||0>flush)return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR;if(s=strm.state,!strm.output||!strm.input&&0!==strm.avail_in||s.status===FINISH_STATE&&flush!==Z_FINISH)return err(strm,0===strm.avail_out?Z_BUF_ERROR:Z_STREAM_ERROR);if(s.strm=strm,old_flush=s.last_flush,s.last_flush=flush,s.status===INIT_STATE)if(2===s.wrap)strm.adler=0,put_byte(s,31),put_byte(s,139),put_byte(s,8),s.gzhead?(put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),put_byte(s,255&s.gzhead.time),put_byte(s,s.gzhead.time>>8&255),put_byte(s,s.gzhead.time>>16&255),put_byte(s,s.gzhead.time>>24&255),put_byte(s,9===s.level?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0),put_byte(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(put_byte(s,255&s.gzhead.extra.length),put_byte(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=EXTRA_STATE):(put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,0),put_byte(s,9===s.level?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0),put_byte(s,OS_CODE),s.status=BUSY_STATE);else{var header=Z_DEFLATED+(s.w_bits-8<<4)<<8,level_flags=-1;level_flags=s.strategy>=Z_HUFFMAN_ONLY||s.level<2?0:s.level<6?1:6===s.level?2:3,header|=level_flags<<6,0!==s.strstart&&(header|=PRESET_DICT),header+=31-header%31,s.status=BUSY_STATE,putShortMSB(s,header),0!==s.strstart&&(putShortMSB(s,strm.adler>>>16),putShortMSB(s,65535&strm.adler)),strm.adler=1}if(s.status===EXTRA_STATE)if(s.gzhead.extra){for(beg=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),flush_pending(strm),beg=s.pending,s.pending!==s.pending_buf_size));)put_byte(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=NAME_STATE)}else s.status=NAME_STATE;if(s.status===NAME_STATE)if(s.gzhead.name){beg=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),flush_pending(strm),beg=s.pending,s.pending===s.pending_buf_size)){val=1;break}val=s.gzindex<s.gzhead.name.length?255&s.gzhead.name.charCodeAt(s.gzindex++):0,put_byte(s,val)}while(0!==val);s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),0===val&&(s.gzindex=0,s.status=COMMENT_STATE)}else s.status=COMMENT_STATE;if(s.status===COMMENT_STATE)if(s.gzhead.comment){beg=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),flush_pending(strm),beg=s.pending,s.pending===s.pending_buf_size)){val=1;break}val=s.gzindex<s.gzhead.comment.length?255&s.gzhead.comment.charCodeAt(s.gzindex++):0,put_byte(s,val)}while(0!==val);s.gzhead.hcrc&&s.pending>beg&&(strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)),0===val&&(s.status=HCRC_STATE)}else s.status=HCRC_STATE;if(s.status===HCRC_STATE&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&flush_pending(strm),s.pending+2<=s.pending_buf_size&&(put_byte(s,255&strm.adler),put_byte(s,strm.adler>>8&255),strm.adler=0,s.status=BUSY_STATE)):s.status=BUSY_STATE),0!==s.pending){if(flush_pending(strm),0===strm.avail_out)return s.last_flush=-1,Z_OK}else if(0===strm.avail_in&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH)return err(strm,Z_BUF_ERROR);if(s.status===FINISH_STATE&&0!==strm.avail_in)return err(strm,Z_BUF_ERROR);if(0!==strm.avail_in||0!==s.lookahead||flush!==Z_NO_FLUSH&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,flush):s.strategy===Z_RLE?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if((bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE)&&(s.status=FINISH_STATE),bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED)return 0===strm.avail_out&&(s.last_flush=-1),Z_OK;if(bstate===BS_BLOCK_DONE&&(flush===Z_PARTIAL_FLUSH?trees._tr_align(s):flush!==Z_BLOCK&&(trees._tr_stored_block(s,0,0,!1),flush===Z_FULL_FLUSH&&(zero(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),flush_pending(strm),0===strm.avail_out))return s.last_flush=-1,Z_OK}return flush!==Z_FINISH?Z_OK:s.wrap<=0?Z_STREAM_END:(2===s.wrap?(put_byte(s,255&strm.adler),put_byte(s,strm.adler>>8&255),put_byte(s,strm.adler>>16&255),put_byte(s,strm.adler>>24&255),put_byte(s,255&strm.total_in),put_byte(s,strm.total_in>>8&255),put_byte(s,strm.total_in>>16&255),put_byte(s,strm.total_in>>24&255)):(putShortMSB(s,strm.adler>>>16),putShortMSB(s,65535&strm.adler)),flush_pending(strm),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?Z_OK:Z_STREAM_END)}function deflateEnd(strm){var status;return strm&&strm.state?(status=strm.state.status,status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE?err(strm,Z_STREAM_ERROR):(strm.state=null,status===BUSY_STATE?err(strm,Z_DATA_ERROR):Z_OK)):Z_STREAM_ERROR}var configuration_table,utils=require("../utils/common"),trees=require("./trees"),adler32=require("./adler32"),crc32=require("./crc32"),msg=require("./messages"),Z_NO_FLUSH=0,Z_PARTIAL_FLUSH=1,Z_FULL_FLUSH=3,Z_FINISH=4,Z_BLOCK=5,Z_OK=0,Z_STREAM_END=1,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,Z_BUF_ERROR=-5,Z_DEFAULT_COMPRESSION=-1,Z_FILTERED=1,Z_HUFFMAN_ONLY=2,Z_RLE=3,Z_FIXED=4,Z_DEFAULT_STRATEGY=0,Z_UNKNOWN=2,Z_DEFLATED=8,MAX_MEM_LEVEL=9,MAX_WBITS=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,Config=function(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length,this.max_lazy=max_lazy,this.nice_length=nice_length,this.max_chain=max_chain,this.func=func};configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],exports.deflateInit=deflateInit,exports.deflateInit2=deflateInit2,exports.deflateReset=deflateReset,exports.deflateResetKeep=deflateResetKeep,exports.deflateSetHeader=deflateSetHeader,exports.deflate=deflate,exports.deflateEnd=deflateEnd,exports.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":151,"./adler32":152,"./crc32":154,"./messages":159,"./trees":160}],156:[function(require,module){"use strict";var BAD=30,TYPE=12;module.exports=function(strm,start){var state,_in,last,_out,beg,end,dmax,wsize,whave,wnext,window,hold,bits,lcode,dcode,lmask,dmask,here,op,len,dist,from,from_source,input,output;state=strm.state,_in=strm.next_in,input=strm.input,last=_in+(strm.avail_in-5),_out=strm.next_out,output=strm.output,beg=_out-(start-strm.avail_out),end=_out+(strm.avail_out-257),dmax=state.dmax,wsize=state.wsize,whave=state.whave,wnext=state.wnext,window=state.window,hold=state.hold,bits=state.bits,lcode=state.lencode,dcode=state.distcode,lmask=(1<<state.lenbits)-1,dmask=(1<<state.distbits)-1;top:do{15>bits&&(hold+=input[_in++]<<bits,bits+=8,hold+=input[_in++]<<bits,bits+=8),here=lcode[hold&lmask];dolen:for(;;){if(op=here>>>24,hold>>>=op,bits-=op,op=here>>>16&255,0===op)output[_out++]=65535&here;else{if(!(16&op)){if(0===(64&op)){here=lcode[(65535&here)+(hold&(1<<op)-1)];continue dolen}if(32&op){state.mode=TYPE;break top}strm.msg="invalid literal/length code",state.mode=BAD;break top}len=65535&here,op&=15,op&&(op>bits&&(hold+=input[_in++]<<bits,bits+=8),len+=hold&(1<<op)-1,hold>>>=op,bits-=op),15>bits&&(hold+=input[_in++]<<bits,bits+=8,hold+=input[_in++]<<bits,bits+=8),here=dcode[hold&dmask];dodist:for(;;){if(op=here>>>24,hold>>>=op,bits-=op,op=here>>>16&255,!(16&op)){if(0===(64&op)){here=dcode[(65535&here)+(hold&(1<<op)-1)];continue dodist}strm.msg="invalid distance code",state.mode=BAD;break top}if(dist=65535&here,op&=15,op>bits&&(hold+=input[_in++]<<bits,bits+=8,op>bits&&(hold+=input[_in++]<<bits,bits+=8)),dist+=hold&(1<<op)-1,dist>dmax){strm.msg="invalid distance too far back",state.mode=BAD;break top}if(hold>>>=op,bits-=op,op=_out-beg,dist>op){if(op=dist-op,op>whave&&state.sane){strm.msg="invalid distance too far back",state.mode=BAD;break top}if(from=0,from_source=window,0===wnext){if(from+=wsize-op,len>op){len-=op;do output[_out++]=window[from++];while(--op);from=_out-dist,from_source=output}}else if(op>wnext){if(from+=wsize+wnext-op,op-=wnext,len>op){len-=op;do output[_out++]=window[from++];while(--op);if(from=0,len>wnext){op=wnext,len-=op;do output[_out++]=window[from++];while(--op);from=_out-dist,from_source=output}}}else if(from+=wnext-op,len>op){len-=op;do output[_out++]=window[from++];while(--op);from=_out-dist,from_source=output}for(;len>2;)output[_out++]=from_source[from++],output[_out++]=from_source[from++],output[_out++]=from_source[from++],len-=3;len&&(output[_out++]=from_source[from++],len>1&&(output[_out++]=from_source[from++]))}else{from=_out-dist;do output[_out++]=output[from++],output[_out++]=output[from++],output[_out++]=output[from++],len-=3;while(len>2);len&&(output[_out++]=output[from++],len>1&&(output[_out++]=output[from++]))}break}}break}}while(last>_in&&end>_out);len=bits>>3,_in-=len,bits-=len<<3,hold&=(1<<bits)-1,strm.next_in=_in,strm.next_out=_out,strm.avail_in=last>_in?5+(last-_in):5-(_in-last),strm.avail_out=end>_out?257+(end-_out):257-(_out-end),state.hold=hold,state.bits=bits}},{}],157:[function(require,module,exports){"use strict";function ZSWAP32(q){return(q>>>24&255)+(q>>>8&65280)+((65280&q)<<8)+((255&q)<<24)}function InflateState(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new utils.Buf16(320),this.work=new utils.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function inflateResetKeep(strm){var state;return strm&&strm.state?(state=strm.state,strm.total_in=strm.total_out=state.total=0,strm.msg="",state.wrap&&(strm.adler=1&state.wrap),state.mode=HEAD,state.last=0,state.havedict=0,state.dmax=32768,state.head=null,state.hold=0,state.bits=0,state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS),state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS),state.sane=1,state.back=-1,Z_OK):Z_STREAM_ERROR}function inflateReset(strm){var state;return strm&&strm.state?(state=strm.state,state.wsize=0,state.whave=0,state.wnext=0,inflateResetKeep(strm)):Z_STREAM_ERROR}function inflateReset2(strm,windowBits){var wrap,state;return strm&&strm.state?(state=strm.state,0>windowBits?(wrap=0,windowBits=-windowBits):(wrap=(windowBits>>4)+1,48>windowBits&&(windowBits&=15)),windowBits&&(8>windowBits||windowBits>15)?Z_STREAM_ERROR:(null!==state.window&&state.wbits!==windowBits&&(state.window=null),state.wrap=wrap,state.wbits=windowBits,inflateReset(strm))):Z_STREAM_ERROR}function inflateInit2(strm,windowBits){var ret,state;return strm?(state=new InflateState,strm.state=state,state.window=null,ret=inflateReset2(strm,windowBits),ret!==Z_OK&&(strm.state=null),ret):Z_STREAM_ERROR}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}function fixedtables(state){if(virgin){var sym;for(lenfix=new utils.Buf32(512),distfix=new utils.Buf32(32),sym=0;144>sym;)state.lens[sym++]=8;for(;256>sym;)state.lens[sym++]=9;for(;280>sym;)state.lens[sym++]=7;for(;288>sym;)state.lens[sym++]=8;for(inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9}),sym=0;32>sym;)state.lens[sym++]=5;inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5}),virgin=!1}state.lencode=lenfix,state.lenbits=9,state.distcode=distfix,state.distbits=5}function updatewindow(strm,src,end,copy){var dist,state=strm.state;return null===state.window&&(state.wsize=1<<state.wbits,state.wnext=0,state.whave=0,state.window=new utils.Buf8(state.wsize)),copy>=state.wsize?(utils.arraySet(state.window,src,end-state.wsize,state.wsize,0),state.wnext=0,state.whave=state.wsize):(dist=state.wsize-state.wnext,dist>copy&&(dist=copy),utils.arraySet(state.window,src,end-copy,dist,state.wnext),copy-=dist,copy?(utils.arraySet(state.window,src,end-copy,copy,0),state.wnext=copy,state.whave=state.wsize):(state.wnext+=dist,state.wnext===state.wsize&&(state.wnext=0),state.whave<state.wsize&&(state.whave+=dist))),0}function inflate(strm,flush){var state,input,output,next,put,have,left,hold,bits,_in,_out,copy,from,from_source,here_bits,here_op,here_val,last_bits,last_op,last_val,len,ret,opts,n,here=0,hbuf=new utils.Buf8(4),order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!strm||!strm.state||!strm.output||!strm.input&&0!==strm.avail_in)return Z_STREAM_ERROR;state=strm.state,state.mode===TYPE&&(state.mode=TYPEDO),put=strm.next_out,output=strm.output,left=strm.avail_out,next=strm.next_in,input=strm.input,have=strm.avail_in,hold=state.hold,bits=state.bits,_in=have,_out=left,ret=Z_OK;inf_leave:for(;;)switch(state.mode){case HEAD:if(0===state.wrap){state.mode=TYPEDO;break}for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if(2&state.wrap&&35615===hold){state.check=0,hbuf[0]=255&hold,hbuf[1]=hold>>>8&255,state.check=crc32(state.check,hbuf,2,0),hold=0,bits=0,state.mode=FLAGS;break}if(state.flags=0,state.head&&(state.head.done=!1),!(1&state.wrap)||(((255&hold)<<8)+(hold>>8))%31){strm.msg="incorrect header check",state.mode=BAD;break}if((15&hold)!==Z_DEFLATED){strm.msg="unknown compression method",state.mode=BAD;break}if(hold>>>=4,bits-=4,len=(15&hold)+8,0===state.wbits)state.wbits=len;else if(len>state.wbits){strm.msg="invalid window size",state.mode=BAD;break}state.dmax=1<<len,strm.adler=state.check=1,state.mode=512&hold?DICTID:TYPE,hold=0,bits=0;break;case FLAGS:for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if(state.flags=hold,(255&state.flags)!==Z_DEFLATED){strm.msg="unknown compression method",state.mode=BAD;break}if(57344&state.flags){strm.msg="unknown header flags set",state.mode=BAD;break}state.head&&(state.head.text=hold>>8&1),512&state.flags&&(hbuf[0]=255&hold,hbuf[1]=hold>>>8&255,state.check=crc32(state.check,hbuf,2,0)),hold=0,bits=0,state.mode=TIME;case TIME:for(;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}state.head&&(state.head.time=hold),512&state.flags&&(hbuf[0]=255&hold,hbuf[1]=hold>>>8&255,hbuf[2]=hold>>>16&255,hbuf[3]=hold>>>24&255,state.check=crc32(state.check,hbuf,4,0)),hold=0,bits=0,state.mode=OS;case OS:for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}state.head&&(state.head.xflags=255&hold,state.head.os=hold>>8),512&state.flags&&(hbuf[0]=255&hold,hbuf[1]=hold>>>8&255,state.check=crc32(state.check,hbuf,2,0)),hold=0,bits=0,state.mode=EXLEN;case EXLEN:if(1024&state.flags){for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}state.length=hold,state.head&&(state.head.extra_len=hold),512&state.flags&&(hbuf[0]=255&hold,hbuf[1]=hold>>>8&255,state.check=crc32(state.check,hbuf,2,0)),hold=0,bits=0}else state.head&&(state.head.extra=null);state.mode=EXTRA;case EXTRA:if(1024&state.flags&&(copy=state.length,copy>have&&(copy=have),copy&&(state.head&&(len=state.head.extra_len-state.length,state.head.extra||(state.head.extra=new Array(state.head.extra_len)),utils.arraySet(state.head.extra,input,next,copy,len)),512&state.flags&&(state.check=crc32(state.check,input,copy,next)),have-=copy,next+=copy,state.length-=copy),state.length))break inf_leave;state.length=0,state.mode=NAME;case NAME:if(2048&state.flags){if(0===have)break inf_leave;copy=0;do len=input[next+copy++],state.head&&len&&state.length<65536&&(state.head.name+=String.fromCharCode(len));while(len&&have>copy);if(512&state.flags&&(state.check=crc32(state.check,input,copy,next)),have-=copy,next+=copy,len)break inf_leave}else state.head&&(state.head.name=null);state.length=0,state.mode=COMMENT;case COMMENT:if(4096&state.flags){if(0===have)break inf_leave;copy=0;do len=input[next+copy++],state.head&&len&&state.length<65536&&(state.head.comment+=String.fromCharCode(len));while(len&&have>copy);if(512&state.flags&&(state.check=crc32(state.check,input,copy,next)),have-=copy,next+=copy,len)break inf_leave}else state.head&&(state.head.comment=null);state.mode=HCRC;case HCRC:if(512&state.flags){for(;16>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if(hold!==(65535&state.check)){strm.msg="header crc mismatch",state.mode=BAD;break}hold=0,bits=0}state.head&&(state.head.hcrc=state.flags>>9&1,state.head.done=!0),strm.adler=state.check=0,state.mode=TYPE;break;case DICTID:for(;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}strm.adler=state.check=ZSWAP32(hold),hold=0,bits=0,state.mode=DICT;case DICT:if(0===state.havedict)return strm.next_out=put,strm.avail_out=left,strm.next_in=next,strm.avail_in=have,state.hold=hold,state.bits=bits,Z_NEED_DICT;strm.adler=state.check=1,state.mode=TYPE;case TYPE:if(flush===Z_BLOCK||flush===Z_TREES)break inf_leave;case TYPEDO:if(state.last){hold>>>=7&bits,bits-=7&bits,state.mode=CHECK;break}for(;3>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}switch(state.last=1&hold,hold>>>=1,bits-=1,3&hold){case 0:state.mode=STORED;break;case 1:if(fixedtables(state),state.mode=LEN_,flush===Z_TREES){hold>>>=2,bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type",state.mode=BAD}hold>>>=2,bits-=2;break;case STORED:for(hold>>>=7&bits,bits-=7&bits;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if((65535&hold)!==(hold>>>16^65535)){strm.msg="invalid stored block lengths",state.mode=BAD;break}if(state.length=65535&hold,hold=0,bits=0,state.mode=COPY_,flush===Z_TREES)break inf_leave;case COPY_:state.mode=COPY;case COPY:if(copy=state.length){if(copy>have&&(copy=have),copy>left&&(copy=left),0===copy)break inf_leave;utils.arraySet(output,input,next,copy,put),have-=copy,next+=copy,left-=copy,put+=copy,state.length-=copy;break}state.mode=TYPE;break;case TABLE:for(;14>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if(state.nlen=(31&hold)+257,hold>>>=5,bits-=5,state.ndist=(31&hold)+1,hold>>>=5,bits-=5,state.ncode=(15&hold)+4,hold>>>=4,bits-=4,state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols",state.mode=BAD;
break}state.have=0,state.mode=LENLENS;case LENLENS:for(;state.have<state.ncode;){for(;3>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}state.lens[order[state.have++]]=7&hold,hold>>>=3,bits-=3}for(;state.have<19;)state.lens[order[state.have++]]=0;if(state.lencode=state.lendyn,state.lenbits=7,opts={bits:state.lenbits},ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts),state.lenbits=opts.bits,ret){strm.msg="invalid code lengths set",state.mode=BAD;break}state.have=0,state.mode=CODELENS;case CODELENS:for(;state.have<state.nlen+state.ndist;){for(;here=state.lencode[hold&(1<<state.lenbits)-1],here_bits=here>>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if(16>here_val)hold>>>=here_bits,bits-=here_bits,state.lens[state.have++]=here_val;else{if(16===here_val){for(n=here_bits+2;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if(hold>>>=here_bits,bits-=here_bits,0===state.have){strm.msg="invalid bit length repeat",state.mode=BAD;break}len=state.lens[state.have-1],copy=3+(3&hold),hold>>>=2,bits-=2}else if(17===here_val){for(n=here_bits+3;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}hold>>>=here_bits,bits-=here_bits,len=0,copy=3+(7&hold),hold>>>=3,bits-=3}else{for(n=here_bits+7;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}hold>>>=here_bits,bits-=here_bits,len=0,copy=11+(127&hold),hold>>>=7,bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat",state.mode=BAD;break}for(;copy--;)state.lens[state.have++]=len}}if(state.mode===BAD)break;if(0===state.lens[256]){strm.msg="invalid code -- missing end-of-block",state.mode=BAD;break}if(state.lenbits=9,opts={bits:state.lenbits},ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts),state.lenbits=opts.bits,ret){strm.msg="invalid literal/lengths set",state.mode=BAD;break}if(state.distbits=6,state.distcode=state.distdyn,opts={bits:state.distbits},ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts),state.distbits=opts.bits,ret){strm.msg="invalid distances set",state.mode=BAD;break}if(state.mode=LEN_,flush===Z_TREES)break inf_leave;case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put,strm.avail_out=left,strm.next_in=next,strm.avail_in=have,state.hold=hold,state.bits=bits,inflate_fast(strm,_out),put=strm.next_out,output=strm.output,left=strm.avail_out,next=strm.next_in,input=strm.input,have=strm.avail_in,hold=state.hold,bits=state.bits,state.mode===TYPE&&(state.back=-1);break}for(state.back=0;here=state.lencode[hold&(1<<state.lenbits)-1],here_bits=here>>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if(here_op&&0===(240&here_op)){for(last_bits=here_bits,last_op=here_op,last_val=here_val;here=state.lencode[last_val+((hold&(1<<last_bits+last_op)-1)>>last_bits)],here_bits=here>>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=last_bits+here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}hold>>>=last_bits,bits-=last_bits,state.back+=last_bits}if(hold>>>=here_bits,bits-=here_bits,state.back+=here_bits,state.length=here_val,0===here_op){state.mode=LIT;break}if(32&here_op){state.back=-1,state.mode=TYPE;break}if(64&here_op){strm.msg="invalid literal/length code",state.mode=BAD;break}state.extra=15&here_op,state.mode=LENEXT;case LENEXT:if(state.extra){for(n=state.extra;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}state.length+=hold&(1<<state.extra)-1,hold>>>=state.extra,bits-=state.extra,state.back+=state.extra}state.was=state.length,state.mode=DIST;case DIST:for(;here=state.distcode[hold&(1<<state.distbits)-1],here_bits=here>>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if(0===(240&here_op)){for(last_bits=here_bits,last_op=here_op,last_val=here_val;here=state.distcode[last_val+((hold&(1<<last_bits+last_op)-1)>>last_bits)],here_bits=here>>>24,here_op=here>>>16&255,here_val=65535&here,!(bits>=last_bits+here_bits);){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}hold>>>=last_bits,bits-=last_bits,state.back+=last_bits}if(hold>>>=here_bits,bits-=here_bits,state.back+=here_bits,64&here_op){strm.msg="invalid distance code",state.mode=BAD;break}state.offset=here_val,state.extra=15&here_op,state.mode=DISTEXT;case DISTEXT:if(state.extra){for(n=state.extra;n>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}state.offset+=hold&(1<<state.extra)-1,hold>>>=state.extra,bits-=state.extra,state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back",state.mode=BAD;break}state.mode=MATCH;case MATCH:if(0===left)break inf_leave;if(copy=_out-left,state.offset>copy){if(copy=state.offset-copy,copy>state.whave&&state.sane){strm.msg="invalid distance too far back",state.mode=BAD;break}copy>state.wnext?(copy-=state.wnext,from=state.wsize-copy):from=state.wnext-copy,copy>state.length&&(copy=state.length),from_source=state.window}else from_source=output,from=put-state.offset,copy=state.length;copy>left&&(copy=left),left-=copy,state.length-=copy;do output[put++]=from_source[from++];while(--copy);0===state.length&&(state.mode=LEN);break;case LIT:if(0===left)break inf_leave;output[put++]=state.length,left--,state.mode=LEN;break;case CHECK:if(state.wrap){for(;32>bits;){if(0===have)break inf_leave;have--,hold|=input[next++]<<bits,bits+=8}if(_out-=left,strm.total_out+=_out,state.total+=_out,_out&&(strm.adler=state.check=state.flags?crc32(state.check,output,_out,put-_out):adler32(state.check,output,_out,put-_out)),_out=left,(state.flags?hold:ZSWAP32(hold))!==state.check){strm.msg="incorrect data check",state.mode=BAD;break}hold=0,bits=0}state.mode=LENGTH;case LENGTH:if(state.wrap&&state.flags){for(;32>bits;){if(0===have)break inf_leave;have--,hold+=input[next++]<<bits,bits+=8}if(hold!==(4294967295&state.total)){strm.msg="incorrect length check",state.mode=BAD;break}hold=0,bits=0}state.mode=DONE;case DONE:ret=Z_STREAM_END;break inf_leave;case BAD:ret=Z_DATA_ERROR;break inf_leave;case MEM:return Z_MEM_ERROR;case SYNC:default:return Z_STREAM_ERROR}return strm.next_out=put,strm.avail_out=left,strm.next_in=next,strm.avail_in=have,state.hold=hold,state.bits=bits,(state.wsize||_out!==strm.avail_out&&state.mode<BAD&&(state.mode<CHECK||flush!==Z_FINISH))&&updatewindow(strm,strm.output,strm.next_out,_out-strm.avail_out)?(state.mode=MEM,Z_MEM_ERROR):(_in-=strm.avail_in,_out-=strm.avail_out,strm.total_in+=_in,strm.total_out+=_out,state.total+=_out,state.wrap&&_out&&(strm.adler=state.check=state.flags?crc32(state.check,output,_out,strm.next_out-_out):adler32(state.check,output,_out,strm.next_out-_out)),strm.data_type=state.bits+(state.last?64:0)+(state.mode===TYPE?128:0)+(state.mode===LEN_||state.mode===COPY_?256:0),(0===_in&&0===_out||flush===Z_FINISH)&&ret===Z_OK&&(ret=Z_BUF_ERROR),ret)}function inflateEnd(strm){if(!strm||!strm.state)return Z_STREAM_ERROR;var state=strm.state;return state.window&&(state.window=null),strm.state=null,Z_OK}function inflateGetHeader(strm,head){var state;return strm&&strm.state?(state=strm.state,0===(2&state.wrap)?Z_STREAM_ERROR:(state.head=head,head.done=!1,Z_OK)):Z_STREAM_ERROR}var lenfix,distfix,utils=require("../utils/common"),adler32=require("./adler32"),crc32=require("./crc32"),inflate_fast=require("./inffast"),inflate_table=require("./inftrees"),CODES=0,LENS=1,DISTS=2,Z_FINISH=4,Z_BLOCK=5,Z_TREES=6,Z_OK=0,Z_STREAM_END=1,Z_NEED_DICT=2,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,Z_MEM_ERROR=-4,Z_BUF_ERROR=-5,Z_DEFLATED=8,HEAD=1,FLAGS=2,TIME=3,OS=4,EXLEN=5,EXTRA=6,NAME=7,COMMENT=8,HCRC=9,DICTID=10,DICT=11,TYPE=12,TYPEDO=13,STORED=14,COPY_=15,COPY=16,TABLE=17,LENLENS=18,CODELENS=19,LEN_=20,LEN=21,LENEXT=22,DIST=23,DISTEXT=24,MATCH=25,LIT=26,CHECK=27,LENGTH=28,DONE=29,BAD=30,MEM=31,SYNC=32,ENOUGH_LENS=852,ENOUGH_DISTS=592,MAX_WBITS=15,DEF_WBITS=MAX_WBITS,virgin=!0;exports.inflateReset=inflateReset,exports.inflateReset2=inflateReset2,exports.inflateResetKeep=inflateResetKeep,exports.inflateInit=inflateInit,exports.inflateInit2=inflateInit2,exports.inflate=inflate,exports.inflateEnd=inflateEnd,exports.inflateGetHeader=inflateGetHeader,exports.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":151,"./adler32":152,"./crc32":154,"./inffast":156,"./inftrees":158}],158:[function(require,module){"use strict";var utils=require("../utils/common"),MAXBITS=15,ENOUGH_LENS=852,ENOUGH_DISTS=592,CODES=0,LENS=1,DISTS=2,lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];module.exports=function(type,lens,lens_index,codes,table,table_index,work,opts){var incr,fill,low,mask,next,end,here_bits,here_op,here_val,bits=opts.bits,len=0,sym=0,min=0,max=0,root=0,curr=0,drop=0,left=0,used=0,huff=0,base=null,base_index=0,count=new utils.Buf16(MAXBITS+1),offs=new utils.Buf16(MAXBITS+1),extra=null,extra_index=0;for(len=0;MAXBITS>=len;len++)count[len]=0;for(sym=0;codes>sym;sym++)count[lens[lens_index+sym]]++;for(root=bits,max=MAXBITS;max>=1&&0===count[max];max--);if(root>max&&(root=max),0===max)return table[table_index++]=20971520,table[table_index++]=20971520,opts.bits=1,0;for(min=1;max>min&&0===count[min];min++);for(min>root&&(root=min),left=1,len=1;MAXBITS>=len;len++)if(left<<=1,left-=count[len],0>left)return-1;if(left>0&&(type===CODES||1!==max))return-1;for(offs[1]=0,len=1;MAXBITS>len;len++)offs[len+1]=offs[len]+count[len];for(sym=0;codes>sym;sym++)0!==lens[lens_index+sym]&&(work[offs[lens[lens_index+sym]]++]=sym);if(type===CODES?(base=extra=work,end=19):type===LENS?(base=lbase,base_index-=257,extra=lext,extra_index-=257,end=256):(base=dbase,extra=dext,end=-1),huff=0,sym=0,len=min,next=table_index,curr=root,drop=0,low=-1,used=1<<root,mask=used-1,type===LENS&&used>ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;for(var i=0;;){i++,here_bits=len-drop,work[sym]<end?(here_op=0,here_val=work[sym]):work[sym]>end?(here_op=extra[extra_index+work[sym]],here_val=base[base_index+work[sym]]):(here_op=96,here_val=0),incr=1<<len-drop,fill=1<<curr,min=fill;do fill-=incr,table[next+(huff>>drop)+fill]=here_bits<<24|here_op<<16|here_val|0;while(0!==fill);for(incr=1<<len-1;huff&incr;)incr>>=1;if(0!==incr?(huff&=incr-1,huff+=incr):huff=0,sym++,0===--count[len]){if(len===max)break;len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){for(0===drop&&(drop=root),next+=min,curr=len-drop,left=1<<curr;max>curr+drop&&(left-=count[curr+drop],!(0>=left));)curr++,left<<=1;if(used+=1<<curr,type===LENS&&used>ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS)return 1;low=huff&mask,table[low]=root<<24|curr<<16|next-table_index|0}}return 0!==huff&&(table[next+huff]=len-drop<<24|64<<16|0),opts.bits=root,0}},{"../utils/common":151}],159:[function(require,module){"use strict";module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],160:[function(require,module,exports){"use strict";function zero(buf){for(var len=buf.length;--len>=0;)buf[len]=0}function d_code(dist){return 256>dist?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=255&w,s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){s.bi_valid>Buf_size-length?(s.bi_buf|=value<<s.bi_valid&65535,put_short(s,s.bi_buf),s.bi_buf=value>>Buf_size-s.bi_valid,s.bi_valid+=length-Buf_size):(s.bi_buf|=value<<s.bi_valid&65535,s.bi_valid+=length)}function send_code(s,c,tree){send_bits(s,tree[2*c],tree[2*c+1])}function bi_reverse(code,len){var res=0;do res|=1&code,code>>>=1,res<<=1;while(--len>0);return res>>>1}function bi_flush(s){16===s.bi_valid?(put_short(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=255&s.bi_buf,s.bi_buf>>=8,s.bi_valid-=8)}function gen_bitlen(s,desc){var h,n,m,bits,xbits,f,tree=desc.dyn_tree,max_code=desc.max_code,stree=desc.stat_desc.static_tree,has_stree=desc.stat_desc.has_stree,extra=desc.stat_desc.extra_bits,base=desc.stat_desc.extra_base,max_length=desc.stat_desc.max_length,overflow=0;for(bits=0;MAX_BITS>=bits;bits++)s.bl_count[bits]=0;for(tree[2*s.heap[s.heap_max]+1]=0,h=s.heap_max+1;HEAP_SIZE>h;h++)n=s.heap[h],bits=tree[2*tree[2*n+1]+1]+1,bits>max_length&&(bits=max_length,overflow++),tree[2*n+1]=bits,n>max_code||(s.bl_count[bits]++,xbits=0,n>=base&&(xbits=extra[n-base]),f=tree[2*n],s.opt_len+=f*(bits+xbits),has_stree&&(s.static_len+=f*(stree[2*n+1]+xbits)));if(0!==overflow){do{for(bits=max_length-1;0===s.bl_count[bits];)bits--;s.bl_count[bits]--,s.bl_count[bits+1]+=2,s.bl_count[max_length]--,overflow-=2}while(overflow>0);for(bits=max_length;0!==bits;bits--)for(n=s.bl_count[bits];0!==n;)m=s.heap[--h],m>max_code||(tree[2*m+1]!==bits&&(s.opt_len+=(bits-tree[2*m+1])*tree[2*m],tree[2*m+1]=bits),n--)}}function gen_codes(tree,max_code,bl_count){var bits,n,next_code=new Array(MAX_BITS+1),code=0;for(bits=1;MAX_BITS>=bits;bits++)next_code[bits]=code=code+bl_count[bits-1]<<1;for(n=0;max_code>=n;n++){var len=tree[2*n+1];0!==len&&(tree[2*n]=bi_reverse(next_code[len]++,len))}}function tr_static_init(){var n,bits,length,code,dist,bl_count=new Array(MAX_BITS+1);for(length=0,code=0;LENGTH_CODES-1>code;code++)for(base_length[code]=length,n=0;n<1<<extra_lbits[code];n++)_length_code[length++]=code;for(_length_code[length-1]=code,dist=0,code=0;16>code;code++)for(base_dist[code]=dist,n=0;n<1<<extra_dbits[code];n++)_dist_code[dist++]=code;for(dist>>=7;D_CODES>code;code++)for(base_dist[code]=dist<<7,n=0;n<1<<extra_dbits[code]-7;n++)_dist_code[256+dist++]=code;for(bits=0;MAX_BITS>=bits;bits++)bl_count[bits]=0;for(n=0;143>=n;)static_ltree[2*n+1]=8,n++,bl_count[8]++;for(;255>=n;)static_ltree[2*n+1]=9,n++,bl_count[9]++;for(;279>=n;)static_ltree[2*n+1]=7,n++,bl_count[7]++;for(;287>=n;)static_ltree[2*n+1]=8,n++,bl_count[8]++;for(gen_codes(static_ltree,L_CODES+1,bl_count),n=0;D_CODES>n;n++)static_dtree[2*n+1]=5,static_dtree[2*n]=bi_reverse(n,5);static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS+1,L_CODES,MAX_BITS),static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES,MAX_BITS),static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES,MAX_BL_BITS)}function init_block(s){var n;for(n=0;L_CODES>n;n++)s.dyn_ltree[2*n]=0;for(n=0;D_CODES>n;n++)s.dyn_dtree[2*n]=0;for(n=0;BL_CODES>n;n++)s.bl_tree[2*n]=0;s.dyn_ltree[2*END_BLOCK]=1,s.opt_len=s.static_len=0,s.last_lit=s.matches=0}function bi_windup(s){s.bi_valid>8?put_short(s,s.bi_buf):s.bi_valid>0&&(s.pending_buf[s.pending++]=s.bi_buf),s.bi_buf=0,s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s),header&&(put_short(s,len),put_short(s,~len)),utils.arraySet(s.pending_buf,s.window,buf,len,s.pending),s.pending+=len}function smaller(tree,n,m,depth){var _n2=2*n,_m2=2*m;return tree[_n2]<tree[_m2]||tree[_n2]===tree[_m2]&&depth[n]<=depth[m]}function pqdownheap(s,tree,k){for(var v=s.heap[k],j=k<<1;j<=s.heap_len&&(j<s.heap_len&&smaller(tree,s.heap[j+1],s.heap[j],s.depth)&&j++,!smaller(tree,v,s.heap[j],s.depth));)s.heap[k]=s.heap[j],k=j,j<<=1;s.heap[k]=v}function compress_block(s,ltree,dtree){var dist,lc,code,extra,lx=0;if(0!==s.last_lit)do dist=s.pending_buf[s.d_buf+2*lx]<<8|s.pending_buf[s.d_buf+2*lx+1],lc=s.pending_buf[s.l_buf+lx],lx++,0===dist?send_code(s,lc,ltree):(code=_length_code[lc],send_code(s,code+LITERALS+1,ltree),extra=extra_lbits[code],0!==extra&&(lc-=base_length[code],send_bits(s,lc,extra)),dist--,code=d_code(dist),send_code(s,code,dtree),extra=extra_dbits[code],0!==extra&&(dist-=base_dist[code],send_bits(s,dist,extra)));while(lx<s.last_lit);send_code(s,END_BLOCK,ltree)}function build_tree(s,desc){var n,m,node,tree=desc.dyn_tree,stree=desc.stat_desc.static_tree,has_stree=desc.stat_desc.has_stree,elems=desc.stat_desc.elems,max_code=-1;for(s.heap_len=0,s.heap_max=HEAP_SIZE,n=0;elems>n;n++)0!==tree[2*n]?(s.heap[++s.heap_len]=max_code=n,s.depth[n]=0):tree[2*n+1]=0;for(;s.heap_len<2;)node=s.heap[++s.heap_len]=2>max_code?++max_code:0,tree[2*node]=1,s.depth[node]=0,s.opt_len--,has_stree&&(s.static_len-=stree[2*node+1]);for(desc.max_code=max_code,n=s.heap_len>>1;n>=1;n--)pqdownheap(s,tree,n);node=elems;do n=s.heap[1],s.heap[1]=s.heap[s.heap_len--],pqdownheap(s,tree,1),m=s.heap[1],s.heap[--s.heap_max]=n,s.heap[--s.heap_max]=m,tree[2*node]=tree[2*n]+tree[2*m],s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1,tree[2*n+1]=tree[2*m+1]=node,s.heap[1]=node++,pqdownheap(s,tree,1);while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1],gen_bitlen(s,desc),gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n,curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;for(0===nextlen&&(max_count=138,min_count=3),tree[2*(max_code+1)+1]=65535,n=0;max_code>=n;n++)curlen=nextlen,nextlen=tree[2*(n+1)+1],++count<max_count&&curlen===nextlen||(min_count>count?s.bl_tree[2*curlen]+=count:0!==curlen?(curlen!==prevlen&&s.bl_tree[2*curlen]++,s.bl_tree[2*REP_3_6]++):10>=count?s.bl_tree[2*REPZ_3_10]++:s.bl_tree[2*REPZ_11_138]++,count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen===nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4))}function send_tree(s,tree,max_code){var n,curlen,prevlen=-1,nextlen=tree[1],count=0,max_count=7,min_count=4;for(0===nextlen&&(max_count=138,min_count=3),n=0;max_code>=n;n++)if(curlen=nextlen,nextlen=tree[2*(n+1)+1],!(++count<max_count&&curlen===nextlen)){if(min_count>count){do send_code(s,curlen,s.bl_tree);while(0!==--count)}else 0!==curlen?(curlen!==prevlen&&(send_code(s,curlen,s.bl_tree),count--),send_code(s,REP_3_6,s.bl_tree),send_bits(s,count-3,2)):10>=count?(send_code(s,REPZ_3_10,s.bl_tree),send_bits(s,count-3,3)):(send_code(s,REPZ_11_138,s.bl_tree),send_bits(s,count-11,7));count=0,prevlen=curlen,0===nextlen?(max_count=138,min_count=3):curlen===nextlen?(max_count=6,min_count=3):(max_count=7,min_count=4)}}function build_bl_tree(s){var max_blindex;for(scan_tree(s,s.dyn_ltree,s.l_desc.max_code),scan_tree(s,s.dyn_dtree,s.d_desc.max_code),build_tree(s,s.bl_desc),max_blindex=BL_CODES-1;max_blindex>=3&&0===s.bl_tree[2*bl_order[max_blindex]+1];max_blindex--);return s.opt_len+=3*(max_blindex+1)+5+5+4,max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;for(send_bits(s,lcodes-257,5),send_bits(s,dcodes-1,5),send_bits(s,blcodes-4,4),rank=0;blcodes>rank;rank++)send_bits(s,s.bl_tree[2*bl_order[rank]+1],3);send_tree(s,s.dyn_ltree,lcodes-1),send_tree(s,s.dyn_dtree,dcodes-1)}function detect_data_type(s){var n,black_mask=4093624447;for(n=0;31>=n;n++,black_mask>>>=1)if(1&black_mask&&0!==s.dyn_ltree[2*n])return Z_BINARY;if(0!==s.dyn_ltree[18]||0!==s.dyn_ltree[20]||0!==s.dyn_ltree[26])return Z_TEXT;for(n=32;LITERALS>n;n++)if(0!==s.dyn_ltree[2*n])return Z_TEXT;return Z_BINARY}function _tr_init(s){static_init_done||(tr_static_init(),static_init_done=!0),s.l_desc=new TreeDesc(s.dyn_ltree,static_l_desc),s.d_desc=new TreeDesc(s.dyn_dtree,static_d_desc),s.bl_desc=new TreeDesc(s.bl_tree,static_bl_desc),s.bi_buf=0,s.bi_valid=0,init_block(s)}function _tr_stored_block(s,buf,stored_len,last){send_bits(s,(STORED_BLOCK<<1)+(last?1:0),3),copy_block(s,buf,stored_len,!0)}function _tr_align(s){send_bits(s,STATIC_TREES<<1,3),send_code(s,END_BLOCK,static_ltree),bi_flush(s)}function _tr_flush_block(s,buf,stored_len,last){var opt_lenb,static_lenb,max_blindex=0;s.level>0?(s.strm.data_type===Z_UNKNOWN&&(s.strm.data_type=detect_data_type(s)),build_tree(s,s.l_desc),build_tree(s,s.d_desc),max_blindex=build_bl_tree(s),opt_lenb=s.opt_len+3+7>>>3,static_lenb=s.static_len+3+7>>>3,opt_lenb>=static_lenb&&(opt_lenb=static_lenb)):opt_lenb=static_lenb=stored_len+5,opt_lenb>=stored_len+4&&-1!==buf?_tr_stored_block(s,buf,stored_len,last):s.strategy===Z_FIXED||static_lenb===opt_lenb?(send_bits(s,(STATIC_TREES<<1)+(last?1:0),3),compress_block(s,static_ltree,static_dtree)):(send_bits(s,(DYN_TREES<<1)+(last?1:0),3),send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1),compress_block(s,s.dyn_ltree,s.dyn_dtree)),init_block(s),last&&bi_windup(s)}function _tr_tally(s,dist,lc){return s.pending_buf[s.d_buf+2*s.last_lit]=dist>>>8&255,s.pending_buf[s.d_buf+2*s.last_lit+1]=255&dist,s.pending_buf[s.l_buf+s.last_lit]=255&lc,s.last_lit++,0===dist?s.dyn_ltree[2*lc]++:(s.matches++,dist--,s.dyn_ltree[2*(_length_code[lc]+LITERALS+1)]++,s.dyn_dtree[2*d_code(dist)]++),s.last_lit===s.lit_bufsize-1}var utils=require("../utils/common"),Z_FIXED=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN=2,STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH=3,MAX_MATCH=258,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],DIST_CODE_LEN=512,static_ltree=new Array(2*(L_CODES+2));zero(static_ltree);var static_dtree=new Array(2*D_CODES);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);var static_l_desc,static_d_desc,static_bl_desc,StaticTreeDesc=function(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree,this.extra_bits=extra_bits,this.extra_base=extra_base,this.elems=elems,this.max_length=max_length,this.has_stree=static_tree&&static_tree.length},TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree,this.max_code=0,this.stat_desc=stat_desc},static_init_done=!1;exports._tr_init=_tr_init,exports._tr_stored_block=_tr_stored_block,exports._tr_flush_block=_tr_flush_block,exports._tr_tally=_tr_tally,exports._tr_align=_tr_align},{"../utils/common":151}],161:[function(require,module){"use strict";function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}module.exports=ZStream},{}],162:[function(require,module,exports){(function(Buffer){(function(){var Encoder,Message,Parser,bufeq_fast,clearsign,compute_crc24,crc24_to_base64,crc_table,decode,encode,formatCheckSum,getCheckSum,katch,make_line,strip,trim,uint_to_buffer,verifyCheckSum,_ref;_ref=require("./util"),trim=_ref.trim,strip=_ref.strip,katch=_ref.katch,bufeq_fast=_ref.bufeq_fast,uint_to_buffer=_ref.uint_to_buffer,make_line=function(x){return null==x&&(x=""),""+x+"\n"},exports.Encoder=Encoder=function(){function Encoder(C){this.C=C}return Encoder.prototype.frame=function(t){var dash,i;return dash=function(){var _i,_results;for(_results=[],i=_i=0;5>_i;i=++_i)_results.push("-");return _results}().join(""),{begin:make_line(dash+("BEGIN PGP "+t)+dash),end:make_line(dash+("END PGP "+t)+dash)}},Encoder.prototype.b64e=function(d){var end,i,parts,raw,w;return raw=d.toString("base64"),w=64,parts=function(){var _i,_ref1,_results;for(_results=[],i=_i=0,_ref1=raw.length;w>0?_ref1>_i:_i>_ref1;i=_i+=w)end=Math.min(i+w,raw.length),_results.push(raw.slice(i,end));return _results}(),make_line(parts.join("\n"))},Encoder.prototype.header=function(){var x;return function(){var _i,_len,_ref1,_results;for(_ref1=["Version: "+this.C.header.version,"Comment: "+this.C.header.comment],_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)x=_ref1[_i],_results.push(make_line(x));return _results}.call(this).join("")},Encoder.prototype.encode=function(type,data){var f;return f=this.frame(type),f.begin.concat(this.header(),make_line(),this.b64e(data),formatCheckSum(data),f.end)},Encoder}(),exports.clearsign_header=clearsign=function(C,data,hasher_name){var enc,f;return enc=new Encoder(C),f=enc.frame("SIGNED MESSAGE").begin,f.concat(make_line("Hash: "+hasher_name),make_line(),data)},exports.encode=encode=function(C,type,data){return new Encoder(C).encode(type,data)},crc_table=[0,8801531,25875725,17603062,60024545,51751450,35206124,44007191,128024889,120049090,103502900,112007375,70412248,78916387,95990485,88014382,264588937,256049778,240098180,248108927,207005800,215016595,232553829,224014750,140824496,149062475,166599357,157832774,200747345,191980970,176028764,184266919,520933865,529177874,512099556,503334943,480196360,471432179,487973381,496217854,414011600,405478443,422020573,430033190,457094705,465107658,448029500,439496647,281648992,273666971,289622637,298124950,324696449,333198714,315665548,307683447,392699481,401494690,383961940,375687087,352057528,343782467,359738805,368533838,1041867730,1050668841,1066628831,1058355748,1032471859,1024199112,1006669886,1015471301,968368875,960392720,942864358,951368477,975946762,984451313,1000411399,992435708,836562267,828023200,810956886,818967725,844041146,852051777,868605623,860066380,914189410,922427545,938981743,930215316,904825475,896059e3,878993294,887231349,555053627,563297984,547333942,538569677,579245274,570480673,588005847,596249900,649392898,640860153,658384399,666397428,623318499,631331096,615366894,606833685,785398962,777416777,794487231,802989380,759421523,767923880,751374174,743392165,695319947,704115056,687564934,679289981,719477610,711202705,728272487,737067676,2083735460,2092239711,2109313705,2101337682,2141233477,2133257662,2116711496,2125215923,2073216669,2064943718,2048398224,2057199467,2013339772,2022141063,2039215473,2030942602,1945504045,1936737750,1920785440,1929023707,1885728716,1893966647,1911503553,1902736954,1951893524,1959904495,1977441561,1968902626,2009362165,2000822798,1984871416,1992881923,1665111629,1673124534,1656046400,1647513531,1621913772,1613380695,1629922721,1637935450,1688082292,1679317903,1695859321,1704103554,1728967061,1737211246,1720132760,1711368291,1828378820,1820103743,1836060105,1844855090,1869168165,1877963486,1860430632,1852155859,1801148925,1809650950,1792118e3,1784135691,1757986588,1750004711,1765960209,1774462698,1110107254,1118611597,1134571899,1126595968,1102643863,1094667884,1077139354,1085643617,1166763343,1158490548,1140961346,1149762745,1176011694,1184812885,1200772771,1192499800,1307552511,1298785796,1281720306,1289958153,1316768798,1325007077,1341561107,1332794856,1246636998,1254647613,1271201483,1262662192,1239272743,1230733788,1213667370,1221678289,1562785183,1570797924,1554833554,1546300521,1588974462,1580441477,1597965939,1605978760,1518843046,1510078557,1527603627,1535847760,1494504007,1502748348,1486784330,1478020017,1390639894,1382365165,1399434779,1408230112,1366334967,1375129868,1358579962,1350304769,1430452783,1438955220,1422405410,1414423513,1456544974,1448562741,1465633219,1474135352],compute_crc24=function(input,initval){var crc,index,j,_i,_ref1;for(null==initval&&(initval=11994318),crc=initval,index=0;input.length-index>16;)crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+0))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+1))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+2))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+3))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+4))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+5))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+6))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+7))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+8))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+9))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+10))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+11))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+12))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+13))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+14))],crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index+15))],index+=16;for(j=_i=index,_ref1=input.length;_ref1>=index?_ref1>_i:_i>_ref1;j=_ref1>=index?++_i:--_i)crc=crc<<8^crc_table[255&(crc>>16^input.readUInt8(index++))];return 16777215&crc},getCheckSum=function(data,pad){var ret;return ret=crc24_to_base64(compute_crc24(data),pad)},exports.crc24_to_base64=crc24_to_base64=function(c,pad){return null==pad&&(pad=!0),(pad?"=":"")+uint_to_buffer(32,c).slice(1,4).toString("base64")},formatCheckSum=function(data){return make_line(getCheckSum(data,!0))},verifyCheckSum=function(data,checksum){return getCheckSum(data,!1)===checksum},exports.Message=Message=function(){function Message(_arg){this.body=_arg.body,this.type=_arg.type,this.comment=_arg.comment,this.version=_arg.version,this.pre=_arg.pre,this.post=_arg.post,this.lines=[],this.fields={},this.payload=null}return Message.prototype.unsplit=function(lines){return lines.join("\n")},Message.prototype.raw=function(){return this.unsplit(this.lines)},Message.prototype.finish_unframe=function(_arg){var post,pre;return pre=_arg.pre,post=_arg.post,this.pre=this.unsplit(pre),this.post=this.unsplit(post),null!=this.clearsign?this.clearsign.body=this.unsplit(this.clearsign.lines):void 0},Message.prototype.make_clearsign=function(){return this.clearsign={headers:{},lines:[],body:null}},Message}(),exports.Parser=Parser=function(){function Parser(data){this.init(data)}return Parser.prototype.init=function(data){return this.data=Buffer.isBuffer(data)?data.toString("utf8"):data,this.lines=this.data.split(/\r?\n/),this.checksum=null,this.body=null,this.type=null,this.ret=null,this.last_type=null},Parser.prototype.parse=function(){return this.ret=new Message({}),this.unframe(),this.pop_headers(),this.parse_type(),this.strip_empties_in_footer(),this.trim_lines(),this.find_checksum(),this.read_body(),this.check_checksum(),this.ret},Parser.prototype.parse_type=function(){return this.ret.type=this.ret.fields.type=this.type},Parser.prototype.last_line=function(){return this.payload.slice(-1)[0]},Parser.prototype.mparse=function(){var go,obj,out;for(out=[],go=!0;go;)this.skip(),this.lines.length?(obj=this.parse(),out.push(obj),this.init(obj.post)):go=!1;return out},Parser.prototype.skip=function(){var _results;for(_results=[];this.lines.length&&!this.lines[0].match(/\S+/);)_results.push(this.lines.shift());return _results},Parser.prototype.read_body=function(){var dat;return this.ret.payload=this.payload.join("\n"),dat=this.payload.join(""),this.ret.body=new Buffer(dat,"base64")},Parser.prototype.check_checksum=function(){if(this.ret.fields.checksum=this.checksum,null!=this.checksum&&!verifyCheckSum(this.ret.body,this.checksum))throw new Error("checksum mismatch")},Parser.prototype.pop_headers=function(){var l,m,_results;for(_results=[];this.payload.length;)if(l=this.payload.shift(),m=l.match(/Version: (.*)/))_results.push(this.ret.version=m[1]);else if(null!=(m=l.match(/Comment: (.*)/)))_results.push(this.ret.comment=m[1]);else{if(null==l||0===l.length||l.match(/^\s+$/))break;_results.push(void 0)}return _results},Parser.prototype.strip_empties_in_footer=function(){var _ref1,_results;for(_results=[];null!=(_ref1=this.last_line())?_ref1.match(/^\s*$/):void 0;)_results.push(this.payload.pop());return _results},Parser.prototype.trim_lines=function(){var p;return this.payload=function(){var _i,_len,_ref1,_results;for(_ref1=this.payload,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)p=_ref1[_i],_results.push(trim(p));return _results}.call(this)},Parser.prototype.find_checksum=function(){var l;return null!=(l=this.last_line())&&"="===l[0]?this.checksum=this.payload.pop().slice(1):void 0
},Parser.prototype.v_unframe=function(){return!0},Parser.prototype.unframe=function(){var found_pre,found_pre_clearsign,found_pre_std,go,line,m,payload,post,pre,ret,rxx,rxx_b,rxx_e,stage,type;for(rxx_b=/^(-{5}BEGIN PGP (.*?)-{5}.*$)/,rxx_e=/^(-{5}END PGP (.*?)-{5})(.*)$/m,rxx=rxx_b,payload=[],stage=0,type=null,ret=null,go=!0,pre=[],post=[],found_pre_std=function(l){return pre.push(l)},found_pre_clearsign=function(_this){return function(l){return _this.ret.clearsign.lines.push(l)}}(this),found_pre=found_pre_std;this.lines.length&&go;)switch(line=this.lines.shift(),stage){case-1:if(m=line.match(/^([^:]+): (.*)$/))this.ret.clearsign.headers[m[1].toLowerCase()]=m[2];else{if(!line.match(/^\s*$/))throw new Error("Bad line in clearsign header");stage++,found_pre=found_pre_clearsign}this.ret.lines.push(line);break;case 0:null!=(m=line.match(rxx_b))?(found_pre("",!0),this.ret.lines.push(this.ret.clearsign?line:m[1]),null==this.type&&(this.type=m[2]),this.last_type=m[2],"SIGNED MESSAGE"===m[2]?(stage--,this.ret.make_clearsign()):stage++):(this.ret.clearsign&&this.ret.lines.push(line),found_pre(line,!1));break;case 1:if(m=line.match(rxx_e)){if(this.ret.lines.push(m[1]),m[2]!==this.last_type)throw new Error("type mismatch -- begin "+this.last_type+" w/ end "+m[1]);stage++,post=[m[3]].concat(this.lines),this.lines=[],go=!1}else this.ret.lines.push(line),payload.push(line)}if(0===stage)throw new Error("no header found");if(1===stage)throw new Error("no tailer found");return this.payload=payload,this.ret.finish_unframe({pre:pre,post:post})},Parser}(),exports.decode=decode=function(data){return katch(function(){return new Parser(data).parse()})},exports.mdecode=decode=function(data){return katch(function(){return new Parser(data).mparse()})},exports.compute_crc24=compute_crc24}).call(this)}).call(this,require("buffer").Buffer)},{"./util":165,buffer:80}],163:[function(require,module,exports){(function(){exports.armor=require("./armor"),exports.util=require("./util"),exports.userid=require("./userid")}).call(this)},{"./armor":162,"./userid":164,"./util":165}],164:[function(require,module,exports){(function(){exports.parse=function(input){var components,m,x;return components=null,x=/^([^(<]*?)(?:\s*\((.*?)\))?(?:\s*<(.*?)>)?$/,null!=(m=input.match(x))&&(components={username:m[1],comment:m[2],email:m[3]}),components},exports.format=function(d){var parts,_ref,_ref1,_ref2;return parts=[],(null!=(_ref=d.username)?_ref.length:void 0)&&parts.push(d.username),(null!=(_ref1=d.comment)?_ref1.length:void 0)&&parts.push("("+d.comment+")"),(null!=(_ref2=d.email)?_ref2.length:void 0)&&parts.push("<"+d.email+">"),parts.join(" ")}}).call(this)},{}],165:[function(require,module,exports){(function(Buffer){(function(){var ASP,Canceler,Warnings,assert,assert_no_nulls,asyncify,bufeq_secure,buffer_to_ui8a,bufferify,iced,katch,obj_extract,strip,trim,ui32a_to_ui8a,ui8Ga_to_ui32a,xxd,__iced_k,__iced_k_noop,__slice=[].slice;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},Canceler=require("iced-error").Canceler,assert=require("assert"),exports.uint_to_buffer=function(nbits,i){var ret;switch(ret=null,nbits){case 16:ret=new Buffer(2),ret.writeUInt16BE(i,0);break;case 32:ret=new Buffer(4),ret.writeUInt32BE(i,0);break;case 8:ret=new Buffer(1),ret.writeUInt8(i,0);break;default:throw new Error("Bit types not found: "+nbit)}return ret},exports.ASP=ASP=function(){function ASP(_arg){var canceler,delay,progress_hook;progress_hook=_arg.progress_hook,delay=_arg.delay,canceler=_arg.canceler,this._delay=null!=delay?delay:2,this._canceler=canceler||new Canceler,this._progress_hook=progress_hook||function(){},this._section=null}return ASP.prototype.section=function(s){return this._section=s,this},ASP.prototype.progress=function(o,cb){var err,___iced_passed_deferral,__iced_deferrals,__iced_k;return __iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this._section&&(o.section=this._section),this._progress_hook(o),null==cb?__iced_k():void!function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/pgp-utils/src/util.iced",funcname:"ASP.progress"}),_this.delay(__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0]}}(),lineno:43})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return __iced_k(cb(err))}}(this))},ASP.prototype.delay=function(cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/max/src/keybase/pgp-utils/src/util.iced",funcname:"ASP.delay"}),setTimeout(__iced_deferrals.defer({lineno:47}),_this.delay),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){return cb(_this._canceler.err())}}(this))},ASP.prototype.canceler=function(){return this._canceler},ASP.prototype.progress_hook=function(){return this._progress_hook},ASP.make=function(asp){return asp||new ASP({})},ASP}(),exports.Warnings=Warnings=function(){function Warnings(){this._w=[]}return Warnings.prototype.push=function(){var args,_ref;return args=1<=arguments.length?__slice.call(arguments,0):[],(_ref=this._w).push.apply(_ref,args)},Warnings.prototype.warnings=function(){return this._w},Warnings}(),exports.bufeq_fast=function(x,y){var i,_i,_ref;if(null==x&&null==y)return!0;if(null==x||null==y)return!1;if(x.length!==y.length)return!1;for(i=_i=0,_ref=x.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)if(x.readUInt8(i)!==y.readUInt8(i))return!1;return!0},exports.bufeq_secure=bufeq_secure=function(x,y){var check,i,ret;return ret=function(){var _i,_ref;if(null==x&&null==y)return!0;if(null==x||null==y)return!1;if(x.length!==y.length)return!1;for(check=0,i=_i=0,_ref=x.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)check|=x.readUInt8(i)^y.readUInt8(i);return 0===check}()},exports.streq_secure=function(x,y){var B;return B=function(x){return null!=x?bufferify(x):null},bufeq_secure(B(x),B(y))},exports.bufferify=bufferify=function(s){if(Buffer.isBuffer(s))return s;if("string"==typeof s)return new Buffer(s,"utf8");throw new Error("Cannot convert to buffer: "+s)},exports.katch=katch=function(fn){var e,err,ret;ret=err=null;try{ret=fn()}catch(_error){e=_error,err=e}return[err,ret]},exports.akatch=function(fn,cb){return asyncify(katch(fn),cb)},exports.buffer_to_ui8a=buffer_to_ui8a=function(b){var i,l,ret,_i;for(l=b.length,ret=new Uint8Array(l),i=_i=0;l>=0?l>_i:_i>l;i=l>=0?++_i:--_i)ret[i]=b.readUInt8(i);return ret},exports.ui32a_to_ui8a=ui32a_to_ui8a=function(v,out){var k,w,_i,_len;for(null==out&&(out=null),out||(out=new Uint8Array(4*v.length)),k=0,_i=0,_len=v.length;_len>_i;_i++)w=v[_i],out[k++]=w>>24&255,out[k++]=w>>16&255,out[k++]=w>>8&255,out[k++]=255&w;return out},exports.ui8a_to_ui32a=ui8Ga_to_ui32a=function(v,out){var b,i,k,tmp,_i,_len;for(null==out&&(out=null),out||(out=new Uint32Array(v.length>>2)),k=0,i=_i=0,_len=v.length;_len>_i;i=_i+=4)b=v[i],tmp=(b<<24)+(v[i+1]<<16)+(v[i+2]<<8)+v[i+3],out[k++]=tmp;return out},exports.unix_time=function(){return Math.floor(Date.now()/1e3)},exports.json_stringify_sorted=function(o,opts){var i,json_safe,lb,o2,sort_fn,space_it,spaces,str;return opts=opts||{},sort_fn=opts.sort_fn||null,spaces=opts.spaces||null,lb=null!=opts.spaces?"\n":"","number"==typeof spaces&&(spaces=function(){var _i,_results;for(_results=[],i=_i=0;spaces>=0?spaces>_i:_i>spaces;i=spaces>=0?++_i:--_i)_results.push(" ");return _results}().join("")),space_it=function(depth){return null==spaces?"":"\n"+function(){var _i,_results;for(_results=[],i=_i=0;depth>=0?depth>_i:_i>depth;i=depth>=0?++_i:--_i)_results.push(spaces);return _results}().join("")},json_safe=function(os,depth){var k,keys,s,sp,spp,v;return Array.isArray(os)?s="["+function(){var _i,_len,_results;for(_results=[],_i=0,_len=os.length;_len>_i;_i++)v=os[_i],_results.push(json_safe(v,depth+1));return _results}().join(",")+"]":"object"==typeof os&&os?(sp=space_it(depth),spp=space_it(depth+1),keys=function(){var _results;_results=[];for(k in os)_results.push(k);return _results}(),sort_fn?keys.sort(sort_fn):keys.sort(),s="{"+function(){var _i,_len,_results;for(_results=[],_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],_results.push(spp+JSON.stringify(k)+":"+json_safe(os[k],depth+1));return _results}().join(",")+sp+"}"):s=JSON.stringify(os),s},str=JSON.stringify(o),void 0===str?str:(o2=JSON.parse(str),json_safe(o2,0))},exports.obj_extract=obj_extract=function(o,keys){var k,ret,_i,_len;for(ret={},_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],ret[k]=o[k];return ret},exports.base64u={encode:function(b){return b.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},decode:function(b){return b=(b+Array(5-b.length%4).join("=")).replace(/\-/g,"+").replace(/\_/g,"/"),new Buffer(b,"base64")},verify:function(b){return/^[A-Za-z0-9\-_]+$/.test(b)}},exports.assert_no_nulls=assert_no_nulls=function(v){var e,ok,_i,_len;for(ok=!0,_i=0,_len=v.length;_len>_i;_i++)e=v[_i],null==e&&(ok=!1);return ok?void 0:(console.error("Found 1 or more nulls in vector: "),console.error(v),assert(!1))},exports.athrow=function(err,cb){return cb(err)},exports.asyncify=asyncify=function(args,cb){return cb.apply(null,args)},exports.format_fingerprint=function(raw){var hex,i,parts;return hex=raw.toString("hex").toUpperCase(),parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=hex.length;_ref>_i;i=_i+=4)_results.push(hex.slice(i,i+4));return _results}(),parts.join(" ")},exports.format_pgp_fingerprint_2=function(buf,opts){var hex,i,length,parts,spc;return null==opts&&(opts={}),hex=buf.toString("hex"),length=(null!=opts?opts.length:void 0)||40,spc=(null!=opts?opts.space:void 0)||" ",hex=hex.toUpperCase().slice(-length),40===hex.length?(parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=hex.length;_ref>_i;i=_i+=4)_results.push(hex.slice(i,i+4));return _results}(),parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=parts.length;_ref>_i;i=_i+=5)_results.push(parts.slice(i,i+5).join(spc));return _results}(),parts.join(spc+spc)):hex.length>8?(parts=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=hex.length;_ref>_i;i=_i+=4)_results.push(hex.slice(i,i+4));return _results}(),parts.join(spc)):hex},exports.fingerprint_to_key_id_64=function(fp){return fp.slice(-16)},exports.strip=strip=function(x){return x.split(/\s+/).join("")},exports.trim=trim=function(x){var m;return(m=null!=x?x.match(/^\s+(.*?)$/):void 0)&&(x=m[1]),(m=null!=x?x.match(/^(.*?)\s+$/):void 0)&&(x=m[1]),x},exports.fpeq=function(fp1,fp2){return strip(fp1).toLowerCase()===strip(fp2).toLowerCase()},exports.xxd=xxd=function(buf,opts){var i,line,lines,p,pad,q,quartets,v;return null==opts&&(opts={}),q=opts.q||8,p=opts.p||7,buf=buf.toString("hex"),quartets=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=buf.length;_ref>_i;i=_i+=4)_results.push(buf.slice(i,i+4));return _results}(),lines=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=quartets.length;q>0?_ref>_i:_i>_ref;i=_i+=q)_results.push(quartets.slice(i,i+q).join(" "));return _results}(),pad=function(s,n){return function(){var _i,_ref,_results;for(_results=[],_i=0,_ref=n-s.length;_ref>=0?_ref>_i:_i>_ref;_ref>=0?_i++:_i--)_results.push("0");return _results}().join("")+s},v=function(){var _i,_len,_results;for(_results=[],i=_i=0,_len=lines.length;_len>_i;i=++_i)line=lines[i],_results.push(pad((2*i*q).toString(16),p)+": "+line);return _results}(),v.join("\n")}}).call(this)}).call(this,require("buffer").Buffer)},{assert:75,buffer:80,"iced-error":115,"iced-runtime":118}],166:[function(require,module,exports){(function(Buffer){(function(){var NativeBuffer,PpBuffer,twos_compl_inv;twos_compl_inv=require("./util").twos_compl_inv,NativeBuffer=Buffer,exports.PpBuffer=PpBuffer=function(){function PpBuffer(buf){null==buf?(this._frozen_buf=null,this._sub_buffers=[],this._limits=[],this._sz=1024,this._small_buf_sz=256,this._logsz=10,this._i=0,this._tot=0):this._freeze_to(buf)}return PpBuffer.prototype._nb=function(){return this._sub_buffers.length},PpBuffer.prototype._ab=function(){return this._sub_buffers[this._nb()-1]},PpBuffer.prototype._lib=function(){return 0},PpBuffer.prototype._finish_sub_buffer=function(){return this._limits.push(this._i),this._i=0},PpBuffer.prototype._push_sub_buffer=function(b){return this._sub_buffers.length&&this._finish_sub_buffer(),this._lib=function(){return b.length-this._i},this._sub_buffers.push(b),b},PpBuffer.prototype._make_room=function(){return this._push_sub_buffer(new NativeBuffer(this._sz))},PpBuffer.prototype._make_room_for_n_bytes=function(n){return this._lib()<n?this._make_room():void 0},PpBuffer.prototype.push_uint8=function(b){var n;return n=1,this._make_room_for_n_bytes(n),this._ab().writeUInt8(b,this._i),this._i+=n,this._tot+=n},PpBuffer.prototype.push_int8=function(b){var n;return n=1,this._make_room_for_n_bytes(n),this._ab().writeInt8(b,this._i),this._i+=n,this._tot+=n},PpBuffer.prototype.push_uint16=function(s){var n;return n=2,this._make_room_for_n_bytes(n),this._ab().writeUInt16BE(s,this._i),this._i+=n,this._tot+=n},PpBuffer.prototype.push_uint32=function(w){var n;return n=4,this._make_room_for_n_bytes(n),this._ab().writeUInt32BE(w,this._i),this._i+=n,this._tot+=n},PpBuffer.prototype.push_int16=function(s){var n;return n=2,this._make_room_for_n_bytes(n),this._ab().writeInt16BE(s,this._i),this._i+=n,this._tot+=n},PpBuffer.prototype.push_int32=function(w){var n;return n=4,this._make_room_for_n_bytes(n),this._ab().writeInt32BE(w,this._i),this._i+=n,this._tot+=n},PpBuffer.prototype.push_float64=function(f){var n;return n=8,this._make_room_for_n_bytes(n),this._ab().writeDoubleBE(f,this._i),this._i+=n,this._tot+=n},PpBuffer.prototype.push_float32=function(f){var n;return n=4,this._make_room_for_n_bytes(n),this._ab().writeFloatBE(f,this._i),this._i+=n,this._tot+=n},PpBuffer.prototype.push_raw_bytes=function(s){return this.push_buffer(new NativeBuffer(s,"binary"))},PpBuffer.prototype.prepare_utf8=function(s){return new NativeBuffer(s,"utf8")},PpBuffer.prototype.push_buffer=function(b){var diff,n;return b.length>this._small_buf_sz?(this._push_sub_buffer(b),this._i=b.length,this._tot+=b.length):(n=Math.min(b.length,this._lib()),n>0&&(b.copy(this._ab(),this._i,0,n),this._i+=n,this._tot+=n),n<b.length&&(this._make_room(),b.copy(this._ab(),this._i,n,b.length),diff=b.length-n,this._i+=diff,this._tot+=diff)),this},PpBuffer.prototype.freeze=function(){var b,i,l,lst,_i,_len,_ref;if(null==this._frozen_buf){for(this._finish_sub_buffer(),lst=[],_ref=this._sub_buffers,i=_i=0,_len=_ref.length;_len>_i;i=++_i)b=_ref[i],(l=this._limits[i])===b.length?lst.push(b):l>0&&lst.push(b.slice(0,l));this._sub_buffers=[],this._frozen_buf=NativeBuffer.concat(lst,this._tot)}return this._frozen_buf},PpBuffer.prototype._freeze_to=function(b){return this._frozen_buf=b,this._tot=b.length,this._sub_buffers=[],this._cp=0,this},PpBuffer.prototype.bytes_left=function(){return this._tot-this._cp},PpBuffer.prototype._get=function(i){return i<this._tot?this._frozen_buf.readUInt8(i):0},PpBuffer.prototype.read_uint8=function(){return this._get(this._cp++)},PpBuffer.prototype.read_int8=function(){return twos_compl_inv(this.read_uint8(),8)},PpBuffer.prototype.read_uint16=function(){var ret;return ret=this._frozen_buf.readUInt16BE(this._cp),this._cp+=2,ret},PpBuffer.prototype.read_uint32=function(){var ret;return ret=this._frozen_buf.readUInt32BE(this._cp),this._cp+=4,ret},PpBuffer.prototype.read_int16=function(){var ret;return ret=this._frozen_buf.readInt16BE(this._cp),this._cp+=2,ret},PpBuffer.prototype.read_int32=function(){var ret;return ret=this._frozen_buf.readInt32BE(this._cp),this._cp+=4,ret},PpBuffer.prototype.read_float64=function(){var ret;return ret=this._frozen_buf.readDoubleBE(this._cp),this._cp+=8,ret},PpBuffer.prototype.read_float32=function(){var ret;return ret=this._frozen_buf.readFloatBE(this._cp),this._cp+=4,ret},PpBuffer.prototype.read_buffer=function(n){var bl,e,ret;if(bl=this.bytes_left(),n>bl)throw new Error("Corruption: asked for "+n+" bytes, but only "+bl+" available");return e=this._cp+n,ret=this._frozen_buf.slice(this._cp,e),this._cp=e,ret},PpBuffer.isBuffer=function(b){return NativeBuffer.isBuffer(b)},PpBuffer}()}).call(this)}).call(this,require("buffer").Buffer)},{"./util":172,buffer:80}],167:[function(require,module,exports){(function(){exports.C={"null":192,"false":194,"true":195,bin8:196,bin16:197,bin32:198,ext8:199,ext16:200,ext32:201,"float":202,"double":203,uint8:204,uint16:205,uint32:206,uint64:207,int8:208,int16:209,int32:210,int64:211,fix_ext1:212,fix_ext2:213,fix_ext4:214,fix_ext8:215,fix_ext16:216,str8:217,str16:218,str32:219,array16:220,array32:221,map16:222,map32:223,fix_str_min:160,fix_str_max:191,fix_array_min:144,fix_array_max:159,fix_map_min:128,fix_map_max:143,fix_array_count_mask:15,fix_map_count_mask:15,fix_str_count_mask:31,negative_fix_min:224,negative_fix_max:255,negative_fix_mask:31,negative_fix_offset:32,positive_fix_max:127,rpc_request:0,rpc_response:1,rpc_notify:2}}).call(this)},{}],168:[function(require,module,exports){(function(Buffer){(function(){var C,frame_len,pack,unpack;pack=require("./pack").pack,unpack=require("./unpack").unpack,C=require("./const").C,exports.pack=function(x,opts){var b1,b2;return null==opts&&(opts={}),b2=pack(x,opts),b1=pack(b2.length),Buffer.concat([b1,b2])},exports.frame_len=frame_len=function(c){return c<=C.positive_fix_max?1:c===C.uint8?2:c===C.uint16?3:c===C.uint32?5:0},exports.unpack=function(x,opts){var buf,c,flen,plen,rem,ret;if(null==opts&&(opts={}),x.length<1)throw new Error("need a buffer > 1 bytes");if(c=x.readUInt8(0),flen=frame_len(c),0===flen)throw new Error("no data frame found");if(x.length<flen)throw new Error("not enough bytes to read frame: "+x.length+" < "+flen);if(buf=x.slice(0,flen),plen=unpack(buf),x=x.slice(flen),x.length<plen)throw new Error("not enough bytes to unframe: "+x.length+" < "+plen);return rem=x.slice(plen),x=x.slice(0,plen),ret=unpack(x),[ret,rem]}}).call(this)}).call(this,require("buffer").Buffer)},{"./const":167,"./pack":170,"./unpack":171,buffer:80}],169:[function(require,module,exports){(function(){exports.pack=require("./pack").pack,exports.unpack=require("./unpack").unpack,exports.Buffer=require("./buffer").PpBuffer,exports.frame=require("./frame")}).call(this)},{"./buffer":166,"./frame":168,"./pack":170,"./unpack":171}],170:[function(require,module,exports){(function(){var C,Packer,PpBuffer,U32MAX,is_array,is_int,u64max_minus_i;C=require("./const").C,PpBuffer=require("./buffer").PpBuffer,U32MAX=require("./util").U32MAX,is_array=function(x){return"[object Array]"===Object.prototype.toString.call(x)},is_int=function(f){return Math.floor(f)===f},u64max_minus_i=function(i){var a,b,x,y;return x=Math.floor(i/U32MAX),y=i%U32MAX,a=U32MAX-x-(y>0?1:0),b=0===y?0:U32MAX-y,[a,b]},exports.Packer=Packer=function(){function Packer(_opts){this._opts=null!=_opts?_opts:{},this._buffer=new PpBuffer}return Packer.prototype.output=function(){return this._buffer.freeze()},Packer.prototype.p=function(o){switch(typeof o){case"number":return this.p_number(o);case"string":return this.p_str(o);case"boolean":return this.p_boolean(o);case"undefined":return this.p_null();case"object":if(null==o)return this.p_null();if(is_array(o))return this.p_array(o);if(PpBuffer.isBuffer(o))return this.p_bin(o);if(!this.p_ext(o))return this.p_obj(o)}},Packer.prototype.p_number=function(n){return is_int(n)?n>=0?this.p_positive_int(n):this.p_negative_int(n):this.p_pack_double(n)},Packer.prototype.p_pack_double=function(d){return null!=this._opts.floats?(this.p_uint8(C.float),this._buffer.push_float32(d)):(this.p_uint8(C.double),this._buffer.push_float64(d))},Packer.prototype.p_uint8=function(b){return this._buffer.push_uint8(b)},Packer.prototype.p_uint16=function(s){return this._buffer.push_uint16(s)},Packer.prototype.p_uint32=function(w){return this._buffer.push_uint32(w)},Packer.prototype.p_int8=function(b){return this._buffer.push_int8(b)},Packer.prototype.p_int16=function(s){return this._buffer.push_int16(s)},Packer.prototype.p_int32=function(w){return this._buffer.push_int32(w)},Packer.prototype.p_neg_int64=function(i){var a,abs_i,b,_ref;return abs_i=0-i,_ref=u64max_minus_i(abs_i),a=_ref[0],b=_ref[1],this.p_uint32(a),this.p_uint32(b)},Packer.prototype.p_boolean=function(b){return this.p_uint8(b?C["true"]:C["false"])},Packer.prototype.p_null=function(){return this.p_uint8(C["null"])},Packer.prototype.p_array=function(a){var e,_i,_len,_results;for(this.p_len(a.length,C.fix_array_min,C.fix_array_max,C.array16,C.array32),_results=[],_i=0,_len=a.length;_len>_i;_i++)e=a[_i],_results.push(this.p(e));return _results},Packer.prototype.p_obj=function(o){var k,keys,n,_i,_len,_results;for(keys=Object.keys(o),n=keys.length,this.p_len(n,C.fix_map_min,C.fix_map_max,C.map16,C.map32),this._opts.sort_keys&&keys.sort(),_results=[],_i=0,_len=keys.length;_len>_i;_i++)k=keys[_i],this.p(k),_results.push(this.p(o[k]));return _results},Packer.prototype.p_positive_int=function(i){return 127>=i?this.p_uint8(i):255>=i?(this.p_uint8(C.uint8),this.p_uint8(i)):65535>=i?(this.p_uint8(C.uint16),this.p_uint16(i)):U32MAX>i?(this.p_uint8(C.uint32),this.p_uint32(i)):(this.p_uint8(C.uint64),this.p_uint32(Math.floor(i/U32MAX)),this.p_uint32(i%U32MAX))},Packer.prototype.p_negative_int=function(i){return i>=-32?this.p_int8(i):i>=-128?(this.p_uint8(C.int8),this.p_int8(i)):i>=-32768?(this.p_uint8(C.int16),this.p_int16(i)):i>=-2147483648?(this.p_uint8(C.int32),this.p_int32(i)):(this.p_uint8(C.int64),this.p_neg_int64(i))},Packer.prototype.p_buffer=function(b){return this._buffer.push_buffer(b)},Packer.prototype.p_bin=function(r){return this.p_len(r.length,null,null,C.bin16,C.bin32,C.bin8),this.p_buffer(r)},Packer.prototype.p_str=function(s){var b,str8;return b=this._buffer.prepare_utf8(s),str8=this._opts.no_str8?null:C.str8,this.p_len(b.length,C.fix_str_min,C.fix_str_max,C.str16,C.str32,str8),this.p_buffer(b)},Packer.prototype.p_len=function(l,fixmin,fixmax,m,b,s){return null==s&&(s=null),null!=fixmin&&null!=fixmax&&fixmax-fixmin>=l?this.p_uint8(l|fixmin):null!=s&&255>=l?(this.p_uint8(s),this.p_uint8(l)):65535>=l?(this.p_uint8(m),this.p_uint16(l)):(this.p_uint8(b),this.p_uint32(l))},Packer.prototype.p_ext=function(o){var buf,l,ret,type;if(null==this._opts.ext)return!1;if(ret=this._opts.ext(o)){switch(type=ret[0],buf=ret[1],l=buf.length){case 1:this.p_uint8(C.fix_ext1);break;case 2:this.p_uint8(C.fix_ext2);break;case 4:this.p_uint8(C.fix_ext4);break;case 8:this.p_uint8(C.fix_ext8);break;case 16:this.p_uint8(C.fix_ext16);break;default:255>=l?(this.p_uint8(C.ext8),this.p_uint8(l)):65535>=l?(this.p_uint8(C.ext16),this.p_uint16(l)):(this.p_uint8(C.ext32),this.p_uint32(l))}return this.p_uint8(type),this.p_buffer(buf),!0}return!1},Packer}(),exports.pack=function(x,opts){var packer;return null==opts&&(opts={}),packer=new Packer(opts),packer.p(x),packer.output()}}).call(this)},{"./buffer":166,"./const":167,"./util":172}],171:[function(require,module,exports){(function(){var C,PpBuffer,U32MAX,Unpacker,default_ext,modes,pow2,twos_compl_inv,_ref;C=require("./const").C,PpBuffer=require("./buffer").PpBuffer,_ref=require("./util"),pow2=_ref.pow2,twos_compl_inv=_ref.twos_compl_inv,U32MAX=_ref.U32MAX,modes={NONE:0,BINARY:1,START:2},default_ext=function(type,raw){return{type:type,raw:raw}},exports.Unpacker=Unpacker=function(){function Unpacker(b,_opts){this._opts=null!=_opts?_opts:{},this._buffer=new PpBuffer(b),this._ext=this._opts.ext||(this._opts.no_ext?null:default_ext)}return Unpacker.prototype.u_buf=function(n){return this._buffer.read_buffer(n)},Unpacker.prototype.u_str=function(n){return this.u_buf(n).toString("utf8")},Unpacker.prototype.u_bin=function(n){return this.u_buf(n)},Unpacker.prototype.u_ext=function(n){var buf,typ;if(typ=this.u_uint8(),buf=this.u_buf(n),null!=this._opts.ext)return this._opts.ext(typ,buf);throw new Error("No ext hook but got message type: "+typ)},Unpacker.prototype.u_array=function(n){var i,_i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(this.u());return _results},Unpacker.prototype.u_map=function(n){var i,ret,_i;for(ret={},i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)ret[this.u()]=this.u();return ret},Unpacker.prototype.u_uint8=function(){return this._buffer.read_uint8()},Unpacker.prototype.u_uint16=function(){return this._buffer.read_uint16()},Unpacker.prototype.u_uint32=function(){return this._buffer.read_uint32()},Unpacker.prototype.u_int8=function(){return this._buffer.read_int8()},Unpacker.prototype.u_int16=function(){return this._buffer.read_int16()},Unpacker.prototype.u_int32=function(){return this._buffer.read_int32()},Unpacker.prototype.u_uint64=function(){return this.u_uint32()*U32MAX+this.u_uint32()},Unpacker.prototype.u_double=function(){return this._buffer.read_float64()},Unpacker.prototype.u_float=function(){return this._buffer.read_float32()},Unpacker.prototype.u_int64=function(){var a,b,i,_ref1;return _ref1=function(){var _i,_results;for(_results=[],i=_i=0;2>_i;i=++_i)_results.push(this.u_uint32());return _results}.call(this),a=_ref1[0],b=_ref1[1],U32MAX*(a-U32MAX)+b},Unpacker.prototype.u=function(){var b,l;if((b=this.u_uint8())<=C.positive_fix_max)return b;if(b>=C.negative_fix_min&&b<=C.negative_fix_max)return twos_compl_inv(b,8);if(b>=C.fix_str_min&&b<=C.fix_str_max)return l=b&C.fix_str_count_mask,this.u_str(l);if(b>=C.fix_array_min&&b<=C.fix_array_max)return l=b&C.fix_array_count_mask,this.u_array(l);if(b>=C.fix_map_min&&b<=C.fix_map_max)return l=b&C.fix_map_count_mask,this.u_map(l);switch(b){case C["null"]:return null;case C["true"]:return!0;case C["false"]:return!1;case C.uint8:return this.u_uint8();case C.uint16:return this.u_uint16();case C.uint32:return this.u_uint32();case C.uint64:return this.u_uint64();case C.int8:return this.u_int8();case C.int16:return this.u_int16();case C.int32:return this.u_int32();case C.int64:return this.u_int64();case C.double:return this.u_double();case C.float:return this.u_float();case C.str8:return this.u_str(this.u_uint8());case C.str16:return this.u_str(this.u_uint16());case C.str32:return this.u_str(this.u_uint32());case C.bin8:return this.u_bin(this.u_uint8());case C.bin16:return this.u_bin(this.u_uint16());case C.bin32:return this.u_bin(this.u_uint32());case C.array16:return this.u_array(this.u_uint16());case C.array32:return this.u_array(this.u_uint32());case C.map16:return this.u_map(this.u_uint16());case C.map32:return this.u_map(this.u_uint32());case C.fix_ext1:return this.u_ext(1);case C.fix_ext2:return this.u_ext(2);case C.fix_ext4:return this.u_ext(4);case C.fix_ext8:return this.u_ext(8);case C.fix_ext16:return this.u_ext(16);case C.ext8:return this.u_ext(this.u_uint8());case C.ext16:return this.u_ext(this.u_uint16());case C.ext32:return this.u_ext(this.u_uint32());default:throw new Error("unhandled type "+b)}},Unpacker}(),exports.unpack=function(x,opts){var unpacker;return null==opts&&(opts={}),unpacker=new Unpacker(x,opts),unpacker.u()}}).call(this)},{"./buffer":166,"./const":167,"./util":172}],172:[function(require,module,exports){(function(){var U32MAX,pow2;exports.pow2=pow2=function(n){return 31>n?1<<n:Math.pow(2,n)},exports.U32MAX=U32MAX=pow2(32),exports.rshift=function(b,n){return 31>n?b>>n:Math.floor(b/Math.pow(2,n))},exports.twos_compl=function(x,n){return 0>x?pow2(n)-Math.abs(x):x},exports.twos_compl_inv=function(x,n){return x-pow2(n)}}).call(this)},{}],173:[function(require,module,exports){(function(){var AES,BlockCipher,G,Global,scrub_vec,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};BlockCipher=require("./algbase").BlockCipher,scrub_vec=require("./util").scrub_vec,Global=function(){function Global(){var i;this.SBOX=[],this.INV_SBOX=[],this.SUB_MIX=function(){var _i,_results;for(_results=[],i=_i=0;4>_i;i=++_i)_results.push([]);return _results}(),this.INV_SUB_MIX=function(){var _i,_results;for(_results=[],i=_i=0;4>_i;i=++_i)_results.push([]);return _results}(),this.init(),this.RCON=[0,1,2,4,8,16,32,64,128,27,54]}return Global.prototype.init=function(){var d,i,sx,t,x,x2,x4,x8,xi,_i;for(d=function(){var _i,_results;for(_results=[],i=_i=0;256>_i;i=++_i)_results.push(128>i?i<<1:i<<1^283);return _results}(),x=0,xi=0,i=_i=0;256>_i;i=++_i)sx=xi^xi<<1^xi<<2^xi<<3^xi<<4,sx=sx>>>8^255&sx^99,this.SBOX[x]=sx,this.INV_SBOX[sx]=x,x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx,this.SUB_MIX[0][x]=t<<24|t>>>8,this.SUB_MIX[1][x]=t<<16|t>>>16,this.SUB_MIX[2][x]=t<<8|t>>>24,this.SUB_MIX[3][x]=t,t=16843009*x8^65537*x4^257*x2^16843008*x,this.INV_SUB_MIX[0][sx]=t<<24|t>>>8,this.INV_SUB_MIX[1][sx]=t<<16|t>>>16,this.INV_SUB_MIX[2][sx]=t<<8|t>>>24,this.INV_SUB_MIX[3][sx]=t,0===x?x=xi=1:(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]);return!0},Global}(),G=new Global,AES=function(_super){function AES(key){this._key=key.clone(),this._doReset()}return __extends(AES,_super),AES.blockSize=16,AES.prototype.blockSize=AES.blockSize,AES.keySize=32,AES.prototype.keySize=AES.keySize,AES.ivSize=AES.blockSize,AES.prototype.ivSize=AES.ivSize,AES.prototype._doReset=function(){var invKsRow,keySize,keyWords,ksRow,ksRows,t,_i,_j;for(keyWords=this._key.words,keySize=this._key.sigBytes/4,this._nRounds=keySize+6,ksRows=4*(this._nRounds+1),this._keySchedule=[],ksRow=_i=0;ksRows>=0?ksRows>_i:_i>ksRows;ksRow=ksRows>=0?++_i:--_i)this._keySchedule[ksRow]=keySize>ksRow?keyWords[ksRow]:(t=this._keySchedule[ksRow-1],ksRow%keySize===0?(t=t<<8|t>>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t],t^=G.RCON[ksRow/keySize|0]<<24):keySize>6&&ksRow%keySize===4?t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t]:void 0,this._keySchedule[ksRow-keySize]^t);for(this._invKeySchedule=[],invKsRow=_j=0;ksRows>=0?ksRows>_j:_j>ksRows;invKsRow=ksRows>=0?++_j:--_j)ksRow=ksRows-invKsRow,t=this._keySchedule[ksRow-(invKsRow%4?0:4)],this._invKeySchedule[invKsRow]=4>invKsRow||4>=ksRow?t:G.INV_SUB_MIX[0][G.SBOX[t>>>24]]^G.INV_SUB_MIX[1][G.SBOX[t>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[t>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[255&t]];return!0},AES.prototype.encryptBlock=function(M,offset){return null==offset&&(offset=0),this._doCryptBlock(M,offset,this._keySchedule,G.SUB_MIX,G.SBOX)},AES.prototype.decryptBlock=function(M,offset){var _ref,_ref1;return null==offset&&(offset=0),_ref=[M[offset+3],M[offset+1]],M[offset+1]=_ref[0],M[offset+3]=_ref[1],this._doCryptBlock(M,offset,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX),_ref1=[M[offset+3],M[offset+1]],M[offset+1]=_ref1[0],M[offset+3]=_ref1[1],_ref1},AES.prototype.scrub=function(){return scrub_vec(this._keySchedule),scrub_vec(this._invKeySchedule),this._key.scrub()},AES.prototype._doCryptBlock=function(M,offset,keySchedule,SUB_MIX,SBOX){var ksRow,round,s0,s1,s2,s3,t0,t1,t2,t3,_i,_ref;for(s0=M[offset]^keySchedule[0],s1=M[offset+1]^keySchedule[1],s2=M[offset+2]^keySchedule[2],s3=M[offset+3]^keySchedule[3],ksRow=4,round=_i=1,_ref=this._nRounds;_ref>=1?_ref>_i:_i>_ref;round=_ref>=1?++_i:--_i)t0=SUB_MIX[0][s0>>>24]^SUB_MIX[1][s1>>>16&255]^SUB_MIX[2][s2>>>8&255]^SUB_MIX[3][255&s3]^keySchedule[ksRow++],t1=SUB_MIX[0][s1>>>24]^SUB_MIX[1][s2>>>16&255]^SUB_MIX[2][s3>>>8&255]^SUB_MIX[3][255&s0]^keySchedule[ksRow++],t2=SUB_MIX[0][s2>>>24]^SUB_MIX[1][s3>>>16&255]^SUB_MIX[2][s0>>>8&255]^SUB_MIX[3][255&s1]^keySchedule[ksRow++],t3=SUB_MIX[0][s3>>>24]^SUB_MIX[1][s0>>>16&255]^SUB_MIX[2][s1>>>8&255]^SUB_MIX[3][255&s2]^keySchedule[ksRow++],s0=t0,s1=t1,s2=t2,s3=t3;return t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++],M[offset]=t0,M[offset+1]=t1,M[offset+2]=t2,M[offset+3]=t3
},AES}(BlockCipher),exports.AES=AES}).call(this)},{"./algbase":174,"./util":195}],174:[function(require,module,exports){(function(){var BlockCipher,BufferedBlockAlgorithm,Hasher,StreamCipher,WordArray,util,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,util=require("./util"),BufferedBlockAlgorithm=function(){function BufferedBlockAlgorithm(){this.reset()}return BufferedBlockAlgorithm.prototype._minBufferSize=0,BufferedBlockAlgorithm.prototype.reset=function(){return this._data=new WordArray,this._nDataBytes=0},BufferedBlockAlgorithm.prototype._append=function(data){return this._data.concat(data),this._nDataBytes+=data.sigBytes},BufferedBlockAlgorithm.prototype._process=function(doFlush){var blockSizeBytes,data,dataSigBytes,dataWords,nBlocksReady,nBytesReady,nWordsReady,offset,processedWords,_i,_ref;if(data=this._data,dataWords=data.words,dataSigBytes=data.sigBytes,blockSizeBytes=4*this.blockSize,nBlocksReady=dataSigBytes/blockSizeBytes,nBlocksReady=doFlush?Math.ceil(nBlocksReady):Math.max((0|nBlocksReady)-this._minBufferSize,0),nWordsReady=nBlocksReady*this.blockSize,nBytesReady=Math.min(4*nWordsReady,dataSigBytes),nWordsReady){for(offset=_i=0,_ref=this.blockSize;_ref>0?nWordsReady>_i:_i>nWordsReady;offset=_i+=_ref)this._doProcessBlock(dataWords,offset);processedWords=dataWords.splice(0,nWordsReady),data.sigBytes-=nBytesReady}return new WordArray(processedWords,nBytesReady)},BufferedBlockAlgorithm.prototype.copy_to=function(out){return out._data=this._data.clone(),out._nDataBytes=this._nDataBytes},BufferedBlockAlgorithm.prototype.clone=function(){var obj;return obj=new BufferedBlockAlgorithm,this.copy_to(obj),obj},BufferedBlockAlgorithm}(),Hasher=function(_super){function Hasher(){Hasher.__super__.constructor.call(this)}return __extends(Hasher,_super),Hasher.prototype.reset=function(){return Hasher.__super__.reset.call(this),this._doReset(),this},Hasher.prototype.update=function(messageUpdate){return this._append(messageUpdate),this._process(),this},Hasher.prototype.finalize=function(messageUpdate){return messageUpdate&&this._append(messageUpdate),this._doFinalize()},Hasher.prototype.bufhash=function(input){var out,wa_in,wa_out;return wa_in=WordArray.from_buffer(input),wa_out=this.finalize(wa_in),out=wa_out.to_buffer(),wa_in.scrub(),wa_out.scrub(),out},Hasher}(BufferedBlockAlgorithm),exports.BlockCipher=BlockCipher=function(){function BlockCipher(){}return BlockCipher.prototype.encryptBlock=function(){},BlockCipher}(),StreamCipher=function(){function StreamCipher(){}return StreamCipher.prototype.encryptBlock=function(word_array,dst_offset){var n_words,pad;return null==dst_offset&&(dst_offset=0),pad=this.get_pad(),n_words=Math.min(word_array.words.length-dst_offset,this.bsiw),word_array.xor(pad,{dst_offset:dst_offset,n_words:n_words}),pad.scrub(),this.bsiw},StreamCipher.prototype.encrypt=function(word_array){var i,_i,_ref,_ref1;for(i=_i=0,_ref=word_array.words.length,_ref1=this.bsiw;_ref1>0?_ref>_i:_i>_ref;i=_i+=_ref1)this.encryptBlock(word_array,i);return word_array},StreamCipher.prototype.bulk_encrypt=function(_arg,cb){var async_args,input,progress_hook,slice_args,what;return input=_arg.input,progress_hook=_arg.progress_hook,what=_arg.what,slice_args={update:function(_this){return function(lo,hi){var i,_i,_ref,_results;for(_results=[],i=_i=lo,_ref=_this.bsiw;_ref>0?hi>_i:_i>hi;i=_i+=_ref)_results.push(_this.encryptBlock(input,i));return _results}}(this),finalize:function(){return input},default_n:1024*this.bsiw},async_args={progress_hook:progress_hook,cb:cb,what:what},util.bulk(input.sigBytes,slice_args,async_args)},StreamCipher}(),exports.BlockCipher=BlockCipher,exports.Hasher=Hasher,exports.BufferedBlockAlgorithm=BufferedBlockAlgorithm,exports.StreamCipher=StreamCipher}).call(this)},{"./util":195,"./wordarray":196}],175:[function(require,module,exports){(function(){var CombineBase,Concat,HMAC,SHA3,SHA512,WordArray,XOR,bulk_sign,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./hmac"),HMAC=_ref.HMAC,bulk_sign=_ref.bulk_sign,SHA512=require("./sha512").SHA512,SHA3=require("./sha3").SHA3,WordArray=require("./wordarray").WordArray,CombineBase=function(){function CombineBase(){this.hasherBlockSize=this.hashers[0].hasherBlockSize,this.hasherBlockSizeBytes=4*this.hasherBlockSize,this.reset()}return CombineBase.prototype.reset=function(){var h,_i,_len,_ref1;for(_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],h.reset();return this},CombineBase.prototype.update=function(w){var h,_i,_len,_ref1;for(_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],h.update(w);return this},CombineBase.prototype.scrub=function(){var h,_i,_len,_ref1;for(_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],h.scrub();return this},CombineBase.prototype.finalize=function(w){var h,hashes,out,_i,_len,_ref1;for(hashes=function(){var _i,_len,_ref1,_results;for(_ref1=this.hashers,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],_results.push(h.finalize(w));return _results}.call(this),out=hashes[0],_ref1=hashes.slice(1),_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],this._coalesce(out,h),h.scrub();return out},CombineBase}(),Concat=function(_super){function Concat(key,klasses){var hm,i,klass,subkey,subkeys;null==klasses&&(klasses=[SHA512,SHA3]),subkeys=key.split(klasses.length),this.hashers=function(){var _i,_len,_results;for(_results=[],i=_i=0,_len=klasses.length;_len>_i;i=++_i)klass=klasses[i],subkey=subkeys[i],hm=new HMAC(subkey,klass),subkey.scrub(),_results.push(hm);return _results}(),Concat.__super__.constructor.call(this)}return __extends(Concat,_super),Concat.get_output_size=function(){return SHA512.output_size+SHA3.output_size},Concat.prototype._coalesce=function(out,h){return out.concat(h)},Concat.prototype.get_output_size=function(){var h,tot,_i,_len,_ref1;for(tot=0,_ref1=this.hashers,_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],tot+=h.get_output_size();return tot},Concat.sign=function(_arg){var input,key;return key=_arg.key,input=_arg.input,new Concat(key).finalize(input)},Concat.bulk_sign=function(args,cb){return args.klass=Concat,args.what="HMAC-SHA512-SHA3",bulk_sign(args,cb)},Concat}(CombineBase),XOR=function(_super){function XOR(key,klasses){var klass;null==klasses&&(klasses=[SHA512,SHA3]),this.hashers=function(){var _i,_len,_results;for(_results=[],_i=0,_len=klasses.length;_len>_i;_i++)klass=klasses[_i],_results.push(new HMAC(key,klass));return _results}(),XOR.__super__.constructor.call(this)}return __extends(XOR,_super),XOR.prototype.reset=function(){var h,i,_i,_len,_ref1;for(XOR.__super__.reset.call(this),_ref1=this.hashers,i=_i=0,_len=_ref1.length;_len>_i;i=++_i)h=_ref1[i],h.update(new WordArray([i]));return this},XOR.get_output_size=function(){return Math.max(SHA512.output_size,SHA3.output_size)},XOR.prototype._coalesce=function(out,h){return out.xor(h,{})},XOR.prototype.get_output_size=function(){var h;return Math.max.apply(Math,function(){var _i,_len,_ref1,_results;for(_ref1=this.hashers,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)h=_ref1[_i],_results.push(h.get_output_size());return _results}.call(this))},XOR.sign=function(_arg){var input,key;return key=_arg.key,input=_arg.input,new XOR(key).finalize(input)},XOR.bulk_sign=function(arg,cb){return arg.klass=XOR,arg.what="HMAC-SHA512-XOR-SHA3",bulk_sign(arg,cb)},XOR}(CombineBase),exports.Concat=Concat,exports.XOR=XOR}).call(this)},{"./hmac":180,"./sha3":191,"./sha512":193,"./wordarray":196}],176:[function(require,module,exports){(function(){var Cipher,Counter,StreamCipher,WordArray,bulk_encrypt,encrypt,iced,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},WordArray=require("./wordarray").WordArray,StreamCipher=require("./algbase").StreamCipher,Counter=function(){function Counter(_arg){var i,len,value;value=_arg.value,len=_arg.len,this._value=null!=value?value.clone():(null==len?len=2:void 0,new WordArray(function(){var _i,_results;for(_results=[],i=_i=0;len>=0?len>_i:_i>len;i=len>=0?++_i:--_i)_results.push(0);return _results}()))}return Counter.prototype.WORD_MAX=4294967295,Counter.prototype.inc=function(){var go,i;for(go=!0,i=this._value.words.length-1;go&&i>=0;)++this._value.words[i]>Counter.WORD_MAX?this._value.words[i]=0:go=!1,i--;return this},Counter.prototype.inc_le=function(){var go,i;for(go=!0,i=0;go&&i<this._value.words.length;)++this._value.words[i]>Counter.WORD_MAX?this._value.words[i]=0:go=!1,i++;return this},Counter.prototype.get=function(){return this._value},Counter.prototype.copy=function(){return this._value.clone()},Counter}(),Cipher=function(_super){function Cipher(_arg){if(this.block_cipher=_arg.block_cipher,this.iv=_arg.iv,Cipher.__super__.constructor.call(this),this.bsiw=this.block_cipher.blockSize/4,this.iv.sigBytes!==this.block_cipher.blockSize)throw new Error("IV is wrong length ("+this.iv.sigBytes+")");this.ctr=new Counter({value:this.iv})}return __extends(Cipher,_super),Cipher.prototype.scrub=function(){return this.block_cipher.scrub()},Cipher.prototype.get_pad=function(){var pad;return pad=this.ctr.copy(),this.ctr.inc(),this.block_cipher.encryptBlock(pad.words),pad},Cipher}(StreamCipher),encrypt=function(_arg){var block_cipher,cipher,input,iv,ret;return block_cipher=_arg.block_cipher,iv=_arg.iv,input=_arg.input,cipher=new Cipher({block_cipher:block_cipher,iv:iv}),ret=cipher.encrypt(input),cipher.scrub(),ret},bulk_encrypt=function(_arg,cb){var block_cipher,cipher,input,iv,progress_hook,ret,what,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),block_cipher=_arg.block_cipher,iv=_arg.iv,input=_arg.input,progress_hook=_arg.progress_hook,what=_arg.what,cipher=new Cipher({block_cipher:block_cipher,iv:iv}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/ctr.iced"}),cipher.bulk_encrypt({input:input,progress_hook:progress_hook,what:what},__iced_deferrals.defer({assign_fn:function(){return function(){return ret=arguments[0]}}(),lineno:121})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(ret)}}(this))},exports.Counter=Counter,exports.Cipher=Cipher,exports.encrypt=encrypt,exports.bulk_encrypt=bulk_encrypt}).call(this)},{"./algbase":174,"./wordarray":196,"iced-runtime":118}],177:[function(require,module,exports){(function(){var AES,Base,Concat,Decryptor,SHA512,Salsa20,TwoFish,V,WordArray,ctr,decrypt,iced,make_esc,salsa20,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},WordArray=require("./wordarray").WordArray,salsa20=require("./salsa20"),AES=require("./aes").AES,TwoFish=require("./twofish").TwoFish,ctr=require("./ctr"),Concat=require("./combine").Concat,SHA512=require("./sha512").SHA512,Salsa20=require("./salsa20").Salsa20,_ref=require("./enc"),Base=_ref.Base,V=_ref.V,make_esc=require("iced-error").make_esc,Decryptor=function(_super){function Decryptor(_arg){var enc,key;key=_arg.key,enc=_arg.enc,Decryptor.__super__.constructor.call(this,{key:key}),null!=enc&&(this.key=enc.key,this.derived_keys=enc.derived_keys)}return __extends(Decryptor,_super),Decryptor.prototype.read_header=function(cb){var err,wa;return err=null==(wa=this.ct.unshift(2))?new Error("Ciphertext underrun in header"):null==(this.version=V[wa.words[1]])?new Error("bad header; couldn't find a good version (got "+wa.words[1]+")"):wa.words[0]!==this.version.header[0]?new Error("Bad header: unrecognized magic value"):null,cb(err)},Decryptor.prototype.verify_sig=function(key,cb){var computed,err,received,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){return null==(received=_this.ct.unshift(Concat.get_output_size()/4))?__iced_k(err=new Error("Ciphertext underrun in signature")):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.verify_sig"}),_this.sign({input:_this.ct,key:key,salt:_this.salt},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],computed=arguments[1]}}(),lineno:63})),__iced_deferrals._fulfill()}(function(){return __iced_k(err=null!=err?err:received.equal(computed)?null:new Error("Signature mismatch or bad decryption key"))})}}(this)(function(){return function(){return cb(err)}}(this))},Decryptor.prototype.unshift_iv=function(n_bytes,which,cb){var err,iv;return err=null!=(iv=this.ct.unshift(n_bytes/4))?null:new Error("Ciphertext underrun in "+which),cb(err,iv)},Decryptor.prototype.read_salt=function(cb){var err;return err=null==(this.salt=this.ct.unshift(this.version.salt_size/4))?new Error("Ciphertext underrrun in read_salt"):null,cb(err)},Decryptor.prototype.generate_keys=function(_arg,cb){var err,keys,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.generate_keys"}),_this.kdf({salt:_this.salt,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],keys=arguments[1]}}(),lineno:114})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(err,keys)}}(this))},Decryptor.prototype.run=function(_arg,cb){var ct1,ct2,data,esc,iv,progress_hook,pt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,progress_hook=_arg.progress_hook,esc=make_esc(cb,"Decryptor::run"),this.ct=WordArray.from_buffer(data),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.read_header(esc(__iced_deferrals.defer({lineno:141}))),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.read_salt(esc(__iced_deferrals.defer({lineno:142}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.generate_keys({progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1.keys=arguments[0]}}(_this),lineno:143}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.verify_sig(_this.keys.hmac,esc(__iced_deferrals.defer({lineno:144}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.unshift_iv(AES.ivSize,"AES",esc(__iced_deferrals.defer({assign_fn:function(){return function(){return iv=arguments[0]}}(),lineno:145}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.run_aes({iv:iv,input:_this.ct,key:_this.keys.aes,progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct2=arguments[0]}}(),lineno:146}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.unshift_iv(TwoFish.ivSize,"2fish",esc(__iced_deferrals.defer({assign_fn:function(){return function(){return iv=arguments[0]}}(),lineno:147}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.run_twofish({iv:iv,input:_this.ct,key:_this.keys.twofish,progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct1=arguments[0]}}(),lineno:148}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.unshift_iv(Salsa20.ivSize,"Salsa",esc(__iced_deferrals.defer({assign_fn:function(){return function(){return iv=arguments[0]}}(),lineno:149}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced",funcname:"Decryptor.run"}),_this.run_salsa20({iv:iv,input:_this.ct,key:_this.keys.salsa20,output_iv:!1,progress_hook:progress_hook},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return pt=arguments[0]}}(),lineno:150}))),__iced_deferrals._fulfill()}(function(){return cb(null,pt.to_buffer())})})})})})})})})})}}(this))},Decryptor}(Base),decrypt=function(_arg,cb){var data,dec,err,key,progress_hook,pt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,data=_arg.data,progress_hook=_arg.progress_hook,dec=new Decryptor({key:key}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/dec.iced"}),dec.run({data:data,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],pt=arguments[1]}}(),lineno:168})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return dec.scrub(),cb(err,pt)}}(this))},exports.Decryptor=Decryptor,exports.decrypt=decrypt}).call(this)},{"./aes":173,"./combine":175,"./ctr":176,"./enc":179,"./salsa20":186,"./sha512":193,"./twofish":194,"./wordarray":196,"iced-error":115,"iced-runtime":118}],178:[function(require,module,exports){(function(Buffer){(function(){var ADRBG,DRBG,Lock,WordArray,XOR,hmac,iced,sha3,sha512,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},hmac=require("./hmac"),XOR=require("./combine").XOR,sha512=require("./sha512"),sha3=require("./sha3"),WordArray=require("./wordarray").WordArray,Lock=require("iced-lock").Lock,DRBG=function(){function DRBG(entropy,personalization_string,hmac_func){this.hmac=hmac_func||hmac.sign,this.security_strength=256,entropy=this.check_entropy(entropy),personalization_string||(personalization_string=new WordArray([])),this._instantiate(entropy,personalization_string)}return DRBG.prototype.check_entropy=function(entropy,reseed){if(null==reseed&&(reseed=!1),8*entropy.sigBytes*2<(reseed?2:3)*this.security_strength)throw new Error("entropy must be at least "+1.5*this.security_strength+" bits.");return entropy},DRBG.prototype._hmac=function(key,input){return this.hmac({key:key,input:input})},DRBG.prototype._update=function(provided_data){var V,V_in;return V=new WordArray([0],1),null!=provided_data&&(V=V.concat(provided_data)),V_in=this.V.clone().concat(V),this.K=this._hmac(this.K,V_in),V_in.scrub(),V.scrub(),this.V=this._hmac(this.K,this.V),null!=provided_data&&(V_in=this.V.clone().concat(new WordArray([1<<24],1)).concat(provided_data),this.K=this._hmac(this.K,V_in),V_in.scrub(),this.V=this._hmac(this.K,this.V)),null!=provided_data?provided_data.scrub():void 0},DRBG.prototype._instantiate=function(entropy,personalization_string){var i,n,seed_material;return seed_material=entropy.concat(personalization_string),n=64,this.K=WordArray.from_buffer(new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(0);return _results}())),this.V=WordArray.from_buffer(new Buffer(function(){var _i,_results;for(_results=[],i=_i=0;n>=0?n>_i:_i>n;i=n>=0?++_i:--_i)_results.push(1);return _results}())),this._update(seed_material),entropy.scrub(),this.reseed_counter=1},DRBG.prototype.reseed=function(entropy){return this._update(this.check_entropy(entropy,!0)),this.reseed_counter=1},DRBG.prototype.generate=function(num_bytes){var i,tmp,_ref;if(8*num_bytes>7500)throw new Error("generate cannot generate > 7500 bits in 1 call.");if(this.reseed_counter>=1e4)throw new Error("Need a reseed!");for(tmp=[],i=0;0===tmp.length||tmp.length*tmp[0].length*4<num_bytes;)this.V=this._hmac(this.K,this.V),tmp.push(this.V.words);return this._update(),this.reseed_counter+=1,new WordArray((_ref=[]).concat.apply(_ref,tmp)).truncate(num_bytes)},DRBG}(),ADRBG=function(){function ADRBG(gen_seed,hmac){this.gen_seed=gen_seed,this.hmac=hmac,this.drbg=null,this.lock=new Lock}return ADRBG.prototype.generate=function(n,cb){var ret,seed,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/drbg.iced",funcname:"ADRBG.generate"}),_this.lock.acquire(__iced_deferrals.defer({lineno:148})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){!function(__iced_k){return null!=_this.drbg?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/drbg.iced",funcname:"ADRBG.generate"}),_this.gen_seed(256,__iced_deferrals.defer({assign_fn:function(){return function(){return seed=arguments[0]}}(),lineno:150})),__iced_deferrals._fulfill()}(function(){return __iced_k(_this.drbg=new DRBG(seed,null,_this.hmac))})}(function(){!function(__iced_k){return _this.drbg.reseed_counter>100?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/drbg.iced",funcname:"ADRBG.generate"}),_this.gen_seed(256,__iced_deferrals.defer({assign_fn:function(){return function(){return seed=arguments[0]}}(),lineno:153})),__iced_deferrals._fulfill()}(function(){return __iced_k(_this.drbg.reseed(seed))}):__iced_k()}(function(){return ret=_this.drbg.generate(n),_this.lock.release(),cb(ret)})})}}(this))},ADRBG}(),exports.DRBG=DRBG,exports.ADRBG=ADRBG}).call(this)}).call(this,require("buffer").Buffer)},{"./combine":175,"./hmac":180,"./sha3":191,"./sha512":193,"./wordarray":196,buffer:80,"iced-lock":197,"iced-runtime":118}],179:[function(require,module,exports){(function(){var AES,Base,CURRENT_VERSION,Concat,Encryptor,HMAC_SHA256,PBKDF2,SHA512,Scrypt,TwoFish,V,WordArray,XOR,ctr,encrypt,iced,make_esc,prng,salsa20,util,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},WordArray=require("./wordarray").WordArray,salsa20=require("./salsa20"),AES=require("./aes").AES,TwoFish=require("./twofish").TwoFish,ctr=require("./ctr"),_ref=require("./combine"),XOR=_ref.XOR,Concat=_ref.Concat,SHA512=require("./sha512").SHA512,PBKDF2=require("./pbkdf2").PBKDF2,Scrypt=require("./scrypt").Scrypt,util=require("./util"),prng=require("./prng"),make_esc=require("iced-error").make_esc,HMAC_SHA256=require("./hmac").HMAC_SHA256,V={1:{header:[479516638,1],salt_size:8,xsalsa20_rev:!0,kdf:{klass:PBKDF2,opts:{c:1024,klass:XOR}},hmac_key_size:96},2:{header:[479516638,2],salt_size:16,xsalsa20_rev:!0,kdf:{klass:Scrypt,opts:{c:64,klass:XOR,N:12,r:8,p:1}},hmac_key_size:96},3:{header:[479516638,3],salt_size:16,xsalsa20_rev:!1,kdf:{klass:Scrypt,opts:{c:1,klass:HMAC_SHA256,N:15,r:8,p:1}},hmac_key_size:96}},exports.CURRENT_VERSION=CURRENT_VERSION=3,Base=function(){function Base(_arg){var key,version;if(key=_arg.key,version=_arg.version,this.version=V[null!=version?version:CURRENT_VERSION],null==this.version)throw new Error("unknown version: "+version);this.set_key(key),this.derived_keys={}}return Base.prototype.kdf=function(_arg,cb){var args,dkLen,end,extra_keymaterial,i,k,key,keys,len,lens,order,progress_hook,raw,salt,salt_hex,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),salt=_arg.salt,extra_keymaterial=_arg.extra_keymaterial,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),_this._check_scrubbed(_this.key,"in KDF",cb,__iced_deferrals.defer({lineno:94})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){salt_hex=salt.to_hex(),key=_this.key.clone(),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),_this._check_scrubbed(key,"KDF",cb,__iced_deferrals.defer({lineno:102})),__iced_deferrals._fulfill()}(function(){!function(__iced_k){if(null!=(keys=_this.derived_keys[salt_hex]))return __iced_k();_this._kdf=new _this.version.kdf.klass(_this.version.kdf.opts),lens={hmac:_this.version.hmac_key_size,aes:AES.keySize,twofish:TwoFish.keySize,salsa20:salsa20.Salsa20.keySize},order=["hmac","aes","twofish","salsa20"],dkLen=extra_keymaterial||0;for(k in lens)v=lens[k],dkLen+=v;args={dkLen:dkLen,key:key,progress_hook:progress_hook,salt:salt},function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.kdf"}),_this._kdf.run(args,__iced_deferrals.defer({assign_fn:function(){return function(){return raw=arguments[0]}}(),lineno:121})),__iced_deferrals._fulfill()}(function(){var _i,_len;for(keys={},i=0,_i=0,_len=order.length;_len>_i;_i++)k=order[_i],v=lens[k],len=v/4,end=i+len,keys[k]=new WordArray(raw.words.slice(i,end)),i=end;return keys.extra=new WordArray(raw.words.slice(end)).to_buffer(),__iced_k(_this.derived_keys[salt_hex]=keys)})}(function(){return cb(null,keys)})})}}(this))},Base.prototype.set_key=function(key){var wakey;return null==key?this.scrub():(wakey=WordArray.from_buffer(key),this.key&&this.key.equal(wakey)?void 0:(this.scrub(),this.key=wakey))},Base.prototype._check_scrubbed=function(key,where,ecb,okcb){return null==key||key.is_scrubbed()?ecb(new Error(""+where+": Failed due to scrubbed key!"),null):okcb()},Base.prototype.sign=function(_arg,cb){var input,key,out,progress_hook,salt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,salt=_arg.salt,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.sign"}),_this._check_scrubbed(key,"HMAC",cb,__iced_deferrals.defer({lineno:179})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){input=new WordArray(_this.version.header).concat(salt).concat(input),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.sign"}),Concat.bulk_sign({key:key,input:input,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return out=arguments[0]}}(),lineno:181})),__iced_deferrals._fulfill()}(function(){return input.scrub(),cb(null,out)})}}(this))},Base.prototype.run_salsa20=function(_arg,cb){var args,ct,input,iv,key,output_iv,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,iv=_arg.iv,output_iv=_arg.output_iv,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_salsa20"}),_this._check_scrubbed(key,"Salsa20",cb,__iced_deferrals.defer({lineno:197})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){args={input:input,progress_hook:progress_hook,key:key,iv:iv},_this.version.xsalsa20_rev&&(args.key=key.clone().endian_reverse(),args.iv=iv.clone().endian_reverse()),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_salsa20"}),salsa20.bulk_encrypt(args,__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:209})),__iced_deferrals._fulfill()}(function(){return output_iv&&(ct=iv.clone().concat(ct)),_this.version.xsalsa20_rev&&(args.key.scrub(),args.iv.scrub()),cb(null,ct)})}}(this))},Base.prototype.run_twofish=function(_arg,cb){var block_cipher,ct,input,iv,key,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,iv=_arg.iv,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_twofish"}),_this._check_scrubbed(key,"TwoFish",cb,__iced_deferrals.defer({lineno:232})),__iced_deferrals._fulfill()}}(this)(function(){return function(){block_cipher=new TwoFish(key),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_twofish"}),ctr.bulk_encrypt({block_cipher:block_cipher,iv:iv,input:input,progress_hook:progress_hook,what:"twofish"},__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:234})),__iced_deferrals._fulfill()}(function(){return block_cipher.scrub(),cb(null,iv.clone().concat(ct))})}}(this))},Base.prototype.run_aes=function(_arg,cb){var block_cipher,ct,input,iv,key,progress_hook,___iced_passed_deferral,__iced_deferrals,__iced_k;
__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),input=_arg.input,key=_arg.key,iv=_arg.iv,progress_hook=_arg.progress_hook,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_aes"}),_this._check_scrubbed(key,"AES",cb,__iced_deferrals.defer({lineno:249})),__iced_deferrals._fulfill()}}(this)(function(){return function(){block_cipher=new AES(key),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Base.run_aes"}),ctr.bulk_encrypt({block_cipher:block_cipher,iv:iv,input:input,progress_hook:progress_hook,what:"aes"},__iced_deferrals.defer({assign_fn:function(){return function(){return ct=arguments[0]}}(),lineno:251})),__iced_deferrals._fulfill()}(function(){return block_cipher.scrub(),cb(null,iv.clone().concat(ct))})}}(this))},Base.prototype.scrub=function(){var key,key_ring,salt,_i,_len,_ref1;if(null!=this.key&&this.key.scrub(),null!=this.derived_keys){_ref1=this.derived_keys;for(salt in _ref1)for(key_ring=_ref1[salt],_i=0,_len=key_ring.length;_len>_i;_i++)key=key_ring[_i],key.scrub()}return this.derived_keys={},null!=this.salt&&this.salt.scrub(),this.salt=null,this.key=null},Base}(),Encryptor=function(_super){function Encryptor(_arg){var key,rng,version;key=_arg.key,rng=_arg.rng,version=_arg.version,Encryptor.__super__.constructor.call(this,{key:key,version:version}),this.rng=rng||prng.generate}return __extends(Encryptor,_super),Encryptor.prototype.pick_random_ivs=function(_arg,cb){var iv_lens,ivs,k,progress_hook,v,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),progress_hook=_arg.progress_hook,iv_lens={aes:AES.ivSize,twofish:TwoFish.ivSize,salsa20:salsa20.Salsa20.ivSize},ivs={},function(_this){return function(__iced_k){var _i,_k,_keys,_ref1,_results,_while;_ref1=iv_lens,_keys=function(){var _results1;_results1=[];for(_k in _ref1)_results1.push(_k);return _results1}(),_i=0,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return++_i,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_i<_keys.length?(k=_keys[_i],v=_ref1[k],function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.pick_random_ivs"}),_this.rng(v,__iced_deferrals.defer({assign_fn:function(__slot_1,__slot_2){return function(){return __slot_1[__slot_2]=arguments[0]}}(ivs,k),lineno:353})),__iced_deferrals._fulfill()}(_next),void 0):_break()})(__iced_k)}}(this)(function(){return function(){return cb(ivs)}}(this))},Encryptor.prototype.resalt=function(_arg,cb){var err,extra_keymaterial,progress_hook,salt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),salt=_arg.salt,extra_keymaterial=_arg.extra_keymaterial,progress_hook=_arg.progress_hook,err=null,function(_this){return function(__iced_k){return null!=salt?__iced_k(salt.length!==_this.version.salt_size?err=new Error("Need a salt of exactly "+_this.version.salt_size+" bytes (got "+salt.length+")"):_this.salt=WordArray.alloc(salt)):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.resalt"}),_this.rng(_this.version.salt_size,__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return __slot_1.salt=arguments[0]}}(_this),lineno:369})),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){!function(__iced_k){return null!=err?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.resalt"}),_this.kdf({extra_keymaterial:extra_keymaterial,progress_hook:progress_hook,salt:_this.salt},__iced_deferrals.defer({assign_fn:function(__slot_1){return function(){return err=arguments[0],__slot_1.keys=arguments[1]}}(_this),lineno:375})),__iced_deferrals._fulfill()}(__iced_k)}(function(){return cb(err,_this.keys)})}}(this))},Encryptor.prototype.run=function(_arg,cb){var ct1,ct2,ct3,data,esc,extra_keymaterial,ivs,progress_hook,pt,ret,salt,sig,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),data=_arg.data,salt=_arg.salt,extra_keymaterial=_arg.extra_keymaterial,progress_hook=_arg.progress_hook,esc=make_esc(cb,"Encryptor::run"),function(_this){return function(__iced_k){return null==salt&&null!=_this.salt?__iced_k():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.resalt({salt:salt,extra_keymaterial:extra_keymaterial,progress_hook:progress_hook},esc(__iced_deferrals.defer({lineno:406}))),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(_this){return function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.pick_random_ivs({progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return ivs=arguments[0]}}(),lineno:407})),__iced_deferrals._fulfill()}(function(){pt=WordArray.from_buffer(data),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.run_salsa20({input:pt,key:_this.keys.salsa20,progress_hook:progress_hook,iv:ivs.salsa20,output_iv:!0},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct1=arguments[0]}}(),lineno:409}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.run_twofish({input:ct1,key:_this.keys.twofish,progress_hook:progress_hook,iv:ivs.twofish},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct2=arguments[0]}}(),lineno:410}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.run_aes({input:ct2,key:_this.keys.aes,progress_hook:progress_hook,iv:ivs.aes},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return ct3=arguments[0]}}(),lineno:411}))),__iced_deferrals._fulfill()}(function(){!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced",funcname:"Encryptor.run"}),_this.sign({input:ct3,key:_this.keys.hmac,progress_hook:progress_hook,salt:_this.salt},esc(__iced_deferrals.defer({assign_fn:function(){return function(){return sig=arguments[0]}}(),lineno:412}))),__iced_deferrals._fulfill()}(function(){return ret=new WordArray(_this.version.header).concat(_this.salt).concat(sig).concat(ct3).to_buffer(),util.scrub_buffer(data),cb(null,ret)})})})})})}}(this))},Encryptor}(Base),encrypt=function(_arg,cb){var data,enc,err,key,progress_hook,ret,rng,version,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,data=_arg.data,rng=_arg.rng,progress_hook=_arg.progress_hook,version=_arg.version,enc=new Encryptor({key:key,rng:rng,version:version}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/enc.iced"}),enc.run({data:data,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return err=arguments[0],ret=arguments[1]}}(),lineno:440})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return enc.scrub(),cb(err,ret)}}(this))},exports.V=V,exports.encrypt=encrypt,exports.Base=Base,exports.Encryptor=Encryptor}).call(this)},{"./aes":173,"./combine":175,"./ctr":176,"./hmac":180,"./pbkdf2":183,"./prng":184,"./salsa20":186,"./scrypt":187,"./sha512":193,"./twofish":194,"./util":195,"./wordarray":196,"iced-error":115,"iced-runtime":118}],180:[function(require,module,exports){(function(){var HMAC,HMAC_SHA256,SHA256,SHA512,bulk_sign,iced,sign,util,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},SHA512=require("./sha512").SHA512,SHA256=require("./sha256").SHA256,util=require("./util"),HMAC=function(){function HMAC(key,klass){var i,_i,_ref;for(null==klass&&(klass=SHA512),this.key=key.clone(),this.hasher=new klass,this.hasherBlockSize=this.hasher.blockSize,this.hasherBlockSizeBytes=4*this.hasherBlockSize,this.key.sigBytes>this.hasherBlockSizeBytes&&(this.key=this.hasher.finalize(this.key)),this.key.clamp(),this._oKey=this.key.clone(),this._iKey=this.key.clone(),i=_i=0,_ref=this.hasherBlockSize;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)this._oKey.words[i]^=1549556828,this._iKey.words[i]^=909522486;this._oKey.sigBytes=this._iKey.sigBytes=this.hasherBlockSizeBytes,this.reset()}return HMAC.outputSize=64,HMAC.prototype.outputSize=HMAC.outputSize,HMAC.prototype.get_output_size=function(){return this.hasher.output_size},HMAC.prototype.reset=function(){return this.hasher.reset().update(this._iKey)},HMAC.prototype.update=function(wa){return this.hasher.update(wa),this},HMAC.prototype.finalize=function(wa){var innerHash,innerHash2,out;return innerHash=this.hasher.finalize(wa),this.hasher.reset(),innerHash2=this._oKey.clone().concat(innerHash),out=this.hasher.finalize(innerHash2),innerHash.scrub(),innerHash2.scrub(),out},HMAC.prototype.scrub=function(){return this.key.scrub(),this._iKey.scrub(),this._oKey.scrub()},HMAC}(),sign=function(_arg){var eng,hash_class,input,key,out;return key=_arg.key,input=_arg.input,hash_class=_arg.hash_class,eng=new HMAC(key,hash_class),out=eng.finalize(input.clamp()),eng.scrub(),out},bulk_sign=function(_arg,cb){var eng,input,key,klass,progress_hook,res,slice_args,what,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,input=_arg.input,progress_hook=_arg.progress_hook,klass=_arg.klass,what=_arg.what,klass||(klass=HMAC),what||(what="hmac_sha512"),eng=new klass(key),input.clamp(),slice_args={update:function(lo,hi){return eng.update(input.slice(lo,hi))},finalize:function(){return eng.finalize()},default_n:1e3*eng.hasherBlockSize},function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/hmac.iced"}),util.bulk(input.sigBytes,slice_args,{what:what,progress_hook:progress_hook,cb:__iced_deferrals.defer({assign_fn:function(){return function(){return res=arguments[0]}}(),lineno:137})}),__iced_deferrals._fulfill()}}(this)(function(){return function(){return eng.scrub(),cb(res)}}(this))},exports.HMAC_SHA256=HMAC_SHA256=function(_super){function HMAC_SHA256(key){HMAC_SHA256.__super__.constructor.call(this,key,SHA256)}return __extends(HMAC_SHA256,_super),HMAC_SHA256}(HMAC),exports.HMAC=HMAC,exports.sign=sign,exports.bulk_sign=bulk_sign}).call(this)},{"./sha256":190,"./sha512":193,"./util":195,"iced-runtime":118}],181:[function(require,module,exports){(function(Buffer){(function(){var hmac,k,v,_ref,_ref1;_ref=require("./enc");for(k in _ref)v=_ref[k],exports[k]=v;_ref1=require("./dec");for(k in _ref1)v=_ref1[k],exports[k]=v;exports.prng=require("./prng"),exports.Buffer=Buffer,exports.WordArray=require("./wordarray").WordArray,exports.util=require("./util"),exports.ciphers={AES:require("./aes").AES,TwoFish:require("./twofish").TwoFish,Salsa20:require("./salsa20").Salsa20},exports.hash={SHA1:require("./sha1").SHA1,SHA224:require("./sha224").SHA224,SHA256:require("./sha256").SHA256,SHA384:require("./sha384").SHA384,SHA512:require("./sha512").SHA512,SHA3:require("./sha3").SHA3,MD5:require("./md5").MD5,RIPEMD160:require("./ripemd160").RIPEMD160},exports.modes={CTR:require("./ctr")},exports.scrypt=require("./scrypt").scrypt,exports.pbkdf2=require("./pbkdf2").pbkdf2,exports.hmac=hmac=require("./hmac"),exports.HMAC_SHA256=hmac.HMAC_SHA256,exports.HMAC=hmac.HMAC}).call(this)}).call(this,require("buffer").Buffer)},{"./aes":173,"./ctr":176,"./dec":177,"./enc":179,"./hmac":180,"./md5":182,"./pbkdf2":183,"./prng":184,"./ripemd160":185,"./salsa20":186,"./scrypt":187,"./sha1":188,"./sha224":189,"./sha256":190,"./sha3":191,"./sha384":192,"./sha512":193,"./twofish":194,"./util":195,"./wordarray":196,buffer:80}],182:[function(require,module,exports){(function(){var FF,GG,Global,HH,Hasher,II,MD5,WordArray,glbl,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){var i;this.T=function(){var _i,_results;for(_results=[],i=_i=0;64>_i;i=++_i)_results.push(4294967296*Math.abs(Math.sin(i+1))|0);return _results}()}return Global}(),glbl=new Global,exports.MD5=MD5=function(_super){function MD5(){return MD5.__super__.constructor.apply(this,arguments)}return __extends(MD5,_super),MD5.blockSize=16,MD5.prototype.blockSize=MD5.blockSize,MD5.output_size=16,MD5.prototype.output_size=MD5.output_size,MD5.prototype._doReset=function(){return this._hash=new WordArray([1732584193,4023233417,2562383102,271733878])},MD5.prototype._doProcessBlock=function(M,offset){var H,M_offset_0,M_offset_1,M_offset_10,M_offset_11,M_offset_12,M_offset_13,M_offset_14,M_offset_15,M_offset_2,M_offset_3,M_offset_4,M_offset_5,M_offset_6,M_offset_7,M_offset_8,M_offset_9,M_offset_i,a,b,c,d,i,offset_i,_i;for(i=_i=0;16>_i;i=++_i)offset_i=offset+i,M_offset_i=M[offset_i],M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8);return H=this._hash.words,M_offset_0=M[offset+0],M_offset_1=M[offset+1],M_offset_2=M[offset+2],M_offset_3=M[offset+3],M_offset_4=M[offset+4],M_offset_5=M[offset+5],M_offset_6=M[offset+6],M_offset_7=M[offset+7],M_offset_8=M[offset+8],M_offset_9=M[offset+9],M_offset_10=M[offset+10],M_offset_11=M[offset+11],M_offset_12=M[offset+12],M_offset_13=M[offset+13],M_offset_14=M[offset+14],M_offset_15=M[offset+15],a=H[0],b=H[1],c=H[2],d=H[3],a=FF(a,b,c,d,M_offset_0,7,glbl.T[0]),d=FF(d,a,b,c,M_offset_1,12,glbl.T[1]),c=FF(c,d,a,b,M_offset_2,17,glbl.T[2]),b=FF(b,c,d,a,M_offset_3,22,glbl.T[3]),a=FF(a,b,c,d,M_offset_4,7,glbl.T[4]),d=FF(d,a,b,c,M_offset_5,12,glbl.T[5]),c=FF(c,d,a,b,M_offset_6,17,glbl.T[6]),b=FF(b,c,d,a,M_offset_7,22,glbl.T[7]),a=FF(a,b,c,d,M_offset_8,7,glbl.T[8]),d=FF(d,a,b,c,M_offset_9,12,glbl.T[9]),c=FF(c,d,a,b,M_offset_10,17,glbl.T[10]),b=FF(b,c,d,a,M_offset_11,22,glbl.T[11]),a=FF(a,b,c,d,M_offset_12,7,glbl.T[12]),d=FF(d,a,b,c,M_offset_13,12,glbl.T[13]),c=FF(c,d,a,b,M_offset_14,17,glbl.T[14]),b=FF(b,c,d,a,M_offset_15,22,glbl.T[15]),a=GG(a,b,c,d,M_offset_1,5,glbl.T[16]),d=GG(d,a,b,c,M_offset_6,9,glbl.T[17]),c=GG(c,d,a,b,M_offset_11,14,glbl.T[18]),b=GG(b,c,d,a,M_offset_0,20,glbl.T[19]),a=GG(a,b,c,d,M_offset_5,5,glbl.T[20]),d=GG(d,a,b,c,M_offset_10,9,glbl.T[21]),c=GG(c,d,a,b,M_offset_15,14,glbl.T[22]),b=GG(b,c,d,a,M_offset_4,20,glbl.T[23]),a=GG(a,b,c,d,M_offset_9,5,glbl.T[24]),d=GG(d,a,b,c,M_offset_14,9,glbl.T[25]),c=GG(c,d,a,b,M_offset_3,14,glbl.T[26]),b=GG(b,c,d,a,M_offset_8,20,glbl.T[27]),a=GG(a,b,c,d,M_offset_13,5,glbl.T[28]),d=GG(d,a,b,c,M_offset_2,9,glbl.T[29]),c=GG(c,d,a,b,M_offset_7,14,glbl.T[30]),b=GG(b,c,d,a,M_offset_12,20,glbl.T[31]),a=HH(a,b,c,d,M_offset_5,4,glbl.T[32]),d=HH(d,a,b,c,M_offset_8,11,glbl.T[33]),c=HH(c,d,a,b,M_offset_11,16,glbl.T[34]),b=HH(b,c,d,a,M_offset_14,23,glbl.T[35]),a=HH(a,b,c,d,M_offset_1,4,glbl.T[36]),d=HH(d,a,b,c,M_offset_4,11,glbl.T[37]),c=HH(c,d,a,b,M_offset_7,16,glbl.T[38]),b=HH(b,c,d,a,M_offset_10,23,glbl.T[39]),a=HH(a,b,c,d,M_offset_13,4,glbl.T[40]),d=HH(d,a,b,c,M_offset_0,11,glbl.T[41]),c=HH(c,d,a,b,M_offset_3,16,glbl.T[42]),b=HH(b,c,d,a,M_offset_6,23,glbl.T[43]),a=HH(a,b,c,d,M_offset_9,4,glbl.T[44]),d=HH(d,a,b,c,M_offset_12,11,glbl.T[45]),c=HH(c,d,a,b,M_offset_15,16,glbl.T[46]),b=HH(b,c,d,a,M_offset_2,23,glbl.T[47]),a=II(a,b,c,d,M_offset_0,6,glbl.T[48]),d=II(d,a,b,c,M_offset_7,10,glbl.T[49]),c=II(c,d,a,b,M_offset_14,15,glbl.T[50]),b=II(b,c,d,a,M_offset_5,21,glbl.T[51]),a=II(a,b,c,d,M_offset_12,6,glbl.T[52]),d=II(d,a,b,c,M_offset_3,10,glbl.T[53]),c=II(c,d,a,b,M_offset_10,15,glbl.T[54]),b=II(b,c,d,a,M_offset_1,21,glbl.T[55]),a=II(a,b,c,d,M_offset_8,6,glbl.T[56]),d=II(d,a,b,c,M_offset_15,10,glbl.T[57]),c=II(c,d,a,b,M_offset_6,15,glbl.T[58]),b=II(b,c,d,a,M_offset_13,21,glbl.T[59]),a=II(a,b,c,d,M_offset_4,6,glbl.T[60]),d=II(d,a,b,c,M_offset_11,10,glbl.T[61]),c=II(c,d,a,b,M_offset_2,15,glbl.T[62]),b=II(b,c,d,a,M_offset_9,21,glbl.T[63]),H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0},MD5.prototype._doFinalize=function(){var H,H_i,data,dataWords,hash,i,nBitsLeft,nBitsTotal,nBitsTotalH,nBitsTotalL,_i;for(data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,nBitsTotalH=Math.floor(nBitsTotal/4294967296),nBitsTotalL=nBitsTotal,dataWords[(nBitsLeft+64>>>9<<4)+15]=16711935&(nBitsTotalH<<8|nBitsTotalH>>>24)|4278255360&(nBitsTotalH<<24|nBitsTotalH>>>8),dataWords[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotalL<<8|nBitsTotalL>>>24)|4278255360&(nBitsTotalL<<24|nBitsTotalL>>>8),data.sigBytes=4*(dataWords.length+1),this._process(),hash=this._hash,H=hash.words,i=_i=0;4>_i;i=++_i)H_i=H[i],H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8);return hash},MD5.prototype.copy_to=function(obj){return MD5.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},MD5.prototype.clone=function(){var out;return out=new MD5,this.copy_to(out),out},MD5}(Hasher),FF=function(a,b,c,d,x,s,t){var n;return n=a+(b&c|~b&d)+x+t,(n<<s|n>>>32-s)+b},GG=function(a,b,c,d,x,s,t){var n;return n=a+(b&d|c&~d)+x+t,(n<<s|n>>>32-s)+b},HH=function(a,b,c,d,x,s,t){var n;return n=a+(b^c^d)+x+t,(n<<s|n>>>32-s)+b},II=function(a,b,c,d,x,s,t){var n;return n=a+(c^(b|~d))+x+t,(n<<s|n>>>32-s)+b},exports.transform=function(x){var out;return out=(new MD5).finalize(x),x.scrub(),out}}).call(this)},{"./algbase":174,"./wordarray":196}],183:[function(require,module,exports){(function(){var HMAC,PBKDF2,WordArray,iced,pbkdf2,util,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},HMAC=require("./hmac").HMAC,WordArray=require("./wordarray").WordArray,util=require("./util"),PBKDF2=function(){function PBKDF2(_arg){this.klass=_arg.klass,this.c=_arg.c,this.c||(this.c=1024),this.klass||(this.klass=HMAC)}return PBKDF2.prototype._PRF=function(input){return this.prf.reset(),this.prf.finalize(input)},PBKDF2.prototype._gen_T_i=function(_arg,cb){var U,i,progress_hook,ret,salt,seed,stop,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),salt=_arg.salt,i=_arg.i,progress_hook=_arg.progress_hook,progress_hook(0),seed=salt.clone().concat(new WordArray([i])),U=this._PRF(seed),ret=U.clone(),i=1,function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(i<_this.c))return _break();for(stop=Math.min(_this.c,i+128);stop>i;)U=_this._PRF(U),ret.xor(U,{}),i++;progress_hook(i),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced",funcname:"PBKDF2._gen_T_i"}),util.default_delay(0,0,__iced_deferrals.defer({lineno:57})),__iced_deferrals._fulfill()}(function(){return _next(null)})})(__iced_k)}}(this)(function(){return function(){return progress_hook(i),cb(ret)}}(this))},PBKDF2.prototype.run=function(_arg,cb){var bs,dkLen,flat,i,key,n,ph,progress_hook,salt,tmp,tph,words,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,this.prf=new this.klass(key),bs=this.prf.get_output_size(),n=Math.ceil(dkLen/bs),words=[],tph=null,ph=function(_this){return function(block){return function(iter){return"function"==typeof progress_hook?progress_hook({what:"pbkdf2",total:n*_this.c,i:block*_this.c+iter}):void 0}}}(this),ph(0)(0),function(_this){return function(__iced_k){var _results,_while;i=1,_begin=1,_end=n,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?i+=1:i-=1,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&i>n||_positive===!1&&n>i?_break():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced",funcname:"PBKDF2.run"}),_this._gen_T_i({salt:salt,i:i,progress_hook:ph(i-1)},__iced_deferrals.defer({assign_fn:function(){return function(){return tmp=arguments[0]}}(),lineno:80})),__iced_deferrals._fulfill()}(function(){return _next(words.push(tmp.words))})})(__iced_k)}}(this)(function(_this){return function(){var _ref;return ph(n)(0),flat=(_ref=[]).concat.apply(_ref,words),key.scrub(),_this.prf.scrub(),_this.prf=null,cb(new WordArray(flat,dkLen))}}(this))},PBKDF2}(),pbkdf2=function(_arg,cb){var c,dkLen,eng,key,klass,out,progress_hook,salt,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,klass=_arg.klass,c=_arg.c,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,eng=new PBKDF2({klass:klass,c:c}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/pbkdf2.iced"}),eng.run({key:key,salt:salt,dkLen:dkLen,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return out=arguments[0]}}(),lineno:106})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(out)}}(this))},exports.pbkdf2=pbkdf2,exports.PBKDF2=PBKDF2}).call(this)},{"./hmac":180,"./util":195,"./wordarray":196,"iced-runtime":118}],184:[function(require,module,exports){(function(Buffer){(function(){var ADRBG,PRNG,WordArray,XOR,browser_rng,e,generate,iced,m,more_entropy,native_rng,rng,util,__iced_k,__iced_k_noop,_browser_rng_primitive,_native_rng,_prng,_ref,_ref1;if(iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},more_entropy=require("more-entropy"),ADRBG=require("./drbg").ADRBG,WordArray=require("./wordarray").WordArray,XOR=require("./combine").XOR,util=require("./util"),_browser_rng_primitive=null,browser_rng=function(n){var v;return v=new Uint8Array(n),_browser_rng_primitive(v),new Buffer(v)},_browser_rng_primitive=null!=(m="undefined"!=typeof window&&null!==window&&null!=(_ref=window.crypto)?_ref.getRandomValues:void 0)?m.bind(window.crypto):null!=(m="undefined"!=typeof window&&null!==window&&null!=(_ref1=window.msCrypto)?_ref1.getRandomValues:void 0)?m.bind(window.msCrypto):null,null!=_browser_rng_primitive)_native_rng=browser_rng;else try{rng=require("crypto").rng,null!=rng&&(_native_rng=rng)}catch(_error){e=_error}native_rng=function(x){if(null==_native_rng)throw new Error('No rng found; tried requiring "crypto" and window.crypto');return _native_rng(x)},PRNG=function(){function PRNG(){this.meg=new more_entropy.Generator,this.adrbg=new ADRBG(function(_this){return function(n,cb){return _this.gen_seed(n,cb)}}(this),XOR.sign)}return PRNG.prototype.now_to_buffer=function(){var buf,d,ms,s;return d=Date.now(),ms=d%1e3,s=Math.floor(d/1e3),buf=new Buffer(8),buf.writeUInt32BE(s,0),buf.writeUInt32BE(ms,4),buf},PRNG.prototype.gen_seed=function(nbits,cb){var b,bufs,cat,nbytes,wa,words,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),nbytes=nbits/8,bufs=[],bufs.push(this.now_to_buffer()),function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/chris/git/keybase/triplesec/src/prng.iced",funcname:"PRNG.gen_seed"}),_this.meg.generate(nbits,__iced_deferrals.defer({assign_fn:function(){return function(){return words=arguments[0]}}(),lineno:83})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){var _i,_len;for(bufs.push(_this.now_to_buffer()),bufs.push(new Buffer(words)),bufs.push(native_rng(nbytes)),bufs.push(_this.now_to_buffer()),cat=Buffer.concat(bufs),wa=WordArray.from_buffer(cat),util.scrub_buffer(cat),_i=0,_len=bufs.length;_len>_i;_i++)b=bufs[_i],util.scrub_buffer(b);return cb(wa)}}(this))},PRNG.prototype.generate=function(n,cb){return this.adrbg.generate(n,cb)},PRNG}(),_prng=null,generate=function(n,cb){return null==_prng&&(_prng=new PRNG),_prng.generate(n,cb)},exports.PRNG=PRNG,exports.generate=generate,exports.native_rng=native_rng}).call(this)}).call(this,require("buffer").Buffer)},{"./combine":175,"./drbg":178,"./util":195,"./wordarray":196,buffer:80,"iced-runtime":118,"more-entropy":199}],185:[function(require,module,exports){(function(){var G,Global,Hasher,RIPEMD160,WordArray,X64Word,X64WordArray,f1,f2,f3,f4,f5,rotl,transform,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),WordArray=_ref.WordArray,X64Word=_ref.X64Word,X64WordArray=_ref.X64WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){this._zl=new WordArray([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),this._zr=new WordArray([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),this._sl=new WordArray([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),this._sr=new WordArray([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),this._hl=new WordArray([0,1518500249,1859775393,2400959708,2840853838]),this._hr=new WordArray([1352829926,1548603684,1836072691,2053994217,0])}return Global}(),G=new Global,RIPEMD160=function(_super){function RIPEMD160(){return RIPEMD160.__super__.constructor.apply(this,arguments)}return __extends(RIPEMD160,_super),RIPEMD160.blockSize=16,RIPEMD160.prototype.blockSize=RIPEMD160.blockSize,RIPEMD160.output_size=20,RIPEMD160.prototype.output_size=RIPEMD160.output_size,RIPEMD160.prototype._doReset=function(){return this._hash=new WordArray([1732584193,4023233417,2562383102,271733878,3285377520])},RIPEMD160.prototype.get_output_size=function(){return this.output_size},RIPEMD160.prototype._doProcessBlock=function(M,offset){var H,M_offset_i,al,ar,bl,br,cl,cr,dl,dr,el,er,hl,hr,i,offset_i,sl,sr,t,zl,zr,_i,_j;for(i=_i=0;16>_i;i=++_i)offset_i=offset+i,M_offset_i=M[offset_i],M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8);for(H=this._hash.words,hl=G._hl.words,hr=G._hr.words,zl=G._zl.words,zr=G._zr.words,sl=G._sl.words,sr=G._sr.words,ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4],i=_j=0;80>_j;i=++_j)t=al+M[offset+zl[i]]|0,t+=16>i?f1(bl,cl,dl)+hl[0]:32>i?f2(bl,cl,dl)+hl[1]:48>i?f3(bl,cl,dl)+hl[2]:64>i?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t=0|t,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=16>i?f5(br,cr,dr)+hr[0]:32>i?f4(br,cr,dr)+hr[1]:48>i?f3(br,cr,dr)+hr[2]:64>i?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t=0|t,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;return t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t},RIPEMD160.prototype._doFinalize=function(){var H,H_i,data,dataWords,hash,i,nBitsLeft,nBitsTotal,_i;for(data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8),data.sigBytes=4*(dataWords.length+1),this._process(),hash=this._hash,H=hash.words,i=_i=0;5>_i;i=++_i)H_i=H[i],H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8);return hash},RIPEMD160.prototype.scrub=function(){return this._hash.scrub()},RIPEMD160.prototype.copy_to=function(obj){return RIPEMD160.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},RIPEMD160.prototype.clone=function(){var out;return out=new RIPEMD160,this.copy_to(out),out},RIPEMD160}(Hasher),f1=function(x,y,z){return x^y^z},f2=function(x,y,z){return x&y|~x&z},f3=function(x,y,z){return(x|~y)^z},f4=function(x,y,z){return x&z|y&~z},f5=function(x,y,z){return x^(y|~z)},rotl=function(x,n){return x<<n|x>>>32-n},transform=function(x){var out;return out=(new RIPEMD160).finalize(x),x.scrub(),out},exports.RIPEMD160=RIPEMD160,exports.transform=transform}).call(this)},{"./algbase":174,"./wordarray":196}],186:[function(require,module,exports){(function(Buffer){(function(){var Cipher,Counter,Salsa20,Salsa20Core,Salsa20InnerCore,Salsa20WordStream,StreamCipher,WordArray,asum,bulk_encrypt,encrypt,endian_reverse,fixup_uint32,iced,util,__iced_k,__iced_k_noop,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},_ref=require("./wordarray"),endian_reverse=_ref.endian_reverse,WordArray=_ref.WordArray,Counter=require("./ctr").Counter,fixup_uint32=require("./util").fixup_uint32,StreamCipher=require("./algbase").StreamCipher,util=require("./util"),asum=function(out,v){var e,i,_i,_len;for(i=_i=0,_len=v.length;_len>_i;i=++_i)e=v[i],out[i]+=e;return!1},Salsa20InnerCore=function(){function Salsa20InnerCore(rounds){this.rounds=rounds}return Salsa20InnerCore.prototype._core=function(v){"use asm";var i,u,x0,x1,x10,x11,x12,x13,x14,x15,x2,x3,x4,x5,x6,x7,x8,x9,_i,_ref1;
for(x0=v[0],x1=v[1],x2=v[2],x3=v[3],x4=v[4],x5=v[5],x6=v[6],x7=v[7],x8=v[8],x9=v[9],x10=v[10],x11=v[11],x12=v[12],x13=v[13],x14=v[14],x15=v[15],i=_i=0,_ref1=this.rounds;_i<_ref1;i=_i+=2)u=x0+x12|0,x4^=u<<7|u>>>25,u=x4+x0|0,x8^=u<<9|u>>>23,u=x8+x4|0,x12^=u<<13|u>>>19,u=x12+x8|0,x0^=u<<18|u>>>14,u=x5+x1|0,x9^=u<<7|u>>>25,u=x9+x5|0,x13^=u<<9|u>>>23,u=x13+x9|0,x1^=u<<13|u>>>19,u=x1+x13|0,x5^=u<<18|u>>>14,u=x10+x6|0,x14^=u<<7|u>>>25,u=x14+x10|0,x2^=u<<9|u>>>23,u=x2+x14|0,x6^=u<<13|u>>>19,u=x6+x2|0,x10^=u<<18|u>>>14,u=x15+x11|0,x3^=u<<7|u>>>25,u=x3+x15|0,x7^=u<<9|u>>>23,u=x7+x3|0,x11^=u<<13|u>>>19,u=x11+x7|0,x15^=u<<18|u>>>14,u=x0+x3|0,x1^=u<<7|u>>>25,u=x1+x0|0,x2^=u<<9|u>>>23,u=x2+x1|0,x3^=u<<13|u>>>19,u=x3+x2|0,x0^=u<<18|u>>>14,u=x5+x4|0,x6^=u<<7|u>>>25,u=x6+x5|0,x7^=u<<9|u>>>23,u=x7+x6|0,x4^=u<<13|u>>>19,u=x4+x7|0,x5^=u<<18|u>>>14,u=x10+x9|0,x11^=u<<7|u>>>25,u=x11+x10|0,x8^=u<<9|u>>>23,u=x8+x11|0,x9^=u<<13|u>>>19,u=x9+x8|0,x10^=u<<18|u>>>14,u=x15+x14|0,x12^=u<<7|u>>>25,u=x12+x15|0,x13^=u<<9|u>>>23,u=x13+x12|0,x14^=u<<13|u>>>19,u=x14+x13|0,x15^=u<<18|u>>>14;return[x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15]},Salsa20InnerCore}(),Salsa20Core=function(_super){function Salsa20Core(key,nonce){var _ref1;if(Salsa20Core.__super__.constructor.call(this,20),this.key=key.clone().endian_reverse(),this.nonce=nonce.clone().endian_reverse(),(16!==this.key.sigBytes||8!==this.nonce.sigBytes)&&(32!==this.key.sigBytes||8!==(_ref1=this.nonce.sigBytes)&&24!==_ref1))throw new Error("Bad key/nonce lengths");24===this.nonce.sigBytes&&this.xsalsa_setup(),this.input=this.key_iv_setup(this.nonce,this.key),this._reset()}return __extends(Salsa20Core,_super),Salsa20Core.prototype.sigma=WordArray.from_buffer_le(new Buffer("expand 32-byte k")),Salsa20Core.prototype.tau=WordArray.from_buffer_le(new Buffer("expand 16-byte k")),Salsa20Core.blockSize=64,Salsa20Core.prototype.blockSize=Salsa20Core.blockSize,Salsa20Core.keySize=32,Salsa20Core.prototype.keySize=Salsa20Core.keySize,Salsa20Core.ivSize=24,Salsa20Core.prototype.ivSize=Salsa20Core.ivSize,Salsa20Core.prototype.scrub=function(){return this.key.scrub(),this.nonce.scrub(),util.scrub_vec(this.input)},Salsa20Core.prototype.xsalsa_setup=function(){var n0,n1;return n0=new WordArray(this.nonce.words.slice(0,4)),this.nonce=n1=new WordArray(this.nonce.words.slice(4)),this.key=this.hsalsa20(n0,this.key)},Salsa20Core.prototype.hsalsa20=function(nonce,key){var i,indexes,input,v;return input=this.key_iv_setup(nonce,key),input[8]=nonce.words[2],input[9]=nonce.words[3],v=this._core(input),indexes=[0,5,10,15,6,7,8,9],v=function(){var _i,_len,_results;for(_results=[],_i=0,_len=indexes.length;_len>_i;_i++)i=indexes[_i],_results.push(fixup_uint32(v[i]));return _results}(),util.scrub_vec(input),new WordArray(v)},Salsa20Core.prototype.key_iv_setup=function(nonce,key){var A,C,i,out,_i,_j,_k,_ref1;for(out=[],i=_i=0;4>_i;i=++_i)out[i+1]=key.words[i];for(_ref1=32===key.sigBytes?[this.sigma,key.words.slice(4)]:[this.tau,key.words],C=_ref1[0],A=_ref1[1],i=_j=0;4>_j;i=++_j)out[i+11]=A[i];for(i=_k=0;4>_k;i=++_k)out[5*i]=C.words[i];return out[6]=nonce.words[0],out[7]=nonce.words[1],out},Salsa20Core.prototype.counter_setup=function(){return this.input[8]=this.counter.get().words[0],this.input[9]=this.counter.get().words[1]},Salsa20Core.prototype._reset=function(){return this.counter=new Counter({len:2})},Salsa20Core.prototype._generateBlock=function(){var v;return this.counter_setup(),v=this._core(this.input),asum(v,this.input),this.counter.inc_le(),v},Salsa20Core}(Salsa20InnerCore),exports.Salsa20WordStream=Salsa20WordStream=function(_super){function Salsa20WordStream(){return Salsa20WordStream.__super__.constructor.apply(this,arguments)}return __extends(Salsa20WordStream,_super),Salsa20WordStream.prototype._reset=function(){return Salsa20WordStream.__super__._reset.call(this)},Salsa20WordStream.prototype.getWordArray=function(nbytes){var blocks,i,nblocks,w,words,_i,_len,_ref1;for(null==nbytes||nbytes===this.blockSize?words=this._generateBlock():(nblocks=Math.ceil(nbytes/this.blockSize),blocks=function(){var _i,_results;for(_results=[],i=_i=0;nblocks>=0?nblocks>_i:_i>nblocks;i=nblocks>=0?++_i:--_i)_results.push(this._generateBlock());return _results}.call(this),words=(_ref1=[]).concat.apply(_ref1,blocks)),i=_i=0,_len=words.length;_len>_i;i=++_i)w=words[i],words[i]=endian_reverse(w);return new WordArray(words,nbytes)},Salsa20WordStream}(Salsa20Core),exports.Salsa20=Salsa20=function(_super){function Salsa20(){return Salsa20.__super__.constructor.apply(this,arguments)}return __extends(Salsa20,_super),Salsa20.prototype._reset=function(){return Salsa20.__super__._reset.call(this),this._i=this.blockSize},Salsa20.prototype.getBytes=function(needed){var bsz,n,v;if(null==needed&&(needed=this.blockSize),v=[],bsz=this.blockSize,this._i===bsz&&needed===bsz)return this._generateBlockBuffer();for(;needed>0;)this._i===bsz&&(this._generateBlockBuffer(),this._i=0),n=Math.min(needed,bsz-this._i),v.push(n===bsz?this._buf:this._buf.slice(this._i,this._i+n)),this._i+=n,needed-=n;return Buffer.concat(v)},Salsa20.prototype._generateBlockBuffer=function(){var e,i,v,_i,_len;for(this._buf=new Buffer(this.blockSize),v=this._generateBlock(),i=_i=0,_len=v.length;_len>_i;i=++_i)e=v[i],this._buf.writeUInt32LE(fixup_uint32(e),4*i);return this._buf},Salsa20}(Salsa20Core),exports.Cipher=Cipher=function(_super){function Cipher(_arg){var iv,key;key=_arg.key,iv=_arg.iv,Cipher.__super__.constructor.call(this),this.salsa=new Salsa20WordStream(key,iv),this.bsiw=this.salsa.blockSize/4}return __extends(Cipher,_super),Cipher.prototype.scrub=function(){return this.salsa.scrub()},Cipher.prototype.get_pad=function(){var pad;return pad=this.salsa.getWordArray()},Cipher}(StreamCipher),exports.encrypt=encrypt=function(_arg){var cipher,input,iv,key,ret;return key=_arg.key,iv=_arg.iv,input=_arg.input,cipher=new Cipher({key:key,iv:iv}),ret=cipher.encrypt(input),cipher.scrub(),ret},exports.bulk_encrypt=bulk_encrypt=function(_arg,cb){var cipher,input,iv,key,progress_hook,ret,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,iv=_arg.iv,input=_arg.input,progress_hook=_arg.progress_hook,cipher=new Cipher({key:key,iv:iv}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/salsa20.iced"}),cipher.bulk_encrypt({input:input,progress_hook:progress_hook,what:"salsa20"},__iced_deferrals.defer({assign_fn:function(){return function(){return ret=arguments[0]}}(),lineno:257})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cipher.scrub(),cb(ret)}}(this))},exports.Salsa20InnerCore=Salsa20InnerCore,exports.endian_reverse=endian_reverse,exports.asum=asum}).call(this)}).call(this,require("buffer").Buffer)},{"./algbase":174,"./ctr":176,"./util":195,"./wordarray":196,buffer:80,"iced-runtime":118}],187:[function(require,module,exports){(function(){var HMAC_SHA256,Salsa20InnerCore,Scrypt,Timer,WordArray,blkcpy,blkxor,default_delay,endian_reverse,fixup_uint32,iced,pbkdf2,scrub_vec,scrypt,timer,ui8a_to_buffer,v_endian_reverse,__iced_k,__iced_k_noop,_ref,_ref1,_ref2;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},HMAC_SHA256=require("./hmac").HMAC_SHA256,pbkdf2=require("./pbkdf2").pbkdf2,_ref=require("./salsa20"),endian_reverse=_ref.endian_reverse,Salsa20InnerCore=_ref.Salsa20InnerCore,_ref1=require("./wordarray"),ui8a_to_buffer=_ref1.ui8a_to_buffer,WordArray=_ref1.WordArray,_ref2=require("./util"),fixup_uint32=_ref2.fixup_uint32,default_delay=_ref2.default_delay,scrub_vec=_ref2.scrub_vec,Timer=function(){function Timer(){this.tot=0}return Timer.prototype.start=function(){return this._t=Date.now()},Timer.prototype.stop=function(){return this.tot+=Date.now()-this._t},Timer}(),timer=new Timer,blkcpy=function(D,S,d_offset,s_offset,len){"use asm";var end,i,j;for(j=d_offset<<4|0,i=s_offset<<4|0,end=i+(len<<4)|0;i<end;)D[j]=S[i],D[j+1]=S[i+1],D[j+2]=S[i+2],D[j+3]=S[i+3],D[j+4]=S[i+4],D[j+5]=S[i+5],D[j+6]=S[i+6],D[j+7]=S[i+7],D[j+8]=S[i+8],D[j+9]=S[i+9],D[j+10]=S[i+10],D[j+11]=S[i+11],D[j+12]=S[i+12],D[j+13]=S[i+13],D[j+14]=S[i+14],D[j+15]=S[i+15],i+=16,j+=16;return!0},blkxor=function(D,S,s_offset,len){"use asm";var i,j;for(len=len<<4|0,i=0,j=s_offset<<4|0;i<len;)D[i]^=S[j],D[i+1]^=S[j+1],D[i+2]^=S[j+2],D[i+3]^=S[j+3],D[i+4]^=S[j+4],D[i+5]^=S[j+5],D[i+6]^=S[j+6],D[i+7]^=S[j+7],D[i+8]^=S[j+8],D[i+9]^=S[j+9],D[i+10]^=S[j+10],D[i+11]^=S[j+11],D[i+12]^=S[j+12],D[i+13]^=S[j+13],D[i+14]^=S[j+14],D[i+15]^=S[j+15],i+=16,j+=16;return!0},v_endian_reverse=function(v){var e,i,_i,_len;for(i=_i=0,_len=v.length;_len>_i;i=++_i)e=v[i],v[i]=endian_reverse(e);return!0},Scrypt=function(){function Scrypt(_arg){var N,c,c0,c1;N=_arg.N,this.r=_arg.r,this.p=_arg.p,c=_arg.c,c0=_arg.c0,c1=_arg.c1,this.klass=_arg.klass,this.N||(this.N=1<<(N||15)),this.r||(this.r=8),this.p||(this.p=1),this.c0=c0||c||1,this.c1=c1||c||1,this.klass||(this.klass=HMAC_SHA256),this.X16_tmp=new Int32Array(16),this.s20ic=new Salsa20InnerCore(8)}return Scrypt.prototype.salsa20_8=function(B){var X,i,x,_i,_len;for(X=this.s20ic._core(B),i=_i=0,_len=X.length;_len>_i;i=++_i)x=X[i],B[i]+=x;return!0},Scrypt.prototype.pbkdf2=function(_arg,cb){var c,dkLen,key,progress_hook,salt,wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,c=_arg.c,function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.pbkdf2"}),pbkdf2({key:key,salt:salt,c:c,dkLen:dkLen,klass:_this.klass,progress_hook:progress_hook},__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:113})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa)}}(this))},Scrypt.prototype.blockmix_salsa8=function(B,Y){var X,i,_i,_ref3;for(X=this.X16_tmp,blkcpy(X,B,0,2*this.r-1,1),i=_i=0,_ref3=2*this.r;_ref3>=0?_ref3>_i:_i>_ref3;i=_ref3>=0?++_i:--_i)blkxor(X,B,i,1),this.salsa20_8(X),blkcpy(Y,X,i,0,1);for(i=0;i<this.r;)blkcpy(B,Y,i,2*i,1),i++;for(i=0;i<this.r;)blkcpy(B,Y,i+this.r,2*i+1,1),i++;return!0},Scrypt.prototype.smix=function(_arg,cb){var B,V,X,XY,Y,i,j,lim,progress_hook,stop,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),B=_arg.B,V=_arg.V,XY=_arg.XY,progress_hook=_arg.progress_hook,X=XY,lim=2*this.r,Y=XY.subarray(16*lim),blkcpy(X,B,0,0,lim),i=0,function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(i<_this.N))return _break();for(stop=Math.min(_this.N,i+2048);stop>i;)blkcpy(V,X,lim*i,0,lim),_this.blockmix_salsa8(X,Y),i++;"function"==typeof progress_hook&&progress_hook(i),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.smix"}),default_delay(0,0,__iced_deferrals.defer({lineno:170})),__iced_deferrals._fulfill()}(_next)})(__iced_k)}}(this)(function(_this){return function(){i=0,function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;if(_break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},!(i<_this.N))return _break();for(stop=Math.min(_this.N,i+256);stop>i;)j=fixup_uint32(X[16*(lim-1)])&_this.N-1,blkxor(X,V,j*lim,lim),_this.blockmix_salsa8(X,Y),i++;"function"==typeof progress_hook&&progress_hook(i+_this.N),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.smix"}),default_delay(0,0,__iced_deferrals.defer({lineno:187})),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){return blkcpy(B,X,0,0,lim),cb()})}}(this))},Scrypt.prototype.run=function(_arg,cb){var B,MAX,V,XY,dkLen,err,j,key,lph,out,progress_hook,ret,salt,___iced_passed_deferral,__iced_deferrals,__iced_k,_begin,_end,_positive;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,dkLen=_arg.dkLen,progress_hook=_arg.progress_hook,MAX=4294967295,err=ret=null,err=dkLen>MAX?err=new Error("asked for too much data"):this.r*this.p>=1<<30?new Error("r & p are too big"):this.r>MAX/128/this.p||this.r>MAX/256||this.N>MAX/128/this.r?new Error("N is too big"):null,XY=new Int32Array(64*this.r),V=new Int32Array(32*this.r*this.N),lph=function(o){return o.what+=" (pass 1)","function"==typeof progress_hook?progress_hook(o):void 0},function(_this){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),_this.pbkdf2({key:key.clone(),salt:salt,dkLen:128*_this.r*_this.p,c:_this.c0,progress_hook:lph},__iced_deferrals.defer({assign_fn:function(){return function(){return B=arguments[0]}}(),lineno:218})),__iced_deferrals._fulfill()}}(this)(function(_this){return function(){B=new Int32Array(B.words),v_endian_reverse(B),lph=function(j){return function(i){return"function"==typeof progress_hook?progress_hook({i:i+j*_this.N*2,what:"scrypt",total:_this.p*_this.N*2}):void 0}},function(__iced_k){var _results,_while;j=0,_begin=0,_end=_this.p,_positive=_end>_begin,_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _positive?j+=1:j-=1,_while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_positive===!0&&j>=_this.p||_positive===!1&&j<=_this.p?_break():void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),_this.smix({B:B.subarray(32*_this.r*j),V:V,XY:XY,progress_hook:lph(j)},__iced_deferrals.defer({lineno:225})),__iced_deferrals._fulfill()}(_next)})(__iced_k)}(function(){v_endian_reverse(B),lph=function(o){return o.what+=" (pass 2)","function"==typeof progress_hook?progress_hook(o):void 0},function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced",funcname:"Scrypt.run"}),_this.pbkdf2({key:key,salt:WordArray.from_i32a(B),dkLen:dkLen,c:_this.c1,progress_hook:lph},__iced_deferrals.defer({assign_fn:function(){return function(){return out=arguments[0]}}(),lineno:233})),__iced_deferrals._fulfill()}(function(){return scrub_vec(XY),scrub_vec(V),scrub_vec(B),key.scrub(),cb(out)})})}}(this))},Scrypt}(),scrypt=function(_arg,cb){var N,c,c0,c1,dkLen,eng,key,klass,p,progress_hook,r,salt,wa,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),key=_arg.key,salt=_arg.salt,r=_arg.r,N=_arg.N,p=_arg.p,c0=_arg.c0,c1=_arg.c1,c=_arg.c,klass=_arg.klass,progress_hook=_arg.progress_hook,dkLen=_arg.dkLen,eng=new Scrypt({r:r,N:N,p:p,c:c,c0:c0,c1:c1,klass:klass}),function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/scrypt.iced"}),eng.run({key:key,salt:salt,progress_hook:progress_hook,dkLen:dkLen},__iced_deferrals.defer({assign_fn:function(){return function(){return wa=arguments[0]}}(),lineno:263})),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb(wa)}}(this))},exports.Scrypt=Scrypt,exports.scrypt=scrypt,exports.v_endian_reverse=v_endian_reverse}).call(this)},{"./hmac":180,"./pbkdf2":183,"./salsa20":186,"./util":195,"./wordarray":196,"iced-runtime":118}],188:[function(require,module,exports){(function(){var Hasher,SHA1,W,WordArray,transform,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,Hasher=require("./algbase").Hasher,W=[],SHA1=function(_super){function SHA1(){return SHA1.__super__.constructor.apply(this,arguments)}return __extends(SHA1,_super),SHA1.blockSize=16,SHA1.prototype.blockSize=SHA1.blockSize,SHA1.output_size=20,SHA1.prototype.output_size=SHA1.output_size,SHA1.prototype._doReset=function(){return this._hash=new WordArray([1732584193,4023233417,2562383102,271733878,3285377520])},SHA1.prototype._doProcessBlock=function(M,offset){var H,a,b,c,d,e,i,n,t,_i;for(H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],i=_i=0;80>_i;i=++_i)16>i?W[i]=0|M[offset+i]:(n=W[i-3]^W[i-8]^W[i-14]^W[i-16],W[i]=n<<1|n>>>31),t=(a<<5|a>>>27)+e+W[i],t+=20>i?(b&c|~b&d)+1518500249:40>i?(b^c^d)+1859775393:60>i?(b&c|b&d|c&d)-1894007588:(b^c^d)-899497514,e=d,d=c,c=b<<30|b>>>2,b=a,a=t;return H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0},SHA1.prototype._doFinalize=function(){var data,dataWords,nBitsLeft,nBitsTotal;return data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},SHA1.prototype.copy_to=function(obj){return SHA1.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},SHA1.prototype.clone=function(){var out;return out=new SHA1,this.copy_to(out),out},SHA1}(Hasher),transform=transform=function(x){var out;return out=(new SHA1).finalize(x),x.scrub(),out},exports.SHA1=SHA1,exports.transform=transform}).call(this)},{"./algbase":174,"./wordarray":196}],189:[function(require,module,exports){(function(){var SHA224,SHA256,WordArray,transform,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,SHA256=require("./sha256").SHA256,SHA224=function(_super){function SHA224(){return SHA224.__super__.constructor.apply(this,arguments)}return __extends(SHA224,_super),SHA224.output_size=28,SHA224.prototype.output_size=SHA224.output_size,SHA224.prototype._doReset=function(){return this._hash=new WordArray([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},SHA224.prototype._doFinalize=function(){var hash;return hash=SHA224.__super__._doFinalize.call(this),hash.sigBytes-=4,hash},SHA224.prototype.clone=function(){var out;return out=new SHA224,this.copy_to(out),out},SHA224}(SHA256),transform=function(x){var out;return out=(new SHA224).finalize(x),x.scrub(),out},exports.SHA224=SHA224,exports.transform=transform}).call(this)},{"./sha256":190,"./wordarray":196}],190:[function(require,module,exports){(function(){var Global,Hasher,SHA256,WordArray,glbl,transform,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};WordArray=require("./wordarray").WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){this.H=[],this.K=[],this.W=[],this.init()}return Global.prototype.isPrime=function(n){var f,sqn,_i;if(2===n||3===n||5===n||7===n)return!0;if(1===n||4===n||6===n||8===n||9===n)return!1;for(sqn=Math.ceil(Math.sqrt(n)),f=_i=2;sqn>=2?sqn>=_i:_i>=sqn;f=sqn>=2?++_i:--_i)if(n%f===0)return!1;return!0},Global.prototype.getFractionalBits=function(n){return 4294967296*(n-(0|n))|0},Global.prototype.init=function(){var n,nPrime,_results;for(n=2,nPrime=0,_results=[];64>nPrime;)this.isPrime(n)&&(8>nPrime&&(this.H[nPrime]=this.getFractionalBits(Math.pow(n,.5))),this.K[nPrime]=this.getFractionalBits(Math.pow(n,1/3)),nPrime++),_results.push(n++);return _results},Global}(),glbl=new Global,SHA256=function(_super){function SHA256(){return SHA256.__super__.constructor.apply(this,arguments)}return __extends(SHA256,_super),SHA256.blockSize=16,SHA256.prototype.blockSize=SHA256.blockSize,SHA256.output_size=32,SHA256.prototype.output_size=SHA256.output_size,SHA256.prototype._doReset=function(){return this._hash=new WordArray(glbl.H.slice(0))},SHA256.prototype.get_output_size=function(){return this.output_size},SHA256.prototype._doProcessBlock=function(M,offset){var H,K,W,a,b,c,ch,d,e,f,g,gamma0,gamma0x,gamma1,gamma1x,h,i,maj,sigma0,sigma1,t1,t2,_i;for(H=this._hash.words,W=glbl.W,K=glbl.K,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],f=H[5],g=H[6],h=H[7],i=_i=0;64>_i;i=++_i)16>i?W[i]=0|M[offset+i]:(gamma0x=W[i-15],gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3,gamma1x=W[i-2],gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10,W[i]=gamma0+W[i-7]+gamma1+W[i-16]),ch=e&f^~e&g,maj=a&b^a&c^b&c,sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),t1=h+sigma1+ch+K[i]+W[i],t2=sigma0+maj,h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0;return H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0,H[5]=H[5]+f|0,H[6]=H[6]+g|0,H[7]=H[7]+h|0},SHA256.prototype._doFinalize=function(){var data,dataWords,nBitsLeft,nBitsTotal;return data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},SHA256.prototype.scrub=function(){return this._hash.scrub()},SHA256.prototype.copy_to=function(obj){return SHA256.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},SHA256.prototype.clone=function(){var out;return out=new SHA256,this.copy_to(out),out},SHA256}(Hasher),transform=function(x){var out;return out=(new SHA256).finalize(x),x.scrub(),out},exports.SHA256=SHA256,exports.transform=transform}).call(this)},{"./algbase":174,"./wordarray":196}],191:[function(require,module,exports){(function(){var Global,Hasher,SHA3,WordArray,X64Word,X64WordArray,glbl,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),WordArray=_ref.WordArray,X64Word=_ref.X64Word,X64WordArray=_ref.X64WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){this.RHO_OFFSETS=[],this.PI_INDEXES=[],this.ROUND_CONSTANTS=[],this.T=[],this.compute_rho_offsets(),this.compute_pi_indexes(),this.compute_round_constants(),this.make_reusables()}return Global.prototype.compute_rho_offsets=function(){var newX,newY,t,x,y,_i,_results;for(x=1,y=0,_results=[],t=_i=0;24>_i;t=++_i)this.RHO_OFFSETS[x+5*y]=(t+1)*(t+2)/2%64,newX=y%5,newY=(2*x+3*y)%5,x=newX,_results.push(y=newY);return _results},Global.prototype.compute_pi_indexes=function(){var x,y,_i,_results;for(_results=[],x=_i=0;5>_i;x=++_i)_results.push(function(){var _j,_results1;for(_results1=[],y=_j=0;5>_j;y=++_j)_results1.push(this.PI_INDEXES[x+5*y]=y+(2*x+3*y)%5*5);return _results1}.call(this));return _results},Global.prototype.compute_round_constants=function(){var LFSR,bitPosition,i,j,roundConstantLsw,roundConstantMsw,_i,_j,_results;for(LFSR=1,_results=[],i=_i=0;24>_i;i=++_i){for(roundConstantMsw=0,roundConstantLsw=0,j=_j=0;7>_j;j=++_j)1&LFSR&&(bitPosition=(1<<j)-1,32>bitPosition?roundConstantLsw^=1<<bitPosition:roundConstantMsw^=1<<bitPosition-32),128&LFSR?LFSR=LFSR<<1^113:LFSR<<=1;_results.push(this.ROUND_CONSTANTS[i]=new X64Word(roundConstantMsw,roundConstantLsw))}return _results},Global.prototype.make_reusables=function(){var i;return this.T=function(){var _i,_results;for(_results=[],i=_i=0;25>_i;i=++_i)_results.push(new X64Word(0,0));return _results}()},Global}(),glbl=new Global,exports.SHA3=SHA3=function(_super){function SHA3(){return SHA3.__super__.constructor.apply(this,arguments)}return __extends(SHA3,_super),SHA3.outputLength=512,SHA3.prototype.outputLength=SHA3.outputLength,SHA3.blockSize=(1600-2*SHA3.outputLength)/32,SHA3.prototype.blockSize=SHA3.blockSize,SHA3.output_size=SHA3.outputLength/8,SHA3.prototype.output_size=SHA3.output_size,SHA3.prototype._doReset=function(){var i;return this._state=function(){var _i,_results;for(_results=[],i=_i=0;25>_i;i=++_i)_results.push(new X64Word(0,0));return _results}()},SHA3.prototype._doProcessBlock=function(M,offset){var G,M2i,M2i1,T0,TLane,TPiLane,Tx,Tx1,Tx1Lane,Tx1Lsw,Tx1Msw,Tx2Lane,Tx4,i,lane,laneIndex,laneLsw,laneMsw,nBlockSizeLanes,rhoOffset,round,roundConstant,state,state0,tLsw,tMsw,x,y,_i,_j,_k,_l,_m,_n,_o,_p,_q,_results;for(G=glbl,state=this._state,nBlockSizeLanes=this.blockSize/2,i=_i=0;nBlockSizeLanes>=0?nBlockSizeLanes>_i:_i>nBlockSizeLanes;i=nBlockSizeLanes>=0?++_i:--_i)M2i=M[offset+2*i],M2i1=M[offset+2*i+1],M2i=16711935&(M2i<<8|M2i>>>24)|4278255360&(M2i<<24|M2i>>>8),M2i1=16711935&(M2i1<<8|M2i1>>>24)|4278255360&(M2i1<<24|M2i1>>>8),lane=state[i],lane.high^=M2i1,lane.low^=M2i;for(_results=[],round=_j=0;24>_j;round=++_j){for(x=_k=0;5>_k;x=++_k){for(tMsw=tLsw=0,y=_l=0;5>_l;y=++_l)lane=state[x+5*y],tMsw^=lane.high,tLsw^=lane.low;Tx=G.T[x],Tx.high=tMsw,Tx.low=tLsw}for(x=_m=0;5>_m;x=++_m)for(Tx4=G.T[(x+4)%5],Tx1=G.T[(x+1)%5],Tx1Msw=Tx1.high,Tx1Lsw=Tx1.low,tMsw=Tx4.high^(Tx1Msw<<1|Tx1Lsw>>>31),tLsw=Tx4.low^(Tx1Lsw<<1|Tx1Msw>>>31),y=_n=0;5>_n;y=++_n)lane=state[x+5*y],lane.high^=tMsw,lane.low^=tLsw;for(laneIndex=_o=1;25>_o;laneIndex=++_o)lane=state[laneIndex],laneMsw=lane.high,laneLsw=lane.low,rhoOffset=G.RHO_OFFSETS[laneIndex],32>rhoOffset?(tMsw=laneMsw<<rhoOffset|laneLsw>>>32-rhoOffset,tLsw=laneLsw<<rhoOffset|laneMsw>>>32-rhoOffset):(tMsw=laneLsw<<rhoOffset-32|laneMsw>>>64-rhoOffset,tLsw=laneMsw<<rhoOffset-32|laneLsw>>>64-rhoOffset),TPiLane=G.T[G.PI_INDEXES[laneIndex]],TPiLane.high=tMsw,TPiLane.low=tLsw;for(T0=G.T[0],state0=state[0],T0.high=state0.high,T0.low=state0.low,x=_p=0;5>_p;x=++_p)for(y=_q=0;5>_q;y=++_q)laneIndex=x+5*y,lane=state[laneIndex],TLane=G.T[laneIndex],Tx1Lane=G.T[(x+1)%5+5*y],Tx2Lane=G.T[(x+2)%5+5*y],lane.high=TLane.high^~Tx1Lane.high&Tx2Lane.high,lane.low=TLane.low^~Tx1Lane.low&Tx2Lane.low;lane=state[0],roundConstant=G.ROUND_CONSTANTS[round],lane.high^=roundConstant.high,_results.push(lane.low^=roundConstant.low)}return _results},SHA3.prototype._doFinalize=function(){var blockSizeBits,data,dataWords,hashWords,i,lane,laneLsw,laneMsw,nBitsLeft,nBitsTotal,outputLengthBytes,outputLengthLanes,state,_i;for(data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes,blockSizeBits=32*this.blockSize,dataWords[nBitsLeft>>>5]|=1<<24-nBitsLeft%32,dataWords[(Math.ceil((nBitsLeft+1)/blockSizeBits)*blockSizeBits>>>5)-1]|=128,data.sigBytes=4*dataWords.length,this._process(),state=this._state,outputLengthBytes=this.outputLength/8,outputLengthLanes=outputLengthBytes/8,hashWords=[],i=_i=0;outputLengthLanes>=0?outputLengthLanes>_i:_i>outputLengthLanes;i=outputLengthLanes>=0?++_i:--_i)lane=state[i],laneMsw=lane.high,laneLsw=lane.low,laneMsw=16711935&(laneMsw<<8|laneMsw>>>24)|4278255360&(laneMsw<<24|laneMsw>>>8),laneLsw=16711935&(laneLsw<<8|laneLsw>>>24)|4278255360&(laneLsw<<24|laneLsw>>>8),hashWords.push(laneLsw),hashWords.push(laneMsw);return new WordArray(hashWords,outputLengthBytes)},SHA3.prototype.copy_to=function(obj){var s;return SHA3.__super__.copy_to.call(this,obj),obj._state=function(){var _i,_len,_ref1,_results;for(_ref1=this._state,_results=[],_i=0,_len=_ref1.length;_len>_i;_i++)s=_ref1[_i],_results.push(s.clone());return _results}.call(this)},SHA3.prototype.scrub=function(){},SHA3.prototype.clone=function(){var out;return out=new SHA3,this.copy_to(out),out},SHA3}(Hasher),exports.transform=function(x){var out;return out=(new SHA3).finalize(x),x.scrub(),out}}).call(this)},{"./algbase":174,"./wordarray":196}],192:[function(require,module,exports){(function(){var Global,SHA384,SHA512,WordArray,X64WordArray,transform,_ref,_ref1,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),X64WordArray=_ref.X64WordArray,WordArray=_ref.WordArray,_ref1=require("./sha512"),SHA512=_ref1.SHA512,Global=_ref1.Global,SHA384=function(_super){function SHA384(){return SHA384.__super__.constructor.apply(this,arguments)}return __extends(SHA384,_super),SHA384.output_size=48,SHA384.prototype.output_size=SHA384.output_size,SHA384.prototype._doReset=function(){return this._hash=new X64WordArray(Global.convert([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]))},SHA384.prototype._doFinalize=function(){var hash;return hash=SHA384.__super__._doFinalize.call(this),hash.sigBytes-=16,hash},SHA384.prototype.clone=function(){var out;return out=new SHA384,this.copy_to(out),out},SHA384}(SHA512),transform=function(x){var out;return out=(new SHA384).finalize(x),x.scrub(),out},exports.SHA384=SHA384,exports.transform=transform}).call(this)},{"./sha512":193,"./wordarray":196}],193:[function(require,module,exports){(function(){var Global,Hasher,SHA512,X64Word,X64WordArray,glbl,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};_ref=require("./wordarray"),X64Word=_ref.X64Word,X64WordArray=_ref.X64WordArray,Hasher=require("./algbase").Hasher,Global=function(){function Global(){var i;this.K=this.convert([1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591]),this.I=new X64WordArray(this.convert([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])),this.W=function(){var _i,_results;
for(_results=[],i=_i=0;80>_i;i=++_i)_results.push(new X64Word(0,0));return _results}()}return Global.convert=function(raw){var i,_i,_ref1,_results;for(_results=[],i=_i=0,_ref1=raw.length;_ref1>_i;i=_i+=2)_results.push(new X64Word(raw[i],raw[i+1]));return _results},Global.prototype.convert=function(raw){return Global.convert(raw)},Global}(),exports.Global=Global,glbl=new Global,exports.SHA512=SHA512=function(_super){function SHA512(){return SHA512.__super__.constructor.apply(this,arguments)}return __extends(SHA512,_super),SHA512.blockSize=32,SHA512.prototype.blockSize=SHA512.blockSize,SHA512.output_size=64,SHA512.prototype.output_size=SHA512.output_size,SHA512.prototype._doReset=function(){return this._hash=glbl.I.clone()},SHA512.prototype._doProcessBlock=function(M,offset){var H,H0,H0h,H0l,H1,H1h,H1l,H2,H2h,H2l,H3,H3h,H3l,H4,H4h,H4l,H5,H5h,H5l,H6,H6h,H6l,H7,H7h,H7l,Ki,Kih,Kil,W,Wi,Wi16,Wi16h,Wi16l,Wi7,Wi7h,Wi7l,Wih,Wil,ah,al,bh,bl,ch,chh,chl,cl,dh,dl,eh,el,fh,fl,gamma0h,gamma0l,gamma0x,gamma0xh,gamma0xl,gamma1h,gamma1l,gamma1x,gamma1xh,gamma1xl,gh,gl,hh,hl,i,majh,majl,sigma0h,sigma0l,sigma1h,sigma1l,t1h,t1l,t2h,t2l,_i;for(H=this._hash.words,W=glbl.W,H0=H[0],H1=H[1],H2=H[2],H3=H[3],H4=H[4],H5=H[5],H6=H[6],H7=H[7],H0h=H0.high,H0l=H0.low,H1h=H1.high,H1l=H1.low,H2h=H2.high,H2l=H2.low,H3h=H3.high,H3l=H3.low,H4h=H4.high,H4l=H4.low,H5h=H5.high,H5l=H5.low,H6h=H6.high,H6l=H6.low,H7h=H7.high,H7l=H7.low,ah=H0h,al=H0l,bh=H1h,bl=H1l,ch=H2h,cl=H2l,dh=H3h,dl=H3l,eh=H4h,el=H4l,fh=H5h,fl=H5l,gh=H6h,gl=H6l,hh=H7h,hl=H7l,i=_i=0;80>_i;i=++_i)Wi=W[i],16>i?(Wih=Wi.high=0|M[offset+2*i],Wil=Wi.low=0|M[offset+2*i+1]):(gamma0x=W[i-15],gamma0xh=gamma0x.high,gamma0xl=gamma0x.low,gamma0h=(gamma0xh>>>1|gamma0xl<<31)^(gamma0xh>>>8|gamma0xl<<24)^gamma0xh>>>7,gamma0l=(gamma0xl>>>1|gamma0xh<<31)^(gamma0xl>>>8|gamma0xh<<24)^(gamma0xl>>>7|gamma0xh<<25),gamma1x=W[i-2],gamma1xh=gamma1x.high,gamma1xl=gamma1x.low,gamma1h=(gamma1xh>>>19|gamma1xl<<13)^(gamma1xh<<3|gamma1xl>>>29)^gamma1xh>>>6,gamma1l=(gamma1xl>>>19|gamma1xh<<13)^(gamma1xl<<3|gamma1xh>>>29)^(gamma1xl>>>6|gamma1xh<<26),Wi7=W[i-7],Wi7h=Wi7.high,Wi7l=Wi7.low,Wi16=W[i-16],Wi16h=Wi16.high,Wi16l=Wi16.low,Wil=gamma0l+Wi7l,Wih=gamma0h+Wi7h+(gamma0l>>>0>Wil>>>0?1:0),Wil+=gamma1l,Wih=Wih+gamma1h+(gamma1l>>>0>Wil>>>0?1:0),Wil+=Wi16l,Wih=Wih+Wi16h+(Wi16l>>>0>Wil>>>0?1:0),Wi.high=Wih,Wi.low=Wil),chh=eh&fh^~eh&gh,chl=el&fl^~el&gl,majh=ah&bh^ah&ch^bh&ch,majl=al&bl^al&cl^bl&cl,sigma0h=(ah>>>28|al<<4)^(ah<<30|al>>>2)^(ah<<25|al>>>7),sigma0l=(al>>>28|ah<<4)^(al<<30|ah>>>2)^(al<<25|ah>>>7),sigma1h=(eh>>>14|el<<18)^(eh>>>18|el<<14)^(eh<<23|el>>>9),sigma1l=(el>>>14|eh<<18)^(el>>>18|eh<<14)^(el<<23|eh>>>9),Ki=glbl.K[i],Kih=Ki.high,Kil=Ki.low,t1l=hl+sigma1l,t1h=hh+sigma1h+(hl>>>0>t1l>>>0?1:0),t1l+=chl,t1h=t1h+chh+(chl>>>0>t1l>>>0?1:0),t1l+=Kil,t1h=t1h+Kih+(Kil>>>0>t1l>>>0?1:0),t1l+=Wil,t1h=t1h+Wih+(Wil>>>0>t1l>>>0?1:0),t2l=sigma0l+majl,t2h=sigma0h+majh+(sigma0l>>>0>t2l>>>0?1:0),hh=gh,hl=gl,gh=fh,gl=fl,fh=eh,fl=el,el=dl+t1l|0,eh=dh+t1h+(dl>>>0>el>>>0?1:0)|0,dh=ch,dl=cl,ch=bh,cl=bl,bh=ah,bl=al,al=t1l+t2l|0,ah=t1h+t2h+(t1l>>>0>al>>>0?1:0)|0;return H0l=H0.low=H0l+al,H0.high=H0h+ah+(al>>>0>H0l>>>0?1:0),H1l=H1.low=H1l+bl,H1.high=H1h+bh+(bl>>>0>H1l>>>0?1:0),H2l=H2.low=H2l+cl,H2.high=H2h+ch+(cl>>>0>H2l>>>0?1:0),H3l=H3.low=H3l+dl,H3.high=H3h+dh+(dl>>>0>H3l>>>0?1:0),H4l=H4.low=H4l+el,H4.high=H4h+eh+(el>>>0>H4l>>>0?1:0),H5l=H5.low=H5l+fl,H5.high=H5h+fh+(fl>>>0>H5l>>>0?1:0),H6l=H6.low=H6l+gl,H6.high=H6h+gh+(gl>>>0>H6l>>>0?1:0),H7l=H7.low=H7l+hl,H7.high=H7h+hh+(hl>>>0>H7l>>>0?1:0)},SHA512.prototype._doFinalize=function(){var dataWords,nBitsLeft,nBitsTotal;return dataWords=this._data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*this._data.sigBytes,dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+128>>>10<<5)+30]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+128>>>10<<5)+31]=nBitsTotal,this._data.sigBytes=4*dataWords.length,this._process(),this._hash.toX32()},SHA512.prototype.copy_to=function(obj){return SHA512.__super__.copy_to.call(this,obj),obj._hash=this._hash.clone()},SHA512.prototype.clone=function(){var out;return out=new SHA512,this.copy_to(out),out},SHA512}(Hasher),exports.transform=function(x){var out;return out=(new SHA512).finalize(x),x.scrub(),out}}).call(this)},{"./algbase":174,"./wordarray":196}],194:[function(require,module,exports){(function(){var BlockCipher,G,Global,TwoFish,scrub_vec,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};BlockCipher=require("./algbase").BlockCipher,scrub_vec=require("./util").scrub_vec,Global=function(){function Global(){this.P=[[169,103,179,232,4,253,163,118,154,146,128,120,228,221,209,56,13,198,53,152,24,247,236,108,67,117,55,38,250,19,148,72,242,208,139,48,132,84,223,35,25,91,61,89,243,174,162,130,99,1,131,46,217,81,155,124,166,235,165,190,22,12,227,97,192,140,58,245,115,44,37,11,187,78,137,107,83,106,180,241,225,230,189,69,226,244,182,102,204,149,3,86,212,28,30,215,251,195,142,181,233,207,191,186,234,119,57,175,51,201,98,113,129,121,9,173,36,205,249,216,229,197,185,77,68,8,134,231,161,29,170,237,6,112,178,210,65,123,160,17,49,194,39,144,32,246,96,255,150,92,177,171,158,156,82,27,95,147,10,239,145,133,73,238,45,79,143,59,71,135,109,70,214,62,105,100,42,206,203,47,252,151,5,122,172,127,213,26,75,14,167,90,40,20,63,41,136,60,76,2,184,218,176,23,85,31,138,125,87,199,141,116,183,196,159,114,126,21,34,18,88,7,153,52,110,80,222,104,101,188,219,248,200,168,43,64,220,254,50,164,202,16,33,240,211,93,15,0,111,157,54,66,74,94,193,224],[117,243,198,244,219,123,251,200,74,211,230,107,69,125,232,75,214,50,216,253,55,113,241,225,48,15,248,27,135,250,6,63,94,186,174,91,138,0,188,157,109,193,177,14,128,93,210,213,160,132,7,20,181,144,44,163,178,115,76,84,146,116,54,81,56,176,189,90,252,96,98,150,108,66,247,16,124,40,39,140,19,149,156,199,36,70,59,112,202,227,133,203,17,208,147,184,166,131,32,255,159,119,195,204,3,111,8,191,64,231,43,226,121,12,170,130,65,58,234,185,228,154,164,151,126,218,122,23,102,148,161,29,61,240,222,179,11,114,167,28,239,209,83,62,143,51,38,95,236,118,42,73,129,136,238,33,196,26,235,217,197,57,153,205,173,49,139,1,24,35,221,31,78,45,249,72,79,242,101,142,120,92,88,25,141,229,152,87,103,127,5,100,175,99,182,254,245,183,60,165,206,233,104,68,224,77,67,105,41,46,172,21,89,168,10,158,110,71,223,52,53,106,207,220,34,201,192,155,137,212,237,171,18,162,13,82,187,2,47,169,215,97,30,180,80,4,246,194,22,37,134,86,85,9,190,145]],this.P_00=1,this.P_01=0,this.P_02=0,this.P_03=1,this.P_04=1,this.P_10=0,this.P_11=0,this.P_12=1,this.P_13=1,this.P_14=0,this.P_20=1,this.P_21=1,this.P_22=0,this.P_23=0,this.P_24=0,this.P_30=0,this.P_31=1,this.P_32=1,this.P_33=0,this.P_34=1,this.GF256_FDBK=361,this.GF256_FDBK_2=this.GF256_FDBK/2,this.GF256_FDBK_4=this.GF256_FDBK/4,this.RS_GF_FDBK=333,this.SK_STEP=33686018,this.SK_BUMP=16843009,this.SK_ROTL=9}return Global}(),G=new Global,exports.TwoFish=TwoFish=function(_super){function TwoFish(key){this._key=key.clone(),this.gMDS0=[],this.gMDS1=[],this.gMDS2=[],this.gMDS3=[],this.gSubKeys=[],this.gSBox=[],this.k64Cnt=0,this._doReset()}return __extends(TwoFish,_super),TwoFish.blockSize=16,TwoFish.prototype.blockSize=TwoFish.blockSize,TwoFish.keySize=32,TwoFish.prototype.keySize=TwoFish.keySize,TwoFish.ivSize=TwoFish.blockSize,TwoFish.prototype.ivSize=TwoFish.ivSize,TwoFish.prototype.getByte=function(x,n){return x>>>8*n&255},TwoFish.prototype.switchEndianness=function(word){return(255&word)<<24|(word>>8&255)<<16|(word>>16&255)<<8|word>>24&255},TwoFish.prototype.LFSR1=function(x){return x>>1^(0!==(1&x)?G.GF256_FDBK_2:0)},TwoFish.prototype.LFSR2=function(x){return x>>2^(0!==(2&x)?G.GF256_FDBK_2:0)^(0!==(1&x)?G.GF256_FDBK_4:0)},TwoFish.prototype.Mx_X=function(x){return x^this.LFSR2(x)},TwoFish.prototype.Mx_Y=function(x){return x^this.LFSR1(x)^this.LFSR2(x)},TwoFish.prototype.RS_rem=function(x){var b,g2,g3;return b=x>>>24&255,g2=255&(b<<1^(0!==(128&b)?G.RS_GF_FDBK:0)),g3=b>>>1^(0!==(1&b)?G.RS_GF_FDBK>>>1:0)^g2,x<<8^g3<<24^g2<<16^g3<<8^b},TwoFish.prototype.RS_MDS_Encode=function(k0,k1){var i,r,_i,_j;for(r=k1,i=_i=0;4>_i;i=++_i)r=this.RS_rem(r);for(r^=k0,i=_j=0;4>_j;i=++_j)r=this.RS_rem(r);return r},TwoFish.prototype.F32=function(x,k32){var b0,b1,b2,b3,k0,k1,k2,k3,m,res;return b0=this.getByte(x,0),b1=this.getByte(x,1),b2=this.getByte(x,2),b3=this.getByte(x,3),k0=k32[0],k1=k32[1],k2=k32[2],k3=k32[3],m=3&this.k64Cnt,res=1===m?this.gMDS0[255&G.P[G.P_01][b0]^this.getByte(k0,0)]^this.gMDS1[255&G.P[G.P_11][b1]^this.getByte(k0,1)]^this.gMDS2[255&G.P[G.P_21][b2]^this.getByte(k0,2)]^this.gMDS3[255&G.P[G.P_31][b3]^this.getByte(k0,3)]:(0===m?(b0=255&G.P[G.P_04][b0]^this.getByte(k3,0),b1=255&G.P[G.P_14][b1]^this.getByte(k3,1),b2=255&G.P[G.P_24][b2]^this.getByte(k3,2),b3=255&G.P[G.P_34][b3]^this.getByte(k3,3)):void 0,0===m||3===m?(b0=255&G.P[G.P_03][b0]^this.getByte(k2,0),b1=255&G.P[G.P_13][b1]^this.getByte(k2,1),b2=255&G.P[G.P_23][b2]^this.getByte(k2,2),b3=255&G.P[G.P_33][b3]^this.getByte(k2,3)):void 0,this.gMDS0[255&G.P[G.P_01][255&G.P[G.P_02][b0]^this.getByte(k1,0)]^this.getByte(k0,0)]^this.gMDS1[255&G.P[G.P_11][255&G.P[G.P_12][b1]^this.getByte(k1,1)]^this.getByte(k0,1)]^this.gMDS2[255&G.P[G.P_21][255&G.P[G.P_22][b2]^this.getByte(k1,2)]^this.getByte(k0,2)]^this.gMDS3[255&G.P[G.P_31][255&G.P[G.P_32][b3]^this.getByte(k1,3)]^this.getByte(k0,3)])},TwoFish.prototype.Fe32_0=function(x){return this.gSBox[0+2*(255&x)]^this.gSBox[1+2*(x>>>8&255)]^this.gSBox[512+2*(x>>>16&255)]^this.gSBox[513+2*(x>>>24&255)]},TwoFish.prototype.Fe32_3=function(x){return this.gSBox[0+2*(x>>>24&255)]^this.gSBox[1+2*(255&x)]^this.gSBox[512+2*(x>>>8&255)]^this.gSBox[513+2*(x>>>16&255)]},TwoFish.prototype._doReset=function(){var A,B,b0,b1,b2,b3,i,j,k0,k1,k2,k3,k32e,k32o,m,m1,mX,mY,p,q,sBoxKeys,_i,_j,_k,_l,_ref,_ref1,_results;if(k32e=[],k32o=[],sBoxKeys=[],m1=[],mX=[],mY=[],this.k64Cnt=this._key.words.length/2,this.k64Cnt<1)throw"Key size less than 64 bits";if(this.k64Cnt>4)throw"Key size larger than 256 bits";for(i=_i=0;256>_i;i=++_i)j=255&G.P[0][i],m1[0]=j,mX[0]=255&this.Mx_X(j),mY[0]=255&this.Mx_Y(j),j=255&G.P[1][i],m1[1]=j,mX[1]=255&this.Mx_X(j),mY[1]=255&this.Mx_Y(j),this.gMDS0[i]=m1[G.P_00]|mX[G.P_00]<<8|mY[G.P_00]<<16|mY[G.P_00]<<24,this.gMDS1[i]=mY[G.P_10]|mY[G.P_10]<<8|mX[G.P_10]<<16|m1[G.P_10]<<24,this.gMDS2[i]=mX[G.P_20]|mY[G.P_20]<<8|m1[G.P_20]<<16|mY[G.P_20]<<24,this.gMDS3[i]=mX[G.P_30]|m1[G.P_30]<<8|mY[G.P_30]<<16|mX[G.P_30]<<24;for(i=_j=0,_ref=this.k64Cnt;_ref>=0?_ref>_j:_j>_ref;i=_ref>=0?++_j:--_j)p=2*i,k32e[i]=this.switchEndianness(this._key.words[p]),k32o[i]=this.switchEndianness(this._key.words[p+1]),sBoxKeys[this.k64Cnt-1-i]=this.RS_MDS_Encode(k32e[i],k32o[i]);for(i=_k=0,_ref1=20;_ref1>=0?_ref1>_k:_k>_ref1;i=_ref1>=0?++_k:--_k)q=i*G.SK_STEP,A=this.F32(q,k32e),B=this.F32(q+G.SK_BUMP,k32o),B=B<<8|B>>>24,A+=B,this.gSubKeys[2*i]=A,A+=B,this.gSubKeys[2*i+1]=A<<G.SK_ROTL|A>>>32-G.SK_ROTL;for(k0=sBoxKeys[0],k1=sBoxKeys[1],k2=sBoxKeys[2],k3=sBoxKeys[3],this.gSBox=[],_results=[],i=_l=0;256>_l;i=++_l)b0=b1=b2=b3=i,m=3&this.k64Cnt,1===m?(this.gSBox[2*i]=this.gMDS0[255&G.P[G.P_01][b0]^this.getByte(k0,0)],this.gSBox[2*i+1]=this.gMDS1[255&G.P[G.P_11][b1]^this.getByte(k0,1)],this.gSBox[2*i+512]=this.gMDS2[255&G.P[G.P_21][b2]^this.getByte(k0,2)],_results.push(this.gSBox[2*i+513]=this.gMDS3[255&G.P[G.P_31][b3]^this.getByte(k0,3)])):(0===m&&(b0=255&G.P[G.P_04][b0]^this.getByte(k3,0),b1=255&G.P[G.P_14][b1]^this.getByte(k3,1),b2=255&G.P[G.P_24][b2]^this.getByte(k3,2),b3=255&G.P[G.P_34][b3]^this.getByte(k3,3)),(0===m||3===m)&&(b0=255&G.P[G.P_03][b0]^this.getByte(k2,0),b1=255&G.P[G.P_13][b1]^this.getByte(k2,1),b2=255&G.P[G.P_23][b2]^this.getByte(k2,2),b3=255&G.P[G.P_33][b3]^this.getByte(k2,3)),this.gSBox[2*i]=this.gMDS0[255&G.P[G.P_01][255&G.P[G.P_02][b0]^this.getByte(k1,0)]^this.getByte(k0,0)],this.gSBox[2*i+1]=this.gMDS1[255&G.P[G.P_11][255&G.P[G.P_12][b1]^this.getByte(k1,1)]^this.getByte(k0,1)],this.gSBox[2*i+512]=this.gMDS2[255&G.P[G.P_21][255&G.P[G.P_22][b2]^this.getByte(k1,2)]^this.getByte(k0,2)],_results.push(this.gSBox[2*i+513]=this.gMDS3[255&G.P[G.P_31][255&G.P[G.P_32][b3]^this.getByte(k1,3)]^this.getByte(k0,3)]));return _results},TwoFish.prototype.scrub=function(){return scrub_vec(this.gSubKeys),scrub_vec(this.gSBox),this._key.scrub()},TwoFish.prototype.decryptBlock=function(M,offset){var k,r,t0,t1,x0,x1,x2,x3,_i;for(null==offset&&(offset=0),x2=this.switchEndianness(M[offset])^this.gSubKeys[4],x3=this.switchEndianness(M[offset+1])^this.gSubKeys[5],x0=this.switchEndianness(M[offset+2])^this.gSubKeys[6],x1=this.switchEndianness(M[offset+3])^this.gSubKeys[7],k=39,r=_i=0;16>_i;r=_i+=2)t0=this.Fe32_0(x2),t1=this.Fe32_3(x3),x1^=t0+2*t1+this.gSubKeys[k--],x0=(x0<<1|x0>>>31)^t0+t1+this.gSubKeys[k--],x1=x1>>>1|x1<<31,t0=this.Fe32_0(x0),t1=this.Fe32_3(x1),x3^=t0+2*t1+this.gSubKeys[k--],x2=(x2<<1|x2>>>31)^t0+t1+this.gSubKeys[k--],x3=x3>>>1|x3<<31;return M[offset]=this.switchEndianness(x0^this.gSubKeys[0]),M[offset+1]=this.switchEndianness(x1^this.gSubKeys[1]),M[offset+2]=this.switchEndianness(x2^this.gSubKeys[2]),M[offset+3]=this.switchEndianness(x3^this.gSubKeys[3])},TwoFish.prototype.encryptBlock=function(M,offset){var k,r,t0,t1,x0,x1,x2,x3,_i;for(null==offset&&(offset=0),x0=this.switchEndianness(M[offset])^this.gSubKeys[0],x1=this.switchEndianness(M[offset+1])^this.gSubKeys[1],x2=this.switchEndianness(M[offset+2])^this.gSubKeys[2],x3=this.switchEndianness(M[offset+3])^this.gSubKeys[3],k=8,r=_i=0;16>_i;r=_i+=2)t0=this.Fe32_0(x0),t1=this.Fe32_3(x1),x2^=t0+t1+this.gSubKeys[k++],x2=x2>>>1|x2<<31,x3=(x3<<1|x3>>>31)^t0+2*t1+this.gSubKeys[k++],t0=this.Fe32_0(x2),t1=this.Fe32_3(x3),x0^=t0+t1+this.gSubKeys[k++],x0=x0>>>1|x0<<31,x1=(x1<<1|x1>>>31)^t0+2*t1+this.gSubKeys[k++];return M[offset]=this.switchEndianness(x2^this.gSubKeys[4]),M[offset+1]=this.switchEndianness(x3^this.gSubKeys[5]),M[offset+2]=this.switchEndianness(x0^this.gSubKeys[6]),M[offset+3]=this.switchEndianness(x1^this.gSubKeys[7])},TwoFish}(BlockCipher)}).call(this)},{"./algbase":174,"./util":195}],195:[function(require,module,exports){(function(){var default_delay,iced,uint_max,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},uint_max=Math.pow(2,32),exports.fixup_uint32=function(x){var ret,x_pos;return ret=x>uint_max||0>x?(x_pos=Math.abs(x)%uint_max,0>x?uint_max-x_pos:x_pos):x},exports.scrub_buffer=function(b){var i,n_full_words;for(n_full_words=b.length>>2,i=0;n_full_words>i;)b.writeUInt32LE(0,i),i+=4;for(;i<b.length;)b.writeUInt8(0,i),i++;return!1},exports.scrub_vec=function(v){var i,_i,_ref;for(i=_i=0,_ref=v.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)v[i]=0;return!1},exports.default_delay=default_delay=function(i,n,cb){var ___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),function(){return function(__iced_k){"undefined"!=typeof setImmediate&&null!==setImmediate?!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/util.iced"}),setImmediate(__iced_deferrals.defer({lineno:37})),__iced_deferrals._fulfill()}(__iced_k):!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/util.iced"}),setTimeout(__iced_deferrals.defer({lineno:39}),1),__iced_deferrals._fulfill()}(__iced_k)}}(this)(function(){return function(){return cb()}}(this))},exports.buffer_cmp_ule=function(b1,b2){var I,J,i,j,x,y;for(i=j=0,I=b1.length,J=b2.length;I>i&&0===b1.readUInt8(i);)i++;for(;J>j&&0===b2.readUInt8(j);)j++;if(I-i>J-j)return 1;if(J-j>I-i)return-1;for(;I>i;){if((x=b1.readUInt8(i))<(y=b2.readUInt8(j)))return-1;if(x>y)return 1;i++,j++}return 0},exports.bulk=function(n_input_bytes,_arg,_arg1){var call_ph,cb,default_n,delay,finalize,i,left,n,n_words,progress_hook,ret,total_words,update,what,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),update=_arg.update,finalize=_arg.finalize,default_n=_arg.default_n,delay=_arg1.delay,n=_arg1.n,cb=_arg1.cb,what=_arg1.what,progress_hook=_arg1.progress_hook,i=0,left=0,total_words=Math.ceil(n_input_bytes/4),delay||(delay=default_delay),n||(n=default_n),call_ph=function(i){return"function"==typeof progress_hook?progress_hook({what:what,i:i,total:total_words}):void 0},call_ph(0),function(){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},(left=total_words-i)>0?(n_words=Math.min(n,left),update(i,i+n_words),call_ph(i),function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/keybase/triplesec/src/util.iced",funcname:"bulk"}),delay(i,total_words,__iced_deferrals.defer({lineno:97})),__iced_deferrals._fulfill()}(function(){return _next(i+=n_words)}),void 0):_break()})(__iced_k)}}(this)(function(){return function(){return call_ph(total_words),ret=finalize(),cb(ret)}}(this))}}).call(this)},{"iced-runtime":118}],196:[function(require,module,exports){(function(Buffer){(function(){var WordArray,X64Word,X64WordArray,buffer_to_ui8a,endian_reverse,ui8a_to_buffer,util;util=require("./util"),buffer_to_ui8a=function(b){var i,ret,_i,_ref;for(ret=new Uint8Array(b.length),i=_i=0,_ref=b.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)ret[i]=b.readUInt8(i);return ret},ui8a_to_buffer=function(v){var i,ret,_i,_ref;for(ret=new Buffer(v.length),i=_i=0,_ref=v.length;_ref>=0?_ref>_i:_i>_ref;i=_ref>=0?++_i:--_i)ret.writeUInt8(v[i],i);return ret},endian_reverse=function(x){return x>>>24&255|(x>>>16&255)<<8|(x>>>8&255)<<16|(255&x)<<24},exports.WordArray=WordArray=function(){function WordArray(words,sigBytes){this.words=words||[],this.sigBytes=null!=sigBytes?sigBytes:4*this.words.length}return WordArray.prototype.concat=function(wordArray){var i,thatByte,thatSigBytes,thatWords,_i;if(thatWords=wordArray.words,thatSigBytes=wordArray.sigBytes,this.clamp(),this.sigBytes%4)for(i=_i=0;thatSigBytes>=0?thatSigBytes>_i:_i>thatSigBytes;i=thatSigBytes>=0?++_i:--_i)thatByte=thatWords[i>>>2]>>>24-i%4*8&255,this.words[this.sigBytes+i>>>2]|=thatByte<<24-(this.sigBytes+i)%4*8;else this.words=this.words.concat(thatWords);return this.sigBytes+=thatSigBytes,this},WordArray.prototype.clamp=function(){return this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this},WordArray.prototype.clone=function(){return new WordArray(this.words.slice(0),this.sigBytes)},WordArray.prototype.to_buffer=function(){var ch,out,p,w,_i,_len,_ref;for(out=new Buffer(this.sigBytes),p=0,_ref=this.words,_i=0,_len=_ref.length;_len>_i;_i++)w=_ref[_i],this.sigBytes-p>=4&&(w=util.fixup_uint32(w),out.writeUInt32BE(w,p),p+=4);for(;p<this.sigBytes;)ch=this.words[p>>>2]>>>24-p%4*8&255,out.writeUInt8(ch,p),p++;return out},WordArray.prototype.endian_reverse=function(){var i,w,_i,_len,_ref;for(_ref=this.words,i=_i=0,_len=_ref.length;_len>_i;i=++_i)w=_ref[i],this.words[i]=endian_reverse(w);return this},WordArray.prototype.split=function(n){var i,out,sz;if(this.sigBytes%4!==0||this.words.length%n!==0)throw new Error("bad key alignment");return sz=this.words.length/n,out=function(){var _i,_ref,_results;for(_results=[],i=_i=0,_ref=this.words.length;sz>0?_ref>_i:_i>_ref;i=_i+=sz)_results.push(new WordArray(this.words.slice(i,i+sz)));return _results}.call(this)},WordArray.prototype.to_utf8=function(){return this.to_buffer().toString("utf8")},WordArray.prototype.to_hex=function(){return this.to_buffer().toString("hex")},WordArray.prototype.to_ui8a=function(){return buffer_to_ui8a(this.to_buffer())},WordArray.alloc=function(b){return Buffer.isBuffer(b)?WordArray.from_buffer(b):"object"==typeof b&&b instanceof WordArray?b:"string"==typeof b?WordArray.from_hex(b):null},WordArray.from_buffer=function(b){var ch,last,p,words;for(words=[],p=0;b.length-p>=4;)words.push(b.readUInt32BE(p)),p+=4;if(p<b.length){for(last=0;p<b.length;)ch=b.readUInt8(p),last|=ch<<24-p%4*8,p++;last=util.fixup_uint32(last),words.push(last)}return new WordArray(words,b.length)},WordArray.from_buffer_le=function(b){var ch,last,p,words;for(words=[],p=0;b.length-p>=4;)words.push(b.readUInt32LE(p)),p+=4;if(p<b.length){for(last=0;p<b.length;)ch=b.readUInt8(p),last|=ch<<p%4*8,p++;last=util.fixup_uint32(last),words.push(last)}return new WordArray(words,b.length)},WordArray.from_utf8=function(s){return WordArray.from_buffer(new Buffer(s,"utf8"))},WordArray.from_utf8_le=function(s){return WordArray.from_buffer_le(new Buffer(s,"utf8"))},WordArray.from_hex=function(s){return WordArray.from_buffer(new Buffer(s,"hex"))},WordArray.from_hex_le=function(s){return WordArray.from_buffer_le(new Buffer(s,"hex"))},WordArray.from_ui8a=function(v){return WordArray.from_buffer(ui8a_to_buffer(v))},WordArray.from_i32a=function(v){return new WordArray(Array.apply([],v))},WordArray.prototype.equal=function(wa){var i,ret,w,_i,_len,_ref;if(ret=!0,wa.sigBytes!==this.sigBytes)ret=!1;else for(_ref=this.words,i=_i=0,_len=_ref.length;_len>_i;i=++_i)w=_ref[i],util.fixup_uint32(w)!==util.fixup_uint32(wa.words[i])&&(ret=!1);return ret},WordArray.prototype.xor=function(wa2,_arg){var dst_offset,i,n_words,src_offset,tmp,_i;if(dst_offset=_arg.dst_offset,src_offset=_arg.src_offset,n_words=_arg.n_words,dst_offset||(dst_offset=0),src_offset||(src_offset=0),null==n_words&&(n_words=wa2.words.length-src_offset),this.words.length<dst_offset+n_words)throw new Error("dest range exceeded ("+this.words.length+" < "+(dst_offset+n_words)+")");if(wa2.words.length<src_offset+n_words)throw new Error("source range exceeded");for(i=_i=0;n_words>=0?n_words>_i:_i>n_words;i=n_words>=0?++_i:--_i)tmp=this.words[dst_offset+i]^wa2.words[src_offset+i],this.words[dst_offset+i]=util.fixup_uint32(tmp);return this},WordArray.prototype.truncate=function(n_bytes){var n_words;if(!(n_bytes<=this.sigBytes))throw new Error("Cannot truncate: "+n_bytes+" > "+this.sigBytes);return n_words=Math.ceil(n_bytes/4),new WordArray(this.words.slice(0,n_words),n_bytes)},WordArray.prototype.unshift=function(n_words){var ret;return this.words.length>=n_words?(ret=this.words.splice(0,n_words),this.sigBytes-=4*n_words,new WordArray(ret)):null},WordArray.prototype.is_scrubbed=function(){var w,_i,_len,_ref;for(_ref=this.words,_i=0,_len=_ref.length;_len>_i;_i++)if(w=_ref[_i],0!==w)return!1;return!0},WordArray.prototype.scrub=function(){return util.scrub_vec(this.words)},WordArray.prototype.cmp_ule=function(wa2){return util.buffer_cmp_ule(this.to_buffer(),wa2.to_buffer())},WordArray.prototype.slice=function(low,hi){var n,sb;if(n=this.words.length,!(hi>low&&n>=hi))throw new Error("Bad WordArray slice ["+low+","+hi+")] when only "+n+" avail");return sb=4*(hi-low),hi===n&&(sb-=4*n-this.sigBytes),new WordArray(this.words.slice(low,hi),sb)},WordArray}(),exports.X64Word=X64Word=function(){function X64Word(high,low){this.high=high,this.low=low}return X64Word.prototype.clone=function(){return new X64Word(this.high,this.low)},X64Word}(),exports.X64WordArray=X64WordArray=function(){function X64WordArray(words,sigBytes){this.sigBytes=sigBytes,this.words=words||[],this.sigBytes||(this.sigBytes=8*this.words.length)}return X64WordArray.prototype.toX32=function(){var v,w,_i,_len,_ref;for(v=[],_ref=this.words,_i=0,_len=_ref.length;_len>_i;_i++)w=_ref[_i],v.push(w.high),v.push(w.low);return new WordArray(v,this.sigBytes)},X64WordArray.prototype.clone=function(){var w;return new X64WordArray(function(){var _i,_len,_ref,_results;for(_ref=this.words,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)w=_ref[_i],_results.push(w.clone());return _results}.call(this),this.sigBytes)},X64WordArray}(),exports.buffer_to_ui8a=buffer_to_ui8a,exports.ui8a_to_buffer=ui8a_to_buffer,exports.endian_reverse=endian_reverse}).call(this)}).call(this,require("buffer").Buffer)},{"./util":195,buffer:80}],197:[function(require,module,exports){(function(){var Lock,NamedLock,Table,iced,__iced_k,__iced_k_noop,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},exports.Lock=Lock=function(){function Lock(){this._open=!0,this._waiters=[]}return Lock.prototype.acquire=function(cb){return this._open?(this._open=!1,cb()):this._waiters.push(cb)},Lock.prototype.release=function(){var w;return this._waiters.length?(w=this._waiters.shift())():this._open=!0},Lock.prototype.open=function(){return this._open},Lock}(),NamedLock=function(_super){function NamedLock(tab,name){this.tab=tab,this.name=name,NamedLock.__super__.constructor.call(this),this.refs=0}return __extends(NamedLock,_super),NamedLock.prototype.incref=function(){return++this.refs},NamedLock.prototype.decref=function(){return--this.refs},NamedLock.prototype.release=function(){return NamedLock.__super__.release.call(this),0===this.decref()?delete this.tab.locks[this.name]:void 0},NamedLock}(Lock),exports.Table=Table=function(){function Table(){this.locks={}}return Table.prototype.create=function(name){var l;return l=new NamedLock(this,name),this.locks[name]=l},Table.prototype.acquire=function(name,cb,wait){var l,was_open,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),l=this.locks[name]||this.create(name),was_open=l._open,l.incref(),function(){return function(__iced_k){return wait||l._open?void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/home/max/src/iced/iced-lock/index.iced",funcname:"Table.acquire"}),l.acquire(__iced_deferrals.defer({lineno:47})),__iced_deferrals._fulfill()}(__iced_k):__iced_k(l=null)}}(this)(function(){return function(){return cb(l,was_open)}}(this))},Table.prototype.lookup=function(name){return this.locks[name]},Table}()}).call(this)},{"iced-runtime":118}],198:[function(require,module,exports){(function(){var Generator,iced,__iced_k,__iced_k_noop;iced=require("iced-runtime"),__iced_k=__iced_k_noop=function(){},Generator=Generator=function(){function Generator(opts){opts=opts||{},this.lazy_loop_delay=opts.lazy_loop_delay||30,this.loop_delay=opts.loop_delay||5,this.work_min=opts.work_min||1,this.auto_stop_bits=opts.auto_stop_bits||4096,this.max_bits_per_delta=opts.max_bits_per_delta||4,this.auto_stop=opts.auto_stop?opts.auto_stop:!0,this.entropies=[],this.running=!0,this.is_generating=!1,this.timer_race_loop()}return Generator.prototype.generate=function(bits_wanted,cb){var e,harvested_bits,res,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this.is_generating=!0,this.running||this.resume(),harvested_bits=0,res=[],function(_this){return function(__iced_k){var _results,_while;_results=[],(_while=function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},bits_wanted>harvested_bits?void!function(__iced_k){return _this.entropies.length?(e=_this.entropies.splice(0,1)[0],harvested_bits+=e[1],__iced_k(res.push(e[0]))):void!function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/chris/git/more-entropy/src/generator.iced",funcname:"Generator.generate"}),_this.delay(__iced_deferrals.defer({lineno:28})),__iced_deferrals._fulfill()}(__iced_k)}(_next):_break()})(__iced_k)}}(this)(function(_this){return function(){return _this.auto_stop&&_this.stop(),_this.is_generating=!1,cb(res)}}(this))},Generator.prototype.stop=function(){return this.running=!1},Generator.prototype.resume=function(){return this.running=!0,this.timer_race_loop()},Generator.prototype.reset=function(){return this.entropies=[],this.total_bits=0},Generator.prototype.count_unused_bits=function(){var bits,e,_i,_len,_ref;for(bits=0,_ref=this.entropies,_i=0,_len=_ref.length;_len>_i;_i++)e=_ref[_i],bits+=e[1];return bits},Generator.prototype.delay=function(cb){var delay,___iced_passed_deferral,__iced_deferrals,__iced_k;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),delay=this.is_generating?this.loop_delay:this.lazy_loop_delay,function(){return function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/chris/git/more-entropy/src/generator.iced",funcname:"Generator.delay"}),setTimeout(__iced_deferrals.defer({lineno:50}),delay),__iced_deferrals._fulfill()}}(this)(function(){return function(){return cb()}}(this))},Generator.prototype.timer_race_loop=function(){var ___iced_passed_deferral,__iced_k,_results,_while;__iced_k=__iced_k_noop,___iced_passed_deferral=iced.findDeferral(arguments),this._last_count=null,_results=[],(_while=function(_this){var count,delta,entropy,v,__iced_deferrals;return function(__iced_k){var _break,_continue,_next;return _break=function(){return __iced_k(_results)},_continue=function(){return iced.trampoline(function(){return _while(__iced_k)})},_next=function(__iced_next_arg){return _results.push(__iced_next_arg),_continue()},_this.running?(_this.count_unused_bits()<_this.auto_stop_bits&&(count=_this.millisecond_count(),null!=_this._last_count&&(delta=count-_this._last_count)&&(entropy=Math.floor(_this.log_2(Math.abs(delta))),entropy=Math.min(_this.max_bits_per_delta,entropy),v=[delta,entropy],_this.entropies.push(v)),_this._last_count=count),void function(__iced_k){__iced_deferrals=new iced.Deferrals(__iced_k,{parent:___iced_passed_deferral,filename:"/Users/chris/git/more-entropy/src/generator.iced",funcname:"Generator.timer_race_loop"}),_this.delay(__iced_deferrals.defer({lineno:64})),__iced_deferrals._fulfill()}(_next)):_break()}}(this))(__iced_k)},Generator.prototype.log_2=function(x){return Math.log(x)/Math.LN2},Generator.prototype.millisecond_count=function(){var d,i,x;for(d=Date.now(),i=x=0;Date.now()<d+this.work_min+1;)i++,x=Math.sin(Math.sqrt(Math.log(i+x)));return i},Generator}(),"undefined"!=typeof window&&null!==window&&(window.Generator=Generator),"undefined"!=typeof exports&&null!==exports&&(exports.Generator=Generator)}).call(this)},{"iced-runtime":118}],199:[function(require,module,exports){(function(){exports.Generator=require("../lib/generator").Generator}).call(this)},{"../lib/generator":198}],200:[function(require,module){(function(Buffer){!function(nacl){"use strict";function ts64(x,i,h,l){x[i]=h>>24&255,x[i+1]=h>>16&255,x[i+2]=h>>8&255,x[i+3]=255&h,x[i+4]=l>>24&255,x[i+5]=l>>16&255,x[i+6]=l>>8&255,x[i+7]=255&l}function vn(x,xi,y,yi,n){var i,d=0;for(i=0;n>i;i++)d|=x[xi+i]^y[yi+i];return(1&d-1>>>8)-1}function crypto_verify_16(x,xi,y,yi){return vn(x,xi,y,yi,16)}function crypto_verify_32(x,xi,y,yi){return vn(x,xi,y,yi,32)}function core_salsa20(o,p,k,c){for(var u,j0=255&c[0]|(255&c[1])<<8|(255&c[2])<<16|(255&c[3])<<24,j1=255&k[0]|(255&k[1])<<8|(255&k[2])<<16|(255&k[3])<<24,j2=255&k[4]|(255&k[5])<<8|(255&k[6])<<16|(255&k[7])<<24,j3=255&k[8]|(255&k[9])<<8|(255&k[10])<<16|(255&k[11])<<24,j4=255&k[12]|(255&k[13])<<8|(255&k[14])<<16|(255&k[15])<<24,j5=255&c[4]|(255&c[5])<<8|(255&c[6])<<16|(255&c[7])<<24,j6=255&p[0]|(255&p[1])<<8|(255&p[2])<<16|(255&p[3])<<24,j7=255&p[4]|(255&p[5])<<8|(255&p[6])<<16|(255&p[7])<<24,j8=255&p[8]|(255&p[9])<<8|(255&p[10])<<16|(255&p[11])<<24,j9=255&p[12]|(255&p[13])<<8|(255&p[14])<<16|(255&p[15])<<24,j10=255&c[8]|(255&c[9])<<8|(255&c[10])<<16|(255&c[11])<<24,j11=255&k[16]|(255&k[17])<<8|(255&k[18])<<16|(255&k[19])<<24,j12=255&k[20]|(255&k[21])<<8|(255&k[22])<<16|(255&k[23])<<24,j13=255&k[24]|(255&k[25])<<8|(255&k[26])<<16|(255&k[27])<<24,j14=255&k[28]|(255&k[29])<<8|(255&k[30])<<16|(255&k[31])<<24,j15=255&c[12]|(255&c[13])<<8|(255&c[14])<<16|(255&c[15])<<24,x0=j0,x1=j1,x2=j2,x3=j3,x4=j4,x5=j5,x6=j6,x7=j7,x8=j8,x9=j9,x10=j10,x11=j11,x12=j12,x13=j13,x14=j14,x15=j15,i=0;20>i;i+=2)u=x0+x12|0,x4^=u<<7|u>>>25,u=x4+x0|0,x8^=u<<9|u>>>23,u=x8+x4|0,x12^=u<<13|u>>>19,u=x12+x8|0,x0^=u<<18|u>>>14,u=x5+x1|0,x9^=u<<7|u>>>25,u=x9+x5|0,x13^=u<<9|u>>>23,u=x13+x9|0,x1^=u<<13|u>>>19,u=x1+x13|0,x5^=u<<18|u>>>14,u=x10+x6|0,x14^=u<<7|u>>>25,u=x14+x10|0,x2^=u<<9|u>>>23,u=x2+x14|0,x6^=u<<13|u>>>19,u=x6+x2|0,x10^=u<<18|u>>>14,u=x15+x11|0,x3^=u<<7|u>>>25,u=x3+x15|0,x7^=u<<9|u>>>23,u=x7+x3|0,x11^=u<<13|u>>>19,u=x11+x7|0,x15^=u<<18|u>>>14,u=x0+x3|0,x1^=u<<7|u>>>25,u=x1+x0|0,x2^=u<<9|u>>>23,u=x2+x1|0,x3^=u<<13|u>>>19,u=x3+x2|0,x0^=u<<18|u>>>14,u=x5+x4|0,x6^=u<<7|u>>>25,u=x6+x5|0,x7^=u<<9|u>>>23,u=x7+x6|0,x4^=u<<13|u>>>19,u=x4+x7|0,x5^=u<<18|u>>>14,u=x10+x9|0,x11^=u<<7|u>>>25,u=x11+x10|0,x8^=u<<9|u>>>23,u=x8+x11|0,x9^=u<<13|u>>>19,u=x9+x8|0,x10^=u<<18|u>>>14,u=x15+x14|0,x12^=u<<7|u>>>25,u=x12+x15|0,x13^=u<<9|u>>>23,u=x13+x12|0,x14^=u<<13|u>>>19,u=x14+x13|0,x15^=u<<18|u>>>14;
x0=x0+j0|0,x1=x1+j1|0,x2=x2+j2|0,x3=x3+j3|0,x4=x4+j4|0,x5=x5+j5|0,x6=x6+j6|0,x7=x7+j7|0,x8=x8+j8|0,x9=x9+j9|0,x10=x10+j10|0,x11=x11+j11|0,x12=x12+j12|0,x13=x13+j13|0,x14=x14+j14|0,x15=x15+j15|0,o[0]=x0>>>0&255,o[1]=x0>>>8&255,o[2]=x0>>>16&255,o[3]=x0>>>24&255,o[4]=x1>>>0&255,o[5]=x1>>>8&255,o[6]=x1>>>16&255,o[7]=x1>>>24&255,o[8]=x2>>>0&255,o[9]=x2>>>8&255,o[10]=x2>>>16&255,o[11]=x2>>>24&255,o[12]=x3>>>0&255,o[13]=x3>>>8&255,o[14]=x3>>>16&255,o[15]=x3>>>24&255,o[16]=x4>>>0&255,o[17]=x4>>>8&255,o[18]=x4>>>16&255,o[19]=x4>>>24&255,o[20]=x5>>>0&255,o[21]=x5>>>8&255,o[22]=x5>>>16&255,o[23]=x5>>>24&255,o[24]=x6>>>0&255,o[25]=x6>>>8&255,o[26]=x6>>>16&255,o[27]=x6>>>24&255,o[28]=x7>>>0&255,o[29]=x7>>>8&255,o[30]=x7>>>16&255,o[31]=x7>>>24&255,o[32]=x8>>>0&255,o[33]=x8>>>8&255,o[34]=x8>>>16&255,o[35]=x8>>>24&255,o[36]=x9>>>0&255,o[37]=x9>>>8&255,o[38]=x9>>>16&255,o[39]=x9>>>24&255,o[40]=x10>>>0&255,o[41]=x10>>>8&255,o[42]=x10>>>16&255,o[43]=x10>>>24&255,o[44]=x11>>>0&255,o[45]=x11>>>8&255,o[46]=x11>>>16&255,o[47]=x11>>>24&255,o[48]=x12>>>0&255,o[49]=x12>>>8&255,o[50]=x12>>>16&255,o[51]=x12>>>24&255,o[52]=x13>>>0&255,o[53]=x13>>>8&255,o[54]=x13>>>16&255,o[55]=x13>>>24&255,o[56]=x14>>>0&255,o[57]=x14>>>8&255,o[58]=x14>>>16&255,o[59]=x14>>>24&255,o[60]=x15>>>0&255,o[61]=x15>>>8&255,o[62]=x15>>>16&255,o[63]=x15>>>24&255}function core_hsalsa20(o,p,k,c){for(var u,j0=255&c[0]|(255&c[1])<<8|(255&c[2])<<16|(255&c[3])<<24,j1=255&k[0]|(255&k[1])<<8|(255&k[2])<<16|(255&k[3])<<24,j2=255&k[4]|(255&k[5])<<8|(255&k[6])<<16|(255&k[7])<<24,j3=255&k[8]|(255&k[9])<<8|(255&k[10])<<16|(255&k[11])<<24,j4=255&k[12]|(255&k[13])<<8|(255&k[14])<<16|(255&k[15])<<24,j5=255&c[4]|(255&c[5])<<8|(255&c[6])<<16|(255&c[7])<<24,j6=255&p[0]|(255&p[1])<<8|(255&p[2])<<16|(255&p[3])<<24,j7=255&p[4]|(255&p[5])<<8|(255&p[6])<<16|(255&p[7])<<24,j8=255&p[8]|(255&p[9])<<8|(255&p[10])<<16|(255&p[11])<<24,j9=255&p[12]|(255&p[13])<<8|(255&p[14])<<16|(255&p[15])<<24,j10=255&c[8]|(255&c[9])<<8|(255&c[10])<<16|(255&c[11])<<24,j11=255&k[16]|(255&k[17])<<8|(255&k[18])<<16|(255&k[19])<<24,j12=255&k[20]|(255&k[21])<<8|(255&k[22])<<16|(255&k[23])<<24,j13=255&k[24]|(255&k[25])<<8|(255&k[26])<<16|(255&k[27])<<24,j14=255&k[28]|(255&k[29])<<8|(255&k[30])<<16|(255&k[31])<<24,j15=255&c[12]|(255&c[13])<<8|(255&c[14])<<16|(255&c[15])<<24,x0=j0,x1=j1,x2=j2,x3=j3,x4=j4,x5=j5,x6=j6,x7=j7,x8=j8,x9=j9,x10=j10,x11=j11,x12=j12,x13=j13,x14=j14,x15=j15,i=0;20>i;i+=2)u=x0+x12|0,x4^=u<<7|u>>>25,u=x4+x0|0,x8^=u<<9|u>>>23,u=x8+x4|0,x12^=u<<13|u>>>19,u=x12+x8|0,x0^=u<<18|u>>>14,u=x5+x1|0,x9^=u<<7|u>>>25,u=x9+x5|0,x13^=u<<9|u>>>23,u=x13+x9|0,x1^=u<<13|u>>>19,u=x1+x13|0,x5^=u<<18|u>>>14,u=x10+x6|0,x14^=u<<7|u>>>25,u=x14+x10|0,x2^=u<<9|u>>>23,u=x2+x14|0,x6^=u<<13|u>>>19,u=x6+x2|0,x10^=u<<18|u>>>14,u=x15+x11|0,x3^=u<<7|u>>>25,u=x3+x15|0,x7^=u<<9|u>>>23,u=x7+x3|0,x11^=u<<13|u>>>19,u=x11+x7|0,x15^=u<<18|u>>>14,u=x0+x3|0,x1^=u<<7|u>>>25,u=x1+x0|0,x2^=u<<9|u>>>23,u=x2+x1|0,x3^=u<<13|u>>>19,u=x3+x2|0,x0^=u<<18|u>>>14,u=x5+x4|0,x6^=u<<7|u>>>25,u=x6+x5|0,x7^=u<<9|u>>>23,u=x7+x6|0,x4^=u<<13|u>>>19,u=x4+x7|0,x5^=u<<18|u>>>14,u=x10+x9|0,x11^=u<<7|u>>>25,u=x11+x10|0,x8^=u<<9|u>>>23,u=x8+x11|0,x9^=u<<13|u>>>19,u=x9+x8|0,x10^=u<<18|u>>>14,u=x15+x14|0,x12^=u<<7|u>>>25,u=x12+x15|0,x13^=u<<9|u>>>23,u=x13+x12|0,x14^=u<<13|u>>>19,u=x14+x13|0,x15^=u<<18|u>>>14;o[0]=x0>>>0&255,o[1]=x0>>>8&255,o[2]=x0>>>16&255,o[3]=x0>>>24&255,o[4]=x5>>>0&255,o[5]=x5>>>8&255,o[6]=x5>>>16&255,o[7]=x5>>>24&255,o[8]=x10>>>0&255,o[9]=x10>>>8&255,o[10]=x10>>>16&255,o[11]=x10>>>24&255,o[12]=x15>>>0&255,o[13]=x15>>>8&255,o[14]=x15>>>16&255,o[15]=x15>>>24&255,o[16]=x6>>>0&255,o[17]=x6>>>8&255,o[18]=x6>>>16&255,o[19]=x6>>>24&255,o[20]=x7>>>0&255,o[21]=x7>>>8&255,o[22]=x7>>>16&255,o[23]=x7>>>24&255,o[24]=x8>>>0&255,o[25]=x8>>>8&255,o[26]=x8>>>16&255,o[27]=x8>>>24&255,o[28]=x9>>>0&255,o[29]=x9>>>8&255,o[30]=x9>>>16&255,o[31]=x9>>>24&255}function crypto_core_salsa20(out,inp,k,c){core_salsa20(out,inp,k,c)}function crypto_core_hsalsa20(out,inp,k,c){core_hsalsa20(out,inp,k,c)}function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k){var u,i,z=new Uint8Array(16),x=new Uint8Array(64);for(i=0;16>i;i++)z[i]=0;for(i=0;8>i;i++)z[i]=n[i];for(;b>=64;){for(crypto_core_salsa20(x,z,k,sigma),i=0;64>i;i++)c[cpos+i]=m[mpos+i]^x[i];for(u=1,i=8;16>i;i++)u=u+(255&z[i])|0,z[i]=255&u,u>>>=8;b-=64,cpos+=64,mpos+=64}if(b>0)for(crypto_core_salsa20(x,z,k,sigma),i=0;b>i;i++)c[cpos+i]=m[mpos+i]^x[i];return 0}function crypto_stream_salsa20(c,cpos,b,n,k){var u,i,z=new Uint8Array(16),x=new Uint8Array(64);for(i=0;16>i;i++)z[i]=0;for(i=0;8>i;i++)z[i]=n[i];for(;b>=64;){for(crypto_core_salsa20(x,z,k,sigma),i=0;64>i;i++)c[cpos+i]=x[i];for(u=1,i=8;16>i;i++)u=u+(255&z[i])|0,z[i]=255&u,u>>>=8;b-=64,cpos+=64}if(b>0)for(crypto_core_salsa20(x,z,k,sigma),i=0;b>i;i++)c[cpos+i]=x[i];return 0}function crypto_stream(c,cpos,d,n,k){var s=new Uint8Array(32);crypto_core_hsalsa20(s,n,k,sigma);for(var sn=new Uint8Array(8),i=0;8>i;i++)sn[i]=n[i+16];return crypto_stream_salsa20(c,cpos,d,sn,s)}function crypto_stream_xor(c,cpos,m,mpos,d,n,k){var s=new Uint8Array(32);crypto_core_hsalsa20(s,n,k,sigma);for(var sn=new Uint8Array(8),i=0;8>i;i++)sn[i]=n[i+16];return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s)}function crypto_onetimeauth(out,outpos,m,mpos,n,k){var s=new poly1305(k);return s.update(m,mpos,n),s.finish(out,outpos),0}function crypto_onetimeauth_verify(h,hpos,m,mpos,n,k){var x=new Uint8Array(16);return crypto_onetimeauth(x,0,m,mpos,n,k),crypto_verify_16(h,hpos,x,0)}function crypto_secretbox(c,m,d,n,k){var i;if(32>d)return-1;for(crypto_stream_xor(c,0,m,0,d,n,k),crypto_onetimeauth(c,16,c,32,d-32,c),i=0;16>i;i++)c[i]=0;return 0}function crypto_secretbox_open(m,c,d,n,k){var i,x=new Uint8Array(32);if(32>d)return-1;if(crypto_stream(x,0,32,n,k),0!==crypto_onetimeauth_verify(c,16,c,32,d-32,x))return-1;for(crypto_stream_xor(m,0,c,0,d,n,k),i=0;32>i;i++)m[i]=0;return 0}function set25519(r,a){var i;for(i=0;16>i;i++)r[i]=0|a[i]}function car25519(o){var i,v,c=1;for(i=0;16>i;i++)v=o[i]+c+65535,c=Math.floor(v/65536),o[i]=v-65536*c;o[0]+=c-1+37*(c-1)}function sel25519(p,q,b){for(var t,c=~(b-1),i=0;16>i;i++)t=c&(p[i]^q[i]),p[i]^=t,q[i]^=t}function pack25519(o,n){var i,j,b,m=gf(),t=gf();for(i=0;16>i;i++)t[i]=n[i];for(car25519(t),car25519(t),car25519(t),j=0;2>j;j++){for(m[0]=t[0]-65517,i=1;15>i;i++)m[i]=t[i]-65535-(m[i-1]>>16&1),m[i-1]&=65535;m[15]=t[15]-32767-(m[14]>>16&1),b=m[15]>>16&1,m[14]&=65535,sel25519(t,m,1-b)}for(i=0;16>i;i++)o[2*i]=255&t[i],o[2*i+1]=t[i]>>8}function neq25519(a,b){var c=new Uint8Array(32),d=new Uint8Array(32);return pack25519(c,a),pack25519(d,b),crypto_verify_32(c,0,d,0)}function par25519(a){var d=new Uint8Array(32);return pack25519(d,a),1&d[0]}function unpack25519(o,n){var i;for(i=0;16>i;i++)o[i]=n[2*i]+(n[2*i+1]<<8);o[15]&=32767}function A(o,a,b){for(var i=0;16>i;i++)o[i]=a[i]+b[i]}function Z(o,a,b){for(var i=0;16>i;i++)o[i]=a[i]-b[i]}function M(o,a,b){var v,c,t0=0,t1=0,t2=0,t3=0,t4=0,t5=0,t6=0,t7=0,t8=0,t9=0,t10=0,t11=0,t12=0,t13=0,t14=0,t15=0,t16=0,t17=0,t18=0,t19=0,t20=0,t21=0,t22=0,t23=0,t24=0,t25=0,t26=0,t27=0,t28=0,t29=0,t30=0,b0=b[0],b1=b[1],b2=b[2],b3=b[3],b4=b[4],b5=b[5],b6=b[6],b7=b[7],b8=b[8],b9=b[9],b10=b[10],b11=b[11],b12=b[12],b13=b[13],b14=b[14],b15=b[15];v=a[0],t0+=v*b0,t1+=v*b1,t2+=v*b2,t3+=v*b3,t4+=v*b4,t5+=v*b5,t6+=v*b6,t7+=v*b7,t8+=v*b8,t9+=v*b9,t10+=v*b10,t11+=v*b11,t12+=v*b12,t13+=v*b13,t14+=v*b14,t15+=v*b15,v=a[1],t1+=v*b0,t2+=v*b1,t3+=v*b2,t4+=v*b3,t5+=v*b4,t6+=v*b5,t7+=v*b6,t8+=v*b7,t9+=v*b8,t10+=v*b9,t11+=v*b10,t12+=v*b11,t13+=v*b12,t14+=v*b13,t15+=v*b14,t16+=v*b15,v=a[2],t2+=v*b0,t3+=v*b1,t4+=v*b2,t5+=v*b3,t6+=v*b4,t7+=v*b5,t8+=v*b6,t9+=v*b7,t10+=v*b8,t11+=v*b9,t12+=v*b10,t13+=v*b11,t14+=v*b12,t15+=v*b13,t16+=v*b14,t17+=v*b15,v=a[3],t3+=v*b0,t4+=v*b1,t5+=v*b2,t6+=v*b3,t7+=v*b4,t8+=v*b5,t9+=v*b6,t10+=v*b7,t11+=v*b8,t12+=v*b9,t13+=v*b10,t14+=v*b11,t15+=v*b12,t16+=v*b13,t17+=v*b14,t18+=v*b15,v=a[4],t4+=v*b0,t5+=v*b1,t6+=v*b2,t7+=v*b3,t8+=v*b4,t9+=v*b5,t10+=v*b6,t11+=v*b7,t12+=v*b8,t13+=v*b9,t14+=v*b10,t15+=v*b11,t16+=v*b12,t17+=v*b13,t18+=v*b14,t19+=v*b15,v=a[5],t5+=v*b0,t6+=v*b1,t7+=v*b2,t8+=v*b3,t9+=v*b4,t10+=v*b5,t11+=v*b6,t12+=v*b7,t13+=v*b8,t14+=v*b9,t15+=v*b10,t16+=v*b11,t17+=v*b12,t18+=v*b13,t19+=v*b14,t20+=v*b15,v=a[6],t6+=v*b0,t7+=v*b1,t8+=v*b2,t9+=v*b3,t10+=v*b4,t11+=v*b5,t12+=v*b6,t13+=v*b7,t14+=v*b8,t15+=v*b9,t16+=v*b10,t17+=v*b11,t18+=v*b12,t19+=v*b13,t20+=v*b14,t21+=v*b15,v=a[7],t7+=v*b0,t8+=v*b1,t9+=v*b2,t10+=v*b3,t11+=v*b4,t12+=v*b5,t13+=v*b6,t14+=v*b7,t15+=v*b8,t16+=v*b9,t17+=v*b10,t18+=v*b11,t19+=v*b12,t20+=v*b13,t21+=v*b14,t22+=v*b15,v=a[8],t8+=v*b0,t9+=v*b1,t10+=v*b2,t11+=v*b3,t12+=v*b4,t13+=v*b5,t14+=v*b6,t15+=v*b7,t16+=v*b8,t17+=v*b9,t18+=v*b10,t19+=v*b11,t20+=v*b12,t21+=v*b13,t22+=v*b14,t23+=v*b15,v=a[9],t9+=v*b0,t10+=v*b1,t11+=v*b2,t12+=v*b3,t13+=v*b4,t14+=v*b5,t15+=v*b6,t16+=v*b7,t17+=v*b8,t18+=v*b9,t19+=v*b10,t20+=v*b11,t21+=v*b12,t22+=v*b13,t23+=v*b14,t24+=v*b15,v=a[10],t10+=v*b0,t11+=v*b1,t12+=v*b2,t13+=v*b3,t14+=v*b4,t15+=v*b5,t16+=v*b6,t17+=v*b7,t18+=v*b8,t19+=v*b9,t20+=v*b10,t21+=v*b11,t22+=v*b12,t23+=v*b13,t24+=v*b14,t25+=v*b15,v=a[11],t11+=v*b0,t12+=v*b1,t13+=v*b2,t14+=v*b3,t15+=v*b4,t16+=v*b5,t17+=v*b6,t18+=v*b7,t19+=v*b8,t20+=v*b9,t21+=v*b10,t22+=v*b11,t23+=v*b12,t24+=v*b13,t25+=v*b14,t26+=v*b15,v=a[12],t12+=v*b0,t13+=v*b1,t14+=v*b2,t15+=v*b3,t16+=v*b4,t17+=v*b5,t18+=v*b6,t19+=v*b7,t20+=v*b8,t21+=v*b9,t22+=v*b10,t23+=v*b11,t24+=v*b12,t25+=v*b13,t26+=v*b14,t27+=v*b15,v=a[13],t13+=v*b0,t14+=v*b1,t15+=v*b2,t16+=v*b3,t17+=v*b4,t18+=v*b5,t19+=v*b6,t20+=v*b7,t21+=v*b8,t22+=v*b9,t23+=v*b10,t24+=v*b11,t25+=v*b12,t26+=v*b13,t27+=v*b14,t28+=v*b15,v=a[14],t14+=v*b0,t15+=v*b1,t16+=v*b2,t17+=v*b3,t18+=v*b4,t19+=v*b5,t20+=v*b6,t21+=v*b7,t22+=v*b8,t23+=v*b9,t24+=v*b10,t25+=v*b11,t26+=v*b12,t27+=v*b13,t28+=v*b14,t29+=v*b15,v=a[15],t15+=v*b0,t16+=v*b1,t17+=v*b2,t18+=v*b3,t19+=v*b4,t20+=v*b5,t21+=v*b6,t22+=v*b7,t23+=v*b8,t24+=v*b9,t25+=v*b10,t26+=v*b11,t27+=v*b12,t28+=v*b13,t29+=v*b14,t30+=v*b15,t0+=38*t16,t1+=38*t17,t2+=38*t18,t3+=38*t19,t4+=38*t20,t5+=38*t21,t6+=38*t22,t7+=38*t23,t8+=38*t24,t9+=38*t25,t10+=38*t26,t11+=38*t27,t12+=38*t28,t13+=38*t29,t14+=38*t30,c=1,v=t0+c+65535,c=Math.floor(v/65536),t0=v-65536*c,v=t1+c+65535,c=Math.floor(v/65536),t1=v-65536*c,v=t2+c+65535,c=Math.floor(v/65536),t2=v-65536*c,v=t3+c+65535,c=Math.floor(v/65536),t3=v-65536*c,v=t4+c+65535,c=Math.floor(v/65536),t4=v-65536*c,v=t5+c+65535,c=Math.floor(v/65536),t5=v-65536*c,v=t6+c+65535,c=Math.floor(v/65536),t6=v-65536*c,v=t7+c+65535,c=Math.floor(v/65536),t7=v-65536*c,v=t8+c+65535,c=Math.floor(v/65536),t8=v-65536*c,v=t9+c+65535,c=Math.floor(v/65536),t9=v-65536*c,v=t10+c+65535,c=Math.floor(v/65536),t10=v-65536*c,v=t11+c+65535,c=Math.floor(v/65536),t11=v-65536*c,v=t12+c+65535,c=Math.floor(v/65536),t12=v-65536*c,v=t13+c+65535,c=Math.floor(v/65536),t13=v-65536*c,v=t14+c+65535,c=Math.floor(v/65536),t14=v-65536*c,v=t15+c+65535,c=Math.floor(v/65536),t15=v-65536*c,t0+=c-1+37*(c-1),c=1,v=t0+c+65535,c=Math.floor(v/65536),t0=v-65536*c,v=t1+c+65535,c=Math.floor(v/65536),t1=v-65536*c,v=t2+c+65535,c=Math.floor(v/65536),t2=v-65536*c,v=t3+c+65535,c=Math.floor(v/65536),t3=v-65536*c,v=t4+c+65535,c=Math.floor(v/65536),t4=v-65536*c,v=t5+c+65535,c=Math.floor(v/65536),t5=v-65536*c,v=t6+c+65535,c=Math.floor(v/65536),t6=v-65536*c,v=t7+c+65535,c=Math.floor(v/65536),t7=v-65536*c,v=t8+c+65535,c=Math.floor(v/65536),t8=v-65536*c,v=t9+c+65535,c=Math.floor(v/65536),t9=v-65536*c,v=t10+c+65535,c=Math.floor(v/65536),t10=v-65536*c,v=t11+c+65535,c=Math.floor(v/65536),t11=v-65536*c,v=t12+c+65535,c=Math.floor(v/65536),t12=v-65536*c,v=t13+c+65535,c=Math.floor(v/65536),t13=v-65536*c,v=t14+c+65535,c=Math.floor(v/65536),t14=v-65536*c,v=t15+c+65535,c=Math.floor(v/65536),t15=v-65536*c,t0+=c-1+37*(c-1),o[0]=t0,o[1]=t1,o[2]=t2,o[3]=t3,o[4]=t4,o[5]=t5,o[6]=t6,o[7]=t7,o[8]=t8,o[9]=t9,o[10]=t10,o[11]=t11,o[12]=t12,o[13]=t13,o[14]=t14,o[15]=t15}function S(o,a){M(o,a,a)}function inv25519(o,i){var a,c=gf();for(a=0;16>a;a++)c[a]=i[a];for(a=253;a>=0;a--)S(c,c),2!==a&&4!==a&&M(c,c,i);for(a=0;16>a;a++)o[a]=c[a]}function pow2523(o,i){var a,c=gf();for(a=0;16>a;a++)c[a]=i[a];for(a=250;a>=0;a--)S(c,c),1!==a&&M(c,c,i);for(a=0;16>a;a++)o[a]=c[a]}function crypto_scalarmult(q,n,p){var r,i,z=new Uint8Array(32),x=new Float64Array(80),a=gf(),b=gf(),c=gf(),d=gf(),e=gf(),f=gf();for(i=0;31>i;i++)z[i]=n[i];for(z[31]=127&n[31]|64,z[0]&=248,unpack25519(x,p),i=0;16>i;i++)b[i]=x[i],d[i]=a[i]=c[i]=0;for(a[0]=d[0]=1,i=254;i>=0;--i)r=z[i>>>3]>>>(7&i)&1,sel25519(a,b,r),sel25519(c,d,r),A(e,a,c),Z(a,a,c),A(c,b,d),Z(b,b,d),S(d,e),S(f,a),M(a,c,a),M(c,b,e),A(e,a,c),Z(a,a,c),S(b,a),Z(c,d,f),M(a,c,_121665),A(a,a,d),M(c,c,a),M(a,d,f),M(d,b,x),S(b,e),sel25519(a,b,r),sel25519(c,d,r);for(i=0;16>i;i++)x[i+16]=a[i],x[i+32]=c[i],x[i+48]=b[i],x[i+64]=d[i];var x32=x.subarray(32),x16=x.subarray(16);return inv25519(x32,x32),M(x16,x16,x32),pack25519(q,x16),0}function crypto_scalarmult_base(q,n){return crypto_scalarmult(q,n,_9)}function crypto_box_keypair(y,x){return randombytes(x,32),crypto_scalarmult_base(y,x)}function crypto_box_beforenm(k,y,x){var s=new Uint8Array(32);return crypto_scalarmult(s,x,y),crypto_core_hsalsa20(k,_0,s,sigma)}function crypto_box(c,m,d,n,y,x){var k=new Uint8Array(32);return crypto_box_beforenm(k,y,x),crypto_box_afternm(c,m,d,n,k)}function crypto_box_open(m,c,d,n,y,x){var k=new Uint8Array(32);return crypto_box_beforenm(k,y,x),crypto_box_open_afternm(m,c,d,n,k)}function crypto_hashblocks_hl(hh,hl,m,n){for(var bh0,bh1,bh2,bh3,bh4,bh5,bh6,bh7,bl0,bl1,bl2,bl3,bl4,bl5,bl6,bl7,th,tl,i,j,h,l,a,b,c,d,wh=new Int32Array(16),wl=new Int32Array(16),ah0=hh[0],ah1=hh[1],ah2=hh[2],ah3=hh[3],ah4=hh[4],ah5=hh[5],ah6=hh[6],ah7=hh[7],al0=hl[0],al1=hl[1],al2=hl[2],al3=hl[3],al4=hl[4],al5=hl[5],al6=hl[6],al7=hl[7],pos=0;n>=128;){for(i=0;16>i;i++)j=8*i+pos,wh[i]=m[j+0]<<24|m[j+1]<<16|m[j+2]<<8|m[j+3],wl[i]=m[j+4]<<24|m[j+5]<<16|m[j+6]<<8|m[j+7];for(i=0;80>i;i++)if(bh0=ah0,bh1=ah1,bh2=ah2,bh3=ah3,bh4=ah4,bh5=ah5,bh6=ah6,bh7=ah7,bl0=al0,bl1=al1,bl2=al2,bl3=al3,bl4=al4,bl5=al5,bl6=al6,bl7=al7,h=ah7,l=al7,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=(ah4>>>14|al4<<18)^(ah4>>>18|al4<<14)^(al4>>>9|ah4<<23),l=(al4>>>14|ah4<<18)^(al4>>>18|ah4<<14)^(ah4>>>9|al4<<23),a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,h=ah4&ah5^~ah4&ah6,l=al4&al5^~al4&al6,a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,h=K[2*i],l=K[2*i+1],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,h=wh[i%16],l=wl[i%16],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,th=65535&c|d<<16,tl=65535&a|b<<16,h=th,l=tl,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=(ah0>>>28|al0<<4)^(al0>>>2|ah0<<30)^(al0>>>7|ah0<<25),l=(al0>>>28|ah0<<4)^(ah0>>>2|al0<<30)^(ah0>>>7|al0<<25),a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,h=ah0&ah1^ah0&ah2^ah1&ah2,l=al0&al1^al0&al2^al1&al2,a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,bh7=65535&c|d<<16,bl7=65535&a|b<<16,h=bh3,l=bl3,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=th,l=tl,a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,bh3=65535&c|d<<16,bl3=65535&a|b<<16,ah1=bh0,ah2=bh1,ah3=bh2,ah4=bh3,ah5=bh4,ah6=bh5,ah7=bh6,ah0=bh7,al1=bl0,al2=bl1,al3=bl2,al4=bl3,al5=bl4,al6=bl5,al7=bl6,al0=bl7,i%16===15)for(j=0;16>j;j++)h=wh[j],l=wl[j],a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=wh[(j+9)%16],l=wl[(j+9)%16],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,th=wh[(j+1)%16],tl=wl[(j+1)%16],h=(th>>>1|tl<<31)^(th>>>8|tl<<24)^th>>>7,l=(tl>>>1|th<<31)^(tl>>>8|th<<24)^(tl>>>7|th<<25),a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,th=wh[(j+14)%16],tl=wl[(j+14)%16],h=(th>>>19|tl<<13)^(tl>>>29|th<<3)^th>>>6,l=(tl>>>19|th<<13)^(th>>>29|tl<<3)^(tl>>>6|th<<26),a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,wh[j]=65535&c|d<<16,wl[j]=65535&a|b<<16;h=ah0,l=al0,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[0],l=hl[0],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[0]=ah0=65535&c|d<<16,hl[0]=al0=65535&a|b<<16,h=ah1,l=al1,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[1],l=hl[1],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[1]=ah1=65535&c|d<<16,hl[1]=al1=65535&a|b<<16,h=ah2,l=al2,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[2],l=hl[2],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[2]=ah2=65535&c|d<<16,hl[2]=al2=65535&a|b<<16,h=ah3,l=al3,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[3],l=hl[3],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[3]=ah3=65535&c|d<<16,hl[3]=al3=65535&a|b<<16,h=ah4,l=al4,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[4],l=hl[4],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[4]=ah4=65535&c|d<<16,hl[4]=al4=65535&a|b<<16,h=ah5,l=al5,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[5],l=hl[5],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[5]=ah5=65535&c|d<<16,hl[5]=al5=65535&a|b<<16,h=ah6,l=al6,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[6],l=hl[6],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[6]=ah6=65535&c|d<<16,hl[6]=al6=65535&a|b<<16,h=ah7,l=al7,a=65535&l,b=l>>>16,c=65535&h,d=h>>>16,h=hh[7],l=hl[7],a+=65535&l,b+=l>>>16,c+=65535&h,d+=h>>>16,b+=a>>>16,c+=b>>>16,d+=c>>>16,hh[7]=ah7=65535&c|d<<16,hl[7]=al7=65535&a|b<<16,pos+=128,n-=128}return n}function crypto_hash(out,m,n){var i,hh=new Int32Array(8),hl=new Int32Array(8),x=new Uint8Array(256),b=n;for(hh[0]=1779033703,hh[1]=3144134277,hh[2]=1013904242,hh[3]=2773480762,hh[4]=1359893119,hh[5]=2600822924,hh[6]=528734635,hh[7]=1541459225,hl[0]=4089235720,hl[1]=2227873595,hl[2]=4271175723,hl[3]=1595750129,hl[4]=2917565137,hl[5]=725511199,hl[6]=4215389547,hl[7]=327033209,crypto_hashblocks_hl(hh,hl,m,n),n%=128,i=0;n>i;i++)x[i]=m[b-n+i];for(x[n]=128,n=256-128*(112>n?1:0),x[n-9]=0,ts64(x,n-8,b/536870912|0,b<<3),crypto_hashblocks_hl(hh,hl,x,n),i=0;8>i;i++)ts64(out,8*i,hh[i],hl[i]);return 0}function add(p,q){var a=gf(),b=gf(),c=gf(),d=gf(),e=gf(),f=gf(),g=gf(),h=gf(),t=gf();Z(a,p[1],p[0]),Z(t,q[1],q[0]),M(a,a,t),A(b,p[0],p[1]),A(t,q[0],q[1]),M(b,b,t),M(c,p[3],q[3]),M(c,c,D2),M(d,p[2],q[2]),A(d,d,d),Z(e,b,a),Z(f,d,c),A(g,d,c),A(h,b,a),M(p[0],e,f),M(p[1],h,g),M(p[2],g,f),M(p[3],e,h)}function cswap(p,q,b){var i;for(i=0;4>i;i++)sel25519(p[i],q[i],b)}function pack(r,p){var tx=gf(),ty=gf(),zi=gf();inv25519(zi,p[2]),M(tx,p[0],zi),M(ty,p[1],zi),pack25519(r,ty),r[31]^=par25519(tx)<<7}function scalarmult(p,q,s){var b,i;for(set25519(p[0],gf0),set25519(p[1],gf1),set25519(p[2],gf1),set25519(p[3],gf0),i=255;i>=0;--i)b=s[i/8|0]>>(7&i)&1,cswap(p,q,b),add(q,p),add(p,p),cswap(p,q,b)}function scalarbase(p,s){var q=[gf(),gf(),gf(),gf()];set25519(q[0],X),set25519(q[1],Y),set25519(q[2],gf1),M(q[3],X,Y),scalarmult(p,q,s)}function crypto_sign_keypair(pk,sk,seeded){var i,d=new Uint8Array(64),p=[gf(),gf(),gf(),gf()];for(seeded||randombytes(sk,32),crypto_hash(d,sk,32),d[0]&=248,d[31]&=127,d[31]|=64,scalarbase(p,d),pack(pk,p),i=0;32>i;i++)sk[i+32]=pk[i];return 0}function modL(r,x){var carry,i,j,k;for(i=63;i>=32;--i){for(carry=0,j=i-32,k=i-12;k>j;++j)x[j]+=carry-16*x[i]*L[j-(i-32)],carry=x[j]+128>>8,x[j]-=256*carry;x[j]+=carry,x[i]=0}for(carry=0,j=0;32>j;j++)x[j]+=carry-(x[31]>>4)*L[j],carry=x[j]>>8,x[j]&=255;for(j=0;32>j;j++)x[j]-=carry*L[j];for(i=0;32>i;i++)x[i+1]+=x[i]>>8,r[i]=255&x[i]}function reduce(r){var i,x=new Float64Array(64);for(i=0;64>i;i++)x[i]=r[i];for(i=0;64>i;i++)r[i]=0;modL(r,x)}function crypto_sign(sm,m,n,sk){var i,j,d=new Uint8Array(64),h=new Uint8Array(64),r=new Uint8Array(64),x=new Float64Array(64),p=[gf(),gf(),gf(),gf()];crypto_hash(d,sk,32),d[0]&=248,d[31]&=127,d[31]|=64;var smlen=n+64;for(i=0;n>i;i++)sm[64+i]=m[i];for(i=0;32>i;i++)sm[32+i]=d[32+i];for(crypto_hash(r,sm.subarray(32),n+32),reduce(r),scalarbase(p,r),pack(sm,p),i=32;64>i;i++)sm[i]=sk[i];for(crypto_hash(h,sm,n+64),reduce(h),i=0;64>i;i++)x[i]=0;for(i=0;32>i;i++)x[i]=r[i];for(i=0;32>i;i++)for(j=0;32>j;j++)x[i+j]+=h[i]*d[j];return modL(sm.subarray(32),x),smlen}function unpackneg(r,p){var t=gf(),chk=gf(),num=gf(),den=gf(),den2=gf(),den4=gf(),den6=gf();return set25519(r[2],gf1),unpack25519(r[1],p),S(num,r[1]),M(den,num,D),Z(num,num,r[2]),A(den,r[2],den),S(den2,den),S(den4,den2),M(den6,den4,den2),M(t,den6,num),M(t,t,den),pow2523(t,t),M(t,t,num),M(t,t,den),M(t,t,den),M(r[0],t,den),S(chk,r[0]),M(chk,chk,den),neq25519(chk,num)&&M(r[0],r[0],I),S(chk,r[0]),M(chk,chk,den),neq25519(chk,num)?-1:(par25519(r[0])===p[31]>>7&&Z(r[0],gf0,r[0]),M(r[3],r[0],r[1]),0)}function crypto_sign_open(m,sm,n,pk){var i,mlen,t=new Uint8Array(32),h=new Uint8Array(64),p=[gf(),gf(),gf(),gf()],q=[gf(),gf(),gf(),gf()];if(mlen=-1,64>n)return-1;if(unpackneg(q,pk))return-1;for(i=0;n>i;i++)m[i]=sm[i];for(i=0;32>i;i++)m[i+32]=pk[i];if(crypto_hash(h,m,n),reduce(h),scalarmult(p,q,h),scalarbase(q,sm.subarray(32)),add(p,q),pack(t,p),n-=64,crypto_verify_32(sm,0,t,0)){for(i=0;n>i;i++)m[i]=0;return-1}for(i=0;n>i;i++)m[i]=sm[i+64];return mlen=n}function checkLengths(k,n){if(k.length!==crypto_secretbox_KEYBYTES)throw new Error("bad key size");if(n.length!==crypto_secretbox_NONCEBYTES)throw new Error("bad nonce size")}function checkBoxLengths(pk,sk){if(pk.length!==crypto_box_PUBLICKEYBYTES)throw new Error("bad public key size");if(sk.length!==crypto_box_SECRETKEYBYTES)throw new Error("bad secret key size")}function checkArrayTypes(){for(var t,type={}.toString,i=0;i<arguments.length;i++)if("[object Uint8Array]"!==(t=type.call(arguments[i])))throw new TypeError("unexpected type "+t+", use Uint8Array")}var gf=function(init){var i,r=new Float64Array(16);if(init)for(i=0;i<init.length;i++)r[i]=init[i];return r},randombytes=function(){throw new Error("no PRNG")},_0=new Uint8Array(16),_9=new Uint8Array(32);_9[0]=9;var gf0=gf(),gf1=gf([1]),_121665=gf([56129,1]),D=gf([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),D2=gf([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),X=gf([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),Y=gf([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),I=gf([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]),sigma=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]),poly1305=function(key){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var t0,t1,t2,t3,t4,t5,t6,t7;t0=255&key[0]|(255&key[1])<<8,this.r[0]=8191&t0,t1=255&key[2]|(255&key[3])<<8,this.r[1]=8191&(t0>>>13|t1<<3),t2=255&key[4]|(255&key[5])<<8,this.r[2]=7939&(t1>>>10|t2<<6),t3=255&key[6]|(255&key[7])<<8,this.r[3]=8191&(t2>>>7|t3<<9),t4=255&key[8]|(255&key[9])<<8,this.r[4]=255&(t3>>>4|t4<<12),this.r[5]=t4>>>1&8190,t5=255&key[10]|(255&key[11])<<8,this.r[6]=8191&(t4>>>14|t5<<2),t6=255&key[12]|(255&key[13])<<8,this.r[7]=8065&(t5>>>11|t6<<5),t7=255&key[14]|(255&key[15])<<8,this.r[8]=8191&(t6>>>8|t7<<8),this.r[9]=t7>>>5&127,this.pad[0]=255&key[16]|(255&key[17])<<8,this.pad[1]=255&key[18]|(255&key[19])<<8,this.pad[2]=255&key[20]|(255&key[21])<<8,this.pad[3]=255&key[22]|(255&key[23])<<8,this.pad[4]=255&key[24]|(255&key[25])<<8,this.pad[5]=255&key[26]|(255&key[27])<<8,this.pad[6]=255&key[28]|(255&key[29])<<8,this.pad[7]=255&key[30]|(255&key[31])<<8};poly1305.prototype.blocks=function(m,mpos,bytes){for(var t0,t1,t2,t3,t4,t5,t6,t7,c,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,hibit=this.fin?0:2048,h0=this.h[0],h1=this.h[1],h2=this.h[2],h3=this.h[3],h4=this.h[4],h5=this.h[5],h6=this.h[6],h7=this.h[7],h8=this.h[8],h9=this.h[9],r0=this.r[0],r1=this.r[1],r2=this.r[2],r3=this.r[3],r4=this.r[4],r5=this.r[5],r6=this.r[6],r7=this.r[7],r8=this.r[8],r9=this.r[9];bytes>=16;)t0=255&m[mpos+0]|(255&m[mpos+1])<<8,h0+=8191&t0,t1=255&m[mpos+2]|(255&m[mpos+3])<<8,h1+=8191&(t0>>>13|t1<<3),t2=255&m[mpos+4]|(255&m[mpos+5])<<8,h2+=8191&(t1>>>10|t2<<6),t3=255&m[mpos+6]|(255&m[mpos+7])<<8,h3+=8191&(t2>>>7|t3<<9),t4=255&m[mpos+8]|(255&m[mpos+9])<<8,h4+=8191&(t3>>>4|t4<<12),h5+=t4>>>1&8191,t5=255&m[mpos+10]|(255&m[mpos+11])<<8,h6+=8191&(t4>>>14|t5<<2),t6=255&m[mpos+12]|(255&m[mpos+13])<<8,h7+=8191&(t5>>>11|t6<<5),t7=255&m[mpos+14]|(255&m[mpos+15])<<8,h8+=8191&(t6>>>8|t7<<8),h9+=t7>>>5|hibit,c=0,d0=c,d0+=h0*r0,d0+=5*h1*r9,d0+=5*h2*r8,d0+=5*h3*r7,d0+=5*h4*r6,c=d0>>>13,d0&=8191,d0+=5*h5*r5,d0+=5*h6*r4,d0+=5*h7*r3,d0+=5*h8*r2,d0+=5*h9*r1,c+=d0>>>13,d0&=8191,d1=c,d1+=h0*r1,d1+=h1*r0,d1+=5*h2*r9,d1+=5*h3*r8,d1+=5*h4*r7,c=d1>>>13,d1&=8191,d1+=5*h5*r6,d1+=5*h6*r5,d1+=5*h7*r4,d1+=5*h8*r3,d1+=5*h9*r2,c+=d1>>>13,d1&=8191,d2=c,d2+=h0*r2,d2+=h1*r1,d2+=h2*r0,d2+=5*h3*r9,d2+=5*h4*r8,c=d2>>>13,d2&=8191,d2+=5*h5*r7,d2+=5*h6*r6,d2+=5*h7*r5,d2+=5*h8*r4,d2+=5*h9*r3,c+=d2>>>13,d2&=8191,d3=c,d3+=h0*r3,d3+=h1*r2,d3+=h2*r1,d3+=h3*r0,d3+=5*h4*r9,c=d3>>>13,d3&=8191,d3+=5*h5*r8,d3+=5*h6*r7,d3+=5*h7*r6,d3+=5*h8*r5,d3+=5*h9*r4,c+=d3>>>13,d3&=8191,d4=c,d4+=h0*r4,d4+=h1*r3,d4+=h2*r2,d4+=h3*r1,d4+=h4*r0,c=d4>>>13,d4&=8191,d4+=5*h5*r9,d4+=5*h6*r8,d4+=5*h7*r7,d4+=5*h8*r6,d4+=5*h9*r5,c+=d4>>>13,d4&=8191,d5=c,d5+=h0*r5,d5+=h1*r4,d5+=h2*r3,d5+=h3*r2,d5+=h4*r1,c=d5>>>13,d5&=8191,d5+=h5*r0,d5+=5*h6*r9,d5+=5*h7*r8,d5+=5*h8*r7,d5+=5*h9*r6,c+=d5>>>13,d5&=8191,d6=c,d6+=h0*r6,d6+=h1*r5,d6+=h2*r4,d6+=h3*r3,d6+=h4*r2,c=d6>>>13,d6&=8191,d6+=h5*r1,d6+=h6*r0,d6+=5*h7*r9,d6+=5*h8*r8,d6+=5*h9*r7,c+=d6>>>13,d6&=8191,d7=c,d7+=h0*r7,d7+=h1*r6,d7+=h2*r5,d7+=h3*r4,d7+=h4*r3,c=d7>>>13,d7&=8191,d7+=h5*r2,d7+=h6*r1,d7+=h7*r0,d7+=5*h8*r9,d7+=5*h9*r8,c+=d7>>>13,d7&=8191,d8=c,d8+=h0*r8,d8+=h1*r7,d8+=h2*r6,d8+=h3*r5,d8+=h4*r4,c=d8>>>13,d8&=8191,d8+=h5*r3,d8+=h6*r2,d8+=h7*r1,d8+=h8*r0,d8+=5*h9*r9,c+=d8>>>13,d8&=8191,d9=c,d9+=h0*r9,d9+=h1*r8,d9+=h2*r7,d9+=h3*r6,d9+=h4*r5,c=d9>>>13,d9&=8191,d9+=h5*r4,d9+=h6*r3,d9+=h7*r2,d9+=h8*r1,d9+=h9*r0,c+=d9>>>13,d9&=8191,c=(c<<2)+c|0,c=c+d0|0,d0=8191&c,c>>>=13,d1+=c,h0=d0,h1=d1,h2=d2,h3=d3,h4=d4,h5=d5,h6=d6,h7=d7,h8=d8,h9=d9,mpos+=16,bytes-=16;this.h[0]=h0,this.h[1]=h1,this.h[2]=h2,this.h[3]=h3,this.h[4]=h4,this.h[5]=h5,this.h[6]=h6,this.h[7]=h7,this.h[8]=h8,this.h[9]=h9},poly1305.prototype.finish=function(mac,macpos){var c,mask,f,i,g=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;16>i;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(c=this.h[1]>>>13,this.h[1]&=8191,i=2;10>i;i++)this.h[i]+=c,c=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*c,c=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=c,c=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=c,g[0]=this.h[0]+5,c=g[0]>>>13,g[0]&=8191,i=1;10>i;i++)g[i]=this.h[i]+c,c=g[i]>>>13,g[i]&=8191;for(g[9]-=8192,mask=(g[9]>>>15)-1,i=0;10>i;i++)g[i]&=mask;for(mask=~mask,i=0;10>i;i++)this.h[i]=this.h[i]&mask|g[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),f=this.h[0]+this.pad[0],this.h[0]=65535&f,i=1;8>i;i++)f=(this.h[i]+this.pad[i]|0)+(f>>>16)|0,this.h[i]=65535&f;mac[macpos+0]=this.h[0]>>>0&255,mac[macpos+1]=this.h[0]>>>8&255,mac[macpos+2]=this.h[1]>>>0&255,mac[macpos+3]=this.h[1]>>>8&255,mac[macpos+4]=this.h[2]>>>0&255,mac[macpos+5]=this.h[2]>>>8&255,mac[macpos+6]=this.h[3]>>>0&255,mac[macpos+7]=this.h[3]>>>8&255,mac[macpos+8]=this.h[4]>>>0&255,mac[macpos+9]=this.h[4]>>>8&255,mac[macpos+10]=this.h[5]>>>0&255,mac[macpos+11]=this.h[5]>>>8&255,mac[macpos+12]=this.h[6]>>>0&255,mac[macpos+13]=this.h[6]>>>8&255,mac[macpos+14]=this.h[7]>>>0&255,mac[macpos+15]=this.h[7]>>>8&255},poly1305.prototype.update=function(m,mpos,bytes){var i,want;if(this.leftover){for(want=16-this.leftover,want>bytes&&(want=bytes),i=0;want>i;i++)this.buffer[this.leftover+i]=m[mpos+i];if(bytes-=want,mpos+=want,this.leftover+=want,this.leftover<16)return;this.blocks(buffer,0,16),this.leftover=0}if(bytes>=16&&(want=bytes-bytes%16,this.blocks(m,mpos,want),mpos+=want,bytes-=want),bytes){for(i=0;bytes>i;i++)this.buffer[this.leftover+i]=m[mpos+i];this.leftover+=bytes}};var crypto_box_afternm=crypto_secretbox,crypto_box_open_afternm=crypto_secretbox_open,K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],L=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),crypto_secretbox_KEYBYTES=32,crypto_secretbox_NONCEBYTES=24,crypto_secretbox_ZEROBYTES=32,crypto_secretbox_BOXZEROBYTES=16,crypto_scalarmult_BYTES=32,crypto_scalarmult_SCALARBYTES=32,crypto_box_PUBLICKEYBYTES=32,crypto_box_SECRETKEYBYTES=32,crypto_box_BEFORENMBYTES=32,crypto_box_NONCEBYTES=crypto_secretbox_NONCEBYTES,crypto_box_ZEROBYTES=crypto_secretbox_ZEROBYTES,crypto_box_BOXZEROBYTES=crypto_secretbox_BOXZEROBYTES,crypto_sign_BYTES=64,crypto_sign_PUBLICKEYBYTES=32,crypto_sign_SECRETKEYBYTES=64,crypto_sign_SEEDBYTES=32,crypto_hash_BYTES=64;nacl.lowlevel={crypto_core_hsalsa20:crypto_core_hsalsa20,crypto_stream_xor:crypto_stream_xor,crypto_stream:crypto_stream,crypto_stream_salsa20_xor:crypto_stream_salsa20_xor,crypto_stream_salsa20:crypto_stream_salsa20,crypto_onetimeauth:crypto_onetimeauth,crypto_onetimeauth_verify:crypto_onetimeauth_verify,crypto_verify_16:crypto_verify_16,crypto_verify_32:crypto_verify_32,crypto_secretbox:crypto_secretbox,crypto_secretbox_open:crypto_secretbox_open,crypto_scalarmult:crypto_scalarmult,crypto_scalarmult_base:crypto_scalarmult_base,crypto_box_beforenm:crypto_box_beforenm,crypto_box_afternm:crypto_box_afternm,crypto_box:crypto_box,crypto_box_open:crypto_box_open,crypto_box_keypair:crypto_box_keypair,crypto_hash:crypto_hash,crypto_sign:crypto_sign,crypto_sign_keypair:crypto_sign_keypair,crypto_sign_open:crypto_sign_open,crypto_secretbox_KEYBYTES:crypto_secretbox_KEYBYTES,crypto_secretbox_NONCEBYTES:crypto_secretbox_NONCEBYTES,crypto_secretbox_ZEROBYTES:crypto_secretbox_ZEROBYTES,crypto_secretbox_BOXZEROBYTES:crypto_secretbox_BOXZEROBYTES,crypto_scalarmult_BYTES:crypto_scalarmult_BYTES,crypto_scalarmult_SCALARBYTES:crypto_scalarmult_SCALARBYTES,crypto_box_PUBLICKEYBYTES:crypto_box_PUBLICKEYBYTES,crypto_box_SECRETKEYBYTES:crypto_box_SECRETKEYBYTES,crypto_box_BEFORENMBYTES:crypto_box_BEFORENMBYTES,crypto_box_NONCEBYTES:crypto_box_NONCEBYTES,crypto_box_ZEROBYTES:crypto_box_ZEROBYTES,crypto_box_BOXZEROBYTES:crypto_box_BOXZEROBYTES,crypto_sign_BYTES:crypto_sign_BYTES,crypto_sign_PUBLICKEYBYTES:crypto_sign_PUBLICKEYBYTES,crypto_sign_SECRETKEYBYTES:crypto_sign_SECRETKEYBYTES,crypto_sign_SEEDBYTES:crypto_sign_SEEDBYTES,crypto_hash_BYTES:crypto_hash_BYTES},nacl.util={},nacl.util.decodeUTF8=function(s){var i,d=unescape(encodeURIComponent(s)),b=new Uint8Array(d.length);
for(i=0;i<d.length;i++)b[i]=d.charCodeAt(i);return b},nacl.util.encodeUTF8=function(arr){var i,s=[];for(i=0;i<arr.length;i++)s.push(String.fromCharCode(arr[i]));return decodeURIComponent(escape(s.join("")))},nacl.util.encodeBase64=function(arr){if("undefined"==typeof btoa)return new Buffer(arr).toString("base64");var i,s=[],len=arr.length;for(i=0;len>i;i++)s.push(String.fromCharCode(arr[i]));return btoa(s.join(""))},nacl.util.decodeBase64=function(s){if("undefined"==typeof atob)return new Uint8Array(Array.prototype.slice.call(new Buffer(s,"base64"),0));var i,d=atob(s),b=new Uint8Array(d.length);for(i=0;i<d.length;i++)b[i]=d.charCodeAt(i);return b},nacl.randomBytes=function(n){var b=new Uint8Array(n);return randombytes(b,n),b},nacl.secretbox=function(msg,nonce,key){checkArrayTypes(msg,nonce,key),checkLengths(key,nonce);for(var m=new Uint8Array(crypto_secretbox_ZEROBYTES+msg.length),c=new Uint8Array(m.length),i=0;i<msg.length;i++)m[i+crypto_secretbox_ZEROBYTES]=msg[i];return crypto_secretbox(c,m,m.length,nonce,key),c.subarray(crypto_secretbox_BOXZEROBYTES)},nacl.secretbox.open=function(box,nonce,key){checkArrayTypes(box,nonce,key),checkLengths(key,nonce);for(var c=new Uint8Array(crypto_secretbox_BOXZEROBYTES+box.length),m=new Uint8Array(c.length),i=0;i<box.length;i++)c[i+crypto_secretbox_BOXZEROBYTES]=box[i];return c.length<32?!1:0!==crypto_secretbox_open(m,c,c.length,nonce,key)?!1:m.subarray(crypto_secretbox_ZEROBYTES)},nacl.secretbox.keyLength=crypto_secretbox_KEYBYTES,nacl.secretbox.nonceLength=crypto_secretbox_NONCEBYTES,nacl.secretbox.overheadLength=crypto_secretbox_BOXZEROBYTES,nacl.scalarMult=function(n,p){if(checkArrayTypes(n,p),n.length!==crypto_scalarmult_SCALARBYTES)throw new Error("bad n size");if(p.length!==crypto_scalarmult_BYTES)throw new Error("bad p size");var q=new Uint8Array(crypto_scalarmult_BYTES);return crypto_scalarmult(q,n,p),q},nacl.scalarMult.base=function(n){if(checkArrayTypes(n),n.length!==crypto_scalarmult_SCALARBYTES)throw new Error("bad n size");var q=new Uint8Array(crypto_scalarmult_BYTES);return crypto_scalarmult_base(q,n),q},nacl.scalarMult.scalarLength=crypto_scalarmult_SCALARBYTES,nacl.scalarMult.groupElementLength=crypto_scalarmult_BYTES,nacl.box=function(msg,nonce,publicKey,secretKey){var k=nacl.box.before(publicKey,secretKey);return nacl.secretbox(msg,nonce,k)},nacl.box.before=function(publicKey,secretKey){checkArrayTypes(publicKey,secretKey),checkBoxLengths(publicKey,secretKey);var k=new Uint8Array(crypto_box_BEFORENMBYTES);return crypto_box_beforenm(k,publicKey,secretKey),k},nacl.box.after=nacl.secretbox,nacl.box.open=function(msg,nonce,publicKey,secretKey){var k=nacl.box.before(publicKey,secretKey);return nacl.secretbox.open(msg,nonce,k)},nacl.box.open.after=nacl.secretbox.open,nacl.box.keyPair=function(){var pk=new Uint8Array(crypto_box_PUBLICKEYBYTES),sk=new Uint8Array(crypto_box_SECRETKEYBYTES);return crypto_box_keypair(pk,sk),{publicKey:pk,secretKey:sk}},nacl.box.keyPair.fromSecretKey=function(secretKey){if(checkArrayTypes(secretKey),secretKey.length!==crypto_box_SECRETKEYBYTES)throw new Error("bad secret key size");var pk=new Uint8Array(crypto_box_PUBLICKEYBYTES);return crypto_scalarmult_base(pk,secretKey),{publicKey:pk,secretKey:new Uint8Array(secretKey)}},nacl.box.publicKeyLength=crypto_box_PUBLICKEYBYTES,nacl.box.secretKeyLength=crypto_box_SECRETKEYBYTES,nacl.box.sharedKeyLength=crypto_box_BEFORENMBYTES,nacl.box.nonceLength=crypto_box_NONCEBYTES,nacl.box.overheadLength=nacl.secretbox.overheadLength,nacl.sign=function(msg,secretKey){if(checkArrayTypes(msg,secretKey),secretKey.length!==crypto_sign_SECRETKEYBYTES)throw new Error("bad secret key size");var signedMsg=new Uint8Array(crypto_sign_BYTES+msg.length);return crypto_sign(signedMsg,msg,msg.length,secretKey),signedMsg},nacl.sign.open=function(signedMsg,publicKey){if(2!==arguments.length)throw new Error("nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?");if(checkArrayTypes(signedMsg,publicKey),publicKey.length!==crypto_sign_PUBLICKEYBYTES)throw new Error("bad public key size");var tmp=new Uint8Array(signedMsg.length),mlen=crypto_sign_open(tmp,signedMsg,signedMsg.length,publicKey);if(0>mlen)return null;for(var m=new Uint8Array(mlen),i=0;i<m.length;i++)m[i]=tmp[i];return m},nacl.sign.detached=function(msg,secretKey){for(var signedMsg=nacl.sign(msg,secretKey),sig=new Uint8Array(crypto_sign_BYTES),i=0;i<sig.length;i++)sig[i]=signedMsg[i];return sig},nacl.sign.detached.verify=function(msg,sig,publicKey){if(checkArrayTypes(msg,sig,publicKey),sig.length!==crypto_sign_BYTES)throw new Error("bad signature size");if(publicKey.length!==crypto_sign_PUBLICKEYBYTES)throw new Error("bad public key size");var i,sm=new Uint8Array(crypto_sign_BYTES+msg.length),m=new Uint8Array(crypto_sign_BYTES+msg.length);for(i=0;crypto_sign_BYTES>i;i++)sm[i]=sig[i];for(i=0;i<msg.length;i++)sm[i+crypto_sign_BYTES]=msg[i];return crypto_sign_open(m,sm,sm.length,publicKey)>=0},nacl.sign.keyPair=function(){var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),sk=new Uint8Array(crypto_sign_SECRETKEYBYTES);return crypto_sign_keypair(pk,sk),{publicKey:pk,secretKey:sk}},nacl.sign.keyPair.fromSecretKey=function(secretKey){if(checkArrayTypes(secretKey),secretKey.length!==crypto_sign_SECRETKEYBYTES)throw new Error("bad secret key size");for(var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),i=0;i<pk.length;i++)pk[i]=secretKey[32+i];return{publicKey:pk,secretKey:new Uint8Array(secretKey)}},nacl.sign.keyPair.fromSeed=function(seed){if(checkArrayTypes(seed),seed.length!==crypto_sign_SEEDBYTES)throw new Error("bad seed size");for(var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),sk=new Uint8Array(crypto_sign_SECRETKEYBYTES),i=0;32>i;i++)sk[i]=seed[i];return crypto_sign_keypair(pk,sk,!0),{publicKey:pk,secretKey:sk}},nacl.sign.publicKeyLength=crypto_sign_PUBLICKEYBYTES,nacl.sign.secretKeyLength=crypto_sign_SECRETKEYBYTES,nacl.sign.seedLength=crypto_sign_SEEDBYTES,nacl.sign.signatureLength=crypto_sign_BYTES,nacl.hash=function(msg){checkArrayTypes(msg);var h=new Uint8Array(crypto_hash_BYTES);return crypto_hash(h,msg,msg.length),h},nacl.hash.hashLength=crypto_hash_BYTES,nacl.verify=function(x,y){return checkArrayTypes(x,y),0===x.length||0===y.length?!1:x.length!==y.length?!1:0===vn(x,0,y,0,x.length)?!0:!1},nacl.setPRNG=function(fn){randombytes=fn},function(){var crypto;"undefined"!=typeof window?(window.crypto&&window.crypto.getRandomValues?crypto=window.crypto:window.msCrypto&&window.msCrypto.getRandomValues&&(crypto=window.msCrypto),crypto&&nacl.setPRNG(function(x,n){var i,v=new Uint8Array(n);for(crypto.getRandomValues(v),i=0;n>i;i++)x[i]=v[i]})):"undefined"!=typeof require&&(crypto=require("crypto"),crypto&&nacl.setPRNG(function(x,n){var i,v=crypto.randomBytes(n);for(i=0;n>i;i++)x[i]=v[i]}))}()}("undefined"!=typeof module&&module.exports?module.exports:window.nacl=window.nacl||{})}).call(this,require("buffer").Buffer)},{buffer:80,crypto:86}],201:[function(require,module){(function(Buffer){!function(nacl){"use strict";function L32(x,c){return x<<c|x>>>32-c}function ld32(x,i){var u=255&x[i+3];return u=u<<8|255&x[i+2],u=u<<8|255&x[i+1],u<<8|255&x[i+0]}function dl64(x,i){var h=x[i]<<24|x[i+1]<<16|x[i+2]<<8|x[i+3],l=x[i+4]<<24|x[i+5]<<16|x[i+6]<<8|x[i+7];return new u64(h,l)}function st32(x,j,u){var i;for(i=0;4>i;i++)x[j+i]=255&u,u>>>=8}function ts64(x,i,u){x[i]=u.hi>>24&255,x[i+1]=u.hi>>16&255,x[i+2]=u.hi>>8&255,x[i+3]=255&u.hi,x[i+4]=u.lo>>24&255,x[i+5]=u.lo>>16&255,x[i+6]=u.lo>>8&255,x[i+7]=255&u.lo}function vn(x,xi,y,yi,n){var i,d=0;for(i=0;n>i;i++)d|=x[xi+i]^y[yi+i];return(1&d-1>>>8)-1}function crypto_verify_16(x,xi,y,yi){return vn(x,xi,y,yi,16)}function crypto_verify_32(x,xi,y,yi){return vn(x,xi,y,yi,32)}function core(out,inp,k,c,h){var i,j,m,w=new Uint32Array(16),x=new Uint32Array(16),y=new Uint32Array(16),t=new Uint32Array(4);for(i=0;4>i;i++)x[5*i]=ld32(c,4*i),x[1+i]=ld32(k,4*i),x[6+i]=ld32(inp,4*i),x[11+i]=ld32(k,16+4*i);for(i=0;16>i;i++)y[i]=x[i];for(i=0;20>i;i++){for(j=0;4>j;j++){for(m=0;4>m;m++)t[m]=x[(5*j+4*m)%16];for(t[1]^=L32(t[0]+t[3]|0,7),t[2]^=L32(t[1]+t[0]|0,9),t[3]^=L32(t[2]+t[1]|0,13),t[0]^=L32(t[3]+t[2]|0,18),m=0;4>m;m++)w[4*j+(j+m)%4]=t[m]}for(m=0;16>m;m++)x[m]=w[m]}if(h){for(i=0;16>i;i++)x[i]=x[i]+y[i]|0;for(i=0;4>i;i++)x[5*i]=x[5*i]-ld32(c,4*i)|0,x[6+i]=x[6+i]-ld32(inp,4*i)|0;for(i=0;4>i;i++)st32(out,4*i,x[5*i]),st32(out,16+4*i,x[6+i])}else for(i=0;16>i;i++)st32(out,4*i,x[i]+y[i]|0)}function crypto_core_salsa20(out,inp,k,c){return core(out,inp,k,c,!1),0}function crypto_core_hsalsa20(out,inp,k,c){return core(out,inp,k,c,!0),0}function crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k){var u,i,z=new Uint8Array(16),x=new Uint8Array(64);if(!b)return 0;for(i=0;16>i;i++)z[i]=0;for(i=0;8>i;i++)z[i]=n[i];for(;b>=64;){for(crypto_core_salsa20(x,z,k,sigma),i=0;64>i;i++)c[cpos+i]=(m?m[mpos+i]:0)^x[i];for(u=1,i=8;16>i;i++)u=u+(255&z[i])|0,z[i]=255&u,u>>>=8;b-=64,cpos+=64,m&&(mpos+=64)}if(b>0)for(crypto_core_salsa20(x,z,k,sigma),i=0;b>i;i++)c[cpos+i]=(m?m[mpos+i]:0)^x[i];return 0}function crypto_stream_salsa20(c,cpos,d,n,k){return crypto_stream_salsa20_xor(c,cpos,null,0,d,n,k)}function crypto_stream(c,cpos,d,n,k){var s=new Uint8Array(32);return crypto_core_hsalsa20(s,n,k,sigma),crypto_stream_salsa20(c,cpos,d,n.subarray(16),s)}function crypto_stream_xor(c,cpos,m,mpos,d,n,k){var s=new Uint8Array(32);return crypto_core_hsalsa20(s,n,k,sigma),crypto_stream_salsa20_xor(c,cpos,m,mpos,d,n.subarray(16),s)}function add1305(h,c){var j,u=0;for(j=0;17>j;j++)u=u+(h[j]+c[j]|0)|0,h[j]=255&u,u>>>=8}function crypto_onetimeauth(out,outpos,m,mpos,n,k){var s,i,j,u,x=new Uint32Array(17),r=new Uint32Array(17),h=new Uint32Array(17),c=new Uint32Array(17),g=new Uint32Array(17);for(j=0;17>j;j++)r[j]=h[j]=0;for(j=0;16>j;j++)r[j]=k[j];for(r[3]&=15,r[4]&=252,r[7]&=15,r[8]&=252,r[11]&=15,r[12]&=252,r[15]&=15;n>0;){for(j=0;17>j;j++)c[j]=0;for(j=0;16>j&&n>j;++j)c[j]=m[mpos+j];for(c[j]=1,mpos+=j,n-=j,add1305(h,c),i=0;17>i;i++)for(x[i]=0,j=0;17>j;j++)x[i]=x[i]+h[j]*(i>=j?r[i-j]:320*r[i+17-j]|0)|0|0;for(i=0;17>i;i++)h[i]=x[i];for(u=0,j=0;16>j;j++)u=u+h[j]|0,h[j]=255&u,u>>>=8;for(u=u+h[16]|0,h[16]=3&u,u=5*(u>>>2)|0,j=0;16>j;j++)u=u+h[j]|0,h[j]=255&u,u>>>=8;u=u+h[16]|0,h[16]=u}for(j=0;17>j;j++)g[j]=h[j];for(add1305(h,minusp),s=0|-(h[16]>>>7),j=0;17>j;j++)h[j]^=s&(g[j]^h[j]);for(j=0;16>j;j++)c[j]=k[j+16];for(c[16]=0,add1305(h,c),j=0;16>j;j++)out[outpos+j]=h[j];return 0}function crypto_onetimeauth_verify(h,hpos,m,mpos,n,k){var x=new Uint8Array(16);return crypto_onetimeauth(x,0,m,mpos,n,k),crypto_verify_16(h,hpos,x,0)}function crypto_secretbox(c,m,d,n,k){var i;if(32>d)return-1;for(crypto_stream_xor(c,0,m,0,d,n,k),crypto_onetimeauth(c,16,c,32,d-32,c),i=0;16>i;i++)c[i]=0;return 0}function crypto_secretbox_open(m,c,d,n,k){var i,x=new Uint8Array(32);if(32>d)return-1;if(crypto_stream(x,0,32,n,k),0!==crypto_onetimeauth_verify(c,16,c,32,d-32,x))return-1;for(crypto_stream_xor(m,0,c,0,d,n,k),i=0;32>i;i++)m[i]=0;return 0}function set25519(r,a){var i;for(i=0;16>i;i++)r[i]=0|a[i]}function car25519(o){var c,i;for(i=0;16>i;i++)o[i]+=65536,c=Math.floor(o[i]/65536),o[(i+1)*(15>i?1:0)]+=c-1+37*(c-1)*(15===i?1:0),o[i]-=65536*c}function sel25519(p,q,b){for(var t,c=~(b-1),i=0;16>i;i++)t=c&(p[i]^q[i]),p[i]^=t,q[i]^=t}function pack25519(o,n){var i,j,b,m=gf(),t=gf();for(i=0;16>i;i++)t[i]=n[i];for(car25519(t),car25519(t),car25519(t),j=0;2>j;j++){for(m[0]=t[0]-65517,i=1;15>i;i++)m[i]=t[i]-65535-(m[i-1]>>16&1),m[i-1]&=65535;m[15]=t[15]-32767-(m[14]>>16&1),b=m[15]>>16&1,m[14]&=65535,sel25519(t,m,1-b)}for(i=0;16>i;i++)o[2*i]=255&t[i],o[2*i+1]=t[i]>>8}function neq25519(a,b){var c=new Uint8Array(32),d=new Uint8Array(32);return pack25519(c,a),pack25519(d,b),crypto_verify_32(c,0,d,0)}function par25519(a){var d=new Uint8Array(32);return pack25519(d,a),1&d[0]}function unpack25519(o,n){var i;for(i=0;16>i;i++)o[i]=n[2*i]+(n[2*i+1]<<8);o[15]&=32767}function A(o,a,b){var i;for(i=0;16>i;i++)o[i]=a[i]+b[i]|0}function Z(o,a,b){var i;for(i=0;16>i;i++)o[i]=a[i]-b[i]|0}function M(o,a,b){var i,j,t=new Float64Array(31);for(i=0;31>i;i++)t[i]=0;for(i=0;16>i;i++)for(j=0;16>j;j++)t[i+j]+=a[i]*b[j];for(i=0;15>i;i++)t[i]+=38*t[i+16];for(i=0;16>i;i++)o[i]=t[i];car25519(o),car25519(o)}function S(o,a){M(o,a,a)}function inv25519(o,i){var a,c=gf();for(a=0;16>a;a++)c[a]=i[a];for(a=253;a>=0;a--)S(c,c),2!==a&&4!==a&&M(c,c,i);for(a=0;16>a;a++)o[a]=c[a]}function pow2523(o,i){var a,c=gf();for(a=0;16>a;a++)c[a]=i[a];for(a=250;a>=0;a--)S(c,c),1!==a&&M(c,c,i);for(a=0;16>a;a++)o[a]=c[a]}function crypto_scalarmult(q,n,p){var r,i,z=new Uint8Array(32),x=new Float64Array(80),a=gf(),b=gf(),c=gf(),d=gf(),e=gf(),f=gf();for(i=0;31>i;i++)z[i]=n[i];for(z[31]=127&n[31]|64,z[0]&=248,unpack25519(x,p),i=0;16>i;i++)b[i]=x[i],d[i]=a[i]=c[i]=0;for(a[0]=d[0]=1,i=254;i>=0;--i)r=z[i>>>3]>>>(7&i)&1,sel25519(a,b,r),sel25519(c,d,r),A(e,a,c),Z(a,a,c),A(c,b,d),Z(b,b,d),S(d,e),S(f,a),M(a,c,a),M(c,b,e),A(e,a,c),Z(a,a,c),S(b,a),Z(c,d,f),M(a,c,_121665),A(a,a,d),M(c,c,a),M(a,d,f),M(d,b,x),S(b,e),sel25519(a,b,r),sel25519(c,d,r);for(i=0;16>i;i++)x[i+16]=a[i],x[i+32]=c[i],x[i+48]=b[i],x[i+64]=d[i];var x32=x.subarray(32),x16=x.subarray(16);return inv25519(x32,x32),M(x16,x16,x32),pack25519(q,x16),0}function crypto_scalarmult_base(q,n){return crypto_scalarmult(q,n,_9)}function crypto_box_keypair(y,x){return randombytes(x,32),crypto_scalarmult_base(y,x)}function crypto_box_beforenm(k,y,x){var s=new Uint8Array(32);return crypto_scalarmult(s,x,y),crypto_core_hsalsa20(k,_0,s,sigma)}function crypto_box(c,m,d,n,y,x){var k=new Uint8Array(32);return crypto_box_beforenm(k,y,x),crypto_box_afternm(c,m,d,n,k)}function crypto_box_open(m,c,d,n,y,x){var k=new Uint8Array(32);return crypto_box_beforenm(k,y,x),crypto_box_open_afternm(m,c,d,n,k)}function add64(){var l,h,i,a=0,b=0,c=0,d=0,m16=65535;for(i=0;i<arguments.length;i++)l=arguments[i].lo,h=arguments[i].hi,a+=l&m16,b+=l>>>16,c+=h&m16,d+=h>>>16;return b+=a>>>16,c+=b>>>16,d+=c>>>16,new u64(c&m16|d<<16,a&m16|b<<16)}function shr64(x,c){return new u64(x.hi>>>c,x.lo>>>c|x.hi<<32-c)}function xor64(){var i,l=0,h=0;for(i=0;i<arguments.length;i++)l^=arguments[i].lo,h^=arguments[i].hi;return new u64(h,l)}function R(x,c){var h,l,c1=32-c;return 32>c?(h=x.hi>>>c|x.lo<<c1,l=x.lo>>>c|x.hi<<c1):64>c&&(h=x.lo>>>c|x.hi<<c1,l=x.hi>>>c|x.lo<<c1),new u64(h,l)}function Ch(x,y,z){var h=x.hi&y.hi^~x.hi&z.hi,l=x.lo&y.lo^~x.lo&z.lo;return new u64(h,l)}function Maj(x,y,z){var h=x.hi&y.hi^x.hi&z.hi^y.hi&z.hi,l=x.lo&y.lo^x.lo&z.lo^y.lo&z.lo;return new u64(h,l)}function Sigma0(x){return xor64(R(x,28),R(x,34),R(x,39))}function Sigma1(x){return xor64(R(x,14),R(x,18),R(x,41))}function sigma0(x){return xor64(R(x,1),R(x,8),shr64(x,7))}function sigma1(x){return xor64(R(x,19),R(x,61),shr64(x,6))}function crypto_hashblocks(x,m,n){var t,i,j,z=[],b=[],a=[],w=[];for(i=0;8>i;i++)z[i]=a[i]=dl64(x,8*i);for(var pos=0;n>=128;){for(i=0;16>i;i++)w[i]=dl64(m,8*i+pos);for(i=0;80>i;i++){for(j=0;8>j;j++)b[j]=a[j];for(t=add64(a[7],Sigma1(a[4]),Ch(a[4],a[5],a[6]),K[i],w[i%16]),b[7]=add64(t,Sigma0(a[0]),Maj(a[0],a[1],a[2])),b[3]=add64(b[3],t),j=0;8>j;j++)a[(j+1)%8]=b[j];if(i%16===15)for(j=0;16>j;j++)w[j]=add64(w[j],w[(j+9)%16],sigma0(w[(j+1)%16]),sigma1(w[(j+14)%16]))}for(i=0;8>i;i++)a[i]=add64(a[i],z[i]),z[i]=a[i];pos+=128,n-=128}for(i=0;8>i;i++)ts64(x,8*i,z[i]);return n}function crypto_hash(out,m,n){var i,h=new Uint8Array(64),x=new Uint8Array(256),b=n;for(i=0;64>i;i++)h[i]=iv[i];for(crypto_hashblocks(h,m,n),n%=128,i=0;256>i;i++)x[i]=0;for(i=0;n>i;i++)x[i]=m[b-n+i];for(x[n]=128,n=256-128*(112>n?1:0),x[n-9]=0,ts64(x,n-8,new u64(b/536870912|0,b<<3)),crypto_hashblocks(h,x,n),i=0;64>i;i++)out[i]=h[i];return 0}function add(p,q){var a=gf(),b=gf(),c=gf(),d=gf(),e=gf(),f=gf(),g=gf(),h=gf(),t=gf();Z(a,p[1],p[0]),Z(t,q[1],q[0]),M(a,a,t),A(b,p[0],p[1]),A(t,q[0],q[1]),M(b,b,t),M(c,p[3],q[3]),M(c,c,D2),M(d,p[2],q[2]),A(d,d,d),Z(e,b,a),Z(f,d,c),A(g,d,c),A(h,b,a),M(p[0],e,f),M(p[1],h,g),M(p[2],g,f),M(p[3],e,h)}function cswap(p,q,b){var i;for(i=0;4>i;i++)sel25519(p[i],q[i],b)}function pack(r,p){var tx=gf(),ty=gf(),zi=gf();inv25519(zi,p[2]),M(tx,p[0],zi),M(ty,p[1],zi),pack25519(r,ty),r[31]^=par25519(tx)<<7}function scalarmult(p,q,s){var b,i;for(set25519(p[0],gf0),set25519(p[1],gf1),set25519(p[2],gf1),set25519(p[3],gf0),i=255;i>=0;--i)b=s[i/8|0]>>(7&i)&1,cswap(p,q,b),add(q,p),add(p,p),cswap(p,q,b)}function scalarbase(p,s){var q=[gf(),gf(),gf(),gf()];set25519(q[0],X),set25519(q[1],Y),set25519(q[2],gf1),M(q[3],X,Y),scalarmult(p,q,s)}function crypto_sign_keypair(pk,sk,seeded){var i,d=new Uint8Array(64),p=[gf(),gf(),gf(),gf()];for(seeded||randombytes(sk,32),crypto_hash(d,sk,32),d[0]&=248,d[31]&=127,d[31]|=64,scalarbase(p,d),pack(pk,p),i=0;32>i;i++)sk[i+32]=pk[i];return 0}function modL(r,x){var carry,i,j,k;for(i=63;i>=32;--i){for(carry=0,j=i-32,k=i-12;k>j;++j)x[j]+=carry-16*x[i]*L[j-(i-32)],carry=x[j]+128>>8,x[j]-=256*carry;x[j]+=carry,x[i]=0}for(carry=0,j=0;32>j;j++)x[j]+=carry-(x[31]>>4)*L[j],carry=x[j]>>8,x[j]&=255;for(j=0;32>j;j++)x[j]-=carry*L[j];for(i=0;32>i;i++)x[i+1]+=x[i]>>8,r[i]=255&x[i]}function reduce(r){var i,x=new Float64Array(64);for(i=0;64>i;i++)x[i]=r[i];for(i=0;64>i;i++)r[i]=0;modL(r,x)}function crypto_sign(sm,m,n,sk){var i,j,d=new Uint8Array(64),h=new Uint8Array(64),r=new Uint8Array(64),x=new Float64Array(64),p=[gf(),gf(),gf(),gf()];crypto_hash(d,sk,32),d[0]&=248,d[31]&=127,d[31]|=64;var smlen=n+64;for(i=0;n>i;i++)sm[64+i]=m[i];for(i=0;32>i;i++)sm[32+i]=d[32+i];for(crypto_hash(r,sm.subarray(32),n+32),reduce(r),scalarbase(p,r),pack(sm,p),i=32;64>i;i++)sm[i]=sk[i];for(crypto_hash(h,sm,n+64),reduce(h),i=0;64>i;i++)x[i]=0;for(i=0;32>i;i++)x[i]=r[i];for(i=0;32>i;i++)for(j=0;32>j;j++)x[i+j]+=h[i]*d[j];return modL(sm.subarray(32),x),smlen}function unpackneg(r,p){var t=gf(),chk=gf(),num=gf(),den=gf(),den2=gf(),den4=gf(),den6=gf();return set25519(r[2],gf1),unpack25519(r[1],p),S(num,r[1]),M(den,num,D),Z(num,num,r[2]),A(den,r[2],den),S(den2,den),S(den4,den2),M(den6,den4,den2),M(t,den6,num),M(t,t,den),pow2523(t,t),M(t,t,num),M(t,t,den),M(t,t,den),M(r[0],t,den),S(chk,r[0]),M(chk,chk,den),neq25519(chk,num)&&M(r[0],r[0],I),S(chk,r[0]),M(chk,chk,den),neq25519(chk,num)?-1:(par25519(r[0])===p[31]>>7&&Z(r[0],gf0,r[0]),M(r[3],r[0],r[1]),0)}function crypto_sign_open(m,sm,n,pk){var i,mlen,t=new Uint8Array(32),h=new Uint8Array(64),p=[gf(),gf(),gf(),gf()],q=[gf(),gf(),gf(),gf()];if(mlen=-1,64>n)return-1;if(unpackneg(q,pk))return-1;for(i=0;n>i;i++)m[i]=sm[i];for(i=0;32>i;i++)m[i+32]=pk[i];if(crypto_hash(h,m,n),reduce(h),scalarmult(p,q,h),scalarbase(q,sm.subarray(32)),add(p,q),pack(t,p),n-=64,crypto_verify_32(sm,0,t,0)){for(i=0;n>i;i++)m[i]=0;return-1}for(i=0;n>i;i++)m[i]=sm[i+64];return mlen=n}function checkLengths(k,n){if(k.length!==crypto_secretbox_KEYBYTES)throw new Error("bad key size");if(n.length!==crypto_secretbox_NONCEBYTES)throw new Error("bad nonce size")}function checkBoxLengths(pk,sk){if(pk.length!==crypto_box_PUBLICKEYBYTES)throw new Error("bad public key size");if(sk.length!==crypto_box_SECRETKEYBYTES)throw new Error("bad secret key size")}function checkArrayTypes(){for(var t,type={}.toString,i=0;i<arguments.length;i++)if("[object Uint8Array]"!==(t=type.call(arguments[i])))throw new TypeError("unexpected type "+t+", use Uint8Array")}var u64=function(h,l){this.hi=0|h,this.lo=0|l},gf=function(init){var i,r=new Float64Array(16);if(init)for(i=0;i<init.length;i++)r[i]=init[i];return r},randombytes=function(){throw new Error("no PRNG")},_0=new Uint8Array(16),_9=new Uint8Array(32);_9[0]=9;var gf0=gf(),gf1=gf([1]),_121665=gf([56129,1]),D=gf([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),D2=gf([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),X=gf([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),Y=gf([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),I=gf([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]),sigma=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]),minusp=new Uint32Array([5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252]),crypto_box_afternm=crypto_secretbox,crypto_box_open_afternm=crypto_secretbox_open,K=[new u64(1116352408,3609767458),new u64(1899447441,602891725),new u64(3049323471,3964484399),new u64(3921009573,2173295548),new u64(961987163,4081628472),new u64(1508970993,3053834265),new u64(2453635748,2937671579),new u64(2870763221,3664609560),new u64(3624381080,2734883394),new u64(310598401,1164996542),new u64(607225278,1323610764),new u64(1426881987,3590304994),new u64(1925078388,4068182383),new u64(2162078206,991336113),new u64(2614888103,633803317),new u64(3248222580,3479774868),new u64(3835390401,2666613458),new u64(4022224774,944711139),new u64(264347078,2341262773),new u64(604807628,2007800933),new u64(770255983,1495990901),new u64(1249150122,1856431235),new u64(1555081692,3175218132),new u64(1996064986,2198950837),new u64(2554220882,3999719339),new u64(2821834349,766784016),new u64(2952996808,2566594879),new u64(3210313671,3203337956),new u64(3336571891,1034457026),new u64(3584528711,2466948901),new u64(113926993,3758326383),new u64(338241895,168717936),new u64(666307205,1188179964),new u64(773529912,1546045734),new u64(1294757372,1522805485),new u64(1396182291,2643833823),new u64(1695183700,2343527390),new u64(1986661051,1014477480),new u64(2177026350,1206759142),new u64(2456956037,344077627),new u64(2730485921,1290863460),new u64(2820302411,3158454273),new u64(3259730800,3505952657),new u64(3345764771,106217008),new u64(3516065817,3606008344),new u64(3600352804,1432725776),new u64(4094571909,1467031594),new u64(275423344,851169720),new u64(430227734,3100823752),new u64(506948616,1363258195),new u64(659060556,3750685593),new u64(883997877,3785050280),new u64(958139571,3318307427),new u64(1322822218,3812723403),new u64(1537002063,2003034995),new u64(1747873779,3602036899),new u64(1955562222,1575990012),new u64(2024104815,1125592928),new u64(2227730452,2716904306),new u64(2361852424,442776044),new u64(2428436474,593698344),new u64(2756734187,3733110249),new u64(3204031479,2999351573),new u64(3329325298,3815920427),new u64(3391569614,3928383900),new u64(3515267271,566280711),new u64(3940187606,3454069534),new u64(4118630271,4000239992),new u64(116418474,1914138554),new u64(174292421,2731055270),new u64(289380356,3203993006),new u64(460393269,320620315),new u64(685471733,587496836),new u64(852142971,1086792851),new u64(1017036298,365543100),new u64(1126000580,2618297676),new u64(1288033470,3409855158),new u64(1501505948,4234509866),new u64(1607167915,987167468),new u64(1816402316,1246189591)],iv=new Uint8Array([106,9,230,103,243,188,201,8,187,103,174,133,132,202,167,59,60,110,243,114,254,148,248,43,165,79,245,58,95,29,54,241,81,14,82,127,173,230,130,209,155,5,104,140,43,62,108,31,31,131,217,171,251,65,189,107,91,224,205,25,19,126,33,121]),L=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),crypto_secretbox_KEYBYTES=32,crypto_secretbox_NONCEBYTES=24,crypto_secretbox_ZEROBYTES=32,crypto_secretbox_BOXZEROBYTES=16,crypto_scalarmult_BYTES=32,crypto_scalarmult_SCALARBYTES=32,crypto_box_PUBLICKEYBYTES=32,crypto_box_SECRETKEYBYTES=32,crypto_box_BEFORENMBYTES=32,crypto_box_NONCEBYTES=crypto_secretbox_NONCEBYTES,crypto_box_ZEROBYTES=crypto_secretbox_ZEROBYTES,crypto_box_BOXZEROBYTES=crypto_secretbox_BOXZEROBYTES,crypto_sign_BYTES=64,crypto_sign_PUBLICKEYBYTES=32,crypto_sign_SECRETKEYBYTES=64,crypto_sign_SEEDBYTES=32,crypto_hash_BYTES=64;nacl.lowlevel={crypto_core_hsalsa20:crypto_core_hsalsa20,crypto_stream_xor:crypto_stream_xor,crypto_stream:crypto_stream,crypto_stream_salsa20_xor:crypto_stream_salsa20_xor,crypto_stream_salsa20:crypto_stream_salsa20,crypto_onetimeauth:crypto_onetimeauth,crypto_onetimeauth_verify:crypto_onetimeauth_verify,crypto_verify_16:crypto_verify_16,crypto_verify_32:crypto_verify_32,crypto_secretbox:crypto_secretbox,crypto_secretbox_open:crypto_secretbox_open,crypto_scalarmult:crypto_scalarmult,crypto_scalarmult_base:crypto_scalarmult_base,crypto_box_beforenm:crypto_box_beforenm,crypto_box_afternm:crypto_box_afternm,crypto_box:crypto_box,crypto_box_open:crypto_box_open,crypto_box_keypair:crypto_box_keypair,crypto_hash:crypto_hash,crypto_sign:crypto_sign,crypto_sign_keypair:crypto_sign_keypair,crypto_sign_open:crypto_sign_open,crypto_secretbox_KEYBYTES:crypto_secretbox_KEYBYTES,crypto_secretbox_NONCEBYTES:crypto_secretbox_NONCEBYTES,crypto_secretbox_ZEROBYTES:crypto_secretbox_ZEROBYTES,crypto_secretbox_BOXZEROBYTES:crypto_secretbox_BOXZEROBYTES,crypto_scalarmult_BYTES:crypto_scalarmult_BYTES,crypto_scalarmult_SCALARBYTES:crypto_scalarmult_SCALARBYTES,crypto_box_PUBLICKEYBYTES:crypto_box_PUBLICKEYBYTES,crypto_box_SECRETKEYBYTES:crypto_box_SECRETKEYBYTES,crypto_box_BEFORENMBYTES:crypto_box_BEFORENMBYTES,crypto_box_NONCEBYTES:crypto_box_NONCEBYTES,crypto_box_ZEROBYTES:crypto_box_ZEROBYTES,crypto_box_BOXZEROBYTES:crypto_box_BOXZEROBYTES,crypto_sign_BYTES:crypto_sign_BYTES,crypto_sign_PUBLICKEYBYTES:crypto_sign_PUBLICKEYBYTES,crypto_sign_SECRETKEYBYTES:crypto_sign_SECRETKEYBYTES,crypto_sign_SEEDBYTES:crypto_sign_SEEDBYTES,crypto_hash_BYTES:crypto_hash_BYTES},nacl.util={},nacl.util.decodeUTF8=function(s){var i,d=unescape(encodeURIComponent(s)),b=new Uint8Array(d.length);for(i=0;i<d.length;i++)b[i]=d.charCodeAt(i);return b},nacl.util.encodeUTF8=function(arr){var i,s=[];for(i=0;i<arr.length;i++)s.push(String.fromCharCode(arr[i]));return decodeURIComponent(escape(s.join("")))},nacl.util.encodeBase64=function(arr){if("undefined"==typeof btoa)return new Buffer(arr).toString("base64");var i,s=[],len=arr.length;for(i=0;len>i;i++)s.push(String.fromCharCode(arr[i]));return btoa(s.join(""))},nacl.util.decodeBase64=function(s){if("undefined"==typeof atob)return new Uint8Array(Array.prototype.slice.call(new Buffer(s,"base64"),0));var i,d=atob(s),b=new Uint8Array(d.length);for(i=0;i<d.length;i++)b[i]=d.charCodeAt(i);return b},nacl.randomBytes=function(n){var b=new Uint8Array(n);return randombytes(b,n),b},nacl.secretbox=function(msg,nonce,key){checkArrayTypes(msg,nonce,key),checkLengths(key,nonce);for(var m=new Uint8Array(crypto_secretbox_ZEROBYTES+msg.length),c=new Uint8Array(m.length),i=0;i<msg.length;i++)m[i+crypto_secretbox_ZEROBYTES]=msg[i];return crypto_secretbox(c,m,m.length,nonce,key),c.subarray(crypto_secretbox_BOXZEROBYTES)},nacl.secretbox.open=function(box,nonce,key){checkArrayTypes(box,nonce,key),checkLengths(key,nonce);for(var c=new Uint8Array(crypto_secretbox_BOXZEROBYTES+box.length),m=new Uint8Array(c.length),i=0;i<box.length;i++)c[i+crypto_secretbox_BOXZEROBYTES]=box[i];return c.length<32?!1:0!==crypto_secretbox_open(m,c,c.length,nonce,key)?!1:m.subarray(crypto_secretbox_ZEROBYTES)},nacl.secretbox.keyLength=crypto_secretbox_KEYBYTES,nacl.secretbox.nonceLength=crypto_secretbox_NONCEBYTES,nacl.secretbox.overheadLength=crypto_secretbox_BOXZEROBYTES,nacl.scalarMult=function(n,p){if(checkArrayTypes(n,p),n.length!==crypto_scalarmult_SCALARBYTES)throw new Error("bad n size");if(p.length!==crypto_scalarmult_BYTES)throw new Error("bad p size");var q=new Uint8Array(crypto_scalarmult_BYTES);return crypto_scalarmult(q,n,p),q},nacl.scalarMult.base=function(n){if(checkArrayTypes(n),n.length!==crypto_scalarmult_SCALARBYTES)throw new Error("bad n size");var q=new Uint8Array(crypto_scalarmult_BYTES);return crypto_scalarmult_base(q,n),q},nacl.scalarMult.scalarLength=crypto_scalarmult_SCALARBYTES,nacl.scalarMult.groupElementLength=crypto_scalarmult_BYTES,nacl.box=function(msg,nonce,publicKey,secretKey){var k=nacl.box.before(publicKey,secretKey);return nacl.secretbox(msg,nonce,k)},nacl.box.before=function(publicKey,secretKey){checkArrayTypes(publicKey,secretKey),checkBoxLengths(publicKey,secretKey);var k=new Uint8Array(crypto_box_BEFORENMBYTES);return crypto_box_beforenm(k,publicKey,secretKey),k},nacl.box.after=nacl.secretbox,nacl.box.open=function(msg,nonce,publicKey,secretKey){var k=nacl.box.before(publicKey,secretKey);return nacl.secretbox.open(msg,nonce,k)},nacl.box.open.after=nacl.secretbox.open,nacl.box.keyPair=function(){var pk=new Uint8Array(crypto_box_PUBLICKEYBYTES),sk=new Uint8Array(crypto_box_SECRETKEYBYTES);return crypto_box_keypair(pk,sk),{publicKey:pk,secretKey:sk}},nacl.box.keyPair.fromSecretKey=function(secretKey){if(checkArrayTypes(secretKey),secretKey.length!==crypto_box_SECRETKEYBYTES)throw new Error("bad secret key size");var pk=new Uint8Array(crypto_box_PUBLICKEYBYTES);return crypto_scalarmult_base(pk,secretKey),{publicKey:pk,secretKey:new Uint8Array(secretKey)}},nacl.box.publicKeyLength=crypto_box_PUBLICKEYBYTES,nacl.box.secretKeyLength=crypto_box_SECRETKEYBYTES,nacl.box.sharedKeyLength=crypto_box_BEFORENMBYTES,nacl.box.nonceLength=crypto_box_NONCEBYTES,nacl.box.overheadLength=nacl.secretbox.overheadLength,nacl.sign=function(msg,secretKey){if(checkArrayTypes(msg,secretKey),secretKey.length!==crypto_sign_SECRETKEYBYTES)throw new Error("bad secret key size");var signedMsg=new Uint8Array(crypto_sign_BYTES+msg.length);return crypto_sign(signedMsg,msg,msg.length,secretKey),signedMsg},nacl.sign.open=function(signedMsg,publicKey){if(2!==arguments.length)throw new Error("nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?");if(checkArrayTypes(signedMsg,publicKey),publicKey.length!==crypto_sign_PUBLICKEYBYTES)throw new Error("bad public key size");var tmp=new Uint8Array(signedMsg.length),mlen=crypto_sign_open(tmp,signedMsg,signedMsg.length,publicKey);if(0>mlen)return null;for(var m=new Uint8Array(mlen),i=0;i<m.length;i++)m[i]=tmp[i];return m},nacl.sign.detached=function(msg,secretKey){for(var signedMsg=nacl.sign(msg,secretKey),sig=new Uint8Array(crypto_sign_BYTES),i=0;i<sig.length;i++)sig[i]=signedMsg[i];return sig},nacl.sign.detached.verify=function(msg,sig,publicKey){if(checkArrayTypes(msg,sig,publicKey),sig.length!==crypto_sign_BYTES)throw new Error("bad signature size");if(publicKey.length!==crypto_sign_PUBLICKEYBYTES)throw new Error("bad public key size");var i,sm=new Uint8Array(crypto_sign_BYTES+msg.length),m=new Uint8Array(crypto_sign_BYTES+msg.length);for(i=0;crypto_sign_BYTES>i;i++)sm[i]=sig[i];for(i=0;i<msg.length;i++)sm[i+crypto_sign_BYTES]=msg[i];return crypto_sign_open(m,sm,sm.length,publicKey)>=0},nacl.sign.keyPair=function(){var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),sk=new Uint8Array(crypto_sign_SECRETKEYBYTES);return crypto_sign_keypair(pk,sk),{publicKey:pk,secretKey:sk}},nacl.sign.keyPair.fromSecretKey=function(secretKey){if(checkArrayTypes(secretKey),secretKey.length!==crypto_sign_SECRETKEYBYTES)throw new Error("bad secret key size");for(var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),i=0;i<pk.length;i++)pk[i]=secretKey[32+i];return{publicKey:pk,secretKey:new Uint8Array(secretKey)}},nacl.sign.keyPair.fromSeed=function(seed){if(checkArrayTypes(seed),seed.length!==crypto_sign_SEEDBYTES)throw new Error("bad seed size");for(var pk=new Uint8Array(crypto_sign_PUBLICKEYBYTES),sk=new Uint8Array(crypto_sign_SECRETKEYBYTES),i=0;32>i;i++)sk[i]=seed[i];return crypto_sign_keypair(pk,sk,!0),{publicKey:pk,secretKey:sk}},nacl.sign.publicKeyLength=crypto_sign_PUBLICKEYBYTES,nacl.sign.secretKeyLength=crypto_sign_SECRETKEYBYTES,nacl.sign.seedLength=crypto_sign_SEEDBYTES,nacl.sign.signatureLength=crypto_sign_BYTES,nacl.hash=function(msg){checkArrayTypes(msg);var h=new Uint8Array(crypto_hash_BYTES);return crypto_hash(h,msg,msg.length),h},nacl.hash.hashLength=crypto_hash_BYTES,nacl.verify=function(x,y){return checkArrayTypes(x,y),0===x.length||0===y.length?!1:x.length!==y.length?!1:0===vn(x,0,y,0,x.length)?!0:!1},nacl.setPRNG=function(fn){randombytes=fn},function(){var crypto;"undefined"!=typeof window?(window.crypto&&window.crypto.getRandomValues?crypto=window.crypto:window.msCrypto&&window.msCrypto.getRandomValues&&(crypto=window.msCrypto),crypto&&nacl.setPRNG(function(x,n){var i,v=new Uint8Array(n);for(crypto.getRandomValues(v),i=0;n>i;i++)x[i]=v[i]
})):"undefined"!=typeof require&&(crypto=require("crypto"),crypto&&nacl.setPRNG(function(x,n){var i,v=crypto.randomBytes(n);for(i=0;n>i;i++)x[i]=v[i]}))}()}("undefined"!=typeof module&&module.exports?module.exports:window.nacl=window.nacl||{})}).call(this,require("buffer").Buffer)},{buffer:80,crypto:86}],202:[function(require,module){module.exports={name:"kbpgp",description:"Keybase's PGP Implementation",keywords:["crypto","pgp","keybase"],author:"Maxwell Krohn",version:"2.0.8",license:"BSD-3-Clause",main:"./lib/main.js",directories:{lib:"lib/"},homepage:"http://github.com/keybase/kbpgp",bugs:"https://github.com/keybase/kbpgp/issues",repository:{type:"git",url:"git://github.com/keybase/kbpgp.git"},dependencies:{bn:"^1.0.0","deep-equal":">=0.2.1","iced-error":">=0.0.9","iced-runtime":">=0.0.1","keybase-compressjs":"^1.0.1-c","keybase-ecurve":"^1.0.0","pgp-utils":">=0.0.28",purepack:">=1.0.1",triplesec:">=3.0.19",tweetnacl:"^0.12.2"},devDependencies:{browserify:"^5.9.1",colors:"0.6.2","iced-coffee-script":"1.7.1-c","iced-test":">=0.0.21",icsify:"0.6.0",minimist:"0.0.8",optimist:"0.6.1","uglify-js":"^2.4.13"}}},{}]},{},[29])(29)});