VimUnDoy͏!s=ą#E",I}*````P_P>N5_ P>P var reduce = Method()5_ vP>Wexports.reduce = reduce5_ vP>Zexports.accumulate = reduce5_ vP>^accumulate.define5_ vP>daccumulate.define()5_# vP>i$accumulate.define(Array, function())5_ % vP>j'accumulate.define(Array, function() {})5_ " vP>n%accumulate.define(Array, function() {5_ , vP> 5_  vP> 5_   vP> while ()5_   vP> while (index < count)5_  vP> while (index < count) {}5_ vP> 5_ vP> result = f()5_ vP> result = f(result, [])5_ vP> result = f(result, array[])5_ vP>& result = f(result, array[index++])5_  vP> var result = start5_ vP>) result = next(result, array[index++])5_vP>. accumulated = next(result, array[index++])5_!vP> 5_vP> if ()5_)vP>) if (accumulate && accumulate === end)5_/vP>/ if (accumulate && accumulate === end) break5_ vP>  5_ vP>  var end = {}5_/vP?#7accumulate.define(Array, function(array, next, start) {5_.vP?$1accumulate.define(Array, function(array, start) {5_ vP?0 5_! vP?B stop()5_ "!0vP?D stop0 if (accumulate && accumulate === end) break;5_!#" vP?G stop()5_"$#vP?T stop(result)5_#%$vP?X 5_$&%vP?[5_%'&vP?] 5_&('vP@5_')(vP@function accumulator()5_(*)vP@function accumulator() {}5_)+*vP@5_*,+vP@ function accumulator() {5_+-,$vP@  5_,.- vP@  return {}5_-/.vP@" !5_.0/ vP@" return {5_/10 vP@" return {}5_021vP@" 5_132vP@" accumulate: function()5_243vP@!# "5_354vP@'# accumulate.define()5_465vP@'# accumulate.define({})5_576"vP@5#$ accumulate.define(Object.create())5_687)vP@6#* accumulate.define(Object.create(source))5_7985vP@:#6 accumulate.define(Object.create(source), function())5_8:97vP@;#9 accumulate.define(Object.create(source), function() {})5_9;:vP@< return {5_:<;vP@< accumulate: function(a)5_;=<vP@= }5_<>=4vP@A!7 accumulate.define(Object.create(source), function() {5_=?>LvP@I" !5_>@?vP@U" accumulate()5_?A@!vP@Y"" accumulate(source, function())5_@BA#vP@Z"% accumulate(source, function() {})5_ACB vP@w## accumulate(source, function() {5_BDC,vP@$ #5_CEDvP@$ return trasform()5_DFEvP@$ })5_EGF vP@$ }, end)5_FHGvP@function reduce%$5_GIHvP@&function reduce()5_HJIvP@&!function reduce(source, f, start)5_IKJ$vP@&$function reduce(source, next, start)5_JLK&vP@&'function reduce(source, next, start) {}5_KMLvP@'&function reduce(source, next, start) {5_LNMvP@( '5_MONvP@( return accumulator()5_NPO'vP@(( return accumulator(source, function())5_OQP)vP@(+ return accumulator(source, function() {})5_PRQ&  vP@)) return accumulator(source, function() {5_QSR2  vPA1* )5_RTS !!vPA5* return f()5_SVTPw*'/* vim:set ts=2 sw=2 sts=2 expandtab */M/*jshint asi: true undef: true es5: true node: true browser: true devel: true9 forin: true latedef: false globalstrict: true */ 'use strict';var Method = require('method')6// Define a shortcut for `Array.prototype.slice.call`.=var unbind = Function.call.bind(Function.bind, Function.call)8var slice = Array.slice || unbind(Array.prototype.slice) var end = {};var accumulate = Method()exports.accumulate = accumulate(function accumulator(source, trasform) {P accumulate.define(Object.create(source), function(source, start, next, stop) {0 accumulate(source, function(result, value) {$ return trasform(result, value) }, stop) })}#function reduce(source, f, start) {6 return accumulator(source, function(result, value) { return f(result, value) })}=accumulate.define(Array, function(array, start, next, stop) { var accumulated = start var index = 0 var count = array.length while (index < count) {3 accumulated = next(accumulated, array[index++])) if (accumulate && accumulate === end) stop(accumulated.value) } stop()})5_TWUV/)vP!.0h+ if (result && result.is === accumulateed)5_VXWvP%hFvar accumulateed = Box('Indicator that source has being accumulateed')5_WYXvP:h$var end = Box('end of the sequence')Evar accumulated = Box('Indicator that source has being accumulateed')var error = Box('error')var accumulate = Method()5_XZY 8vP 5_Y[Z 7vP =var unbind = Function.call.bind(Function.bind, Function.call)5_Z\[ 6vP 8var slice = Array.slice || unbind(Array.prototype.slice)5_[]\  5vP  7#function reduce(source, f, start) { a+var accumulate = Method()exports.accumulate = accumulatevar enqueue = Method()exports.enqueue = enqueuevar dispose = Method()exports.dispose = disposevar close = Method()exports.close = closevar accumulateor = Name()var state = Name()function Channel() {}=accumulate.define(Channel, function(channel, next, initial) { channel[accumulateor] = next channel[state] = initial})+dispose.define(Channel, function(channel) { channel[accumulateor] = null channel[state] = null})2enqueue.define(Channel, function(channel, value) {; var result = channel[accumulateor](value, channel[state]) channel[state] = result* if (result && result.is === accumulated) dispose(channel)})0close.define(Channel, function(channel, value) {2 if (value !== undefined) enqueue(channel, value) var result = channel[state]" var next = channel[accumulateor] dispose(channel) next(end(), result)})+function channel() { return new Channel() }exports.channel = channel#function reduce(source, f, start) {5_\^]  vP 75_]_^  vP 9 85_^`_ vP 9var core = require()5__a` vP 9var core = require('')5_`ba vP 9var core = require('./core')5_acb vP) : accumulate = core.accumulate5_bdc/v/P6":function tranform(source, f) {A return accumulate.implement({}, function(self, next, initial) {0 accumulate(source, function(value, result) {9 return value && value.isBoxed ? next(value, result)< : f(next, value, result) }, initial) })}exports.tranform = tranformfunction filter(source, f) {9 return tranform(source, function(next, value, result) {2 return f(value) ? next(value, result) : result })}exports.filter = filterfunction map(source, f) {9 return tranform(source, function(next, value, result) {! return next(f(value), result) })}exports.map = map5_cidv/PO ?$#"5_djei(??v/P(*J (*I5_ikj)@@v/P() return5_jlk??v/PJI5_kml@@v/PJfunction reducible()5_lnm@@v/PJfunction reducible(source)5_mon@@v/PJfunction reducible(source) {}5_npoAAv/PK5_oqpBBv/PM L5_prqCCv/PM accumulate.implement()5_qsrCCv/PM accumulate.implement({})5_rtsCCv/P#Mfunction reducible(source) {5_sut#CCv/P'M$ accumulate.implement({}, function)5_tvu%CCv/P(M& accumulate.implement({}, function())5_uwv'CCv/P( M) accumulate.implement({}, function() {})5_vxw 0DDv/P^  N0 accumulate = core.accumulate, end = core.end5_wyx EEv/Pk  O5_xzyFFv/PqP' accumulate.implement({}, function() {5_y{zFFv/PuP accumulator({}, function() {5_z|{FFv/Px P accumulato(function() {5_{}|$FFv/PP' accumulato(function(source, next, ) {5_|~}*FFv/PP5_}~GGv/PQ5_~ GGv/PQ. accumulato(function(source, next, initial) {5_GGv/PQ 5_ GGv/PQ return f()5_GGv/PQ return f(source, function())5_!GGv/PQ# return f(source, function() {})5_HHv/PR })5_HHv/PR! return f(source, function() {5_#HHv/PR' return f(source, function forin() {5_$HHv/P!S R5_&KKv/PU) return f(source, function forward() {5_BKKv/P  UC : f(next, value, result, state)5_ KKv/P# 5_JJv/P6T/ accumulator(function(source, next, initial) {5_4JJv/Pd35T/ return reducible(function(_, next, initial) {5_4"vP35T1 return accumulator(function(_, next, initial) {5_&"vPU T5_#vPU console.log()5_#vP console.log(f)5_7"vP79T5_8"vP785_6"vP68U 68T5_7"vP68U console.log()5_7"vP67 console.log(next)5_"vP^U T5_#vPaU console.log()5_#vPaU console.log('')5_#vPh U console.log('>>>>>>')5_-#vPU6 return f(source, function forward(value, result) {5_,#vPU/ return f(source, function forward(result) {5_2#vPV U5_ $vPV next()5_$vP0 console.log('>>>>>>', value, result, next)5_#vP9 return value && value.isBoxed ? next(value, result)5_$"vP!< : f(next, value, result)5_!vP"S next(value, result)5_ !vPT S5_"vP$T console.log()5_"vP% console.log(result, value)5_!vP0&TS5_ "&vP' X" accumulator = core.accumulator5_P"&vP+OQXA return accumulate.implement({}, function(self, next, initial) {5_!&vP#uY X5_ 'vP#x,Y console.log()5_ 'vP#Y console.log(value, result)5_& 'vP#Y' console.log('value', value, result)5_ 'vP#Z Y5_!(vP#Z console.log()5_!(vP#Z console.log('')5_!(vP#-Z console.log('result')5_!(vP#[ Z5_")vP#[ if ()5_")vP#[ if (value && value.isBoxed)5_")vP#[ if (!value && value.isBoxed)5_")vP#[ if (!value || value.isBoxed)5_!")vP# return f[! if (!value || !value.isBoxed)5_#*vP#\ return f()5_#*vP#] \5_%,vP$^ else5_ %,vP$^ else if ()5_%,vP$  deliver^ else if (value.is === end)5_&-vP$_ deliver()5_&-vP$ _5_ '.vP$!` return value5_!'.vP$ !? return value && value.is === end ? deliver(promise, result)5_!%&-vP$. !7 : f(result, value)5_%,vP$ console.log('value', value)5_$+vP$/! console.log('result', result)5_!#*vP$8\! if (!value || !value.isBoxed)5_##*vP$9\$ if (!value || !value.isBoxed) {}5_$+vP$:^ ]5_ %,vP$;^ if ()5_ %,vP$J^# if (!value || !value.isBoxed) {5_%,vP$L^" if (value || !value.isBoxed) {5_%,vP$P^ if (value.is === end)5_$%,vP$R^% if (value.is === end) deliver()5_2%,vP$U_ ^5_&-vP$Y_ }5_ &-vP$Z_ } else {}5_'.vP$\ }5_&-vP$] else if (value.is === end)5_%,vP$] deliver(promise, result)5_$+vP$]5_#*vP$_ return value5_")vP$`0\ [5_#*vP$7\! if (value || value.isBoxed) {5_<vP8;=\/ return reducible(function(_, next, initial) {5_$vP"#%\function reducible(f) {5_%vP,9$&\6 return accumulator(function(source, next, initial) {5_%vPo:$&\6 return accumulator(function(source, next, initial) {5_ vPv \2 accumulator = core.accumulator, map = core.map5_ vP|; \. convert = core.accumulator, map = core.map5_% vP$&\+ return (function(source, next, initial) {5_%vP$&\4 return transform(function(source, next, initial) {5_%vP>$&\2 return convert(function(source, next, initial) {5_"P@] \5_ PC] if ()5_PF] if (value.is)5_PR? if (value.is === 5_ 1P] \1 accumulate = core.accumulate, end = core.end,5_ DPa@ \D accumulate = core.accumulate, end = core.end, error = core.error5_3Pe] \5_ Pg] if ()5_Pm] if (value.is === error)5_&Pp]' if (value.is === error) deliver()5_5Pt]7 if (value.is === error) deliver(promise, Error())5_7PvA]9 if (value.is === error) deliver(promise, Error(er))5_;Py]< if (value.is === error) deliver(promise, Error(error))5_5PzD]; if (value.is === error) deliver(promise, Error(error)5_vP^ ]5_vPE^ console.log()5_vP&F^ console.log(value)5_ 4vP-G^5 if (value.is === error) deliver(promise, error)5_  vP/H console.log(value, result)5_  5vP I]6 if (value.is === error) deliver(promise, result)5_  --5vP N,.T5// console.log(into(join([ 1, 2 ], [ 3 ], [ 3, 5 ]))),.] function append(left, right) { /**4 Joins given `reducible`s into `reducible` of items7 of all the `reducibles` preserving an order of items. **/" return flatten(slice(arguments))}exports.append = append5// console.log(into(join([ 1, 2 ], [ 3 ], [ 3, 5 ])))5_vP OT6// Define a shortcut for `Array.prototype.slice.call`.=var unbind = Function.call.bind(Function.bind, Function.call)8var slice = Array.slice || unbind(Array.prototype.slice)5_vP P5_vP P O5_vP QP console.log()5_*v*P P+ console.log(value && value.is == end)5_*v*P  5_*v*P RP O5_*v*P S) console.log(value && value.is == end)5_ *v*P P O5_! *v*P  conso5_ "!*v*P P O5_!#"*v*P TP console.log()5_"$#*v*P UP console.log(value)5_#%$*v*P aV console.log('>>>>>', value)5_$&%F*v*P EF function generator(generate) {4 return accumulator(function(self, next, initial) { var state = initial generate(function(value) { state = next(value, state) return state }) })}exports.generator = generator5_%'&E*v*P WEE5_&('M *v*P LNS& accumulate(source, function(value) {5_')(M*v*P LNS" reduce(source, function(value) {5_(*)M*v*P LNS* reduce(source, function(result, value) {5_)+*L*v*P KL var result = buffer || []5_*,+O*v*P NPR })5_+-,M*v*P XLM, if (value && value.isBoxed) return value5_,.-O*v*P YNO return result5_-/.M *v*P ZMOQ MOP5_.0/M*v*P $MOR MOQ5_/10N*v*P &MOR con5_021N*v*P (\MOR console.log()5_132N*v*P 0]MN console.log(result)5_2438*v*P 8^Q8 defer = eventuals.defer, deliver = eventuals.deliver5_354 *v*P >Q return promise5_465*v*P @aQ return when(promise5_576>*v*P }cQ> defer = eventuals.defer, deliver = eventuals.deliver, when5_687L0*v*P +LNR LNQ5_798M*v*P .LNR console.log()5_8:9M*v*P 0dLNR console.log(result)5_9;: *v*P WS R5_:<;*v*P ZS console.log()5_;=<*v*P ZS console.log('')5_<>=*v*P \eS console.log('reduce?')5_=D>*v*P ckS# console.log('reduce?' result)5_>EAD*v*P 9T S5_DFE *v*P ET }, start)5_EGF *v*P ^T return f(result, value)5_FHG*v*P clT state = f(result, value)5_GIH+*v*P jmT. accumulate(source, function(value, result) {5_HJI*v*P nn$ console.log('reduce?', result)5_IKJ3*v*P qpS4 if (value.is === end) deliver(promise, result)5_JLKvP }S return value5_KMLvP } 5_LNMvP qS R5_MONvP T S5_NPOvP U T5_OQPvP s return value5_PRQOvP tNO console.log('>>>', result)5_QSR vP S#function reduce(source, f, start) {5_RTSvP w var state = start5_SUTvP bS R5_TZUvP g{S console.log()5_U[XZ2 vP 24T 24S5_Z\[3vP |24T console.log()5_[]\vP } console.log(value)5_\^]3vP 35T 35S5_]_^4vP 35T console.log()5_^`_4vP ~35T console.log(re)5__a`4!vP 35T" console.log(result, value)5_`ba35!5vP 35U 35T5_acb46!6vP 35U$ result = next(result, value)5_bec46!6vP 35U( var result = next(result, value)5_cfde5$6!6vP 46U$ console.log(result, value, )5_egf66!6vP 57U" return next(result, value)5_fhg66!6vP 57U return nextlt, value)5_gih56!6vP 46U console.log(bla)5_h|i26!6vP !12! console.log(result, nested)5_i}j|/5!5vP @/1U /1T5_|}06!6vP F/0 ac5_}~35!5vP 24T% var bla = next(result, value)5_45!5vP 35T console.log('>>>', bla)5_55!5vP 46T return bla5_2 5!5vP 13T5 return reduce(nested, function(result, value) {5_65!5vP 68U 68T5_65!5vP #68V 68U5_75!5vP %68V console.log()5_75!5vP &68V console.log('')5_75!5vP '68V console.log('<<<')5_1 5!5vP 002V4 return reduce(source, function(result, nested) {5_9 5!5vP 49;W 9;V5_9 5!5vP 79;X 9;W5_:5!5vP ;9;X console.log()5_:5!5vP <9;X console.log('')5_:5!5vP =9;X console.log('!!!')5_# 5!5vP a"$X6 return f(source, function forward(result, value) {5_# 5!5vP g#%X5_$6!6vP h#$5_$5!5vP h$&X5_%6!6vP i$%5_%5!5vP i%'Y %'X5_&6!6vP m%'Y console.log()5_&6!6vP o%'Y console.log('')5_&6!6vP p%'Y console.log('###')5_&6!6vP q&(Z &(Y5_& 7!7vP &([ &(Z5_' 8!8vP &([ when()5_'8!8vP &([ when(r, function())5_'8!8vP &)[ when(r, function() {})5_(9!9vP ')\ })5_(9!9vP ')\ }, function())5_(9!9vP '*\ }, function() {})5_':!:vP &(] when(r, function() {5_':!:vP ')^ ')]5_( ;!;vP ')^ next()5_(;!;vP ')^ next(end())5_(;!;vP ')^ next(end(), r)5_);!;vP )+_ )+^5_* <!<vP )+_ next()5_*<!<vP )+_ next(error())5_)<!<vP (*_ }, function() {5_*<!<vP )+_ next(error(), )5_*<!<vP )+_ next(error(), e)5_*<!<vP )+_ next(error(e), e)5_&<!<vP %& console.log('###', r)5_:;!;vP 9: console.log('>>>', r2)5_9:!:vP 8:]$ var r2 = next(result, value)5_::!:vP 9: return r25_8:!:vP 79\7 var r1 = reduce(nested, function(result, value) {5_;:!:vP :; console.log('<<<', r1)5_;:!:vP :; return r15_7 :!:vP 68Z5 var r = reduce(source, function(result, nested) {5_<:!:vP ;< console.log('!!!', r)5_<:!:vP ;< return r5_# :!:vP  "$X7 var r = f(source, function forward(result, value) {5_& :!:vP %'X when(r, function(value) {5_&:!:vP %'X" when(return, function(value) {5_&":!:vP %'X" when(result, function(value) {5_&(:!:vP %'X) when(result, function(value) { next()5_&-:!:vP %'X. when(result, function(value) { next(end())5_&5:!:vP %'X6 when(result, function(value) { next(end(), result)5_&5:!:vP %'X5 when(result, function(value) { next(end(), value)5_':!:vP  &' next(end(), value)5_'9!9vP !&' }, function(e) {5_'8!8vP !&' next(error(e))5_'7!7vP "&' })5_'6!6vP "&' return r5_5!5vP  T S5_6!6vP T console.log()5_6!6vP {+ console.log(source, accumulate in source)5_&#5!5vP j%%(S8 when(result, function(value) { next(end(), value) })5_'6!6vP j'&)T next(end(), value) })5_(7!7vP j)')U })5_(7!7vP j+')U }, function())5_(7!7vP j-')U }, function(error))5_(7!7vP j.'*U }, function(error) {})5_(8!8vP j/(*W (*V5_(9!9vP j2')W }, function(error) {5_) 9!9vP j6(*W nex5_) 9!9vP j7(*W next()5_)9!9vP j9(*W next(error())5_WvP XZfunction sequentialWW5_YvP Xfunction sequential()5_YvP XZfunction sequential(source)5_YvP Xfunction sequential(source) {}5_YvP Y[[ Y[Z5_ZvP "Y[[ return reducible()5_Z$vP (Y[[& return reducible(source, eventual())5_Z-vP *Y[[0 return reducible(source, eventual(function()))5_Z>vP 5Y[[@ return reducible(source, eventual(function(_, next, initial)))5_Z@vP 5Y\[C return reducible(source, eventual(function(_, next, initial) {}))5_ZvP FZ\] Z\\5_Z$vP YY[]@ return reducible(source, eventual(function(_, next, initial) {5_\vP [[]] }))5_[ vP ^Z\] reduce()5_[vP kZ\] reduce(source, )5_[vP mZ\] reduce(source, eventuals())5_[vP nZ\] reduce(source, eventual())5_[&vP pZ\]( reduce(source, eventual(function()))5_[(vP pZ]]+ reduce(source, eventual(function() {}))5_[%vP tZ\^( reduce(source, eventual(function() {5_\vP |[]^ }))5_[vP []_ []^5_\ vP []_ next()5_vP ` _5_vP `var eventual = require()5_vP `var eventual = require('')5_'vP `'var eventual = require('eventual/core')5_`vP ``5_avP `exports.sequ vim5_]vP \^a next(result, value)5_\vP []a5 reduce(source, eventual(function(result, value) {5_ P|F b a5_P|K bvar defer = require()5_P|L bvar defer = require("")5_!P|Scb5_P|W c$var defer = require("pending/defer")5_ P|Zc var deliver 5_P|\cvar deliver require()5_P|\cvar deliver require("")5_ #P|cc5_  P|eed5_   P|hevar when = require()5_   P|ievar when = require("")5_    P|tfe5_  P|}fvar 5_ P|fvar eventual = require()5_P|fvar eventual = require("")5_+vP|f,var eventual = require("eventual/decorator")5_+vP|gf5_+vP|5_+vP|-var eventuals = require('eventual/eventual'),5_+vP|O defer = eventuals.defer, deliver = eventuals.deliver, when = eventuals.when5_+vP|0var eventual = require('eventual/core').eventual5_+vP|5_ vP|b&var deliver require("pending/deliver")5_*vP|7b,var eventual = require("eventual/decorator")5_vP|var Name = require('name')5_ vP|var Method = require('method')5_ vP|var Box = require('./box')5_LLUvPKM_ function into(source, buffer) { /**& Adds items of given `reducible` into. given `array` or a new empty one if omitted. **/1 return reduce(source, function(result, value) { result.push(value) return result }, buffer || [])}5_LLLvPKMV5_LLLvPKMVvar into = require()5_%LLLvPKMVvar into = require("")5_& %vP#function reduce(source, f, state) {5_%'&vP var promise = defer()5_&('vP& accumulate(source, function(value) {5_')(vP! if (value && value.isBoxed) {5_(*)vP3 if (value.is === end) deliver(promise, state)5_)+*vP; if (value.is === error) deliver(promise, value.value)5_*,+vP return value5_+-,vP } else {5_,.-vP state = f(state, value)5_-/.vP return state5_.0/vP }5_/10vP }, state)5_021vP return when(promise)5_132vP}5_243vPexports.reduce = reduce5_354vP5_465vPvar reduce = requireGF5_576vPHvar reduce = require()5_687vPHvar reduce = require("")5_798 vPIH5_8:9vP Ivar reducible = require()5_9;:vP Ivar reducible = require("")5_:<;vP5_;=<vPfunction reducible(source, f) {5_<>=vP: return convert(source, function(source, next, initial) {5_=?>vP< var result = f(source, function forward(result, value) {5_>@?vP return next(value, result)5_?A@vP }, initial)5_@BAvP" when(result, function(value) {5_ACBvP next(end(), value)5_BDCvP }, function(e) {5_CEDvP next(error(e))5_DFEvP })5_EGFvP })5_FHGvP}5_GIHvP5_HJIvP5// console.log(into(join([ 1, 2 ], [ 3 ], [ 3, 5 ])))5_IKJvP;:5_JLK vP;var flatten = require()5_KML vP;var flatten = require("")5_LNM vP5_MONvPfunction flatten(source) {5_NPOvP /**5_OQPvP7 Flattens given `reducible` collection of `reducible`s5_PRQvP5 to a `reducible` with items of nested `reducibles`.5_QSRvP **/5_RTSvP7 return reducible(source, function(_, next, initial) {5_SUTvP4 return reduce(source, function(result, nested) {5_TVUvP5 return reduce(nested, function(result, value) {5_UWVvP" return next(result, value)5_VXWvP }, result)5_WYXvP }, initial)5_XZYvP })5_Y[ZvP}5_Z\[vPA// console.log(into(flatten([ [1, 2], [ 3, 4 ], [], [ 7, 8 ] ])))5_[]\vP5_\^]vP+function expand(source, f) { return flatten(map(source, f))}5_]_^vP*)5_^`_vP*var expand = require()5__`vP*var expand = require("")5_!% FFFvPEJV*/5_ "!EEEvPDF5_!#"EEEvPDF5_"$#EEEvPDF5_#$EEEvPDF5_\vP []_ next(resultvalue)5_M5!5vP MNS MOT console.log()5_N5!5vP MOT console.log(source)5_2 5!5vP 13T. reduce(nested, function(result, value) {5_}~0%5!5vP W/1T< return reducible(source, function(source, next, initial) {5_~!!$!vP k "T(function reducible(source, accumulate) {5_# !$!vP o"$T? return accumulate(source, function forward(result, value) {5_2 !$!vP 13T7 var r1 = reduce(nested, function(result, value) {5_3!$!vP 24T$ var r2 = next(result, value)5_4!$!vP 35T console.log('>>>', r2)5_5!$!vP 46T return r25_6!$!vP 67T 68U return r15_6!$!vP 67U 68V console.log()5_7!$!vP 68V console.log('')5_7!$!vP 68V console.log('<<<')5_7!$!vP 68V console.log('<<<', r1)5_!%!$!vP  "Vfunction reducible(source, f) {5_#!$!vP "$V6 return f(source, function forward(result, value) {5_ik|j%6!6vP *T U console.log()5_jnk6!6vP -U console.log(value)5_koln" 7!7vP "#U "$V accumulate()5_npo# 7!7vP !"$V accumulate(source, function())5_oqp#7!7vP $"$V# accumulate(source, function() {})5_ptq#!8!8vP $"$V! accumulate(source, function() { })5_qurt"9!9vP S"#W "$X accumulate.implement()5_tvu#9!9vP ["$X accumulate.implement({})5_uwv#9!9vP \"$X& accumulate.implement({}, function())5_vxw#%9!9vP ]"$X) accumulate.implement({}, function() {})5_wyx#':!:vP ^"$X' accumulate.implement({}, function() { })5_xzy%9!9vP _$&5_y{z%8!8vP _$&5_z{$9!9vP `$%W5_qstr$9!9vP 1$%W5_rs#9!9vP F"$X1 accumulate(source, function(_, next, initial) {5_kmnl$ 6!6vP #%U; return when(f(source, function forward(result, value) {5_lm&6!6vP %'U }, initial))5_ced55!5vP 465_UYVZX2 vP 13S9 return when(reduce(source, function(result, nested) {5_XY6vP z57S }, initial))5_UWXV1 vP 02S< return when(reducible(source, function(_, next, initial) {5_VW6vP y57S }, initial))5_>B@DA*v*P hS return result5_ACB*v*P i5_BCM*v*P jLN5_>?A@ *v*P S value5_>@?*v*P g5_vP  T6// Define a shortcut for `Array.prototype.slice.call`.5_   ---vP ,B5_   ---vP ,.5_  ---vP ,.5_ ---vP ,.5_---vP ,.5_---vP ,.5_---vP ,.5_-vP L,.5_vP MA5_vP KA5_"P&\ ] if ()5_ P)] if (value.is ===)5_% vPs$&\- return ac(function(source, next, initial) {5_ #*vP&\# var result = f(result, value)5_ #*vP&\ result = f(result, value)5_$+vP&#\ ] if ()5_ $+vP&%]. if (result && result.is === accumulated)5_.$+vP&5]8 if (result && result.is === accumulated) deliver()5_7$+vP&8]G if (result && result.is === accumulated) deliver(promise, result)5_ 0%,vP&H ]  ^# accumulated = core.accumulated,5_ $+vP&O ^.accumulator = core.accumulator, map = core.map ^R accumulated = core.accumulated, accumulator = core.accumulator, map = core.map5_ D%,vP&R3 ]C accumulated = core.accumulated, accumulator = core.accumulator, map = core.map5_*&-vP&V ^ !_ return promise5_ &-vP&[5!_ return result5_'.vP&_  ` console.log()5_'.vP&6 ` console.log(result)5_&-vP$?^ if (value.is === end) return 5_?&vP#)XF return value && value.is === end ? deliver(promise, result), value5_'&vP#XG return value && value.is === end ? (deliver(promise, result), value5_G&vP#*XH return value && value.is === end ? (deliver(promise, result), value)5_4"vP45T 46U console.log()5_5"vP46U console.log(nested)5_5"vP46U console.log(next)5_4"vP235U1 return accumulator(function(_, next, initial) {5_#vPT U console.log()5_#vPU console.log(f)5_dfie(@@v/P()I (*J accumulator()5_egf)@@v/P(*J accumulator(function())5_fhg)@@v/P(*J accumulator(function() {})5_gh)AAv/P(*J accumulator(function() { })5_TVUvPhEvar accumulated = Box('Indicator that source has being accumulateed')5