react 0.3.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/.npmignore +2 -1
  2. package/.travis.yml +4 -0
  3. package/Jakefile.js +34 -3
  4. package/README.md +34 -174
  5. package/browser-test/dist.html +90 -0
  6. package/browser-test/index.html +86 -0
  7. package/browser-test/min.html +90 -0
  8. package/dist/react.js +3291 -0
  9. package/dist/react.min.js +1 -0
  10. package/doc/advanced.md +166 -0
  11. package/doc/color-def.graffle +938 -0
  12. package/doc/color-def.png +0 -0
  13. package/doc/simple.dot +25 -0
  14. package/doc/simple.png +0 -0
  15. package/examples/{default1.js → longer-example.js} +0 -0
  16. package/examples/{default-simple.js → simple.js} +0 -0
  17. package/examples/{ast1.js → using-ast-directly.js} +4 -0
  18. package/examples/{default-events1.js → using-events1.js} +1 -1
  19. package/examples/{default-log-events.js → using-log-events.js} +1 -1
  20. package/lib/base-task.js +116 -110
  21. package/lib/cb-task.js +71 -67
  22. package/lib/core.js +120 -109
  23. package/lib/dsl.js +120 -115
  24. package/lib/error.js +44 -36
  25. package/lib/event-collector.js +81 -0
  26. package/lib/event-manager.js +66 -55
  27. package/lib/eventemitter.js +20 -0
  28. package/lib/finalcb-first-task.js +56 -53
  29. package/lib/finalcb-task.js +55 -51
  30. package/lib/id.js +18 -6
  31. package/lib/input-parser.js +49 -41
  32. package/lib/log-events.js +81 -60
  33. package/lib/parse.js +34 -25
  34. package/lib/promise-resolve.js +50 -0
  35. package/lib/promise-task.js +78 -74
  36. package/lib/react.js +59 -0
  37. package/lib/ret-task.js +59 -55
  38. package/lib/sprintf.js +18 -0
  39. package/lib/status.js +11 -2
  40. package/lib/task.js +219 -213
  41. package/lib/track-tasks.js +67 -110
  42. package/lib/validate.js +136 -136
  43. package/lib/vcon.js +78 -69
  44. package/lib/when-task.js +69 -65
  45. package/package.json +11 -9
  46. package/src/dist.build.requirejs +20 -0
  47. package/test/ast.mocha.js +136 -0
  48. package/test/cb-task.mocha.js +220 -0
  49. package/test/core-deferred.mocha.js +143 -0
  50. package/test/core-when.mocha.js +96 -0
  51. package/test/core.mocha.js +589 -0
  52. package/test/dsl.mocha.js +350 -0
  53. package/test/event-manager.mocha.js +119 -0
  54. package/test/exec-options.mocha.js +48 -0
  55. package/test/finalcb-task.mocha.js +58 -0
  56. package/test/input-parser.mocha.js +86 -0
  57. package/test/mocha.opts +2 -0
  58. package/test/module-use.mocha.js +147 -0
  59. package/test/promise-auto-resolve.mocha.js +68 -0
  60. package/test/ret-task.mocha.js +220 -0
  61. package/test/task.mocha.js +42 -0
  62. package/test/validate-cb-task.mocha.js +100 -0
  63. package/test/validate-ret-task.mocha.js +110 -0
  64. package/test/validate.mocha.js +324 -0
  65. package/test/vcon.mocha.js +193 -0
  66. package/vendor/chai/chai.js +2038 -0
  67. package/vendor/jquery/jquery-1.7.1.js +9266 -0
  68. package/vendor/jquery/jquery-1.7.1.min.js +4 -0
  69. package/vendor/mocha/mocha.css +135 -0
  70. package/vendor/mocha/mocha.js +3589 -0
  71. package/vendor/node/util.js +531 -0
  72. package/vendor/requirejs/require.js +2053 -0
  73. package/vendor/requirejs/require.min.js +33 -0
  74. package/doc/alternate-dsls.md +0 -103
  75. package/doc/default-simple.dot +0 -19
  76. package/doc/default-simple.dot.png +0 -0
  77. package/dsl/chain.js +0 -150
  78. package/dsl/fstr.js +0 -121
  79. package/dsl/pcode.js +0 -175
  80. package/examples/chain-events1.js +0 -55
  81. package/examples/chain1.js +0 -19
  82. package/examples/fstr-events1.js +0 -38
  83. package/examples/fstr1.js +0 -37
  84. package/examples/pcode1.js +0 -22
  85. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia.html +0 -675
  86. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/37px-Wiktionary-logo-en.svg.png +0 -0
  87. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/closewindow.png +0 -0
  88. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/index(1).php +0 -407
  89. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/index.php +0 -130
  90. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(1).php +0 -3
  91. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(10).php +0 -89
  92. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(2).php +0 -23
  93. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(3).php +0 -153
  94. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(4).php +0 -6
  95. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(5).php +0 -3
  96. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(6).php +0 -96
  97. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(7).php +0 -16
  98. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(8).php +0 -14
  99. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load(9).php +0 -123
  100. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/load.php +0 -3
  101. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/poweredby_mediawiki_88x31.png +0 -0
  102. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/saved_resource +0 -1
  103. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/search-ltr.png +0 -0
  104. package/externalDocs/Dataflow - Wikipedia, the free encyclopedia_files/wikimedia-button.png +0 -0
  105. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's.html +0 -1369
  106. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/121911_DobbsDigest_Cover.jpg +0 -0
  107. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/160-x-600-IMU Impact 2012.jpg +0 -0
  108. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp= +0 -68
  109. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(1) +0 -67
  110. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(2) +0 -2
  111. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(3) +0 -2
  112. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(4) +0 -8
  113. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=(5) +0 -2
  114. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461 +0 -2
  115. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(1) +0 -2
  116. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(2) +0 -2
  117. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(3) +0 -2
  118. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(4) +0 -2
  119. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(5) +0 -431
  120. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(6) +0 -2
  121. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(7) +0 -431
  122. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(8) +0 -2
  123. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/231400148;kvarticleid=231400148;kauthor=Jim Falgout;loc=100;target=_blank;grp=500202461(9) +0 -2
  124. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad0St1Sz6Sq0V0Id20628317.gif +0 -0
  125. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Ad2331174St1Sz225Sq20825250V0Id4.gif +0 -0
  126. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/AdTracImage.gif +0 -0
  127. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/Default_Size_16_1x1.gif +0 -0
  128. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/FB.Share +0 -9
  129. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/addthis_widget.js +0 -2
  130. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/adlink_5242_1183459_0_154_AdId=2355270;BnId=1;itime=820768810;key=231400148+_database_231400148;link= +0 -11
  131. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/beacon.js +0 -7
  132. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/checkauth.js +0 -18
  133. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/colorbox.css +0 -49
  134. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/convert_data.js +0 -1
  135. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count(1).js +0 -5
  136. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count.js +0 -5
  137. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/count.json +0 -1
  138. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dataflow1.gif +0 -0
  139. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/def.html +0 -126
  140. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/defaults.css +0 -1
  141. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/detect.js +0 -91
  142. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/devtest_left-col-slim.css +0 -30
  143. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqus.js +0 -327
  144. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.css +0 -34
  145. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusHints.js +0 -8
  146. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff(1).css +0 -24
  147. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/disqusLoggedOff.css +0 -24
  148. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dobbs_disqus_logo.gif +0 -0
  149. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.css +0 -1
  150. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/dsqcd10c7f376188a4a2ca3e8fea2c03aeb.js +0 -1
  151. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqCfg.js +0 -55
  152. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/elqImg.js +0 -12
  153. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/embed.js +0 -76
  154. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/experience_util.js +0 -636
  155. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/fastbutton.html +0 -11
  156. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/ga.js +0 -51
  157. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-facebook_sm.png +0 -0
  158. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-nav.css +0 -798
  159. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h-twitter_sm.png +0 -0
  160. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/h_s_code_remote.js +0 -377
  161. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hintbox_info.jpg +0 -0
  162. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/hub.1326407570.html +0 -3
  163. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/in.js +0 -76
  164. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/insight.min.js +0 -55
  165. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.2.6.min.js +0 -32
  166. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-1.4.2.min.js +0 -154
  167. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery-ui-1.8rc3.custom.min.js +0 -374
  168. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.colorbox-min.js +0 -4
  169. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/jquery.min.js +0 -154
  170. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/lib.js +0 -212
  171. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/like.html +0 -214
  172. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/noavatar32.png +0 -0
  173. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nodetag.js +0 -18
  174. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/nonSecureAnonymousFramework +0 -2913
  175. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/p.json +0 -1
  176. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/plusone.js +0 -32
  177. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/popwindow.js +0 -24
  178. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/q4OyybLB0-A.js +0 -91
  179. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/quant.js +0 -28
  180. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/qxvZoiHdpAF.css +0 -192
  181. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/reply.html +0 -160
  182. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/rss.gif +0 -0
  183. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/s.js +0 -1
  184. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource +0 -421
  185. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(1) +0 -1
  186. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(2) +0 -341
  187. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/saved_resource(3) +0 -127
  188. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/script84.js +0 -113
  189. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/scripts.js +0 -30
  190. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sh72.html +0 -5
  191. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shAutoloader.js +0 -17
  192. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAS3.js +0 -59
  193. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushAppleScript.js +0 -75
  194. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushBash.js +0 -59
  195. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCSharp.js +0 -65
  196. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushColdFusion.js +0 -100
  197. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCpp.js +0 -97
  198. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushCss.js +0 -91
  199. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDelphi.js +0 -55
  200. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushDiff.js +0 -41
  201. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushErlang.js +0 -52
  202. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushGroovy.js +0 -67
  203. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJScript.js +0 -52
  204. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJava.js +0 -57
  205. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushJavaFX.js +0 -58
  206. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPerl.js +0 -72
  207. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPhp.js +0 -88
  208. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPlain.js +0 -33
  209. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPowerShell.js +0 -74
  210. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushPython.js +0 -64
  211. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushRuby.js +0 -55
  212. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSass.js +0 -94
  213. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushScala.js +0 -51
  214. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushSql.js +0 -66
  215. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushVb.js +0 -56
  216. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shBrushXml.js +0 -69
  217. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore.css +0 -226
  218. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCoreDefault.css +0 -333
  219. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shCore_new.js +0 -17
  220. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shLegacy.js +0 -17
  221. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/shThemeDefault.css +0 -117
  222. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share-button-css +0 -67
  223. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_email_icon.gif +0 -0
  224. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/share_print_icon.gif +0 -0
  225. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/sidebar.js +0 -88
  226. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/superfooter_936.css +0 -186
  227. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/svrGP.aspx +0 -0
  228. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/t.gif +0 -0
  229. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thickbox.js +0 -343
  230. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/thread.js +0 -128
  231. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/togglediv.js +0 -15
  232. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/tweet_button.html +0 -3
  233. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/ubmtechweb_logo_sm.gif +0 -0
  234. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/upload.html +0 -91
  235. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/welcome.js +0 -7
  236. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widget74.css +0 -1
  237. package/externalDocs/Dataflow Programming Handling Huge Data Loads Without Adding Complexity Dr Dobb's_files/widgets.js +0 -40
  238. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia.html +0 -904
  239. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/50px-Question_book-new.svg.png +0 -0
  240. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/closewindow.png +0 -0
  241. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/index(1).php +0 -407
  242. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/index.php +0 -130
  243. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(1).php +0 -3
  244. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(10).php +0 -89
  245. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(2).php +0 -23
  246. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(3).php +0 -153
  247. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(4).php +0 -6
  248. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(5).php +0 -3
  249. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(6).php +0 -96
  250. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(7).php +0 -16
  251. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(8).php +0 -14
  252. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load(9).php +0 -123
  253. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/load.php +0 -3
  254. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/poweredby_mediawiki_88x31.png +0 -0
  255. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/saved_resource +0 -1
  256. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/search-ltr.png +0 -0
  257. package/externalDocs/Reactive programming - Wikipedia, the free encyclopedia_files/wikimedia-button.png +0 -0
  258. package/externalDocs/The Step of the Conductor - How To Node - NodeJS.html +0 -113
  259. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/6654_111305815684_541245684_2583159_5383291_n_normal.jpg +0 -0
  260. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/MARC3_normal.jpg +0 -2
  261. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/beacon.js +0 -7
  262. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46 +0 -0
  263. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/c953ddd239707998340e1a6fbb3eeb46_normal.jpeg +0 -0
  264. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/clouds2_normal.jpg +0 -0
  265. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/count.json +0 -1
  266. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/def.html +0 -126
  267. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/defaults.css +0 -1
  268. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/disqus.js +0 -327
  269. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.css +0 -1
  270. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/dsq7884a9652e94555c70f96b6be63be216.js +0 -66
  271. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/embed.js +0 -76
  272. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/example1.dot +0 -0
  273. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/ga.js +0 -51
  274. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/get_num_replies.js +0 -79
  275. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/hub.1326407570.html +0 -3
  276. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/lib.js +0 -212
  277. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/noavatar32.png +0 -0
  278. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/quant.js +0 -28
  279. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/reply.html +0 -160
  280. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/t.gif +0 -0
  281. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/thread.js +0 -128
  282. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/tweet_button.1326407570.html +0 -3
  283. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/twitter_normal.jpg +0 -2
  284. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/upload.html +0 -91
  285. package/externalDocs/The Step of the Conductor - How To Node - NodeJS_files/widgets.js +0 -40
  286. package/jake-tasks/jake-test.js +0 -64
  287. package/promise-resolve.js +0 -35
  288. package/react.js +0 -8
  289. package/test/ast.test.js +0 -69
  290. package/test/cb-task.test.js +0 -197
  291. package/test/core-deferred.test.js +0 -134
  292. package/test/core-promised.test.js +0 -132
  293. package/test/core-when.test.js +0 -84
  294. package/test/core.test.js +0 -568
  295. package/test/dsl.test.js +0 -330
  296. package/test/dsl/chain.test.js +0 -324
  297. package/test/dsl/fstr.test.js +0 -300
  298. package/test/dsl/pcode.test.js +0 -448
  299. package/test/event-manager.test.js +0 -102
  300. package/test/exec-options.test.js +0 -33
  301. package/test/finalcb-task.test.js +0 -38
  302. package/test/input-parser.test.js +0 -66
  303. package/test/module-use.test.js +0 -131
  304. package/test/promise-auto-resolve.test.js +0 -51
  305. package/test/ret-task.test.js +0 -199
  306. package/test/task.test.js +0 -21
  307. package/test/validate-cb-task.test.js +0 -74
  308. package/test/validate-ret-task.test.js +0 -83
  309. package/test/validate.test.js +0 -295
  310. package/test/vcon.test.js +0 -173
