UNPKG

850 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack:///webpack/bootstrap f902c8e711be6876bae4","webpack:///../~/ramda/src/internal/_curry2.js","webpack:///../~/ramda/src/internal/_curry1.js","webpack:///../~/ramda/src/internal/_curry3.js","webpack:///../~/ramda/src/internal/_dispatchable.js","webpack:///../~/ramda/src/internal/_xfBase.js","webpack:///../~/ramda/src/curryN.js","webpack:///../~/ramda/src/internal/_has.js","webpack:///../~/ramda/src/map.js","webpack:///../~/ramda/src/internal/_reduce.js","webpack:///../~/ramda/src/internal/_concat.js","webpack:///../~/ramda/src/equals.js","webpack:///../~/ramda/src/internal/_arity.js","webpack:///../~/ramda/src/keys.js","webpack:///../~/ramda/src/reduce.js","webpack:///../~/@goodmind/node-cryptojs-aes/lib/core.js","webpack:///../~/ramda/src/internal/_isArray.js","webpack:///../~/ramda/src/internal/_reduced.js","webpack:///../~/ramda/src/internal/_contains.js","webpack:///../~/ramda/src/slice.js","webpack:///../~/ramda/src/always.js","webpack:///../~/ramda/src/max.js","webpack:///../~/ramda/src/internal/_checkForMethod.js","webpack:///../~/ramda/src/invoker.js","webpack:///../~/ramda/src/isArrayLike.js","webpack:///../~/ramda/src/nth.js","webpack:///../~/ramda/src/path.js","webpack:///../~/ramda/src/pluck.js","webpack:///../~/ramda/src/toString.js","webpack:///../~/pako/lib/utils/common.js","webpack:///../~/ramda/src/add.js","webpack:///../~/ramda/src/assoc.js","webpack:///../~/ramda/src/curry.js","webpack:///../~/ramda/src/flip.js","webpack:///../~/ramda/src/internal/_curryN.js","webpack:///../~/ramda/src/internal/_isFunction.js","webpack:///../~/ramda/src/internal/_isPlaceholder.js","webpack:///../~/ramda/src/internal/_isString.js","webpack:///../~/ramda/src/internal/_map.js","webpack:///../~/ramda/src/lens.js","webpack:///../~/ramda/src/lift.js","webpack:///../~/ramda/src/nAry.js","webpack:///../~/ramda/src/reduceBy.js","webpack:///../~/ramda/src/reject.js","webpack:///../~/ramda/src/reverse.js","webpack:///../~/ramda/src/ap.js","webpack:///../~/ramda/src/chain.js","webpack:///../~/ramda/src/compose.js","webpack:///../~/ramda/src/concat.js","webpack:///../~/ramda/src/filter.js","webpack:///../~/ramda/src/identity.js","webpack:///../~/ramda/src/internal/_assign.js","webpack:///../~/ramda/src/internal/_containsWith.js","webpack:///../~/ramda/src/internal/_identity.js","webpack:///../~/ramda/src/internal/_isTransformer.js","webpack:///../~/ramda/src/prop.js","webpack:///../~/ramda/src/tail.js","webpack:///../~/ramda/src/type.js","webpack:///../~/ramda/src/uniq.js","webpack:///../~/ramda/src/uniqWith.js","webpack:///../~/jsbn/index.js","webpack:///../~/ramda/src/adjust.js","webpack:///../~/ramda/src/and.js","webpack:///../~/ramda/src/any.js","webpack:///../~/ramda/src/apply.js","webpack:///../~/ramda/src/assocPath.js","webpack:///../~/ramda/src/bind.js","webpack:///../~/ramda/src/composeK.js","webpack:///../~/ramda/src/constructN.js","webpack:///../~/ramda/src/converge.js","webpack:///../~/ramda/src/defaultTo.js","webpack:///../~/ramda/src/difference.js","webpack:///../~/ramda/src/differenceWith.js","webpack:///../~/ramda/src/dissoc.js","webpack:///../~/ramda/src/drop.js","webpack:///../~/ramda/src/dropRepeatsWith.js","webpack:///../~/ramda/src/empty.js","webpack:///../~/ramda/src/identical.js","webpack:///../~/ramda/src/internal/_clone.js","webpack:///../~/ramda/src/internal/_cloneRegExp.js","webpack:///../~/ramda/src/internal/_complement.js","webpack:///../~/ramda/src/internal/_createPartialApplicator.js","webpack:///../~/ramda/src/internal/_filter.js","webpack:///../~/ramda/src/internal/_indexOf.js","webpack:///../~/ramda/src/internal/_isArguments.js","webpack:///../~/ramda/src/internal/_isInteger.js","webpack:///../~/ramda/src/internal/_isNumber.js","webpack:///../~/ramda/src/internal/_isObject.js","webpack:///../~/ramda/src/internal/_makeFlat.js","webpack:///../~/ramda/src/internal/_xany.js","webpack:///../~/ramda/src/internal/_xdropRepeatsWith.js","webpack:///../~/ramda/src/internal/_xwrap.js","webpack:///../~/ramda/src/is.js","webpack:///../~/ramda/src/juxt.js","webpack:///../~/ramda/src/last.js","webpack:///../~/ramda/src/length.js","webpack:///../~/ramda/src/liftN.js","webpack:///../~/ramda/src/mean.js","webpack:///../~/ramda/src/mergeWithKey.js","webpack:///../~/ramda/src/multiply.js","webpack:///../~/ramda/src/not.js","webpack:///../~/ramda/src/objOf.js","webpack:///../~/ramda/src/or.js","webpack:///../~/ramda/src/over.js","webpack:///../~/ramda/src/pickAll.js","webpack:///../~/ramda/src/pipe.js","webpack:///../~/ramda/src/pipeP.js","webpack:///../~/ramda/src/prepend.js","webpack:///../~/ramda/src/reduceRight.js","webpack:///../~/ramda/src/sequence.js","webpack:///../~/ramda/src/sum.js","webpack:///../~/ramda/src/take.js","webpack:///../~/ramda/src/times.js","webpack:///../~/ramda/src/uniqBy.js","webpack:///../~/ramda/src/update.js","webpack:///../~/ramda/src/useWith.js","webpack:///../~/ramda/src/values.js","webpack:///../~/ramda/src/where.js","webpack:///./bin.js","webpack:///../~/@goodmind/node-cryptojs-aes/cryptojs.js","webpack:///../~/@goodmind/node-cryptojs-aes/lib/aes.js","webpack:///../~/@goodmind/node-cryptojs-aes/lib/cipher-core.js","webpack:///../~/@goodmind/node-cryptojs-aes/lib/enc-base64.js","webpack:///../~/@goodmind/node-cryptojs-aes/lib/evpkdf.js","webpack:///../~/@goodmind/node-cryptojs-aes/lib/jsonformatter.js","webpack:///../~/@goodmind/node-cryptojs-aes/lib/md5.js","webpack:///../~/@goodmind/node-cryptojs-aes/lib/sha256.js","webpack:///./service/secure-random.js","webpack:///./vendor/leemon.js","webpack:///../~/pako/lib/inflate.js","webpack:///../~/pako/lib/utils/strings.js","webpack:///../~/pako/lib/zlib/adler32.js","webpack:///../~/pako/lib/zlib/constants.js","webpack:///../~/pako/lib/zlib/crc32.js","webpack:///../~/pako/lib/zlib/gzheader.js","webpack:///../~/pako/lib/zlib/inffast.js","webpack:///../~/pako/lib/zlib/inflate.js","webpack:///../~/pako/lib/zlib/inftrees.js","webpack:///../~/pako/lib/zlib/messages.js","webpack:///../~/pako/lib/zlib/zstream.js","webpack:///../~/ramda/index.js","webpack:///../~/ramda/src/F.js","webpack:///../~/ramda/src/T.js","webpack:///../~/ramda/src/__.js","webpack:///../~/ramda/src/addIndex.js","webpack:///../~/ramda/src/all.js","webpack:///../~/ramda/src/allPass.js","webpack:///../~/ramda/src/anyPass.js","webpack:///../~/ramda/src/aperture.js","webpack:///../~/ramda/src/append.js","webpack:///../~/ramda/src/applySpec.js","webpack:///../~/ramda/src/ascend.js","webpack:///../~/ramda/src/binary.js","webpack:///../~/ramda/src/both.js","webpack:///../~/ramda/src/call.js","webpack:///../~/ramda/src/clamp.js","webpack:///../~/ramda/src/clone.js","webpack:///../~/ramda/src/comparator.js","webpack:///../~/ramda/src/complement.js","webpack:///../~/ramda/src/composeP.js","webpack:///../~/ramda/src/cond.js","webpack:///../~/ramda/src/construct.js","webpack:///../~/ramda/src/contains.js","webpack:///../~/ramda/src/countBy.js","webpack:///../~/ramda/src/dec.js","webpack:///../~/ramda/src/descend.js","webpack:///../~/ramda/src/dissocPath.js","webpack:///../~/ramda/src/divide.js","webpack:///../~/ramda/src/dropLast.js","webpack:///../~/ramda/src/dropLastWhile.js","webpack:///../~/ramda/src/dropRepeats.js","webpack:///../~/ramda/src/dropWhile.js","webpack:///../~/ramda/src/either.js","webpack:///../~/ramda/src/eqBy.js","webpack:///../~/ramda/src/eqProps.js","webpack:///../~/ramda/src/evolve.js","webpack:///../~/ramda/src/find.js","webpack:///../~/ramda/src/findIndex.js","webpack:///../~/ramda/src/findLast.js","webpack:///../~/ramda/src/findLastIndex.js","webpack:///../~/ramda/src/flatten.js","webpack:///../~/ramda/src/forEach.js","webpack:///../~/ramda/src/forEachObjIndexed.js","webpack:///../~/ramda/src/fromPairs.js","webpack:///../~/ramda/src/groupBy.js","webpack:///../~/ramda/src/groupWith.js","webpack:///../~/ramda/src/gt.js","webpack:///../~/ramda/src/gte.js","webpack:///../~/ramda/src/has.js","webpack:///../~/ramda/src/hasIn.js","webpack:///../~/ramda/src/head.js","webpack:///../~/ramda/src/ifElse.js","webpack:///../~/ramda/src/inc.js","webpack:///../~/ramda/src/indexBy.js","webpack:///../~/ramda/src/indexOf.js","webpack:///../~/ramda/src/init.js","webpack:///../~/ramda/src/insert.js","webpack:///../~/ramda/src/insertAll.js","webpack:///../~/ramda/src/internal/_Set.js","webpack:///../~/ramda/src/internal/_aperture.js","webpack:///../~/ramda/src/internal/_arrayFromIterator.js","webpack:///../~/ramda/src/internal/_dropLast.js","webpack:///../~/ramda/src/internal/_dropLastWhile.js","webpack:///../~/ramda/src/internal/_equals.js","webpack:///../~/ramda/src/internal/_flatCat.js","webpack:///../~/ramda/src/internal/_forceReduced.js","webpack:///../~/ramda/src/internal/_functionName.js","webpack:///../~/ramda/src/internal/_isRegExp.js","webpack:///../~/ramda/src/internal/_objectAssign.js","webpack:///../~/ramda/src/internal/_of.js","webpack:///../~/ramda/src/internal/_pipe.js","webpack:///../~/ramda/src/internal/_pipeP.js","webpack:///../~/ramda/src/internal/_quote.js","webpack:///../~/ramda/src/internal/_stepCat.js","webpack:///../~/ramda/src/internal/_toISOString.js","webpack:///../~/ramda/src/internal/_toString.js","webpack:///../~/ramda/src/internal/_xall.js","webpack:///../~/ramda/src/internal/_xaperture.js","webpack:///../~/ramda/src/internal/_xchain.js","webpack:///../~/ramda/src/internal/_xdrop.js","webpack:///../~/ramda/src/internal/_xdropLast.js","webpack:///../~/ramda/src/internal/_xdropLastWhile.js","webpack:///../~/ramda/src/internal/_xdropWhile.js","webpack:///../~/ramda/src/internal/_xfilter.js","webpack:///../~/ramda/src/internal/_xfind.js","webpack:///../~/ramda/src/internal/_xfindIndex.js","webpack:///../~/ramda/src/internal/_xfindLast.js","webpack:///../~/ramda/src/internal/_xfindLastIndex.js","webpack:///../~/ramda/src/internal/_xmap.js","webpack:///../~/ramda/src/internal/_xreduceBy.js","webpack:///../~/ramda/src/internal/_xtake.js","webpack:///../~/ramda/src/internal/_xtakeWhile.js","webpack:///../~/ramda/src/intersection.js","webpack:///../~/ramda/src/intersectionWith.js","webpack:///../~/ramda/src/intersperse.js","webpack:///../~/ramda/src/into.js","webpack:///../~/ramda/src/invert.js","webpack:///../~/ramda/src/invertObj.js","webpack:///../~/ramda/src/isEmpty.js","webpack:///../~/ramda/src/isNil.js","webpack:///../~/ramda/src/join.js","webpack:///../~/ramda/src/keysIn.js","webpack:///../~/ramda/src/lastIndexOf.js","webpack:///../~/ramda/src/lensIndex.js","webpack:///../~/ramda/src/lensPath.js","webpack:///../~/ramda/src/lensProp.js","webpack:///../~/ramda/src/lt.js","webpack:///../~/ramda/src/lte.js","webpack:///../~/ramda/src/mapAccum.js","webpack:///../~/ramda/src/mapAccumRight.js","webpack:///../~/ramda/src/mapObjIndexed.js","webpack:///../~/ramda/src/match.js","webpack:///../~/ramda/src/mathMod.js","webpack:///../~/ramda/src/maxBy.js","webpack:///../~/ramda/src/median.js","webpack:///../~/ramda/src/memoize.js","webpack:///../~/ramda/src/merge.js","webpack:///../~/ramda/src/mergeAll.js","webpack:///../~/ramda/src/mergeWith.js","webpack:///../~/ramda/src/min.js","webpack:///../~/ramda/src/minBy.js","webpack:///../~/ramda/src/modulo.js","webpack:///../~/ramda/src/negate.js","webpack:///../~/ramda/src/none.js","webpack:///../~/ramda/src/nthArg.js","webpack:///../~/ramda/src/of.js","webpack:///../~/ramda/src/omit.js","webpack:///../~/ramda/src/once.js","webpack:///../~/ramda/src/pair.js","webpack:///../~/ramda/src/partial.js","webpack:///../~/ramda/src/partialRight.js","webpack:///../~/ramda/src/partition.js","webpack:///../~/ramda/src/pathEq.js","webpack:///../~/ramda/src/pathOr.js","webpack:///../~/ramda/src/pathSatisfies.js","webpack:///../~/ramda/src/pick.js","webpack:///../~/ramda/src/pickBy.js","webpack:///../~/ramda/src/pipeK.js","webpack:///../~/ramda/src/product.js","webpack:///../~/ramda/src/project.js","webpack:///../~/ramda/src/propEq.js","webpack:///../~/ramda/src/propIs.js","webpack:///../~/ramda/src/propOr.js","webpack:///../~/ramda/src/propSatisfies.js","webpack:///../~/ramda/src/props.js","webpack:///../~/ramda/src/range.js","webpack:///../~/ramda/src/reduceWhile.js","webpack:///../~/ramda/src/reduced.js","webpack:///../~/ramda/src/remove.js","webpack:///../~/ramda/src/repeat.js","webpack:///../~/ramda/src/replace.js","webpack:///../~/ramda/src/scan.js","webpack:///../~/ramda/src/set.js","webpack:///../~/ramda/src/sort.js","webpack:///../~/ramda/src/sortBy.js","webpack:///../~/ramda/src/sortWith.js","webpack:///../~/ramda/src/split.js","webpack:///../~/ramda/src/splitAt.js","webpack:///../~/ramda/src/splitEvery.js","webpack:///../~/ramda/src/splitWhen.js","webpack:///../~/ramda/src/subtract.js","webpack:///../~/ramda/src/symmetricDifference.js","webpack:///../~/ramda/src/symmetricDifferenceWith.js","webpack:///../~/ramda/src/takeLast.js","webpack:///../~/ramda/src/takeLastWhile.js","webpack:///../~/ramda/src/takeWhile.js","webpack:///../~/ramda/src/tap.js","webpack:///../~/ramda/src/test.js","webpack:///../~/ramda/src/toLower.js","webpack:///../~/ramda/src/toPairs.js","webpack:///../~/ramda/src/toPairsIn.js","webpack:///../~/ramda/src/toUpper.js","webpack:///../~/ramda/src/transduce.js","webpack:///../~/ramda/src/transpose.js","webpack:///../~/ramda/src/traverse.js","webpack:///../~/ramda/src/trim.js","webpack:///../~/ramda/src/tryCatch.js","webpack:///../~/ramda/src/unapply.js","webpack:///../~/ramda/src/unary.js","webpack:///../~/ramda/src/uncurryN.js","webpack:///../~/ramda/src/unfold.js","webpack:///../~/ramda/src/union.js","webpack:///../~/ramda/src/unionWith.js","webpack:///../~/ramda/src/unless.js","webpack:///../~/ramda/src/unnest.js","webpack:///../~/ramda/src/until.js","webpack:///../~/ramda/src/valuesIn.js","webpack:///../~/ramda/src/view.js","webpack:///../~/ramda/src/when.js","webpack:///../~/ramda/src/whereEq.js","webpack:///../~/ramda/src/without.js","webpack:///../~/ramda/src/xprod.js","webpack:///../~/ramda/src/zip.js","webpack:///../~/ramda/src/zipObj.js","webpack:///../~/ramda/src/zipWith.js","webpack:///../~/rusha/rusha.js","webpack:///../~/webpack/buildin/global.js","webpack:///./worker.js"],"names":["CryptoJS","rushaInstance","bigint","num","toString","bigStringInt","strNum","rShift32","str","str2bigInt","rightShift_","bigInt2str","strDecToHex","toLower","bytesToHex","bytes","arr","i","length","push","join","bytesFromHex","hexString","len","start","parseInt","charAt","substr","bytesCmp","bytes1","bytes2","bytesXor","bytesToWords","ArrayBuffer","Uint8Array","words","lib","WordArray","init","bytesFromWords","wordArray","sigBytes","bytesFromLeemonBigInt","bigInt","bytesToArrayBuffer","b","buffer","convertToArrayBuffer","undefined","byteLength","BYTES_PER_ELEMENT","convertToUint8Array","convertToByteArray","Array","isArray","newBytes","bytesFromArrayBuffer","byteView","from","bufferConcat","buffer1","buffer2","l1","l2","tmp","set","dividerLem","longToInts","sLong","lemNum","div","rem","divide_","resL","longToBytes","reverse","longFromLem","high","low","highNum","int2bigInt","leftShift_","addInt_","res","intToUint","val","uintToInt","sha1HashSync","hashBytes","rawDigest","sha1BytesSync","sha256HashSync","hashWords","SHA256","rsaEncrypt","publicKey","addPadding","N","modulus","E","exponent","X","encryptedBigInt","powMod","encryptedBytes","blockSize","zeroes","needPadding","padding","random","nextBytes","concat","aesEncryptSync","keyBytes","ivBytes","encryptedWords","AES","encrypt","iv","pad","NoPadding","mode","IGE","ciphertext","aesDecryptSync","decryptedWords","decrypt","gzipUncompress","result","inflate","nextRandomInt","maxValue","Math","floor","pqPrimeFactorization","pqBytes","minSize","ceil","hex","lWhat","pqPrimeLeemon","what","minBits","minLen","it","q","lim","a","c","g","z","x","y","copyInt_","copy_","j","isZero","add_","greater","sub_","eGCD_","equalsInt","P","Q","bytesModPow","m","xBigInt","yBigInt","mBigInt","resBigInt","bpe","mask","radix","digitsStr","one","t","ss","s0","s3","s4","s5","s6","s7","T","sa","mr_x1","mr_r","mr_a","eg_v","eg_u","eg_A","eg_B","eg_C","eg_D","primes","pows","s_i","s_i2","s_R","s_rm","s_q","s_n1","s_a","s_r2","s_n","s_b","s_d","s_x1","s_x2","s_aa","rpprb","k","buff","findPrimes","n","s","p","ans","millerRabinInt","dup","millerRabin","powMod_","equals","squareMod_","bitSize","w","expand","randTruePrime","randTruePrime_","trim","randProbPrime","randProbPrimeRounds","divisible","B","randBigInt_","modInt","mod","mod_","addInt","mult","mult_","sub","add","inverseMod","inverseMod_","multMod","multMod_","pm","dd","r","zz","recSize","pow","recLimit","carry_","multInt_","GCD_","randBigInt","GCD","xc","yc","xp","yp","A","C","D","sing","qp","linComb_","max","halve_","negative","inverseModInt","inverseModInt_","v","greaterShift","shift","kx","ky","y1","y2","subShift_","linCombShift_","addShift_","bits","base","d","kk","indexOf","substring","divInt_","ys","kn","k1","k2","np","mont_","ui","ks","console","info","runTask","data","task","Error","onmessage","e","taskID","postMessage"],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;AChEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kBAAkB,EAAE;AACzD;AACA;AACA,yDAAyD,kBAAkB,EAAE;AAC7E,yDAAyD,kBAAkB,EAAE;AAC7E;AACA;AACA;AACA;;;;;;;AC3BA;;;AAGA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;ACnBA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB,EAAE;AACjE;AACA;AACA,6DAA6D,sBAAsB,EAAE;AACrF,6DAA6D,sBAAsB,EAAE;AACrF,qCAAqC,qBAAqB,EAAE;AAC5D;AACA;AACA,kFAAkF,sBAAsB,EAAE;AAC1G,kFAAkF,sBAAsB,EAAE;AAC1G,kFAAkF,sBAAsB,EAAE;AAC1G,yDAAyD,qBAAqB,EAAE;AAChF,yDAAyD,qBAAqB,EAAE;AAChF,yDAAyD,qBAAqB,EAAE;AAChF;AACA;AACA;AACA;;;;;;;ACrCA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxCA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;ACPA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACrDD;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,uBAAuB,iBAAiB,EAAE,OAAO;AACjD;AACA,mBAAmB,aAAa,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;AACA;AACA;AACA,CAAC;;;;;;;AC1DD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACxDD;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,YAAY,MAAM;AAClB;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9BA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,uBAAuB;AACvB,yBAAyB;AACzB,uCAAuC;AACvC;AACA,mBAAmB;AACnB,mBAAmB;AACnB,uBAAuB;AACvB;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;AACA;AACA;AACA,+BAA+B,kCAAkC;AACjE,iCAAiC,kCAAkC;AACnE,qCAAqC,kCAAkC;AACvE,yCAAyC,kCAAkC;AAC3E,6CAA6C,kCAAkC;AAC/E,iDAAiD,kCAAkC;AACnF,qDAAqD,kCAAkC;AACvF,yDAAyD,kCAAkC;AAC3F,6DAA6D,kCAAkC;AAC/F,iEAAiE,kCAAkC;AACnG,sEAAsE,kCAAkC;AACxG;AACA;AACA;;;;;;;AChBA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK;AACd,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA,gBAAgB,iBAAiB,EAAE;AACnC;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;;;;;;ACxED;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA,aAAa;AACb;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA,KAAK;;AAEL;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;;;;;;ACzsBA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,QAAQ;AACpB;AACA;AACA,qBAAqB;AACrB,uBAAuB;AACvB,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;;;AAGA;AACA;AACA;;;;;;;ACLA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,4CAA4C;AAC5C,mDAAmD;AACnD,6CAA6C;AAC7C,8CAA8C;AAC9C,+BAA+B;AAC/B;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC1BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB;AACA,6CAA6C,sBAAsB,EAAE;;;;;;;ACpBrE;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB;AACA;AACA;AACA,sCAAsC;AACtC;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACxCD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,QAAQ,yEAAyE;AAC7F;AACA;AACA;AACA,0BAA0B;AAC1B,4BAA4B;AAC5B,wBAAwB,EAAE;AAC1B,uBAAuB,WAAW,EAAE;AACpC,uBAAuB,iCAAiC,EAAE;AAC1D;AACA;AACA,oBAAoB,aAAa;AACjC,WAAW,cAAc;AACzB,8BAA8B,cAAc;AAC5C,qBAAqB,cAAc;AACnC,yBAAyB,mBAAmB;AAC5C,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,uBAAuB;AACvB,wBAAwB;AACxB,yBAAyB;AACzB;AACA,wBAAwB;AACxB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACjCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,EAAE;AACd;AACA;AACA;AACA,4BAA4B,IAAI,MAAM,EAAE;AACxC,4BAA4B,IAAI,MAAM,EAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AChCD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,uBAAuB,KAAK,GAAG,KAAK,GAAG;AACvC,qCAAqC;AACrC,wBAAwB,WAAW,GAAG,WAAW,GAAG,WAAW;AAC/D;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC3BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,uBAAuB;AACvB,0BAA0B;AAC1B,8BAA8B;AAC9B,oBAAoB,uBAAuB,EAAE,QAAQ,6BAA6B;AAClF,qDAAqD;AACrD;AACA,iDAAiD,2BAA2B,EAAE;;;;;;;;ACxC9E;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,4BAA4B,YAAY;AACxC,qBAAqB,8BAA8B;AACnD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrGA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB;AACpB,qBAAqB;AACrB;AACA;AACA;AACA,CAAC;;;;;;;ACtBD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK,KAAK;AAClC,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,yBAAyB,WAAW,EAAE,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;;;;;;;AC/CD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC/BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvCA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;;;AAGA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW,EAAE;AACpC,yBAAyB,WAAW,EAAE,gBAAgB;AACtD,iCAAiC,WAAW,EAAE,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACtCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,iCAAiC;AACjC,qCAAqC;AACrC,yCAAyC;AACzC,6CAA6C;AAC7C,iDAAiD;AACjD,qDAAqD;AACrD,yDAAyD;AACzD,6DAA6D;AAC7D,iEAAiE;AACjE,sEAAsE;AACtE;AACA;AACA,CAAC;;;;;;;AC/CD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,WAAW,SAAS;AACpB;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,wBAAwB;AACjD,yBAAyB,wBAAwB;AACjD;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT,GAAG;;;;;;;AC1DH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,yBAAyB,uBAAuB,EAAE,OAAO;AACzD;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA,6BAA6B;AAC7B,0BAA0B;AAC1B,uBAAuB;AACvB,sBAAsB;AACtB;AACA,yBAAyB;AACzB,wBAAwB;AACxB,uBAAuB;AACvB,sBAAsB;AACtB;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,iDAAiD;AACjD,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B,EAAE;AACnD;AACA,gCAAgC,iCAAiC,EAAE;AACnE;AACA,CAAC;;;;;;;ACpCD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,sCAAsC;AACtC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,CAAC;;;;;;;AClCD;AACA;;;AAGA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjCA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACxCD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,0BAA0B,uBAAuB,EAAE,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;AACA;AACA;AACA,CAAC;;;;;;;AC/CD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA,sBAAsB;AACtB;AACA;AACA,gCAAgC;AAChC;AACA;AACA;;;;;;;ACvBA;;AAEA;AACA;;;;;;;ACHA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA,wCAAwC,UAAU;;;;;;;ACAlD;AACA;AACA;;;;;;;ACFA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,EAAE;AACd;AACA;AACA;AACA,qBAAqB,OAAO,EAAE;AAC9B,sBAAsB,EAAE;AACxB;AACA,gDAAgD,eAAe,EAAE;;;;;;;ACrBjE;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,0BAA0B;AAC1B,uBAAuB;AACvB,oBAAoB;AACpB,mBAAmB;AACnB;AACA,sBAAsB;AACtB,qBAAqB;AACrB,oBAAoB;AACpB,mBAAmB;AACnB;AACA;;;;;;;AChCA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,iBAAiB,EAAE;AACnB,kBAAkB;AAClB,sBAAsB;AACtB,oBAAoB;AACpB,qBAAqB;AACrB,mBAAmB;AACnB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB,6BAA6B;AAC7B;AACA;;;;;;;ACrBA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,0CAA0C;AAC1C,6BAA6B,IAAI,GAAG,eAAe;AACnD,uCAAuC;AACvC,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACvCD;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,6BAA6B;;AAEjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,SAAS;;AAEzB,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,eAAe,cAAc,UAAU;;AAE5D;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,YAAY,qBAAqB,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,UAAU,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,eAAe,+BAA+B,UAAU;;AAEjF;AACA,sBAAsB,sCAAsC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,OAAO,SAAS;AAC3C,yBAAyB,OAAO,QAAQ;AACxC,yBAAyB,OAAO,QAAQ;AACxC,yBAAyB,OAAO,QAAQ;AACxC,yBAAyB,OAAO,QAAQ;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B,kBAAkB,QAAQ;AAC1B;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,QAAQ;AACzC;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,mBAAmB,oBAAoB,oBAAoB;AAC3D,YAAY,cAAc,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA,yBAAyB,UAAU;AACnC,yBAAyB,2BAA2B;AACpD,4BAA4B,mBAAmB,gBAAgB;AAC/D,0BAA0B,eAAe,gBAAgB;;AAEzD;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,gCAAgC;AAChC,kCAAkC;AAClC,iDAAiD;AACjD;AACA;AACA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc,UAAU;AACrD;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB,6BAA6B,eAAe,gBAAgB;;AAE5D,wBAAwB;AACxB,+BAA+B,mBAAmB,gBAAgB;;AAElE;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,6CAA6C;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW,QAAQ,QAAQ;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,wBAAwB,eAAe,gBAAgB,UAAU;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,6CAA6C;;AAEzE;AACA,6BAA6B,6CAA6C;;AAE1E;AACA,8BAA8B,iDAAiD;;AAE/E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,8BAA8B;AACxD,uBAAuB,oCAAoC;AAC3D,uBAAuB,oCAAoC;;AAE3D;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,YAAY;AACtC,uBAAuB,eAAe,4BAA4B,UAAU;;AAE5E;AACA,yBAAyB,YAAY;AACrC,sBAAsB,eAAe,2BAA2B,UAAU;;AAE1E;AACA,0BAA0B,YAAY;AACtC,uBAAuB,eAAe,4BAA4B,UAAU;;AAE5E;AACA,6BAA6B,aAAa;AAC1C,0BAA0B,eAAe,+BAA+B,UAAU;;AAElF;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,UAAU,SAAS;AAC9C,yBAAyB,SAAS,QAAQ;AAC1C,wBAAwB,SAAS,QAAQ;AACzC,sBAAsB,SAAS,QAAQ;AACvC;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,UAAU,KAAK;AACpC;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,gCAAgC;;AAE1D;AACA,4BAA4B,oCAAoC;;AAEhE;AACA,2BAA2B,iCAAiC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,eAAe,iBAAiB,UAAU;;AAEjE;AACA,4BAA4B,eAAe,iBAAiB,UAAU;;AAEtE;AACA,4BAA4B,eAAe,sBAAsB,UAAU;;AAE3E;AACA,yBAAyB,eAAe,kBAAkB,UAAU;;AAEpE;AACA,0BAA0B,eAAe,yBAAyB,UAAU;;AAE5E;AACA,6BAA6B,eAAe,yBAAyB,UAAU;;AAE/E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,UAAU;AAChC,4BAA4B,mBAAmB;AAC/C,0BAA0B,eAAe;;AAEzC;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,kCAAkC;;AAEzD;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,yBAAyB,OAAO;AAChC,8BAA8B,OAAO;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,eAAe,aAAa,gBAAgB,UAAU;AAClE;;AAEA,+BAA+B,UAAU;;AAEzC;AACA;AACA;AACA,4BAA4B,kBAAkB,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB,gCAAgC,eAAe,gBAAgB;;AAE/D,qBAAqB;AACrB,kCAAkC,mBAAmB,gBAAgB;;AAErE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,SAAS,KAAK;AACzC,0BAA0B,cAAc,KAAK;AAC7C,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,eAAe,eAAe,QAAQ;AAC9D,kCAAkC,OAAO,OAAO,QAAQ,QAAQ;AAChE;AACA;;AAEA;AACA,wBAAwB,OAAO,QAAQ;AACvC,uBAAuB,eAAe,KAAK;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,WAAW,OAAO,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,yCAAyC;AACzC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sCAAsC,8BAA8B;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,eAAe;AAC/B;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;ACh1CD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,gBAAgB;AAC3B;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACtCD;;;AAGA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,WAAW,IAAI;AACf,YAAY,IAAI;AAChB;AACA;AACA;AACA,0BAA0B;AAC1B,2BAA2B;AAC3B,2BAA2B;AAC3B,4BAA4B;AAC5B;AACA;AACA;AACA,CAAC;;;;;;;ACxBD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACvCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACzBD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE,KAAK;AAC9B,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,0CAA0C,IAAI,IAAI,OAAO,EAAE,OAAO,IAAI,IAAI;AAC1E;AACA;AACA,0CAA0C,KAAK,EAAE,OAAO,IAAI,IAAI;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;;;;;AC/CD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,EAAE;AACvB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,8DAA8D,KAAK,EAAE,OAAO;AAC5E,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC9BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,WAAW,eAAe,EAAE;AAC3D,wBAAwB,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1CA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE,YAAY,EAAE;AACzC,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC7DD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,MAAM;AACjB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;;;;;;AC3CD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA,wCAAwC;AACxC;AACA;AACA;AACA,CAAC;;;;;;;AC3BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,6CAA6C;AAC7C,6CAA6C;AAC7C,uBAAuB,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG,KAAK,UAAU,KAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACnCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,mBAAmB,KAAK,GAAG,KAAK,GAAG,KAAK;AACxC,mBAAmB,KAAK,GAAG,KAAK;AAChC,sCAAsC,QAAQ,KAAK,GAAG,KAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACtCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,KAAK,KAAK;AAC7B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,uBAAuB,iBAAiB,EAAE,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC1BD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,IAAI;AACf,YAAY,IAAI;AAChB;AACA;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,2BAA2B;AAC3B;AACA;AACA;AACA,CAAC;;;;;;;AChCD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACzCD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B,2BAA2B;AAC3B,4BAA4B;AAC5B,iBAAiB,WAAW,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,mBAAmB,kBAAkB,EAAE;AACvC;AACA;AACA;AACA,CAAC;;;;;;;AC9CD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B,4BAA4B;AAC5B,4BAA4B;AAC5B,2BAA2B;AAC3B,8BAA8B;AAC9B;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;;;;;ACnCD;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;;;AAGA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;;;;;;ACVA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxDA;;;AAGA;AACA;AACA;AACA,8BAA8B,kDAAkD,EAAE;AAClF,8BAA8B,0BAA0B;AACxD,CAAC;;;;;;;ACRD;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,YAAY;AACZ;AACA;AACA;AACA;;;;;;;ACVA;AACA;AACA;;;;;;;ACFA;AACA;AACA;;;;;;;ACFA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChCA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,wBAAwB,EAAE;AAClE,CAAC;;;;;;;AC3BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,uDAAuD,uCAAuC,EAAE;AAChG,CAAC;;;;;;;AC1BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY;AACtE;AACA;AACA;;AAEA,8BAA8B,sBAAsB;AACpD,CAAC;;;;;;;ACbD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB,wBAAwB;AACxB,0BAA0B;AAC1B,qCAAqC;AACrC,qCAAqC;AACrC,0BAA0B;AAC1B,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,8BAA8B,iDAAiD,EAAE;AACjF,CAAC;;;;;;;ACvBD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,oCAAoC;AACpC,mBAAmB;AACnB;AACA,sBAAsB;AACtB,mBAAmB;AACnB;AACA;;;;;;;ACvBA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA,qBAAqB;AACrB,4BAA4B;AAC5B;AACA;AACA;AACA,CAAC;;;;;;;ACrBD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC7BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B,mBAAmB;AACnB;AACA;AACA;AACA,CAAC;;;;;;;ACrBD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE,KAAK,EAAE,KAAK;AAClD,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE,wBAAwB,0CAA0C;AAClE,cAAc;AACd,4BAA4B,aAAa,GAAG,aAAa,KAAK;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;AChDD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,yBAAyB;AACzB;AACA,kDAAkD,cAAc,EAAE;;;;;;;ACvBlE;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,QAAQ;AACpB;AACA;AACA;AACA,oBAAoB;AACpB,qBAAqB;AACrB,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;;;;;;;ACxBD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO,QAAQ,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB;AAC7H;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC3BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,WAAW,IAAI;AACf,YAAY,IAAI;AAChB;AACA;AACA;AACA,yBAAyB;AACzB,0BAA0B;AAC1B,0BAA0B;AAC1B,2BAA2B;AAC3B;AACA;AACA;AACA,CAAC;;;;;;;ACzBD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA,YAAY,4BAA4B,uBAAuB;AAC/D;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB,EAAE;AACtD,GAAG;AACH,CAAC;;;;;;;ACtCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK,KAAK;AAC1B,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,+BAA+B,uBAAuB,EAAE,OAAO;AAC/D,oCAAoC,uBAAuB,EAAE,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;AACA;AACA;AACA;;;AAGA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnCA;AACA;AACA;AACA;;;AAGA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9BA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,CAAC;;;;;;;ACvBD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpDD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,0DAA0D;AAC1D,4DAA4D;AAC5D;AACA,0CAA0C;AAC1C,oCAAoC;AACpC;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC,EAAE;AACrE;AACA;AACA,CAAC;;;;;;;ACrCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;;;;;;;ACnBA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACnDD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACvCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACrCD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,gBAAgB;AAC3B,YAAY,MAAM;AAClB;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,SAAS;AACrB;AACA;AACA;AACA,4DAA4D;AAC5D,4DAA4D;AAC5D,kDAAkD;AAClD,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC3CD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK;AACd,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA,kBAAkB,iBAAiB,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;AACA;;;AAGA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,uBAAuB,KAAK,UAAU;AAC/C,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,cAAc,iCAAiC,EAAE;AACjD,cAAc,iCAAiC,EAAE;AACjD,cAAc,iCAAiC,EAAE;AACjD,cAAc,iCAAiC,EAAE;AACjD,cAAc,iCAAiC,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CD;AACA;AACA;AACA;AACA,MAAM,EAAEA,QAAF,KAAe,yDAArB;AACA;;AAEA;;AAEA;;AAGA;;AAKA,MAAMC,gBAAgB,IAAI,6CAAJ,CAAU,OAAO,IAAjB,CAAtB;;AAEO,SAASC,MAAT,CAAgBC,GAAhB,EAAqB;AAC1B,SAAO,IAAI,gDAAJ,CAAeA,IAAIC,QAAJ,CAAa,EAAb,CAAf,EAAiC,EAAjC,CAAP;AACD;;AAEM,SAASC,YAAT,CAAsBC,MAAtB,EAA8B;AACnC,SAAO,IAAI,gDAAJ,CAAeA,MAAf,EAAuB,EAAvB,CAAP;AACD;;AAEM,MAAMC,WAAWC,OAAO;AAC7B,QAAML,MAAM,yFAAAM,CAAWD,GAAX,EAAgB,EAAhB,EAAoB,CAApB,CAAZ;AACAE,EAAA,0FAAAA,CAAYP,GAAZ,EAAiB,EAAjB;AACA,SAAO,yFAAAQ,CAAWR,GAAX,EAAgB,EAAhB,CAAP;AACD,CAJM;AAAA;AAAA;AAKA,MAAMS,cAAcJ,OAAO,qEAAAK,CAChC,yFAAAF,CACE,yFAAAF,CAAWD,GAAX,EAAgB,EAAhB,EAAoB,CAApB,CADF,EAC0B,EAD1B,CADgC,CAA3B;AAAA;AAAA;;AAKA,SAASM,UAAT,CAAoBC,QAAQ,EAA5B,EAAgC;AACrC,QAAMC,MAAM,EAAZ;AACA,OAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,MAAMG,MAA1B,EAAkCD,GAAlC,EAAuC;AACrCD,QAAIG,IAAJ,CAAS,CAACJ,MAAME,CAAN,IAAW,EAAX,GAAgB,GAAhB,GAAsB,EAAvB,IAA6B,CAACF,MAAME,CAAN,KAAY,CAAb,EAAgBb,QAAhB,CAAyB,EAAzB,CAAtC;AACD;AACD,SAAOY,IAAII,IAAJ,CAAS,EAAT,CAAP;AACD;;AAEM,SAASC,YAAT,CAAsBC,SAAtB,EAAiC;AACtC,QAAMC,MAAMD,UAAUJ,MAAtB;AACA,MAAIM,QAAQ,CAAZ;AACA,QAAMT,QAAQ,EAAd;;AAEA,MAAIO,UAAUJ,MAAV,GAAmB,CAAvB,EAA0B;AACxBH,UAAMI,IAAN,CAAWM,SAASH,UAAUI,MAAV,CAAiB,CAAjB,CAAT,EAA8B,EAA9B,CAAX;AACAF;AACD;;AAED,OAAK,IAAIP,IAAIO,KAAb,EAAoBP,IAAIM,GAAxB,EAA6BN,KAAK,CAAlC,EAAqC;AACnCF,UAAMI,IAAN,CAAWM,SAASH,UAAUK,MAAV,CAAiBV,CAAjB,EAAoB,CAApB,CAAT,EAAiC,EAAjC,CAAX;AACD;;AAED,SAAOF,KAAP;AACD;;AAEM,SAASa,QAAT,CAAkBC,MAAlB,EAA0BC,MAA1B,EAAkC;AACvC,QAAMP,MAAMM,OAAOX,MAAnB;AACA,MAAIK,QAAQO,OAAOZ,MAAnB,EAA2B;AACzB,WAAO,KAAP;AACD;;AAED,OAAK,IAAID,IAAI,CAAb,EAAgBA,IAAIM,GAApB,EAAyBN,GAAzB,EAA8B;AAC5B,QAAIY,OAAOZ,CAAP,MAAca,OAAOb,CAAP,CAAlB,EACE,OAAO,KAAP;AACH;AACD,SAAO,IAAP;AACD;;AAEM,SAASc,QAAT,CAAkBF,MAAlB,EAA0BC,MAA1B,EAAkC;AACvC,QAAMP,MAAMM,OAAOX,MAAnB;AACA,QAAMH,QAAQ,EAAd;;AAEA,OAAK,IAAIE,IAAI,CAAb,EAAgBA,IAAIM,GAApB,EAAyB,EAAEN,CAA3B,EAA8B;AAC5BF,UAAME,CAAN,IAAWY,OAAOZ,CAAP,IAAYa,OAAOb,CAAP,CAAvB;AACD;;AAED,SAAOF,KAAP;AACD;;AAEM,SAASiB,YAAT,CAAsBjB,KAAtB,EAA6B;AAClC,MAAIA,iBAAiBkB,WAArB,EAAkC;AAChClB,YAAQ,IAAImB,UAAJ,CAAenB,KAAf,CAAR;AACD;AACD,QAAMQ,MAAMR,MAAMG,MAAlB;AACA,QAAMiB,QAAQ,EAAd;AACA,MAAIlB,CAAJ;AACA,OAAKA,IAAI,CAAT,EAAYA,IAAIM,GAAhB,EAAqBN,GAArB,EAA0B;AACxBkB,UAAMlB,MAAM,CAAZ,KAAkBF,MAAME,CAAN,KAAY,KAAKA,IAAI,CAAJ,GAAQ,CAA3C;AACD;;AAED,SAAO,IAAIjB,SAASoC,GAAT,CAAaC,SAAb,CAAuBC,IAA3B,CAAgCH,KAAhC,EAAuCZ,GAAvC,CAAP;AACD;;AAEM,SAASgB,cAAT,CAAwBC,SAAxB,EAAmC;AACxC,QAAML,QAAQK,UAAUL,KAAxB;AACA,QAAMM,WAAWD,UAAUC,QAA3B;AACA,QAAM1B,QAAQ,EAAd;;AAEA,OAAK,IAAIE,IAAI,CAAb,EAAgBA,IAAIwB,QAApB,EAA8BxB,GAA9B,EAAmC;AACjCF,UAAMI,IAAN,CAAWgB,MAAMlB,MAAM,CAAZ,MAAmB,KAAKA,IAAI,CAAJ,GAAQ,CAAhC,GAAoC,IAA/C;AACD;;AAED,SAAOF,KAAP;AACD;;AAGM,SAAS2B,qBAAT,CAA+BC,MAA/B,EAAuC;AAC5C,QAAMnC,MAAM,yFAAAG,CAAWgC,MAAX,EAAmB,EAAnB,CAAZ;AACA,SAAOtB,aAAab,GAAb,CAAP;AACD;;AAEM,SAASoC,kBAAT,CAA4BC,CAA5B,EAA+B;AACpC,SAAQ,IAAIX,UAAJ,CAAeW,CAAf,CAAD,CAAoBC,MAA3B;AACD;;AAEM,SAASC,oBAAT,CAA8BhC,KAA9B,EAAqC;AAC1C;AACA,MAAIA,iBAAiBkB,WAArB,EAAkC;AAChC,WAAOlB,KAAP;AACD;AACD,MAAIA,MAAM+B,MAAN,KAAiBE,SAAjB,IACFjC,MAAM+B,MAAN,CAAaG,UAAb,IAA2BlC,MAAMG,MAAN,GAAeH,MAAMmC,iBADlD,EACqE;AACnE,WAAOnC,MAAM+B,MAAb;AACD;AACD,SAAOF,mBAAmB7B,KAAnB,CAAP;AACD;;AAEM,SAASoC,mBAAT,CAA6BpC,KAA7B,EAAoC;AACzC,MAAIA,MAAM+B,MAAN,KAAiBE,SAArB,EACE,OAAOjC,KAAP;AACF,SAAO,IAAImB,UAAJ,CAAenB,KAAf,CAAP;AACD;;AAEM,SAASqC,kBAAT,CAA4BrC,KAA5B,EAAmC;AACxC,MAAIsC,MAAMC,OAAN,CAAcvC,KAAd,CAAJ,EACE,OAAOA,KAAP;AACFA,UAAQoC,oBAAoBpC,KAApB,CAAR;AACA,QAAMwC,WAAW,EAAjB;AACA,OAAK,IAAItC,IAAI,CAAR,EAAWM,MAAMR,MAAMG,MAA5B,EAAoCD,IAAIM,GAAxC,EAA6CN,GAA7C,EACEsC,SAASpC,IAAT,CAAcJ,MAAME,CAAN,CAAd;AACF,SAAOsC,QAAP;AACD;;AAEM,SAASC,oBAAT,CAA8BV,MAA9B,EAAsC;AAC3C,QAAMW,WAAW,IAAIvB,UAAJ,CAAeY,MAAf,CAAjB;AACA,QAAM/B,QAAQsC,MAAMK,IAAN,CAAYD,QAAZ,CAAd;AACA,SAAO1C,KAAP;AACD;;AAEM,SAAS4C,YAAT,CAAsBC,OAAtB,EAA+BC,OAA/B,EAAwC;AAC7C,QAAMC,KAAKF,QAAQX,UAAR,IAAsBW,QAAQ1C,MAAzC;AACA,QAAM6C,KAAKF,QAAQZ,UAAR,IAAsBY,QAAQ3C,MAAzC;AACA,QAAM8C,MAAM,IAAI9B,UAAJ,CAAe4B,KAAKC,EAApB,CAAZ;AACAC,MAAIC,GAAJ,CACEL,mBAAmB3B,WAAnB,GACI,IAAIC,UAAJ,CAAe0B,OAAf,CADJ,GAEIA,OAHN,EAIE,CAJF;AAKAI,MAAIC,GAAJ,CACEJ,mBAAmB5B,WAAnB,GACI,IAAIC,UAAJ,CAAe2B,OAAf,CADJ,GAEIA,OAHN,EAIEC,EAJF;;AAMA,SAAOE,IAAIlB,MAAX;AACD;;AAED;AACA,MAAMoB,aAAa,yFAAAzD,CAAW,WAAX,EAAwB,EAAxB,EAA4B,CAA5B,CAAnB;;AAEA;AACA;AACA;;AAEO,SAAS0D,UAAT,CAAoBC,KAApB,EAA2B;AAChC;;;;;;;;;;AAUA;AACA,QAAMC,SAAS,yFAAA5D,CAAW2D,KAAX,EAAkB,EAAlB,EAAsB,CAAtB,CAAf;AACA,QAAME,MAAM,IAAIjB,KAAJ,CAAUgB,OAAOnD,MAAjB,CAAZ;AACA,QAAMqD,MAAM,IAAIlB,KAAJ,CAAUgB,OAAOnD,MAAjB,CAAZ;AACAsD,EAAA,sFAAAA,CAAQH,MAAR,EAAgBH,UAAhB,EAA4BI,GAA5B,EAAiCC,GAAjC;AACA,QAAME,OAAO,CACX,CAAC,CAAC,yFAAA9D,CAAW2D,GAAX,EAAgB,EAAhB,CADS,EAEX,CAAC,CAAC,yFAAA3D,CAAW4D,GAAX,EAAgB,EAAhB,CAFS,CAAb;AAIA;;AAEA;AACA,SAAOE,IAAP;AACD;;AAEM,SAASC,WAAT,CAAqBN,KAArB,EAA4B;AACjC,SAAO7B,eAAe,EAAEJ,OAAOgC,WAAWC,KAAX,CAAT,EAA4B3B,UAAU,CAAtC,EAAf,EAA0DkC,OAA1D,EAAP;AACD;;AAEM,SAASC,WAAT,CAAqBC,IAArB,EAA2BC,GAA3B,EAAgC;AACrC,QAAMC,UAAU,yFAAAC,CAAWH,IAAX,EAAiB,EAAjB,EAAqB,CAArB,CAAhB;AACAI,EAAA,yFAAAA,CAAWF,OAAX,EAAoB,EAApB;;AAEAG,EAAA,sFAAAA,CAAQH,OAAR,EAAiBD,GAAjB;AACA,QAAMK,MAAM,yFAAAxE,CAAWoE,OAAX,EAAoB,EAApB,CAAZ;AACA,SAAOI,GAAP;AACD;;AAEM,SAASC,SAAT,CAAmBC,GAAnB,EAAwB;AAC7BA,QAAM5D,SAAS4D,GAAT,CAAN,CAD6B,CACT;AACpB,MAAIA,MAAM,CAAV,EACEA,MAAMA,MAAM,UAAZ;AACF,SAAOA,GAAP;AACD;;AAEM,SAASC,SAAT,CAAmBD,GAAnB,EAAwB;AAC7B,MAAIA,MAAM,UAAV,EACEA,MAAMA,MAAM,UAAZ;AACF,SAAOA,GAAP;AACD;;AAEM,SAASE,YAAT,CAAsBxE,KAAtB,EAA6B;AAClC;AACA,QAAMyE,YAAYvF,cAAcwF,SAAd,CAAwB1E,KAAxB,EAA+B+B,MAAjD;AACA;;AAEA,SAAO0C,SAAP;AACD;;AAEM,SAASE,aAAT,CAAuB3E,KAAvB,EAA8B;AACnC,SAAOyC,qBAAqB+B,aAAaxE,KAAb,CAArB,CAAP;AACD;;AAEM,SAAS4E,cAAT,CAAwB5E,KAAxB,EAA+B;AACpC;AACA,QAAM6E,YAAY5F,SAAS6F,MAAT,CAAgB7D,aAAajB,KAAb,CAAhB,CAAlB;AACA;;AAEA,QAAMyE,YAAYjD,eAAeqD,SAAf,CAAlB;;AAEA,SAAOJ,SAAP;AACD;;AAEM,SAASM,UAAT,CAAoBC,SAApB,EAA+BhF,KAA/B,EAAsC;AAC3CA,UAAQiF,WAAWjF,KAAX,EAAkB,GAAlB,CAAR;;AAEA,QAAMkF,IAAI,yFAAAxF,CAAWsF,UAAUG,OAArB,EAA8B,EAA9B,EAAkC,GAAlC,CAAV;AACA,QAAMC,IAAI,yFAAA1F,CAAWsF,UAAUK,QAArB,EAA+B,EAA/B,EAAmC,GAAnC,CAAV;AACA,QAAMC,IAAI,yFAAA5F,CAAWK,WAAWC,KAAX,CAAX,EAA8B,EAA9B,EAAkC,GAAlC,CAAV;AACA,QAAMuF,kBAAkB,qFAAAC,CAAOF,CAAP,EAAUF,CAAV,EAAaF,CAAb,CAAxB;AAAA,QACMO,iBAAiBnF,aAAa,yFAAAV,CAAW2F,eAAX,EAA4B,EAA5B,CAAb,CADvB;;AAGA,SAAOE,cAAP;AACD;;AAEM,SAASR,UAAT,CAAoBjF,KAApB,EAA2B0F,SAA3B,EAAsCC,MAAtC,EAA8C;AACnDD,cAAYA,aAAa,EAAzB;AACA,QAAMlF,MAAMR,MAAMkC,UAAN,IAAoBlC,MAAMG,MAAtC;AACA,QAAMyF,cAAcF,YAAYlF,MAAMkF,SAAtC;AACA,MAAIE,cAAc,CAAd,IAAmBA,cAAcF,SAArC,EAAgD;AAC9C,UAAMG,UAAU,IAAIvD,KAAJ,CAAUsD,WAAV,CAAhB;AACA,QAAID,MAAJ,EAAY;AACV,WAAK,IAAIzF,IAAI,CAAb,EAAgBA,IAAI0F,WAApB,EAAiC1F,GAAjC,EACE2F,QAAQ3F,CAAR,IAAa,CAAb;AACH,KAHD,MAIE,uEAAA4F,CAAOC,SAAP,CAAiBF,OAAjB;;AAEF7F,YAAQA,iBAAiBkB,WAAjB,GACJ0B,aAAa5C,KAAb,EAAoB6F,OAApB,CADI,GAEJ7F,MAAMgG,MAAN,CAAaH,OAAb,CAFJ;AAGD;;AAED,SAAO7F,KAAP;AACD;;AAEM,SAASiG,cAAT,CAAwBjG,KAAxB,EAA+BkG,QAA/B,EAAyCC,OAAzC,EAAkD;AACvD,QAAM3F,MAAMR,MAAMkC,UAAN,IAAoBlC,MAAMG,MAAtC;;AAEA;AACAH,UAAQiF,WAAWjF,KAAX,CAAR;;AAEA,QAAMoG,iBAAiBnH,SAASoH,GAAT,CAAaC,OAAb,CAAqBrF,aAAajB,KAAb,CAArB,EAA0CiB,aAAaiF,QAAb,CAA1C,EAAkE;AACvFK,QAAStF,aAAakF,OAAb,CAD8E;AAEvFN,aAAS5G,SAASuH,GAAT,CAAaC,SAFiE;AAGvFC,UAASzH,SAASyH,IAAT,CAAcC;AAHgE,GAAlE,EAIpBC,UAJH;;AAMA,QAAMnB,iBAAiBjE,eAAe4E,cAAf,CAAvB;AACA;;AAEA,SAAOX,cAAP;AACD;;AAEM,SAASoB,cAAT,CAAwBpB,cAAxB,EAAwCS,QAAxC,EAAkDC,OAAlD,EAA2D;;AAEhE;AACA,QAAMW,iBAAiB7H,SAASoH,GAAT,CAAaU,OAAb,CAAqB,EAAEH,YAAY3F,aAAawE,cAAb,CAAd,EAArB,EAAmExE,aAAaiF,QAAb,CAAnE,EAA2F;AAChHK,QAAStF,aAAakF,OAAb,CADuG;AAEhHN,aAAS5G,SAASuH,GAAT,CAAaC,SAF0F;AAGhHC,UAASzH,SAASyH,IAAT,CAAcC;AAHyF,GAA3F,CAAvB;;AAMA,QAAM3G,QAAQwB,eAAesF,cAAf,CAAd;AACA;;AAEA,SAAO9G,KAAP;AACD;;AAEM,SAASgH,cAAT,CAAwBhH,KAAxB,EAA+B;AACpC;AACA,QAAMiH,SAAS,gFAAAC,CAAQlH,KAAR,CAAf;AACA;AACA,SAAOiH,MAAP;AACD;;AAEM,SAASE,aAAT,CAAuBC,QAAvB,EAAiC;AACtC,SAAOC,KAAKC,KAAL,CAAWD,KAAKvB,MAAL,KAAgBsB,QAA3B,CAAP;AACD;;AAGM,SAASG,oBAAT,CAA8BC,OAA9B,EAAuC;AAC5C,QAAMC,UAAUJ,KAAKK,IAAL,CAAU,KAAK,2DAAf,IAAsB,CAAtC;;AAEA;AACA,QAAMC,MAAM5H,WAAWyH,OAAX,CAAZ;AACA,QAAMI,QAAQ,yFAAAlI,CAAWiI,GAAX,EAAgB,EAAhB,EAAoBF,OAApB,CAAd;AACA,QAAMR,SAASY,cAAcD,KAAd,CAAf;AACA,SAAOX,MAAP;AACD;;AAGM,SAASY,aAAT,CAAuBC,IAAvB,EAA6B;AAClC,QAAMC,UAAU,EAAhB;AACA,QAAMC,SAASX,KAAKK,IAAL,CAAUK,UAAU,2DAApB,IAA2B,CAA1C;AACA,MAAIE,KAAK,CAAT;AACA,MAAIC,CAAJ,EAAOC,GAAP;AACA,QAAMC,IAAI,IAAI9F,KAAJ,CAAU0F,MAAV,CAAV;AACA,QAAMlG,IAAI,IAAIQ,KAAJ,CAAU0F,MAAV,CAAV;AACA,QAAMK,IAAI,IAAI/F,KAAJ,CAAU0F,MAAV,CAAV;AACA,QAAMM,IAAI,IAAIhG,KAAJ,CAAU0F,MAAV,CAAV;AACA,QAAMO,IAAI,IAAIjG,KAAJ,CAAU0F,MAAV,CAAV;AACA,QAAMQ,IAAI,IAAIlG,KAAJ,CAAU0F,MAAV,CAAV;AACA,QAAMS,IAAI,IAAInG,KAAJ,CAAU0F,MAAV,CAAV;;AAEA,OAAK,IAAI9H,IAAI,CAAb,EAAgBA,IAAI,CAApB,EAAuBA,GAAvB,EAA4B;AAC1BgI,QAAI,CAACf,cAAc,GAAd,IAAqB,EAAtB,IAA4B,EAAhC;AACAuB,IAAA,uFAAAA,CAASF,CAAT,EAAYrB,cAAc,UAAd,IAA4B,CAAxC;AACAwB,IAAA,oFAAAA,CAAMF,CAAN,EAASD,CAAT;AACAL,UAAM,KAAKjI,IAAI,EAAf;;AAEA,SAAK,IAAI0I,IAAI,CAAb,EAAgBA,IAAIT,GAApB,EAAyBS,GAAzB,EAA8B;AAC5B,QAAEX,EAAF;AACAU,MAAA,oFAAAA,CAAMP,CAAN,EAASI,CAAT;AACAG,MAAA,oFAAAA,CAAM7G,CAAN,EAAS0G,CAAT;AACAE,MAAA,uFAAAA,CAASL,CAAT,EAAYH,CAAZ;;AAEA,aAAO,CAAC,qFAAAW,CAAO/G,CAAP,CAAR,EAAmB;AACjB,YAAIA,EAAE,CAAF,IAAO,CAAX,EAAc;AACZgH,UAAA,mFAAAA,CAAKT,CAAL,EAAQD,CAAR;AACA,cAAI,sFAAAW,CAAQV,CAAR,EAAWP,IAAX,CAAJ,EAAsB;AACpBkB,YAAA,mFAAAA,CAAKX,CAAL,EAAQP,IAAR;AACD;AACF;AACDgB,QAAA,mFAAAA,CAAKV,CAAL,EAAQA,CAAR;AACA,YAAI,sFAAAW,CAAQX,CAAR,EAAWN,IAAX,CAAJ,EAAsB;AACpBkB,UAAA,mFAAAA,CAAKZ,CAAL,EAAQN,IAAR;AACD;AACDnI,QAAA,0FAAAA,CAAYmC,CAAZ,EAAe,CAAf;AACD;;AAED6G,MAAA,oFAAAA,CAAMH,CAAN,EAASH,CAAT;AACA,UAAI,sFAAAU,CAAQP,CAAR,EAAWC,CAAX,CAAJ,EAAmB;AACjBE,QAAA,oFAAAA,CAAMJ,CAAN,EAASC,CAAT;AACAQ,QAAA,mFAAAA,CAAKT,CAAL,EAAQE,CAAR;AACD,OAHD,MAGO;AACLE,QAAA,oFAAAA,CAAMJ,CAAN,EAASE,CAAT;AACAO,QAAA,mFAAAA,CAAKT,CAAL,EAAQC,CAAR;AACD;AACDS,MAAA,oFAAAA,CAAMV,CAAN,EAAST,IAAT,EAAeQ,CAAf,EAAkBF,CAAlB,EAAqBtG,CAArB;AACA,UAAI,CAAC,wFAAAoH,CAAUZ,CAAV,EAAa,CAAb,CAAL,EAAsB;AACpB;AACD;AACD,UAAI,CAACM,IAAIA,IAAI,CAAT,MAAgB,CAApB,EAAuB;AACrBD,QAAA,oFAAAA,CAAMF,CAAN,EAASD,CAAT;AACD;AACF;AACD,QAAI,sFAAAO,CAAQT,CAAR,EAAW,2DAAX,CAAJ,EAAqB;AACnB;AACD;AACF;;AAED7E,EAAA,sFAAAA,CAAQqE,IAAR,EAAcQ,CAAd,EAAiBE,CAAjB,EAAoBC,CAApB;;AAEA,QAAM,CAACU,CAAD,EAAIC,CAAJ,IACJ,sFAAAL,CAAQT,CAAR,EAAWE,CAAX,IACI,CAACA,CAAD,EAAIF,CAAJ,CADJ,GAEI,CAACA,CAAD,EAAIE,CAAJ,CAHN;;AAKA;;AAEA,SAAO,CAAC7G,sBAAsBwH,CAAtB,CAAD,EAA2BxH,sBAAsByH,CAAtB,CAA3B,EAAqDnB,EAArD,CAAP;AACD;;AAEM,SAASoB,WAAT,CAAqBb,CAArB,EAAwBC,CAAxB,EAA2Ba,CAA3B,EAA8B;AACnC,QAAMC,UAAU,yFAAA7J,CAAWK,WAAWyI,CAAX,CAAX,EAA0B,EAA1B,CAAhB;AACA,QAAMgB,UAAU,yFAAA9J,CAAWK,WAAW0I,CAAX,CAAX,EAA0B,EAA1B,CAAhB;AACA,QAAMgB,UAAU,yFAAA/J,CAAWK,WAAWuJ,CAAX,CAAX,EAA0B,EAA1B,CAAhB;AACA,QAAMI,YAAY,qFAAAlE,CAAO+D,OAAP,EAAgBC,OAAhB,EAAyBC,OAAzB,CAAlB;;AAEA,SAAOnJ,aAAa,yFAAAV,CAAW8J,SAAX,EAAsB,EAAtB,CAAb,CAAP;AACD,C;;;;;;ACtaD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sC;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,mBAAmB;AACrD;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACtND;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,6EAA6E,kBAAkB;AAC/F;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,6EAA6E,kBAAkB;AAC/F;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,UAAU;AAC7B,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,uGAAuG,kBAAkB;AACzH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM;AAC7B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM;AAC7B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM;AAC7B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM;AAC7B,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;;AAGA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA,KAAK;;AAEL;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,kBAAkB,UAAU;AAC5B,kBAAkB,UAAU;AAC5B,kBAAkB,UAAU;AAC5B,kBAAkB,OAAO;AACzB,kBAAkB,KAAK;AACvB,kBAAkB,QAAQ;AAC1B,kBAAkB,OAAO;AACzB,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC,qCAAqC;AAC7E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,iBAAiB;AACpC,mBAAmB,UAAU;AAC7B,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,SAAS;AACzH,gHAAgH,0CAA0C;AAC1J;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,oBAAoB;AACvC,mBAAmB,UAAU;AAC7B,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,qHAAqH,0CAA0C;AAC/J,kHAAkH,0CAA0C;AAC5J;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,mBAAmB,UAAU;AAC7B;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,OAAO;AAC1B,mBAAmB,OAAO;AAC1B,mBAAmB,iBAAiB;AACpC;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,4BAA4B;;AAEjE;AACA;AACA;;AAEA;AACA,wCAAwC,+BAA+B;AACvE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,iBAAiB;AACpC,mBAAmB,OAAO;AAC1B,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,kCAAkC;AAC1J;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,oBAAoB;AACvC,mBAAmB,OAAO;AAC1B,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,6HAA6H,kCAAkC;AAC/J,0HAA0H,kCAAkC;AAC5J;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL,CAAC;;;;;;;AC98BD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;;AAEA;;AAEA,+BAA+B,sCAAsC;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,CAAC;;;;;;;AC9GD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,sBAAsB,OAAO;AAC7B,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,sDAAsD,aAAa;AACnE,sDAAsD,+BAA+B;AACrF;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,iBAAiB;AACpC;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC,eAAe,OAAO;AACtB;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa;AACnE,sDAAsD,+BAA+B;AACrF;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACvHD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sC;;;;;;AC7CA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,OAAO;AAClC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/PD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,Q;;;;;;;;;ACpLD;;AAEO,MAAM5D,SAAS,IAAI,kDAAJ,EAAf;AAAA;AAAA;;AAEP,wDAAeA,MAAf,C;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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GAAJ,CAAWf;AAAM;AACjF,WAAMA,IAAE+I,EAAR,GAAe;AAAEtJ,WAAGoC,GAAG7B,CAAH,CAAH,CAA2B6B,GAAG7B,IAAE,CAAL,IAAQP,IAAIuB,IAAZ,CAAoBvB,MAAIsB,GAAJ,CAAWf;AAAM;AACjF6B,OAAG7B,IAAE,CAAL,IAAQP,IAAIuB,IAAZ;AACD;;AAED,MAAI,CAACb,QAAQwD,CAAR,EAAW9B,EAAX,CAAL,EACEzB,KAAKyB,EAAL,EAAS8B,CAAT;AACF5D,QAAMH,CAAN,EAASiC,EAAT;AACD,C;;;;;;;ACp+CD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA,8BAA8B;AAC9B;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG,eAAe;;AAElB;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB,mBAAmB;AACnB,sBAAsB;AACtB,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,cAAc;AACjC;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD;;AAEtD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,kEAAkE;;AAEvF;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qBAAqB,yCAAyC;;AAE9D;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;;;;;;ACjaA;AACA;;;AAGA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK,wCAAwC,EAAE,aAAa,sBAAsB;AAClF,KAAK,oDAAoD,EAAE,aAAa,0BAA0B;;;AAGlG;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA,kCAAkC;;;AAGlC;AACA;AACA;;AAEA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA,mBAAmB,qBAAqB,UAAU;;AAElD;AACA;AACA,oBAAoB,0BAA0B,gBAAgB,UAAU;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,0BAA0B,UAAU;;AAExD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,kBAAkB;;AAE3C;AACA;AACA,kDAAkD,OAAO;;AAEzD;AACA;AACA,gBAAgB,YAAY;;AAE5B;AACA;AACA,kBAAkB,YAAY;;AAE9B;AACA;;;;;;;;ACxLA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;;AAGA;;;;;;;;AC/BA;;;AAGA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACjDA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA,mBAAmB,SAAS;AAC5B;AACA;;AAEA,sBAAsB;AACtB;;;AAGA;;;;;;;;ACxCA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvCA;;AAEA;AACA,aAAa;AACb,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,WAAW;AACX,WAAW;AACX,UAAU;AACV,UAAU;AACV;AACA,WAAW;AACX;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA,eAAe;AACf,WAAW;AACX,WAAW;AACX,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,WAAW;AACX,SAAS;AACT;AACA,UAAU;AACV,WAAW;AACX,WAAW;AACX;;;AAGA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,gCAAgC;AAChC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,mBAAmB;AACnB,qCAAqC;AACrC;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,mBAAmB;AACnB;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,qBAAqB;AACrB,uCAAuC;AACvC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,mBAAmB;AACnB,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,kBAAkB;AAClB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY;AACZ;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrUA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;;AAGA,gBAAgB;AAChB,iBAAiB;AACjB,gBAAgB;AAChB,cAAc;AACd,iBAAiB;AACjB,iBAAiB;AACjB,gBAAgB;AAChB,mBAAmB;AACnB,gBAAgB;AAChB,mBAAmB;AACnB,iBAAiB;AACjB,qBAAqB;AACrB,uBAAuB;AACvB,uBAAuB;AACvB,sBAAsB;AACtB,qBAAqB;AACrB,sBAAsB;AACtB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,wBAAwB;AACxB,2BAA2B;AAC3B,yBAAyB;AACzB,4BAA4B;AAC5B,0BAA0B;AAC1B,wBAAwB;AACxB,kBAAkB;AAClB,mBAAmB;AACnB,iBAAiB;AACjB,gBAAgB;AAChB,gBAAgB;AAChB,iBAAiB;;AAEjB;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,gBAAgB;AAChB,oBAAoB;AACpB,gBAAgB;AAChB,wBAAwB;AACxB,iBAAiB;AACjB,gBAAgB;AAChB,iBAAiB;AACjB,iBAAiB;AACjB;AACA,mBAAmB;;AAEnB;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,qBAAqB;;AAErB;AACA,gBAAgB;AAChB,gBAAgB;;AAEhB;AACA,kBAAkB;AAClB,kBAAkB;;AAElB;AACA,iBAAiB;;AAEjB;AACA,sBAAsB;AACtB,uBAAuB;AACvB,mBAAmB;AACnB,oBAAoB;;AAEpB;AACA,iBAAiB;AACjB,gBAAgB;AAChB,iBAAiB;AACjB,gBAAgB;AAChB,mBAAmB;;AAEnB,mCAAmC;AACnC,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,sBAAsB;AACtB,gBAAgB;AAChB,gBAAgB;AAChB,eAAe;AACf;;AAEA;AACA;;AAEA,6BAA6B,uBAAuB;AACpD;AACA;AACA,gBAAgB;AAChB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,uBAAuB;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,uBAAuB;AACrC,sBAAsB;;AAEtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB,uBAAuB;AAC9C,uBAAuB,uBAAuB;AAC9C,uBAAuB,uBAAuB;AAC9C,uBAAuB,uBAAuB;;AAE9C,uEAAuE,UAAU;;AAEjF;AACA;AACA,sBAAsB,uBAAuB;;AAE7C,uEAAuE,UAAU;;AAEjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB,WAAW;AACX,UAAU;AACV,iBAAiB;AACjB,WAAW;AACX,WAAW;AACX,gBAAgB;AAChB,WAAW;AACX,WAAW;AACX;AACA,eAAe;AACf,mCAAmC;AACnC,aAAa;AACb,mCAAmC;AACnC,UAAU;AACV,UAAU;AACV,+BAA+B;AAC/B;;AAEA,QAAQ;;AAER;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,qBAAqB,EAAE;;;AAGnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC,0BAA0B,aAAa;AACvC,yBAAyB,iBAAiB;AAC1C,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kEAAkE;AAClE;AACA;AACA;;AAEA,oCAAoC,OAAO;AAC3C;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,OAAO;;AAEtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gEAAgE;AAChE;AACA;AACA;;AAEA,gCAAgC,OAAO;AACvC;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA,gDAAgD,OAAO;AACvD;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,kEAAkE;AAClE;AACA;AACA;;AAEA,kCAAkC,OAAO;AACzC;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA,gDAAgD,OAAO;AACvD;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA,aAAa;AACb,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB;AACvD;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA,OAAO;AACP,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,uBAAuB;AACpD;AACA,+BAA+B,uBAAuB;;AAEtD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6DAA6D,uBAAuB;AACpF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjgDA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;;AAEzB,cAAc;AACd,cAAc;AACd,uBAAuB;AACvB,eAAe;AACf,eAAe;AACf,eAAe;AACf,eAAe;AACf,eAAe;AACf,eAAe;AACf,WAAW;AACX,WAAW;AACX,UAAU;AACV,WAAW;AACX,WAAW;AACX,kBAAkB;AAClB;AACA,iBAAiB;AACjB,UAAU;AACV,2CAA2C,eAAe;AAC1D,0CAA0C,eAAe;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA;AACA,qBAAqB,UAAU;AAC/B,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA,kBAAkB;AAClB,sCAAsC,2BAA2B;AACjE,uCAAuC;AACvC,wCAAwC;AACxC;;;AAGA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA,eAAe,WAAW;AAC1B,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;;AAEA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,GAAG,OAAO;AACV;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,UAAU;AACV,YAAY;AACZ,qBAAqB;AACrB,cAAc;AACd,WAAW;AACX,WAAW;AACX,mBAAmB;AACnB,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACpUA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;;;AAGA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/OA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;;;;;;;AClBA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK,kBAAkB,KAAK;AAC5D,uBAAuB;AACvB;AACA,kBAAkB;;;;;;;AC1BlB;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC1CD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACtCD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sBAAsB,EAAE;AACjD,yBAAyB,sBAAsB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC5CD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB,EAAE;AAC7C,qBAAqB,qBAAqB,EAAE;AAC5C,qBAAqB,qBAAqB,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC7CD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,uCAAuC;AACvC,uCAAuC;AACvC,uCAAuC;AACvC;AACA;;;;;;;AC3BA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA,6CAA6C;AAC7C,8BAA8B;AAC9B,+CAA+C;AAC/C;AACA;AACA;AACA,CAAC;;;;;;;AC1BD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB,wBAAwB,KAAK;AAC/D,WAAW,OAAO;AAClB;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,sCAAsC;AACtC,yBAAyB,QAAQ,kBAAkB,SAAS;AAC5D,sBAAsB,WAAW,OAAO,EAAE,WAAW,iBAAiB,aAAa;AACnF;AACA;AACA,0BAA0B,kDAAkD,EAAE;AAC9E;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB,EAAE;AACnE,iBAAiB;AACjB,CAAC;;;;;;;AC3CD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACjCD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;ACxCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,KAAK;AAChB,YAAY;AACZ;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAoC,EAAE;AACtD;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpCD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,KAAK;AAChB,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA,yBAAyB,IAAI,IAAI;AACjC;AACA,iCAAiC;AACjC,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC3BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA,oBAAoB;AACpB,uBAAuB;AACvB,iBAAiB;AACjB,oBAAoB;AACpB;AACA;;;;;;;AC1BA;AACA;;;AAGA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3CA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe;AACf,gBAAgB;AAChB;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC9CD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE,YAAY,EAAE;AAC/B,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO,uCAAuC;AAC/E;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,CAAC;;;;;;;ACrCD;AACA;;;AAGA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB;AACA;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC,oBAAoB,eAAe,IAAI,eAAe,GAAG;AACzD,iCAAiC;AACjC;AACA;;;;;;;ACxBA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA,+CAA+C,gBAAgB,EAAE;;;;;;;AC3BjE;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;;;;;;AClBA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,KAAK,KAAK;AAC/B,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,uCAAuC,IAAI,IAAI,QAAQ,EAAE,OAAO,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AClCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sBAAsB;AACtB;AACA,gDAAgD,cAAc,EAAE;;;;;;;ACzBhE;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,6CAA6C;AAC7C,6CAA6C;AAC7C,6CAA6C;AAC7C,6CAA6C;AAC7C,+BAA+B;AAC/B;AACA;;;;;;;AC3BA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;;;;;;;AC5BA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,kDAAkD;AAClD;AACA;;;;;;;ACzBA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACrCD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;ACvCD;AACA;;;AAGA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,CAAC;;;;;;;ACvBD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,KAAK,KAAK;AAC7B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,+BAA+B;AAC/B,+BAA+B;AAC/B;AACA;AACA;AACA,CAAC;;;;;;;AC3BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,KAAK,KAAK,KAAK;AACpC,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA,uBAAuB,+BAA+B,8BAA8B;AACpF;AACA;AACA;AACA,iBAAiB;AACjB;AACA,0CAA0C,OAAO,4BAA4B,8BAA8B;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACzCD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,mBAAmB,KAAK,GAAG,KAAK,GAAG,KAAK;AACxC,qCAAqC,OAAO;AAC5C,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACtCD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,mBAAmB,KAAK,GAAG,KAAK,GAAG,KAAK;AACxC,0CAA0C;AAC1C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACrCD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,mBAAmB,WAAW,GAAG,UAAU;AAC3C,yCAAyC,OAAO;AAChD,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACnCD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,mBAAmB,WAAW,GAAG,UAAU;AAC3C,8CAA8C;AAC9C,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrBA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC9CD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,kDAAkD,WAAW,EAAE,OAAO;AACtE;AACA;AACA,iCAAiC,WAAW,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACnCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC3BD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,wBAAwB;AACjD,yBAAyB,wBAAwB;AACjD;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA,oBAAoB,0BAA0B;AAC9C,oBAAoB,wBAAwB;AAC5C;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AClDD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,MAAM;AACjB;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACzCD;;;AAGA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,uBAAuB;AACvB,uBAAuB;AACvB;AACA,4CAA4C,cAAc,EAAE;;;;;;;ACxB5D;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,wBAAwB;AACxB,wBAAwB;AACxB;AACA,6CAA6C,eAAe,EAAE;;;;;;;ACxB9D;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA,iBAAiB,cAAc,EAAE;AACjC,iBAAiB,YAAY,EAAE;AAC/B,kBAAkB,EAAE;AACpB;AACA,qBAAqB;AACrB;AACA,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB;AACA;;;;;;;AC5BA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,gCAAgC;AAChC;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,oCAAoC;AACpC,mBAAmB;AACnB;AACA,sBAAsB;AACtB,mBAAmB;AACnB;AACA;;;;;;;ACxBA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE,iBAAiB;AACtC,kBAAkB,WAAW,EAAE,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACnCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;;;;;;AClBA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK,MAAM,IAAI;AAC1C,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA,qBAAqB,sBAAsB,GAAG,sBAAsB;AACpE;AACA,cAAc,MAAM,sBAAsB,QAAQ;AAClD;AACA,+CAA+C,aAAa,EAAE;;;;;;;ACzB9D;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,gCAAgC;AAChC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,0BAA0B;AAC1B,uBAAuB;AACvB,oBAAoB;AACpB,mBAAmB;AACnB;AACA,sBAAsB;AACtB,qBAAqB;AACrB,oBAAoB;AACpB,mBAAmB;AACnB;AACA;;;;;;;AC3BA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC1BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC1BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC1KD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA;;AAEA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5GA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;AACA;AACA;AACA;AACA;AACA;;;;;;;ACLA;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;;;;;;;ACFA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvBA,kCAAkC,YAAY;;;;;;;ACA9C;AACA;AACA;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;ACPA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC,cAAc,EAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/CD;AACA;AACA;AACA;AACA,6BAA6B,gCAAgC;;AAE7D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACrBD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,yCAAyC,EAAE;AACxE;;AAEA;AACA;AACA,2BAA2B,kBAAkB,EAAE;AAC/C;AACA,yEAAyE,wBAAwB,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAwC;AACvD;AACA;;;;;;;AC7CA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,wBAAwB,EAAE;AAClE,CAAC;;;;;;;AC3BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,6BAA6B,EAAE;AAC5E,CAAC;;;;;;;ACnCD;AACA;AACA;;;AAGA;AACA;AACA,CAAC;;;;;;;ACPD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,yBAAyB,EAAE;AACpE,CAAC;;;;;;;ACpBD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,6BAA6B,EAAE;AAC5E,CAAC;;;;;;;ACjCD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAmD,mCAAmC,EAAE;AACxF,CAAC;;;;;;;AClCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,8BAA8B,EAAE;AAC9E,CAAC;;;;;;;ACtBD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,2BAA2B,EAAE;AACxE,CAAC;;;;;;;AChBD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,yBAAyB,EAAE;AACpE,CAAC;;;;;;;AC3BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,8BAA8B,EAAE;AAC9E,CAAC;;;;;;;AC7BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,6BAA6B,EAAE;AAC5E,CAAC;;;;;;;ACrBD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,kCAAkC,EAAE;AACtF,CAAC;;;;;;;ACxBD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,wBAAwB,EAAE;AAClE,CAAC;;;;;;;AChBD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB,CAAC;;;;;;;ACvCD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,yBAAyB,EAAE;AACpE,CAAC;;;;;;;ACnBD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,8BAA8B,EAAE;AAC9E,CAAC;;;;;;;ACjBD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;;;;;;AClCD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,WAAW,8BAA8B;AACzC,WAAW,8BAA8B;AACzC,WAAW,8BAA8B;AACzC,WAAW,gCAAgC;AAC3C,WAAW;AACX;AACA;AACA,WAAW,8BAA8B;AACzC,WAAW,gCAAgC;AAC3C,WAAW,6BAA6B;AACxC,WAAW;AACX;AACA;AACA;AACA,eAAe,gCAAgC,GAAG,4BAA4B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC1DD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AClCD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AChDD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,KAAK;AACnB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACzCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,KAAK;AACnB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC1CD;AACA;AACA;;;AAGA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,6BAA6B;AAC7B,sBAAsB;AACtB,sBAAsB;AACtB,wBAAwB;AACxB,oBAAoB,EAAE;AACtB,mBAAmB,UAAU,EAAE;AAC/B;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,QAAQ;AACpB;AACA;AACA,sBAAsB;AACtB,2BAA2B;AAC3B,mBAAmB;AACnB,oBAAoB;AACpB;AACA,4CAA4C,kBAAkB,EAAE;;;;;;;ACpBhE;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,+BAA+B;AAC/B;AACA;;;;;;;ACtBA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK;AACd,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,6CAA6C;AAC7C,qCAAqC;AACrC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACrCD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,8CAA8C;AAC9C,qDAAqD;AACrD;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK,WAAW,GAAG,WAAW,EAAE;AAC5D;AACA,8BAA8B,KAAK,WAAW,GAAG,WAAW,EAAE;AAC9D,cAAc,KAAK,WAAW,GAAG,WAAW;AAC5C,sCAAsC,KAAK,WAAW,GAAG,WAAW,EAAE;AACtE,cAAc,KAAK,YAAY,GAAG,WAAW;AAC7C;AACA;AACA;AACA,CAAC;;;;;;;AChCD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW,EAAE;AACpC,yBAAyB,WAAW,EAAE,gBAAgB;AACtD,iCAAiC,WAAW,EAAE,QAAQ;AACtD;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;;;AAGA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,uBAAuB;AACvB,uBAAuB;AACvB;AACA,4CAA4C,cAAc,EAAE;;;;;;;ACxB5D;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,wBAAwB;AACxB,wBAAwB;AACxB;AACA,6CAA6C,eAAe,EAAE;;;;;;;ACxB9D;;;AAGA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AChDD;;;AAGA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AClDD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP,CAAC;;;;;;;AC/BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA,wCAAwC;AACxC,0BAA0B;AAC1B,2BAA2B;AAC3B;AACA;AACA;AACA,CAAC;;;;;;;AC1BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA,0BAA0B;AAC1B,yBAAyB;AACzB,0BAA0B;AAC1B,yBAAyB;AACzB,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB,yBAAyB;AACzB;AACA;AACA,uBAAuB,YAAY;AACnC,gCAAgC,YAAY;AAC5C;AACA,CAAC;;;;;;;ACxCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wDAAwD;AACxD,yCAAyC;AACzC;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA,4BAA4B;AAC5B,gCAAgC;AAChC,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC9BD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACzCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,KAAK,KAAK,KAAK;AAC7B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,iBAAiB,4BAA4B,GAAG,YAAY;AAC5D,cAAc;AACd;AACA,4CAA4C,KAAK;AACjD,wBAAwB,WAAW,EAAE,OAAO;AAC5C,kBAAkB,aAAa,GAAG,aAAa,KAAK;AACpD;AACA;AACA,mBAAmB;AACnB,CAAC;;;;;;;AC7BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAK,MAAM;AACrB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,qBAAqB,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;AACrD,qBAAqB,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;AACrD,sBAAsB,OAAO,GAAG,OAAO,GAAG,OAAO,MAAM;AACvD;AACA;AACA,gCAAgC;AAChC,CAAC;;;;;;;ACvBD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,EAAE,KAAK,EAAE,KAAK;AACxC,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD,qBAAqB,4BAA4B;AACjD,cAAc;AACd;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AChCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB;AACA,6CAA6C,sBAAsB,EAAE;;;;;;;ACpBrE;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,+DAA+D;AAC/D,gDAAgD;AAChD;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB;AACA,gDAAgD,cAAc,EAAE;;;;;;;AC5BhE;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA,qBAAqB;AACrB;AACA,6CAA6C,WAAW,EAAE;;;;;;;ACjB1D;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,4CAA4C;AAC5C;AACA;;;;;;;AC7BA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA,mCAAmC;AACnC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC5BD;AACA;;;AAGA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,MAAM;AAClB;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB;AACA;;;;;;;ACtBA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU,KAAK;AACpC,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,4BAA4B,uBAAuB,EAAE,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA,uBAAuB;AACvB,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AClCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,kDAAkD,mBAAmB,EAAE;;;;;;;ACnBvE;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;;;;;;;AChCA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;;;;;;;AC7BA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kCAAkC;AACxE,iBAAiB,wBAAwB,GAAG,WAAW;AACvD;AACA;;;;;;;AC5BA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA,qBAAqB,WAAW,iBAAiB;AACjD,qBAAqB,WAAW,iBAAiB;AACjD,qBAAqB;AACrB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,EAAE;AACd;AACA;AACA,qCAAqC,IAAI,MAAM,EAAE;AACjD,qCAAqC,IAAI,MAAM,EAAE;AACjD;AACA;AACA;AACA,CAAC;;;;;;;AC1BD;AACA;;;AAGA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,iDAAiD,IAAI,MAAM,EAAE;AAC7D;AACA;AACA;AACA,CAAC;;;;;;;ACzBD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK,KAAK;AAC1B,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,4BAA4B,uBAAuB,EAAE,OAAO;AAC5D,iCAAiC,uBAAuB,EAAE,OAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK,KAAK;AACxC,WAAW,SAAS;AACpB;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB,EAAE,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,WAAW,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1CA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA,mCAAmC;AACnC;AACA;;;;;;;ACnBA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK,OAAO,KAAK;AAClC,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB;AACA,2CAA2C,QAAQ,uBAAuB,GAAG,uBAAuB;AACpG;AACA,oDAAoD;;;;;;;ACzBpD;AACA;;;AAGA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,+BAA+B,WAAW,EAAE;AAC5C,+BAA+B,SAAS,EAAE;AAC1C,gCAAgC,EAAE;AAClC;AACA;AACA;AACA,CAAC;;;;;;;AC1BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,mCAAmC;AACnC;AACA;AACA;AACA,CAAC;;;;;;;AChCD;;;AAGA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,0CAA0C,WAAW,EAAE;AACvD;AACA;AACA;AACA,CAAC;;;;;;;ACvBD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA,6BAA6B,WAAW,EAAE;AAC1C,kCAAkC,WAAW,EAAE;AAC/C;AACA;AACA,kBAAkB,6CAA6C,EAAE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;AClCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA,sBAAsB;AACtB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACtCD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC1BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,4CAA4C,SAAS,IAAI,IAAI,IAAI,IAAI;AACrE,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA,+CAA+C;AAC/C,+CAA+C;AAC/C;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,CAAC;;;;;;;ACzBD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACjCD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW,EAAE,QAAQ;AAC9C,yBAAyB,WAAW,EAAE,QAAQ;AAC9C;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,mCAAmC,cAAc;AACjD,gCAAgC;AAChC;AACA;AACA;AACA,CAAC;;;;;;;ACzBD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACzCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AC7CD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA,oCAAoC;AACpC;AACA;;;;;;;ACvBA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA,gCAAgC;AAChC,oCAAoC;AACpC,gCAAgC;AAChC;AACA;AACA;AACA,CAAC;;;;;;;ACzBD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA,+CAA+C;AAC/C,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;;;AAGA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;ACjCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,mBAAmB;AACnB;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,sDAAsD;AACtD,sDAAsD;AACtD;AACA;AACA;AACA,CAAC;;;;;;;ACzBD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,mBAAmB,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK;AAChD,mBAAmB,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK;AAChD,+CAA+C,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK;AACpF;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA;AACA,6CAA6C;AAC7C,6CAA6C;AAC7C,6CAA6C;AAC7C,6CAA6C;AAC7C,+BAA+B;AAC/B;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACtCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACxBD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA,CAAC;;;;;;;AC5BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;;;;;;AClBA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA,mBAAmB,iBAAiB,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;;;;;;AClBA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA,CAAC;;;;;;;ACnDD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC5CD;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,qDAAqD;AACrD;AACA;AACA;AACA,CAAC;;;;;;;ACjCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA,2BAA2B;AAC3B,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;ACnCD;AACA;AACA;;;AAGA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA,sCAAsC,QAAQ,EAAE;AAChD,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH,CAAC;;;;;;;AClCD;;;AAGA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACjCD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACrCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,MAAM;AAClB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpCD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,sCAAsC;AACtC;AACA;;;;;;;ACvBA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,mBAAmB,KAAK,GAAG,KAAK;AAChC,mBAAmB,KAAK,GAAG,KAAK;AAChC,iDAAiD,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK;AAC9E;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,WAAW,EAAE;AACb;AACA,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,uBAAuB;AACvB;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,kCAAkC;AAClC,2CAA2C;AAC3C;AACA;;;;;;;ACrBA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC5BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK;AACd,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC9BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW,EAAE;AACpC,uBAAuB,WAAW,EAAE;AACpC;AACA;AACA;AACA;AACA,YAAY,2BAA2B,aAAa;AACpD;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACnCD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,WAAW,EAAE;AACb;AACA,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,kCAAkC;AAClC;AACA;AACA;AACA,CAAC;;;;;;;ACjCD;AACA;AACA;AACA;;;AAGA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,KAAK,UAAU;AAClC,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA,cAAc,KAAK,EAAE;AACrB,cAAc,WAAW,EAAE;AAC3B,cAAc,iBAAiB,EAAE;AACjC,cAAc,WAAW,EAAE;AAC3B;AACA;AACA;AACA,CAAC;;;;;;;ACnCD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,CAAC;;;;;;;AC3BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpCD;;;AAGA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC/BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;AC7BD;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;ACpCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC,aAAa;AACb,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC,I;;;;;;;AC7eD;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;ACpBA;;AAGAmH,QAAQC,IAAR,CAAa,0BAAb;;AAEA,MAAMC,UAAUC,QAAQ;AACtB,UAAQA,KAAKC,IAAb;AACE,SAAK,WAAL;AAAoB,aAAO,yFAAAzK,CAAqBwK,KAAK/R,KAA1B,CAAP;AACpB,SAAK,SAAL;AAAoB,aAAO,gFAAAqJ,CAAY0I,KAAKvJ,CAAjB,EAAoBuJ,KAAKtJ,CAAzB,EAA4BsJ,KAAKzI,CAAjC,CAAP;AACpB,SAAK,WAAL;AAAoB,aAAO,iFAAA9E,CAAauN,KAAK/R,KAAlB,CAAP;AACpB,SAAK,aAAL;AAAoB,aAAO,mFAAAiG,CAAe8L,KAAK/R,KAApB,EAA2B+R,KAAK7L,QAAhC,EAA0C6L,KAAK5L,OAA/C,CAAP;AACpB,SAAK,aAAL;AAAoB,aAAO,mFAAAU,CAAekL,KAAKtM,cAApB,EACesM,KAAK7L,QADpB,EAC8B6L,KAAK5L,OADnC,CAAP;AAEpB;AACE,YAAM,IAAI8L,KAAJ,CAAW,iBAAgBF,KAAKC,IAAK,EAArC,CAAN;AARJ;AAUD,CAXD;;AAaAE,YAAY,UAASC,CAAT,EAAY;AACtB,MAAIA,EAAEJ,IAAF,KAAW,EAAf,EAAmB;AACjBH,YAAQC,IAAR,CAAa,mBAAb;AACD,GAFD,MAEO,IAAI,OAAOM,EAAEJ,IAAT,KAAkB,QAAtB,EAAgC;AACrCH,YAAQC,IAAR,CAAa,4BAAb,EAA2CM,EAAEJ,IAA7C;AACD,GAFM,MAEA;AACL,UAAMK,SAASD,EAAEJ,IAAF,CAAOK,MAAtB;AACA,UAAMnL,SAAS6K,QAAQK,EAAEJ,IAAV,CAAf;AACAM,gBAAY,EAAED,MAAF,EAAUnL,MAAV,EAAZ;AACD;AACF,CAVD;;AAYAoL,YAAY,OAAZ,E","file":"hash.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 336);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f902c8e711be6876bae4","var _curry1 = require('./_curry1');\nvar _isPlaceholder = require('./_isPlaceholder');\n\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nmodule.exports = function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2\n : _curry1(function(_b) { return fn(a, _b); });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2\n : _isPlaceholder(a) ? _curry1(function(_a) { return fn(_a, b); })\n : _isPlaceholder(b) ? _curry1(function(_b) { return fn(a, _b); })\n : fn(a, b);\n }\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_curry2.js\n// module id = 0\n// module chunks = 0","var _isPlaceholder = require('./_isPlaceholder');\n\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nmodule.exports = function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_curry1.js\n// module id = 1\n// module chunks = 0","var _curry1 = require('./_curry1');\nvar _curry2 = require('./_curry2');\nvar _isPlaceholder = require('./_isPlaceholder');\n\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nmodule.exports = function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3\n : _curry2(function(_b, _c) { return fn(a, _b, _c); });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3\n : _isPlaceholder(a) ? _curry2(function(_a, _c) { return fn(_a, b, _c); })\n : _isPlaceholder(b) ? _curry2(function(_b, _c) { return fn(a, _b, _c); })\n : _curry1(function(_c) { return fn(a, b, _c); });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3\n : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function(_a, _b) { return fn(_a, _b, c); })\n : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function(_a, _c) { return fn(_a, b, _c); })\n : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function(_b, _c) { return fn(a, _b, _c); })\n : _isPlaceholder(a) ? _curry1(function(_a) { return fn(_a, b, c); })\n : _isPlaceholder(b) ? _curry1(function(_b) { return fn(a, _b, c); })\n : _isPlaceholder(c) ? _curry1(function(_c) { return fn(a, b, _c); })\n : fn(a, b, c);\n }\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_curry3.js\n// module id = 2\n// module chunks = 0","var _isArray = require('./_isArray');\nvar _isTransformer = require('./_isTransformer');\n\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\nmodule.exports = function _dispatchable(methodNames, xf, fn) {\n return function() {\n if (arguments.length === 0) {\n return fn();\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_dispatchable.js\n// module id = 3\n// module chunks = 0","module.exports = {\n init: function() {\n return this.xf['@@transducer/init']();\n },\n result: function(result) {\n return this.xf['@@transducer/result'](result);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xfBase.js\n// module id = 4\n// module chunks = 0","var _arity = require('./internal/_arity');\nvar _curry1 = require('./internal/_curry1');\nvar _curry2 = require('./internal/_curry2');\nvar _curryN = require('./internal/_curryN');\n\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value `R.__` may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is `R.__`, the\n * following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * var sumArgs = (...args) => R.sum(args);\n *\n * var curriedAddFourNumbers = R.curryN(4, sumArgs);\n * var f = curriedAddFourNumbers(1, 2);\n * var g = f(3);\n * g(4); //=> 10\n */\nmodule.exports = _curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/curryN.js\n// module id = 5\n// module chunks = 0","module.exports = function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_has.js\n// module id = 6\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _map = require('./internal/_map');\nvar _reduce = require('./internal/_reduce');\nvar _xmap = require('./internal/_xmap');\nvar curryN = require('./curryN');\nvar keys = require('./keys');\n\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * var double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\nmodule.exports = _curry2(_dispatchable(['map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function() {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _reduce(function(acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\n }\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/map.js\n// module id = 7\n// module chunks = 0","var _xwrap = require('./_xwrap');\nvar bind = require('../bind');\nvar isArrayLike = require('../isArrayLike');\n\n\nmodule.exports = (function() {\n function _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n }\n\n function _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n }\n\n function _methodReduce(xf, acc, obj) {\n return xf['@@transducer/result'](obj.reduce(bind(xf['@@transducer/step'], xf), acc));\n }\n\n var symIterator = (typeof Symbol !== 'undefined') ? Symbol.iterator : '@@iterator';\n return function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list);\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n throw new TypeError('reduce: list must be array or iterable');\n };\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_reduce.js\n// module id = 8\n// module chunks = 0","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nmodule.exports = function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n\n idx = 0;\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_concat.js\n// module id = 9\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _equals = require('./internal/_equals');\n\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * var a = {}; a.v = a;\n * var b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\nmodule.exports = _curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/equals.js\n// module id = 10\n// module chunks = 0","module.exports = function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0: return function() { return fn.apply(this, arguments); };\n case 1: return function(a0) { return fn.apply(this, arguments); };\n case 2: return function(a0, a1) { return fn.apply(this, arguments); };\n case 3: return function(a0, a1, a2) { return fn.apply(this, arguments); };\n case 4: return function(a0, a1, a2, a3) { return fn.apply(this, arguments); };\n case 5: return function(a0, a1, a2, a3, a4) { return fn.apply(this, arguments); };\n case 6: return function(a0, a1, a2, a3, a4, a5) { return fn.apply(this, arguments); };\n case 7: return function(a0, a1, a2, a3, a4, a5, a6) { return fn.apply(this, arguments); };\n case 8: return function(a0, a1, a2, a3, a4, a5, a6, a7) { return fn.apply(this, arguments); };\n case 9: return function(a0, a1, a2, a3, a4, a5, a6, a7, a8) { return fn.apply(this, arguments); };\n case 10: return function(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) { return fn.apply(this, arguments); };\n default: throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_arity.js\n// module id = 11\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _has = require('./internal/_has');\nvar _isArguments = require('./internal/_isArguments');\n\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nmodule.exports = (function() {\n // cover IE < 9 keys issues\n var hasEnumBug = !({toString: null}).propertyIsEnumerable('toString');\n var nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n // Safari bug\n var hasArgsEnumBug = (function() {\n 'use strict';\n return arguments.propertyIsEnumerable('length');\n }());\n\n var contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n };\n\n return typeof Object.keys === 'function' && !hasArgsEnumBug ?\n _curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n }) :\n _curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/keys.js\n// module id = 12\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar _reduce = require('./internal/_reduce');\n\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * `R.reduced` to shortcut the iteration.\n *\n * The arguments' order of `reduceRight`'s iterator function is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * - -10\n * / \\ / \\\n * - 4 -6 4\n * / \\ / \\\n * - 3 ==> -3 3\n * / \\ / \\\n * - 2 -1 2\n * / \\ / \\\n * 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\nmodule.exports = _curry3(_reduce);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/reduce.js\n// module id = 13\n// module chunks = 0","/*\nCryptoJS v3.1.2\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n/**\r\n * CryptoJS core components.\r\n */\r\nvar CryptoJS = CryptoJS || (function (Math, undefined) {\r\n /**\r\n * CryptoJS namespace.\r\n */\r\n var C = {};\r\n\r\n /**\r\n * Library namespace.\r\n */\r\n var C_lib = C.lib = {};\r\n\r\n /**\r\n * Base object for prototypal inheritance.\r\n */\r\n var Base = C_lib.Base = (function () {\r\n function F() {}\r\n\r\n return {\r\n /**\r\n * Creates a new object that inherits from this object.\r\n *\r\n * @param {Object} overrides Properties to copy into the new object.\r\n *\r\n * @return {Object} The new object.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var MyType = CryptoJS.lib.Base.extend({\r\n * field: 'value',\r\n *\r\n * method: function () {\r\n * }\r\n * });\r\n */\r\n extend: function (overrides) {\r\n // Spawn\r\n F.prototype = this;\r\n var subtype = new F();\r\n\r\n // Augment\r\n if (overrides) {\r\n subtype.mixIn(overrides);\r\n }\r\n\r\n // Create default initializer\r\n if (!subtype.hasOwnProperty('init')) {\r\n subtype.init = function () {\r\n subtype.$super.init.apply(this, arguments);\r\n };\r\n }\r\n\r\n // Initializer's prototype is the subtype object\r\n subtype.init.prototype = subtype;\r\n\r\n // Reference supertype\r\n subtype.$super = this;\r\n\r\n return subtype;\r\n },\r\n\r\n /**\r\n * Extends this object and runs the init method.\r\n * Arguments to create() will be passed to init().\r\n *\r\n * @return {Object} The new object.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var instance = MyType.create();\r\n */\r\n create: function () {\r\n var instance = this.extend();\r\n instance.init.apply(instance, arguments);\r\n\r\n return instance;\r\n },\r\n\r\n /**\r\n * Initializes a newly created object.\r\n * Override this method to add some logic when your objects are created.\r\n *\r\n * @example\r\n *\r\n * var MyType = CryptoJS.lib.Base.extend({\r\n * init: function () {\r\n * // ...\r\n * }\r\n * });\r\n */\r\n init: function () {\r\n },\r\n\r\n /**\r\n * Copies properties into this object.\r\n *\r\n * @param {Object} properties The properties to mix in.\r\n *\r\n * @example\r\n *\r\n * MyType.mixIn({\r\n * field: 'value'\r\n * });\r\n */\r\n mixIn: function (properties) {\r\n for (var propertyName in properties) {\r\n if (properties.hasOwnProperty(propertyName)) {\r\n this[propertyName] = properties[propertyName];\r\n }\r\n }\r\n\r\n // IE won't copy toString using the loop above\r\n if (properties.hasOwnProperty('toString')) {\r\n this.toString = properties.toString;\r\n }\r\n },\r\n\r\n /**\r\n * Creates a copy of this object.\r\n *\r\n * @return {Object} The clone.\r\n *\r\n * @example\r\n *\r\n * var clone = instance.clone();\r\n */\r\n clone: function () {\r\n return this.init.prototype.extend(this);\r\n }\r\n };\r\n }());\r\n\r\n /**\r\n * An array of 32-bit words.\r\n *\r\n * @property {Array} words The array of 32-bit words.\r\n * @property {number} sigBytes The number of significant bytes in this word array.\r\n */\r\n var WordArray = C_lib.WordArray = Base.extend({\r\n /**\r\n * Initializes a newly created word array.\r\n *\r\n * @param {Array} words (Optional) An array of 32-bit words.\r\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\r\n *\r\n * @example\r\n *\r\n * var wordArray = CryptoJS.lib.WordArray.create();\r\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\r\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\r\n */\r\n init: function (words, sigBytes) {\r\n words = this.words = words || [];\r\n\r\n if (sigBytes != undefined) {\r\n this.sigBytes = sigBytes;\r\n } else {\r\n this.sigBytes = words.length * 4;\r\n }\r\n },\r\n\r\n /**\r\n * Converts this word array to a string.\r\n *\r\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\r\n *\r\n * @return {string} The stringified word array.\r\n *\r\n * @example\r\n *\r\n * var string = wordArray + '';\r\n * var string = wordArray.toString();\r\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\r\n */\r\n toString: function (encoder) {\r\n return (encoder || Hex).stringify(this);\r\n },\r\n\r\n /**\r\n * Concatenates a word array to this word array.\r\n *\r\n * @param {WordArray} wordArray The word array to append.\r\n *\r\n * @return {WordArray} This word array.\r\n *\r\n * @example\r\n *\r\n * wordArray1.concat(wordArray2);\r\n */\r\n concat: function (wordArray) {\r\n // Shortcuts\r\n var thisWords = this.words;\r\n var thatWords = wordArray.words;\r\n var thisSigBytes = this.sigBytes;\r\n var thatSigBytes = wordArray.sigBytes;\r\n\r\n // Clamp excess bits\r\n this.clamp();\r\n\r\n // Concat\r\n if (thisSigBytes % 4) {\r\n // Copy one byte at a time\r\n for (var i = 0; i < thatSigBytes; i++) {\r\n var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\r\n }\r\n } else if (thatWords.length > 0xffff) {\r\n // Copy one word at a time\r\n for (var i = 0; i < thatSigBytes; i += 4) {\r\n thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];\r\n }\r\n } else {\r\n // Copy all words at once\r\n thisWords.push.apply(thisWords, thatWords);\r\n }\r\n this.sigBytes += thatSigBytes;\r\n\r\n // Chainable\r\n return this;\r\n },\r\n\r\n /**\r\n * Removes insignificant bits.\r\n *\r\n * @example\r\n *\r\n * wordArray.clamp();\r\n */\r\n clamp: function () {\r\n // Shortcuts\r\n var words = this.words;\r\n var sigBytes = this.sigBytes;\r\n\r\n // Clamp\r\n words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\r\n words.length = Math.ceil(sigBytes / 4);\r\n },\r\n\r\n /**\r\n * Creates a copy of this word array.\r\n *\r\n * @return {WordArray} The clone.\r\n *\r\n * @example\r\n *\r\n * var clone = wordArray.clone();\r\n */\r\n clone: function () {\r\n var clone = Base.clone.call(this);\r\n clone.words = this.words.slice(0);\r\n\r\n return clone;\r\n },\r\n\r\n /**\r\n * Creates a word array filled with random bytes.\r\n *\r\n * @param {number} nBytes The number of random bytes to generate.\r\n *\r\n * @return {WordArray} The random word array.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var wordArray = CryptoJS.lib.WordArray.random(16);\r\n */\r\n random: function (nBytes) {\r\n var words = [];\r\n for (var i = 0; i < nBytes; i += 4) {\r\n words.push((Math.random() * 0x100000000) | 0);\r\n }\r\n\r\n return new WordArray.init(words, nBytes);\r\n }\r\n });\r\n\r\n /**\r\n * Encoder namespace.\r\n */\r\n var C_enc = C.enc = {};\r\n\r\n /**\r\n * Hex encoding strategy.\r\n */\r\n var Hex = C_enc.Hex = {\r\n /**\r\n * Converts a word array to a hex string.\r\n *\r\n * @param {WordArray} wordArray The word array.\r\n *\r\n * @return {string} The hex string.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\r\n */\r\n stringify: function (wordArray) {\r\n // Shortcuts\r\n var words = wordArray.words;\r\n var sigBytes = wordArray.sigBytes;\r\n\r\n // Convert\r\n var hexChars = [];\r\n for (var i = 0; i < sigBytes; i++) {\r\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n hexChars.push((bite >>> 4).toString(16));\r\n hexChars.push((bite & 0x0f).toString(16));\r\n }\r\n\r\n return hexChars.join('');\r\n },\r\n\r\n /**\r\n * Converts a hex string to a word array.\r\n *\r\n * @param {string} hexStr The hex string.\r\n *\r\n * @return {WordArray} The word array.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\r\n */\r\n parse: function (hexStr) {\r\n // Shortcut\r\n var hexStrLength = hexStr.length;\r\n\r\n // Convert\r\n var words = [];\r\n for (var i = 0; i < hexStrLength; i += 2) {\r\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\r\n }\r\n\r\n return new WordArray.init(words, hexStrLength / 2);\r\n }\r\n };\r\n\r\n /**\r\n * Latin1 encoding strategy.\r\n */\r\n var Latin1 = C_enc.Latin1 = {\r\n /**\r\n * Converts a word array to a Latin1 string.\r\n *\r\n * @param {WordArray} wordArray The word array.\r\n *\r\n * @return {string} The Latin1 string.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\r\n */\r\n stringify: function (wordArray) {\r\n // Shortcuts\r\n var words = wordArray.words;\r\n var sigBytes = wordArray.sigBytes;\r\n\r\n // Convert\r\n var latin1Chars = [];\r\n for (var i = 0; i < sigBytes; i++) {\r\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n latin1Chars.push(String.fromCharCode(bite));\r\n }\r\n\r\n return latin1Chars.join('');\r\n },\r\n\r\n /**\r\n * Converts a Latin1 string to a word array.\r\n *\r\n * @param {string} latin1Str The Latin1 string.\r\n *\r\n * @return {WordArray} The word array.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\r\n */\r\n parse: function (latin1Str) {\r\n // Shortcut\r\n var latin1StrLength = latin1Str.length;\r\n\r\n // Convert\r\n var words = [];\r\n for (var i = 0; i < latin1StrLength; i++) {\r\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\r\n }\r\n\r\n return new WordArray.init(words, latin1StrLength);\r\n }\r\n };\r\n\r\n /**\r\n * UTF-8 encoding strategy.\r\n */\r\n var Utf8 = C_enc.Utf8 = {\r\n /**\r\n * Converts a word array to a UTF-8 string.\r\n *\r\n * @param {WordArray} wordArray The word array.\r\n *\r\n * @return {string} The UTF-8 string.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\r\n */\r\n stringify: function (wordArray) {\r\n try {\r\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\r\n } catch (e) {\r\n throw new Error('Malformed UTF-8 data');\r\n }\r\n },\r\n\r\n /**\r\n * Converts a UTF-8 string to a word array.\r\n *\r\n * @param {string} utf8Str The UTF-8 string.\r\n *\r\n * @return {WordArray} The word array.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\r\n */\r\n parse: function (utf8Str) {\r\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\r\n }\r\n };\r\n\r\n /**\r\n * Abstract buffered block algorithm template.\r\n *\r\n * The property blockSize must be implemented in a concrete subtype.\r\n *\r\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\r\n */\r\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\r\n /**\r\n * Resets this block algorithm's data buffer to its initial state.\r\n *\r\n * @example\r\n *\r\n * bufferedBlockAlgorithm.reset();\r\n */\r\n reset: function () {\r\n // Initial values\r\n this._data = new WordArray.init();\r\n this._nDataBytes = 0;\r\n },\r\n\r\n /**\r\n * Adds new data to this block algorithm's buffer.\r\n *\r\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\r\n *\r\n * @example\r\n *\r\n * bufferedBlockAlgorithm._append('data');\r\n * bufferedBlockAlgorithm._append(wordArray);\r\n */\r\n _append: function (data) {\r\n // Convert string to WordArray, else assume WordArray already\r\n if (typeof data == 'string') {\r\n data = Utf8.parse(data);\r\n }\r\n\r\n // Append\r\n this._data.concat(data);\r\n this._nDataBytes += data.sigBytes;\r\n },\r\n\r\n /**\r\n * Processes available data blocks.\r\n *\r\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\r\n *\r\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\r\n *\r\n * @return {WordArray} The processed data.\r\n *\r\n * @example\r\n *\r\n * var processedData = bufferedBlockAlgorithm._process();\r\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\r\n */\r\n _process: function (doFlush) {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n var dataSigBytes = data.sigBytes;\r\n var blockSize = this.blockSize;\r\n var blockSizeBytes = blockSize * 4;\r\n\r\n // Count blocks ready\r\n var nBlocksReady = dataSigBytes / blockSizeBytes;\r\n if (doFlush) {\r\n // Round up to include partial blocks\r\n nBlocksReady = Math.ceil(nBlocksReady);\r\n } else {\r\n // Round down to include only full blocks,\r\n // less the number of blocks that must remain in the buffer\r\n nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\r\n }\r\n\r\n // Count words ready\r\n var nWordsReady = nBlocksReady * blockSize;\r\n\r\n // Count bytes ready\r\n var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\r\n\r\n // Process blocks\r\n if (nWordsReady) {\r\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\r\n // Perform concrete-algorithm logic\r\n this._doProcessBlock(dataWords, offset);\r\n }\r\n\r\n // Remove processed words\r\n var processedWords = dataWords.splice(0, nWordsReady);\r\n data.sigBytes -= nBytesReady;\r\n }\r\n\r\n // Return processed words\r\n return new WordArray.init(processedWords, nBytesReady);\r\n },\r\n\r\n /**\r\n * Creates a copy of this object.\r\n *\r\n * @return {Object} The clone.\r\n *\r\n * @example\r\n *\r\n * var clone = bufferedBlockAlgorithm.clone();\r\n */\r\n clone: function () {\r\n var clone = Base.clone.call(this);\r\n clone._data = this._data.clone();\r\n\r\n return clone;\r\n },\r\n\r\n _minBufferSize: 0\r\n });\r\n\r\n /**\r\n * Abstract hasher template.\r\n *\r\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\r\n */\r\n var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\r\n /**\r\n * Configuration options.\r\n */\r\n cfg: Base.extend(),\r\n\r\n /**\r\n * Initializes a newly created hasher.\r\n *\r\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\r\n *\r\n * @example\r\n *\r\n * var hasher = CryptoJS.algo.SHA256.create();\r\n */\r\n init: function (cfg) {\r\n // Apply config defaults\r\n this.cfg = this.cfg.extend(cfg);\r\n\r\n // Set initial values\r\n this.reset();\r\n },\r\n\r\n /**\r\n * Resets this hasher to its initial state.\r\n *\r\n * @example\r\n *\r\n * hasher.reset();\r\n */\r\n reset: function () {\r\n // Reset data buffer\r\n BufferedBlockAlgorithm.reset.call(this);\r\n\r\n // Perform concrete-hasher logic\r\n this._doReset();\r\n },\r\n\r\n /**\r\n * Updates this hasher with a message.\r\n *\r\n * @param {WordArray|string} messageUpdate The message to append.\r\n *\r\n * @return {Hasher} This hasher.\r\n *\r\n * @example\r\n *\r\n * hasher.update('message');\r\n * hasher.update(wordArray);\r\n */\r\n update: function (messageUpdate) {\r\n // Append\r\n this._append(messageUpdate);\r\n\r\n // Update the hash\r\n this._process();\r\n\r\n // Chainable\r\n return this;\r\n },\r\n\r\n /**\r\n * Finalizes the hash computation.\r\n * Note that the finalize operation is effectively a destructive, read-once operation.\r\n *\r\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\r\n *\r\n * @return {WordArray} The hash.\r\n *\r\n * @example\r\n *\r\n * var hash = hasher.finalize();\r\n * var hash = hasher.finalize('message');\r\n * var hash = hasher.finalize(wordArray);\r\n */\r\n finalize: function (messageUpdate) {\r\n // Final message update\r\n if (messageUpdate) {\r\n this._append(messageUpdate);\r\n }\r\n\r\n // Perform concrete-hasher logic\r\n var hash = this._doFinalize();\r\n\r\n return hash;\r\n },\r\n\r\n blockSize: 512/32,\r\n\r\n /**\r\n * Creates a shortcut function to a hasher's object interface.\r\n *\r\n * @param {Hasher} hasher The hasher to create a helper for.\r\n *\r\n * @return {Function} The shortcut function.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\r\n */\r\n _createHelper: function (hasher) {\r\n return function (message, cfg) {\r\n return new hasher.init(cfg).finalize(message);\r\n };\r\n },\r\n\r\n /**\r\n * Creates a shortcut function to the HMAC's object interface.\r\n *\r\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\r\n *\r\n * @return {Function} The shortcut function.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\r\n */\r\n _createHmacHelper: function (hasher) {\r\n return function (message, key) {\r\n return new C_algo.HMAC.init(hasher, key).finalize(message);\r\n };\r\n }\r\n });\r\n\r\n /**\r\n * Algorithm namespace.\r\n */\r\n var C_algo = C.algo = {};\r\n\r\n return C;\r\n}(Math));\r\n\r\nexports.CryptoJS = CryptoJS;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@goodmind/node-cryptojs-aes/lib/core.js\n// module id = 14\n// module chunks = 0","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nmodule.exports = Array.isArray || function _isArray(val) {\n return (val != null &&\n val.length >= 0 &&\n Object.prototype.toString.call(val) === '[object Array]');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isArray.js\n// module id = 15\n// module chunks = 0","module.exports = function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x :\n {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_reduced.js\n// module id = 16\n// module chunks = 0","var _indexOf = require('./_indexOf');\n\n\nmodule.exports = function _contains(a, list) {\n return _indexOf(list, a, 0) >= 0;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_contains.js\n// module id = 17\n// module chunks = 0","var _checkForMethod = require('./internal/_checkForMethod');\nvar _curry3 = require('./internal/_curry3');\n\n\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\nmodule.exports = _curry3(_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/slice.js\n// module id = 18\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * var t = R.always('Tee');\n * t(); //=> 'Tee'\n */\nmodule.exports = _curry1(function always(val) {\n return function() {\n return val;\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/always.js\n// module id = 19\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\nmodule.exports = _curry2(function max(a, b) { return b > a ? b : a; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/max.js\n// module id = 20\n// module chunks = 0","var _isArray = require('./_isArray');\n\n\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\nmodule.exports = function _checkForMethod(methodname, fn) {\n return function() {\n var length = arguments.length;\n if (length === 0) {\n return fn();\n }\n var obj = arguments[length - 1];\n return (_isArray(obj) || typeof obj[methodname] !== 'function') ?\n fn.apply(this, arguments) :\n obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_checkForMethod.js\n// module id = 21\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _isFunction = require('./internal/_isFunction');\nvar curryN = require('./curryN');\nvar toString = require('./toString');\n\n\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of the method to call.\n * @return {Function} A new curried function.\n * @example\n *\n * var sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * var sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\nmodule.exports = _curry2(function invoker(arity, method) {\n return curryN(arity + 1, function() {\n var target = arguments[arity];\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/invoker.js\n// module id = 22\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _isArray = require('./internal/_isArray');\nvar _isString = require('./internal/_isString');\n\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @deprecated since v0.23.0\n * @example\n *\n * R.isArrayLike([]); //=> true\n * R.isArrayLike(true); //=> false\n * R.isArrayLike({}); //=> false\n * R.isArrayLike({length: 10}); //=> false\n * R.isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\nmodule.exports = _curry1(function isArrayLike(x) {\n if (_isArray(x)) { return true; }\n if (!x) { return false; }\n if (typeof x !== 'object') { return false; }\n if (_isString(x)) { return false; }\n if (x.nodeType === 1) { return !!x.length; }\n if (x.length === 0) { return true; }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/isArrayLike.js\n// module id = 23\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _isString = require('./internal/_isString');\n\n\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * var list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\nmodule.exports = _curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/nth.js\n// module id = 24\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n */\nmodule.exports = _curry2(function path(paths, obj) {\n var val = obj;\n var idx = 0;\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n val = val[paths[idx]];\n idx += 1;\n }\n return val;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/path.js\n// module id = 25\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar map = require('./map');\nvar prop = require('./prop');\n\n\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig k -> [{k: v}] -> [v]\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} list The array to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * R.pluck('a')([{a: 1}, {a: 2}]); //=> [1, 2]\n * R.pluck(0)([[1, 2], [3, 4]]); //=> [1, 3]\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\nmodule.exports = _curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pluck.js\n// module id = 26\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _toString = require('./internal/_toString');\n\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\nmodule.exports = _curry1(function toString(val) { return _toString(val, []); });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/toString.js\n// module id = 27\n// module chunks = 0","'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (source.hasOwnProperty(p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/utils/common.js\n// module id = 28\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\nmodule.exports = _curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/add.js\n// module id = 29\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\nmodule.exports = _curry3(function assoc(prop, val, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n result[prop] = val;\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/assoc.js\n// module id = 30\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar curryN = require('./curryN');\n\n\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value `R.__` may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is `R.__`, the\n * following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN\n * @example\n *\n * var addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * var curriedAddFourNumbers = R.curry(addFourNumbers);\n * var f = curriedAddFourNumbers(1, 2);\n * var g = f(3);\n * g(4); //=> 10\n */\nmodule.exports = _curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/curry.js\n// module id = 31\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar curry = require('./curry');\n\n\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> b -> c -> ... -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * var mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\nmodule.exports = _curry1(function flip(fn) {\n return curry(function(a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/flip.js\n// module id = 32\n// module chunks = 0","var _arity = require('./_arity');\nvar _isPlaceholder = require('./_isPlaceholder');\n\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nmodule.exports = function _curryN(length, received, fn) {\n return function() {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length &&\n (!_isPlaceholder(received[combinedIdx]) ||\n argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n combinedIdx += 1;\n }\n return left <= 0 ? fn.apply(this, combined)\n : _arity(left, _curryN(length, combined, fn));\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_curryN.js\n// module id = 33\n// module chunks = 0","module.exports = function _isFunction(x) {\n return Object.prototype.toString.call(x) === '[object Function]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isFunction.js\n// module id = 34\n// module chunks = 0","module.exports = function _isPlaceholder(a) {\n return a != null &&\n typeof a === 'object' &&\n a['@@functional/placeholder'] === true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isPlaceholder.js\n// module id = 35\n// module chunks = 0","module.exports = function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isString.js\n// module id = 36\n// module chunks = 0","module.exports = function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_map.js\n// module id = 37\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar map = require('./map');\n\n\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * var xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\nmodule.exports = _curry2(function lens(getter, setter) {\n return function(toFunctorFn) {\n return function(target) {\n return map(\n function(focus) {\n return setter(focus, target);\n },\n toFunctorFn(getter(target))\n );\n };\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/lens.js\n// module id = 38\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar liftN = require('./liftN');\n\n\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * var madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * var madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\nmodule.exports = _curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/lift.js\n// module id = 39\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @example\n *\n * var takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * var takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\nmodule.exports = _curry2(function nAry(n, fn) {\n switch (n) {\n case 0: return function() {return fn.call(this);};\n case 1: return function(a0) {return fn.call(this, a0);};\n case 2: return function(a0, a1) {return fn.call(this, a0, a1);};\n case 3: return function(a0, a1, a2) {return fn.call(this, a0, a1, a2);};\n case 4: return function(a0, a1, a2, a3) {return fn.call(this, a0, a1, a2, a3);};\n case 5: return function(a0, a1, a2, a3, a4) {return fn.call(this, a0, a1, a2, a3, a4);};\n case 6: return function(a0, a1, a2, a3, a4, a5) {return fn.call(this, a0, a1, a2, a3, a4, a5);};\n case 7: return function(a0, a1, a2, a3, a4, a5, a6) {return fn.call(this, a0, a1, a2, a3, a4, a5, a6);};\n case 8: return function(a0, a1, a2, a3, a4, a5, a6, a7) {return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);};\n case 9: return function(a0, a1, a2, a3, a4, a5, a6, a7, a8) {return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);};\n case 10: return function(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);};\n default: throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/nAry.js\n// module id = 40\n// module chunks = 0","var _curryN = require('./internal/_curryN');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _has = require('./internal/_has');\nvar _reduce = require('./internal/_reduce');\nvar _xreduceBy = require('./internal/_xreduceBy');\n\n\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general `groupBy` function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * var reduceToNamesBy = R.reduceBy((acc, student) => acc.concat(student.name), []);\n * var namesByGrade = reduceToNamesBy(function(student) {\n * var score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * var students = [{name: 'Lucy', score: 92},\n * {name: 'Drew', score: 85},\n * // ...\n * {name: 'Bart', score: 62}];\n * namesByGrade(students);\n * // {\n * // 'A': ['Lucy'],\n * // 'B': ['Drew']\n * // // ...,\n * // 'F': ['Bart']\n * // }\n */\nmodule.exports = _curryN(4, [], _dispatchable([], _xreduceBy,\n function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function(acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(_has(key, acc) ? acc[key] : valueAcc, elt);\n return acc;\n }, {}, list);\n }));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/reduceBy.js\n// module id = 41\n// module chunks = 0","var _complement = require('./internal/_complement');\nvar _curry2 = require('./internal/_curry2');\nvar filter = require('./filter');\n\n\n/**\n * The complement of `filter`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * var isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nmodule.exports = _curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/reject.js\n// module id = 42\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _isString = require('./internal/_isString');\n\n\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\nmodule.exports = _curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') :\n Array.prototype.slice.call(list, 0).reverse();\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/reverse.js\n// module id = 43\n// module chunks = 0","var _concat = require('./internal/_concat');\nvar _curry2 = require('./internal/_curry2');\nvar _reduce = require('./internal/_reduce');\nvar map = require('./map');\n\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @param {Array} fns An array of functions\n * @param {Array} vs An array of values\n * @return {Array} An array of results of applying each of `fns` to all of `vs` in turn.\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\nmodule.exports = _curry2(function ap(applicative, fn) {\n return (\n typeof applicative.ap === 'function' ?\n applicative.ap(fn) :\n typeof applicative === 'function' ?\n function(x) { return applicative(x)(fn(x)); } :\n // else\n _reduce(function(acc, f) { return _concat(acc, map(f, fn)); }, [], applicative)\n );\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/ap.js\n// module id = 44\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _makeFlat = require('./internal/_makeFlat');\nvar _xchain = require('./internal/_xchain');\nvar map = require('./map');\n\n\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * var duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\nmodule.exports = _curry2(_dispatchable(['chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function(x) { return fn(monad(x))(x); };\n }\n return _makeFlat(false)(map(fn, monad));\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/chain.js\n// module id = 45\n// module chunks = 0","var pipe = require('./pipe');\nvar reverse = require('./reverse');\n\n\n/**\n * Performs right-to-left function composition. The rightmost function may have\n * any arity; the remaining functions must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * var classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * var yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\nmodule.exports = function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n return pipe.apply(this, reverse(arguments));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/compose.js\n// module id = 46\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _isArray = require('./internal/_isArray');\nvar _isFunction = require('./internal/_isFunction');\nvar toString = require('./toString');\n\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\nmodule.exports = _curry2(function concat(a, b) {\n if (a == null || !_isFunction(a.concat)) {\n throw new TypeError(toString(a) + ' does not have a method named \"concat\"');\n }\n if (_isArray(a) && !_isArray(b)) {\n throw new TypeError(toString(b) + ' is not an array');\n }\n return a.concat(b);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/concat.js\n// module id = 47\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _filter = require('./internal/_filter');\nvar _isObject = require('./internal/_isObject');\nvar _reduce = require('./internal/_reduce');\nvar _xfilter = require('./internal/_xfilter');\nvar keys = require('./keys');\n\n\n/**\n * Takes a predicate and a \"filterable\", and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * var isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nmodule.exports = _curry2(_dispatchable(['filter'], _xfilter, function(pred, filterable) {\n return (\n _isObject(filterable) ?\n _reduce(function(acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n return acc;\n }, {}, keys(filterable)) :\n // else\n _filter(pred, filterable)\n );\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/filter.js\n// module id = 48\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _identity = require('./internal/_identity');\n\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * var obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\nmodule.exports = _curry1(_identity);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/identity.js\n// module id = 49\n// module chunks = 0","var _objectAssign = require('./_objectAssign');\n\nmodule.exports =\n typeof Object.assign === 'function' ? Object.assign : _objectAssign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_assign.js\n// module id = 50\n// module chunks = 0","module.exports = function _containsWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_containsWith.js\n// module id = 51\n// module chunks = 0","module.exports = function _identity(x) { return x; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_identity.js\n// module id = 52\n// module chunks = 0","module.exports = function _isTransformer(obj) {\n return typeof obj['@@transducer/step'] === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isTransformer.js\n// module id = 53\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig s -> {s: a} -> a | Undefined\n * @param {String} p The property name\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n */\nmodule.exports = _curry2(function prop(p, obj) { return obj[p]; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/prop.js\n// module id = 54\n// module chunks = 0","var _checkForMethod = require('./internal/_checkForMethod');\nvar _curry1 = require('./internal/_curry1');\nvar slice = require('./slice');\n\n\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\nmodule.exports = _curry1(_checkForMethod('tail', slice(1, Infinity)));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/tail.js\n// module id = 55\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n */\nmodule.exports = _curry1(function type(val) {\n return val === null ? 'Null' :\n val === undefined ? 'Undefined' :\n Object.prototype.toString.call(val).slice(8, -1);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/type.js\n// module id = 56\n// module chunks = 0","var identity = require('./identity');\nvar uniqBy = require('./uniqBy');\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. `R.equals` is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\nmodule.exports = uniqBy(identity);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/uniq.js\n// module id = 57\n// module chunks = 0","var _containsWith = require('./internal/_containsWith');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig (a, a -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * var strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\nmodule.exports = _curry2(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n while (idx < len) {\n item = list[idx];\n if (!_containsWith(pred, item, result)) {\n result[result.length] = item;\n }\n idx += 1;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/uniqWith.js\n// module id = 58\n// module chunks = 0","(function(){\n\n // Copyright (c) 2005 Tom Wu\n // All Rights Reserved.\n // See \"LICENSE\" for details.\n\n // Basic JavaScript BN library - subset useful for RSA encryption.\n\n // Bits per digit\n var dbits;\n\n // JavaScript engine analysis\n var canary = 0xdeadbeefcafe;\n var j_lm = ((canary&0xffffff)==0xefcafe);\n\n // (public) Constructor\n function BigInteger(a,b,c) {\n if(a != null)\n if(\"number\" == typeof a) this.fromNumber(a,b,c);\n else if(b == null && \"string\" != typeof a) this.fromString(a,256);\n else this.fromString(a,b);\n }\n\n // return new, unset BigInteger\n function nbi() { return new BigInteger(null); }\n\n // am: Compute w_j += (x*this_i), propagate carries,\n // c is initial carry, returns final carry.\n // c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n // We need to select the fastest one that works in this environment.\n\n // am1: use a single mult and divide to get the high bits,\n // max digit bits should be 26 because\n // max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n function am1(i,x,w,j,c,n) {\n while(--n >= 0) {\n var v = x*this[i++]+w[j]+c;\n c = Math.floor(v/0x4000000);\n w[j++] = v&0x3ffffff;\n }\n return c;\n }\n // am2 avoids a big mult-and-extract completely.\n // Max digit bits should be <= 30 because we do bitwise ops\n // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n function am2(i,x,w,j,c,n) {\n var xl = x&0x7fff, xh = x>>15;\n while(--n >= 0) {\n var l = this[i]&0x7fff;\n var h = this[i++]>>15;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);\n c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);\n w[j++] = l&0x3fffffff;\n }\n return c;\n }\n // Alternately, set max digit bits to 28 since some\n // browsers slow down when dealing with 32-bit numbers.\n function am3(i,x,w,j,c,n) {\n var xl = x&0x3fff, xh = x>>14;\n while(--n >= 0) {\n var l = this[i]&0x3fff;\n var h = this[i++]>>14;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x3fff)<<14)+w[j]+c;\n c = (l>>28)+(m>>14)+xh*h;\n w[j++] = l&0xfffffff;\n }\n return c;\n }\n var inBrowser = typeof navigator !== \"undefined\";\n if(inBrowser && j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n BigInteger.prototype.am = am2;\n dbits = 30;\n }\n else if(inBrowser && j_lm && (navigator.appName != \"Netscape\")) {\n BigInteger.prototype.am = am1;\n dbits = 26;\n }\n else { // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n }\n\n BigInteger.prototype.DB = dbits;\n BigInteger.prototype.DM = ((1<<dbits)-1);\n BigInteger.prototype.DV = (1<<dbits);\n\n var BI_FP = 52;\n BigInteger.prototype.FV = Math.pow(2,BI_FP);\n BigInteger.prototype.F1 = BI_FP-dbits;\n BigInteger.prototype.F2 = 2*dbits-BI_FP;\n\n // Digit conversions\n var BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\n var BI_RC = new Array();\n var rr,vv;\n rr = \"0\".charCodeAt(0);\n for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;\n rr = \"a\".charCodeAt(0);\n for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\n rr = \"A\".charCodeAt(0);\n for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\n\n function int2char(n) { return BI_RM.charAt(n); }\n function intAt(s,i) {\n var c = BI_RC[s.charCodeAt(i)];\n return (c==null)?-1:c;\n }\n\n // (protected) copy this to r\n function bnpCopyTo(r) {\n for(var i = this.t-1; i >= 0; --i) r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n }\n\n // (protected) set from integer value x, -DV <= x < DV\n function bnpFromInt(x) {\n this.t = 1;\n this.s = (x<0)?-1:0;\n if(x > 0) this[0] = x;\n else if(x < -1) this[0] = x+this.DV;\n else this.t = 0;\n }\n\n // return bigint initialized to value\n function nbv(i) { var r = nbi(); r.fromInt(i); return r; }\n\n // (protected) set from string and radix\n function bnpFromString(s,b) {\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 256) k = 8; // byte array\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else { this.fromRadix(s,b); return; }\n this.t = 0;\n this.s = 0;\n var i = s.length, mi = false, sh = 0;\n while(--i >= 0) {\n var x = (k==8)?s[i]&0xff:intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\") mi = true;\n continue;\n }\n mi = false;\n if(sh == 0)\n this[this.t++] = x;\n else if(sh+k > this.DB) {\n this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;\n this[this.t++] = (x>>(this.DB-sh));\n }\n else\n this[this.t-1] |= x<<sh;\n sh += k;\n if(sh >= this.DB) sh -= this.DB;\n }\n if(k == 8 && (s[0]&0x80) != 0) {\n this.s = -1;\n if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;\n }\n this.clamp();\n if(mi) BigInteger.ZERO.subTo(this,this);\n }\n\n // (protected) clamp off excess high words\n function bnpClamp() {\n var c = this.s&this.DM;\n while(this.t > 0 && this[this.t-1] == c) --this.t;\n }\n\n // (public) return string representation in given radix\n function bnToString(b) {\n if(this.s < 0) return \"-\"+this.negate().toString(b);\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else return this.toRadix(b);\n var km = (1<<k)-1, d, m = false, r = \"\", i = this.t;\n var p = this.DB-(i*this.DB)%k;\n if(i-- > 0) {\n if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }\n while(i >= 0) {\n if(p < k) {\n d = (this[i]&((1<<p)-1))<<(k-p);\n d |= this[--i]>>(p+=this.DB-k);\n }\n else {\n d = (this[i]>>(p-=k))&km;\n if(p <= 0) { p += this.DB; --i; }\n }\n if(d > 0) m = true;\n if(m) r += int2char(d);\n }\n }\n return m?r:\"0\";\n }\n\n // (public) -this\n function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }\n\n // (public) |this|\n function bnAbs() { return (this.s<0)?this.negate():this; }\n\n // (public) return + if this > a, - if this < a, 0 if equal\n function bnCompareTo(a) {\n var r = this.s-a.s;\n if(r != 0) return r;\n var i = this.t;\n r = i-a.t;\n if(r != 0) return (this.s<0)?-r:r;\n while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;\n return 0;\n }\n\n // returns bit length of the integer x\n function nbits(x) {\n var r = 1, t;\n if((t=x>>>16) != 0) { x = t; r += 16; }\n if((t=x>>8) != 0) { x = t; r += 8; }\n if((t=x>>4) != 0) { x = t; r += 4; }\n if((t=x>>2) != 0) { x = t; r += 2; }\n if((t=x>>1) != 0) { x = t; r += 1; }\n return r;\n }\n\n // (public) return the number of bits in \"this\"\n function bnBitLength() {\n if(this.t <= 0) return 0;\n return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));\n }\n\n // (protected) r = this << n*DB\n function bnpDLShiftTo(n,r) {\n var i;\n for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];\n for(i = n-1; i >= 0; --i) r[i] = 0;\n r.t = this.t+n;\n r.s = this.s;\n }\n\n // (protected) r = this >> n*DB\n function bnpDRShiftTo(n,r) {\n for(var i = n; i < this.t; ++i) r[i-n] = this[i];\n r.t = Math.max(this.t-n,0);\n r.s = this.s;\n }\n\n // (protected) r = this << n\n function bnpLShiftTo(n,r) {\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<<cbs)-1;\n var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;\n for(i = this.t-1; i >= 0; --i) {\n r[i+ds+1] = (this[i]>>cbs)|c;\n c = (this[i]&bm)<<bs;\n }\n for(i = ds-1; i >= 0; --i) r[i] = 0;\n r[ds] = c;\n r.t = this.t+ds+1;\n r.s = this.s;\n r.clamp();\n }\n\n // (protected) r = this >> n\n function bnpRShiftTo(n,r) {\n r.s = this.s;\n var ds = Math.floor(n/this.DB);\n if(ds >= this.t) { r.t = 0; return; }\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<<bs)-1;\n r[0] = this[ds]>>bs;\n for(var i = ds+1; i < this.t; ++i) {\n r[i-ds-1] |= (this[i]&bm)<<cbs;\n r[i-ds] = this[i]>>bs;\n }\n if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;\n r.t = this.t-ds;\n r.clamp();\n }\n\n // (protected) r = this - a\n function bnpSubTo(a,r) {\n var i = 0, c = 0, m = Math.min(a.t,this.t);\n while(i < m) {\n c += this[i]-a[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n if(a.t < this.t) {\n c -= a.s;\n while(i < this.t) {\n c += this[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while(i < a.t) {\n c -= a[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c<0)?-1:0;\n if(c < -1) r[i++] = this.DV+c;\n else if(c > 0) r[i++] = c;\n r.t = i;\n r.clamp();\n }\n\n // (protected) r = this * a, r != this,a (HAC 14.12)\n // \"this\" should be the larger one if appropriate.\n function bnpMultiplyTo(a,r) {\n var x = this.abs(), y = a.abs();\n var i = x.t;\n r.t = i+y.t;\n while(--i >= 0) r[i] = 0;\n for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);\n r.s = 0;\n r.clamp();\n if(this.s != a.s) BigInteger.ZERO.subTo(r,r);\n }\n\n // (protected) r = this^2, r != this (HAC 14.16)\n function bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2*x.t;\n while(--i >= 0) r[i] = 0;\n for(i = 0; i < x.t-1; ++i) {\n var c = x.am(i,x[i],r,2*i,0,1);\n if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {\n r[i+x.t] -= x.DV;\n r[i+x.t+1] = 1;\n }\n }\n if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);\n r.s = 0;\n r.clamp();\n }\n\n // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n // r != q, this != m. q or r may be null.\n function bnpDivRemTo(m,q,r) {\n var pm = m.abs();\n if(pm.t <= 0) return;\n var pt = this.abs();\n if(pt.t < pm.t) {\n if(q != null) q.fromInt(0);\n if(r != null) this.copyTo(r);\n return;\n }\n if(r == null) r = nbi();\n var y = nbi(), ts = this.s, ms = m.s;\n var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus\n if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }\n else { pm.copyTo(y); pt.copyTo(r); }\n var ys = y.t;\n var y0 = y[ys-1];\n if(y0 == 0) return;\n var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);\n var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;\n var i = r.t, j = i-ys, t = (q==null)?nbi():q;\n y.dlShiftTo(j,t);\n if(r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t,r);\n }\n BigInteger.ONE.dlShiftTo(ys,t);\n t.subTo(y,y); // \"negative\" y so we can replace sub with am later\n while(y.t < ys) y[y.t++] = 0;\n while(--j >= 0) {\n // Estimate quotient digit\n var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);\n if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out\n y.dlShiftTo(j,t);\n r.subTo(t,r);\n while(r[i] < --qd) r.subTo(t,r);\n }\n }\n if(q != null) {\n r.drShiftTo(ys,q);\n if(ts != ms) BigInteger.ZERO.subTo(q,q);\n }\n r.t = ys;\n r.clamp();\n if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder\n if(ts < 0) BigInteger.ZERO.subTo(r,r);\n }\n\n // (public) this mod a\n function bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a,null,r);\n if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);\n return r;\n }\n\n // Modular reduction using \"classic\" algorithm\n function Classic(m) { this.m = m; }\n function cConvert(x) {\n if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);\n else return x;\n }\n function cRevert(x) { return x; }\n function cReduce(x) { x.divRemTo(this.m,null,x); }\n function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n Classic.prototype.convert = cConvert;\n Classic.prototype.revert = cRevert;\n Classic.prototype.reduce = cReduce;\n Classic.prototype.mulTo = cMulTo;\n Classic.prototype.sqrTo = cSqrTo;\n\n // (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n // justification:\n // xy == 1 (mod m)\n // xy = 1+km\n // xy(2-xy) = (1+km)(1-km)\n // x[y(2-xy)] = 1-k^2m^2\n // x[y(2-xy)] == 1 (mod m^2)\n // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n // JS multiply \"overflows\" differently from C/C++, so care is needed here.\n function bnpInvDigit() {\n if(this.t < 1) return 0;\n var x = this[0];\n if((x&1) == 0) return 0;\n var y = x&3; // y == 1/x mod 2^2\n y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4\n y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8\n y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y>0)?this.DV-y:-y;\n }\n\n // Montgomery reduction\n function Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp&0x7fff;\n this.mph = this.mp>>15;\n this.um = (1<<(m.DB-15))-1;\n this.mt2 = 2*m.t;\n }\n\n // xR mod m\n function montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t,r);\n r.divRemTo(this.m,null,r);\n if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);\n return r;\n }\n\n // x/R mod m\n function montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n }\n\n // x = x/R mod m (HAC 14.32)\n function montReduce(x) {\n while(x.t <= this.mt2) // pad x so am has enough room later\n x[x.t++] = 0;\n for(var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i]&0x7fff;\n var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i+this.m.t;\n x[j] += this.m.am(0,u0,x,i,0,this.m.t);\n // propagate carry\n while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }\n }\n x.clamp();\n x.drShiftTo(this.m.t,x);\n if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n }\n\n // r = \"x^2/R mod m\"; x != r\n function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n // r = \"xy/R mod m\"; x,y != r\n function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\n Montgomery.prototype.convert = montConvert;\n Montgomery.prototype.revert = montRevert;\n Montgomery.prototype.reduce = montReduce;\n Montgomery.prototype.mulTo = montMulTo;\n Montgomery.prototype.sqrTo = montSqrTo;\n\n // (protected) true iff this is even\n function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }\n\n // (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\n function bnpExp(e,z) {\n if(e > 0xffffffff || e < 1) return BigInteger.ONE;\n var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;\n g.copyTo(r);\n while(--i >= 0) {\n z.sqrTo(r,r2);\n if((e&(1<<i)) > 0) z.mulTo(r2,g,r);\n else { var t = r; r = r2; r2 = t; }\n }\n return z.revert(r);\n }\n\n // (public) this^e % m, 0 <= e < 2^32\n function bnModPowInt(e,m) {\n var z;\n if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);\n return this.exp(e,z);\n }\n\n // protected\n BigInteger.prototype.copyTo = bnpCopyTo;\n BigInteger.prototype.fromInt = bnpFromInt;\n BigInteger.prototype.fromString = bnpFromString;\n BigInteger.prototype.clamp = bnpClamp;\n BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n BigInteger.prototype.drShiftTo = bnpDRShiftTo;\n BigInteger.prototype.lShiftTo = bnpLShiftTo;\n BigInteger.prototype.rShiftTo = bnpRShiftTo;\n BigInteger.prototype.subTo = bnpSubTo;\n BigInteger.prototype.multiplyTo = bnpMultiplyTo;\n BigInteger.prototype.squareTo = bnpSquareTo;\n BigInteger.prototype.divRemTo = bnpDivRemTo;\n BigInteger.prototype.invDigit = bnpInvDigit;\n BigInteger.prototype.isEven = bnpIsEven;\n BigInteger.prototype.exp = bnpExp;\n\n // public\n BigInteger.prototype.toString = bnToString;\n BigInteger.prototype.negate = bnNegate;\n BigInteger.prototype.abs = bnAbs;\n BigInteger.prototype.compareTo = bnCompareTo;\n BigInteger.prototype.bitLength = bnBitLength;\n BigInteger.prototype.mod = bnMod;\n BigInteger.prototype.modPowInt = bnModPowInt;\n\n // \"constants\"\n BigInteger.ZERO = nbv(0);\n BigInteger.ONE = nbv(1);\n\n // Copyright (c) 2005-2009 Tom Wu\n // All Rights Reserved.\n // See \"LICENSE\" for details.\n\n // Extended JavaScript BN functions, required for RSA private ops.\n\n // Version 1.1: new BigInteger(\"0\", 10) returns \"proper\" zero\n // Version 1.2: square() API, isProbablePrime fix\n\n // (public)\n function bnClone() { var r = nbi(); this.copyTo(r); return r; }\n\n // (public) return value as integer\n function bnIntValue() {\n if(this.s < 0) {\n if(this.t == 1) return this[0]-this.DV;\n else if(this.t == 0) return -1;\n }\n else if(this.t == 1) return this[0];\n else if(this.t == 0) return 0;\n // assumes 16 < DB < 32\n return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];\n }\n\n // (public) return value as byte\n function bnByteValue() { return (this.t==0)?this.s:(this[0]<<24)>>24; }\n\n // (public) return value as short (assumes DB>=16)\n function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; }\n\n // (protected) return x s.t. r^x < DV\n function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }\n\n // (public) 0 if this == 0, 1 if this > 0\n function bnSigNum() {\n if(this.s < 0) return -1;\n else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;\n else return 1;\n }\n\n // (protected) convert to radix string\n function bnpToRadix(b) {\n if(b == null) b = 10;\n if(this.signum() == 0 || b < 2 || b > 36) return \"0\";\n var cs = this.chunkSize(b);\n var a = Math.pow(b,cs);\n var d = nbv(a), y = nbi(), z = nbi(), r = \"\";\n this.divRemTo(d,y,z);\n while(y.signum() > 0) {\n r = (a+z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d,y,z);\n }\n return z.intValue().toString(b) + r;\n }\n\n // (protected) convert from radix string\n function bnpFromRadix(s,b) {\n this.fromInt(0);\n if(b == null) b = 10;\n var cs = this.chunkSize(b);\n var d = Math.pow(b,cs), mi = false, j = 0, w = 0;\n for(var i = 0; i < s.length; ++i) {\n var x = intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\" && this.signum() == 0) mi = true;\n continue;\n }\n w = b*w+x;\n if(++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w,0);\n j = 0;\n w = 0;\n }\n }\n if(j > 0) {\n this.dMultiply(Math.pow(b,j));\n this.dAddOffset(w,0);\n }\n if(mi) BigInteger.ZERO.subTo(this,this);\n }\n\n // (protected) alternate constructor\n function bnpFromNumber(a,b,c) {\n if(\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if(a < 2) this.fromInt(1);\n else {\n this.fromNumber(a,c);\n if(!this.testBit(a-1)) // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);\n if(this.isEven()) this.dAddOffset(1,0); // force odd\n while(!this.isProbablePrime(b)) {\n this.dAddOffset(2,0);\n if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);\n }\n }\n }\n else {\n // new BigInteger(int,RNG)\n var x = new Array(), t = a&7;\n x.length = (a>>3)+1;\n b.nextBytes(x);\n if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;\n this.fromString(x,256);\n }\n }\n\n // (public) convert to bigendian byte array\n function bnToByteArray() {\n var i = this.t, r = new Array();\n r[0] = this.s;\n var p = this.DB-(i*this.DB)%8, d, k = 0;\n if(i-- > 0) {\n if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p)\n r[k++] = d|(this.s<<(this.DB-p));\n while(i >= 0) {\n if(p < 8) {\n d = (this[i]&((1<<p)-1))<<(8-p);\n d |= this[--i]>>(p+=this.DB-8);\n }\n else {\n d = (this[i]>>(p-=8))&0xff;\n if(p <= 0) { p += this.DB; --i; }\n }\n if((d&0x80) != 0) d |= -256;\n if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;\n if(k > 0 || d != this.s) r[k++] = d;\n }\n }\n return r;\n }\n\n function bnEquals(a) { return(this.compareTo(a)==0); }\n function bnMin(a) { return(this.compareTo(a)<0)?this:a; }\n function bnMax(a) { return(this.compareTo(a)>0)?this:a; }\n\n // (protected) r = this op a (bitwise)\n function bnpBitwiseTo(a,op,r) {\n var i, f, m = Math.min(a.t,this.t);\n for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]);\n if(a.t < this.t) {\n f = a.s&this.DM;\n for(i = m; i < this.t; ++i) r[i] = op(this[i],f);\n r.t = this.t;\n }\n else {\n f = this.s&this.DM;\n for(i = m; i < a.t; ++i) r[i] = op(f,a[i]);\n r.t = a.t;\n }\n r.s = op(this.s,a.s);\n r.clamp();\n }\n\n // (public) this & a\n function op_and(x,y) { return x&y; }\n function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }\n\n // (public) this | a\n function op_or(x,y) { return x|y; }\n function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }\n\n // (public) this ^ a\n function op_xor(x,y) { return x^y; }\n function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }\n\n // (public) this & ~a\n function op_andnot(x,y) { return x&~y; }\n function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }\n\n // (public) ~this\n function bnNot() {\n var r = nbi();\n for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i];\n r.t = this.t;\n r.s = ~this.s;\n return r;\n }\n\n // (public) this << n\n function bnShiftLeft(n) {\n var r = nbi();\n if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);\n return r;\n }\n\n // (public) this >> n\n function bnShiftRight(n) {\n var r = nbi();\n if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);\n return r;\n }\n\n // return index of lowest 1-bit in x, x < 2^31\n function lbit(x) {\n if(x == 0) return -1;\n var r = 0;\n if((x&0xffff) == 0) { x >>= 16; r += 16; }\n if((x&0xff) == 0) { x >>= 8; r += 8; }\n if((x&0xf) == 0) { x >>= 4; r += 4; }\n if((x&3) == 0) { x >>= 2; r += 2; }\n if((x&1) == 0) ++r;\n return r;\n }\n\n // (public) returns index of lowest 1-bit (or -1 if none)\n function bnGetLowestSetBit() {\n for(var i = 0; i < this.t; ++i)\n if(this[i] != 0) return i*this.DB+lbit(this[i]);\n if(this.s < 0) return this.t*this.DB;\n return -1;\n }\n\n // return number of 1 bits in x\n function cbit(x) {\n var r = 0;\n while(x != 0) { x &= x-1; ++r; }\n return r;\n }\n\n // (public) return number of set bits\n function bnBitCount() {\n var r = 0, x = this.s&this.DM;\n for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x);\n return r;\n }\n\n // (public) true iff nth bit is set\n function bnTestBit(n) {\n var j = Math.floor(n/this.DB);\n if(j >= this.t) return(this.s!=0);\n return((this[j]&(1<<(n%this.DB)))!=0);\n }\n\n // (protected) this op (1<<n)\n function bnpChangeBit(n,op) {\n var r = BigInteger.ONE.shiftLeft(n);\n this.bitwiseTo(r,op,r);\n return r;\n }\n\n // (public) this | (1<<n)\n function bnSetBit(n) { return this.changeBit(n,op_or); }\n\n // (public) this & ~(1<<n)\n function bnClearBit(n) { return this.changeBit(n,op_andnot); }\n\n // (public) this ^ (1<<n)\n function bnFlipBit(n) { return this.changeBit(n,op_xor); }\n\n // (protected) r = this + a\n function bnpAddTo(a,r) {\n var i = 0, c = 0, m = Math.min(a.t,this.t);\n while(i < m) {\n c += this[i]+a[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n if(a.t < this.t) {\n c += a.s;\n while(i < this.t) {\n c += this[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while(i < a.t) {\n c += a[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = (c<0)?-1:0;\n if(c > 0) r[i++] = c;\n else if(c < -1) r[i++] = this.DV+c;\n r.t = i;\n r.clamp();\n }\n\n // (public) this + a\n function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }\n\n // (public) this - a\n function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }\n\n // (public) this * a\n function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }\n\n // (public) this^2\n function bnSquare() { var r = nbi(); this.squareTo(r); return r; }\n\n // (public) this / a\n function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }\n\n // (public) this % a\n function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }\n\n // (public) [this/a,this%a]\n function bnDivideAndRemainder(a) {\n var q = nbi(), r = nbi();\n this.divRemTo(a,q,r);\n return new Array(q,r);\n }\n\n // (protected) this *= n, this >= 0, 1 < n < DV\n function bnpDMultiply(n) {\n this[this.t] = this.am(0,n-1,this,0,0,this.t);\n ++this.t;\n this.clamp();\n }\n\n // (protected) this += n << w words, this >= 0\n function bnpDAddOffset(n,w) {\n if(n == 0) return;\n while(this.t <= w) this[this.t++] = 0;\n this[w] += n;\n while(this[w] >= this.DV) {\n this[w] -= this.DV;\n if(++w >= this.t) this[this.t++] = 0;\n ++this[w];\n }\n }\n\n // A \"null\" reducer\n function NullExp() {}\n function nNop(x) { return x; }\n function nMulTo(x,y,r) { x.multiplyTo(y,r); }\n function nSqrTo(x,r) { x.squareTo(r); }\n\n NullExp.prototype.convert = nNop;\n NullExp.prototype.revert = nNop;\n NullExp.prototype.mulTo = nMulTo;\n NullExp.prototype.sqrTo = nSqrTo;\n\n // (public) this^e\n function bnPow(e) { return this.exp(e,new NullExp()); }\n\n // (protected) r = lower n words of \"this * a\", a.t <= n\n // \"this\" should be the larger one if appropriate.\n function bnpMultiplyLowerTo(a,n,r) {\n var i = Math.min(this.t+a.t,n);\n r.s = 0; // assumes a,this >= 0\n r.t = i;\n while(i > 0) r[--i] = 0;\n var j;\n for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t);\n for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i);\n r.clamp();\n }\n\n // (protected) r = \"this * a\" without lower n words, n > 0\n // \"this\" should be the larger one if appropriate.\n function bnpMultiplyUpperTo(a,n,r) {\n --n;\n var i = r.t = this.t+a.t-n;\n r.s = 0; // assumes a,this >= 0\n while(--i >= 0) r[i] = 0;\n for(i = Math.max(n-this.t,0); i < a.t; ++i)\n r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n);\n r.clamp();\n r.drShiftTo(1,r);\n }\n\n // Barrett modular reduction\n function Barrett(m) {\n // setup Barrett\n this.r2 = nbi();\n this.q3 = nbi();\n BigInteger.ONE.dlShiftTo(2*m.t,this.r2);\n this.mu = this.r2.divide(m);\n this.m = m;\n }\n\n function barrettConvert(x) {\n if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);\n else if(x.compareTo(this.m) < 0) return x;\n else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }\n }\n\n function barrettRevert(x) { return x; }\n\n // x = x mod m (HAC 14.42)\n function barrettReduce(x) {\n x.drShiftTo(this.m.t-1,this.r2);\n if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }\n this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);\n this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);\n while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);\n x.subTo(this.r2,x);\n while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n }\n\n // r = x^2 mod m; x != r\n function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n // r = x*y mod m; x,y != r\n function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\n Barrett.prototype.convert = barrettConvert;\n Barrett.prototype.revert = barrettRevert;\n Barrett.prototype.reduce = barrettReduce;\n Barrett.prototype.mulTo = barrettMulTo;\n Barrett.prototype.sqrTo = barrettSqrTo;\n\n // (public) this^e % m (HAC 14.85)\n function bnModPow(e,m) {\n var i = e.bitLength(), k, r = nbv(1), z;\n if(i <= 0) return r;\n else if(i < 18) k = 1;\n else if(i < 48) k = 3;\n else if(i < 144) k = 4;\n else if(i < 768) k = 5;\n else k = 6;\n if(i < 8)\n z = new Classic(m);\n else if(m.isEven())\n z = new Barrett(m);\n else\n z = new Montgomery(m);\n\n // precomputation\n var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;\n g[1] = z.convert(this);\n if(k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1],g2);\n while(n <= km) {\n g[n] = nbi();\n z.mulTo(g2,g[n-2],g[n]);\n n += 2;\n }\n }\n\n var j = e.t-1, w, is1 = true, r2 = nbi(), t;\n i = nbits(e[j])-1;\n while(j >= 0) {\n if(i >= k1) w = (e[j]>>(i-k1))&km;\n else {\n w = (e[j]&((1<<(i+1))-1))<<(k1-i);\n if(j > 0) w |= e[j-1]>>(this.DB+i-k1);\n }\n\n n = k;\n while((w&1) == 0) { w >>= 1; --n; }\n if((i -= n) < 0) { i += this.DB; --j; }\n if(is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }\n if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }\n z.mulTo(r2,g[w],r);\n }\n\n while(j >= 0 && (e[j]&(1<<i)) == 0) {\n z.sqrTo(r,r2); t = r; r = r2; r2 = t;\n if(--i < 0) { i = this.DB-1; --j; }\n }\n }\n return z.revert(r);\n }\n\n // (public) gcd(this,a) (HAC 14.54)\n function bnGCD(a) {\n var x = (this.s<0)?this.negate():this.clone();\n var y = (a.s<0)?a.negate():a.clone();\n if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }\n var i = x.getLowestSetBit(), g = y.getLowestSetBit();\n if(g < 0) return x;\n if(i < g) g = i;\n if(g > 0) {\n x.rShiftTo(g,x);\n y.rShiftTo(g,y);\n }\n while(x.signum() > 0) {\n if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);\n if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);\n if(x.compareTo(y) >= 0) {\n x.subTo(y,x);\n x.rShiftTo(1,x);\n }\n else {\n y.subTo(x,y);\n y.rShiftTo(1,y);\n }\n }\n if(g > 0) y.lShiftTo(g,y);\n return y;\n }\n\n // (protected) this % n, n < 2^26\n function bnpModInt(n) {\n if(n <= 0) return 0;\n var d = this.DV%n, r = (this.s<0)?n-1:0;\n if(this.t > 0)\n if(d == 0) r = this[0]%n;\n else for(var i = this.t-1; i >= 0; --i) r = (d*r+this[i])%n;\n return r;\n }\n\n // (public) 1/this % m (HAC 14.61)\n function bnModInverse(m) {\n var ac = m.isEven();\n if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;\n var u = m.clone(), v = this.clone();\n var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);\n while(u.signum() != 0) {\n while(u.isEven()) {\n u.rShiftTo(1,u);\n if(ac) {\n if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }\n a.rShiftTo(1,a);\n }\n else if(!b.isEven()) b.subTo(m,b);\n b.rShiftTo(1,b);\n }\n while(v.isEven()) {\n v.rShiftTo(1,v);\n if(ac) {\n if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }\n c.rShiftTo(1,c);\n }\n else if(!d.isEven()) d.subTo(m,d);\n d.rShiftTo(1,d);\n }\n if(u.compareTo(v) >= 0) {\n u.subTo(v,u);\n if(ac) a.subTo(c,a);\n b.subTo(d,b);\n }\n else {\n v.subTo(u,v);\n if(ac) c.subTo(a,c);\n d.subTo(b,d);\n }\n }\n if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;\n if(d.compareTo(m) >= 0) return d.subtract(m);\n if(d.signum() < 0) d.addTo(m,d); else return d;\n if(d.signum() < 0) return d.add(m); else return d;\n }\n\n 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];\n var lplim = (1<<26)/lowprimes[lowprimes.length-1];\n\n // (public) test primality with certainty >= 1-.5^t\n function bnIsProbablePrime(t) {\n var i, x = this.abs();\n if(x.t == 1 && x[0] <= lowprimes[lowprimes.length-1]) {\n for(i = 0; i < lowprimes.length; ++i)\n if(x[0] == lowprimes[i]) return true;\n return false;\n }\n if(x.isEven()) return false;\n i = 1;\n while(i < lowprimes.length) {\n var m = lowprimes[i], j = i+1;\n while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];\n m = x.modInt(m);\n while(i < j) if(m%lowprimes[i++] == 0) return false;\n }\n return x.millerRabin(t);\n }\n\n // (protected) true if probably prime (HAC 4.24, Miller-Rabin)\n function bnpMillerRabin(t) {\n var n1 = this.subtract(BigInteger.ONE);\n var k = n1.getLowestSetBit();\n if(k <= 0) return false;\n var r = n1.shiftRight(k);\n t = (t+1)>>1;\n if(t > lowprimes.length) t = lowprimes.length;\n var a = nbi();\n for(var i = 0; i < t; ++i) {\n //Pick bases at random, instead of starting at 2\n a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);\n var y = a.modPow(r,this);\n if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while(j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2,this);\n if(y.compareTo(BigInteger.ONE) == 0) return false;\n }\n if(y.compareTo(n1) != 0) return false;\n }\n }\n return true;\n }\n\n // protected\n BigInteger.prototype.chunkSize = bnpChunkSize;\n BigInteger.prototype.toRadix = bnpToRadix;\n BigInteger.prototype.fromRadix = bnpFromRadix;\n BigInteger.prototype.fromNumber = bnpFromNumber;\n BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\n BigInteger.prototype.changeBit = bnpChangeBit;\n BigInteger.prototype.addTo = bnpAddTo;\n BigInteger.prototype.dMultiply = bnpDMultiply;\n BigInteger.prototype.dAddOffset = bnpDAddOffset;\n BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\n BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\n BigInteger.prototype.modInt = bnpModInt;\n BigInteger.prototype.millerRabin = bnpMillerRabin;\n\n // public\n BigInteger.prototype.clone = bnClone;\n BigInteger.prototype.intValue = bnIntValue;\n BigInteger.prototype.byteValue = bnByteValue;\n BigInteger.prototype.shortValue = bnShortValue;\n BigInteger.prototype.signum = bnSigNum;\n BigInteger.prototype.toByteArray = bnToByteArray;\n BigInteger.prototype.equals = bnEquals;\n BigInteger.prototype.min = bnMin;\n BigInteger.prototype.max = bnMax;\n BigInteger.prototype.and = bnAnd;\n BigInteger.prototype.or = bnOr;\n BigInteger.prototype.xor = bnXor;\n BigInteger.prototype.andNot = bnAndNot;\n BigInteger.prototype.not = bnNot;\n BigInteger.prototype.shiftLeft = bnShiftLeft;\n BigInteger.prototype.shiftRight = bnShiftRight;\n BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\n BigInteger.prototype.bitCount = bnBitCount;\n BigInteger.prototype.testBit = bnTestBit;\n BigInteger.prototype.setBit = bnSetBit;\n BigInteger.prototype.clearBit = bnClearBit;\n BigInteger.prototype.flipBit = bnFlipBit;\n BigInteger.prototype.add = bnAdd;\n BigInteger.prototype.subtract = bnSubtract;\n BigInteger.prototype.multiply = bnMultiply;\n BigInteger.prototype.divide = bnDivide;\n BigInteger.prototype.remainder = bnRemainder;\n BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\n BigInteger.prototype.modPow = bnModPow;\n BigInteger.prototype.modInverse = bnModInverse;\n BigInteger.prototype.pow = bnPow;\n BigInteger.prototype.gcd = bnGCD;\n BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n\n // JSBN-specific extension\n BigInteger.prototype.square = bnSquare;\n\n // Expose the Barrett function\n BigInteger.prototype.Barrett = Barrett\n\n // BigInteger interfaces not implemented in jsbn:\n\n // BigInteger(int signum, byte[] magnitude)\n // double doubleValue()\n // float floatValue()\n // int hashCode()\n // long longValue()\n // static BigInteger valueOf(long val)\n\n // Random number generator - requires a PRNG backend, e.g. prng4.js\n\n // For best results, put code like\n // <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>\n // in your main HTML document.\n\n var rng_state;\n var rng_pool;\n var rng_pptr;\n\n // Mix in a 32-bit integer into the pool\n function rng_seed_int(x) {\n rng_pool[rng_pptr++] ^= x & 255;\n rng_pool[rng_pptr++] ^= (x >> 8) & 255;\n rng_pool[rng_pptr++] ^= (x >> 16) & 255;\n rng_pool[rng_pptr++] ^= (x >> 24) & 255;\n if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;\n }\n\n // Mix in the current time (w/milliseconds) into the pool\n function rng_seed_time() {\n rng_seed_int(new Date().getTime());\n }\n\n // Initialize the pool with junk if needed.\n if(rng_pool == null) {\n rng_pool = new Array();\n rng_pptr = 0;\n var t;\n if(typeof window !== \"undefined\" && window.crypto) {\n if (window.crypto.getRandomValues) {\n // Use webcrypto if available\n var ua = new Uint8Array(32);\n window.crypto.getRandomValues(ua);\n for(t = 0; t < 32; ++t)\n rng_pool[rng_pptr++] = ua[t];\n }\n else if(navigator.appName == \"Netscape\" && navigator.appVersion < \"5\") {\n // Extract entropy (256 bits) from NS4 RNG if available\n var z = window.crypto.random(32);\n for(t = 0; t < z.length; ++t)\n rng_pool[rng_pptr++] = z.charCodeAt(t) & 255;\n }\n }\n while(rng_pptr < rng_psize) { // extract some randomness from Math.random()\n t = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = t >>> 8;\n rng_pool[rng_pptr++] = t & 255;\n }\n rng_pptr = 0;\n rng_seed_time();\n //rng_seed_int(window.screenX);\n //rng_seed_int(window.screenY);\n }\n\n function rng_get_byte() {\n if(rng_state == null) {\n rng_seed_time();\n rng_state = prng_newstate();\n rng_state.init(rng_pool);\n for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)\n rng_pool[rng_pptr] = 0;\n rng_pptr = 0;\n //rng_pool = null;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n }\n\n function rng_get_bytes(ba) {\n var i;\n for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();\n }\n\n function SecureRandom() {}\n\n SecureRandom.prototype.nextBytes = rng_get_bytes;\n\n // prng4.js - uses Arcfour as a PRNG\n\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = new Array();\n }\n\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n function ARC4init(key) {\n var i, j, t;\n for(i = 0; i < 256; ++i)\n this.S[i] = i;\n j = 0;\n for(i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n }\n\n function ARC4next() {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n }\n\n Arcfour.prototype.init = ARC4init;\n Arcfour.prototype.next = ARC4next;\n\n // Plug in your RNG constructor here\n function prng_newstate() {\n return new Arcfour();\n }\n\n // Pool size must be a multiple of 4 and greater than 32.\n // An array of bytes the size of the pool will be passed to init()\n var rng_psize = 256;\n\n if (typeof exports !== 'undefined') {\n exports = module.exports = {\n default: BigInteger,\n BigInteger: BigInteger,\n SecureRandom: SecureRandom,\n };\n } else {\n this.jsbn = {\n BigInteger: BigInteger,\n SecureRandom: SecureRandom\n };\n }\n\n}).call(this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/jsbn/index.js\n// module id = 59\n// module chunks = 0","var _concat = require('./internal/_concat');\nvar _curry3 = require('./internal/_curry3');\n\n\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig (a -> a) -> Number -> [a] -> [a]\n * @param {Function} fn The function to apply.\n * @param {Number} idx The index.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(R.add(10), 1, [1, 2, 3]); //=> [1, 12, 3]\n * R.adjust(R.add(10))(1)([1, 2, 3]); //=> [1, 12, 3]\n * @symb R.adjust(f, -1, [a, b]) = [a, f(b)]\n * @symb R.adjust(f, 0, [a, b]) = [f(a), b]\n */\nmodule.exports = _curry3(function adjust(fn, idx, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n var start = idx < 0 ? list.length : 0;\n var _idx = start + idx;\n var _list = _concat(list);\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/adjust.js\n// module id = 60\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\nmodule.exports = _curry2(function and(a, b) {\n return a && b;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/and.js\n// module id = 61\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xany = require('./internal/_xany');\n\n\n/**\n * Returns `true` if at least one of elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * var lessThan0 = R.flip(R.lt)(0);\n * var lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\nmodule.exports = _curry2(_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/any.js\n// module id = 62\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * var nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\nmodule.exports = _curry2(function apply(fn, args) {\n return fn.apply(this, args);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/apply.js\n// module id = 63\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar _has = require('./internal/_has');\nvar _isArray = require('./internal/_isArray');\nvar _isInteger = require('./internal/_isInteger');\nvar assoc = require('./assoc');\n\n\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\nmodule.exports = _curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n var idx = path[0];\n if (path.length > 1) {\n var nextObj = _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n if (_isInteger(idx) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return assoc(idx, val, obj);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/assocPath.js\n// module id = 64\n// module chunks = 0","var _arity = require('./internal/_arity');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * var log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\nmodule.exports = _curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function() {\n return fn.apply(thisObj, arguments);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/bind.js\n// module id = 65\n// module chunks = 0","var chain = require('./chain');\nvar compose = require('./compose');\nvar map = require('./map');\n\n\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), R.chain(f))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * var get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * var getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\nmodule.exports = function composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return compose(compose.apply(this, map(chain, init)), last);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/composeK.js\n// module id = 66\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar curry = require('./curry');\nvar nAry = require('./nAry');\n\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * };\n * Salad.prototype.recipe = function() {\n * var instructions = R.map((ingredient) => (\n * 'Add a whollop of ' + ingredient, this.ingredients)\n * )\n * return R.join('\\n', instructions)\n * }\n *\n * var ThreeLayerSalad = R.constructN(3, Salad)\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * var salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup')\n * console.log(salad.recipe());\n * // Add a whollop of Mayonnaise\n * // Add a whollop of Potato Chips\n * // Add a whollop of Potato Ketchup\n */\nmodule.exports = _curry2(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n if (n === 0) {\n return function() { return new Fn(); };\n }\n return curry(nAry(n, function($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1: return new Fn($0);\n case 2: return new Fn($0, $1);\n case 3: return new Fn($0, $1, $2);\n case 4: return new Fn($0, $1, $2, $3);\n case 5: return new Fn($0, $1, $2, $3, $4);\n case 6: return new Fn($0, $1, $2, $3, $4, $5);\n case 7: return new Fn($0, $1, $2, $3, $4, $5, $6);\n case 8: return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n case 9: return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n case 10: return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/constructN.js\n// module id = 67\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _map = require('./internal/_map');\nvar curryN = require('./curryN');\nvar max = require('./max');\nvar pluck = require('./pluck');\nvar reduce = require('./reduce');\n\n\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. When invoked, this new function is applied to some\n * arguments, each branching function is applied to those same arguments. The\n * results of each branching function are passed as arguments to the converging\n * function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig (x1 -> x2 -> ... -> z) -> [(a -> b -> ... -> x1), (a -> b -> ... -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * var average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * var strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\nmodule.exports = _curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function() {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function(fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/converge.js\n// module id = 68\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * var defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\nmodule.exports = _curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/defaultTo.js\n// module id = 69\n// module chunks = 0","var _contains = require('./internal/_contains');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared are compared\n * in terms of value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\nmodule.exports = _curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n while (idx < firstLen) {\n if (!_contains(first[idx], second) && !_contains(first[idx], out)) {\n out[out.length] = first[idx];\n }\n idx += 1;\n }\n return out;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/difference.js\n// module id = 70\n// module chunks = 0","var _containsWith = require('./internal/_containsWith');\nvar _curry3 = require('./internal/_curry3');\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * var cmp = (x, y) => x.a === y.a;\n * var l1 = [{a: 1}, {a: 2}, {a: 3}];\n * var l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\nmodule.exports = _curry3(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n while (idx < firstLen) {\n if (!_containsWith(pred, first[idx], second) &&\n !_containsWith(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n idx += 1;\n }\n return out;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/differenceWith.js\n// module id = 71\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\nmodule.exports = _curry2(function dissoc(prop, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n delete result[prop];\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/dissoc.js\n// module id = 72\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xdrop = require('./internal/_xdrop');\nvar slice = require('./slice');\n\n\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {[a]} list\n * @return {[a]} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\nmodule.exports = _curry2(_dispatchable(['drop'], _xdrop, function drop(n, xs) {\n return slice(Math.max(0, n), Infinity, xs);\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/drop.js\n// module id = 73\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xdropRepeatsWith = require('./internal/_xdropRepeatsWith');\nvar last = require('./last');\n\n\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig (a, a -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * var l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\nmodule.exports = _curry2(_dispatchable([], _xdropRepeatsWith, function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n if (len !== 0) {\n result[0] = list[0];\n while (idx < len) {\n if (!pred(last(result), list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n }\n return result;\n}));\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/dropRepeatsWith.js\n// module id = 74\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _isArguments = require('./internal/_isArguments');\nvar _isArray = require('./internal/_isArray');\nvar _isObject = require('./internal/_isObject');\nvar _isString = require('./internal/_isString');\n\n\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `<Type>.empty` and/or\n * `<Type>.prototype.empty`.\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\nmodule.exports = _curry1(function empty(x) {\n return (\n (x != null && typeof x.empty === 'function') ?\n x.empty() :\n (x != null && x.constructor != null && typeof x.constructor.empty === 'function') ?\n x.constructor.empty() :\n _isArray(x) ?\n [] :\n _isString(x) ?\n '' :\n _isObject(x) ?\n {} :\n _isArguments(x) ?\n (function() { return arguments; }()) :\n // else\n void 0\n );\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/empty.js\n// module id = 75\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * var o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\nmodule.exports = _curry2(function identical(a, b) {\n // SameValue algorithm\n if (a === b) { // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/identical.js\n// module id = 76\n// module chunks = 0","var _cloneRegExp = require('./_cloneRegExp');\nvar type = require('../type');\n\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\nmodule.exports = function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n idx += 1;\n }\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n for (var key in value) {\n copiedValue[key] = deep ?\n _clone(value[key], refFrom, refTo, true) : value[key];\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object': return copy({});\n case 'Array': return copy([]);\n case 'Date': return new Date(value.valueOf());\n case 'RegExp': return _cloneRegExp(value);\n default: return value;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_clone.js\n// module id = 77\n// module chunks = 0","module.exports = function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') +\n (pattern.ignoreCase ? 'i' : '') +\n (pattern.multiline ? 'm' : '') +\n (pattern.sticky ? 'y' : '') +\n (pattern.unicode ? 'u' : ''));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_cloneRegExp.js\n// module id = 78\n// module chunks = 0","module.exports = function _complement(f) {\n return function() {\n return !f.apply(this, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_complement.js\n// module id = 79\n// module chunks = 0","var _arity = require('./_arity');\nvar _curry2 = require('./_curry2');\n\n\nmodule.exports = function _createPartialApplicator(concat) {\n return _curry2(function(fn, args) {\n return _arity(Math.max(0, fn.length - args.length), function() {\n return fn.apply(this, concat(args, arguments));\n });\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_createPartialApplicator.js\n// module id = 80\n// module chunks = 0","module.exports = function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_filter.js\n// module id = 81\n// module chunks = 0","var equals = require('../equals');\n\n\nmodule.exports = function _indexOf(list, a, idx) {\n var inf, item;\n // Array.prototype.indexOf doesn't exist below IE9\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n }\n // non-zero numbers can utilise Set\n return list.indexOf(a, idx);\n\n // all these types can utilise Set\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n }\n }\n // anything else not covered above, defer to R.equals\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_indexOf.js\n// module id = 82\n// module chunks = 0","var _has = require('./_has');\n\n\nmodule.exports = (function() {\n var toString = Object.prototype.toString;\n return toString.call(arguments) === '[object Arguments]' ?\n function _isArguments(x) { return toString.call(x) === '[object Arguments]'; } :\n function _isArguments(x) { return _has('callee', x); };\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isArguments.js\n// module id = 83\n// module chunks = 0","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nmodule.exports = Number.isInteger || function _isInteger(n) {\n return (n << 0) === n;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isInteger.js\n// module id = 84\n// module chunks = 0","module.exports = function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isNumber.js\n// module id = 85\n// module chunks = 0","module.exports = function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isObject.js\n// module id = 86\n// module chunks = 0","var isArrayLike = require('../isArrayLike');\n\n\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\nmodule.exports = function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_makeFlat.js\n// module id = 87\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _reduced = require('./_reduced');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n XAny.prototype['@@transducer/result'] = function(result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n return this.xf['@@transducer/result'](result);\n };\n XAny.prototype['@@transducer/step'] = function(result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n return result;\n };\n\n return _curry2(function _xany(f, xf) { return new XAny(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xany.js\n// module id = 88\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase.init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase.result;\n XDropRepeatsWith.prototype['@@transducer/step'] = function(result, input) {\n var sameAsLast = false;\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return _curry2(function _xdropRepeatsWith(pred, xf) { return new XDropRepeatsWith(pred, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xdropRepeatsWith.js\n// module id = 89\n// module chunks = 0","module.exports = (function() {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function() {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function(acc) { return acc; };\n XWrap.prototype['@@transducer/step'] = function(acc, x) {\n return this.f(acc, x);\n };\n\n return function _xwrap(fn) { return new XWrap(fn); };\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xwrap.js\n// module id = 90\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\nmodule.exports = _curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/is.js\n// module id = 91\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar converge = require('./converge');\n\n\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * var getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\nmodule.exports = _curry1(function juxt(fns) {\n return converge(function() { return Array.prototype.slice.call(arguments, 0); }, fns);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/juxt.js\n// module id = 92\n// module chunks = 0","var nth = require('./nth');\n\n\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\nmodule.exports = nth(-1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/last.js\n// module id = 93\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _isNumber = require('./internal/_isNumber');\n\n\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\nmodule.exports = _curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/length.js\n// module id = 94\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _reduce = require('./internal/_reduce');\nvar ap = require('./ap');\nvar curryN = require('./curryN');\nvar map = require('./map');\n\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * var madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\nmodule.exports = _curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function() {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/liftN.js\n// module id = 95\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar sum = require('./sum');\n\n\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\nmodule.exports = _curry1(function mean(list) {\n return sum(list) / list.length;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/mean.js\n// module id = 96\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar _has = require('./internal/_has');\n\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object. The key\n * will be excluded from the returned object if the resulting value is\n * `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig (String -> a -> a -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\nmodule.exports = _curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !(_has(k, result))) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/mergeWithKey.js\n// module id = 97\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * var double = R.multiply(2);\n * var triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\nmodule.exports = _curry2(function multiply(a, b) { return a * b; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/multiply.js\n// module id = 98\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\nmodule.exports = _curry1(function not(a) {\n return !a;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/not.js\n// module id = 99\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * var matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\nmodule.exports = _curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/objOf.js\n// module id = 100\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\nmodule.exports = _curry2(function or(a, b) {\n return a || b;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/or.js\n// module id = 101\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * var headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\nmodule.exports = (function() {\n // `Identity` is a functor that holds a single value, where `map` simply\n // transforms the held value with the provided function.\n var Identity = function(x) {\n return {value: x, map: function(f) { return Identity(f(x)); }};\n };\n\n return _curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function(y) { return Identity(f(y)); })(x).value;\n });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/over.js\n// module id = 102\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\nmodule.exports = _curry2(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pickAll.js\n// module id = 103\n// module chunks = 0","var _arity = require('./internal/_arity');\nvar _pipe = require('./internal/_pipe');\nvar reduce = require('./reduce');\nvar tail = require('./tail');\n\n\n/**\n * Performs left-to-right function composition. The leftmost function may have\n * any arity; the remaining functions must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * var f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\nmodule.exports = function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n return _arity(arguments[0].length,\n reduce(_pipe, arguments[0], tail(arguments)));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pipe.js\n// module id = 104\n// module chunks = 0","var _arity = require('./internal/_arity');\nvar _pipeP = require('./internal/_pipeP');\nvar reduce = require('./reduce');\nvar tail = require('./tail');\n\n\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The leftmost function may have any arity; the remaining functions\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * var followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\nmodule.exports = function pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n return _arity(arguments[0].length,\n reduce(_pipeP, arguments[0], tail(arguments)));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pipeP.js\n// module id = 105\n// module chunks = 0","var _concat = require('./internal/_concat');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\nmodule.exports = _curry2(function prepend(el, list) {\n return _concat([el], list);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/prepend.js\n// module id = 106\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * Similar to `reduce`, except moves through the input list from the right to\n * the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a, b -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * - -2\n * / \\ / \\\n * 1 - 1 3\n * / \\ / \\\n * 2 - ==> 2 -1\n * / \\ / \\\n * 3 - 3 4\n * / \\ / \\\n * 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\nmodule.exports = _curry3(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n return acc;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/reduceRight.js\n// module id = 107\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar ap = require('./ap');\nvar map = require('./map');\nvar prepend = require('./prepend');\nvar reduceRight = require('./reduceRight');\n\n\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\nmodule.exports = _curry2(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ?\n traversable.sequence(of) :\n reduceRight(function(x, acc) { return ap(map(prepend, x), acc); },\n of([]),\n traversable);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/sequence.js\n// module id = 108\n// module chunks = 0","var add = require('./add');\nvar reduce = require('./reduce');\n\n\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\nmodule.exports = reduce(add, 0);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/sum.js\n// module id = 109\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xtake = require('./internal/_xtake');\nvar slice = require('./slice');\n\n\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * var personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * var takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\nmodule.exports = _curry2(_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/take.js\n// module id = 110\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\nmodule.exports = _curry2(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n list = new Array(len);\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n return list;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/times.js\n// module id = 111\n// module chunks = 0","var _Set = require('./internal/_Set');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. `R.equals` is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\nmodule.exports = _curry2(function uniqBy(fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n if (set.add(appliedItem)) {\n result.push(item);\n }\n idx += 1;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/uniqBy.js\n// module id = 112\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar adjust = require('./adjust');\nvar always = require('./always');\n\n\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, 11, [0, 1, 2]); //=> [0, 11, 2]\n * R.update(1)(11)([0, 1, 2]); //=> [0, 11, 2]\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\nmodule.exports = _curry3(function update(idx, x, list) {\n return adjust(always(x), idx, list);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/update.js\n// module id = 113\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar curryN = require('./curryN');\n\n\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (x1 -> x2 -> ... -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\nmodule.exports = _curry2(function useWith(fn, transformers) {\n return curryN(transformers.length, function() {\n var args = [];\n var idx = 0;\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/useWith.js\n// module id = 114\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar keys = require('./keys');\n\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\nmodule.exports = _curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n return vals;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/values.js\n// module id = 115\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _has = require('./internal/_has');\n\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as `filter` and `find`.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @example\n *\n * // pred :: Object -> Boolean\n * var pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(__, 10),\n * y: R.lt(__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\nmodule.exports = _curry2(function where(spec, testObj) {\n for (var prop in spec) {\n if (_has(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n return true;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/where.js\n// module id = 116\n// module chunks = 0","import { toLower } from 'ramda'\r\nimport { BigInteger } from 'jsbn'\r\nimport Rusha from 'rusha'\r\nimport * as CryptoJSlib from '@goodmind/node-cryptojs-aes'\r\nconst { CryptoJS } = CryptoJSlib\r\nimport { inflate } from 'pako/lib/inflate'\r\n\r\n// import Timer from 'hirestime' //TODO remove in prod!\r\n\r\nimport random from './service/secure-random'\r\n\r\n\r\nimport { eGCD_, greater, divide_, str2bigInt, equalsInt,\r\n isZero, bigInt2str, copy_, copyInt_, rightShift_, addInt_,\r\n leftShift_, sub_, add_, powMod, bpe, one, int2bigInt } from './vendor/leemon'\r\n\r\n\r\nconst rushaInstance = new Rusha(1024 * 1024)\r\n\r\nexport function bigint(num) {\r\n return new BigInteger(num.toString(16), 16)\r\n}\r\n\r\nexport function bigStringInt(strNum) {\r\n return new BigInteger(strNum, 10)\r\n}\r\n\r\nexport const rShift32 = str => {\r\n const num = str2bigInt(str, 10, 0)\r\n rightShift_(num, 32)\r\n return bigInt2str(num, 10)\r\n}\r\nexport const strDecToHex = str => toLower(\r\n bigInt2str(\r\n str2bigInt(str, 10, 0), 16\r\n ))\r\n\r\nexport function bytesToHex(bytes = []) {\r\n const arr = []\r\n for (let i = 0; i < bytes.length; i++) {\r\n arr.push((bytes[i] < 16 ? '0' : '') + (bytes[i] || 0).toString(16))\r\n }\r\n return arr.join('')\r\n}\r\n\r\nexport function bytesFromHex(hexString) {\r\n const len = hexString.length\r\n let start = 0\r\n const bytes = []\r\n\r\n if (hexString.length % 2) {\r\n bytes.push(parseInt(hexString.charAt(0), 16))\r\n start++\r\n }\r\n\r\n for (let i = start; i < len; i += 2) {\r\n bytes.push(parseInt(hexString.substr(i, 2), 16))\r\n }\r\n\r\n return bytes\r\n}\r\n\r\nexport function bytesCmp(bytes1, bytes2) {\r\n const len = bytes1.length\r\n if (len !== bytes2.length) {\r\n return false\r\n }\r\n\r\n for (let i = 0; i < len; i++) {\r\n if (bytes1[i] !== bytes2[i])\r\n return false\r\n }\r\n return true\r\n}\r\n\r\nexport function bytesXor(bytes1, bytes2) {\r\n const len = bytes1.length\r\n const bytes = []\r\n\r\n for (let i = 0; i < len; ++i) {\r\n bytes[i] = bytes1[i] ^ bytes2[i]\r\n }\r\n\r\n return bytes\r\n}\r\n\r\nexport function bytesToWords(bytes) {\r\n if (bytes instanceof ArrayBuffer) {\r\n bytes = new Uint8Array(bytes)\r\n }\r\n const len = bytes.length\r\n const words = []\r\n let i\r\n for (i = 0; i < len; i++) {\r\n words[i >>> 2] |= bytes[i] << 24 - i % 4 * 8\r\n }\r\n\r\n return new CryptoJS.lib.WordArray.init(words, len)\r\n}\r\n\r\nexport function bytesFromWords(wordArray) {\r\n const words = wordArray.words\r\n const sigBytes = wordArray.sigBytes\r\n const bytes = []\r\n\r\n for (let i = 0; i < sigBytes; i++) {\r\n bytes.push(words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff)\r\n }\r\n\r\n return bytes\r\n}\r\n\r\n\r\nexport function bytesFromLeemonBigInt(bigInt) {\r\n const str = bigInt2str(bigInt, 16)\r\n return bytesFromHex(str)\r\n}\r\n\r\nexport function bytesToArrayBuffer(b) {\r\n return (new Uint8Array(b)).buffer\r\n}\r\n\r\nexport function convertToArrayBuffer(bytes) {\r\n // Be careful with converting subarrays!!\r\n if (bytes instanceof ArrayBuffer) {\r\n return bytes\r\n }\r\n if (bytes.buffer !== undefined &&\r\n bytes.buffer.byteLength == bytes.length * bytes.BYTES_PER_ELEMENT) {\r\n return bytes.buffer\r\n }\r\n return bytesToArrayBuffer(bytes)\r\n}\r\n\r\nexport function convertToUint8Array(bytes) {\r\n if (bytes.buffer !== undefined)\r\n return bytes\r\n return new Uint8Array(bytes)\r\n}\r\n\r\nexport function convertToByteArray(bytes) {\r\n if (Array.isArray(bytes))\r\n return bytes\r\n bytes = convertToUint8Array(bytes)\r\n const newBytes = []\r\n for (let i = 0, len = bytes.length; i < len; i++)\r\n newBytes.push(bytes[i])\r\n return newBytes\r\n}\r\n\r\nexport function bytesFromArrayBuffer(buffer) {\r\n const byteView = new Uint8Array(buffer)\r\n const bytes = Array.from( byteView )\r\n return bytes\r\n}\r\n\r\nexport function bufferConcat(buffer1, buffer2) {\r\n const l1 = buffer1.byteLength || buffer1.length\r\n const l2 = buffer2.byteLength || buffer2.length\r\n const tmp = new Uint8Array(l1 + l2)\r\n tmp.set(\r\n buffer1 instanceof ArrayBuffer\r\n ? new Uint8Array(buffer1)\r\n : buffer1,\r\n 0)\r\n tmp.set(\r\n buffer2 instanceof ArrayBuffer\r\n ? new Uint8Array(buffer2)\r\n : buffer2,\r\n l1)\r\n\r\n return tmp.buffer\r\n}\r\n\r\n// const dividerBig = bigint(0x100000000)\r\nconst dividerLem = str2bigInt('100000000', 16, 4)\r\n\r\n// const printTimers = (timeL, timeB, a, b, n) => setTimeout(\r\n// () => console.log(`Timer L ${timeL} B ${timeB}`, ...a, ...b, n || ''),\r\n// 100)\r\n\r\nexport function longToInts(sLong) {\r\n /*const bigTime = Timer()\r\n const divRem = bigStringInt(sLong).divideAndRemainder(dividerBig)\r\n const divIntB = divRem[0].intValue()\r\n const remIntB = divRem[1].intValue()\r\n const resB = [\r\n intToUint(divIntB),\r\n intToUint(remIntB)\r\n ]\r\n const timeB = bigTime()*/\r\n\r\n // const lemTime = Timer()\r\n const lemNum = str2bigInt(sLong, 10, 6)\r\n const div = new Array(lemNum.length)\r\n const rem = new Array(lemNum.length)\r\n divide_(lemNum, dividerLem, div, rem)\r\n const resL = [\r\n ~~bigInt2str(div, 10),\r\n ~~bigInt2str(rem, 10)\r\n ]\r\n // const timeL = lemTime()\r\n\r\n // printTimers(timeL, timeB, resL, resB)\r\n return resL\r\n}\r\n\r\nexport function longToBytes(sLong) {\r\n return bytesFromWords({ words: longToInts(sLong), sigBytes: 8 }).reverse()\r\n}\r\n\r\nexport function longFromLem(high, low) {\r\n const highNum = int2bigInt(high, 96, 0)\r\n leftShift_(highNum, 32)\r\n\r\n addInt_(highNum, low)\r\n const res = bigInt2str(highNum, 10)\r\n return res\r\n}\r\n\r\nexport function intToUint(val) {\r\n val = parseInt(val) //TODO PERF parseInt is a perfomance issue\r\n if (val < 0)\r\n val = val + 4294967296\r\n return val\r\n}\r\n\r\nexport function uintToInt(val) {\r\n if (val > 2147483647)\r\n val = val - 4294967296\r\n return val\r\n}\r\n\r\nexport function sha1HashSync(bytes) {\r\n // console.log(dT(), 'SHA-1 hash start', bytes.byteLength || bytes.length)\r\n const hashBytes = rushaInstance.rawDigest(bytes).buffer\r\n // console.log(dT(), 'SHA-1 hash finish')\r\n\r\n return hashBytes\r\n}\r\n\r\nexport function sha1BytesSync(bytes) {\r\n return bytesFromArrayBuffer(sha1HashSync(bytes))\r\n}\r\n\r\nexport function sha256HashSync(bytes) {\r\n // console.log(dT(), 'SHA-2 hash start', bytes.byteLength || bytes.length)\r\n const hashWords = CryptoJS.SHA256(bytesToWords(bytes))\r\n // console.log(dT(), 'SHA-2 hash finish')\r\n\r\n const hashBytes = bytesFromWords(hashWords)\r\n\r\n return hashBytes\r\n}\r\n\r\nexport function rsaEncrypt(publicKey, bytes) {\r\n bytes = addPadding(bytes, 255)\r\n\r\n const N = str2bigInt(publicKey.modulus, 16, 256)\r\n const E = str2bigInt(publicKey.exponent, 16, 256)\r\n const X = str2bigInt(bytesToHex(bytes), 16, 256)\r\n const encryptedBigInt = powMod(X, E, N),\r\n encryptedBytes = bytesFromHex(bigInt2str(encryptedBigInt, 16))\r\n\r\n return encryptedBytes\r\n}\r\n\r\nexport function addPadding(bytes, blockSize, zeroes) {\r\n blockSize = blockSize || 16\r\n const len = bytes.byteLength || bytes.length\r\n const needPadding = blockSize - len % blockSize\r\n if (needPadding > 0 && needPadding < blockSize) {\r\n const padding = new Array(needPadding)\r\n if (zeroes) {\r\n for (let i = 0; i < needPadding; i++)\r\n padding[i] = 0\r\n } else\r\n random.nextBytes(padding)\r\n\r\n bytes = bytes instanceof ArrayBuffer\r\n ? bufferConcat(bytes, padding)\r\n : bytes.concat(padding)\r\n }\r\n\r\n return bytes\r\n}\r\n\r\nexport function aesEncryptSync(bytes, keyBytes, ivBytes) {\r\n const len = bytes.byteLength || bytes.length\r\n\r\n // console.log(dT(), 'AES encrypt start', len/*, bytesToHex(keyBytes), bytesToHex(ivBytes)*/)\r\n bytes = addPadding(bytes)\r\n\r\n const encryptedWords = CryptoJS.AES.encrypt(bytesToWords(bytes), bytesToWords(keyBytes), {\r\n iv : bytesToWords(ivBytes),\r\n padding: CryptoJS.pad.NoPadding,\r\n mode : CryptoJS.mode.IGE\r\n }).ciphertext\r\n\r\n const encryptedBytes = bytesFromWords(encryptedWords)\r\n // console.log(dT(), 'AES encrypt finish')\r\n\r\n return encryptedBytes\r\n}\r\n\r\nexport function aesDecryptSync(encryptedBytes, keyBytes, ivBytes) {\r\n\r\n // console.log(dT(), 'AES decrypt start', encryptedBytes.length)\r\n const decryptedWords = CryptoJS.AES.decrypt({ ciphertext: bytesToWords(encryptedBytes) }, bytesToWords(keyBytes), {\r\n iv : bytesToWords(ivBytes),\r\n padding: CryptoJS.pad.NoPadding,\r\n mode : CryptoJS.mode.IGE\r\n })\r\n\r\n const bytes = bytesFromWords(decryptedWords)\r\n // console.log(dT(), 'AES decrypt finish')\r\n\r\n return bytes\r\n}\r\n\r\nexport function gzipUncompress(bytes) {\r\n // console.log('Gzip uncompress start')\r\n const result = inflate(bytes)\r\n // console.log('Gzip uncompress finish')\r\n return result\r\n}\r\n\r\nexport function nextRandomInt(maxValue) {\r\n return Math.floor(Math.random() * maxValue)\r\n}\r\n\r\n\r\nexport function pqPrimeFactorization(pqBytes) {\r\n const minSize = Math.ceil(64 / bpe) + 1\r\n\r\n // const what = new BigInteger(pqBytes)\r\n const hex = bytesToHex(pqBytes)\r\n const lWhat = str2bigInt(hex, 16, minSize)\r\n const result = pqPrimeLeemon(lWhat)\r\n return result\r\n}\r\n\r\n\r\nexport function pqPrimeLeemon(what) {\r\n const minBits = 64\r\n const minLen = Math.ceil(minBits / bpe) + 1\r\n let it = 0\r\n let q, lim\r\n const a = new Array(minLen)\r\n const b = new Array(minLen)\r\n const c = new Array(minLen)\r\n const g = new Array(minLen)\r\n const z = new Array(minLen)\r\n const x = new Array(minLen)\r\n const y = new Array(minLen)\r\n\r\n for (let i = 0; i < 3; i++) {\r\n q = (nextRandomInt(128) & 15) + 17\r\n copyInt_(x, nextRandomInt(1000000000) + 1)\r\n copy_(y, x)\r\n lim = 1 << i + 18\r\n\r\n for (let j = 1; j < lim; j++) {\r\n ++it\r\n copy_(a, x)\r\n copy_(b, x)\r\n copyInt_(c, q)\r\n\r\n while (!isZero(b)) {\r\n if (b[0] & 1) {\r\n add_(c, a)\r\n if (greater(c, what)) {\r\n sub_(c, what)\r\n }\r\n }\r\n add_(a, a)\r\n if (greater(a, what)) {\r\n sub_(a, what)\r\n }\r\n rightShift_(b, 1)\r\n }\r\n\r\n copy_(x, c)\r\n if (greater(x, y)) {\r\n copy_(z, x)\r\n sub_(z, y)\r\n } else {\r\n copy_(z, y)\r\n sub_(z, x)\r\n }\r\n eGCD_(z, what, g, a, b)\r\n if (!equalsInt(g, 1)) {\r\n break\r\n }\r\n if ((j & j - 1) === 0) {\r\n copy_(y, x)\r\n }\r\n }\r\n if (greater(g, one)) {\r\n break\r\n }\r\n }\r\n\r\n divide_(what, g, x, y)\r\n\r\n const [P, Q] =\r\n greater(g, x)\r\n ? [x, g]\r\n : [g, x]\r\n\r\n // console.log(dT(), 'done', bigInt2str(what, 10), bigInt2str(P, 10), bigInt2str(Q, 10))\r\n\r\n return [bytesFromLeemonBigInt(P), bytesFromLeemonBigInt(Q), it]\r\n}\r\n\r\nexport function bytesModPow(x, y, m) {\r\n const xBigInt = str2bigInt(bytesToHex(x), 16)\r\n const yBigInt = str2bigInt(bytesToHex(y), 16)\r\n const mBigInt = str2bigInt(bytesToHex(m), 16)\r\n const resBigInt = powMod(xBigInt, yBigInt, mBigInt)\r\n\r\n return bytesFromHex(bigInt2str(resBigInt, 16))\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./bin.js","var CryptoJS = require('./lib/core').CryptoJS;\nrequire('./lib/enc-base64');\nrequire('./lib/md5');\nrequire('./lib/evpkdf');\nrequire('./lib/cipher-core');\nrequire('./lib/aes');\nrequire('./lib/sha256');\nvar JsonFormatter = require('./lib/jsonformatter').JsonFormatter;\n\nexports.CryptoJS = CryptoJS;\nexports.JsonFormatter = JsonFormatter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@goodmind/node-cryptojs-aes/cryptojs.js\n// module id = 118\n// module chunks = 0","var CryptoJS = require('./core').CryptoJS;\r\n\r\n/*\nCryptoJS v3.1.2\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var BlockCipher = C_lib.BlockCipher;\r\n var C_algo = C.algo;\r\n\r\n // Lookup tables\r\n var SBOX = [];\r\n var INV_SBOX = [];\r\n var SUB_MIX_0 = [];\r\n var SUB_MIX_1 = [];\r\n var SUB_MIX_2 = [];\r\n var SUB_MIX_3 = [];\r\n var INV_SUB_MIX_0 = [];\r\n var INV_SUB_MIX_1 = [];\r\n var INV_SUB_MIX_2 = [];\r\n var INV_SUB_MIX_3 = [];\r\n\r\n // Compute lookup tables\r\n (function () {\r\n // Compute double table\r\n var d = [];\r\n for (var i = 0; i < 256; i++) {\r\n if (i < 128) {\r\n d[i] = i << 1;\r\n } else {\r\n d[i] = (i << 1) ^ 0x11b;\r\n }\r\n }\r\n\r\n // Walk GF(2^8)\r\n var x = 0;\r\n var xi = 0;\r\n for (var i = 0; i < 256; i++) {\r\n // Compute sbox\r\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\r\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\r\n SBOX[x] = sx;\r\n INV_SBOX[sx] = x;\r\n\r\n // Compute multiplication\r\n var x2 = d[x];\r\n var x4 = d[x2];\r\n var x8 = d[x4];\r\n\r\n // Compute sub bytes, mix columns tables\r\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\r\n SUB_MIX_0[x] = (t << 24) | (t >>> 8);\r\n SUB_MIX_1[x] = (t << 16) | (t >>> 16);\r\n SUB_MIX_2[x] = (t << 8) | (t >>> 24);\r\n SUB_MIX_3[x] = t;\r\n\r\n // Compute inv sub bytes, inv mix columns tables\r\n var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\r\n INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\r\n INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\r\n INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\r\n INV_SUB_MIX_3[sx] = t;\r\n\r\n // Compute next counter\r\n if (!x) {\r\n x = xi = 1;\r\n } else {\r\n x = x2 ^ d[d[d[x8 ^ x2]]];\r\n xi ^= d[d[xi]];\r\n }\r\n }\r\n }());\r\n\r\n // Precomputed Rcon lookup\r\n var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\r\n\r\n /**\r\n * AES block cipher algorithm.\r\n */\r\n var AES = C_algo.AES = BlockCipher.extend({\r\n _doReset: function () {\r\n // Shortcuts\r\n var key = this._key;\r\n var keyWords = key.words;\r\n var keySize = key.sigBytes / 4;\r\n\r\n // Compute number of rounds\r\n var nRounds = this._nRounds = keySize + 6\r\n\r\n // Compute number of key schedule rows\r\n var ksRows = (nRounds + 1) * 4;\r\n\r\n // Compute key schedule\r\n var keySchedule = this._keySchedule = [];\r\n for (var ksRow = 0; ksRow < ksRows; ksRow++) {\r\n if (ksRow < keySize) {\r\n keySchedule[ksRow] = keyWords[ksRow];\r\n } else {\r\n var t = keySchedule[ksRow - 1];\r\n\r\n if (!(ksRow % keySize)) {\r\n // Rot word\r\n t = (t << 8) | (t >>> 24);\r\n\r\n // Sub word\r\n t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\r\n\r\n // Mix Rcon\r\n t ^= RCON[(ksRow / keySize) | 0] << 24;\r\n } else if (keySize > 6 && ksRow % keySize == 4) {\r\n // Sub word\r\n t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\r\n }\r\n\r\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\r\n }\r\n }\r\n\r\n // Compute inv key schedule\r\n var invKeySchedule = this._invKeySchedule = [];\r\n for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\r\n var ksRow = ksRows - invKsRow;\r\n\r\n if (invKsRow % 4) {\r\n var t = keySchedule[ksRow];\r\n } else {\r\n var t = keySchedule[ksRow - 4];\r\n }\r\n\r\n if (invKsRow < 4 || ksRow <= 4) {\r\n invKeySchedule[invKsRow] = t;\r\n } else {\r\n invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\r\n INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\r\n }\r\n }\r\n },\r\n\r\n encryptBlock: function (M, offset) {\r\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\r\n },\r\n\r\n decryptBlock: function (M, offset) {\r\n // Swap 2nd and 4th rows\r\n var t = M[offset + 1];\r\n M[offset + 1] = M[offset + 3];\r\n M[offset + 3] = t;\r\n\r\n this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\r\n\r\n // Inv swap 2nd and 4th rows\r\n var t = M[offset + 1];\r\n M[offset + 1] = M[offset + 3];\r\n M[offset + 3] = t;\r\n },\r\n\r\n _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\r\n // Shortcut\r\n var nRounds = this._nRounds;\r\n\r\n // Get input, add round key\r\n var s0 = M[offset] ^ keySchedule[0];\r\n var s1 = M[offset + 1] ^ keySchedule[1];\r\n var s2 = M[offset + 2] ^ keySchedule[2];\r\n var s3 = M[offset + 3] ^ keySchedule[3];\r\n\r\n // Key schedule row counter\r\n var ksRow = 4;\r\n\r\n // Rounds\r\n for (var round = 1; round < nRounds; round++) {\r\n // Shift rows, sub bytes, mix columns, add round key\r\n var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\r\n var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\r\n var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\r\n var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\r\n\r\n // Update state\r\n s0 = t0;\r\n s1 = t1;\r\n s2 = t2;\r\n s3 = t3;\r\n }\r\n\r\n // Shift rows, sub bytes, add round key\r\n var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\r\n var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\r\n var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\r\n var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\r\n\r\n // Set output\r\n M[offset] = t0;\r\n M[offset + 1] = t1;\r\n M[offset + 2] = t2;\r\n M[offset + 3] = t3;\r\n },\r\n\r\n keySize: 256/32\r\n });\r\n\r\n /**\r\n * Shortcut functions to the cipher's object interface.\r\n *\r\n * @example\r\n *\r\n * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\r\n * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\r\n */\r\n C.AES = BlockCipher._createHelper(AES);\r\n}());\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@goodmind/node-cryptojs-aes/lib/aes.js\n// module id = 119\n// module chunks = 0","var CryptoJS = require('./core').CryptoJS;\r\n\r\n/*\nCryptoJS v3.1.2\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n/**\r\n * Cipher core components.\r\n */\r\nCryptoJS.lib.Cipher || (function (undefined) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var Base = C_lib.Base;\r\n var WordArray = C_lib.WordArray;\r\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\r\n var C_enc = C.enc;\r\n var Utf8 = C_enc.Utf8;\r\n var Base64 = C_enc.Base64;\r\n var C_algo = C.algo;\r\n var EvpKDF = C_algo.EvpKDF;\r\n\r\n /**\r\n * Abstract base cipher template.\r\n *\r\n * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\r\n * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\r\n * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\r\n * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\r\n */\r\n var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\r\n /**\r\n * Configuration options.\r\n *\r\n * @property {WordArray} iv The IV to use for this operation.\r\n */\r\n cfg: Base.extend(),\r\n\r\n /**\r\n * Creates this cipher in encryption mode.\r\n *\r\n * @param {WordArray} key The key.\r\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n *\r\n * @return {Cipher} A cipher instance.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\r\n */\r\n createEncryptor: function (key, cfg) {\r\n return this.create(this._ENC_XFORM_MODE, key, cfg);\r\n },\r\n\r\n /**\r\n * Creates this cipher in decryption mode.\r\n *\r\n * @param {WordArray} key The key.\r\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n *\r\n * @return {Cipher} A cipher instance.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\r\n */\r\n createDecryptor: function (key, cfg) {\r\n return this.create(this._DEC_XFORM_MODE, key, cfg);\r\n },\r\n\r\n /**\r\n * Initializes a newly created cipher.\r\n *\r\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\r\n * @param {WordArray} key The key.\r\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n *\r\n * @example\r\n *\r\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\r\n */\r\n init: function (xformMode, key, cfg) {\r\n // Apply config defaults\r\n this.cfg = this.cfg.extend(cfg);\r\n\r\n // Store transform mode and key\r\n this._xformMode = xformMode;\r\n this._key = key;\r\n\r\n // Set initial values\r\n this.reset();\r\n },\r\n\r\n /**\r\n * Resets this cipher to its initial state.\r\n *\r\n * @example\r\n *\r\n * cipher.reset();\r\n */\r\n reset: function () {\r\n // Reset data buffer\r\n BufferedBlockAlgorithm.reset.call(this);\r\n\r\n // Perform concrete-cipher logic\r\n this._doReset();\r\n },\r\n\r\n /**\r\n * Adds data to be encrypted or decrypted.\r\n *\r\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\r\n *\r\n * @return {WordArray} The data after processing.\r\n *\r\n * @example\r\n *\r\n * var encrypted = cipher.process('data');\r\n * var encrypted = cipher.process(wordArray);\r\n */\r\n process: function (dataUpdate) {\r\n // Append\r\n this._append(dataUpdate);\r\n\r\n // Process available blocks\r\n return this._process();\r\n },\r\n\r\n /**\r\n * Finalizes the encryption or decryption process.\r\n * Note that the finalize operation is effectively a destructive, read-once operation.\r\n *\r\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\r\n *\r\n * @return {WordArray} The data after final processing.\r\n *\r\n * @example\r\n *\r\n * var encrypted = cipher.finalize();\r\n * var encrypted = cipher.finalize('data');\r\n * var encrypted = cipher.finalize(wordArray);\r\n */\r\n finalize: function (dataUpdate) {\r\n // Final data update\r\n if (dataUpdate) {\r\n this._append(dataUpdate);\r\n }\r\n\r\n // Perform concrete-cipher logic\r\n var finalProcessedData = this._doFinalize();\r\n\r\n return finalProcessedData;\r\n },\r\n\r\n keySize: 128/32,\r\n\r\n ivSize: 128/32,\r\n\r\n _ENC_XFORM_MODE: 1,\r\n\r\n _DEC_XFORM_MODE: 2,\r\n\r\n /**\r\n * Creates shortcut functions to a cipher's object interface.\r\n *\r\n * @param {Cipher} cipher The cipher to create a helper for.\r\n *\r\n * @return {Object} An object with encrypt and decrypt shortcut functions.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\r\n */\r\n _createHelper: (function () {\r\n function selectCipherStrategy(key) {\r\n if (typeof key == 'string') {\r\n return PasswordBasedCipher;\r\n } else {\r\n return SerializableCipher;\r\n }\r\n }\r\n\r\n return function (cipher) {\r\n return {\r\n encrypt: function (message, key, cfg) {\r\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\r\n },\r\n\r\n decrypt: function (ciphertext, key, cfg) {\r\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\r\n }\r\n };\r\n };\r\n }())\r\n });\r\n\r\n /**\r\n * Abstract base stream cipher template.\r\n *\r\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\r\n */\r\n var StreamCipher = C_lib.StreamCipher = Cipher.extend({\r\n _doFinalize: function () {\r\n // Process partial blocks\r\n var finalProcessedBlocks = this._process(!!'flush');\r\n\r\n return finalProcessedBlocks;\r\n },\r\n\r\n blockSize: 1\r\n });\r\n\r\n /**\r\n * Mode namespace.\r\n */\r\n var C_mode = C.mode = {};\r\n\r\n /**\r\n * Abstract base block cipher mode template.\r\n */\r\n var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\r\n /**\r\n * Creates this mode for encryption.\r\n *\r\n * @param {Cipher} cipher A block cipher instance.\r\n * @param {Array} iv The IV words.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\r\n */\r\n createEncryptor: function (cipher, iv) {\r\n return this.Encryptor.create(cipher, iv);\r\n },\r\n\r\n /**\r\n * Creates this mode for decryption.\r\n *\r\n * @param {Cipher} cipher A block cipher instance.\r\n * @param {Array} iv The IV words.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\r\n */\r\n createDecryptor: function (cipher, iv) {\r\n return this.Decryptor.create(cipher, iv);\r\n },\r\n\r\n /**\r\n * Initializes a newly created mode.\r\n *\r\n * @param {Cipher} cipher A block cipher instance.\r\n * @param {Array} iv The IV words.\r\n *\r\n * @example\r\n *\r\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\r\n */\r\n init: function (cipher, iv) {\r\n this._cipher = cipher;\r\n this._iv = iv;\r\n }\r\n });\r\n\r\n /**\r\n * Cipher Block Chaining mode.\r\n */\r\n var CBC = C_mode.CBC = (function () {\r\n /**\r\n * Abstract base CBC mode.\r\n */\r\n var CBC = BlockCipherMode.extend();\r\n\r\n /**\r\n * CBC encryptor.\r\n */\r\n CBC.Encryptor = CBC.extend({\r\n /**\r\n * Processes the data block at offset.\r\n *\r\n * @param {Array} words The data words to operate on.\r\n * @param {number} offset The offset where the block starts.\r\n *\r\n * @example\r\n *\r\n * mode.processBlock(data.words, offset);\r\n */\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher;\r\n var blockSize = cipher.blockSize;\r\n\r\n // XOR and encrypt\r\n xorBlock.call(this, words, offset, blockSize);\r\n cipher.encryptBlock(words, offset);\r\n\r\n // Remember this block to use with next block\r\n this._prevBlock = words.slice(offset, offset + blockSize);\r\n }\r\n });\r\n\r\n /**\r\n * CBC decryptor.\r\n */\r\n CBC.Decryptor = CBC.extend({\r\n /**\r\n * Processes the data block at offset.\r\n *\r\n * @param {Array} words The data words to operate on.\r\n * @param {number} offset The offset where the block starts.\r\n *\r\n * @example\r\n *\r\n * mode.processBlock(data.words, offset);\r\n */\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher;\r\n var blockSize = cipher.blockSize;\r\n\r\n // Remember this block to use with next block\r\n var thisBlock = words.slice(offset, offset + blockSize);\r\n\r\n // Decrypt and XOR\r\n cipher.decryptBlock(words, offset);\r\n xorBlock.call(this, words, offset, blockSize);\r\n\r\n // This block becomes the previous block\r\n this._prevBlock = thisBlock;\r\n }\r\n });\r\n\r\n function xorBlock(words, offset, blockSize) {\r\n // Shortcut\r\n var iv = this._iv;\r\n\r\n // Choose mixing block\r\n if (iv) {\r\n var block = iv;\r\n\r\n // Remove IV for subsequent blocks\r\n this._iv = undefined;\r\n } else {\r\n var block = this._prevBlock;\r\n }\r\n\r\n // XOR blocks\r\n for (var i = 0; i < blockSize; i++) {\r\n words[offset + i] ^= block[i];\r\n }\r\n }\r\n\r\n return CBC;\r\n }());\r\n\r\n /**\r\n * Infinite Garble Extension mode.\r\n */\r\n var IGE = C_mode.IGE = (function () {\r\n /**\r\n * Abstract base IGE mode.\r\n */\r\n var IGE = BlockCipherMode.extend();\r\n\r\n /**\r\n * IGE encryptor.\r\n */\r\n IGE.Encryptor = IGE.extend({\r\n /**\r\n * Processes the data block at offset.\r\n *\r\n * @param {Array} words The data words to operate on.\r\n * @param {number} offset The offset where the block starts.\r\n *\r\n * @example\r\n *\r\n * mode.processBlock(data.words, offset);\r\n */\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher;\r\n var blockSize = cipher.blockSize;\r\n\r\n if (this._ivp === undefined) {\r\n this._ivp = this._iv.slice(0, blockSize);\r\n this._iv2p = this._iv.slice(blockSize, blockSize + blockSize);\r\n }\r\n\r\n\r\n // Remember this block to use with next block\r\n var nextIv2p = words.slice(offset, offset + blockSize);\r\n\r\n // XOR with previous ciphertext\r\n xorBlock(words, this._ivp, offset, blockSize);\r\n\r\n // Block cipher\r\n cipher.encryptBlock(words, offset);\r\n\r\n // XOR with previous plaintext\r\n xorBlock(words, this._iv2p, offset, blockSize);\r\n\r\n this._ivp = words.slice(offset, offset + blockSize);\r\n this._iv2p = nextIv2p;\r\n }\r\n });\r\n\r\n /**\r\n * IGE decryptor.\r\n */\r\n IGE.Decryptor = IGE.extend({\r\n /**\r\n * Processes the data block at offset.\r\n *\r\n * @param {Array} words The data words to operate on.\r\n * @param {number} offset The offset where the block starts.\r\n *\r\n * @example\r\n *\r\n * mode.processBlock(data.words, offset);\r\n */\r\n processBlock: function (words, offset) {\r\n // Shortcuts\r\n var cipher = this._cipher;\r\n var blockSize = cipher.blockSize;\r\n\r\n if (this._ivp === undefined) {\r\n this._ivp = this._iv.slice(0, blockSize);\r\n this._iv2p = this._iv.slice(blockSize, 2 * blockSize);\r\n }\r\n\r\n // Remember this block to use with next block\r\n var nextIvp = words.slice(offset, offset + blockSize);\r\n\r\n // XOR with previous ciphertext\r\n xorBlock(words, this._iv2p, offset, blockSize);\r\n\r\n // Block cipher\r\n cipher.decryptBlock(words, offset);\r\n\r\n // XOR with previous plaintext\r\n xorBlock(words, this._ivp, offset, blockSize);\r\n\r\n this._ivp = nextIvp;\r\n this._iv2p = words.slice(offset, offset + blockSize);\r\n }\r\n });\r\n\r\n function xorBlock(words, block, offset, blockSize) {\r\n for (var i = 0; i < blockSize; i++) {\r\n words[offset + i] ^= block[i];\r\n }\r\n }\r\n\r\n return IGE;\r\n }());\r\n\r\n /**\r\n * Padding namespace.\r\n */\r\n var C_pad = C.pad = {};\r\n\r\n /**\r\n * PKCS #5/7 padding strategy.\r\n */\r\n var Pkcs7 = C_pad.Pkcs7 = {\r\n /**\r\n * Pads data using the algorithm defined in PKCS #5/7.\r\n *\r\n * @param {WordArray} data The data to pad.\r\n * @param {number} blockSize The multiple that the data should be padded to.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\r\n */\r\n pad: function (data, blockSize) {\r\n // Shortcut\r\n var blockSizeBytes = blockSize * 4;\r\n\r\n // Count padding bytes\r\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\r\n\r\n // Create padding word\r\n var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\r\n\r\n // Create padding\r\n var paddingWords = [];\r\n for (var i = 0; i < nPaddingBytes; i += 4) {\r\n paddingWords.push(paddingWord);\r\n }\r\n var padding = WordArray.create(paddingWords, nPaddingBytes);\r\n\r\n // Add padding\r\n data.concat(padding);\r\n },\r\n\r\n /**\r\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\r\n *\r\n * @param {WordArray} data The data to unpad.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\r\n */\r\n unpad: function (data) {\r\n // Get number of padding bytes from last byte\r\n var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\r\n\r\n // Remove padding\r\n data.sigBytes -= nPaddingBytes;\r\n }\r\n };\r\n\r\n var NoPadding = C_pad.NoPadding = {\r\n pad: function () {\r\n },\r\n\r\n unpad: function () {\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Abstract base block cipher template.\r\n *\r\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\r\n */\r\n var BlockCipher = C_lib.BlockCipher = Cipher.extend({\r\n /**\r\n * Configuration options.\r\n *\r\n * @property {Mode} mode The block mode to use. Default: CBC\r\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\r\n */\r\n cfg: Cipher.cfg.extend({\r\n mode: CBC,\r\n padding: Pkcs7\r\n }),\r\n\r\n reset: function () {\r\n // Reset cipher\r\n Cipher.reset.call(this);\r\n\r\n // Shortcuts\r\n var cfg = this.cfg;\r\n var iv = cfg.iv;\r\n var mode = cfg.mode;\r\n\r\n // Reset block mode\r\n if (this._xformMode == this._ENC_XFORM_MODE) {\r\n var modeCreator = mode.createEncryptor;\r\n } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\r\n var modeCreator = mode.createDecryptor;\r\n\r\n // Keep at least one block in the buffer for unpadding\r\n this._minBufferSize = 1;\r\n }\r\n this._mode = modeCreator.call(mode, this, iv && iv.words);\r\n },\r\n\r\n _doProcessBlock: function (words, offset) {\r\n this._mode.processBlock(words, offset);\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcut\r\n var padding = this.cfg.padding;\r\n\r\n // Finalize\r\n if (this._xformMode == this._ENC_XFORM_MODE) {\r\n // Pad data\r\n padding.pad(this._data, this.blockSize);\r\n\r\n // Process final blocks\r\n var finalProcessedBlocks = this._process(!!'flush');\r\n } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\r\n // Process final blocks\r\n var finalProcessedBlocks = this._process(!!'flush');\r\n\r\n // Unpad data\r\n padding.unpad(finalProcessedBlocks);\r\n }\r\n\r\n return finalProcessedBlocks;\r\n },\r\n\r\n blockSize: 128/32\r\n });\r\n\r\n /**\r\n * A collection of cipher parameters.\r\n *\r\n * @property {WordArray} ciphertext The raw ciphertext.\r\n * @property {WordArray} key The key to this ciphertext.\r\n * @property {WordArray} iv The IV used in the ciphering operation.\r\n * @property {WordArray} salt The salt used with a key derivation function.\r\n * @property {Cipher} algorithm The cipher algorithm.\r\n * @property {Mode} mode The block mode used in the ciphering operation.\r\n * @property {Padding} padding The padding scheme used in the ciphering operation.\r\n * @property {number} blockSize The block size of the cipher.\r\n * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\r\n */\r\n var CipherParams = C_lib.CipherParams = Base.extend({\r\n /**\r\n * Initializes a newly created cipher params object.\r\n *\r\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\r\n *\r\n * @example\r\n *\r\n * var cipherParams = CryptoJS.lib.CipherParams.create({\r\n * ciphertext: ciphertextWordArray,\r\n * key: keyWordArray,\r\n * iv: ivWordArray,\r\n * salt: saltWordArray,\r\n * algorithm: CryptoJS.algo.AES,\r\n * mode: CryptoJS.mode.CBC,\r\n * padding: CryptoJS.pad.PKCS7,\r\n * blockSize: 4,\r\n * formatter: CryptoJS.format.OpenSSL\r\n * });\r\n */\r\n init: function (cipherParams) {\r\n this.mixIn(cipherParams);\r\n },\r\n\r\n /**\r\n * Converts this cipher params object to a string.\r\n *\r\n * @param {Format} formatter (Optional) The formatting strategy to use.\r\n *\r\n * @return {string} The stringified cipher params.\r\n *\r\n * @throws Error If neither the formatter nor the default formatter is set.\r\n *\r\n * @example\r\n *\r\n * var string = cipherParams + '';\r\n * var string = cipherParams.toString();\r\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\r\n */\r\n toString: function (formatter) {\r\n return (formatter || this.formatter).stringify(this);\r\n }\r\n });\r\n\r\n /**\r\n * Format namespace.\r\n */\r\n var C_format = C.format = {};\r\n\r\n /**\r\n * OpenSSL formatting strategy.\r\n */\r\n var OpenSSLFormatter = C_format.OpenSSL = {\r\n /**\r\n * Converts a cipher params object to an OpenSSL-compatible string.\r\n *\r\n * @param {CipherParams} cipherParams The cipher params object.\r\n *\r\n * @return {string} The OpenSSL-compatible string.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\r\n */\r\n stringify: function (cipherParams) {\r\n // Shortcuts\r\n var ciphertext = cipherParams.ciphertext;\r\n var salt = cipherParams.salt;\r\n\r\n // Format\r\n if (salt) {\r\n var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\r\n } else {\r\n var wordArray = ciphertext;\r\n }\r\n\r\n return wordArray.toString(Base64);\r\n },\r\n\r\n /**\r\n * Converts an OpenSSL-compatible string to a cipher params object.\r\n *\r\n * @param {string} openSSLStr The OpenSSL-compatible string.\r\n *\r\n * @return {CipherParams} The cipher params object.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\r\n */\r\n parse: function (openSSLStr) {\r\n // Parse base64\r\n var ciphertext = Base64.parse(openSSLStr);\r\n\r\n // Shortcut\r\n var ciphertextWords = ciphertext.words;\r\n\r\n // Test for salt\r\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\r\n // Extract salt\r\n var salt = WordArray.create(ciphertextWords.slice(2, 4));\r\n\r\n // Remove salt from ciphertext\r\n ciphertextWords.splice(0, 4);\r\n ciphertext.sigBytes -= 16;\r\n }\r\n\r\n return CipherParams.create({ ciphertext: ciphertext, salt: salt });\r\n }\r\n };\r\n\r\n /**\r\n * A cipher wrapper that returns ciphertext as a serializable cipher params object.\r\n */\r\n var SerializableCipher = C_lib.SerializableCipher = Base.extend({\r\n /**\r\n * Configuration options.\r\n *\r\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\r\n */\r\n cfg: Base.extend({\r\n format: OpenSSLFormatter\r\n }),\r\n\r\n /**\r\n * Encrypts a message.\r\n *\r\n * @param {Cipher} cipher The cipher algorithm to use.\r\n * @param {WordArray|string} message The message to encrypt.\r\n * @param {WordArray} key The key.\r\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n *\r\n * @return {CipherParams} A cipher params object.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\r\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\r\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\r\n */\r\n encrypt: function (cipher, message, key, cfg) {\r\n // Apply config defaults\r\n cfg = this.cfg.extend(cfg);\r\n\r\n // Encrypt\r\n var encryptor = cipher.createEncryptor(key, cfg);\r\n var ciphertext = encryptor.finalize(message);\r\n\r\n // Shortcut\r\n var cipherCfg = encryptor.cfg;\r\n\r\n // Create and return serializable cipher params\r\n return CipherParams.create({\r\n ciphertext: ciphertext,\r\n key: key,\r\n iv: cipherCfg.iv,\r\n algorithm: cipher,\r\n mode: cipherCfg.mode,\r\n padding: cipherCfg.padding,\r\n blockSize: cipher.blockSize,\r\n formatter: cfg.format\r\n });\r\n },\r\n\r\n /**\r\n * Decrypts serialized ciphertext.\r\n *\r\n * @param {Cipher} cipher The cipher algorithm to use.\r\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\r\n * @param {WordArray} key The key.\r\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n *\r\n * @return {WordArray} The plaintext.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\r\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\r\n */\r\n decrypt: function (cipher, ciphertext, key, cfg) {\r\n // Apply config defaults\r\n cfg = this.cfg.extend(cfg);\r\n\r\n // Convert string to CipherParams\r\n ciphertext = this._parse(ciphertext, cfg.format);\r\n\r\n // Decrypt\r\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\r\n\r\n return plaintext;\r\n },\r\n\r\n /**\r\n * Converts serialized ciphertext to CipherParams,\r\n * else assumed CipherParams already and returns ciphertext unchanged.\r\n *\r\n * @param {CipherParams|string} ciphertext The ciphertext.\r\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\r\n *\r\n * @return {CipherParams} The unserialized ciphertext.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\r\n */\r\n _parse: function (ciphertext, format) {\r\n if (typeof ciphertext == 'string') {\r\n return format.parse(ciphertext, this);\r\n } else {\r\n return ciphertext;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Key derivation function namespace.\r\n */\r\n var C_kdf = C.kdf = {};\r\n\r\n /**\r\n * OpenSSL key derivation function.\r\n */\r\n var OpenSSLKdf = C_kdf.OpenSSL = {\r\n /**\r\n * Derives a key and IV from a password.\r\n *\r\n * @param {string} password The password to derive from.\r\n * @param {number} keySize The size in words of the key to generate.\r\n * @param {number} ivSize The size in words of the IV to generate.\r\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\r\n *\r\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\r\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\r\n */\r\n execute: function (password, keySize, ivSize, salt) {\r\n // Generate random salt\r\n if (!salt) {\r\n salt = WordArray.random(64/8);\r\n }\r\n\r\n // Derive key and IV\r\n var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\r\n\r\n // Separate key and IV\r\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\r\n key.sigBytes = keySize * 4;\r\n\r\n // Return params\r\n return CipherParams.create({ key: key, iv: iv, salt: salt });\r\n }\r\n };\r\n\r\n /**\r\n * A serializable cipher wrapper that derives the key from a password,\r\n * and returns ciphertext as a serializable cipher params object.\r\n */\r\n var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\r\n /**\r\n * Configuration options.\r\n *\r\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\r\n */\r\n cfg: SerializableCipher.cfg.extend({\r\n kdf: OpenSSLKdf\r\n }),\r\n\r\n /**\r\n * Encrypts a message using a password.\r\n *\r\n * @param {Cipher} cipher The cipher algorithm to use.\r\n * @param {WordArray|string} message The message to encrypt.\r\n * @param {string} password The password.\r\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n *\r\n * @return {CipherParams} A cipher params object.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\r\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\r\n */\r\n encrypt: function (cipher, message, password, cfg) {\r\n // Apply config defaults\r\n cfg = this.cfg.extend(cfg);\r\n\r\n // Derive key and other params\r\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\r\n\r\n // Add IV to config\r\n cfg.iv = derivedParams.iv;\r\n\r\n // Encrypt\r\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\r\n\r\n // Mix in derived params\r\n ciphertext.mixIn(derivedParams);\r\n\r\n return ciphertext;\r\n },\r\n\r\n /**\r\n * Decrypts serialized ciphertext using a password.\r\n *\r\n * @param {Cipher} cipher The cipher algorithm to use.\r\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\r\n * @param {string} password The password.\r\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\r\n *\r\n * @return {WordArray} The plaintext.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\r\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\r\n */\r\n decrypt: function (cipher, ciphertext, password, cfg) {\r\n // Apply config defaults\r\n cfg = this.cfg.extend(cfg);\r\n\r\n // Convert string to CipherParams\r\n ciphertext = this._parse(ciphertext, cfg.format);\r\n\r\n // Derive key and other params\r\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\r\n\r\n // Add IV to config\r\n cfg.iv = derivedParams.iv;\r\n\r\n // Decrypt\r\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\r\n\r\n return plaintext;\r\n }\r\n });\r\n}());\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@goodmind/node-cryptojs-aes/lib/cipher-core.js\n// module id = 120\n// module chunks = 0","var CryptoJS = require('./core').CryptoJS;\n\n/*\nCryptoJS v3.1.2\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n\n /**\n * Base64 encoding strategy.\n */\n var Base64 = C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map;\n\n // Clamp excess bits\n wordArray.clamp();\n\n // Convert\n var base64Chars = [];\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n }\n }\n\n // Add padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n\n return base64Chars.join('');\n },\n\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */\n parse: function (base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n\n // Ignore padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n if (paddingIndex != -1) {\n base64StrLength = paddingIndex;\n }\n }\n\n // Convert\n var words = [];\n var nBytes = 0;\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = map.indexOf(base64Str.charAt(i - 1)) << ((i % 4) * 2);\n var bits2 = map.indexOf(base64Str.charAt(i)) >>> (6 - (i % 4) * 2);\n words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);\n nBytes++;\n }\n }\n\n return WordArray.create(words, nBytes);\n },\n\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n };\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@goodmind/node-cryptojs-aes/lib/enc-base64.js\n// module id = 121\n// module chunks = 0","var CryptoJS = require('./core').CryptoJS;\r\n\r\n/*\nCryptoJS v3.1.2\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function () {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var Base = C_lib.Base;\r\n var WordArray = C_lib.WordArray;\r\n var C_algo = C.algo;\r\n var MD5 = C_algo.MD5;\r\n\r\n /**\r\n * This key derivation function is meant to conform with EVP_BytesToKey.\r\n * www.openssl.org/docs/crypto/EVP_BytesToKey.html\r\n */\r\n var EvpKDF = C_algo.EvpKDF = Base.extend({\r\n /**\r\n * Configuration options.\r\n *\r\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\r\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\r\n * @property {number} iterations The number of iterations to perform. Default: 1\r\n */\r\n cfg: Base.extend({\r\n keySize: 128/32,\r\n hasher: MD5,\r\n iterations: 1\r\n }),\r\n\r\n /**\r\n * Initializes a newly created key derivation function.\r\n *\r\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\r\n *\r\n * @example\r\n *\r\n * var kdf = CryptoJS.algo.EvpKDF.create();\r\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\r\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\r\n */\r\n init: function (cfg) {\r\n this.cfg = this.cfg.extend(cfg);\r\n },\r\n\r\n /**\r\n * Derives a key from a password.\r\n *\r\n * @param {WordArray|string} password The password.\r\n * @param {WordArray|string} salt A salt.\r\n *\r\n * @return {WordArray} The derived key.\r\n *\r\n * @example\r\n *\r\n * var key = kdf.compute(password, salt);\r\n */\r\n compute: function (password, salt) {\r\n // Shortcut\r\n var cfg = this.cfg;\r\n\r\n // Init hasher\r\n var hasher = cfg.hasher.create();\r\n\r\n // Initial values\r\n var derivedKey = WordArray.create();\r\n\r\n // Shortcuts\r\n var derivedKeyWords = derivedKey.words;\r\n var keySize = cfg.keySize;\r\n var iterations = cfg.iterations;\r\n\r\n // Generate key\r\n while (derivedKeyWords.length < keySize) {\r\n if (block) {\r\n hasher.update(block);\r\n }\r\n var block = hasher.update(password).finalize(salt);\r\n hasher.reset();\r\n\r\n // Iterations\r\n for (var i = 1; i < iterations; i++) {\r\n block = hasher.finalize(block);\r\n hasher.reset();\r\n }\r\n\r\n derivedKey.concat(block);\r\n }\r\n derivedKey.sigBytes = keySize * 4;\r\n\r\n return derivedKey;\r\n }\r\n });\r\n\r\n /**\r\n * Derives a key from a password.\r\n *\r\n * @param {WordArray|string} password The password.\r\n * @param {WordArray|string} salt A salt.\r\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\r\n *\r\n * @return {WordArray} The derived key.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var key = CryptoJS.EvpKDF(password, salt);\r\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\r\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\r\n */\r\n C.EvpKDF = function (password, salt, cfg) {\r\n return EvpKDF.create(cfg).compute(password, salt);\r\n };\r\n}());\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@goodmind/node-cryptojs-aes/lib/evpkdf.js\n// module id = 122\n// module chunks = 0","var CryptoJS = require('./core').CryptoJS;\n\n// create custom json serialization format\nvar JsonFormatter = {\n\tstringify: function (cipherParams) {\n\t\t// create json object with ciphertext\n\t\tvar jsonObj = {\n\t\t\tct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64)\n\t\t};\n\t\t\n\t\t// optionally add iv and salt\n\t\tif (cipherParams.iv) {\n\t\t\tjsonObj.iv = cipherParams.iv.toString();\n\t\t}\n\t\t\n\t\tif (cipherParams.salt) {\n\t\t\tjsonObj.s = cipherParams.salt.toString();\n\t\t}\n\n\t\t// stringify json object\n\t\treturn JSON.stringify(jsonObj)\n\t},\n\n\tparse: function (jsonStr) {\n\t\t// parse json string\n\t\tvar jsonObj = JSON.parse(jsonStr);\n\t\t\n\t\t// extract ciphertext from json object, and create cipher params object\n\t\tvar cipherParams = CryptoJS.lib.CipherParams.create({\n\t\t\tciphertext: CryptoJS.enc.Base64.parse(jsonObj.ct)\n\t\t});\n\t\t\n\t\t// optionally extract iv and salt\n\t\tif (jsonObj.iv) {\n\t\t\tcipherParams.iv = CryptoJS.enc.Hex.parse(jsonObj.iv);\n\t\t}\n \n\t\tif (jsonObj.s) {\n\t\t\tcipherParams.salt = CryptoJS.enc.Hex.parse(jsonObj.s);\n\t\t}\n\t\t\n\t\treturn cipherParams;\n\t}\n};\n\nexports.JsonFormatter = JsonFormatter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@goodmind/node-cryptojs-aes/lib/jsonformatter.js\n// module id = 123\n// module chunks = 0","var CryptoJS = require('./core').CryptoJS;\r\n\r\n/*\nCryptoJS v3.1.2\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n(function (Math) {\r\n // Shortcuts\r\n var C = CryptoJS;\r\n var C_lib = C.lib;\r\n var WordArray = C_lib.WordArray;\r\n var Hasher = C_lib.Hasher;\r\n var C_algo = C.algo;\r\n\r\n // Constants table\r\n var T = [];\r\n\r\n // Compute constants\r\n (function () {\r\n for (var i = 0; i < 64; i++) {\r\n T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\r\n }\r\n }());\r\n\r\n /**\r\n * MD5 hash algorithm.\r\n */\r\n var MD5 = C_algo.MD5 = Hasher.extend({\r\n _doReset: function () {\r\n this._hash = new WordArray.init([\r\n 0x67452301, 0xefcdab89,\r\n 0x98badcfe, 0x10325476\r\n ]);\r\n },\r\n\r\n _doProcessBlock: function (M, offset) {\r\n // Swap endian\r\n for (var i = 0; i < 16; i++) {\r\n // Shortcuts\r\n var offset_i = offset + i;\r\n var M_offset_i = M[offset_i];\r\n\r\n M[offset_i] = (\r\n (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\r\n (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\r\n );\r\n }\r\n\r\n // Shortcuts\r\n var H = this._hash.words;\r\n\r\n var M_offset_0 = M[offset + 0];\r\n var M_offset_1 = M[offset + 1];\r\n var M_offset_2 = M[offset + 2];\r\n var M_offset_3 = M[offset + 3];\r\n var M_offset_4 = M[offset + 4];\r\n var M_offset_5 = M[offset + 5];\r\n var M_offset_6 = M[offset + 6];\r\n var M_offset_7 = M[offset + 7];\r\n var M_offset_8 = M[offset + 8];\r\n var M_offset_9 = M[offset + 9];\r\n var M_offset_10 = M[offset + 10];\r\n var M_offset_11 = M[offset + 11];\r\n var M_offset_12 = M[offset + 12];\r\n var M_offset_13 = M[offset + 13];\r\n var M_offset_14 = M[offset + 14];\r\n var M_offset_15 = M[offset + 15];\r\n\r\n // Working varialbes\r\n var a = H[0];\r\n var b = H[1];\r\n var c = H[2];\r\n var d = H[3];\r\n\r\n // Computation\r\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\r\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\r\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\r\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\r\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\r\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\r\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\r\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\r\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\r\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\r\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\r\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\r\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\r\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\r\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\r\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\r\n\r\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\r\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\r\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\r\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\r\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\r\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\r\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\r\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\r\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\r\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\r\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\r\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\r\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\r\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\r\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\r\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\r\n\r\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\r\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\r\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\r\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\r\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\r\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\r\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\r\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\r\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\r\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\r\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\r\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\r\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\r\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\r\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\r\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\r\n\r\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\r\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\r\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\r\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\r\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\r\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\r\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\r\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\r\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\r\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\r\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\r\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\r\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\r\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\r\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\r\n b = II(b, c, d, a, M_offset_9, 21, T[63]);\r\n\r\n // Intermediate hash value\r\n H[0] = (H[0] + a) | 0;\r\n H[1] = (H[1] + b) | 0;\r\n H[2] = (H[2] + c) | 0;\r\n H[3] = (H[3] + d) | 0;\r\n },\r\n\r\n _doFinalize: function () {\r\n // Shortcuts\r\n var data = this._data;\r\n var dataWords = data.words;\r\n\r\n var nBitsTotal = this._nDataBytes * 8;\r\n var nBitsLeft = data.sigBytes * 8;\r\n\r\n // Add padding\r\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\r\n\r\n var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\r\n var nBitsTotalL = nBitsTotal;\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\r\n (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\r\n (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\r\n );\r\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\r\n (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\r\n (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\r\n );\r\n\r\n data.sigBytes = (dataWords.length + 1) * 4;\r\n\r\n // Hash final blocks\r\n this._process();\r\n\r\n // Shortcuts\r\n var hash = this._hash;\r\n var H = hash.words;\r\n\r\n // Swap endian\r\n for (var i = 0; i < 4; i++) {\r\n // Shortcut\r\n var H_i = H[i];\r\n\r\n H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\r\n (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\r\n }\r\n\r\n // Return final computed hash\r\n return hash;\r\n },\r\n\r\n clone: function () {\r\n var clone = Hasher.clone.call(this);\r\n clone._hash = this._hash.clone();\r\n\r\n return clone;\r\n }\r\n });\r\n\r\n function FF(a, b, c, d, x, s, t) {\r\n var n = a + ((b & c) | (~b & d)) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n function GG(a, b, c, d, x, s, t) {\r\n var n = a + ((b & d) | (c & ~d)) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n function HH(a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n function II(a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + x + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n }\r\n\r\n /**\r\n * Shortcut function to the hasher's object interface.\r\n *\r\n * @param {WordArray|string} message The message to hash.\r\n *\r\n * @return {WordArray} The hash.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var hash = CryptoJS.MD5('message');\r\n * var hash = CryptoJS.MD5(wordArray);\r\n */\r\n C.MD5 = Hasher._createHelper(MD5);\r\n\r\n /**\r\n * Shortcut function to the HMAC's object interface.\r\n *\r\n * @param {WordArray|string} message The message to hash.\r\n * @param {WordArray|string} key The secret key.\r\n *\r\n * @return {WordArray} The HMAC.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var hmac = CryptoJS.HmacMD5(message, key);\r\n */\r\n C.HmacMD5 = Hasher._createHmacHelper(MD5);\r\n}(Math));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@goodmind/node-cryptojs-aes/lib/md5.js\n// module id = 124\n// module chunks = 0","var CryptoJS = require('./core').CryptoJS;\n\n(function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Initialization and round constants tables\n var H = [];\n var K = [];\n\n // Compute constants\n (function () {\n function isPrime(n) {\n var sqrtN = Math.sqrt(n);\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n % factor)) {\n return false;\n }\n }\n\n return true;\n }\n\n function getFractionalBits(n) {\n return ((n - (n | 0)) * 0x100000000) | 0;\n }\n\n var n = 2;\n var nPrime = 0;\n while (nPrime < 64) {\n if (isPrime(n)) {\n if (nPrime < 8) {\n H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n }\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n nPrime++;\n }\n\n n++;\n }\n }());\n\n // Reusable object\n var W = [];\n\n /**\n * SHA-256 hash algorithm.\n */\n var SHA256 = C_algo.SHA256 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init(H.slice(0));\n },\n\n _doProcessBlock: function (M, offset) {\n // Shortcut\n var H = this._hash.words;\n\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n var f = H[5];\n var g = H[6];\n var h = H[7];\n\n // Computation\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n ((gamma0x << 14) | (gamma0x >>> 18)) ^\n (gamma0x >>> 3);\n\n var gamma1x = W[i - 2];\n var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n ((gamma1x << 13) | (gamma1x >>> 19)) ^\n (gamma1x >>> 10);\n\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n\n var ch = (e & f) ^ (~e & g);\n var maj = (a & b) ^ (a & c) ^ (b & c);\n\n var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n // Intermediate hash value\n H[0] = (H[0] + a) | 0;\n H[1] = (H[1] + b) | 0;\n H[2] = (H[2] + c) | 0;\n H[3] = (H[3] + d) | 0;\n H[4] = (H[4] + e) | 0;\n H[5] = (H[5] + f) | 0;\n H[6] = (H[6] + g) | 0;\n H[7] = (H[7] + h) | 0;\n },\n\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n\n // Hash final blocks\n this._process();\n\n // Return final computed hash\n return this._hash;\n },\n\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n\n return clone;\n }\n });\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */\n C.SHA256 = Hasher._createHelper(SHA256);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n}(Math));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/@goodmind/node-cryptojs-aes/lib/sha256.js\n// module id = 125\n// module chunks = 0","import { SecureRandom } from 'jsbn'\r\n\r\nexport const random = new SecureRandom()\r\n\r\nexport default random\n\n\n// WEBPACK FOOTER //\n// ./service/secure-random.js","////////////////////////////////////////////////////////////////////////////////////////\r\n// Big Integer Library v. 5.5\r\n// Created 2000, last modified 2013\r\n// Leemon Baird\r\n// www.leemon.com\r\n//\r\n// Version history:\r\n// v 5.5 17 Mar 2013\r\n// - two lines of a form like \"if (x<0) x+=n\" had the \"if\" changed to \"while\" to\r\n// handle the case when x<-n. (Thanks to James Ansell for finding that bug)\r\n// v 5.4 3 Oct 2009\r\n// - added \"var i\" to greaterShift() so i is not global. (Thanks to PŽter Szab— for finding that bug)\r\n//\r\n// v 5.3 21 Sep 2009\r\n// - added randProbPrime(k) for probable primes\r\n// - unrolled loop in mont_ (slightly faster)\r\n// - millerRabin now takes a bigInt parameter rather than an int\r\n//\r\n// v 5.2 15 Sep 2009\r\n// - fixed capitalization in call to int2bigInt in randBigInt\r\n// (thanks to Emili Evripidou, Reinhold Behringer, and Samuel Macaleese for finding that bug)\r\n//\r\n// v 5.1 8 Oct 2007\r\n// - renamed inverseModInt_ to inverseModInt since it doesn't change its parameters\r\n// - added functions GCD and randBigInt, which call GCD_ and randBigInt_\r\n// - fixed a bug found by Rob Visser (see comment with his name below)\r\n// - improved comments\r\n//\r\n// This file is public domain. You can use it for any purpose without restriction.\r\n// I do not guarantee that it is correct, so use it at your own risk. If you use\r\n// it for something interesting, I'd appreciate hearing about it. If you find\r\n// any bugs or make any improvements, I'd appreciate hearing about those too.\r\n// It would also be nice if my name and URL were left in the comments. But none\r\n// of that is required.\r\n//\r\n// This code defines a bigInt library for arbitrary-precision integers.\r\n// A bigInt is an array of integers storing the value in chunks of bpe bits,\r\n// little endian (buff[0] is the least significant word).\r\n// Negative bigInts are stored two's complement. Almost all the functions treat\r\n// bigInts as nonnegative. The few that view them as two's complement say so\r\n// in their comments. Some functions assume their parameters have at least one\r\n// leading zero element. Functions with an underscore at the end of the name put\r\n// their answer into one of the arrays passed in, and have unpredictable behavior\r\n// in case of overflow, so the caller must make sure the arrays are big enough to\r\n// hold the answer. But the average user should never have to call any of the\r\n// underscored functions. Each important underscored function has a wrapper function\r\n// of the same name without the underscore that takes care of the details for you.\r\n// For each underscored function where a parameter is modified, that same variable\r\n// must not be used as another argument too. So, you cannot square x by doing\r\n// multMod_(x,x,n). You must use squareMod_(x,n) instead, or do y=dup(x); multMod_(x,y,n).\r\n// Or simply use the multMod(x,x,n) function without the underscore, where\r\n// such issues never arise, because non-underscored functions never change\r\n// their parameters; they always allocate new memory for the answer that is returned.\r\n//\r\n// These functions are designed to avoid frequent dynamic memory allocation in the inner loop.\r\n// For most functions, if it needs a BigInt as a local variable it will actually use\r\n// a global, and will only allocate to it only when it's not the right size. This ensures\r\n// that when a function is called repeatedly with same-sized parameters, it only allocates\r\n// memory on the first call.\r\n//\r\n// Note that for cryptographic purposes, the calls to Math.random() must\r\n// be replaced with calls to a better pseudorandom number generator.\r\n//\r\n// In the following, \"bigInt\" means a bigInt with at least one leading zero element,\r\n// and \"integer\" means a nonnegative integer less than radix. In some cases, integer\r\n// can be negative. Negative bigInts are 2s complement.\r\n//\r\n// The following functions do not modify their inputs.\r\n// Those returning a bigInt, string, or Array will dynamically allocate memory for that value.\r\n// Those returning a boolean will return the integer 0 (false) or 1 (true).\r\n// Those returning boolean or int will not allocate memory except possibly on the first\r\n// time they're called with a given parameter size.\r\n//\r\n// bigInt add(x,y) //return (x+y) for bigInts x and y.\r\n// bigInt addInt(x,n) //return (x+n) where x is a bigInt and n is an integer.\r\n// string bigInt2str(x,base) //return a string form of bigInt x in a given base, with 2 <= base <= 95\r\n// int bitSize(x) //return how many bits long the bigInt x is, not counting leading zeros\r\n// bigInt dup(x) //return a copy of bigInt x\r\n// boolean equals(x,y) //is the bigInt x equal to the bigint y?\r\n// boolean equalsInt(x,y) //is bigint x equal to integer y?\r\n// bigInt expand(x,n) //return a copy of x with at least n elements, adding leading zeros if needed\r\n// Array findPrimes(n) //return array of all primes less than integer n\r\n// bigInt GCD(x,y) //return greatest common divisor of bigInts x and y (each with same number of elements).\r\n// boolean greater(x,y) //is x>y? (x and y are nonnegative bigInts)\r\n// boolean greaterShift(x,y,shift)//is (x <<(shift*bpe)) > y?\r\n// bigInt int2bigInt(t,n,m) //return a bigInt equal to integer t, with at least n bits and m array elements\r\n// bigInt inverseMod(x,n) //return (x**(-1) mod n) for bigInts x and n. If no inverse exists, it returns null\r\n// int inverseModInt(x,n) //return x**(-1) mod n, for integers x and n. Return 0 if there is no inverse\r\n// boolean isZero(x) //is the bigInt x equal to zero?\r\n// boolean millerRabin(x,b) //does one round of Miller-Rabin base integer b say that bigInt x is possibly prime? (b is bigInt, 1<b<x)\r\n// boolean millerRabinInt(x,b) //does one round of Miller-Rabin base integer b say that bigInt x is possibly prime? (b is int, 1<b<x)\r\n// bigInt mod(x,n) //return a new bigInt equal to (x mod n) for bigInts x and n.\r\n// int modInt(x,n) //return x mod n for bigInt x and integer n.\r\n// bigInt mult(x,y) //return x*y for bigInts x and y. This is faster when y<x.\r\n// bigInt multMod(x,y,n) //return (x*y mod n) for bigInts x,y,n. For greater speed, let y<x.\r\n// boolean negative(x) //is bigInt x negative?\r\n// bigInt powMod(x,y,n) //return (x**y mod n) where x,y,n are bigInts and ** is exponentiation. 0**0=1. Faster for odd n.\r\n// bigInt randBigInt(n,s) //return an n-bit random BigInt (n>=1). If s=1, then the most significant of those n bits is set to 1.\r\n// bigInt randTruePrime(k) //return a new, random, k-bit, true prime bigInt using Maurer's algorithm.\r\n// bigInt randProbPrime(k) //return a new, random, k-bit, probable prime bigInt (probability it's composite less than 2^-80).\r\n// bigInt str2bigInt(s,b,n,m) //return a bigInt for number represented in string s in base b with at least n bits and m array elements\r\n// bigInt sub(x,y) //return (x-y) for bigInts x and y. Negative answers will be 2s complement\r\n// bigInt trim(x,k) //return a copy of x with exactly k leading zero elements\r\n//\r\n//\r\n// The following functions each have a non-underscored version, which most users should call instead.\r\n// These functions each write to a single parameter, and the caller is responsible for ensuring the array\r\n// passed in is large enough to hold the result.\r\n//\r\n// void addInt_(x,n) //do x=x+n where x is a bigInt and n is an integer\r\n// void add_(x,y) //do x=x+y for bigInts x and y\r\n// void copy_(x,y) //do x=y on bigInts x and y\r\n// void copyInt_(x,n) //do x=n on bigInt x and integer n\r\n// void GCD_(x,y) //set x to the greatest common divisor of bigInts x and y, (y is destroyed). (This never overflows its array).\r\n// boolean inverseMod_(x,n) //do x=x**(-1) mod n, for bigInts x and n. Returns 1 (0) if inverse does (doesn't) exist\r\n// void mod_(x,n) //do x=x mod n for bigInts x and n. (This never overflows its array).\r\n// void mult_(x,y) //do x=x*y for bigInts x and y.\r\n// void multMod_(x,y,n) //do x=x*y mod n for bigInts x,y,n.\r\n// void powMod_(x,y,n) //do x=x**y mod n, where x,y,n are bigInts (n is odd) and ** is exponentiation. 0**0=1.\r\n// void randBigInt_(b,n,s) //do b = an n-bit random BigInt. if s=1, then nth bit (most significant bit) is set to 1. n>=1.\r\n// void randTruePrime_(ans,k) //do ans = a random k-bit true random prime (not just probable prime) with 1 in the msb.\r\n// void sub_(x,y) //do x=x-y for bigInts x and y. Negative answers will be 2s complement.\r\n//\r\n// The following functions do NOT have a non-underscored version.\r\n// They each write a bigInt result to one or more parameters. The caller is responsible for\r\n// ensuring the arrays passed in are large enough to hold the results.\r\n//\r\n// void addShift_(x,y,ys) //do x=x+(y<<(ys*bpe))\r\n// void carry_(x) //do carries and borrows so each element of the bigInt x fits in bpe bits.\r\n// void divide_(x,y,q,r) //divide x by y giving quotient q and remainder r\r\n// int divInt_(x,n) //do x=floor(x/n) for bigInt x and integer n, and return the remainder. (This never overflows its array).\r\n// int eGCD_(x,y,d,a,b) //sets a,b,d to positive bigInts such that d = GCD_(x,y) = a*x-b*y\r\n// void halve_(x) //do x=floor(|x|/2)*sgn(x) for bigInt x in 2's complement. (This never overflows its array).\r\n// void leftShift_(x,n) //left shift bigInt x by n bits. n<bpe.\r\n// void linComb_(x,y,a,b) //do x=a*x+b*y for bigInts x and y and integers a and b\r\n// void linCombShift_(x,y,b,ys) //do x=x+b*(y<<(ys*bpe)) for bigInts x and y, and integers b and ys\r\n// void mont_(x,y,n,np) //Montgomery multiplication (see comments where the function is defined)\r\n// void multInt_(x,n) //do x=x*n where x is a bigInt and n is an integer.\r\n// void rightShift_(x,n) //right shift bigInt x by n bits. 0 <= n < bpe. (This never overflows its array).\r\n// void squareMod_(x,n) //do x=x*x mod n for bigInts x,n\r\n// void subShift_(x,y,ys) //do x=x-(y<<(ys*bpe)). Negative answers will be 2s complement.\r\n//\r\n// The following functions are based on algorithms from the _Handbook of Applied Cryptography_\r\n// powMod_() = algorithm 14.94, Montgomery exponentiation\r\n// eGCD_,inverseMod_() = algorithm 14.61, Binary extended GCD_\r\n// GCD_() = algorothm 14.57, Lehmer's algorithm\r\n// mont_() = algorithm 14.36, Montgomery multiplication\r\n// divide_() = algorithm 14.20 Multiple-precision division\r\n// squareMod_() = algorithm 14.16 Multiple-precision squaring\r\n// randTruePrime_() = algorithm 4.62, Maurer's algorithm\r\n// millerRabin() = algorithm 4.24, Miller-Rabin algorithm\r\n//\r\n// Profiling shows:\r\n// randTruePrime_() spends:\r\n// 10% of its time in calls to powMod_()\r\n// 85% of its time in calls to millerRabin()\r\n// millerRabin() spends:\r\n// 99% of its time in calls to powMod_() (always with a base of 2)\r\n// powMod_() spends:\r\n// 94% of its time in calls to mont_() (almost always with x==y)\r\n//\r\n// This suggests there are several ways to speed up this library slightly:\r\n// - convert powMod_ to use a Montgomery form of k-ary window (or maybe a Montgomery form of sliding window)\r\n// -- this should especially focus on being fast when raising 2 to a power mod n\r\n// - convert randTruePrime_() to use a minimum r of 1/3 instead of 1/2 with the appropriate change to the test\r\n// - tune the parameters in randTruePrime_(), including c, m, and recLimit\r\n// - speed up the single loop in mont_() that takes 95% of the runtime, perhaps by reducing checking\r\n// within the loop when all the parameters are the same length.\r\n//\r\n// There are several ideas that look like they wouldn't help much at all:\r\n// - replacing trial division in randTruePrime_() with a sieve (that speeds up something taking almost no time anyway)\r\n// - increase bpe from 15 to 30 (that would help if we had a 32*32->64 multiplier, but not with JavaScript's 32*32->32)\r\n// - speeding up mont_(x,y,n,np) when x==y by doing a non-modular, non-Montgomery square\r\n// followed by a Montgomery reduction. The intermediate answer will be twice as long as x, so that\r\n// method would be slower. This is unfortunate because the code currently spends almost all of its time\r\n// doing mont_(x,x,...), both for randTruePrime_() and powMod_(). A faster method for Montgomery squaring\r\n// would have a large impact on the speed of randTruePrime_() and powMod_(). HAC has a couple of poorly-worded\r\n// sentences that seem to imply it's faster to do a non-modular square followed by a single\r\n// Montgomery reduction, but that's obviously wrong.\r\n////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n//globals\r\nexport var bpe=0; //bits stored per array element\r\nvar mask=0; //AND this with an array element to chop it down to bpe bits\r\nvar radix=mask+1; //equals 2^bpe. A single 1 bit to the left of the last bit of mask.\r\n\r\n//the digits for converting to different bases\r\nvar digitsStr='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\\\\\'\\\"+-';\r\n\r\n//initialize the global variables\r\nfor (bpe=0; (1<<(bpe+1)) > (1<<bpe); bpe++); //bpe=number of bits in the mantissa on this platform\r\nbpe>>=1; //bpe=number of bits in one element of the array representing the bigInt\r\nmask=(1<<bpe)-1; //AND the mask with an integer to get its bpe least significant bits\r\nradix=mask+1; //2^bpe. a single 1 bit to the left of the first bit of mask\r\nexport var one=int2bigInt(1, 1, 1); //constant used in powMod_()\r\n\r\n//the following global variables are scratchpad memory to\r\n//reduce dynamic memory allocation in the inner loop\r\nvar t=new Array(0);\r\nvar ss=t; //used in mult_()\r\nvar s0=t; //used in multMod_(), squareMod_()\r\n// var s1=t; //used in powMod_(), multMod_(), squareMod_()\r\n// var s2=t; //used in powMod_(), multMod_()\r\nvar s3=t; //used in powMod_()\r\nvar s4=t, s5=t; //used in mod_()\r\nvar s6=t; //used in bigInt2str()\r\nvar s7=t; //used in powMod_()\r\nvar T=t; //used in GCD_()\r\nvar sa=t; //used in mont_()\r\nvar mr_x1=t, mr_r=t, mr_a=t, //used in millerRabin()\r\n eg_v=t, eg_u=t, eg_A=t, eg_B=t, eg_C=t, eg_D=t //used in eGCD_(), inverseMod_()\r\n //, md_q1=t, md_q2=t, md_q3=t, md_r=t, md_r1=t, md_r2=t, md_tt=t, //used in mod_()\r\n\r\n , primes=t, pows=t, s_i=t, s_i2=t, s_R=t, s_rm=t, s_q=t, s_n1=t,\r\n s_a=t, s_r2=t, s_n=t, s_b=t, s_d=t, s_x1=t, s_x2=t, s_aa=t, //used in randTruePrime_()\r\n\r\n rpprb=t; //used in randProbPrimeRounds() (which also uses \"primes\")\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////\r\n\r\nvar k, buff;\r\n\r\n//return array of all primes less than integer n\r\nfunction findPrimes(n) {\r\n var i, s, p, ans;\r\n s=new Array(n);\r\n for (i=0; i<n; i++)\r\n s[i]=0;\r\n s[0]=2;\r\n p=0; //first p elements of s are primes, the rest are a sieve\r\n for (;s[p]<n;) { //s[p] is the pth prime\r\n for (i=s[p]*s[p]; i<n; i+=s[p]) //mark multiples of s[p]\r\n s[i]=1;\r\n p++;\r\n s[p]=s[p-1]+1;\r\n for (; s[p]<n && s[s[p]]; s[p]++); //find next prime (where s[p]==0)\r\n }\r\n ans=new Array(p);\r\n for (i=0; i<p; i++)\r\n ans[i]=s[i];\r\n return ans;\r\n}\r\n\r\n\r\n//does a single round of Miller-Rabin base b consider x to be a possible prime?\r\n//x is a bigInt, and b is an integer, with b<x\r\nfunction millerRabinInt(x, b) {\r\n if (mr_x1.length!=x.length) {\r\n mr_x1=dup(x);\r\n mr_r=dup(x);\r\n mr_a=dup(x);\r\n }\r\n\r\n copyInt_(mr_a, b);\r\n return millerRabin(x, mr_a);\r\n}\r\n\r\n//does a single round of Miller-Rabin base b consider x to be a possible prime?\r\n//x and b are bigInts with b<x\r\nfunction millerRabin(x, b) {\r\n var i, j, k, s;\r\n\r\n if (mr_x1.length!=x.length) {\r\n mr_x1=dup(x);\r\n mr_r=dup(x);\r\n mr_a=dup(x);\r\n }\r\n\r\n copy_(mr_a, b);\r\n copy_(mr_r, x);\r\n copy_(mr_x1, x);\r\n\r\n addInt_(mr_r, -1);\r\n addInt_(mr_x1, -1);\r\n\r\n //s=the highest power of two that divides mr_r\r\n k=0;\r\n for (i=0; i<mr_r.length; i++)\r\n for (j=1; j<mask; j<<=1)\r\n if (x[i] & j) {\r\n s=(k<mr_r.length+bpe ? k : 0);\r\n i=mr_r.length;\r\n j=mask;\r\n } else\r\n k++;\r\n\r\n if (s)\r\n rightShift_(mr_r, s);\r\n\r\n powMod_(mr_a, mr_r, x);\r\n\r\n if (!equalsInt(mr_a, 1) && !equals(mr_a, mr_x1)) {\r\n j=1;\r\n while (j<=s-1 && !equals(mr_a, mr_x1)) {\r\n squareMod_(mr_a, x);\r\n if (equalsInt(mr_a, 1)) {\r\n return 0;\r\n }\r\n j++;\r\n }\r\n if (!equals(mr_a, mr_x1)) {\r\n return 0;\r\n }\r\n }\r\n return 1;\r\n}\r\n\r\n//returns how many bits long the bigInt is, not counting leading zeros.\r\nfunction bitSize(x) {\r\n var j, z, w;\r\n for (j=x.length-1; (x[j]==0) && (j>0); j--);\r\n for (z=0, w=x[j]; w; (w>>=1), z++);\r\n z+=bpe*j;\r\n return z;\r\n}\r\n\r\n//return a copy of x with at least n elements, adding leading zeros if needed\r\nfunction expand(x, n) {\r\n var ans=int2bigInt(0, (x.length>n ? x.length : n)*bpe, 0);\r\n copy_(ans, x);\r\n return ans;\r\n}\r\n\r\n//return a k-bit true random prime using Maurer's algorithm.\r\nfunction randTruePrime(k) {\r\n var ans=int2bigInt(0, k, 0);\r\n randTruePrime_(ans, k);\r\n return trim(ans, 1);\r\n}\r\n\r\n//return a k-bit random probable prime with probability of error < 2^-80\r\nfunction randProbPrime(k) {\r\n if (k>=600) return randProbPrimeRounds(k, 2); //numbers from HAC table 4.3\r\n if (k>=550) return randProbPrimeRounds(k, 4);\r\n if (k>=500) return randProbPrimeRounds(k, 5);\r\n if (k>=400) return randProbPrimeRounds(k, 6);\r\n if (k>=350) return randProbPrimeRounds(k, 7);\r\n if (k>=300) return randProbPrimeRounds(k, 9);\r\n if (k>=250) return randProbPrimeRounds(k, 12); //numbers from HAC table 4.4\r\n if (k>=200) return randProbPrimeRounds(k, 15);\r\n if (k>=150) return randProbPrimeRounds(k, 18);\r\n if (k>=100) return randProbPrimeRounds(k, 27);\r\n return randProbPrimeRounds(k, 40); //number from HAC remark 4.26 (only an estimate)\r\n}\r\n\r\n//return a k-bit probable random prime using n rounds of Miller Rabin (after trial division with small primes)\r\nfunction randProbPrimeRounds(k, n) {\r\n var ans, i, divisible, B;\r\n B=30000; //B is largest prime to use in trial division\r\n ans=int2bigInt(0, k, 0);\r\n\r\n //optimization: try larger and smaller B to find the best limit.\r\n\r\n if (primes.length==0)\r\n primes=findPrimes(30000); //check for divisibility by primes <=30000\r\n\r\n if (rpprb.length!=ans.length)\r\n rpprb=dup(ans);\r\n\r\n for (;;) { //keep trying random values for ans until one appears to be prime\r\n //optimization: pick a random number times L=2*3*5*...*p, plus a\r\n // random element of the list of all numbers in [0,L) not divisible by any prime up to p.\r\n // This can reduce the amount of random number generation.\r\n\r\n randBigInt_(ans, k, 0); //ans = a random odd number to check\r\n ans[0] |= 1;\r\n divisible=0;\r\n\r\n //check ans for divisibility by small primes up to B\r\n for (i=0; (i<primes.length) && (primes[i]<=B); i++)\r\n if (modInt(ans, primes[i])==0 && !equalsInt(ans, primes[i])) {\r\n divisible=1;\r\n break;\r\n }\r\n\r\n //optimization: change millerRabin so the base can be bigger than the number being checked, then eliminate the while here.\r\n\r\n //do n rounds of Miller Rabin, with random bases less than ans\r\n for (i=0; i<n && !divisible; i++) {\r\n randBigInt_(rpprb, k, 0);\r\n while (!greater(ans, rpprb)) //pick a random rpprb that's < ans\r\n randBigInt_(rpprb, k, 0);\r\n if (!millerRabin(ans, rpprb))\r\n divisible=1;\r\n }\r\n\r\n if (!divisible)\r\n return ans;\r\n }\r\n}\r\n\r\n//return a new bigInt equal to (x mod n) for bigInts x and n.\r\nfunction mod(x, n) {\r\n var ans=dup(x);\r\n mod_(ans, n);\r\n return trim(ans, 1);\r\n}\r\n\r\n//return (x+n) where x is a bigInt and n is an integer.\r\nfunction addInt(x, n) {\r\n var ans=expand(x, x.length+1);\r\n addInt_(ans, n);\r\n return trim(ans, 1);\r\n}\r\n\r\n//return x*y for bigInts x and y. This is faster when y<x.\r\nfunction mult(x, y) {\r\n var ans=expand(x, x.length+y.length);\r\n mult_(ans, y);\r\n return trim(ans, 1);\r\n}\r\n\r\n//return (x**y mod n) where x,y,n are bigInts and ** is exponentiation. 0**0=1. Faster for odd n.\r\nexport function powMod(x, y, n) {\r\n var ans=expand(x, n.length);\r\n powMod_(ans, trim(y, 2), trim(n, 2), 0); //this should work without the trim, but doesn't\r\n return trim(ans, 1);\r\n}\r\n\r\n//return (x-y) for bigInts x and y. Negative answers will be 2s complement\r\nexport function sub(x, y) {\r\n var ans=expand(x, (x.length>y.length ? x.length+1 : y.length+1));\r\n sub_(ans, y);\r\n return trim(ans, 1);\r\n}\r\n\r\n//return (x+y) for bigInts x and y.\r\nfunction add(x, y) {\r\n var ans=expand(x, (x.length>y.length ? x.length+1 : y.length+1));\r\n add_(ans, y);\r\n return trim(ans, 1);\r\n}\r\n\r\n//return (x**(-1) mod n) for bigInts x and n. If no inverse exists, it returns null\r\nfunction inverseMod(x, n) {\r\n var ans=expand(x, n.length);\r\n var s;\r\n s=inverseMod_(ans, n);\r\n return s ? trim(ans, 1) : null;\r\n}\r\n\r\n//return (x*y mod n) for bigInts x,y,n. For greater speed, let y<x.\r\nfunction multMod(x, y, n) {\r\n var ans=expand(x, n.length);\r\n multMod_(ans, y, n);\r\n return trim(ans, 1);\r\n}\r\n\r\n//generate a k-bit true random prime using Maurer's algorithm,\r\n//and put it into ans. The bigInt ans must be large enough to hold it.\r\nfunction randTruePrime_(ans, k) {\r\n var c, m, pm, dd, j, r, B, divisible, z, zz, recSize;\r\n var w;\r\n if (primes.length==0)\r\n primes=findPrimes(30000); //check for divisibility by primes <=30000\r\n\r\n if (pows.length==0) {\r\n pows=new Array(512);\r\n for (j=0; j<512; j++) {\r\n pows[j]=Math.pow(2, j/511.-1.);\r\n }\r\n }\r\n\r\n //c and m should be tuned for a particular machine and value of k, to maximize speed\r\n c=0.1; //c=0.1 in HAC\r\n m=20; //generate this k-bit number by first recursively generating a number that has between k/2 and k-m bits\r\n var recLimit=20; //stop recursion when k <=recLimit. Must have recLimit >= 2\r\n\r\n if (s_i2.length!=ans.length) {\r\n s_i2=dup(ans);\r\n s_R =dup(ans);\r\n s_n1=dup(ans);\r\n s_r2=dup(ans);\r\n s_d =dup(ans);\r\n s_x1=dup(ans); //TODO Seems like a bug in eslint, reports as unused\r\n s_x2=dup(ans);\r\n s_b =dup(ans);\r\n s_n =dup(ans);\r\n s_i =dup(ans);\r\n s_rm=dup(ans);\r\n s_q =dup(ans);\r\n s_a =dup(ans);\r\n s_aa=dup(ans);\r\n }\r\n\r\n if (k <= recLimit) { //generate small random primes by trial division up to its square root\r\n pm=(1<<((k+2)>>1))-1; //pm is binary number with all ones, just over sqrt(2^k)\r\n copyInt_(ans, 0);\r\n for (dd=1; dd;) {\r\n dd=0;\r\n ans[0]= 1 | (1<<(k-1)) | Math.floor(Math.random()*(1<<k)); //random, k-bit, odd integer, with msb 1\r\n for (j=1; (j<primes.length) && ((primes[j]&pm)==primes[j]); j++) { //trial division by all primes 3...sqrt(2^k)\r\n if (0==(ans[0]%primes[j])) {\r\n dd=1;\r\n break;\r\n }\r\n }\r\n }\r\n carry_(ans);\r\n return;\r\n }\r\n\r\n B=c*k*k; //try small primes up to B (or all the primes[] array if the largest is less than B).\r\n if (k>2*m) //generate this k-bit number by first recursively generating a number that has between k/2 and k-m bits\r\n for (r=1; k-k*r<=m; )\r\n r=pows[Math.floor(Math.random()*512)]; //r=Math.pow(2,Math.random()-1);\r\n else\r\n r=.5;\r\n\r\n //simulation suggests the more complex algorithm using r=.333 is only slightly faster.\r\n\r\n recSize=Math.floor(r*k)+1;\r\n\r\n randTruePrime_(s_q, recSize);\r\n copyInt_(s_i2, 0);\r\n s_i2[Math.floor((k-2)/bpe)] |= (1<<((k-2)%bpe)); //s_i2=2^(k-2)\r\n divide_(s_i2, s_q, s_i, s_rm); //s_i=floor((2^(k-1))/(2q))\r\n\r\n z=bitSize(s_i);\r\n\r\n for (;;) {\r\n for (;;) { //generate z-bit numbers until one falls in the range [0,s_i-1]\r\n randBigInt_(s_R, z, 0);\r\n if (greater(s_i, s_R))\r\n break;\r\n } //now s_R is in the range [0,s_i-1]\r\n addInt_(s_R, 1); //now s_R is in the range [1,s_i]\r\n add_(s_R, s_i); //now s_R is in the range [s_i+1,2*s_i]\r\n\r\n copy_(s_n, s_q);\r\n mult_(s_n, s_R);\r\n multInt_(s_n, 2);\r\n addInt_(s_n, 1); //s_n=2*s_R*s_q+1\r\n\r\n copy_(s_r2, s_R);\r\n multInt_(s_r2, 2); //s_r2=2*s_R\r\n\r\n //check s_n for divisibility by small primes up to B\r\n for (divisible=0, j=0; (j<primes.length) && (primes[j]<B); j++)\r\n if (modInt(s_n, primes[j])==0 && !equalsInt(s_n, primes[j])) {\r\n divisible=1;\r\n break;\r\n }\r\n\r\n if (!divisible) //if it passes small primes check, then try a single Miller-Rabin base 2\r\n if (!millerRabinInt(s_n, 2)) //this line represents 75% of the total runtime for randTruePrime_\r\n divisible=1;\r\n\r\n if (!divisible) { //if it passes that test, continue checking s_n\r\n addInt_(s_n, -3);\r\n for (j=s_n.length-1; (s_n[j]==0) && (j>0); j--); //strip leading zeros\r\n for (zz=0, w=s_n[j]; w; (w>>=1), zz++);\r\n zz+=bpe*j; //zz=number of bits in s_n, ignoring leading zeros\r\n for (;;) { //generate z-bit numbers until one falls in the range [0,s_n-1]\r\n randBigInt_(s_a, zz, 0);\r\n if (greater(s_n, s_a))\r\n break;\r\n } //now s_a is in the range [0,s_n-1]\r\n addInt_(s_n, 3); //now s_a is in the range [0,s_n-4]\r\n addInt_(s_a, 2); //now s_a is in the range [2,s_n-2]\r\n copy_(s_b, s_a);\r\n copy_(s_n1, s_n);\r\n addInt_(s_n1, -1);\r\n powMod_(s_b, s_n1, s_n); //s_b=s_a^(s_n-1) modulo s_n\r\n addInt_(s_b, -1);\r\n if (isZero(s_b)) {\r\n copy_(s_b, s_a);\r\n powMod_(s_b, s_r2, s_n);\r\n addInt_(s_b, -1);\r\n copy_(s_aa, s_n);\r\n copy_(s_d, s_b);\r\n GCD_(s_d, s_n); //if s_b and s_n are relatively prime, then s_n is a prime\r\n if (equalsInt(s_d, 1)) {\r\n copy_(ans, s_aa);\r\n return; //if we've made it this far, then s_n is absolutely guaranteed to be prime\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n//Return an n-bit random BigInt (n>=1). If s=1, then the most significant of those n bits is set to 1.\r\nfunction randBigInt(n, s) {\r\n var a, b;\r\n a=Math.floor((n-1)/bpe)+2; //# array elements to hold the BigInt with a leading 0 element\r\n b=int2bigInt(0, 0, a);\r\n randBigInt_(b, n, s);\r\n return b;\r\n}\r\n\r\n//Set b to an n-bit random BigInt. If s=1, then the most significant of those n bits is set to 1.\r\n//Array b must be big enough to hold the result. Must have n>=1\r\nfunction randBigInt_(b, n, s) {\r\n var i, a;\r\n for (i=0; i<b.length; i++)\r\n b[i]=0;\r\n a=Math.floor((n-1)/bpe)+1; //# array elements to hold the BigInt\r\n for (i=0; i<a; i++) {\r\n b[i]=Math.floor(Math.random()*(1<<(bpe-1)));\r\n }\r\n b[a-1] &= (2<<((n-1)%bpe))-1;\r\n if (s==1)\r\n b[a-1] |= (1<<((n-1)%bpe));\r\n}\r\n\r\n//Return the greatest common divisor of bigInts x and y (each with same number of elements).\r\nfunction GCD(x, y) {\r\n var xc, yc;\r\n xc=dup(x);\r\n yc=dup(y);\r\n GCD_(xc, yc);\r\n return xc;\r\n}\r\n\r\n//set x to the greatest common divisor of bigInts x and y (each with same number of elements).\r\n//y is destroyed.\r\nfunction GCD_(x, y) {\r\n var i, xp, yp, A, B, C, D, q, sing;\r\n var qp;\r\n if (T.length!=x.length)\r\n T=dup(x);\r\n\r\n sing=1;\r\n while (sing) { //while y has nonzero elements other than y[0]\r\n sing=0;\r\n for (i=1; i<y.length; i++) //check if y has nonzero elements other than 0\r\n if (y[i]) {\r\n sing=1;\r\n break;\r\n }\r\n if (!sing) break; //quit when y all zero elements except possibly y[0]\r\n\r\n for (i=x.length; !x[i] && i>=0; i--); //find most significant element of x\r\n xp=x[i];\r\n yp=y[i];\r\n A=1; B=0; C=0; D=1;\r\n while ((yp+C) && (yp+D)) {\r\n q =Math.floor((xp+A)/(yp+C));\r\n qp=Math.floor((xp+B)/(yp+D));\r\n if (q!=qp)\r\n break;\r\n t= A-q*C; A=C; C=t; // do (A,B,xp, C,D,yp) = (C,D,yp, A,B,xp) - q*(0,0,0, C,D,yp)\r\n t= B-q*D; B=D; D=t;\r\n t=xp-q*yp; xp=yp; yp=t;\r\n }\r\n if (B) {\r\n copy_(T, x);\r\n linComb_(x, y, A, B); //x=A*x+B*y\r\n linComb_(y, T, D, C); //y=D*y+C*T\r\n } else {\r\n mod_(x, y);\r\n copy_(T, x);\r\n copy_(x, y);\r\n copy_(y, T);\r\n }\r\n }\r\n if (y[0]==0)\r\n return;\r\n t=modInt(x, y[0]);\r\n copyInt_(x, y[0]);\r\n y[0]=t;\r\n while (y[0]) {\r\n x[0]%=y[0];\r\n t=x[0]; x[0]=y[0]; y[0]=t;\r\n }\r\n}\r\n\r\n//do x=x**(-1) mod n, for bigInts x and n.\r\n//If no inverse exists, it sets x to zero and returns 0, else it returns 1.\r\n//The x array must be at least as large as the n array.\r\nfunction inverseMod_(x, n) {\r\n var k=1+2*Math.max(x.length, n.length);\r\n\r\n if (!(x[0]&1) && !(n[0]&1)) { //if both inputs are even, then inverse doesn't exist\r\n copyInt_(x, 0);\r\n return 0;\r\n }\r\n\r\n if (eg_u.length!=k) {\r\n eg_u=new Array(k);\r\n eg_v=new Array(k);\r\n eg_A=new Array(k);\r\n eg_B=new Array(k);\r\n eg_C=new Array(k);\r\n eg_D=new Array(k);\r\n }\r\n\r\n copy_(eg_u, x);\r\n copy_(eg_v, n);\r\n copyInt_(eg_A, 1);\r\n copyInt_(eg_B, 0);\r\n copyInt_(eg_C, 0);\r\n copyInt_(eg_D, 1);\r\n for (;;) {\r\n while (!(eg_u[0]&1)) { //while eg_u is even\r\n halve_(eg_u);\r\n if (!(eg_A[0]&1) && !(eg_B[0]&1)) { //if eg_A==eg_B==0 mod 2\r\n halve_(eg_A);\r\n halve_(eg_B);\r\n } else {\r\n add_(eg_A, n); halve_(eg_A);\r\n sub_(eg_B, x); halve_(eg_B);\r\n }\r\n }\r\n\r\n while (!(eg_v[0]&1)) { //while eg_v is even\r\n halve_(eg_v);\r\n if (!(eg_C[0]&1) && !(eg_D[0]&1)) { //if eg_C==eg_D==0 mod 2\r\n halve_(eg_C);\r\n halve_(eg_D);\r\n } else {\r\n add_(eg_C, n); halve_(eg_C);\r\n sub_(eg_D, x); halve_(eg_D);\r\n }\r\n }\r\n\r\n if (!greater(eg_v, eg_u)) { //eg_v <= eg_u\r\n sub_(eg_u, eg_v);\r\n sub_(eg_A, eg_C);\r\n sub_(eg_B, eg_D);\r\n } else { //eg_v > eg_u\r\n sub_(eg_v, eg_u);\r\n sub_(eg_C, eg_A);\r\n sub_(eg_D, eg_B);\r\n }\r\n\r\n if (equalsInt(eg_u, 0)) {\r\n while (negative(eg_C)) //make sure answer is nonnegative\r\n add_(eg_C, n);\r\n copy_(x, eg_C);\r\n\r\n if (!equalsInt(eg_v, 1)) { //if GCD_(x,n)!=1, then there is no inverse\r\n copyInt_(x, 0);\r\n return 0;\r\n }\r\n return 1;\r\n }\r\n }\r\n}\r\n\r\n//return x**(-1) mod n, for integers x and n. Return 0 if there is no inverse\r\nfunction inverseModInt(x, n) {\r\n var a=1, b=0, t;\r\n for (;;) {\r\n if (x==1) return a;\r\n if (x==0) return 0;\r\n b-=a*Math.floor(n/x);\r\n n%=x;\r\n\r\n if (n==1) return b; //to avoid negatives, change this b to n-b, and each -= to +=\r\n if (n==0) return 0;\r\n a-=b*Math.floor(x/n);\r\n x%=n;\r\n }\r\n}\r\n\r\n//this deprecated function is for backward compatibility only.\r\nfunction inverseModInt_(x, n) {\r\n return inverseModInt(x, n);\r\n}\r\n\r\n\r\n//Given positive bigInts x and y, change the bigints v, a, and b to positive bigInts such that:\r\n// v = GCD_(x,y) = a*x-b*y\r\n//The bigInts v, a, b, must have exactly as many elements as the larger of x and y.\r\nexport function eGCD_(x, y, v, a, b) {\r\n var g=0;\r\n var k=Math.max(x.length, y.length);\r\n if (eg_u.length!=k) {\r\n eg_u=new Array(k);\r\n eg_A=new Array(k);\r\n eg_B=new Array(k);\r\n eg_C=new Array(k);\r\n eg_D=new Array(k);\r\n }\r\n while (!(x[0]&1) && !(y[0]&1)) { //while x and y both even\r\n halve_(x);\r\n halve_(y);\r\n g++;\r\n }\r\n copy_(eg_u, x);\r\n copy_(v, y);\r\n copyInt_(eg_A, 1);\r\n copyInt_(eg_B, 0);\r\n copyInt_(eg_C, 0);\r\n copyInt_(eg_D, 1);\r\n for (;;) {\r\n while (!(eg_u[0]&1)) { //while u is even\r\n halve_(eg_u);\r\n if (!(eg_A[0]&1) && !(eg_B[0]&1)) { //if A==B==0 mod 2\r\n halve_(eg_A);\r\n halve_(eg_B);\r\n } else {\r\n add_(eg_A, y); halve_(eg_A);\r\n sub_(eg_B, x); halve_(eg_B);\r\n }\r\n }\r\n\r\n while (!(v[0]&1)) { //while v is even\r\n halve_(v);\r\n if (!(eg_C[0]&1) && !(eg_D[0]&1)) { //if C==D==0 mod 2\r\n halve_(eg_C);\r\n halve_(eg_D);\r\n } else {\r\n add_(eg_C, y); halve_(eg_C);\r\n sub_(eg_D, x); halve_(eg_D);\r\n }\r\n }\r\n\r\n if (!greater(v, eg_u)) { //v<=u\r\n sub_(eg_u, v);\r\n sub_(eg_A, eg_C);\r\n sub_(eg_B, eg_D);\r\n } else { //v>u\r\n sub_(v, eg_u);\r\n sub_(eg_C, eg_A);\r\n sub_(eg_D, eg_B);\r\n }\r\n if (equalsInt(eg_u, 0)) {\r\n while (negative(eg_C)) { //make sure a (C) is nonnegative\r\n add_(eg_C, y);\r\n sub_(eg_D, x);\r\n }\r\n multInt_(eg_D, -1); ///make sure b (D) is nonnegative\r\n copy_(a, eg_C);\r\n copy_(b, eg_D);\r\n leftShift_(v, g);\r\n return;\r\n }\r\n }\r\n}\r\n\r\n\r\n//is bigInt x negative?\r\nfunction negative(x) {\r\n return ((x[x.length-1]>>(bpe-1))&1);\r\n}\r\n\r\n\r\n//is (x << (shift*bpe)) > y?\r\n//x and y are nonnegative bigInts\r\n//shift is a nonnegative integer\r\nfunction greaterShift(x, y, shift) {\r\n var i, kx=x.length, ky=y.length;\r\n k=((kx+shift)<ky) ? (kx+shift) : ky;\r\n for (i=ky-1-shift; i<kx && i>=0; i++)\r\n if (x[i]>0)\r\n return 1; //if there are nonzeros in x to the left of the first column of y, then x is bigger\r\n for (i=kx-1+shift; i<ky; i++)\r\n if (y[i]>0)\r\n return 0; //if there are nonzeros in y to the left of the first column of x, then x is not bigger\r\n for (i=k-1; i>=shift; i--)\r\n if (x[i-shift]>y[i]) return 1;\r\n else if (x[i-shift]<y[i]) return 0;\r\n return 0;\r\n}\r\n\r\n//is x > y? (x and y both nonnegative)\r\nexport function greater(x, y) {\r\n var i;\r\n var k=(x.length<y.length) ? x.length : y.length;\r\n\r\n for (i=x.length; i<y.length; i++)\r\n if (y[i])\r\n return 0; //y has more digits\r\n\r\n for (i=y.length; i<x.length; i++)\r\n if (x[i])\r\n return 1; //x has more digits\r\n\r\n for (i=k-1; i>=0; i--)\r\n if (x[i]>y[i])\r\n return 1;\r\n else if (x[i]<y[i])\r\n return 0;\r\n return 0;\r\n}\r\n\r\n//divide x by y giving quotient q and remainder r. (q=floor(x/y), r=x mod y). All 4 are bigints.\r\n//x must have at least one leading zero element.\r\n//y must be nonzero.\r\n//q and r must be arrays that are exactly the same length as x. (Or q can have more).\r\n//Must have x.length >= y.length >= 2.\r\nexport function divide_(x, y, q, r) {\r\n var kx, ky;\r\n var i, j, y1, y2, c, a, b;\r\n copy_(r, x);\r\n for (ky=y.length; y[ky-1]==0; ky--); //ky is number of elements in y, not including leading zeros\r\n\r\n //normalize: ensure the most significant element of y has its highest bit set\r\n b=y[ky-1];\r\n for (a=0; b; a++)\r\n b>>=1;\r\n a=bpe-a; //a is how many bits to shift so that the high order bit of y is leftmost in its array element\r\n leftShift_(y, a); //multiply both by 1<<a now, then divide both by that at the end\r\n leftShift_(r, a);\r\n\r\n //Rob Visser discovered a bug: the following line was originally just before the normalization.\r\n for (kx=r.length; r[kx-1]==0 && kx>ky; kx--); //kx is number of elements in normalized x, not including leading zeros\r\n\r\n copyInt_(q, 0); // q=0\r\n while (!greaterShift(y, r, kx-ky)) { // while (leftShift_(y,kx-ky) <= r) {\r\n subShift_(r, y, kx-ky); // r=r-leftShift_(y,kx-ky)\r\n q[kx-ky]++; // q[kx-ky]++;\r\n } // }\r\n\r\n for (i=kx-1; i>=ky; i--) {\r\n if (r[i]==y[ky-1])\r\n q[i-ky]=mask;\r\n else\r\n q[i-ky]=Math.floor((r[i]*radix+r[i-1])/y[ky-1]);\r\n\r\n //The following for(;;) loop is equivalent to the commented while loop,\r\n //except that the uncommented version avoids overflow.\r\n //The commented loop comes from HAC, which assumes r[-1]==y[-1]==0\r\n // while (q[i-ky]*(y[ky-1]*radix+y[ky-2]) > r[i]*radix*radix+r[i-1]*radix+r[i-2])\r\n // q[i-ky]--;\r\n for (;;) {\r\n y2=(ky>1 ? y[ky-2] : 0)*q[i-ky];\r\n c=y2>>bpe;\r\n y2=y2 & mask;\r\n y1=c+q[i-ky]*y[ky-1];\r\n c=y1>>bpe;\r\n y1=y1 & mask;\r\n\r\n if (c==r[i] ? y1==r[i-1] ? y2>(i>1 ? r[i-2] : 0) : y1>r[i-1] : c>r[i])\r\n q[i-ky]--;\r\n else\r\n break;\r\n }\r\n\r\n linCombShift_(r, y, -q[i-ky], i-ky); //r=r-q[i-ky]*leftShift_(y,i-ky)\r\n if (negative(r)) {\r\n addShift_(r, y, i-ky); //r=r+leftShift_(y,i-ky)\r\n q[i-ky]--;\r\n }\r\n }\r\n\r\n rightShift_(y, a); //undo the normalization step\r\n rightShift_(r, a); //undo the normalization step\r\n}\r\n\r\n//do carries and borrows so each element of the bigInt x fits in bpe bits.\r\nfunction carry_(x) {\r\n var i, k, c, b;\r\n k=x.length;\r\n c=0;\r\n for (i=0; i<k; i++) {\r\n c+=x[i];\r\n b=0;\r\n if (c<0) {\r\n b=-(c>>bpe);\r\n c+=b*radix;\r\n }\r\n x[i]=c & mask;\r\n c=(c>>bpe)-b;\r\n }\r\n}\r\n\r\n//return x mod n for bigInt x and integer n.\r\nfunction modInt(x, n) {\r\n var i, c=0;\r\n for (i=x.length-1; i>=0; i--)\r\n c=(c*radix+x[i])%n;\r\n return c;\r\n}\r\n\r\n//convert the integer t into a bigInt with at least the given number of bits.\r\n//the returned array stores the bigInt in bpe-bit chunks, little endian (buff[0] is least significant word)\r\n//Pad the array with leading zeros so that it has at least minSize elements.\r\n//There will always be at least one leading 0 element.\r\nexport function int2bigInt(t, bits, minSize) {\r\n var i, k;\r\n k=Math.ceil(bits/bpe)+1;\r\n k=minSize>k ? minSize : k;\r\n var buff=new Array(k);\r\n copyInt_(buff, t);\r\n return buff;\r\n}\r\n\r\n//return the bigInt given a string representation in a given base.\r\n//Pad the array with leading zeros so that it has at least minSize elements.\r\n//If base=-1, then it reads in a space-separated list of array elements in decimal.\r\n//The array will always have at least one leading zero, unless base=-1.\r\nexport function str2bigInt(s, base, minSize) {\r\n var d, i, j, x, y, kk;\r\n var k=s.length;\r\n if (base==-1) { //comma-separated list of array elements in decimal\r\n x=new Array(0);\r\n for (;;) {\r\n y=new Array(x.length+1);\r\n for (i=0; i<x.length; i++)\r\n y[i+1]=x[i];\r\n y[0]=parseInt(s, 10); //TODO PERF Should we replace that with ~~ (not not)? https://jsperf.com/number-vs-parseint-vs-plus/7\r\n x=y;\r\n d=s.indexOf(',', 0);\r\n if (d<1)\r\n break;\r\n s=s.substring(d+1);\r\n if (s.length==0)\r\n break;\r\n }\r\n if (x.length<minSize) {\r\n y=new Array(minSize);\r\n copy_(y, x);\r\n return y;\r\n }\r\n return x;\r\n }\r\n\r\n x=int2bigInt(0, base*k, 0);\r\n for (i=0; i<k; i++) {\r\n d=digitsStr.indexOf(s.substring(i, i+1), 0);\r\n if (base<=36 && d>=36) //convert lowercase to uppercase if base<=36\r\n d-=26;\r\n if (d>=base || d<0) { //stop at first illegal character\r\n break;\r\n }\r\n multInt_(x, base);\r\n addInt_(x, d);\r\n }\r\n\r\n for (k=x.length; k>0 && !x[k-1]; k--); //strip off leading zeros\r\n k=minSize>k+1 ? minSize : k+1;\r\n y=new Array(k);\r\n kk=k<x.length ? k : x.length;\r\n for (i=0; i<kk; i++)\r\n y[i]=x[i];\r\n for (;i<k; i++)\r\n y[i]=0;\r\n return y;\r\n}\r\n\r\n//is bigint x equal to integer y?\r\n//y must have less than bpe bits\r\nexport function equalsInt(x, y) {\r\n var i;\r\n if (x[0]!=y)\r\n return 0;\r\n for (i=1; i<x.length; i++)\r\n if (x[i])\r\n return 0;\r\n return 1;\r\n}\r\n\r\n//are bigints x and y equal?\r\n//this works even if x and y are different lengths and have arbitrarily many leading zeros\r\nfunction equals(x, y) {\r\n var i;\r\n var k=x.length<y.length ? x.length : y.length;\r\n for (i=0; i<k; i++)\r\n if (x[i]!=y[i])\r\n return 0;\r\n if (x.length>y.length) {\r\n for (;i<x.length; i++)\r\n if (x[i])\r\n return 0;\r\n } else {\r\n for (;i<y.length; i++)\r\n if (y[i])\r\n return 0;\r\n }\r\n return 1;\r\n}\r\n\r\n//is the bigInt x equal to zero?\r\nexport function isZero(x) {\r\n var i;\r\n for (i=0; i<x.length; i++)\r\n if (x[i])\r\n return 0;\r\n return 1;\r\n}\r\n\r\n//convert a bigInt into a string in a given base, from base 2 up to base 95.\r\n//Base -1 prints the contents of the array representing the number.\r\nexport function bigInt2str(x, base) {\r\n var i, t, s='';\r\n\r\n if (s6.length!=x.length)\r\n s6=dup(x);\r\n else\r\n copy_(s6, x);\r\n\r\n if (base==-1) { //return the list of array contents\r\n for (i=x.length-1; i>0; i--)\r\n s+=x[i]+',';\r\n s+=x[0];\r\n }\r\n else { //return it in the given base\r\n while (!isZero(s6)) {\r\n t=divInt_(s6, base); //t=s6 % base; s6=floor(s6/base);\r\n s=digitsStr.substring(t, t+1)+s;\r\n }\r\n }\r\n if (s.length==0)\r\n s='0';\r\n return s;\r\n}\r\n\r\n//returns a duplicate of bigInt x\r\nexport function dup(x) {\r\n var i;\r\n buff=new Array(x.length);\r\n copy_(buff, x);\r\n return buff;\r\n}\r\n\r\n//do x=y on bigInts x and y. x must be an array at least as big as y (not counting the leading zeros in y).\r\nexport function copy_(x, y) {\r\n var i;\r\n var k=x.length<y.length ? x.length : y.length;\r\n for (i=0; i<k; i++)\r\n x[i]=y[i];\r\n for (i=k; i<x.length; i++)\r\n x[i]=0;\r\n}\r\n\r\n//do x=y on bigInt x and integer y.\r\nexport function copyInt_(x, n) {\r\n var i, c;\r\n var len = x.length; //TODO .length in for loop have perfomance costs. Bench this\r\n for (c=n, i=0; i<len; i++) {\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n}\r\n\r\n//do x=x+n where x is a bigInt and n is an integer.\r\n//x must be large enough to hold the result.\r\nexport function addInt_(x, n) {\r\n var i, k, c, b;\r\n x[0]+=n;\r\n k=x.length;\r\n c=0;\r\n for (i=0; i<k; i++) {\r\n c+=x[i];\r\n b=0;\r\n if (c<0) {\r\n b=-(c>>bpe);\r\n c+=b*radix;\r\n }\r\n x[i]=c & mask;\r\n c=(c>>bpe)-b;\r\n if (!c) return; //stop carrying as soon as the carry is zero\r\n }\r\n}\r\n\r\n//right shift bigInt x by n bits. 0 <= n < bpe.\r\nexport function rightShift_(x, n) {\r\n var i;\r\n var k=Math.floor(n/bpe);\r\n if (k) {\r\n for (i=0; i<x.length-k; i++) //right shift x by k elements\r\n x[i]=x[i+k];\r\n for (;i<x.length; i++)\r\n x[i]=0;\r\n n%=bpe;\r\n }\r\n for (i=0; i<x.length-1; i++) {\r\n x[i]=mask & ((x[i+1]<<(bpe-n)) | (x[i]>>n));\r\n }\r\n x[i]>>=n;\r\n}\r\n\r\n//do x=floor(|x|/2)*sgn(x) for bigInt x in 2's complement\r\nfunction halve_(x) {\r\n var i;\r\n for (i=0; i<x.length-1; i++) {\r\n x[i]=mask & ((x[i+1]<<(bpe-1)) | (x[i]>>1));\r\n }\r\n x[i]=(x[i]>>1) | (x[i] & (radix>>1)); //most significant bit stays the same\r\n}\r\n\r\n//left shift bigInt x by n bits.\r\nexport function leftShift_(x, n) {\r\n var i;\r\n var k=Math.floor(n/bpe);\r\n if (k) {\r\n for (i=x.length; i>=k; i--) //left shift x by k elements\r\n x[i]=x[i-k];\r\n for (;i>=0; i--)\r\n x[i]=0;\r\n n%=bpe;\r\n }\r\n if (!n)\r\n return;\r\n for (i=x.length-1; i>0; i--) {\r\n x[i]=mask & ((x[i]<<n) | (x[i-1]>>(bpe-n)));\r\n }\r\n x[i]=mask & (x[i]<<n);\r\n}\r\n\r\n//do x=x*n where x is a bigInt and n is an integer.\r\n//x must be large enough to hold the result.\r\nfunction multInt_(x, n) {\r\n var i, k, c, b;\r\n if (!n)\r\n return;\r\n k=x.length;\r\n c=0;\r\n for (i=0; i<k; i++) {\r\n c+=x[i]*n;\r\n b=0;\r\n if (c<0) {\r\n b=-(c>>bpe);\r\n c+=b*radix;\r\n }\r\n x[i]=c & mask;\r\n c=(c>>bpe)-b;\r\n }\r\n}\r\n\r\n//do x=floor(x/n) for bigInt x and integer n, and return the remainder\r\nfunction divInt_(x, n) {\r\n var i, r=0, s;\r\n for (i=x.length-1; i>=0; i--) {\r\n s=r*radix+x[i];\r\n x[i]=Math.floor(s/n);\r\n r=s%n;\r\n }\r\n return r;\r\n}\r\n\r\n//do the linear combination x=a*x+b*y for bigInts x and y, and integers a and b.\r\n//x must be large enough to hold the answer.\r\nfunction linComb_(x, y, a, b) {\r\n var i, c, k, kk;\r\n k=x.length<y.length ? x.length : y.length;\r\n kk=x.length;\r\n for (c=0, i=0; i<k; i++) {\r\n c+=a*x[i]+b*y[i];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n for (i=k; i<kk; i++) {\r\n c+=a*x[i];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n}\r\n\r\n//do the linear combination x=a*x+b*(y<<(ys*bpe)) for bigInts x and y, and integers a, b and ys.\r\n//x must be large enough to hold the answer.\r\nfunction linCombShift_(x, y, b, ys) {\r\n var i, c, k, kk;\r\n k=x.length<ys+y.length ? x.length : ys+y.length;\r\n kk=x.length;\r\n for (c=0, i=ys; i<k; i++) {\r\n c+=x[i]+b*y[i-ys];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n for (i=k; c && i<kk; i++) {\r\n c+=x[i];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n}\r\n\r\n//do x=x+(y<<(ys*bpe)) for bigInts x and y, and integers a,b and ys.\r\n//x must be large enough to hold the answer.\r\nfunction addShift_(x, y, ys) {\r\n var i, c, k, kk;\r\n k=x.length<ys+y.length ? x.length : ys+y.length;\r\n kk=x.length;\r\n for (c=0, i=ys; i<k; i++) {\r\n c+=x[i]+y[i-ys];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n for (i=k; c && i<kk; i++) {\r\n c+=x[i];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n}\r\n\r\n//do x=x-(y<<(ys*bpe)) for bigInts x and y, and integers a,b and ys.\r\n//x must be large enough to hold the answer.\r\nfunction subShift_(x, y, ys) {\r\n var i, c, k, kk;\r\n k=x.length<ys+y.length ? x.length : ys+y.length;\r\n kk=x.length;\r\n for (c=0, i=ys; i<k; i++) {\r\n c+=x[i]-y[i-ys];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n for (i=k; c && i<kk; i++) {\r\n c+=x[i];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n}\r\n\r\n//do x=x-y for bigInts x and y.\r\n//x must be large enough to hold the answer.\r\n//negative answers will be 2s complement\r\nexport function sub_(x, y) {\r\n var i, c, k, kk;\r\n k=x.length<y.length ? x.length : y.length;\r\n for (c=0, i=0; i<k; i++) {\r\n c+=x[i]-y[i];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n for (i=k; c && i<x.length; i++) {\r\n c+=x[i];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n}\r\n\r\n//do x=x+y for bigInts x and y.\r\n//x must be large enough to hold the answer.\r\nexport function add_(x, y) {\r\n var i, c, k, kk;\r\n k=x.length<y.length ? x.length : y.length;\r\n for (c=0, i=0; i<k; i++) {\r\n c+=x[i]+y[i];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n for (i=k; c && i<x.length; i++) {\r\n c+=x[i];\r\n x[i]=c & mask;\r\n c>>=bpe;\r\n }\r\n}\r\n\r\n//do x=x*y for bigInts x and y. This is faster when y<x.\r\nfunction mult_(x, y) {\r\n var i;\r\n if (ss.length!=2*x.length)\r\n ss=new Array(2*x.length);\r\n copyInt_(ss, 0);\r\n for (i=0; i<y.length; i++)\r\n if (y[i])\r\n linCombShift_(ss, x, y[i], i); //ss=1*ss+y[i]*(x<<(i*bpe))\r\n copy_(x, ss);\r\n}\r\n\r\n//do x=x mod n for bigInts x and n.\r\nfunction mod_(x, n) {\r\n if (s4.length!=x.length)\r\n s4=dup(x);\r\n else\r\n copy_(s4, x);\r\n if (s5.length!=x.length)\r\n s5=dup(x);\r\n divide_(s4, n, s5, x); //x = remainder of s4 / n\r\n}\r\n\r\n//do x=x*y mod n for bigInts x,y,n.\r\n//for greater speed, let y<x.\r\nfunction multMod_(x, y, n) {\r\n var i;\r\n if (s0.length!=2*x.length)\r\n s0=new Array(2*x.length);\r\n copyInt_(s0, 0);\r\n for (i=0; i<y.length; i++)\r\n if (y[i])\r\n linCombShift_(s0, x, y[i], i); //s0=1*s0+y[i]*(x<<(i*bpe))\r\n mod_(s0, n);\r\n copy_(x, s0);\r\n}\r\n\r\n//do x=x*x mod n for bigInts x,n.\r\nfunction squareMod_(x, n) {\r\n var i, j, d, c, kx, kn, k;\r\n for (kx=x.length; kx>0 && !x[kx-1]; kx--); //ignore leading zeros in x\r\n k=kx>n.length ? 2*kx : 2*n.length; //k=# elements in the product, which is twice the elements in the larger of x and n\r\n if (s0.length!=k)\r\n s0=new Array(k);\r\n copyInt_(s0, 0);\r\n for (i=0; i<kx; i++) {\r\n c=s0[2*i]+x[i]*x[i];\r\n s0[2*i]=c & mask;\r\n c>>=bpe;\r\n for (j=i+1; j<kx; j++) {\r\n c=s0[i+j]+2*x[i]*x[j]+c;\r\n s0[i+j]=(c & mask);\r\n c>>=bpe;\r\n }\r\n s0[i+kx]=c;\r\n }\r\n mod_(s0, n);\r\n copy_(x, s0);\r\n}\r\n\r\n//return x with exactly k leading zero elements\r\nfunction trim(x, k) {\r\n var i, y;\r\n for (i=x.length; i>0 && !x[i-1]; i--);\r\n y=new Array(i+k);\r\n copy_(y, x);\r\n return y;\r\n}\r\n\r\n//do x=x**y mod n, where x,y,n are bigInts and ** is exponentiation. 0**0=1.\r\n//this is faster when n is odd. x usually needs to have as many elements as n.\r\nfunction powMod_(x, y, n) {\r\n var k1, k2, kn, np;\r\n if (s7.length!=n.length)\r\n s7=dup(n);\r\n\r\n //for even modulus, use a simple square-and-multiply algorithm,\r\n //rather than using the more complex Montgomery algorithm.\r\n if ((n[0]&1)==0) {\r\n copy_(s7, x);\r\n copyInt_(x, 1);\r\n while (!equalsInt(y, 0)) {\r\n if (y[0]&1)\r\n multMod_(x, s7, n);\r\n divInt_(y, 2);\r\n squareMod_(s7, n);\r\n }\r\n return;\r\n }\r\n\r\n //calculate np from n for the Montgomery multiplications\r\n copyInt_(s7, 0);\r\n for (kn=n.length; kn>0 && !n[kn-1]; kn--);\r\n np=radix-inverseModInt(modInt(n, radix), radix);\r\n s7[kn]=1;\r\n multMod_(x, s7, n); // x = x * 2**(kn*bp) mod n\r\n\r\n if (s3.length!=x.length)\r\n s3=dup(x);\r\n else\r\n copy_(s3, x);\r\n\r\n for (k1=y.length-1; k1>0 & !y[k1]; k1--); //k1=first nonzero element of y\r\n if (y[k1]==0) { //anything to the 0th power is 1\r\n copyInt_(x, 1);\r\n return;\r\n }\r\n for (k2=1<<(bpe-1); k2 && !(y[k1] & k2); k2>>=1); //k2=position of first 1 bit in y[k1]\r\n for (;;) {\r\n if (!(k2>>=1)) { //look at next bit of y\r\n k1--;\r\n if (k1<0) {\r\n mont_(x, one, n, np);\r\n return;\r\n }\r\n k2=1<<(bpe-1);\r\n }\r\n mont_(x, x, n, np);\r\n\r\n if (k2 & y[k1]) //if next bit is a 1\r\n mont_(x, s3, n, np);\r\n }\r\n}\r\n\r\n\r\n//do x=x*y*Ri mod n for bigInts x,y,n,\r\n// where Ri = 2**(-kn*bpe) mod n, and kn is the\r\n// number of elements in the n array, not\r\n// counting leading zeros.\r\n//x array must have at least as many elemnts as the n array\r\n//It's OK if x and y are the same variable.\r\n//must have:\r\n// x,y < n\r\n// n is odd\r\n// np = -(n^(-1)) mod radix\r\nfunction mont_(x, y, n, np) {\r\n var i, j, c, ui, t, ks;\r\n var kn=n.length;\r\n var ky=y.length;\r\n\r\n if (sa.length!=kn)\r\n sa=new Array(kn);\r\n\r\n copyInt_(sa, 0);\r\n\r\n for (;kn>0 && n[kn-1]==0; kn--); //ignore leading zeros of n\r\n for (;ky>0 && y[ky-1]==0; ky--); //ignore leading zeros of y\r\n ks=sa.length-1; //sa will never have more than this many nonzero elements.\r\n\r\n //the following loop consumes 95% of the runtime for randTruePrime_() and powMod_() for large numbers\r\n for (i=0; i<kn; i++) {\r\n t=sa[0]+x[i]*y[0];\r\n ui=((t & mask) * np) & mask; //the inner \"& mask\" was needed on Safari (but not MSIE) at one time\r\n c=(t+ui*n[0]) >> bpe;\r\n t=x[i];\r\n\r\n //do sa=(sa+x[i]*y+ui*n)/b where b=2**bpe. Loop is unrolled 5-fold for speed\r\n j=1;\r\n for (;j<ky-4;) { c+=sa[j]+ui*n[j]+t*y[j]; sa[j-1]=c & mask; c>>=bpe; j++;\r\n c+=sa[j]+ui*n[j]+t*y[j]; sa[j-1]=c & mask; c>>=bpe; j++;\r\n c+=sa[j]+ui*n[j]+t*y[j]; sa[j-1]=c & mask; c>>=bpe; j++;\r\n c+=sa[j]+ui*n[j]+t*y[j]; sa[j-1]=c & mask; c>>=bpe; j++;\r\n c+=sa[j]+ui*n[j]+t*y[j]; sa[j-1]=c & mask; c>>=bpe; j++; }\r\n for (;j<ky;) { c+=sa[j]+ui*n[j]+t*y[j]; sa[j-1]=c & mask; c>>=bpe; j++; }\r\n for (;j<kn-4;) { c+=sa[j]+ui*n[j]; sa[j-1]=c & mask; c>>=bpe; j++;\r\n c+=sa[j]+ui*n[j]; sa[j-1]=c & mask; c>>=bpe; j++;\r\n c+=sa[j]+ui*n[j]; sa[j-1]=c & mask; c>>=bpe; j++;\r\n c+=sa[j]+ui*n[j]; sa[j-1]=c & mask; c>>=bpe; j++;\r\n c+=sa[j]+ui*n[j]; sa[j-1]=c & mask; c>>=bpe; j++; }\r\n for (;j<kn;) { c+=sa[j]+ui*n[j]; sa[j-1]=c & mask; c>>=bpe; j++; }\r\n for (;j<ks;) { c+=sa[j]; sa[j-1]=c & mask; c>>=bpe; j++; }\r\n sa[j-1]=c & mask;\r\n }\r\n\r\n if (!greater(n, sa))\r\n sub_(sa, n);\r\n copy_(x, sa);\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./vendor/leemon.js","'use strict';\n\n\nvar zlib_inflate = require('./zlib/inflate');\nvar utils = require('./utils/common');\nvar strings = require('./utils/strings');\nvar c = require('./zlib/constants');\nvar msg = require('./zlib/messages');\nvar ZStream = require('./zlib/zstream');\nvar GZheader = require('./zlib/gzheader');\n\nvar toString = Object.prototype.toString;\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overriden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Inflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n if (!(this instanceof Inflate)) return new Inflate(options);\n\n this.options = utils.assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n}\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var dictionary = this.options.dictionary;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n var dict;\n\n // Flag to properly process Z_BUF_ERROR on testing inflate call\n // when we check that all output data was flushed.\n var allowBufError = false;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = strings.binstring2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */\n\n if (status === c.Z_NEED_DICT && dictionary) {\n // Convert data if needed\n if (typeof dictionary === 'string') {\n dict = strings.string2buf(dictionary);\n } else if (toString.call(dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(dictionary);\n } else {\n dict = dictionary;\n }\n\n status = zlib_inflate.inflateSetDictionary(this.strm, dict);\n\n }\n\n if (status === c.Z_BUF_ERROR && allowBufError === true) {\n status = c.Z_OK;\n allowBufError = false;\n }\n\n if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n\n // When no more input data, we should check that internal inflate buffers\n // are flushed. The only way to do it when avail_out = 0 - run one more\n // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n // Here we set flag to process this error properly.\n //\n // NOTE. Deflate does not return error in this case and does not needs such\n // logic.\n if (strm.avail_in === 0 && strm.avail_out === 0) {\n allowBufError = true;\n }\n\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);\n\n if (status === c.Z_STREAM_END) {\n _mode = c.Z_FINISH;\n }\n\n // Finalize on the last chunk.\n if (_mode === c.Z_FINISH) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === c.Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === c.Z_SYNC_FLUSH) {\n this.onEnd(c.Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === c.Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 alligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg || msg[inflator.err]; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip = inflate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/inflate.js\n// module id = 128\n// module chunks = 0","// String encode/decode helpers\n'use strict';\n\n\nvar utils = require('./common');\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safary\n//\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new utils.Buf8(256);\nfor (var q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new utils.Buf8(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n // use fallback for big arrays to avoid stack overflow\n if (len < 65537) {\n if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for (var i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function (buf) {\n return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function (str) {\n var buf = new utils.Buf8(str.length);\n for (var i = 0, len = buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nexports.utf8border = function (buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Fuckup - very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means vuffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/utils/strings.js\n// module id = 129\n// module chunks = 0","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/zlib/adler32.js\n// module id = 130\n// module chunks = 0","'use strict';\n\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/zlib/constants.js\n// module id = 131\n// module chunks = 0","'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/zlib/crc32.js\n// module id = 132\n// module chunks = 0","'use strict';\n\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/zlib/gzheader.js\n// module id = 133\n// module chunks = 0","'use strict';\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/zlib/inffast.js\n// module id = 134\n// module chunks = 0","'use strict';\n\n\nvar utils = require('../utils/common');\nvar adler32 = require('./adler32');\nvar crc32 = require('./crc32');\nvar inflate_fast = require('./inffast');\nvar inflate_table = require('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' insdead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n}\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/zlib/inflate.js\n// module id = 135\n// module chunks = 0","'use strict';\n\n\nvar utils = require('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/zlib/inftrees.js\n// module id = 136\n// module chunks = 0","'use strict';\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/zlib/messages.js\n// module id = 137\n// module chunks = 0","'use strict';\n\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/pako/lib/zlib/zstream.js\n// module id = 138\n// module chunks = 0","module.exports = {\n F: require('./src/F'),\n T: require('./src/T'),\n __: require('./src/__'),\n add: require('./src/add'),\n addIndex: require('./src/addIndex'),\n adjust: require('./src/adjust'),\n all: require('./src/all'),\n allPass: require('./src/allPass'),\n always: require('./src/always'),\n and: require('./src/and'),\n any: require('./src/any'),\n anyPass: require('./src/anyPass'),\n ap: require('./src/ap'),\n aperture: require('./src/aperture'),\n append: require('./src/append'),\n apply: require('./src/apply'),\n applySpec: require('./src/applySpec'),\n ascend: require('./src/ascend'),\n assoc: require('./src/assoc'),\n assocPath: require('./src/assocPath'),\n binary: require('./src/binary'),\n bind: require('./src/bind'),\n both: require('./src/both'),\n call: require('./src/call'),\n chain: require('./src/chain'),\n clamp: require('./src/clamp'),\n clone: require('./src/clone'),\n comparator: require('./src/comparator'),\n complement: require('./src/complement'),\n compose: require('./src/compose'),\n composeK: require('./src/composeK'),\n composeP: require('./src/composeP'),\n concat: require('./src/concat'),\n cond: require('./src/cond'),\n construct: require('./src/construct'),\n constructN: require('./src/constructN'),\n contains: require('./src/contains'),\n converge: require('./src/converge'),\n countBy: require('./src/countBy'),\n curry: require('./src/curry'),\n curryN: require('./src/curryN'),\n dec: require('./src/dec'),\n descend: require('./src/descend'),\n defaultTo: require('./src/defaultTo'),\n difference: require('./src/difference'),\n differenceWith: require('./src/differenceWith'),\n dissoc: require('./src/dissoc'),\n dissocPath: require('./src/dissocPath'),\n divide: require('./src/divide'),\n drop: require('./src/drop'),\n dropLast: require('./src/dropLast'),\n dropLastWhile: require('./src/dropLastWhile'),\n dropRepeats: require('./src/dropRepeats'),\n dropRepeatsWith: require('./src/dropRepeatsWith'),\n dropWhile: require('./src/dropWhile'),\n either: require('./src/either'),\n empty: require('./src/empty'),\n eqBy: require('./src/eqBy'),\n eqProps: require('./src/eqProps'),\n equals: require('./src/equals'),\n evolve: require('./src/evolve'),\n filter: require('./src/filter'),\n find: require('./src/find'),\n findIndex: require('./src/findIndex'),\n findLast: require('./src/findLast'),\n findLastIndex: require('./src/findLastIndex'),\n flatten: require('./src/flatten'),\n flip: require('./src/flip'),\n forEach: require('./src/forEach'),\n forEachObjIndexed: require('./src/forEachObjIndexed'),\n fromPairs: require('./src/fromPairs'),\n groupBy: require('./src/groupBy'),\n groupWith: require('./src/groupWith'),\n gt: require('./src/gt'),\n gte: require('./src/gte'),\n has: require('./src/has'),\n hasIn: require('./src/hasIn'),\n head: require('./src/head'),\n identical: require('./src/identical'),\n identity: require('./src/identity'),\n ifElse: require('./src/ifElse'),\n inc: require('./src/inc'),\n indexBy: require('./src/indexBy'),\n indexOf: require('./src/indexOf'),\n init: require('./src/init'),\n insert: require('./src/insert'),\n insertAll: require('./src/insertAll'),\n intersection: require('./src/intersection'),\n intersectionWith: require('./src/intersectionWith'),\n intersperse: require('./src/intersperse'),\n into: require('./src/into'),\n invert: require('./src/invert'),\n invertObj: require('./src/invertObj'),\n invoker: require('./src/invoker'),\n is: require('./src/is'),\n isArrayLike: require('./src/isArrayLike'),\n isEmpty: require('./src/isEmpty'),\n isNil: require('./src/isNil'),\n join: require('./src/join'),\n juxt: require('./src/juxt'),\n keys: require('./src/keys'),\n keysIn: require('./src/keysIn'),\n last: require('./src/last'),\n lastIndexOf: require('./src/lastIndexOf'),\n length: require('./src/length'),\n lens: require('./src/lens'),\n lensIndex: require('./src/lensIndex'),\n lensPath: require('./src/lensPath'),\n lensProp: require('./src/lensProp'),\n lift: require('./src/lift'),\n liftN: require('./src/liftN'),\n lt: require('./src/lt'),\n lte: require('./src/lte'),\n map: require('./src/map'),\n mapAccum: require('./src/mapAccum'),\n mapAccumRight: require('./src/mapAccumRight'),\n mapObjIndexed: require('./src/mapObjIndexed'),\n match: require('./src/match'),\n mathMod: require('./src/mathMod'),\n max: require('./src/max'),\n maxBy: require('./src/maxBy'),\n mean: require('./src/mean'),\n median: require('./src/median'),\n memoize: require('./src/memoize'),\n merge: require('./src/merge'),\n mergeAll: require('./src/mergeAll'),\n mergeWith: require('./src/mergeWith'),\n mergeWithKey: require('./src/mergeWithKey'),\n min: require('./src/min'),\n minBy: require('./src/minBy'),\n modulo: require('./src/modulo'),\n multiply: require('./src/multiply'),\n nAry: require('./src/nAry'),\n negate: require('./src/negate'),\n none: require('./src/none'),\n not: require('./src/not'),\n nth: require('./src/nth'),\n nthArg: require('./src/nthArg'),\n objOf: require('./src/objOf'),\n of: require('./src/of'),\n omit: require('./src/omit'),\n once: require('./src/once'),\n or: require('./src/or'),\n over: require('./src/over'),\n pair: require('./src/pair'),\n partial: require('./src/partial'),\n partialRight: require('./src/partialRight'),\n partition: require('./src/partition'),\n path: require('./src/path'),\n pathEq: require('./src/pathEq'),\n pathOr: require('./src/pathOr'),\n pathSatisfies: require('./src/pathSatisfies'),\n pick: require('./src/pick'),\n pickAll: require('./src/pickAll'),\n pickBy: require('./src/pickBy'),\n pipe: require('./src/pipe'),\n pipeK: require('./src/pipeK'),\n pipeP: require('./src/pipeP'),\n pluck: require('./src/pluck'),\n prepend: require('./src/prepend'),\n product: require('./src/product'),\n project: require('./src/project'),\n prop: require('./src/prop'),\n propEq: require('./src/propEq'),\n propIs: require('./src/propIs'),\n propOr: require('./src/propOr'),\n propSatisfies: require('./src/propSatisfies'),\n props: require('./src/props'),\n range: require('./src/range'),\n reduce: require('./src/reduce'),\n reduceBy: require('./src/reduceBy'),\n reduceRight: require('./src/reduceRight'),\n reduceWhile: require('./src/reduceWhile'),\n reduced: require('./src/reduced'),\n reject: require('./src/reject'),\n remove: require('./src/remove'),\n repeat: require('./src/repeat'),\n replace: require('./src/replace'),\n reverse: require('./src/reverse'),\n scan: require('./src/scan'),\n sequence: require('./src/sequence'),\n set: require('./src/set'),\n slice: require('./src/slice'),\n sort: require('./src/sort'),\n sortBy: require('./src/sortBy'),\n sortWith: require('./src/sortWith'),\n split: require('./src/split'),\n splitAt: require('./src/splitAt'),\n splitEvery: require('./src/splitEvery'),\n splitWhen: require('./src/splitWhen'),\n subtract: require('./src/subtract'),\n sum: require('./src/sum'),\n symmetricDifference: require('./src/symmetricDifference'),\n symmetricDifferenceWith: require('./src/symmetricDifferenceWith'),\n tail: require('./src/tail'),\n take: require('./src/take'),\n takeLast: require('./src/takeLast'),\n takeLastWhile: require('./src/takeLastWhile'),\n takeWhile: require('./src/takeWhile'),\n tap: require('./src/tap'),\n test: require('./src/test'),\n times: require('./src/times'),\n toLower: require('./src/toLower'),\n toPairs: require('./src/toPairs'),\n toPairsIn: require('./src/toPairsIn'),\n toString: require('./src/toString'),\n toUpper: require('./src/toUpper'),\n transduce: require('./src/transduce'),\n transpose: require('./src/transpose'),\n traverse: require('./src/traverse'),\n trim: require('./src/trim'),\n tryCatch: require('./src/tryCatch'),\n type: require('./src/type'),\n unapply: require('./src/unapply'),\n unary: require('./src/unary'),\n uncurryN: require('./src/uncurryN'),\n unfold: require('./src/unfold'),\n union: require('./src/union'),\n unionWith: require('./src/unionWith'),\n uniq: require('./src/uniq'),\n uniqBy: require('./src/uniqBy'),\n uniqWith: require('./src/uniqWith'),\n unless: require('./src/unless'),\n unnest: require('./src/unnest'),\n until: require('./src/until'),\n update: require('./src/update'),\n useWith: require('./src/useWith'),\n values: require('./src/values'),\n valuesIn: require('./src/valuesIn'),\n view: require('./src/view'),\n when: require('./src/when'),\n where: require('./src/where'),\n whereEq: require('./src/whereEq'),\n without: require('./src/without'),\n xprod: require('./src/xprod'),\n zip: require('./src/zip'),\n zipObj: require('./src/zipObj'),\n zipWith: require('./src/zipWith')\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/index.js\n// module id = 139\n// module chunks = 0","var always = require('./always');\n\n\n/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.always, R.T\n * @example\n *\n * R.F(); //=> false\n */\nmodule.exports = always(false);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/F.js\n// module id = 140\n// module chunks = 0","var always = require('./always');\n\n\n/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.always, R.F\n * @example\n *\n * R.T(); //=> true\n */\nmodule.exports = always(true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/T.js\n// module id = 141\n// module chunks = 0","/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * var greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\nmodule.exports = {'@@functional/placeholder': true};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/__.js\n// module id = 142\n// module chunks = 0","var _concat = require('./internal/_concat');\nvar _curry1 = require('./internal/_curry1');\nvar curryN = require('./curryN');\n\n\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, Ramda's simple `map` function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> (a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * var mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\nmodule.exports = _curry1(function addIndex(fn) {\n return curryN(fn.length, function() {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = function() {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n return fn.apply(this, args);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/addIndex.js\n// module id = 143\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xall = require('./internal/_xall');\n\n\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * var equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\nmodule.exports = _curry2(_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n idx += 1;\n }\n return true;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/all.js\n// module id = 144\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar curryN = require('./curryN');\nvar max = require('./max');\nvar pluck = require('./pluck');\nvar reduce = require('./reduce');\n\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * var isQueen = R.propEq('rank', 'Q');\n * var isSpade = R.propEq('suit', '♠︎');\n * var isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\nmodule.exports = _curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function() {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n idx += 1;\n }\n return true;\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/allPass.js\n// module id = 145\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar curryN = require('./curryN');\nvar max = require('./max');\nvar pluck = require('./pluck');\nvar reduce = require('./reduce');\n\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * var isClub = R.propEq('suit', '♣');\n * var isSpade = R.propEq('suit', '♠');\n * var isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\nmodule.exports = _curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function() {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n idx += 1;\n }\n return false;\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/anyPass.js\n// module id = 146\n// module chunks = 0","var _aperture = require('./internal/_aperture');\nvar _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xaperture = require('./internal/_xaperture');\n\n\n/**\n * Returns a new list, composed of n-tuples of consecutive elements If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\nmodule.exports = _curry2(_dispatchable([], _xaperture, _aperture));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/aperture.js\n// module id = 147\n// module chunks = 0","var _concat = require('./internal/_concat');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\nmodule.exports = _curry2(function append(el, list) {\n return _concat(list, [el]);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/append.js\n// module id = 148\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar apply = require('./apply');\nvar curryN = require('./curryN');\nvar map = require('./map');\nvar max = require('./max');\nvar pluck = require('./pluck');\nvar reduce = require('./reduce');\nvar values = require('./values');\n\n\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * var getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\nmodule.exports = _curry1(function applySpec(spec) {\n spec = map(function(v) { return typeof v == 'function' ? v : applySpec(v); },\n spec);\n return curryN(reduce(max, 0, pluck('length', values(spec))),\n function() {\n var args = arguments;\n return map(function(f) { return apply(f, args); }, spec);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/applySpec.js\n// module id = 149\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @example\n *\n * var byAge = R.ascend(R.prop('age'));\n * var people = [\n * // ...\n * ];\n * var peopleByYoungestFirst = R.sort(byAge, people);\n */\nmodule.exports = _curry3(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/ascend.js\n// module id = 150\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar nAry = require('./nAry');\n\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @example\n *\n * var takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * var takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\nmodule.exports = _curry1(function binary(fn) {\n return nAry(2, fn);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/binary.js\n// module id = 151\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _isFunction = require('./internal/_isFunction');\nvar and = require('./and');\nvar lift = require('./lift');\n\n\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * var gt10 = R.gt(R.__, 10)\n * var lt20 = R.lt(R.__, 20)\n * var f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n */\nmodule.exports = _curry2(function both(f, g) {\n return _isFunction(f) ?\n function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } :\n lift(and)(f, g);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/both.js\n// module id = 152\n// module chunks = 0","var curry = require('./curry');\n\n\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * `R.converge`: the left branch can produce a function while the right branch\n * produces a value to be passed to that function as an argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * var indentN = R.pipe(R.times(R.always(' ')),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * var format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\nmodule.exports = curry(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/call.js\n// module id = 153\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\nmodule.exports = _curry3(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n return value < min ? min :\n value > max ? max :\n value;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/clamp.js\n// module id = 154\n// module chunks = 0","var _clone = require('./internal/_clone');\nvar _curry1 = require('./internal/_curry1');\n\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * var objects = [{}, {}, {}];\n * var objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\nmodule.exports = _curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ?\n value.clone() :\n _clone(value, [], [], true);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/clone.js\n// module id = 155\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a, b -> Boolean) -> (a, b -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * var byAge = R.comparator((a, b) => a.age < b.age);\n * var people = [\n * // ...\n * ];\n * var peopleByIncreasingAge = R.sort(byAge, people);\n */\nmodule.exports = _curry1(function comparator(pred) {\n return function(a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/comparator.js\n// module id = 156\n// module chunks = 0","var lift = require('./lift');\nvar not = require('./not');\n\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * var isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\nmodule.exports = lift(not);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/complement.js\n// module id = 157\n// module chunks = 0","var pipeP = require('./pipeP');\nvar reverse = require('./reverse');\n\n\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The rightmost function may have any arity; the remaining\n * functions must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @example\n *\n * var db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * var lookupUser = (userId) => Promise.resolve(db.users[userId])\n * var lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * var followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\nmodule.exports = function composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n return pipeP.apply(this, reverse(arguments));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/composeP.js\n// module id = 158\n// module chunks = 0","var _arity = require('./internal/_arity');\nvar _curry1 = require('./internal/_curry1');\nvar map = require('./map');\nvar max = require('./max');\nvar reduce = require('./reduce');\n\n\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @example\n *\n * var fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\nmodule.exports = _curry1(function cond(pairs) {\n var arity = reduce(max,\n 0,\n map(function(pair) { return pair[0].length; }, pairs));\n return _arity(arity, function() {\n var idx = 0;\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n idx += 1;\n }\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/cond.js\n// module id = 159\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar constructN = require('./constructN');\n\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * var AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * var animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * var animalSighting = R.invoker(0, 'sighting');\n * var sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\nmodule.exports = _curry1(function construct(Fn) {\n return constructN(Fn.length, Fn);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/construct.js\n// module id = 160\n// module chunks = 0","var _contains = require('./internal/_contains');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns `true` if the specified value is equal, in `R.equals` terms, to at\n * least one element of the given list; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n */\nmodule.exports = _curry2(_contains);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/contains.js\n// module id = 161\n// module chunks = 0","var reduceBy = require('./reduceBy');\n\n\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * var numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * var letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\nmodule.exports = reduceBy(function(acc, elem) { return acc + 1; }, 0);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/countBy.js\n// module id = 162\n// module chunks = 0","var add = require('./add');\n\n\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\nmodule.exports = add(-1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/dec.js\n// module id = 163\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @example\n *\n * var byAge = R.descend(R.prop('age'));\n * var people = [\n * // ...\n * ];\n * var peopleByOldestFirst = R.sort(byAge, people);\n */\nmodule.exports = _curry3(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/descend.js\n// module id = 164\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar assoc = require('./assoc');\nvar dissoc = require('./dissoc');\n\n\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @sig [String] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\nmodule.exports = _curry2(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n case 1:\n return dissoc(path[0], obj);\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n return obj[head] == null ? obj : assoc(head, dissocPath(tail, obj[head]), obj);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/dissocPath.js\n// module id = 165\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * var half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * var reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\nmodule.exports = _curry2(function divide(a, b) { return a / b; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/divide.js\n// module id = 166\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _dropLast = require('./internal/_dropLast');\nvar _xdropLast = require('./internal/_xdropLast');\n\n\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\nmodule.exports = _curry2(_dispatchable([], _xdropLast, _dropLast));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/dropLast.js\n// module id = 167\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _dropLastWhile = require('./internal/_dropLastWhile');\nvar _xdropLastWhile = require('./internal/_xdropLastWhile');\n\n\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @param {Function} predicate The function to be called on each element\n * @param {Array} list The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * var lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n */\nmodule.exports = _curry2(_dispatchable([], _xdropLastWhile, _dropLastWhile));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/dropLastWhile.js\n// module id = 168\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xdropRepeatsWith = require('./internal/_xdropRepeatsWith');\nvar dropRepeatsWith = require('./dropRepeatsWith');\nvar equals = require('./equals');\n\n\n/**\n * Returns a new list without any consecutively repeating elements. `R.equals`\n * is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\nmodule.exports = _curry1(_dispatchable([], _xdropRepeatsWith(equals), dropRepeatsWith(equals)));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/dropRepeats.js\n// module id = 169\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xdropWhile = require('./internal/_xdropWhile');\n\n\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @param {Function} fn The function called per iteration.\n * @param {Array} list The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * var lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n */\nmodule.exports = _curry2(_dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len && pred(list[idx])) {\n idx += 1;\n }\n return Array.prototype.slice.call(list, idx);\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/dropWhile.js\n// module id = 170\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _isFunction = require('./internal/_isFunction');\nvar lift = require('./lift');\nvar or = require('./or');\n\n\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * var gt10 = x => x > 10;\n * var even = x => x % 2 === 0;\n * var f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n */\nmodule.exports = _curry2(function either(f, g) {\n return _isFunction(f) ?\n function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } :\n lift(or)(f, g);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/either.js\n// module id = 171\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar equals = require('./equals');\n\n\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\nmodule.exports = _curry3(function eqBy(f, x, y) {\n return equals(f(x), f(y));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/eqBy.js\n// module id = 172\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar equals = require('./equals');\n\n\n/**\n * Reports whether two objects have the same value, in `R.equals` terms, for\n * the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * var o1 = { a: 1, b: 2, c: 3, d: 4 };\n * var o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\nmodule.exports = _curry3(function eqProps(prop, obj1, obj2) {\n return equals(obj1[prop], obj2[prop]);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/eqProps.js\n// module id = 173\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * var tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * var transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\nmodule.exports = _curry2(function evolve(transformations, object) {\n var result = {};\n var transformation, key, type;\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key])\n : transformation && type === 'object' ? evolve(transformation, object[key])\n : object[key];\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/evolve.js\n// module id = 174\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xfind = require('./internal/_xfind');\n\n\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * var xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\nmodule.exports = _curry2(_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx += 1;\n }\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/find.js\n// module id = 175\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xfindIndex = require('./internal/_xfindIndex');\n\n\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * var xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\nmodule.exports = _curry2(_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/findIndex.js\n// module id = 176\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xfindLast = require('./internal/_xfindLast');\n\n\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * var xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\nmodule.exports = _curry2(_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx -= 1;\n }\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/findLast.js\n// module id = 177\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xfindLastIndex = require('./internal/_xfindLastIndex');\n\n\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * var xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\nmodule.exports = _curry2(_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/findLastIndex.js\n// module id = 178\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _makeFlat = require('./internal/_makeFlat');\n\n\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\nmodule.exports = _curry1(_makeFlat(true));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/flatten.js\n// module id = 179\n// module chunks = 0","var _checkForMethod = require('./internal/_checkForMethod');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * var printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\nmodule.exports = _curry2(_checkForMethod('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n return list;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/forEach.js\n// module id = 180\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar keys = require('./keys');\n\n\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * var printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\nmodule.exports = _curry2(function forEachObjIndexed(fn, obj) {\n var keyList = keys(obj);\n var idx = 0;\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n return obj;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/forEachObjIndexed.js\n// module id = 181\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\nmodule.exports = _curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/fromPairs.js\n// module id = 182\n// module chunks = 0","var _checkForMethod = require('./internal/_checkForMethod');\nvar _curry2 = require('./internal/_curry2');\nvar reduceBy = require('./reduceBy');\n\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.transduce\n * @example\n *\n * var byGrade = R.groupBy(function(student) {\n * var score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * var students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\nmodule.exports = _curry2(_checkForMethod('groupBy', reduceBy(function(acc, item) {\n if (acc == null) {\n acc = [];\n }\n acc.push(item);\n return acc;\n}, null)));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/groupBy.js\n// module id = 183\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all \"equal\" according to the provided equality function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of equal elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\nmodule.exports = _curry2(function(fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n var nextidx = idx + 1;\n while (nextidx < len && fn(list[idx], list[nextidx])) {\n nextidx += 1;\n }\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n return res;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/groupWith.js\n// module id = 184\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\nmodule.exports = _curry2(function gt(a, b) { return a > b; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/gt.js\n// module id = 185\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\nmodule.exports = _curry2(function gte(a, b) { return a >= b; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/gte.js\n// module id = 186\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _has = require('./internal/_has');\n\n\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * var hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * var point = {x: 0, y: 0};\n * var pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\nmodule.exports = _curry2(_has);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/has.js\n// module id = 187\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * var square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\nmodule.exports = _curry2(function hasIn(prop, obj) {\n return prop in obj;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/hasIn.js\n// module id = 188\n// module chunks = 0","var nth = require('./nth');\n\n\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\nmodule.exports = nth(0);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/head.js\n// module id = 189\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar curryN = require('./curryN');\n\n\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new unary function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when\n * @example\n *\n * var incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\nmodule.exports = _curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length),\n function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n }\n );\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/ifElse.js\n// module id = 190\n// module chunks = 0","var add = require('./add');\n\n\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\nmodule.exports = add(1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/inc.js\n// module id = 191\n// module chunks = 0","var reduceBy = require('./reduceBy');\n\n\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * var list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\nmodule.exports = reduceBy(function(acc, elem) { return elem; }, null);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/indexBy.js\n// module id = 192\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _indexOf = require('./internal/_indexOf');\nvar _isArray = require('./internal/_isArray');\n\n\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. `R.equals` is used to determine\n * equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\nmodule.exports = _curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ?\n xs.indexOf(target) :\n _indexOf(xs, target, 0);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/indexOf.js\n// module id = 193\n// module chunks = 0","var slice = require('./slice');\n\n\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\nmodule.exports = slice(0, -1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/init.js\n// module id = 194\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Inserts the supplied element into the list, at index `index`. _Note that\n * this is not destructive_: it returns a copy of the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\nmodule.exports = _curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/insert.js\n// module id = 195\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Inserts the sub-list into the list, at index `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\nmodule.exports = _curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx),\n elts,\n Array.prototype.slice.call(list, idx));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/insertAll.js\n// module id = 196\n// module chunks = 0","var _contains = require('./_contains');\n\n\n// A simple Set type that honours R.equals semantics\nmodule.exports = (function() {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function(item) {\n return !hasOrAdd(item, true, this);\n };\n\n //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n _Set.prototype.has = function(item) {\n return hasOrAdd(item, false, this);\n };\n\n //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n function hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n return false;\n }\n }\n // these types can all utilise the native Set\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n if (!_contains(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n return false;\n }\n return true;\n }\n /* falls through */\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n // scan through all previously applied items\n if (!_contains(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n }\n return _Set;\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_Set.js\n// module id = 197\n// module chunks = 0","module.exports = function _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n return acc;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_aperture.js\n// module id = 198\n// module chunks = 0","module.exports = function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_arrayFromIterator.js\n// module id = 199\n// module chunks = 0","var take = require('../take');\n\nmodule.exports = function dropLast(n, xs) {\n return take(n < xs.length ? xs.length - n : 0, xs);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_dropLast.js\n// module id = 200\n// module chunks = 0","module.exports = function dropLastWhile(pred, list) {\n var idx = list.length - 1;\n while (idx >= 0 && pred(list[idx])) {\n idx -= 1;\n }\n return Array.prototype.slice.call(list, 0, idx + 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_dropLastWhile.js\n// module id = 201\n// module chunks = 0","var _arrayFromIterator = require('./_arrayFromIterator');\nvar _functionName = require('./_functionName');\nvar _has = require('./_has');\nvar identical = require('../identical');\nvar keys = require('../keys');\nvar type = require('../type');\n\n\nmodule.exports = function _equals(a, b, stackA, stackB) {\n if (identical(a, b)) {\n return true;\n }\n\n if (type(a) !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) &&\n typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (type(a)) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' &&\n _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && identical(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!identical(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source &&\n a.global === b.global &&\n a.ignoreCase === b.ignoreCase &&\n a.multiline === b.multiline &&\n a.sticky === b.sticky &&\n a.unicode === b.unicode)) {\n return false;\n }\n break;\n case 'Map':\n case 'Set':\n if (!_equals(_arrayFromIterator(a.entries()), _arrayFromIterator(b.entries()), stackA, stackB)) {\n return false;\n }\n break;\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n break;\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n\n stackA.push(a);\n stackB.push(b);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], stackA, stackB))) {\n return false;\n }\n idx -= 1;\n }\n stackA.pop();\n stackB.pop();\n return true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_equals.js\n// module id = 202\n// module chunks = 0","var _forceReduced = require('./_forceReduced');\nvar _reduce = require('./_reduce');\nvar _xfBase = require('./_xfBase');\nvar isArrayLike = require('../isArrayLike');\n\nmodule.exports = (function() {\n var preservingReduced = function(xf) {\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function(result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function(result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n }\n };\n };\n\n return function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function(result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function(result, input) {\n return !isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input);\n }\n };\n };\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_flatCat.js\n// module id = 203\n// module chunks = 0","module.exports = function _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_forceReduced.js\n// module id = 204\n// module chunks = 0","module.exports = function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_functionName.js\n// module id = 205\n// module chunks = 0","module.exports = function _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_isRegExp.js\n// module id = 206\n// module chunks = 0","var _has = require('./_has');\n\n// Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\nmodule.exports = function _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n while (idx < length) {\n var source = arguments[idx];\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n idx += 1;\n }\n return output;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_objectAssign.js\n// module id = 207\n// module chunks = 0","module.exports = function _of(x) { return [x]; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_of.js\n// module id = 208\n// module chunks = 0","module.exports = function _pipe(f, g) {\n return function() {\n return g.call(this, f.apply(this, arguments));\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_pipe.js\n// module id = 209\n// module chunks = 0","module.exports = function _pipeP(f, g) {\n return function() {\n var ctx = this;\n return f.apply(ctx, arguments).then(function(x) {\n return g.call(ctx, x);\n });\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_pipeP.js\n// module id = 210\n// module chunks = 0","module.exports = function _quote(s) {\n var escaped = s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\v/g, '\\\\v')\n .replace(/\\0/g, '\\\\0');\n\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_quote.js\n// module id = 211\n// module chunks = 0","var _assign = require('./_assign');\nvar _identity = require('./_identity');\nvar _isTransformer = require('./_isTransformer');\nvar isArrayLike = require('../isArrayLike');\nvar objOf = require('../objOf');\n\n\nmodule.exports = (function() {\n var _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function(xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity\n };\n var _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function(a, b) { return a + b; },\n '@@transducer/result': _identity\n };\n var _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function(result, input) {\n return _assign(\n result,\n isArrayLike(input) ? objOf(input[0], input[1]) : input\n );\n },\n '@@transducer/result': _identity\n };\n\n return function _stepCat(obj) {\n if (_isTransformer(obj)) {\n return obj;\n }\n if (isArrayLike(obj)) {\n return _stepCatArray;\n }\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n throw new Error('Cannot create transformer for ' + obj);\n };\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_stepCat.js\n// module id = 212\n// module chunks = 0","/**\n * Polyfill from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString>.\n */\nmodule.exports = (function() {\n var pad = function pad(n) { return (n < 10 ? '0' : '') + n; };\n\n return typeof Date.prototype.toISOString === 'function' ?\n function _toISOString(d) {\n return d.toISOString();\n } :\n function _toISOString(d) {\n return (\n d.getUTCFullYear() + '-' +\n pad(d.getUTCMonth() + 1) + '-' +\n pad(d.getUTCDate()) + 'T' +\n pad(d.getUTCHours()) + ':' +\n pad(d.getUTCMinutes()) + ':' +\n pad(d.getUTCSeconds()) + '.' +\n (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z'\n );\n };\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_toISOString.js\n// module id = 213\n// module chunks = 0","var _contains = require('./_contains');\nvar _map = require('./_map');\nvar _quote = require('./_quote');\nvar _toISOString = require('./_toISOString');\nvar keys = require('../keys');\nvar reject = require('../reject');\n\n\nmodule.exports = function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _contains(y, xs) ? '<Circular>' : _toString(y, xs);\n };\n\n // mapPairs :: (Object, [String]) -> [String]\n var mapPairs = function(obj, keys) {\n return _map(function(k) { return _quote(k) + ': ' + recur(obj[k]); }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function(k) { return /^\\d+$/.test(k); }, keys(x)))).join(', ') + ']';\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n case '[object Null]':\n return 'null';\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n case '[object Undefined]':\n return 'undefined';\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_toString.js\n// module id = 214\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _reduced = require('./_reduced');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n XAll.prototype['@@transducer/result'] = function(result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n return this.xf['@@transducer/result'](result);\n };\n XAll.prototype['@@transducer/step'] = function(result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = _reduced(this.xf['@@transducer/step'](result, false));\n }\n return result;\n };\n\n return _curry2(function _xall(f, xf) { return new XAll(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xall.js\n// module id = 215\n// module chunks = 0","var _concat = require('./_concat');\nvar _curry2 = require('./_curry2');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n XAperture.prototype['@@transducer/init'] = _xfBase.init;\n XAperture.prototype['@@transducer/result'] = function(result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n XAperture.prototype['@@transducer/step'] = function(result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n XAperture.prototype.store = function(input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n XAperture.prototype.getCopy = function() {\n return _concat(Array.prototype.slice.call(this.acc, this.pos),\n Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return _curry2(function _xaperture(n, xf) { return new XAperture(n, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xaperture.js\n// module id = 216\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _flatCat = require('./_flatCat');\nvar map = require('../map');\n\n\nmodule.exports = _curry2(function _xchain(f, xf) {\n return map(f, _flatCat(xf));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xchain.js\n// module id = 217\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n XDrop.prototype['@@transducer/init'] = _xfBase.init;\n XDrop.prototype['@@transducer/result'] = _xfBase.result;\n XDrop.prototype['@@transducer/step'] = function(result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n return this.xf['@@transducer/step'](result, input);\n };\n\n return _curry2(function _xdrop(n, xf) { return new XDrop(n, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xdrop.js\n// module id = 218\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n XDropLast.prototype['@@transducer/init'] = _xfBase.init;\n XDropLast.prototype['@@transducer/result'] = function(result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n XDropLast.prototype['@@transducer/step'] = function(result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n this.store(input);\n return result;\n };\n XDropLast.prototype.store = function(input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return _curry2(function _xdropLast(n, xf) { return new XDropLast(n, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xdropLast.js\n// module id = 219\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _reduce = require('./_reduce');\nvar _xfBase = require('./_xfBase');\n\nmodule.exports = (function() {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropLastWhile.prototype['@@transducer/result'] = function(result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n XDropLastWhile.prototype['@@transducer/step'] = function(result, input) {\n return this.f(input) ? this.retain(result, input)\n : this.flush(result, input);\n };\n XDropLastWhile.prototype.flush = function(result, input) {\n result = _reduce(\n this.xf['@@transducer/step'],\n result,\n this.retained\n );\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n XDropLastWhile.prototype.retain = function(result, input) {\n this.retained.push(input);\n return result;\n };\n\n return _curry2(function _xdropLastWhile(fn, xf) { return new XDropLastWhile(fn, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xdropLastWhile.js\n// module id = 220\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XDropWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase.result;\n XDropWhile.prototype['@@transducer/step'] = function(result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n this.f = null;\n }\n return this.xf['@@transducer/step'](result, input);\n };\n\n return _curry2(function _xdropWhile(f, xf) { return new XDropWhile(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xdropWhile.js\n// module id = 221\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n XFilter.prototype['@@transducer/step'] = function(result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return _curry2(function _xfilter(f, xf) { return new XFilter(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xfilter.js\n// module id = 222\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _reduced = require('./_reduced');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n XFind.prototype['@@transducer/result'] = function(result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFind.prototype['@@transducer/step'] = function(result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n return result;\n };\n\n return _curry2(function _xfind(f, xf) { return new XFind(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xfind.js\n// module id = 223\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _reduced = require('./_reduced');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindIndex.prototype['@@transducer/result'] = function(result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFindIndex.prototype['@@transducer/step'] = function(result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n return result;\n };\n\n return _curry2(function _xfindIndex(f, xf) { return new XFindIndex(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xfindIndex.js\n// module id = 224\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n XFindLast.prototype['@@transducer/result'] = function(result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n XFindLast.prototype['@@transducer/step'] = function(result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n return result;\n };\n\n return _curry2(function _xfindLast(f, xf) { return new XFindLast(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xfindLast.js\n// module id = 225\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindLastIndex.prototype['@@transducer/result'] = function(result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n XFindLastIndex.prototype['@@transducer/step'] = function(result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n return result;\n };\n\n return _curry2(function _xfindLastIndex(f, xf) { return new XFindLastIndex(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xfindLastIndex.js\n// module id = 226\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function(result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return _curry2(function _xmap(f, xf) { return new XMap(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xmap.js\n// module id = 227\n// module chunks = 0","var _curryN = require('./_curryN');\nvar _has = require('./_has');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n XReduceBy.prototype['@@transducer/result'] = function(result) {\n var key;\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n XReduceBy.prototype['@@transducer/step'] = function(result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return _curryN(4, [],\n function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xreduceBy.js\n// module id = 228\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _reduced = require('./_reduced');\nvar _xfBase = require('./_xfBase');\n\nmodule.exports = (function() {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\n XTake.prototype['@@transducer/step'] = function(result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.i >= this.n ? _reduced(ret) : ret;\n };\n\n return _curry2(function _xtake(n, xf) { return new XTake(n, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xtake.js\n// module id = 229\n// module chunks = 0","var _curry2 = require('./_curry2');\nvar _reduced = require('./_reduced');\nvar _xfBase = require('./_xfBase');\n\n\nmodule.exports = (function() {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XTakeWhile.prototype['@@transducer/init'] = _xfBase.init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase.result;\n XTakeWhile.prototype['@@transducer/step'] = function(result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : _reduced(result);\n };\n\n return _curry2(function _xtakeWhile(f, xf) { return new XTakeWhile(f, xf); });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/internal/_xtakeWhile.js\n// module id = 230\n// module chunks = 0","var _contains = require('./internal/_contains');\nvar _curry2 = require('./internal/_curry2');\nvar _filter = require('./internal/_filter');\nvar flip = require('./flip');\nvar uniq = require('./uniq');\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.intersectionWith\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\nmodule.exports = _curry2(function intersection(list1, list2) {\n var lookupList, filteredList;\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n return uniq(_filter(flip(_contains)(lookupList), filteredList));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/intersection.js\n// module id = 231\n// module chunks = 0","var _containsWith = require('./internal/_containsWith');\nvar _curry3 = require('./internal/_curry3');\nvar uniqWith = require('./uniqWith');\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate function that determines whether\n * the two supplied elements are equal.\n * @param {Array} list1 One list of items to compare\n * @param {Array} list2 A second list of items to compare\n * @return {Array} A new list containing those elements common to both lists.\n * @see R.intersection\n * @example\n *\n * var buffaloSpringfield = [\n * {id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}\n * ];\n * var csny = [\n * {id: 204, name: 'David Crosby'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 539, name: 'Graham Nash'},\n * {id: 177, name: 'Neil Young'}\n * ];\n *\n * R.intersectionWith(R.eqBy(R.prop('id')), buffaloSpringfield, csny);\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\nmodule.exports = _curry3(function intersectionWith(pred, list1, list2) {\n var lookupList, filteredList;\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n var results = [];\n var idx = 0;\n while (idx < filteredList.length) {\n if (_containsWith(pred, filteredList[idx], lookupList)) {\n results[results.length] = filteredList[idx];\n }\n idx += 1;\n }\n return uniqWith(pred, results);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/intersectionWith.js\n// module id = 232\n// module chunks = 0","var _checkForMethod = require('./internal/_checkForMethod');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('n', ['ba', 'a', 'a']); //=> ['ba', 'n', 'a', 'n', 'a']\n */\nmodule.exports = _curry2(_checkForMethod('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n idx += 1;\n }\n return out;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/intersperse.js\n// module id = 233\n// module chunks = 0","var _clone = require('./internal/_clone');\nvar _curry3 = require('./internal/_curry3');\nvar _isTransformer = require('./internal/_isTransformer');\nvar _reduce = require('./internal/_reduce');\nvar _stepCat = require('./internal/_stepCat');\n\n\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with R.reduce after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @example\n *\n * var numbers = [1, 2, 3, 4];\n * var transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * var intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\nmodule.exports = _curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ?\n _reduce(xf(acc), acc['@@transducer/init'](), list) :\n _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/into.js\n// module id = 234\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _has = require('./internal/_has');\nvar keys = require('./keys');\n\n\n/**\n * Same as R.invertObj, however this accounts for objects with duplicate values\n * by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys\n * in an array.\n * @example\n *\n * var raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\nmodule.exports = _curry1(function invert(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = _has(val, out) ? out[val] : (out[val] = []);\n list[list.length] = key;\n idx += 1;\n }\n return out;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/invert.js\n// module id = 235\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar keys = require('./keys');\n\n\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @example\n *\n * var raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * var raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\nmodule.exports = _curry1(function invertObj(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n return out;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/invertObj.js\n// module id = 236\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar empty = require('./empty');\nvar equals = require('./equals');\n\n\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\nmodule.exports = _curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/isEmpty.js\n// module id = 237\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\nmodule.exports = _curry1(function isNil(x) { return x == null; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/isNil.js\n// module id = 238\n// module chunks = 0","var invoker = require('./invoker');\n\n\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * var spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\nmodule.exports = invoker(1, 'join');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/join.js\n// module id = 239\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @example\n *\n * var F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * var f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\nmodule.exports = _curry1(function keysIn(obj) {\n var prop;\n var ks = [];\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n return ks;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/keysIn.js\n// module id = 240\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _isArray = require('./internal/_isArray');\nvar equals = require('./equals');\n\n\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. `R.equals` is used to determine\n * equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\nmodule.exports = _curry2(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !_isArray(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n while (idx >= 0) {\n if (equals(xs[idx], target)) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/lastIndexOf.js\n// module id = 241\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar lens = require('./lens');\nvar nth = require('./nth');\nvar update = require('./update');\n\n\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * var headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\nmodule.exports = _curry1(function lensIndex(n) {\n return lens(nth(n), update(n));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/lensIndex.js\n// module id = 242\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar assocPath = require('./assocPath');\nvar lens = require('./lens');\nvar path = require('./path');\n\n\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * var xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\nmodule.exports = _curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/lensPath.js\n// module id = 243\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar assoc = require('./assoc');\nvar lens = require('./lens');\nvar prop = require('./prop');\n\n\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * var xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\nmodule.exports = _curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/lensProp.js\n// module id = 244\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\nmodule.exports = _curry2(function lt(a, b) { return a < b; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/lt.js\n// module id = 245\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\nmodule.exports = _curry2(function lte(a, b) { return a <= b; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/lte.js\n// module id = 246\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * The mapAccum function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccumRight\n * @example\n *\n * var digits = ['1', '2', '3', '4'];\n * var appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\nmodule.exports = _curry3(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n return [tuple[0], result];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/mapAccum.js\n// module id = 247\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * The mapAccumRight function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to `mapAccum`, except moves through the input list from the right to\n * the left.\n *\n * The iterator function receives two arguments, *value* and *acc*, and should\n * return a tuple *[value, acc]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (x-> acc -> (y, acc)) -> acc -> [x] -> ([y], acc)\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * var digits = ['1', '2', '3', '4'];\n * var append = (a, b) => [a + b, a + b];\n *\n * R.mapAccumRight(append, 5, digits); //=> [['12345', '2345', '345', '45'], '12345']\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * [\n * f(b, f(c, f(d, a)[0])[0])[1],\n * f(c, f(d, a)[0])[1],\n * f(d, a)[1],\n * ]\n * f(b, f(c, f(d, a)[0])[0])[0],\n * ]\n */\nmodule.exports = _curry3(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n while (idx >= 0) {\n tuple = fn(list[idx], tuple[0]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n return [result, tuple[0]];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/mapAccumRight.js\n// module id = 248\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _reduce = require('./internal/_reduce');\nvar keys = require('./keys');\n\n\n/**\n * An Object-specific version of `map`. The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * `map` instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * var values = { x: 1, y: 2, z: 3 };\n * var prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, values); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\nmodule.exports = _curry2(function mapObjIndexed(fn, obj) {\n return _reduce(function(acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, keys(obj));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/mapObjIndexed.js\n// module id = 249\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\nmodule.exports = _curry2(function match(rx, str) {\n return str.match(rx) || [];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/match.js\n// module id = 250\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _isInteger = require('./internal/_isInteger');\n\n\n/**\n * mathMod behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, R.modulo). So while \"-17 % 5\" is -2,\n * mathMod(-17, 5) is 3. mathMod requires Integer arguments, and returns NaN\n * when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * var clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * var seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\nmodule.exports = _curry2(function mathMod(m, p) {\n if (!_isInteger(m)) { return NaN; }\n if (!_isInteger(p) || p < 1) { return NaN; }\n return ((m % p) + p) % p;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/mathMod.js\n// module id = 251\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * var square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\nmodule.exports = _curry3(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/maxBy.js\n// module id = 252\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar mean = require('./mean');\n\n\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\nmodule.exports = _curry1(function median(list) {\n var len = list.length;\n if (len === 0) {\n return NaN;\n }\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return mean(Array.prototype.slice.call(list, 0).sort(function(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/median.js\n// module id = 253\n// module chunks = 0","var _arity = require('./internal/_arity');\nvar _curry1 = require('./internal/_curry1');\nvar _has = require('./internal/_has');\nvar toString = require('./toString');\n\n\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * var count = 0;\n * var factorial = R.memoize(n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\nmodule.exports = _curry1(function memoize(fn) {\n var cache = {};\n return _arity(fn.length, function() {\n var key = toString(arguments);\n if (!_has(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n return cache[key];\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/memoize.js\n// module id = 254\n// module chunks = 0","var _assign = require('./internal/_assign');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * var resetToDefault = R.merge(R.__, {x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge({ x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: 5, z: 3 }\n */\nmodule.exports = _curry2(function merge(l, r) {\n return _assign({}, l, r);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/merge.js\n// module id = 255\n// module chunks = 0","var _assign = require('./internal/_assign');\nvar _curry1 = require('./internal/_curry1');\n\n\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\nmodule.exports = _curry1(function mergeAll(list) {\n return _assign.apply(null, [{}].concat(list));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/mergeAll.js\n// module id = 256\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar mergeWithKey = require('./mergeWithKey');\n\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object. The key will be\n * excluded from the returned object if the resulting value is `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig (a -> a -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\nmodule.exports = _curry3(function mergeWith(fn, l, r) {\n return mergeWithKey(function(_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/mergeWith.js\n// module id = 257\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\nmodule.exports = _curry2(function min(a, b) { return b < a ? b : a; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/min.js\n// module id = 258\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * var square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\nmodule.exports = _curry3(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/minBy.js\n// module id = 259\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see `mathMod`.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * var isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\nmodule.exports = _curry2(function modulo(a, b) { return a % b; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/modulo.js\n// module id = 260\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\nmodule.exports = _curry1(function negate(n) { return -n; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/negate.js\n// module id = 261\n// module chunks = 0","var _complement = require('./internal/_complement');\nvar _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xany = require('./internal/_xany');\nvar any = require('./any');\n\n\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * var isEven = n => n % 2 === 0;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isEven, [1, 3, 5, 7, 8, 11]); //=> false\n */\nmodule.exports = _curry2(_complement(_dispatchable(['any'], _xany, any)));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/none.js\n// module id = 262\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar curryN = require('./curryN');\nvar nth = require('./nth');\n\n\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\nmodule.exports = _curry1(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return curryN(arity, function() {\n return nth(n, arguments);\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/nthArg.js\n// module id = 263\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _of = require('./internal/_of');\n\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nmodule.exports = _curry1(_of);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/of.js\n// module id = 264\n// module chunks = 0","var _contains = require('./internal/_contains');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nmodule.exports = _curry2(function omit(names, obj) {\n var result = {};\n for (var prop in obj) {\n if (!_contains(prop, names)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/omit.js\n// module id = 265\n// module chunks = 0","var _arity = require('./internal/_arity');\nvar _curry1 = require('./internal/_curry1');\n\n\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * var addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\nmodule.exports = _curry1(function once(fn) {\n var called = false;\n var result;\n return _arity(fn.length, function() {\n if (called) {\n return result;\n }\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/once.js\n// module id = 266\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\nmodule.exports = _curry2(function pair(fst, snd) { return [fst, snd]; });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pair.js\n// module id = 267\n// module chunks = 0","var _concat = require('./internal/_concat');\nvar _createPartialApplicator = require('./internal/_createPartialApplicator');\n\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight\n * @example\n *\n * var multiply2 = (a, b) => a * b;\n * var double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * var greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * var sayHello = R.partial(greet, ['Hello']);\n * var sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\nmodule.exports = _createPartialApplicator(_concat);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/partial.js\n// module id = 268\n// module chunks = 0","var _concat = require('./internal/_concat');\nvar _createPartialApplicator = require('./internal/_createPartialApplicator');\nvar flip = require('./flip');\n\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * var greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * var greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\nmodule.exports = _createPartialApplicator(flip(_concat));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/partialRight.js\n// module id = 269\n// module chunks = 0","var filter = require('./filter');\nvar juxt = require('./juxt');\nvar reject = require('./reject');\n\n\n/**\n * Takes a predicate and a list or other \"filterable\" object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.contains('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.contains('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\nmodule.exports = juxt([filter, reject]);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/partition.js\n// module id = 270\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar equals = require('./equals');\nvar path = require('./path');\n\n\n/**\n * Determines whether a nested path on an object has a specific value, in\n * `R.equals` terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * var user1 = { address: { zipCode: 90210 } };\n * var user2 = { address: { zipCode: 55555 } };\n * var user3 = { name: 'Bob' };\n * var users = [ user1, user2, user3 ];\n * var isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\nmodule.exports = _curry3(function pathEq(_path, val, obj) {\n return equals(path(_path, obj), val);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pathEq.js\n// module id = 271\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar defaultTo = require('./defaultTo');\nvar path = require('./path');\n\n\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\nmodule.exports = _curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pathOr.js\n// module id = 272\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar path = require('./path');\n\n\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n */\nmodule.exports = _curry3(function pathSatisfies(pred, propPath, obj) {\n return propPath.length > 0 && pred(path(propPath, obj));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pathSatisfies.js\n// module id = 273\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\nmodule.exports = _curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n idx += 1;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pick.js\n// module id = 274\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig (v, k -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * var isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\nmodule.exports = _curry2(function pickBy(test, obj) {\n var result = {};\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pickBy.js\n// module id = 275\n// module chunks = 0","var composeK = require('./composeK');\nvar reverse = require('./reverse');\n\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(R.chain(f), R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * var getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\nmodule.exports = function pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n return composeK.apply(this, reverse(arguments));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/pipeK.js\n// module id = 276\n// module chunks = 0","var multiply = require('./multiply');\nvar reduce = require('./reduce');\n\n\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\nmodule.exports = reduce(multiply, 1);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/product.js\n// module id = 277\n// module chunks = 0","var _map = require('./internal/_map');\nvar identity = require('./identity');\nvar pickAll = require('./pickAll');\nvar useWith = require('./useWith');\n\n\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * var abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * var fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * var kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\nmodule.exports = useWith(_map, [pickAll, identity]); // passing `identity` gives correct arity\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/project.js\n// module id = 278\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar equals = require('./equals');\n\n\n/**\n * Returns `true` if the specified object property is equal, in `R.equals`\n * terms, to the given value; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.equals, R.propSatisfies\n * @example\n *\n * var abby = {name: 'Abby', age: 7, hair: 'blond'};\n * var fred = {name: 'Fred', age: 12, hair: 'brown'};\n * var rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * var alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * var kids = [abby, fred, rusty, alois];\n * var hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\nmodule.exports = _curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/propEq.js\n// module id = 279\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar is = require('./is');\n\n\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\nmodule.exports = _curry3(function propIs(type, name, obj) {\n return is(type, obj[name]);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/propIs.js\n// module id = 280\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar _has = require('./internal/_has');\n\n\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * var alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * var favorite = R.prop('favoriteLibrary');\n * var favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\nmodule.exports = _curry3(function propOr(val, p, obj) {\n return (obj != null && _has(p, obj)) ? obj[p] : val;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/propOr.js\n// module id = 281\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\nmodule.exports = _curry3(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/propSatisfies.js\n// module id = 282\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * var fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\nmodule.exports = _curry2(function props(ps, obj) {\n var len = ps.length;\n var out = [];\n var idx = 0;\n\n while (idx < len) {\n out[idx] = obj[ps[idx]];\n idx += 1;\n }\n\n return out;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/props.js\n// module id = 283\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _isNumber = require('./internal/_isNumber');\n\n\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in tthe set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\nmodule.exports = _curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n var result = [];\n var n = from;\n while (n < to) {\n result.push(n);\n n += 1;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/range.js\n// module id = 284\n// module chunks = 0","var _curryN = require('./internal/_curryN');\nvar _reduce = require('./internal/_reduce');\nvar _reduced = require('./internal/_reduced');\n\n\n/**\n * Like `reduce`, `reduceWhile` returns a single item by iterating through\n * the list, successively calling the iterator function. `reduceWhile` also\n * takes a predicate that is evaluated before each step. If the predicate returns\n * `false`, it \"short-circuits\" the iteration and returns the current value\n * of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * var isOdd = (acc, x) => x % 2 === 1;\n * var xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * var ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\nmodule.exports = _curryN(4, [], function _reduceWhile(pred, fn, a, list) {\n return _reduce(function(acc, x) {\n return pred(acc, x) ? fn(acc, x) : _reduced(acc);\n }, a, list);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/reduceWhile.js\n// module id = 285\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _reduced = require('./internal/_reduced');\n\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is unavailable to functions not explicitly listed\n * above. For instance, it is not currently supported by reduceRight.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.transduce\n * @example\n *\n * R.reduce(\n * R.pipe(R.add, R.when(R.gte(R.__, 10), R.reduced)),\n * 0,\n * [1, 2, 3, 4, 5]) // 10\n */\n\nmodule.exports = _curry1(_reduced);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/reduced.js\n// module id = 286\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\nmodule.exports = _curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/remove.js\n// module id = 287\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar always = require('./always');\nvar times = require('./times');\n\n\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * var obj = {};\n * var repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\nmodule.exports = _curry2(function repeat(value, n) {\n return times(always(value), n);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/repeat.js\n// module id = 288\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\nmodule.exports = _curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/replace.js\n// module id = 289\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Scan is similar to reduce, but returns a list of successively reduced values\n * from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a,b -> a) -> a -> [b] -> [a]\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {Array} A list of all intermediately reduced values.\n * @example\n *\n * var numbers = [1, 2, 3, 4];\n * var factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\nmodule.exports = _curry3(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/scan.js\n// module id = 290\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar always = require('./always');\nvar over = require('./over');\n\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * var xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\nmodule.exports = _curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/set.js\n// module id = 291\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a,a -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * var diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\nmodule.exports = _curry2(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/sort.js\n// module id = 292\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * var sortByFirstItem = R.sortBy(R.prop(0));\n * var sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * var pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n * var alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * var bob = {\n * name: 'Bob',\n * age: -10\n * };\n * var clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * var people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\nmodule.exports = _curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function(a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/sortBy.js\n// module id = 293\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [a -> a -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * var alice = {\n * name: 'alice',\n * age: 40\n * };\n * var bob = {\n * name: 'bob',\n * age: 30\n * };\n * var clara = {\n * name: 'clara',\n * age: 40\n * };\n * var people = [clara, bob, alice];\n * var ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\nmodule.exports = _curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function(a, b) {\n var result = 0;\n var i = 0;\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n return result;\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/sortWith.js\n// module id = 294\n// module chunks = 0","var invoker = require('./invoker');\n\n\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `str`.\n * @see R.join\n * @example\n *\n * var pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\nmodule.exports = invoker(1, 'split');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/split.js\n// module id = 295\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar length = require('./length');\nvar slice = require('./slice');\n\n\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\nmodule.exports = _curry2(function splitAt(index, array) {\n return [slice(0, index, array), slice(index, length(array), array)];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/splitAt.js\n// module id = 296\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar slice = require('./slice');\n\n\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\nmodule.exports = _curry2(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n var result = [];\n var idx = 0;\n while (idx < list.length) {\n result.push(slice(idx, idx += n, list));\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/splitEvery.js\n// module id = 297\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\nmodule.exports = _curry2(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/splitWhen.js\n// module id = 298\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * var minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * var complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\nmodule.exports = _curry2(function subtract(a, b) {\n return Number(a) - Number(b);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/subtract.js\n// module id = 299\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar concat = require('./concat');\nvar difference = require('./difference');\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\nmodule.exports = _curry2(function symmetricDifference(list1, list2) {\n return concat(difference(list1, list2), difference(list2, list1));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/symmetricDifference.js\n// module id = 300\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar concat = require('./concat');\nvar differenceWith = require('./differenceWith');\n\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * var eqA = R.eqBy(R.prop('a'));\n * var l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * var l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\nmodule.exports = _curry3(function symmetricDifferenceWith(pred, list1, list2) {\n return concat(differenceWith(pred, list1, list2), differenceWith(pred, list2, list1));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/symmetricDifferenceWith.js\n// module id = 301\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar drop = require('./drop');\n\n\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\nmodule.exports = _curry2(function takeLast(n, xs) {\n return drop(n >= 0 ? xs.length - n : 0, xs);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/takeLast.js\n// module id = 302\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @param {Function} fn The function called per iteration.\n * @param {Array} list The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * var isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n */\nmodule.exports = _curry2(function takeLastWhile(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0 && fn(list[idx])) {\n idx -= 1;\n }\n return Array.prototype.slice.call(list, idx + 1);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/takeLastWhile.js\n// module id = 303\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar _dispatchable = require('./internal/_dispatchable');\nvar _xtakeWhile = require('./internal/_xtakeWhile');\n\n\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @param {Function} fn The function called per iteration.\n * @param {Array} list The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * var isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n */\nmodule.exports = _curry2(_dispatchable(['takeWhile'], _xtakeWhile, function takeWhile(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len && fn(list[idx])) {\n idx += 1;\n }\n return Array.prototype.slice.call(list, 0, idx);\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/takeWhile.js\n// module id = 304\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * var sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\nmodule.exports = _curry2(function tap(fn, x) {\n fn(x);\n return x;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/tap.js\n// module id = 305\n// module chunks = 0","var _cloneRegExp = require('./internal/_cloneRegExp');\nvar _curry2 = require('./internal/_curry2');\nvar _isRegExp = require('./internal/_isRegExp');\nvar toString = require('./toString');\n\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nmodule.exports = _curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/test.js\n// module id = 306\n// module chunks = 0","var invoker = require('./invoker');\n\n\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\nmodule.exports = invoker(0, 'toLowerCase');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/toLower.js\n// module id = 307\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar _has = require('./internal/_has');\n\n\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\nmodule.exports = _curry1(function toPairs(obj) {\n var pairs = [];\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n return pairs;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/toPairs.js\n// module id = 308\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * var F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * var f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\nmodule.exports = _curry1(function toPairsIn(obj) {\n var pairs = [];\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n return pairs;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/toPairsIn.js\n// module id = 309\n// module chunks = 0","var invoker = require('./invoker');\n\n\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\nmodule.exports = invoker(0, 'toUpperCase');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/toUpper.js\n// module id = 310\n// module chunks = 0","var _reduce = require('./internal/_reduce');\nvar _xwrap = require('./internal/_xwrap');\nvar curryN = require('./curryN');\n\n\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the `R.reduced` function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is R.identity. The init\n * function can be used to provide an initial accumulator, but is ignored by\n * transduce.\n *\n * The iteration is performed with R.reduce after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> (a,b -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * var numbers = [1, 2, 3, 4];\n * var transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n */\nmodule.exports = curryN(4, function transduce(xf, fn, acc, list) {\n return _reduce(xf(typeof fn === 'function' ? _xwrap(fn) : fn), acc, list);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/transduce.js\n// module id = 311\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * If some of the rows are shorter than the following rows, their elements are skipped:\n *\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\nmodule.exports = _curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n result[j].push(innerlist[j]);\n j += 1;\n }\n i += 1;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/transpose.js\n// module id = 312\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\nvar map = require('./map');\nvar sequence = require('./sequence');\n\n\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Nothing` if the given divisor is `0`\n * safeDiv = n => d => d === 0 ? Nothing() : Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Nothing\n */\nmodule.exports = _curry3(function traverse(of, f, traversable) {\n return sequence(of, map(f, traversable));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/traverse.js\n// module id = 313\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nmodule.exports = (function() {\n var ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' +\n '\\u2029\\uFEFF';\n var zeroWidth = '\\u200b';\n var hasProtoTrim = (typeof String.prototype.trim === 'function');\n if (!hasProtoTrim || (ws.trim() || !zeroWidth.trim())) {\n return _curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n });\n } else {\n return _curry1(function trim(str) {\n return str.trim();\n });\n }\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/trim.js\n// module id = 314\n// module chunks = 0","var _arity = require('./internal/_arity');\nvar _concat = require('./internal/_concat');\nvar _curry2 = require('./internal/_curry2');\n\n\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(R.prop('x'), R.F)(null); //=> false\n */\nmodule.exports = _curry2(function _tryCatch(tryer, catcher) {\n return _arity(tryer.length, function() {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, _concat([e], arguments));\n }\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/tryCatch.js\n// module id = 315\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, R.unapply derives a variadic function from a function which\n * takes an array. R.unapply is the inverse of R.apply.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\nmodule.exports = _curry1(function unapply(fn) {\n return function() {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/unapply.js\n// module id = 316\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\nvar nAry = require('./nAry');\n\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @example\n *\n * var takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * var takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\nmodule.exports = _curry1(function unary(fn) {\n return nAry(1, fn);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/unary.js\n// module id = 317\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar curryN = require('./curryN');\n\n\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * var addFour = a => b => c => d => a + b + c + d;\n *\n * var uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\nmodule.exports = _curry2(function uncurryN(depth, fn) {\n return curryN(depth, function() {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n return value;\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/uncurryN.js\n// module id = 318\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * var f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\nmodule.exports = _curry2(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/unfold.js\n// module id = 319\n// module chunks = 0","var _concat = require('./internal/_concat');\nvar _curry2 = require('./internal/_curry2');\nvar compose = require('./compose');\nvar uniq = require('./uniq');\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\nmodule.exports = _curry2(compose(uniq, _concat));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/union.js\n// module id = 320\n// module chunks = 0","var _concat = require('./internal/_concat');\nvar _curry3 = require('./internal/_curry3');\nvar uniqWith = require('./uniqWith');\n\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> a -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * var l1 = [{a: 1}, {a: 2}];\n * var l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\nmodule.exports = _curry3(function unionWith(pred, list1, list2) {\n return uniqWith(pred, _concat(list1, list2));\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/unionWith.js\n// module id = 321\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when\n * @example\n *\n * // coerceArray :: (a|[a]) -> [a]\n * var coerceArray = R.unless(R.isArrayLike, R.of);\n * coerceArray([1, 2, 3]); //=> [1, 2, 3]\n * coerceArray(1); //=> [1]\n */\nmodule.exports = _curry3(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/unless.js\n// module id = 322\n// module chunks = 0","var _identity = require('./internal/_identity');\nvar chain = require('./chain');\n\n\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\nmodule.exports = chain(_identity);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/unnest.js\n// module id = 323\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\nmodule.exports = _curry3(function until(pred, fn, init) {\n var val = init;\n while (!pred(val)) {\n val = fn(val);\n }\n return val;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/until.js\n// module id = 324\n// module chunks = 0","var _curry1 = require('./internal/_curry1');\n\n\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @example\n *\n * var F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * var f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\nmodule.exports = _curry1(function valuesIn(obj) {\n var prop;\n var vs = [];\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n return vs;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/valuesIn.js\n// module id = 325\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * var xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\nmodule.exports = (function() {\n // `Const` is a functor that effectively ignores the function given to `map`.\n var Const = function(x) {\n return {value: x, map: function() { return this; }};\n };\n\n return _curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n });\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/view.js\n// module id = 326\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless\n * @example\n *\n * // truncate :: String -> String\n * var truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\nmodule.exports = _curry3(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/when.js\n// module id = 327\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\nvar equals = require('./equals');\nvar map = require('./map');\nvar where = require('./where');\n\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in `R.equals` terms) as accessing that property of the spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * var pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\nmodule.exports = _curry2(function whereEq(spec, testObj) {\n return where(map(equals, spec), testObj);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/whereEq.js\n// module id = 328\n// module chunks = 0","var _contains = require('./internal/_contains');\nvar _curry2 = require('./internal/_curry2');\nvar flip = require('./flip');\nvar reject = require('./reject');\n\n\n/**\n * Returns a new list without values in the first argument.\n * `R.equals` is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\nmodule.exports = _curry2(function(xs, list) {\n return reject(flip(_contains)(xs), list);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/without.js\n// module id = 329\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\nmodule.exports = _curry2(function xprod(a, b) { // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n while (idx < ilen) {\n j = 0;\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n idx += 1;\n }\n return result;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/xprod.js\n// module id = 330\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\nmodule.exports = _curry2(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n return rv;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/zip.js\n// module id = 331\n// module chunks = 0","var _curry2 = require('./internal/_curry2');\n\n\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zipWith(pair), fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\nmodule.exports = _curry2(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n return out;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/zipObj.js\n// module id = 332\n// module chunks = 0","var _curry3 = require('./internal/_curry3');\n\n\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a,b -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * var f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\nmodule.exports = _curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n return rv;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/ramda/src/zipWith.js\n// module id = 333\n// module chunks = 0","(function () {\n var /*\n * Rusha, a JavaScript implementation of the Secure Hash Algorithm, SHA-1,\n * as defined in FIPS PUB 180-1, tuned for high performance with large inputs.\n * (http://github.com/srijs/rusha)\n *\n * Inspired by Paul Johnstons implementation (http://pajhome.org.uk/crypt/md5).\n *\n * Copyright (c) 2013 Sam Rijs (http://awesam.de).\n * Released under the terms of the MIT license as follows:\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n util = {\n getDataType: function (data) {\n if (typeof data === 'string') {\n return 'string';\n }\n if (data instanceof Array) {\n return 'array';\n }\n if (typeof global !== 'undefined' && global.Buffer && global.Buffer.isBuffer(data)) {\n return 'buffer';\n }\n if (data instanceof ArrayBuffer) {\n return 'arraybuffer';\n }\n if (data.buffer instanceof ArrayBuffer) {\n return 'view';\n }\n if (data instanceof Blob) {\n return 'blob';\n }\n throw new Error('Unsupported data type.');\n }\n };\n function Rusha(chunkSize) {\n 'use strict';\n var // Private object structure.\n self$2 = { fill: 0 };\n var // Calculate the length of buffer that the sha1 routine uses\n // including the padding.\n padlen = function (len) {\n for (len += 9; len % 64 > 0; len += 1);\n return len;\n };\n var padZeroes = function (bin, len) {\n var h8 = new Uint8Array(bin.buffer);\n var om = len % 4, align = len - om;\n switch (om) {\n case 0:\n h8[align + 3] = 0;\n case 1:\n h8[align + 2] = 0;\n case 2:\n h8[align + 1] = 0;\n case 3:\n h8[align + 0] = 0;\n }\n for (var i$2 = (len >> 2) + 1; i$2 < bin.length; i$2++)\n bin[i$2] = 0;\n };\n var padData = function (bin, chunkLen, msgLen) {\n bin[chunkLen >> 2] |= 128 << 24 - (chunkLen % 4 << 3);\n // To support msgLen >= 2 GiB, use a float division when computing the\n // high 32-bits of the big-endian message length in bits.\n bin[((chunkLen >> 2) + 2 & ~15) + 14] = msgLen / (1 << 29) | 0;\n bin[((chunkLen >> 2) + 2 & ~15) + 15] = msgLen << 3;\n };\n var // Convert a binary string and write it to the heap.\n // A binary string is expected to only contain char codes < 256.\n convStr = function (H8, H32, start, len, off) {\n var str = this, i$2, om = off % 4, lm = (len + om) % 4, j = len - lm;\n switch (om) {\n case 0:\n H8[off] = str.charCodeAt(start + 3);\n case 1:\n H8[off + 1 - (om << 1) | 0] = str.charCodeAt(start + 2);\n case 2:\n H8[off + 2 - (om << 1) | 0] = str.charCodeAt(start + 1);\n case 3:\n H8[off + 3 - (om << 1) | 0] = str.charCodeAt(start);\n }\n if (len < lm + om) {\n return;\n }\n for (i$2 = 4 - om; i$2 < j; i$2 = i$2 + 4 | 0) {\n H32[off + i$2 >> 2] = str.charCodeAt(start + i$2) << 24 | str.charCodeAt(start + i$2 + 1) << 16 | str.charCodeAt(start + i$2 + 2) << 8 | str.charCodeAt(start + i$2 + 3);\n }\n switch (lm) {\n case 3:\n H8[off + j + 1 | 0] = str.charCodeAt(start + j + 2);\n case 2:\n H8[off + j + 2 | 0] = str.charCodeAt(start + j + 1);\n case 1:\n H8[off + j + 3 | 0] = str.charCodeAt(start + j);\n }\n };\n var // Convert a buffer or array and write it to the heap.\n // The buffer or array is expected to only contain elements < 256.\n convBuf = function (H8, H32, start, len, off) {\n var buf = this, i$2, om = off % 4, lm = (len + om) % 4, j = len - lm;\n switch (om) {\n case 0:\n H8[off] = buf[start + 3];\n case 1:\n H8[off + 1 - (om << 1) | 0] = buf[start + 2];\n case 2:\n H8[off + 2 - (om << 1) | 0] = buf[start + 1];\n case 3:\n H8[off + 3 - (om << 1) | 0] = buf[start];\n }\n if (len < lm + om) {\n return;\n }\n for (i$2 = 4 - om; i$2 < j; i$2 = i$2 + 4 | 0) {\n H32[off + i$2 >> 2 | 0] = buf[start + i$2] << 24 | buf[start + i$2 + 1] << 16 | buf[start + i$2 + 2] << 8 | buf[start + i$2 + 3];\n }\n switch (lm) {\n case 3:\n H8[off + j + 1 | 0] = buf[start + j + 2];\n case 2:\n H8[off + j + 2 | 0] = buf[start + j + 1];\n case 1:\n H8[off + j + 3 | 0] = buf[start + j];\n }\n };\n var convBlob = function (H8, H32, start, len, off) {\n var blob = this, i$2, om = off % 4, lm = (len + om) % 4, j = len - lm;\n var buf = new Uint8Array(reader.readAsArrayBuffer(blob.slice(start, start + len)));\n switch (om) {\n case 0:\n H8[off] = buf[3];\n case 1:\n H8[off + 1 - (om << 1) | 0] = buf[2];\n case 2:\n H8[off + 2 - (om << 1) | 0] = buf[1];\n case 3:\n H8[off + 3 - (om << 1) | 0] = buf[0];\n }\n if (len < lm + om) {\n return;\n }\n for (i$2 = 4 - om; i$2 < j; i$2 = i$2 + 4 | 0) {\n H32[off + i$2 >> 2 | 0] = buf[i$2] << 24 | buf[i$2 + 1] << 16 | buf[i$2 + 2] << 8 | buf[i$2 + 3];\n }\n switch (lm) {\n case 3:\n H8[off + j + 1 | 0] = buf[j + 2];\n case 2:\n H8[off + j + 2 | 0] = buf[j + 1];\n case 1:\n H8[off + j + 3 | 0] = buf[j];\n }\n };\n var convFn = function (data) {\n switch (util.getDataType(data)) {\n case 'string':\n return convStr.bind(data);\n case 'array':\n return convBuf.bind(data);\n case 'buffer':\n return convBuf.bind(data);\n case 'arraybuffer':\n return convBuf.bind(new Uint8Array(data));\n case 'view':\n return convBuf.bind(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));\n case 'blob':\n return convBlob.bind(data);\n }\n };\n var slice = function (data, offset) {\n switch (util.getDataType(data)) {\n case 'string':\n return data.slice(offset);\n case 'array':\n return data.slice(offset);\n case 'buffer':\n return data.slice(offset);\n case 'arraybuffer':\n return data.slice(offset);\n case 'view':\n return data.buffer.slice(offset);\n }\n };\n var // Precompute 00 - ff strings\n precomputedHex = new Array(256);\n for (var i = 0; i < 256; i++) {\n precomputedHex[i] = (i < 16 ? '0' : '') + i.toString(16);\n }\n var // Convert an ArrayBuffer into its hexadecimal string representation.\n hex = function (arrayBuffer) {\n var binarray = new Uint8Array(arrayBuffer);\n var res = new Array(arrayBuffer.byteLength);\n for (var i$2 = 0; i$2 < res.length; i$2++) {\n res[i$2] = precomputedHex[binarray[i$2]];\n }\n return res.join('');\n };\n var ceilHeapSize = function (v) {\n // The asm.js spec says:\n // The heap object's byteLength must be either\n // 2^n for n in [12, 24) or 2^24 * n for n ≥ 1.\n // Also, byteLengths smaller than 2^16 are deprecated.\n var p;\n if (// If v is smaller than 2^16, the smallest possible solution\n // is 2^16.\n v <= 65536)\n return 65536;\n if (// If v < 2^24, we round up to 2^n,\n // otherwise we round up to 2^24 * n.\n v < 16777216) {\n for (p = 1; p < v; p = p << 1);\n } else {\n for (p = 16777216; p < v; p += 16777216);\n }\n return p;\n };\n var // Initialize the internal data structures to a new capacity.\n init = function (size) {\n if (size % 64 > 0) {\n throw new Error('Chunk size must be a multiple of 128 bit');\n }\n self$2.offset = 0;\n self$2.maxChunkLen = size;\n self$2.padMaxChunkLen = padlen(size);\n // The size of the heap is the sum of:\n // 1. The padded input message size\n // 2. The extended space the algorithm needs (320 byte)\n // 3. The 160 bit state the algoritm uses\n self$2.heap = new ArrayBuffer(ceilHeapSize(self$2.padMaxChunkLen + 320 + 20));\n self$2.h32 = new Int32Array(self$2.heap);\n self$2.h8 = new Int8Array(self$2.heap);\n self$2.core = new Rusha._core({\n Int32Array: Int32Array,\n DataView: DataView\n }, {}, self$2.heap);\n self$2.buffer = null;\n };\n // Iinitializethe datastructures according\n // to a chunk siyze.\n init(chunkSize || 64 * 1024);\n var initState = function (heap, padMsgLen) {\n self$2.offset = 0;\n var io = new Int32Array(heap, padMsgLen + 320, 5);\n io[0] = 1732584193;\n io[1] = -271733879;\n io[2] = -1732584194;\n io[3] = 271733878;\n io[4] = -1009589776;\n };\n var padChunk = function (chunkLen, msgLen) {\n var padChunkLen = padlen(chunkLen);\n var view = new Int32Array(self$2.heap, 0, padChunkLen >> 2);\n padZeroes(view, chunkLen);\n padData(view, chunkLen, msgLen);\n return padChunkLen;\n };\n var // Write data to the heap.\n write = function (data, chunkOffset, chunkLen, off) {\n convFn(data)(self$2.h8, self$2.h32, chunkOffset, chunkLen, off || 0);\n };\n var // Initialize and call the RushaCore,\n // assuming an input buffer of length len * 4.\n coreCall = function (data, chunkOffset, chunkLen, msgLen, finalize) {\n var padChunkLen = chunkLen;\n write(data, chunkOffset, chunkLen);\n if (finalize) {\n padChunkLen = padChunk(chunkLen, msgLen);\n }\n self$2.core.hash(padChunkLen, self$2.padMaxChunkLen);\n };\n var getRawDigest = function (heap, padMaxChunkLen) {\n var io = new Int32Array(heap, padMaxChunkLen + 320, 5);\n var out = new Int32Array(5);\n var arr = new DataView(out.buffer);\n arr.setInt32(0, io[0], false);\n arr.setInt32(4, io[1], false);\n arr.setInt32(8, io[2], false);\n arr.setInt32(12, io[3], false);\n arr.setInt32(16, io[4], false);\n return out;\n };\n var // Calculate the hash digest as an array of 5 32bit integers.\n rawDigest = this.rawDigest = function (str) {\n var msgLen = str.byteLength || str.length || str.size || 0;\n initState(self$2.heap, self$2.padMaxChunkLen);\n var chunkOffset = 0, chunkLen = self$2.maxChunkLen, last;\n for (chunkOffset = 0; msgLen > chunkOffset + chunkLen; chunkOffset += chunkLen) {\n coreCall(str, chunkOffset, chunkLen, msgLen, false);\n }\n coreCall(str, chunkOffset, msgLen - chunkOffset, msgLen, true);\n return getRawDigest(self$2.heap, self$2.padMaxChunkLen);\n };\n // The digest and digestFrom* interface returns the hash digest\n // as a hex string.\n this.digest = this.digestFromString = this.digestFromBuffer = this.digestFromArrayBuffer = function (str) {\n return hex(rawDigest(str).buffer);\n };\n this.resetState = function () {\n initState(self$2.heap, self$2.padMaxChunkLen);\n return this;\n };\n this.append = function (chunk) {\n var chunkOffset = 0;\n var chunkLen = chunk.byteLength || chunk.length || chunk.size || 0;\n var turnOffset = self$2.offset % self$2.maxChunkLen;\n var inputLen;\n self$2.offset += chunkLen;\n while (chunkOffset < chunkLen) {\n inputLen = Math.min(chunkLen - chunkOffset, self$2.maxChunkLen - turnOffset);\n write(chunk, chunkOffset, inputLen, turnOffset);\n turnOffset += inputLen;\n chunkOffset += inputLen;\n if (turnOffset === self$2.maxChunkLen) {\n self$2.core.hash(self$2.maxChunkLen, self$2.padMaxChunkLen);\n turnOffset = 0;\n }\n }\n return this;\n };\n this.getState = function () {\n var turnOffset = self$2.offset % self$2.maxChunkLen;\n var heap;\n if (!turnOffset) {\n var io = new Int32Array(self$2.heap, self$2.padMaxChunkLen + 320, 5);\n heap = io.buffer.slice(io.byteOffset, io.byteOffset + io.byteLength);\n } else {\n heap = self$2.heap.slice(0);\n }\n return {\n offset: self$2.offset,\n heap: heap\n };\n };\n this.setState = function (state) {\n self$2.offset = state.offset;\n if (state.heap.byteLength === 20) {\n var io = new Int32Array(self$2.heap, self$2.padMaxChunkLen + 320, 5);\n io.set(new Int32Array(state.heap));\n } else {\n self$2.h32.set(new Int32Array(state.heap));\n }\n return this;\n };\n var rawEnd = this.rawEnd = function () {\n var msgLen = self$2.offset;\n var chunkLen = msgLen % self$2.maxChunkLen;\n var padChunkLen = padChunk(chunkLen, msgLen);\n self$2.core.hash(padChunkLen, self$2.padMaxChunkLen);\n var result = getRawDigest(self$2.heap, self$2.padMaxChunkLen);\n initState(self$2.heap, self$2.padMaxChunkLen);\n return result;\n };\n this.end = function () {\n return hex(rawEnd().buffer);\n };\n }\n ;\n // The low-level RushCore module provides the heart of Rusha,\n // a high-speed sha1 implementation working on an Int32Array heap.\n // At first glance, the implementation seems complicated, however\n // with the SHA1 spec at hand, it is obvious this almost a textbook\n // implementation that has a few functions hand-inlined and a few loops\n // hand-unrolled.\n Rusha._core = function RushaCore(stdlib, foreign, heap) {\n 'use asm';\n var H = new stdlib.Int32Array(heap);\n function hash(k, x) {\n // k in bytes\n k = k | 0;\n x = x | 0;\n var i = 0, j = 0, y0 = 0, z0 = 0, y1 = 0, z1 = 0, y2 = 0, z2 = 0, y3 = 0, z3 = 0, y4 = 0, z4 = 0, t0 = 0, t1 = 0;\n y0 = H[x + 320 >> 2] | 0;\n y1 = H[x + 324 >> 2] | 0;\n y2 = H[x + 328 >> 2] | 0;\n y3 = H[x + 332 >> 2] | 0;\n y4 = H[x + 336 >> 2] | 0;\n for (i = 0; (i | 0) < (k | 0); i = i + 64 | 0) {\n z0 = y0;\n z1 = y1;\n z2 = y2;\n z3 = y3;\n z4 = y4;\n for (j = 0; (j | 0) < 64; j = j + 4 | 0) {\n t1 = H[i + j >> 2] | 0;\n t0 = ((y0 << 5 | y0 >>> 27) + (y1 & y2 | ~y1 & y3) | 0) + ((t1 + y4 | 0) + 1518500249 | 0) | 0;\n y4 = y3;\n y3 = y2;\n y2 = y1 << 30 | y1 >>> 2;\n y1 = y0;\n y0 = t0;\n H[k + j >> 2] = t1;\n }\n for (j = k + 64 | 0; (j | 0) < (k + 80 | 0); j = j + 4 | 0) {\n t1 = (H[j - 12 >> 2] ^ H[j - 32 >> 2] ^ H[j - 56 >> 2] ^ H[j - 64 >> 2]) << 1 | (H[j - 12 >> 2] ^ H[j - 32 >> 2] ^ H[j - 56 >> 2] ^ H[j - 64 >> 2]) >>> 31;\n t0 = ((y0 << 5 | y0 >>> 27) + (y1 & y2 | ~y1 & y3) | 0) + ((t1 + y4 | 0) + 1518500249 | 0) | 0;\n y4 = y3;\n y3 = y2;\n y2 = y1 << 30 | y1 >>> 2;\n y1 = y0;\n y0 = t0;\n H[j >> 2] = t1;\n }\n for (j = k + 80 | 0; (j | 0) < (k + 160 | 0); j = j + 4 | 0) {\n t1 = (H[j - 12 >> 2] ^ H[j - 32 >> 2] ^ H[j - 56 >> 2] ^ H[j - 64 >> 2]) << 1 | (H[j - 12 >> 2] ^ H[j - 32 >> 2] ^ H[j - 56 >> 2] ^ H[j - 64 >> 2]) >>> 31;\n t0 = ((y0 << 5 | y0 >>> 27) + (y1 ^ y2 ^ y3) | 0) + ((t1 + y4 | 0) + 1859775393 | 0) | 0;\n y4 = y3;\n y3 = y2;\n y2 = y1 << 30 | y1 >>> 2;\n y1 = y0;\n y0 = t0;\n H[j >> 2] = t1;\n }\n for (j = k + 160 | 0; (j | 0) < (k + 240 | 0); j = j + 4 | 0) {\n t1 = (H[j - 12 >> 2] ^ H[j - 32 >> 2] ^ H[j - 56 >> 2] ^ H[j - 64 >> 2]) << 1 | (H[j - 12 >> 2] ^ H[j - 32 >> 2] ^ H[j - 56 >> 2] ^ H[j - 64 >> 2]) >>> 31;\n t0 = ((y0 << 5 | y0 >>> 27) + (y1 & y2 | y1 & y3 | y2 & y3) | 0) + ((t1 + y4 | 0) - 1894007588 | 0) | 0;\n y4 = y3;\n y3 = y2;\n y2 = y1 << 30 | y1 >>> 2;\n y1 = y0;\n y0 = t0;\n H[j >> 2] = t1;\n }\n for (j = k + 240 | 0; (j | 0) < (k + 320 | 0); j = j + 4 | 0) {\n t1 = (H[j - 12 >> 2] ^ H[j - 32 >> 2] ^ H[j - 56 >> 2] ^ H[j - 64 >> 2]) << 1 | (H[j - 12 >> 2] ^ H[j - 32 >> 2] ^ H[j - 56 >> 2] ^ H[j - 64 >> 2]) >>> 31;\n t0 = ((y0 << 5 | y0 >>> 27) + (y1 ^ y2 ^ y3) | 0) + ((t1 + y4 | 0) - 899497514 | 0) | 0;\n y4 = y3;\n y3 = y2;\n y2 = y1 << 30 | y1 >>> 2;\n y1 = y0;\n y0 = t0;\n H[j >> 2] = t1;\n }\n y0 = y0 + z0 | 0;\n y1 = y1 + z1 | 0;\n y2 = y2 + z2 | 0;\n y3 = y3 + z3 | 0;\n y4 = y4 + z4 | 0;\n }\n H[x + 320 >> 2] = y0;\n H[x + 324 >> 2] = y1;\n H[x + 328 >> 2] = y2;\n H[x + 332 >> 2] = y3;\n H[x + 336 >> 2] = y4;\n }\n return { hash: hash };\n };\n if (// If we'e running in Node.JS, export a module.\n typeof module !== 'undefined') {\n module.exports = Rusha;\n } else if (// If we're running in a DOM context, export\n // the Rusha object to toplevel.\n typeof window !== 'undefined') {\n window.Rusha = Rusha;\n }\n if (// If we're running in a webworker, accept\n // messages containing a jobid and a buffer\n // or blob object, and return the hash result.\n typeof FileReaderSync !== 'undefined') {\n var reader = new FileReaderSync(), hasher = new Rusha(4 * 1024 * 1024);\n self.onmessage = function onMessage(event) {\n var hash, data = event.data.data;\n try {\n hash = hasher.digest(data);\n self.postMessage({\n id: event.data.id,\n hash: hash\n });\n } catch (e) {\n self.postMessage({\n id: event.data.id,\n error: e.name\n });\n }\n };\n }\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/rusha/rusha.js\n// module id = 334\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/webpack/buildin/global.js\n// module id = 335\n// module chunks = 0","import { pqPrimeFactorization, bytesModPow, sha1HashSync,\r\n aesEncryptSync, aesDecryptSync } from './bin'\r\n\r\nconsole.info('Crypto worker registered')\r\n\r\nconst runTask = data => {\r\n switch (data.task) {\r\n case 'factorize' : return pqPrimeFactorization(data.bytes)\r\n case 'mod-pow' : return bytesModPow(data.x, data.y, data.m)\r\n case 'sha1-hash' : return sha1HashSync(data.bytes)\r\n case 'aes-encrypt': return aesEncryptSync(data.bytes, data.keyBytes, data.ivBytes)\r\n case 'aes-decrypt': return aesDecryptSync(data.encryptedBytes,\r\n data.keyBytes, data.ivBytes)\r\n default:\r\n throw new Error(`Unknown task: ${data.task}`)\r\n }\r\n}\r\n\r\nonmessage = function(e) {\r\n if (e.data === '') {\r\n console.info('empty crypto task')\r\n } else if (typeof e.data === 'string') {\r\n console.info('crypto task string message', e.data)\r\n } else {\r\n const taskID = e.data.taskID\r\n const result = runTask(e.data)\r\n postMessage({ taskID, result })\r\n }\r\n}\r\n\r\npostMessage('ready')\n\n\n// WEBPACK FOOTER //\n// ./worker.js"],"sourceRoot":""}
\No newline at end of file