很久之前发在知乎的文章,博客好久没更新,转过来水个文


登录部分的滑动验证码,抓包发现有两个请求: kSecretApiVerify 与 verify

verify接口见之前的文章。

kSecretApiVerify接口:

追栈找到这儿:

找到$e:

继续往下追:

记住这里,继续往下:

记住这里,继续往下:

经对比和上面的new promise是一样的。继续往下得到加密参数:

还原:

首先还原 l(c.a[i("0x38")](r))

可以看到 c.a[i("0x38")](r) 就是把字典转为url加码字符串,就不用js还原了,直接python传字符串就行,l如下:

接下来还原new Promise((function(t, e) { Jose[i("0x28")](i("0x29"), [n, s, {suc: t,err: e}]):

Jose对象直接进入了另一个js:

不管了,直接把js全部复制下来,把检测node的代码部分改一下:

最后还原 n[i("0x3b")](t[i("0x39")])[i("0x3c")](x[i("0x33")]) :

t.sent就是之前得到的数组,就是说找出n.from和toString("base64")就ok了。

肉眼观察可知n.from是把数组中的字符串转化为数字后变为Uint8Array对象,重写如下:

追栈定位toString:

把v(n)抠出来就ok了:

分别把函数v中的函数h、函数h中的函数l抠出来,流程就完全通了,重写如下:

完整代码如下:

var window = global;

!function webpackUniversalModuleDefinition(t, n) {
    t.Jose = n()
}(window, function() {
    return r = {},
    o.m = e = [function(t, i) {
        !function() {
            var n = function n(t) {
                return t.constructor.prototype
            }
              , t = Object.create
              , e = function e(t, n) {
                return Object.prototype.hasOwnProperty.call(t, n)
            }
              , r = Array.isArray
              , o = function o(t, n, e) {
                return Object.defineProperty(t, n, e)
            };
            i.prototypeOf = n,
            i.create = t,
            i.hasProp = e,
            i.isArray = r,
            i.defProp = o
        }
        .call(this)
    }
    , function(t, n) {
        !function() {
            function t(t) {
                this.elements = t,
                this.index = 0
            }
            t.prototype.next = function() {
                if (this.index >= this.elements.length)
                    throw new Error("array over");
                return this.elements[this.index++]
            }
            ,
            n.ArrayIterator = t
        }
        .call(this)
    }
    , function(t, h, l) {
        function y(t) {
            return (y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function y(t) {
                return typeof t
            }
            : function y(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }
            )(t)
        }
        !function() {
            var r = {}.hasOwnProperty
              , c = l(0).isArray
              , t = (n.prototype.run = function() {
                for (var t = this.callStack[this.depth], n = t.error; 0 <= this.depth && t && !this.paused; )
                    if ((t = n ? this.unwind(n) : t).run(),
                    (n = t.error)instanceof Error && this.injectStackTrace(n),
                    t.done()) {
                        if (t.guards.length) {
                            var e = t.guards.pop();
                            if (e.finalizer) {
                                t.ip = e.finalizer,
                                t.exitIp = e.end,
                                t.paused = !1;
                                continue
                            }
                        }
                        !t.construct || "object" !== (e = y(this.rv)) && "function" !== e && (this.rv = t.scope.get(0)),
                        (t = this.popFrame()) && !n && (t.evalStack.push(this.rv),
                        this.rv = void 0)
                    } else
                        n = (t = this.callStack[this.depth]).error;
                if (this.timedOut() && (n = new Error(this),
                this.injectStackTrace(n)),
                n)
                    throw n
            }
            ,
            n.prototype.unwind = function(t) {
                for (var n = this.callStack[this.depth]; n; ) {
                    n.error = t;
                    var e = n.ip - 1
                      , r = n.guards.length;
                    if (r) {
                        r = n.guards[r - 1];
                        if (r.start <= e && e <= r.end) {
                            if (null !== r.handler)
                                if (e <= r.handler)
                                    n.evalStack.push(t),
                                    n.error = null,
                                    n.ip = r.handler;
                                else {
                                    if (!(r.finalizer && n.ip <= r.finalizer)) {
                                        n = this.popFrame();
                                        continue
                                    }
                                    n.ip = r.finalizer
                                }
                            else
                                n.ip = r.finalizer;
                            return n.paused = !1,
                            n
                        }
                    }
                    n = this.popFrame()
                }
                throw t
            }
            ,
            n.prototype.injectStackTrace = function(t) {
                var n, e, r, o, i, u, p, s = [], a = 0;
                for (this.depth > this.maxTraceDepth && (a = this.depth - this.maxTraceDepth),
                e = r = i = this.depth,
                u = a; i <= u ? r <= u : u <= r; e = i <= u ? ++r : --r)
                    "<anonymous>" === (o = (n = this.callStack[e]).script.name) && n.fname && (o = n.fname),
                    s.push({
                        at: {
                            name: o,
                            filename: n.script.filename
                        },
                        line: n.line,
                        column: n.column
                    });
                if (t.trace) {
                    for (p = t.trace; c(p[p.length - 1]); )
                        p = p[p.length - 1];
                    p.push(s)
                } else
                    t.trace = s;
                return t.stack = t.toString()
            }
            ,
            n.prototype.pushFrame = function(t, n, e, r, o, i, u) {
                if (null == i && (i = "<anonymous>"),
                null == u && (u = !1),
                this.checkCallStack()) {
                    e = new s(e,t.localNames,t.localLength);
                    e.set(0, n);
                    u = new p(this,t,e,this.realm,i,u);
                    return o && u.evalStack.push(o),
                    r && u.evalStack.push(r),
                    this.callStack[++this.depth] = u
                }
            }
            ,
            n.prototype.checkCallStack = function() {
                return this.depth !== this.maxDepth || (this.callStack[this.depth].error = new Error("maximum call stack size exceeded"),
                this.pause(),
                !1)
            }
            ,
            n.prototype.popFrame = function() {
                var t = this.callStack[--this.depth];
                return t && (t.paused = !1),
                t
            }
            ,
            n.prototype.pause = function() {
                return this.paused = this.callStack[this.depth].paused = !0
            }
            ,
            n.prototype.resume = function(t) {
                if (this.timeout = null != t ? t : -1,
                this.paused = !1,
                this.callStack[this.depth].paused = !1,
                this.run(),
                !this.paused)
                    return this.rexp
            }
            ,
            n.prototype.timedOut = function() {
                return 0 === this.timeout
            }
            ,
            n.prototype.send = function(t) {
                return this.callStack[this.depth].evalStack.push(t)
            }
            ,
            n.prototype.done = function() {
                return -1 === this.depth
            }
            ,
            n);
            function n(t, n) {
                this.realm = t,
                this.timeout = null != n ? n : -1,
                this.maxDepth = 1e3,
                this.maxTraceDepth = 50,
                this.callStack = [],
                this.evalStack = null,
                this.depth = -1,
                this.yielded = this.rv = void 0,
                this.paused = !1,
                this.r1 = this.r2 = this.r3 = null,
                this.rexp = null
            }
            var p = (e.prototype.run = function() {
                for (var t = this.script.instructions; this.ip !== this.exitIp && !this.paused && 0 !== this.fiber.timeout; )
                    this.fiber.timeout--,
                    t[this.ip++].exec(this, this.evalStack, this.scope, this.realm);
                0 === this.fiber.timeout && (this.paused = this.fiber.paused = !0);
                var n = this.evalStack.len();
                if (!this.paused && !this.error && 0 !== n)
                    throw new Error("Evaluation stack has " + n + " items after execution")
            }
            ,
            e.prototype.done = function() {
                return this.ip === this.exitIp
            }
            ,
            e.prototype.setLine = function(t) {
                this.line = t
            }
            ,
            e.prototype.setColumn = function(t) {
                this.column = t
            }
            ,
            e);
            function e(t, n, e, r, o, i) {
                this.fiber = t,
                this.script = n,
                this.scope = e,
                this.realm = r,
                this.fname = o,
                this.construct = null != i && i,
                this.evalStack = new u(this.script.stackSize,this.fiber),
                this.ip = 0,
                this.exitIp = this.script.instructions.length,
                this.paused = !1,
                this.finalizer = null,
                this.guards = [],
                this.rv = void 0,
                this.line = this.column = -1
            }
            var u = (o.prototype.push = function(t) {
                if (this.idx === this.array.length)
                    throw new Error("maximum evaluation stack size exceeded");
                return this.array[this.idx++] = t
            }
            ,
            o.prototype.pop = function() {
                return this.array[--this.idx]
            }
            ,
            o.prototype.top = function() {
                return this.array[this.idx - 1]
            }
            ,
            o.prototype.len = function() {
                return this.idx
            }
            ,
            o.prototype.clear = function() {
                return this.idx = 0
            }
            ,
            o);
            function o(t, n) {
                this.fiber = n,
                this.array = new Array(t),
                this.idx = 0
            }
            var s = (i.prototype.get = function(t) {
                return this.data[t]
            }
            ,
            i.prototype.set = function(t, n) {
                return this.data[t] = n
            }
            ,
            i.prototype.name = function(t) {
                var n, e = this.names;
                for (n in e)
                    if (r.call(e, n) && e[n] === t)
                        return parseInt(n);
                return -1
            }
            ,
            i);
            function i(t, n, e) {
                this.parent = t,
                this.names = n,
                this.data = new Array(e)
            }
            var a = (f.prototype.get = function(t) {
                return this.object[t]
            }
            ,
            f.prototype.set = function(t, n) {
                return this.object[t] = n
            }
            ,
            f.prototype.has = function(t) {
                return t in this.object
            }
            ,
            f);
            function f(t, n) {
                this.parent = t,
                this.object = n
            }
            h.Fiber = t,
            h.Scope = s,
            h.WithScope = a
        }
        .call(this)
    }
    , function(t, n, e) {
        e = new (e(4));
        e.eval('["<script>",0,[[21]č75ċ,falseĒď4,1,nullĝ16]ĝĀĂĄĆĈĊāanonymousĉč[Ĕ,28ėęěĝ3ČČ43ħĝĿ27ŃĚĜčŇĖ42Ōēĕ26őŅŔň,4đ荾śĕĘŒņš40řŧŀğŪş[ŕČ39ŰŎ3ŞœŶš38Żś2žŬĖ3ĩťōśġŴſŷ,3ŘƌŚŀČƐƈŸŦŦĿ19ƇŠƉůƖű1łƚƣČ2źƦƟŐƪƀĖŁƄĠŝƲƒŏƶ1ũńƑšŜƼųƿƛŀ5ƼŽƹǁ4ƼƆNjƴƕ[ƞĕ1ƏDžƫŀƝƍĠƙǘƳƬƥǓǜơǐČƠƶƩǟƒƨƶƱǫš17ƶƸǰĖĨƶƾūǙƽƶDŽǻǠĠǍƯĕNJǶǧŋȄŀƢȁ1ǒǔĠȌǬǛƗǞȀǬǢŦ2Ȗŵ7ňĝƭǷȠƋȁȉǓȤȡǧǢȞ,"$encode"ȠơŸħƝșȦ1ȃďdzťȨȸƓȤȬȮȰĄyćȶčȩƓȺħȼħȿƻɂȷŖƞČȮȴɊɌɘȹťȻħȽɕɁȧōġǢƒȿǸēġŦƒLjɗɯŀdžȤɮľġȦƒɧɹȬ502ʃƽȿȬĐ096573Źōǧ86997ŏ0ʆǧʔ3Ŋ84ʞʐĠȎ91376ɧȬ-ʥ66ŗ07ʠēŸʜĔʒ9ʙĠ8ƽʓţ9ȫğƃʳ,835ʜțʲľČ5ʁŁʊ6˂ˋ,-ĐȎĔŹ5ǒȬʥ954ʭ06ȫǧʟƊˠʥ˒˜ŁʦƨˢɆČ-ʽˡŮʡ˕3Dzʟ8ʩˁōğǒƒ˒ɿǧȤƒƮɨ˃ǖĨˆ2Ů˪ʑʔ447̒ɚƓʘ9Ɣʵ̖ŹʈʉʌȦȬʊƠ˻̋ʡƽ08ʕʉ̙ʡ̍ˇ6ˆ̔̏ŀ˻ʰ̱ʄʡƊ̍Ƃ1̩ˤƓ̾59ʞ0̖ˣʖ2˚ʱ̧ŗˑʻ̈́ʩʚ͊ʰ˅8̴Đ6țʱț˰ŀ6Ⱦ͗ʻ0̡Ÿ̍8ʃ͊8̀ƂˆŹʘ͆ʡŮͩ̍7̮̔ʮʵ͕ʡˣʟ̷Ƶ˃Ͷʂˍ̈́ͥĠ̍ʤʁȎ˛ǧˍʁʻʓΌĠʔˣʮ̈́͊͞˟ʃ̩̮ͨͨƨʜʜ̇ʇ˞ƭʊ̴ͫƔ̾˸Ɗ7̜ʎʋή̪̜5ʞ˚̥̖ǖ̝ʓ̭˃ʎͨţ̪ɳ˓ʭ̱ʰțσȬͶ̌ʔȎ̧ƭ̠̓ʖ̧Źͨ͠ƭιʓ5ΠȞ̤̀ῦ̖Đ΂Ŝˆ̯̀Ϛˣʦ̮ʍʘ8̓ĐΞțŇ̍ǖ̺͊ʕŇͫͬʜʌʮͶδĨˢεDz̺ˣͤηʘͲʉ4ʌƠʉϬΚʎ̒Ͳϴŏʍʹʁʽʒ̃,ʋʿˣˍ͗͞Źʕ˻͒,˞ʻ˙ήϔʃϗĐ̴ƽʦ0ʂˢΆ˹ʱʍͶΣʚΎ͚̮ͩʂţϮǽ˃ͩϋʘ˚̮Ɗƨ˚ŗʹ̍ŁŊϿёĔʨʜƨШƔͰ˸̓нƓƔ̙͊ƭ˪ğʮdž2Ƚĩīāăąćļ"rĊĎț,truſȬǢɏȚ̅ǁħ͞ȚɄҀdžѫĝłѾɄǒȡġ̍Ƞğġ"BɍȁȏɃƴɘɰɕғȭpҗɬ҃ʡҌȑ˒ǂťɓ˃"slicȵȠĕɛҮҰҲǙσɹɏɕɄσҏĠҿ˿ȭAҢšɸҚČҚҐӂȑ"DҗӀȾҒӎҡdžɭ҄Ҝ˄ȣɒɤʡҭүұӑҴȭҶӢdžҺӉŢɠ,ҿơɰӍƆ"ӅɷҤɵɫšɾ͞ҦӊӜ˃ѹѻӚƭӔӲkӆĖӺɩċdž̂Ӌ,ɧɏ˒ȦŊԌӶďӯӫɎɄԒĝԔǙԍԊ҅ȑȦҩďĝʨЩȏ̧еdž̇ɿҐӚԤȨԧŐ̾Ȕ˓̾ӸǷșәɵҎԘȽɣťɥӾ[ԞǓՄɎԉԚĖѠƲӀԃɎӃ"ԆӬԜčՇ́Ԗѿ̀ՏԘՑĞȋՔӑԛņԝɼšԠՌČԐեŔէԕɴŶŽӏatȵԋɎŽɫմDնոșҫ˓"parěӣӕֆֈԫԬ՘͞՞ȑՠ̍բՕիӛկ՘ըĖժɺɐ֗՗Ն֛Č֝ήԙԗ֜զ֚ձ֤̈֨ӚώՒӎdԇǧƝӪ϶֪֢֠֬һծ֨ɰȚҟ"gֵ֭֘ԑӬȽւ֦ҿǕĢĤĦղʭƘ̀DZҙӬֱ֮֟Ǔ׌ġȨ׏ģĥԖȸĪčĝעlאĥ׫ת"aınıtıո"oıvıfıcıuıѴīȎΓŽʫוצ̪č"ıstֆtupRijdom׽Ĺn״ȭ͆е 0ı   u׾ȭer קչĬѯįѲׅĽѷԀѼȟ֗҇Ǚ҉ēğԺʼn՛ɄԤՀׂӎx׆өӟlȰgthդĖҿԽՆҽ ՅƒӈҥdžՋכШ" n  Ӭ ̧ԝȿεԧł͠Ӭխ ɎӪȤˇ ĝ чˍ ԿԈӬɭՂՈɔȠ ɏɾȏσţ ŰцǣčהԥהϛӬӪ  ɢӝՃ Պ ŖԱҎ׃EҗǍĝרב׭ ѳıװȭײȭ "Ҹ[Ēʜ   ѮĮѱıִ Č    Ɓ ɡ׀́ӔҔ ӗԖѽӨ  ȁ ֗͞     ď ˒ˑŢ ĖӪɕΘ čы֗σԓ֣ӭ Оħ ԝɱӇ ҺԧŝЅ ŝʎ ̮ [ˣԴŢ ŝ  ԝ  ղ˜ ּ֙ҹ ωƬ  ȁ ܂ՌɰԤ׃׼ԝצ [ש ܝ ȭ " "״ ŀŐܛĒǢ Ѱİȭ׼ ѸѺ  ѿ Ɖ ɪ ղɏΆǢ5ȤԨŇ׊̧  Ǩӷ Ƙԡ݆݅ҪӞҬtoSѹi ։ҔݓݕąݘհǙӘ݋ Ծܼ׈Ʉȿ  ܝݫ ܠׯҗĒDz    ܧܬĭܮѲҡܲ ˃ӼĠܸ НȎԒմݜݗ ցݑփfr ChֆCȳ ͊ӎގސޒrޔȴ ל ҈ ȭ  ޟԲͲԝΘݟȁݡ֗ ġ̇ˠņմMն  ̾ތɇұilݙȭ޽޿ ܆ ӵ܆ ɽŰ ܈[܁ łƽω߆֗   ݐ ťɦޣ܄̂ՖӚ̇ߏ ȾӮ ˃Ѩ՘ߦ֯˃ݨ  ރ׌ɛcޛޝeAܦɎ׏"ߴޓޕ߸җʇݨҨɄШߩՆׇ߫Ȭ߮ެ܇֫֗׋޻߳ߵ߿߹ď߻߽ޜࠕࠁ̄ԝ˒ ߕͼࠌֺ߭ԝ̮߯ެܾ  Ҭ࠙߶ࠀҳӎ࠮ࠛʡ˒ʟ Ԣլࠢࠦߠࠥߪࠍ Շࠪߙࠬփ࠳ȴ࠰ߺ࠲ࠔࡈࠖࠠכࠄߧכȨɸ ʥ ɀ ̂ ՘ ֩Ʀ Ŧ  Ġˆ ť࡜Ն࡞࠺ࡠ  Ţǒהߥ   ࠐՅӀѠࠣ܊Ը ԭ Ѡ࠶܍ɶξ̀޵޷Ċދߚփpow։Ӳࢍ࢏ުߡࠨ՘ ˌ ࢗ Յֹםތӓ ܽԘѠǒДܓࡽ࢛ ࡸ̅ࢇ ޹߲ܰloo ࠗޘࢳࢵ ޱ࢖ ߍࠎࢾࢫ ɑࡄࡗߛ ࢀ࠵࠼߭ϐʊʖ˞ ࢕̉ࡾࢨࣀࢧࡓ࢝ࡖՉ࡙ࢣ ܙܧܜ ݬ׬ݮܢܤ ׶׸ȭ׺ܧǖłܪ ݹ ıӅݽܴ כ ȥޣ࠹ށࣃݠ ߔܑޣ   ݏ džɹН܄ࢡ ࣹ࢘Ʒ  łʦΒऍ࡮ࣹߦࢼ औӭָࠉऎࡃउࣿचߍ࢞޺ࢋढ ҆Һࡩ Ǽङࡡ݋ՠה޳ܔЩऊङѿࢃࠇߣߑϱ ࢃࢦऑ सț ȭMޟ ϊࣔכॆࡼ़̧ ॅࡸԘ݉աҔ ࠩभݎࢪॐՅࡂफ़ࢨनւफޣŗʸ࣎ƭडࠉҺࣚࡘԥܐࣆǓߜࣝ΍ ħ ࡫Ӂ Ű ̇ࡲ࢞ ޯނߗ֭ࣀҼই ʇ ই֥ ঋथ̆३এঔDZԼʡࠉ ऊַͼগतȍט΁ডԥǬ ˓घߋ।τ ञђי߰ǝְҨ׃࢓ࠏࣹހ࢞ѿ Ґ އ ঳ Րިহ॓ࢨԥՙDZबࣞस ग़ȭyޟ ࠽ ʃӔմ$ূऊ֝ঽऊ঩ѿॽך־Իঞࣉ ɧՇࠋ࣍ʨ७࣑ǼচࠤȁԮ৕ԟ ҁࡒ৥ǧߖǭহ৬५৮࣐ זৎݦǷमॻ ऺॿƦࡲࠇ ƔࣸওঢɏȤ৫ʼn৭࣏σܐঅכ ࠫॵ२߈ࣾਟॗࡒਘࡰਁਛৰࢩਦߘ࢟पॷউƬদӪ࠶Ά४4६ਃߎΒ  ०ࢠਲ਼Н঳ঝ֗޲ਹਚ৯਄̺ডੂਲࣈਤऑੇ঺ࡀਪ਻ਂਜΒ੔ࣄ਱ࡅਣ਴܅ਯਕ҆Ŧ਩਺਼ਜ਼ছ੏ॱࣇࢢ੢ ਧǧࢦ੊ਫੌਾঠআਰऩ੠੄͞ߖ੕ѿޡ࣌੷਽ਝ࡬੤੐੾੒ਇ˥ॺťॼऊɭਊ਎ŝ৘࡯̻ডݩܛࣣתܟѴܡױ׳׵ı࣪"׺ܰ׽׿ıiı޸  ı "ִ࣭̔ ܫĝܭࣳઢࣶԁݿיই঩ঊ҆ইতכੀלʁӬΒ਒ࡷॠ࠷ ੧ܚ ׬ઞȭࢶݱġࣰݸ  ৒ѵď ࣷુ ঘܹਤ૊ ɰȨՓװϔईӒ૮բ૰ Άઘכ૬ऒֲӲ૶ߎԓ૕č૘ઠݰࡥહࣱ૟ܯ"࢏િܵ঻ૃޣӪૻһ૯ࠜʢ૲क़૴૾җ ˓͊ଙȑକ૵ଝଁ࣠଄ݭ૚ଇ૝઻ࣲૠ" ଎ਓ૆૨ރ઀ଡ૭Ԅઢ̧ࡑ঒ଚ଺ݯ ঳ΆȦૌ૷ࣟݪ࣢୊ࣤପ ବ ମଋोଲ૦ࣹ଑ਤ৐ण૳ୀ૿˜̇୚ି૽଻େૐԸ݀݀ଦ୉૗ୋ׮୍Ɔ୏  ଋSૢ ૥পૂଵלބ୹ঢң૪୽ধšܒૺডܐण˵ࢨܐଞજ૖ટ୬૙ ણ࣭୯ݷଭଊѲ৛୔୸૧୾ ୘஁৹ੁޫ஝ஂ ઎לਔஇ ߍ஋੆஭ǒ஌ଂ࣡୫வ୭ஒ ଆȾଈ૞୲ѲҖ஛ਞܷ୺঩ҋԊߞँ কਤ܄ઔҬޥइ୥஦ӽƦਔਖओ Ʒੲ୥੽ॵ޼ࡌ߷ࠖޗҔࡇ௡ ܌Ϗࠟ Ե਻ࢿǡ૒ߎ௫ࡥ૊ࢃˍƭ݇Ɏ ୆एɏ௵Иȿ  Ե̩੏यॽ௎Ǔ஄Ȭʋ̰௮ǝѪਭ˜Ǣ௰௖஬ࣅΆ߼௠ࡉࢷ௤చࠖఒఐ੍૓ެɲޣ̍ހࢃ৾Նߢι΀ॡ̉ࢦѠ̱ਭࡏ˫ଽ੣ఋԝల୅றభషऽ఼࠸ӬԮࢱքĺࡶࢷğెsైɹࡲ˸̮ґࣕੴ఺ూరి੺ఫͼుణ౗ఎళఢߎࣽౄࠒҠే։մp౧Ԗࡲ௰୞௴ౙ௭ౝԸమ௽౛ఴౣਡఘ౪ౌ࢐౦౽౬ ݁ߍɏ౤ࢋɇ౼ై௣౿్௛ǓఆݥƝङ ࡢಂӻ಑ࡴआಊɄୟ஢ԏব ࠡझ௙țࣽऑಝ޴ȭވݘࢰ౥"ޙmޑ߾ޞ࠱Ҕರಲࠚ಴৳઄ȁ৞ݧઐఉ਋ऀ࡭ঀ ͷ࡯Ơࣽ࠶ऴАৱԖʎȭE ࢺܶջōĝץଧஐଅાܣત દ׹ җľƘğ țźĒ̈́ݳ஖୐஘ıӐு ௃ஞ૩উܻೃ੢܄ङɇௐಛ೷௓ಟ௕Ҿࡧ௱௙ʍ಄ఖ੥֒Ԑ׃ ֽಗǙɸಙަ৖ംԮ࢜ੈ௘  ঳਷ އݖಬࢊࡅɇಷ௠߀ಯޏಱഩড಼୿நɸಐഓ਍एהƊ݋ଞ౶ࡨકࡪ߄एळೈɧהౠ੤஍ଃ೛଩ஸೞ થȭધ࣬ ˸೭ ஽ݺફೳܶ଴೶ଶ˾ொŭߝീ৻సǧ ংłरஅ౓ׇЍ ϧ܏౰੻Ǔ੮ॶઍ൤ਉઑೂःೄખ·ݢದୈઝൊୌൌײ࣭ơ୰઼ଯ ൚ଐ௄௉்ޣ ऻഅ୕ఁߐ ଡ࢙˃ࢂ൯ ੫ξߍࣗਔઋਢ੿धयਅගുಓ ࡱ ய՘ளନඅೝඇ ѷඊ୑ѲR୵૤ીஜୖඐ߅ൠಡ೻ൣӪࢃ୅൨Ţࣽ঳ࢃඞ ൰ඡయઊ൵੡൸ೀ ൪థൽഷද඀છප඄ஷභ஺ඉ೮ୱ൘ȭԆඎ஡ޢ஠஥ಞޮ֞೼එ߇நఀŐଠ௒՟শӎ඾෹౎ ހૻɖ৑"ഐവௌ ॸഃփ೿৔Յिӭୟࠅചഌܕॉಯޟ తஃ  ാෝӹശಕѡ݋౲ූൈழஏஶ஑෧ൎೠܧ֔Āଆൗઽܥ඿ܳශூ൜ംৡഋ˜ࢭҠ֋eI ࢉୀօև่๊಑தฑࡵާՅ঎֏࣊࠿Ŕࢮ޸ഥ௞ɛ࢒౾քࢎ௧ฏॖч࢔࣓ॠ ంɅสඁࢨࣗറ൤ݨ෤ะ೜ݯஹีகൖ஗ாı ෯ෳ෱উं๳ഒർநࢃअഖ௒௸඙൪഼ଟई௝ఘsub ࢶޗӲທນѹࢻ̗ผ௢ಿగӟಉപຨదߍരมൾךസ඲Ն๶ฯີั๹ೞีČර೰೑฼ݾෂ೵แܺෆணࣸෞຊക௑൫ঢตॣ஧୚ ෕Ӓܖޘ׆ ࣘ൳ອ෇ේഽൺ࡝ൣാศະන෣೚๷ോา฻ඈൕ ูଯ Ѷවଏ෰ ࣼ໵ޭຫ຃Ǚૈெ෾ȑԎŗୀq๥຅໅ঈ੅ʍϰʿ˟Ԃ฀Ҕขࣂ੟๟߁ĵcնപȲȱ༘ฃ͞૏ৗ૴௤ณ຦࠭༖༜ࡊ௤༦ࠖ ໄҦɻ  ༣༓ఘ༚༗௢࠘༪໗३ʉ Ґ༡߁༲ຕӟ༵༧జ༕༛༫ ਤɆғนག༥཈༹༙༝Ӛʩɰ ݂Őͫ݋˅Ԋණ֧๴Ӛஉฉjມ౵׃༑໙༳གྷན༨ཇ༶༺ࣝġߓਥௗ༤ࡆ཭ཆ߼ཹ༬ฏछŢѾ׃ཥ༎ผཀྵྲྀཫཐ཰ವ཯ཅཽ੢ຌ໋ຒԥՐ༏ȭ྆Ʉɸ౅ང༷࠲ོཊ້༒ཏླྀདྋཻྤฌല્౺ԊԤסבಁӁ ্ઉɏȏמ֧ಋשפԋ໧ຶ๸ܢࣨೣ ௬೧ӰŋĒʍ  ࿋࿌ 3ı˟ˠıѢ1dʎa-̒e7࿙7f࿜a͠2-ŇƽȾaa̾c8    ุ๾෬"W຿୷฿Ȣහྏฒ૲෴ ȿ೐ӳ a৓ೕਥ່ऌཔ༒பञ̓นणྡྷ௟ಳ௦ྥ௥ఛ྇ຒඦࣛจ൤ളฤॽഔໟ෠Γݢߖ ິܞ໩ຸࣧଆѪ஼࿲ฺY࿶฾܎ๅဂrင๋պဇǧƓ঍߉டந૸ಃಣഝОฆ๑๙ຉໝಏฤཟलσ ຑລਮ௻ਔࣀܐ݃ຈസћ̈́ͨ9Ѫˊଞງ݋ख़కഁՀɾෘඨ௜ഴࣻෟศং܀ů྽ဩබါိŝຼ๿ȭཥຂස൝୻ଓԧʆ೹ߎཙࡥईਏସƓྕ࿴׆෵ʪॽఊɛ࿼൳ം໘ਞߊིှ಩ชnȴfݗe ݀ႈʜဥԱୟ ȭဲൢ৷ฏషຏ ϓ৳௖ಞླ੣ߌ୤ଟ൱ԱԐ්၊௻ၣຮந࡛ဟֽ໢สǢ൅൲Ն̀୧ංஎၶ෦ၸำ ೡܧƔ ບމ࿱೯ၼიၿໂಞૄ൦໻໹஀შဈȤ໾ଟୃྫҬӦޖ߻ჳມ༁ բ༄ညཪမྷѾྮףדŝ൮ǙႹဦჱ֞Țᄁג֭೙୪྾ဪࣦ೟ ࿃Ʌ˔ġ൮ĒီĀທ࿮ ପ໯ଋ༄უเქ໷ძൡਤƔЍ̩̱̇ŕɻღО̾˅ʕʧƈɻ႑ਙ݁ʱ್̈́Ƴɻ஄௖ ෽ए֦ඒਤྐഀ ം႔ൿࢨခ޶ࢯ๞ఘma ࡊӲᅗᅙճӄဃစѾŽဠႯȁᄇ஭ञᄸ୕Ⴛ੤ԥထࠓဓဗ࠘ఞޟߖࡕᄉෙ৶၍ဢล৺჊࡯ष ŝʭ໇ฦཾആ਩ךต̾ᅺဘჁಢ॒྘ਫ਼ྡྷᅹആ৤઒ᄆ೅ԏၲЩ̴܄ᅧ࠾ഇ၆ʼԱΆ࠶షШݨടด࡞ᄲ ᄺ၊ఔธᆡ໏௔ໍᆭƓ෵Ӏࡦඝࠞആࠋढ़ਆॳᆸᆼநรᅼॽɾᅿᆂǝᆜȾຈᆻ୅ႈĨ໣ࠇȬᄬΏᄯᄹษญसႨ ᇓʓၥႵτᄵŹͶ৹ᆰᇝ ᇅ၄ ԵͶၥཛ࣌ᄽ̪ͫᄰွᇅɿຆթᅥႛᇆ໊ᅌனႳłĐ঳ߖ৆ ࡂ׃zᅵ৖ယॲᆠᅻು໠ᆙຯʒೌࠉೋၵ૘ࣥણთࣩଆၠ ks-ěႤჟ෫ฺልᄥ࿹ႁᄳĐ̓˦̔࿾୘ʰʦρᇮწ͸ʞˆЍԒྟНሲ̳˧ɧᇿބሸ̔ƨడಽదˑŊ˟ ோ੢ቄ˦ʮቁ০ᄫʄʃ˟ᇤȓ༻ŜˇƨལǬૈႚDZโԣʹŦܐǬᆺՀ఩ਭǬᅏऍ໘ѿУജ඙࿦ଳԣиఴൄŐʊᆥ࢚ߎހɧቮᇹᄳ༮Ɠቲౡʌ ཝᇞ኎ኆృታᇹት਌ᄃЩཿᇅ྇ၘ୨יఽᇛᇺ ቴྰʥްᇜ੤አୂי݀ᇄኋԱቬኀ݈ૹᆻኴී৖኉ቫᇾDZ෵౏ኪᇟූክႼৢౖᅁᆹᄨȍተǷቿ՘షढভଞࡏন ऋၮǬအᇌห౭ჰ ୅ ቪࡁဨምડზ฻ೠ൐ೢપཀȭඍ"મȭર޿ӥଆʮုდምዲ"ર൑ıድҭıCೣȭ઴ ฝҠࣴൌစଌı଱"୓"୴ȭச"bıீӏ൙ชı඾෭ᄔກ" ȭGıHıIሟ"Tı࿵Ⴍıၾტ"ᄤ"ል࣭೐ĀʂŇı2ጙvWTr0uRBGHƊ6Yጘȭ࿑5࿱࣠Ēğବ'),
        t.exports = e
    }
    , function(i, t, u) {
        !function(t) {
            var n = u(5)
              , e = u(6)
              , r = u(2).Fiber;
            function o(t) {
                this.realm = new n(t),
                this.realm.global.startupRandom = Date.parse(new Date) / 1e3,
                this.realm.global.count = 100
            }
            o.prototype.eval = function(t, n) {
                return t = function(t) {
                    var n, e = {}, r = t.split(""), o = r[0], i = r[0], u = [o], p = 256;
                    for (t = 1; t < r.length; t++)
                        n = (n = r[t].charCodeAt(0)) < 256 ? r[t] : e[n] || i + o,
                        u.push(n),
                        o = n.charAt(0),
                        e[p] = i + o,
                        p++,
                        i = n;
                    return u.join("")
                }(t),
                this.run(o.fromJSON(JSON.parse(t)), n)
            }
            ,
            o.prototype.run = function(t, n) {
                n = this.createFiber(t, n);
                if (n.run(),
                !n.paused)
                    return n.rexp
            }
            ,
            o.prototype.call = function(t, n) {
                return this.realm.global[t].apply(this, n)
            }
            ,
            o.prototype.createFiber = function(t, n) {
                n = new r(this.realm,n);
                return n.pushFrame(t, this.realm.global),
                n
            }
            ,
            o.fromJSON = e.fromJSON,
            i.exports = o
        }
        .call(this)
    }
    , function(e, t, r) {
        function a(t) {
            return (a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function a(t) {
                return typeof t
            }
            : function a(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }
            )(t)
        }
        !function() {
            var o = {}.hasOwnProperty
              , t = r(0)
              , i = t.prototypeOf
              , u = t.hasProp
              , t = r(1)
              , p = t.ArrayIterator
              , s = t.StopIteration
              , t = (n.prototype.inv = function(t) {
                return -t
            }
            ,
            n.prototype.lnot = function(t) {
                return !t
            }
            ,
            n.prototype.not = function(t) {
                return ~t
            }
            ,
            n.prototype.inc = function(t) {
                return t + 1
            }
            ,
            n.prototype.dec = function(t) {
                return t - 1
            }
            ,
            n.prototype.add = function(t, n) {
                return n + t
            }
            ,
            n.prototype.sub = function(t, n) {
                return n - t
            }
            ,
            n.prototype.mul = function(t, n) {
                return n * t
            }
            ,
            n.prototype.div = function(t, n) {
                return n / t
            }
            ,
            n.prototype.mod = function(t, n) {
                return n % t
            }
            ,
            n.prototype.shl = function(t, n) {
                return n << t
            }
            ,
            n.prototype.sar = function(t, n) {
                return n >> t
            }
            ,
            n.prototype.shr = function(t, n) {
                return n >>> t
            }
            ,
            n.prototype.or = function(t, n) {
                return n | t
            }
            ,
            n.prototype.and = function(t, n) {
                return n & t
            }
            ,
            n.prototype.xor = function(t, n) {
                return n ^ t
            }
            ,
            n.prototype.ceq = function(t, n) {
                return n == t
            }
            ,
            n.prototype.cneq = function(t, n) {
                return n != t
            }
            ,
            n.prototype.cid = function(t, n) {
                return n === t
            }
            ,
            n.prototype.cnid = function(t, n) {
                return n !== t
            }
            ,
            n.prototype.lt = function(t, n) {
                return n < t
            }
            ,
            n.prototype.lte = function(t, n) {
                return n <= t
            }
            ,
            n.prototype.gt = function(t, n) {
                return t < n
            }
            ,
            n.prototype.gte = function(t, n) {
                return t <= n
            }
            ,
            n);
            function n(t) {
                var n, e, r = {
                    window: "undefined" == typeof window ? {} : window,
                    undefined: void 0,
                    Object: Object,
                    Function: Function,
                    Number: Number,
                    Boolean: Boolean,
                    String: String,
                    Array: Array,
                    Date: Date,
                    RegExp: RegExp,
                    Error: Error,
                    StopIteration: s,
                    Math: Math,
                    JSON: JSON,
                    console: console,
                    encodeURIComponent: encodeURIComponent,
                    unescape: unescape,
                    Uint8Array: Uint8Array,
                    parseInt: parseInt,
                    escape: escape,
                    decodeURIComponent: decodeURIComponent
                };
                for (n in r.global = r,
                this.has = function(t, n) {
                    return null != t && (!!u(t, n) || this.has(i(t), n))
                }
                ,
                this.get = function(t, n) {
                    if (null != t)
                        return u(t, n) || "string" == typeof t && "number" == typeof n || "length" === n ? t[n] : this.get(i(t), n)
                }
                ,
                this.set = function(t, n, e) {
                    var r = a(t);
                    return ("object" === r || "function" === r) && (t[n] = e),
                    e
                }
                ,
                this.del = function(t, n) {
                    var e = a(t);
                    return "object" !== e && "function" !== e || delete t[n]
                }
                ,
                this.instanceOf = function(t, n) {
                    var e;
                    return null != n && ("object" === (e = a(n)) || "function" === e) && n instanceof t
                }
                ,
                this.enumerateKeys = function(t) {
                    var n, e = [];
                    for (n in t)
                        "__mdid__" !== n && e.push(n);
                    return new p(e)
                }
                ,
                t)
                    o.call(t, n) && (e = t[n],
                    r[n] = e);
                this.global = r
            }
            e.exports = t
        }
        .call(this)
    }
    , function(n, t, e) {
        !function() {
            var a = e(7)
              , g = function g(t) {
                for (var n = b(t[2]), e = [], r = t[3], o = 0; o < r.length; o++) {
                    var i = r[o];
                    e.push(g(i))
                }
                for (var u = t[4], p = u.length, s = [], a = t[5], c = 0; c < a.length; c++) {
                    var f = a[c];
                    s.push({
                        start: -1 !== f[0] ? f[0] : null,
                        handler: -1 !== f[1] ? f[1] : null,
                        finalizer: -1 !== f[2] ? f[2] : null,
                        end: -1 !== f[3] ? f[3] : null
                    })
                }
                for (var h = t[6], l = t[7], y = [], d = t[8], w = 0; w < d.length; w++) {
                    var m = d[w];
                    y.push(v(m))
                }
                return new S(null,null,n,e,u,p,s,h,l,y,null)
            }
              , b = function b(t) {
                for (var n = [], e = 0; e < t.length; e++) {
                    for (var r = t[e], o = a[r[0]], i = [], u = 1, p = 1, s = r.length; 1 <= s ? p < s : s < p; u = 1 <= s ? ++p : --p)
                        i.push(r[u]);
                    o = new o(i.length ? i : null);
                    n.push(o)
                }
                return n
            }
              , v = function v(t) {
                var n = t.lastIndexOf("/")
                  , e = t.slice(0, n)
                  , n = t.slice(n + 1);
                return new RegExp(e,n)
            }
              , S = (t.fromJSON = g,
            t);
            function t(t, n, e, r, o, i, u, p, s, a, c) {
                this.filename = t,
                this.name = n,
                this.instructions = e,
                this.scripts = r,
                this.localNames = o,
                this.localLength = i,
                this.guards = u,
                this.stackSize = p,
                this.strings = s,
                this.regexps = a,
                this.source = c
            }
            n.exports = S
        }
        .call(this)
    }
    , function(n, t, e) {
        function v(t) {
            return (v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function v(t) {
                return typeof t
            }
            : function v(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }
            )(t)
        }
        !function() {
            var o, r, i = e(1).StopIteration, t = e(0), u = (t.defProp,
            t.hasProp), t = e(2), s = t.Fiber, p = t.Scope, a = t.WithScope, c = (o = 0,
            function(t, n, e) {
                var r;
                return r = function r(t) {
                    t && (this.args = t)
                }
                ,
                Object.defineProperty(r, "name", {
                    writable: !0,
                    value: t
                }),
                r.prototype.id = o++,
                r.prototype.name = t,
                r.prototype.exec = n,
                r.prototype.calculateFactor = e || function() {
                    return 2
                }
                ,
                r
            }
            ), t = [new (r = function r(t, n, e) {
                return c(t, n, e)
            }
            )("",function(t, n, e) {
                return m(t)
            }
            ), new r("",function(t, n, e) {
                return n.pop()
            }
            ), new r("",function(t, n, e) {
                return n.push(n.top())
            }
            ), new r("",function(t, n, e) {
                var r = n.pop()
                  , o = n.pop();
                return n.push(r),
                n.push(o)
            }
            ), new r("",function(t, n, e) {
                return t.fiber.rv = n.pop(),
                m(t)
            }
            ), new r("",function(t, n) {
                return t.paused = !0
            }
            ), new r("",function(t, n) {
                return t.fiber.yielded = n.pop(),
                t.fiber.pause()
            }
            ), new r("",function(t, n, e) {
                return g(t, n.pop())
            }
            ), new r("",function(t) {
                return t.guards.push(t.script.guards[this.args[0]])
            }
            ), new r("",function(t) {
                var n = t.guards[t.guards.length - 1];
                if (t.script.guards[this.args[0]] === n)
                    return t.guards.pop()
            }
            ), new r("",function(t, n, e) {
                return t.fiber.r1 = n.pop()
            }
            ), new r("",function(t, n, e) {
                return t.fiber.r2 = n.pop()
            }
            ), new r("",function(t, n, e) {
                return t.fiber.r3 = n.pop()
            }
            ), new r("",function(t, n, e) {
                return n.push(t.fiber.r1)
            }
            ), new r("",function(t, n, e) {
                return n.push(t.fiber.r2)
            }
            ), new r("",function(t, n, e) {
                return n.push(t.fiber.r3)
            }
            ), new r("",function(t, n, e) {
                return n.fiber.rexp = n.pop()
            }
            ), new r("",function(t, n, e) {
                return f(t, 0, "iterator", n.pop())
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.enumerateKeys(n.pop()))
            }
            ), new r("",function(t, n, e) {
                if (f(t, 0, "next", n.pop()),
                t.error instanceof i)
                    return t.error = null,
                    t.paused = !1,
                    t.ip = this.args[0]
            }
            ), new r("",function(t, n, e) {
                if (e.set(1, n.pop()),
                n = n.pop(),
                this.args[0])
                    return e.set(2, n)
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.global)
            }
            ), new r("",function(t, n, e, r) {
                var o = this.args[0]
                  , i = this.args[1]
                  , u = e.get(1);
                if (o < u.length)
                    return e.set(i, Array.prototype.slice.call(u, o))
            }
            ), new r("",function(t, n, e) {
                return h(t, this.args[0], n.pop(), null, null, !0)
            }
            ), new r("",function(t, n, e) {
                return h(t, this.args[0], n.pop(), null, this.args[1])
            }
            ), new r("",function(t, n, e) {
                return f(t, this.args[0], n.pop(), n.pop(), this.args[1])
            }
            ), new r("",function(t, n, e, r) {
                var o = n.pop()
                  , i = n.pop();
                return null == o ? g(t, new Error("Cannot read property '" + i + "' of " + o)) : n.push(r.get(o, i))
            }
            ), new r("",function(t, n, e, r) {
                var o = n.pop()
                  , i = n.pop()
                  , u = n.pop();
                return null == o ? g(t, new Error("Cannot set property '" + i + "' of " + o)) : n.push(r.set(o, i, u))
            }
            ), new r("",function(t, n, e, r) {
                var o = n.pop()
                  , i = n.pop();
                return null == o ? g(t, new Error("Cannot convert null to object")) : n.push(r.del(o, i))
            }
            ), new r("",function(t, n, e) {
                for (var r = this.args[0], o = this.args[1], i = e; r--; )
                    i = i.parent;
                return n.push(i.get(o))
            }
            ), new r("",function(t, n, e) {
                for (var r = this.args[0], o = this.args[1], i = e; r--; )
                    i = i.parent;
                return n.push(i.set(o, n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                for (var o, i = this.args[0]; e instanceof a; ) {
                    if (e.has(i))
                        return n.push(e.get(i));
                    e = e.parent
                }
                for (; e instanceof p; ) {
                    if (0 <= (o = e.name(i)))
                        return n.push(e.get(o));
                    e = e.parent
                }
                return u(r.global, i) || this.args[1] ? n.push(r.global[i]) : g(t, new Error(i + " is not defined"))
            }
            ), new r("",function(t, n, e, r) {
                for (var o, i = this.args[0], u = n.pop(); e instanceof a; ) {
                    if (e.has(i))
                        return n.push(e.set(i, u));
                    e = e.parent
                }
                for (; e instanceof p; ) {
                    if (0 <= (o = e.name(i)))
                        return n.push(e.set(o, u));
                    e = e.parent
                }
                return n.push(r.global[i] = u)
            }
            ), new r("",function(t, n, e, r) {
                return u(r.global, this.args[0]) || this.args[1] ? n.push(r.global[this.args[0]]) : g(t, new Error(this.args[0] + " is not defined"))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.global[this.args[0]] = n.pop())
            }
            ), new r("",function(t) {
                return t.scope = new p(t.scope,t.script.localNames,t.script.localLength)
            }
            ), new r("",function(t) {
                return t.scope = t.scope.parent
            }
            ), new r("",function(t, n) {
                return t.scope = new a(t.scope,n.pop())
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.inv(n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.lnot(n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.not(n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.inc(n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.dec(n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.add(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.sub(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.mul(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.div(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.mod(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.shl(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.sar(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.shr(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.or(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.and(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.xor(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.ceq(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.cneq(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.cid(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.cnid(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.lt(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.lte(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.gt(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.gte(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.has(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(r.instanceOf(n.pop(), n.pop()))
            }
            ), new r("",function(t, n, e, r) {
                return n.push(v(n.pop()))
            }
            ), new r("",function(t, n) {
                return n.pop(),
                n.push(void 0)
            }
            ), new r("",function(t, n, e) {
                return t.ip = this.args[0]
            }
            ), new r("",function(t, n, e) {
                if (n.pop())
                    return t.ip = this.args[0]
            }
            ), new r("",function(t, n, e) {
                if (!n.pop())
                    return t.ip = this.args[0]
            }
            ), new r("",function(t, n) {
                return n.push(void 0)
            }
            ), new r("",function(t, n, e) {
                return n.push(this.args[0])
            }
            ), new r("",function(t, n, e) {
                return n.push(t.script.strings[this.args[0]])
            }
            ), new r("",function(t, n, e, r) {
                return n.push(new RegExpProxy(t.script.regexps[this.args[0]],r))
            }
            ), new r("",function(t, n, e, r) {
                for (var o = this.args[0], i = {}; o--; )
                    r.set(i, n.pop(), n.pop());
                return n.push(i)
            }
            ), new r("",function(t, n, e, r) {
                for (var o = this.args[0], i = new Array(o); o--; )
                    i[o] = n.pop();
                return n.push(i)
            }
            ), new r("",function(t, n, e, r) {
                var o = this.args[0];
                return n.push(l(t.script.scripts[o], e, r, this.args[1]))
            }
            ), new r("",function(t) {
                return t.setLine(this.args[0])
            }
            ), new r("",function(t) {
                return t.setColumn(this.args[0])
            }
            ), new r("",function(t, n, e) {
                return b()
            }
            )], f = function f(t, n, e, r, o) {
                var i = t.evalStack
                  , u = t.realm;
                if (null == r)
                    return g(t, new Error("Cannot call method '" + e + "' of " + (void 0 === r ? "undefined" : "null")));
                var p = r.constructor.name || "Object"
                  , u = u.get(r, e);
                return u instanceof Function ? h(t, n, u, r, o) : null == u ? (i.pop(),
                g(t, new Error("Object #<" + p + "> has no method '" + e + "'"))) : (i.pop(),
                g(t, new Error("Property '" + e + "' of object #<" + p + "> is not a function")))
            }, h = function h(t, n, e, r, o, i) {
                if ("function" != typeof e)
                    return g(t, new Error("object is not a function"));
                for (var u = t.evalStack, p = t.fiber, s = t.realm, a = {
                    length: n,
                    callee: e
                }; n; )
                    a[--n] = u.pop();
                r = r || s.global;
                a = Array.prototype.slice.call(a);
                try {
                    var c = i ? w(e, a) : e.apply(r, a);
                    if (!p.paused)
                        return u.push(c)
                } catch (f) {
                    g(t, f)
                }
            }, l = function l(o, i, u, t) {
                var p;
                return p = function p() {
                    var t, n, e, r = !1;
                    if ((n = p.__fiber__) ? (n.callStack[n.depth].paused = !0,
                    p.__fiber__ = null,
                    t = p.__construct__,
                    p.__construct__ = null) : (n = new s(u),
                    r = !0),
                    e = p.__callname__ || o.name,
                    p.__callname__ = null,
                    n.pushFrame(o, this, i, arguments, p, e, t),
                    r)
                        return n.run(),
                        n.rv
                }
            }, y = function y(t) {
                return 1 === t.length && (0 | t[0]) === t[0] ? new Array(t[0]) : t.slice()
            }, d = function d(t) {
                return 1 === t.length ? new RegExp(t[0]) : new RegExp(t[0],t[1])
            }, w = function w(t, n) {
                var e;
                return t === Array ? y(n) : t === Date ? new Date : t === RegExp ? d(n) : t === Number ? new Number(n[0]) : t === Boolean ? new Boolean(n[0]) : t === Uint8Array ? new Uint8Array(n[0]) : ((e = function e() {
                    return t.apply(this, n)
                }
                ).prototype = t.prototype,
                new e)
            }, m = function m(t) {
                return t.evalStack.clear(),
                t.exitIp = t.ip
            }, g = function g(t, n) {
                return t.error = n,
                t.paused = !0
            }, b = function b() {};
            n.exports = t
        }
        .call(this)
    }
    ],
    o.c = r,
    o.d = function(t, n, e) {
        o.o(t, n) || Object.defineProperty(t, n, {
            enumerable: !0,
            get: e
        })
    }
    ,
    o.r = function(t) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
            value: "Module"
        }),
        Object.defineProperty(t, "__esModule", {
            value: !0
        })
    }
    ,
    o.t = function(n, t) {
        if (1 & t && (n = o(n)),
        8 & t)
            return n;
        if (4 & t && "object" == typeof n && n && n.__esModule)
            return n;
        var e = Object.create(null);
        if (o.r(e),
        Object.defineProperty(e, "default", {
            enumerable: !0,
            value: n
        }),
        2 & t && "string" != typeof n)
            for (var r in n)
                o.d(e, r, function(t) {
                    return n[t]
                }
                .bind(null, r));
        return e
    }
    ,
    o.n = function(t) {
        var n = t && t.__esModule ? function() {
            return t["default"]
        }
        : function() {
            return t
        }
        ;
        return o.d(n, "a", n),
        n
    }
    ,
    o.o = function(t, n) {
        return Object.prototype.hasOwnProperty.call(t, n)
    }
    ,
    o.p = "",
    o(o.s = 3);
    function o(t) {
        if (r[t])
            return r[t].exports;
        var n = r[t] = {
            i: t,
            l: !1,
            exports: {}
        };
        return e[t].call(n.exports, n, n.exports, o),
        n.l = !0,
        n.exports
    }
    var e, r
});

r = [
    "A",
    "B",
    "C",
    "D",
    "E",
    "F",
    "G",
    "H",
    "I",
    "J",
    "K",
    "L",
    "M",
    "N",
    "O",
    "P",
    "Q",
    "R",
    "S",
    "T",
    "U",
    "V",
    "W",
    "X",
    "Y",
    "Z",
    "a",
    "b",
    "c",
    "d",
    "e",
    "f",
    "g",
    "h",
    "i",
    "j",
    "k",
    "l",
    "m",
    "n",
    "o",
    "p",
    "q",
    "r",
    "s",
    "t",
    "u",
    "v",
    "w",
    "x",
    "y",
    "z",
    "0",
    "1",
    "2",
    "3",
    "4",
    "5",
    "6",
    "7",
    "8",
    "9",
    "+",
    "/"
]

function l1(n){
    for (var t = n["length"], e = new Uint8Array(t), r = 0; r < t; r++)
        e[r] = n["charCodeAt"](r);
    return e
}

function d(n) {
    return new Promise((function(t, e) {
        Jose.realm.global["$encrypt"](n, 'c7b645db-65e8-401f-b38c-4c07c5fff247', {
            suc: t,
            err: e
        })
    }
    ))
}

function l2(n) {
    return r[n >> 18 & 63] + r[n >> 12 & 63] + r[n >> 6 & 63] + r[63 & n]
}

function h(n, t, e) {
    for (var r, c = [], a = t; a < e; a += 3)
        r = (n[a] << 16 & 16711680) + (n[a + 1] << 8 & 65280) + (255 & n[a + 2]),
        c.push(l2(r));
    return c.join("")
}

function v(n) {
    for (var t, e = n.length, c = e % 3, a = [], i = 16383, o = 0, u = e - c; o < u; o += i)
        a.push(h(n, o, o + i > u ? u : o + i));
    return 1 === c ? (t = n[e - 1],
    a.push(r[t >> 2] + r[t << 4 & 63] + "==")) : 2 === c && (t = (n[e - 2] << 8) + n[e - 1],
    a.push(r[t >> 10] + r[t >> 4 & 63] + r[t << 2 & 63] + "=")),
    a.join("")
}

toString = function(myArray){
    array2 = new Array()
    for (i in myArray){
        array2.push(parseInt(myArray[i]))
    }
    myuint = new Uint8Array(array2)
    return v(myuint);
}

function getCaptchaSecertParams(params) {
    o = l1(params)
    d(o).then(res => {
        console.log(toString(res))
    })
}

var a = process.argv
getCaptchaSecertParams(a[2])

测试一下:

和网页端结果一样,END!