@@ -0,0 +1 @@
1
+ !function(a,b){function e(){this._events=new Object}function f(a){a&&(a.delimiter&&(this.delimiter=a.delimiter),a.wildcard&&(this.wildcard=a.wildcard),this.wildcard&&(this.listenerTree=new Object))}function g(a){this._events=new Object,f.call(this,a)}function h(a,b,c,d){if(!c)return[];var e=[],f,g,i,j,k,l,m,n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if(typeof c._listeners=="function")return a&&a.push(c._listeners),[c];for(f=0,g=c._listeners.length;f<g;f++)a&&a.push(c._listeners[f]);return[c]}if(o==="*"||o==="**"||c[o]){if(o==="*"){for(i in c)i!=="_listeners"&&c.hasOwnProperty(i)&&(e=e.concat(h(a,b,c[i],d+1)));return e}if(o==="**"){m=d+1===n||d+2===n&&p==="*",m&&c._listeners&&(e=e.concat(h(a,b,c,n)));for(i in c)i!=="_listeners"&&c.hasOwnProperty(i)&&(i==="*"||i==="**"?(c[i]._listeners&&!m&&(e=e.concat(h(a,b,c[i],n))),e=e.concat(h(a,b,c[i],d))):i===p?e=e.concat(h(a,b,c[i],d+2)):e=e.concat(h(a,b,c[i],d)));return e}e=e.concat(h(a,b,c[o],d+1))}j=c["*"],j&&h(a,b,j,d+1),k=c["**"];if(k)if(d<n){k._listeners&&h(a,b,k,n);for(i in k)i!=="_listeners"&&k.hasOwnProperty(i)&&(i===p?h(a,b,k[i],d+2):i===o?h(a,b,k[i],d+1):(l={},l[i]=k[i],h(a,b,{"**":l},d+1)))}else k._listeners?h(a,b,k,n):k["*"]&&k["*"]._listeners&&h(a,b,k["*"],n);return e}function i(a,b){a=typeof a=="string"?a.split(this.delimiter):a.slice();for(var e=0,f=a.length;e+1<f;e++)if(a[e]==="**"&&a[e+1]==="**")return;var g=this.listenerTree,h=a.shift();while(h){g[h]||(g[h]=new Object),g=g[h];if(a.length===0){if(!g._listeners)g._listeners=b;else if(typeof g._listeners=="function")g._listeners=[g._listeners,b];else if(c(g._listeners)){g._listeners.push(b);if(!g._listeners.warned){var i=d;typeof this._events.maxListeners!="undefined"&&(i=this._events.maxListeners),i>0&&g._listeners.length>i&&(g._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",g._listeners.length),console.trace())}}return!0}h=a.shift()}return!0}var c=Array.isArray?Array.isArray:function(b){return Object.prototype.toString.call(b)==="[object Array]"},d=10;g.prototype.delimiter=".",g.prototype.setMaxListeners=function(a){this._events||e.call(this),this._events.maxListeners=a},g.prototype.event="",g.prototype.once=function(a,b){return this.many(a,1,b),this},g.prototype.many=function(a,b,c){function e(){--b===0&&d.off(a,e),c.apply(this,arguments)}var d=this;if(typeof c!="function")throw new Error("many only accepts instances of Function");return e._origin=c,this.on(a,e),d},g.prototype.emit=function(){this._events||e.call(this);var a=arguments[0];if(a==="newListener"&&!this._events.newListener)return!1;if(this._all){var b=arguments.length,c=new Array(b-1);for(var d=1;d<b;d++)c[d-1]=arguments[d];for(d=0,b=this._all.length;d<b;d++)this.event=a,this._all[d].apply(this,c)}if(a==="error"&&!this._all&&!this._events.error&&(!this.wildcard||!this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var f;if(this.wildcard){f=[];var g=typeof a=="string"?a.split(this.delimiter):a.slice();h.call(this,f,g,this.listenerTree,0)}else f=this._events[a];if(typeof f=="function"){this.event=a;if(arguments.length===1)f.call(this);else if(arguments.length>1)switch(arguments.length){case 2:f.call(this,arguments[1]);break;case 3:f.call(this,arguments[1],arguments[2]);break;default:var b=arguments.length,c=new Array(b-1);for(var d=1;d<b;d++)c[d-1]=arguments[d];f.apply(this,c)}return!0}if(f){var b=arguments.length,c=new Array(b-1);for(var d=1;d<b;d++)c[d-1]=arguments[d];var i=f.slice();for(var d=0,b=i.length;d<b;d++)this.event=a,i[d].apply(this,c);return i.length>0||this._all}return this._all},g.prototype.on=function(a,b){if(typeof a=="function")return this.onAny(a),this;if(typeof b!="function")throw new Error("on only accepts instances of Function");this._events||e.call(this),this.emit("newListener",a,b);if(this.wildcard)return i.call(this,a,b),this;if(!this._events[a])this._events[a]=b;else if(typeof this._events[a]=="function")this._events[a]=[this._events[a],b];else if(c(this._events[a])){this._events[a].push(b);if(!this._events[a].warned){var f=d;typeof this._events.maxListeners!="undefined"&&(f=this._events.maxListeners),f>0&&this._events[a].length>f&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}return this},g.prototype.onAny=function(a){this._all||(this._all=[]);if(typeof a!="function")throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},g.prototype.addListener=g.prototype.on,g.prototype.off=function(a,b){if(typeof b!="function")throw new Error("removeListener only takes instances of Function");var d,e=[];if(this.wildcard){var f=typeof a=="string"?a.split(this.delimiter):a.slice();e=h.call(this,null,f,this.listenerTree,0)}else{if(!this._events[a])return this;d=this._events[a],e.push({_listeners:d})}for(var g=0;g<e.length;g++){var i=e[g];d=i._listeners;if(c(d)){var j=-1;for(var k=0,l=d.length;k<l;k++)if(d[k]===b||d[k].listener&&d[k].listener===b||d[k]._origin&&d[k]._origin===b){j=k;break}if(j<0)return this;this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),d.length===0&&(this.wildcard?delete i._listeners:delete this._events[a])}else if(d===b||d.listener&&d.listener===b||d._origin&&d._origin===b)this.wildcard?delete i._listeners:delete this._events[a]}return this},g.prototype.offAny=function(a){var b=0,c=0,d;if(a&&this._all&&this._all.length>0){d=this._all;for(b=0,c=d.length;b<c;b++)if(a===d[b])return d.splice(b,1),this}else this._all=[];return this},g.prototype.removeListener=g.prototype.off,g.prototype.removeAllListeners=function(a){if(arguments.length===0)return!this._events||e.call(this),this;if(this.wildcard){var b=typeof a=="string"?a.split(this.delimiter):a.slice(),c=h.call(this,null,b,this.listenerTree,0);for(var d=0;d<c.length;d++){var f=c[d];f._listeners=null}}else{if(!this._events[a])return this;this._events[a]=null}return this},g.prototype.listeners=function(a){if(this.wildcard){var b=[],d=typeof a=="string"?a.split(this.delimiter):a.slice();return h.call(this,b,d,this.listenerTree,0),b}return this._events||e.call(this),this._events[a]||(this._events[a]=[]),c(this._events[a])||(this._events[a]=[this._events[a]]),this._events[a]},g.prototype.listenersAny=function(){return this._all?this._all:[]},typeof define=="function"&&define.amd?define("eventemitter2",[],function(){return g}):a.EventEmitter2=g}(typeof process!="undefined"&&typeof process.title!="undefined"&&typeof exports!="undefined"?exports:window),define("react/eventemitter",["eventemitter2"],function(a){var b=a?a.EventEmitter2?a.EventEmitter2:a:EventEmitter2;return b}),define("util",["require","exports","module"],function(a,b,c){function f(a,b,c,d){var e={showHidden:b,seen:[],stylize:d?i:j};return k(e,a,typeof c=="undefined"?2:c)}function i(a,b){var c=h[b];return c?"["+g[c][0]+"m"+a+"["+g[c][1]+"m":a}function j(a,b){return a}function k(a,c,d){if(c&&typeof c.inspect=="function"&&c.inspect!==b.inspect&&(!c.constructor||c.constructor.prototype!==c))return c.inspect(d);var e=l(a,c);if(e)return e;var f=Object.keys(c),g=a.showHidden?Object.getOwnPropertyNames(c):f;if(g.length===0){if(typeof c=="function"){var h=c.name?": "+c.name:"";return a.stylize("[Function"+h+"]","special")}if(r(c))return a.stylize(RegExp.prototype.toString.call(c),"regexp");if(s(c))return a.stylize(Date.prototype.toString.call(c),"date");if(t(c))return m(c)}var i="",j=!1,k=["{","}"];q(c)&&(j=!0,k=["[","]"]);if(typeof c=="function"){var u=c.name?": "+c.name:"";i=" [Function"+u+"]"}r(c)&&(i=" "+RegExp.prototype.toString.call(c)),s(c)&&(i=" "+Date.prototype.toUTCString.call(c)),t(c)&&(i=" "+m(c));if(g.length!==0||!!j&&c.length!==0){if(d<0)return r(c)?a.stylize(RegExp.prototype.toString.call(c),"regexp"):a.stylize("[Object]","special");a.seen.push(c);var v;return j?v=n(a,c,d,f,g):v=g.map(function(b){return o(a,c,d,f,b,j)}),a.seen.pop(),p(v,i,k)}return k[0]+i+k[1]}function l(a,b){switch(typeof b){case"undefined":return a.stylize("undefined","undefined");case"string":var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string");case"number":return a.stylize(""+b,"number");case"boolean":return a.stylize(""+b,"boolean")}if(b===null)return a.stylize("null","null")}function m(a){return"["+Error.prototype.toString.call(a)+"]"}function n(a,b,c,d,e){var f=[];for(var g=0,h=b.length;g<h;++g)Object.prototype.hasOwnProperty.call(b,String(g))?f.push(o(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(o(a,b,c,d,e,!0))}),f}function o(a,b,c,d,e,f){var g,h,i;i=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},i.get?i.set?h=a.stylize("[Getter/Setter]","special"):h=a.stylize("[Getter]","special"):i.set&&(h=a.stylize("[Setter]","special")),d.indexOf(e)<0&&(g="["+e+"]"),h||(a.seen.indexOf(i.value)<0?(c===null?h=k(a,i.value,null):h=k(a,i.value,c-1),h.indexOf("\n")>-1&&(f?h=h.split("\n").map(function(a){return" "+a}).join("\n").substr(2):h="\n"+h.split("\n").map(function(a){return" "+a}).join("\n"))):h=a.stylize("[Circular]","special"));if(typeof g=="undefined"){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function p(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.length+1},0);return e>60?c[0]+(b===""?"":b+"\n ")+" "+a.join(",\n ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function q(a){return Array.isArray(a)||typeof a=="object"&&u(a)==="[object Array]"}function r(a){return typeof a=="object"&&u(a)==="[object RegExp]"}function s(a){return typeof a=="object"&&u(a)==="[object Date]"}function t(a){return typeof a=="object"&&u(a)==="[object Error]"}function u(a){return Object.prototype.toString.call(a)}function v(a){return a<10?"0"+a.toString(10):a.toString(10)}function x(){var a=new Date,b=[v(a.getHours()),v(a.getMinutes()),v(a.getSeconds())].join(":");return[a.getDate(),w[a.getMonth()],b].join(" ")}var d=/%[sdj%]/g;b.format=function(a){if(typeof a!="string"){var b=[];for(var c=0;c<arguments.length;c++)b.push(f(arguments[c]));return b.join(" ")}var e=1,g=arguments,h=g.length,i=String(a).replace(d,function(a){if(a==="%%")return"%";if(e>=h)return a;switch(a){case"%s":return String(g[e++]);case"%d":return Number(g[e++]);case"%j":return JSON.stringify(g[e++]);default:return a}});for(var j=g[e];e<h;j=g[++e])j===null||typeof j!="object"?i+=" "+j:i+=" "+f(j);return i},b.print=function(){for(var a=0,b=arguments.length;a<b;++a)process.stdout.write(String(arguments[a]))},b.puts=function(){for(var a=0,b=arguments.length;a<b;++a)process.stdout.write(arguments[a]+"\n")},b.debug=function(a){process.stderr.write("DEBUG: "+a+"\n")};var e=b.error=function(a){for(var b=0,c=arguments.length;b<c;++b)process.stderr.write(arguments[b]+"\n")};b.inspect=f;var g={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},h={special:"cyan",number:"yellow","boolean":"yellow","undefined":"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};b.isArray=q,b.isRegExp=r,b.isDate=s,b.isError=t;var w=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];b.log=function(a){b.puts(x()+" - "+a.toString())},b.pump=function(a,b,c){function e(a,b,e){c&&!d&&(c(a,b,e),d=!0)}var d=!1;a.addListener("data",function(c){b.write(c)===!1&&a.pause()}),b.addListener("drain",function(){a.resume()}),a.addListener("end",function(){b.end()}),a.addListener("close",function(){e()}),a.addListener("error",function(a){b.end(),e(a)}),b.addListener("error",function(b){a.destroy(),e(b)})},b.inherits=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})},b._extend=function(a,b){if(!b)return a;var c=Object.keys(b),d=c.length;while(d--)a[c[d]]=b[c[d]];return a}}),define("react/error",["util"],function(a){function b(a){if(!Error.stackTraceLimit||Error.stackTraceLimit<a)Error.stackTraceLimit=a}function c(a){return a?a&&a.name?a.name:a:"undefined"}function d(b){if(!b.meta)return;var d=b.meta.vcon,e=b.meta.task,f="\n\n";return e&&e.f&&e.a&&(f+="Error occurs in Task function: "+c(e.f)+"("+e.a.join(",")+")\n\n"),d&&(f+="Variable Context: \n",f+=a.inspect(d),f+="\n\n"),e&&e.f&&(f+="Task Source:\n\n",f+=e.f.toString(),f+="\n\n"),f}function e(a,b){typeof a=="string"&&(a=new Error(a));var c=a.toString();return a.meta=b,a.toString=function(){return c+d(a)},a}return{ensureStackTraceLimitSet:b,augmentError:e}}),function(a,b){typeof exports=="object"?module.exports=b():typeof define=="function"&&define.amd?define("ensure-array",[],b):a.ensureArray=b()}(this,function(){function a(a,b,c){if(arguments.length===0)return[];if(arguments.length===1){if(a===undefined||a===null)return[];if(Array.isArray(a))return a}return Array.prototype.slice.call(arguments)}return a}),define("react/status",[],function(){var a={READY:"ready",RUNNING:"running",ERRORED:"errored",COMPLETE:"complete"};return a}),define("react/vcon",[],function(){function b(){}var a=":LAST_RESULTS";return b.prototype.getLastResults=function(){return this.getVar(a)},b.prototype.setLastResults=function(b){this.setVar(a,b)},b.prototype.getVar=function(a){var b=this.values;if(typeof a!="string")return a;a=a.trim();if(a==="true")return!0;if(a==="false")return!1;if(a==="null")return null;if(/^-?[0-9]+$/.test(a))return parseInt(a,10);if(/^-?[0-9.]+$/.test(a))return parseFloat(a);var c=/^("|')([^\1]*)\1$/.exec(a);if(c)return c[2];var d=a.split(".");return d.reduce(function(a,b){return a===undefined||a===null?undefined:a[b]},b)},b.prototype.saveResults=function(a,b){var c=this;a.forEach(function(a,d){c.setVar(a,b[d]!==undefined?b[d]:null)}),this.setLastResults(b)},b.prototype.setVar=function(a,b){if(!a)return;var c=this.values,d=a.split("."),e=d.pop(),f=d.reduce(function(a,b){var c=a[b];if(c===undefined||c===null)c=a[b]={};return c},c);f[e]=b},b.create=function(a,c,d,e){var f={};e&&(f["this"]=e),d&&Object.keys(d).forEach(function(a){f[a]=d[a]});var g=new b;return g.values=a.reduce(function(a,b,d){var e=c[d];return e&&(a[e]=b!==undefined?b:null),a},f),g},b}),define("react/event-manager",["./eventemitter"],function(a){function e(){}var b={wildcard:!0,delimiter:".",maxListeners:30},c=/^ast.defined$/,d={AST_DEFINED:"ast.defined",FLOW_BEGIN:"flow.begin",TASK_BEGIN:"task.begin",TASK_COMPLETE:"task.complete",TASK_ERRORED:"task.errored",FLOW_COMPLETE:"flow.complete",FLOW_ERRORED:"flow.errored",EXEC_FLOW_START:"exec.flow.start",EXEC_INPUT_PREPROCESS:"exec.input.preprocess",EXEC_TASKS_PRECREATE:"exec.tasks.precreate",EXEC_OUTTASK_CREATE:"exec.outTask.create",EXEC_TASK_START:"exec.task.start",EXEC_TASK_COMPLETE:"exec.task.complete",EXEC_TASK_ERRORED:"exec.task.errored",EXEC_FLOW_COMPLETE:"exec.flow.complete",EXEC_FLOW_ERRORED:"exec.flow.errored"};return e.create=function(){return new e},e.TYPES=d,e.prototype.TYPES=d,e.prototype.isEnabled=function(){return!!(this.emitter||this.parent&&this.parent.isEnabled())},e.prototype.on=function(c,d){this.emitter||(this.emitter=new a(b)),c==="*"?this.emitter.onAny(d):this.emitter.on(c,d)},e.prototype.emit=function(a,b,d,e){if(a===undefined)throw new Error("event is undefined");this.emitter&&this.emitter.emit.apply(this.emitter,arguments),this.parent&&this.parent.isEnabled()&&this.parent.emit.apply(this.parent,arguments),c.test(a)&&process&&process.emit&&process.emit.apply(process,arguments)},e.prototype.removeListener=function(a,b){this.emitter&&this.emitter.removeListener.apply(this.emitter,arguments)},e.global=e.create(),e}),define("react/base-task",["ensure-array","./status","./event-manager"],function(a,b,c){function d(){}function e(a){return a.indexOf(".")!==-1}return d.prototype.getOutParams=function(){return a(this.out)},d.prototype.isComplete=function(){return this.status===b.COMPLETE},d.prototype.start=function(a){this.args=a,this.env.currentTask=this,this.env.flowEmitter.emit(c.TYPES.EXEC_TASK_START,this)},d.prototype.complete=function(a){this.status=b.COMPLETE,this.results=a,this.env.currentTask=this,this.env.flowEmitter.emit(c.TYPES.EXEC_TASK_COMPLETE,this)},d.prototype.functionExists=function(a){var b=this.f;if(!b)return!1;if(b instanceof Function)return!0;if(typeof b=="string"){var c=a.getVar(b);if(c&&c instanceof Function)return!0}return!1},d.prototype.areAllDepArgsDefined=function(a){return this.a.every(function(b){return a.getVar(b)!==undefined})},d.prototype.depTasksAreDone=function(a){return!this.after||!this.after.length||this.after.every(function(b){return a[b].isComplete()})},d.prototype.parentExists=function(a,b){if(!e(a))return!0;var c=a.split(".");c.pop();var d=c.reduce(function(a,b){return a===undefined||a===null?undefined:a[b]},b.values);return d!==undefined&&d!==null},d.prototype.outParentsExist=function(a){var b=this;return this.getOutParams().every(function(c){return c===null?!0:b.parentExists(c,a)})},d.prototype.isReady=function(a,b){return!this.status&&this.functionExists(a)&&this.areAllDepArgsDefined(a)&&this.depTasksAreDone(b)&&(!this.outParentsExist||this.outParentsExist(a))},d.prototype.isMethodCall=function(){return typeof this.f=="string"&&/^.*\..*$/.test(this.f)},d.prototype.getMethodObj=function(a){var b=this.f;if(!b)return undefined;var c=b.split(".");c.pop();if(!c.length)return undefined;var d=c.reduce(function(a,b){return a===undefined||a===null?undefined:a[b]},a.values);return d},d}),define("react/input-parser",["./event-manager"],function(a){function d(a){return a&&a.reactExecOptions}function e(a){return d(a)}function f(a){return!d(a)}function g(a,b){return Object.keys(b).forEach(function(c){a[c]=b[c]}),a}function h(a,b,d){var e={};return e.args=b.map(function(b){return a.shift()}),d===c.CALLBACK&&a.length&&(e.cb=a.shift()),e.extra=a,e}function i(c,d){var i={},j=c.filter(e);j.unshift(b),i.options=j.reduce(g,{});var k=c.filter(f),l=h(k,d.inParams,i.options.outputStyle);return i.args=l.args,i.cb=l.cb,l.outputStyle&&(i.options.outputStyle=l.outputStyle),l.extra&&(i.extraArgs=l.extra),a.global.emit(a.TYPES.EXEC_INPUT_PREPROCESS,i),i}var b={reactExecOptions:!0,outputStyle:"cb"},c={CALLBACK:"cb",NONE:"none"};return i.defaultExecOptions=b,i}),define("react/id",[],function(){function b(){return a+=1,a===Number.MAX_VALUE&&(a=0),a}var a=0;return{createUniqueId:b}}),function(){var a,b,c,d,e,f=Array.prototype.slice,g=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b<c;b++)if(b in this&&this[b]===a)return b;return-1};b=/%(\d+[$])?((?:[+\x20\-#0])*)((?:[*](?:\d+[$])?)?v)?(\d*|[*](?:\d+[$])?)(?:[.](\d+|[*](?:\d+[$])?))?(hh?|ll?|[Lzjtq]|I(?:32|64)?)?([diuDUfFeEgGxXoOscpnbB])|%%/g,a="64-bit numbers aren't supported by sprint()!",c={h:2,hh:1,l:4,ll:new RangeError(a),L:4,z:4,j:4,t:4,I:4,I32:4,I64:new RangeError(a),q:new RangeError(a)},d=function(){var a,d,e,h,i,j,k;return h=arguments[0],j=2<=arguments.length?f.call(arguments,1):[],a=["[object Array]","[object Arguments]"],i=Object.prototype.toString,(k=i.call(j[0]),g.call(a,k)>=0)&&j.length===1&&(j=j[0]),d=-1,e=function(a,b,c,d){return a=""+a,a.length>b?a:d?""+a+(new Array(b-a.length+1)).join(c):""+(new Array(b-a.length+1)).join(c)+a},(""+h).replace(b,function(){var a,b,h,i,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;return w=arguments[0],q=2<=arguments.length?f.call(arguments,1):[],h=q[0],l=q[1],z=q[2],o=q[3],s=q[4],m=q[5],y=q[6],m==null&&(m="L"),w==="%%"?"%":(n=g.call(l,"-")>=0,b=g.call(l,"0")>=0&&!n?"0":" ",a=function(a,b){var d,e,f;b==null&&(b=!1);if(m==="L"&&(a>=0||b))return parseInt(a,10);e=c[m];if(e instanceof Error)throw e;return d=e*8,a=parseInt(a,10)%Math.pow(2,d),f=Math.pow(2,d)-1,b&&a>=Math.pow(2,d-1)&&(a=-Math.pow(2,d)+a),b?a:a>>>0},x=function(){return h=(+h).toExponential(s),v&&g.call(h,".")<0&&(h=h.replace("e",".e")),h.toLowerCase().replace(/\d+$/,function(a){return e(a,3,0)})},r=function(a){return+a===0&&+s===0?"":k?a:(b=" ",e(a,s,"0"))},z&&(i=z[0]==="*"?z.length>2?j[parseInt(z.slice(1),10)-1]:j[++d]:"."),o=o[0]==="*"?o.length===1?j[++d]:j[parseInt(o.slice(1))-1]:o?o:0,s=s&&s[0]==="*"?s.length===1?j[++d]:j[parseInt(s.slice(1),10)-1]:s?s:(k=!0,6),h=j[(parseInt(h,10)||++d+1)-1],h===0&&1/h===-Infinity&&(h="-0"),h=h!=null?""+h:"",v=g.call(l,"#")>=0,arguments=function(){var a,b,c;if(z){c=[];for(a=0,b=h.length;a<b;a++)p=h[a],c.push(p.charCodeAt(0));return c}return[h]}(),u=function(){var c,d,f;f=[];for(c=0,d=arguments.length;c<d;c++)h=arguments[c],h=function(){var b;switch(y){case"d":case"i":case"D":return r(a(h,!0));case"u":case"U":return r(a(h));case"f":case"F":return h=(+h).toFixed(s).toLowerCase(),v&&g.call(h,".")<0&&!/^-?[a-z]+$/.test(h)&&(h+="."),h;case"e":case"E":return x();case"g":case"G":return+h===0||1e-4<=(b=Math.abs(h))&&b<Math.pow(10,s)?(h=(""+h).substr(0,+s+1),v?h.replace(/[.]?$/,"."):h.replace(/[.]$/,"")):x().replace(/[.]?0+e/,"e");case"x":case"X":return t=v&&+h!==0?"0x":"",""+t+r(a(h).toString(16));case"b":case"B":return t=v&&+h!==0?"0b":"",""+t+r(a(h).toString(2));case"o":case"O":return t=v?"0":"",""+t+r(a(h).toString(8));case"s":return k?h:h.substr(0,s);case"c":return String.fromCharCode(h);default:throw new Exception("Unrecognized %type (?). Shouldn't happen.")}}(),h=""+h,y===y.toUpperCase()&&(h=h.toUpperCase()),h[0]!=="-"&&(g.call(l,"+")>=0?h="+"+h:g.call(l," ")>=0&&(h=" "+h)),f.push(e(h,o,b,n));return f}.apply(this,arguments),u.join(i))})},(typeof module!=="undefined"&&module!==null?module.exports:void 0)!=null&&(module.exports=d),((e=typeof module!=="undefined"&&module!==null?module.exports:void 0)!=null?e:this).sprint=d}.call(this),define("sprint",function(){}),define("react/sprintf",["sprint"],function(a){var b=a?a:sprint;return b}),define("react/cb-task",["util","./sprintf","./base-task"],function(a,b,c){function d(c,d){return b("%s - %s",c,a.inspect(d))}function i(a){var b=this;Object.keys(a).forEach(function(c){b[c]=a[c]})}var e="cbTask requires f, a, out",f="cbTask requires f to be a function or string",g="cbTask requires a to be an array of string param names",h="cbTask requires out to be an array of string param names";return i.prototype=new c,i.prototype.constructor=i,i.validate=function(a){var b=[];if(!a.f||!a.a||!a.out)b.push(d(e,a));else{var c=typeof a.f;a.f instanceof Function||c==="string"||b.push(d(f,a)),(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(d(g,a)),(!Array.isArray(a.out)||!a.out.every(function(a){return typeof a=="string"}))&&b.push(d(h,a))}return b},i.prototype.prepare=function(b,c,d){var e=this;this.cbFun=function(a,f,g,h){var i=Array.prototype.slice.call(arguments,1);if(a){b(e,a);return}c.saveResults(e.out,i),e.complete(i),d()}},i.prototype.exec=function(b,c,d){try{var e=this.a.map(function(a){return b.getVar(a)});this.start(e),e.push(this.cbFun);var f=this.f,g=b.getVar("this");this.isMethodCall()?(f=b.getVar(this.f),g=this.getMethodObj(b)):typeof f=="string"&&(f=b.getVar(f)),f.apply(g,e)}catch(h){c(this,h)}},i}),define("react/promise-task",["util","./sprintf","./base-task"],function(a,b,c){function d(c,d){return b("%s - %s",c,a.inspect(d))}function i(a){var b=this;Object.keys(a).forEach(function(c){b[c]=a[c]})}var e="promiseTask requires f, a, out",f="promiseTask requires f to be a function or string",g="promiseTask requires a to be an array of string param names",h="promiseTask requires out to be an array[1] of string param names";return i.prototype=new c,i.prototype.constructor=i,i.validate=function(a){var b=[];if(!a.f||!a.a||!a.out)b.push(d(e,a));else{var c=typeof a.f;a.f instanceof Function||c==="string"||b.push(d(f,a)),(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(d(g,a)),Array.isArray(a.out)&&a.out.length<=1&&a.out.every(function(a){return typeof a=="string"})||b.push(d(h,a))}return b},i.prototype.prepare=function(b,c,d){var e=this;this.nextFn=function(a){var b=Array.prototype.slice.call(arguments);c.saveResults(e.out,b),e.complete(b),d()},this.failFn=function(a){b(e,a)}},i.prototype.exec=function(b,c,d){try{var e=this.a.map(function(a){return b.getVar(a)});this.start(e);var f=this.f,g=b.getVar("this");this.isMethodCall()?(f=b.getVar(this.f),g=this.getMethodObj(b)):typeof f=="string"&&(f=b.getVar(f));var h=f.apply(g,e);h&&typeof h.then=="function"?h.then(this.nextFn,this.failFn):this.nextFn(h)}catch(i){c(this,i)}},i}),define("react/ret-task",["util","./sprintf","./base-task"],function(a,b,c){function d(c,d){return b("%s - %s",c,a.inspect(d))}function i(a){var b=this;Object.keys(a).forEach(function(c){b[c]=a[c]})}var e="retTask requires f, a, out",f="retTask requires f to be a function or string",g="retTask requires a to be an array of string param names",h="retTask requires out to be an array with single string param name or []";return i.prototype=new c,i.prototype.constructor=i,i.validate=function(a){var b=[];if(!a.f||!a.a||!a.out)b.push(d(e,a));else{var c=typeof a.f;a.f instanceof Function||c==="string"||b.push(d(f,a)),(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(d(g,a)),(!Array.isArray(a.out)||!(a.out.length===0||a.out.length===1&&typeof (a.out[0]==="string")))&&b.push(d(h,a))}return b},i.prototype.exec=function(b,c,d){try{var e=this.a.map(function(a){return b.getVar(a)});this.start(e);var f=this.f,g=b.getVar("this");this.isMethodCall()?(f=b.getVar(this.f),g=this.getMethodObj(b)):typeof f=="string"&&(f=b.getVar(f));var h=[f.apply(g,e)];b.saveResults(this.out,h),this.complete(h),d()}catch(i){c(this,i)}},i}),define("react/when-task",["util","./sprintf","./base-task"],function(a,b,c){function d(c,d){return b("%s - %s",c,a.inspect(d))}function h(a){var b=this;Object.keys(a).forEach(function(c){b[c]=a[c]})}var e="whenTask requires a, out",f="whenTask requires a to be an array[1] of string param names",g="whenTask requires out to be an array[1] of string param names";return h.prototype=new c,h.prototype.constructor=h,h.prototype.f=function(){},h.validate=function(a){var b=[];return!a.a||!a.out?b.push(d(e,a)):((!Array.isArray(a.a)||a.a.length!==1||!a.a.every(function(a){return typeof a=="string"}))&&b.push(d(f,a)),Array.isArray(a.out)&&a.out.length<=1&&a.out.every(function(a){return typeof a=="string"})||b.push(d(g,a))),b},h.prototype.prepare=function(b,c,d){var e=this;this.nextFn=function(a){var b=Array.prototype.slice.call(arguments);c.saveResults(e.out,b),e.complete(b),d()},this.failFn=function(a){b(e,a)}},h.prototype.exec=function(b,c,d){try{var e=this.a.map(function(a){return b.getVar(a)});this.start(e);var f=e[0];f&&typeof f.then=="function"?f.then(this.nextFn,this.failFn):this.nextFn(f)}catch(g){c(this,g)}},h}),define("react/finalcb-task",["./sprintf","util","./status","./event-manager"],function(a,b,c,d){function f(a){var b=a.taskDef;if(typeof a.cbFunc!="function")throw new Error("callback is not a function");var c=this;for(var d in b)c[d]=b[d];this.f=a.cbFunc,this.tasks=a.tasks,this.vCon=a.vCon,this.retValue=a.retValue,this.execOptions=a.execOptions,this.env=a.env}function g(c,d){return a("%s - %s",c,b.inspect(d))}var e="ast.outTask.a should be an array of string param names";return f.validate=function(a){var b=[];return(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(g(e,a)),b},f.prototype.isReady=function(){return this.tasks.every(function(a){return a.status===c.COMPLETE})},f.prototype.exec=function(a){if(!this.f)return;if(a)this.env.error=a,this.env.flowEmitter.emit(d.TYPES.EXEC_FLOW_ERRORED,this.env),this.f.call(null,a);else{var b=this.vCon,c=this.a.map(function(a){return b.getVar(a)});c.unshift(null),this.env.results=c,this.env.flowEmitter.emit(d.TYPES.EXEC_FLOW_COMPLETE,this.env),this.f.apply(null,c)}this.f=null},f}),define("react/finalcb-first-task",["./sprintf","util","./status","./vcon","./event-manager"],function(a,b,c,d,e){function g(a){var b=a.taskDef;if(typeof a.cbFunc!="function")throw new Error("callback is not a function");var c=this;for(var d in b)c[d]=b[d];this.f=a.cbFunc,this.tasks=a.tasks,this.vCon=a.vCon,this.retValue=a.retValue,this.env=a.env}function h(c,d){return a("%s - %s",c,b.inspect(d))}var f="ast.outTask.a should be an array of string param names";return g.validate=function(a){var b=[];return(!Array.isArray(a.a)||!a.a.every(function(a){return typeof a=="string"}))&&b.push(h(f,a)),b},g.prototype.isReady=function(){var a=this.vCon.getLastResults();return a?a.some(function(a){return a!==undefined&&a!==null}):!1},g.prototype.exec=function(a){if(!this.f)return;if(a)this.env.error=a,this.env.flowEmitter.emit(e.TYPES.EXEC_FLOW_ERRORED,this.env),this.f.call(null,a);else{var b=this.vCon,c=this.a.map(function(a){return b.getVar(a)});c.unshift(null),this.env.results=c,this.env.flowEmitter.emit(e.TYPES.EXEC_FLOW_COMPLETE,this.env),this.f.apply(null,c)}this.f=null},g}),define("react/task",["util","./sprintf","ensure-array","./cb-task","./promise-task","./ret-task","./when-task","./finalcb-task","./finalcb-first-task","./status","./error","./vcon","./event-manager"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){function p(){return Object.keys(n)}function r(){return Object.keys(q)}function z(c,d){return b("%s - %s",c,a.inspect(d))}function A(a){return a.type?a:(a.type="cb",a)}function B(a){a.type||(a.type=Object.keys(q)[0])}function C(a){if(!a.after)return;var b=c(a.after);b=b.map(function(a){return typeof a=="function"?a.name:a}),a.after=b}function D(a){if(!a||typeof a!="object")return[z(t,a)];A(a),C(a);var b=[];return b=b.concat(w(a)),b=b.concat(x(a)),b}function w(a){var b=[];return Object.keys(n).some(function(b){return a.type===b})||b.push(z(v,a)),b}function x(a){var b=[],c=n[a.type];return c&&(b=b.concat(c.validate(a))),b}function E(a){var b=[];B(a);var c=q[a.type];return b=b.concat(c.validate(a)),b}function F(a,c,d){function f(){}var e=[],g=a.map(function(a){return f}),h=l.create(g,a,d),i=c.map(y),j=i.filter(function(a){return a.type!=="when"});return j.forEach(function(a,c){if(!a.functionExists(h))if(!a.isMethodCall())e.push(b(s,a.f,c));else{var d=a.getMethodObj(h);d&&d!==f&&e.push(b(s,a.f,c))}}),e}function G(a){return typeof a=="function"?a.name:a?a:""}function H(a){var c=a.reduce(function(a,b){return b.name&&(a[b.name]=b),a},{});return a.forEach(function(a,d){if(!a.name){var e=G(a.f);e||(e=b(o,d));if(!e||c[e])e=b("%s_%s",e,d);a.name=e,c[e]=a}}),c}function y(a){var b=n[a.type];return new b(a)}function I(a,b,c,d,e,f){B(a);var g={taskDef:a,cbFunc:b,tasks:c,vCon:d,execOptions:e,env:f,TaskConstructor:q[a.type]};m.global.emit(m.TYPES.EXEC_OUTTASK_CREATE,g);var h=g.TaskConstructor;return new h(g)}function J(a,b){return function(d,e){d.status=j.ERRORED,d.error=e,b.env.currentTask=d,b.env.flowEmitter.emit(m.TYPES.EXEC_TASK_ERRORED,d);var f=k.augmentError(e,{task:d,vcon:a});b.exec(f)}}function K(a,b,c){return b.filter(function(b){return b.isReady(a,c)})}function L(a,b,c,d){a.forEach(function(a){a.status=j.READY}),a.forEach(function(a){a.exec(b,c,d)})}function M(a,c,d,e){var f=c.filter(function(a){return a.status===j.RUNNING||a.status===j.READY});if(!f.length){var g=c.filter(function(a){return!a.status}),h=g.map(function(a){return a.name}),i=b(u,h.join(", ")),k={env:e};d(k,new Error(i))}}function N(a,b,c,d,e,f){var g=K(a,b,c);g.length||M(a,b,d,f),L(g,a,d,e)}function O(a){return H(a),a.forEach(function(a,b,c){b!==0&&(a.after=[c[b-1].name])}),a}var n={cb:d,ret:f,promise:e,when:g},o="task_%s",q={finalcb:h,finalcbFirst:i},s="function: %s not found in locals or input params - task[%s]",t="task must be an object",u="no tasks running, flow will not complete, remaining tasks: %s",v="task.type should match one of "+Object.keys(n).join(", "),w,x,y;return{serializeTasks:O,TASK_TYPES:n,taskTypeKeys:p,OUT_TASK_TYPES:q,outTaskTypeKeys:r,setMissingType:A,validate:D,validateOutTask:E,validateLocalFunctions:F,nameTasks:H,create:y,createOutTask:I,createErrorHandler:J,findReadyAndExec:N}}),define("react/validate",["util","./sprintf","ensure-array","./task"],function(a,b,c,d){function m(c,d){return b("%s - %s",c,a.inspect(d))}function n(a){return l.test(a)}function o(a){if(!a||!a.inParams||!a.tasks||!a.outTask)return[e];var b=[];return b=b.concat(p(a.inParams)),b=b.concat(q(a.tasks)),b=b.concat(r(a.tasks)),b=b.concat(d.validateOutTask(a.outTask)),b=b.concat(s(a.locals)),b.length===0&&(a.outTask.type!=="finalcbFirst"&&(b=b.concat(u(a.tasks))),b=b.concat(d.validateLocalFunctions(a.inParams,a.tasks,a.locals)),b=b.concat(v(a))),b}function p(a){return!Array.isArray(a)||!a.every(function(a){return typeof a=="string"})?[f]:[]}function q(a){if(!Array.isArray(a))return[g];var b=[];return a.forEach(function(a){b=b.concat(d.validate(a))}),b}function r(a){if(!Array.isArray(a))return[];var c=[],d=a.filter(function(a){return a.name}),e=d.map(function(a){return a.name});return e.reduce(function(a,d){return a[d]?c.push(b("%s %s",h,d)):a[d]=!0,a},{}),c}function s(a){var b=[];return a===null&&b.push(i),b}function t(a){return c(a.out)}function u(a){var c=[];return a.reduce(function(a,d){return t(d).forEach(function(d){a[d]!==undefined?c.push(b("%s: %s",j,d)):a[d]=!0}),a},{}),c}function v(a){var c=[],d={};return a.locals&&(d=Object.keys(a.locals).reduce(function(a,b){return a[b]=!0,a},d)),a.inParams.reduce(function(a,b){return a[b]=!0,a},d),a.tasks.reduce(function(a,b){return b.out.reduce(function(a,b){return a[b]=!0,a},a)},d),a.tasks.reduce(function(a,c){return c.a.reduce(function(a,c){return!n(c)&&!d[c]&&a.push(b(k,c)),a},a)},c),a.outTask.a.reduce(function(a,c){return!n(c)&&!d[c]&&a.push(b(k,c)),a},c),c}var e="ast must be an object with inParams, tasks, and outTask",f="ast.inParams must be an array of strings",g="ast.tasks must be an array of tasks",h="ast.tasks that specify name need to be unique, duplicate:",i="ast.locals should not be null",j="multiple tasks output the same param, must be unique. param",k="missing or mispelled variable referenced in flow definition: %s",l=/^(true|false|this|null|\-?[0-9\.]+)$|'|"|\./i;return o}),define("react/core",["./eventemitter","./error","./validate","./task","./status","./vcon","./event-manager","./input-parser","./id","./sprintf"],function(a,b,c,d,e,f,g,h,i,j){function m(a){return Object.keys(k).reduce(function(a,b){return a[b]||(a[b]=k[b]),a},a)}function n(){return j("flow_%s",i.createUniqueId())}function o(){function j(b){Object.keys(b).forEach(function(a){e[a]=b[a]});var f=c(e);return f.length||(e.name||(e.name=n()),d.nameTasks(e.tasks)),Object.freeze&&(Object.keys(b).forEach(function(a){typeof b[a]=="object"&&Object.freeze(b[a])}),Object.freeze(b)),a.emit(g.TYPES.AST_DEFINED,e),f}function o(b,c,j,k){function v(){if(!t.f)return;if(t.isReady())return t.exec();d.findReadyAndExec(q,r,s,u,v,o)}var n=Array.prototype.slice.call(arguments),o={execId:i.createUniqueId(),args:n,ast:e,flowEmitter:a};o.name=e.name||o.execId,a.emit(g.TYPES.EXEC_FLOW_START,o);var p=h(n,e),q=f.create(p.args,e.inParams,e.locals,this);o.parsedInput=p,o.options=m(p.options),o.vCon=q,o.taskDefs=e.tasks.slice(),o.outTaskDef=Object.create(e.outTask),l.emit(g.TYPES.EXEC_TASKS_PRECREATE,o);var r=o.taskDefs.map(d.create),s=d.nameTasks(r),t=d.createOutTask(o.outTaskDef,p.cb,r,q,o.options,o),u=d.createErrorHandler(q,t);return r.forEach(function(b){b.id=i.createUniqueId(),b.env=o,b.prepare&&b.prepare(u,q,v,a)}),v(),t.retValue}if(arguments.length)throw new Error("react() takes no args, check API");b.ensureStackTraceLimitSet(k.stackTraceLimitMin);var a=g.create();a.parent=l;var e={name:undefined,inParams:[],tasks:[],outTask:{},locals:{}},p=o;return p.ast=e,p.setAndValidateAST=j,p.events=a,p}var k={stackTraceLimitMin:30},l=g.global;return o.options=k,o.events=l,o}),define("react/parse",["./sprintf"],function(a){function b(a){return a?a.split(",").map(function(a){return a.trim()}).filter(function(a){return a}):[]}function c(a,b){if(typeof a!="string")return a;var c=b.regex?b.regex.exec(a):a.split(b.splitStr);return c?b.fn(c,a):a}function d(b,d,e){var f=d.reduce(c,b);if(typeof f!="string")return f;throw new Error(a(e,b))}return{splitTrimFilterArgs:b,parseStr:d}}),define("react/dsl",["./sprintf","./core","./parse","./task"],function(a,b,c,d){function m(a){return a.length&&a[a.length-1].match(k)&&a.pop(),a}function n(a){return a.length&&a[0].match(l)&&a.shift(),a}function p(a){var b=c.parseStr(a,[o],f);return b.inDef=m(b.inDef),b}function q(b){var c=[],d,e,f;while(b.length>=2){e={},d=b.shift(),f=p(b.shift()),typeof b[0]=="object"&&(e=b.shift()),e.f=d,e.a=f.inDef;var g=f.type;e.out=f.outDef,e.type=g,c.push(e)}if(b.length)throw new Error(a(i,b[0]));return c}function r(a){var b=a.shift()||"",c=a.length&&typeof a[0]=="object"?a.shift():{},d=a,e={inOutParamStr:b,taskDefArr:d,options:c};return e}function s(c,d,f,g){var h=b();if(c&&j.test(c))throw new Error(a(e,c));var i=r(Array.prototype.slice.call(arguments,1)),k=p(i.inOutParamStr),l={name:c,inParams:k.inDef,tasks:q(i.taskDefArr),outTask:{a:k.outDef}};i.options&&Object.keys(i.options).forEach(function(a){l[a]=i.options[a]});var m=h.setAndValidateAST(l);if(m.length){var n=m.join("\n");throw new Error(n)}return h}function t(a,c,e,f){var g=b(),h=r(Array.prototype.slice.call(arguments,1)),i=p(h.inOutParamStr),j=d.serializeTasks(q(h.taskDefArr)),k={name:a,inParams:i.inDef,tasks:j,outTask:{type:"finalcbFirst",a:i.outDef}};h.options&&Object.keys(h.options).forEach(function(a){k[a]=h.options[a]});var l=g.setAndValidateAST(k);if(l.length){var m=l.join("\n");throw new Error(m)}return g}var e="first flow parameter should be the flow name, but found in/out def: %s",f='params in wrong format, wanted "foo, bar, cb -> err, baz" - found: %s',g='callback specified, but first out param was not "err", use for clarity. Found in/out def: %s',h="found err param, but cb/callback is not specified, is this cb-style async or sync function? Found in/out def: %s",i="extra unmatched task arg: %s",j=/\->/,k=/^cb|callback$/i,l=/^err$/i,o={splitStr:"->",fn:function(b,d){var e=c.splitTrimFilterArgs(b[0]),f=e[e.length-1],i=f&&k.test(f)?"cb":"ret",j=c.splitTrimFilterArgs(b[1]),o=j[0];if(i==="cb"&&(!o||!l.test(o)))throw new Error(a(g,d));if(i==="ret"&&o&&l.test(o))throw new Error(a(h,d));return{type:i,inDef:m(e),outDef:n(j)}}};return s.selectFirst=t,s}),define("react/track-tasks",[],function(){function b(b){if(a)return;a=!0,b.events.on(b.events.TYPES.EXEC_FLOW_START,function(a){a.startTime=Date.now(),a.flowEmitter.emit(b.events.TYPES.FLOW_BEGIN,a)}),b.events.on(b.events.TYPES.EXEC_TASK_START,function(a){a.startTime=Date.now(),a.env.flowEmitter.emit(b.events.TYPES.TASK_BEGIN,a)}),b.events.on(b.events.TYPES.EXEC_TASK_COMPLETE,function(a){a.endTime=Date.now(),a.elapsedTime=a.endTime-a.startTime,a.env.flowEmitter.emit(b.events.TYPES.TASK_COMPLETE,a)}),b.events.on(b.events.TYPES.EXEC_TASK_ERRORED,function(a){a.endTime=Date.now(),a.elapsedTime=a.endTime-a.startTime,a.env.flowEmitter.emit(b.events.TYPES.TASK_ERRORED,a)}),b.events.on(b.events.TYPES.EXEC_FLOW_COMPLETE,function(a){a.endTime=Date.now(),a.elapsedTime=a.endTime-a.startTime,a.flowEmitter.emit(b.events.TYPES.FLOW_COMPLETE,a)}),b.events.on(b.events.TYPES.EXEC_FLOW_ERRORED,function(a){a.endTime=Date.now(),a.elapsedTime=a.endTime-a.startTime,a.flowEmitter.emit(b.events.TYPES.FLOW_ERRORED,a)})}var a=!1;return b}),define("react/log-events",["util"],function(a){function f(b){var c=new Date;c.setTime(b.time);var d=b.args.filter(function(a){return typeof a!="function"}),e=c.toISOString();if(this.event==="flow.complete"){var f=b;console.error("%s: %s \tmsecs: %s \n\targs: %s \n\tresults: %s\n",this.event,f.name,f.elapsedTime,a.inspect(d),a.inspect(f.results))}else{var g=b.name,h=b.args;console.error("%s: %s \n\targs: %s\n",this.event,g,a.inspect(d))}}function g(b){var c=new Date;c.setTime(b.time);var d=b.args.filter(function(a){return typeof a!="function"}),e=c.toISOString();if(this.event==="task.complete"){var f=b;console.error("%s: %s:%s \tmsecs: %s \n\targs: %s \n\tresults: %s\n",this.event,f.env.name,f.name,f.elapsedTime,a.inspect(d),a.inspect(f.results))}else{var g=b.name,h=b.args;console.error("%s: %s:%s \n\targs: %s\n",this.event,b.env.name,b.name,a.inspect(d))}}function h(a,b){if(!a)throw new Error("flowFn is required");if(b&&b!=="*"){var h=e.test(b)?f:g;a.events.removeListener(b,h),a.events.on(b,h)}else a.events.removeListener(c,f),a.events.on(c,f),a.events.removeListener(d,g),a.events.on(d,g)}var b={},c="flow.*",d="task.*",e=/^flow\./;return b.logEvents=h,b}),define("react/promise-resolve",[],function(){function c(c){if(b)return;b=!0,c.events.on(c.events.TYPES.EXEC_TASKS_PRECREATE,function(b){var c=b.vCon.values,d=b.ast.inParams.filter(function(a){var b=c[a];return b&&typeof b.then=="function"});d.forEach(function(d){var e=d+a;c[e]=c[d],c[d]=undefined,b.taskDefs.push({type:"when",a:[e],out:[d]})})})}var a="__promise",b=!1;return c}),define("react/event-collector",[],function(){function a(a){function e(){this.events=[]}a.trackTasks();var b=/^ast\./,c=/^task\./,d=/^flow\./;return e.prototype.capture=function(e,f){function i(a){var e={event:this.event,time:Date.now()};d.test(this.event)?e.env=a:c.test(this.event)?e.task=a:b.test(this.event)&&(e.ast=a),h.events.push(e)}!f&&typeof e=="string"?(f=e,e=a):e||(e=a),f||(f="*");var g=e.events,h=this;g.on(f,i)},e.prototype.list=function(){return this.events},e.prototype.clear=function(){this.events=[]},new e}return a}),define("react",["./core","./dsl","./track-tasks","./log-events","./promise-resolve","./event-collector"],function(a,b,c,d,e,f){function h(){e(g)}function i(){c(g)}function j(a,b){return!b&&typeof a=="string"&&(b=a,a=undefined),a||(a=g),i(),d.logEvents(a,b)}function k(){return f(g)}var g=b;return g.options=a.options,g.events=a.events,g.logEvents=j,g.resolvePromises=h,g.trackTasks=i,g.createEventCollector=k,g})
@@ -0,0 +1,166 @@
1
+ # Advanced React
2
+
3
+ <a name="directAST"/>
4
+ ## Example defining directly using AST
5
+
6
+ Defining flow directly using the AST. Additional DSL interfaces can be built by simply having them build the proper AST.
7
+
8
+
9
+ ```javascript
10
+ var react = require('react');
11
+
12
+ function load(res, cb) { setTimeout(cb, 100, null, res + '-loaded'); }
13
+ function prefix(prefstr, str, cb) { setTimeout(cb, 100, null, prefstr + str); }
14
+ function postfix(str, poststr, cb) { setTimeout(cb, 100, null, str + poststr); }
15
+ function upper(str) { return str.toUpperCase(); }
16
+
17
+ var fn = react();
18
+ var errors = fn.setAndValidateAST({
19
+ inParams: ['res', 'prefstr', 'poststr'],
20
+ tasks: [
21
+ { f: load, a: ['res'], out: ['lres'] },
22
+ { f: upper, a: ['lres'], out: ['ulres'], type: 'ret' },
23
+ { f: prefix, a: ['prefstr', 'ulres'], out: ['plres'] },
24
+ { f: postfix, a: ['plres', 'poststr'], out: ['plresp'] }
25
+ ],
26
+ outTask: { a: ['plresp'] }
27
+ });
28
+ console.error('errors:', errors); // []
29
+
30
+ fn('foo', 'pre-', '-post', function cb(err, lres) {
31
+ console.error('err:', err); // null
32
+ console.error('lres:', lres); // pre-FOO-LOADED-post
33
+ });
34
+ ```
35
+
36
+
37
+ ## AST Definition
38
+
39
+ The abstract syntax tree or AST provided by React represents the data necessary to define the flow. By abstracting this from the DSL, it allows new skins or interfaces to be developed without need to change the core engine.
40
+
41
+ The AST is normally created at parse time when the React main function is called (or one of the alternate DSL's is called). This can be done a module load time such that after loading the React defined flow function's AST is generated and ready to process eliminating parsing and validation overhead when it is invoked in the future. This has the added advantage that since validation has also been performed that additional syntax issues or incomplete flow defintion errors can be caught quickly.
42
+
43
+ After the flow function has been created, you can review the generated AST for a function by accessing the ast.
44
+
45
+ ```javascript
46
+ var react = require('react');
47
+ var fn = react('my-flow-name', 'paramName1, paramName2, cb -> err, outParamName1, outParamName2',
48
+ functionRefOrMethodStr, 'paramName1, cb -> err, outParamName2', // async cb task
49
+ functionRefOrMethodStr2, 'paramName2, paramName1 -> outParamName1' // sync task
50
+ );
51
+
52
+ console.error(fn.ast); // output the generated AST
53
+ ```
54
+
55
+ The AST contains the following pieces:
56
+
57
+ ```javascript
58
+ var ast = {
59
+ name: flowName,
60
+ inParams: [],
61
+ tasks: [],
62
+ outTask: {},
63
+ locals: {}
64
+ };
65
+ ```
66
+ - **name** - string - represents the name of the flow or function that will be created. React will use the name when generating events so you can monitor progress and performance and also when errors occur.
67
+ - **inParams** - array of strings - the flow input parameter names (excluding the callback param)
68
+ - **tasks** - array of task defintion objects - each containing:
69
+ - **f** - function reference or method string - async or sync function to be used for this task
70
+ - **a** - array of input parameter names (excluding the callback param)
71
+ - **out** - array of output parameter names (excluding the err parame)
72
+ - **type** - type of function determining how function is invoked and its output style - one of: ('cb', 'ret', 'promise', 'when')
73
+ - **name** - string - unique name for each task provided or generated by React
74
+ - **outTask** - task definition object specifying the flow's output style and parameters containing:
75
+ - **f** - will contain reference to the callback function at runtime
76
+ - **a** - parameters being passed as output from the flow
77
+ - **locals** - object provided which contains additional values that will become part of the React variable space like input parameters but can be defined in advance at flow definition. This can be used to provide functions and objects to React enabling string based DSL's.
78
+
79
+
80
+ ## Plugins (optional requires which turn on additional functionality)
81
+
82
+ Additional functionality which is not enabled by default but available by requiring additional modules.
83
+
84
+
85
+ <a name="LogEvents"/>
86
+ ### LogEvents - log react progress to stderr
87
+
88
+ For convenience in debugging or in monitoring flow and performance, React has a built-in plugin for easily logging progress to stderr which is loaded and activated calling the react method `logEvents`. It can be specified to log globally for all react functions or only for particular react functions. You also may optionally listen to select events rather than all flow and task events.
89
+
90
+ ```javascript
91
+ var react = require('react');
92
+ react.logEvents(); // turn on flow and task logging for all react functions
93
+
94
+ // OR
95
+
96
+ react.logEvents(myReactFn); // turn on flow and task logging for a specific function, repeat as needed
97
+ react.logEvents(myReactFn).logEvents(myReactFn2); // can also chain
98
+
99
+ // Both methods can also take an optional event wildcard to specify what you want to listen to
100
+
101
+ react.logEvents('flow.*'); // turn on flow logging for all react functions
102
+ react.logEvents(myReactFn, 'task.*'); // turn on task logging for myReactFn
103
+ ```
104
+
105
+ Available Events that can be logged:
106
+
107
+ - flow.begin - flow execution has started (receives a flow env)
108
+ - flow.complete - flow execution has successfully completed (receives a flow env)
109
+ - flow.errored - flow execution has errored (receives a flow env)
110
+ - task.begin - task has started (receives task)
111
+ - task.complete - task has successfully complted (receives task)
112
+ - task.errored - task has errored (receives task)
113
+
114
+ ### Automatic Promise Resolution for inputs
115
+
116
+ If you want to automatically resolve promises in React without having to manually call `when` or `then`, React provides a plugin which will detect the existence of a `then` method (indicating a promise) at runtime from any inputs to the flow and will internally create `when` tasks to resolve them before passing the values to other tasks. This built-in plugin is not loaded normally but is loaded by invoking the react method `resolvePromises`. External plugins like `react-deferred` also enable this but also provide additional promise integration. See https://github.com/jeffbski/react-deferred
117
+
118
+ ```javascript
119
+ var react = require('react');
120
+ react.resolvePromises(); // turn on automatic promise detection and resolution
121
+ ```
122
+
123
+ ### Track tasks - enable task tracking
124
+
125
+ Instead of only logging events to stderr (like LogEvents), this built-in plugin fires events that can be directly monitored. The LogEvent plugin uses this internally to get access to the metrics.
126
+
127
+ Enable this like the other built-in plugins using the method `trackTasks`
128
+
129
+ ```javascript
130
+ var react = require('react');
131
+ react.trackTasks(); // turn on flow and task tracking events
132
+ ```
133
+
134
+ Available Events that can be consumed
135
+
136
+ - ast.defined - ast was defined (receives the ast)
137
+ - flow.begin - flow execution has started (receives a flow env)
138
+ - flow.complete - flow execution has successfully completed (receives a flow env)
139
+ - flow.errored - flow execution has errored (receives a flow env)
140
+ - task.begin - task has started (receives task)
141
+ - task.complete - task has successfully complted (receives task)
142
+ - task.errored - task has errored (receives task)
143
+
144
+
145
+ ### EventCollector - simple event accumulator for debug use
146
+
147
+ When developing or debugging it is often useful to accumulate events and then interrogate them to verify operation, especially in testing.
148
+
149
+ To make this easier to accomplish, this plugin provides a simple event accumulator for development use. Note that this accumulator is designed for short term debug use, as it will continue to accumulate events and does not have any size restrictions, it should not be used in production since it will just continue to grow in size unless manually cleared.
150
+
151
+ ```javascript
152
+ var react = require('react');
153
+ var collector = react.createEventCollector();
154
+
155
+ collector.capture(); // capture all flow and task events for all react flows
156
+ collector.capture('flow.*'); // capture all flow events for all react flows
157
+ collector.capture(flowFn, 'task.*'); // capture task events on a flow
158
+ collector.capture(flowFn, 'flow.*'); // add capture flow events on a flow
159
+
160
+ var events = collector.list(); // retrieve the list of events
161
+ collector.clear(); // clear the list of events;
162
+ ```
163
+
164
+ ### External Plugins
165
+
166
+ - https://github.com/jeffbski/react-deferred - integrates jQuery style Deferred/Promises with react, providing automatic promise resolution and optional usage for react functions where by calling without a callback returns a promise.
@@ -0,0 +1,938 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>ActiveLayerIndex</key>
6
+ <integer>0</integer>
7
+ <key>ApplicationVersion</key>
8
+ <array>
9
+ <string>com.omnigroup.OmniGrafflePro</string>
10
+ <string>138.33.0.157554</string>
11
+ </array>
12
+ <key>AutoAdjust</key>
13
+ <true/>
14
+ <key>BackgroundGraphic</key>
15
+ <dict>
16
+ <key>Bounds</key>
17
+ <string>{{0, 0}, {576, 733}}</string>
18
+ <key>Class</key>
19
+ <string>SolidGraphic</string>
20
+ <key>ID</key>
21
+ <integer>2</integer>
22
+ <key>Style</key>
23
+ <dict>
24
+ <key>shadow</key>
25
+ <dict>
26
+ <key>Draws</key>
27
+ <string>NO</string>
28
+ </dict>
29
+ <key>stroke</key>
30
+ <dict>
31
+ <key>Draws</key>
32
+ <string>NO</string>
33
+ </dict>
34
+ </dict>
35
+ </dict>
36
+ <key>CanvasOrigin</key>
37
+ <string>{0, 0}</string>
38
+ <key>ColumnAlign</key>
39
+ <integer>1</integer>
40
+ <key>ColumnSpacing</key>
41
+ <real>36</real>
42
+ <key>CreationDate</key>
43
+ <string>2012-01-17 20:24:28 +0000</string>
44
+ <key>Creator</key>
45
+ <string>Barczewski, Jeffrey (ELS-STL)</string>
46
+ <key>DisplayScale</key>
47
+ <string>1 0/72 in = 1 0/72 in</string>
48
+ <key>GraphDocumentVersion</key>
49
+ <integer>8</integer>
50
+ <key>GraphicsList</key>
51
+ <array>
52
+ <dict>
53
+ <key>Class</key>
54
+ <string>LineGraphic</string>
55
+ <key>ID</key>
56
+ <integer>26</integer>
57
+ <key>Points</key>
58
+ <array>
59
+ <string>{365.5, 129.8421}</string>
60
+ <string>{275.5, 139}</string>
61
+ </array>
62
+ <key>Style</key>
63
+ <dict>
64
+ <key>stroke</key>
65
+ <dict>
66
+ <key>HeadArrow</key>
67
+ <string>FilledArrow</string>
68
+ <key>LineType</key>
69
+ <integer>1</integer>
70
+ <key>TailArrow</key>
71
+ <string>0</string>
72
+ </dict>
73
+ </dict>
74
+ <key>Tail</key>
75
+ <dict>
76
+ <key>ID</key>
77
+ <integer>22</integer>
78
+ </dict>
79
+ </dict>
80
+ <dict>
81
+ <key>Class</key>
82
+ <string>LineGraphic</string>
83
+ <key>ID</key>
84
+ <integer>25</integer>
85
+ <key>Points</key>
86
+ <array>
87
+ <string>{365.5, 124.95454}</string>
88
+ <string>{302.5, 125.5}</string>
89
+ </array>
90
+ <key>Style</key>
91
+ <dict>
92
+ <key>stroke</key>
93
+ <dict>
94
+ <key>HeadArrow</key>
95
+ <string>FilledArrow</string>
96
+ <key>LineType</key>
97
+ <integer>1</integer>
98
+ <key>TailArrow</key>
99
+ <string>0</string>
100
+ </dict>
101
+ </dict>
102
+ <key>Tail</key>
103
+ <dict>
104
+ <key>ID</key>
105
+ <integer>22</integer>
106
+ </dict>
107
+ </dict>
108
+ <dict>
109
+ <key>Class</key>
110
+ <string>LineGraphic</string>
111
+ <key>ID</key>
112
+ <integer>24</integer>
113
+ <key>Points</key>
114
+ <array>
115
+ <string>{365.5, 119.32394}</string>
116
+ <string>{276, 110.5}</string>
117
+ </array>
118
+ <key>Style</key>
119
+ <dict>
120
+ <key>stroke</key>
121
+ <dict>
122
+ <key>HeadArrow</key>
123
+ <string>FilledArrow</string>
124
+ <key>LineType</key>
125
+ <integer>1</integer>
126
+ <key>TailArrow</key>
127
+ <string>0</string>
128
+ </dict>
129
+ </dict>
130
+ <key>Tail</key>
131
+ <dict>
132
+ <key>ID</key>
133
+ <integer>22</integer>
134
+ </dict>
135
+ </dict>
136
+ <dict>
137
+ <key>Bounds</key>
138
+ <string>{{365.5, 117.5}, {105, 14}}</string>
139
+ <key>Class</key>
140
+ <string>ShapedGraphic</string>
141
+ <key>FitText</key>
142
+ <string>YES</string>
143
+ <key>Flow</key>
144
+ <string>Resize</string>
145
+ <key>ID</key>
146
+ <integer>22</integer>
147
+ <key>Shape</key>
148
+ <string>Rectangle</string>
149
+ <key>Style</key>
150
+ <dict>
151
+ <key>fill</key>
152
+ <dict>
153
+ <key>Draws</key>
154
+ <string>NO</string>
155
+ </dict>
156
+ <key>shadow</key>
157
+ <dict>
158
+ <key>Draws</key>
159
+ <string>NO</string>
160
+ </dict>
161
+ <key>stroke</key>
162
+ <dict>
163
+ <key>Draws</key>
164
+ <string>NO</string>
165
+ </dict>
166
+ </dict>
167
+ <key>Text</key>
168
+ <dict>
169
+ <key>Pad</key>
170
+ <integer>0</integer>
171
+ <key>Text</key>
172
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
173
+ {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
174
+ {\colortbl;\red255\green255\blue255;}
175
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
176
+
177
+ \f0\fs24 \cf0 task in / out params}</string>
178
+ <key>VerticalPad</key>
179
+ <integer>0</integer>
180
+ </dict>
181
+ <key>Wrap</key>
182
+ <string>NO</string>
183
+ </dict>
184
+ <dict>
185
+ <key>Class</key>
186
+ <string>LineGraphic</string>
187
+ <key>Head</key>
188
+ <dict>
189
+ <key>ID</key>
190
+ <integer>4</integer>
191
+ </dict>
192
+ <key>ID</key>
193
+ <integer>21</integer>
194
+ <key>Points</key>
195
+ <array>
196
+ <string>{57, 142}</string>
197
+ <string>{78.5, 141.00331}</string>
198
+ </array>
199
+ <key>Style</key>
200
+ <dict>
201
+ <key>stroke</key>
202
+ <dict>
203
+ <key>HeadArrow</key>
204
+ <string>FilledArrow</string>
205
+ <key>LineType</key>
206
+ <integer>1</integer>
207
+ <key>TailArrow</key>
208
+ <string>0</string>
209
+ </dict>
210
+ </dict>
211
+ </dict>
212
+ <dict>
213
+ <key>Class</key>
214
+ <string>LineGraphic</string>
215
+ <key>ID</key>
216
+ <integer>20</integer>
217
+ <key>Points</key>
218
+ <array>
219
+ <string>{55.5, 126.26373}</string>
220
+ <string>{78.5, 125}</string>
221
+ </array>
222
+ <key>Style</key>
223
+ <dict>
224
+ <key>stroke</key>
225
+ <dict>
226
+ <key>HeadArrow</key>
227
+ <string>FilledArrow</string>
228
+ <key>LineType</key>
229
+ <integer>1</integer>
230
+ <key>TailArrow</key>
231
+ <string>0</string>
232
+ </dict>
233
+ </dict>
234
+ <key>Tail</key>
235
+ <dict>
236
+ <key>ID</key>
237
+ <integer>17</integer>
238
+ </dict>
239
+ </dict>
240
+ <dict>
241
+ <key>Class</key>
242
+ <string>LineGraphic</string>
243
+ <key>ID</key>
244
+ <integer>19</integer>
245
+ <key>Points</key>
246
+ <array>
247
+ <string>{55.5, 112.25275}</string>
248
+ <string>{78.5, 112}</string>
249
+ </array>
250
+ <key>Style</key>
251
+ <dict>
252
+ <key>stroke</key>
253
+ <dict>
254
+ <key>HeadArrow</key>
255
+ <string>FilledArrow</string>
256
+ <key>LineType</key>
257
+ <integer>1</integer>
258
+ <key>TailArrow</key>
259
+ <string>0</string>
260
+ </dict>
261
+ </dict>
262
+ <key>Tail</key>
263
+ <dict>
264
+ <key>ID</key>
265
+ <integer>16</integer>
266
+ </dict>
267
+ </dict>
268
+ <dict>
269
+ <key>Bounds</key>
270
+ <string>{{16.5, 134.5}, {39, 14}}</string>
271
+ <key>Class</key>
272
+ <string>ShapedGraphic</string>
273
+ <key>FitText</key>
274
+ <string>YES</string>
275
+ <key>Flow</key>
276
+ <string>Resize</string>
277
+ <key>ID</key>
278
+ <integer>18</integer>
279
+ <key>Shape</key>
280
+ <string>Rectangle</string>
281
+ <key>Style</key>
282
+ <dict>
283
+ <key>fill</key>
284
+ <dict>
285
+ <key>Draws</key>
286
+ <string>NO</string>
287
+ </dict>
288
+ <key>shadow</key>
289
+ <dict>
290
+ <key>Draws</key>
291
+ <string>NO</string>
292
+ </dict>
293
+ <key>stroke</key>
294
+ <dict>
295
+ <key>Draws</key>
296
+ <string>NO</string>
297
+ </dict>
298
+ </dict>
299
+ <key>Text</key>
300
+ <dict>
301
+ <key>Pad</key>
302
+ <integer>0</integer>
303
+ <key>Text</key>
304
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
305
+ {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
306
+ {\colortbl;\red255\green255\blue255;}
307
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
308
+
309
+ \f0\fs24 \cf0 sync fn}</string>
310
+ <key>VerticalPad</key>
311
+ <integer>0</integer>
312
+ </dict>
313
+ <key>Wrap</key>
314
+ <string>NO</string>
315
+ </dict>
316
+ <dict>
317
+ <key>Bounds</key>
318
+ <string>{{10.5, 120.5}, {45, 14}}</string>
319
+ <key>Class</key>
320
+ <string>ShapedGraphic</string>
321
+ <key>FitText</key>
322
+ <string>YES</string>
323
+ <key>Flow</key>
324
+ <string>Resize</string>
325
+ <key>ID</key>
326
+ <integer>17</integer>
327
+ <key>Shape</key>
328
+ <string>Rectangle</string>
329
+ <key>Style</key>
330
+ <dict>
331
+ <key>fill</key>
332
+ <dict>
333
+ <key>Draws</key>
334
+ <string>NO</string>
335
+ </dict>
336
+ <key>shadow</key>
337
+ <dict>
338
+ <key>Draws</key>
339
+ <string>NO</string>
340
+ </dict>
341
+ <key>stroke</key>
342
+ <dict>
343
+ <key>Draws</key>
344
+ <string>NO</string>
345
+ </dict>
346
+ </dict>
347
+ <key>Text</key>
348
+ <dict>
349
+ <key>Pad</key>
350
+ <integer>0</integer>
351
+ <key>Text</key>
352
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
353
+ {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
354
+ {\colortbl;\red255\green255\blue255;}
355
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
356
+
357
+ \f0\fs24 \cf0 async fn}</string>
358
+ <key>VerticalPad</key>
359
+ <integer>0</integer>
360
+ </dict>
361
+ <key>Wrap</key>
362
+ <string>NO</string>
363
+ </dict>
364
+ <dict>
365
+ <key>Bounds</key>
366
+ <string>{{10.5, 105.5}, {45, 14}}</string>
367
+ <key>Class</key>
368
+ <string>ShapedGraphic</string>
369
+ <key>FitText</key>
370
+ <string>YES</string>
371
+ <key>Flow</key>
372
+ <string>Resize</string>
373
+ <key>ID</key>
374
+ <integer>16</integer>
375
+ <key>Shape</key>
376
+ <string>Rectangle</string>
377
+ <key>Style</key>
378
+ <dict>
379
+ <key>fill</key>
380
+ <dict>
381
+ <key>Draws</key>
382
+ <string>NO</string>
383
+ </dict>
384
+ <key>shadow</key>
385
+ <dict>
386
+ <key>Draws</key>
387
+ <string>NO</string>
388
+ </dict>
389
+ <key>stroke</key>
390
+ <dict>
391
+ <key>Draws</key>
392
+ <string>NO</string>
393
+ </dict>
394
+ </dict>
395
+ <key>Text</key>
396
+ <dict>
397
+ <key>Pad</key>
398
+ <integer>0</integer>
399
+ <key>Text</key>
400
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
401
+ {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
402
+ {\colortbl;\red255\green255\blue255;}
403
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
404
+
405
+ \f0\fs24 \cf0 async fn}</string>
406
+ <key>VerticalPad</key>
407
+ <integer>0</integer>
408
+ </dict>
409
+ <key>Wrap</key>
410
+ <string>NO</string>
411
+ </dict>
412
+ <dict>
413
+ <key>Class</key>
414
+ <string>LineGraphic</string>
415
+ <key>ID</key>
416
+ <integer>15</integer>
417
+ <key>Points</key>
418
+ <array>
419
+ <string>{430.80768, 57.5}</string>
420
+ <string>{434.5, 89.5}</string>
421
+ </array>
422
+ <key>Style</key>
423
+ <dict>
424
+ <key>stroke</key>
425
+ <dict>
426
+ <key>HeadArrow</key>
427
+ <string>FilledArrow</string>
428
+ <key>LineType</key>
429
+ <integer>1</integer>
430
+ <key>TailArrow</key>
431
+ <string>0</string>
432
+ </dict>
433
+ </dict>
434
+ <key>Tail</key>
435
+ <dict>
436
+ <key>ID</key>
437
+ <integer>7</integer>
438
+ </dict>
439
+ </dict>
440
+ <dict>
441
+ <key>Class</key>
442
+ <string>LineGraphic</string>
443
+ <key>ID</key>
444
+ <integer>14</integer>
445
+ <key>Points</key>
446
+ <array>
447
+ <string>{106.08696, 57.5}</string>
448
+ <string>{104, 89.5}</string>
449
+ </array>
450
+ <key>Style</key>
451
+ <dict>
452
+ <key>stroke</key>
453
+ <dict>
454
+ <key>HeadArrow</key>
455
+ <string>FilledArrow</string>
456
+ <key>LineType</key>
457
+ <integer>1</integer>
458
+ <key>TailArrow</key>
459
+ <string>0</string>
460
+ </dict>
461
+ </dict>
462
+ <key>Tail</key>
463
+ <dict>
464
+ <key>ID</key>
465
+ <integer>8</integer>
466
+ </dict>
467
+ </dict>
468
+ <dict>
469
+ <key>Class</key>
470
+ <string>LineGraphic</string>
471
+ <key>Head</key>
472
+ <dict>
473
+ <key>ID</key>
474
+ <integer>4</integer>
475
+ </dict>
476
+ <key>ID</key>
477
+ <integer>12</integer>
478
+ <key>Points</key>
479
+ <array>
480
+ <string>{292.6358, 57.5}</string>
481
+ <string>{288.68518, 89.5}</string>
482
+ </array>
483
+ <key>Style</key>
484
+ <dict>
485
+ <key>stroke</key>
486
+ <dict>
487
+ <key>HeadArrow</key>
488
+ <string>FilledArrow</string>
489
+ <key>LineType</key>
490
+ <integer>1</integer>
491
+ <key>TailArrow</key>
492
+ <string>0</string>
493
+ </dict>
494
+ </dict>
495
+ <key>Tail</key>
496
+ <dict>
497
+ <key>ID</key>
498
+ <integer>6</integer>
499
+ </dict>
500
+ </dict>
501
+ <dict>
502
+ <key>Class</key>
503
+ <string>LineGraphic</string>
504
+ <key>ID</key>
505
+ <integer>11</integer>
506
+ <key>Points</key>
507
+ <array>
508
+ <string>{188.10257, 57.5}</string>
509
+ <string>{184, 89.5}</string>
510
+ </array>
511
+ <key>Style</key>
512
+ <dict>
513
+ <key>stroke</key>
514
+ <dict>
515
+ <key>HeadArrow</key>
516
+ <string>FilledArrow</string>
517
+ <key>LineType</key>
518
+ <integer>1</integer>
519
+ <key>TailArrow</key>
520
+ <string>0</string>
521
+ </dict>
522
+ </dict>
523
+ <key>Tail</key>
524
+ <dict>
525
+ <key>ID</key>
526
+ <integer>5</integer>
527
+ </dict>
528
+ </dict>
529
+ <dict>
530
+ <key>Bounds</key>
531
+ <string>{{71.5, 29.5}, {71, 28}}</string>
532
+ <key>Class</key>
533
+ <string>ShapedGraphic</string>
534
+ <key>FitText</key>
535
+ <string>YES</string>
536
+ <key>Flow</key>
537
+ <string>Resize</string>
538
+ <key>ID</key>
539
+ <integer>8</integer>
540
+ <key>Shape</key>
541
+ <string>Rectangle</string>
542
+ <key>Style</key>
543
+ <dict>
544
+ <key>fill</key>
545
+ <dict>
546
+ <key>Draws</key>
547
+ <string>NO</string>
548
+ </dict>
549
+ <key>shadow</key>
550
+ <dict>
551
+ <key>Draws</key>
552
+ <string>NO</string>
553
+ </dict>
554
+ <key>stroke</key>
555
+ <dict>
556
+ <key>Draws</key>
557
+ <string>NO</string>
558
+ </dict>
559
+ </dict>
560
+ <key>Text</key>
561
+ <dict>
562
+ <key>Pad</key>
563
+ <integer>0</integer>
564
+ <key>Text</key>
565
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
566
+ {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
567
+ {\colortbl;\red255\green255\blue255;}
568
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
569
+
570
+ \f0\fs24 \cf0 react created\
571
+ function}</string>
572
+ <key>VerticalPad</key>
573
+ <integer>0</integer>
574
+ </dict>
575
+ <key>Wrap</key>
576
+ <string>NO</string>
577
+ </dict>
578
+ <dict>
579
+ <key>Bounds</key>
580
+ <string>{{387.5, 43.5}, {85, 14}}</string>
581
+ <key>Class</key>
582
+ <string>ShapedGraphic</string>
583
+ <key>FitText</key>
584
+ <string>YES</string>
585
+ <key>Flow</key>
586
+ <string>Resize</string>
587
+ <key>ID</key>
588
+ <integer>7</integer>
589
+ <key>Shape</key>
590
+ <string>Rectangle</string>
591
+ <key>Style</key>
592
+ <dict>
593
+ <key>fill</key>
594
+ <dict>
595
+ <key>Draws</key>
596
+ <string>NO</string>
597
+ </dict>
598
+ <key>shadow</key>
599
+ <dict>
600
+ <key>Draws</key>
601
+ <string>NO</string>
602
+ </dict>
603
+ <key>stroke</key>
604
+ <dict>
605
+ <key>Draws</key>
606
+ <string>NO</string>
607
+ </dict>
608
+ </dict>
609
+ <key>Text</key>
610
+ <dict>
611
+ <key>Pad</key>
612
+ <integer>0</integer>
613
+ <key>Text</key>
614
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
615
+ {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
616
+ {\colortbl;\red255\green255\blue255;}
617
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
618
+
619
+ \f0\fs24 \cf0 flow out params}</string>
620
+ <key>VerticalPad</key>
621
+ <integer>0</integer>
622
+ </dict>
623
+ <key>Wrap</key>
624
+ <string>NO</string>
625
+ </dict>
626
+ <dict>
627
+ <key>Bounds</key>
628
+ <string>{{254.5, 43.5}, {78, 14}}</string>
629
+ <key>Class</key>
630
+ <string>ShapedGraphic</string>
631
+ <key>FitText</key>
632
+ <string>YES</string>
633
+ <key>Flow</key>
634
+ <string>Resize</string>
635
+ <key>ID</key>
636
+ <integer>6</integer>
637
+ <key>Shape</key>
638
+ <string>Rectangle</string>
639
+ <key>Style</key>
640
+ <dict>
641
+ <key>fill</key>
642
+ <dict>
643
+ <key>Draws</key>
644
+ <string>NO</string>
645
+ </dict>
646
+ <key>shadow</key>
647
+ <dict>
648
+ <key>Draws</key>
649
+ <string>NO</string>
650
+ </dict>
651
+ <key>stroke</key>
652
+ <dict>
653
+ <key>Draws</key>
654
+ <string>NO</string>
655
+ </dict>
656
+ </dict>
657
+ <key>Text</key>
658
+ <dict>
659
+ <key>Pad</key>
660
+ <integer>0</integer>
661
+ <key>Text</key>
662
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
663
+ {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
664
+ {\colortbl;\red255\green255\blue255;}
665
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
666
+
667
+ \f0\fs24 \cf0 flow in params}</string>
668
+ <key>VerticalPad</key>
669
+ <integer>0</integer>
670
+ </dict>
671
+ <key>Wrap</key>
672
+ <string>NO</string>
673
+ </dict>
674
+ <dict>
675
+ <key>Bounds</key>
676
+ <string>{{161, 43.5}, {56, 14}}</string>
677
+ <key>Class</key>
678
+ <string>ShapedGraphic</string>
679
+ <key>FitText</key>
680
+ <string>YES</string>
681
+ <key>Flow</key>
682
+ <string>Resize</string>
683
+ <key>ID</key>
684
+ <integer>5</integer>
685
+ <key>Shape</key>
686
+ <string>Rectangle</string>
687
+ <key>Style</key>
688
+ <dict>
689
+ <key>fill</key>
690
+ <dict>
691
+ <key>Draws</key>
692
+ <string>NO</string>
693
+ </dict>
694
+ <key>shadow</key>
695
+ <dict>
696
+ <key>Draws</key>
697
+ <string>NO</string>
698
+ </dict>
699
+ <key>stroke</key>
700
+ <dict>
701
+ <key>Draws</key>
702
+ <string>NO</string>
703
+ </dict>
704
+ </dict>
705
+ <key>Text</key>
706
+ <dict>
707
+ <key>Pad</key>
708
+ <integer>0</integer>
709
+ <key>Text</key>
710
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
711
+ {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
712
+ {\colortbl;\red255\green255\blue255;}
713
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
714
+
715
+ \f0\fs24 \cf0 flow-name}</string>
716
+ <key>VerticalPad</key>
717
+ <integer>0</integer>
718
+ </dict>
719
+ <key>Wrap</key>
720
+ <string>NO</string>
721
+ </dict>
722
+ <dict>
723
+ <key>Bounds</key>
724
+ <string>{{78.5, 89.5}, {410, 84}}</string>
725
+ <key>Class</key>
726
+ <string>ShapedGraphic</string>
727
+ <key>FitText</key>
728
+ <string>YES</string>
729
+ <key>Flow</key>
730
+ <string>Resize</string>
731
+ <key>ID</key>
732
+ <integer>4</integer>
733
+ <key>Shape</key>
734
+ <string>Rectangle</string>
735
+ <key>Style</key>
736
+ <dict>
737
+ <key>fill</key>
738
+ <dict>
739
+ <key>Draws</key>
740
+ <string>NO</string>
741
+ </dict>
742
+ <key>shadow</key>
743
+ <dict>
744
+ <key>Draws</key>
745
+ <string>NO</string>
746
+ </dict>
747
+ <key>stroke</key>
748
+ <dict>
749
+ <key>Draws</key>
750
+ <string>NO</string>
751
+ </dict>
752
+ </dict>
753
+ <key>Text</key>
754
+ <dict>
755
+ <key>Align</key>
756
+ <integer>0</integer>
757
+ <key>Pad</key>
758
+ <integer>0</integer>
759
+ <key>Text</key>
760
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230
761
+ {\fonttbl\f0\fswiss\fcharset0 Helvetica;}
762
+ {\colortbl;\red255\green255\blue255;\red11\green130\blue127;\red29\green168\blue7;\red55\green79\blue168;
763
+ \red130\green18\blue115;\red130\green8\blue36;\red57\green89\blue130;\red112\green130\blue22;\red130\green4\blue35;
764
+ \red56\green86\blue130;\red115\green130\blue25;\red130\green7\blue38;\red117\green130\blue26;\red130\green13\blue116;
765
+ }
766
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
767
+
768
+ \f0\fs24 \cf0 var \cf2 fn\cf0 = react('\cf3 loadRender\cf0 ', '\cf4 fooPath, barPath, barP2, cb\cf0 -&gt; \cf5 err, renderedOut\cf0 ',\
769
+ \cf6 loadFoo\cf0 , '\cf7 fooPath\cf0 , cb -&gt; err, \cf8 foo\cf0 ',\
770
+ \cf9 loadBar\cf0 , '\cf10 barPath, barP2\cf0 , cb -&gt; err, \cf11 bar\cf0 ',\
771
+ \cf12 render\cf0 , '\cf13 foo, bar\cf0 -&gt; \cf14 renderedOut\cf0 '\
772
+ );\
773
+ }</string>
774
+ <key>VerticalPad</key>
775
+ <integer>0</integer>
776
+ </dict>
777
+ <key>Wrap</key>
778
+ <string>NO</string>
779
+ </dict>
780
+ </array>
781
+ <key>GridInfo</key>
782
+ <dict/>
783
+ <key>GuidesLocked</key>
784
+ <string>NO</string>
785
+ <key>GuidesVisible</key>
786
+ <string>YES</string>
787
+ <key>HPages</key>
788
+ <integer>1</integer>
789
+ <key>ImageCounter</key>
790
+ <integer>1</integer>
791
+ <key>KeepToScale</key>
792
+ <false/>
793
+ <key>Layers</key>
794
+ <array>
795
+ <dict>
796
+ <key>Lock</key>
797
+ <string>NO</string>
798
+ <key>Name</key>
799
+ <string>Layer 1</string>
800
+ <key>Print</key>
801
+ <string>YES</string>
802
+ <key>View</key>
803
+ <string>YES</string>
804
+ </dict>
805
+ </array>
806
+ <key>LayoutInfo</key>
807
+ <dict>
808
+ <key>Animate</key>
809
+ <string>NO</string>
810
+ <key>circoMinDist</key>
811
+ <real>18</real>
812
+ <key>circoSeparation</key>
813
+ <real>0.0</real>
814
+ <key>layoutEngine</key>
815
+ <string>dot</string>
816
+ <key>neatoSeparation</key>
817
+ <real>0.0</real>
818
+ <key>twopiSeparation</key>
819
+ <real>0.0</real>
820
+ </dict>
821
+ <key>LinksVisible</key>
822
+ <string>NO</string>
823
+ <key>MagnetsVisible</key>
824
+ <string>NO</string>
825
+ <key>MasterSheets</key>
826
+ <array/>
827
+ <key>ModificationDate</key>
828
+ <string>2012-01-17 20:43:33 +0000</string>
829
+ <key>Modifier</key>
830
+ <string>Barczewski, Jeffrey (ELS-STL)</string>
831
+ <key>NotesVisible</key>
832
+ <string>NO</string>
833
+ <key>Orientation</key>
834
+ <integer>2</integer>
835
+ <key>OriginVisible</key>
836
+ <string>NO</string>
837
+ <key>PageBreaks</key>
838
+ <string>YES</string>
839
+ <key>PrintInfo</key>
840
+ <dict>
841
+ <key>NSBottomMargin</key>
842
+ <array>
843
+ <string>float</string>
844
+ <string>41</string>
845
+ </array>
846
+ <key>NSHorizonalPagination</key>
847
+ <array>
848
+ <string>int</string>
849
+ <string>0</string>
850
+ </array>
851
+ <key>NSLeftMargin</key>
852
+ <array>
853
+ <string>float</string>
854
+ <string>18</string>
855
+ </array>
856
+ <key>NSPaperSize</key>
857
+ <array>
858
+ <string>coded</string>
859
+ <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgWQCgRgDhg==</string>
860
+ </array>
861
+ <key>NSPrintReverseOrientation</key>
862
+ <array>
863
+ <string>int</string>
864
+ <string>0</string>
865
+ </array>
866
+ <key>NSRightMargin</key>
867
+ <array>
868
+ <string>float</string>
869
+ <string>18</string>
870
+ </array>
871
+ <key>NSTopMargin</key>
872
+ <array>
873
+ <string>float</string>
874
+ <string>18</string>
875
+ </array>
876
+ </dict>
877
+ <key>PrintOnePage</key>
878
+ <false/>
879
+ <key>ReadOnly</key>
880
+ <string>NO</string>
881
+ <key>RowAlign</key>
882
+ <integer>1</integer>
883
+ <key>RowSpacing</key>
884
+ <real>36</real>
885
+ <key>SheetTitle</key>
886
+ <string>Canvas 1</string>
887
+ <key>SmartAlignmentGuidesActive</key>
888
+ <string>YES</string>
889
+ <key>SmartDistanceGuidesActive</key>
890
+ <string>YES</string>
891
+ <key>UniqueID</key>
892
+ <integer>1</integer>
893
+ <key>UseEntirePage</key>
894
+ <false/>
895
+ <key>VPages</key>
896
+ <integer>1</integer>
897
+ <key>WindowInfo</key>
898
+ <dict>
899
+ <key>CurrentSheet</key>
900
+ <integer>0</integer>
901
+ <key>ExpandedCanvases</key>
902
+ <array>
903
+ <dict>
904
+ <key>name</key>
905
+ <string>Canvas 1</string>
906
+ </dict>
907
+ </array>
908
+ <key>Frame</key>
909
+ <string>{{218, 119}, {1216, 858}}</string>
910
+ <key>ListView</key>
911
+ <true/>
912
+ <key>OutlineWidth</key>
913
+ <integer>142</integer>
914
+ <key>RightSidebar</key>
915
+ <false/>
916
+ <key>ShowRuler</key>
917
+ <true/>
918
+ <key>Sidebar</key>
919
+ <true/>
920
+ <key>SidebarWidth</key>
921
+ <integer>120</integer>
922
+ <key>VisibleRegion</key>
923
+ <string>{{0, 0}, {533.5, 344}}</string>
924
+ <key>Zoom</key>
925
+ <real>2</real>
926
+ <key>ZoomValues</key>
927
+ <array>
928
+ <array>
929
+ <string>Canvas 1</string>
930
+ <real>2</real>
931
+ <real>1</real>
932
+ </array>
933
+ </array>
934
+ </dict>
935
+ <key>saveQuickLookFiles</key>
936
+ <string>YES</string>
937
+ </dict>
938
+ </plist>