From c5b64c7053bf484c38bdd15ffbf1d93452d16efd Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Thu, 22 Jan 2015 14:58:10 +0100 Subject: [PATCH 1/2] debug --- src/assets/js/app.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/assets/js/app.js b/src/assets/js/app.js index 1b567f9..ac911bf 100644 --- a/src/assets/js/app.js +++ b/src/assets/js/app.js @@ -27,10 +27,11 @@ var App = (function() { if (app.counters.length) { var source = $('#timer-template').html(); + console.log(app.counters); + for (i in app.counters) { if (app.counters[i]) { var c = app.counters[i]; - var $counter = $counters.children('li[data-id="' + c.issue.id + '"]'); if (!$counter.length) { @@ -166,9 +167,8 @@ var App = (function() { if (!$('.issue-time').length) { app.flash('Some forms are not correct.', 'danger'); } else { - app.counters = []; $('#content').empty(); - $('#counters > ul').remove(); + $('#counters > ul').remove(); app.flash('Redmine has been fully updated!', 'info'); @@ -312,7 +312,7 @@ var App = (function() { $('#content').show(); $('#loading').hide(); console.log('Request failed.'); - console.log([uri, type, data]); + console.log([uri, type, data]); app.flash('Request failed.', 'danger'); }, always: function() {} From 062a33089f751977148c43384b0b2a85e749c2d0 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Sun, 26 Jul 2015 15:36:09 +0200 Subject: [PATCH 2/2] Hum, lot of diff --- node_modules/handlebars/.npmignore | 4 +- node_modules/handlebars/CONTRIBUTING.md | 4 +- node_modules/handlebars/FAQ.md | 2 +- node_modules/handlebars/README.markdown | 39 +- node_modules/handlebars/bin/handlebars | 20 +- .../handlebars/coverage/coverage.json | 1 - .../lcov-report/dist/cjs/handlebars.js.html | 436 - .../dist/cjs/handlebars.runtime.js.html | 424 - .../dist/cjs/handlebars/base.js.html | 1012 --- .../dist/cjs/handlebars/compiler/ast.js.html | 961 --- .../dist/cjs/handlebars/compiler/base.js.html | 382 - .../cjs/handlebars/compiler/compiler.js.html | 1675 ---- .../cjs/handlebars/compiler/helpers.js.html | 880 -- .../dist/cjs/handlebars/compiler/index.html | 441 - .../compiler/javascript-compiler.js.html | 3211 -------- .../cjs/handlebars/compiler/parser.js.html | 1819 ----- .../cjs/handlebars/compiler/printer.js.html | 742 -- .../cjs/handlebars/compiler/visitor.js.html | 355 - .../dist/cjs/handlebars/exception.js.html | 403 - .../dist/cjs/handlebars/index.html | 402 - .../dist/cjs/handlebars/runtime.js.html | 898 --- .../dist/cjs/handlebars/safe-string.js.html | 352 - .../dist/cjs/handlebars/utils.js.html | 583 -- .../coverage/lcov-report/dist/cjs/index.html | 363 - .../coverage/lcov-report/index.html | 389 - .../coverage/lcov-report/lib/index.html | 363 - .../coverage/lcov-report/lib/index.js.html | 400 - .../lcov-report/lib/precompiler.js.html | 754 -- .../coverage/lcov-report/prettify.css | 1 - .../coverage/lcov-report/prettify.js | 1 - .../coverage/lcov-report/spec/ast.js.html | 1594 ---- .../coverage/lcov-report/spec/basic.js.html | 973 --- .../coverage/lcov-report/spec/blocks.js.html | 676 -- .../lcov-report/spec/builtins.js.html | 1018 --- .../coverage/lcov-report/spec/data.js.html | 1093 --- .../lcov-report/spec/env/browser.js.html | 406 - .../lcov-report/spec/env/common.js.html | 481 -- .../coverage/lcov-report/spec/env/index.html | 402 - .../lcov-report/spec/env/node.js.html | 391 - .../lcov-report/spec/env/runner.js.html | 457 -- .../lcov-report/spec/env/runtime.js.html | 466 -- .../coverage/lcov-report/spec/helpers.js.html | 2182 ----- .../coverage/lcov-report/spec/index.html | 597 -- .../spec/javascript-compiler.js.html | 535 -- .../coverage/lcov-report/spec/parser.js.html | 892 --- .../lcov-report/spec/partials.js.html | 841 -- .../lcov-report/spec/precompiler.js.html | 442 - .../lcov-report/spec/regressions.js.html | 790 -- .../coverage/lcov-report/spec/require.js.html | 391 - .../coverage/lcov-report/spec/runtime.js.html | 337 - .../coverage/lcov-report/spec/spec.js.html | 469 -- .../lcov-report/spec/string-params.js.html | 850 -- .../lcov-report/spec/subexpressions.js.html | 970 --- .../lcov-report/spec/tokenizer.js.html | 1528 ---- .../lcov-report/spec/track-ids.js.html | 811 -- .../coverage/lcov-report/spec/utils.js.html | 499 -- .../spec/whitespace-control.js.html | 508 -- node_modules/handlebars/coverage/lcov.info | 3181 -------- .../handlebars/dist/amd/handlebars.js | 73 +- .../handlebars/dist/amd/handlebars.runtime.js | 62 +- .../handlebars/dist/amd/handlebars/base.js | 441 +- .../dist/amd/handlebars/compiler/ast.js | 354 +- .../dist/amd/handlebars/compiler/base.js | 47 +- .../dist/amd/handlebars/compiler/code-gen.js | 161 + .../dist/amd/handlebars/compiler/compiler.js | 849 +- .../dist/amd/handlebars/compiler/helpers.js | 262 +- .../compiler/javascript-compiler.js | 1913 ++--- .../dist/amd/handlebars/compiler/parser.js | 1148 +-- .../dist/amd/handlebars/compiler/printer.js | 260 +- .../dist/amd/handlebars/compiler/visitor.js | 135 +- .../handlebars/compiler/whitespace-control.js | 209 + .../dist/amd/handlebars/exception.js | 57 +- .../dist/amd/handlebars/no-conflict.js | 16 + .../handlebars/dist/amd/handlebars/runtime.js | 387 +- .../dist/amd/handlebars/safe-string.js | 25 +- .../handlebars/dist/amd/handlebars/utils.js | 160 +- .../handlebars/dist/amd/precompiler.js | 315 +- .../handlebars/dist/cjs/handlebars.js | 74 +- .../handlebars/dist/cjs/handlebars.runtime.js | 57 +- .../handlebars/dist/cjs/handlebars/base.js | 180 +- .../dist/cjs/handlebars/compiler/ast.js | 320 +- .../dist/cjs/handlebars/compiler/base.js | 53 +- .../dist/cjs/handlebars/compiler/code-gen.js | 164 + .../dist/cjs/handlebars/compiler/compiler.js | 513 +- .../dist/cjs/handlebars/compiler/helpers.js | 274 +- .../compiler/javascript-compiler.js | 710 +- .../dist/cjs/handlebars/compiler/parser.js | 1140 +-- .../dist/cjs/handlebars/compiler/printer.js | 192 +- .../dist/cjs/handlebars/compiler/visitor.js | 130 +- .../handlebars/compiler/whitespace-control.js | 212 + .../dist/cjs/handlebars/exception.js | 26 +- .../dist/cjs/handlebars/no-conflict.js | 18 + .../handlebars/dist/cjs/handlebars/runtime.js | 171 +- .../dist/cjs/handlebars/safe-string.js | 11 +- .../handlebars/dist/cjs/handlebars/utils.js | 96 +- .../handlebars/dist/cjs/precompiler.js | 145 +- .../handlebars/dist/handlebars.amd.js | 6522 ++++++++------- .../handlebars/dist/handlebars.amd.min.js | 7 +- node_modules/handlebars/dist/handlebars.js | 7127 ++++++++++------- .../handlebars/dist/handlebars.min.js | 7 +- .../handlebars/dist/handlebars.runtime.amd.js | 1201 +-- .../dist/handlebars.runtime.amd.min.js | 4 +- .../handlebars/dist/handlebars.runtime.js | 1491 ++-- .../handlebars/dist/handlebars.runtime.min.js | 4 +- node_modules/handlebars/docs/compiler-api.md | 276 + node_modules/handlebars/lib/handlebars.js | 36 +- .../handlebars/lib/handlebars.runtime.js | 29 +- .../handlebars/lib/handlebars/base.js | 133 +- .../handlebars/lib/handlebars/compiler/ast.js | 317 +- .../lib/handlebars/compiler/base.js | 25 +- .../lib/handlebars/compiler/code-gen.js | 164 + .../lib/handlebars/compiler/compiler.js | 480 +- .../lib/handlebars/compiler/helpers.js | 265 +- .../compiler/javascript-compiler.js | 650 +- .../lib/handlebars/compiler/parser.js | 236 +- .../lib/handlebars/compiler/printer.js | 166 +- .../lib/handlebars/compiler/visitor.js | 112 +- .../handlebars/compiler/whitespace-control.js | 208 + .../handlebars/lib/handlebars/exception.js | 25 +- .../handlebars/lib/handlebars/no-conflict.js | 12 + .../handlebars/lib/handlebars/runtime.js | 144 +- .../handlebars/lib/handlebars/safe-string.js | 4 +- .../handlebars/lib/handlebars/utils.js | 74 +- node_modules/handlebars/lib/index.js | 19 +- node_modules/handlebars/lib/precompiler.js | 118 +- .../handlebars/node_modules/optimist/index.js | 203 +- .../node_modules/minimist}/.travis.yml | 2 +- .../optimist/node_modules/minimist}/LICENSE | 10 +- .../node_modules/minimist/example/parse.js | 2 + .../optimist/node_modules/minimist/index.js | 187 + .../node_modules/minimist/package.json | 67 + .../node_modules/minimist/readme.markdown | 73 + .../node_modules/minimist/test/bool.js | 119 + .../node_modules/minimist/test/dash.js | 24 + .../minimist/test/default_bool.js | 20 + .../node_modules/minimist/test/dotted.js | 22 + .../node_modules/minimist/test/long.js | 31 + .../node_modules/minimist/test/num.js | 36 + .../node_modules/minimist/test/parse.js | 197 + .../minimist/test/parse_modified.js | 9 + .../node_modules/minimist/test/short.js | 67 + .../node_modules/minimist/test/whitespace.js | 8 + .../optimist/node_modules/wordwrap/.npmignore | 1 - .../optimist/node_modules/wordwrap/LICENSE | 18 + .../node_modules/wordwrap/package.json | 35 +- .../node_modules/optimist/package.json | 28 +- .../node_modules/optimist/readme.markdown | 26 + .../node_modules/optimist/test/dash.js | 31 + .../optimist/test/parse_modified.js | 14 + .../node_modules/optimist/test/short.js | 16 + .../node_modules/optimist/test/whitespace.js | 8 + .../node_modules => }/source-map/.npmignore | 0 .../node_modules => }/source-map/.travis.yml | 0 .../node_modules => }/source-map/CHANGELOG.md | 21 + .../node_modules => }/source-map/LICENSE | 0 .../source-map/Makefile.dryice.js | 0 .../node_modules => }/source-map/README.md | 26 + .../source-map/build/assert-shim.js | 0 .../source-map/build/mini-require.js | 0 .../source-map/build/prefix-source-map.jsm | 0 .../source-map/build/prefix-utils.jsm | 0 .../source-map/build/suffix-browser.js | 0 .../source-map/build/suffix-source-map.jsm | 0 .../source-map/build/suffix-utils.jsm | 0 .../source-map/build/test-prefix.js | 0 .../source-map/build/test-suffix.js | 0 .../source-map/lib/source-map.js | 0 .../source-map/lib/source-map/array-set.js | 0 .../source-map/lib/source-map/base64-vlq.js | 4 +- .../source-map/lib/source-map/base64.js | 0 .../lib/source-map/binary-search.js | 29 +- .../source-map/lib/source-map/mapping-list.js | 86 + .../lib/source-map/source-map-consumer.js | 144 +- .../lib/source-map/source-map-generator.js | 25 +- .../source-map/lib/source-map/source-node.js | 30 +- .../source-map/lib/source-map/util.js | 0 .../source-map/node_modules/amdefine/LICENSE | 4 +- .../node_modules/amdefine/README.md | 2 +- .../node_modules/amdefine/amdefine.js | 10 +- .../node_modules/amdefine/intercept.js | 0 .../node_modules/amdefine/package.json | 47 + .../node_modules => }/source-map/package.json | 30 +- .../source-map/test/run-tests.js | 0 .../source-map/test/source-map/test-api.js | 0 .../test/source-map/test-array-set.js | 0 .../test/source-map/test-base64-vlq.js | 0 .../source-map/test/source-map/test-base64.js | 0 .../test/source-map/test-binary-search.js | 8 +- .../test/source-map/test-dog-fooding.js | 0 .../source-map/test-source-map-consumer.js | 171 + .../source-map/test-source-map-generator.js | 21 + .../test/source-map/test-source-node.js | 0 .../source-map/test/source-map/test-util.js | 0 .../source-map/test/source-map/util.js | 16 + .../node_modules/optimist}/.travis.yml | 5 +- .../uglify-js/node_modules/optimist}/LICENSE | 6 +- .../node_modules/optimist/example/bool.js | 10 + .../optimist/example/boolean_double.js | 7 + .../optimist/example/boolean_single.js | 7 + .../optimist/example/default_hash.js | 8 + .../optimist/example/default_singles.js | 7 + .../node_modules/optimist/example/divide.js | 8 + .../optimist/example/line_count.js | 20 + .../optimist/example/line_count_options.js | 29 + .../optimist/example/line_count_wrap.js | 29 + .../node_modules/optimist/example/nonopt.js | 4 + .../node_modules/optimist/example/reflect.js | 2 + .../node_modules/optimist/example/short.js | 3 + .../node_modules/optimist/example/string.js | 11 + .../optimist/example/usage-options.js | 19 + .../node_modules/optimist/example/xup.js | 10 + .../uglify-js/node_modules/optimist/index.js | 478 ++ .../optimist/node_modules/wordwrap/LICENSE | 18 + .../node_modules/wordwrap/README.markdown | 70 + .../node_modules/wordwrap/example/center.js | 10 + .../node_modules/wordwrap/example/meat.js | 3 + .../optimist/node_modules/wordwrap/index.js | 76 + .../node_modules/wordwrap/package.json | 63 + .../node_modules/wordwrap/test/break.js | 30 + .../node_modules/wordwrap/test/idleness.txt | 63 + .../node_modules/wordwrap/test/wrap.js | 31 + .../node_modules/optimist/package.json | 62 + .../node_modules/optimist/readme.markdown | 487 ++ .../uglify-js/node_modules/optimist/test/_.js | 71 + .../node_modules/optimist/test/_/argv.js | 2 + .../node_modules/optimist/test/_/bin.js | 3 + .../node_modules/optimist/test/parse.js | 446 ++ .../node_modules/optimist/test/usage.js | 292 + .../node_modules/amdefine/package.json | 54 - node_modules/handlebars/package.json | 59 +- node_modules/handlebars/print-script | 93 +- node_modules/handlebars/release-notes.md | 77 +- node_modules/handlebars/runtime.js | 2 +- node_modules/node-notifier/.npmignore | 4 - node_modules/node-notifier/CHANGELOG.md | 78 - node_modules/node-notifier/DECISION_FLOW.md | 18 - node_modules/node-notifier/DEPRECATED.md | 39 - node_modules/node-notifier/README.md | 293 - .../node-notifier/example/advanced.js | 12 - .../node-notifier/example/coulson.jpg | Bin 31737 -> 0 bytes node_modules/node-notifier/example/growl.png | Bin 16054 -> 0 bytes node_modules/node-notifier/example/mac.png | Bin 10495 -> 0 bytes node_modules/node-notifier/example/message.js | 14 - .../node-notifier/example/windows.png | Bin 15108 -> 0 bytes node_modules/node-notifier/index.js | 41 - node_modules/node-notifier/lib/checkGrowl.js | 20 - node_modules/node-notifier/lib/utils.js | 315 - .../node-notifier/node-notifier_flow.png | Bin 20073 -> 0 bytes .../node-notifier/node_modules/.bin/semver | 1 - .../node-notifier/node_modules/.bin/which | 1 - .../node_modules/clone/.npmignore | 1 - .../node_modules/clone/README.md | 126 - .../node-notifier/node_modules/clone/clone.js | 144 - .../node_modules/clone/package.json | 126 - .../node-notifier/node_modules/clone/test.js | 289 - .../node_modules/growly/HISTORY.md | 5 - .../node_modules/growly/README.md | 90 - .../node_modules/growly/example/bakery.js | 22 - .../node_modules/growly/example/cake.png | Bin 14813 -> 0 bytes .../node_modules/growly/example/muffin.png | Bin 16978 -> 0 bytes .../node_modules/growly/example/simple.js | 3 - .../node_modules/growly/lib/gntp.js | 199 - .../node_modules/growly/lib/growly.js | 177 - .../node_modules/growly/package.json | 49 - .../node_modules/semver/.npmignore | 1 - .../node-notifier/node_modules/semver/LICENSE | 27 - .../node_modules/semver/Makefile | 24 - .../node_modules/semver/README.md | 275 - .../node_modules/semver/bin/semver | 133 - .../node_modules/semver/foot.js.txt | 6 - .../node_modules/semver/head.js.txt | 2 - .../node_modules/semver/package.json | 54 - .../node_modules/semver/semver.browser.js | 1120 --- .../node_modules/semver/semver.browser.js.gz | Bin 7595 -> 0 bytes .../node_modules/semver/semver.js | 1124 --- .../node_modules/semver/semver.min.js | 1 - .../node_modules/semver/semver.min.js.gz | Bin 3472 -> 0 bytes .../node_modules/semver/test/amd.js | 15 - .../node_modules/semver/test/clean.js | 29 - .../node_modules/semver/test/gtr.js | 173 - .../node_modules/semver/test/index.js | 653 -- .../node_modules/semver/test/ltr.js | 181 - .../node_modules/semver/test/no-module.js | 19 - .../node_modules/shellwords/.npmignore | 1 - .../node_modules/shellwords/Cakefile | 42 - .../node_modules/shellwords/README.md | 19 - .../node_modules/shellwords/lib/shellwords.js | 57 - .../node_modules/shellwords/package.json | 40 - .../shellwords/spec/shellwords_spec.coffee | 55 - .../shellwords/src/shellwords.coffee | 53 - .../node-notifier/node_modules/which/LICENSE | 15 - .../node_modules/which/README.md | 5 - .../node_modules/which/bin/which | 14 - .../node_modules/which/package.json | 46 - .../node-notifier/node_modules/which/which.js | 99 - .../node-notifier/notifiers/balloon.js | 132 - node_modules/node-notifier/notifiers/growl.js | 66 - .../notifiers/notificationcenter.js | 76 - .../node-notifier/notifiers/notifysend.js | 88 - .../node-notifier/notifiers/toaster.js | 62 - node_modules/node-notifier/package.json | 67 - node_modules/node-notifier/test/balloon.js | 207 - .../node-notifier/test/fixture/coulson.jpg | Bin 31737 -> 0 bytes .../node-notifier/test/fixture/listAll.txt | 3 - .../node-notifier/test/fixture/removeAll.txt | 2 - node_modules/node-notifier/test/index.js | 30 - .../node-notifier/test/notify-send.js | 136 - .../node-notifier/test/terminal-notifier.js | 210 - node_modules/node-notifier/test/utils.js | 101 - .../node-notifier/vendor/notifu/notifu.exe | Bin 245248 -> 0 bytes .../node-notifier/vendor/notifu/notifu.pdb | Bin 4262912 -> 0 bytes .../node-notifier/vendor/notifu/notifu64.exe | Bin 323584 -> 0 bytes .../node-notifier/vendor/notifu/notifu64.pdb | Bin 4279296 -> 0 bytes .../terminal-notifier.app/Contents/Info.plist | 52 - .../Contents/MacOS/terminal-notifier | Bin 46324 -> 0 bytes .../terminal-notifier.app/Contents/PkgInfo | 1 - .../Contents/Resources/Terminal.icns | Bin 369386 -> 0 bytes .../Contents/Resources/en.lproj/Credits.rtf | 29 - .../Resources/en.lproj/InfoPlist.strings | Bin 92 -> 0 bytes .../Contents/Resources/en.lproj/MainMenu.nib | Bin 26188 -> 0 bytes .../Microsoft.WindowsAPICodePack.Shell.dll | Bin 542208 -> 0 bytes .../toaster/Microsoft.WindowsAPICodePack.dll | Bin 104960 -> 0 bytes .../node-notifier/vendor/toaster/toast.exe | Bin 14848 -> 0 bytes src/assets/js/app.js | 107 +- src/index.html | 12 +- test-dev-master-course | 1 - 326 files changed, 22489 insertions(+), 62159 deletions(-) delete mode 100644 node_modules/handlebars/coverage/coverage.json delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.runtime.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/base.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/ast.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/base.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/compiler.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/helpers.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/index.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/javascript-compiler.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/parser.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/printer.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/visitor.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/exception.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/index.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/runtime.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/safe-string.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/utils.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/dist/cjs/index.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/index.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/lib/index.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/lib/index.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/lib/precompiler.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/prettify.css delete mode 100644 node_modules/handlebars/coverage/lcov-report/prettify.js delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/ast.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/basic.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/blocks.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/builtins.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/data.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/env/browser.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/env/common.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/env/index.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/env/node.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/env/runner.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/env/runtime.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/helpers.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/index.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/javascript-compiler.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/parser.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/partials.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/precompiler.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/regressions.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/require.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/runtime.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/spec.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/string-params.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/subexpressions.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/tokenizer.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/track-ids.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/utils.js.html delete mode 100644 node_modules/handlebars/coverage/lcov-report/spec/whitespace-control.js.html delete mode 100644 node_modules/handlebars/coverage/lcov.info create mode 100644 node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js create mode 100644 node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js create mode 100644 node_modules/handlebars/dist/amd/handlebars/no-conflict.js create mode 100644 node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js create mode 100644 node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js create mode 100644 node_modules/handlebars/dist/cjs/handlebars/no-conflict.js create mode 100644 node_modules/handlebars/docs/compiler-api.md create mode 100644 node_modules/handlebars/lib/handlebars/compiler/code-gen.js create mode 100644 node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js create mode 100644 node_modules/handlebars/lib/handlebars/no-conflict.js rename node_modules/{node-notifier => handlebars/node_modules/optimist/node_modules/minimist}/.travis.yml (77%) rename node_modules/{node-notifier/node_modules/clone => handlebars/node_modules/optimist/node_modules/minimist}/LICENSE (67%) create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/example/parse.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/index.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/package.json create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/readme.markdown create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/bool.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/dash.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/default_bool.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/dotted.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/long.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/num.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/parse.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/parse_modified.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/short.js create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/whitespace.js delete mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/.npmignore create mode 100644 node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/LICENSE create mode 100644 node_modules/handlebars/node_modules/optimist/test/dash.js create mode 100644 node_modules/handlebars/node_modules/optimist/test/parse_modified.js create mode 100644 node_modules/handlebars/node_modules/optimist/test/short.js create mode 100644 node_modules/handlebars/node_modules/optimist/test/whitespace.js rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/.npmignore (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/.travis.yml (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/CHANGELOG.md (84%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/LICENSE (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/Makefile.dryice.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/README.md (93%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/build/assert-shim.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/build/mini-require.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/build/prefix-source-map.jsm (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/build/prefix-utils.jsm (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/build/suffix-browser.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/build/suffix-source-map.jsm (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/build/suffix-utils.jsm (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/build/test-prefix.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/build/test-suffix.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/lib/source-map.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/lib/source-map/array-set.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/lib/source-map/base64-vlq.js (97%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/lib/source-map/base64.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/lib/source-map/binary-search.js (80%) create mode 100644 node_modules/handlebars/node_modules/source-map/lib/source-map/mapping-list.js rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/lib/source-map/source-map-consumer.js (77%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/lib/source-map/source-map-generator.js (94%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/lib/source-map/source-node.js (94%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/lib/source-map/util.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/node_modules/amdefine/LICENSE (96%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/node_modules/amdefine/README.md (99%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/node_modules/amdefine/amdefine.js (97%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/node_modules/amdefine/intercept.js (100%) create mode 100644 node_modules/handlebars/node_modules/source-map/node_modules/amdefine/package.json rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/package.json (85%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/run-tests.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-api.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-array-set.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-base64-vlq.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-base64.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-binary-search.js (82%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-dog-fooding.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-source-map-consumer.js (77%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-source-map-generator.js (97%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-source-node.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/test-util.js (100%) rename node_modules/handlebars/node_modules/{uglify-js/node_modules => }/source-map/test/source-map/util.js (93%) rename node_modules/{node-notifier/node_modules/clone => handlebars/node_modules/uglify-js/node_modules/optimist}/.travis.yml (51%) rename node_modules/{node-notifier/node_modules/shellwords => handlebars/node_modules/uglify-js/node_modules/optimist}/LICENSE (88%) create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/bool.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/default_hash.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/default_singles.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/divide.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/nonopt.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/reflect.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/short.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/string.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/usage-options.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/xup.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/index.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/LICENSE create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/README.markdown create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/index.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/package.json create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/idleness.txt create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/wrap.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/package.json create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/readme.markdown create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_/argv.js create mode 100755 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_/bin.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/parse.js create mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/usage.js delete mode 100644 node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json delete mode 100644 node_modules/node-notifier/.npmignore delete mode 100644 node_modules/node-notifier/CHANGELOG.md delete mode 100644 node_modules/node-notifier/DECISION_FLOW.md delete mode 100644 node_modules/node-notifier/DEPRECATED.md delete mode 100644 node_modules/node-notifier/README.md delete mode 100644 node_modules/node-notifier/example/advanced.js delete mode 100644 node_modules/node-notifier/example/coulson.jpg delete mode 100644 node_modules/node-notifier/example/growl.png delete mode 100644 node_modules/node-notifier/example/mac.png delete mode 100644 node_modules/node-notifier/example/message.js delete mode 100644 node_modules/node-notifier/example/windows.png delete mode 100644 node_modules/node-notifier/index.js delete mode 100644 node_modules/node-notifier/lib/checkGrowl.js delete mode 100644 node_modules/node-notifier/lib/utils.js delete mode 100644 node_modules/node-notifier/node-notifier_flow.png delete mode 120000 node_modules/node-notifier/node_modules/.bin/semver delete mode 120000 node_modules/node-notifier/node_modules/.bin/which delete mode 100644 node_modules/node-notifier/node_modules/clone/.npmignore delete mode 100644 node_modules/node-notifier/node_modules/clone/README.md delete mode 100644 node_modules/node-notifier/node_modules/clone/clone.js delete mode 100644 node_modules/node-notifier/node_modules/clone/package.json delete mode 100644 node_modules/node-notifier/node_modules/clone/test.js delete mode 100644 node_modules/node-notifier/node_modules/growly/HISTORY.md delete mode 100644 node_modules/node-notifier/node_modules/growly/README.md delete mode 100644 node_modules/node-notifier/node_modules/growly/example/bakery.js delete mode 100644 node_modules/node-notifier/node_modules/growly/example/cake.png delete mode 100644 node_modules/node-notifier/node_modules/growly/example/muffin.png delete mode 100644 node_modules/node-notifier/node_modules/growly/example/simple.js delete mode 100644 node_modules/node-notifier/node_modules/growly/lib/gntp.js delete mode 100644 node_modules/node-notifier/node_modules/growly/lib/growly.js delete mode 100644 node_modules/node-notifier/node_modules/growly/package.json delete mode 100644 node_modules/node-notifier/node_modules/semver/.npmignore delete mode 100644 node_modules/node-notifier/node_modules/semver/LICENSE delete mode 100644 node_modules/node-notifier/node_modules/semver/Makefile delete mode 100644 node_modules/node-notifier/node_modules/semver/README.md delete mode 100755 node_modules/node-notifier/node_modules/semver/bin/semver delete mode 100644 node_modules/node-notifier/node_modules/semver/foot.js.txt delete mode 100644 node_modules/node-notifier/node_modules/semver/head.js.txt delete mode 100644 node_modules/node-notifier/node_modules/semver/package.json delete mode 100644 node_modules/node-notifier/node_modules/semver/semver.browser.js delete mode 100644 node_modules/node-notifier/node_modules/semver/semver.browser.js.gz delete mode 100644 node_modules/node-notifier/node_modules/semver/semver.js delete mode 100644 node_modules/node-notifier/node_modules/semver/semver.min.js delete mode 100644 node_modules/node-notifier/node_modules/semver/semver.min.js.gz delete mode 100644 node_modules/node-notifier/node_modules/semver/test/amd.js delete mode 100644 node_modules/node-notifier/node_modules/semver/test/clean.js delete mode 100644 node_modules/node-notifier/node_modules/semver/test/gtr.js delete mode 100644 node_modules/node-notifier/node_modules/semver/test/index.js delete mode 100644 node_modules/node-notifier/node_modules/semver/test/ltr.js delete mode 100644 node_modules/node-notifier/node_modules/semver/test/no-module.js delete mode 100644 node_modules/node-notifier/node_modules/shellwords/.npmignore delete mode 100644 node_modules/node-notifier/node_modules/shellwords/Cakefile delete mode 100644 node_modules/node-notifier/node_modules/shellwords/README.md delete mode 100644 node_modules/node-notifier/node_modules/shellwords/lib/shellwords.js delete mode 100644 node_modules/node-notifier/node_modules/shellwords/package.json delete mode 100644 node_modules/node-notifier/node_modules/shellwords/spec/shellwords_spec.coffee delete mode 100644 node_modules/node-notifier/node_modules/shellwords/src/shellwords.coffee delete mode 100644 node_modules/node-notifier/node_modules/which/LICENSE delete mode 100644 node_modules/node-notifier/node_modules/which/README.md delete mode 100755 node_modules/node-notifier/node_modules/which/bin/which delete mode 100644 node_modules/node-notifier/node_modules/which/package.json delete mode 100644 node_modules/node-notifier/node_modules/which/which.js delete mode 100644 node_modules/node-notifier/notifiers/balloon.js delete mode 100644 node_modules/node-notifier/notifiers/growl.js delete mode 100644 node_modules/node-notifier/notifiers/notificationcenter.js delete mode 100644 node_modules/node-notifier/notifiers/notifysend.js delete mode 100644 node_modules/node-notifier/notifiers/toaster.js delete mode 100644 node_modules/node-notifier/package.json delete mode 100644 node_modules/node-notifier/test/balloon.js delete mode 100644 node_modules/node-notifier/test/fixture/coulson.jpg delete mode 100644 node_modules/node-notifier/test/fixture/listAll.txt delete mode 100644 node_modules/node-notifier/test/fixture/removeAll.txt delete mode 100644 node_modules/node-notifier/test/index.js delete mode 100644 node_modules/node-notifier/test/notify-send.js delete mode 100644 node_modules/node-notifier/test/terminal-notifier.js delete mode 100644 node_modules/node-notifier/test/utils.js delete mode 100755 node_modules/node-notifier/vendor/notifu/notifu.exe delete mode 100644 node_modules/node-notifier/vendor/notifu/notifu.pdb delete mode 100755 node_modules/node-notifier/vendor/notifu/notifu64.exe delete mode 100644 node_modules/node-notifier/vendor/notifu/notifu64.pdb delete mode 100644 node_modules/node-notifier/vendor/terminal-notifier.app/Contents/Info.plist delete mode 100755 node_modules/node-notifier/vendor/terminal-notifier.app/Contents/MacOS/terminal-notifier delete mode 100644 node_modules/node-notifier/vendor/terminal-notifier.app/Contents/PkgInfo delete mode 100644 node_modules/node-notifier/vendor/terminal-notifier.app/Contents/Resources/Terminal.icns delete mode 100644 node_modules/node-notifier/vendor/terminal-notifier.app/Contents/Resources/en.lproj/Credits.rtf delete mode 100644 node_modules/node-notifier/vendor/terminal-notifier.app/Contents/Resources/en.lproj/InfoPlist.strings delete mode 100644 node_modules/node-notifier/vendor/terminal-notifier.app/Contents/Resources/en.lproj/MainMenu.nib delete mode 100755 node_modules/node-notifier/vendor/toaster/Microsoft.WindowsAPICodePack.Shell.dll delete mode 100755 node_modules/node-notifier/vendor/toaster/Microsoft.WindowsAPICodePack.dll delete mode 100755 node_modules/node-notifier/vendor/toaster/toast.exe delete mode 100644 test-dev-master-course diff --git a/node_modules/handlebars/.npmignore b/node_modules/handlebars/.npmignore index 366b454..f10592c 100644 --- a/node_modules/handlebars/.npmignore +++ b/node_modules/handlebars/.npmignore @@ -1,7 +1,7 @@ .DS_Store .gitignore .rvmrc -.jshintrc +.eslintrc .travis.yml .rspec Gemfile @@ -10,9 +10,11 @@ Rakefile Gruntfile.js *.gemspec *.nuspec +*.log bench/* configurations/* components/* +coverage/* dist/cdnjs/* dist/components/* spec/* diff --git a/node_modules/handlebars/CONTRIBUTING.md b/node_modules/handlebars/CONTRIBUTING.md index c6db72a..b84fdb0 100644 --- a/node_modules/handlebars/CONTRIBUTING.md +++ b/node_modules/handlebars/CONTRIBUTING.md @@ -28,6 +28,8 @@ To build Handlebars.js you'll need a few things installed. * Node.js * [Grunt](http://gruntjs.com/getting-started) +Before building, you need to make sure that the Git submodule `spec/mustache` is included (i.e. the directory `spec/mustache` should not be empty). To include it, if using Git version 1.6.5 or newer, use `git clone --recursive` rather than `git clone`. Or, if you already cloned without `--recursive`, use `git submodule update --init`. + Project dependencies may be installed via `npm install`. To build Handlebars.js from scratch, you'll want to run `grunt` @@ -75,4 +77,4 @@ After this point the handlebars site needs to be updated to point to the new ver [generator-release]: https://github.com/walmartlabs/generator-release [pull-request]: https://github.com/wycats/handlebars.js/pull/new/master [issue]: https://github.com/wycats/handlebars.js/issues/new -[jsfiddle]: http://jsfiddle.net/9D88g/25/ +[jsfiddle]: http://jsfiddle.net/9D88g/26/ diff --git a/node_modules/handlebars/FAQ.md b/node_modules/handlebars/FAQ.md index 0bd0997..108e839 100644 --- a/node_modules/handlebars/FAQ.md +++ b/node_modules/handlebars/FAQ.md @@ -57,4 +57,4 @@ The other option is to load the `handlebars.runtime.js` UMD build, which might not require path configuration and exposes the library as both the module root and the `default` field for compatibility. - If not using ES6 transpilers or accessing submodules in the build the former option should be sufficent for most use cases. + If not using ES6 transpilers or accessing submodules in the build the former option should be sufficient for most use cases. diff --git a/node_modules/handlebars/README.markdown b/node_modules/handlebars/README.markdown index 7755286..d6aa6bd 100644 --- a/node_modules/handlebars/README.markdown +++ b/node_modules/handlebars/README.markdown @@ -16,6 +16,8 @@ Installing ---------- Installing Handlebars is easy. Simply download the package [from the official site](http://handlebarsjs.com/) or the [bower repository][bower-repo] and add it to your web pages (you should usually use the most recent version). +For web browsers, a free CDN is available at [jsDelivr](http://www.jsdelivr.com/#!handlebarsjs). Advanced usage, such as [version aliasing & concocting](https://github.com/jsdelivr/jsdelivr#usage), is available. + Alternatively, if you prefer having the latest version of handlebars from the 'master' branch, passing builds of the 'master' branch are automatically published to S3. You may download the latest passing master build by grabbing @@ -108,7 +110,7 @@ templates easier and also changes a tiny detail of how partials work. ### Paths Handlebars.js supports an extended expression syntax that we call paths. -Paths are made up of typical expressions and . characters. Expressions +Paths are made up of typical expressions and `.` characters. Expressions allow you to not only display data from the current context, but to display data from contexts that are descendants and ancestors of the current context. @@ -132,7 +134,7 @@ into the person object you could still display the company's name with an expression like `{{../company.name}}`, so: ``` -{{#with person}}{{name}} - {{../company.name}}{{/person}} +{{#with person}}{{name}} - {{../company.name}}{{/with}} ``` would render: @@ -195,7 +197,7 @@ template(data); ``` Whenever the block helper is called it is given one or more parameters, -any arguments that are passed in the helper in the call and an `options` +any arguments that are passed into the helper in the call, and an `options` object containing the `fn` function which executes the block's child. The block's current context may be accessed through `this`. @@ -234,6 +236,35 @@ template(data); // ``` +Partials can also accept parameters + +```js +var source = "
{{> roster rosterProperties people=listOfPeople}}
"; + +Handlebars.registerPartial('roster', '

{{rosterName}}

{{#people}}{{id}}: {{name}}{{/people}}') +var template = Handlebars.compile(source); + +var data = { + "listOfPeople": [ + { "name": "Alan", "id": 1 }, + { "name": "Yehuda", "id": 2 } + ], + "rosterProperties": { + "rosterName": "Cool People" + } +}; + +template(data); + +// Should render: +//
+//

Cool People

+// 1: Alan +// 2: Yehuda +//
+ +``` + ### Comments You can add comments to your templates with the following syntax: @@ -364,6 +395,7 @@ Handlebars in the Wild and [@doowb](https://github.com/doowb), is a static site generator that uses Handlebars.js as its template engine. * [CoSchedule](http://coschedule.com) An editorial calendar for WordPress that uses Handlebars.js +* [dashbars](https://github.com/pismute/dashbars) A modern helper library for Handlebars.js. * [Ember.js](http://www.emberjs.com) makes Handlebars.js the primary way to structure your views, also with automatic data binding support. * [Ghost](https://ghost.org/) Just a blogging platform. @@ -371,6 +403,7 @@ Handlebars in the Wild from Les Hill (@leshill). * [handlebars-helpers](https://github.com/assemble/handlebars-helpers) is an extensive library with 100+ handlebars helpers. +* [handlebars-layouts](https://github.com/shannonmoeller/handlebars-layouts) is a set of helpers which implement extendible and embeddable layout blocks as seen in other popular templating languages. * [hbs](http://github.com/donpark/hbs): An Express.js view engine adapter for Handlebars.js, from Don Park. * [koa-hbs](https://github.com/jwilm/koa-hbs): [koa](https://github.com/koajs/koa) generator based diff --git a/node_modules/handlebars/bin/handlebars b/node_modules/handlebars/bin/handlebars index 4ea3296..4ed98b3 100755 --- a/node_modules/handlebars/bin/handlebars +++ b/node_modules/handlebars/bin/handlebars @@ -1,12 +1,16 @@ #!/usr/bin/env node var optimist = require('optimist') - .usage('Precompile handlebar templates.\nUsage: $0 template...', { + .usage('Precompile handlebar templates.\nUsage: $0 [template|directory]...', { 'f': { 'type': 'string', 'description': 'Output File', 'alias': 'output' }, + 'map': { + 'type': 'string', + 'description': 'Source Map File' + }, 'a': { 'type': 'boolean', 'description': 'Exports amd style (require.js)', @@ -80,6 +84,11 @@ var optimist = require('optimist') 'type': 'boolean', 'description': 'Prints the current compiler version', 'alias': 'version' + }, + + 'help': { + 'type': 'boolean', + 'description': 'Outputs this message' } }) @@ -89,7 +98,14 @@ var optimist = require('optimist') } }); + var argv = optimist.argv; argv.templates = argv._; delete argv._; -return require('../lib/precompiler').cli(argv); + +if (argv.help || (!argv.templates.length && !argv.version)) { + optimist.showHelp(); + return; +} + +return require('../dist/cjs/precompiler').cli(argv); diff --git a/node_modules/handlebars/coverage/coverage.json b/node_modules/handlebars/coverage/coverage.json deleted file mode 100644 index 2f3d171..0000000 --- a/node_modules/handlebars/coverage/coverage.json +++ /dev/null @@ -1 +0,0 @@ -{"/Users/kpdecker/dev/kpdecker/handlebars.js/lib/index.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/lib/index.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":2,"10":2,"11":2,"12":1,"13":1},"b":{"1":[1,0],"2":[1,1]},"f":{"1":2},"fnMap":{"1":{"name":"(anonymous_1)","line":19,"loc":{"start":{"line":19,"column":18},"end":{"line":19,"column":45}}}},"statementMap":{"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":62}},"2":{"start":{"line":8,"column":0},"end":{"line":8,"column":83}},"3":{"start":{"line":10,"column":0},"end":{"line":10,"column":65}},"4":{"start":{"line":11,"column":0},"end":{"line":11,"column":47}},"5":{"start":{"line":12,"column":0},"end":{"line":12,"column":33}},"6":{"start":{"line":14,"column":0},"end":{"line":14,"column":28}},"7":{"start":{"line":18,"column":0},"end":{"line":26,"column":1}},"8":{"start":{"line":19,"column":2},"end":{"line":23,"column":4}},"9":{"start":{"line":20,"column":4},"end":{"line":20,"column":27}},"10":{"start":{"line":21,"column":4},"end":{"line":21,"column":59}},"11":{"start":{"line":22,"column":4},"end":{"line":22,"column":56}},"12":{"start":{"line":24,"column":2},"end":{"line":24,"column":48}},"13":{"start":{"line":25,"column":2},"end":{"line":25,"column":41}}},"branchMap":{"1":{"line":18,"type":"if","locations":[{"start":{"line":18,"column":0},"end":{"line":18,"column":0}},{"start":{"line":18,"column":0},"end":{"line":18,"column":0},"skip":true}]},"2":{"line":18,"type":"binary-expr","locations":[{"start":{"line":18,"column":4},"end":{"line":18,"column":34}},{"start":{"line":18,"column":38},"end":{"line":18,"column":56}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":504,"12":504,"13":82,"14":504,"15":409,"16":504,"17":504,"18":504,"19":504,"20":504,"21":504,"22":1,"23":1,"24":1,"25":1},"b":{},"f":{"1":504,"2":82,"3":409},"fnMap":{"1":{"name":"(anonymous_1)","line":15,"loc":{"start":{"line":15,"column":13},"end":{"line":15,"column":24}}},"2":{"name":"(anonymous_2)","line":18,"loc":{"start":{"line":18,"column":15},"end":{"line":18,"column":40}}},"3":{"name":"(anonymous_3)","line":21,"loc":{"start":{"line":21,"column":18},"end":{"line":21,"column":44}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":60}},"2":{"start":{"line":6,"column":0},"end":{"line":6,"column":58}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":58}},"4":{"start":{"line":8,"column":0},"end":{"line":8,"column":56}},"5":{"start":{"line":9,"column":0},"end":{"line":9,"column":66}},"6":{"start":{"line":10,"column":0},"end":{"line":10,"column":64}},"7":{"start":{"line":11,"column":0},"end":{"line":11,"column":70}},"8":{"start":{"line":12,"column":0},"end":{"line":12,"column":89}},"9":{"start":{"line":14,"column":0},"end":{"line":14,"column":32}},"10":{"start":{"line":15,"column":0},"end":{"line":32,"column":2}},"11":{"start":{"line":16,"column":2},"end":{"line":16,"column":21}},"12":{"start":{"line":18,"column":2},"end":{"line":20,"column":4}},"13":{"start":{"line":19,"column":4},"end":{"line":19,"column":39}},"14":{"start":{"line":21,"column":2},"end":{"line":23,"column":4}},"15":{"start":{"line":22,"column":4},"end":{"line":22,"column":42}},"16":{"start":{"line":25,"column":2},"end":{"line":25,"column":15}},"17":{"start":{"line":26,"column":2},"end":{"line":26,"column":25}},"18":{"start":{"line":27,"column":2},"end":{"line":27,"column":45}},"19":{"start":{"line":28,"column":2},"end":{"line":28,"column":21}},"20":{"start":{"line":29,"column":2},"end":{"line":29,"column":19}},"21":{"start":{"line":31,"column":2},"end":{"line":31,"column":12}},"22":{"start":{"line":34,"column":0},"end":{"line":34,"column":22}},"23":{"start":{"line":35,"column":0},"end":{"line":35,"column":27}},"24":{"start":{"line":37,"column":0},"end":{"line":37,"column":35}},"25":{"start":{"line":39,"column":0},"end":{"line":39,"column":32}}},"branchMap":{}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars.runtime.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars.runtime.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":505,"8":505,"9":505,"10":505,"11":505,"12":505,"13":505,"14":505,"15":474,"16":505,"17":1,"18":1,"19":1,"20":1},"b":{},"f":{"1":505,"2":474},"fnMap":{"1":{"name":"(anonymous_1)","line":13,"loc":{"start":{"line":13,"column":13},"end":{"line":13,"column":24}}},"2":{"name":"(anonymous_2)","line":23,"loc":{"start":{"line":23,"column":16},"end":{"line":23,"column":31}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":40}},"2":{"start":{"line":7,"column":0},"end":{"line":7,"column":64}},"3":{"start":{"line":8,"column":0},"end":{"line":8,"column":61}},"4":{"start":{"line":9,"column":0},"end":{"line":9,"column":42}},"5":{"start":{"line":10,"column":0},"end":{"line":10,"column":46}},"6":{"start":{"line":13,"column":0},"end":{"line":28,"column":2}},"7":{"start":{"line":14,"column":2},"end":{"line":14,"column":44}},"8":{"start":{"line":16,"column":2},"end":{"line":16,"column":25}},"9":{"start":{"line":17,"column":2},"end":{"line":17,"column":29}},"10":{"start":{"line":18,"column":2},"end":{"line":18,"column":27}},"11":{"start":{"line":19,"column":2},"end":{"line":19,"column":19}},"12":{"start":{"line":20,"column":2},"end":{"line":20,"column":47}},"13":{"start":{"line":22,"column":2},"end":{"line":22,"column":18}},"14":{"start":{"line":23,"column":2},"end":{"line":25,"column":4}},"15":{"start":{"line":24,"column":4},"end":{"line":24,"column":38}},"16":{"start":{"line":27,"column":2},"end":{"line":27,"column":12}},"17":{"start":{"line":30,"column":0},"end":{"line":30,"column":26}},"18":{"start":{"line":31,"column":0},"end":{"line":31,"column":27}},"19":{"start":{"line":33,"column":0},"end":{"line":33,"column":35}},"20":{"start":{"line":35,"column":0},"end":{"line":35,"column":32}}},"branchMap":{}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/base.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/base.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":505,"12":505,"13":505,"14":1,"15":1,"16":4059,"17":2,"18":1,"19":1,"20":4057,"21":1,"22":2,"23":1,"24":1,"25":1,"26":1,"27":505,"28":24,"29":23,"30":1,"31":505,"32":145,"33":145,"34":26,"35":119,"36":40,"37":79,"38":57,"39":49,"40":1,"41":49,"42":8,"43":22,"44":3,"45":3,"46":3,"47":22,"48":505,"49":83,"50":1,"51":82,"52":82,"53":82,"54":82,"55":5,"56":82,"57":1,"58":82,"59":76,"60":82,"61":81,"62":75,"63":173,"64":160,"65":160,"66":160,"67":160,"68":5,"69":173,"70":6,"71":13,"72":12,"73":10,"74":10,"75":10,"76":10,"77":3,"78":12,"79":12,"80":82,"81":4,"82":82,"83":505,"84":83,"85":4,"86":83,"87":44,"88":39,"89":505,"90":2,"91":505,"92":9,"93":1,"94":9,"95":9,"96":8,"97":3,"98":3,"99":3,"100":8,"101":1,"102":505,"103":5,"104":5,"105":505,"106":4,"107":1,"108":3,"109":2,"110":2,"111":1,"112":1,"113":1,"114":1,"115":1,"116":109,"117":109,"118":109,"119":1},"b":{"1":[505,505],"2":[505,505],"3":[2,4057],"4":[1,1],"5":[1,1],"6":[23,1],"7":[26,119],"8":[40,79],"9":[119,93],"10":[57,22],"11":[49,8],"12":[1,48],"13":[3,19],"14":[22,22],"15":[1,82],"16":[5,77],"17":[82,76],"18":[1,81],"19":[76,6],"20":[81,1],"21":[82,81],"22":[75,6],"23":[160,13],"24":[5,155],"25":[12,1],"26":[10,2],"27":[3,7],"28":[4,78],"29":[4,79],"30":[44,39],"31":[83,82,40],"32":[1,8],"33":[8,1],"34":[3,5],"35":[8,8],"36":[3,2],"37":[5,5],"38":[4,2],"39":[2,1],"40":[1,1],"41":[2,2]},"f":{"1":505,"2":4059,"3":1,"4":2,"5":1,"6":505,"7":24,"8":145,"9":83,"10":83,"11":2,"12":9,"13":5,"14":4,"15":3,"16":109},"fnMap":{"1":{"name":"HandlebarsEnvironment","line":22,"loc":{"start":{"line":22,"column":0},"end":{"line":22,"column":50}}},"2":{"name":"(anonymous_2)","line":35,"loc":{"start":{"line":35,"column":18},"end":{"line":35,"column":37}}},"3":{"name":"(anonymous_3)","line":43,"loc":{"start":{"line":43,"column":20},"end":{"line":43,"column":35}}},"4":{"name":"(anonymous_4)","line":47,"loc":{"start":{"line":47,"column":19},"end":{"line":47,"column":43}}},"5":{"name":"(anonymous_5)","line":54,"loc":{"start":{"line":54,"column":21},"end":{"line":54,"column":36}}},"6":{"name":"registerDefaultHelpers","line":59,"loc":{"start":{"line":59,"column":0},"end":{"line":59,"column":42}}},"7":{"name":"(anonymous_7)","line":60,"loc":{"start":{"line":60,"column":43},"end":{"line":60,"column":75}}},"8":{"name":"(anonymous_8)","line":70,"loc":{"start":{"line":70,"column":48},"end":{"line":70,"column":75}}},"9":{"name":"(anonymous_9)","line":99,"loc":{"start":{"line":99,"column":34},"end":{"line":99,"column":61}}},"10":{"name":"(anonymous_10)","line":158,"loc":{"start":{"line":158,"column":32},"end":{"line":158,"column":63}}},"11":{"name":"(anonymous_11)","line":171,"loc":{"start":{"line":171,"column":36},"end":{"line":171,"column":67}}},"12":{"name":"(anonymous_12)","line":175,"loc":{"start":{"line":175,"column":34},"end":{"line":175,"column":61}}},"13":{"name":"(anonymous_13)","line":193,"loc":{"start":{"line":193,"column":33},"end":{"line":193,"column":60}}},"14":{"name":"(anonymous_14)","line":198,"loc":{"start":{"line":198,"column":36},"end":{"line":198,"column":57}}},"15":{"name":"(anonymous_15)","line":214,"loc":{"start":{"line":214,"column":7},"end":{"line":214,"column":32}}},"16":{"name":"(anonymous_16)","line":226,"loc":{"start":{"line":226,"column":18},"end":{"line":226,"column":35}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":31}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":50}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":22}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":26}},"5":{"start":{"line":6,"column":26},"end":{"line":6,"column":52}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":46}},"7":{"start":{"line":8,"column":0},"end":{"line":15,"column":2}},"8":{"start":{"line":16,"column":0},"end":{"line":16,"column":44}},"9":{"start":{"line":17,"column":0},"end":{"line":20,"column":35}},"10":{"start":{"line":22,"column":0},"end":{"line":27,"column":1}},"11":{"start":{"line":23,"column":2},"end":{"line":23,"column":31}},"12":{"start":{"line":24,"column":2},"end":{"line":24,"column":33}},"13":{"start":{"line":26,"column":2},"end":{"line":26,"column":31}},"14":{"start":{"line":29,"column":0},"end":{"line":29,"column":54}},"15":{"start":{"line":29,"column":54},"end":{"line":57,"column":2}},"16":{"start":{"line":36,"column":4},"end":{"line":41,"column":5}},"17":{"start":{"line":37,"column":6},"end":{"line":37,"column":81}},"18":{"start":{"line":37,"column":16},"end":{"line":37,"column":79}},"19":{"start":{"line":38,"column":6},"end":{"line":38,"column":39}},"20":{"start":{"line":40,"column":6},"end":{"line":40,"column":30}},"21":{"start":{"line":44,"column":4},"end":{"line":44,"column":30}},"22":{"start":{"line":48,"column":4},"end":{"line":52,"column":5}},"23":{"start":{"line":49,"column":6},"end":{"line":49,"column":41}},"24":{"start":{"line":51,"column":6},"end":{"line":51,"column":36}},"25":{"start":{"line":55,"column":4},"end":{"line":55,"column":31}},"26":{"start":{"line":59,"column":0},"end":{"line":201,"column":1}},"27":{"start":{"line":60,"column":2},"end":{"line":68,"column":5}},"28":{"start":{"line":61,"column":4},"end":{"line":67,"column":5}},"29":{"start":{"line":63,"column":6},"end":{"line":63,"column":23}},"30":{"start":{"line":66,"column":6},"end":{"line":66,"column":90}},"31":{"start":{"line":70,"column":2},"end":{"line":97,"column":5}},"32":{"start":{"line":71,"column":4},"end":{"line":72,"column":24}},"33":{"start":{"line":74,"column":4},"end":{"line":96,"column":5}},"34":{"start":{"line":75,"column":6},"end":{"line":75,"column":22}},"35":{"start":{"line":76,"column":11},"end":{"line":96,"column":5}},"36":{"start":{"line":77,"column":6},"end":{"line":77,"column":27}},"37":{"start":{"line":78,"column":11},"end":{"line":96,"column":5}},"38":{"start":{"line":79,"column":6},"end":{"line":87,"column":7}},"39":{"start":{"line":80,"column":8},"end":{"line":82,"column":9}},"40":{"start":{"line":81,"column":10},"end":{"line":81,"column":39}},"41":{"start":{"line":84,"column":8},"end":{"line":84,"column":55}},"42":{"start":{"line":86,"column":8},"end":{"line":86,"column":29}},"43":{"start":{"line":89,"column":6},"end":{"line":93,"column":7}},"44":{"start":{"line":90,"column":8},"end":{"line":90,"column":45}},"45":{"start":{"line":91,"column":8},"end":{"line":91,"column":91}},"46":{"start":{"line":92,"column":8},"end":{"line":92,"column":31}},"47":{"start":{"line":95,"column":6},"end":{"line":95,"column":34}},"48":{"start":{"line":99,"column":2},"end":{"line":156,"column":5}},"49":{"start":{"line":100,"column":4},"end":{"line":102,"column":5}},"50":{"start":{"line":101,"column":6},"end":{"line":101,"column":57}},"51":{"start":{"line":104,"column":4},"end":{"line":104,"column":51}},"52":{"start":{"line":105,"column":4},"end":{"line":105,"column":30}},"53":{"start":{"line":107,"column":4},"end":{"line":107,"column":20}},"54":{"start":{"line":108,"column":4},"end":{"line":110,"column":5}},"55":{"start":{"line":109,"column":6},"end":{"line":109,"column":92}},"56":{"start":{"line":112,"column":4},"end":{"line":112,"column":62}},"57":{"start":{"line":112,"column":31},"end":{"line":112,"column":60}},"58":{"start":{"line":114,"column":4},"end":{"line":116,"column":5}},"59":{"start":{"line":115,"column":6},"end":{"line":115,"column":39}},"60":{"start":{"line":118,"column":4},"end":{"line":149,"column":5}},"61":{"start":{"line":119,"column":6},"end":{"line":148,"column":7}},"62":{"start":{"line":120,"column":8},"end":{"line":131,"column":9}},"63":{"start":{"line":121,"column":10},"end":{"line":129,"column":11}},"64":{"start":{"line":122,"column":12},"end":{"line":122,"column":27}},"65":{"start":{"line":123,"column":12},"end":{"line":123,"column":35}},"66":{"start":{"line":124,"column":12},"end":{"line":124,"column":52}},"67":{"start":{"line":126,"column":12},"end":{"line":128,"column":13}},"68":{"start":{"line":127,"column":14},"end":{"line":127,"column":49}},"69":{"start":{"line":130,"column":10},"end":{"line":130,"column":53}},"70":{"start":{"line":133,"column":8},"end":{"line":147,"column":9}},"71":{"start":{"line":134,"column":10},"end":{"line":146,"column":11}},"72":{"start":{"line":135,"column":12},"end":{"line":143,"column":13}},"73":{"start":{"line":136,"column":14},"end":{"line":136,"column":29}},"74":{"start":{"line":137,"column":14},"end":{"line":137,"column":29}},"75":{"start":{"line":138,"column":14},"end":{"line":138,"column":37}},"76":{"start":{"line":140,"column":14},"end":{"line":142,"column":15}},"77":{"start":{"line":141,"column":16},"end":{"line":141,"column":53}},"78":{"start":{"line":144,"column":12},"end":{"line":144,"column":55}},"79":{"start":{"line":145,"column":12},"end":{"line":145,"column":16}},"80":{"start":{"line":151,"column":4},"end":{"line":153,"column":5}},"81":{"start":{"line":152,"column":6},"end":{"line":152,"column":26}},"82":{"start":{"line":155,"column":4},"end":{"line":155,"column":15}},"83":{"start":{"line":158,"column":2},"end":{"line":169,"column":5}},"84":{"start":{"line":159,"column":4},"end":{"line":159,"column":74}},"85":{"start":{"line":159,"column":35},"end":{"line":159,"column":72}},"86":{"start":{"line":164,"column":4},"end":{"line":168,"column":5}},"87":{"start":{"line":165,"column":6},"end":{"line":165,"column":35}},"88":{"start":{"line":167,"column":6},"end":{"line":167,"column":30}},"89":{"start":{"line":171,"column":2},"end":{"line":173,"column":5}},"90":{"start":{"line":172,"column":4},"end":{"line":172,"column":122}},"91":{"start":{"line":175,"column":2},"end":{"line":191,"column":5}},"92":{"start":{"line":176,"column":4},"end":{"line":176,"column":62}},"93":{"start":{"line":176,"column":31},"end":{"line":176,"column":60}},"94":{"start":{"line":178,"column":4},"end":{"line":178,"column":24}},"95":{"start":{"line":180,"column":4},"end":{"line":190,"column":5}},"96":{"start":{"line":181,"column":6},"end":{"line":185,"column":7}},"97":{"start":{"line":182,"column":8},"end":{"line":182,"column":45}},"98":{"start":{"line":183,"column":8},"end":{"line":183,"column":93}},"99":{"start":{"line":184,"column":8},"end":{"line":184,"column":30}},"100":{"start":{"line":187,"column":6},"end":{"line":187,"column":34}},"101":{"start":{"line":189,"column":6},"end":{"line":189,"column":35}},"102":{"start":{"line":193,"column":2},"end":{"line":196,"column":5}},"103":{"start":{"line":194,"column":4},"end":{"line":194,"column":98}},"104":{"start":{"line":195,"column":4},"end":{"line":195,"column":33}},"105":{"start":{"line":198,"column":2},"end":{"line":200,"column":5}},"106":{"start":{"line":199,"column":4},"end":{"line":199,"column":29}},"107":{"start":{"line":203,"column":0},"end":{"line":222,"column":2}},"108":{"start":{"line":215,"column":4},"end":{"line":220,"column":5}},"109":{"start":{"line":216,"column":6},"end":{"line":216,"column":43}},"110":{"start":{"line":217,"column":6},"end":{"line":219,"column":7}},"111":{"start":{"line":218,"column":8},"end":{"line":218,"column":47}},"112":{"start":{"line":223,"column":0},"end":{"line":223,"column":24}},"113":{"start":{"line":224,"column":0},"end":{"line":224,"column":21}},"114":{"start":{"line":225,"column":0},"end":{"line":225,"column":18}},"115":{"start":{"line":226,"column":0},"end":{"line":230,"column":2}},"116":{"start":{"line":227,"column":2},"end":{"line":227,"column":39}},"117":{"start":{"line":228,"column":2},"end":{"line":228,"column":25}},"118":{"start":{"line":229,"column":2},"end":{"line":229,"column":15}},"119":{"start":{"line":231,"column":0},"end":{"line":231,"column":34}}},"branchMap":{"1":{"line":23,"type":"binary-expr","locations":[{"start":{"line":23,"column":17},"end":{"line":23,"column":24}},{"start":{"line":23,"column":28},"end":{"line":23,"column":30}}]},"2":{"line":24,"type":"binary-expr","locations":[{"start":{"line":24,"column":18},"end":{"line":24,"column":26}},{"start":{"line":24,"column":30},"end":{"line":24,"column":32}}]},"3":{"line":36,"type":"if","locations":[{"start":{"line":36,"column":4},"end":{"line":36,"column":4}},{"start":{"line":36,"column":4},"end":{"line":36,"column":4}}]},"4":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":6},"end":{"line":37,"column":6}},{"start":{"line":37,"column":6},"end":{"line":37,"column":6}}]},"5":{"line":48,"type":"if","locations":[{"start":{"line":48,"column":4},"end":{"line":48,"column":4}},{"start":{"line":48,"column":4},"end":{"line":48,"column":4}}]},"6":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":4},"end":{"line":61,"column":4}},{"start":{"line":61,"column":4},"end":{"line":61,"column":4}}]},"7":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":4},"end":{"line":74,"column":4}},{"start":{"line":74,"column":4},"end":{"line":74,"column":4}}]},"8":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":11},"end":{"line":76,"column":11}},{"start":{"line":76,"column":11},"end":{"line":76,"column":11}}]},"9":{"line":76,"type":"binary-expr","locations":[{"start":{"line":76,"column":14},"end":{"line":76,"column":31}},{"start":{"line":76,"column":35},"end":{"line":76,"column":50}}]},"10":{"line":78,"type":"if","locations":[{"start":{"line":78,"column":11},"end":{"line":78,"column":11}},{"start":{"line":78,"column":11},"end":{"line":78,"column":11}}]},"11":{"line":79,"type":"if","locations":[{"start":{"line":79,"column":6},"end":{"line":79,"column":6}},{"start":{"line":79,"column":6},"end":{"line":79,"column":6}}]},"12":{"line":80,"type":"if","locations":[{"start":{"line":80,"column":8},"end":{"line":80,"column":8}},{"start":{"line":80,"column":8},"end":{"line":80,"column":8}}]},"13":{"line":89,"type":"if","locations":[{"start":{"line":89,"column":6},"end":{"line":89,"column":6}},{"start":{"line":89,"column":6},"end":{"line":89,"column":6}}]},"14":{"line":89,"type":"binary-expr","locations":[{"start":{"line":89,"column":10},"end":{"line":89,"column":22}},{"start":{"line":89,"column":26},"end":{"line":89,"column":37}}]},"15":{"line":100,"type":"if","locations":[{"start":{"line":100,"column":4},"end":{"line":100,"column":4}},{"start":{"line":100,"column":4},"end":{"line":100,"column":4}}]},"16":{"line":108,"type":"if","locations":[{"start":{"line":108,"column":4},"end":{"line":108,"column":4}},{"start":{"line":108,"column":4},"end":{"line":108,"column":4}}]},"17":{"line":108,"type":"binary-expr","locations":[{"start":{"line":108,"column":8},"end":{"line":108,"column":20}},{"start":{"line":108,"column":24},"end":{"line":108,"column":35}}]},"18":{"line":112,"type":"if","locations":[{"start":{"line":112,"column":4},"end":{"line":112,"column":4}},{"start":{"line":112,"column":4},"end":{"line":112,"column":4}}]},"19":{"line":114,"type":"if","locations":[{"start":{"line":114,"column":4},"end":{"line":114,"column":4}},{"start":{"line":114,"column":4},"end":{"line":114,"column":4}}]},"20":{"line":118,"type":"if","locations":[{"start":{"line":118,"column":4},"end":{"line":118,"column":4}},{"start":{"line":118,"column":4},"end":{"line":118,"column":4}}]},"21":{"line":118,"type":"binary-expr","locations":[{"start":{"line":118,"column":7},"end":{"line":118,"column":14}},{"start":{"line":118,"column":18},"end":{"line":118,"column":45}}]},"22":{"line":119,"type":"if","locations":[{"start":{"line":119,"column":6},"end":{"line":119,"column":6}},{"start":{"line":119,"column":6},"end":{"line":119,"column":6}}]},"23":{"line":121,"type":"if","locations":[{"start":{"line":121,"column":10},"end":{"line":121,"column":10}},{"start":{"line":121,"column":10},"end":{"line":121,"column":10}}]},"24":{"line":126,"type":"if","locations":[{"start":{"line":126,"column":12},"end":{"line":126,"column":12}},{"start":{"line":126,"column":12},"end":{"line":126,"column":12}}]},"25":{"line":134,"type":"if","locations":[{"start":{"line":134,"column":10},"end":{"line":134,"column":10}},{"start":{"line":134,"column":10},"end":{"line":134,"column":10}}]},"26":{"line":135,"type":"if","locations":[{"start":{"line":135,"column":12},"end":{"line":135,"column":12}},{"start":{"line":135,"column":12},"end":{"line":135,"column":12}}]},"27":{"line":140,"type":"if","locations":[{"start":{"line":140,"column":14},"end":{"line":140,"column":14}},{"start":{"line":140,"column":14},"end":{"line":140,"column":14}}]},"28":{"line":151,"type":"if","locations":[{"start":{"line":151,"column":4},"end":{"line":151,"column":4}},{"start":{"line":151,"column":4},"end":{"line":151,"column":4}}]},"29":{"line":159,"type":"if","locations":[{"start":{"line":159,"column":4},"end":{"line":159,"column":4}},{"start":{"line":159,"column":4},"end":{"line":159,"column":4}}]},"30":{"line":164,"type":"if","locations":[{"start":{"line":164,"column":4},"end":{"line":164,"column":4}},{"start":{"line":164,"column":4},"end":{"line":164,"column":4}}]},"31":{"line":164,"type":"binary-expr","locations":[{"start":{"line":164,"column":9},"end":{"line":164,"column":34}},{"start":{"line":164,"column":38},"end":{"line":164,"column":50}},{"start":{"line":164,"column":55},"end":{"line":164,"column":81}}]},"32":{"line":176,"type":"if","locations":[{"start":{"line":176,"column":4},"end":{"line":176,"column":4}},{"start":{"line":176,"column":4},"end":{"line":176,"column":4}}]},"33":{"line":180,"type":"if","locations":[{"start":{"line":180,"column":4},"end":{"line":180,"column":4}},{"start":{"line":180,"column":4},"end":{"line":180,"column":4}}]},"34":{"line":181,"type":"if","locations":[{"start":{"line":181,"column":6},"end":{"line":181,"column":6}},{"start":{"line":181,"column":6},"end":{"line":181,"column":6}}]},"35":{"line":181,"type":"binary-expr","locations":[{"start":{"line":181,"column":10},"end":{"line":181,"column":22}},{"start":{"line":181,"column":26},"end":{"line":181,"column":37}}]},"36":{"line":194,"type":"cond-expr","locations":[{"start":{"line":194,"column":61},"end":{"line":194,"column":93}},{"start":{"line":194,"column":96},"end":{"line":194,"column":97}}]},"37":{"line":194,"type":"binary-expr","locations":[{"start":{"line":194,"column":16},"end":{"line":194,"column":28}},{"start":{"line":194,"column":32},"end":{"line":194,"column":58}}]},"38":{"line":199,"type":"binary-expr","locations":[{"start":{"line":199,"column":11},"end":{"line":199,"column":14}},{"start":{"line":199,"column":18},"end":{"line":199,"column":28}}]},"39":{"line":215,"type":"if","locations":[{"start":{"line":215,"column":4},"end":{"line":215,"column":4}},{"start":{"line":215,"column":4},"end":{"line":215,"column":4}}]},"40":{"line":217,"type":"if","locations":[{"start":{"line":217,"column":6},"end":{"line":217,"column":6}},{"start":{"line":217,"column":6},"end":{"line":217,"column":6}}]},"41":{"line":217,"type":"binary-expr","locations":[{"start":{"line":217,"column":10},"end":{"line":217,"column":40}},{"start":{"line":217,"column":44},"end":{"line":217,"column":59}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/utils.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/utils.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":27,"7":1,"8":933,"9":1249,"10":6468,"11":6467,"12":933,"13":1,"14":1,"15":1,"16":1,"17":175,"18":1,"19":0,"20":0,"21":1,"22":1,"23":1,"24":0,"25":1,"26":1,"27":534,"28":11,"29":523,"30":29,"31":494,"32":19,"33":475,"34":475,"35":466,"36":9,"37":1,"38":1,"39":58,"40":5,"41":53,"42":2,"43":51,"44":1,"45":1,"46":11,"47":1},"b":{"1":[6467,1],"2":[0,1],"3":[0,0],"4":[1,0],"5":[0,0],"6":[0,0],"7":[11,523],"8":[29,494],"9":[19,475],"10":[466,9],"11":[5,53],"12":[58,7],"13":[2,51],"14":[53,4],"15":[3,8]},"f":{"1":27,"2":933,"3":175,"4":0,"5":0,"6":534,"7":58,"8":11},"fnMap":{"1":{"name":"escapeChar","line":17,"loc":{"start":{"line":17,"column":0},"end":{"line":17,"column":25}}},"2":{"name":"extend","line":21,"loc":{"start":{"line":21,"column":0},"end":{"line":21,"column":39}}},"3":{"name":"(anonymous_3)","line":37,"loc":{"start":{"line":37,"column":17},"end":{"line":37,"column":33}}},"4":{"name":"(anonymous_4)","line":43,"loc":{"start":{"line":43,"column":15},"end":{"line":43,"column":31}},"skip":true},"5":{"name":"(anonymous_5)","line":50,"loc":{"start":{"line":50,"column":31},"end":{"line":50,"column":47}},"skip":true},"6":{"name":"escapeExpression","line":55,"loc":{"start":{"line":55,"column":0},"end":{"line":55,"column":34}}},"7":{"name":"isEmpty","line":74,"loc":{"start":{"line":74,"column":44},"end":{"line":74,"column":68}}},"8":{"name":"appendContextPath","line":84,"loc":{"start":{"line":84,"column":26},"end":{"line":84,"column":70}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":53}},"2":{"start":{"line":5,"column":0},"end":{"line":12,"column":2}},"3":{"start":{"line":14,"column":0},"end":{"line":14,"column":27}},"4":{"start":{"line":15,"column":0},"end":{"line":15,"column":26}},"5":{"start":{"line":17,"column":0},"end":{"line":19,"column":1}},"6":{"start":{"line":18,"column":2},"end":{"line":18,"column":21}},"7":{"start":{"line":21,"column":0},"end":{"line":31,"column":1}},"8":{"start":{"line":22,"column":2},"end":{"line":28,"column":3}},"9":{"start":{"line":23,"column":4},"end":{"line":27,"column":5}},"10":{"start":{"line":24,"column":6},"end":{"line":26,"column":7}},"11":{"start":{"line":25,"column":8},"end":{"line":25,"column":37}},"12":{"start":{"line":30,"column":2},"end":{"line":30,"column":13}},"13":{"start":{"line":33,"column":0},"end":{"line":33,"column":24}},"14":{"start":{"line":33,"column":24},"end":{"line":33,"column":65}},"15":{"start":{"line":34,"column":0},"end":{"line":34,"column":28}},"16":{"start":{"line":37,"column":0},"end":{"line":39,"column":2}},"17":{"start":{"line":38,"column":2},"end":{"line":38,"column":37}},"18":{"start":{"line":42,"column":0},"end":{"line":46,"column":1},"skip":true},"19":{"start":{"line":43,"column":2},"end":{"line":45,"column":4},"skip":true},"20":{"start":{"line":44,"column":4},"end":{"line":44,"column":87},"skip":true},"21":{"start":{"line":47,"column":0},"end":{"line":47,"column":15}},"22":{"start":{"line":48,"column":0},"end":{"line":48,"column":32}},"23":{"start":{"line":50,"column":0},"end":{"line":52,"column":2},"skip":true},"24":{"start":{"line":51,"column":2},"end":{"line":51,"column":98},"skip":true},"25":{"start":{"line":53,"column":0},"end":{"line":53,"column":26}},"26":{"start":{"line":55,"column":0},"end":{"line":72,"column":1}},"27":{"start":{"line":57,"column":2},"end":{"line":63,"column":3}},"28":{"start":{"line":58,"column":4},"end":{"line":58,"column":29}},"29":{"start":{"line":59,"column":9},"end":{"line":63,"column":3}},"30":{"start":{"line":60,"column":4},"end":{"line":60,"column":14}},"31":{"start":{"line":61,"column":9},"end":{"line":63,"column":3}},"32":{"start":{"line":62,"column":4},"end":{"line":62,"column":23}},"33":{"start":{"line":68,"column":2},"end":{"line":68,"column":23}},"34":{"start":{"line":70,"column":2},"end":{"line":70,"column":47}},"35":{"start":{"line":70,"column":31},"end":{"line":70,"column":45}},"36":{"start":{"line":71,"column":2},"end":{"line":71,"column":46}},"37":{"start":{"line":74,"column":0},"end":{"line":74,"column":44}},"38":{"start":{"line":74,"column":44},"end":{"line":82,"column":1}},"39":{"start":{"line":75,"column":2},"end":{"line":81,"column":3}},"40":{"start":{"line":76,"column":4},"end":{"line":76,"column":16}},"41":{"start":{"line":77,"column":9},"end":{"line":81,"column":3}},"42":{"start":{"line":78,"column":4},"end":{"line":78,"column":16}},"43":{"start":{"line":80,"column":4},"end":{"line":80,"column":17}},"44":{"start":{"line":84,"column":0},"end":{"line":84,"column":26}},"45":{"start":{"line":84,"column":26},"end":{"line":86,"column":1}},"46":{"start":{"line":85,"column":2},"end":{"line":85,"column":53}},"47":{"start":{"line":88,"column":0},"end":{"line":88,"column":46}}},"branchMap":{"1":{"line":24,"type":"if","locations":[{"start":{"line":24,"column":6},"end":{"line":24,"column":6}},{"start":{"line":24,"column":6},"end":{"line":24,"column":6}}]},"2":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":0},"end":{"line":42,"column":0},"skip":true},{"start":{"line":42,"column":0},"end":{"line":42,"column":0},"skip":true}]},"3":{"line":44,"type":"binary-expr","locations":[{"start":{"line":44,"column":11},"end":{"line":44,"column":38},"skip":true},{"start":{"line":44,"column":42},"end":{"line":44,"column":86},"skip":true}]},"4":{"line":50,"type":"binary-expr","locations":[{"start":{"line":50,"column":14},"end":{"line":50,"column":27},"skip":true},{"start":{"line":50,"column":31},"end":{"line":52,"column":1},"skip":true}]},"5":{"line":51,"type":"cond-expr","locations":[{"start":{"line":51,"column":48},"end":{"line":51,"column":89},"skip":true},{"start":{"line":51,"column":92},"end":{"line":51,"column":97},"skip":true}]},"6":{"line":51,"type":"binary-expr","locations":[{"start":{"line":51,"column":10},"end":{"line":51,"column":15},"skip":true},{"start":{"line":51,"column":19},"end":{"line":51,"column":44},"skip":true}]},"7":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":2},"end":{"line":57,"column":2}},{"start":{"line":57,"column":2},"end":{"line":57,"column":2}}]},"8":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":9},"end":{"line":59,"column":9}},{"start":{"line":59,"column":9},"end":{"line":59,"column":9}}]},"9":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":9},"end":{"line":61,"column":9}},{"start":{"line":61,"column":9},"end":{"line":61,"column":9}}]},"10":{"line":70,"type":"if","locations":[{"start":{"line":70,"column":2},"end":{"line":70,"column":2}},{"start":{"line":70,"column":2},"end":{"line":70,"column":2}}]},"11":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":2},"end":{"line":75,"column":2}},{"start":{"line":75,"column":2},"end":{"line":75,"column":2}}]},"12":{"line":75,"type":"binary-expr","locations":[{"start":{"line":75,"column":6},"end":{"line":75,"column":12}},{"start":{"line":75,"column":16},"end":{"line":75,"column":27}}]},"13":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":9},"end":{"line":77,"column":9}},{"start":{"line":77,"column":9},"end":{"line":77,"column":9}}]},"14":{"line":77,"type":"binary-expr","locations":[{"start":{"line":77,"column":13},"end":{"line":77,"column":27}},{"start":{"line":77,"column":31},"end":{"line":77,"column":49}}]},"15":{"line":85,"type":"cond-expr","locations":[{"start":{"line":85,"column":24},"end":{"line":85,"column":41}},{"start":{"line":85,"column":44},"end":{"line":85,"column":46}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/safe-string.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/safe-string.js","s":{"1":1,"2":12,"3":1,"4":12,"5":1},"b":{},"f":{"1":12,"2":12},"fnMap":{"1":{"name":"SafeString","line":3,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":28}}},"2":{"name":"(anonymous_2)","line":7,"loc":{"start":{"line":7,"column":32},"end":{"line":7,"column":43}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":5,"column":1}},"2":{"start":{"line":4,"column":2},"end":{"line":4,"column":23}},"3":{"start":{"line":7,"column":0},"end":{"line":9,"column":2}},"4":{"start":{"line":8,"column":2},"end":{"line":8,"column":26}},"5":{"start":{"line":11,"column":0},"end":{"line":11,"column":32}}},"branchMap":{}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/exception.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/exception.js","s":{"1":1,"2":1,"3":48,"4":48,"5":16,"6":16,"7":48,"8":48,"9":336,"10":48,"11":16,"12":16,"13":1,"14":1},"b":{"1":[16,32],"2":[48,16],"3":[16,32]},"f":{"1":48},"fnMap":{"1":{"name":"Exception","line":5,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":34}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":97}},"2":{"start":{"line":5,"column":0},"end":{"line":24,"column":1}},"3":{"start":{"line":6,"column":2},"end":{"line":6,"column":11}},"4":{"start":{"line":7,"column":2},"end":{"line":11,"column":3}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":26}},"6":{"start":{"line":10,"column":4},"end":{"line":10,"column":53}},"7":{"start":{"line":13,"column":2},"end":{"line":13,"column":60}},"8":{"start":{"line":16,"column":2},"end":{"line":18,"column":3}},"9":{"start":{"line":17,"column":4},"end":{"line":17,"column":49}},"10":{"start":{"line":20,"column":2},"end":{"line":23,"column":3}},"11":{"start":{"line":21,"column":4},"end":{"line":21,"column":27}},"12":{"start":{"line":22,"column":4},"end":{"line":22,"column":35}},"13":{"start":{"line":26,"column":0},"end":{"line":26,"column":34}},"14":{"start":{"line":28,"column":0},"end":{"line":28,"column":31}}},"branchMap":{"1":{"line":7,"type":"if","locations":[{"start":{"line":7,"column":2},"end":{"line":7,"column":2}},{"start":{"line":7,"column":2},"end":{"line":7,"column":2}}]},"2":{"line":7,"type":"binary-expr","locations":[{"start":{"line":7,"column":6},"end":{"line":7,"column":10}},{"start":{"line":7,"column":14},"end":{"line":7,"column":28}}]},"3":{"line":20,"type":"if","locations":[{"start":{"line":20,"column":2},"end":{"line":20,"column":2}},{"start":{"line":20,"column":2},"end":{"line":20,"column":2}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/runtime.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/runtime.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":470,"8":470,"9":3,"10":2,"11":2,"12":1,"13":1,"14":1,"15":474,"16":0,"17":474,"18":3,"19":471,"20":468,"21":55,"22":2,"23":55,"24":53,"25":39,"26":39,"27":39,"28":53,"29":52,"30":8,"31":8,"32":18,"33":6,"34":12,"35":8,"36":52,"37":1,"38":468,"39":175,"40":175,"41":261,"42":170,"43":138,"44":345,"45":345,"46":345,"47":340,"48":5,"49":4,"50":345,"51":4,"52":6,"53":4,"54":512,"55":512,"56":313,"57":512,"58":468,"59":480,"60":480,"61":480,"62":480,"63":462,"64":480,"65":480,"66":141,"67":480,"68":468,"69":468,"70":482,"71":471,"72":471,"73":41,"74":11,"75":11,"76":468,"77":4,"78":1,"79":3,"80":468,"81":1,"82":1,"83":347,"84":365,"85":365,"86":347,"87":347,"88":347,"89":1,"90":1,"91":55,"92":55,"93":2,"94":53,"95":13,"96":1,"97":1,"98":62,"99":1,"100":1,"101":462,"102":424,"103":424,"104":462},"b":{"1":[470,469,1],"2":[3,467],"3":[2,1],"4":[0,474],"5":[3,471],"6":[474,472],"7":[2,53],"8":[39,14],"9":[53,40],"10":[52,1],"11":[8,44],"12":[6,12],"13":[18,6],"14":[170,91],"15":[261,261],"16":[3,135],"17":[340,5],"18":[345,6],"19":[4,1],"20":[10,10],"21":[512,197],"22":[313,199],"23":[512,315,315],"24":[480,174],"25":[462,18],"26":[480,469],"27":[141,339],"28":[15,126],"29":[471,11],"30":[41,430],"31":[1,3],"32":[4,2],"33":[365,147],"34":[365,162],"35":[365,152],"36":[122,225],"37":[2,53],"38":[13,40],"39":[424,38],"40":[462,59],"41":[21,403]},"f":{"1":470,"2":474,"3":55,"4":175,"5":138,"6":345,"7":345,"8":4,"9":512,"10":480,"11":482,"12":4,"13":347,"14":365,"15":55,"16":62,"17":462},"fnMap":{"1":{"name":"checkRevision","line":8,"loc":{"start":{"line":8,"column":0},"end":{"line":8,"column":37}}},"2":{"name":"template","line":28,"loc":{"start":{"line":28,"column":0},"end":{"line":28,"column":37}}},"3":{"name":"(anonymous_3)","line":41,"loc":{"start":{"line":41,"column":29},"end":{"line":41,"column":109}}},"4":{"name":"(anonymous_4)","line":73,"loc":{"start":{"line":73,"column":12},"end":{"line":73,"column":35}}},"5":{"name":"(anonymous_5)","line":81,"loc":{"start":{"line":81,"column":12},"end":{"line":81,"column":39}}},"6":{"name":"(anonymous_6)","line":88,"loc":{"start":{"line":88,"column":8},"end":{"line":88,"column":20}}},"7":{"name":"(anonymous_7)","line":93,"loc":{"start":{"line":93,"column":13},"end":{"line":93,"column":39}}},"8":{"name":"(anonymous_8)","line":104,"loc":{"start":{"line":104,"column":10},"end":{"line":104,"column":32}}},"9":{"name":"(anonymous_9)","line":110,"loc":{"start":{"line":110,"column":11},"end":{"line":110,"column":35}}},"10":{"name":"(anonymous_10)","line":124,"loc":{"start":{"line":124,"column":12},"end":{"line":124,"column":39}}},"11":{"name":"(anonymous_11)","line":141,"loc":{"start":{"line":141,"column":15},"end":{"line":141,"column":33}}},"12":{"name":"(anonymous_12)","line":154,"loc":{"start":{"line":154,"column":15},"end":{"line":154,"column":41}}},"13":{"name":"program","line":164,"loc":{"start":{"line":164,"column":28},"end":{"line":164,"column":77}}},"14":{"name":"(anonymous_14)","line":165,"loc":{"start":{"line":165,"column":13},"end":{"line":165,"column":40}}},"15":{"name":"invokePartial","line":175,"loc":{"start":{"line":175,"column":26},"end":{"line":175,"column":106}}},"16":{"name":"noop","line":185,"loc":{"start":{"line":185,"column":38},"end":{"line":185,"column":54}}},"17":{"name":"initData","line":187,"loc":{"start":{"line":187,"column":20},"end":{"line":187,"column":53}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":31}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":50}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":60}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":58}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":48}},"6":{"start":{"line":8,"column":0},"end":{"line":24,"column":1}},"7":{"start":{"line":9,"column":2},"end":{"line":10,"column":42}},"8":{"start":{"line":12,"column":2},"end":{"line":23,"column":3}},"9":{"start":{"line":13,"column":4},"end":{"line":22,"column":5}},"10":{"start":{"line":14,"column":6},"end":{"line":15,"column":64}},"11":{"start":{"line":16,"column":6},"end":{"line":17,"column":157}},"12":{"start":{"line":20,"column":6},"end":{"line":21,"column":84}},"13":{"start":{"line":26,"column":0},"end":{"line":26,"column":38}},"14":{"start":{"line":28,"column":0},"end":{"line":162,"column":1}},"15":{"start":{"line":30,"column":2},"end":{"line":32,"column":3},"skip":true},"16":{"start":{"line":31,"column":4},"end":{"line":31,"column":61},"skip":true},"17":{"start":{"line":33,"column":2},"end":{"line":35,"column":3}},"18":{"start":{"line":34,"column":4},"end":{"line":34,"column":75}},"19":{"start":{"line":39,"column":2},"end":{"line":39,"column":46}},"20":{"start":{"line":41,"column":2},"end":{"line":69,"column":4}},"21":{"start":{"line":42,"column":4},"end":{"line":44,"column":5}},"22":{"start":{"line":43,"column":6},"end":{"line":43,"column":48}},"23":{"start":{"line":46,"column":4},"end":{"line":46,"column":106}},"24":{"start":{"line":48,"column":4},"end":{"line":52,"column":5}},"25":{"start":{"line":49,"column":6},"end":{"line":49,"column":89}},"26":{"start":{"line":50,"column":6},"end":{"line":50,"column":108}},"27":{"start":{"line":51,"column":6},"end":{"line":51,"column":48}},"28":{"start":{"line":53,"column":4},"end":{"line":68,"column":5}},"29":{"start":{"line":54,"column":6},"end":{"line":64,"column":7}},"30":{"start":{"line":55,"column":8},"end":{"line":55,"column":39}},"31":{"start":{"line":56,"column":8},"end":{"line":62,"column":9}},"32":{"start":{"line":57,"column":10},"end":{"line":59,"column":11}},"33":{"start":{"line":58,"column":12},"end":{"line":58,"column":18}},"34":{"start":{"line":61,"column":10},"end":{"line":61,"column":39}},"35":{"start":{"line":63,"column":8},"end":{"line":63,"column":34}},"36":{"start":{"line":65,"column":6},"end":{"line":65,"column":20}},"37":{"start":{"line":67,"column":6},"end":{"line":67,"column":110}},"38":{"start":{"line":72,"column":2},"end":{"line":122,"column":4}},"39":{"start":{"line":74,"column":6},"end":{"line":74,"column":30}},"40":{"start":{"line":75,"column":6},"end":{"line":79,"column":7}},"41":{"start":{"line":76,"column":8},"end":{"line":78,"column":9}},"42":{"start":{"line":77,"column":10},"end":{"line":77,"column":33}},"43":{"start":{"line":82,"column":6},"end":{"line":82,"column":77}},"44":{"start":{"line":89,"column":6},"end":{"line":89,"column":29}},"45":{"start":{"line":94,"column":6},"end":{"line":95,"column":26}},"46":{"start":{"line":96,"column":6},"end":{"line":100,"column":7}},"47":{"start":{"line":97,"column":8},"end":{"line":97,"column":60}},"48":{"start":{"line":98,"column":13},"end":{"line":100,"column":7}},"49":{"start":{"line":99,"column":8},"end":{"line":99,"column":65}},"50":{"start":{"line":101,"column":6},"end":{"line":101,"column":28}},"51":{"start":{"line":105,"column":6},"end":{"line":107,"column":7}},"52":{"start":{"line":106,"column":8},"end":{"line":106,"column":28}},"53":{"start":{"line":108,"column":6},"end":{"line":108,"column":18}},"54":{"start":{"line":111,"column":6},"end":{"line":111,"column":32}},"55":{"start":{"line":113,"column":6},"end":{"line":115,"column":7}},"56":{"start":{"line":114,"column":8},"end":{"line":114,"column":46}},"57":{"start":{"line":117,"column":6},"end":{"line":117,"column":17}},"58":{"start":{"line":124,"column":2},"end":{"line":138,"column":4}},"59":{"start":{"line":125,"column":4},"end":{"line":125,"column":28}},"60":{"start":{"line":126,"column":4},"end":{"line":126,"column":28}},"61":{"start":{"line":128,"column":4},"end":{"line":128,"column":24}},"62":{"start":{"line":129,"column":4},"end":{"line":131,"column":5}},"63":{"start":{"line":130,"column":6},"end":{"line":130,"column":37}},"64":{"start":{"line":132,"column":4},"end":{"line":132,"column":15}},"65":{"start":{"line":133,"column":4},"end":{"line":135,"column":5}},"66":{"start":{"line":134,"column":6},"end":{"line":134,"column":77}},"67":{"start":{"line":137,"column":4},"end":{"line":137,"column":107}},"68":{"start":{"line":139,"column":2},"end":{"line":139,"column":19}},"69":{"start":{"line":141,"column":2},"end":{"line":152,"column":4}},"70":{"start":{"line":142,"column":4},"end":{"line":151,"column":5}},"71":{"start":{"line":143,"column":6},"end":{"line":143,"column":72}},"72":{"start":{"line":145,"column":6},"end":{"line":147,"column":7}},"73":{"start":{"line":146,"column":8},"end":{"line":146,"column":77}},"74":{"start":{"line":149,"column":6},"end":{"line":149,"column":42}},"75":{"start":{"line":150,"column":6},"end":{"line":150,"column":44}},"76":{"start":{"line":154,"column":2},"end":{"line":160,"column":4}},"77":{"start":{"line":155,"column":4},"end":{"line":157,"column":5}},"78":{"start":{"line":156,"column":6},"end":{"line":156,"column":53}},"79":{"start":{"line":159,"column":4},"end":{"line":159,"column":64}},"80":{"start":{"line":161,"column":2},"end":{"line":161,"column":13}},"81":{"start":{"line":164,"column":0},"end":{"line":164,"column":28}},"82":{"start":{"line":164,"column":28},"end":{"line":173,"column":1}},"83":{"start":{"line":165,"column":2},"end":{"line":169,"column":4}},"84":{"start":{"line":166,"column":4},"end":{"line":166,"column":28}},"85":{"start":{"line":168,"column":4},"end":{"line":168,"column":136}},"86":{"start":{"line":170,"column":2},"end":{"line":170,"column":19}},"87":{"start":{"line":171,"column":2},"end":{"line":171,"column":42}},"88":{"start":{"line":172,"column":2},"end":{"line":172,"column":14}},"89":{"start":{"line":175,"column":0},"end":{"line":175,"column":26}},"90":{"start":{"line":175,"column":26},"end":{"line":183,"column":1}},"91":{"start":{"line":176,"column":2},"end":{"line":176,"column":100}},"92":{"start":{"line":178,"column":2},"end":{"line":182,"column":3}},"93":{"start":{"line":179,"column":4},"end":{"line":179,"column":71}},"94":{"start":{"line":180,"column":9},"end":{"line":182,"column":3}},"95":{"start":{"line":181,"column":4},"end":{"line":181,"column":37}},"96":{"start":{"line":185,"column":0},"end":{"line":185,"column":38}},"97":{"start":{"line":185,"column":38},"end":{"line":185,"column":68}},"98":{"start":{"line":185,"column":56},"end":{"line":185,"column":66}},"99":{"start":{"line":187,"column":0},"end":{"line":187,"column":20}},"100":{"start":{"line":187,"column":20},"end":{"line":193,"column":1}},"101":{"start":{"line":188,"column":2},"end":{"line":191,"column":3}},"102":{"start":{"line":189,"column":4},"end":{"line":189,"column":41}},"103":{"start":{"line":190,"column":4},"end":{"line":190,"column":24}},"104":{"start":{"line":192,"column":2},"end":{"line":192,"column":14}}},"branchMap":{"1":{"line":9,"type":"binary-expr","locations":[{"start":{"line":9,"column":25},"end":{"line":9,"column":37}},{"start":{"line":9,"column":41},"end":{"line":9,"column":56}},{"start":{"line":9,"column":60},"end":{"line":9,"column":61}}]},"2":{"line":12,"type":"if","locations":[{"start":{"line":12,"column":2},"end":{"line":12,"column":2}},{"start":{"line":12,"column":2},"end":{"line":12,"column":2}}]},"3":{"line":13,"type":"if","locations":[{"start":{"line":13,"column":4},"end":{"line":13,"column":4}},{"start":{"line":13,"column":4},"end":{"line":13,"column":4}}]},"4":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":30,"column":2},"skip":true},{"start":{"line":30,"column":2},"end":{"line":30,"column":2},"skip":true}]},"5":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":2},"end":{"line":33,"column":2}},{"start":{"line":33,"column":2},"end":{"line":33,"column":2}}]},"6":{"line":33,"type":"binary-expr","locations":[{"start":{"line":33,"column":6},"end":{"line":33,"column":19}},{"start":{"line":33,"column":23},"end":{"line":33,"column":41}}]},"7":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":42,"column":4}},{"start":{"line":42,"column":4},"end":{"line":42,"column":4}}]},"8":{"line":48,"type":"if","locations":[{"start":{"line":48,"column":4},"end":{"line":48,"column":4}},{"start":{"line":48,"column":4},"end":{"line":48,"column":4}}]},"9":{"line":48,"type":"binary-expr","locations":[{"start":{"line":48,"column":8},"end":{"line":48,"column":22}},{"start":{"line":48,"column":26},"end":{"line":48,"column":37}}]},"10":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":4},"end":{"line":53,"column":4}},{"start":{"line":53,"column":4},"end":{"line":53,"column":4}}]},"11":{"line":54,"type":"if","locations":[{"start":{"line":54,"column":6},"end":{"line":54,"column":6}},{"start":{"line":54,"column":6},"end":{"line":54,"column":6}}]},"12":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":10},"end":{"line":57,"column":10}},{"start":{"line":57,"column":10},"end":{"line":57,"column":10}}]},"13":{"line":57,"type":"binary-expr","locations":[{"start":{"line":57,"column":14},"end":{"line":57,"column":23}},{"start":{"line":57,"column":27},"end":{"line":57,"column":38}}]},"14":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":8},"end":{"line":76,"column":8}},{"start":{"line":76,"column":8},"end":{"line":76,"column":8}}]},"15":{"line":76,"type":"binary-expr","locations":[{"start":{"line":76,"column":12},"end":{"line":76,"column":21}},{"start":{"line":76,"column":25},"end":{"line":76,"column":48}}]},"16":{"line":82,"type":"cond-expr","locations":[{"start":{"line":82,"column":45},"end":{"line":82,"column":66}},{"start":{"line":82,"column":69},"end":{"line":82,"column":76}}]},"17":{"line":96,"type":"if","locations":[{"start":{"line":96,"column":6},"end":{"line":96,"column":6}},{"start":{"line":96,"column":6},"end":{"line":96,"column":6}}]},"18":{"line":96,"type":"binary-expr","locations":[{"start":{"line":96,"column":10},"end":{"line":96,"column":14}},{"start":{"line":96,"column":18},"end":{"line":96,"column":24}}]},"19":{"line":98,"type":"if","locations":[{"start":{"line":98,"column":13},"end":{"line":98,"column":13}},{"start":{"line":98,"column":13},"end":{"line":98,"column":13}}]},"20":{"line":105,"type":"binary-expr","locations":[{"start":{"line":105,"column":13},"end":{"line":105,"column":17}},{"start":{"line":105,"column":21},"end":{"line":105,"column":28}}]},"21":{"line":111,"type":"binary-expr","locations":[{"start":{"line":111,"column":16},"end":{"line":111,"column":21}},{"start":{"line":111,"column":25},"end":{"line":111,"column":31}}]},"22":{"line":113,"type":"if","locations":[{"start":{"line":113,"column":6},"end":{"line":113,"column":6}},{"start":{"line":113,"column":6},"end":{"line":113,"column":6}}]},"23":{"line":113,"type":"binary-expr","locations":[{"start":{"line":113,"column":10},"end":{"line":113,"column":15}},{"start":{"line":113,"column":19},"end":{"line":113,"column":25}},{"start":{"line":113,"column":30},"end":{"line":113,"column":46}}]},"24":{"line":125,"type":"binary-expr","locations":[{"start":{"line":125,"column":14},"end":{"line":125,"column":21}},{"start":{"line":125,"column":25},"end":{"line":125,"column":27}}]},"25":{"line":129,"type":"if","locations":[{"start":{"line":129,"column":4},"end":{"line":129,"column":4}},{"start":{"line":129,"column":4},"end":{"line":129,"column":4}}]},"26":{"line":129,"type":"binary-expr","locations":[{"start":{"line":129,"column":8},"end":{"line":129,"column":24}},{"start":{"line":129,"column":28},"end":{"line":129,"column":48}}]},"27":{"line":133,"type":"if","locations":[{"start":{"line":133,"column":4},"end":{"line":133,"column":4}},{"start":{"line":133,"column":4},"end":{"line":133,"column":4}}]},"28":{"line":134,"type":"cond-expr","locations":[{"start":{"line":134,"column":32},"end":{"line":134,"column":64}},{"start":{"line":134,"column":67},"end":{"line":134,"column":76}}]},"29":{"line":142,"type":"if","locations":[{"start":{"line":142,"column":4},"end":{"line":142,"column":4}},{"start":{"line":142,"column":4},"end":{"line":142,"column":4}}]},"30":{"line":145,"type":"if","locations":[{"start":{"line":145,"column":6},"end":{"line":145,"column":6}},{"start":{"line":145,"column":6},"end":{"line":145,"column":6}}]},"31":{"line":155,"type":"if","locations":[{"start":{"line":155,"column":4},"end":{"line":155,"column":4}},{"start":{"line":155,"column":4},"end":{"line":155,"column":4}}]},"32":{"line":155,"type":"binary-expr","locations":[{"start":{"line":155,"column":8},"end":{"line":155,"column":30}},{"start":{"line":155,"column":34},"end":{"line":155,"column":41}}]},"33":{"line":166,"type":"binary-expr","locations":[{"start":{"line":166,"column":14},"end":{"line":166,"column":21}},{"start":{"line":166,"column":25},"end":{"line":166,"column":27}}]},"34":{"line":168,"type":"binary-expr","locations":[{"start":{"line":168,"column":78},"end":{"line":168,"column":90}},{"start":{"line":168,"column":94},"end":{"line":168,"column":98}}]},"35":{"line":168,"type":"binary-expr","locations":[{"start":{"line":168,"column":100},"end":{"line":168,"column":106}},{"start":{"line":168,"column":110},"end":{"line":168,"column":134}}]},"36":{"line":171,"type":"cond-expr","locations":[{"start":{"line":171,"column":24},"end":{"line":171,"column":37}},{"start":{"line":171,"column":40},"end":{"line":171,"column":41}}]},"37":{"line":178,"type":"if","locations":[{"start":{"line":178,"column":2},"end":{"line":178,"column":2}},{"start":{"line":178,"column":2},"end":{"line":178,"column":2}}]},"38":{"line":180,"type":"if","locations":[{"start":{"line":180,"column":9},"end":{"line":180,"column":9}},{"start":{"line":180,"column":9},"end":{"line":180,"column":9}}]},"39":{"line":188,"type":"if","locations":[{"start":{"line":188,"column":2},"end":{"line":188,"column":2}},{"start":{"line":188,"column":2},"end":{"line":188,"column":2}}]},"40":{"line":188,"type":"binary-expr","locations":[{"start":{"line":188,"column":6},"end":{"line":188,"column":11}},{"start":{"line":188,"column":15},"end":{"line":188,"column":32}}]},"41":{"line":189,"type":"cond-expr","locations":[{"start":{"line":189,"column":18},"end":{"line":189,"column":35}},{"start":{"line":189,"column":38},"end":{"line":189,"column":40}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/ast.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/ast.js","s":{"1":1,"2":1,"3":10460,"4":10460,"5":10460,"6":10460,"7":10460,"8":1,"9":1700,"10":1700,"11":1700,"12":1700,"13":1588,"14":1588,"15":1588,"16":1588,"17":1584,"18":1584,"19":4,"20":1588,"21":1569,"22":19,"23":1588,"24":1588,"25":1588,"26":1588,"27":1588,"28":1644,"29":1644,"30":1644,"31":1644,"32":1644,"33":1644,"34":1644,"35":96,"36":96,"37":96,"38":96,"39":96,"40":96,"41":96,"42":602,"43":602,"44":602,"45":602,"46":602,"47":602,"48":602,"49":80,"50":5,"51":5,"52":1,"53":4,"54":4,"55":4,"56":4,"57":1617,"58":1617,"59":1617,"60":75,"61":75,"62":75,"63":2756,"64":2756,"65":2756,"66":2756,"67":3091,"68":3091,"69":3091,"70":163,"71":11,"72":152,"73":67,"74":67,"75":85,"76":2928,"77":2745,"78":2745,"79":2745,"80":2745,"81":2745,"82":2745,"83":2745,"84":96,"85":96,"86":96,"87":75,"88":75,"89":75,"90":75,"91":75,"92":58,"93":58,"94":58,"95":56,"96":56,"97":56,"98":56,"99":55,"100":55,"101":55,"102":55,"103":37,"104":37,"105":37,"106":37,"107":1},"b":{"1":[10460,47],"2":[1584,4],"3":[1588,1587],"4":[1584,1554],"5":[1584,1544],"6":[1569,19],"7":[1644,1225],"8":[1644,1159],"9":[80,522],"10":[602,143],"11":[1,4],"12":[3091,2758],"13":[163,2928],"14":[3091,3019,2960],"15":[11,152],"16":[67,85],"17":[2745,2478,2416]},"f":{"1":10460,"2":1700,"3":1588,"4":1644,"5":96,"6":602,"7":5,"8":1617,"9":75,"10":2756,"11":96,"12":75,"13":58,"14":56,"15":55,"16":37},"fnMap":{"1":{"name":"LocationInfo","line":4,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":31}}},"2":{"name":"(anonymous_2)","line":13,"loc":{"start":{"line":13,"column":15},"end":{"line":13,"column":52}}},"3":{"name":"(anonymous_3)","line":20,"loc":{"start":{"line":20,"column":16},"end":{"line":20,"column":64}}},"4":{"name":"(anonymous_4)","line":49,"loc":{"start":{"line":49,"column":13},"end":{"line":49,"column":48}}},"5":{"name":"(anonymous_5)","line":72,"loc":{"start":{"line":72,"column":15},"end":{"line":72,"column":68}}},"6":{"name":"(anonymous_6)","line":83,"loc":{"start":{"line":83,"column":13},"end":{"line":83,"column":66}}},"7":{"name":"(anonymous_7)","line":97,"loc":{"start":{"line":97,"column":16},"end":{"line":97,"column":60}}},"8":{"name":"(anonymous_8)","line":111,"loc":{"start":{"line":111,"column":15},"end":{"line":111,"column":41}}},"9":{"name":"(anonymous_9)","line":117,"loc":{"start":{"line":117,"column":12},"end":{"line":117,"column":37}}},"10":{"name":"(anonymous_10)","line":123,"loc":{"start":{"line":123,"column":10},"end":{"line":123,"column":35}}},"11":{"name":"(anonymous_11)","line":163,"loc":{"start":{"line":163,"column":19},"end":{"line":163,"column":43}}},"12":{"name":"(anonymous_12)","line":169,"loc":{"start":{"line":169,"column":12},"end":{"line":169,"column":34}}},"13":{"name":"(anonymous_13)","line":177,"loc":{"start":{"line":177,"column":14},"end":{"line":177,"column":40}}},"14":{"name":"(anonymous_14)","line":185,"loc":{"start":{"line":185,"column":14},"end":{"line":185,"column":40}}},"15":{"name":"(anonymous_15)","line":193,"loc":{"start":{"line":193,"column":15},"end":{"line":193,"column":39}}},"16":{"name":"(anonymous_16)","line":200,"loc":{"start":{"line":200,"column":15},"end":{"line":200,"column":42}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":51}},"2":{"start":{"line":4,"column":0},"end":{"line":10,"column":1}},"3":{"start":{"line":5,"column":2},"end":{"line":5,"column":26}},"4":{"start":{"line":6,"column":2},"end":{"line":6,"column":40}},"5":{"start":{"line":7,"column":2},"end":{"line":7,"column":42}},"6":{"start":{"line":8,"column":2},"end":{"line":8,"column":41}},"7":{"start":{"line":9,"column":2},"end":{"line":9,"column":39}},"8":{"start":{"line":12,"column":0},"end":{"line":209,"column":2}},"9":{"start":{"line":14,"column":4},"end":{"line":14,"column":37}},"10":{"start":{"line":15,"column":4},"end":{"line":15,"column":26}},"11":{"start":{"line":16,"column":4},"end":{"line":16,"column":33}},"12":{"start":{"line":17,"column":4},"end":{"line":17,"column":23}},"13":{"start":{"line":21,"column":4},"end":{"line":21,"column":37}},"14":{"start":{"line":22,"column":4},"end":{"line":22,"column":27}},"15":{"start":{"line":23,"column":4},"end":{"line":23,"column":23}},"16":{"start":{"line":26,"column":4},"end":{"line":32,"column":5}},"17":{"start":{"line":28,"column":6},"end":{"line":28,"column":56}},"18":{"start":{"line":29,"column":6},"end":{"line":29,"column":62}},"19":{"start":{"line":31,"column":6},"end":{"line":31,"column":28}},"20":{"start":{"line":34,"column":4},"end":{"line":39,"column":5}},"21":{"start":{"line":35,"column":6},"end":{"line":35,"column":29}},"22":{"start":{"line":38,"column":6},"end":{"line":38,"column":54}},"23":{"start":{"line":42,"column":4},"end":{"line":42,"column":28}},"24":{"start":{"line":43,"column":4},"end":{"line":43,"column":36}},"25":{"start":{"line":44,"column":4},"end":{"line":44,"column":32}},"26":{"start":{"line":45,"column":4},"end":{"line":45,"column":52}},"27":{"start":{"line":46,"column":4},"end":{"line":46,"column":40}},"28":{"start":{"line":50,"column":4},"end":{"line":50,"column":37}},"29":{"start":{"line":52,"column":4},"end":{"line":52,"column":24}},"30":{"start":{"line":53,"column":4},"end":{"line":53,"column":21}},"31":{"start":{"line":55,"column":4},"end":{"line":55,"column":36}},"32":{"start":{"line":56,"column":4},"end":{"line":56,"column":50}},"33":{"start":{"line":61,"column":4},"end":{"line":61,"column":46}},"34":{"start":{"line":65,"column":4},"end":{"line":65,"column":55}},"35":{"start":{"line":73,"column":4},"end":{"line":73,"column":37}},"36":{"start":{"line":74,"column":4},"end":{"line":74,"column":34}},"37":{"start":{"line":75,"column":4},"end":{"line":75,"column":36}},"38":{"start":{"line":76,"column":4},"end":{"line":76,"column":32}},"39":{"start":{"line":77,"column":4},"end":{"line":77,"column":21}},"40":{"start":{"line":78,"column":4},"end":{"line":78,"column":23}},"41":{"start":{"line":80,"column":4},"end":{"line":80,"column":39}},"42":{"start":{"line":84,"column":4},"end":{"line":84,"column":37}},"43":{"start":{"line":86,"column":4},"end":{"line":86,"column":24}},"44":{"start":{"line":87,"column":4},"end":{"line":87,"column":29}},"45":{"start":{"line":88,"column":4},"end":{"line":88,"column":28}},"46":{"start":{"line":89,"column":4},"end":{"line":89,"column":28}},"47":{"start":{"line":90,"column":4},"end":{"line":90,"column":23}},"48":{"start":{"line":92,"column":4},"end":{"line":94,"column":5}},"49":{"start":{"line":93,"column":6},"end":{"line":93,"column":28}},"50":{"start":{"line":98,"column":4},"end":{"line":98,"column":37}},"51":{"start":{"line":100,"column":4},"end":{"line":102,"column":5}},"52":{"start":{"line":101,"column":6},"end":{"line":101,"column":88}},"53":{"start":{"line":104,"column":4},"end":{"line":104,"column":52}},"54":{"start":{"line":106,"column":4},"end":{"line":106,"column":24}},"55":{"start":{"line":107,"column":4},"end":{"line":107,"column":29}},"56":{"start":{"line":108,"column":4},"end":{"line":108,"column":63}},"57":{"start":{"line":112,"column":4},"end":{"line":112,"column":37}},"58":{"start":{"line":113,"column":4},"end":{"line":113,"column":26}},"59":{"start":{"line":114,"column":4},"end":{"line":114,"column":41}},"60":{"start":{"line":118,"column":4},"end":{"line":118,"column":37}},"61":{"start":{"line":119,"column":4},"end":{"line":119,"column":23}},"62":{"start":{"line":120,"column":4},"end":{"line":120,"column":23}},"63":{"start":{"line":124,"column":4},"end":{"line":124,"column":37}},"64":{"start":{"line":125,"column":4},"end":{"line":125,"column":21}},"65":{"start":{"line":127,"column":4},"end":{"line":130,"column":25}},"66":{"start":{"line":132,"column":4},"end":{"line":148,"column":5}},"67":{"start":{"line":133,"column":6},"end":{"line":133,"column":31}},"68":{"start":{"line":134,"column":6},"end":{"line":134,"column":52}},"69":{"start":{"line":136,"column":6},"end":{"line":147,"column":7}},"70":{"start":{"line":137,"column":8},"end":{"line":144,"column":9}},"71":{"start":{"line":138,"column":10},"end":{"line":138,"column":65}},"72":{"start":{"line":139,"column":15},"end":{"line":144,"column":9}},"73":{"start":{"line":140,"column":10},"end":{"line":140,"column":18}},"74":{"start":{"line":141,"column":10},"end":{"line":141,"column":31}},"75":{"start":{"line":143,"column":10},"end":{"line":143,"column":31}},"76":{"start":{"line":146,"column":8},"end":{"line":146,"column":23}},"77":{"start":{"line":150,"column":4},"end":{"line":150,"column":29}},"78":{"start":{"line":151,"column":4},"end":{"line":151,"column":24}},"79":{"start":{"line":152,"column":4},"end":{"line":152,"column":34}},"80":{"start":{"line":153,"column":4},"end":{"line":153,"column":26}},"81":{"start":{"line":154,"column":4},"end":{"line":154,"column":46}},"82":{"start":{"line":158,"column":4},"end":{"line":158,"column":72}},"83":{"start":{"line":160,"column":4},"end":{"line":160,"column":39}},"84":{"start":{"line":164,"column":4},"end":{"line":164,"column":37}},"85":{"start":{"line":165,"column":4},"end":{"line":165,"column":31}},"86":{"start":{"line":166,"column":4},"end":{"line":166,"column":30}},"87":{"start":{"line":170,"column":4},"end":{"line":170,"column":37}},"88":{"start":{"line":171,"column":4},"end":{"line":171,"column":23}},"89":{"start":{"line":172,"column":4},"end":{"line":172,"column":17}},"90":{"start":{"line":173,"column":4},"end":{"line":173,"column":46}},"91":{"start":{"line":174,"column":4},"end":{"line":174,"column":43}},"92":{"start":{"line":178,"column":4},"end":{"line":178,"column":37}},"93":{"start":{"line":179,"column":4},"end":{"line":179,"column":25}},"94":{"start":{"line":180,"column":4},"end":{"line":182,"column":36}},"95":{"start":{"line":186,"column":4},"end":{"line":186,"column":37}},"96":{"start":{"line":187,"column":4},"end":{"line":187,"column":25}},"97":{"start":{"line":188,"column":4},"end":{"line":189,"column":27}},"98":{"start":{"line":190,"column":4},"end":{"line":190,"column":42}},"99":{"start":{"line":194,"column":4},"end":{"line":194,"column":37}},"100":{"start":{"line":195,"column":4},"end":{"line":195,"column":26}},"101":{"start":{"line":196,"column":4},"end":{"line":196,"column":21}},"102":{"start":{"line":197,"column":4},"end":{"line":197,"column":43}},"103":{"start":{"line":201,"column":4},"end":{"line":201,"column":37}},"104":{"start":{"line":202,"column":4},"end":{"line":202,"column":26}},"105":{"start":{"line":203,"column":4},"end":{"line":203,"column":27}},"106":{"start":{"line":205,"column":4},"end":{"line":207,"column":6}},"107":{"start":{"line":214,"column":0},"end":{"line":214,"column":25}}},"branchMap":{"1":{"line":5,"type":"binary-expr","locations":[{"start":{"line":5,"column":12},"end":{"line":5,"column":19}},{"start":{"line":5,"column":23},"end":{"line":5,"column":25}}]},"2":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":4},"end":{"line":26,"column":4}},{"start":{"line":26,"column":4},"end":{"line":26,"column":4}}]},"3":{"line":26,"type":"binary-expr","locations":[{"start":{"line":26,"column":8},"end":{"line":26,"column":20}},{"start":{"line":26,"column":24},"end":{"line":26,"column":35}}]},"4":{"line":28,"type":"binary-expr","locations":[{"start":{"line":28,"column":23},"end":{"line":28,"column":37}},{"start":{"line":28,"column":41},"end":{"line":28,"column":55}}]},"5":{"line":29,"type":"binary-expr","locations":[{"start":{"line":29,"column":21},"end":{"line":29,"column":39}},{"start":{"line":29,"column":43},"end":{"line":29,"column":61}}]},"6":{"line":34,"type":"if","locations":[{"start":{"line":34,"column":4},"end":{"line":34,"column":4}},{"start":{"line":34,"column":4},"end":{"line":34,"column":4}}]},"7":{"line":61,"type":"binary-expr","locations":[{"start":{"line":61,"column":23},"end":{"line":61,"column":36}},{"start":{"line":61,"column":40},"end":{"line":61,"column":44}}]},"8":{"line":65,"type":"binary-expr","locations":[{"start":{"line":65,"column":26},"end":{"line":65,"column":39}},{"start":{"line":65,"column":43},"end":{"line":65,"column":54}}]},"9":{"line":92,"type":"if","locations":[{"start":{"line":92,"column":4},"end":{"line":92,"column":4}},{"start":{"line":92,"column":4},"end":{"line":92,"column":4}}]},"10":{"line":92,"type":"binary-expr","locations":[{"start":{"line":92,"column":8},"end":{"line":92,"column":15}},{"start":{"line":92,"column":19},"end":{"line":92,"column":27}}]},"11":{"line":100,"type":"if","locations":[{"start":{"line":100,"column":4},"end":{"line":100,"column":4}},{"start":{"line":100,"column":4},"end":{"line":100,"column":4}}]},"12":{"line":134,"type":"binary-expr","locations":[{"start":{"line":134,"column":19},"end":{"line":134,"column":37}},{"start":{"line":134,"column":41},"end":{"line":134,"column":43}}]},"13":{"line":136,"type":"if","locations":[{"start":{"line":136,"column":6},"end":{"line":136,"column":6}},{"start":{"line":136,"column":6},"end":{"line":136,"column":6}}]},"14":{"line":136,"type":"binary-expr","locations":[{"start":{"line":136,"column":10},"end":{"line":136,"column":23}},{"start":{"line":136,"column":27},"end":{"line":136,"column":39}},{"start":{"line":136,"column":43},"end":{"line":136,"column":58}}]},"15":{"line":137,"type":"if","locations":[{"start":{"line":137,"column":8},"end":{"line":137,"column":8}},{"start":{"line":137,"column":8},"end":{"line":137,"column":8}}]},"16":{"line":139,"type":"if","locations":[{"start":{"line":139,"column":15},"end":{"line":139,"column":15}},{"start":{"line":139,"column":15},"end":{"line":139,"column":15}}]},"17":{"line":158,"type":"binary-expr","locations":[{"start":{"line":158,"column":20},"end":{"line":158,"column":38}},{"start":{"line":158,"column":42},"end":{"line":158,"column":56}},{"start":{"line":158,"column":60},"end":{"line":158,"column":71}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/base.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/base.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1052,"10":3,"11":1049,"12":1049,"13":1},"b":{"1":[3,1049]},"f":{"1":1052},"fnMap":{"1":{"name":"parse","line":12,"loc":{"start":{"line":12,"column":0},"end":{"line":12,"column":22}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":44}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":38}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":35}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"5":{"start":{"line":7,"column":0},"end":{"line":7,"column":24}},"6":{"start":{"line":9,"column":0},"end":{"line":9,"column":12}},"7":{"start":{"line":10,"column":0},"end":{"line":10,"column":25}},"8":{"start":{"line":12,"column":0},"end":{"line":19,"column":1}},"9":{"start":{"line":14,"column":2},"end":{"line":14,"column":62}},"10":{"start":{"line":14,"column":47},"end":{"line":14,"column":60}},"11":{"start":{"line":16,"column":2},"end":{"line":16,"column":17}},"12":{"start":{"line":18,"column":2},"end":{"line":18,"column":29}},"13":{"start":{"line":21,"column":0},"end":{"line":21,"column":22}}},"branchMap":{"1":{"line":14,"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":14,"column":2}},{"start":{"line":14,"column":2},"end":{"line":14,"column":2}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/parser.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/parser.js","s":{"1":1,"2":1,"3":26939,"4":26939,"5":1026,"6":1026,"7":0,"8":1692,"9":1692,"10":952,"11":952,"12":601,"13":601,"14":4,"15":4,"16":95,"17":95,"18":1609,"19":1609,"20":36,"21":36,"22":5,"23":4,"24":5,"25":5,"26":523,"27":521,"28":80,"29":80,"30":531,"31":531,"32":80,"33":80,"34":62,"35":62,"36":603,"37":603,"38":914,"39":914,"40":38,"41":38,"42":6,"43":6,"44":89,"45":89,"46":1584,"47":1584,"48":40,"49":40,"50":390,"51":390,"52":55,"53":55,"54":53,"55":53,"56":54,"57":54,"58":34,"59":34,"60":52,"61":52,"62":52,"63":74,"64":74,"65":119,"66":119,"67":91,"68":91,"69":2,"70":2,"71":2,"72":2,"73":74,"74":74,"75":2752,"76":2744,"77":341,"78":341,"79":341,"80":2752,"81":2752,"82":1722,"83":1722,"84":3297,"85":3297,"86":1586,"87":1586,"88":513,"89":513,"90":74,"91":74,"92":45,"93":45,"94":12,"95":1049,"96":1049,"97":1049,"98":1049,"99":1049,"100":1049,"101":0,"102":1049,"103":1049,"104":1049,"105":1049,"106":0,"107":1,"108":0,"109":0,"110":0,"111":1,"112":11342,"113":11342,"114":11342,"115":7,"116":11342,"117":1049,"118":1049,"119":38270,"120":38270,"121":1159,"122":37111,"123":11342,"124":37111,"125":38270,"126":12,"127":12,"128":12,"129":12,"130":82,"131":82,"132":12,"133":12,"134":0,"135":12,"136":38258,"137":0,"138":38258,"139":11319,"140":11319,"141":11319,"142":11319,"143":11319,"144":11319,"145":11319,"146":11319,"147":11319,"148":11319,"149":11319,"150":0,"151":0,"152":0,"153":11319,"154":26939,"155":26939,"156":26939,"157":26939,"158":0,"159":26939,"160":26928,"161":1026,"162":25902,"163":20448,"164":20448,"165":20448,"166":25902,"167":25902,"168":25902,"169":25902,"170":25902,"171":25902,"172":0,"173":0,"174":1,"175":1,"176":0,"177":0,"178":0,"179":1116,"180":1116,"181":1116,"182":1116,"183":1116,"184":1116,"185":1116,"186":0,"187":1116,"188":1116,"189":0,"190":0,"191":0,"192":0,"193":0,"194":0,"195":0,"196":0,"197":0,"198":0,"199":0,"200":0,"201":0,"202":0,"203":0,"204":0,"205":0,"206":0,"207":0,"208":0,"209":0,"210":0,"211":0,"212":0,"213":0,"214":0,"215":0,"216":0,"217":0,"218":0,"219":0,"220":0,"221":0,"222":12,"223":12,"224":12,"225":12,"226":12,"227":12,"228":12,"229":12,"230":12,"231":13951,"232":0,"233":13951,"234":1094,"235":13951,"236":13951,"237":13951,"238":13951,"239":13951,"240":13951,"241":221226,"242":221226,"243":13951,"244":13951,"245":13951,"246":13951,"247":13951,"248":13951,"249":13951,"250":370,"251":13951,"252":13951,"253":13951,"254":13951,"255":13951,"256":13951,"257":0,"258":13951,"259":13951,"260":13951,"261":13951,"262":13951,"263":0,"264":13951,"265":11800,"266":2151,"267":0,"268":0,"269":0,"270":13951,"271":13951,"272":11800,"273":2151,"274":2483,"275":2474,"276":13951,"277":0,"278":0,"279":1,"280":1,"281":1,"282":141,"283":13951,"284":13951,"285":2476,"286":10,"287":10,"288":2466,"289":10,"290":10,"291":2456,"292":2476,"293":1201,"294":1275,"295":426,"296":0,"297":10,"298":10,"299":0,"300":5,"301":5,"302":5,"303":0,"304":5,"305":0,"306":2,"307":2,"308":2,"309":0,"310":62,"311":0,"312":62,"313":0,"314":5,"315":0,"316":5,"317":5,"318":5,"319":0,"320":100,"321":0,"322":532,"323":0,"324":604,"325":0,"326":44,"327":44,"328":0,"329":22,"330":22,"331":0,"332":81,"333":0,"334":1,"335":0,"336":42,"337":0,"338":23,"339":0,"340":2,"341":2,"342":2,"343":37,"344":37,"345":37,"346":0,"347":973,"348":0,"349":131,"350":0,"351":73,"352":0,"353":59,"354":0,"355":355,"356":0,"357":874,"358":42,"359":42,"360":0,"361":2305,"362":2305,"363":0,"364":61,"365":61,"366":0,"367":6,"368":6,"369":0,"370":79,"371":0,"372":42,"373":0,"374":18,"375":0,"376":61,"377":0,"378":3208,"379":0,"380":15,"381":15,"382":0,"383":9,"384":0,"385":1094,"386":0,"387":1,"388":1,"389":1,"390":1,"391":1,"392":1,"393":1,"394":1,"395":1,"396":1},"b":{"1":[1026,1692,952,601,4,95,1609,36,5,5,523,80,531,80,62,603,914,38,6,89,1584,40,390,55,53,54,34,52,74,119,91,2,2,74,2752,341,2752,1722,3297,1586,513,74,45],"2":[0,1049],"3":[1049,1049],"4":[0,1049],"5":[11342,0],"6":[7,11335],"7":[7,7],"8":[1159,37111],"9":[11342,25769],"10":[37111,26818],"11":[37111,37111],"12":[12,38258],"13":[38270,38258,38258],"14":[12,0],"15":[82,0],"16":[82,82],"17":[12,0],"18":[12,7],"19":[0,0],"20":[0,0],"21":[12,7],"22":[0,38258],"23":[38258,0],"24":[11319,26939,0],"25":[11319,0],"26":[0,11319],"27":[26939,5454],"28":[26939,5454],"29":[0,26939],"30":[0,0],"31":[1026,25902],"32":[20448,5454],"33":[0,0],"34":[0,1116],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,12],"42":[12,0],"43":[0,12],"44":[0,13951],"45":[1094,12857],"46":[13951,0],"47":[13951,207275],"48":[221226,13951,0],"49":[13951,0],"50":[13951,0],"51":[370,13581],"52":[370,13581],"53":[0,13951],"54":[0,13951],"55":[13951,1094],"56":[11800,2151],"57":[0,0],"58":[11800,2151],"59":[2476,426,10,5,5,2,62,62,5,5,100,532,604,44,22,81,1,42,23,2,37,973,131,73,59,355,874,42,2305,61,6,79,42,18,61,3208,15,9,1094],"60":[10,2466],"61":[10,2456],"62":[1201,1275]},"f":{"1":1,"2":0,"3":26939,"4":12,"5":1049,"6":0,"7":11342,"8":1,"9":0,"10":1116,"11":0,"12":0,"13":0,"14":0,"15":12,"16":12,"17":12,"18":13951,"19":13951,"20":2483,"21":2474,"22":13951,"23":0,"24":0,"25":13951,"26":141,"27":1},"fnMap":{"1":{"name":"(anonymous_1)","line":5,"loc":{"start":{"line":5,"column":18},"end":{"line":5,"column":28}},"skip":true},"2":{"name":"trace","line":6,"loc":{"start":{"line":6,"column":21},"end":{"line":6,"column":38}},"skip":true},"3":{"name":"anonymous","line":11,"loc":{"start":{"line":11,"column":15},"end":{"line":11,"column":75}},"skip":true},"4":{"name":"parseError","line":105,"loc":{"start":{"line":105,"column":12},"end":{"line":105,"column":43}},"skip":true},"5":{"name":"parse","line":108,"loc":{"start":{"line":108,"column":7},"end":{"line":108,"column":29}},"skip":true},"6":{"name":"popStack","line":121,"loc":{"start":{"line":121,"column":4},"end":{"line":121,"column":25}},"skip":true},"7":{"name":"lex","line":126,"loc":{"start":{"line":126,"column":4},"end":{"line":126,"column":19}},"skip":true},"8":{"name":"(anonymous_8)","line":213,"loc":{"start":{"line":213,"column":13},"end":{"line":213,"column":23}},"skip":true},"9":{"name":"parseError","line":215,"loc":{"start":{"line":215,"column":11},"end":{"line":215,"column":42}},"skip":true},"10":{"name":"(anonymous_10)","line":222,"loc":{"start":{"line":222,"column":9},"end":{"line":222,"column":26}},"skip":true},"11":{"name":"(anonymous_11)","line":233,"loc":{"start":{"line":233,"column":6},"end":{"line":233,"column":18}},"skip":true},"12":{"name":"(anonymous_12)","line":252,"loc":{"start":{"line":252,"column":6},"end":{"line":252,"column":20}},"skip":true},"13":{"name":"(anonymous_13)","line":280,"loc":{"start":{"line":280,"column":5},"end":{"line":280,"column":17}},"skip":true},"14":{"name":"(anonymous_14)","line":284,"loc":{"start":{"line":284,"column":5},"end":{"line":284,"column":18}},"skip":true},"15":{"name":"(anonymous_15)","line":287,"loc":{"start":{"line":287,"column":10},"end":{"line":287,"column":22}},"skip":true},"16":{"name":"(anonymous_16)","line":291,"loc":{"start":{"line":291,"column":14},"end":{"line":291,"column":26}},"skip":true},"17":{"name":"(anonymous_17)","line":298,"loc":{"start":{"line":298,"column":13},"end":{"line":298,"column":25}},"skip":true},"18":{"name":"(anonymous_18)","line":303,"loc":{"start":{"line":303,"column":5},"end":{"line":303,"column":17}},"skip":true},"19":{"name":"lex","line":357,"loc":{"start":{"line":357,"column":4},"end":{"line":357,"column":19}},"skip":true},"20":{"name":"begin","line":365,"loc":{"start":{"line":365,"column":6},"end":{"line":365,"column":32}},"skip":true},"21":{"name":"popState","line":368,"loc":{"start":{"line":368,"column":9},"end":{"line":368,"column":29}},"skip":true},"22":{"name":"_currentRules","line":371,"loc":{"start":{"line":371,"column":14},"end":{"line":371,"column":39}},"skip":true},"23":{"name":"(anonymous_23)","line":374,"loc":{"start":{"line":374,"column":9},"end":{"line":374,"column":21}},"skip":true},"24":{"name":"begin","line":377,"loc":{"start":{"line":377,"column":10},"end":{"line":377,"column":36}},"skip":true},"25":{"name":"anonymous","line":381,"loc":{"start":{"line":381,"column":22},"end":{"line":381,"column":84}},"skip":true},"26":{"name":"strip","line":384,"loc":{"start":{"line":384,"column":0},"end":{"line":384,"column":27}},"skip":true},"27":{"name":"Parser","line":497,"loc":{"start":{"line":497,"column":0},"end":{"line":497,"column":19}},"skip":true}},"statementMap":{"1":{"start":{"line":5,"column":0},"end":{"line":499,"column":5},"skip":true},"2":{"start":{"line":6,"column":0},"end":{"line":211,"column":2},"skip":true},"3":{"start":{"line":13,"column":0},"end":{"line":13,"column":23},"skip":true},"4":{"start":{"line":14,"column":0},"end":{"line":101,"column":1},"skip":true},"5":{"start":{"line":15,"column":8},"end":{"line":15,"column":53},"skip":true},"6":{"start":{"line":15,"column":54},"end":{"line":15,"column":70},"skip":true},"7":{"start":{"line":16,"column":0},"end":{"line":16,"column":6},"skip":true},"8":{"start":{"line":17,"column":7},"end":{"line":17,"column":75},"skip":true},"9":{"start":{"line":18,"column":0},"end":{"line":18,"column":6},"skip":true},"10":{"start":{"line":19,"column":7},"end":{"line":19,"column":23},"skip":true},"11":{"start":{"line":20,"column":0},"end":{"line":20,"column":6},"skip":true},"12":{"start":{"line":21,"column":7},"end":{"line":21,"column":23},"skip":true},"13":{"start":{"line":22,"column":0},"end":{"line":22,"column":6},"skip":true},"14":{"start":{"line":23,"column":7},"end":{"line":23,"column":23},"skip":true},"15":{"start":{"line":24,"column":0},"end":{"line":24,"column":6},"skip":true},"16":{"start":{"line":25,"column":7},"end":{"line":25,"column":23},"skip":true},"17":{"start":{"line":26,"column":0},"end":{"line":26,"column":6},"skip":true},"18":{"start":{"line":27,"column":7},"end":{"line":27,"column":52},"skip":true},"19":{"start":{"line":28,"column":0},"end":{"line":28,"column":6},"skip":true},"20":{"start":{"line":29,"column":7},"end":{"line":29,"column":52},"skip":true},"21":{"start":{"line":30,"column":0},"end":{"line":30,"column":6},"skip":true},"22":{"start":{"line":31,"column":7},"end":{"line":31,"column":73},"skip":true},"23":{"start":{"line":32,"column":0},"end":{"line":32,"column":6},"skip":true},"24":{"start":{"line":33,"column":8},"end":{"line":33,"column":70},"skip":true},"25":{"start":{"line":34,"column":0},"end":{"line":34,"column":6},"skip":true},"26":{"start":{"line":35,"column":8},"end":{"line":35,"column":87},"skip":true},"27":{"start":{"line":36,"column":0},"end":{"line":36,"column":6},"skip":true},"28":{"start":{"line":37,"column":8},"end":{"line":37,"column":86},"skip":true},"29":{"start":{"line":38,"column":0},"end":{"line":38,"column":6},"skip":true},"30":{"start":{"line":39,"column":8},"end":{"line":39,"column":105},"skip":true},"31":{"start":{"line":40,"column":0},"end":{"line":40,"column":6},"skip":true},"32":{"start":{"line":41,"column":8},"end":{"line":41,"column":105},"skip":true},"33":{"start":{"line":42,"column":0},"end":{"line":42,"column":6},"skip":true},"34":{"start":{"line":43,"column":8},"end":{"line":43,"column":79},"skip":true},"35":{"start":{"line":44,"column":0},"end":{"line":44,"column":6},"skip":true},"36":{"start":{"line":45,"column":8},"end":{"line":45,"column":74},"skip":true},"37":{"start":{"line":46,"column":0},"end":{"line":46,"column":6},"skip":true},"38":{"start":{"line":47,"column":8},"end":{"line":47,"column":105},"skip":true},"39":{"start":{"line":48,"column":0},"end":{"line":48,"column":6},"skip":true},"40":{"start":{"line":49,"column":8},"end":{"line":49,"column":105},"skip":true},"41":{"start":{"line":50,"column":0},"end":{"line":50,"column":6},"skip":true},"42":{"start":{"line":51,"column":8},"end":{"line":51,"column":108},"skip":true},"43":{"start":{"line":52,"column":0},"end":{"line":52,"column":6},"skip":true},"44":{"start":{"line":53,"column":8},"end":{"line":53,"column":109},"skip":true},"45":{"start":{"line":54,"column":0},"end":{"line":54,"column":6},"skip":true},"46":{"start":{"line":55,"column":8},"end":{"line":55,"column":80},"skip":true},"47":{"start":{"line":56,"column":0},"end":{"line":56,"column":6},"skip":true},"48":{"start":{"line":57,"column":8},"end":{"line":57,"column":59},"skip":true},"49":{"start":{"line":58,"column":0},"end":{"line":58,"column":6},"skip":true},"50":{"start":{"line":59,"column":8},"end":{"line":59,"column":24},"skip":true},"51":{"start":{"line":60,"column":0},"end":{"line":60,"column":6},"skip":true},"52":{"start":{"line":61,"column":8},"end":{"line":61,"column":52},"skip":true},"53":{"start":{"line":62,"column":0},"end":{"line":62,"column":6},"skip":true},"54":{"start":{"line":63,"column":8},"end":{"line":63,"column":52},"skip":true},"55":{"start":{"line":64,"column":0},"end":{"line":64,"column":6},"skip":true},"56":{"start":{"line":65,"column":8},"end":{"line":65,"column":53},"skip":true},"57":{"start":{"line":66,"column":0},"end":{"line":66,"column":6},"skip":true},"58":{"start":{"line":67,"column":8},"end":{"line":67,"column":24},"skip":true},"59":{"start":{"line":68,"column":0},"end":{"line":68,"column":6},"skip":true},"60":{"start":{"line":69,"column":8},"end":{"line":69,"column":33},"skip":true},"61":{"start":{"line":69,"column":34},"end":{"line":69,"column":52},"skip":true},"62":{"start":{"line":70,"column":0},"end":{"line":70,"column":6},"skip":true},"63":{"start":{"line":71,"column":8},"end":{"line":71,"column":50},"skip":true},"64":{"start":{"line":72,"column":0},"end":{"line":72,"column":6},"skip":true},"65":{"start":{"line":73,"column":8},"end":{"line":73,"column":36},"skip":true},"66":{"start":{"line":74,"column":0},"end":{"line":74,"column":6},"skip":true},"67":{"start":{"line":75,"column":8},"end":{"line":75,"column":57},"skip":true},"68":{"start":{"line":76,"column":0},"end":{"line":76,"column":6},"skip":true},"69":{"start":{"line":77,"column":8},"end":{"line":77,"column":85},"skip":true},"70":{"start":{"line":78,"column":0},"end":{"line":78,"column":6},"skip":true},"71":{"start":{"line":79,"column":8},"end":{"line":79,"column":76},"skip":true},"72":{"start":{"line":80,"column":0},"end":{"line":80,"column":6},"skip":true},"73":{"start":{"line":81,"column":8},"end":{"line":81,"column":50},"skip":true},"74":{"start":{"line":82,"column":0},"end":{"line":82,"column":6},"skip":true},"75":{"start":{"line":83,"column":8},"end":{"line":83,"column":48},"skip":true},"76":{"start":{"line":84,"column":0},"end":{"line":84,"column":6},"skip":true},"77":{"start":{"line":85,"column":9},"end":{"line":85,"column":60},"skip":true},"78":{"start":{"line":85,"column":61},"end":{"line":85,"column":79},"skip":true},"79":{"start":{"line":86,"column":0},"end":{"line":86,"column":6},"skip":true},"80":{"start":{"line":87,"column":8},"end":{"line":87,"column":34},"skip":true},"81":{"start":{"line":88,"column":0},"end":{"line":88,"column":6},"skip":true},"82":{"start":{"line":89,"column":8},"end":{"line":89,"column":20},"skip":true},"83":{"start":{"line":90,"column":0},"end":{"line":90,"column":6},"skip":true},"84":{"start":{"line":91,"column":8},"end":{"line":91,"column":30},"skip":true},"85":{"start":{"line":92,"column":0},"end":{"line":92,"column":6},"skip":true},"86":{"start":{"line":93,"column":8},"end":{"line":93,"column":20},"skip":true},"87":{"start":{"line":94,"column":0},"end":{"line":94,"column":6},"skip":true},"88":{"start":{"line":95,"column":8},"end":{"line":95,"column":30},"skip":true},"89":{"start":{"line":96,"column":0},"end":{"line":96,"column":6},"skip":true},"90":{"start":{"line":97,"column":8},"end":{"line":97,"column":26},"skip":true},"91":{"start":{"line":98,"column":0},"end":{"line":98,"column":6},"skip":true},"92":{"start":{"line":99,"column":8},"end":{"line":99,"column":30},"skip":true},"93":{"start":{"line":100,"column":0},"end":{"line":100,"column":6},"skip":true},"94":{"start":{"line":106,"column":4},"end":{"line":106,"column":25},"skip":true},"95":{"start":{"line":109,"column":4},"end":{"line":109,"column":159},"skip":true},"96":{"start":{"line":110,"column":4},"end":{"line":110,"column":31},"skip":true},"97":{"start":{"line":111,"column":4},"end":{"line":111,"column":28},"skip":true},"98":{"start":{"line":112,"column":4},"end":{"line":112,"column":31},"skip":true},"99":{"start":{"line":113,"column":4},"end":{"line":113,"column":26},"skip":true},"100":{"start":{"line":114,"column":4},"end":{"line":115,"column":31},"skip":true},"101":{"start":{"line":115,"column":8},"end":{"line":115,"column":31},"skip":true},"102":{"start":{"line":116,"column":4},"end":{"line":116,"column":34},"skip":true},"103":{"start":{"line":117,"column":4},"end":{"line":117,"column":23},"skip":true},"104":{"start":{"line":118,"column":4},"end":{"line":118,"column":65},"skip":true},"105":{"start":{"line":119,"column":4},"end":{"line":120,"column":45},"skip":true},"106":{"start":{"line":120,"column":8},"end":{"line":120,"column":45},"skip":true},"107":{"start":{"line":121,"column":4},"end":{"line":125,"column":5},"skip":true},"108":{"start":{"line":122,"column":8},"end":{"line":122,"column":44},"skip":true},"109":{"start":{"line":123,"column":8},"end":{"line":123,"column":42},"skip":true},"110":{"start":{"line":124,"column":8},"end":{"line":124,"column":42},"skip":true},"111":{"start":{"line":126,"column":4},"end":{"line":133,"column":5},"skip":true},"112":{"start":{"line":127,"column":8},"end":{"line":127,"column":18},"skip":true},"113":{"start":{"line":128,"column":8},"end":{"line":128,"column":38},"skip":true},"114":{"start":{"line":129,"column":8},"end":{"line":131,"column":9},"skip":true},"115":{"start":{"line":130,"column":12},"end":{"line":130,"column":50},"skip":true},"116":{"start":{"line":132,"column":8},"end":{"line":132,"column":21},"skip":true},"117":{"start":{"line":134,"column":4},"end":{"line":134,"column":92},"skip":true},"118":{"start":{"line":135,"column":4},"end":{"line":208,"column":5},"skip":true},"119":{"start":{"line":136,"column":8},"end":{"line":136,"column":40},"skip":true},"120":{"start":{"line":137,"column":8},"end":{"line":144,"column":9},"skip":true},"121":{"start":{"line":138,"column":12},"end":{"line":138,"column":48},"skip":true},"122":{"start":{"line":140,"column":12},"end":{"line":142,"column":13},"skip":true},"123":{"start":{"line":141,"column":16},"end":{"line":141,"column":31},"skip":true},"124":{"start":{"line":143,"column":12},"end":{"line":143,"column":58},"skip":true},"125":{"start":{"line":145,"column":8},"end":{"line":160,"column":9},"skip":true},"126":{"start":{"line":146,"column":12},"end":{"line":146,"column":28},"skip":true},"127":{"start":{"line":147,"column":12},"end":{"line":159,"column":13},"skip":true},"128":{"start":{"line":148,"column":16},"end":{"line":148,"column":30},"skip":true},"129":{"start":{"line":149,"column":16},"end":{"line":152,"column":21},"skip":true},"130":{"start":{"line":150,"column":20},"end":{"line":152,"column":21},"skip":true},"131":{"start":{"line":151,"column":24},"end":{"line":151,"column":70},"skip":true},"132":{"start":{"line":153,"column":16},"end":{"line":157,"column":17},"skip":true},"133":{"start":{"line":154,"column":20},"end":{"line":154,"column":200},"skip":true},"134":{"start":{"line":156,"column":20},"end":{"line":156,"column":166},"skip":true},"135":{"start":{"line":158,"column":16},"end":{"line":158,"column":167},"skip":true},"136":{"start":{"line":161,"column":8},"end":{"line":163,"column":9},"skip":true},"137":{"start":{"line":162,"column":12},"end":{"line":162,"column":112},"skip":true},"138":{"start":{"line":164,"column":8},"end":{"line":207,"column":9},"skip":true},"139":{"start":{"line":166,"column":12},"end":{"line":166,"column":31},"skip":true},"140":{"start":{"line":167,"column":12},"end":{"line":167,"column":43},"skip":true},"141":{"start":{"line":168,"column":12},"end":{"line":168,"column":43},"skip":true},"142":{"start":{"line":169,"column":12},"end":{"line":169,"column":34},"skip":true},"143":{"start":{"line":170,"column":12},"end":{"line":170,"column":26},"skip":true},"144":{"start":{"line":171,"column":12},"end":{"line":181,"column":13},"skip":true},"145":{"start":{"line":172,"column":16},"end":{"line":172,"column":43},"skip":true},"146":{"start":{"line":173,"column":16},"end":{"line":173,"column":43},"skip":true},"147":{"start":{"line":174,"column":16},"end":{"line":174,"column":47},"skip":true},"148":{"start":{"line":175,"column":16},"end":{"line":175,"column":42},"skip":true},"149":{"start":{"line":176,"column":16},"end":{"line":177,"column":33},"skip":true},"150":{"start":{"line":177,"column":20},"end":{"line":177,"column":33},"skip":true},"151":{"start":{"line":179,"column":16},"end":{"line":179,"column":40},"skip":true},"152":{"start":{"line":180,"column":16},"end":{"line":180,"column":38},"skip":true},"153":{"start":{"line":182,"column":12},"end":{"line":182,"column":18},"skip":true},"154":{"start":{"line":184,"column":12},"end":{"line":184,"column":50},"skip":true},"155":{"start":{"line":185,"column":12},"end":{"line":185,"column":50},"skip":true},"156":{"start":{"line":186,"column":12},"end":{"line":186,"column":246},"skip":true},"157":{"start":{"line":187,"column":12},"end":{"line":189,"column":13},"skip":true},"158":{"start":{"line":188,"column":16},"end":{"line":188,"column":115},"skip":true},"159":{"start":{"line":190,"column":12},"end":{"line":190,"column":109},"skip":true},"160":{"start":{"line":191,"column":12},"end":{"line":193,"column":13},"skip":true},"161":{"start":{"line":192,"column":16},"end":{"line":192,"column":25},"skip":true},"162":{"start":{"line":194,"column":12},"end":{"line":198,"column":13},"skip":true},"163":{"start":{"line":195,"column":16},"end":{"line":195,"column":53},"skip":true},"164":{"start":{"line":196,"column":16},"end":{"line":196,"column":51},"skip":true},"165":{"start":{"line":197,"column":16},"end":{"line":197,"column":51},"skip":true},"166":{"start":{"line":199,"column":12},"end":{"line":199,"column":56},"skip":true},"167":{"start":{"line":200,"column":12},"end":{"line":200,"column":33},"skip":true},"168":{"start":{"line":201,"column":12},"end":{"line":201,"column":34},"skip":true},"169":{"start":{"line":202,"column":12},"end":{"line":202,"column":79},"skip":true},"170":{"start":{"line":203,"column":12},"end":{"line":203,"column":33},"skip":true},"171":{"start":{"line":204,"column":12},"end":{"line":204,"column":18},"skip":true},"172":{"start":{"line":206,"column":12},"end":{"line":206,"column":24},"skip":true},"173":{"start":{"line":209,"column":4},"end":{"line":209,"column":16},"skip":true},"174":{"start":{"line":213,"column":0},"end":{"line":496,"column":0},"skip":true},"175":{"start":{"line":214,"column":0},"end":{"line":379,"column":8},"skip":true},"176":{"start":{"line":216,"column":8},"end":{"line":220,"column":9},"skip":true},"177":{"start":{"line":217,"column":12},"end":{"line":217,"column":49},"skip":true},"178":{"start":{"line":219,"column":12},"end":{"line":219,"column":33},"skip":true},"179":{"start":{"line":223,"column":8},"end":{"line":223,"column":28},"skip":true},"180":{"start":{"line":224,"column":8},"end":{"line":224,"column":52},"skip":true},"181":{"start":{"line":225,"column":8},"end":{"line":225,"column":40},"skip":true},"182":{"start":{"line":226,"column":8},"end":{"line":226,"column":53},"skip":true},"183":{"start":{"line":227,"column":8},"end":{"line":227,"column":42},"skip":true},"184":{"start":{"line":228,"column":8},"end":{"line":228,"column":78},"skip":true},"185":{"start":{"line":229,"column":8},"end":{"line":229,"column":59},"skip":true},"186":{"start":{"line":229,"column":33},"end":{"line":229,"column":59},"skip":true},"187":{"start":{"line":230,"column":8},"end":{"line":230,"column":24},"skip":true},"188":{"start":{"line":231,"column":8},"end":{"line":231,"column":20},"skip":true},"189":{"start":{"line":234,"column":8},"end":{"line":234,"column":32},"skip":true},"190":{"start":{"line":235,"column":8},"end":{"line":235,"column":26},"skip":true},"191":{"start":{"line":236,"column":8},"end":{"line":236,"column":22},"skip":true},"192":{"start":{"line":237,"column":8},"end":{"line":237,"column":22},"skip":true},"193":{"start":{"line":238,"column":8},"end":{"line":238,"column":25},"skip":true},"194":{"start":{"line":239,"column":8},"end":{"line":239,"column":27},"skip":true},"195":{"start":{"line":240,"column":8},"end":{"line":240,"column":48},"skip":true},"196":{"start":{"line":241,"column":8},"end":{"line":246,"column":9},"skip":true},"197":{"start":{"line":242,"column":12},"end":{"line":242,"column":28},"skip":true},"198":{"start":{"line":243,"column":12},"end":{"line":243,"column":36},"skip":true},"199":{"start":{"line":245,"column":12},"end":{"line":245,"column":38},"skip":true},"200":{"start":{"line":247,"column":8},"end":{"line":247,"column":56},"skip":true},"201":{"start":{"line":247,"column":33},"end":{"line":247,"column":56},"skip":true},"202":{"start":{"line":249,"column":8},"end":{"line":249,"column":43},"skip":true},"203":{"start":{"line":250,"column":8},"end":{"line":250,"column":18},"skip":true},"204":{"start":{"line":253,"column":8},"end":{"line":253,"column":28},"skip":true},"205":{"start":{"line":254,"column":8},"end":{"line":254,"column":46},"skip":true},"206":{"start":{"line":256,"column":8},"end":{"line":256,"column":39},"skip":true},"207":{"start":{"line":257,"column":8},"end":{"line":257,"column":70},"skip":true},"208":{"start":{"line":259,"column":8},"end":{"line":259,"column":27},"skip":true},"209":{"start":{"line":260,"column":8},"end":{"line":260,"column":57},"skip":true},"210":{"start":{"line":261,"column":8},"end":{"line":261,"column":63},"skip":true},"211":{"start":{"line":262,"column":8},"end":{"line":262,"column":69},"skip":true},"212":{"start":{"line":264,"column":8},"end":{"line":264,"column":60},"skip":true},"213":{"start":{"line":264,"column":28},"end":{"line":264,"column":60},"skip":true},"214":{"start":{"line":265,"column":8},"end":{"line":265,"column":34},"skip":true},"215":{"start":{"line":267,"column":8},"end":{"line":273,"column":12},"skip":true},"216":{"start":{"line":275,"column":8},"end":{"line":277,"column":9},"skip":true},"217":{"start":{"line":276,"column":12},"end":{"line":276,"column":65},"skip":true},"218":{"start":{"line":278,"column":8},"end":{"line":278,"column":20},"skip":true},"219":{"start":{"line":281,"column":8},"end":{"line":281,"column":26},"skip":true},"220":{"start":{"line":282,"column":8},"end":{"line":282,"column":20},"skip":true},"221":{"start":{"line":285,"column":8},"end":{"line":285,"column":40},"skip":true},"222":{"start":{"line":288,"column":8},"end":{"line":288,"column":83},"skip":true},"223":{"start":{"line":289,"column":8},"end":{"line":289,"column":83},"skip":true},"224":{"start":{"line":292,"column":8},"end":{"line":292,"column":30},"skip":true},"225":{"start":{"line":293,"column":8},"end":{"line":295,"column":9},"skip":true},"226":{"start":{"line":294,"column":12},"end":{"line":294,"column":58},"skip":true},"227":{"start":{"line":296,"column":8},"end":{"line":296,"column":84},"skip":true},"228":{"start":{"line":299,"column":8},"end":{"line":299,"column":35},"skip":true},"229":{"start":{"line":300,"column":8},"end":{"line":300,"column":52},"skip":true},"230":{"start":{"line":301,"column":8},"end":{"line":301,"column":57},"skip":true},"231":{"start":{"line":304,"column":8},"end":{"line":306,"column":9},"skip":true},"232":{"start":{"line":305,"column":12},"end":{"line":305,"column":28},"skip":true},"233":{"start":{"line":307,"column":8},"end":{"line":307,"column":43},"skip":true},"234":{"start":{"line":307,"column":26},"end":{"line":307,"column":43},"skip":true},"235":{"start":{"line":309,"column":8},"end":{"line":314,"column":18},"skip":true},"236":{"start":{"line":315,"column":8},"end":{"line":318,"column":9},"skip":true},"237":{"start":{"line":316,"column":12},"end":{"line":316,"column":29},"skip":true},"238":{"start":{"line":317,"column":12},"end":{"line":317,"column":28},"skip":true},"239":{"start":{"line":319,"column":8},"end":{"line":319,"column":41},"skip":true},"240":{"start":{"line":320,"column":8},"end":{"line":327,"column":9},"skip":true},"241":{"start":{"line":321,"column":12},"end":{"line":321,"column":64},"skip":true},"242":{"start":{"line":322,"column":12},"end":{"line":326,"column":13},"skip":true},"243":{"start":{"line":323,"column":16},"end":{"line":323,"column":34},"skip":true},"244":{"start":{"line":324,"column":16},"end":{"line":324,"column":26},"skip":true},"245":{"start":{"line":325,"column":16},"end":{"line":325,"column":46},"skip":true},"246":{"start":{"line":325,"column":40},"end":{"line":325,"column":46},"skip":true},"247":{"start":{"line":328,"column":8},"end":{"line":349,"column":9},"skip":true},"248":{"start":{"line":329,"column":12},"end":{"line":329,"column":54},"skip":true},"249":{"start":{"line":330,"column":12},"end":{"line":330,"column":53},"skip":true},"250":{"start":{"line":330,"column":23},"end":{"line":330,"column":53},"skip":true},"251":{"start":{"line":331,"column":12},"end":{"line":334,"column":170},"skip":true},"252":{"start":{"line":335,"column":12},"end":{"line":335,"column":36},"skip":true},"253":{"start":{"line":336,"column":12},"end":{"line":336,"column":35},"skip":true},"254":{"start":{"line":337,"column":12},"end":{"line":337,"column":33},"skip":true},"255":{"start":{"line":338,"column":12},"end":{"line":338,"column":45},"skip":true},"256":{"start":{"line":339,"column":12},"end":{"line":341,"column":13},"skip":true},"257":{"start":{"line":340,"column":16},"end":{"line":340,"column":78},"skip":true},"258":{"start":{"line":342,"column":12},"end":{"line":342,"column":31},"skip":true},"259":{"start":{"line":343,"column":12},"end":{"line":343,"column":61},"skip":true},"260":{"start":{"line":344,"column":12},"end":{"line":344,"column":37},"skip":true},"261":{"start":{"line":345,"column":12},"end":{"line":345,"column":129},"skip":true},"262":{"start":{"line":346,"column":12},"end":{"line":346,"column":60},"skip":true},"263":{"start":{"line":346,"column":42},"end":{"line":346,"column":60},"skip":true},"264":{"start":{"line":347,"column":12},"end":{"line":348,"column":24},"skip":true},"265":{"start":{"line":347,"column":23},"end":{"line":347,"column":36},"skip":true},"266":{"start":{"line":348,"column":17},"end":{"line":348,"column":24},"skip":true},"267":{"start":{"line":350,"column":8},"end":{"line":355,"column":9},"skip":true},"268":{"start":{"line":351,"column":12},"end":{"line":351,"column":28},"skip":true},"269":{"start":{"line":353,"column":12},"end":{"line":354,"column":66},"skip":true},"270":{"start":{"line":358,"column":8},"end":{"line":358,"column":28},"skip":true},"271":{"start":{"line":359,"column":8},"end":{"line":363,"column":9},"skip":true},"272":{"start":{"line":360,"column":12},"end":{"line":360,"column":21},"skip":true},"273":{"start":{"line":362,"column":12},"end":{"line":362,"column":30},"skip":true},"274":{"start":{"line":366,"column":8},"end":{"line":366,"column":44},"skip":true},"275":{"start":{"line":369,"column":8},"end":{"line":369,"column":41},"skip":true},"276":{"start":{"line":372,"column":8},"end":{"line":372,"column":88},"skip":true},"277":{"start":{"line":375,"column":8},"end":{"line":375,"column":65},"skip":true},"278":{"start":{"line":378,"column":8},"end":{"line":378,"column":30},"skip":true},"279":{"start":{"line":380,"column":0},"end":{"line":380,"column":19},"skip":true},"280":{"start":{"line":381,"column":0},"end":{"line":492,"column":2},"skip":true},"281":{"start":{"line":384,"column":0},"end":{"line":386,"column":1},"skip":true},"282":{"start":{"line":385,"column":2},"end":{"line":385,"column":63},"skip":true},"283":{"start":{"line":389,"column":0},"end":{"line":390,"column":0},"skip":true},"284":{"start":{"line":390,"column":0},"end":{"line":491,"column":1},"skip":true},"285":{"start":{"line":392,"column":35},"end":{"line":400,"column":36},"skip":true},"286":{"start":{"line":393,"column":37},"end":{"line":393,"column":48},"skip":true},"287":{"start":{"line":394,"column":37},"end":{"line":394,"column":54},"skip":true},"288":{"start":{"line":395,"column":42},"end":{"line":400,"column":36},"skip":true},"289":{"start":{"line":396,"column":37},"end":{"line":396,"column":48},"skip":true},"290":{"start":{"line":397,"column":37},"end":{"line":397,"column":55},"skip":true},"291":{"start":{"line":399,"column":37},"end":{"line":399,"column":54},"skip":true},"292":{"start":{"line":401,"column":35},"end":{"line":401,"column":60},"skip":true},"293":{"start":{"line":401,"column":50},"end":{"line":401,"column":60},"skip":true},"294":{"start":{"line":403,"column":0},"end":{"line":403,"column":6},"skip":true},"295":{"start":{"line":404,"column":7},"end":{"line":404,"column":17},"skip":true},"296":{"start":{"line":405,"column":0},"end":{"line":405,"column":6},"skip":true},"297":{"start":{"line":407,"column":35},"end":{"line":407,"column":51},"skip":true},"298":{"start":{"line":408,"column":35},"end":{"line":408,"column":45},"skip":true},"299":{"start":{"line":410,"column":0},"end":{"line":410,"column":6},"skip":true},"300":{"start":{"line":412,"column":34},"end":{"line":412,"column":82},"skip":true},"301":{"start":{"line":413,"column":34},"end":{"line":413,"column":50},"skip":true},"302":{"start":{"line":414,"column":34},"end":{"line":414,"column":44},"skip":true},"303":{"start":{"line":416,"column":0},"end":{"line":416,"column":6},"skip":true},"304":{"start":{"line":417,"column":8},"end":{"line":417,"column":18},"skip":true},"305":{"start":{"line":418,"column":0},"end":{"line":418,"column":6},"skip":true},"306":{"start":{"line":419,"column":7},"end":{"line":419,"column":18},"skip":true},"307":{"start":{"line":419,"column":19},"end":{"line":419,"column":35},"skip":true},"308":{"start":{"line":419,"column":36},"end":{"line":419,"column":46},"skip":true},"309":{"start":{"line":420,"column":0},"end":{"line":420,"column":6},"skip":true},"310":{"start":{"line":421,"column":7},"end":{"line":421,"column":17},"skip":true},"311":{"start":{"line":422,"column":0},"end":{"line":422,"column":6},"skip":true},"312":{"start":{"line":423,"column":7},"end":{"line":423,"column":17},"skip":true},"313":{"start":{"line":424,"column":0},"end":{"line":424,"column":6},"skip":true},"314":{"start":{"line":425,"column":8},"end":{"line":425,"column":18},"skip":true},"315":{"start":{"line":426,"column":0},"end":{"line":426,"column":6},"skip":true},"316":{"start":{"line":428,"column":34},"end":{"line":428,"column":50},"skip":true},"317":{"start":{"line":429,"column":34},"end":{"line":429,"column":52},"skip":true},"318":{"start":{"line":430,"column":34},"end":{"line":430,"column":44},"skip":true},"319":{"start":{"line":432,"column":0},"end":{"line":432,"column":6},"skip":true},"320":{"start":{"line":433,"column":8},"end":{"line":433,"column":18},"skip":true},"321":{"start":{"line":434,"column":0},"end":{"line":434,"column":6},"skip":true},"322":{"start":{"line":435,"column":8},"end":{"line":435,"column":18},"skip":true},"323":{"start":{"line":436,"column":0},"end":{"line":436,"column":6},"skip":true},"324":{"start":{"line":437,"column":8},"end":{"line":437,"column":18},"skip":true},"325":{"start":{"line":438,"column":0},"end":{"line":438,"column":6},"skip":true},"326":{"start":{"line":439,"column":8},"end":{"line":439,"column":24},"skip":true},"327":{"start":{"line":439,"column":25},"end":{"line":439,"column":35},"skip":true},"328":{"start":{"line":440,"column":0},"end":{"line":440,"column":6},"skip":true},"329":{"start":{"line":441,"column":8},"end":{"line":441,"column":24},"skip":true},"330":{"start":{"line":441,"column":25},"end":{"line":441,"column":35},"skip":true},"331":{"start":{"line":442,"column":0},"end":{"line":442,"column":6},"skip":true},"332":{"start":{"line":443,"column":8},"end":{"line":443,"column":18},"skip":true},"333":{"start":{"line":444,"column":0},"end":{"line":444,"column":6},"skip":true},"334":{"start":{"line":445,"column":8},"end":{"line":445,"column":18},"skip":true},"335":{"start":{"line":446,"column":0},"end":{"line":446,"column":6},"skip":true},"336":{"start":{"line":447,"column":8},"end":{"line":447,"column":18},"skip":true},"337":{"start":{"line":448,"column":0},"end":{"line":448,"column":6},"skip":true},"338":{"start":{"line":449,"column":8},"end":{"line":449,"column":18},"skip":true},"339":{"start":{"line":450,"column":0},"end":{"line":450,"column":6},"skip":true},"340":{"start":{"line":451,"column":8},"end":{"line":451,"column":24},"skip":true},"341":{"start":{"line":451,"column":25},"end":{"line":451,"column":43},"skip":true},"342":{"start":{"line":452,"column":0},"end":{"line":452,"column":6},"skip":true},"343":{"start":{"line":453,"column":8},"end":{"line":453,"column":19},"skip":true},"344":{"start":{"line":453,"column":20},"end":{"line":453,"column":36},"skip":true},"345":{"start":{"line":453,"column":37},"end":{"line":453,"column":47},"skip":true},"346":{"start":{"line":454,"column":0},"end":{"line":454,"column":6},"skip":true},"347":{"start":{"line":455,"column":8},"end":{"line":455,"column":18},"skip":true},"348":{"start":{"line":456,"column":0},"end":{"line":456,"column":6},"skip":true},"349":{"start":{"line":457,"column":8},"end":{"line":457,"column":18},"skip":true},"350":{"start":{"line":458,"column":0},"end":{"line":458,"column":6},"skip":true},"351":{"start":{"line":459,"column":8},"end":{"line":459,"column":18},"skip":true},"352":{"start":{"line":460,"column":0},"end":{"line":460,"column":6},"skip":true},"353":{"start":{"line":461,"column":8},"end":{"line":461,"column":18},"skip":true},"354":{"start":{"line":462,"column":0},"end":{"line":462,"column":6},"skip":true},"355":{"start":{"line":463,"column":8},"end":{"line":463,"column":18},"skip":true},"356":{"start":{"line":464,"column":0},"end":{"line":464,"column":6},"skip":true},"357":{"start":{"line":466,"column":0},"end":{"line":466,"column":6},"skip":true},"358":{"start":{"line":467,"column":8},"end":{"line":467,"column":24},"skip":true},"359":{"start":{"line":467,"column":25},"end":{"line":467,"column":35},"skip":true},"360":{"start":{"line":468,"column":0},"end":{"line":468,"column":6},"skip":true},"361":{"start":{"line":469,"column":8},"end":{"line":469,"column":24},"skip":true},"362":{"start":{"line":469,"column":25},"end":{"line":469,"column":35},"skip":true},"363":{"start":{"line":470,"column":0},"end":{"line":470,"column":6},"skip":true},"364":{"start":{"line":471,"column":8},"end":{"line":471,"column":52},"skip":true},"365":{"start":{"line":471,"column":53},"end":{"line":471,"column":63},"skip":true},"366":{"start":{"line":472,"column":0},"end":{"line":472,"column":6},"skip":true},"367":{"start":{"line":473,"column":8},"end":{"line":473,"column":52},"skip":true},"368":{"start":{"line":473,"column":53},"end":{"line":473,"column":63},"skip":true},"369":{"start":{"line":474,"column":0},"end":{"line":474,"column":6},"skip":true},"370":{"start":{"line":475,"column":8},"end":{"line":475,"column":18},"skip":true},"371":{"start":{"line":476,"column":0},"end":{"line":476,"column":6},"skip":true},"372":{"start":{"line":477,"column":8},"end":{"line":477,"column":18},"skip":true},"373":{"start":{"line":478,"column":0},"end":{"line":478,"column":6},"skip":true},"374":{"start":{"line":479,"column":8},"end":{"line":479,"column":18},"skip":true},"375":{"start":{"line":480,"column":0},"end":{"line":480,"column":6},"skip":true},"376":{"start":{"line":481,"column":8},"end":{"line":481,"column":18},"skip":true},"377":{"start":{"line":482,"column":0},"end":{"line":482,"column":6},"skip":true},"378":{"start":{"line":483,"column":8},"end":{"line":483,"column":18},"skip":true},"379":{"start":{"line":484,"column":0},"end":{"line":484,"column":6},"skip":true},"380":{"start":{"line":485,"column":8},"end":{"line":485,"column":32},"skip":true},"381":{"start":{"line":485,"column":33},"end":{"line":485,"column":43},"skip":true},"382":{"start":{"line":486,"column":0},"end":{"line":486,"column":6},"skip":true},"383":{"start":{"line":487,"column":8},"end":{"line":487,"column":25},"skip":true},"384":{"start":{"line":488,"column":0},"end":{"line":488,"column":6},"skip":true},"385":{"start":{"line":489,"column":8},"end":{"line":489,"column":17},"skip":true},"386":{"start":{"line":490,"column":0},"end":{"line":490,"column":6},"skip":true},"387":{"start":{"line":493,"column":0},"end":{"line":493,"column":879},"skip":true},"388":{"start":{"line":494,"column":0},"end":{"line":494,"column":313},"skip":true},"389":{"start":{"line":495,"column":0},"end":{"line":495,"column":13},"skip":true},"390":{"start":{"line":496,"column":0},"end":{"line":496,"column":21},"skip":true},"391":{"start":{"line":497,"column":0},"end":{"line":497,"column":36},"skip":true},"392":{"start":{"line":497,"column":21},"end":{"line":497,"column":34},"skip":true},"393":{"start":{"line":497,"column":36},"end":{"line":497,"column":62},"skip":true},"394":{"start":{"line":497,"column":62},"end":{"line":497,"column":85},"skip":true},"395":{"start":{"line":498,"column":0},"end":{"line":498,"column":18},"skip":true},"396":{"start":{"line":499,"column":5},"end":{"line":499,"column":37}}},"branchMap":{"1":{"line":14,"type":"switch","locations":[{"start":{"line":15,"column":0},"end":{"line":16,"column":6},"skip":true},{"start":{"line":17,"column":0},"end":{"line":18,"column":6},"skip":true},{"start":{"line":19,"column":0},"end":{"line":20,"column":6},"skip":true},{"start":{"line":21,"column":0},"end":{"line":22,"column":6},"skip":true},{"start":{"line":23,"column":0},"end":{"line":24,"column":6},"skip":true},{"start":{"line":25,"column":0},"end":{"line":26,"column":6},"skip":true},{"start":{"line":27,"column":0},"end":{"line":28,"column":6},"skip":true},{"start":{"line":29,"column":0},"end":{"line":30,"column":6},"skip":true},{"start":{"line":31,"column":0},"end":{"line":32,"column":6},"skip":true},{"start":{"line":33,"column":0},"end":{"line":34,"column":6},"skip":true},{"start":{"line":35,"column":0},"end":{"line":36,"column":6},"skip":true},{"start":{"line":37,"column":0},"end":{"line":38,"column":6},"skip":true},{"start":{"line":39,"column":0},"end":{"line":40,"column":6},"skip":true},{"start":{"line":41,"column":0},"end":{"line":42,"column":6},"skip":true},{"start":{"line":43,"column":0},"end":{"line":44,"column":6},"skip":true},{"start":{"line":45,"column":0},"end":{"line":46,"column":6},"skip":true},{"start":{"line":47,"column":0},"end":{"line":48,"column":6},"skip":true},{"start":{"line":49,"column":0},"end":{"line":50,"column":6},"skip":true},{"start":{"line":51,"column":0},"end":{"line":52,"column":6},"skip":true},{"start":{"line":53,"column":0},"end":{"line":54,"column":6},"skip":true},{"start":{"line":55,"column":0},"end":{"line":56,"column":6},"skip":true},{"start":{"line":57,"column":0},"end":{"line":58,"column":6},"skip":true},{"start":{"line":59,"column":0},"end":{"line":60,"column":6},"skip":true},{"start":{"line":61,"column":0},"end":{"line":62,"column":6},"skip":true},{"start":{"line":63,"column":0},"end":{"line":64,"column":6},"skip":true},{"start":{"line":65,"column":0},"end":{"line":66,"column":6},"skip":true},{"start":{"line":67,"column":0},"end":{"line":68,"column":6},"skip":true},{"start":{"line":69,"column":0},"end":{"line":70,"column":6},"skip":true},{"start":{"line":71,"column":0},"end":{"line":72,"column":6},"skip":true},{"start":{"line":73,"column":0},"end":{"line":74,"column":6},"skip":true},{"start":{"line":75,"column":0},"end":{"line":76,"column":6},"skip":true},{"start":{"line":77,"column":0},"end":{"line":78,"column":6},"skip":true},{"start":{"line":79,"column":0},"end":{"line":80,"column":6},"skip":true},{"start":{"line":81,"column":0},"end":{"line":82,"column":6},"skip":true},{"start":{"line":83,"column":0},"end":{"line":84,"column":6},"skip":true},{"start":{"line":85,"column":0},"end":{"line":86,"column":6},"skip":true},{"start":{"line":87,"column":0},"end":{"line":88,"column":6},"skip":true},{"start":{"line":89,"column":0},"end":{"line":90,"column":6},"skip":true},{"start":{"line":91,"column":0},"end":{"line":92,"column":6},"skip":true},{"start":{"line":93,"column":0},"end":{"line":94,"column":6},"skip":true},{"start":{"line":95,"column":0},"end":{"line":96,"column":6},"skip":true},{"start":{"line":97,"column":0},"end":{"line":98,"column":6},"skip":true},{"start":{"line":99,"column":0},"end":{"line":100,"column":6},"skip":true}]},"2":{"line":114,"type":"if","locations":[{"start":{"line":114,"column":4},"end":{"line":114,"column":4},"skip":true},{"start":{"line":114,"column":4},"end":{"line":114,"column":4},"skip":true}]},"3":{"line":118,"type":"binary-expr","locations":[{"start":{"line":118,"column":17},"end":{"line":118,"column":35},"skip":true},{"start":{"line":118,"column":39},"end":{"line":118,"column":64},"skip":true}]},"4":{"line":119,"type":"if","locations":[{"start":{"line":119,"column":4},"end":{"line":119,"column":4},"skip":true},{"start":{"line":119,"column":4},"end":{"line":119,"column":4},"skip":true}]},"5":{"line":128,"type":"binary-expr","locations":[{"start":{"line":128,"column":16},"end":{"line":128,"column":32},"skip":true},{"start":{"line":128,"column":36},"end":{"line":128,"column":37},"skip":true}]},"6":{"line":129,"type":"if","locations":[{"start":{"line":129,"column":8},"end":{"line":129,"column":8},"skip":true},{"start":{"line":129,"column":8},"end":{"line":129,"column":8},"skip":true}]},"7":{"line":130,"type":"binary-expr","locations":[{"start":{"line":130,"column":20},"end":{"line":130,"column":40},"skip":true},{"start":{"line":130,"column":44},"end":{"line":130,"column":49},"skip":true}]},"8":{"line":137,"type":"if","locations":[{"start":{"line":137,"column":8},"end":{"line":137,"column":8},"skip":true},{"start":{"line":137,"column":8},"end":{"line":137,"column":8},"skip":true}]},"9":{"line":140,"type":"if","locations":[{"start":{"line":140,"column":12},"end":{"line":140,"column":12},"skip":true},{"start":{"line":140,"column":12},"end":{"line":140,"column":12},"skip":true}]},"10":{"line":140,"type":"binary-expr","locations":[{"start":{"line":140,"column":16},"end":{"line":140,"column":31},"skip":true},{"start":{"line":140,"column":35},"end":{"line":140,"column":63},"skip":true}]},"11":{"line":143,"type":"binary-expr","locations":[{"start":{"line":143,"column":21},"end":{"line":143,"column":33},"skip":true},{"start":{"line":143,"column":37},"end":{"line":143,"column":57},"skip":true}]},"12":{"line":145,"type":"if","locations":[{"start":{"line":145,"column":8},"end":{"line":145,"column":8},"skip":true},{"start":{"line":145,"column":8},"end":{"line":145,"column":8},"skip":true}]},"13":{"line":145,"type":"binary-expr","locations":[{"start":{"line":145,"column":12},"end":{"line":145,"column":41},"skip":true},{"start":{"line":145,"column":45},"end":{"line":145,"column":59},"skip":true},{"start":{"line":145,"column":63},"end":{"line":145,"column":73},"skip":true}]},"14":{"line":147,"type":"if","locations":[{"start":{"line":147,"column":12},"end":{"line":147,"column":12},"skip":true},{"start":{"line":147,"column":12},"end":{"line":147,"column":12},"skip":true}]},"15":{"line":150,"type":"if","locations":[{"start":{"line":150,"column":20},"end":{"line":150,"column":20},"skip":true},{"start":{"line":150,"column":20},"end":{"line":150,"column":20},"skip":true}]},"16":{"line":150,"type":"binary-expr","locations":[{"start":{"line":150,"column":24},"end":{"line":150,"column":42},"skip":true},{"start":{"line":150,"column":46},"end":{"line":150,"column":51},"skip":true}]},"17":{"line":153,"type":"if","locations":[{"start":{"line":153,"column":16},"end":{"line":153,"column":16},"skip":true},{"start":{"line":153,"column":16},"end":{"line":153,"column":16},"skip":true}]},"18":{"line":154,"type":"binary-expr","locations":[{"start":{"line":154,"column":159},"end":{"line":154,"column":182},"skip":true},{"start":{"line":154,"column":186},"end":{"line":154,"column":192},"skip":true}]},"19":{"line":156,"type":"cond-expr","locations":[{"start":{"line":156,"column":102},"end":{"line":156,"column":116},"skip":true},{"start":{"line":156,"column":117},"end":{"line":156,"column":164},"skip":true}]},"20":{"line":156,"type":"binary-expr","locations":[{"start":{"line":156,"column":124},"end":{"line":156,"column":147},"skip":true},{"start":{"line":156,"column":151},"end":{"line":156,"column":157},"skip":true}]},"21":{"line":158,"type":"binary-expr","locations":[{"start":{"line":158,"column":72},"end":{"line":158,"column":95},"skip":true},{"start":{"line":158,"column":99},"end":{"line":158,"column":105},"skip":true}]},"22":{"line":161,"type":"if","locations":[{"start":{"line":161,"column":8},"end":{"line":161,"column":8},"skip":true},{"start":{"line":161,"column":8},"end":{"line":161,"column":8},"skip":true}]},"23":{"line":161,"type":"binary-expr","locations":[{"start":{"line":161,"column":12},"end":{"line":161,"column":38},"skip":true},{"start":{"line":161,"column":42},"end":{"line":161,"column":59},"skip":true}]},"24":{"line":164,"type":"switch","locations":[{"start":{"line":165,"column":8},"end":{"line":182,"column":18},"skip":true},{"start":{"line":183,"column":8},"end":{"line":204,"column":18},"skip":true},{"start":{"line":205,"column":8},"end":{"line":206,"column":24},"skip":true}]},"25":{"line":171,"type":"if","locations":[{"start":{"line":171,"column":12},"end":{"line":171,"column":12},"skip":true},{"start":{"line":171,"column":12},"end":{"line":171,"column":12},"skip":true}]},"26":{"line":176,"type":"if","locations":[{"start":{"line":176,"column":16},"end":{"line":176,"column":16},"skip":true},{"start":{"line":176,"column":16},"end":{"line":176,"column":16},"skip":true}]},"27":{"line":186,"type":"binary-expr","locations":[{"start":{"line":186,"column":60},"end":{"line":186,"column":63},"skip":true},{"start":{"line":186,"column":67},"end":{"line":186,"column":68},"skip":true}]},"28":{"line":186,"type":"binary-expr","locations":[{"start":{"line":186,"column":169},"end":{"line":186,"column":172},"skip":true},{"start":{"line":186,"column":176},"end":{"line":186,"column":177},"skip":true}]},"29":{"line":187,"type":"if","locations":[{"start":{"line":187,"column":12},"end":{"line":187,"column":12},"skip":true},{"start":{"line":187,"column":12},"end":{"line":187,"column":12},"skip":true}]},"30":{"line":188,"type":"binary-expr","locations":[{"start":{"line":188,"column":58},"end":{"line":188,"column":61},"skip":true},{"start":{"line":188,"column":65},"end":{"line":188,"column":66},"skip":true}]},"31":{"line":191,"type":"if","locations":[{"start":{"line":191,"column":12},"end":{"line":191,"column":12},"skip":true},{"start":{"line":191,"column":12},"end":{"line":191,"column":12},"skip":true}]},"32":{"line":194,"type":"if","locations":[{"start":{"line":194,"column":12},"end":{"line":194,"column":12},"skip":true},{"start":{"line":194,"column":12},"end":{"line":194,"column":12},"skip":true}]},"33":{"line":216,"type":"if","locations":[{"start":{"line":216,"column":8},"end":{"line":216,"column":8},"skip":true},{"start":{"line":216,"column":8},"end":{"line":216,"column":8},"skip":true}]},"34":{"line":229,"type":"if","locations":[{"start":{"line":229,"column":8},"end":{"line":229,"column":8},"skip":true},{"start":{"line":229,"column":8},"end":{"line":229,"column":8},"skip":true}]},"35":{"line":241,"type":"if","locations":[{"start":{"line":241,"column":8},"end":{"line":241,"column":8},"skip":true},{"start":{"line":241,"column":8},"end":{"line":241,"column":8},"skip":true}]},"36":{"line":247,"type":"if","locations":[{"start":{"line":247,"column":8},"end":{"line":247,"column":8},"skip":true},{"start":{"line":247,"column":8},"end":{"line":247,"column":8},"skip":true}]},"37":{"line":264,"type":"if","locations":[{"start":{"line":264,"column":8},"end":{"line":264,"column":8},"skip":true},{"start":{"line":264,"column":8},"end":{"line":264,"column":8},"skip":true}]},"38":{"line":270,"type":"cond-expr","locations":[{"start":{"line":271,"column":14},"end":{"line":271,"column":147},"skip":true},{"start":{"line":272,"column":14},"end":{"line":272,"column":44},"skip":true}]},"39":{"line":271,"type":"cond-expr","locations":[{"start":{"line":271,"column":50},"end":{"line":271,"column":74},"skip":true},{"start":{"line":271,"column":77},"end":{"line":271,"column":78},"skip":true}]},"40":{"line":275,"type":"if","locations":[{"start":{"line":275,"column":8},"end":{"line":275,"column":8},"skip":true},{"start":{"line":275,"column":8},"end":{"line":275,"column":8},"skip":true}]},"41":{"line":289,"type":"cond-expr","locations":[{"start":{"line":289,"column":35},"end":{"line":289,"column":40},"skip":true},{"start":{"line":289,"column":41},"end":{"line":289,"column":43},"skip":true}]},"42":{"line":293,"type":"if","locations":[{"start":{"line":293,"column":8},"end":{"line":293,"column":8},"skip":true},{"start":{"line":293,"column":8},"end":{"line":293,"column":8},"skip":true}]},"43":{"line":296,"type":"cond-expr","locations":[{"start":{"line":296,"column":54},"end":{"line":296,"column":59},"skip":true},{"start":{"line":296,"column":60},"end":{"line":296,"column":62},"skip":true}]},"44":{"line":304,"type":"if","locations":[{"start":{"line":304,"column":8},"end":{"line":304,"column":8},"skip":true},{"start":{"line":304,"column":8},"end":{"line":304,"column":8},"skip":true}]},"45":{"line":307,"type":"if","locations":[{"start":{"line":307,"column":8},"end":{"line":307,"column":8},"skip":true},{"start":{"line":307,"column":8},"end":{"line":307,"column":8},"skip":true}]},"46":{"line":315,"type":"if","locations":[{"start":{"line":315,"column":8},"end":{"line":315,"column":8},"skip":true},{"start":{"line":315,"column":8},"end":{"line":315,"column":8},"skip":true}]},"47":{"line":322,"type":"if","locations":[{"start":{"line":322,"column":12},"end":{"line":322,"column":12},"skip":true},{"start":{"line":322,"column":12},"end":{"line":322,"column":12},"skip":true}]},"48":{"line":322,"type":"binary-expr","locations":[{"start":{"line":322,"column":16},"end":{"line":322,"column":25},"skip":true},{"start":{"line":322,"column":30},"end":{"line":322,"column":36},"skip":true},{"start":{"line":322,"column":40},"end":{"line":322,"column":77},"skip":true}]},"49":{"line":325,"type":"if","locations":[{"start":{"line":325,"column":16},"end":{"line":325,"column":16},"skip":true},{"start":{"line":325,"column":16},"end":{"line":325,"column":16},"skip":true}]},"50":{"line":328,"type":"if","locations":[{"start":{"line":328,"column":8},"end":{"line":328,"column":8},"skip":true},{"start":{"line":328,"column":8},"end":{"line":328,"column":8},"skip":true}]},"51":{"line":330,"type":"if","locations":[{"start":{"line":330,"column":12},"end":{"line":330,"column":12},"skip":true},{"start":{"line":330,"column":12},"end":{"line":330,"column":12},"skip":true}]},"52":{"line":334,"type":"cond-expr","locations":[{"start":{"line":334,"column":48},"end":{"line":334,"column":124},"skip":true},{"start":{"line":334,"column":127},"end":{"line":334,"column":168},"skip":true}]},"53":{"line":339,"type":"if","locations":[{"start":{"line":339,"column":12},"end":{"line":339,"column":12},"skip":true},{"start":{"line":339,"column":12},"end":{"line":339,"column":12},"skip":true}]},"54":{"line":346,"type":"if","locations":[{"start":{"line":346,"column":12},"end":{"line":346,"column":12},"skip":true},{"start":{"line":346,"column":12},"end":{"line":346,"column":12},"skip":true}]},"55":{"line":346,"type":"binary-expr","locations":[{"start":{"line":346,"column":16},"end":{"line":346,"column":25},"skip":true},{"start":{"line":346,"column":29},"end":{"line":346,"column":40},"skip":true}]},"56":{"line":347,"type":"if","locations":[{"start":{"line":347,"column":12},"end":{"line":347,"column":12},"skip":true},{"start":{"line":347,"column":12},"end":{"line":347,"column":12},"skip":true}]},"57":{"line":350,"type":"if","locations":[{"start":{"line":350,"column":8},"end":{"line":350,"column":8},"skip":true},{"start":{"line":350,"column":8},"end":{"line":350,"column":8},"skip":true}]},"58":{"line":359,"type":"if","locations":[{"start":{"line":359,"column":8},"end":{"line":359,"column":8},"skip":true},{"start":{"line":359,"column":8},"end":{"line":359,"column":8},"skip":true}]},"59":{"line":390,"type":"switch","locations":[{"start":{"line":391,"column":0},"end":{"line":403,"column":6},"skip":true},{"start":{"line":404,"column":0},"end":{"line":405,"column":6},"skip":true},{"start":{"line":406,"column":0},"end":{"line":410,"column":6},"skip":true},{"start":{"line":411,"column":0},"end":{"line":416,"column":6},"skip":true},{"start":{"line":417,"column":0},"end":{"line":418,"column":6},"skip":true},{"start":{"line":419,"column":0},"end":{"line":420,"column":6},"skip":true},{"start":{"line":421,"column":0},"end":{"line":422,"column":6},"skip":true},{"start":{"line":423,"column":0},"end":{"line":424,"column":6},"skip":true},{"start":{"line":425,"column":0},"end":{"line":426,"column":6},"skip":true},{"start":{"line":427,"column":0},"end":{"line":432,"column":6},"skip":true},{"start":{"line":433,"column":0},"end":{"line":434,"column":6},"skip":true},{"start":{"line":435,"column":0},"end":{"line":436,"column":6},"skip":true},{"start":{"line":437,"column":0},"end":{"line":438,"column":6},"skip":true},{"start":{"line":439,"column":0},"end":{"line":440,"column":6},"skip":true},{"start":{"line":441,"column":0},"end":{"line":442,"column":6},"skip":true},{"start":{"line":443,"column":0},"end":{"line":444,"column":6},"skip":true},{"start":{"line":445,"column":0},"end":{"line":446,"column":6},"skip":true},{"start":{"line":447,"column":0},"end":{"line":448,"column":6},"skip":true},{"start":{"line":449,"column":0},"end":{"line":450,"column":6},"skip":true},{"start":{"line":451,"column":0},"end":{"line":452,"column":6},"skip":true},{"start":{"line":453,"column":0},"end":{"line":454,"column":6},"skip":true},{"start":{"line":455,"column":0},"end":{"line":456,"column":6},"skip":true},{"start":{"line":457,"column":0},"end":{"line":458,"column":6},"skip":true},{"start":{"line":459,"column":0},"end":{"line":460,"column":6},"skip":true},{"start":{"line":461,"column":0},"end":{"line":462,"column":6},"skip":true},{"start":{"line":463,"column":0},"end":{"line":464,"column":6},"skip":true},{"start":{"line":465,"column":0},"end":{"line":466,"column":6},"skip":true},{"start":{"line":467,"column":0},"end":{"line":468,"column":6},"skip":true},{"start":{"line":469,"column":0},"end":{"line":470,"column":6},"skip":true},{"start":{"line":471,"column":0},"end":{"line":472,"column":6},"skip":true},{"start":{"line":473,"column":0},"end":{"line":474,"column":6},"skip":true},{"start":{"line":475,"column":0},"end":{"line":476,"column":6},"skip":true},{"start":{"line":477,"column":0},"end":{"line":478,"column":6},"skip":true},{"start":{"line":479,"column":0},"end":{"line":480,"column":6},"skip":true},{"start":{"line":481,"column":0},"end":{"line":482,"column":6},"skip":true},{"start":{"line":483,"column":0},"end":{"line":484,"column":6},"skip":true},{"start":{"line":485,"column":0},"end":{"line":486,"column":6},"skip":true},{"start":{"line":487,"column":0},"end":{"line":488,"column":6},"skip":true},{"start":{"line":489,"column":0},"end":{"line":490,"column":6},"skip":true}]},"60":{"line":392,"type":"if","locations":[{"start":{"line":392,"column":35},"end":{"line":392,"column":35},"skip":true},{"start":{"line":392,"column":35},"end":{"line":392,"column":35},"skip":true}]},"61":{"line":395,"type":"if","locations":[{"start":{"line":395,"column":42},"end":{"line":395,"column":42},"skip":true},{"start":{"line":395,"column":42},"end":{"line":395,"column":42},"skip":true}]},"62":{"line":401,"type":"if","locations":[{"start":{"line":401,"column":35},"end":{"line":401,"column":35},"skip":true},{"start":{"line":401,"column":35},"end":{"line":401,"column":35},"skip":true}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/helpers.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/helpers.js","s":{"1":1,"2":1,"3":2323,"4":1,"5":1,"6":603,"7":2,"8":601,"9":601,"10":601,"11":34,"12":601,"13":62,"14":62,"15":22,"16":62,"17":22,"18":62,"19":18,"20":62,"21":17,"22":17,"23":539,"24":14,"25":601,"26":80,"27":521,"28":1,"29":1,"30":2718,"31":5434,"32":5434,"33":2583,"34":2851,"35":2851,"36":72,"37":2851,"38":64,"39":2851,"40":63,"41":63,"42":20,"43":11,"44":2851,"45":109,"46":109,"47":2851,"48":115,"49":115,"50":2718,"51":1,"52":1,"53":3514,"54":663,"55":3514,"56":3514,"57":1480,"58":2034,"59":1712,"60":1,"61":3469,"62":618,"63":3469,"64":3469,"65":1401,"66":2068,"67":1729,"68":1,"69":432,"70":432,"71":150,"72":282,"73":282,"74":282,"75":1,"76":422,"77":422,"78":90,"79":332,"80":332,"81":332,"82":332},"b":{"1":[2,601],"2":[601,62],"3":[601,539],"4":[34,567],"5":[62,539],"6":[22,40],"7":[22,40],"8":[18,44],"9":[17,45],"10":[62,17],"11":[14,525],"12":[80,521],"13":[2583,2851],"14":[2851,143],"15":[2851,143],"16":[2851,236,73],"17":[72,2779],"18":[64,2787],"19":[63,2788],"20":[20,43],"21":[11,9],"22":[11,0],"23":[109,2742],"24":[109,28],"25":[115,2736],"26":[115,59],"27":[663,2851],"28":[1480,2034],"29":[1712,322],"30":[1353,359],"31":[1712,1125],"32":[618,2851],"33":[1401,2068],"34":[1729,339],"35":[1344,385],"36":[1729,1170],"37":[182,250],"38":[150,282],"39":[432,395,395,267],"40":[128,154],"41":[186,236],"42":[90,332],"43":[422,386,386,268],"44":[118,214]},"f":{"1":2323,"2":603,"3":2718,"4":3514,"5":3469,"6":432,"7":422},"fnMap":{"1":{"name":"stripFlags","line":4,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":33}}},"2":{"name":"prepareBlock","line":12,"loc":{"start":{"line":12,"column":0},"end":{"line":12,"column":86}}},"3":{"name":"prepareProgram","line":68,"loc":{"start":{"line":68,"column":0},"end":{"line":68,"column":44}}},"4":{"name":"isPrevWhitespace","line":118,"loc":{"start":{"line":118,"column":40},"end":{"line":118,"column":89}}},"5":{"name":"isNextWhitespace","line":135,"loc":{"start":{"line":135,"column":0},"end":{"line":135,"column":49}}},"6":{"name":"omitRight","line":158,"loc":{"start":{"line":158,"column":0},"end":{"line":158,"column":44}}},"7":{"name":"omitLeft","line":176,"loc":{"start":{"line":176,"column":0},"end":{"line":176,"column":43}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":51}},"2":{"start":{"line":4,"column":0},"end":{"line":9,"column":1}},"3":{"start":{"line":5,"column":2},"end":{"line":8,"column":4}},"4":{"start":{"line":11,"column":0},"end":{"line":11,"column":32}},"5":{"start":{"line":12,"column":0},"end":{"line":65,"column":1}},"6":{"start":{"line":14,"column":2},"end":{"line":16,"column":3}},"7":{"start":{"line":15,"column":4},"end":{"line":15,"column":105}},"8":{"start":{"line":18,"column":2},"end":{"line":18,"column":63}},"9":{"start":{"line":20,"column":2},"end":{"line":28,"column":4}},"10":{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},"11":{"start":{"line":31,"column":4},"end":{"line":31,"column":46}},"12":{"start":{"line":34,"column":2},"end":{"line":58,"column":3}},"13":{"start":{"line":35,"column":4},"end":{"line":35,"column":47}},"14":{"start":{"line":37,"column":4},"end":{"line":39,"column":5}},"15":{"start":{"line":38,"column":6},"end":{"line":38,"column":47}},"16":{"start":{"line":40,"column":4},"end":{"line":42,"column":5}},"17":{"start":{"line":41,"column":6},"end":{"line":41,"column":48}},"18":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"19":{"start":{"line":44,"column":6},"end":{"line":44,"column":47}},"20":{"start":{"line":48,"column":4},"end":{"line":53,"column":5}},"21":{"start":{"line":51,"column":6},"end":{"line":51,"column":35}},"22":{"start":{"line":52,"column":6},"end":{"line":52,"column":36}},"23":{"start":{"line":55,"column":4},"end":{"line":57,"column":5}},"24":{"start":{"line":56,"column":6},"end":{"line":56,"column":47}},"25":{"start":{"line":60,"column":2},"end":{"line":64,"column":3}},"26":{"start":{"line":61,"column":4},"end":{"line":61,"column":74}},"27":{"start":{"line":63,"column":4},"end":{"line":63,"column":74}},"28":{"start":{"line":67,"column":0},"end":{"line":67,"column":36}},"29":{"start":{"line":68,"column":0},"end":{"line":116,"column":1}},"30":{"start":{"line":69,"column":2},"end":{"line":113,"column":3}},"31":{"start":{"line":70,"column":4},"end":{"line":71,"column":30}},"32":{"start":{"line":73,"column":4},"end":{"line":75,"column":5}},"33":{"start":{"line":74,"column":6},"end":{"line":74,"column":15}},"34":{"start":{"line":77,"column":4},"end":{"line":82,"column":92}},"35":{"start":{"line":84,"column":4},"end":{"line":86,"column":5}},"36":{"start":{"line":85,"column":6},"end":{"line":85,"column":37}},"37":{"start":{"line":87,"column":4},"end":{"line":89,"column":5}},"38":{"start":{"line":88,"column":6},"end":{"line":88,"column":36}},"39":{"start":{"line":91,"column":4},"end":{"line":100,"column":5}},"40":{"start":{"line":92,"column":6},"end":{"line":92,"column":31}},"41":{"start":{"line":94,"column":6},"end":{"line":99,"column":7}},"42":{"start":{"line":96,"column":8},"end":{"line":98,"column":9}},"43":{"start":{"line":97,"column":10},"end":{"line":97,"column":89}},"44":{"start":{"line":101,"column":4},"end":{"line":106,"column":5}},"45":{"start":{"line":102,"column":6},"end":{"line":102,"column":65}},"46":{"start":{"line":105,"column":6},"end":{"line":105,"column":30}},"47":{"start":{"line":107,"column":4},"end":{"line":112,"column":5}},"48":{"start":{"line":109,"column":6},"end":{"line":109,"column":31}},"49":{"start":{"line":111,"column":6},"end":{"line":111,"column":64}},"50":{"start":{"line":115,"column":2},"end":{"line":115,"column":20}},"51":{"start":{"line":118,"column":0},"end":{"line":118,"column":40}},"52":{"start":{"line":118,"column":40},"end":{"line":134,"column":1}},"53":{"start":{"line":119,"column":2},"end":{"line":121,"column":3}},"54":{"start":{"line":120,"column":4},"end":{"line":120,"column":26}},"55":{"start":{"line":125,"column":2},"end":{"line":126,"column":32}},"56":{"start":{"line":127,"column":2},"end":{"line":129,"column":3}},"57":{"start":{"line":128,"column":4},"end":{"line":128,"column":18}},"58":{"start":{"line":131,"column":2},"end":{"line":133,"column":3}},"59":{"start":{"line":132,"column":4},"end":{"line":132,"column":90}},"60":{"start":{"line":135,"column":0},"end":{"line":149,"column":1}},"61":{"start":{"line":136,"column":2},"end":{"line":138,"column":3}},"62":{"start":{"line":137,"column":4},"end":{"line":137,"column":11}},"63":{"start":{"line":140,"column":2},"end":{"line":141,"column":32}},"64":{"start":{"line":142,"column":2},"end":{"line":144,"column":3}},"65":{"start":{"line":143,"column":4},"end":{"line":143,"column":18}},"66":{"start":{"line":146,"column":2},"end":{"line":148,"column":3}},"67":{"start":{"line":147,"column":4},"end":{"line":147,"column":90}},"68":{"start":{"line":158,"column":0},"end":{"line":167,"column":1}},"69":{"start":{"line":159,"column":2},"end":{"line":159,"column":50}},"70":{"start":{"line":160,"column":2},"end":{"line":162,"column":3}},"71":{"start":{"line":161,"column":4},"end":{"line":161,"column":11}},"72":{"start":{"line":164,"column":2},"end":{"line":164,"column":32}},"73":{"start":{"line":165,"column":2},"end":{"line":165,"column":87}},"74":{"start":{"line":166,"column":2},"end":{"line":166,"column":54}},"75":{"start":{"line":176,"column":0},"end":{"line":187,"column":1}},"76":{"start":{"line":177,"column":2},"end":{"line":177,"column":70}},"77":{"start":{"line":178,"column":2},"end":{"line":180,"column":3}},"78":{"start":{"line":179,"column":4},"end":{"line":179,"column":11}},"79":{"start":{"line":183,"column":2},"end":{"line":183,"column":32}},"80":{"start":{"line":184,"column":2},"end":{"line":184,"column":81}},"81":{"start":{"line":185,"column":2},"end":{"line":185,"column":53}},"82":{"start":{"line":186,"column":2},"end":{"line":186,"column":30}}},"branchMap":{"1":{"line":14,"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":14,"column":2}},{"start":{"line":14,"column":2},"end":{"line":14,"column":2}}]},"2":{"line":18,"type":"binary-expr","locations":[{"start":{"line":18,"column":16},"end":{"line":18,"column":33}},{"start":{"line":18,"column":37},"end":{"line":18,"column":62}}]},"3":{"line":27,"type":"binary-expr","locations":[{"start":{"line":27,"column":39},"end":{"line":27,"column":46}},{"start":{"line":27,"column":50},"end":{"line":27,"column":57}}]},"4":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":30,"column":2}},{"start":{"line":30,"column":2},"end":{"line":30,"column":2}}]},"5":{"line":34,"type":"if","locations":[{"start":{"line":34,"column":2},"end":{"line":34,"column":2}},{"start":{"line":34,"column":2},"end":{"line":34,"column":2}}]},"6":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":4},"end":{"line":37,"column":4}},{"start":{"line":37,"column":4},"end":{"line":37,"column":4}}]},"7":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":40,"column":4}},{"start":{"line":40,"column":4},"end":{"line":40,"column":4}}]},"8":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":4},"end":{"line":43,"column":4}},{"start":{"line":43,"column":4},"end":{"line":43,"column":4}}]},"9":{"line":48,"type":"if","locations":[{"start":{"line":48,"column":4},"end":{"line":48,"column":4}},{"start":{"line":48,"column":4},"end":{"line":48,"column":4}}]},"10":{"line":48,"type":"binary-expr","locations":[{"start":{"line":48,"column":8},"end":{"line":48,"column":44}},{"start":{"line":49,"column":11},"end":{"line":49,"column":47}}]},"11":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":4},"end":{"line":55,"column":4}},{"start":{"line":55,"column":4},"end":{"line":55,"column":4}}]},"12":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":2},"end":{"line":60,"column":2}},{"start":{"line":60,"column":2},"end":{"line":60,"column":2}}]},"13":{"line":73,"type":"if","locations":[{"start":{"line":73,"column":4},"end":{"line":73,"column":4}},{"start":{"line":73,"column":4},"end":{"line":73,"column":4}}]},"14":{"line":80,"type":"binary-expr","locations":[{"start":{"line":80,"column":25},"end":{"line":80,"column":45}},{"start":{"line":80,"column":49},"end":{"line":80,"column":66}}]},"15":{"line":81,"type":"binary-expr","locations":[{"start":{"line":81,"column":26},"end":{"line":81,"column":47}},{"start":{"line":81,"column":51},"end":{"line":81,"column":68}}]},"16":{"line":82,"type":"binary-expr","locations":[{"start":{"line":82,"column":27},"end":{"line":82,"column":49}},{"start":{"line":82,"column":53},"end":{"line":82,"column":70}},{"start":{"line":82,"column":74},"end":{"line":82,"column":91}}]},"17":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":4},"end":{"line":84,"column":4}},{"start":{"line":84,"column":4},"end":{"line":84,"column":4}}]},"18":{"line":87,"type":"if","locations":[{"start":{"line":87,"column":4},"end":{"line":87,"column":4}},{"start":{"line":87,"column":4},"end":{"line":87,"column":4}}]},"19":{"line":91,"type":"if","locations":[{"start":{"line":91,"column":4},"end":{"line":91,"column":4}},{"start":{"line":91,"column":4},"end":{"line":91,"column":4}}]},"20":{"line":94,"type":"if","locations":[{"start":{"line":94,"column":6},"end":{"line":94,"column":6}},{"start":{"line":94,"column":6},"end":{"line":94,"column":6}}]},"21":{"line":96,"type":"if","locations":[{"start":{"line":96,"column":8},"end":{"line":96,"column":8}},{"start":{"line":96,"column":8},"end":{"line":96,"column":8}}]},"22":{"line":97,"type":"cond-expr","locations":[{"start":{"line":97,"column":74},"end":{"line":97,"column":83}},{"start":{"line":97,"column":86},"end":{"line":97,"column":88}}]},"23":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":4},"end":{"line":101,"column":4}},{"start":{"line":101,"column":4},"end":{"line":101,"column":4}}]},"24":{"line":102,"type":"binary-expr","locations":[{"start":{"line":102,"column":17},"end":{"line":102,"column":32}},{"start":{"line":102,"column":36},"end":{"line":102,"column":51}}]},"25":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":4},"end":{"line":107,"column":4}},{"start":{"line":107,"column":4},"end":{"line":107,"column":4}}]},"26":{"line":111,"type":"binary-expr","locations":[{"start":{"line":111,"column":16},"end":{"line":111,"column":31}},{"start":{"line":111,"column":35},"end":{"line":111,"column":50}}]},"27":{"line":119,"type":"if","locations":[{"start":{"line":119,"column":2},"end":{"line":119,"column":2}},{"start":{"line":119,"column":2},"end":{"line":119,"column":2}}]},"28":{"line":127,"type":"if","locations":[{"start":{"line":127,"column":2},"end":{"line":127,"column":2}},{"start":{"line":127,"column":2},"end":{"line":127,"column":2}}]},"29":{"line":131,"type":"if","locations":[{"start":{"line":131,"column":2},"end":{"line":131,"column":2}},{"start":{"line":131,"column":2},"end":{"line":131,"column":2}}]},"30":{"line":132,"type":"cond-expr","locations":[{"start":{"line":132,"column":34},"end":{"line":132,"column":46}},{"start":{"line":132,"column":51},"end":{"line":132,"column":67}}]},"31":{"line":132,"type":"binary-expr","locations":[{"start":{"line":132,"column":12},"end":{"line":132,"column":19}},{"start":{"line":132,"column":23},"end":{"line":132,"column":30}}]},"32":{"line":136,"type":"if","locations":[{"start":{"line":136,"column":2},"end":{"line":136,"column":2}},{"start":{"line":136,"column":2},"end":{"line":136,"column":2}}]},"33":{"line":142,"type":"if","locations":[{"start":{"line":142,"column":2},"end":{"line":142,"column":2}},{"start":{"line":142,"column":2},"end":{"line":142,"column":2}}]},"34":{"line":146,"type":"if","locations":[{"start":{"line":146,"column":2},"end":{"line":146,"column":2}},{"start":{"line":146,"column":2},"end":{"line":146,"column":2}}]},"35":{"line":147,"type":"cond-expr","locations":[{"start":{"line":147,"column":34},"end":{"line":147,"column":46}},{"start":{"line":147,"column":51},"end":{"line":147,"column":67}}]},"36":{"line":147,"type":"binary-expr","locations":[{"start":{"line":147,"column":12},"end":{"line":147,"column":19}},{"start":{"line":147,"column":23},"end":{"line":147,"column":30}}]},"37":{"line":159,"type":"cond-expr","locations":[{"start":{"line":159,"column":39},"end":{"line":159,"column":40}},{"start":{"line":159,"column":43},"end":{"line":159,"column":48}}]},"38":{"line":160,"type":"if","locations":[{"start":{"line":160,"column":2},"end":{"line":160,"column":2}},{"start":{"line":160,"column":2},"end":{"line":160,"column":2}}]},"39":{"line":160,"type":"binary-expr","locations":[{"start":{"line":160,"column":6},"end":{"line":160,"column":14}},{"start":{"line":160,"column":18},"end":{"line":160,"column":44}},{"start":{"line":160,"column":49},"end":{"line":160,"column":58}},{"start":{"line":160,"column":62},"end":{"line":160,"column":83}}]},"40":{"line":165,"type":"cond-expr","locations":[{"start":{"line":165,"column":54},"end":{"line":165,"column":60}},{"start":{"line":165,"column":65},"end":{"line":165,"column":80}}]},"41":{"line":177,"type":"cond-expr","locations":[{"start":{"line":177,"column":39},"end":{"line":177,"column":60}},{"start":{"line":177,"column":63},"end":{"line":177,"column":68}}]},"42":{"line":178,"type":"if","locations":[{"start":{"line":178,"column":2},"end":{"line":178,"column":2}},{"start":{"line":178,"column":2},"end":{"line":178,"column":2}}]},"43":{"line":178,"type":"binary-expr","locations":[{"start":{"line":178,"column":6},"end":{"line":178,"column":14}},{"start":{"line":178,"column":18},"end":{"line":178,"column":44}},{"start":{"line":178,"column":49},"end":{"line":178,"column":58}},{"start":{"line":178,"column":62},"end":{"line":178,"column":82}}]},"44":{"line":184,"type":"cond-expr","locations":[{"start":{"line":184,"column":54},"end":{"line":184,"column":60}},{"start":{"line":184,"column":65},"end":{"line":184,"column":74}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/compiler.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/compiler.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":129,"8":129,"9":45,"10":84,"11":279,"12":279,"13":68,"14":16,"15":16,"16":4,"17":3,"18":13,"19":1595,"20":1595,"21":1595,"22":1595,"23":1595,"24":1595,"25":1595,"26":1595,"27":1595,"28":646,"29":5054,"30":1595,"31":5302,"32":1595,"33":1595,"34":3165,"35":1593,"36":1593,"37":2,"38":1593,"39":631,"40":631,"41":631,"42":631,"43":631,"44":52,"45":52,"46":50,"47":2,"48":631,"49":583,"50":583,"51":505,"52":583,"53":126,"54":583,"55":583,"56":583,"57":232,"58":351,"59":32,"60":32,"61":32,"62":32,"63":32,"64":319,"65":319,"66":319,"67":319,"68":319,"69":583,"70":60,"71":60,"72":60,"73":96,"74":60,"75":96,"76":60,"77":86,"78":86,"79":86,"80":2,"81":84,"82":86,"83":4,"84":82,"85":82,"86":86,"87":86,"88":1553,"89":1419,"90":913,"91":911,"92":851,"93":60,"94":894,"95":894,"96":894,"97":894,"98":894,"99":894,"100":186,"101":186,"102":38,"103":148,"104":108,"105":40,"106":40,"107":40,"108":186,"109":468,"110":468,"111":210,"112":258,"113":2,"114":256,"115":256,"116":256,"117":965,"118":965,"119":154,"120":811,"121":236,"122":575,"123":1588,"124":1588,"125":1588,"126":1588,"127":16,"128":1572,"129":68,"130":68,"131":42,"132":50,"133":40,"134":14161,"135":1636,"136":1580,"137":56,"138":54,"139":54,"140":1548,"141":1548,"142":1548,"143":1548,"144":912,"145":912,"146":10,"147":902,"148":8,"149":1548,"150":468,"151":1080,"152":894,"153":186,"154":468,"155":502,"156":598,"157":62,"158":6,"159":62,"160":62,"161":62,"162":4,"163":536,"164":54,"165":536,"166":468,"167":468,"168":468,"169":468,"170":468,"171":58,"172":410,"173":468,"174":1,"175":801,"176":2,"177":799,"178":799,"179":767,"180":799,"181":180,"182":799,"183":785,"184":783,"185":1,"186":1,"187":155,"188":2,"189":153,"190":153,"191":71,"192":153,"193":48,"194":153,"195":1,"196":153,"197":153,"198":153,"199":153,"200":153,"201":174,"202":150,"203":174,"204":153,"205":2,"206":1,"207":2,"208":153,"209":4,"210":2,"211":4,"212":153,"213":1,"214":1,"215":621,"216":241,"217":380,"218":312,"219":342,"220":81,"221":231},"b":{"1":[45,84],"2":[68,211],"3":[279,279],"4":[3,1],"5":[646,949],"6":[631,631],"7":[50,2],"8":[505,78],"9":[126,457],"10":[232,351],"11":[32,319],"12":[2,84],"13":[4,82],"14":[86,76],"15":[1419,134],"16":[851,60],"17":[911,851],"18":[894,635],"19":[38,148],"20":[108,40],"21":[210,258],"22":[2,256],"23":[154,811],"24":[236,575],"25":[16,1572],"26":[1580,56],"27":[54,2],"28":[912,636],"29":[1548,1370],"30":[10,902],"31":[8,894],"32":[468,1080],"33":[894,186],"34":[62,536],"35":[6,56],"36":[62,56],"37":[4,58],"38":[54,482],"39":[54,12],"40":[58,410],"41":[2,799],"42":[801,800,2],"43":[799,387],"44":[767,32],"45":[180,619],"46":[2,153],"47":[155,154,2],"48":[153,7],"49":[71,82],"50":[48,105],"51":[150,24],"52":[1,1],"53":[2,2],"54":[241,380],"55":[312,68],"56":[380,312,312],"57":[81,261]},"f":{"1":1595,"2":129,"3":1595,"4":5302,"5":1595,"6":2,"7":631,"8":583,"9":60,"10":86,"11":1553,"12":913,"13":894,"14":186,"15":468,"16":965,"17":1588,"18":68,"19":42,"20":50,"21":40,"22":30,"23":14161,"24":1636,"25":1548,"26":468,"27":598,"28":468,"29":801,"30":155,"31":153,"32":174,"33":2,"34":4,"35":621},"fnMap":{"1":{"name":"Compiler","line":7,"loc":{"start":{"line":7,"column":0},"end":{"line":7,"column":20}}},"2":{"name":"(anonymous_2)","line":17,"loc":{"start":{"line":17,"column":10},"end":{"line":17,"column":26}}},"3":{"name":"(anonymous_3)","line":45,"loc":{"start":{"line":45,"column":11},"end":{"line":45,"column":38}}},"4":{"name":"(anonymous_4)","line":74,"loc":{"start":{"line":74,"column":10},"end":{"line":74,"column":25}}},"5":{"name":"(anonymous_5)","line":78,"loc":{"start":{"line":78,"column":11},"end":{"line":78,"column":29}}},"6":{"name":"(anonymous_6)","line":86,"loc":{"start":{"line":86,"column":45},"end":{"line":86,"column":60}}},"7":{"name":"(anonymous_7)","line":93,"loc":{"start":{"line":93,"column":18},"end":{"line":93,"column":36}}},"8":{"name":"(anonymous_8)","line":111,"loc":{"start":{"line":111,"column":9},"end":{"line":111,"column":25}}},"9":{"name":"(anonymous_9)","line":152,"loc":{"start":{"line":152,"column":8},"end":{"line":152,"column":23}}},"10":{"name":"(anonymous_10)","line":166,"loc":{"start":{"line":166,"column":11},"end":{"line":166,"column":29}}},"11":{"name":"(anonymous_11)","line":187,"loc":{"start":{"line":187,"column":11},"end":{"line":187,"column":29}}},"12":{"name":"(anonymous_12)","line":193,"loc":{"start":{"line":193,"column":12},"end":{"line":193,"column":31}}},"13":{"name":"(anonymous_13)","line":203,"loc":{"start":{"line":203,"column":18},"end":{"line":203,"column":52}}},"14":{"name":"(anonymous_14)","line":218,"loc":{"start":{"line":218,"column":15},"end":{"line":218,"column":31}}},"15":{"name":"(anonymous_15)","line":235,"loc":{"start":{"line":235,"column":15},"end":{"line":235,"column":49}}},"16":{"name":"(anonymous_16)","line":252,"loc":{"start":{"line":252,"column":9},"end":{"line":252,"column":25}}},"17":{"name":"(anonymous_17)","line":264,"loc":{"start":{"line":264,"column":6},"end":{"line":264,"column":19}}},"18":{"name":"(anonymous_18)","line":277,"loc":{"start":{"line":277,"column":8},"end":{"line":277,"column":23}}},"19":{"name":"(anonymous_19)","line":282,"loc":{"start":{"line":282,"column":10},"end":{"line":282,"column":27}}},"20":{"name":"(anonymous_20)","line":286,"loc":{"start":{"line":286,"column":10},"end":{"line":286,"column":27}}},"21":{"name":"(anonymous_21)","line":290,"loc":{"start":{"line":290,"column":11},"end":{"line":290,"column":26}}},"22":{"name":"(anonymous_22)","line":294,"loc":{"start":{"line":294,"column":11},"end":{"line":294,"column":22}}},"23":{"name":"(anonymous_23)","line":297,"loc":{"start":{"line":297,"column":10},"end":{"line":297,"column":25}}},"24":{"name":"(anonymous_24)","line":301,"loc":{"start":{"line":301,"column":12},"end":{"line":301,"column":28}}},"25":{"name":"(anonymous_25)","line":310,"loc":{"start":{"line":310,"column":17},"end":{"line":310,"column":33}}},"26":{"name":"(anonymous_26)","line":332,"loc":{"start":{"line":332,"column":14},"end":{"line":332,"column":31}}},"27":{"name":"(anonymous_27)","line":338,"loc":{"start":{"line":338,"column":13},"end":{"line":338,"column":27}}},"28":{"name":"(anonymous_28)","line":359,"loc":{"start":{"line":359,"column":27},"end":{"line":359,"column":61}}},"29":{"name":"precompile","line":376,"loc":{"start":{"line":376,"column":0},"end":{"line":376,"column":41}}},"30":{"name":"compile","line":394,"loc":{"start":{"line":394,"column":32},"end":{"line":394,"column":70}}},"31":{"name":"compileInput","line":410,"loc":{"start":{"line":410,"column":2},"end":{"line":410,"column":26}}},"32":{"name":"(anonymous_32)","line":418,"loc":{"start":{"line":418,"column":12},"end":{"line":418,"column":39}}},"33":{"name":"(anonymous_33)","line":424,"loc":{"start":{"line":424,"column":15},"end":{"line":424,"column":33}}},"34":{"name":"(anonymous_34)","line":430,"loc":{"start":{"line":430,"column":15},"end":{"line":430,"column":41}}},"35":{"name":"argEquals","line":439,"loc":{"start":{"line":439,"column":26},"end":{"line":439,"column":51}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":51}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":42}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":21}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":22}},"5":{"start":{"line":9,"column":0},"end":{"line":9,"column":28}},"6":{"start":{"line":14,"column":0},"end":{"line":374,"column":2}},"7":{"start":{"line":18,"column":4},"end":{"line":18,"column":34}},"8":{"start":{"line":19,"column":4},"end":{"line":21,"column":5}},"9":{"start":{"line":20,"column":6},"end":{"line":20,"column":19}},"10":{"start":{"line":23,"column":4},"end":{"line":29,"column":5}},"11":{"start":{"line":24,"column":6},"end":{"line":25,"column":41}},"12":{"start":{"line":26,"column":6},"end":{"line":28,"column":7}},"13":{"start":{"line":27,"column":8},"end":{"line":27,"column":21}},"14":{"start":{"line":33,"column":4},"end":{"line":33,"column":31}},"15":{"start":{"line":34,"column":4},"end":{"line":38,"column":5}},"16":{"start":{"line":35,"column":6},"end":{"line":37,"column":7}},"17":{"start":{"line":36,"column":8},"end":{"line":36,"column":21}},"18":{"start":{"line":40,"column":4},"end":{"line":40,"column":16}},"19":{"start":{"line":46,"column":4},"end":{"line":46,"column":22}},"20":{"start":{"line":47,"column":4},"end":{"line":47,"column":23}},"21":{"start":{"line":48,"column":4},"end":{"line":48,"column":29}},"22":{"start":{"line":49,"column":4},"end":{"line":49,"column":27}},"23":{"start":{"line":50,"column":4},"end":{"line":50,"column":45}},"24":{"start":{"line":51,"column":4},"end":{"line":51,"column":37}},"25":{"start":{"line":54,"column":4},"end":{"line":54,"column":49}},"26":{"start":{"line":55,"column":4},"end":{"line":64,"column":6}},"27":{"start":{"line":65,"column":4},"end":{"line":69,"column":5}},"28":{"start":{"line":66,"column":6},"end":{"line":68,"column":7}},"29":{"start":{"line":67,"column":8},"end":{"line":67,"column":61}},"30":{"start":{"line":71,"column":4},"end":{"line":71,"column":32}},"31":{"start":{"line":75,"column":4},"end":{"line":75,"column":33}},"32":{"start":{"line":79,"column":4},"end":{"line":79,"column":40}},"33":{"start":{"line":81,"column":4},"end":{"line":83,"column":5}},"34":{"start":{"line":82,"column":6},"end":{"line":82,"column":33}},"35":{"start":{"line":84,"column":4},"end":{"line":84,"column":28}},"36":{"start":{"line":86,"column":4},"end":{"line":88,"column":7}},"37":{"start":{"line":87,"column":6},"end":{"line":87,"column":19}},"38":{"start":{"line":90,"column":4},"end":{"line":90,"column":16}},"39":{"start":{"line":94,"column":4},"end":{"line":94,"column":68}},"40":{"start":{"line":95,"column":4},"end":{"line":95,"column":34}},"41":{"start":{"line":97,"column":4},"end":{"line":97,"column":59}},"42":{"start":{"line":99,"column":4},"end":{"line":99,"column":33}},"43":{"start":{"line":101,"column":4},"end":{"line":106,"column":5}},"44":{"start":{"line":102,"column":6},"end":{"line":102,"column":36}},"45":{"start":{"line":104,"column":6},"end":{"line":105,"column":40}},"46":{"start":{"line":104,"column":22},"end":{"line":104,"column":31}},"47":{"start":{"line":105,"column":13},"end":{"line":105,"column":38}},"48":{"start":{"line":108,"column":4},"end":{"line":108,"column":16}},"49":{"start":{"line":112,"column":4},"end":{"line":114,"column":32}},"50":{"start":{"line":116,"column":4},"end":{"line":118,"column":5}},"51":{"start":{"line":117,"column":6},"end":{"line":117,"column":45}},"52":{"start":{"line":120,"column":4},"end":{"line":122,"column":5}},"53":{"start":{"line":121,"column":6},"end":{"line":121,"column":45}},"54":{"start":{"line":124,"column":4},"end":{"line":124,"column":31}},"55":{"start":{"line":125,"column":4},"end":{"line":125,"column":41}},"56":{"start":{"line":127,"column":4},"end":{"line":147,"column":5}},"57":{"start":{"line":128,"column":6},"end":{"line":128,"column":48}},"58":{"start":{"line":129,"column":11},"end":{"line":147,"column":5}},"59":{"start":{"line":130,"column":6},"end":{"line":130,"column":30}},"60":{"start":{"line":134,"column":6},"end":{"line":134,"column":42}},"61":{"start":{"line":135,"column":6},"end":{"line":135,"column":42}},"62":{"start":{"line":136,"column":6},"end":{"line":136,"column":31}},"63":{"start":{"line":137,"column":6},"end":{"line":137,"column":51}},"64":{"start":{"line":139,"column":6},"end":{"line":139,"column":51}},"65":{"start":{"line":143,"column":6},"end":{"line":143,"column":42}},"66":{"start":{"line":144,"column":6},"end":{"line":144,"column":42}},"67":{"start":{"line":145,"column":6},"end":{"line":145,"column":31}},"68":{"start":{"line":146,"column":6},"end":{"line":146,"column":41}},"69":{"start":{"line":149,"column":4},"end":{"line":149,"column":26}},"70":{"start":{"line":153,"column":4},"end":{"line":153,"column":33}},"71":{"start":{"line":155,"column":4},"end":{"line":155,"column":28}},"72":{"start":{"line":157,"column":4},"end":{"line":159,"column":5}},"73":{"start":{"line":158,"column":6},"end":{"line":158,"column":34}},"74":{"start":{"line":160,"column":4},"end":{"line":162,"column":5}},"75":{"start":{"line":161,"column":6},"end":{"line":161,"column":47}},"76":{"start":{"line":163,"column":4},"end":{"line":163,"column":27}},"77":{"start":{"line":167,"column":4},"end":{"line":167,"column":42}},"78":{"start":{"line":168,"column":4},"end":{"line":168,"column":27}},"79":{"start":{"line":170,"column":4},"end":{"line":174,"column":5}},"80":{"start":{"line":171,"column":6},"end":{"line":171,"column":32}},"81":{"start":{"line":173,"column":6},"end":{"line":173,"column":39}},"82":{"start":{"line":176,"column":4},"end":{"line":181,"column":5}},"83":{"start":{"line":177,"column":6},"end":{"line":177,"column":35}},"84":{"start":{"line":179,"column":6},"end":{"line":179,"column":35}},"85":{"start":{"line":180,"column":6},"end":{"line":180,"column":33}},"86":{"start":{"line":183,"column":4},"end":{"line":183,"column":73}},"87":{"start":{"line":184,"column":4},"end":{"line":184,"column":26}},"88":{"start":{"line":188,"column":4},"end":{"line":190,"column":5}},"89":{"start":{"line":189,"column":6},"end":{"line":189,"column":51}},"90":{"start":{"line":194,"column":4},"end":{"line":194,"column":31}},"91":{"start":{"line":196,"column":4},"end":{"line":200,"column":5}},"92":{"start":{"line":197,"column":6},"end":{"line":197,"column":35}},"93":{"start":{"line":199,"column":6},"end":{"line":199,"column":28}},"94":{"start":{"line":204,"column":4},"end":{"line":206,"column":53}},"95":{"start":{"line":208,"column":4},"end":{"line":208,"column":40}},"96":{"start":{"line":210,"column":4},"end":{"line":210,"column":40}},"97":{"start":{"line":211,"column":4},"end":{"line":211,"column":40}},"98":{"start":{"line":213,"column":4},"end":{"line":213,"column":16}},"99":{"start":{"line":215,"column":4},"end":{"line":215,"column":50}},"100":{"start":{"line":219,"column":4},"end":{"line":219,"column":22}},"101":{"start":{"line":221,"column":4},"end":{"line":230,"column":5}},"102":{"start":{"line":222,"column":6},"end":{"line":222,"column":20}},"103":{"start":{"line":223,"column":11},"end":{"line":230,"column":5}},"104":{"start":{"line":224,"column":6},"end":{"line":224,"column":18}},"105":{"start":{"line":227,"column":6},"end":{"line":227,"column":30}},"106":{"start":{"line":228,"column":6},"end":{"line":228,"column":42}},"107":{"start":{"line":229,"column":6},"end":{"line":229,"column":33}},"108":{"start":{"line":232,"column":4},"end":{"line":232,"column":41}},"109":{"start":{"line":236,"column":4},"end":{"line":238,"column":27}},"110":{"start":{"line":240,"column":4},"end":{"line":249,"column":5}},"111":{"start":{"line":241,"column":6},"end":{"line":241,"column":60}},"112":{"start":{"line":242,"column":11},"end":{"line":249,"column":5}},"113":{"start":{"line":243,"column":6},"end":{"line":243,"column":104}},"114":{"start":{"line":245,"column":6},"end":{"line":245,"column":22}},"115":{"start":{"line":247,"column":6},"end":{"line":247,"column":18}},"116":{"start":{"line":248,"column":6},"end":{"line":248,"column":75}},"117":{"start":{"line":253,"column":4},"end":{"line":253,"column":41}},"118":{"start":{"line":255,"column":4},"end":{"line":261,"column":5}},"119":{"start":{"line":256,"column":6},"end":{"line":256,"column":30}},"120":{"start":{"line":257,"column":11},"end":{"line":261,"column":5}},"121":{"start":{"line":258,"column":6},"end":{"line":258,"column":30}},"122":{"start":{"line":260,"column":6},"end":{"line":260,"column":33}},"123":{"start":{"line":265,"column":4},"end":{"line":265,"column":28}},"124":{"start":{"line":266,"column":4},"end":{"line":266,"column":40}},"125":{"start":{"line":268,"column":4},"end":{"line":268,"column":27}},"126":{"start":{"line":269,"column":4},"end":{"line":274,"column":5}},"127":{"start":{"line":271,"column":6},"end":{"line":271,"column":33}},"128":{"start":{"line":273,"column":6},"end":{"line":273,"column":70}},"129":{"start":{"line":278,"column":4},"end":{"line":278,"column":29}},"130":{"start":{"line":279,"column":4},"end":{"line":279,"column":60}},"131":{"start":{"line":283,"column":4},"end":{"line":283,"column":45}},"132":{"start":{"line":287,"column":4},"end":{"line":287,"column":46}},"133":{"start":{"line":291,"column":4},"end":{"line":291,"column":42}},"134":{"start":{"line":298,"column":4},"end":{"line":298,"column":72}},"135":{"start":{"line":302,"column":4},"end":{"line":302,"column":31}},"136":{"start":{"line":302,"column":22},"end":{"line":302,"column":29}},"137":{"start":{"line":304,"column":4},"end":{"line":307,"column":5}},"138":{"start":{"line":305,"column":6},"end":{"line":305,"column":32}},"139":{"start":{"line":306,"column":6},"end":{"line":306,"column":35}},"140":{"start":{"line":311,"column":4},"end":{"line":311,"column":36}},"141":{"start":{"line":312,"column":4},"end":{"line":312,"column":42}},"142":{"start":{"line":313,"column":4},"end":{"line":313,"column":34}},"143":{"start":{"line":317,"column":4},"end":{"line":325,"column":5}},"144":{"start":{"line":318,"column":6},"end":{"line":318,"column":35}},"145":{"start":{"line":320,"column":6},"end":{"line":324,"column":7}},"146":{"start":{"line":321,"column":8},"end":{"line":321,"column":24}},"147":{"start":{"line":322,"column":13},"end":{"line":324,"column":7}},"148":{"start":{"line":323,"column":8},"end":{"line":323,"column":27}},"149":{"start":{"line":327,"column":4},"end":{"line":329,"column":29}},"150":{"start":{"line":327,"column":20},"end":{"line":327,"column":36}},"151":{"start":{"line":328,"column":9},"end":{"line":329,"column":29}},"152":{"start":{"line":328,"column":27},"end":{"line":328,"column":46}},"153":{"start":{"line":329,"column":11},"end":{"line":329,"column":27}},"154":{"start":{"line":333,"column":4},"end":{"line":335,"column":5}},"155":{"start":{"line":334,"column":6},"end":{"line":334,"column":32}},"156":{"start":{"line":339,"column":4},"end":{"line":356,"column":5}},"157":{"start":{"line":340,"column":6},"end":{"line":342,"column":7}},"158":{"start":{"line":341,"column":8},"end":{"line":341,"column":33}},"159":{"start":{"line":343,"column":6},"end":{"line":343,"column":48}},"160":{"start":{"line":344,"column":6},"end":{"line":344,"column":68}},"161":{"start":{"line":346,"column":6},"end":{"line":350,"column":7}},"162":{"start":{"line":349,"column":8},"end":{"line":349,"column":24}},"163":{"start":{"line":352,"column":6},"end":{"line":354,"column":7}},"164":{"start":{"line":353,"column":8},"end":{"line":353,"column":75}},"165":{"start":{"line":355,"column":6},"end":{"line":355,"column":23}},"166":{"start":{"line":360,"column":4},"end":{"line":360,"column":30}},"167":{"start":{"line":361,"column":4},"end":{"line":361,"column":28}},"168":{"start":{"line":363,"column":4},"end":{"line":363,"column":40}},"169":{"start":{"line":364,"column":4},"end":{"line":364,"column":40}},"170":{"start":{"line":366,"column":4},"end":{"line":370,"column":5}},"171":{"start":{"line":367,"column":6},"end":{"line":367,"column":28}},"172":{"start":{"line":369,"column":6},"end":{"line":369,"column":31}},"173":{"start":{"line":372,"column":4},"end":{"line":372,"column":18}},"174":{"start":{"line":376,"column":0},"end":{"line":392,"column":1}},"175":{"start":{"line":377,"column":2},"end":{"line":379,"column":3}},"176":{"start":{"line":378,"column":4},"end":{"line":378,"column":114}},"177":{"start":{"line":381,"column":2},"end":{"line":381,"column":26}},"178":{"start":{"line":382,"column":2},"end":{"line":384,"column":3}},"179":{"start":{"line":383,"column":4},"end":{"line":383,"column":24}},"180":{"start":{"line":385,"column":2},"end":{"line":387,"column":3}},"181":{"start":{"line":386,"column":4},"end":{"line":386,"column":29}},"182":{"start":{"line":389,"column":2},"end":{"line":389,"column":29}},"183":{"start":{"line":390,"column":2},"end":{"line":390,"column":61}},"184":{"start":{"line":391,"column":2},"end":{"line":391,"column":68}},"185":{"start":{"line":394,"column":0},"end":{"line":394,"column":32}},"186":{"start":{"line":394,"column":32},"end":{"line":437,"column":1}},"187":{"start":{"line":395,"column":2},"end":{"line":397,"column":3}},"188":{"start":{"line":396,"column":4},"end":{"line":396,"column":111}},"189":{"start":{"line":399,"column":2},"end":{"line":399,"column":26}},"190":{"start":{"line":401,"column":2},"end":{"line":403,"column":3}},"191":{"start":{"line":402,"column":4},"end":{"line":402,"column":24}},"192":{"start":{"line":404,"column":2},"end":{"line":406,"column":3}},"193":{"start":{"line":405,"column":4},"end":{"line":405,"column":29}},"194":{"start":{"line":408,"column":2},"end":{"line":408,"column":15}},"195":{"start":{"line":410,"column":2},"end":{"line":415,"column":3}},"196":{"start":{"line":411,"column":4},"end":{"line":411,"column":31}},"197":{"start":{"line":412,"column":4},"end":{"line":412,"column":63}},"198":{"start":{"line":413,"column":4},"end":{"line":413,"column":99}},"199":{"start":{"line":414,"column":4},"end":{"line":414,"column":38}},"200":{"start":{"line":418,"column":2},"end":{"line":423,"column":4}},"201":{"start":{"line":419,"column":4},"end":{"line":421,"column":5}},"202":{"start":{"line":420,"column":6},"end":{"line":420,"column":32}},"203":{"start":{"line":422,"column":4},"end":{"line":422,"column":49}},"204":{"start":{"line":424,"column":2},"end":{"line":429,"column":4}},"205":{"start":{"line":425,"column":4},"end":{"line":427,"column":5}},"206":{"start":{"line":426,"column":6},"end":{"line":426,"column":32}},"207":{"start":{"line":428,"column":4},"end":{"line":428,"column":36}},"208":{"start":{"line":430,"column":2},"end":{"line":435,"column":4}},"209":{"start":{"line":431,"column":4},"end":{"line":433,"column":5}},"210":{"start":{"line":432,"column":6},"end":{"line":432,"column":32}},"211":{"start":{"line":434,"column":4},"end":{"line":434,"column":44}},"212":{"start":{"line":436,"column":2},"end":{"line":436,"column":13}},"213":{"start":{"line":439,"column":0},"end":{"line":439,"column":26}},"214":{"start":{"line":439,"column":26},"end":{"line":452,"column":1}},"215":{"start":{"line":440,"column":2},"end":{"line":442,"column":3}},"216":{"start":{"line":441,"column":4},"end":{"line":441,"column":16}},"217":{"start":{"line":444,"column":2},"end":{"line":451,"column":3}},"218":{"start":{"line":445,"column":4},"end":{"line":449,"column":5}},"219":{"start":{"line":446,"column":6},"end":{"line":448,"column":7}},"220":{"start":{"line":447,"column":8},"end":{"line":447,"column":21}},"221":{"start":{"line":450,"column":4},"end":{"line":450,"column":16}}},"branchMap":{"1":{"line":19,"type":"if","locations":[{"start":{"line":19,"column":4},"end":{"line":19,"column":4}},{"start":{"line":19,"column":4},"end":{"line":19,"column":4}}]},"2":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":6},"end":{"line":26,"column":6}},{"start":{"line":26,"column":6},"end":{"line":26,"column":6}}]},"3":{"line":26,"type":"binary-expr","locations":[{"start":{"line":26,"column":10},"end":{"line":26,"column":46}},{"start":{"line":26,"column":50},"end":{"line":26,"column":91}}]},"4":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":6},"end":{"line":35,"column":6}},{"start":{"line":35,"column":6},"end":{"line":35,"column":6}}]},"5":{"line":65,"type":"if","locations":[{"start":{"line":65,"column":4},"end":{"line":65,"column":4}},{"start":{"line":65,"column":4},"end":{"line":65,"column":4}}]},"6":{"line":97,"type":"binary-expr","locations":[{"start":{"line":97,"column":22},"end":{"line":97,"column":37}},{"start":{"line":97,"column":41},"end":{"line":97,"column":58}}]},"7":{"line":104,"type":"if","locations":[{"start":{"line":104,"column":6},"end":{"line":104,"column":6}},{"start":{"line":104,"column":6},"end":{"line":104,"column":6}}]},"8":{"line":116,"type":"if","locations":[{"start":{"line":116,"column":4},"end":{"line":116,"column":4}},{"start":{"line":116,"column":4},"end":{"line":116,"column":4}}]},"9":{"line":120,"type":"if","locations":[{"start":{"line":120,"column":4},"end":{"line":120,"column":4}},{"start":{"line":120,"column":4},"end":{"line":120,"column":4}}]},"10":{"line":127,"type":"if","locations":[{"start":{"line":127,"column":4},"end":{"line":127,"column":4}},{"start":{"line":127,"column":4},"end":{"line":127,"column":4}}]},"11":{"line":129,"type":"if","locations":[{"start":{"line":129,"column":11},"end":{"line":129,"column":11}},{"start":{"line":129,"column":11},"end":{"line":129,"column":11}}]},"12":{"line":170,"type":"if","locations":[{"start":{"line":170,"column":4},"end":{"line":170,"column":4}},{"start":{"line":170,"column":4},"end":{"line":170,"column":4}}]},"13":{"line":176,"type":"if","locations":[{"start":{"line":176,"column":4},"end":{"line":176,"column":4}},{"start":{"line":176,"column":4},"end":{"line":176,"column":4}}]},"14":{"line":183,"type":"binary-expr","locations":[{"start":{"line":183,"column":51},"end":{"line":183,"column":65}},{"start":{"line":183,"column":69},"end":{"line":183,"column":71}}]},"15":{"line":188,"type":"if","locations":[{"start":{"line":188,"column":4},"end":{"line":188,"column":4}},{"start":{"line":188,"column":4},"end":{"line":188,"column":4}}]},"16":{"line":196,"type":"if","locations":[{"start":{"line":196,"column":4},"end":{"line":196,"column":4}},{"start":{"line":196,"column":4},"end":{"line":196,"column":4}}]},"17":{"line":196,"type":"binary-expr","locations":[{"start":{"line":196,"column":7},"end":{"line":196,"column":23}},{"start":{"line":196,"column":27},"end":{"line":196,"column":49}}]},"18":{"line":206,"type":"binary-expr","locations":[{"start":{"line":206,"column":18},"end":{"line":206,"column":33}},{"start":{"line":206,"column":37},"end":{"line":206,"column":52}}]},"19":{"line":221,"type":"if","locations":[{"start":{"line":221,"column":4},"end":{"line":221,"column":4}},{"start":{"line":221,"column":4},"end":{"line":221,"column":4}}]},"20":{"line":223,"type":"if","locations":[{"start":{"line":223,"column":11},"end":{"line":223,"column":11}},{"start":{"line":223,"column":11},"end":{"line":223,"column":11}}]},"21":{"line":240,"type":"if","locations":[{"start":{"line":240,"column":4},"end":{"line":240,"column":4}},{"start":{"line":240,"column":4},"end":{"line":240,"column":4}}]},"22":{"line":242,"type":"if","locations":[{"start":{"line":242,"column":11},"end":{"line":242,"column":11}},{"start":{"line":242,"column":11},"end":{"line":242,"column":11}}]},"23":{"line":255,"type":"if","locations":[{"start":{"line":255,"column":4},"end":{"line":255,"column":4}},{"start":{"line":255,"column":4},"end":{"line":255,"column":4}}]},"24":{"line":257,"type":"if","locations":[{"start":{"line":257,"column":11},"end":{"line":257,"column":11}},{"start":{"line":257,"column":11},"end":{"line":257,"column":11}}]},"25":{"line":269,"type":"if","locations":[{"start":{"line":269,"column":4},"end":{"line":269,"column":4}},{"start":{"line":269,"column":4},"end":{"line":269,"column":4}}]},"26":{"line":302,"type":"if","locations":[{"start":{"line":302,"column":4},"end":{"line":302,"column":4}},{"start":{"line":302,"column":4},"end":{"line":302,"column":4}}]},"27":{"line":304,"type":"if","locations":[{"start":{"line":304,"column":4},"end":{"line":304,"column":4}},{"start":{"line":304,"column":4},"end":{"line":304,"column":4}}]},"28":{"line":317,"type":"if","locations":[{"start":{"line":317,"column":4},"end":{"line":317,"column":4}},{"start":{"line":317,"column":4},"end":{"line":317,"column":4}}]},"29":{"line":317,"type":"binary-expr","locations":[{"start":{"line":317,"column":8},"end":{"line":317,"column":18}},{"start":{"line":317,"column":22},"end":{"line":317,"column":31}}]},"30":{"line":320,"type":"if","locations":[{"start":{"line":320,"column":6},"end":{"line":320,"column":6}},{"start":{"line":320,"column":6},"end":{"line":320,"column":6}}]},"31":{"line":322,"type":"if","locations":[{"start":{"line":322,"column":13},"end":{"line":322,"column":13}},{"start":{"line":322,"column":13},"end":{"line":322,"column":13}}]},"32":{"line":327,"type":"if","locations":[{"start":{"line":327,"column":4},"end":{"line":327,"column":4}},{"start":{"line":327,"column":4},"end":{"line":327,"column":4}}]},"33":{"line":328,"type":"if","locations":[{"start":{"line":328,"column":9},"end":{"line":328,"column":9}},{"start":{"line":328,"column":9},"end":{"line":328,"column":9}}]},"34":{"line":339,"type":"if","locations":[{"start":{"line":339,"column":4},"end":{"line":339,"column":4}},{"start":{"line":339,"column":4},"end":{"line":339,"column":4}}]},"35":{"line":340,"type":"if","locations":[{"start":{"line":340,"column":6},"end":{"line":340,"column":6}},{"start":{"line":340,"column":6},"end":{"line":340,"column":6}}]},"36":{"line":343,"type":"binary-expr","locations":[{"start":{"line":343,"column":32},"end":{"line":343,"column":41}},{"start":{"line":343,"column":45},"end":{"line":343,"column":46}}]},"37":{"line":346,"type":"if","locations":[{"start":{"line":346,"column":6},"end":{"line":346,"column":6}},{"start":{"line":346,"column":6},"end":{"line":346,"column":6}}]},"38":{"line":352,"type":"if","locations":[{"start":{"line":352,"column":6},"end":{"line":352,"column":6}},{"start":{"line":352,"column":6},"end":{"line":352,"column":6}}]},"39":{"line":353,"type":"binary-expr","locations":[{"start":{"line":353,"column":40},"end":{"line":353,"column":50}},{"start":{"line":353,"column":54},"end":{"line":353,"column":73}}]},"40":{"line":366,"type":"if","locations":[{"start":{"line":366,"column":4},"end":{"line":366,"column":4}},{"start":{"line":366,"column":4},"end":{"line":366,"column":4}}]},"41":{"line":377,"type":"if","locations":[{"start":{"line":377,"column":2},"end":{"line":377,"column":2}},{"start":{"line":377,"column":2},"end":{"line":377,"column":2}}]},"42":{"line":377,"type":"binary-expr","locations":[{"start":{"line":377,"column":6},"end":{"line":377,"column":19}},{"start":{"line":377,"column":24},"end":{"line":377,"column":49}},{"start":{"line":377,"column":53},"end":{"line":377,"column":94}}]},"43":{"line":381,"type":"binary-expr","locations":[{"start":{"line":381,"column":12},"end":{"line":381,"column":19}},{"start":{"line":381,"column":23},"end":{"line":381,"column":25}}]},"44":{"line":382,"type":"if","locations":[{"start":{"line":382,"column":2},"end":{"line":382,"column":2}},{"start":{"line":382,"column":2},"end":{"line":382,"column":2}}]},"45":{"line":385,"type":"if","locations":[{"start":{"line":385,"column":2},"end":{"line":385,"column":2}},{"start":{"line":385,"column":2},"end":{"line":385,"column":2}}]},"46":{"line":395,"type":"if","locations":[{"start":{"line":395,"column":2},"end":{"line":395,"column":2}},{"start":{"line":395,"column":2},"end":{"line":395,"column":2}}]},"47":{"line":395,"type":"binary-expr","locations":[{"start":{"line":395,"column":6},"end":{"line":395,"column":19}},{"start":{"line":395,"column":24},"end":{"line":395,"column":49}},{"start":{"line":395,"column":53},"end":{"line":395,"column":94}}]},"48":{"line":399,"type":"binary-expr","locations":[{"start":{"line":399,"column":12},"end":{"line":399,"column":19}},{"start":{"line":399,"column":23},"end":{"line":399,"column":25}}]},"49":{"line":401,"type":"if","locations":[{"start":{"line":401,"column":2},"end":{"line":401,"column":2}},{"start":{"line":401,"column":2},"end":{"line":401,"column":2}}]},"50":{"line":404,"type":"if","locations":[{"start":{"line":404,"column":2},"end":{"line":404,"column":2}},{"start":{"line":404,"column":2},"end":{"line":404,"column":2}}]},"51":{"line":419,"type":"if","locations":[{"start":{"line":419,"column":4},"end":{"line":419,"column":4}},{"start":{"line":419,"column":4},"end":{"line":419,"column":4}}]},"52":{"line":425,"type":"if","locations":[{"start":{"line":425,"column":4},"end":{"line":425,"column":4}},{"start":{"line":425,"column":4},"end":{"line":425,"column":4}}]},"53":{"line":431,"type":"if","locations":[{"start":{"line":431,"column":4},"end":{"line":431,"column":4}},{"start":{"line":431,"column":4},"end":{"line":431,"column":4}}]},"54":{"line":440,"type":"if","locations":[{"start":{"line":440,"column":2},"end":{"line":440,"column":2}},{"start":{"line":440,"column":2},"end":{"line":440,"column":2}}]},"55":{"line":444,"type":"if","locations":[{"start":{"line":444,"column":2},"end":{"line":444,"column":2}},{"start":{"line":444,"column":2},"end":{"line":444,"column":2}}]},"56":{"line":444,"type":"binary-expr","locations":[{"start":{"line":444,"column":6},"end":{"line":444,"column":16}},{"start":{"line":444,"column":20},"end":{"line":444,"column":30}},{"start":{"line":444,"column":34},"end":{"line":444,"column":55}}]},"57":{"line":446,"type":"if","locations":[{"start":{"line":446,"column":6},"end":{"line":446,"column":6}},{"start":{"line":446,"column":6},"end":{"line":446,"column":6}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/javascript-compiler.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/javascript-compiler.js","s":{"1":1,"2":1,"3":1,"4":1,"5":6739,"6":1,"7":1,"8":3716,"9":3428,"10":288,"11":332,"12":332,"13":935,"14":935,"15":3199,"16":1085,"17":2114,"18":458,"19":147,"20":1555,"21":1555,"22":1555,"23":1555,"24":1555,"25":1555,"26":1555,"27":1555,"28":1555,"29":1555,"30":1555,"31":1555,"32":1555,"33":1555,"34":1555,"35":1555,"36":1555,"37":1555,"38":1555,"39":1555,"40":13864,"41":13864,"42":1555,"43":1555,"44":0,"45":1555,"46":1555,"47":936,"48":936,"49":936,"50":1154,"51":619,"52":936,"53":82,"54":936,"55":922,"56":936,"57":278,"58":936,"59":228,"60":936,"61":783,"62":783,"63":936,"64":619,"65":1555,"66":1555,"67":1555,"68":1555,"69":1555,"70":1023,"71":1555,"72":2891,"73":2889,"74":1555,"75":1555,"76":472,"77":1555,"78":1555,"79":184,"80":184,"81":1371,"82":1555,"83":1555,"84":4235,"85":4235,"86":1656,"87":796,"88":860,"89":2579,"90":292,"91":264,"92":264,"93":28,"94":292,"95":2579,"96":2579,"97":1140,"98":1555,"99":1143,"100":324,"101":412,"102":412,"103":269,"104":143,"105":1555,"106":1207,"107":1555,"108":32,"109":32,"110":32,"111":32,"112":32,"113":32,"114":313,"115":313,"116":313,"117":313,"118":313,"119":313,"120":313,"121":1409,"122":26,"123":1409,"124":723,"125":723,"126":723,"127":723,"128":265,"129":828,"130":828,"131":2610,"132":1401,"133":1533,"134":1533,"135":332,"136":1201,"137":1533,"138":1345,"139":1345,"140":1345,"141":1095,"142":250,"143":68,"144":64,"145":4,"146":68,"147":68,"148":80,"149":80,"150":182,"151":182,"152":62,"153":62,"154":62,"155":58,"156":50,"157":8,"158":1626,"159":1626,"160":56,"161":1626,"162":30,"163":30,"164":52,"165":2,"166":52,"167":52,"168":52,"169":52,"170":4,"171":52,"172":10,"173":10,"174":52,"175":198,"176":10559,"177":10559,"178":78,"179":3352,"180":952,"181":2400,"182":244,"183":244,"184":244,"185":244,"186":244,"187":210,"188":210,"189":877,"190":877,"191":877,"192":877,"193":877,"194":877,"195":877,"196":877,"197":86,"198":86,"199":82,"200":4,"201":2,"202":86,"203":26,"204":86,"205":88,"206":88,"207":6,"208":88,"209":18,"210":18,"211":88,"212":88,"213":18,"214":88,"215":18,"216":88,"217":6,"218":88,"219":54,"220":46,"221":8,"222":2,"223":6,"224":1555,"225":1555,"226":625,"227":625,"228":625,"229":625,"230":619,"231":619,"232":619,"233":619,"234":619,"235":619,"236":619,"237":6,"238":6,"239":625,"240":222,"241":222,"242":6,"243":952,"244":952,"245":952,"246":376,"247":952,"248":1503,"249":966,"250":966,"251":6739,"252":4407,"253":1383,"254":1383,"255":4407,"256":2852,"257":723,"258":723,"259":723,"260":723,"261":723,"262":1425,"263":1425,"264":0,"265":1425,"266":1425,"267":1269,"268":1269,"269":156,"270":156,"271":156,"272":156,"273":1425,"274":1425,"275":156,"276":1425,"277":156,"278":1425,"279":879,"280":879,"281":751,"282":879,"283":879,"284":1759,"285":1759,"286":723,"287":723,"288":723,"289":723,"290":0,"291":723,"292":13878,"293":10559,"294":10559,"295":5470,"296":5089,"297":723,"298":0,"299":723,"300":5089,"301":469,"302":469,"303":0,"304":469,"305":3259,"306":54,"307":3205,"308":13802,"309":2459,"310":2459,"311":10401,"312":10397,"313":2459,"314":1331,"315":1331,"316":1331,"317":1676,"318":1676,"319":1676,"320":1676,"321":60,"322":1676,"323":40,"324":40,"325":1676,"326":1676,"327":1676,"328":890,"329":138,"330":890,"331":690,"332":890,"333":890,"334":1676,"335":1676,"336":486,"337":486,"338":486,"339":48,"340":486,"341":44,"342":44,"343":1676,"344":60,"345":1676,"346":40,"347":40,"348":1676,"349":1640,"350":1676,"351":1676,"352":1676,"353":626,"354":626,"355":626,"356":1050,"357":1050,"358":1,"359":1,"360":1,"361":58,"362":1,"363":3716,"364":1},"b":{"1":[3428,288],"2":[1085,2114],"3":[1555,936],"4":[1555,1369,1319],"5":[0,1555],"6":[1555,1555,1555],"7":[936,619],"8":[619,535],"9":[82,854],"10":[922,14],"11":[278,658],"12":[228,708],"13":[783,153],"14":[1023,532],"15":[2889,2],"16":[472,1083],"17":[184,1371],"18":[1656,2579],"19":[796,860],"20":[292,2287],"21":[264,28],"22":[1140,1439],"23":[1143,412],"24":[324,819],"25":[1143,844],"26":[324,25],"27":[264,148],"28":[269,143],"29":[1207,348],"30":[264,943],"31":[26,1383],"32":[265,458],"33":[332,1201],"34":[1533,1515,332],"35":[1095,250],"36":[64,4],"37":[58,4],"38":[50,8],"39":[56,1570],"40":[30,1596],"41":[2,50],"42":[4,48],"43":[10,42],"44":[952,2400],"45":[232,12],"46":[313,564],"47":[82,4],"48":[2,2],"49":[26,60],"50":[6,82],"51":[18,70],"52":[18,70],"53":[18,70],"54":[6,82],"55":[46,8],"56":[54,12],"57":[2,6],"58":[619,6],"59":[619,611],"60":[6,216],"61":[222,112],"62":[376,576],"63":[966,537],"64":[1383,3024],"65":[2852,1555],"66":[0,1425],"67":[1269,156],"68":[0,156],"69":[156,1269],"70":[156,1269],"71":[751,128],"72":[723,1036],"73":[0,723],"74":[9836,723],"75":[5470,5089],"76":[10559,9134],"77":[723,4366],"78":[0,723],"79":[156,313],"80":[0,469],"81":[54,3205],"82":[3259,826],"83":[10397,4],"84":[60,1616],"85":[40,1636],"86":[890,786],"87":[1676,924],"88":[138,752],"89":[690,200],"90":[48,438],"91":[44,442],"92":[60,1616],"93":[40,1636],"94":[1640,36],"95":[626,1050],"96":[3716,3480]},"f":{"1":6739,"2":1561,"3":3716,"4":332,"5":935,"6":3199,"7":458,"8":147,"9":1555,"10":1555,"11":1555,"12":1555,"13":32,"14":313,"15":1409,"16":723,"17":828,"18":2610,"19":1401,"20":1533,"21":1345,"22":68,"23":80,"24":182,"25":62,"26":1626,"27":52,"28":52,"29":198,"30":10559,"31":78,"32":3352,"33":244,"34":210,"35":877,"36":86,"37":88,"38":54,"39":1555,"40":625,"41":952,"42":1503,"43":6739,"44":4407,"45":723,"46":1425,"47":879,"48":879,"49":1759,"50":13878,"51":10559,"52":469,"53":3259,"54":13802,"55":2459,"56":1331,"57":1676,"58":1676,"59":3716},"fnMap":{"1":{"name":"Literal","line":6,"loc":{"start":{"line":6,"column":0},"end":{"line":6,"column":24}}},"2":{"name":"JavaScriptCompiler","line":10,"loc":{"start":{"line":10,"column":0},"end":{"line":10,"column":30}}},"3":{"name":"(anonymous_3)","line":15,"loc":{"start":{"line":15,"column":14},"end":{"line":15,"column":49}}},"4":{"name":"(anonymous_4)","line":22,"loc":{"start":{"line":22,"column":17},"end":{"line":22,"column":32}}},"5":{"name":"(anonymous_5)","line":28,"loc":{"start":{"line":28,"column":16},"end":{"line":28,"column":27}}},"6":{"name":"(anonymous_6)","line":34,"loc":{"start":{"line":34,"column":18},"end":{"line":34,"column":35}}},"7":{"name":"(anonymous_7)","line":41,"loc":{"start":{"line":41,"column":18},"end":{"line":41,"column":29}}},"8":{"name":"(anonymous_8)","line":46,"loc":{"start":{"line":46,"column":20},"end":{"line":46,"column":31}}},"9":{"name":"(anonymous_9)","line":53,"loc":{"start":{"line":53,"column":11},"end":{"line":53,"column":61}}},"10":{"name":"(anonymous_10)","line":137,"loc":{"start":{"line":137,"column":12},"end":{"line":137,"column":23}}},"11":{"name":"(anonymous_11)","line":144,"loc":{"start":{"line":144,"column":25},"end":{"line":144,"column":44}}},"12":{"name":"(anonymous_12)","line":176,"loc":{"start":{"line":176,"column":15},"end":{"line":176,"column":41}}},"13":{"name":"(anonymous_13)","line":237,"loc":{"start":{"line":237,"column":14},"end":{"line":237,"column":29}}},"14":{"name":"(anonymous_14)","line":255,"loc":{"start":{"line":255,"column":23},"end":{"line":255,"column":34}}},"15":{"name":"(anonymous_15)","line":276,"loc":{"start":{"line":276,"column":17},"end":{"line":276,"column":35}}},"16":{"name":"(anonymous_16)","line":293,"loc":{"start":{"line":293,"column":10},"end":{"line":293,"column":21}}},"17":{"name":"(anonymous_17)","line":310,"loc":{"start":{"line":310,"column":17},"end":{"line":310,"column":28}}},"18":{"name":"(anonymous_18)","line":323,"loc":{"start":{"line":323,"column":14},"end":{"line":323,"column":30}}},"19":{"name":"(anonymous_19)","line":333,"loc":{"start":{"line":333,"column":15},"end":{"line":333,"column":26}}},"20":{"name":"(anonymous_20)","line":344,"loc":{"start":{"line":344,"column":19},"end":{"line":344,"column":50}}},"21":{"name":"(anonymous_21)","line":358,"loc":{"start":{"line":358,"column":24},"end":{"line":358,"column":42}}},"22":{"name":"(anonymous_22)","line":378,"loc":{"start":{"line":378,"column":14},"end":{"line":378,"column":37}}},"23":{"name":"(anonymous_23)","line":388,"loc":{"start":{"line":388,"column":24},"end":{"line":388,"column":42}}},"24":{"name":"(anonymous_24)","line":401,"loc":{"start":{"line":401,"column":25},"end":{"line":401,"column":36}}},"25":{"name":"(anonymous_25)","line":415,"loc":{"start":{"line":415,"column":19},"end":{"line":415,"column":42}}},"26":{"name":"(anonymous_26)","line":430,"loc":{"start":{"line":430,"column":13},"end":{"line":430,"column":24}}},"27":{"name":"(anonymous_27)","line":441,"loc":{"start":{"line":441,"column":12},"end":{"line":441,"column":23}}},"28":{"name":"(anonymous_28)","line":447,"loc":{"start":{"line":447,"column":11},"end":{"line":447,"column":22}}},"29":{"name":"(anonymous_29)","line":468,"loc":{"start":{"line":468,"column":14},"end":{"line":468,"column":31}}},"30":{"name":"(anonymous_30)","line":478,"loc":{"start":{"line":478,"column":8},"end":{"line":478,"column":23}}},"31":{"name":"(anonymous_31)","line":491,"loc":{"start":{"line":491,"column":15},"end":{"line":491,"column":31}}},"32":{"name":"(anonymous_32)","line":503,"loc":{"start":{"line":503,"column":15},"end":{"line":503,"column":30}}},"33":{"name":"(anonymous_33)","line":520,"loc":{"start":{"line":520,"column":16},"end":{"line":520,"column":52}}},"34":{"name":"(anonymous_34)","line":537,"loc":{"start":{"line":537,"column":21},"end":{"line":537,"column":47}}},"35":{"name":"(anonymous_35)","line":554,"loc":{"start":{"line":554,"column":19},"end":{"line":554,"column":46}}},"36":{"name":"(anonymous_36)","line":579,"loc":{"start":{"line":579,"column":17},"end":{"line":579,"column":40}}},"37":{"name":"(anonymous_37)","line":600,"loc":{"start":{"line":600,"column":16},"end":{"line":600,"column":30}}},"38":{"name":"(anonymous_38)","line":627,"loc":{"start":{"line":627,"column":10},"end":{"line":627,"column":31}}},"39":{"name":"(anonymous_39)","line":641,"loc":{"start":{"line":641,"column":19},"end":{"line":641,"column":50}}},"40":{"name":"(anonymous_40)","line":665,"loc":{"start":{"line":665,"column":24},"end":{"line":665,"column":40}}},"41":{"name":"(anonymous_41)","line":674,"loc":{"start":{"line":674,"column":21},"end":{"line":674,"column":36}}},"42":{"name":"(anonymous_42)","line":689,"loc":{"start":{"line":689,"column":15},"end":{"line":689,"column":30}}},"43":{"name":"(anonymous_43)","line":696,"loc":{"start":{"line":696,"column":20},"end":{"line":696,"column":35}}},"44":{"name":"(anonymous_44)","line":700,"loc":{"start":{"line":700,"column":14},"end":{"line":700,"column":31}}},"45":{"name":"(anonymous_45)","line":711,"loc":{"start":{"line":711,"column":13},"end":{"line":711,"column":28}}},"46":{"name":"(anonymous_46)","line":720,"loc":{"start":{"line":720,"column":16},"end":{"line":720,"column":35}}},"47":{"name":"(anonymous_47)","line":759,"loc":{"start":{"line":759,"column":13},"end":{"line":759,"column":24}}},"48":{"name":"(anonymous_48)","line":764,"loc":{"start":{"line":764,"column":16},"end":{"line":764,"column":27}}},"49":{"name":"(anonymous_49)","line":767,"loc":{"start":{"line":767,"column":15},"end":{"line":767,"column":26}}},"50":{"name":"(anonymous_50)","line":781,"loc":{"start":{"line":781,"column":12},"end":{"line":781,"column":23}}},"51":{"name":"(anonymous_51)","line":785,"loc":{"start":{"line":785,"column":12},"end":{"line":785,"column":30}}},"52":{"name":"(anonymous_52)","line":803,"loc":{"start":{"line":803,"column":12},"end":{"line":803,"column":23}}},"53":{"name":"(anonymous_53)","line":814,"loc":{"start":{"line":814,"column":15},"end":{"line":814,"column":33}}},"54":{"name":"(anonymous_54)","line":822,"loc":{"start":{"line":822,"column":16},"end":{"line":822,"column":30}}},"55":{"name":"(anonymous_55)","line":832,"loc":{"start":{"line":832,"column":17},"end":{"line":832,"column":31}}},"56":{"name":"(anonymous_56)","line":844,"loc":{"start":{"line":844,"column":15},"end":{"line":844,"column":54}}},"57":{"name":"(anonymous_57)","line":857,"loc":{"start":{"line":857,"column":16},"end":{"line":857,"column":52}}},"58":{"name":"(anonymous_58)","line":922,"loc":{"start":{"line":922,"column":15},"end":{"line":922,"column":68}}},"59":{"name":"(anonymous_59)","line":960,"loc":{"start":{"line":960,"column":51},"end":{"line":960,"column":66}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":61}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":59}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":51}},"4":{"start":{"line":6,"column":0},"end":{"line":8,"column":1}},"5":{"start":{"line":7,"column":2},"end":{"line":7,"column":21}},"6":{"start":{"line":10,"column":0},"end":{"line":10,"column":32}},"7":{"start":{"line":12,"column":0},"end":{"line":934,"column":2}},"8":{"start":{"line":16,"column":4},"end":{"line":20,"column":5}},"9":{"start":{"line":17,"column":6},"end":{"line":17,"column":33}},"10":{"start":{"line":19,"column":6},"end":{"line":19,"column":41}},"11":{"start":{"line":23,"column":4},"end":{"line":23,"column":40}},"12":{"start":{"line":25,"column":4},"end":{"line":25,"column":44}},"13":{"start":{"line":29,"column":4},"end":{"line":30,"column":46}},"14":{"start":{"line":31,"column":4},"end":{"line":31,"column":32}},"15":{"start":{"line":35,"column":4},"end":{"line":43,"column":5}},"16":{"start":{"line":36,"column":6},"end":{"line":36,"column":38}},"17":{"start":{"line":38,"column":6},"end":{"line":42,"column":8}},"18":{"start":{"line":41,"column":31},"end":{"line":41,"column":66}},"19":{"start":{"line":47,"column":4},"end":{"line":47,"column":33}},"20":{"start":{"line":54,"column":4},"end":{"line":54,"column":35}},"21":{"start":{"line":55,"column":4},"end":{"line":55,"column":27}},"22":{"start":{"line":56,"column":4},"end":{"line":56,"column":50}},"23":{"start":{"line":57,"column":4},"end":{"line":57,"column":42}},"24":{"start":{"line":58,"column":4},"end":{"line":58,"column":32}},"25":{"start":{"line":60,"column":4},"end":{"line":60,"column":38}},"26":{"start":{"line":61,"column":4},"end":{"line":61,"column":29}},"27":{"start":{"line":62,"column":4},"end":{"line":65,"column":6}},"28":{"start":{"line":67,"column":4},"end":{"line":67,"column":20}},"29":{"start":{"line":69,"column":4},"end":{"line":69,"column":23}},"30":{"start":{"line":70,"column":4},"end":{"line":70,"column":24}},"31":{"start":{"line":71,"column":4},"end":{"line":71,"column":22}},"32":{"start":{"line":72,"column":4},"end":{"line":72,"column":34}},"33":{"start":{"line":73,"column":4},"end":{"line":73,"column":21}},"34":{"start":{"line":74,"column":4},"end":{"line":74,"column":27}},"35":{"start":{"line":75,"column":4},"end":{"line":75,"column":26}},"36":{"start":{"line":77,"column":4},"end":{"line":77,"column":47}},"37":{"start":{"line":79,"column":4},"end":{"line":79,"column":93}},"38":{"start":{"line":81,"column":4},"end":{"line":84,"column":10}},"39":{"start":{"line":86,"column":4},"end":{"line":90,"column":5}},"40":{"start":{"line":87,"column":6},"end":{"line":87,"column":26}},"41":{"start":{"line":89,"column":6},"end":{"line":89,"column":51}},"42":{"start":{"line":93,"column":4},"end":{"line":93,"column":24}},"43":{"start":{"line":96,"column":4},"end":{"line":98,"column":5},"skip":true},"44":{"start":{"line":97,"column":6},"end":{"line":97,"column":74},"skip":true},"45":{"start":{"line":100,"column":4},"end":{"line":100,"column":50}},"46":{"start":{"line":101,"column":4},"end":{"line":134,"column":5}},"47":{"start":{"line":102,"column":6},"end":{"line":105,"column":8}},"48":{"start":{"line":106,"column":6},"end":{"line":106,"column":43}},"49":{"start":{"line":107,"column":6},"end":{"line":111,"column":7}},"50":{"start":{"line":108,"column":8},"end":{"line":110,"column":9}},"51":{"start":{"line":109,"column":10},"end":{"line":109,"column":31}},"52":{"start":{"line":113,"column":6},"end":{"line":115,"column":7}},"53":{"start":{"line":114,"column":8},"end":{"line":114,"column":30}},"54":{"start":{"line":116,"column":6},"end":{"line":118,"column":7}},"55":{"start":{"line":117,"column":8},"end":{"line":117,"column":27}},"56":{"start":{"line":119,"column":6},"end":{"line":121,"column":7}},"57":{"start":{"line":120,"column":8},"end":{"line":120,"column":29}},"58":{"start":{"line":122,"column":6},"end":{"line":124,"column":7}},"59":{"start":{"line":123,"column":8},"end":{"line":123,"column":26}},"60":{"start":{"line":126,"column":6},"end":{"line":129,"column":7}},"61":{"start":{"line":127,"column":8},"end":{"line":127,"column":52}},"62":{"start":{"line":128,"column":8},"end":{"line":128,"column":38}},"63":{"start":{"line":131,"column":6},"end":{"line":131,"column":17}},"64":{"start":{"line":133,"column":6},"end":{"line":133,"column":16}},"65":{"start":{"line":140,"column":4},"end":{"line":140,"column":25}},"66":{"start":{"line":141,"column":4},"end":{"line":141,"column":21}},"67":{"start":{"line":145,"column":4},"end":{"line":145,"column":29}},"68":{"start":{"line":147,"column":4},"end":{"line":147,"column":60}},"69":{"start":{"line":148,"column":4},"end":{"line":150,"column":5}},"70":{"start":{"line":149,"column":6},"end":{"line":149,"column":50}},"71":{"start":{"line":153,"column":4},"end":{"line":157,"column":5}},"72":{"start":{"line":154,"column":6},"end":{"line":156,"column":7}},"73":{"start":{"line":155,"column":8},"end":{"line":155,"column":68}},"74":{"start":{"line":159,"column":4},"end":{"line":159,"column":59}},"75":{"start":{"line":161,"column":4},"end":{"line":163,"column":5}},"76":{"start":{"line":162,"column":6},"end":{"line":162,"column":28}},"77":{"start":{"line":166,"column":4},"end":{"line":166,"column":51}},"78":{"start":{"line":168,"column":4},"end":{"line":174,"column":5}},"79":{"start":{"line":169,"column":6},"end":{"line":169,"column":26}},"80":{"start":{"line":171,"column":6},"end":{"line":171,"column":42}},"81":{"start":{"line":173,"column":6},"end":{"line":173,"column":71}},"82":{"start":{"line":177,"column":4},"end":{"line":180,"column":20}},"83":{"start":{"line":182,"column":4},"end":{"line":206,"column":5}},"84":{"start":{"line":183,"column":6},"end":{"line":183,"column":32}},"85":{"start":{"line":184,"column":6},"end":{"line":205,"column":7}},"86":{"start":{"line":185,"column":8},"end":{"line":189,"column":9}},"87":{"start":{"line":186,"column":10},"end":{"line":186,"column":54}},"88":{"start":{"line":188,"column":10},"end":{"line":188,"column":32}},"89":{"start":{"line":191,"column":8},"end":{"line":199,"column":9}},"90":{"start":{"line":192,"column":10},"end":{"line":197,"column":11}},"91":{"start":{"line":193,"column":12},"end":{"line":193,"column":31}},"92":{"start":{"line":194,"column":12},"end":{"line":194,"column":38}},"93":{"start":{"line":196,"column":12},"end":{"line":196,"column":54}},"94":{"start":{"line":198,"column":10},"end":{"line":198,"column":29}},"95":{"start":{"line":200,"column":8},"end":{"line":200,"column":32}},"96":{"start":{"line":202,"column":8},"end":{"line":204,"column":9}},"97":{"start":{"line":203,"column":10},"end":{"line":203,"column":29}},"98":{"start":{"line":208,"column":4},"end":{"line":219,"column":5}},"99":{"start":{"line":209,"column":6},"end":{"line":211,"column":7}},"100":{"start":{"line":210,"column":8},"end":{"line":210,"column":55}},"101":{"start":{"line":213,"column":6},"end":{"line":213,"column":86}},"102":{"start":{"line":214,"column":6},"end":{"line":218,"column":7}},"103":{"start":{"line":215,"column":8},"end":{"line":215,"column":54}},"104":{"start":{"line":217,"column":8},"end":{"line":217,"column":37}},"105":{"start":{"line":221,"column":4},"end":{"line":223,"column":5}},"106":{"start":{"line":222,"column":6},"end":{"line":222,"column":93}},"107":{"start":{"line":225,"column":4},"end":{"line":225,"column":18}},"108":{"start":{"line":238,"column":4},"end":{"line":238,"column":67}},"109":{"start":{"line":240,"column":4},"end":{"line":240,"column":39}},"110":{"start":{"line":241,"column":4},"end":{"line":241,"column":38}},"111":{"start":{"line":243,"column":4},"end":{"line":243,"column":36}},"112":{"start":{"line":244,"column":4},"end":{"line":244,"column":35}},"113":{"start":{"line":246,"column":4},"end":{"line":246,"column":68}},"114":{"start":{"line":256,"column":4},"end":{"line":256,"column":67}},"115":{"start":{"line":259,"column":4},"end":{"line":259,"column":39}},"116":{"start":{"line":260,"column":4},"end":{"line":260,"column":42}},"117":{"start":{"line":262,"column":4},"end":{"line":262,"column":23}},"118":{"start":{"line":264,"column":4},"end":{"line":264,"column":34}},"119":{"start":{"line":265,"column":4},"end":{"line":265,"column":33}},"120":{"start":{"line":267,"column":4},"end":{"line":267,"column":127}},"121":{"start":{"line":277,"column":4},"end":{"line":279,"column":5}},"122":{"start":{"line":278,"column":6},"end":{"line":278,"column":46}},"123":{"start":{"line":281,"column":4},"end":{"line":281,"column":34}},"124":{"start":{"line":296,"column":4},"end":{"line":296,"column":23}},"125":{"start":{"line":297,"column":4},"end":{"line":297,"column":32}},"126":{"start":{"line":298,"column":4},"end":{"line":298,"column":89}},"127":{"start":{"line":299,"column":4},"end":{"line":301,"column":5}},"128":{"start":{"line":300,"column":6},"end":{"line":300,"column":68}},"129":{"start":{"line":311,"column":4},"end":{"line":311,"column":60}},"130":{"start":{"line":313,"column":4},"end":{"line":313,"column":86}},"131":{"start":{"line":324,"column":4},"end":{"line":324,"column":29}},"132":{"start":{"line":334,"column":4},"end":{"line":334,"column":62}},"133":{"start":{"line":346,"column":4},"end":{"line":347,"column":27}},"134":{"start":{"line":349,"column":4},"end":{"line":355,"column":5}},"135":{"start":{"line":352,"column":6},"end":{"line":352,"column":48}},"136":{"start":{"line":354,"column":6},"end":{"line":354,"column":25}},"137":{"start":{"line":357,"column":4},"end":{"line":369,"column":5}},"138":{"start":{"line":358,"column":6},"end":{"line":368,"column":9}},"139":{"start":{"line":359,"column":8},"end":{"line":359,"column":67}},"140":{"start":{"line":362,"column":8},"end":{"line":367,"column":9}},"141":{"start":{"line":363,"column":10},"end":{"line":363,"column":58}},"142":{"start":{"line":366,"column":10},"end":{"line":366,"column":33}},"143":{"start":{"line":380,"column":4},"end":{"line":384,"column":5}},"144":{"start":{"line":381,"column":6},"end":{"line":381,"column":36}},"145":{"start":{"line":383,"column":6},"end":{"line":383,"column":62}},"146":{"start":{"line":386,"column":4},"end":{"line":386,"column":27}},"147":{"start":{"line":387,"column":4},"end":{"line":391,"column":5}},"148":{"start":{"line":388,"column":6},"end":{"line":390,"column":9}},"149":{"start":{"line":389,"column":8},"end":{"line":389,"column":67}},"150":{"start":{"line":402,"column":4},"end":{"line":402,"column":40}},"151":{"start":{"line":404,"column":4},"end":{"line":404,"column":78}},"152":{"start":{"line":416,"column":4},"end":{"line":416,"column":23}},"153":{"start":{"line":417,"column":4},"end":{"line":417,"column":26}},"154":{"start":{"line":421,"column":4},"end":{"line":427,"column":5}},"155":{"start":{"line":422,"column":6},"end":{"line":426,"column":7}},"156":{"start":{"line":423,"column":8},"end":{"line":423,"column":32}},"157":{"start":{"line":425,"column":8},"end":{"line":425,"column":38}},"158":{"start":{"line":431,"column":4},"end":{"line":431,"column":32}},"159":{"start":{"line":433,"column":4},"end":{"line":435,"column":5}},"160":{"start":{"line":434,"column":6},"end":{"line":434,"column":22}},"161":{"start":{"line":436,"column":4},"end":{"line":439,"column":5}},"162":{"start":{"line":437,"column":6},"end":{"line":437,"column":22}},"163":{"start":{"line":438,"column":6},"end":{"line":438,"column":22}},"164":{"start":{"line":442,"column":4},"end":{"line":444,"column":5}},"165":{"start":{"line":443,"column":6},"end":{"line":443,"column":34}},"166":{"start":{"line":445,"column":4},"end":{"line":445,"column":63}},"167":{"start":{"line":448,"column":4},"end":{"line":448,"column":25}},"168":{"start":{"line":449,"column":4},"end":{"line":449,"column":34}},"169":{"start":{"line":451,"column":4},"end":{"line":453,"column":5}},"170":{"start":{"line":452,"column":6},"end":{"line":452,"column":48}},"171":{"start":{"line":454,"column":4},"end":{"line":457,"column":5}},"172":{"start":{"line":455,"column":6},"end":{"line":455,"column":53}},"173":{"start":{"line":456,"column":6},"end":{"line":456,"column":50}},"174":{"start":{"line":459,"column":4},"end":{"line":459,"column":65}},"175":{"start":{"line":469,"column":4},"end":{"line":469,"column":53}},"176":{"start":{"line":479,"column":4},"end":{"line":479,"column":32}},"177":{"start":{"line":480,"column":4},"end":{"line":480,"column":16}},"178":{"start":{"line":492,"column":4},"end":{"line":492,"column":33}},"179":{"start":{"line":504,"column":4},"end":{"line":508,"column":5}},"180":{"start":{"line":505,"column":6},"end":{"line":505,"column":58}},"181":{"start":{"line":507,"column":6},"end":{"line":507,"column":34}},"182":{"start":{"line":521,"column":4},"end":{"line":521,"column":57}},"183":{"start":{"line":523,"column":4},"end":{"line":523,"column":36}},"184":{"start":{"line":524,"column":4},"end":{"line":524,"column":51}},"185":{"start":{"line":526,"column":4},"end":{"line":526,"column":90}},"186":{"start":{"line":527,"column":4},"end":{"line":527,"column":68}},"187":{"start":{"line":538,"column":4},"end":{"line":538,"column":51}},"188":{"start":{"line":539,"column":4},"end":{"line":539,"column":64}},"189":{"start":{"line":555,"column":4},"end":{"line":555,"column":45}},"190":{"start":{"line":556,"column":4},"end":{"line":556,"column":57}},"191":{"start":{"line":557,"column":4},"end":{"line":557,"column":31}},"192":{"start":{"line":559,"column":4},"end":{"line":559,"column":36}},"193":{"start":{"line":561,"column":4},"end":{"line":561,"column":21}},"194":{"start":{"line":562,"column":4},"end":{"line":562,"column":55}},"195":{"start":{"line":564,"column":4},"end":{"line":564,"column":82}},"196":{"start":{"line":566,"column":4},"end":{"line":569,"column":95}},"197":{"start":{"line":580,"column":4},"end":{"line":580,"column":159}},"198":{"start":{"line":582,"column":4},"end":{"line":586,"column":5}},"199":{"start":{"line":583,"column":6},"end":{"line":583,"column":26}},"200":{"start":{"line":584,"column":11},"end":{"line":586,"column":5}},"201":{"start":{"line":585,"column":6},"end":{"line":585,"column":31}},"202":{"start":{"line":587,"column":4},"end":{"line":589,"column":5}},"203":{"start":{"line":588,"column":6},"end":{"line":588,"column":28}},"204":{"start":{"line":591,"column":4},"end":{"line":591,"column":63}},"205":{"start":{"line":601,"column":4},"end":{"line":604,"column":11}},"206":{"start":{"line":606,"column":4},"end":{"line":608,"column":5}},"207":{"start":{"line":607,"column":6},"end":{"line":607,"column":27}},"208":{"start":{"line":609,"column":4},"end":{"line":612,"column":5}},"209":{"start":{"line":610,"column":6},"end":{"line":610,"column":29}},"210":{"start":{"line":611,"column":6},"end":{"line":611,"column":32}},"211":{"start":{"line":614,"column":4},"end":{"line":614,"column":25}},"212":{"start":{"line":615,"column":4},"end":{"line":617,"column":5}},"213":{"start":{"line":616,"column":6},"end":{"line":616,"column":54}},"214":{"start":{"line":618,"column":4},"end":{"line":620,"column":5}},"215":{"start":{"line":619,"column":6},"end":{"line":619,"column":48}},"216":{"start":{"line":621,"column":4},"end":{"line":623,"column":5}},"217":{"start":{"line":622,"column":6},"end":{"line":622,"column":44}},"218":{"start":{"line":624,"column":4},"end":{"line":624,"column":55}},"219":{"start":{"line":628,"column":4},"end":{"line":634,"column":5}},"220":{"start":{"line":629,"column":6},"end":{"line":629,"column":28}},"221":{"start":{"line":630,"column":11},"end":{"line":634,"column":5}},"222":{"start":{"line":631,"column":6},"end":{"line":631,"column":36}},"223":{"start":{"line":633,"column":6},"end":{"line":633,"column":36}},"224":{"start":{"line":642,"column":4},"end":{"line":642,"column":57}},"225":{"start":{"line":644,"column":4},"end":{"line":663,"column":5}},"226":{"start":{"line":645,"column":6},"end":{"line":645,"column":26}},"227":{"start":{"line":646,"column":6},"end":{"line":646,"column":37}},"228":{"start":{"line":648,"column":6},"end":{"line":648,"column":51}},"229":{"start":{"line":650,"column":6},"end":{"line":662,"column":7}},"230":{"start":{"line":651,"column":8},"end":{"line":651,"column":39}},"231":{"start":{"line":652,"column":8},"end":{"line":652,"column":45}},"232":{"start":{"line":653,"column":8},"end":{"line":653,"column":28}},"233":{"start":{"line":654,"column":8},"end":{"line":654,"column":39}},"234":{"start":{"line":655,"column":8},"end":{"line":655,"column":104}},"235":{"start":{"line":656,"column":8},"end":{"line":656,"column":49}},"236":{"start":{"line":658,"column":8},"end":{"line":658,"column":62}},"237":{"start":{"line":660,"column":8},"end":{"line":660,"column":28}},"238":{"start":{"line":661,"column":8},"end":{"line":661,"column":39}},"239":{"start":{"line":666,"column":4},"end":{"line":671,"column":5}},"240":{"start":{"line":667,"column":6},"end":{"line":667,"column":53}},"241":{"start":{"line":668,"column":6},"end":{"line":670,"column":7}},"242":{"start":{"line":669,"column":8},"end":{"line":669,"column":17}},"243":{"start":{"line":675,"column":4},"end":{"line":678,"column":14}},"244":{"start":{"line":680,"column":4},"end":{"line":680,"column":46}},"245":{"start":{"line":682,"column":4},"end":{"line":684,"column":5}},"246":{"start":{"line":683,"column":6},"end":{"line":683,"column":35}},"247":{"start":{"line":686,"column":4},"end":{"line":686,"column":60}},"248":{"start":{"line":690,"column":4},"end":{"line":693,"column":5}},"249":{"start":{"line":691,"column":6},"end":{"line":691,"column":34}},"250":{"start":{"line":692,"column":6},"end":{"line":692,"column":37}},"251":{"start":{"line":697,"column":4},"end":{"line":697,"column":40}},"252":{"start":{"line":701,"column":4},"end":{"line":704,"column":5}},"253":{"start":{"line":702,"column":6},"end":{"line":702,"column":84}},"254":{"start":{"line":703,"column":6},"end":{"line":703,"column":38}},"255":{"start":{"line":706,"column":4},"end":{"line":708,"column":5}},"256":{"start":{"line":707,"column":6},"end":{"line":707,"column":31}},"257":{"start":{"line":712,"column":4},"end":{"line":712,"column":23}},"258":{"start":{"line":714,"column":4},"end":{"line":714,"column":33}},"259":{"start":{"line":715,"column":4},"end":{"line":715,"column":48}},"260":{"start":{"line":716,"column":4},"end":{"line":716,"column":34}},"261":{"start":{"line":717,"column":4},"end":{"line":717,"column":17}},"262":{"start":{"line":721,"column":4},"end":{"line":725,"column":20}},"263":{"start":{"line":728,"column":4},"end":{"line":730,"column":5},"skip":true},"264":{"start":{"line":729,"column":6},"end":{"line":729,"column":56},"skip":true},"265":{"start":{"line":733,"column":4},"end":{"line":733,"column":34}},"266":{"start":{"line":735,"column":4},"end":{"line":746,"column":5}},"267":{"start":{"line":737,"column":6},"end":{"line":737,"column":33}},"268":{"start":{"line":738,"column":6},"end":{"line":738,"column":25}},"269":{"start":{"line":741,"column":6},"end":{"line":741,"column":37}},"270":{"start":{"line":742,"column":6},"end":{"line":742,"column":72}},"271":{"start":{"line":744,"column":6},"end":{"line":744,"column":57}},"272":{"start":{"line":745,"column":6},"end":{"line":745,"column":30}},"273":{"start":{"line":748,"column":4},"end":{"line":748,"column":42}},"274":{"start":{"line":750,"column":4},"end":{"line":752,"column":5}},"275":{"start":{"line":751,"column":6},"end":{"line":751,"column":22}},"276":{"start":{"line":753,"column":4},"end":{"line":755,"column":5}},"277":{"start":{"line":754,"column":6},"end":{"line":754,"column":23}},"278":{"start":{"line":756,"column":4},"end":{"line":756,"column":41}},"279":{"start":{"line":760,"column":4},"end":{"line":760,"column":21}},"280":{"start":{"line":761,"column":4},"end":{"line":761,"column":97}},"281":{"start":{"line":761,"column":49},"end":{"line":761,"column":95}},"282":{"start":{"line":762,"column":4},"end":{"line":762,"column":31}},"283":{"start":{"line":765,"column":4},"end":{"line":765,"column":36}},"284":{"start":{"line":768,"column":4},"end":{"line":768,"column":39}},"285":{"start":{"line":769,"column":4},"end":{"line":779,"column":5}},"286":{"start":{"line":770,"column":6},"end":{"line":770,"column":28}},"287":{"start":{"line":771,"column":6},"end":{"line":778,"column":7}},"288":{"start":{"line":772,"column":8},"end":{"line":772,"column":35}},"289":{"start":{"line":773,"column":8},"end":{"line":777,"column":9}},"290":{"start":{"line":774,"column":10},"end":{"line":774,"column":40}},"291":{"start":{"line":776,"column":10},"end":{"line":776,"column":32}},"292":{"start":{"line":782,"column":4},"end":{"line":782,"column":35}},"293":{"start":{"line":786,"column":4},"end":{"line":787,"column":69}},"294":{"start":{"line":789,"column":4},"end":{"line":800,"column":5}},"295":{"start":{"line":790,"column":6},"end":{"line":790,"column":24}},"296":{"start":{"line":792,"column":6},"end":{"line":798,"column":7}},"297":{"start":{"line":794,"column":8},"end":{"line":796,"column":9},"skip":true},"298":{"start":{"line":795,"column":10},"end":{"line":795,"column":51},"skip":true},"299":{"start":{"line":797,"column":8},"end":{"line":797,"column":25}},"300":{"start":{"line":799,"column":6},"end":{"line":799,"column":18}},"301":{"start":{"line":804,"column":4},"end":{"line":805,"column":39}},"302":{"start":{"line":807,"column":4},"end":{"line":811,"column":5}},"303":{"start":{"line":808,"column":6},"end":{"line":808,"column":24}},"304":{"start":{"line":810,"column":6},"end":{"line":810,"column":18}},"305":{"start":{"line":815,"column":4},"end":{"line":819,"column":5}},"306":{"start":{"line":816,"column":6},"end":{"line":816,"column":39}},"307":{"start":{"line":818,"column":6},"end":{"line":818,"column":31}},"308":{"start":{"line":823,"column":4},"end":{"line":829,"column":43}},"309":{"start":{"line":833,"column":4},"end":{"line":833,"column":19}},"310":{"start":{"line":835,"column":4},"end":{"line":839,"column":5}},"311":{"start":{"line":836,"column":6},"end":{"line":838,"column":7}},"312":{"start":{"line":837,"column":8},"end":{"line":837,"column":60}},"313":{"start":{"line":841,"column":4},"end":{"line":841,"column":39}},"314":{"start":{"line":845,"column":4},"end":{"line":846,"column":76}},"315":{"start":{"line":847,"column":4},"end":{"line":847,"column":65}},"316":{"start":{"line":849,"column":4},"end":{"line":854,"column":6}},"317":{"start":{"line":858,"column":4},"end":{"line":858,"column":83}},"318":{"start":{"line":860,"column":4},"end":{"line":860,"column":45}},"319":{"start":{"line":861,"column":4},"end":{"line":861,"column":35}},"320":{"start":{"line":863,"column":4},"end":{"line":865,"column":5}},"321":{"start":{"line":864,"column":6},"end":{"line":864,"column":40}},"322":{"start":{"line":866,"column":4},"end":{"line":869,"column":5}},"323":{"start":{"line":867,"column":6},"end":{"line":867,"column":42}},"324":{"start":{"line":868,"column":6},"end":{"line":868,"column":45}},"325":{"start":{"line":871,"column":4},"end":{"line":871,"column":30}},"326":{"start":{"line":872,"column":4},"end":{"line":872,"column":30}},"327":{"start":{"line":876,"column":4},"end":{"line":887,"column":5}},"328":{"start":{"line":877,"column":6},"end":{"line":879,"column":7}},"329":{"start":{"line":878,"column":8},"end":{"line":878,"column":30}},"330":{"start":{"line":881,"column":6},"end":{"line":883,"column":7}},"331":{"start":{"line":882,"column":8},"end":{"line":882,"column":30}},"332":{"start":{"line":885,"column":6},"end":{"line":885,"column":27}},"333":{"start":{"line":886,"column":6},"end":{"line":886,"column":32}},"334":{"start":{"line":891,"column":4},"end":{"line":891,"column":22}},"335":{"start":{"line":892,"column":4},"end":{"line":903,"column":5}},"336":{"start":{"line":893,"column":6},"end":{"line":893,"column":30}},"337":{"start":{"line":894,"column":6},"end":{"line":894,"column":24}},"338":{"start":{"line":896,"column":6},"end":{"line":898,"column":7}},"339":{"start":{"line":897,"column":8},"end":{"line":897,"column":33}},"340":{"start":{"line":899,"column":6},"end":{"line":902,"column":7}},"341":{"start":{"line":900,"column":8},"end":{"line":900,"column":35}},"342":{"start":{"line":901,"column":8},"end":{"line":901,"column":38}},"343":{"start":{"line":905,"column":4},"end":{"line":907,"column":5}},"344":{"start":{"line":906,"column":6},"end":{"line":906,"column":46}},"345":{"start":{"line":908,"column":4},"end":{"line":911,"column":5}},"346":{"start":{"line":909,"column":6},"end":{"line":909,"column":50}},"347":{"start":{"line":910,"column":6},"end":{"line":910,"column":56}},"348":{"start":{"line":913,"column":4},"end":{"line":915,"column":5}},"349":{"start":{"line":914,"column":6},"end":{"line":914,"column":28}},"350":{"start":{"line":917,"column":4},"end":{"line":917,"column":19}},"351":{"start":{"line":923,"column":4},"end":{"line":923,"column":87}},"352":{"start":{"line":925,"column":4},"end":{"line":932,"column":5}},"353":{"start":{"line":926,"column":6},"end":{"line":926,"column":34}},"354":{"start":{"line":927,"column":6},"end":{"line":927,"column":29}},"355":{"start":{"line":928,"column":6},"end":{"line":928,"column":34}},"356":{"start":{"line":930,"column":6},"end":{"line":930,"column":27}},"357":{"start":{"line":931,"column":6},"end":{"line":931,"column":16}},"358":{"start":{"line":936,"column":0},"end":{"line":952,"column":13}},"359":{"start":{"line":954,"column":0},"end":{"line":954,"column":59}},"360":{"start":{"line":956,"column":0},"end":{"line":958,"column":1}},"361":{"start":{"line":957,"column":2},"end":{"line":957,"column":41}},"362":{"start":{"line":960,"column":0},"end":{"line":962,"column":2}},"363":{"start":{"line":961,"column":2},"end":{"line":961,"column":93}},"364":{"start":{"line":964,"column":0},"end":{"line":964,"column":40}}},"branchMap":{"1":{"line":16,"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":16,"column":4}},{"start":{"line":16,"column":4},"end":{"line":16,"column":4}}]},"2":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":35,"column":4}},{"start":{"line":35,"column":4},"end":{"line":35,"column":4}}]},"3":{"line":62,"type":"binary-expr","locations":[{"start":{"line":62,"column":19},"end":{"line":62,"column":26}},{"start":{"line":62,"column":30},"end":{"line":65,"column":5}}]},"4":{"line":79,"type":"binary-expr","locations":[{"start":{"line":79,"column":21},"end":{"line":79,"column":35}},{"start":{"line":79,"column":39},"end":{"line":79,"column":69}},{"start":{"line":79,"column":73},"end":{"line":79,"column":92}}]},"5":{"line":96,"type":"if","locations":[{"start":{"line":96,"column":4},"end":{"line":96,"column":4},"skip":true},{"start":{"line":96,"column":4},"end":{"line":96,"column":4},"skip":true}]},"6":{"line":96,"type":"binary-expr","locations":[{"start":{"line":96,"column":8},"end":{"line":96,"column":22},"skip":true},{"start":{"line":96,"column":26},"end":{"line":96,"column":49},"skip":true},{"start":{"line":96,"column":53},"end":{"line":96,"column":77},"skip":true}]},"7":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":4},"end":{"line":101,"column":4}},{"start":{"line":101,"column":4},"end":{"line":101,"column":4}}]},"8":{"line":108,"type":"if","locations":[{"start":{"line":108,"column":8},"end":{"line":108,"column":8}},{"start":{"line":108,"column":8},"end":{"line":108,"column":8}}]},"9":{"line":113,"type":"if","locations":[{"start":{"line":113,"column":6},"end":{"line":113,"column":6}},{"start":{"line":113,"column":6},"end":{"line":113,"column":6}}]},"10":{"line":116,"type":"if","locations":[{"start":{"line":116,"column":6},"end":{"line":116,"column":6}},{"start":{"line":116,"column":6},"end":{"line":116,"column":6}}]},"11":{"line":119,"type":"if","locations":[{"start":{"line":119,"column":6},"end":{"line":119,"column":6}},{"start":{"line":119,"column":6},"end":{"line":119,"column":6}}]},"12":{"line":122,"type":"if","locations":[{"start":{"line":122,"column":6},"end":{"line":122,"column":6}},{"start":{"line":122,"column":6},"end":{"line":122,"column":6}}]},"13":{"line":126,"type":"if","locations":[{"start":{"line":126,"column":6},"end":{"line":126,"column":6}},{"start":{"line":126,"column":6},"end":{"line":126,"column":6}}]},"14":{"line":148,"type":"if","locations":[{"start":{"line":148,"column":4},"end":{"line":148,"column":4}},{"start":{"line":148,"column":4},"end":{"line":148,"column":4}}]},"15":{"line":154,"type":"if","locations":[{"start":{"line":154,"column":6},"end":{"line":154,"column":6}},{"start":{"line":154,"column":6},"end":{"line":154,"column":6}}]},"16":{"line":161,"type":"if","locations":[{"start":{"line":161,"column":4},"end":{"line":161,"column":4}},{"start":{"line":161,"column":4},"end":{"line":161,"column":4}}]},"17":{"line":168,"type":"if","locations":[{"start":{"line":168,"column":4},"end":{"line":168,"column":4}},{"start":{"line":168,"column":4},"end":{"line":168,"column":4}}]},"18":{"line":184,"type":"if","locations":[{"start":{"line":184,"column":6},"end":{"line":184,"column":6}},{"start":{"line":184,"column":6},"end":{"line":184,"column":6}}]},"19":{"line":185,"type":"if","locations":[{"start":{"line":185,"column":8},"end":{"line":185,"column":8}},{"start":{"line":185,"column":8},"end":{"line":185,"column":8}}]},"20":{"line":191,"type":"if","locations":[{"start":{"line":191,"column":8},"end":{"line":191,"column":8}},{"start":{"line":191,"column":8},"end":{"line":191,"column":8}}]},"21":{"line":192,"type":"if","locations":[{"start":{"line":192,"column":10},"end":{"line":192,"column":10}},{"start":{"line":192,"column":10},"end":{"line":192,"column":10}}]},"22":{"line":202,"type":"if","locations":[{"start":{"line":202,"column":8},"end":{"line":202,"column":8}},{"start":{"line":202,"column":8},"end":{"line":202,"column":8}}]},"23":{"line":208,"type":"if","locations":[{"start":{"line":208,"column":4},"end":{"line":208,"column":4}},{"start":{"line":208,"column":4},"end":{"line":208,"column":4}}]},"24":{"line":209,"type":"if","locations":[{"start":{"line":209,"column":6},"end":{"line":209,"column":6}},{"start":{"line":209,"column":6},"end":{"line":209,"column":6}}]},"25":{"line":209,"type":"binary-expr","locations":[{"start":{"line":209,"column":10},"end":{"line":209,"column":16}},{"start":{"line":209,"column":20},"end":{"line":209,"column":27}}]},"26":{"line":210,"type":"binary-expr","locations":[{"start":{"line":210,"column":31},"end":{"line":210,"column":37}},{"start":{"line":210,"column":41},"end":{"line":210,"column":45}}]},"27":{"line":213,"type":"cond-expr","locations":[{"start":{"line":213,"column":56},"end":{"line":213,"column":58}},{"start":{"line":213,"column":61},"end":{"line":213,"column":84}}]},"28":{"line":214,"type":"if","locations":[{"start":{"line":214,"column":6},"end":{"line":214,"column":6}},{"start":{"line":214,"column":6},"end":{"line":214,"column":6}}]},"29":{"line":221,"type":"if","locations":[{"start":{"line":221,"column":4},"end":{"line":221,"column":4}},{"start":{"line":221,"column":4},"end":{"line":221,"column":4}}]},"30":{"line":222,"type":"cond-expr","locations":[{"start":{"line":222,"column":70},"end":{"line":222,"column":72}},{"start":{"line":222,"column":75},"end":{"line":222,"column":82}}]},"31":{"line":277,"type":"if","locations":[{"start":{"line":277,"column":4},"end":{"line":277,"column":4}},{"start":{"line":277,"column":4},"end":{"line":277,"column":4}}]},"32":{"line":299,"type":"if","locations":[{"start":{"line":299,"column":4},"end":{"line":299,"column":4}},{"start":{"line":299,"column":4},"end":{"line":299,"column":4}}]},"33":{"line":349,"type":"if","locations":[{"start":{"line":349,"column":4},"end":{"line":349,"column":4}},{"start":{"line":349,"column":4},"end":{"line":349,"column":4}}]},"34":{"line":349,"type":"binary-expr","locations":[{"start":{"line":349,"column":8},"end":{"line":349,"column":15}},{"start":{"line":349,"column":19},"end":{"line":349,"column":38}},{"start":{"line":349,"column":42},"end":{"line":349,"column":59}}]},"35":{"line":362,"type":"if","locations":[{"start":{"line":362,"column":8},"end":{"line":362,"column":8}},{"start":{"line":362,"column":8},"end":{"line":362,"column":8}}]},"36":{"line":380,"type":"if","locations":[{"start":{"line":380,"column":4},"end":{"line":380,"column":4}},{"start":{"line":380,"column":4},"end":{"line":380,"column":4}}]},"37":{"line":421,"type":"if","locations":[{"start":{"line":421,"column":4},"end":{"line":421,"column":4}},{"start":{"line":421,"column":4},"end":{"line":421,"column":4}}]},"38":{"line":422,"type":"if","locations":[{"start":{"line":422,"column":6},"end":{"line":422,"column":6}},{"start":{"line":422,"column":6},"end":{"line":422,"column":6}}]},"39":{"line":433,"type":"if","locations":[{"start":{"line":433,"column":4},"end":{"line":433,"column":4}},{"start":{"line":433,"column":4},"end":{"line":433,"column":4}}]},"40":{"line":436,"type":"if","locations":[{"start":{"line":436,"column":4},"end":{"line":436,"column":4}},{"start":{"line":436,"column":4},"end":{"line":436,"column":4}}]},"41":{"line":442,"type":"if","locations":[{"start":{"line":442,"column":4},"end":{"line":442,"column":4}},{"start":{"line":442,"column":4},"end":{"line":442,"column":4}}]},"42":{"line":451,"type":"if","locations":[{"start":{"line":451,"column":4},"end":{"line":451,"column":4}},{"start":{"line":451,"column":4},"end":{"line":451,"column":4}}]},"43":{"line":454,"type":"if","locations":[{"start":{"line":454,"column":4},"end":{"line":454,"column":4}},{"start":{"line":454,"column":4},"end":{"line":454,"column":4}}]},"44":{"line":504,"type":"if","locations":[{"start":{"line":504,"column":4},"end":{"line":504,"column":4}},{"start":{"line":504,"column":4},"end":{"line":504,"column":4}}]},"45":{"line":526,"type":"cond-expr","locations":[{"start":{"line":526,"column":29},"end":{"line":526,"column":49}},{"start":{"line":526,"column":52},"end":{"line":526,"column":54}}]},"46":{"line":568,"type":"cond-expr","locations":[{"start":{"line":568,"column":31},"end":{"line":568,"column":56}},{"start":{"line":568,"column":59},"end":{"line":568,"column":61}}]},"47":{"line":582,"type":"if","locations":[{"start":{"line":582,"column":4},"end":{"line":582,"column":4}},{"start":{"line":582,"column":4},"end":{"line":582,"column":4}}]},"48":{"line":584,"type":"if","locations":[{"start":{"line":584,"column":11},"end":{"line":584,"column":11}},{"start":{"line":584,"column":11},"end":{"line":584,"column":11}}]},"49":{"line":587,"type":"if","locations":[{"start":{"line":587,"column":4},"end":{"line":587,"column":4}},{"start":{"line":587,"column":4},"end":{"line":587,"column":4}}]},"50":{"line":606,"type":"if","locations":[{"start":{"line":606,"column":4},"end":{"line":606,"column":4}},{"start":{"line":606,"column":4},"end":{"line":606,"column":4}}]},"51":{"line":609,"type":"if","locations":[{"start":{"line":609,"column":4},"end":{"line":609,"column":4}},{"start":{"line":609,"column":4},"end":{"line":609,"column":4}}]},"52":{"line":615,"type":"if","locations":[{"start":{"line":615,"column":4},"end":{"line":615,"column":4}},{"start":{"line":615,"column":4},"end":{"line":615,"column":4}}]},"53":{"line":618,"type":"if","locations":[{"start":{"line":618,"column":4},"end":{"line":618,"column":4}},{"start":{"line":618,"column":4},"end":{"line":618,"column":4}}]},"54":{"line":621,"type":"if","locations":[{"start":{"line":621,"column":4},"end":{"line":621,"column":4}},{"start":{"line":621,"column":4},"end":{"line":621,"column":4}}]},"55":{"line":628,"type":"if","locations":[{"start":{"line":628,"column":4},"end":{"line":628,"column":4}},{"start":{"line":628,"column":4},"end":{"line":628,"column":4}}]},"56":{"line":628,"type":"binary-expr","locations":[{"start":{"line":628,"column":8},"end":{"line":628,"column":21}},{"start":{"line":628,"column":25},"end":{"line":628,"column":40}}]},"57":{"line":630,"type":"if","locations":[{"start":{"line":630,"column":11},"end":{"line":630,"column":11}},{"start":{"line":630,"column":11},"end":{"line":630,"column":11}}]},"58":{"line":650,"type":"if","locations":[{"start":{"line":650,"column":6},"end":{"line":650,"column":6}},{"start":{"line":650,"column":6},"end":{"line":650,"column":6}}]},"59":{"line":658,"type":"binary-expr","locations":[{"start":{"line":658,"column":25},"end":{"line":658,"column":39}},{"start":{"line":658,"column":43},"end":{"line":658,"column":61}}]},"60":{"line":668,"type":"if","locations":[{"start":{"line":668,"column":6},"end":{"line":668,"column":6}},{"start":{"line":668,"column":6},"end":{"line":668,"column":6}}]},"61":{"line":668,"type":"binary-expr","locations":[{"start":{"line":668,"column":10},"end":{"line":668,"column":21}},{"start":{"line":668,"column":25},"end":{"line":668,"column":50}}]},"62":{"line":682,"type":"if","locations":[{"start":{"line":682,"column":4},"end":{"line":682,"column":4}},{"start":{"line":682,"column":4},"end":{"line":682,"column":4}}]},"63":{"line":690,"type":"if","locations":[{"start":{"line":690,"column":4},"end":{"line":690,"column":4}},{"start":{"line":690,"column":4},"end":{"line":690,"column":4}}]},"64":{"line":701,"type":"if","locations":[{"start":{"line":701,"column":4},"end":{"line":701,"column":4}},{"start":{"line":701,"column":4},"end":{"line":701,"column":4}}]},"65":{"line":706,"type":"if","locations":[{"start":{"line":706,"column":4},"end":{"line":706,"column":4}},{"start":{"line":706,"column":4},"end":{"line":706,"column":4}}]},"66":{"line":728,"type":"if","locations":[{"start":{"line":728,"column":4},"end":{"line":728,"column":4},"skip":true},{"start":{"line":728,"column":4},"end":{"line":728,"column":4},"skip":true}]},"67":{"line":735,"type":"if","locations":[{"start":{"line":735,"column":4},"end":{"line":735,"column":4}},{"start":{"line":735,"column":4},"end":{"line":735,"column":4}}]},"68":{"line":742,"type":"cond-expr","locations":[{"start":{"line":742,"column":33},"end":{"line":742,"column":52}},{"start":{"line":742,"column":55},"end":{"line":742,"column":71}}]},"69":{"line":750,"type":"if","locations":[{"start":{"line":750,"column":4},"end":{"line":750,"column":4}},{"start":{"line":750,"column":4},"end":{"line":750,"column":4}}]},"70":{"line":753,"type":"if","locations":[{"start":{"line":753,"column":4},"end":{"line":753,"column":4}},{"start":{"line":753,"column":4},"end":{"line":753,"column":4}}]},"71":{"line":761,"type":"if","locations":[{"start":{"line":761,"column":4},"end":{"line":761,"column":4}},{"start":{"line":761,"column":4},"end":{"line":761,"column":4}}]},"72":{"line":769,"type":"if","locations":[{"start":{"line":769,"column":4},"end":{"line":769,"column":4}},{"start":{"line":769,"column":4},"end":{"line":769,"column":4}}]},"73":{"line":773,"type":"if","locations":[{"start":{"line":773,"column":8},"end":{"line":773,"column":8}},{"start":{"line":773,"column":8},"end":{"line":773,"column":8}}]},"74":{"line":787,"type":"cond-expr","locations":[{"start":{"line":787,"column":25},"end":{"line":787,"column":41}},{"start":{"line":787,"column":44},"end":{"line":787,"column":61}}]},"75":{"line":789,"type":"if","locations":[{"start":{"line":789,"column":4},"end":{"line":789,"column":4}},{"start":{"line":789,"column":4},"end":{"line":789,"column":4}}]},"76":{"line":789,"type":"binary-expr","locations":[{"start":{"line":789,"column":8},"end":{"line":789,"column":16}},{"start":{"line":789,"column":21},"end":{"line":789,"column":44}}]},"77":{"line":792,"type":"if","locations":[{"start":{"line":792,"column":6},"end":{"line":792,"column":6}},{"start":{"line":792,"column":6},"end":{"line":792,"column":6}}]},"78":{"line":794,"type":"if","locations":[{"start":{"line":794,"column":8},"end":{"line":794,"column":8},"skip":true},{"start":{"line":794,"column":8},"end":{"line":794,"column":8},"skip":true}]},"79":{"line":804,"type":"cond-expr","locations":[{"start":{"line":804,"column":35},"end":{"line":804,"column":51}},{"start":{"line":804,"column":54},"end":{"line":804,"column":71}}]},"80":{"line":807,"type":"if","locations":[{"start":{"line":807,"column":4},"end":{"line":807,"column":4}},{"start":{"line":807,"column":4},"end":{"line":807,"column":4}}]},"81":{"line":815,"type":"if","locations":[{"start":{"line":815,"column":4},"end":{"line":815,"column":4}},{"start":{"line":815,"column":4},"end":{"line":815,"column":4}}]},"82":{"line":815,"type":"binary-expr","locations":[{"start":{"line":815,"column":8},"end":{"line":815,"column":22}},{"start":{"line":815,"column":26},"end":{"line":815,"column":33}}]},"83":{"line":836,"type":"if","locations":[{"start":{"line":836,"column":6},"end":{"line":836,"column":6}},{"start":{"line":836,"column":6},"end":{"line":836,"column":6}}]},"84":{"line":863,"type":"if","locations":[{"start":{"line":863,"column":4},"end":{"line":863,"column":4}},{"start":{"line":863,"column":4},"end":{"line":863,"column":4}}]},"85":{"line":866,"type":"if","locations":[{"start":{"line":866,"column":4},"end":{"line":866,"column":4}},{"start":{"line":866,"column":4},"end":{"line":866,"column":4}}]},"86":{"line":876,"type":"if","locations":[{"start":{"line":876,"column":4},"end":{"line":876,"column":4}},{"start":{"line":876,"column":4},"end":{"line":876,"column":4}}]},"87":{"line":876,"type":"binary-expr","locations":[{"start":{"line":876,"column":8},"end":{"line":876,"column":15}},{"start":{"line":876,"column":19},"end":{"line":876,"column":26}}]},"88":{"line":877,"type":"if","locations":[{"start":{"line":877,"column":6},"end":{"line":877,"column":6}},{"start":{"line":877,"column":6},"end":{"line":877,"column":6}}]},"89":{"line":881,"type":"if","locations":[{"start":{"line":881,"column":6},"end":{"line":881,"column":6}},{"start":{"line":881,"column":6},"end":{"line":881,"column":6}}]},"90":{"line":896,"type":"if","locations":[{"start":{"line":896,"column":6},"end":{"line":896,"column":6}},{"start":{"line":896,"column":6},"end":{"line":896,"column":6}}]},"91":{"line":899,"type":"if","locations":[{"start":{"line":899,"column":6},"end":{"line":899,"column":6}},{"start":{"line":899,"column":6},"end":{"line":899,"column":6}}]},"92":{"line":905,"type":"if","locations":[{"start":{"line":905,"column":4},"end":{"line":905,"column":4}},{"start":{"line":905,"column":4},"end":{"line":905,"column":4}}]},"93":{"line":908,"type":"if","locations":[{"start":{"line":908,"column":4},"end":{"line":908,"column":4}},{"start":{"line":908,"column":4},"end":{"line":908,"column":4}}]},"94":{"line":913,"type":"if","locations":[{"start":{"line":913,"column":4},"end":{"line":913,"column":4}},{"start":{"line":913,"column":4},"end":{"line":913,"column":4}}]},"95":{"line":925,"type":"if","locations":[{"start":{"line":925,"column":4},"end":{"line":925,"column":4}},{"start":{"line":925,"column":4},"end":{"line":925,"column":4}}]},"96":{"line":961,"type":"binary-expr","locations":[{"start":{"line":961,"column":9},"end":{"line":961,"column":49}},{"start":{"line":961,"column":53},"end":{"line":961,"column":92}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/visitor.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/visitor.js","s":{"1":1,"2":1,"3":276,"4":1},"b":{},"f":{"1":1,"2":276},"fnMap":{"1":{"name":"Visitor","line":2,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":19}}},"2":{"name":"(anonymous_2)","line":7,"loc":{"start":{"line":7,"column":10},"end":{"line":7,"column":27}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":21}},"2":{"start":{"line":4,"column":0},"end":{"line":10,"column":2}},"3":{"start":{"line":8,"column":4},"end":{"line":8,"column":37}},"4":{"start":{"line":12,"column":0},"end":{"line":12,"column":29}}},"branchMap":{}},"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/printer.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/printer.js","s":{"1":1,"2":1,"3":48,"4":1,"5":1,"6":48,"7":1,"8":1,"9":1,"10":89,"11":89,"12":50,"13":89,"14":89,"15":1,"16":67,"17":67,"18":59,"19":67,"20":67,"21":1,"22":11,"23":11,"24":11,"25":11,"26":11,"27":9,"28":9,"29":9,"30":9,"31":11,"32":10,"33":8,"34":10,"35":10,"36":10,"37":10,"38":10,"39":8,"40":11,"41":11,"42":1,"43":40,"44":40,"45":11,"46":40,"47":40,"48":40,"49":1,"50":40,"51":1,"52":5,"53":5,"54":2,"55":5,"56":2,"57":5,"58":1,"59":14,"60":14,"61":14,"62":23,"63":23,"64":23,"65":14,"66":1,"67":7,"68":1,"69":3,"70":1,"71":6,"72":1,"73":60,"74":60,"75":1,"76":59,"77":1,"78":5,"79":1,"80":4,"81":1,"82":12,"83":1,"84":2},"b":{"1":[9,2],"2":[10,1],"3":[8,2],"4":[8,2],"5":[12,28],"6":[2,3],"7":[2,3],"8":[1,59]},"f":{"1":48,"2":48,"3":89,"4":67,"5":11,"6":40,"7":40,"8":5,"9":14,"10":7,"11":3,"12":6,"13":60,"14":5,"15":4,"16":12,"17":2},"fnMap":{"1":{"name":"print","line":4,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":20}}},"2":{"name":"PrintVisitor","line":8,"loc":{"start":{"line":8,"column":22},"end":{"line":8,"column":46}}},"3":{"name":"(anonymous_3)","line":14,"loc":{"start":{"line":14,"column":29},"end":{"line":14,"column":46}}},"4":{"name":"(anonymous_4)","line":25,"loc":{"start":{"line":25,"column":33},"end":{"line":25,"column":51}}},"5":{"name":"(anonymous_5)","line":39,"loc":{"start":{"line":39,"column":31},"end":{"line":39,"column":47}}},"6":{"name":"(anonymous_6)","line":64,"loc":{"start":{"line":64,"column":31},"end":{"line":64,"column":47}}},"7":{"name":"(anonymous_7)","line":78,"loc":{"start":{"line":78,"column":34},"end":{"line":78,"column":53}}},"8":{"name":"(anonymous_8)","line":82,"loc":{"start":{"line":82,"column":33},"end":{"line":82,"column":51}}},"9":{"name":"(anonymous_9)","line":93,"loc":{"start":{"line":93,"column":30},"end":{"line":93,"column":45}}},"10":{"name":"(anonymous_10)","line":106,"loc":{"start":{"line":106,"column":32},"end":{"line":106,"column":49}}},"11":{"name":"(anonymous_11)","line":110,"loc":{"start":{"line":110,"column":32},"end":{"line":110,"column":49}}},"12":{"name":"(anonymous_12)","line":114,"loc":{"start":{"line":114,"column":33},"end":{"line":114,"column":48}}},"13":{"name":"(anonymous_13)","line":118,"loc":{"start":{"line":118,"column":28},"end":{"line":118,"column":41}}},"14":{"name":"(anonymous_14)","line":127,"loc":{"start":{"line":127,"column":38},"end":{"line":127,"column":60}}},"15":{"name":"(anonymous_15)","line":131,"loc":{"start":{"line":131,"column":30},"end":{"line":131,"column":45}}},"16":{"name":"(anonymous_16)","line":135,"loc":{"start":{"line":135,"column":33},"end":{"line":135,"column":51}}},"17":{"name":"(anonymous_17)","line":139,"loc":{"start":{"line":139,"column":33},"end":{"line":139,"column":51}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":46}},"2":{"start":{"line":4,"column":0},"end":{"line":6,"column":1}},"3":{"start":{"line":5,"column":2},"end":{"line":5,"column":40}},"4":{"start":{"line":8,"column":0},"end":{"line":8,"column":22}},"5":{"start":{"line":8,"column":22},"end":{"line":10,"column":1}},"6":{"start":{"line":9,"column":2},"end":{"line":9,"column":19}},"7":{"start":{"line":12,"column":0},"end":{"line":12,"column":36}},"8":{"start":{"line":12,"column":36},"end":{"line":12,"column":75}},"9":{"start":{"line":14,"column":0},"end":{"line":23,"column":2}},"10":{"start":{"line":15,"column":2},"end":{"line":15,"column":15}},"11":{"start":{"line":17,"column":2},"end":{"line":19,"column":3}},"12":{"start":{"line":18,"column":4},"end":{"line":18,"column":21}},"13":{"start":{"line":21,"column":2},"end":{"line":21,"column":28}},"14":{"start":{"line":22,"column":2},"end":{"line":22,"column":13}},"15":{"start":{"line":25,"column":0},"end":{"line":37,"column":2}},"16":{"start":{"line":26,"column":2},"end":{"line":28,"column":11}},"17":{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},"18":{"start":{"line":31,"column":4},"end":{"line":31,"column":43}},"19":{"start":{"line":34,"column":2},"end":{"line":34,"column":17}},"20":{"start":{"line":36,"column":2},"end":{"line":36,"column":13}},"21":{"start":{"line":39,"column":0},"end":{"line":62,"column":2}},"22":{"start":{"line":40,"column":2},"end":{"line":40,"column":15}},"23":{"start":{"line":42,"column":2},"end":{"line":42,"column":33}},"24":{"start":{"line":43,"column":2},"end":{"line":43,"column":17}},"25":{"start":{"line":44,"column":2},"end":{"line":44,"column":42}},"26":{"start":{"line":45,"column":2},"end":{"line":50,"column":3}},"27":{"start":{"line":46,"column":4},"end":{"line":46,"column":37}},"28":{"start":{"line":47,"column":4},"end":{"line":47,"column":19}},"29":{"start":{"line":48,"column":4},"end":{"line":48,"column":43}},"30":{"start":{"line":49,"column":4},"end":{"line":49,"column":19}},"31":{"start":{"line":51,"column":2},"end":{"line":58,"column":3}},"32":{"start":{"line":52,"column":4},"end":{"line":52,"column":42}},"33":{"start":{"line":52,"column":25},"end":{"line":52,"column":40}},"34":{"start":{"line":53,"column":4},"end":{"line":53,"column":34}},"35":{"start":{"line":54,"column":4},"end":{"line":54,"column":19}},"36":{"start":{"line":55,"column":4},"end":{"line":55,"column":43}},"37":{"start":{"line":56,"column":4},"end":{"line":56,"column":19}},"38":{"start":{"line":57,"column":4},"end":{"line":57,"column":42}},"39":{"start":{"line":57,"column":25},"end":{"line":57,"column":40}},"40":{"start":{"line":59,"column":2},"end":{"line":59,"column":17}},"41":{"start":{"line":61,"column":2},"end":{"line":61,"column":13}},"42":{"start":{"line":64,"column":0},"end":{"line":76,"column":2}},"43":{"start":{"line":65,"column":2},"end":{"line":65,"column":53}},"44":{"start":{"line":67,"column":2},"end":{"line":69,"column":3}},"45":{"start":{"line":68,"column":4},"end":{"line":68,"column":46}},"46":{"start":{"line":71,"column":2},"end":{"line":71,"column":47}},"47":{"start":{"line":73,"column":2},"end":{"line":73,"column":57}},"48":{"start":{"line":75,"column":2},"end":{"line":75,"column":53}},"49":{"start":{"line":78,"column":0},"end":{"line":80,"column":2}},"50":{"start":{"line":79,"column":2},"end":{"line":79,"column":63}},"51":{"start":{"line":82,"column":0},"end":{"line":91,"column":2}},"52":{"start":{"line":83,"column":2},"end":{"line":83,"column":49}},"53":{"start":{"line":84,"column":2},"end":{"line":86,"column":3}},"54":{"start":{"line":85,"column":4},"end":{"line":85,"column":50}},"55":{"start":{"line":87,"column":2},"end":{"line":89,"column":3}},"56":{"start":{"line":88,"column":4},"end":{"line":88,"column":47}},"57":{"start":{"line":90,"column":2},"end":{"line":90,"column":44}},"58":{"start":{"line":93,"column":0},"end":{"line":104,"column":2}},"59":{"start":{"line":94,"column":2},"end":{"line":94,"column":25}},"60":{"start":{"line":95,"column":2},"end":{"line":95,"column":36}},"61":{"start":{"line":97,"column":2},"end":{"line":101,"column":3}},"62":{"start":{"line":98,"column":4},"end":{"line":98,"column":23}},"63":{"start":{"line":99,"column":4},"end":{"line":99,"column":37}},"64":{"start":{"line":100,"column":4},"end":{"line":100,"column":43}},"65":{"start":{"line":103,"column":2},"end":{"line":103,"column":48}},"66":{"start":{"line":106,"column":0},"end":{"line":108,"column":2}},"67":{"start":{"line":107,"column":2},"end":{"line":107,"column":35}},"68":{"start":{"line":110,"column":0},"end":{"line":112,"column":2}},"69":{"start":{"line":111,"column":2},"end":{"line":111,"column":41}},"70":{"start":{"line":114,"column":0},"end":{"line":116,"column":2}},"71":{"start":{"line":115,"column":2},"end":{"line":115,"column":38}},"72":{"start":{"line":118,"column":0},"end":{"line":125,"column":2}},"73":{"start":{"line":119,"column":2},"end":{"line":119,"column":32}},"74":{"start":{"line":120,"column":2},"end":{"line":124,"column":3}},"75":{"start":{"line":121,"column":4},"end":{"line":121,"column":26}},"76":{"start":{"line":123,"column":4},"end":{"line":123,"column":24}},"77":{"start":{"line":127,"column":0},"end":{"line":129,"column":2}},"78":{"start":{"line":128,"column":4},"end":{"line":128,"column":41}},"79":{"start":{"line":131,"column":0},"end":{"line":133,"column":2}},"80":{"start":{"line":132,"column":2},"end":{"line":132,"column":36}},"81":{"start":{"line":135,"column":0},"end":{"line":137,"column":2}},"82":{"start":{"line":136,"column":2},"end":{"line":136,"column":57}},"83":{"start":{"line":139,"column":0},"end":{"line":141,"column":2}},"84":{"start":{"line":140,"column":2},"end":{"line":140,"column":54}}},"branchMap":{"1":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":2},"end":{"line":45,"column":2}},{"start":{"line":45,"column":2},"end":{"line":45,"column":2}}]},"2":{"line":51,"type":"if","locations":[{"start":{"line":51,"column":2},"end":{"line":51,"column":2}},{"start":{"line":51,"column":2},"end":{"line":51,"column":2}}]},"3":{"line":52,"type":"if","locations":[{"start":{"line":52,"column":4},"end":{"line":52,"column":4}},{"start":{"line":52,"column":4},"end":{"line":52,"column":4}}]},"4":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":4},"end":{"line":57,"column":4}},{"start":{"line":57,"column":4},"end":{"line":57,"column":4}}]},"5":{"line":73,"type":"cond-expr","locations":[{"start":{"line":73,"column":22},"end":{"line":73,"column":51}},{"start":{"line":73,"column":54},"end":{"line":73,"column":56}}]},"6":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":2},"end":{"line":84,"column":2}},{"start":{"line":84,"column":2},"end":{"line":84,"column":2}}]},"7":{"line":87,"type":"if","locations":[{"start":{"line":87,"column":2},"end":{"line":87,"column":2}},{"start":{"line":87,"column":2},"end":{"line":87,"column":2}}]},"8":{"line":120,"type":"if","locations":[{"start":{"line":120,"column":2},"end":{"line":120,"column":2}},{"start":{"line":120,"column":2},"end":{"line":120,"column":2}}]}}},"/Users/kpdecker/dev/kpdecker/handlebars.js/lib/precompiler.js":{"path":"/Users/kpdecker/dev/kpdecker/handlebars.js/lib/precompiler.js","s":{"1":1,"2":1,"3":54,"4":3,"5":3,"6":51,"7":51,"8":3,"9":48,"10":51,"11":51,"12":3,"13":45,"14":3,"15":42,"16":6,"17":36,"18":36,"19":3,"20":36,"21":3,"22":3,"23":36,"24":3,"25":36,"26":36,"27":36,"28":27,"29":12,"30":15,"31":3,"32":12,"33":27,"34":27,"35":27,"36":27,"37":27,"38":1,"39":57,"40":57,"41":15,"42":45,"43":45,"44":21,"45":42,"46":42,"47":0,"48":42,"49":42,"50":3,"51":42,"52":21,"53":21,"54":21,"55":42,"56":42,"57":9,"58":33,"59":9,"60":3,"61":9,"62":24,"63":3,"64":24,"65":36,"66":36,"67":36,"68":27,"69":12,"70":6,"71":3,"72":3,"73":12,"74":15,"75":12,"76":36,"77":36,"78":3,"79":36,"80":0,"81":36},"b":{"1":[3,51],"2":[3,48],"3":[3,42],"4":[45,18],"5":[6,36],"6":[42,15,12],"7":[3,33],"8":[36,3],"9":[3,33],"10":[27,9],"11":[12,15],"12":[3,12],"13":[15,42],"14":[21,24],"15":[45,24],"16":[21,21],"17":[0,42],"18":[42,0],"19":[3,39],"20":[21,21],"21":[21,0],"22":[9,33],"23":[9,24],"24":[3,6],"25":[9,9,9],"26":[3,21],"27":[24,9,9],"28":[27,9],"29":[12,15],"30":[6,6],"31":[12,12,12],"32":[3,3],"33":[12,3],"34":[3,33],"35":[0,36]},"f":{"1":54,"2":51,"3":3,"4":57,"5":45,"6":36},"fnMap":{"1":{"name":"(anonymous_1)","line":7,"loc":{"start":{"line":7,"column":21},"end":{"line":7,"column":36}}},"2":{"name":"(anonymous_2)","line":18,"loc":{"start":{"line":18,"column":25},"end":{"line":18,"column":44}}},"3":{"name":"(anonymous_3)","line":45,"loc":{"start":{"line":45,"column":70},"end":{"line":45,"column":84}}},"4":{"name":"processTemplate","line":63,"loc":{"start":{"line":63,"column":2},"end":{"line":63,"column":43}}},"5":{"name":"(anonymous_5)","line":67,"loc":{"start":{"line":67,"column":35},"end":{"line":67,"column":50}}},"6":{"name":"(anonymous_6)","line":114,"loc":{"start":{"line":114,"column":25},"end":{"line":114,"column":44}}}},"statementMap":{"1":{"start":{"line":2,"column":0},"end":{"line":5,"column":34}},"2":{"start":{"line":7,"column":0},"end":{"line":144,"column":2}},"3":{"start":{"line":8,"column":2},"end":{"line":11,"column":3}},"4":{"start":{"line":9,"column":4},"end":{"line":9,"column":36}},"5":{"start":{"line":10,"column":4},"end":{"line":10,"column":11}},"6":{"start":{"line":13,"column":2},"end":{"line":13,"column":21}},"7":{"start":{"line":14,"column":2},"end":{"line":16,"column":3}},"8":{"start":{"line":15,"column":4},"end":{"line":15,"column":86}},"9":{"start":{"line":18,"column":2},"end":{"line":24,"column":5}},"10":{"start":{"line":19,"column":4},"end":{"line":23,"column":5}},"11":{"start":{"line":20,"column":6},"end":{"line":20,"column":28}},"12":{"start":{"line":22,"column":6},"end":{"line":22,"column":88}},"13":{"start":{"line":26,"column":2},"end":{"line":28,"column":3}},"14":{"start":{"line":27,"column":4},"end":{"line":27,"column":70}},"15":{"start":{"line":29,"column":2},"end":{"line":31,"column":3}},"16":{"start":{"line":30,"column":4},"end":{"line":30,"column":89}},"17":{"start":{"line":34,"column":2},"end":{"line":34,"column":17}},"18":{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},"19":{"start":{"line":36,"column":4},"end":{"line":36,"column":30}},"20":{"start":{"line":38,"column":2},"end":{"line":42,"column":3}},"21":{"start":{"line":39,"column":4},"end":{"line":41,"column":5}},"22":{"start":{"line":40,"column":6},"end":{"line":40,"column":34}},"23":{"start":{"line":45,"column":2},"end":{"line":45,"column":108}},"24":{"start":{"line":45,"column":86},"end":{"line":45,"column":104}},"25":{"start":{"line":46,"column":2},"end":{"line":46,"column":50}},"26":{"start":{"line":48,"column":2},"end":{"line":48,"column":18}},"27":{"start":{"line":49,"column":2},"end":{"line":62,"column":3}},"28":{"start":{"line":50,"column":4},"end":{"line":56,"column":5}},"29":{"start":{"line":51,"column":6},"end":{"line":51,"column":142}},"30":{"start":{"line":52,"column":11},"end":{"line":56,"column":5}},"31":{"start":{"line":53,"column":6},"end":{"line":53,"column":72}},"32":{"start":{"line":55,"column":6},"end":{"line":55,"column":37}},"33":{"start":{"line":57,"column":4},"end":{"line":57,"column":70}},"34":{"start":{"line":58,"column":4},"end":{"line":58,"column":32}},"35":{"start":{"line":59,"column":4},"end":{"line":59,"column":23}},"36":{"start":{"line":60,"column":4},"end":{"line":60,"column":32}},"37":{"start":{"line":61,"column":4},"end":{"line":61,"column":29}},"38":{"start":{"line":63,"column":2},"end":{"line":112,"column":3}},"39":{"start":{"line":64,"column":4},"end":{"line":65,"column":33}},"40":{"start":{"line":66,"column":4},"end":{"line":111,"column":5}},"41":{"start":{"line":67,"column":6},"end":{"line":73,"column":9}},"42":{"start":{"line":68,"column":8},"end":{"line":68,"column":41}},"43":{"start":{"line":70,"column":8},"end":{"line":72,"column":9}},"44":{"start":{"line":71,"column":10},"end":{"line":71,"column":50}},"45":{"start":{"line":75,"column":6},"end":{"line":75,"column":47}},"46":{"start":{"line":77,"column":6},"end":{"line":79,"column":7}},"47":{"start":{"line":78,"column":8},"end":{"line":78,"column":33}},"48":{"start":{"line":81,"column":6},"end":{"line":84,"column":8}},"49":{"start":{"line":86,"column":6},"end":{"line":88,"column":7}},"50":{"start":{"line":87,"column":8},"end":{"line":87,"column":28}},"51":{"start":{"line":91,"column":6},"end":{"line":95,"column":7}},"52":{"start":{"line":92,"column":8},"end":{"line":92,"column":38}},"53":{"start":{"line":93,"column":13},"end":{"line":95,"column":7}},"54":{"start":{"line":94,"column":8},"end":{"line":94,"column":53}},"55":{"start":{"line":96,"column":6},"end":{"line":96,"column":49}},"56":{"start":{"line":98,"column":6},"end":{"line":110,"column":7}},"57":{"start":{"line":99,"column":8},"end":{"line":99,"column":65}},"58":{"start":{"line":100,"column":13},"end":{"line":110,"column":7}},"59":{"start":{"line":101,"column":8},"end":{"line":103,"column":9}},"60":{"start":{"line":102,"column":10},"end":{"line":102,"column":33}},"61":{"start":{"line":104,"column":8},"end":{"line":104,"column":125}},"62":{"start":{"line":106,"column":8},"end":{"line":108,"column":9}},"63":{"start":{"line":107,"column":10},"end":{"line":107,"column":33}},"64":{"start":{"line":109,"column":8},"end":{"line":109,"column":115}},"65":{"start":{"line":114,"column":2},"end":{"line":116,"column":5}},"66":{"start":{"line":115,"column":4},"end":{"line":115,"column":41}},"67":{"start":{"line":119,"column":2},"end":{"line":132,"column":3}},"68":{"start":{"line":120,"column":4},"end":{"line":131,"column":5}},"69":{"start":{"line":121,"column":6},"end":{"line":127,"column":7}},"70":{"start":{"line":122,"column":8},"end":{"line":126,"column":9}},"71":{"start":{"line":123,"column":10},"end":{"line":123,"column":55}},"72":{"start":{"line":125,"column":10},"end":{"line":125,"column":45}},"73":{"start":{"line":128,"column":6},"end":{"line":128,"column":25}},"74":{"start":{"line":129,"column":11},"end":{"line":131,"column":5}},"75":{"start":{"line":130,"column":6},"end":{"line":130,"column":27}},"76":{"start":{"line":133,"column":2},"end":{"line":133,"column":27}},"77":{"start":{"line":135,"column":2},"end":{"line":137,"column":3}},"78":{"start":{"line":136,"column":4},"end":{"line":136,"column":60}},"79":{"start":{"line":139,"column":2},"end":{"line":143,"column":3}},"80":{"start":{"line":140,"column":4},"end":{"line":140,"column":50}},"81":{"start":{"line":142,"column":4},"end":{"line":142,"column":24}}},"branchMap":{"1":{"line":8,"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":8,"column":2}},{"start":{"line":8,"column":2},"end":{"line":8,"column":2}}]},"2":{"line":14,"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":14,"column":2}},{"start":{"line":14,"column":2},"end":{"line":14,"column":2}}]},"3":{"line":26,"type":"if","locations":[{"start":{"line":26,"column":2},"end":{"line":26,"column":2}},{"start":{"line":26,"column":2},"end":{"line":26,"column":2}}]},"4":{"line":26,"type":"binary-expr","locations":[{"start":{"line":26,"column":6},"end":{"line":26,"column":17}},{"start":{"line":26,"column":21},"end":{"line":26,"column":29}}]},"5":{"line":29,"type":"if","locations":[{"start":{"line":29,"column":2},"end":{"line":29,"column":2}},{"start":{"line":29,"column":2},"end":{"line":29,"column":2}}]},"6":{"line":29,"type":"binary-expr","locations":[{"start":{"line":29,"column":6},"end":{"line":29,"column":17}},{"start":{"line":29,"column":22},"end":{"line":29,"column":49}},{"start":{"line":29,"column":53},"end":{"line":29,"column":97}}]},"7":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":2},"end":{"line":35,"column":2}},{"start":{"line":35,"column":2},"end":{"line":35,"column":2}}]},"8":{"line":35,"type":"binary-expr","locations":[{"start":{"line":35,"column":6},"end":{"line":35,"column":16}},{"start":{"line":35,"column":20},"end":{"line":35,"column":46}}]},"9":{"line":38,"type":"if","locations":[{"start":{"line":38,"column":2},"end":{"line":38,"column":2}},{"start":{"line":38,"column":2},"end":{"line":38,"column":2}}]},"10":{"line":49,"type":"if","locations":[{"start":{"line":49,"column":2},"end":{"line":49,"column":2}},{"start":{"line":49,"column":2},"end":{"line":49,"column":2}}]},"11":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":4},"end":{"line":50,"column":4}},{"start":{"line":50,"column":4},"end":{"line":50,"column":4}}]},"12":{"line":52,"type":"if","locations":[{"start":{"line":52,"column":11},"end":{"line":52,"column":11}},{"start":{"line":52,"column":11},"end":{"line":52,"column":11}}]},"13":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":4},"end":{"line":66,"column":4}},{"start":{"line":66,"column":4},"end":{"line":66,"column":4}}]},"14":{"line":70,"type":"if","locations":[{"start":{"line":70,"column":8},"end":{"line":70,"column":8}},{"start":{"line":70,"column":8},"end":{"line":70,"column":8}}]},"15":{"line":70,"type":"binary-expr","locations":[{"start":{"line":70,"column":12},"end":{"line":70,"column":32}},{"start":{"line":70,"column":36},"end":{"line":70,"column":67}}]},"16":{"line":71,"type":"binary-expr","locations":[{"start":{"line":71,"column":32},"end":{"line":71,"column":36}},{"start":{"line":71,"column":40},"end":{"line":71,"column":48}}]},"17":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":6},"end":{"line":77,"column":6}},{"start":{"line":77,"column":6},"end":{"line":77,"column":6}}]},"18":{"line":77,"type":"binary-expr","locations":[{"start":{"line":77,"column":10},"end":{"line":77,"column":18}},{"start":{"line":77,"column":22},"end":{"line":77,"column":50}}]},"19":{"line":86,"type":"if","locations":[{"start":{"line":86,"column":6},"end":{"line":86,"column":6}},{"start":{"line":86,"column":6},"end":{"line":86,"column":6}}]},"20":{"line":91,"type":"if","locations":[{"start":{"line":91,"column":6},"end":{"line":91,"column":6}},{"start":{"line":91,"column":6},"end":{"line":91,"column":6}}]},"21":{"line":93,"type":"if","locations":[{"start":{"line":93,"column":13},"end":{"line":93,"column":13}},{"start":{"line":93,"column":13},"end":{"line":93,"column":13}}]},"22":{"line":98,"type":"if","locations":[{"start":{"line":98,"column":6},"end":{"line":98,"column":6}},{"start":{"line":98,"column":6},"end":{"line":98,"column":6}}]},"23":{"line":100,"type":"if","locations":[{"start":{"line":100,"column":13},"end":{"line":100,"column":13}},{"start":{"line":100,"column":13},"end":{"line":100,"column":13}}]},"24":{"line":101,"type":"if","locations":[{"start":{"line":101,"column":8},"end":{"line":101,"column":8}},{"start":{"line":101,"column":8},"end":{"line":101,"column":8}}]},"25":{"line":101,"type":"binary-expr","locations":[{"start":{"line":101,"column":11},"end":{"line":101,"column":19}},{"start":{"line":101,"column":24},"end":{"line":101,"column":50}},{"start":{"line":101,"column":54},"end":{"line":101,"column":99}}]},"26":{"line":106,"type":"if","locations":[{"start":{"line":106,"column":8},"end":{"line":106,"column":8}},{"start":{"line":106,"column":8},"end":{"line":106,"column":8}}]},"27":{"line":106,"type":"binary-expr","locations":[{"start":{"line":106,"column":11},"end":{"line":106,"column":19}},{"start":{"line":106,"column":24},"end":{"line":106,"column":50}},{"start":{"line":106,"column":54},"end":{"line":106,"column":99}}]},"28":{"line":119,"type":"if","locations":[{"start":{"line":119,"column":2},"end":{"line":119,"column":2}},{"start":{"line":119,"column":2},"end":{"line":119,"column":2}}]},"29":{"line":120,"type":"if","locations":[{"start":{"line":120,"column":4},"end":{"line":120,"column":4}},{"start":{"line":120,"column":4},"end":{"line":120,"column":4}}]},"30":{"line":121,"type":"if","locations":[{"start":{"line":121,"column":6},"end":{"line":121,"column":6}},{"start":{"line":121,"column":6},"end":{"line":121,"column":6}}]},"31":{"line":121,"type":"binary-expr","locations":[{"start":{"line":121,"column":9},"end":{"line":121,"column":34}},{"start":{"line":121,"column":39},"end":{"line":121,"column":65}},{"start":{"line":121,"column":69},"end":{"line":121,"column":113}}]},"32":{"line":122,"type":"if","locations":[{"start":{"line":122,"column":8},"end":{"line":122,"column":8}},{"start":{"line":122,"column":8},"end":{"line":122,"column":8}}]},"33":{"line":129,"type":"if","locations":[{"start":{"line":129,"column":11},"end":{"line":129,"column":11}},{"start":{"line":129,"column":11},"end":{"line":129,"column":11}}]},"34":{"line":135,"type":"if","locations":[{"start":{"line":135,"column":2},"end":{"line":135,"column":2}},{"start":{"line":135,"column":2},"end":{"line":135,"column":2}}]},"35":{"line":139,"type":"if","locations":[{"start":{"line":139,"column":2},"end":{"line":139,"column":2}},{"start":{"line":139,"column":2},"end":{"line":139,"column":2}}]}}}} \ No newline at end of file diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.js.html deleted file mode 100644 index f94ea48..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.js.html +++ /dev/null @@ -1,436 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars.js

-

- - Statements: 100% (25 / 25)      - - - Branches: 100% (0 / 0)      - - - Functions: 100% (3 / 3)      - - - Lines: 100% (25 / 25)      - - Ignored: none      -

-
All files » dist/cjs/ » handlebars.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39  -  -1 -  -  -1 -1 -1 -1 -1 -1 -1 -  -1 -1 -504 -  -504 -82 -  -504 -409 -  -  -504 -504 -504 -504 -504 -  -504 -  -  -1 -1 -  -1 -  -1
"use strict";
-/*globals Handlebars: true */
-var Handlebars = require("./handlebars.runtime")["default"];
- 
-// Compiler imports
-var AST = require("./handlebars/compiler/ast")["default"];
-var Parser = require("./handlebars/compiler/base").parser;
-var parse = require("./handlebars/compiler/base").parse;
-var Compiler = require("./handlebars/compiler/compiler").Compiler;
-var compile = require("./handlebars/compiler/compiler").compile;
-var precompile = require("./handlebars/compiler/compiler").precompile;
-var JavaScriptCompiler = require("./handlebars/compiler/javascript-compiler")["default"];
- 
-var _create = Handlebars.create;
-var create = function() {
-  var hb = _create();
- 
-  hb.compile = function(input, options) {
-    return compile(input, options, hb);
-  };
-  hb.precompile = function (input, options) {
-    return precompile(input, options, hb);
-  };
- 
-  hb.AST = AST;
-  hb.Compiler = Compiler;
-  hb.JavaScriptCompiler = JavaScriptCompiler;
-  hb.Parser = Parser;
-  hb.parse = parse;
- 
-  return hb;
-};
- 
-Handlebars = create();
-Handlebars.create = create;
- 
-Handlebars['default'] = Handlebars;
- 
-exports["default"] = Handlebars;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.runtime.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.runtime.js.html deleted file mode 100644 index 1a1ec28..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars.runtime.js.html +++ /dev/null @@ -1,424 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars.runtime.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars.runtime.js

-

- - Statements: 100% (20 / 20)      - - - Branches: 100% (0 / 0)      - - - Functions: 100% (2 / 2)      - - - Lines: 100% (20 / 20)      - - Ignored: none      -

-
All files » dist/cjs/ » handlebars.runtime.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35  -  -1 -  -  -  -1 -1 -1 -1 -  -  -1 -505 -  -505 -505 -505 -505 -505 -  -505 -505 -474 -  -  -505 -  -  -1 -1 -  -1 -  -1
"use strict";
-/*globals Handlebars: true */
-var base = require("./handlebars/base");
- 
-// Each of these augment the Handlebars object. No need to setup here.
-// (This is done to easily share code between commonjs and browse envs)
-var SafeString = require("./handlebars/safe-string")["default"];
-var Exception = require("./handlebars/exception")["default"];
-var Utils = require("./handlebars/utils");
-var runtime = require("./handlebars/runtime");
- 
-// For compatibility and usage outside of module systems, make the Handlebars object a namespace
-var create = function() {
-  var hb = new base.HandlebarsEnvironment();
- 
-  Utils.extend(hb, base);
-  hb.SafeString = SafeString;
-  hb.Exception = Exception;
-  hb.Utils = Utils;
-  hb.escapeExpression = Utils.escapeExpression;
- 
-  hb.VM = runtime;
-  hb.template = function(spec) {
-    return runtime.template(spec, hb);
-  };
- 
-  return hb;
-};
- 
-var Handlebars = create();
-Handlebars.create = create;
- 
-Handlebars['default'] = Handlebars;
- 
-exports["default"] = Handlebars;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/base.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/base.js.html deleted file mode 100644 index bac3f2b..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/base.js.html +++ /dev/null @@ -1,1012 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/base.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/base.js

-

- - Statements: 100% (119 / 119)      - - - Branches: 100% (83 / 83)      - - - Functions: 100% (16 / 16)      - - - Lines: 100% (113 / 113)      - - Ignored: none      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231  -1 -1 -  -1 -1 -1 -1 -  -  -  -  -  -  -  -1 -1 -  -  -  -  -1 -505 -505 -  -505 -  -  -1 -  -  -  -  -  -  -4059 -2 -1 -  -4057 -  -  -  -1 -  -  -  -2 -1 -  -1 -  -  -  -1 -  -  -  -1 -505 -24 -  -23 -  -  -1 -  -  -  -505 -145 -  -  -145 -26 -119 -40 -79 -57 -49 -1 -  -  -49 -  -8 -  -  -22 -3 -3 -3 -  -  -22 -  -  -  -505 -83 -1 -  -  -82 -82 -  -82 -82 -5 -  -  -82 -  -82 -76 -  -  -82 -81 -75 -173 -160 -160 -160 -  -160 -5 -  -  -173 -  -  -6 -13 -12 -10 -10 -10 -  -10 -3 -  -  -12 -12 -  -  -  -  -  -82 -4 -  -  -82 -  -  -505 -83 -  -  -  -  -83 -44 -  -39 -  -  -  -505 -2 -  -  -505 -9 -  -9 -  -9 -8 -3 -3 -3 -  -  -8 -  -1 -  -  -  -505 -5 -5 -  -  -505 -4 -  -  -  -1 -  -  -  -  -  -  -  -  -  -  -  -3 -2 -2 -1 -  -  -  -  -1 -1 -1 -1 -109 -109 -109 -  -1
"use strict";
-var Utils = require("./utils");
-var Exception = require("./exception")["default"];
- 
-var VERSION = "2.0.0";
-exports.VERSION = VERSION;var COMPILER_REVISION = 6;
-exports.COMPILER_REVISION = COMPILER_REVISION;
-var REVISION_CHANGES = {
-  1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
-  2: '== 1.0.0-rc.3',
-  3: '== 1.0.0-rc.4',
-  4: '== 1.x.x',
-  5: '== 2.0.0-alpha.x',
-  6: '>= 2.0.0-beta.1'
-};
-exports.REVISION_CHANGES = REVISION_CHANGES;
-var isArray = Utils.isArray,
-    isFunction = Utils.isFunction,
-    toString = Utils.toString,
-    objectType = '[object Object]';
- 
-function HandlebarsEnvironment(helpers, partials) {
-  this.helpers = helpers || {};
-  this.partials = partials || {};
- 
-  registerDefaultHelpers(this);
-}
- 
-exports.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = {
-  constructor: HandlebarsEnvironment,
- 
-  logger: logger,
-  log: log,
- 
-  registerHelper: function(name, fn) {
-    if (toString.call(name) === objectType) {
-      if (fn) { throw new Exception('Arg not supported with multiple helpers'); }
-      Utils.extend(this.helpers, name);
-    } else {
-      this.helpers[name] = fn;
-    }
-  },
-  unregisterHelper: function(name) {
-    delete this.helpers[name];
-  },
- 
-  registerPartial: function(name, partial) {
-    if (toString.call(name) === objectType) {
-      Utils.extend(this.partials,  name);
-    } else {
-      this.partials[name] = partial;
-    }
-  },
-  unregisterPartial: function(name) {
-    delete this.partials[name];
-  }
-};
- 
-function registerDefaultHelpers(instance) {
-  instance.registerHelper('helperMissing', function(/* [args, ]options */) {
-    if(arguments.length === 1) {
-      // A missing field in a {{foo}} constuct.
-      return undefined;
-    } else {
-      // Someone is actually trying to call something, blow up.
-      throw new Exception("Missing helper: '" + arguments[arguments.length-1].name + "'");
-    }
-  });
- 
-  instance.registerHelper('blockHelperMissing', function(context, options) {
-    var inverse = options.inverse,
-        fn = options.fn;
- 
-    if(context === true) {
-      return fn(this);
-    } else if(context === false || context == null) {
-      return inverse(this);
-    } else if (isArray(context)) {
-      if(context.length > 0) {
-        if (options.ids) {
-          options.ids = [options.name];
-        }
- 
-        return instance.helpers.each(context, options);
-      } else {
-        return inverse(this);
-      }
-    } else {
-      if (options.data && options.ids) {
-        var data = createFrame(options.data);
-        data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name);
-        options = {data: data};
-      }
- 
-      return fn(context, options);
-    }
-  });
- 
-  instance.registerHelper('each', function(context, options) {
-    if (!options) {
-      throw new Exception('Must pass iterator to #each');
-    }
- 
-    var fn = options.fn, inverse = options.inverse;
-    var i = 0, ret = "", data;
- 
-    var contextPath;
-    if (options.data && options.ids) {
-      contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';
-    }
- 
-    if (isFunction(context)) { context = context.call(this); }
- 
-    if (options.data) {
-      data = createFrame(options.data);
-    }
- 
-    if(context && typeof context === 'object') {
-      if (isArray(context)) {
-        for(var j = context.length; i<j; i++) {
-          if (data) {
-            data.index = i;
-            data.first = (i === 0);
-            data.last  = (i === (context.length-1));
- 
-            if (contextPath) {
-              data.contextPath = contextPath + i;
-            }
-          }
-          ret = ret + fn(context[i], { data: data });
-        }
-      } else {
-        for(var key in context) {
-          if(context.hasOwnProperty(key)) {
-            if(data) {
-              data.key = key;
-              data.index = i;
-              data.first = (i === 0);
- 
-              if (contextPath) {
-                data.contextPath = contextPath + key;
-              }
-            }
-            ret = ret + fn(context[key], {data: data});
-            i++;
-          }
-        }
-      }
-    }
- 
-    if(i === 0){
-      ret = inverse(this);
-    }
- 
-    return ret;
-  });
- 
-  instance.registerHelper('if', function(conditional, options) {
-    if (isFunction(conditional)) { conditional = conditional.call(this); }
- 
-    // Default behavior is to render the positive path if the value is truthy and not empty.
-    // The `includeZero` option may be set to treat the condtional as purely not empty based on the
-    // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.
-    if ((!options.hash.includeZero && !conditional) || Utils.isEmpty(conditional)) {
-      return options.inverse(this);
-    } else {
-      return options.fn(this);
-    }
-  });
- 
-  instance.registerHelper('unless', function(conditional, options) {
-    return instance.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn, hash: options.hash});
-  });
- 
-  instance.registerHelper('with', function(context, options) {
-    if (isFunction(context)) { context = context.call(this); }
- 
-    var fn = options.fn;
- 
-    if (!Utils.isEmpty(context)) {
-      if (options.data && options.ids) {
-        var data = createFrame(options.data);
-        data.contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]);
-        options = {data:data};
-      }
- 
-      return fn(context, options);
-    } else {
-      return options.inverse(this);
-    }
-  });
- 
-  instance.registerHelper('log', function(message, options) {
-    var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
-    instance.log(level, message);
-  });
- 
-  instance.registerHelper('lookup', function(obj, field) {
-    return obj && obj[field];
-  });
-}
- 
-var logger = {
-  methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' },
- 
-  // State enum
-  DEBUG: 0,
-  INFO: 1,
-  WARN: 2,
-  ERROR: 3,
-  level: 3,
- 
-  // can be overridden in the host environment
-  log: function(level, message) {
-    if (logger.level <= level) {
-      var method = logger.methodMap[level];
-      if (typeof console !== 'undefined' && console[method]) {
-        console[method].call(console, message);
-      }
-    }
-  }
-};
-exports.logger = logger;
-var log = logger.log;
-exports.log = log;
-var createFrame = function(object) {
-  var frame = Utils.extend({}, object);
-  frame._parent = object;
-  return frame;
-};
-exports.createFrame = createFrame;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/ast.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/ast.js.html deleted file mode 100644 index f978155..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/ast.js.html +++ /dev/null @@ -1,961 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/compiler/ast.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/compiler/ast.js

-

- - Statements: 100% (107 / 107)      - - - Branches: 100% (36 / 36)      - - - Functions: 100% (16 / 16)      - - - Lines: 100% (107 / 107)      - - Ignored: none      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214  -1 -  -1 -10460 -10460 -10460 -10460 -10460 -  -  -1 -  -1700 -1700 -1700 -1700 -  -  -  -1588 -1588 -1588 -  -  -1588 -  -1584 -1584 -  -4 -  -  -1588 -1569 -  -  -19 -  -  -  -1588 -1588 -1588 -1588 -1588 -  -  -  -1644 -  -1644 -1644 -  -1644 -1644 -  -  -  -  -1644 -  -  -  -1644 -  -  -  -  -  -  -  -96 -96 -96 -96 -96 -96 -  -96 -  -  -  -602 -  -602 -602 -602 -602 -602 -  -602 -80 -  -  -  -  -5 -  -5 -1 -  -  -4 -  -4 -4 -4 -  -  -  -1617 -1617 -1617 -  -  -  -75 -75 -75 -  -  -  -2756 -2756 -  -2756 -  -  -  -  -2756 -3091 -3091 -  -3091 -163 -11 -152 -67 -67 -  -85 -  -  -2928 -  -  -  -2745 -2745 -2745 -2745 -2745 -  -  -  -2745 -  -2745 -  -  -  -96 -96 -96 -  -  -  -75 -75 -75 -75 -75 -  -  -  -58 -58 -58 -  -  -  -  -  -56 -56 -56 -  -56 -  -  -  -55 -55 -55 -55 -  -  -  -37 -37 -37 -  -37 -  -  -  -  -  -  -  -  -1
"use strict";
-var Exception = require("../exception")["default"];
- 
-function LocationInfo(locInfo) {
-  locInfo = locInfo || {};
-  this.firstLine   = locInfo.first_line;
-  this.firstColumn = locInfo.first_column;
-  this.lastColumn  = locInfo.last_column;
-  this.lastLine    = locInfo.last_line;
-}
- 
-var AST = {
-  ProgramNode: function(statements, strip, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "program";
-    this.statements = statements;
-    this.strip = strip;
-  },
- 
-  MustacheNode: function(rawParams, hash, open, strip, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "mustache";
-    this.strip = strip;
- 
-    // Open may be a string parsed from the parser or a passed boolean flag
-    if (open != null && open.charAt) {
-      // Must use charAt to support IE pre-10
-      var escapeFlag = open.charAt(3) || open.charAt(2);
-      this.escaped = escapeFlag !== '{' && escapeFlag !== '&';
-    } else {
-      this.escaped = !!open;
-    }
- 
-    if (rawParams instanceof AST.SexprNode) {
-      this.sexpr = rawParams;
-    } else {
-      // Support old AST API
-      this.sexpr = new AST.SexprNode(rawParams, hash);
-    }
- 
-    // Support old AST API that stored this info in MustacheNode
-    this.id = this.sexpr.id;
-    this.params = this.sexpr.params;
-    this.hash = this.sexpr.hash;
-    this.eligibleHelper = this.sexpr.eligibleHelper;
-    this.isHelper = this.sexpr.isHelper;
-  },
- 
-  SexprNode: function(rawParams, hash, locInfo) {
-    LocationInfo.call(this, locInfo);
- 
-    this.type = "sexpr";
-    this.hash = hash;
- 
-    var id = this.id = rawParams[0];
-    var params = this.params = rawParams.slice(1);
- 
-    // a mustache is definitely a helper if:
-    // * it is an eligible helper, and
-    // * it has at least one parameter or hash segment
-    this.isHelper = !!(params.length || hash);
- 
-    // a mustache is an eligible helper if:
-    // * its id is simple (a single part, not `this` or `..`)
-    this.eligibleHelper = this.isHelper || id.isSimple;
- 
-    // if a mustache is an eligible helper but not a definite
-    // helper, it is ambiguous, and will be resolved in a later
-    // pass or at runtime.
-  },
- 
-  PartialNode: function(partialName, context, hash, strip, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type         = "partial";
-    this.partialName  = partialName;
-    this.context      = context;
-    this.hash = hash;
-    this.strip = strip;
- 
-    this.strip.inlineStandalone = true;
-  },
- 
-  BlockNode: function(mustache, program, inverse, strip, locInfo) {
-    LocationInfo.call(this, locInfo);
- 
-    this.type = 'block';
-    this.mustache = mustache;
-    this.program  = program;
-    this.inverse  = inverse;
-    this.strip = strip;
- 
-    if (inverse && !program) {
-      this.isInverse = true;
-    }
-  },
- 
-  RawBlockNode: function(mustache, content, close, locInfo) {
-    LocationInfo.call(this, locInfo);
- 
-    if (mustache.sexpr.id.original !== close) {
-      throw new Exception(mustache.sexpr.id.original + " doesn't match " + close, this);
-    }
- 
-    content = new AST.ContentNode(content, locInfo);
- 
-    this.type = 'block';
-    this.mustache = mustache;
-    this.program = new AST.ProgramNode([content], {}, locInfo);
-  },
- 
-  ContentNode: function(string, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "content";
-    this.original = this.string = string;
-  },
- 
-  HashNode: function(pairs, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "hash";
-    this.pairs = pairs;
-  },
- 
-  IdNode: function(parts, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "ID";
- 
-    var original = "",
-        dig = [],
-        depth = 0,
-        depthString = '';
- 
-    for(var i=0,l=parts.length; i<l; i++) {
-      var part = parts[i].part;
-      original += (parts[i].separator || '') + part;
- 
-      if (part === ".." || part === "." || part === "this") {
-        if (dig.length > 0) {
-          throw new Exception("Invalid path: " + original, this);
-        } else if (part === "..") {
-          depth++;
-          depthString += '../';
-        } else {
-          this.isScoped = true;
-        }
-      } else {
-        dig.push(part);
-      }
-    }
- 
-    this.original = original;
-    this.parts    = dig;
-    this.string   = dig.join('.');
-    this.depth    = depth;
-    this.idName   = depthString + this.string;
- 
-    // an ID is simple if it only has one part, and that part is not
-    // `..` or `this`.
-    this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;
- 
-    this.stringModeValue = this.string;
-  },
- 
-  PartialNameNode: function(name, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "PARTIAL_NAME";
-    this.name = name.original;
-  },
- 
-  DataNode: function(id, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "DATA";
-    this.id = id;
-    this.stringModeValue = id.stringModeValue;
-    this.idName = '@' + id.stringModeValue;
-  },
- 
-  StringNode: function(string, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "STRING";
-    this.original =
-      this.string =
-      this.stringModeValue = string;
-  },
- 
-  NumberNode: function(number, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "NUMBER";
-    this.original =
-      this.number = number;
-    this.stringModeValue = Number(number);
-  },
- 
-  BooleanNode: function(bool, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "BOOLEAN";
-    this.bool = bool;
-    this.stringModeValue = bool === "true";
-  },
- 
-  CommentNode: function(comment, locInfo) {
-    LocationInfo.call(this, locInfo);
-    this.type = "comment";
-    this.comment = comment;
- 
-    this.strip = {
-      inlineStandalone: true
-    };
-  }
-};
- 
- 
-// Must be exported as an object rather than the root of the module as the jison lexer
-// most modify the object to operate properly.
-exports["default"] = AST;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/base.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/base.js.html deleted file mode 100644 index 0f553bf..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/base.js.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/compiler/base.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/compiler/base.js

-

- - Statements: 100% (13 / 13)      - - - Branches: 100% (2 / 2)      - - - Functions: 100% (1 / 1)      - - - Lines: 100% (12 / 12)      - - Ignored: none      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21  -1 -1 -1 -1 -  -1 -  -1 -1 -  -1 -  -1052 -  -1049 -  -1049 -  -  -1
"use strict";
-var parser = require("./parser")["default"];
-var AST = require("./ast")["default"];
-var Helpers = require("./helpers");
-var extend = require("../utils").extend;
- 
-exports.parser = parser;
- 
-var yy = {};
-extend(yy, Helpers, AST);
- 
-function parse(input) {
-  // Just return if an already-compile AST was passed in.
-  if (input.constructor === AST.ProgramNode) { return input; }
- 
-  parser.yy = yy;
- 
-  return parser.parse(input);
-}
- 
-exports.parse = parse;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/compiler.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/compiler.js.html deleted file mode 100644 index 2c8a871..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/compiler.js.html +++ /dev/null @@ -1,1675 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/compiler/compiler.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/compiler/compiler.js

-

- - Statements: 100% (221 / 221)      - - - Branches: 100% (117 / 117)      - - - Functions: 100% (35 / 35)      - - - Lines: 100% (215 / 215)      - - Ignored: none      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452  -1 -1 -  -1 -  -1 -  -1 -  -  -  -  -1 -  -  -  -129 -129 -45 -  -  -84 -279 -  -279 -68 -  -  -  -  -  -16 -16 -4 -3 -  -  -  -13 -  -  -  -  -  -1595 -1595 -1595 -1595 -1595 -1595 -  -  -1595 -1595 -  -  -  -  -  -  -  -  -  -1595 -646 -5054 -  -  -  -1595 -  -  -  -5302 -  -  -  -1595 -  -1595 -3165 -  -1593 -  -1593 -2 -  -  -1593 -  -  -  -631 -631 -  -631 -  -631 -  -631 -52 -  -52 -2 -  -  -631 -  -  -  -583 -  -  -  -583 -505 -  -  -583 -126 -  -  -583 -583 -  -583 -232 -351 -32 -  -  -  -32 -32 -32 -32 -  -319 -  -  -  -319 -319 -319 -319 -  -  -583 -  -  -  -60 -  -60 -  -60 -96 -  -60 -96 -  -60 -  -  -  -86 -86 -  -86 -2 -  -84 -  -  -86 -4 -  -82 -82 -  -  -86 -86 -  -  -  -1553 -1419 -  -  -  -  -913 -  -911 -851 -  -60 -  -  -  -  -894 -  -  -  -894 -  -894 -894 -  -894 -  -894 -  -  -  -186 -  -186 -38 -148 -108 -  -  -40 -40 -40 -  -  -186 -  -  -  -468 -  -  -  -468 -210 -258 -2 -  -256 -  -256 -256 -  -  -  -  -965 -  -965 -154 -811 -236 -  -575 -  -  -  -  -1588 -1588 -  -1588 -1588 -  -16 -  -1572 -  -  -  -  -68 -68 -  -  -  -42 -  -  -  -50 -  -  -  -40 -  -  -  -  -  -  -14161 -  -  -  -1636 -  -56 -54 -54 -  -  -  -  -1548 -1548 -1548 -  -  -  -1548 -912 -  -912 -10 -902 -8 -  -  -  -1548 -1080 -186 -  -  -  -468 -502 -  -  -  -  -598 -62 -6 -  -62 -62 -  -62 -  -  -4 -  -  -536 -54 -  -536 -  -  -  -  -468 -468 -  -468 -468 -  -468 -58 -  -410 -  -  -468 -  -  -  -1 -801 -2 -  -  -799 -799 -767 -  -799 -180 -  -  -799 -785 -783 -  -  -1 -155 -2 -  -  -153 -  -153 -71 -  -153 -48 -  -  -153 -  -1 -153 -153 -153 -153 -  -  -  -153 -174 -150 -  -174 -  -153 -2 -1 -  -2 -  -153 -4 -2 -  -4 -  -153 -  -  -1 -621 -241 -  -  -380 -312 -342 -81 -  -  -231 -  - 
"use strict";
-var Exception = require("../exception")["default"];
-var isArray = require("../utils").isArray;
- 
-var slice = [].slice;
- 
-function Compiler() {}
- 
-exports.Compiler = Compiler;// the foundHelper register will disambiguate helper lookup from finding a
-// function in a context. This is necessary for mustache compatibility, which
-// requires that context functions in blocks are evaluated by blockHelperMissing,
-// and then proceed as if the resulting value was provided to blockHelperMissing.
- 
-Compiler.prototype = {
-  compiler: Compiler,
- 
-  equals: function(other) {
-    var len = this.opcodes.length;
-    if (other.opcodes.length !== len) {
-      return false;
-    }
- 
-    for (var i = 0; i < len; i++) {
-      var opcode = this.opcodes[i],
-          otherOpcode = other.opcodes[i];
-      if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) {
-        return false;
-      }
-    }
- 
-    // We know that length is the same between the two arrays because they are directly tied
-    // to the opcode behavior above.
-    len = this.children.length;
-    for (i = 0; i < len; i++) {
-      if (!this.children[i].equals(other.children[i])) {
-        return false;
-      }
-    }
- 
-    return true;
-  },
- 
-  guid: 0,
- 
-  compile: function(program, options) {
-    this.opcodes = [];
-    this.children = [];
-    this.depths = {list: []};
-    this.options = options;
-    this.stringParams = options.stringParams;
-    this.trackIds = options.trackIds;
- 
-    // These changes will propagate to the other compiler components
-    var knownHelpers = this.options.knownHelpers;
-    this.options.knownHelpers = {
-      'helperMissing': true,
-      'blockHelperMissing': true,
-      'each': true,
-      'if': true,
-      'unless': true,
-      'with': true,
-      'log': true,
-      'lookup': true
-    };
-    if (knownHelpers) {
-      for (var name in knownHelpers) {
-        this.options.knownHelpers[name] = knownHelpers[name];
-      }
-    }
- 
-    return this.accept(program);
-  },
- 
-  accept: function(node) {
-    return this[node.type](node);
-  },
- 
-  program: function(program) {
-    var statements = program.statements;
- 
-    for(var i=0, l=statements.length; i<l; i++) {
-      this.accept(statements[i]);
-    }
-    this.isSimple = l === 1;
- 
-    this.depths.list = this.depths.list.sort(function(a, b) {
-      return a - b;
-    });
- 
-    return this;
-  },
- 
-  compileProgram: function(program) {
-    var result = new this.compiler().compile(program, this.options);
-    var guid = this.guid++, depth;
- 
-    this.usePartial = this.usePartial || result.usePartial;
- 
-    this.children[guid] = result;
- 
-    for(var i=0, l=result.depths.list.length; i<l; i++) {
-      depth = result.depths.list[i];
- 
-      if(depth < 2) { continue; }
-      else { this.addDepth(depth - 1); }
-    }
- 
-    return guid;
-  },
- 
-  block: function(block) {
-    var mustache = block.mustache,
-        program = block.program,
-        inverse = block.inverse;
- 
-    if (program) {
-      program = this.compileProgram(program);
-    }
- 
-    if (inverse) {
-      inverse = this.compileProgram(inverse);
-    }
- 
-    var sexpr = mustache.sexpr;
-    var type = this.classifySexpr(sexpr);
- 
-    if (type === "helper") {
-      this.helperSexpr(sexpr, program, inverse);
-    } else if (type === "simple") {
-      this.simpleSexpr(sexpr);
- 
-      // now that the simple mustache is resolved, we need to
-      // evaluate it by executing `blockHelperMissing`
-      this.opcode('pushProgram', program);
-      this.opcode('pushProgram', inverse);
-      this.opcode('emptyHash');
-      this.opcode('blockValue', sexpr.id.original);
-    } else {
-      this.ambiguousSexpr(sexpr, program, inverse);
- 
-      // now that the simple mustache is resolved, we need to
-      // evaluate it by executing `blockHelperMissing`
-      this.opcode('pushProgram', program);
-      this.opcode('pushProgram', inverse);
-      this.opcode('emptyHash');
-      this.opcode('ambiguousBlockValue');
-    }
- 
-    this.opcode('append');
-  },
- 
-  hash: function(hash) {
-    var pairs = hash.pairs, i, l;
- 
-    this.opcode('pushHash');
- 
-    for(i=0, l=pairs.length; i<l; i++) {
-      this.pushParam(pairs[i][1]);
-    }
-    while(i--) {
-      this.opcode('assignToHash', pairs[i][0]);
-    }
-    this.opcode('popHash');
-  },
- 
-  partial: function(partial) {
-    var partialName = partial.partialName;
-    this.usePartial = true;
- 
-    if (partial.hash) {
-      this.accept(partial.hash);
-    } else {
-      this.opcode('push', 'undefined');
-    }
- 
-    if (partial.context) {
-      this.accept(partial.context);
-    } else {
-      this.opcode('getContext', 0);
-      this.opcode('pushContext');
-    }
- 
-    this.opcode('invokePartial', partialName.name, partial.indent || '');
-    this.opcode('append');
-  },
- 
-  content: function(content) {
-    if (content.string) {
-      this.opcode('appendContent', content.string);
-    }
-  },
- 
-  mustache: function(mustache) {
-    this.sexpr(mustache.sexpr);
- 
-    if(mustache.escaped && !this.options.noEscape) {
-      this.opcode('appendEscaped');
-    } else {
-      this.opcode('append');
-    }
-  },
- 
-  ambiguousSexpr: function(sexpr, program, inverse) {
-    var id = sexpr.id,
-        name = id.parts[0],
-        isBlock = program != null || inverse != null;
- 
-    this.opcode('getContext', id.depth);
- 
-    this.opcode('pushProgram', program);
-    this.opcode('pushProgram', inverse);
- 
-    this.ID(id);
- 
-    this.opcode('invokeAmbiguous', name, isBlock);
-  },
- 
-  simpleSexpr: function(sexpr) {
-    var id = sexpr.id;
- 
-    if (id.type === 'DATA') {
-      this.DATA(id);
-    } else if (id.parts.length) {
-      this.ID(id);
-    } else {
-      // Simplified ID for `this`
-      this.addDepth(id.depth);
-      this.opcode('getContext', id.depth);
-      this.opcode('pushContext');
-    }
- 
-    this.opcode('resolvePossibleLambda');
-  },
- 
-  helperSexpr: function(sexpr, program, inverse) {
-    var params = this.setupFullMustacheParams(sexpr, program, inverse),
-        id = sexpr.id,
-        name = id.parts[0];
- 
-    if (this.options.knownHelpers[name]) {
-      this.opcode('invokeKnownHelper', params.length, name);
-    } else if (this.options.knownHelpersOnly) {
-      throw new Exception("You specified knownHelpersOnly, but used the unknown helper " + name, sexpr);
-    } else {
-      id.falsy = true;
- 
-      this.ID(id);
-      this.opcode('invokeHelper', params.length, id.original, id.isSimple);
-    }
-  },
- 
-  sexpr: function(sexpr) {
-    var type = this.classifySexpr(sexpr);
- 
-    if (type === "simple") {
-      this.simpleSexpr(sexpr);
-    } else if (type === "helper") {
-      this.helperSexpr(sexpr);
-    } else {
-      this.ambiguousSexpr(sexpr);
-    }
-  },
- 
-  ID: function(id) {
-    this.addDepth(id.depth);
-    this.opcode('getContext', id.depth);
- 
-    var name = id.parts[0];
-    if (!name) {
-      // Context reference, i.e. `{{foo .}}` or `{{foo ..}}`
-      this.opcode('pushContext');
-    } else {
-      this.opcode('lookupOnContext', id.parts, id.falsy, id.isScoped);
-    }
-  },
- 
-  DATA: function(data) {
-    this.options.data = true;
-    this.opcode('lookupData', data.id.depth, data.id.parts);
-  },
- 
-  STRING: function(string) {
-    this.opcode('pushString', string.string);
-  },
- 
-  NUMBER: function(number) {
-    this.opcode('pushLiteral', number.number);
-  },
- 
-  BOOLEAN: function(bool) {
-    this.opcode('pushLiteral', bool.bool);
-  },
- 
-  comment: function() {},
- 
-  // HELPERS
-  opcode: function(name) {
-    this.opcodes.push({ opcode: name, args: slice.call(arguments, 1) });
-  },
- 
-  addDepth: function(depth) {
-    if(depth === 0) { return; }
- 
-    if(!this.depths[depth]) {
-      this.depths[depth] = true;
-      this.depths.list.push(depth);
-    }
-  },
- 
-  classifySexpr: function(sexpr) {
-    var isHelper   = sexpr.isHelper;
-    var isEligible = sexpr.eligibleHelper;
-    var options    = this.options;
- 
-    // if ambiguous, we can possibly resolve the ambiguity now
-    // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc.
-    if (isEligible && !isHelper) {
-      var name = sexpr.id.parts[0];
- 
-      if (options.knownHelpers[name]) {
-        isHelper = true;
-      } else if (options.knownHelpersOnly) {
-        isEligible = false;
-      }
-    }
- 
-    if (isHelper) { return "helper"; }
-    else if (isEligible) { return "ambiguous"; }
-    else { return "simple"; }
-  },
- 
-  pushParams: function(params) {
-    for(var i=0, l=params.length; i<l; i++) {
-      this.pushParam(params[i]);
-    }
-  },
- 
-  pushParam: function(val) {
-    if (this.stringParams) {
-      if(val.depth) {
-        this.addDepth(val.depth);
-      }
-      this.opcode('getContext', val.depth || 0);
-      this.opcode('pushStringParam', val.stringModeValue, val.type);
- 
-      if (val.type === 'sexpr') {
-        // Subexpressions get evaluated and passed in
-        // in string params mode.
-        this.sexpr(val);
-      }
-    } else {
-      if (this.trackIds) {
-        this.opcode('pushId', val.type, val.idName || val.stringModeValue);
-      }
-      this.accept(val);
-    }
-  },
- 
-  setupFullMustacheParams: function(sexpr, program, inverse) {
-    var params = sexpr.params;
-    this.pushParams(params);
- 
-    this.opcode('pushProgram', program);
-    this.opcode('pushProgram', inverse);
- 
-    if (sexpr.hash) {
-      this.hash(sexpr.hash);
-    } else {
-      this.opcode('emptyHash');
-    }
- 
-    return params;
-  }
-};
- 
-function precompile(input, options, env) {
-  if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) {
-    throw new Exception("You must pass a string or Handlebars AST to Handlebars.precompile. You passed " + input);
-  }
- 
-  options = options || {};
-  if (!('data' in options)) {
-    options.data = true;
-  }
-  if (options.compat) {
-    options.useDepths = true;
-  }
- 
-  var ast = env.parse(input);
-  var environment = new env.Compiler().compile(ast, options);
-  return new env.JavaScriptCompiler().compile(environment, options);
-}
- 
-exports.precompile = precompile;function compile(input, options, env) {
-  if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) {
-    throw new Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + input);
-  }
- 
-  options = options || {};
- 
-  if (!('data' in options)) {
-    options.data = true;
-  }
-  if (options.compat) {
-    options.useDepths = true;
-  }
- 
-  var compiled;
- 
-  function compileInput() {
-    var ast = env.parse(input);
-    var environment = new env.Compiler().compile(ast, options);
-    var templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);
-    return env.template(templateSpec);
-  }
- 
-  // Template is only compiled on first use and cached after that point.
-  var ret = function(context, options) {
-    if (!compiled) {
-      compiled = compileInput();
-    }
-    return compiled.call(this, context, options);
-  };
-  ret._setup = function(options) {
-    if (!compiled) {
-      compiled = compileInput();
-    }
-    return compiled._setup(options);
-  };
-  ret._child = function(i, data, depths) {
-    if (!compiled) {
-      compiled = compileInput();
-    }
-    return compiled._child(i, data, depths);
-  };
-  return ret;
-}
- 
-exports.compile = compile;function argEquals(a, b) {
-  if (a === b) {
-    return true;
-  }
- 
-  if (isArray(a) && isArray(b) && a.length === b.length) {
-    for (var i = 0; i < a.length; i++) {
-      if (!argEquals(a[i], b[i])) {
-        return false;
-      }
-    }
-    return true;
-  }
-}
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/helpers.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/helpers.js.html deleted file mode 100644 index 39db2a5..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/helpers.js.html +++ /dev/null @@ -1,880 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/compiler/helpers.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/compiler/helpers.js

-

- - Statements: 100% (82 / 82)      - - - Branches: 98.92% (92 / 93)      - - - Functions: 100% (7 / 7)      - - - Lines: 100% (81 / 81)      - - Ignored: none      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187  -1 -  -1 -2323 -  -  -  -  -  -1 -1 -  -603 -2 -  -  -601 -  -601 -  -  -  -  -  -  -  -  -  -601 -34 -  -  -601 -62 -  -62 -22 -  -62 -22 -  -62 -18 -  -  -  -62 -  -  -17 -17 -  -  -539 -14 -  -  -  -601 -80 -  -521 -  -  -  -1 -1 -2718 -5434 -  -  -5434 -2583 -  -  -2851 -  -  -  -  -  -  -2851 -72 -  -2851 -64 -  -  -2851 -63 -  -63 -  -20 -11 -  -  -  -2851 -109 -  -  -109 -  -2851 -  -115 -  -115 -  -  -  -2718 -  -  -1 -3514 -663 -  -  -  -  -3514 -  -3514 -1480 -  -  -2034 -1712 -  -  -1 -3469 -618 -  -  -3469 -  -3469 -1401 -  -  -2068 -1729 -  -  -  -  -  -  -  -  -  -  -1 -432 -432 -150 -  -  -282 -282 -282 -  -  -  -  -  -  -  -  -  -1 -422 -422 -90 -  -  -  -332 -332 -332 -332 - 
"use strict";
-var Exception = require("../exception")["default"];
- 
-function stripFlags(open, close) {
-  return {
-    left: open.charAt(2) === '~',
-    right: close.charAt(close.length-3) === '~'
-  };
-}
- 
-exports.stripFlags = stripFlags;
-function prepareBlock(mustache, program, inverseAndProgram, close, inverted, locInfo) {
-  /*jshint -W040 */
-  if (mustache.sexpr.id.original !== close.path.original) {
-    throw new Exception(mustache.sexpr.id.original + ' doesn\'t match ' + close.path.original, mustache);
-  }
- 
-  var inverse = inverseAndProgram && inverseAndProgram.program;
- 
-  var strip = {
-    left: mustache.strip.left,
-    right: close.strip.right,
- 
-    // Determine the standalone candiacy. Basically flag our content as being possibly standalone
-    // so our parent can determine if we actually are standalone
-    openStandalone: isNextWhitespace(program.statements),
-    closeStandalone: isPrevWhitespace((inverse || program).statements)
-  };
- 
-  if (mustache.strip.right) {
-    omitRight(program.statements, null, true);
-  }
- 
-  if (inverse) {
-    var inverseStrip = inverseAndProgram.strip;
- 
-    if (inverseStrip.left) {
-      omitLeft(program.statements, null, true);
-    }
-    if (inverseStrip.right) {
-      omitRight(inverse.statements, null, true);
-    }
-    if (close.strip.left) {
-      omitLeft(inverse.statements, null, true);
-    }
- 
-    // Find standalone else statments
-    if (isPrevWhitespace(program.statements)
-        && isNextWhitespace(inverse.statements)) {
- 
-      omitLeft(program.statements);
-      omitRight(inverse.statements);
-    }
-  } else {
-    if (close.strip.left) {
-      omitLeft(program.statements, null, true);
-    }
-  }
- 
-  if (inverted) {
-    return new this.BlockNode(mustache, inverse, program, strip, locInfo);
-  } else {
-    return new this.BlockNode(mustache, program, inverse, strip, locInfo);
-  }
-}
- 
-exports.prepareBlock = prepareBlock;
-function prepareProgram(statements, isRoot) {
-  for (var i = 0, l = statements.length; i < l; i++) {
-    var current = statements[i],
-        strip = current.strip;
- 
-    if (!strip) {
-      continue;
-    }
- 
-    var _isPrevWhitespace = isPrevWhitespace(statements, i, isRoot, current.type === 'partial'),
-        _isNextWhitespace = isNextWhitespace(statements, i, isRoot),
- 
-        openStandalone = strip.openStandalone && _isPrevWhitespace,
-        closeStandalone = strip.closeStandalone && _isNextWhitespace,
-        inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace;
- 
-    if (strip.right) {
-      omitRight(statements, i, true);
-    }
-    if (strip.left) {
-      omitLeft(statements, i, true);
-    }
- 
-    if (inlineStandalone) {
-      omitRight(statements, i);
- 
-      if (omitLeft(statements, i)) {
-        // If we are on a standalone node, save the indent info for partials
-        if (current.type === 'partial') {
-          current.indent = (/([ \t]+$)/).exec(statements[i-1].original) ? RegExp.$1 : '';
-        }
-      }
-    }
-    if (openStandalone) {
-      omitRight((current.program || current.inverse).statements);
- 
-      // Strip out the previous content node if it's whitespace only
-      omitLeft(statements, i);
-    }
-    if (closeStandalone) {
-      // Always strip the next node
-      omitRight(statements, i);
- 
-      omitLeft((current.inverse || current.program).statements);
-    }
-  }
- 
-  return statements;
-}
- 
-exports.prepareProgram = prepareProgram;function isPrevWhitespace(statements, i, isRoot) {
-  if (i === undefined) {
-    i = statements.length;
-  }
- 
-  // Nodes that end with newlines are considered whitespace (but are special
-  // cased for strip operations)
-  var prev = statements[i-1],
-      sibling = statements[i-2];
-  if (!prev) {
-    return isRoot;
-  }
- 
-  if (prev.type === 'content') {
-    return (sibling || !isRoot ? (/\r?\n\s*?$/) : (/(^|\r?\n)\s*?$/)).test(prev.original);
-  }
-}
-function isNextWhitespace(statements, i, isRoot) {
-  if (i === undefined) {
-    i = -1;
-  }
- 
-  var next = statements[i+1],
-      sibling = statements[i+2];
-  if (!next) {
-    return isRoot;
-  }
- 
-  if (next.type === 'content') {
-    return (sibling || !isRoot ? (/^\s*?\r?\n/) : (/^\s*?(\r?\n|$)/)).test(next.original);
-  }
-}
- 
-// Marks the node to the right of the position as omitted.
-// I.e. {{foo}}' ' will mark the ' ' node as omitted.
-//
-// If i is undefined, then the first child will be marked as such.
-//
-// If mulitple is truthy then all whitespace will be stripped out until non-whitespace
-// content is met.
-function omitRight(statements, i, multiple) {
-  var current = statements[i == null ? 0 : i + 1];
-  if (!current || current.type !== 'content' || (!multiple && current.rightStripped)) {
-    return;
-  }
- 
-  var original = current.string;
-  current.string = current.string.replace(multiple ? (/^\s+/) : (/^[ \t]*\r?\n?/), '');
-  current.rightStripped = current.string !== original;
-}
- 
-// Marks the node to the left of the position as omitted.
-// I.e. ' '{{foo}} will mark the ' ' node as omitted.
-//
-// If i is undefined then the last child will be marked as such.
-//
-// If mulitple is truthy then all whitespace will be stripped out until non-whitespace
-// content is met.
-function omitLeft(statements, i, multiple) {
-  var current = statements[i == null ? statements.length - 1 : i - 1];
-  if (!current || current.type !== 'content' || (!multiple && current.leftStripped)) {
-    return;
-  }
- 
-  // We omit the last node if it's whitespace only and not preceeded by a non-content node.
-  var original = current.string;
-  current.string = current.string.replace(multiple ? (/\s+$/) : (/[ \t]+$/), '');
-  current.leftStripped = current.string !== original;
-  return current.leftStripped;
-}
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/index.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/index.html deleted file mode 100644 index 72eacf9..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/index.html +++ /dev/null @@ -1,441 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/compiler/ - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/compiler/

-

- - Statements: 99.84% (1269 / 1271)      - - - Branches: 99.4% (660 / 664)      - - - Functions: 100% (164 / 164)      - - - Lines: 99.84% (1229 / 1231)      - - Ignored: 98 statements, 9 functions, 48 branches      -

-
All files » dist/cjs/handlebars/compiler/
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
ast.js100%(107 / 107)100%(36 / 36)100%(16 / 16)100%(107 / 107)
base.js100%(13 / 13)100%(2 / 2)100%(1 / 1)100%(12 / 12)
compiler.js100%(221 / 221)100%(117 / 117)100%(35 / 35)100%(215 / 215)
helpers.js100%(82 / 82)98.92%(92 / 93)100%(7 / 7)100%(81 / 81)
javascript-compiler.js99.45%(362 / 364)98.46%(192 / 195)100%(59 / 59)99.45%(361 / 363)
parser.js100%(396 / 396)100%(205 / 205)100%(27 / 27)100%(369 / 369)
printer.js100%(84 / 84)100%(16 / 16)100%(17 / 17)100%(80 / 80)
visitor.js100%(4 / 4)100%(0 / 0)100%(2 / 2)100%(4 / 4)
-
-
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/javascript-compiler.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/javascript-compiler.js.html deleted file mode 100644 index 17a4ec2..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/javascript-compiler.js.html +++ /dev/null @@ -1,3211 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/compiler/javascript-compiler.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/compiler/javascript-compiler.js

-

- - Statements: 99.45% (362 / 364)      - - - Branches: 98.46% (192 / 195)      - - - Functions: 100% (59 / 59)      - - - Lines: 99.45% (361 / 363)      - - Ignored: 3 statements, 3 branches      -

-
All files » dist/cjs/handlebars/compiler/ » javascript-compiler.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -565 -566 -567 -568 -569 -570 -571 -572 -573 -574 -575 -576 -577 -578 -579 -580 -581 -582 -583 -584 -585 -586 -587 -588 -589 -590 -591 -592 -593 -594 -595 -596 -597 -598 -599 -600 -601 -602 -603 -604 -605 -606 -607 -608 -609 -610 -611 -612 -613 -614 -615 -616 -617 -618 -619 -620 -621 -622 -623 -624 -625 -626 -627 -628 -629 -630 -631 -632 -633 -634 -635 -636 -637 -638 -639 -640 -641 -642 -643 -644 -645 -646 -647 -648 -649 -650 -651 -652 -653 -654 -655 -656 -657 -658 -659 -660 -661 -662 -663 -664 -665 -666 -667 -668 -669 -670 -671 -672 -673 -674 -675 -676 -677 -678 -679 -680 -681 -682 -683 -684 -685 -686 -687 -688 -689 -690 -691 -692 -693 -694 -695 -696 -697 -698 -699 -700 -701 -702 -703 -704 -705 -706 -707 -708 -709 -710 -711 -712 -713 -714 -715 -716 -717 -718 -719 -720 -721 -722 -723 -724 -725 -726 -727 -728 -729 -730 -731 -732 -733 -734 -735 -736 -737 -738 -739 -740 -741 -742 -743 -744 -745 -746 -747 -748 -749 -750 -751 -752 -753 -754 -755 -756 -757 -758 -759 -760 -761 -762 -763 -764 -765 -766 -767 -768 -769 -770 -771 -772 -773 -774 -775 -776 -777 -778 -779 -780 -781 -782 -783 -784 -785 -786 -787 -788 -789 -790 -791 -792 -793 -794 -795 -796 -797 -798 -799 -800 -801 -802 -803 -804 -805 -806 -807 -808 -809 -810 -811 -812 -813 -814 -815 -816 -817 -818 -819 -820 -821 -822 -823 -824 -825 -826 -827 -828 -829 -830 -831 -832 -833 -834 -835 -836 -837 -838 -839 -840 -841 -842 -843 -844 -845 -846 -847 -848 -849 -850 -851 -852 -853 -854 -855 -856 -857 -858 -859 -860 -861 -862 -863 -864 -865 -866 -867 -868 -869 -870 -871 -872 -873 -874 -875 -876 -877 -878 -879 -880 -881 -882 -883 -884 -885 -886 -887 -888 -889 -890 -891 -892 -893 -894 -895 -896 -897 -898 -899 -900 -901 -902 -903 -904 -905 -906 -907 -908 -909 -910 -911 -912 -913 -914 -915 -916 -917 -918 -919 -920 -921 -922 -923 -924 -925 -926 -927 -928 -929 -930 -931 -932 -933 -934 -935 -936 -937 -938 -939 -940 -941 -942 -943 -944 -945 -946 -947 -948 -949 -950 -951 -952 -953 -954 -955 -956 -957 -958 -959 -960 -961 -962 -963 -964  -1 -1 -1 -  -1 -6739 -  -  -1 -  -1 -  -  -  -3716 -3428 -  -288 -  -  -  -332 -  -332 -  -  -  -935 -  -935 -  -  -  -3199 -1085 -  -2114 -  -  -458 -  -  -  -  -  -147 -  -  -  -  -  -  -1555 -1555 -1555 -1555 -1555 -  -1555 -1555 -1555 -  -  -  -  -1555 -  -1555 -1555 -1555 -1555 -1555 -1555 -1555 -  -1555 -  -1555 -  -1555 -  -  -  -  -1555 -13864 -  -13864 -  -  -  -1555 -  -  -1555 -1 -  -  -1555 -1555 -936 -  -  -  -936 -936 -1154 -619 -  -  -  -936 -82 -  -936 -922 -  -936 -278 -  -936 -228 -  -  -936 -783 -783 -  -  -936 -  -619 -  -  -  -  -  -  -1555 -1555 -  -  -  -1555 -  -1555 -1555 -1023 -  -  -  -1555 -2891 -2889 -  -  -  -1555 -  -1555 -472 -  -  -  -1555 -  -1555 -184 -  -184 -  -1371 -  -  -  -1555 -  -  -  -  -1555 -4235 -4235 -1656 -796 -  -860 -  -  -2579 -292 -264 -264 -  -28 -  -292 -  -2579 -  -2579 -1140 -  -  -  -  -1555 -1143 -324 -  -  -412 -412 -269 -  -143 -  -  -  -1555 -1207 -  -  -1555 -  -  -  -  -  -  -  -  -  -  -  -  -32 -  -32 -32 -  -32 -32 -  -32 -  -  -  -  -  -  -  -  -  -313 -  -  -313 -313 -  -313 -  -313 -313 -  -313 -  -  -  -  -  -  -  -  -  -1409 -26 -  -  -1409 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -723 -723 -723 -723 -265 -  -  -  -  -  -  -  -  -  -  -828 -  -828 -  -  -  -  -  -  -  -  -  -  -2610 -  -  -  -  -  -  -  -  -  -1401 -  -  -  -  -  -  -  -  -  -  -  -1533 -  -  -1533 -  -  -332 -  -1201 -  -  -1533 -1345 -1345 -  -  -1345 -1095 -  -  -250 -  -  -  -  -  -  -  -  -  -  -  -  -  -68 -64 -  -4 -  -  -68 -68 -80 -80 -  -  -  -  -  -  -  -  -  -  -  -  -182 -  -182 -  -  -  -  -  -  -  -  -  -  -  -62 -62 -  -  -  -62 -58 -50 -  -8 -  -  -  -  -  -1626 -  -1626 -56 -  -1626 -30 -30 -  -  -  -52 -2 -  -52 -  -  -52 -52 -  -52 -4 -  -52 -10 -10 -  -  -52 -  -  -  -  -  -  -  -  -  -198 -  -  -  -  -  -  -  -  -  -10559 -10559 -  -  -  -  -  -  -  -  -  -  -  -78 -  -  -  -  -  -  -  -  -  -  -  -3352 -952 -  -2400 -  -  -  -  -  -  -  -  -  -  -  -  -  -244 -  -244 -244 -  -244 -244 -  -  -  -  -  -  -  -  -  -  -210 -210 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -877 -877 -877 -  -877 -  -877 -877 -  -877 -  -877 -  -  -  -  -  -  -  -  -  -  -  -  -  -86 -  -86 -82 -4 -2 -  -86 -26 -  -  -86 -  -  -  -  -  -  -  -  -  -88 -  -  -  -  -88 -6 -  -88 -18 -18 -  -  -88 -88 -18 -  -88 -18 -  -88 -6 -  -88 -  -  -  -54 -46 -8 -2 -  -6 -  -  -  -  -  -  -  -  -1555 -  -1555 -625 -625 -  -625 -  -625 -619 -619 -619 -619 -619 -619 -  -619 -  -6 -6 -  -  -  -  -625 -222 -222 -6 -  -  -  -  -  -952 -  -  -  -  -952 -  -952 -376 -  -  -952 -  -  -  -1503 -966 -966 -  -  -  -  -6739 -  -  -  -4407 -1383 -1383 -  -  -4407 -2852 -  -  -  -  -723 -  -723 -723 -723 -723 -  -  -  -1425 -  -  -  -  -  -  -1425 -1 -  -  -  -1425 -  -1425 -  -1269 -1269 -  -  -156 -156 -  -156 -156 -  -  -1425 -  -1425 -156 -  -1425 -156 -  -1425 -  -  -  -879 -879 -879 -  -  -879 -  -  -1759 -1759 -723 -723 -723 -723 -  -  -723 -  -  -  -  -  -13878 -  -  -  -10559 -  -  -10559 -5470 -  -5089 -  -723 -1 -  -723 -  -5089 -  -  -  -  -469 -  -  -469 -  -  -469 -  -  -  -  -3259 -54 -  -3205 -  -  -  -  -13802 -  -  -  -  -  -  -  -  -  -2459 -  -2459 -10401 -10397 -  -  -  -2459 -  -  -  -1331 -  -1331 -  -1331 -  -  -  -  -  -  -  -  -1676 -  -1676 -1676 -  -1676 -60 -  -1676 -40 -40 -  -  -1676 -1676 -  -  -  -1676 -890 -138 -  -  -890 -690 -  -  -890 -890 -  -  -  -  -1676 -1676 -486 -486 -  -486 -48 -  -486 -44 -44 -  -  -  -1676 -60 -  -1676 -40 -40 -  -  -1676 -1640 -  -  -1676 -  -  -  -  -  -1676 -  -1676 -626 -626 -626 -  -1050 -1050 -  -  -  -  -1 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1 -  -1 -58 -  -  -1 -3716 -  -  -1
"use strict";
-var COMPILER_REVISION = require("../base").COMPILER_REVISION;
-var REVISION_CHANGES = require("../base").REVISION_CHANGES;
-var Exception = require("../exception")["default"];
- 
-function Literal(value) {
-  this.value = value;
-}
- 
-function JavaScriptCompiler() {}
- 
-JavaScriptCompiler.prototype = {
-  // PUBLIC API: You can override these methods in a subclass to provide
-  // alternative compiled forms for name lookup and buffering semantics
-  nameLookup: function(parent, name /* , type*/) {
-    if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
-      return parent + "." + name;
-    } else {
-      return parent + "['" + name + "']";
-    }
-  },
-  depthedLookup: function(name) {
-    this.aliases.lookup = 'this.lookup';
- 
-    return 'lookup(depths, "' + name + '")';
-  },
- 
-  compilerInfo: function() {
-    var revision = COMPILER_REVISION,
-        versions = REVISION_CHANGES[revision];
-    return [revision, versions];
-  },
- 
-  appendToBuffer: function(string) {
-    if (this.environment.isSimple) {
-      return "return " + string + ";";
-    } else {
-      return {
-        appendToBuffer: true,
-        content: string,
-        toString: function() { return "buffer += " + string + ";"; }
-      };
-    }
-  },
- 
-  initializeBuffer: function() {
-    return this.quotedString("");
-  },
- 
-  namespace: "Handlebars",
-  // END PUBLIC API
- 
-  compile: function(environment, options, context, asObject) {
-    this.environment = environment;
-    this.options = options;
-    this.stringParams = this.options.stringParams;
-    this.trackIds = this.options.trackIds;
-    this.precompile = !asObject;
- 
-    this.name = this.environment.name;
-    this.isChild = !!context;
-    this.context = context || {
-      programs: [],
-      environments: []
-    };
- 
-    this.preamble();
- 
-    this.stackSlot = 0;
-    this.stackVars = [];
-    this.aliases = {};
-    this.registers = { list: [] };
-    this.hashes = [];
-    this.compileStack = [];
-    this.inlineStack = [];
- 
-    this.compileChildren(environment, options);
- 
-    this.useDepths = this.useDepths || environment.depths.list.length || this.options.compat;
- 
-    var opcodes = environment.opcodes,
-        opcode,
-        i,
-        l;
- 
-    for (i = 0, l = opcodes.length; i < l; i++) {
-      opcode = opcodes[i];
- 
-      this[opcode.opcode].apply(this, opcode.args);
-    }
- 
-    // Flush any trailing content that might be pending.
-    this.pushSource('');
- 
-    /* istanbul ignore next */
-    Iif (this.stackSlot || this.inlineStack.length || this.compileStack.length) {
-      throw new Exception('Compile completed with content left on stack');
-    }
- 
-    var fn = this.createFunctionContext(asObject);
-    if (!this.isChild) {
-      var ret = {
-        compiler: this.compilerInfo(),
-        main: fn
-      };
-      var programs = this.context.programs;
-      for (i = 0, l = programs.length; i < l; i++) {
-        if (programs[i]) {
-          ret[i] = programs[i];
-        }
-      }
- 
-      if (this.environment.usePartial) {
-        ret.usePartial = true;
-      }
-      if (this.options.data) {
-        ret.useData = true;
-      }
-      if (this.useDepths) {
-        ret.useDepths = true;
-      }
-      if (this.options.compat) {
-        ret.compat = true;
-      }
- 
-      if (!asObject) {
-        ret.compiler = JSON.stringify(ret.compiler);
-        ret = this.objectLiteral(ret);
-      }
- 
-      return ret;
-    } else {
-      return fn;
-    }
-  },
- 
-  preamble: function() {
-    // track the last context pushed into place to allow skipping the
-    // getContext opcode when it would be a noop
-    this.lastContext = 0;
-    this.source = [];
-  },
- 
-  createFunctionContext: function(asObject) {
-    var varDeclarations = '';
- 
-    var locals = this.stackVars.concat(this.registers.list);
-    if(locals.length > 0) {
-      varDeclarations += ", " + locals.join(", ");
-    }
- 
-    // Generate minimizer alias mappings
-    for (var alias in this.aliases) {
-      if (this.aliases.hasOwnProperty(alias)) {
-        varDeclarations += ', ' + alias + '=' + this.aliases[alias];
-      }
-    }
- 
-    var params = ["depth0", "helpers", "partials", "data"];
- 
-    if (this.useDepths) {
-      params.push('depths');
-    }
- 
-    // Perform a second pass over the output to merge content when possible
-    var source = this.mergeSource(varDeclarations);
- 
-    if (asObject) {
-      params.push(source);
- 
-      return Function.apply(this, params);
-    } else {
-      return 'function(' + params.join(',') + ') {\n  ' + source + '}';
-    }
-  },
-  mergeSource: function(varDeclarations) {
-    var source = '',
-        buffer,
-        appendOnly = !this.forceBuffer,
-        appendFirst;
- 
-    for (var i = 0, len = this.source.length; i < len; i++) {
-      var line = this.source[i];
-      if (line.appendToBuffer) {
-        if (buffer) {
-          buffer = buffer + '\n    + ' + line.content;
-        } else {
-          buffer = line.content;
-        }
-      } else {
-        if (buffer) {
-          if (!source) {
-            appendFirst = true;
-            source = buffer + ';\n  ';
-          } else {
-            source += 'buffer += ' + buffer + ';\n  ';
-          }
-          buffer = undefined;
-        }
-        source += line + '\n  ';
- 
-        if (!this.environment.isSimple) {
-          appendOnly = false;
-        }
-      }
-    }
- 
-    if (appendOnly) {
-      if (buffer || !source) {
-        source += 'return ' + (buffer || '""') + ';\n';
-      }
-    } else {
-      varDeclarations += ", buffer = " + (appendFirst ? '' : this.initializeBuffer());
-      if (buffer) {
-        source += 'return buffer + ' + buffer + ';\n';
-      } else {
-        source += 'return buffer;\n';
-      }
-    }
- 
-    if (varDeclarations) {
-      source = 'var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n  ') + source;
-    }
- 
-    return source;
-  },
- 
-  // [blockValue]
-  //
-  // On stack, before: hash, inverse, program, value
-  // On stack, after: return value of blockHelperMissing
-  //
-  // The purpose of this opcode is to take a block of the form
-  // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and
-  // replace it on the stack with the result of properly
-  // invoking blockHelperMissing.
-  blockValue: function(name) {
-    this.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
- 
-    var params = [this.contextName(0)];
-    this.setupParams(name, 0, params);
- 
-    var blockName = this.popStack();
-    params.splice(1, 0, blockName);
- 
-    this.push('blockHelperMissing.call(' + params.join(', ') + ')');
-  },
- 
-  // [ambiguousBlockValue]
-  //
-  // On stack, before: hash, inverse, program, value
-  // Compiler value, before: lastHelper=value of last found helper, if any
-  // On stack, after, if no lastHelper: same as [blockValue]
-  // On stack, after, if lastHelper: value
-  ambiguousBlockValue: function() {
-    this.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
- 
-    // We're being a bit cheeky and reusing the options value from the prior exec
-    var params = [this.contextName(0)];
-    this.setupParams('', 0, params, true);
- 
-    this.flushInline();
- 
-    var current = this.topStack();
-    params.splice(1, 0, current);
- 
-    this.pushSource("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }");
-  },
- 
-  // [appendContent]
-  //
-  // On stack, before: ...
-  // On stack, after: ...
-  //
-  // Appends the string value of `content` to the current buffer
-  appendContent: function(content) {
-    if (this.pendingContent) {
-      content = this.pendingContent + content;
-    }
- 
-    this.pendingContent = content;
-  },
- 
-  // [append]
-  //
-  // On stack, before: value, ...
-  // On stack, after: ...
-  //
-  // Coerces `value` to a String and appends it to the current buffer.
-  //
-  // If `value` is truthy, or 0, it is coerced into a string and appended
-  // Otherwise, the empty string is appended
-  append: function() {
-    // Force anything that is inlined onto the stack so we don't have duplication
-    // when we examine local
-    this.flushInline();
-    var local = this.popStack();
-    this.pushSource('if (' + local + ' != null) { ' + this.appendToBuffer(local) + ' }');
-    if (this.environment.isSimple) {
-      this.pushSource("else { " + this.appendToBuffer("''") + " }");
-    }
-  },
- 
-  // [appendEscaped]
-  //
-  // On stack, before: value, ...
-  // On stack, after: ...
-  //
-  // Escape `value` and append it to the buffer
-  appendEscaped: function() {
-    this.aliases.escapeExpression = 'this.escapeExpression';
- 
-    this.pushSource(this.appendToBuffer("escapeExpression(" + this.popStack() + ")"));
-  },
- 
-  // [getContext]
-  //
-  // On stack, before: ...
-  // On stack, after: ...
-  // Compiler value, after: lastContext=depth
-  //
-  // Set the value of the `lastContext` compiler value to the depth
-  getContext: function(depth) {
-    this.lastContext = depth;
-  },
- 
-  // [pushContext]
-  //
-  // On stack, before: ...
-  // On stack, after: currentContext, ...
-  //
-  // Pushes the value of the current context onto the stack.
-  pushContext: function() {
-    this.pushStackLiteral(this.contextName(this.lastContext));
-  },
- 
-  // [lookupOnContext]
-  //
-  // On stack, before: ...
-  // On stack, after: currentContext[name], ...
-  //
-  // Looks up the value of `name` on the current context and pushes
-  // it onto the stack.
-  lookupOnContext: function(parts, falsy, scoped) {
-    /*jshint -W083 */
-    var i = 0,
-        len = parts.length;
- 
-    if (!scoped && this.options.compat && !this.lastContext) {
-      // The depthed query is expected to handle the undefined logic for the root level that
-      // is implemented below, so we evaluate that directly in compat mode
-      this.push(this.depthedLookup(parts[i++]));
-    } else {
-      this.pushContext();
-    }
- 
-    for (; i < len; i++) {
-      this.replaceStack(function(current) {
-        var lookup = this.nameLookup(current, parts[i], 'context');
-        // We want to ensure that zero and false are handled properly if the context (falsy flag)
-        // needs to have the special handling for these values.
-        if (!falsy) {
-          return ' != null ? ' + lookup + ' : ' + current;
-        } else {
-          // Otherwise we can use generic falsy handling
-          return ' && ' + lookup;
-        }
-      });
-    }
-  },
- 
-  // [lookupData]
-  //
-  // On stack, before: ...
-  // On stack, after: data, ...
-  //
-  // Push the data lookup operator
-  lookupData: function(depth, parts) {
-    /*jshint -W083 */
-    if (!depth) {
-      this.pushStackLiteral('data');
-    } else {
-      this.pushStackLiteral('this.data(data, ' + depth + ')');
-    }
- 
-    var len = parts.length;
-    for (var i = 0; i < len; i++) {
-      this.replaceStack(function(current) {
-        return ' && ' + this.nameLookup(current, parts[i], 'data');
-      });
-    }
-  },
- 
-  // [resolvePossibleLambda]
-  //
-  // On stack, before: value, ...
-  // On stack, after: resolved value, ...
-  //
-  // If the `value` is a lambda, replace it on the stack by
-  // the return value of the lambda
-  resolvePossibleLambda: function() {
-    this.aliases.lambda = 'this.lambda';
- 
-    this.push('lambda(' + this.popStack() + ', ' + this.contextName(0) + ')');
-  },
- 
-  // [pushStringParam]
-  //
-  // On stack, before: ...
-  // On stack, after: string, currentContext, ...
-  //
-  // This opcode is designed for use in string mode, which
-  // provides the string value of a parameter along with its
-  // depth rather than resolving it immediately.
-  pushStringParam: function(string, type) {
-    this.pushContext();
-    this.pushString(type);
- 
-    // If it's a subexpression, the string result
-    // will be pushed after this opcode.
-    if (type !== 'sexpr') {
-      if (typeof string === 'string') {
-        this.pushString(string);
-      } else {
-        this.pushStackLiteral(string);
-      }
-    }
-  },
- 
-  emptyHash: function() {
-    this.pushStackLiteral('{}');
- 
-    if (this.trackIds) {
-      this.push('{}'); // hashIds
-    }
-    if (this.stringParams) {
-      this.push('{}'); // hashContexts
-      this.push('{}'); // hashTypes
-    }
-  },
-  pushHash: function() {
-    if (this.hash) {
-      this.hashes.push(this.hash);
-    }
-    this.hash = {values: [], types: [], contexts: [], ids: []};
-  },
-  popHash: function() {
-    var hash = this.hash;
-    this.hash = this.hashes.pop();
- 
-    if (this.trackIds) {
-      this.push('{' + hash.ids.join(',') + '}');
-    }
-    if (this.stringParams) {
-      this.push('{' + hash.contexts.join(',') + '}');
-      this.push('{' + hash.types.join(',') + '}');
-    }
- 
-    this.push('{\n    ' + hash.values.join(',\n    ') + '\n  }');
-  },
- 
-  // [pushString]
-  //
-  // On stack, before: ...
-  // On stack, after: quotedString(string), ...
-  //
-  // Push a quoted version of `string` onto the stack
-  pushString: function(string) {
-    this.pushStackLiteral(this.quotedString(string));
-  },
- 
-  // [push]
-  //
-  // On stack, before: ...
-  // On stack, after: expr, ...
-  //
-  // Push an expression onto the stack
-  push: function(expr) {
-    this.inlineStack.push(expr);
-    return expr;
-  },
- 
-  // [pushLiteral]
-  //
-  // On stack, before: ...
-  // On stack, after: value, ...
-  //
-  // Pushes a value onto the stack. This operation prevents
-  // the compiler from creating a temporary variable to hold
-  // it.
-  pushLiteral: function(value) {
-    this.pushStackLiteral(value);
-  },
- 
-  // [pushProgram]
-  //
-  // On stack, before: ...
-  // On stack, after: program(guid), ...
-  //
-  // Push a program expression onto the stack. This takes
-  // a compile-time guid and converts it into a runtime-accessible
-  // expression.
-  pushProgram: function(guid) {
-    if (guid != null) {
-      this.pushStackLiteral(this.programExpression(guid));
-    } else {
-      this.pushStackLiteral(null);
-    }
-  },
- 
-  // [invokeHelper]
-  //
-  // On stack, before: hash, inverse, program, params..., ...
-  // On stack, after: result of helper invocation
-  //
-  // Pops off the helper's parameters, invokes the helper,
-  // and pushes the helper's return value onto the stack.
-  //
-  // If the helper is not found, `helperMissing` is called.
-  invokeHelper: function(paramSize, name, isSimple) {
-    this.aliases.helperMissing = 'helpers.helperMissing';
- 
-    var nonHelper = this.popStack();
-    var helper = this.setupHelper(paramSize, name);
- 
-    var lookup = (isSimple ? helper.name + ' || ' : '') + nonHelper + ' || helperMissing';
-    this.push('((' + lookup + ').call(' + helper.callParams + '))');
-  },
- 
-  // [invokeKnownHelper]
-  //
-  // On stack, before: hash, inverse, program, params..., ...
-  // On stack, after: result of helper invocation
-  //
-  // This operation is used when the helper is known to exist,
-  // so a `helperMissing` fallback is not required.
-  invokeKnownHelper: function(paramSize, name) {
-    var helper = this.setupHelper(paramSize, name);
-    this.push(helper.name + ".call(" + helper.callParams + ")");
-  },
- 
-  // [invokeAmbiguous]
-  //
-  // On stack, before: hash, inverse, program, params..., ...
-  // On stack, after: result of disambiguation
-  //
-  // This operation is used when an expression like `{{foo}}`
-  // is provided, but we don't know at compile-time whether it
-  // is a helper or a path.
-  //
-  // This operation emits more code than the other options,
-  // and can be avoided by passing the `knownHelpers` and
-  // `knownHelpersOnly` flags at compile-time.
-  invokeAmbiguous: function(name, helperCall) {
-    this.aliases.functionType = '"function"';
-    this.aliases.helperMissing = 'helpers.helperMissing';
-    this.useRegister('helper');
- 
-    var nonHelper = this.popStack();
- 
-    this.emptyHash();
-    var helper = this.setupHelper(0, name, helperCall);
- 
-    var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
- 
-    this.push(
-      '((helper = (helper = ' + helperName + ' || ' + nonHelper + ') != null ? helper : helperMissing'
-        + (helper.paramsInit ? '),(' + helper.paramsInit : '') + '),'
-      + '(typeof helper === functionType ? helper.call(' + helper.callParams + ') : helper))');
-  },
- 
-  // [invokePartial]
-  //
-  // On stack, before: context, ...
-  // On stack after: result of partial invocation
-  //
-  // This operation pops off a context, invokes a partial with that context,
-  // and pushes the result of the invocation back.
-  invokePartial: function(name, indent) {
-    var params = [this.nameLookup('partials', name, 'partial'), "'" + indent + "'", "'" + name + "'", this.popStack(), this.popStack(), "helpers", "partials"];
- 
-    if (this.options.data) {
-      params.push("data");
-    } else if (this.options.compat) {
-      params.push('undefined');
-    }
-    if (this.options.compat) {
-      params.push('depths');
-    }
- 
-    this.push("this.invokePartial(" + params.join(", ") + ")");
-  },
- 
-  // [assignToHash]
-  //
-  // On stack, before: value, ..., hash, ...
-  // On stack, after: ..., hash, ...
-  //
-  // Pops a value off the stack and assigns it to the current hash
-  assignToHash: function(key) {
-    var value = this.popStack(),
-        context,
-        type,
-        id;
- 
-    if (this.trackIds) {
-      id = this.popStack();
-    }
-    if (this.stringParams) {
-      type = this.popStack();
-      context = this.popStack();
-    }
- 
-    var hash = this.hash;
-    if (context) {
-      hash.contexts.push("'" + key + "': " + context);
-    }
-    if (type) {
-      hash.types.push("'" + key + "': " + type);
-    }
-    if (id) {
-      hash.ids.push("'" + key + "': " + id);
-    }
-    hash.values.push("'" + key + "': (" + value + ")");
-  },
- 
-  pushId: function(type, name) {
-    if (type === 'ID' || type === 'DATA') {
-      this.pushString(name);
-    } else if (type === 'sexpr') {
-      this.pushStackLiteral('true');
-    } else {
-      this.pushStackLiteral('null');
-    }
-  },
- 
-  // HELPERS
- 
-  compiler: JavaScriptCompiler,
- 
-  compileChildren: function(environment, options) {
-    var children = environment.children, child, compiler;
- 
-    for(var i=0, l=children.length; i<l; i++) {
-      child = children[i];
-      compiler = new this.compiler();
- 
-      var index = this.matchExistingProgram(child);
- 
-      if (index == null) {
-        this.context.programs.push('');     // Placeholder to prevent name conflicts for nested children
-        index = this.context.programs.length;
-        child.index = index;
-        child.name = 'program' + index;
-        this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);
-        this.context.environments[index] = child;
- 
-        this.useDepths = this.useDepths || compiler.useDepths;
-      } else {
-        child.index = index;
-        child.name = 'program' + index;
-      }
-    }
-  },
-  matchExistingProgram: function(child) {
-    for (var i = 0, len = this.context.environments.length; i < len; i++) {
-      var environment = this.context.environments[i];
-      if (environment && environment.equals(child)) {
-        return i;
-      }
-    }
-  },
- 
-  programExpression: function(guid) {
-    var child = this.environment.children[guid],
-        depths = child.depths.list,
-        useDepths = this.useDepths,
-        depth;
- 
-    var programParams = [child.index, 'data'];
- 
-    if (useDepths) {
-      programParams.push('depths');
-    }
- 
-    return 'this.program(' + programParams.join(', ') + ')';
-  },
- 
-  useRegister: function(name) {
-    if(!this.registers[name]) {
-      this.registers[name] = true;
-      this.registers.list.push(name);
-    }
-  },
- 
-  pushStackLiteral: function(item) {
-    return this.push(new Literal(item));
-  },
- 
-  pushSource: function(source) {
-    if (this.pendingContent) {
-      this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent)));
-      this.pendingContent = undefined;
-    }
- 
-    if (source) {
-      this.source.push(source);
-    }
-  },
- 
-  pushStack: function(item) {
-    this.flushInline();
- 
-    var stack = this.incrStack();
-    this.pushSource(stack + " = " + item + ";");
-    this.compileStack.push(stack);
-    return stack;
-  },
- 
-  replaceStack: function(callback) {
-    var prefix = '',
-        inline = this.isInline(),
-        stack,
-        createdStack,
-        usedLiteral;
- 
-    /* istanbul ignore next */
-    Iif (!this.isInline()) {
-      throw new Exception('replaceStack on non-inline');
-    }
- 
-    // We want to merge the inline statement into the replacement statement via ','
-    var top = this.popStack(true);
- 
-    if (top instanceof Literal) {
-      // Literals do not need to be inlined
-      prefix = stack = top.value;
-      usedLiteral = true;
-    } else {
-      // Get or create the current stack name for use by the inline
-      createdStack = !this.stackSlot;
-      var name = !createdStack ? this.topStackName() : this.incrStack();
- 
-      prefix = '(' + this.push(name) + ' = ' + top + ')';
-      stack = this.topStack();
-    }
- 
-    var item = callback.call(this, stack);
- 
-    if (!usedLiteral) {
-      this.popStack();
-    }
-    if (createdStack) {
-      this.stackSlot--;
-    }
-    this.push('(' + prefix + item + ')');
-  },
- 
-  incrStack: function() {
-    this.stackSlot++;
-    if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); }
-    return this.topStackName();
-  },
-  topStackName: function() {
-    return "stack" + this.stackSlot;
-  },
-  flushInline: function() {
-    var inlineStack = this.inlineStack;
-    if (inlineStack.length) {
-      this.inlineStack = [];
-      for (var i = 0, len = inlineStack.length; i < len; i++) {
-        var entry = inlineStack[i];
-        Iif (entry instanceof Literal) {
-          this.compileStack.push(entry);
-        } else {
-          this.pushStack(entry);
-        }
-      }
-    }
-  },
-  isInline: function() {
-    return this.inlineStack.length;
-  },
- 
-  popStack: function(wrapped) {
-    var inline = this.isInline(),
-        item = (inline ? this.inlineStack : this.compileStack).pop();
- 
-    if (!wrapped && (item instanceof Literal)) {
-      return item.value;
-    } else {
-      if (!inline) {
-        /* istanbul ignore next */
-        Iif (!this.stackSlot) {
-          throw new Exception('Invalid stack pop');
-        }
-        this.stackSlot--;
-      }
-      return item;
-    }
-  },
- 
-  topStack: function() {
-    var stack = (this.isInline() ? this.inlineStack : this.compileStack),
-        item = stack[stack.length - 1];
- 
-    Iif (item instanceof Literal) {
-      return item.value;
-    } else {
-      return item;
-    }
-  },
- 
-  contextName: function(context) {
-    if (this.useDepths && context) {
-      return 'depths[' + context + ']';
-    } else {
-      return 'depth' + context;
-    }
-  },
- 
-  quotedString: function(str) {
-    return '"' + str
-      .replace(/\\/g, '\\\\')
-      .replace(/"/g, '\\"')
-      .replace(/\n/g, '\\n')
-      .replace(/\r/g, '\\r')
-      .replace(/\u2028/g, '\\u2028')   // Per Ecma-262 7.3 + 7.8.4
-      .replace(/\u2029/g, '\\u2029') + '"';
-  },
- 
-  objectLiteral: function(obj) {
-    var pairs = [];
- 
-    for (var key in obj) {
-      if (obj.hasOwnProperty(key)) {
-        pairs.push(this.quotedString(key) + ':' + obj[key]);
-      }
-    }
- 
-    return '{' + pairs.join(',') + '}';
-  },
- 
-  setupHelper: function(paramSize, name, blockHelper) {
-    var params = [],
-        paramsInit = this.setupParams(name, paramSize, params, blockHelper);
-    var foundHelper = this.nameLookup('helpers', name, 'helper');
- 
-    return {
-      params: params,
-      paramsInit: paramsInit,
-      name: foundHelper,
-      callParams: [this.contextName(0)].concat(params).join(", ")
-    };
-  },
- 
-  setupOptions: function(helper, paramSize, params) {
-    var options = {}, contexts = [], types = [], ids = [], param, inverse, program;
- 
-    options.name = this.quotedString(helper);
-    options.hash = this.popStack();
- 
-    if (this.trackIds) {
-      options.hashIds = this.popStack();
-    }
-    if (this.stringParams) {
-      options.hashTypes = this.popStack();
-      options.hashContexts = this.popStack();
-    }
- 
-    inverse = this.popStack();
-    program = this.popStack();
- 
-    // Avoid setting fn and inverse if neither are set. This allows
-    // helpers to do a check for `if (options.fn)`
-    if (program || inverse) {
-      if (!program) {
-        program = 'this.noop';
-      }
- 
-      if (!inverse) {
-        inverse = 'this.noop';
-      }
- 
-      options.fn = program;
-      options.inverse = inverse;
-    }
- 
-    // The parameters go on to the stack in order (making sure that they are evaluated in order)
-    // so we need to pop them off the stack in reverse order
-    var i = paramSize;
-    while (i--) {
-      param = this.popStack();
-      params[i] = param;
- 
-      if (this.trackIds) {
-        ids[i] = this.popStack();
-      }
-      if (this.stringParams) {
-        types[i] = this.popStack();
-        contexts[i] = this.popStack();
-      }
-    }
- 
-    if (this.trackIds) {
-      options.ids = "[" + ids.join(",") + "]";
-    }
-    if (this.stringParams) {
-      options.types = "[" + types.join(",") + "]";
-      options.contexts = "[" + contexts.join(",") + "]";
-    }
- 
-    if (this.options.data) {
-      options.data = "data";
-    }
- 
-    return options;
-  },
- 
-  // the params and contexts arguments are passed in arrays
-  // to fill in
-  setupParams: function(helperName, paramSize, params, useRegister) {
-    var options = this.objectLiteral(this.setupOptions(helperName, paramSize, params));
- 
-    if (useRegister) {
-      this.useRegister('options');
-      params.push('options');
-      return 'options=' + options;
-    } else {
-      params.push(options);
-      return '';
-    }
-  }
-};
- 
-var reservedWords = (
-  "break else new var" +
-  " case finally return void" +
-  " catch for switch while" +
-  " continue function this with" +
-  " default if throw" +
-  " delete in try" +
-  " do instanceof typeof" +
-  " abstract enum int short" +
-  " boolean export interface static" +
-  " byte extends long super" +
-  " char final native synchronized" +
-  " class float package throws" +
-  " const goto private transient" +
-  " debugger implements protected volatile" +
-  " double import public let yield"
-).split(" ");
- 
-var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
- 
-for(var i=0, l=reservedWords.length; i<l; i++) {
-  compilerWords[reservedWords[i]] = true;
-}
- 
-JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {
-  return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);
-};
- 
-exports["default"] = JavaScriptCompiler;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/parser.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/parser.js.html deleted file mode 100644 index a1471b9..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/parser.js.html +++ /dev/null @@ -1,1819 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/compiler/parser.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/compiler/parser.js

-

- - Statements: 100% (396 / 396)      - - - Branches: 100% (205 / 205)      - - - Functions: 100% (27 / 27)      - - - Lines: 100% (369 / 369)      - - Ignored: 95 statements, 9 functions, 45 branches      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500  -  -  -  -1 -1 -  -  -  -  -  -  -26939 -26939 -1026 -1 -1692 -1692 -952 -952 -601 -601 -4 -4 -95 -95 -1609 -1609 -36 -36 -5 -4 -5 -5 -523 -521 -80 -80 -531 -531 -80 -80 -62 -62 -603 -603 -914 -914 -38 -38 -6 -6 -89 -89 -1584 -1584 -40 -40 -390 -390 -55 -55 -53 -53 -54 -54 -34 -34 -52 -52 -74 -74 -119 -119 -91 -91 -2 -2 -2 -2 -74 -74 -2752 -2744 -341 -341 -2752 -2752 -1722 -1722 -3297 -3297 -1586 -1586 -513 -513 -74 -74 -45 -45 -  -  -  -  -  -12 -  -  -1049 -1049 -1049 -1049 -1049 -1049 -1 -1049 -1049 -1049 -1049 -1 -1 -1 -1 -1 -  -1 -11342 -11342 -11342 -7 -  -11342 -  -1049 -1049 -38270 -38270 -1159 -  -37111 -11342 -  -37111 -  -38270 -12 -12 -12 -12 -82 -82 -  -12 -12 -  -1 -  -12 -  -  -38258 -1 -  -38258 -  -11319 -11319 -11319 -11319 -11319 -11319 -11319 -11319 -11319 -11319 -11319 -1 -  -1 -1 -  -11319 -  -26939 -26939 -26939 -26939 -1 -  -26939 -26928 -1026 -  -25902 -20448 -20448 -20448 -  -25902 -25902 -25902 -25902 -25902 -25902 -  -1 -  -  -1 -  -  -  -1 -1 -  -1 -1 -  -1 -  -  -  -1116 -1116 -1116 -1116 -1116 -1116 -1116 -1116 -1116 -  -  -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -  -1 -  -1 -  -1 -1 -  -  -1 -1 -  -1 -1 -  -1 -1 -1 -1 -  -1 -1 -  -1 -  -  -  -  -  -  -  -1 -1 -  -1 -  -  -1 -1 -  -  -1 -  -  -12 -12 -  -  -12 -12 -12 -  -12 -  -  -12 -12 -12 -  -  -13951 -1 -  -13951 -  -13951 -  -  -  -  -  -13951 -13951 -13951 -  -13951 -13951 -221226 -221226 -13951 -13951 -13951 -  -  -13951 -13951 -13951 -13951 -  -  -  -13951 -13951 -13951 -13951 -13951 -1 -  -13951 -13951 -13951 -13951 -13951 -13951 -2151 -  -1 -1 -  -1 -  -  -  -  -13951 -13951 -11800 -  -2151 -  -  -  -2483 -  -  -2474 -  -  -13951 -  -  -1 -  -  -1 -  -1 -1 -  -  -1 -141 -  -  -  -13951 -13951 -  -2476 -10 -10 -2466 -10 -10 -  -2456 -  -2476 -  -1275 -426 -1 -  -10 -10 -  -1 -  -5 -5 -5 -  -1 -5 -1 -2 -1 -62 -1 -62 -1 -5 -1 -  -5 -5 -5 -  -1 -100 -1 -532 -1 -604 -1 -44 -1 -22 -1 -81 -1 -1 -1 -42 -1 -23 -1 -2 -2 -37 -1 -973 -1 -131 -1 -73 -1 -59 -1 -355 -1 -  -874 -42 -1 -2305 -1 -61 -1 -6 -1 -79 -1 -42 -1 -18 -1 -61 -1 -3208 -1 -15 -1 -9 -1 -1094 -1 -  -  -1 -1 -1 -1 -1 -1 -1 - 
"use strict";
-/* jshint ignore:start */
-/* istanbul ignore next */
-/* Jison generated parser */
-var handlebars = (function(){
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"root":3,"program":4,"EOF":5,"program_repetition0":6,"statement":7,"mustache":8,"block":9,"rawBlock":10,"partial":11,"CONTENT":12,"COMMENT":13,"openRawBlock":14,"END_RAW_BLOCK":15,"OPEN_RAW_BLOCK":16,"sexpr":17,"CLOSE_RAW_BLOCK":18,"openBlock":19,"block_option0":20,"closeBlock":21,"openInverse":22,"block_option1":23,"OPEN_BLOCK":24,"CLOSE":25,"OPEN_INVERSE":26,"inverseAndProgram":27,"INVERSE":28,"OPEN_ENDBLOCK":29,"path":30,"OPEN":31,"OPEN_UNESCAPED":32,"CLOSE_UNESCAPED":33,"OPEN_PARTIAL":34,"partialName":35,"param":36,"partial_option0":37,"partial_option1":38,"sexpr_repetition0":39,"sexpr_option0":40,"dataName":41,"STRING":42,"NUMBER":43,"BOOLEAN":44,"OPEN_SEXPR":45,"CLOSE_SEXPR":46,"hash":47,"hash_repetition_plus0":48,"hashSegment":49,"ID":50,"EQUALS":51,"DATA":52,"pathSegments":53,"SEP":54,"$accept":0,"$end":1},
-terminals_: {2:"error",5:"EOF",12:"CONTENT",13:"COMMENT",15:"END_RAW_BLOCK",16:"OPEN_RAW_BLOCK",18:"CLOSE_RAW_BLOCK",24:"OPEN_BLOCK",25:"CLOSE",26:"OPEN_INVERSE",28:"INVERSE",29:"OPEN_ENDBLOCK",31:"OPEN",32:"OPEN_UNESCAPED",33:"CLOSE_UNESCAPED",34:"OPEN_PARTIAL",42:"STRING",43:"NUMBER",44:"BOOLEAN",45:"OPEN_SEXPR",46:"CLOSE_SEXPR",50:"ID",51:"EQUALS",52:"DATA",54:"SEP"},
-productions_: [0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[10,3],[14,3],[9,4],[9,4],[19,3],[22,3],[27,2],[21,3],[8,3],[8,3],[11,5],[11,4],[17,3],[17,1],[36,1],[36,1],[36,1],[36,1],[36,1],[36,3],[47,1],[49,3],[35,1],[35,1],[35,1],[41,2],[30,1],[53,3],[53,1],[6,0],[6,2],[20,0],[20,1],[23,0],[23,1],[37,0],[37,1],[38,0],[38,1],[39,0],[39,2],[40,0],[40,1],[48,1],[48,2]],
-performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
- 
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1: yy.prepareProgram($$[$0-1].statements, true); return $$[$0-1]; 
-break;
-case 2:this.$ = new yy.ProgramNode(yy.prepareProgram($$[$0]), {}, this._$);
-break;
-case 3:this.$ = $$[$0];
-break;
-case 4:this.$ = $$[$0];
-break;
-case 5:this.$ = $$[$0];
-break;
-case 6:this.$ = $$[$0];
-break;
-case 7:this.$ = new yy.ContentNode($$[$0], this._$);
-break;
-case 8:this.$ = new yy.CommentNode($$[$0], this._$);
-break;
-case 9:this.$ = new yy.RawBlockNode($$[$0-2], $$[$0-1], $$[$0], this._$);
-break;
-case 10:this.$ = new yy.MustacheNode($$[$0-1], null, '', '', this._$);
-break;
-case 11:this.$ = yy.prepareBlock($$[$0-3], $$[$0-2], $$[$0-1], $$[$0], false, this._$);
-break;
-case 12:this.$ = yy.prepareBlock($$[$0-3], $$[$0-2], $$[$0-1], $$[$0], true, this._$);
-break;
-case 13:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$);
-break;
-case 14:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$);
-break;
-case 15:this.$ = { strip: yy.stripFlags($$[$0-1], $$[$0-1]), program: $$[$0] };
-break;
-case 16:this.$ = {path: $$[$0-1], strip: yy.stripFlags($$[$0-2], $$[$0])};
-break;
-case 17:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$);
-break;
-case 18:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$);
-break;
-case 19:this.$ = new yy.PartialNode($$[$0-3], $$[$0-2], $$[$0-1], yy.stripFlags($$[$0-4], $$[$0]), this._$);
-break;
-case 20:this.$ = new yy.PartialNode($$[$0-2], undefined, $$[$0-1], yy.stripFlags($$[$0-3], $$[$0]), this._$);
-break;
-case 21:this.$ = new yy.SexprNode([$$[$0-2]].concat($$[$0-1]), $$[$0], this._$);
-break;
-case 22:this.$ = new yy.SexprNode([$$[$0]], null, this._$);
-break;
-case 23:this.$ = $$[$0];
-break;
-case 24:this.$ = new yy.StringNode($$[$0], this._$);
-break;
-case 25:this.$ = new yy.NumberNode($$[$0], this._$);
-break;
-case 26:this.$ = new yy.BooleanNode($$[$0], this._$);
-break;
-case 27:this.$ = $$[$0];
-break;
-case 28:$$[$0-1].isHelper = true; this.$ = $$[$0-1];
-break;
-case 29:this.$ = new yy.HashNode($$[$0], this._$);
-break;
-case 30:this.$ = [$$[$0-2], $$[$0]];
-break;
-case 31:this.$ = new yy.PartialNameNode($$[$0], this._$);
-break;
-case 32:this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0], this._$), this._$);
-break;
-case 33:this.$ = new yy.PartialNameNode(new yy.NumberNode($$[$0], this._$));
-break;
-case 34:this.$ = new yy.DataNode($$[$0], this._$);
-break;
-case 35:this.$ = new yy.IdNode($$[$0], this._$);
-break;
-case 36: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2]; 
-break;
-case 37:this.$ = [{part: $$[$0]}];
-break;
-case 38:this.$ = [];
-break;
-case 39:$$[$0-1].push($$[$0]);
-break;
-case 48:this.$ = [];
-break;
-case 49:$$[$0-1].push($$[$0]);
-break;
-case 52:this.$ = [$$[$0]];
-break;
-case 53:$$[$0-1].push($$[$0]);
-break;
-}
-},
-table: [{3:1,4:2,5:[2,38],6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],31:[2,38],32:[2,38],34:[2,38]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:[1,10],13:[1,11],14:16,16:[1,20],19:14,22:15,24:[1,18],26:[1,19],28:[2,2],29:[2,2],31:[1,12],32:[1,13],34:[1,17]},{1:[2,1]},{5:[2,39],12:[2,39],13:[2,39],16:[2,39],24:[2,39],26:[2,39],28:[2,39],29:[2,39],31:[2,39],32:[2,39],34:[2,39]},{5:[2,3],12:[2,3],13:[2,3],16:[2,3],24:[2,3],26:[2,3],28:[2,3],29:[2,3],31:[2,3],32:[2,3],34:[2,3]},{5:[2,4],12:[2,4],13:[2,4],16:[2,4],24:[2,4],26:[2,4],28:[2,4],29:[2,4],31:[2,4],32:[2,4],34:[2,4]},{5:[2,5],12:[2,5],13:[2,5],16:[2,5],24:[2,5],26:[2,5],28:[2,5],29:[2,5],31:[2,5],32:[2,5],34:[2,5]},{5:[2,6],12:[2,6],13:[2,6],16:[2,6],24:[2,6],26:[2,6],28:[2,6],29:[2,6],31:[2,6],32:[2,6],34:[2,6]},{5:[2,7],12:[2,7],13:[2,7],16:[2,7],24:[2,7],26:[2,7],28:[2,7],29:[2,7],31:[2,7],32:[2,7],34:[2,7]},{5:[2,8],12:[2,8],13:[2,8],16:[2,8],24:[2,8],26:[2,8],28:[2,8],29:[2,8],31:[2,8],32:[2,8],34:[2,8]},{17:21,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:27,30:22,41:23,50:[1,26],52:[1,25],53:24},{4:28,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{4:29,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{12:[1,30]},{30:32,35:31,42:[1,33],43:[1,34],50:[1,26],53:24},{17:35,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:36,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:37,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[1,38]},{18:[2,48],25:[2,48],33:[2,48],39:39,42:[2,48],43:[2,48],44:[2,48],45:[2,48],46:[2,48],50:[2,48],52:[2,48]},{18:[2,22],25:[2,22],33:[2,22],46:[2,22]},{18:[2,35],25:[2,35],33:[2,35],42:[2,35],43:[2,35],44:[2,35],45:[2,35],46:[2,35],50:[2,35],52:[2,35],54:[1,40]},{30:41,50:[1,26],53:24},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],52:[2,37],54:[2,37]},{33:[1,42]},{20:43,27:44,28:[1,45],29:[2,40]},{23:46,27:47,28:[1,45],29:[2,42]},{15:[1,48]},{25:[2,46],30:51,36:49,38:50,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],47:57,48:58,49:60,50:[1,59],52:[1,25],53:24},{25:[2,31],42:[2,31],43:[2,31],44:[2,31],45:[2,31],50:[2,31],52:[2,31]},{25:[2,32],42:[2,32],43:[2,32],44:[2,32],45:[2,32],50:[2,32],52:[2,32]},{25:[2,33],42:[2,33],43:[2,33],44:[2,33],45:[2,33],50:[2,33],52:[2,33]},{25:[1,61]},{25:[1,62]},{18:[1,63]},{5:[2,17],12:[2,17],13:[2,17],16:[2,17],24:[2,17],26:[2,17],28:[2,17],29:[2,17],31:[2,17],32:[2,17],34:[2,17]},{18:[2,50],25:[2,50],30:51,33:[2,50],36:65,40:64,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],46:[2,50],47:66,48:58,49:60,50:[1,59],52:[1,25],53:24},{50:[1,67]},{18:[2,34],25:[2,34],33:[2,34],42:[2,34],43:[2,34],44:[2,34],45:[2,34],46:[2,34],50:[2,34],52:[2,34]},{5:[2,18],12:[2,18],13:[2,18],16:[2,18],24:[2,18],26:[2,18],28:[2,18],29:[2,18],31:[2,18],32:[2,18],34:[2,18]},{21:68,29:[1,69]},{29:[2,41]},{4:70,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{21:71,29:[1,69]},{29:[2,43]},{5:[2,9],12:[2,9],13:[2,9],16:[2,9],24:[2,9],26:[2,9],28:[2,9],29:[2,9],31:[2,9],32:[2,9],34:[2,9]},{25:[2,44],37:72,47:73,48:58,49:60,50:[1,74]},{25:[1,75]},{18:[2,23],25:[2,23],33:[2,23],42:[2,23],43:[2,23],44:[2,23],45:[2,23],46:[2,23],50:[2,23],52:[2,23]},{18:[2,24],25:[2,24],33:[2,24],42:[2,24],43:[2,24],44:[2,24],45:[2,24],46:[2,24],50:[2,24],52:[2,24]},{18:[2,25],25:[2,25],33:[2,25],42:[2,25],43:[2,25],44:[2,25],45:[2,25],46:[2,25],50:[2,25],52:[2,25]},{18:[2,26],25:[2,26],33:[2,26],42:[2,26],43:[2,26],44:[2,26],45:[2,26],46:[2,26],50:[2,26],52:[2,26]},{18:[2,27],25:[2,27],33:[2,27],42:[2,27],43:[2,27],44:[2,27],45:[2,27],46:[2,27],50:[2,27],52:[2,27]},{17:76,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[2,47]},{18:[2,29],25:[2,29],33:[2,29],46:[2,29],49:77,50:[1,74]},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],51:[1,78],52:[2,37],54:[2,37]},{18:[2,52],25:[2,52],33:[2,52],46:[2,52],50:[2,52]},{12:[2,13],13:[2,13],16:[2,13],24:[2,13],26:[2,13],28:[2,13],29:[2,13],31:[2,13],32:[2,13],34:[2,13]},{12:[2,14],13:[2,14],16:[2,14],24:[2,14],26:[2,14],28:[2,14],29:[2,14],31:[2,14],32:[2,14],34:[2,14]},{12:[2,10]},{18:[2,21],25:[2,21],33:[2,21],46:[2,21]},{18:[2,49],25:[2,49],33:[2,49],42:[2,49],43:[2,49],44:[2,49],45:[2,49],46:[2,49],50:[2,49],52:[2,49]},{18:[2,51],25:[2,51],33:[2,51],46:[2,51]},{18:[2,36],25:[2,36],33:[2,36],42:[2,36],43:[2,36],44:[2,36],45:[2,36],46:[2,36],50:[2,36],52:[2,36],54:[2,36]},{5:[2,11],12:[2,11],13:[2,11],16:[2,11],24:[2,11],26:[2,11],28:[2,11],29:[2,11],31:[2,11],32:[2,11],34:[2,11]},{30:79,50:[1,26],53:24},{29:[2,15]},{5:[2,12],12:[2,12],13:[2,12],16:[2,12],24:[2,12],26:[2,12],28:[2,12],29:[2,12],31:[2,12],32:[2,12],34:[2,12]},{25:[1,80]},{25:[2,45]},{51:[1,78]},{5:[2,20],12:[2,20],13:[2,20],16:[2,20],24:[2,20],26:[2,20],28:[2,20],29:[2,20],31:[2,20],32:[2,20],34:[2,20]},{46:[1,81]},{18:[2,53],25:[2,53],33:[2,53],46:[2,53],50:[2,53]},{30:51,36:82,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],50:[1,26],52:[1,25],53:24},{25:[1,83]},{5:[2,19],12:[2,19],13:[2,19],16:[2,19],24:[2,19],26:[2,19],28:[2,19],29:[2,19],31:[2,19],32:[2,19],34:[2,19]},{18:[2,28],25:[2,28],33:[2,28],42:[2,28],43:[2,28],44:[2,28],45:[2,28],46:[2,28],50:[2,28],52:[2,28]},{18:[2,30],25:[2,30],33:[2,30],46:[2,30],50:[2,30]},{5:[2,16],12:[2,16],13:[2,16],16:[2,16],24:[2,16],26:[2,16],28:[2,16],29:[2,16],31:[2,16],32:[2,16],34:[2,16]}],
-defaultActions: {4:[2,1],44:[2,41],47:[2,43],57:[2,47],63:[2,10],70:[2,15],73:[2,45]},
-parseError: function parseError(str, hash) {
-    throw new Error(str);
-},
-parse: function parse(input) {
-    var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
-    this.lexer.setInput(input);
-    this.lexer.yy = this.yy;
-    this.yy.lexer = this.lexer;
-    this.yy.parser = this;
-    Iif (typeof this.lexer.yylloc == "undefined")
-        this.lexer.yylloc = {};
-    var yyloc = this.lexer.yylloc;
-    lstack.push(yyloc);
-    var ranges = this.lexer.options && this.lexer.options.ranges;
-    Iif (typeof this.yy.parseError === "function")
-        this.parseError = this.yy.parseError;
-    function popStack(n) {
-        stack.length = stack.length - 2 * n;
-        vstack.length = vstack.length - n;
-        lstack.length = lstack.length - n;
-    }
-    function lex() {
-        var token;
-        token = self.lexer.lex() || 1;
-        if (typeof token !== "number") {
-            token = self.symbols_[token] || token;
-        }
-        return token;
-    }
-    var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
-    while (true) {
-        state = stack[stack.length - 1];
-        if (this.defaultActions[state]) {
-            action = this.defaultActions[state];
-        } else {
-            if (symbol === null || typeof symbol == "undefined") {
-                symbol = lex();
-            }
-            action = table[state] && table[state][symbol];
-        }
-        if (typeof action === "undefined" || !action.length || !action[0]) {
-            var errStr = "";
-            Eif (!recovering) {
-                expected = [];
-                for (p in table[state])
-                    Eif (this.terminals_[p] && p > 2) {
-                        expected.push("'" + this.terminals_[p] + "'");
-                    }
-                Eif (this.lexer.showPosition) {
-                    errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
-                } else {
-                    errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'");
-                }
-                this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
-            }
-        }
-        Iif (action[0] instanceof Array && action.length > 1) {
-            throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
-        }
-        switch (action[0]) {
-        case 1:
-            stack.push(symbol);
-            vstack.push(this.lexer.yytext);
-            lstack.push(this.lexer.yylloc);
-            stack.push(action[1]);
-            symbol = null;
-            Eif (!preErrorSymbol) {
-                yyleng = this.lexer.yyleng;
-                yytext = this.lexer.yytext;
-                yylineno = this.lexer.yylineno;
-                yyloc = this.lexer.yylloc;
-                Iif (recovering > 0)
-                    recovering--;
-            } else {
-                symbol = preErrorSymbol;
-                preErrorSymbol = null;
-            }
-            break;
-        case 2:
-            len = this.productions_[action[1]][1];
-            yyval.$ = vstack[vstack.length - len];
-            yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};
-            Iif (ranges) {
-                yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
-            }
-            r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
-            if (typeof r !== "undefined") {
-                return r;
-            }
-            if (len) {
-                stack = stack.slice(0, -1 * len * 2);
-                vstack = vstack.slice(0, -1 * len);
-                lstack = lstack.slice(0, -1 * len);
-            }
-            stack.push(this.productions_[action[1]][0]);
-            vstack.push(yyval.$);
-            lstack.push(yyval._$);
-            newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
-            stack.push(newState);
-            break;
-        case 3:
-            return true;
-        }
-    }
-    return true;
-}
-};
-/* Jison generated lexer */
-var lexer = (function(){
-var lexer = ({EOF:1,
-parseError:function parseError(str, hash) {
-        if (this.yy.parser) {
-            this.yy.parser.parseError(str, hash);
-        } else {
-            throw new Error(str);
-        }
-    },
-setInput:function (input) {
-        this._input = input;
-        this._more = this._less = this.done = false;
-        this.yylineno = this.yyleng = 0;
-        this.yytext = this.matched = this.match = '';
-        this.conditionStack = ['INITIAL'];
-        this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
-        Iif (this.options.ranges) this.yylloc.range = [0,0];
-        this.offset = 0;
-        return this;
-    },
-input:function () {
-        var ch = this._input[0];
-        this.yytext += ch;
-        this.yyleng++;
-        this.offset++;
-        this.match += ch;
-        this.matched += ch;
-        var lines = ch.match(/(?:\r\n?|\n).*/g);
-        if (lines) {
-            this.yylineno++;
-            this.yylloc.last_line++;
-        } else {
-            this.yylloc.last_column++;
-        }
-        if (this.options.ranges) this.yylloc.range[1]++;
- 
-        this._input = this._input.slice(1);
-        return ch;
-    },
-unput:function (ch) {
-        var len = ch.length;
-        var lines = ch.split(/(?:\r\n?|\n)/g);
- 
-        this._input = ch + this._input;
-        this.yytext = this.yytext.substr(0, this.yytext.length-len-1);
-        //this.yyleng -= len;
-        this.offset -= len;
-        var oldLines = this.match.split(/(?:\r\n?|\n)/g);
-        this.match = this.match.substr(0, this.match.length-1);
-        this.matched = this.matched.substr(0, this.matched.length-1);
- 
-        if (lines.length-1) this.yylineno -= lines.length-1;
-        var r = this.yylloc.range;
- 
-        this.yylloc = {first_line: this.yylloc.first_line,
-          last_line: this.yylineno+1,
-          first_column: this.yylloc.first_column,
-          last_column: lines ?
-              (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length:
-              this.yylloc.first_column - len
-          };
- 
-        if (this.options.ranges) {
-            this.yylloc.range = [r[0], r[0] + this.yyleng - len];
-        }
-        return this;
-    },
-more:function () {
-        this._more = true;
-        return this;
-    },
-less:function (n) {
-        this.unput(this.match.slice(n));
-    },
-pastInput:function () {
-        var past = this.matched.substr(0, this.matched.length - this.match.length);
-        return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
-    },
-upcomingInput:function () {
-        var next = this.match;
-        Eif (next.length < 20) {
-            next += this._input.substr(0, 20-next.length);
-        }
-        return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
-    },
-showPosition:function () {
-        var pre = this.pastInput();
-        var c = new Array(pre.length + 1).join("-");
-        return pre + this.upcomingInput() + "\n" + c+"^";
-    },
-next:function () {
-        Iif (this.done) {
-            return this.EOF;
-        }
-        if (!this._input) this.done = true;
- 
-        var token,
-            match,
-            tempMatch,
-            index,
-            col,
-            lines;
-        Eif (!this._more) {
-            this.yytext = '';
-            this.match = '';
-        }
-        var rules = this._currentRules();
-        for (var i=0;i < rules.length; i++) {
-            tempMatch = this._input.match(this.rules[rules[i]]);
-            if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
-                match = tempMatch;
-                index = i;
-                Eif (!this.options.flex) break;
-            }
-        }
-        Eif (match) {
-            lines = match[0].match(/(?:\r\n?|\n).*/g);
-            if (lines) this.yylineno += lines.length;
-            this.yylloc = {first_line: this.yylloc.last_line,
-                           last_line: this.yylineno+1,
-                           first_column: this.yylloc.last_column,
-                           last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length};
-            this.yytext += match[0];
-            this.match += match[0];
-            this.matches = match;
-            this.yyleng = this.yytext.length;
-            Iif (this.options.ranges) {
-                this.yylloc.range = [this.offset, this.offset += this.yyleng];
-            }
-            this._more = false;
-            this._input = this._input.slice(match[0].length);
-            this.matched += match[0];
-            token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);
-            Iif (this.done && this._input) this.done = false;
-            if (token) return token;
-            else return;
-        }
-        if (this._input === "") {
-            return this.EOF;
-        } else {
-            return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
-                    {text: "", token: null, line: this.yylineno});
-        }
-    },
-lex:function lex() {
-        var r = this.next();
-        if (typeof r !== 'undefined') {
-            return r;
-        } else {
-            return this.lex();
-        }
-    },
-begin:function begin(condition) {
-        this.conditionStack.push(condition);
-    },
-popState:function popState() {
-        return this.conditionStack.pop();
-    },
-_currentRules:function _currentRules() {
-        return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
-    },
-topState:function () {
-        return this.conditionStack[this.conditionStack.length-2];
-    },
-pushState:function begin(condition) {
-        this.begin(condition);
-    }});
-lexer.options = {};
-lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
- 
- 
-function strip(start, end) {
-  return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng-end);
-}
- 
- 
-var YYSTATE=YY_START
-switch($avoiding_name_collisions) {
-case 0:
-                                   if(yy_.yytext.slice(-2) === "\\\\") {
-                                     strip(0,1);
-                                     this.begin("mu");
-                                   } else if(yy_.yytext.slice(-1) === "\\") {
-                                     strip(0,1);
-                                     this.begin("emu");
-                                   } else {
-                                     this.begin("mu");
-                                   }
-                                   if(yy_.yytext) return 12;
-                                 
-break;
-case 1:return 12;
-break;
-case 2:
-                                   this.popState();
-                                   return 12;
-                                 
-break;
-case 3:
-                                  yy_.yytext = yy_.yytext.substr(5, yy_.yyleng-9);
-                                  this.popState();
-                                  return 15;
-                                 
-break;
-case 4: return 12; 
-break;
-case 5:strip(0,4); this.popState(); return 13;
-break;
-case 6:return 45;
-break;
-case 7:return 46;
-break;
-case 8: return 16; 
-break;
-case 9:
-                                  this.popState();
-                                  this.begin('raw');
-                                  return 18;
-                                 
-break;
-case 10:return 34;
-break;
-case 11:return 24;
-break;
-case 12:return 29;
-break;
-case 13:this.popState(); return 28;
-break;
-case 14:this.popState(); return 28;
-break;
-case 15:return 26;
-break;
-case 16:return 26;
-break;
-case 17:return 32;
-break;
-case 18:return 31;
-break;
-case 19:this.popState(); this.begin('com');
-break;
-case 20:strip(3,5); this.popState(); return 13;
-break;
-case 21:return 31;
-break;
-case 22:return 51;
-break;
-case 23:return 50;
-break;
-case 24:return 50;
-break;
-case 25:return 54;
-break;
-case 26:// ignore whitespace
-break;
-case 27:this.popState(); return 33;
-break;
-case 28:this.popState(); return 25;
-break;
-case 29:yy_.yytext = strip(1,2).replace(/\\"/g,'"'); return 42;
-break;
-case 30:yy_.yytext = strip(1,2).replace(/\\'/g,"'"); return 42;
-break;
-case 31:return 52;
-break;
-case 32:return 44;
-break;
-case 33:return 44;
-break;
-case 34:return 43;
-break;
-case 35:return 50;
-break;
-case 36:yy_.yytext = strip(1,2); return 50;
-break;
-case 37:return 'INVALID';
-break;
-case 38:return 5;
-break;
-}
-};
-lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];
-lexer.conditions = {"mu":{"rules":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[5],"inclusive":false},"raw":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,1,38],"inclusive":true}};
-return lexer;})()
-parser.lexer = lexer;
-function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
-return new Parser;
-})();exports["default"] = handlebars;
-/* jshint ignore:end */
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/printer.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/printer.js.html deleted file mode 100644 index 38851b8..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/printer.js.html +++ /dev/null @@ -1,742 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/compiler/printer.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/compiler/printer.js

-

- - Statements: 100% (84 / 84)      - - - Branches: 100% (16 / 16)      - - - Functions: 100% (17 / 17)      - - - Lines: 100% (80 / 80)      - - Ignored: none      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141  -1 -  -1 -48 -  -  -1 -48 -  -  -1 -  -1 -89 -  -89 -50 -  -  -89 -89 -  -  -1 -67 -  -  -  -67 -59 -  -  -67 -  -67 -  -  -1 -11 -  -11 -11 -11 -11 -9 -9 -9 -9 -  -11 -10 -10 -10 -10 -10 -10 -  -11 -  -11 -  -  -1 -40 -  -40 -11 -  -  -40 -  -40 -  -40 -  -  -1 -40 -  -  -1 -5 -5 -2 -  -5 -2 -  -5 -  -  -1 -14 -14 -  -14 -23 -23 -23 -  -  -14 -  -  -1 -7 -  -  -1 -3 -  -  -1 -6 -  -  -1 -60 -60 -1 -  -59 -  -  -  -1 -5 -  -  -1 -4 -  -  -1 -12 -  -  -1 -2 - 
"use strict";
-var Visitor = require("./visitor")["default"];
- 
-function print(ast) {
-  return new PrintVisitor().accept(ast);
-}
- 
-exports.print = print;function PrintVisitor() {
-  this.padding = 0;
-}
- 
-exports.PrintVisitor = PrintVisitor;PrintVisitor.prototype = new Visitor();
- 
-PrintVisitor.prototype.pad = function(string) {
-  var out = "";
- 
-  for(var i=0,l=this.padding; i<l; i++) {
-    out = out + "  ";
-  }
- 
-  out = out + string + "\n";
-  return out;
-};
- 
-PrintVisitor.prototype.program = function(program) {
-  var out = "",
-      statements = program.statements,
-      i, l;
- 
-  for(i=0, l=statements.length; i<l; i++) {
-    out = out + this.accept(statements[i]);
-  }
- 
-  this.padding--;
- 
-  return out;
-};
- 
-PrintVisitor.prototype.block = function(block) {
-  var out = "";
- 
-  out = out + this.pad("BLOCK:");
-  this.padding++;
-  out = out + this.accept(block.mustache);
-  if (block.program) {
-    out = out + this.pad("PROGRAM:");
-    this.padding++;
-    out = out + this.accept(block.program);
-    this.padding--;
-  }
-  if (block.inverse) {
-    if (block.program) { this.padding++; }
-    out = out + this.pad("{{^}}");
-    this.padding++;
-    out = out + this.accept(block.inverse);
-    this.padding--;
-    if (block.program) { this.padding--; }
-  }
-  this.padding--;
- 
-  return out;
-};
- 
-PrintVisitor.prototype.sexpr = function(sexpr) {
-  var params = sexpr.params, paramStrings = [], hash;
- 
-  for(var i=0, l=params.length; i<l; i++) {
-    paramStrings.push(this.accept(params[i]));
-  }
- 
-  params = "[" + paramStrings.join(", ") + "]";
- 
-  hash = sexpr.hash ? " " + this.accept(sexpr.hash) : "";
- 
-  return this.accept(sexpr.id) + " " + params + hash;
-};
- 
-PrintVisitor.prototype.mustache = function(mustache) {
-  return this.pad("{{ " + this.accept(mustache.sexpr) + " }}");
-};
- 
-PrintVisitor.prototype.partial = function(partial) {
-  var content = this.accept(partial.partialName);
-  if(partial.context) {
-    content += " " + this.accept(partial.context);
-  }
-  if (partial.hash) {
-    content += " " + this.accept(partial.hash);
-  }
-  return this.pad("{{> " + content + " }}");
-};
- 
-PrintVisitor.prototype.hash = function(hash) {
-  var pairs = hash.pairs;
-  var joinedPairs = [], left, right;
- 
-  for(var i=0, l=pairs.length; i<l; i++) {
-    left = pairs[i][0];
-    right = this.accept(pairs[i][1]);
-    joinedPairs.push( left + "=" + right );
-  }
- 
-  return "HASH{" + joinedPairs.join(", ") + "}";
-};
- 
-PrintVisitor.prototype.STRING = function(string) {
-  return '"' + string.string + '"';
-};
- 
-PrintVisitor.prototype.NUMBER = function(number) {
-  return "NUMBER{" + number.number + "}";
-};
- 
-PrintVisitor.prototype.BOOLEAN = function(bool) {
-  return "BOOLEAN{" + bool.bool + "}";
-};
- 
-PrintVisitor.prototype.ID = function(id) {
-  var path = id.parts.join("/");
-  if(id.parts.length > 1) {
-    return "PATH:" + path;
-  } else {
-    return "ID:" + path;
-  }
-};
- 
-PrintVisitor.prototype.PARTIAL_NAME = function(partialName) {
-    return "PARTIAL:" + partialName.name;
-};
- 
-PrintVisitor.prototype.DATA = function(data) {
-  return "@" + this.accept(data.id);
-};
- 
-PrintVisitor.prototype.content = function(content) {
-  return this.pad("CONTENT[ '" + content.string + "' ]");
-};
- 
-PrintVisitor.prototype.comment = function(comment) {
-  return this.pad("{{! '" + comment.comment + "' }}");
-};
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/visitor.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/visitor.js.html deleted file mode 100644 index a5ae849..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/compiler/visitor.js.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/compiler/visitor.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/compiler/visitor.js

-

- - Statements: 100% (4 / 4)      - - - Branches: 100% (0 / 0)      - - - Functions: 100% (2 / 2)      - - - Lines: 100% (4 / 4)      - - Ignored: none      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12  -1 -  -1 -  -  -  -276 -  -  -  -1
"use strict";
-function Visitor() {}
- 
-Visitor.prototype = {
-  constructor: Visitor,
- 
-  accept: function(object) {
-    return this[object.type](object);
-  }
-};
- 
-exports["default"] = Visitor;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/exception.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/exception.js.html deleted file mode 100644 index fdd2de2..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/exception.js.html +++ /dev/null @@ -1,403 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/exception.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/exception.js

-

- - Statements: 100% (14 / 14)      - - - Branches: 100% (6 / 6)      - - - Functions: 100% (1 / 1)      - - - Lines: 100% (14 / 14)      - - Ignored: none      -

-
All files » dist/cjs/handlebars/ » exception.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28  -  -1 -  -1 -48 -48 -16 -  -16 -  -  -48 -  -  -48 -336 -  -  -48 -16 -16 -  -  -  -1 -  -1
"use strict";
- 
-var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
- 
-function Exception(message, node) {
-  var line;
-  if (node && node.firstLine) {
-    line = node.firstLine;
- 
-    message += ' - ' + line + ':' + node.firstColumn;
-  }
- 
-  var tmp = Error.prototype.constructor.call(this, message);
- 
-  // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
-  for (var idx = 0; idx < errorProps.length; idx++) {
-    this[errorProps[idx]] = tmp[errorProps[idx]];
-  }
- 
-  if (line) {
-    this.lineNumber = line;
-    this.column = node.firstColumn;
-  }
-}
- 
-Exception.prototype = new Error();
- 
-exports["default"] = Exception;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/index.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/index.html deleted file mode 100644 index 13e6eff..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/index.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/ - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/

-

- - Statements: 100% (289 / 289)      - - - Branches: 100% (203 / 203)      - - - Functions: 100% (44 / 44)      - - - Lines: 100% (274 / 274)      - - Ignored: 4 statements, 2 functions, 9 branches      -

-
All files » dist/cjs/handlebars/
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
base.js100%(119 / 119)100%(83 / 83)100%(16 / 16)100%(113 / 113)
exception.js100%(14 / 14)100%(6 / 6)100%(1 / 1)100%(14 / 14)
runtime.js100%(104 / 104)100%(84 / 84)100%(17 / 17)100%(99 / 99)
safe-string.js100%(5 / 5)100%(0 / 0)100%(2 / 2)100%(5 / 5)
utils.js100%(47 / 47)100%(30 / 30)100%(8 / 8)100%(43 / 43)
-
-
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/runtime.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/runtime.js.html deleted file mode 100644 index 03c0e0d..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/runtime.js.html +++ /dev/null @@ -1,898 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/runtime.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/runtime.js

-

- - Statements: 100% (104 / 104)      - - - Branches: 100% (84 / 84)      - - - Functions: 100% (17 / 17)      - - - Lines: 100% (99 / 99)      - - Ignored: 1 statement, 1 branch      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193  -1 -1 -1 -1 -1 -  -1 -470 -  -  -470 -3 -2 -  -2 -  -  -  -1 -  -  -  -  -  -1 -  -1 -  -474 -1 -  -474 -3 -  -  -  -  -471 -  -468 -55 -2 -  -  -55 -  -53 -39 -39 -39 -  -53 -52 -8 -8 -18 -6 -  -  -12 -  -8 -  -52 -  -1 -  -  -  -  -468 -  -175 -175 -261 -170 -  -  -  -  -138 -  -  -  -  -  -  -345 -  -  -  -  -345 -  -345 -340 -5 -4 -  -345 -  -  -  -4 -6 -  -4 -  -  -512 -  -512 -313 -  -  -512 -  -  -  -  -  -  -468 -480 -480 -  -480 -480 -462 -  -480 -480 -141 -  -  -480 -  -468 -  -468 -482 -471 -  -471 -41 -  -  -11 -11 -  -  -  -468 -4 -1 -  -  -3 -  -468 -  -  -1 -347 -365 -  -365 -  -347 -347 -347 -  -  -1 -55 -  -55 -2 -53 -13 -  -  -  -62 -  -1 -462 -424 -424 -  -462 - 
"use strict";
-var Utils = require("./utils");
-var Exception = require("./exception")["default"];
-var COMPILER_REVISION = require("./base").COMPILER_REVISION;
-var REVISION_CHANGES = require("./base").REVISION_CHANGES;
-var createFrame = require("./base").createFrame;
- 
-function checkRevision(compilerInfo) {
-  var compilerRevision = compilerInfo && compilerInfo[0] || 1,
-      currentRevision = COMPILER_REVISION;
- 
-  if (compilerRevision !== currentRevision) {
-    if (compilerRevision < currentRevision) {
-      var runtimeVersions = REVISION_CHANGES[currentRevision],
-          compilerVersions = REVISION_CHANGES[compilerRevision];
-      throw new Exception("Template was precompiled with an older version of Handlebars than the current runtime. "+
-            "Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+").");
-    } else {
-      // Use the embedded version info since the runtime doesn't know about this revision yet
-      throw new Exception("Template was precompiled with a newer version of Handlebars than the current runtime. "+
-            "Please update your runtime to a newer version ("+compilerInfo[1]+").");
-    }
-  }
-}
- 
-exports.checkRevision = checkRevision;// TODO: Remove this line and break up compilePartial
- 
-function template(templateSpec, env) {
-  /* istanbul ignore next */
-  Iif (!env) {
-    throw new Exception("No environment passed to template");
-  }
-  if (!templateSpec || !templateSpec.main) {
-    throw new Exception('Unknown template object: ' + typeof templateSpec);
-  }
- 
-  // Note: Using env.VM references rather than local var references throughout this section to allow
-  // for external users to override these as psuedo-supported APIs.
-  env.VM.checkRevision(templateSpec.compiler);
- 
-  var invokePartialWrapper = function(partial, indent, name, context, hash, helpers, partials, data, depths) {
-    if (hash) {
-      context = Utils.extend({}, context, hash);
-    }
- 
-    var result = env.VM.invokePartial.call(this, partial, name, context, helpers, partials, data, depths);
- 
-    if (result == null && env.compile) {
-      var options = { helpers: helpers, partials: partials, data: data, depths: depths };
-      partials[name] = env.compile(partial, { data: data !== undefined, compat: templateSpec.compat }, env);
-      result = partials[name](context, options);
-    }
-    if (result != null) {
-      if (indent) {
-        var lines = result.split('\n');
-        for (var i = 0, l = lines.length; i < l; i++) {
-          if (!lines[i] && i + 1 === l) {
-            break;
-          }
- 
-          lines[i] = indent + lines[i];
-        }
-        result = lines.join('\n');
-      }
-      return result;
-    } else {
-      throw new Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
-    }
-  };
- 
-  // Just add water
-  var container = {
-    lookup: function(depths, name) {
-      var len = depths.length;
-      for (var i = 0; i < len; i++) {
-        if (depths[i] && depths[i][name] != null) {
-          return depths[i][name];
-        }
-      }
-    },
-    lambda: function(current, context) {
-      return typeof current === 'function' ? current.call(context) : current;
-    },
- 
-    escapeExpression: Utils.escapeExpression,
-    invokePartial: invokePartialWrapper,
- 
-    fn: function(i) {
-      return templateSpec[i];
-    },
- 
-    programs: [],
-    program: function(i, data, depths) {
-      var programWrapper = this.programs[i],
-          fn = this.fn(i);
-      if (data || depths) {
-        programWrapper = program(this, i, fn, data, depths);
-      } else if (!programWrapper) {
-        programWrapper = this.programs[i] = program(this, i, fn);
-      }
-      return programWrapper;
-    },
- 
-    data: function(data, depth) {
-      while (data && depth--) {
-        data = data._parent;
-      }
-      return data;
-    },
-    merge: function(param, common) {
-      var ret = param || common;
- 
-      if (param && common && (param !== common)) {
-        ret = Utils.extend({}, common, param);
-      }
- 
-      return ret;
-    },
- 
-    noop: env.VM.noop,
-    compilerInfo: templateSpec.compiler
-  };
- 
-  var ret = function(context, options) {
-    options = options || {};
-    var data = options.data;
- 
-    ret._setup(options);
-    if (!options.partial && templateSpec.useData) {
-      data = initData(context, data);
-    }
-    var depths;
-    if (templateSpec.useDepths) {
-      depths = options.depths ? [context].concat(options.depths) : [context];
-    }
- 
-    return templateSpec.main.call(container, context, container.helpers, container.partials, data, depths);
-  };
-  ret.isTop = true;
- 
-  ret._setup = function(options) {
-    if (!options.partial) {
-      container.helpers = container.merge(options.helpers, env.helpers);
- 
-      if (templateSpec.usePartial) {
-        container.partials = container.merge(options.partials, env.partials);
-      }
-    } else {
-      container.helpers = options.helpers;
-      container.partials = options.partials;
-    }
-  };
- 
-  ret._child = function(i, data, depths) {
-    if (templateSpec.useDepths && !depths) {
-      throw new Exception('must pass parent depths');
-    }
- 
-    return program(container, i, templateSpec[i], data, depths);
-  };
-  return ret;
-}
- 
-exports.template = template;function program(container, i, fn, data, depths) {
-  var prog = function(context, options) {
-    options = options || {};
- 
-    return fn.call(container, context, container.helpers, container.partials, options.data || data, depths && [context].concat(depths));
-  };
-  prog.program = i;
-  prog.depth = depths ? depths.length : 0;
-  return prog;
-}
- 
-exports.program = program;function invokePartial(partial, name, context, helpers, partials, data, depths) {
-  var options = { partial: true, helpers: helpers, partials: partials, data: data, depths: depths };
- 
-  if(partial === undefined) {
-    throw new Exception("The partial " + name + " could not be found");
-  } else if(partial instanceof Function) {
-    return partial(context, options);
-  }
-}
- 
-exports.invokePartial = invokePartial;function noop() { return ""; }
- 
-exports.noop = noop;function initData(context, data) {
-  if (!data || !('root' in data)) {
-    data = data ? createFrame(data) : {};
-    data.root = context;
-  }
-  return data;
-}
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/safe-string.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/safe-string.js.html deleted file mode 100644 index 5d39a7f..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/safe-string.js.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/safe-string.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/safe-string.js

-

- - Statements: 100% (5 / 5)      - - - Branches: 100% (0 / 0)      - - - Functions: 100% (2 / 2)      - - - Lines: 100% (5 / 5)      - - Ignored: none      -

-
All files » dist/cjs/handlebars/ » safe-string.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11  -  -1 -12 -  -  -1 -12 -  -  -1
"use strict";
-// Build out our basic SafeString type
-function SafeString(string) {
-  this.string = string;
-}
- 
-SafeString.prototype.toString = function() {
-  return "" + this.string;
-};
- 
-exports["default"] = SafeString;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/utils.js.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/utils.js.html deleted file mode 100644 index 0cdb36f..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/handlebars/utils.js.html +++ /dev/null @@ -1,583 +0,0 @@ - - - - Code coverage report for dist/cjs/handlebars/utils.js - - - - - - - -
-

Code coverage report for dist/cjs/handlebars/utils.js

-

- - Statements: 100% (47 / 47)      - - - Branches: 100% (30 / 30)      - - - Functions: 100% (8 / 8)      - - - Lines: 100% (43 / 43)      - - Ignored: 3 statements, 2 functions, 8 branches      -

- -
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88  -  -1 -  -1 -  -  -  -  -  -  -  -  -1 -1 -  -1 -27 -  -  -1 -933 -1249 -6468 -6467 -  -  -  -  -933 -  -  -1 -1 -  -  -1 -175 -  -  -  -1 -1 -1 -  -  -1 -1 -  -1 -1 -  -1 -  -1 -  -534 -11 -523 -29 -494 -19 -  -  -  -  -  -475 -  -475 -9 -  -  -1 -58 -5 -53 -2 -  -51 -  -  -  -1 -11 -  -  -1
"use strict";
-/*jshint -W004 */
-var SafeString = require("./safe-string")["default"];
- 
-var escape = {
-  "&": "&amp;",
-  "<": "&lt;",
-  ">": "&gt;",
-  '"': "&quot;",
-  "'": "&#x27;",
-  "`": "&#x60;"
-};
- 
-var badChars = /[&<>"'`]/g;
-var possible = /[&<>"'`]/;
- 
-function escapeChar(chr) {
-  return escape[chr];
-}
- 
-function extend(obj /* , ...source */) {
-  for (var i = 1; i < arguments.length; i++) {
-    for (var key in arguments[i]) {
-      if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {
-        obj[key] = arguments[i][key];
-      }
-    }
-  }
- 
-  return obj;
-}
- 
-exports.extend = extend;var toString = Object.prototype.toString;
-exports.toString = toString;
-// Sourced from lodash
-// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt
-var isFunction = function(value) {
-  return typeof value === 'function';
-};
-// fallback for older versions of Chrome and Safari
-/* istanbul ignore next */
-Iif (isFunction(/x/)) {
-  isFunction = function(value) {
-    return typeof value === 'function' && toString.call(value) === '[object Function]';
-  };
-}
-var isFunction;
-exports.isFunction = isFunction;
-/* istanbul ignore next */
-var isArray = Array.isArray || function(value) {
-  return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false;
-};
-exports.isArray = isArray;
- 
-function escapeExpression(string) {
-  // don't escape SafeStrings, since they're already safe
-  if (string instanceof SafeString) {
-    return string.toString();
-  } else if (string == null) {
-    return "";
-  } else if (!string) {
-    return string + '';
-  }
- 
-  // Force a string conversion as this will be done by the append regardless and
-  // the regex test will do this transparently behind the scenes, causing issues if
-  // an object's to string has escaped characters in it.
-  string = "" + string;
- 
-  if(!possible.test(string)) { return string; }
-  return string.replace(badChars, escapeChar);
-}
- 
-exports.escapeExpression = escapeExpression;function isEmpty(value) {
-  if (!value && value !== 0) {
-    return true;
-  } else if (isArray(value) && value.length === 0) {
-    return true;
-  } else {
-    return false;
-  }
-}
- 
-exports.isEmpty = isEmpty;function appendContextPath(contextPath, id) {
-  return (contextPath ? contextPath + '.' : '') + id;
-}
- 
-exports.appendContextPath = appendContextPath;
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/dist/cjs/index.html b/node_modules/handlebars/coverage/lcov-report/dist/cjs/index.html deleted file mode 100644 index 9cbd3a7..0000000 --- a/node_modules/handlebars/coverage/lcov-report/dist/cjs/index.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - Code coverage report for dist/cjs/ - - - - - - - -
-

Code coverage report for dist/cjs/

-

- - Statements: 100% (45 / 45)      - - - Branches: 100% (0 / 0)      - - - Functions: 100% (5 / 5)      - - - Lines: 100% (45 / 45)      - - Ignored: none      -

-
All files » dist/cjs/
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
handlebars.js100%(25 / 25)100%(0 / 0)100%(3 / 3)100%(25 / 25)
handlebars.runtime.js100%(20 / 20)100%(0 / 0)100%(2 / 2)100%(20 / 20)
-
-
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/index.html b/node_modules/handlebars/coverage/lcov-report/index.html deleted file mode 100644 index ce9927a..0000000 --- a/node_modules/handlebars/coverage/lcov-report/index.html +++ /dev/null @@ -1,389 +0,0 @@ - - - - Code coverage report for All files - - - - - - - -
-

Code coverage report for All files

-

- - Statements: 99.76% (1695 / 1699)      - - - Branches: 99.15% (937 / 945)      - - - Functions: 100% (220 / 220)      - - - Lines: 99.76% (1639 / 1643)      - - Ignored: 102 statements, 11 functions, 58 branches      -

-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
dist/cjs/100%(45 / 45)100%(0 / 0)100%(5 / 5)100%(45 / 45)
dist/cjs/handlebars/100%(289 / 289)100%(203 / 203)100%(44 / 44)100%(274 / 274)
dist/cjs/handlebars/compiler/99.84%(1269 / 1271)99.4%(660 / 664)100%(164 / 164)99.84%(1229 / 1231)
lib/97.87%(92 / 94)94.87%(74 / 78)100%(7 / 7)97.85%(91 / 93)
-
-
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/lib/index.html b/node_modules/handlebars/coverage/lcov-report/lib/index.html deleted file mode 100644 index 7b68223..0000000 --- a/node_modules/handlebars/coverage/lcov-report/lib/index.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - Code coverage report for lib/ - - - - - - - -
-

Code coverage report for lib/

-

- - Statements: 97.87% (92 / 94)      - - - Branches: 94.87% (74 / 78)      - - - Functions: 100% (7 / 7)      - - - Lines: 97.85% (91 / 93)      - - Ignored: 1 branch      -

-
All files » lib/
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
index.js100%(13 / 13)100%(4 / 4)100%(1 / 1)100%(13 / 13)
precompiler.js97.53%(79 / 81)94.59%(70 / 74)100%(6 / 6)97.5%(78 / 80)
-
-
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/lib/index.js.html b/node_modules/handlebars/coverage/lcov-report/lib/index.js.html deleted file mode 100644 index f935b2d..0000000 --- a/node_modules/handlebars/coverage/lcov-report/lib/index.js.html +++ /dev/null @@ -1,400 +0,0 @@ - - - - Code coverage report for lib/index.js - - - - - - - -
-

Code coverage report for lib/index.js

-

- - Statements: 100% (13 / 13)      - - - Branches: 100% (4 / 4)      - - - Functions: 100% (1 / 1)      - - - Lines: 100% (13 / 13)      - - Ignored: 1 branch      -

-
All files » lib/ » index.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27  -  -  -  -  -1 -  -1 -  -1 -1 -1 -  -1 -  -  -  -1 -1 -2 -2 -2 -  -1 -1 -  - 
// USAGE:
-// var handlebars = require('handlebars');
- 
-// var local = handlebars.create();
- 
-var handlebars = require('../dist/cjs/handlebars')["default"];
- 
-handlebars.Visitor = require('../dist/cjs/handlebars/compiler/visitor')["default"];
- 
-var printer = require('../dist/cjs/handlebars/compiler/printer');
-handlebars.PrintVisitor = printer.PrintVisitor;
-handlebars.print = printer.print;
- 
-module.exports = handlebars;
- 
-// Publish a Node.js require() handler for .handlebars and .hbs files
-/* istanbul ignore else */
-Eif (typeof require !== 'undefined' && require.extensions) {
-  var extension = function(module, filename) {
-    var fs = require("fs");
-    var templateString = fs.readFileSync(filename, "utf8");
-    module.exports = handlebars.compile(templateString);
-  };
-  require.extensions[".handlebars"] = extension;
-  require.extensions[".hbs"] = extension;
-}
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/lib/precompiler.js.html b/node_modules/handlebars/coverage/lcov-report/lib/precompiler.js.html deleted file mode 100644 index 80b0aeb..0000000 --- a/node_modules/handlebars/coverage/lcov-report/lib/precompiler.js.html +++ /dev/null @@ -1,754 +0,0 @@ - - - - Code coverage report for lib/precompiler.js - - - - - - - -
-

Code coverage report for lib/precompiler.js

-

- - Statements: 97.53% (79 / 81)      - - - Branches: 94.59% (70 / 74)      - - - Functions: 100% (6 / 6)      - - - Lines: 97.5% (78 / 80)      - - Ignored: none      -

-
All files » lib/ » precompiler.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145  -1 -  -  -  -  -1 -54 -3 -3 -  -  -51 -51 -3 -  -  -48 -51 -51 -  -3 -  -  -  -45 -3 -  -42 -6 -  -  -  -36 -36 -3 -  -36 -3 -3 -  -  -  -  -36 -36 -  -36 -36 -27 -12 -15 -3 -  -12 -  -27 -27 -27 -27 -27 -  -1 -57 -  -57 -15 -45 -  -45 -21 -  -  -  -42 -  -42 -  -  -  -42 -  -  -  -  -42 -3 -  -  -  -42 -21 -21 -21 -  -42 -  -42 -9 -33 -9 -3 -  -9 -  -24 -3 -  -24 -  -  -  -  -36 -36 -  -  -  -36 -27 -12 -6 -3 -  -3 -  -  -12 -15 -12 -  -  -36 -  -36 -3 -  -  -36 -  -  -36 -  -  - 
 
-var fs = require('fs'),
-    Handlebars = require('./index'),
-    basename = require('path').basename,
-    uglify = require('uglify-js');
- 
-module.exports.cli = function(opts) {
-  if (opts.version) {
-    console.log(Handlebars.VERSION);
-    return;
-  }
- 
-  var template = [0];
-  if (!opts.templates.length) {
-    throw new Handlebars.Exception('Must define at least one template or directory.');
-  }
- 
-  opts.templates.forEach(function(template) {
-    try {
-      fs.statSync(template);
-    } catch (err) {
-      throw new Handlebars.Exception('Unable to open template file "' + template + '"');
-    }
-  });
- 
-  if (opts.simple && opts.min) {
-    throw new Handlebars.Exception('Unable to minimze simple output');
-  }
-  if (opts.simple && (opts.templates.length !== 1 || fs.statSync(opts.templates[0]).isDirectory())) {
-    throw new Handlebars.Exception('Unable to output multiple templates in simple mode');
-  }
- 
-  // Convert the known list into a hash
-  var known = {};
-  if (opts.known && !Array.isArray(opts.known)) {
-    opts.known = [opts.known];
-  }
-  if (opts.known) {
-    for (var i = 0, len = opts.known.length; i < len; i++) {
-      known[opts.known[i]] = true;
-    }
-  }
- 
-  // Build file extension pattern
-  var extension = opts.extension.replace(/[\\^$*+?.():=!|{}\-\[\]]/g, function(arg) { return '\\' + arg; });
-  extension = new RegExp('\\.' + extension + '$');
- 
-  var output = [];
-  if (!opts.simple) {
-    if (opts.amd) {
-      output.push('define([\'' + opts.handlebarPath + 'handlebars.runtime\'], function(Handlebars) {\n  Handlebars = Handlebars["default"];');
-    } else if (opts.commonjs) {
-      output.push('var Handlebars = require("' + opts.commonjs + '");');
-    } else {
-      output.push('(function() {\n');
-    }
-    output.push('  var template = Handlebars.template, templates = ');
-    output.push(opts.namespace);
-    output.push(' = ');
-    output.push(opts.namespace);
-    output.push(' || {};\n');
-  }
-  function processTemplate(template, root) {
-    var path = template,
-        stat = fs.statSync(path);
-    if (stat.isDirectory()) {
-      fs.readdirSync(template).map(function(file) {
-        var path = template + '/' + file;
- 
-        if (extension.test(path) || fs.statSync(path).isDirectory()) {
-          processTemplate(path, root || template);
-        }
-      });
-    } else {
-      var data = fs.readFileSync(path, 'utf8');
- 
-      Iif (opts.bom && data.indexOf('\uFEFF') === 0) {
-        data = data.substring(1);
-      }
- 
-      var options = {
-        knownHelpers: known,
-        knownHelpersOnly: opts.o
-      };
- 
-      if (opts.data) {
-        options.data = true;
-      }
- 
-      // Clean the template name
-      if (!root) {
-        template = basename(template);
-      } else Eif (template.indexOf(root) === 0) {
-        template = template.substring(root.length+1);
-      }
-      template = template.replace(extension, '');
- 
-      if (opts.simple) {
-        output.push(Handlebars.precompile(data, options) + '\n');
-      } else if (opts.partial) {
-        if(opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) {
-          output.push('return ');
-        }
-        output.push('Handlebars.partials[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n');
-      } else {
-        if(opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) {
-          output.push('return ');
-        }
-        output.push('templates[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n');
-      }
-    }
-  }
- 
-  opts.templates.forEach(function(template) {
-    processTemplate(template, opts.root);
-  });
- 
-  // Output the content
-  if (!opts.simple) {
-    if (opts.amd) {
-      if(opts.templates.length > 1 || (opts.templates.length == 1 && fs.statSync(opts.templates[0]).isDirectory())) {
-        if(opts.partial){
-          output.push('return Handlebars.partials;\n');
-        } else {
-          output.push('return templates;\n');
-        }
-      }
-      output.push('});');
-    } else if (!opts.commonjs) {
-      output.push('})();');
-    }
-  }
-  output = output.join('');
- 
-  if (opts.min) {
-    output = uglify.minify(output, {fromString: true}).code;
-  }
- 
-  Iif (opts.output) {
-    fs.writeFileSync(opts.output, output, 'utf8');
-  } else {
-    console.log(output);
-  }
-};
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/prettify.css b/node_modules/handlebars/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/node_modules/handlebars/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/node_modules/handlebars/coverage/lcov-report/prettify.js b/node_modules/handlebars/coverage/lcov-report/prettify.js deleted file mode 100644 index ef51e03..0000000 --- a/node_modules/handlebars/coverage/lcov-report/prettify.js +++ /dev/null @@ -1 +0,0 @@ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/node_modules/handlebars/coverage/lcov-report/spec/ast.js.html b/node_modules/handlebars/coverage/lcov-report/spec/ast.js.html deleted file mode 100644 index 1d933d3..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/ast.js.html +++ /dev/null @@ -1,1594 +0,0 @@ - - - - Code coverage report for spec/ast.js - - - - - - - -
-

Code coverage report for spec/ast.js

-

- - Statements: 28.99% (69 / 238)      - - - Branches: 100% (2 / 2)      - - - Functions: 30.88% (21 / 68)      - - - Lines: 28.99% (69 / 238)      - - Ignored: none      -

-
All files » spec/ » ast.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425  -3 -3 -1 -  -  -2 -  -  -  -  -  -  -1 -  -  -  -  -  -  -  -  -  -  -  -2 -1 -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -2 -2 -  -  -  -  -  -2 -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -2 -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -2 -  -2 -  -  -  -  -  -2 -  -2 -  -  -  -  -  -2 -  -2 -  -  -  -  -  -2 -  -2 -  -  -  -  -  -2 -  -2 -  -  -  -  -  -2 -  -2 -  -  -  -  -  -2 -  -2 -  -  -  -  -  -2 -  -2 -  -  -  -  -  -2 -  -2 -  -  -  -  -2 -  -2 -2 -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -2 -  -1 -  -  -  -  -  -  -2 -  -2 -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -  -  -  -2 -2 -2 -  -  -  -  -  -2 -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -2 -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -  -  -2 -2 -  -  -  -2 -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  - 
/*global Handlebars, handlebarsEnv, shouldThrow */
-describe('ast', function() {
-  if (!Handlebars.AST) {
-    return;
-  }
- 
-  var LOCATION_INFO = {
-    last_line: 0,
-    first_line: 0,
-    first_column: 0,
-    last_column: 0
-  };
- 
-  function testLocationInfoStorage(node){
-    var properties = [ 'firstLine', 'lastLine', 'firstColumn', 'lastColumn' ],
-        property,
-        propertiesLen = properties.length,
-        i;
- 
-    for (i = 0; i < propertiesLen; i++){
-      property = properties[0];
-      equals(node[property], 0);
-    }
-  }
- 
-  describe('MustacheNode', function() {
-    function testEscape(open, expected) {
-      var mustache = new handlebarsEnv.AST.MustacheNode([{}], {}, open, false);
-      equals(mustache.escaped, expected);
-    }
- 
-    it('should store args', function() {
-      var id = {isSimple: true},
-          hash = {},
-          mustache = new handlebarsEnv.AST.MustacheNode([id, 'param1'], hash, '', false, LOCATION_INFO);
-      equals(mustache.type, 'mustache');
-      equals(mustache.hash, hash);
-      equals(mustache.escaped, true);
-      equals(mustache.id, id);
-      equals(mustache.params.length, 1);
-      equals(mustache.params[0], 'param1');
-      equals(!!mustache.isHelper, true);
-      testLocationInfoStorage(mustache);
-    });
-    it('should accept token for escape', function() {
-      testEscape('{{', true);
-      testEscape('{{~', true);
-      testEscape('{{#', true);
-      testEscape('{{~#', true);
-      testEscape('{{/', true);
-      testEscape('{{~/', true);
-      testEscape('{{^', true);
-      testEscape('{{~^', true);
-      testEscape('{', true);
-      testEscape('{', true);
- 
-      testEscape('{{&', false);
-      testEscape('{{~&', false);
-      testEscape('{{{', false);
-      testEscape('{{~{', false);
-    });
-    it('should accept boolean for escape', function() {
-      testEscape(true, true);
-      testEscape({}, true);
- 
-      testEscape(false, false);
-      testEscape(undefined, false);
-    });
-  });
-  describe('BlockNode', function() {
-    it('should throw on mustache mismatch (old sexpr-less version)', function() {
-      shouldThrow(function() {
-        var mustacheNode = new handlebarsEnv.AST.MustacheNode([{ original: 'foo'}], null, '{{', {});
-        new handlebarsEnv.AST.BlockNode(mustacheNode, {}, {}, {path: {original: 'bar'}});
-      }, Handlebars.Exception, "foo doesn't match bar");
-    });
-    it('should throw on mustache mismatch', function() {
-      shouldThrow(function() {
-        var sexprNode = new handlebarsEnv.AST.SexprNode([{ original: 'foo'}], null);
-        var mustacheNode = new handlebarsEnv.AST.MustacheNode(sexprNode, null, '{{', {});
-        new handlebarsEnv.AST.BlockNode(mustacheNode, {}, {}, {path: {original: 'bar'}}, {first_line: 2, first_column: 2});
-      }, Handlebars.Exception, "foo doesn't match bar - 2:2");
-    });
- 
-    it('stores location info', function(){
-      var sexprNode = new handlebarsEnv.AST.SexprNode([{ original: 'foo'}], null);
-      var mustacheNode = new handlebarsEnv.AST.MustacheNode(sexprNode, null, '{{', {});
-      var block = new handlebarsEnv.AST.BlockNode(mustacheNode,
-                                                  {statements: [], strip: {}}, {statements: [], strip: {}},
-                                                  {
-                                                    strip: {},
-                                                    path: {original: 'foo'}
-                                                  },
-                                                  LOCATION_INFO);
-      testLocationInfoStorage(block);
-    });
-  });
-  describe('IdNode', function() {
-    it('should throw on invalid path', function() {
-      shouldThrow(function() {
-        new handlebarsEnv.AST.IdNode([
-          {part: 'foo'},
-          {part: '..'},
-          {part: 'bar'}
-        ], {first_line: 1, first_column: 1});
-      }, Handlebars.Exception, "Invalid path: foo.. - 1:1");
-      shouldThrow(function() {
-        new handlebarsEnv.AST.IdNode([
-          {part: 'foo'},
-          {part: '.'},
-          {part: 'bar'}
-        ], {first_line: 1, first_column: 1});
-      }, Handlebars.Exception, "Invalid path: foo. - 1:1");
-      shouldThrow(function() {
-        new handlebarsEnv.AST.IdNode([
-          {part: 'foo'},
-          {part: 'this'},
-          {part: 'bar'}
-        ], {first_line: 1, first_column: 1});
-      }, Handlebars.Exception, "Invalid path: foothis - 1:1");
-    });
- 
-    it('stores location info', function(){
-      var idNode = new handlebarsEnv.AST.IdNode([], LOCATION_INFO);
-      testLocationInfoStorage(idNode);
-    });
-  });
- 
-  describe("HashNode", function(){
- 
-    it('stores location info', function(){
-      var hash = new handlebarsEnv.AST.HashNode([], LOCATION_INFO);
-      testLocationInfoStorage(hash);
-    });
-  });
- 
-  describe("ContentNode", function(){
- 
-    it('stores location info', function(){
-      var content = new handlebarsEnv.AST.ContentNode("HI", LOCATION_INFO);
-      testLocationInfoStorage(content);
-    });
-  });
- 
-  describe("CommentNode", function(){
- 
-    it('stores location info', function(){
-      var comment = new handlebarsEnv.AST.CommentNode("HI", LOCATION_INFO);
-      testLocationInfoStorage(comment);
-    });
-  });
- 
-  describe("NumberNode", function(){
- 
-    it('stores location info', function(){
-      var integer = new handlebarsEnv.AST.NumberNode("6", LOCATION_INFO);
-      testLocationInfoStorage(integer);
-    });
-  });
- 
-  describe("StringNode", function(){
- 
-    it('stores location info', function(){
-      var string = new handlebarsEnv.AST.StringNode("6", LOCATION_INFO);
-      testLocationInfoStorage(string);
-    });
-  });
- 
-  describe("BooleanNode", function(){
- 
-    it('stores location info', function(){
-      var bool = new handlebarsEnv.AST.BooleanNode("true", LOCATION_INFO);
-      testLocationInfoStorage(bool);
-    });
-  });
- 
-  describe("DataNode", function(){
- 
-    it('stores location info', function(){
-      var data = new handlebarsEnv.AST.DataNode("YES", LOCATION_INFO);
-      testLocationInfoStorage(data);
-    });
-  });
- 
-  describe("PartialNameNode", function(){
- 
-    it('stores location info', function(){
-      var pnn = new handlebarsEnv.AST.PartialNameNode({original: "YES"}, LOCATION_INFO);
-      testLocationInfoStorage(pnn);
-    });
-  });
- 
-  describe("PartialNode", function(){
- 
-    it('stores location info', function(){
-      var pn = new handlebarsEnv.AST.PartialNode("so_partial", {}, {}, {}, LOCATION_INFO);
-      testLocationInfoStorage(pn);
-    });
-  });
-  describe("ProgramNode", function(){
- 
-    describe("storing location info", function(){
-      it("stores when `inverse` argument isn't passed", function(){
-        var pn = new handlebarsEnv.AST.ProgramNode(false, [], LOCATION_INFO);
-        testLocationInfoStorage(pn);
-      });
- 
-      it("stores when `inverse` or `stripInverse` arguments passed", function(){
-        var pn = new handlebarsEnv.AST.ProgramNode(false, [], {strip: {}}, undefined, LOCATION_INFO);
-        testLocationInfoStorage(pn);
- 
-        var clone = {
-          strip: {},
-          firstLine: 0,
-          lastLine: 0,
-          firstColumn: 0,
-          lastColumn: 0
-        };
-        pn = new handlebarsEnv.AST.ProgramNode(false, [], {strip: {}}, [ clone ], LOCATION_INFO);
-        testLocationInfoStorage(pn);
- 
-        // Assert that the newly created ProgramNode has the same location
-        // information as the inverse
-        testLocationInfoStorage(pn.inverse);
-      });
-    });
-  });
- 
-  describe("Line Numbers", function(){
-    var ast, statements;
- 
-    function testColumns(node, firstLine, lastLine, firstColumn, lastColumn){
-      equals(node.firstLine, firstLine);
-      equals(node.lastLine, lastLine);
-      equals(node.firstColumn, firstColumn);
-      equals(node.lastColumn, lastColumn);
-    }
- 
-    ast = Handlebars.parse("line 1 {{line1Token}}\n line 2 {{line2token}}\n line 3 {{#blockHelperOnLine3}}\nline 4{{line4token}}\n" +
-                           "line5{{else}}\n{{line6Token}}\n{{/blockHelperOnLine3}}");
-    statements = ast.statements;
- 
-    it('gets ContentNode line numbers', function(){
-      var contentNode = statements[0];
-      testColumns(contentNode, 1, 1, 0, 7);
-    });
- 
-    it('gets MustacheNode line numbers', function(){
-      var mustacheNode = statements[1];
-      testColumns(mustacheNode, 1, 1, 7, 21);
-    });
- 
-    it('gets line numbers correct when newlines appear', function(){
-      testColumns(statements[2], 1, 2, 21, 0);
-      testColumns(statements[3], 2, 2, 0, 8);
-    });
- 
-    it('gets MustacheNode line numbers correct across newlines', function(){
-      var secondMustacheNode = statements[4];
-      testColumns(secondMustacheNode, 2, 2, 8, 22);
-     });
- 
-     it('gets the block helper information correct', function(){
-       var blockHelperNode = statements[7];
-       testColumns(blockHelperNode, 3, 7, 8, 23);
-     });
- 
-     it('correctly records the line numbers of an inverse of a block helper', function(){
-       var blockHelperNode = statements[7],
-           inverse = blockHelperNode.inverse;
- 
-       testColumns(inverse, 5, 6, 13, 0);
-     });
-  });
- 
-  describe('standalone flags', function(){
-    describe('mustache', function() {
-      it('does not mark mustaches as standalone', function() {
-        var ast = Handlebars.parse('  {{comment}} ');
-        equals(ast.statements[0].omit, undefined);
-        equals(ast.statements[2].omit, undefined);
-      });
-    });
-    describe('blocks', function() {
-      it('marks block mustaches as standalone', function() {
-        var ast = Handlebars.parse(' {{# comment}} \nfoo\n {{else}} \n  bar \n  {{/comment}} '),
-            block = ast.statements[1];
- 
-        equals(ast.statements[0].omit, true);
- 
-        equals(block.program.statements[0].omit, true);
-        equals(block.program.statements[1].string, 'foo\n');
-        equals(block.program.statements[2].omit, true);
- 
-        equals(block.inverse.statements[0].omit, true);
-        equals(block.inverse.statements[1].string, '  bar \n');
-        equals(block.inverse.statements[2].omit, true);
- 
-        equals(ast.statements[2].omit, true);
-      });
-      it('marks initial block mustaches as standalone', function() {
-        var ast = Handlebars.parse('{{# comment}} \nfoo\n {{/comment}}'),
-            block = ast.statements[0];
- 
-        equals(block.program.statements[0].omit, true);
-        equals(block.program.statements[1].string, 'foo\n');
-        equals(block.program.statements[2].omit, true);
-      });
-      it('marks mustaches with children as standalone', function() {
-        var ast = Handlebars.parse('{{# comment}} \n{{foo}}\n {{/comment}}'),
-            block = ast.statements[0];
- 
-        equals(block.program.statements[0].omit, true);
-        equals(block.program.statements[1].id.original, 'foo');
-        equals(block.program.statements[2].omit, undefined);
-        equals(block.program.statements[3].omit, true);
-      });
-      it('marks nested block mustaches as standalone', function() {
-        var ast = Handlebars.parse('{{#foo}} \n{{# comment}} \nfoo\n {{else}} \n  bar \n  {{/comment}} \n{{/foo}}'),
-            statements = ast.statements[0].program.statements,
-            block = statements[1];
- 
-        equals(statements[0].omit, true);
- 
-        equals(block.program.statements[0].omit, true);
-        equals(block.program.statements[1].string, 'foo\n');
-        equals(block.program.statements[2].omit, true);
- 
-        equals(block.inverse.statements[0].omit, true);
-        equals(block.inverse.statements[1].string, '  bar \n');
-        equals(block.inverse.statements[2].omit, true);
- 
-        equals(statements[0].omit, true);
-      });
-      it('does not mark nested block mustaches as standalone', function() {
-        var ast = Handlebars.parse('{{#foo}} {{# comment}} \nfoo\n {{else}} \n  bar \n  {{/comment}} {{/foo}}'),
-            statements = ast.statements[0].program.statements,
-            block = statements[1];
- 
-        equals(statements[0].omit, undefined);
- 
-        equals(block.program.statements[0].omit, undefined);
-        equals(block.program.statements[1].string, 'foo\n');
-        equals(block.program.statements[2].omit, true);
- 
-        equals(block.inverse.statements[0].omit, true);
-        equals(block.inverse.statements[1].string, '  bar \n');
-        equals(block.inverse.statements[2].omit, undefined);
- 
-        equals(statements[0].omit, undefined);
-      });
-      it('does not mark nested initial block mustaches as standalone', function() {
-        var ast = Handlebars.parse('{{#foo}}{{# comment}} \nfoo\n {{else}} \n  bar \n  {{/comment}}{{/foo}}'),
-            statements = ast.statements[0].program.statements,
-            block = statements[0];
- 
-        equals(block.program.statements[0].omit, undefined);
-        equals(block.program.statements[1].string, 'foo\n');
-        equals(block.program.statements[2].omit, true);
- 
-        equals(block.inverse.statements[0].omit, true);
-        equals(block.inverse.statements[1].string, '  bar \n');
-        equals(block.inverse.statements[2].omit, undefined);
- 
-        equals(statements[0].omit, undefined);
-      });
- 
-      it('marks column 0 block mustaches as standalone', function() {
-        var ast = Handlebars.parse('test\n{{# comment}} \nfoo\n {{else}} \n  bar \n  {{/comment}} '),
-            block = ast.statements[1];
- 
-        equals(ast.statements[0].omit, undefined);
- 
-        equals(block.program.statements[0].omit, true);
-        equals(block.program.statements[1].string, 'foo\n');
-        equals(block.program.statements[2].omit, true);
- 
-        equals(block.inverse.statements[0].omit, true);
-        equals(block.inverse.statements[1].string, '  bar \n');
-        equals(block.inverse.statements[2].omit, true);
- 
-        equals(ast.statements[2].omit, true);
-      });
-    });
-    describe('partials', function() {
-      it('marks partial as standalone', function() {
-        var ast = Handlebars.parse('{{> partial }} ');
-        equals(ast.statements[1].omit, true);
-      });
-      it('marks indented partial as standalone', function() {
-        var ast = Handlebars.parse('  {{> partial }} ');
-        equals(ast.statements[0].omit, true);
-        equals(ast.statements[1].indent, '  ');
-        equals(ast.statements[2].omit, true);
-      });
-      it('marks those around content as not standalone', function() {
-        var ast = Handlebars.parse('a{{> partial }}');
-        equals(ast.statements[0].omit, undefined);
- 
-        ast = Handlebars.parse('{{> partial }}a');
-        equals(ast.statements[1].omit, undefined);
-      });
-    });
-    describe('comments', function() {
-      it('marks comment as standalone', function() {
-        var ast = Handlebars.parse('{{! comment }} ');
-        equals(ast.statements[1].omit, true);
-      });
-      it('marks indented comment as standalone', function() {
-        var ast = Handlebars.parse('  {{! comment }} ');
-        equals(ast.statements[0].omit, true);
-        equals(ast.statements[2].omit, true);
-      });
-      it('marks those around content as not standalone', function() {
-        var ast = Handlebars.parse('a{{! comment }}');
-        equals(ast.statements[0].omit, undefined);
- 
-        ast = Handlebars.parse('{{! comment }}a');
-        equals(ast.statements[1].omit, undefined);
-      });
-    });
-  });
-});
- 
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/basic.js.html b/node_modules/handlebars/coverage/lcov-report/spec/basic.js.html deleted file mode 100644 index 5c90a38..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/basic.js.html +++ /dev/null @@ -1,973 +0,0 @@ - - - - Code coverage report for spec/basic.js - - - - - - - -
-

Code coverage report for spec/basic.js

-

- - Statements: 29.31% (34 / 116)      - - - Branches: 100% (0 / 0)      - - - Functions: 2.13% (1 / 47)      - - - Lines: 30.09% (34 / 113)      - - Ignored: none      -

-
All files » spec/ » basic.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218  -3 -  -3 -  -  -  -3 -3 -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -3 -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  - 
/*global CompilerContext, Handlebars, beforeEach, shouldCompileTo */
-global.handlebarsEnv = null;
- 
-beforeEach(function() {
-  global.handlebarsEnv = Handlebars.create();
-});
- 
-describe("basic context", function() {
-  it("most basic", function() {
-    shouldCompileTo("{{foo}}", { foo: "foo" }, "foo");
-  });
- 
-  it("escaping", function() {
-    shouldCompileTo("\\{{foo}}", { foo: "food" }, "{{foo}}");
-    shouldCompileTo("content \\{{foo}}", { foo: "food" }, "content {{foo}}");
-    shouldCompileTo("\\\\{{foo}}", { foo: "food" }, "\\food");
-    shouldCompileTo("content \\\\{{foo}}", { foo: "food" }, "content \\food");
-    shouldCompileTo("\\\\ {{foo}}", { foo: "food" }, "\\\\ food");
-  });
- 
-  it("compiling with a basic context", function() {
-    shouldCompileTo("Goodbye\n{{cruel}}\n{{world}}!", {cruel: "cruel", world: "world"}, "Goodbye\ncruel\nworld!",
-                    "It works if all the required keys are provided");
-  });
- 
-  it("compiling with an undefined context", function() {
-    shouldCompileTo("Goodbye\n{{cruel}}\n{{world.bar}}!", undefined, "Goodbye\n\n!");
- 
-    shouldCompileTo("{{#unless foo}}Goodbye{{../test}}{{test2}}{{/unless}}", undefined, "Goodbye");
-  });
- 
-  it("comments", function() {
-    shouldCompileTo("{{! Goodbye}}Goodbye\n{{cruel}}\n{{world}}!",
-      {cruel: "cruel", world: "world"}, "Goodbye\ncruel\nworld!",
-      "comments are ignored");
-  });
- 
-  it("boolean", function() {
-    var string   = "{{#goodbye}}GOODBYE {{/goodbye}}cruel {{world}}!";
-    shouldCompileTo(string, {goodbye: true, world: "world"}, "GOODBYE cruel world!",
-                    "booleans show the contents when true");
- 
-    shouldCompileTo(string, {goodbye: false, world: "world"}, "cruel world!",
-                    "booleans do not show the contents when false");
-  });
- 
-  it("zeros", function() {
-    shouldCompileTo("num1: {{num1}}, num2: {{num2}}", {num1: 42, num2: 0},
-        "num1: 42, num2: 0");
-    shouldCompileTo("num: {{.}}", 0, "num: 0");
-    shouldCompileTo("num: {{num1/num2}}", {num1: {num2: 0}}, "num: 0");
-  });
- 
-  it("newlines", function() {
-      shouldCompileTo("Alan's\nTest", {}, "Alan's\nTest");
-      shouldCompileTo("Alan's\rTest", {}, "Alan's\rTest");
-  });
- 
-  it("escaping text", function() {
-    shouldCompileTo("Awesome's", {}, "Awesome's", "text is escaped so that it doesn't get caught on single quotes");
-    shouldCompileTo("Awesome\\", {}, "Awesome\\", "text is escaped so that the closing quote can't be ignored");
-    shouldCompileTo("Awesome\\\\ foo", {}, "Awesome\\\\ foo", "text is escaped so that it doesn't mess up backslashes");
-    shouldCompileTo("Awesome {{foo}}", {foo: '\\'}, "Awesome \\", "text is escaped so that it doesn't mess up backslashes");
-    shouldCompileTo(' " " ', {}, ' " " ', "double quotes never produce invalid javascript");
-  });
- 
-  it("escaping expressions", function() {
-   shouldCompileTo("{{{awesome}}}", {awesome: "&\"\\<>"}, '&\"\\<>',
-          "expressions with 3 handlebars aren't escaped");
- 
-   shouldCompileTo("{{&awesome}}", {awesome: "&\"\\<>"}, '&\"\\<>',
-          "expressions with {{& handlebars aren't escaped");
- 
-   shouldCompileTo("{{awesome}}", {awesome: "&\"'`\\<>"}, '&amp;&quot;&#x27;&#x60;\\&lt;&gt;',
-          "by default expressions should be escaped");
- 
-   shouldCompileTo("{{awesome}}", {awesome: "Escaped, <b> looks like: &lt;b&gt;"}, 'Escaped, &lt;b&gt; looks like: &amp;lt;b&amp;gt;',
-          "escaping should properly handle amperstands");
-  });
- 
-  it("functions returning safestrings shouldn't be escaped", function() {
-    var hash = {awesome: function() { return new Handlebars.SafeString("&\"\\<>"); }};
-    shouldCompileTo("{{awesome}}", hash, '&\"\\<>',
-        "functions returning safestrings aren't escaped");
-  });
- 
-  it("functions", function() {
-    shouldCompileTo("{{awesome}}", {awesome: function() { return "Awesome"; }}, "Awesome",
-                    "functions are called and render their output");
-    shouldCompileTo("{{awesome}}", {awesome: function() { return this.more; }, more:  "More awesome"}, "More awesome",
-                    "functions are bound to the context");
-  });
- 
-  it("functions with context argument", function() {
-    shouldCompileTo("{{awesome frank}}",
-        {awesome: function(context) { return context; },
-          frank: "Frank"},
-        "Frank", "functions are called with context arguments");
-  });
-  it("pathed functions with context argument", function() {
-    shouldCompileTo("{{bar.awesome frank}}",
-        {bar: {awesome: function(context) { return context; }},
-          frank: "Frank"},
-        "Frank", "functions are called with context arguments");
-  });
-  it("depthed functions with context argument", function() {
-    shouldCompileTo("{{#with frank}}{{../awesome .}}{{/with}}",
-        {awesome: function(context) { return context; },
-          frank: "Frank"},
-        "Frank", "functions are called with context arguments");
-  });
- 
-  it("block functions with context argument", function() {
-    shouldCompileTo("{{#awesome 1}}inner {{.}}{{/awesome}}",
-        {awesome: function(context, options) { return options.fn(context); }},
-        "inner 1", "block functions are called with context and options");
-  });
- 
-  it("depthed block functions with context argument", function() {
-    shouldCompileTo("{{#with value}}{{#../awesome 1}}inner {{.}}{{/../awesome}}{{/with}}",
-        {value: true, awesome: function(context, options) { return options.fn(context); }},
-        "inner 1", "block functions are called with context and options");
-  });
- 
-  it("block functions without context argument", function() {
-    shouldCompileTo("{{#awesome}}inner{{/awesome}}",
-        {awesome: function(options) { return options.fn(this); }},
-        "inner", "block functions are called with options");
-  });
-  it("pathed block functions without context argument", function() {
-    shouldCompileTo("{{#foo.awesome}}inner{{/foo.awesome}}",
-        {foo: {awesome: function(options) { return this; }}},
-        "inner", "block functions are called with options");
-  });
-  it("depthed block functions without context argument", function() {
-    shouldCompileTo("{{#with value}}{{#../awesome}}inner{{/../awesome}}{{/with}}",
-        {value: true, awesome: function(options) { return this; }},
-        "inner", "block functions are called with options");
-  });
- 
- 
-  it("paths with hyphens", function() {
-    shouldCompileTo("{{foo-bar}}", {"foo-bar": "baz"}, "baz", "Paths can contain hyphens (-)");
-    shouldCompileTo("{{foo.foo-bar}}", {foo: {"foo-bar": "baz"}}, "baz", "Paths can contain hyphens (-)");
-    shouldCompileTo("{{foo/foo-bar}}", {foo: {"foo-bar": "baz"}}, "baz", "Paths can contain hyphens (-)");
-  });
- 
-  it("nested paths", function() {
-    shouldCompileTo("Goodbye {{alan/expression}} world!", {alan: {expression: "beautiful"}},
-                    "Goodbye beautiful world!", "Nested paths access nested objects");
-  });
- 
-  it("nested paths with empty string value", function() {
-    shouldCompileTo("Goodbye {{alan/expression}} world!", {alan: {expression: ""}},
-                    "Goodbye  world!", "Nested paths access nested objects with empty string");
-  });
- 
-  it("literal paths", function() {
-    shouldCompileTo("Goodbye {{[@alan]/expression}} world!", {"@alan": {expression: "beautiful"}},
-        "Goodbye beautiful world!", "Literal paths can be used");
-    shouldCompileTo("Goodbye {{[foo bar]/expression}} world!", {"foo bar": {expression: "beautiful"}},
-        "Goodbye beautiful world!", "Literal paths can be used");
-  });
- 
-  it('literal references', function() {
-    shouldCompileTo("Goodbye {{[foo bar]}} world!", {"foo bar": "beautiful"},
-        "Goodbye beautiful world!", "Literal paths can be used");
-  });
- 
-  it("that current context path ({{.}}) doesn't hit helpers", function() {
-    shouldCompileTo("test: {{.}}", [null, {helper: "awesome"}], "test: ");
-  });
- 
-  it("complex but empty paths", function() {
-    shouldCompileTo("{{person/name}}", {person: {name: null}}, "");
-    shouldCompileTo("{{person/name}}", {person: {}}, "");
-  });
- 
-  it("this keyword in paths", function() {
-    var string = "{{#goodbyes}}{{this}}{{/goodbyes}}";
-    var hash = {goodbyes: ["goodbye", "Goodbye", "GOODBYE"]};
-    shouldCompileTo(string, hash, "goodbyeGoodbyeGOODBYE",
-      "This keyword in paths evaluates to current context");
- 
-    string = "{{#hellos}}{{this/text}}{{/hellos}}";
-    hash = {hellos: [{text: "hello"}, {text: "Hello"}, {text: "HELLO"}]};
-    shouldCompileTo(string, hash, "helloHelloHELLO", "This keyword evaluates in more complex paths");
-  });
- 
-  it("this keyword nested inside path", function() {
-    var string = "{{#hellos}}{{text/this/foo}}{{/hellos}}";
-    shouldThrow(function() {
-      CompilerContext.compile(string);
-    }, Error);
-  });
- 
-  it("this keyword in helpers", function() {
-    var helpers = {foo: function(value) {
-        return 'bar ' + value;
-    }};
-    var string = "{{#goodbyes}}{{foo this}}{{/goodbyes}}";
-    var hash = {goodbyes: ["goodbye", "Goodbye", "GOODBYE"]};
-    shouldCompileTo(string, [hash, helpers], "bar goodbyebar Goodbyebar GOODBYE",
-      "This keyword in paths evaluates to current context");
- 
-    string = "{{#hellos}}{{foo this/text}}{{/hellos}}";
-    hash = {hellos: [{text: "hello"}, {text: "Hello"}, {text: "HELLO"}]};
-    shouldCompileTo(string, [hash, helpers], "bar hellobar Hellobar HELLO", "This keyword evaluates in more complex paths");
-  });
- 
-  it("this keyword nested inside helpers param", function() {
-    var string = "{{#hellos}}{{foo text/this/foo}}{{/hellos}}";
-    shouldThrow(function() {
-      CompilerContext.compile(string);
-    }, Error);
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/blocks.js.html b/node_modules/handlebars/coverage/lcov-report/spec/blocks.js.html deleted file mode 100644 index fe8e9ab..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/blocks.js.html +++ /dev/null @@ -1,676 +0,0 @@ - - - - Code coverage report for spec/blocks.js - - - - - - - -
-

Code coverage report for spec/blocks.js

-

- - Statements: 29.69% (19 / 64)      - - - Branches: 100% (0 / 0)      - - - Functions: 20% (4 / 20)      - - - Lines: 29.69% (19 / 64)      - - Ignored: none      -

-
All files » spec/ » blocks.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119  -3 -3 -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  -3 -3 -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -  -  - 
/*global CompilerContext, shouldCompileTo, shouldThrow */
-describe('blocks', function() {
-  it("array", function() {
-    var string   = "{{#goodbyes}}{{text}}! {{/goodbyes}}cruel {{world}}!";
-    var hash     = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
-    shouldCompileTo(string, hash, "goodbye! Goodbye! GOODBYE! cruel world!",
-                    "Arrays iterate over the contents when not empty");
- 
-    shouldCompileTo(string, {goodbyes: [], world: "world"}, "cruel world!",
-                    "Arrays ignore the contents when empty");
- 
-  });
- 
-  it("array with @index", function() {
-    var string = "{{#goodbyes}}{{@index}}. {{text}}! {{/goodbyes}}cruel {{world}}!";
-    var hash   = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
- 
-    var template = CompilerContext.compile(string);
-    var result = template(hash);
- 
-    equal(result, "0. goodbye! 1. Goodbye! 2. GOODBYE! cruel world!", "The @index variable is used");
-  });
-  
-  it("empty block", function() {
-    var string   = "{{#goodbyes}}{{/goodbyes}}cruel {{world}}!";
-    var hash     = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
-    shouldCompileTo(string, hash, "cruel world!",
-                    "Arrays iterate over the contents when not empty");
- 
-    shouldCompileTo(string, {goodbyes: [], world: "world"}, "cruel world!",
-                    "Arrays ignore the contents when empty");
-  });
- 
-  it("block with complex lookup", function() {
-    var string = "{{#goodbyes}}{{text}} cruel {{../name}}! {{/goodbyes}}";
-    var hash     = {name: "Alan", goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}]};
- 
-    shouldCompileTo(string, hash, "goodbye cruel Alan! Goodbye cruel Alan! GOODBYE cruel Alan! ",
-                    "Templates can access variables in contexts up the stack with relative path syntax");
-  });
- 
-  it("block with complex lookup using nested context", function() {
-    var string = "{{#goodbyes}}{{text}} cruel {{foo/../name}}! {{/goodbyes}}";
- 
-    shouldThrow(function() {
-      CompilerContext.compile(string);
-    }, Error);
-  });
- 
-  it("block with deep nested complex lookup", function() {
-    var string = "{{#outer}}Goodbye {{#inner}}cruel {{../../omg}}{{/inner}}{{/outer}}";
-    var hash = {omg: "OMG!", outer: [{ inner: [{ text: "goodbye" }] }] };
- 
-    shouldCompileTo(string, hash, "Goodbye cruel OMG!");
-  });
- 
-  describe('inverted sections', function() {
-    it("inverted sections with unset value", function() {
-      var string = "{{#goodbyes}}{{this}}{{/goodbyes}}{{^goodbyes}}Right On!{{/goodbyes}}";
-      var hash = {};
-      shouldCompileTo(string, hash, "Right On!", "Inverted section rendered when value isn't set.");
-    });
- 
-    it("inverted section with false value", function() {
-      var string = "{{#goodbyes}}{{this}}{{/goodbyes}}{{^goodbyes}}Right On!{{/goodbyes}}";
-      var hash = {goodbyes: false};
-      shouldCompileTo(string, hash, "Right On!", "Inverted section rendered when value is false.");
-    });
- 
-    it("inverted section with empty set", function() {
-      var string = "{{#goodbyes}}{{this}}{{/goodbyes}}{{^goodbyes}}Right On!{{/goodbyes}}";
-      var hash = {goodbyes: []};
-      shouldCompileTo(string, hash, "Right On!", "Inverted section rendered when value is empty set.");
-    });
- 
-    it("block inverted sections", function() {
-      shouldCompileTo("{{#people}}{{name}}{{^}}{{none}}{{/people}}", {none: "No people"},
-        "No people");
-    });
- 
-    it("block inverted sections with empty arrays", function() {
-      shouldCompileTo("{{#people}}{{name}}{{^}}{{none}}{{/people}}", {none: "No people", people: []},
-        "No people");
-    });
-  });
- 
-  describe('standalone sections', function() {
-    it('block standalone else sections', function() {
-      shouldCompileTo('{{#people}}\n{{name}}\n{{^}}\n{{none}}\n{{/people}}\n', {none: 'No people'},
-        'No people\n');
-      shouldCompileTo('{{#none}}\n{{.}}\n{{^}}\n{{none}}\n{{/none}}\n', {none: 'No people'},
-        'No people\n');
-      shouldCompileTo('\n{{#people}}\n{{name}}\n{{^}}\n{{none}}\n{{/people}}\n', {none: 'No people'},
-        'No people\n');
-    });
-  });
- 
-  describe('compat mode', function() {
-    it("block with deep recursive lookup lookup", function() {
-      var string = "{{#outer}}Goodbye {{#inner}}cruel {{omg}}{{/inner}}{{/outer}}";
-      var hash = {omg: "OMG!", outer: [{ inner: [{ text: "goodbye" }] }] };
- 
-      shouldCompileTo(string, [hash, undefined, undefined, true], "Goodbye cruel OMG!");
-    });
-    it("block with deep recursive pathed lookup", function() {
-      var string = "{{#outer}}Goodbye {{#inner}}cruel {{omg.yes}}{{/inner}}{{/outer}}";
-      var hash = {omg: {yes: "OMG!"}, outer: [{ inner: [{ yes: 'no', text: "goodbye" }] }] };
- 
-      shouldCompileTo(string, [hash, undefined, undefined, true], "Goodbye cruel OMG!");
-    });
-    it("block with missed recursive lookup", function() {
-      var string = "{{#outer}}Goodbye {{#inner}}cruel {{omg.yes}}{{/inner}}{{/outer}}";
-      var hash = {omg: {no: "OMG!"}, outer: [{ inner: [{ yes: 'no', text: "goodbye" }] }] };
- 
-      shouldCompileTo(string, [hash, undefined, undefined, true], "Goodbye cruel ");
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/builtins.js.html b/node_modules/handlebars/coverage/lcov-report/spec/builtins.js.html deleted file mode 100644 index 73de04c..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/builtins.js.html +++ /dev/null @@ -1,1018 +0,0 @@ - - - - Code coverage report for spec/builtins.js - - - - - - - -
-

Code coverage report for spec/builtins.js

-

- - Statements: 20% (27 / 135)      - - - Branches: 0% (0 / 4)      - - - Functions: 13.89% (5 / 36)      - - - Lines: 20.93% (27 / 129)      - - Ignored: none      -

-
All files » spec/ » builtins.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233  -3 -3 -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -3 -  -  -  -3 -  -  -  -  -  -3 -3 -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  - 
/*global CompilerContext, shouldCompileTo, shouldThrow, compileWithPartials, handlebarsEnv */
-describe('builtin helpers', function() {
-  describe('#if', function() {
-    it("if", function() {
-      var string   = "{{#if goodbye}}GOODBYE {{/if}}cruel {{world}}!";
-      shouldCompileTo(string, {goodbye: true, world: "world"}, "GOODBYE cruel world!",
-                      "if with boolean argument shows the contents when true");
-      shouldCompileTo(string, {goodbye: "dummy", world: "world"}, "GOODBYE cruel world!",
-                      "if with string argument shows the contents");
-      shouldCompileTo(string, {goodbye: false, world: "world"}, "cruel world!",
-                      "if with boolean argument does not show the contents when false");
-      shouldCompileTo(string, {world: "world"}, "cruel world!",
-                      "if with undefined does not show the contents");
-      shouldCompileTo(string, {goodbye: ['foo'], world: "world"}, "GOODBYE cruel world!",
-                      "if with non-empty array shows the contents");
-      shouldCompileTo(string, {goodbye: [], world: "world"}, "cruel world!",
-                      "if with empty array does not show the contents");
-      shouldCompileTo(string, {goodbye: 0, world: "world"}, "cruel world!",
-                      "if with zero does not show the contents");
-      shouldCompileTo("{{#if goodbye includeZero=true}}GOODBYE {{/if}}cruel {{world}}!",
-                      {goodbye: 0, world: "world"}, "GOODBYE cruel world!",
-                      "if with zero does not show the contents");
-    });
- 
-    it("if with function argument", function() {
-      var string   = "{{#if goodbye}}GOODBYE {{/if}}cruel {{world}}!";
-      shouldCompileTo(string, {goodbye: function() {return true;}, world: "world"}, "GOODBYE cruel world!",
-                      "if with function shows the contents when function returns true");
-      shouldCompileTo(string, {goodbye: function() {return this.world;}, world: "world"}, "GOODBYE cruel world!",
-                      "if with function shows the contents when function returns string");
-      shouldCompileTo(string, {goodbye: function() {return false;}, world: "world"}, "cruel world!",
-                      "if with function does not show the contents when returns false");
-      shouldCompileTo(string, {goodbye: function() {return this.foo;}, world: "world"}, "cruel world!",
-                      "if with function does not show the contents when returns undefined");
-    });
-  });
- 
-  describe('#with', function() {
-    it("with", function() {
-      var string = "{{#with person}}{{first}} {{last}}{{/with}}";
-      shouldCompileTo(string, {person: {first: "Alan", last: "Johnson"}}, "Alan Johnson");
-    });
-    it("with with function argument", function() {
-      var string = "{{#with person}}{{first}} {{last}}{{/with}}";
-      shouldCompileTo(string, {person: function() { return {first: "Alan", last: "Johnson"};}}, "Alan Johnson");
-    });
-    it("with with else", function() {
-      var string = "{{#with person}}Person is present{{else}}Person is not present{{/with}}";
-      shouldCompileTo(string, {}, "Person is not present");
-    });
-  });
- 
-  describe('#each', function() {
-    beforeEach(function() {
-      handlebarsEnv.registerHelper('detectDataInsideEach', function(options) {
-        return options.data && options.data.exclaim;
-      });
-    });
- 
-    it("each", function() {
-      var string   = "{{#each goodbyes}}{{text}}! {{/each}}cruel {{world}}!";
-      var hash     = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
-      shouldCompileTo(string, hash, "goodbye! Goodbye! GOODBYE! cruel world!",
-                      "each with array argument iterates over the contents when not empty");
-      shouldCompileTo(string, {goodbyes: [], world: "world"}, "cruel world!",
-                      "each with array argument ignores the contents when empty");
-    });
- 
-    it("each with an object and @key", function() {
-      var string   = "{{#each goodbyes}}{{@key}}. {{text}}! {{/each}}cruel {{world}}!";
-      var hash     = {goodbyes: {"<b>#1</b>": {text: "goodbye"}, 2: {text: "GOODBYE"}}, world: "world"};
- 
-      // Object property iteration order is undefined according to ECMA spec,
-      // so we need to check both possible orders
-      // @see http://stackoverflow.com/questions/280713/elements-order-in-a-for-in-loop
-      var actual = compileWithPartials(string, hash);
-      var expected1 = "&lt;b&gt;#1&lt;/b&gt;. goodbye! 2. GOODBYE! cruel world!";
-      var expected2 = "2. GOODBYE! &lt;b&gt;#1&lt;/b&gt;. goodbye! cruel world!";
- 
-      equals(actual === expected1 || actual === expected2, true, "each with object argument iterates over the contents when not empty");
-      shouldCompileTo(string, {goodbyes: [], world: "world"}, "cruel world!",
-                      "each with object argument ignores the contents when empty");
-    });
- 
-    it("each with @index", function() {
-      var string = "{{#each goodbyes}}{{@index}}. {{text}}! {{/each}}cruel {{world}}!";
-      var hash   = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, "0. goodbye! 1. Goodbye! 2. GOODBYE! cruel world!", "The @index variable is used");
-    });
- 
-    it("each with nested @index", function() {
-      var string = "{{#each goodbyes}}{{@index}}. {{text}}! {{#each ../goodbyes}}{{@index}} {{/each}}After {{@index}} {{/each}}{{@index}}cruel {{world}}!";
-      var hash   = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, "0. goodbye! 0 1 2 After 0 1. Goodbye! 0 1 2 After 1 2. GOODBYE! 0 1 2 After 2 cruel world!", "The @index variable is used");
-    });
- 
-    it("each object with @index", function() {
-      var string = "{{#each goodbyes}}{{@index}}. {{text}}! {{/each}}cruel {{world}}!";
-      var hash   = {goodbyes: {'a': {text: "goodbye"}, b: {text: "Goodbye"}, c: {text: "GOODBYE"}}, world: "world"};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, "0. goodbye! 1. Goodbye! 2. GOODBYE! cruel world!", "The @index variable is used");
-    });
- 
- 
-    it("each with @first", function() {
-      var string = "{{#each goodbyes}}{{#if @first}}{{text}}! {{/if}}{{/each}}cruel {{world}}!";
-      var hash   = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, "goodbye! cruel world!", "The @first variable is used");
-    });
- 
-    it("each with nested @first", function() {
-      var string = "{{#each goodbyes}}({{#if @first}}{{text}}! {{/if}}{{#each ../goodbyes}}{{#if @first}}{{text}}!{{/if}}{{/each}}{{#if @first}} {{text}}!{{/if}}) {{/each}}cruel {{world}}!";
-      var hash   = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, "(goodbye! goodbye! goodbye!) (goodbye!) (goodbye!) cruel world!", "The @first variable is used");
-    });
- 
-    it("each object with @first", function() {
-      var string = "{{#each goodbyes}}{{#if @first}}{{text}}! {{/if}}{{/each}}cruel {{world}}!";
-      var hash   = {goodbyes: {'foo': {text: "goodbye"}, bar: {text: "Goodbye"}}, world: "world"};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, "goodbye! cruel world!", "The @first variable is used");
-    });
- 
-    it("each with @last", function() {
-      var string = "{{#each goodbyes}}{{#if @last}}{{text}}! {{/if}}{{/each}}cruel {{world}}!";
-      var hash   = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, "GOODBYE! cruel world!", "The @last variable is used");
-    });
- 
-    it("each with nested @last", function() {
-      var string = "{{#each goodbyes}}({{#if @last}}{{text}}! {{/if}}{{#each ../goodbyes}}{{#if @last}}{{text}}!{{/if}}{{/each}}{{#if @last}} {{text}}!{{/if}}) {{/each}}cruel {{world}}!";
-      var hash   = {goodbyes: [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}], world: "world"};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, "(GOODBYE!) (GOODBYE!) (GOODBYE! GOODBYE! GOODBYE!) cruel world!", "The @last variable is used");
-    });
- 
-    it("each with function argument", function() {
-      var string = "{{#each goodbyes}}{{text}}! {{/each}}cruel {{world}}!";
-      var hash   = {goodbyes: function () { return [{text: "goodbye"}, {text: "Goodbye"}, {text: "GOODBYE"}];}, world: "world"};
-      shouldCompileTo(string, hash, "goodbye! Goodbye! GOODBYE! cruel world!",
-                "each with array function argument iterates over the contents when not empty");
-      shouldCompileTo(string, {goodbyes: [], world: "world"}, "cruel world!",
-                "each with array function argument ignores the contents when empty");
-    });
- 
-    it("data passed to helpers", function() {
-      var string = "{{#each letters}}{{this}}{{detectDataInsideEach}}{{/each}}";
-      var hash = {letters: ['a', 'b', 'c']};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash, {
-        data: {
-          exclaim: '!'
-        }
-      });
-      equal(result, 'a!b!c!', 'should output data');
-    });
- 
-    it("each on implicit context", function() {
-      shouldThrow(function() {
-        var template = CompilerContext.compile("{{#each}}{{text}}! {{/each}}cruel world!");
-        template({});
-      }, handlebarsEnv.Exception, 'Must pass iterator to #each');
-    });
-  });
- 
-  it("#log", function() {
-    var string = "{{log blah}}";
-    var hash   = { blah: "whee" };
- 
-    var levelArg, logArg;
-    handlebarsEnv.log = function(level, arg){
-      levelArg = level;
-      logArg = arg;
-    };
- 
-    shouldCompileTo(string, hash, "", "log should not display");
-    equals(1, levelArg, "should call log with 1");
-    equals("whee", logArg, "should call log with 'whee'");
-  });
- 
- 
-  describe('#lookup', function() {
-    it('should lookup arbitrary content', function() {
-      var string = '{{#each goodbyes}}{{lookup ../data .}}{{/each}}',
-          hash   = {goodbyes: [0, 1], data: ['foo', 'bar']};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, 'foobar');
-    });
-    it('should not fail on undefined value', function() {
-      var string = '{{#each goodbyes}}{{lookup ../bar .}}{{/each}}',
-          hash   = {goodbyes: [0, 1], data: ['foo', 'bar']};
- 
-      var template = CompilerContext.compile(string);
-      var result = template(hash);
- 
-      equal(result, '');
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/data.js.html b/node_modules/handlebars/coverage/lcov-report/spec/data.js.html deleted file mode 100644 index 1db88da..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/data.js.html +++ /dev/null @@ -1,1093 +0,0 @@ - - - - Code coverage report for spec/data.js - - - - - - - -
-

Code coverage report for spec/data.js

-

- - Statements: 17.6% (22 / 125)      - - - Branches: 0% (0 / 12)      - - - Functions: 6.98% (3 / 43)      - - - Lines: 17.6% (22 / 125)      - - Ignored: none      -

-
All files » spec/ » data.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258  -3 -3 -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/*global CompilerContext, Handlebars, handlebarsEnv, shouldThrow */
-describe('data', function() {
-  it("passing in data to a compiled function that expects data - works with helpers", function() {
-    var template = CompilerContext.compile("{{hello}}", {data: true});
- 
-    var helpers = {
-      hello: function(options) {
-        return options.data.adjective + " "  + this.noun;
-      }
-    };
- 
-    var result = template({noun: "cat"}, {helpers: helpers, data: {adjective: "happy"}});
-    equals("happy cat", result, "Data output by helper");
-  });
- 
-  it("data can be looked up via @foo", function() {
-    var template = CompilerContext.compile("{{@hello}}");
-    var result = template({}, { data: { hello: "hello" } });
-    equals("hello", result, "@foo retrieves template data");
-  });
- 
-  it("deep @foo triggers automatic top-level data", function() {
-    var template = CompilerContext.compile('{{#let world="world"}}{{#if foo}}{{#if foo}}Hello {{@world}}{{/if}}{{/if}}{{/let}}');
- 
-    var helpers = Handlebars.createFrame(handlebarsEnv.helpers);
- 
-    helpers.let = function(options) {
-      var frame = Handlebars.createFrame(options.data);
- 
-      for (var prop in options.hash) {
-        frame[prop] = options.hash[prop];
-      }
-      return options.fn(this, { data: frame });
-    };
- 
-    var result = template({ foo: true }, { helpers: helpers });
-    equals("Hello world", result, "Automatic data was triggered");
-  });
- 
-  it("parameter data can be looked up via @foo", function() {
-    var template = CompilerContext.compile("{{hello @world}}");
-    var helpers = {
-      hello: function(noun) {
-        return "Hello " + noun;
-      }
-    };
- 
-    var result = template({}, { helpers: helpers, data: { world: "world" } });
-    equals("Hello world", result, "@foo as a parameter retrieves template data");
-  });
- 
-  it("hash values can be looked up via @foo", function() {
-    var template = CompilerContext.compile("{{hello noun=@world}}");
-    var helpers = {
-      hello: function(options) {
-        return "Hello " + options.hash.noun;
-      }
-    };
- 
-    var result = template({}, { helpers: helpers, data: { world: "world" } });
-    equals("Hello world", result, "@foo as a parameter retrieves template data");
-  });
- 
-  it("nested parameter data can be looked up via @foo.bar", function() {
-    var template = CompilerContext.compile("{{hello @world.bar}}");
-    var helpers = {
-      hello: function(noun) {
-        return "Hello " + noun;
-      }
-    };
- 
-    var result = template({}, { helpers: helpers, data: { world: {bar: "world" } } });
-    equals("Hello world", result, "@foo as a parameter retrieves template data");
-  });
- 
-  it("nested parameter data does not fail with @world.bar", function() {
-    var template = CompilerContext.compile("{{hello @world.bar}}");
-    var helpers = {
-      hello: function(noun) {
-        return "Hello " + noun;
-      }
-    };
- 
-    var result = template({}, { helpers: helpers, data: { foo: {bar: "world" } } });
-    equals("Hello undefined", result, "@foo as a parameter retrieves template data");
-  });
- 
-  it("parameter data throws when using complex scope references", function() {
-    var string = "{{#goodbyes}}{{text}} cruel {{@foo/../name}}! {{/goodbyes}}";
- 
-    shouldThrow(function() {
-      CompilerContext.compile(string);
-    }, Error);
-  });
- 
-  it("data is inherited downstream", function() {
-    var template = CompilerContext.compile("{{#let foo=1 bar=2}}{{#let foo=bar.baz}}{{@bar}}{{@foo}}{{/let}}{{@foo}}{{/let}}", { data: true });
-    var helpers = {
-      let: function(options) {
-        var frame = Handlebars.createFrame(options.data);
-        for (var prop in options.hash) {
-          frame[prop] = options.hash[prop];
-        }
-        return options.fn(this, {data: frame});
-      }
-    };
- 
-    var result = template({ bar: { baz: "hello world" } }, { helpers: helpers, data: {} });
-    equals("2hello world1", result, "data variables are inherited downstream");
-  });
- 
-  it("passing in data to a compiled function that expects data - works with helpers in partials", function() {
-    var template = CompilerContext.compile("{{>my_partial}}", {data: true});
- 
-    var partials = {
-      my_partial: CompilerContext.compile("{{hello}}", {data: true})
-    };
- 
-    var helpers = {
-      hello: function(options) {
-        return options.data.adjective + " "  + this.noun;
-      }
-    };
- 
-    var result = template({noun: "cat"}, {helpers: helpers, partials: partials, data: {adjective: "happy"}});
-    equals("happy cat", result, "Data output by helper inside partial");
-  });
- 
-  it("passing in data to a compiled function that expects data - works with helpers and parameters", function() {
-    var template = CompilerContext.compile("{{hello world}}", {data: true});
- 
-    var helpers = {
-      hello: function(noun, options) {
-        return options.data.adjective + " "  + noun + (this.exclaim ? "!" : "");
-      }
-    };
- 
-    var result = template({exclaim: true, world: "world"}, {helpers: helpers, data: {adjective: "happy"}});
-    equals("happy world!", result, "Data output by helper");
-  });
- 
-  it("passing in data to a compiled function that expects data - works with block helpers", function() {
-    var template = CompilerContext.compile("{{#hello}}{{world}}{{/hello}}", {data: true});
- 
-    var helpers = {
-      hello: function(options) {
-        return options.fn(this);
-      },
-      world: function(options) {
-        return options.data.adjective + " world" + (this.exclaim ? "!" : "");
-      }
-    };
- 
-    var result = template({exclaim: true}, {helpers: helpers, data: {adjective: "happy"}});
-    equals("happy world!", result, "Data output by helper");
-  });
- 
-  it("passing in data to a compiled function that expects data - works with block helpers that use ..", function() {
-    var template = CompilerContext.compile("{{#hello}}{{world ../zomg}}{{/hello}}", {data: true});
- 
-    var helpers = {
-      hello: function(options) {
-        return options.fn({exclaim: "?"});
-      },
-      world: function(thing, options) {
-        return options.data.adjective + " " + thing + (this.exclaim || "");
-      }
-    };
- 
-    var result = template({exclaim: true, zomg: "world"}, {helpers: helpers, data: {adjective: "happy"}});
-    equals("happy world?", result, "Data output by helper");
-  });
- 
-  it("passing in data to a compiled function that expects data - data is passed to with block helpers where children use ..", function() {
-    var template = CompilerContext.compile("{{#hello}}{{world ../zomg}}{{/hello}}", {data: true});
- 
-    var helpers = {
-      hello: function(options) {
-        return options.data.accessData + " " + options.fn({exclaim: "?"});
-      },
-      world: function(thing, options) {
-        return options.data.adjective + " " + thing + (this.exclaim || "");
-      }
-    };
- 
-    var result = template({exclaim: true, zomg: "world"}, {helpers: helpers, data: {adjective: "happy", accessData: "#win"}});
-    equals("#win happy world?", result, "Data output by helper");
-  });
- 
-  it("you can override inherited data when invoking a helper", function() {
-    var template = CompilerContext.compile("{{#hello}}{{world zomg}}{{/hello}}", {data: true});
- 
-    var helpers = {
-      hello: function(options) {
-        return options.fn({exclaim: "?", zomg: "world"}, { data: {adjective: "sad"} });
-      },
-      world: function(thing, options) {
-        return options.data.adjective + " " + thing + (this.exclaim || "");
-      }
-    };
- 
-    var result = template({exclaim: true, zomg: "planet"}, {helpers: helpers, data: {adjective: "happy"}});
-    equals("sad world?", result, "Overriden data output by helper");
-  });
- 
- 
-  it("you can override inherited data when invoking a helper with depth", function() {
-    var template = CompilerContext.compile("{{#hello}}{{world ../zomg}}{{/hello}}", {data: true});
- 
-    var helpers = {
-      hello: function(options) {
-        return options.fn({exclaim: "?"}, { data: {adjective: "sad"} });
-      },
-      world: function(thing, options) {
-        return options.data.adjective + " " + thing + (this.exclaim || "");
-      }
-    };
- 
-    var result = template({exclaim: true, zomg: "world"}, {helpers: helpers, data: {adjective: "happy"}});
-    equals("sad world?", result, "Overriden data output by helper");
-  });
- 
-  describe('@root', function() {
-    it('the root context can be looked up via @root', function() {
-      var template = CompilerContext.compile('{{@root.foo}}');
-      var result = template({foo: 'hello'}, { data: {} });
-      equals('hello', result);
- 
-      result = template({foo: 'hello'}, {});
-      equals('hello', result);
-    });
-    it('passed root values take priority', function() {
-      var template = CompilerContext.compile('{{@root.foo}}');
-      var result = template({}, { data: {root: {foo: 'hello'} } });
-      equals('hello', result);
-    });
-  });
- 
-  describe('nesting', function() {
-    it('the root context can be looked up via @root', function() {
-      var template = CompilerContext.compile('{{#helper}}{{#helper}}{{@./depth}} {{@../depth}} {{@../../depth}}{{/helper}}{{/helper}}');
-      var result = template({foo: 'hello'}, {
-        helpers: {
-          helper: function(options) {
-            var frame = Handlebars.createFrame(options.data);
-            frame.depth = options.data.depth + 1;
-            return options.fn(this, {data: frame});
-          }
-        },
-        data: {
-          depth: 0
-        }
-      });
-      equals('2 1 0', result);
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/env/browser.js.html b/node_modules/handlebars/coverage/lcov-report/spec/env/browser.js.html deleted file mode 100644 index d7ac516..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/env/browser.js.html +++ /dev/null @@ -1,406 +0,0 @@ - - - - Code coverage report for spec/env/browser.js - - - - - - - -
-

Code coverage report for spec/env/browser.js

-

- - Statements: 46.15% (6 / 13)      - - - Branches: 100% (0 / 0)      - - - Functions: 0% (0 / 3)      - - - Lines: 46.15% (6 / 13)      - - Ignored: none      -

-
All files » spec/env/ » browser.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29  -1 -  -1 -  -  -  -1 -1 -  -1 -  -  -  -  -  -  -  -  -  -1 -  -  -  -  -  -  -  - 
/*global handlebarsEnv */
-require('./common');
- 
-var _ = require('underscore'),
-    fs = require('fs'),
-    vm = require('vm');
- 
-global.Handlebars = undefined;
-vm.runInThisContext(fs.readFileSync(__dirname + '/../../dist/handlebars.js'), 'dist/handlebars.js');
- 
-global.CompilerContext = {
-  compile: function(template, options) {
-    var templateSpec = handlebarsEnv.precompile(template, options);
-    return handlebarsEnv.template(safeEval(templateSpec));
-  },
-  compileWithPartial: function(template, options) {
-    return handlebarsEnv.compile(template, options);
-  }
-};
- 
-function safeEval(templateSpec) {
-  try {
-    return eval('(' + templateSpec + ')');
-  } catch (err) {
-    console.error(templateSpec);
-    throw err;
-  }
-}
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/env/common.js.html b/node_modules/handlebars/coverage/lcov-report/spec/env/common.js.html deleted file mode 100644 index ee61b8d..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/env/common.js.html +++ /dev/null @@ -1,481 +0,0 @@ - - - - Code coverage report for spec/env/common.js - - - - - - - -
-

Code coverage report for spec/env/common.js

-

- - Statements: 16.67% (5 / 30)      - - - Branches: 0% (0 / 22)      - - - Functions: 0% (0 / 5)      - - - Lines: 16.67% (5 / 30)      - - Ignored: none      -

-
All files » spec/env/ » common.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54  -1 -  -  -  -1 -  -  -  -  -  -  -1 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1 -  -  -  -  -  -1 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/*global CompilerContext, compileWithPartials, shouldCompileToWithPartials */
-global.shouldCompileTo = function(string, hashOrArray, expected, message) {
-  shouldCompileToWithPartials(string, hashOrArray, false, expected, message);
-};
- 
-global.shouldCompileToWithPartials = function(string, hashOrArray, partials, expected, message) {
-  var result = compileWithPartials(string, hashOrArray, partials);
-  if (result !== expected) {
-    throw new Error("'" + result + "' should === '" + expected + "': " + message);
-  }
-};
- 
-global.compileWithPartials = function(string, hashOrArray, partials) {
-  var template,
-      ary,
-      options;
-  if(Object.prototype.toString.call(hashOrArray) === "[object Array]") {
-    ary = [];
-    ary.push(hashOrArray[0]);
-    ary.push({ helpers: hashOrArray[1], partials: hashOrArray[2] });
-    options = {compat: hashOrArray[3]};
-  } else {
-    ary = [hashOrArray];
-  }
- 
-  template = CompilerContext[partials ? 'compileWithPartial' : 'compile'](string, options);
-  return template.apply(this, ary);
-};
- 
- 
-global.equals = global.equal = function(a, b, msg) {
-  if (a !== b) {
-    throw new Error("'" + a + "' should === '" + b + "'" + (msg ? ": " + msg : ''));
-  }
-};
- 
-global.shouldThrow = function(callback, type, msg) {
-  var failed;
-  try {
-    callback();
-    failed = true;
-  } catch (err) {
-    if (type && !(err instanceof type)) {
-      throw new Error('Type failure');
-    }
-    if (msg && !(msg.test ? msg.test(err.message) : msg === err.message)) {
-      throw new Error('Message failure');
-    }
-  }
-  if (failed) {
-    throw new Error('It failed to throw');
-  }
-};
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/env/index.html b/node_modules/handlebars/coverage/lcov-report/spec/env/index.html deleted file mode 100644 index 8bac850..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/env/index.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - Code coverage report for spec/env/ - - - - - - - -
-

Code coverage report for spec/env/

-

- - Statements: 46.67% (49 / 105)      - - - Branches: 4.17% (1 / 24)      - - - Functions: 33.33% (8 / 24)      - - - Lines: 46.67% (49 / 105)      - - Ignored: none      -

-
All files » spec/env/
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
browser.js46.15%(6 / 13)100%(0 / 0)0%(0 / 3)46.15%(6 / 13)
common.js16.67%(5 / 30)0%(0 / 22)0%(0 / 5)16.67%(5 / 30)
node.js36.36%(4 / 11)100%(0 / 0)0%(0 / 3)36.36%(4 / 11)
runner.js100%(25 / 25)50%(1 / 2)100%(8 / 8)100%(25 / 25)
runtime.js34.62%(9 / 26)100%(0 / 0)0%(0 / 5)34.62%(9 / 26)
-
-
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/env/node.js.html b/node_modules/handlebars/coverage/lcov-report/spec/env/node.js.html deleted file mode 100644 index 88f1293..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/env/node.js.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - Code coverage report for spec/env/node.js - - - - - - - -
-

Code coverage report for spec/env/node.js

-

- - Statements: 36.36% (4 / 11)      - - - Branches: 100% (0 / 0)      - - - Functions: 0% (0 / 3)      - - - Lines: 36.36% (4 / 11)      - - Ignored: none      -

-
All files » spec/env/ » node.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24  -1 -  -1 -  -1 -  -  -  -  -  -  -  -  -  -1 -  -  -  -  -  -  -  - 
/*global handlebarsEnv */
-require('./common');
- 
-global.Handlebars = require('../../lib');
- 
-global.CompilerContext = {
-  compile: function(template, options) {
-    var templateSpec = handlebarsEnv.precompile(template, options);
-    return handlebarsEnv.template(safeEval(templateSpec));
-  },
-  compileWithPartial: function(template, options) {
-    return handlebarsEnv.compile(template, options);
-  }
-};
- 
-function safeEval(templateSpec) {
-  try {
-    return eval('(' + templateSpec + ')');
-  } catch (err) {
-    console.error(templateSpec);
-    throw err;
-  }
-}
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/env/runner.js.html b/node_modules/handlebars/coverage/lcov-report/spec/env/runner.js.html deleted file mode 100644 index 9ca41e8..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/env/runner.js.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - Code coverage report for spec/env/runner.js - - - - - - - -
-

Code coverage report for spec/env/runner.js

-

- - Statements: 100% (25 / 25)      - - - Branches: 50% (1 / 2)      - - - Functions: 100% (8 / 8)      - - - Lines: 100% (25 / 25)      - - Ignored: none      -

-
All files » spec/env/ » runner.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -461 -  -  -  -1 -  -  -  -1 -  -1 -26 -20 -  -1 -  -1 -1 -1 -1 -  -  -  -  -  -1 -3 -3 -3 -3 -3 -3 -  -  -3 -60 -  -  -3 -3 -3 -3 -3 -  -  - 
var fs = require('fs'),
-    Mocha = require('mocha'),
-    path = require('path');
- 
-var errors = 0,
-    testDir = path.dirname(__dirname),
-    grep = process.argv[2];
- 
-var files = [ testDir + "/basic.js" ];
- 
-var files = fs.readdirSync(testDir)
-      .filter(function(name) { return (/.*\.js$/).test(name); })
-      .map(function(name) { return testDir + '/' + name; });
- 
-console.log(files);
- 
-run('./node', function() {
-  run('./browser', function() {
-    run('./runtime', function() {
-      process.exit(errors);
-    });
-  });
-});
- 
- 
-function run(env, callback) {
-  var mocha = new Mocha();
-  mocha.ui('bdd');
-  mocha.reporter('spec');
-  mocha.files = files.slice();
-  Eif (grep) {
-    mocha.grep(grep);
-  }
- 
-  files.forEach(function(name) {
-    delete require.cache[name];
-  });
- 
-  console.log('Running env: ' + env);
-  require(env);
-  mocha.run(function(errorCount) {
-    errors += errorCount;
-    callback();
-  });
-}
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/env/runtime.js.html b/node_modules/handlebars/coverage/lcov-report/spec/env/runtime.js.html deleted file mode 100644 index ca6578d..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/env/runtime.js.html +++ /dev/null @@ -1,466 +0,0 @@ - - - - Code coverage report for spec/env/runtime.js - - - - - - - -
-

Code coverage report for spec/env/runtime.js

-

- - Statements: 34.62% (9 / 26)      - - - Branches: 100% (0 / 0)      - - - Functions: 0% (0 / 5)      - - - Lines: 34.62% (9 / 26)      - - Ignored: none      -

-
All files » spec/env/ » runtime.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49  -1 -  -1 -  -  -  -1 -1 -  -1 -1 -1 -  -1 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1 -  -  -  -  -  -  -  - 
/*global handlebarsEnv */
-require('./common');
- 
-var _ = require('underscore'),
-    fs = require('fs'),
-    vm = require('vm');
- 
-global.Handlebars = undefined;
-vm.runInThisContext(fs.readFileSync(__dirname + '/../../dist/handlebars.runtime.js'), 'dist/handlebars.runtime.js');
- 
-var parse = require('../../dist/cjs/handlebars/compiler/base').parse;
-var compiler = require('../../dist/cjs/handlebars/compiler/compiler');
-var JavaScriptCompiler = require('../../dist/cjs/handlebars/compiler/javascript-compiler')['default'];
- 
-global.CompilerContext = {
-  compile: function(template, options) {
-    // Hack the compiler on to the environment for these specific tests
-    handlebarsEnv.precompile = function(template, options) {
-      return compiler.precompile(template, options, handlebarsEnv);
-    };
-    handlebarsEnv.parse = parse;
-    handlebarsEnv.Compiler = compiler.Compiler;
-    handlebarsEnv.JavaScriptCompiler = JavaScriptCompiler;
- 
-    var templateSpec = handlebarsEnv.precompile(template, options);
-    return handlebarsEnv.template(safeEval(templateSpec));
-  },
-  compileWithPartial: function(template, options) {
-    // Hack the compiler on to the environment for these specific tests
-    handlebarsEnv.compile = function(template, options) {
-      return compiler.compile(template, options, handlebarsEnv);
-    };
-    handlebarsEnv.parse = parse;
-    handlebarsEnv.Compiler = compiler.Compiler;
-    handlebarsEnv.JavaScriptCompiler = JavaScriptCompiler;
- 
-    return handlebarsEnv.compile(template, options);
-  }
-};
- 
-function safeEval(templateSpec) {
-  try {
-    return eval('(' + templateSpec + ')');
-  } catch (err) {
-    console.error(templateSpec);
-    throw err;
-  }
-}
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/helpers.js.html b/node_modules/handlebars/coverage/lcov-report/spec/helpers.js.html deleted file mode 100644 index 20c55f1..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/helpers.js.html +++ /dev/null @@ -1,2182 +0,0 @@ - - - - Code coverage report for spec/helpers.js - - - - - - - -
-

Code coverage report for spec/helpers.js

-

- - Statements: 19.23% (70 / 364)      - - - Branches: 0% (0 / 26)      - - - Functions: 7.81% (10 / 128)      - - - Lines: 20.71% (70 / 338)      - - Ignored: none      -

-
All files » spec/ » helpers.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -565 -566 -567 -568 -569 -570 -571 -572 -573 -574 -575 -576 -577 -578 -579 -580 -581 -582 -583 -584 -585 -586 -587 -588 -589 -590 -591 -592 -593 -594 -595 -596 -597 -598 -599 -600 -601 -602 -603 -604 -605 -606 -607 -608 -609 -610 -611 -612 -613 -614 -615 -616 -617 -618 -619 -620 -621  -3 -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  -  -3 -3 -  -  -  -  -3 -  -  -  -  -  -  -3 -3 -3 -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -3 -  -  -3 -  -  -3 -  -  -3 -  -  -3 -  -  -  -  -  -3 -  -  -  -3 -  -  -  -  -3 -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/*global CompilerContext, Handlebars, shouldCompileTo, shouldCompileToWithPartials, shouldThrow, handlebarsEnv */
-describe('helpers', function() {
-  it("helper with complex lookup$", function() {
-    var string = "{{#goodbyes}}{{{link ../prefix}}}{{/goodbyes}}";
-    var hash = {prefix: "/root", goodbyes: [{text: "Goodbye", url: "goodbye"}]};
-    var helpers = {link: function(prefix) {
-      return "<a href='" + prefix + "/" + this.url + "'>" + this.text + "</a>";
-    }};
-    shouldCompileTo(string, [hash, helpers], "<a href='/root/goodbye'>Goodbye</a>");
-  });
- 
-  it("helper for raw block gets raw content", function() {
-    var string   = "{{{{raw}}}} {{test}} {{{{/raw}}}}";
-    var hash = { test: "hello" };
-    var helpers = { raw: function(options) {
-        return options.fn();
-    } };
-    shouldCompileTo(string, [hash, helpers], " {{test}} ",
-                    "raw block helper gets raw content");
-  });
-  
-  it("helper for raw block gets parameters", function() {
-    var string   = "{{{{raw 1 2 3}}}} {{test}} {{{{/raw}}}}";
-    var hash = { test: "hello" };
-    var helpers = { raw: function(a, b, c, options) {
-        return options.fn() + a + b + c;
-    } };
-    shouldCompileTo(string, [hash, helpers], " {{test}} 123",
-                    "raw block helper gets raw content");
-  });
-  
-  it("helper block with complex lookup expression", function() {
-    var string = "{{#goodbyes}}{{../name}}{{/goodbyes}}";
-    var hash = {name: "Alan"};
-    var helpers = {goodbyes: function(options) {
-      var out = "";
-      var byes = ["Goodbye", "goodbye", "GOODBYE"];
-      for (var i = 0,j = byes.length; i < j; i++) {
-        out += byes[i] + " " + options.fn(this) + "! ";
-      }
-      return out;
-    }};
-    shouldCompileTo(string, [hash, helpers], "Goodbye Alan! goodbye Alan! GOODBYE Alan! ");
-  });
- 
-  it("helper with complex lookup and nested template", function() {
-    var string = "{{#goodbyes}}{{#link ../prefix}}{{text}}{{/link}}{{/goodbyes}}";
-    var hash = {prefix: '/root', goodbyes: [{text: "Goodbye", url: "goodbye"}]};
-    var helpers = {link: function (prefix, options) {
-        return "<a href='" + prefix + "/" + this.url + "'>" + options.fn(this) + "</a>";
-    }};
-    shouldCompileToWithPartials(string, [hash, helpers], false, "<a href='/root/goodbye'>Goodbye</a>");
-  });
- 
-  it("helper with complex lookup and nested template in VM+Compiler", function() {
-    var string = "{{#goodbyes}}{{#link ../prefix}}{{text}}{{/link}}{{/goodbyes}}";
-    var hash = {prefix: '/root', goodbyes: [{text: "Goodbye", url: "goodbye"}]};
-    var helpers = {link: function (prefix, options) {
-        return "<a href='" + prefix + "/" + this.url + "'>" + options.fn(this) + "</a>";
-    }};
-    shouldCompileToWithPartials(string, [hash, helpers], true, "<a href='/root/goodbye'>Goodbye</a>");
-  });
- 
-  it("block helper", function() {
-    var string   = "{{#goodbyes}}{{text}}! {{/goodbyes}}cruel {{world}}!";
-    var template = CompilerContext.compile(string);
- 
-    var result = template({world: "world"}, { helpers: {goodbyes: function(options) { return options.fn({text: "GOODBYE"}); }}});
-    equal(result, "GOODBYE! cruel world!", "Block helper executed");
-  });
- 
-  it("block helper staying in the same context", function() {
-    var string   = "{{#form}}<p>{{name}}</p>{{/form}}";
-    var template = CompilerContext.compile(string);
- 
-    var result = template({name: "Yehuda"}, {helpers: {form: function(options) { return "<form>" + options.fn(this) + "</form>"; } }});
-    equal(result, "<form><p>Yehuda</p></form>", "Block helper executed with current context");
-  });
- 
-  it("block helper should have context in this", function() {
-    var source = "<ul>{{#people}}<li>{{#link}}{{name}}{{/link}}</li>{{/people}}</ul>";
-    var link = function(options) {
-      return '<a href="/people/' + this.id + '">' + options.fn(this) + '</a>';
-    };
-    var data = { "people": [
-      { "name": "Alan", "id": 1 },
-      { "name": "Yehuda", "id": 2 }
-    ]};
- 
-    shouldCompileTo(source, [data, {link: link}], "<ul><li><a href=\"/people/1\">Alan</a></li><li><a href=\"/people/2\">Yehuda</a></li></ul>");
-  });
- 
-  it("block helper for undefined value", function() {
-    shouldCompileTo("{{#empty}}shouldn't render{{/empty}}", {}, "");
-  });
- 
-  it("block helper passing a new context", function() {
-    var string   = "{{#form yehuda}}<p>{{name}}</p>{{/form}}";
-    var template = CompilerContext.compile(string);
- 
-    var result = template({yehuda: {name: "Yehuda"}}, { helpers: {form: function(context, options) { return "<form>" + options.fn(context) + "</form>"; }}});
-    equal(result, "<form><p>Yehuda</p></form>", "Context variable resolved");
-  });
- 
-  it("block helper passing a complex path context", function() {
-    var string   = "{{#form yehuda/cat}}<p>{{name}}</p>{{/form}}";
-    var template = CompilerContext.compile(string);
- 
-    var result = template({yehuda: {name: "Yehuda", cat: {name: "Harold"}}}, { helpers: {form: function(context, options) { return "<form>" + options.fn(context) + "</form>"; }}});
-    equal(result, "<form><p>Harold</p></form>", "Complex path variable resolved");
-  });
- 
-  it("nested block helpers", function() {
-    var string   = "{{#form yehuda}}<p>{{name}}</p>{{#link}}Hello{{/link}}{{/form}}";
-    var template = CompilerContext.compile(string);
- 
-    var result = template({
-      yehuda: {name: "Yehuda" }
-    }, {
-      helpers: {
-        link: function(options) { return "<a href='" + this.name + "'>" + options.fn(this) + "</a>"; },
-        form: function(context, options) { return "<form>" + options.fn(context) + "</form>"; }
-      }
-    });
-    equal(result, "<form><p>Yehuda</p><a href='Yehuda'>Hello</a></form>", "Both blocks executed");
-  });
- 
-  it("block helper inverted sections", function() {
-    var string = "{{#list people}}{{name}}{{^}}<em>Nobody's here</em>{{/list}}";
-    var list = function(context, options) {
-      if (context.length > 0) {
-        var out = "<ul>";
-        for(var i = 0,j=context.length; i < j; i++) {
-          out += "<li>";
-          out += options.fn(context[i]);
-          out += "</li>";
-        }
-        out += "</ul>";
-        return out;
-      } else {
-        return "<p>" + options.inverse(this) + "</p>";
-      }
-    };
- 
-    var hash = {people: [{name: "Alan"}, {name: "Yehuda"}]};
-    var empty = {people: []};
-    var rootMessage = {
-      people: [],
-      message: "Nobody's here"
-    };
- 
-    var messageString = "{{#list people}}Hello{{^}}{{message}}{{/list}}";
- 
-    // the meaning here may be kind of hard to catch, but list.not is always called,
-    // so we should see the output of both
-    shouldCompileTo(string, [hash, { list: list }], "<ul><li>Alan</li><li>Yehuda</li></ul>", "an inverse wrapper is passed in as a new context");
-    shouldCompileTo(string, [empty, { list: list }], "<p><em>Nobody's here</em></p>", "an inverse wrapper can be optionally called");
-    shouldCompileTo(messageString, [rootMessage, { list: list }], "<p>Nobody&#x27;s here</p>", "the context of an inverse is the parent of the block");
-  });
- 
-  it('pathed lambas with parameters', function() {
-    var hash = {
-      helper: function() {
-        return 'winning';
-      }
-    };
-    hash.hash = hash;
-    var helpers = {
-      './helper': function() {
-        return 'fail';
-      }
-    };
-    shouldCompileTo('{{./helper 1}}', [hash, helpers], 'winning');
-    shouldCompileTo('{{hash/helper 1}}', [hash, helpers], 'winning');
-  });
- 
-  describe("helpers hash", function() {
-    it("providing a helpers hash", function() {
-      shouldCompileTo("Goodbye {{cruel}} {{world}}!", [{cruel: "cruel"}, {world: function() { return "world"; }}], "Goodbye cruel world!",
-                      "helpers hash is available");
- 
-      shouldCompileTo("Goodbye {{#iter}}{{cruel}} {{world}}{{/iter}}!", [{iter: [{cruel: "cruel"}]}, {world: function() { return "world"; }}],
-                      "Goodbye cruel world!", "helpers hash is available inside other blocks");
-    });
- 
-    it("in cases of conflict, helpers win", function() {
-      shouldCompileTo("{{{lookup}}}", [{lookup: 'Explicit'}, {lookup: function() { return 'helpers'; }}], "helpers",
-                      "helpers hash has precedence escaped expansion");
-      shouldCompileTo("{{lookup}}", [{lookup: 'Explicit'}, {lookup: function() { return 'helpers'; }}], "helpers",
-                      "helpers hash has precedence simple expansion");
-    });
- 
-    it("the helpers hash is available is nested contexts", function() {
-      shouldCompileTo("{{#outer}}{{#inner}}{{helper}}{{/inner}}{{/outer}}",
-                    [{'outer': {'inner': {'unused':[]}}},  {'helper': function() { return 'helper'; }}], "helper",
-                    "helpers hash is available in nested contexts.");
-    });
- 
-    it("the helper hash should augment the global hash", function() {
-      handlebarsEnv.registerHelper('test_helper', function() { return 'found it!'; });
- 
-      shouldCompileTo(
-        "{{test_helper}} {{#if cruel}}Goodbye {{cruel}} {{world}}!{{/if}}", [
-          {cruel: "cruel"},
-          {world: function() { return "world!"; }}
-        ],
-        "found it! Goodbye cruel world!!");
-    });
-  });
- 
-  it("Multiple global helper registration", function() {
-    var helpers = handlebarsEnv.helpers;
-    handlebarsEnv.helpers = {};
- 
-    handlebarsEnv.registerHelper({
-      'if': helpers['if'],
-      world: function() { return "world!"; },
-      test_helper: function() { return 'found it!'; }
-    });
- 
-    shouldCompileTo(
-      "{{test_helper}} {{#if cruel}}Goodbye {{cruel}} {{world}}!{{/if}}",
-      [{cruel: "cruel"}],
-      "found it! Goodbye cruel world!!");
-  });
- 
-  it("decimal number literals work", function() {
-    var string   = 'Message: {{hello -1.2 1.2}}';
-    var hash     = {};
-    var helpers  = {hello: function(times, times2) {
-      if(typeof times !== 'number') { times = "NaN"; }
-      if(typeof times2 !== 'number') { times2 = "NaN"; }
-      return "Hello " + times + " " + times2 + " times";
-    }};
-    shouldCompileTo(string, [hash, helpers], "Message: Hello -1.2 1.2 times", "template with a negative integer literal");
-  });
- 
-  it("negative number literals work", function() {
-    var string   = 'Message: {{hello -12}}';
-    var hash     = {};
-    var helpers  = {hello: function(times) {
-      if(typeof times !== 'number') { times = "NaN"; }
-      return "Hello " + times + " times";
-    }};
-    shouldCompileTo(string, [hash, helpers], "Message: Hello -12 times", "template with a negative integer literal");
-  });
- 
-  describe("String literal parameters", function() {
-    it("simple literals work", function() {
-      var string   = 'Message: {{hello "world" 12 true false}}';
-      var hash     = {};
-      var helpers  = {hello: function(param, times, bool1, bool2) {
-        if(typeof times !== 'number') { times = "NaN"; }
-        if(typeof bool1 !== 'boolean') { bool1 = "NaB"; }
-        if(typeof bool2 !== 'boolean') { bool2 = "NaB"; }
-        return "Hello " + param + " " + times + " times: " + bool1 + " " + bool2;
-      }};
-      shouldCompileTo(string, [hash, helpers], "Message: Hello world 12 times: true false", "template with a simple String literal");
-    });
- 
-    it("using a quote in the middle of a parameter raises an error", function() {
-      var string   = 'Message: {{hello wo"rld"}}';
-      shouldThrow(function() {
-        CompilerContext.compile(string);
-      }, Error);
-    });
- 
-    it("escaping a String is possible", function(){
-      var string   = 'Message: {{{hello "\\"world\\""}}}';
-      var hash     = {};
-      var helpers = {hello: function(param) { return "Hello " + param; }};
-      shouldCompileTo(string, [hash, helpers], "Message: Hello \"world\"", "template with an escaped String literal");
-    });
- 
-    it("it works with ' marks", function() {
-      var string   = 'Message: {{{hello "Alan\'s world"}}}';
-      var hash     = {};
-      var helpers = {hello: function(param) { return "Hello " + param; }};
-      shouldCompileTo(string, [hash, helpers], "Message: Hello Alan's world", "template with a ' mark");
-    });
-  });
- 
-  it("negative number literals work", function() {
-    var string   = 'Message: {{hello -12}}';
-    var hash     = {};
-    var helpers  = {hello: function(times) {
-      if(typeof times !== 'number') { times = "NaN"; }
-      return "Hello " + times + " times";
-    }};
-    shouldCompileTo(string, [hash, helpers], "Message: Hello -12 times", "template with a negative integer literal");
-  });
- 
-  describe("multiple parameters", function() {
-    it("simple multi-params work", function() {
-      var string   = 'Message: {{goodbye cruel world}}';
-      var hash     = {cruel: "cruel", world: "world"};
-      var helpers = {goodbye: function(cruel, world) { return "Goodbye " + cruel + " " + world; }};
-      shouldCompileTo(string, [hash, helpers], "Message: Goodbye cruel world", "regular helpers with multiple params");
-    });
- 
-    it("block multi-params work", function() {
-      var string   = 'Message: {{#goodbye cruel world}}{{greeting}} {{adj}} {{noun}}{{/goodbye}}';
-      var hash     = {cruel: "cruel", world: "world"};
-      var helpers = {goodbye: function(cruel, world, options) {
-        return options.fn({greeting: "Goodbye", adj: cruel, noun: world});
-      }};
-      shouldCompileTo(string, [hash, helpers], "Message: Goodbye cruel world", "block helpers with multiple params");
-    });
-  });
- 
-  describe('hash', function() {
-    it("helpers can take an optional hash", function() {
-      var template = CompilerContext.compile('{{goodbye cruel="CRUEL" world="WORLD" times=12}}');
- 
-      var helpers = {
-        goodbye: function(options) {
-          return "GOODBYE " + options.hash.cruel + " " + options.hash.world + " " + options.hash.times + " TIMES";
-        }
-      };
- 
-      var context = {};
- 
-      var result = template(context, {helpers: helpers});
-      equals(result, "GOODBYE CRUEL WORLD 12 TIMES", "Helper output hash");
-    });
- 
-    it("helpers can take an optional hash with booleans", function() {
-      var helpers = {
-        goodbye: function(options) {
-          if (options.hash.print === true) {
-            return "GOODBYE " + options.hash.cruel + " " + options.hash.world;
-          } else if (options.hash.print === false) {
-            return "NOT PRINTING";
-          } else {
-            return "THIS SHOULD NOT HAPPEN";
-          }
-        }
-      };
- 
-      var context = {};
- 
-      var template = CompilerContext.compile('{{goodbye cruel="CRUEL" world="WORLD" print=true}}');
-      var result = template(context, {helpers: helpers});
-      equals(result, "GOODBYE CRUEL WORLD", "Helper output hash");
- 
-      template = CompilerContext.compile('{{goodbye cruel="CRUEL" world="WORLD" print=false}}');
-      result = template(context, {helpers: helpers});
-      equals(result, "NOT PRINTING", "Boolean helper parameter honored");
-    });
- 
-    it("block helpers can take an optional hash", function() {
-      var template = CompilerContext.compile('{{#goodbye cruel="CRUEL" times=12}}world{{/goodbye}}');
- 
-      var helpers = {
-        goodbye: function(options) {
-          return "GOODBYE " + options.hash.cruel + " " + options.fn(this) + " " + options.hash.times + " TIMES";
-        }
-      };
- 
-      var result = template({}, {helpers: helpers});
-      equals(result, "GOODBYE CRUEL world 12 TIMES", "Hash parameters output");
-    });
- 
-    it("block helpers can take an optional hash with single quoted stings", function() {
-      var template = CompilerContext.compile("{{#goodbye cruel='CRUEL' times=12}}world{{/goodbye}}");
- 
-      var helpers = {
-        goodbye: function(options) {
-          return "GOODBYE " + options.hash.cruel + " " + options.fn(this) + " " + options.hash.times + " TIMES";
-        }
-      };
- 
-      var result = template({}, {helpers: helpers});
-      equals(result, "GOODBYE CRUEL world 12 TIMES", "Hash parameters output");
-    });
- 
-    it("block helpers can take an optional hash with booleans", function() {
-      var helpers = {
-        goodbye: function(options) {
-          if (options.hash.print === true) {
-            return "GOODBYE " + options.hash.cruel + " " + options.fn(this);
-          } else if (options.hash.print === false) {
-            return "NOT PRINTING";
-          } else {
-            return "THIS SHOULD NOT HAPPEN";
-          }
-        }
-      };
- 
-      var template = CompilerContext.compile('{{#goodbye cruel="CRUEL" print=true}}world{{/goodbye}}');
-      var result = template({}, {helpers: helpers});
-      equals(result, "GOODBYE CRUEL world", "Boolean hash parameter honored");
- 
-      template = CompilerContext.compile('{{#goodbye cruel="CRUEL" print=false}}world{{/goodbye}}');
-      result = template({}, {helpers: helpers});
-      equals(result, "NOT PRINTING", "Boolean hash parameter honored");
-    });
-  });
- 
-  describe("helperMissing", function() {
-    it("if a context is not found, helperMissing is used", function() {
-      shouldThrow(function() {
-          var template = CompilerContext.compile("{{hello}} {{link_to world}}");
-          template({});
-      }, undefined, /Missing helper: 'link_to'/);
-    });
- 
-    it("if a context is not found, custom helperMissing is used", function() {
-      var string = "{{hello}} {{link_to world}}";
-      var context = { hello: "Hello", world: "world" };
- 
-      var helpers = {
-        helperMissing: function(mesg, options) {
-          if(options.name === "link_to") {
-            return new Handlebars.SafeString("<a>" + mesg + "</a>");
-          }
-        }
-      };
- 
-      shouldCompileTo(string, [context, helpers], "Hello <a>world</a>");
-    });
-  });
- 
-  describe("knownHelpers", function() {
-    it("Known helper should render helper", function() {
-      var template = CompilerContext.compile("{{hello}}", {knownHelpers: {"hello" : true}});
- 
-      var result = template({}, {helpers: {hello: function() { return "foo"; }}});
-      equal(result, "foo", "'foo' should === '" + result);
-    });
- 
-    it("Unknown helper in knownHelpers only mode should be passed as undefined", function() {
-      var template = CompilerContext.compile("{{typeof hello}}", {knownHelpers: {'typeof': true}, knownHelpersOnly: true});
- 
-      var result = template({}, {helpers: {'typeof': function(arg) { return typeof arg; }, hello: function() { return "foo"; }}});
-      equal(result, "undefined", "'undefined' should === '" + result);
-    });
-    it("Builtin helpers available in knownHelpers only mode", function() {
-      var template = CompilerContext.compile("{{#unless foo}}bar{{/unless}}", {knownHelpersOnly: true});
- 
-      var result = template({});
-      equal(result, "bar", "'bar' should === '" + result);
-    });
-    it("Field lookup works in knownHelpers only mode", function() {
-      var template = CompilerContext.compile("{{foo}}", {knownHelpersOnly: true});
- 
-      var result = template({foo: 'bar'});
-      equal(result, "bar", "'bar' should === '" + result);
-    });
-    it("Conditional blocks work in knownHelpers only mode", function() {
-      var template = CompilerContext.compile("{{#foo}}bar{{/foo}}", {knownHelpersOnly: true});
- 
-      var result = template({foo: 'baz'});
-      equal(result, "bar", "'bar' should === '" + result);
-    });
-    it("Invert blocks work in knownHelpers only mode", function() {
-      var template = CompilerContext.compile("{{^foo}}bar{{/foo}}", {knownHelpersOnly: true});
- 
-      var result = template({foo: false});
-      equal(result, "bar", "'bar' should === '" + result);
-    });
-    it("Functions are bound to the context in knownHelpers only mode", function() {
-      var template = CompilerContext.compile("{{foo}}", {knownHelpersOnly: true});
-      var result = template({foo: function() { return this.bar; }, bar: 'bar'});
-      equal(result, "bar", "'bar' should === '" + result);
-    });
-    it("Unknown helper call in knownHelpers only mode should throw", function() {
-      shouldThrow(function() {
-        CompilerContext.compile("{{typeof hello}}", {knownHelpersOnly: true});
-      }, Error);
-    });
-  });
- 
-  describe("blockHelperMissing", function() {
-    it("lambdas are resolved by blockHelperMissing, not handlebars proper", function() {
-      var string = "{{#truthy}}yep{{/truthy}}";
-      var data = { truthy: function() { return true; } };
-      shouldCompileTo(string, data, "yep");
-    });
-    it("lambdas resolved by blockHelperMissing are bound to the context", function() {
-      var string = "{{#truthy}}yep{{/truthy}}";
-      var boundData = { truthy: function() { return this.truthiness(); }, truthiness: function() { return false; } };
-      shouldCompileTo(string, boundData, "");
-    });
-  });
- 
-  describe('name field', function() {
-    var context = {};
-    var helpers = {
-      blockHelperMissing: function() {
-        return 'missing: ' + arguments[arguments.length-1].name;
-      },
-      helperMissing: function() {
-        return 'helper missing: ' + arguments[arguments.length-1].name;
-      },
-      helper: function() {
-        return 'ran: ' + arguments[arguments.length-1].name;
-      }
-    };
- 
-    it('should include in ambiguous mustache calls', function() {
-      shouldCompileTo('{{helper}}', [context, helpers], 'ran: helper');
-    });
-    it('should include in helper mustache calls', function() {
-      shouldCompileTo('{{helper 1}}', [context, helpers], 'ran: helper');
-    });
-    it('should include in ambiguous block calls', function() {
-      shouldCompileTo('{{#helper}}{{/helper}}', [context, helpers], 'ran: helper');
-    });
-    it('should include in simple block calls', function() {
-      shouldCompileTo('{{#./helper}}{{/./helper}}', [context, helpers], 'missing: ./helper');
-    });
-    it('should include in helper block calls', function() {
-      shouldCompileTo('{{#helper 1}}{{/helper}}', [context, helpers], 'ran: helper');
-    });
-    it('should include in known helper calls', function() {
-      var template = CompilerContext.compile("{{helper}}", {knownHelpers: {'helper': true}, knownHelpersOnly: true});
- 
-      equal(template({}, {helpers: helpers}), 'ran: helper');
-    });
- 
-    it('should include full id', function() {
-      shouldCompileTo('{{#foo.helper}}{{/foo.helper}}', [{foo: {}}, helpers], 'missing: foo.helper');
-    });
- 
-    it('should include full id if a hash is passed', function() {
-      shouldCompileTo('{{#foo.helper bar=baz}}{{/foo.helper}}', [{foo: {}}, helpers], 'helper missing: foo.helper');
-    });
-  });
- 
-  describe('name conflicts', function() {
-    it("helpers take precedence over same-named context properties", function() {
-      var template = CompilerContext.compile("{{goodbye}} {{cruel world}}");
- 
-      var helpers = {
-        goodbye: function() {
-          return this.goodbye.toUpperCase();
-        },
- 
-        cruel: function(world) {
-          return "cruel " + world.toUpperCase();
-        }
-      };
- 
-      var context = {
-        goodbye: "goodbye",
-        world: "world"
-      };
- 
-      var result = template(context, {helpers: helpers});
-      equals(result, "GOODBYE cruel WORLD", "Helper executed");
-    });
- 
-    it("helpers take precedence over same-named context properties$", function() {
-      var template = CompilerContext.compile("{{#goodbye}} {{cruel world}}{{/goodbye}}");
- 
-      var helpers = {
-        goodbye: function(options) {
-          return this.goodbye.toUpperCase() + options.fn(this);
-        },
- 
-        cruel: function(world) {
-          return "cruel " + world.toUpperCase();
-        }
-      };
- 
-      var context = {
-        goodbye: "goodbye",
-        world: "world"
-      };
- 
-      var result = template(context, {helpers: helpers});
-      equals(result, "GOODBYE cruel WORLD", "Helper executed");
-    });
- 
-    it("Scoped names take precedence over helpers", function() {
-      var template = CompilerContext.compile("{{this.goodbye}} {{cruel world}} {{cruel this.goodbye}}");
- 
-      var helpers = {
-        goodbye: function() {
-          return this.goodbye.toUpperCase();
-        },
- 
-        cruel: function(world) {
-          return "cruel " + world.toUpperCase();
-        }
-      };
- 
-      var context = {
-        goodbye: "goodbye",
-        world: "world"
-      };
- 
-      var result = template(context, {helpers: helpers});
-      equals(result, "goodbye cruel WORLD cruel GOODBYE", "Helper not executed");
-    });
- 
-    it("Scoped names take precedence over block helpers", function() {
-      var template = CompilerContext.compile("{{#goodbye}} {{cruel world}}{{/goodbye}} {{this.goodbye}}");
- 
-      var helpers = {
-        goodbye: function(options) {
-          return this.goodbye.toUpperCase() + options.fn(this);
-        },
- 
-        cruel: function(world) {
-          return "cruel " + world.toUpperCase();
-        }
-      };
- 
-      var context = {
-        goodbye: "goodbye",
-        world: "world"
-      };
- 
-      var result = template(context, {helpers: helpers});
-      equals(result, "GOODBYE cruel WORLD goodbye", "Helper executed");
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/index.html b/node_modules/handlebars/coverage/lcov-report/spec/index.html deleted file mode 100644 index 50ab2c2..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/index.html +++ /dev/null @@ -1,597 +0,0 @@ - - - - Code coverage report for spec/ - - - - - - - -
-

Code coverage report for spec/

-

- - Statements: 24.27% (497 / 2048)      - - - Branches: 28.41% (25 / 88)      - - - Functions: 11.96% (77 / 644)      - - - Lines: 24.69% (497 / 2013)      - - Ignored: none      -

-
All files » spec/
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
ast.js28.99%(69 / 238)100%(2 / 2)30.88%(21 / 68)28.99%(69 / 238)
basic.js29.31%(34 / 116)100%(0 / 0)2.13%(1 / 47)30.09%(34 / 113)
blocks.js29.69%(19 / 64)100%(0 / 0)20%(4 / 20)29.69%(19 / 64)
builtins.js20%(27 / 135)0%(0 / 4)13.89%(5 / 36)20.93%(27 / 129)
data.js17.6%(22 / 125)0%(0 / 12)6.98%(3 / 43)17.6%(22 / 125)
helpers.js19.23%(70 / 364)0%(0 / 26)7.81%(10 / 128)20.71%(70 / 338)
javascript-compiler.js41.3%(19 / 46)50%(2 / 4)21.05%(4 / 19)41.3%(19 / 46)
parser.js37.5%(39 / 104)100%(2 / 2)4.44%(2 / 45)37.5%(39 / 104)
partials.js21.74%(25 / 115)100%(0 / 0)10.71%(3 / 28)21.74%(25 / 115)
precompiler.js42.86%(9 / 21)50%(1 / 2)11.11%(1 / 9)42.86%(9 / 21)
regressions.js27.94%(19 / 68)100%(2 / 2)4%(1 / 25)27.94%(19 / 68)
require.js28.57%(4 / 14)75%(3 / 4)33.33%(1 / 3)28.57%(4 / 14)
runtime.js100%(3 / 3)100%(0 / 0)100%(2 / 2)100%(3 / 3)
spec.js76.19%(16 / 21)73.33%(11 / 15)83.33%(5 / 6)76.19%(16 / 21)
string-params.js11.9%(10 / 84)100%(0 / 0)4.35%(1 / 23)11.9%(10 / 84)
subexpressions.js13.33%(14 / 105)0%(0 / 4)2.56%(1 / 39)13.33%(14 / 105)
tokenizer.js20.91%(55 / 263)22.22%(2 / 9)1.89%(1 / 53)20.91%(55 / 263)
track-ids.js27.38%(23 / 84)100%(0 / 0)16.67%(5 / 30)27.38%(23 / 84)
utils.js32.43%(12 / 37)0%(0 / 2)33.33%(4 / 12)32.43%(12 / 37)
whitespace-control.js19.51%(8 / 41)100%(0 / 0)25%(2 / 8)19.51%(8 / 41)
-
-
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/javascript-compiler.js.html b/node_modules/handlebars/coverage/lcov-report/spec/javascript-compiler.js.html deleted file mode 100644 index b6164b3..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/javascript-compiler.js.html +++ /dev/null @@ -1,535 +0,0 @@ - - - - Code coverage report for spec/javascript-compiler.js - - - - - - - -
-

Code coverage report for spec/javascript-compiler.js

-

- - Statements: 41.3% (19 / 46)      - - - Branches: 50% (2 / 4)      - - - Functions: 21.05% (4 / 19)      - - - Lines: 41.3% (19 / 46)      - - Ignored: none      -

-
All files » spec/ » javascript-compiler.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72  -3 -3 -1 -  -  -2 -2 -2 -  -  -2 -  -  -  -2 -  -  -  -  -  -  -2 -2 -2 -  -  -  -2 -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -2 -2 -2 -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -  -  - 
/*global Handlebars, beforeEach, handlebarsEnv, shouldCompileTo */
-describe('javascript-compiler api', function() {
-  if (!Handlebars.JavaScriptCompiler) {
-    return;
-  }
- 
-  describe('#nameLookup', function() {
-    var $superName;
-    beforeEach(function() {
-      $superName = handlebarsEnv.JavaScriptCompiler.prototype.nameLookup;
-    });
-    afterEach(function() {
-      handlebarsEnv.JavaScriptCompiler.prototype.nameLookup = $superName;
-    });
- 
-    it('should allow override', function() {
-      handlebarsEnv.JavaScriptCompiler.prototype.nameLookup = function(parent, name) {
-        return parent + '.bar_' + name;
-      };
-      shouldCompileTo("{{foo}}", { bar_foo: "food" }, "food");
-    });
-  });
-  describe('#compilerInfo', function() {
-    var $superCheck, $superInfo;
-    beforeEach(function() {
-      $superCheck = handlebarsEnv.VM.checkRevision;
-      $superInfo = handlebarsEnv.JavaScriptCompiler.prototype.compilerInfo;
-    });
-    afterEach(function() {
-      handlebarsEnv.VM.checkRevision = $superCheck;
-      handlebarsEnv.JavaScriptCompiler.prototype.compilerInfo = $superInfo;
-    });
-    it('should allow compilerInfo override', function() {
-      handlebarsEnv.JavaScriptCompiler.prototype.compilerInfo = function() {
-        return 'crazy';
-      };
-      handlebarsEnv.VM.checkRevision = function(compilerInfo) {
-        if (compilerInfo !== 'crazy') {
-          throw new Error('It didn\'t work');
-        }
-      };
-      shouldCompileTo("{{foo}} ", { foo: "food" }, "food ");
-    });
-  });
-  describe('buffer', function() {
-    var $superAppend, $superCreate;
-    beforeEach(function() {
-      handlebarsEnv.JavaScriptCompiler.prototype.forceBuffer = true;
-      $superAppend = handlebarsEnv.JavaScriptCompiler.prototype.appendToBuffer;
-      $superCreate = handlebarsEnv.JavaScriptCompiler.prototype.initializeBuffer;
-    });
-    afterEach(function() {
-      handlebarsEnv.JavaScriptCompiler.prototype.forceBuffer = false;
-      handlebarsEnv.JavaScriptCompiler.prototype.appendToBuffer = $superAppend;
-      handlebarsEnv.JavaScriptCompiler.prototype.initializeBuffer = $superCreate;
-    });
- 
-    it('should allow init buffer override', function() {
-      handlebarsEnv.JavaScriptCompiler.prototype.initializeBuffer = function() {
-        return this.quotedString('foo_');
-      };
-      shouldCompileTo("{{foo}} ", { foo: "food" }, "foo_food ");
-    });
-    it('should allow append buffer override', function() {
-      handlebarsEnv.JavaScriptCompiler.prototype.appendToBuffer = function(string) {
-        return $superAppend.call(this, string + ' + "_foo"');
-      };
-      shouldCompileTo("{{foo}}", { foo: "food" }, "food_foo");
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/parser.js.html b/node_modules/handlebars/coverage/lcov-report/spec/parser.js.html deleted file mode 100644 index 7b2d6b5..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/parser.js.html +++ /dev/null @@ -1,892 +0,0 @@ - - - - Code coverage report for spec/parser.js - - - - - - - -
-

Code coverage report for spec/parser.js

-

- - Statements: 37.5% (39 / 104)      - - - Branches: 100% (2 / 2)      - - - Functions: 4.44% (2 / 45)      - - - Lines: 37.5% (39 / 104)      - - Ignored: none      -

-
All files » spec/ » parser.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191  -3 -3 -2 -  -  -1 -  -  -  -  -1 -  -  -  -  -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -  -1 -  -  -  -1 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -1 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -1 -  -  -  -  -  -  -  -  -1 -  -  -  -  -  -1 -1 -  -  -  -  - 
/*global Handlebars */
-describe('parser', function() {
-  if (!Handlebars.print) {
-    return;
-  }
- 
-  function ast_for(template) {
-    var ast = Handlebars.parse(template);
-    return Handlebars.print(ast);
-  }
- 
-  it('parses simple mustaches', function() {
-    equals(ast_for('{{foo}}'), "{{ ID:foo [] }}\n");
-    equals(ast_for('{{foo?}}'), "{{ ID:foo? [] }}\n");
-    equals(ast_for('{{foo_}}'), "{{ ID:foo_ [] }}\n");
-    equals(ast_for('{{foo-}}'), "{{ ID:foo- [] }}\n");
-    equals(ast_for('{{foo:}}'), "{{ ID:foo: [] }}\n");
-  });
- 
-  it('parses simple mustaches with data', function() {
-    equals(ast_for("{{@foo}}"), "{{ @ID:foo [] }}\n");
-  });
- 
-  it('parses simple mustaches with data paths', function() {
-    equals(ast_for("{{@../foo}}"), "{{ @ID:foo [] }}\n");
-  });
- 
-  it('parses mustaches with paths', function() {
-    equals(ast_for("{{foo/bar}}"), "{{ PATH:foo/bar [] }}\n");
-  });
- 
-  it('parses mustaches with this/foo', function() {
-    equals(ast_for("{{this/foo}}"), "{{ ID:foo [] }}\n");
-  });
- 
-  it('parses mustaches with - in a path', function() {
-    equals(ast_for("{{foo-bar}}"), "{{ ID:foo-bar [] }}\n");
-  });
- 
-  it('parses mustaches with parameters', function() {
-    equals(ast_for("{{foo bar}}"), "{{ ID:foo [ID:bar] }}\n");
-  });
- 
-  it('parses mustaches with string parameters', function() {
-    equals(ast_for("{{foo bar \"baz\" }}"), '{{ ID:foo [ID:bar, "baz"] }}\n');
-  });
- 
-  it('parses mustaches with NUMBER parameters', function() {
-    equals(ast_for("{{foo 1}}"), "{{ ID:foo [NUMBER{1}] }}\n");
-  });
- 
-  it('parses mustaches with BOOLEAN parameters', function() {
-    equals(ast_for("{{foo true}}"), "{{ ID:foo [BOOLEAN{true}] }}\n");
-    equals(ast_for("{{foo false}}"), "{{ ID:foo [BOOLEAN{false}] }}\n");
-  });
- 
-  it('parses mutaches with DATA parameters', function() {
-    equals(ast_for("{{foo @bar}}"), "{{ ID:foo [@ID:bar] }}\n");
-  });
- 
-  it('parses mustaches with hash arguments', function() {
-    equals(ast_for("{{foo bar=baz}}"), "{{ ID:foo [] HASH{bar=ID:baz} }}\n");
-    equals(ast_for("{{foo bar=1}}"), "{{ ID:foo [] HASH{bar=NUMBER{1}} }}\n");
-    equals(ast_for("{{foo bar=true}}"), "{{ ID:foo [] HASH{bar=BOOLEAN{true}} }}\n");
-    equals(ast_for("{{foo bar=false}}"), "{{ ID:foo [] HASH{bar=BOOLEAN{false}} }}\n");
-    equals(ast_for("{{foo bar=@baz}}"), "{{ ID:foo [] HASH{bar=@ID:baz} }}\n");
- 
-    equals(ast_for("{{foo bar=baz bat=bam}}"), "{{ ID:foo [] HASH{bar=ID:baz, bat=ID:bam} }}\n");
-    equals(ast_for("{{foo bar=baz bat=\"bam\"}}"), '{{ ID:foo [] HASH{bar=ID:baz, bat="bam"} }}\n');
- 
-    equals(ast_for("{{foo bat='bam'}}"), '{{ ID:foo [] HASH{bat="bam"} }}\n');
- 
-    equals(ast_for("{{foo omg bar=baz bat=\"bam\"}}"), '{{ ID:foo [ID:omg] HASH{bar=ID:baz, bat="bam"} }}\n');
-    equals(ast_for("{{foo omg bar=baz bat=\"bam\" baz=1}}"), '{{ ID:foo [ID:omg] HASH{bar=ID:baz, bat="bam", baz=NUMBER{1}} }}\n');
-    equals(ast_for("{{foo omg bar=baz bat=\"bam\" baz=true}}"), '{{ ID:foo [ID:omg] HASH{bar=ID:baz, bat="bam", baz=BOOLEAN{true}} }}\n');
-    equals(ast_for("{{foo omg bar=baz bat=\"bam\" baz=false}}"), '{{ ID:foo [ID:omg] HASH{bar=ID:baz, bat="bam", baz=BOOLEAN{false}} }}\n');
-  });
- 
-  it('parses contents followed by a mustache', function() {
-    equals(ast_for("foo bar {{baz}}"), "CONTENT[ \'foo bar \' ]\n{{ ID:baz [] }}\n");
-  });
- 
-  it('parses a partial', function() {
-    equals(ast_for("{{> foo }}"), "{{> PARTIAL:foo }}\n");
-  });
- 
-  it('parses a partial with context', function() {
-    equals(ast_for("{{> foo bar}}"), "{{> PARTIAL:foo ID:bar }}\n");
-  });
- 
-  it('parses a partial with hash', function() {
-    equals(ast_for("{{> foo bar=bat}}"), "{{> PARTIAL:foo HASH{bar=ID:bat} }}\n");
-  });
- 
-  it('parses a partial with context and hash', function() {
-    equals(ast_for("{{> foo bar bat=baz}}"), "{{> PARTIAL:foo ID:bar HASH{bat=ID:baz} }}\n");
-  });
- 
-  it('parses a partial with a complex name', function() {
-    equals(ast_for("{{> shared/partial?.bar}}"), "{{> PARTIAL:shared/partial?.bar }}\n");
-  });
- 
-  it('parses a comment', function() {
-    equals(ast_for("{{! this is a comment }}"), "{{! ' this is a comment ' }}\n");
-  });
- 
-  it('parses a multi-line comment', function() {
-    equals(ast_for("{{!\nthis is a multi-line comment\n}}"), "{{! \'\nthis is a multi-line comment\n\' }}\n");
-  });
- 
-  it('parses an inverse section', function() {
-    equals(ast_for("{{#foo}} bar {{^}} baz {{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  PROGRAM:\n    CONTENT[ ' bar ' ]\n  {{^}}\n    CONTENT[ ' baz ' ]\n");
-  });
- 
-  it('parses an inverse (else-style) section', function() {
-    equals(ast_for("{{#foo}} bar {{else}} baz {{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  PROGRAM:\n    CONTENT[ ' bar ' ]\n  {{^}}\n    CONTENT[ ' baz ' ]\n");
-  });
- 
-  it('parses empty blocks', function() {
-    equals(ast_for("{{#foo}}{{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  PROGRAM:\n");
-  });
- 
-  it('parses empty blocks with empty inverse section', function() {
-    equals(ast_for("{{#foo}}{{^}}{{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  PROGRAM:\n");
-  });
- 
-  it('parses empty blocks with empty inverse (else-style) section', function() {
-    equals(ast_for("{{#foo}}{{else}}{{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  PROGRAM:\n");
-  });
- 
-  it('parses non-empty blocks with empty inverse section', function() {
-    equals(ast_for("{{#foo}} bar {{^}}{{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  PROGRAM:\n    CONTENT[ ' bar ' ]\n  {{^}}\n");
-  });
- 
-  it('parses non-empty blocks with empty inverse (else-style) section', function() {
-    equals(ast_for("{{#foo}} bar {{else}}{{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  PROGRAM:\n    CONTENT[ ' bar ' ]\n  {{^}}\n");
-  });
- 
-  it('parses empty blocks with non-empty inverse section', function() {
-    equals(ast_for("{{#foo}}{{^}} bar {{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  PROGRAM:\n  {{^}}\n    CONTENT[ ' bar ' ]\n");
-  });
- 
-  it('parses empty blocks with non-empty inverse (else-style) section', function() {
-    equals(ast_for("{{#foo}}{{else}} bar {{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  PROGRAM:\n  {{^}}\n    CONTENT[ ' bar ' ]\n");
-  });
- 
-  it('parses a standalone inverse section', function() {
-    equals(ast_for("{{^foo}}bar{{/foo}}"), "BLOCK:\n  {{ ID:foo [] }}\n  {{^}}\n    CONTENT[ 'bar' ]\n");
-  });
- 
-  it("raises if there's a Parse error", function() {
-    shouldThrow(function() {
-      ast_for("foo{{^}}bar");
-    }, Error, /Parse error on line 1/);
-    shouldThrow(function() {
-      ast_for("{{foo}");
-    }, Error, /Parse error on line 1/);
-    shouldThrow(function() {
-      ast_for("{{foo &}}");
-    }, Error, /Parse error on line 1/);
-    shouldThrow(function() {
-      ast_for("{{#goodbyes}}{{/hellos}}");
-    }, Error, /goodbyes doesn't match hellos/);
- 
-    shouldThrow(function() {
-      ast_for("{{{{goodbyes}}}} {{{{/hellos}}}}");
-    }, Error, /goodbyes doesn't match hellos/);
-  });
- 
-  it('knows how to report the correct line number in errors', function() {
-    shouldThrow(function() {
-      ast_for("hello\nmy\n{{foo}");
-    }, Error, /Parse error on line 3/);
-    shouldThrow(function() {
-      ast_for("hello\n\nmy\n\n{{foo}");
-    }, Error, /Parse error on line 5/);
-  });
- 
-  it('knows how to report the correct line number in errors when the first character is a newline', function() {
-    shouldThrow(function() {
-      ast_for("\n\nhello\n\nmy\n\n{{foo}");
-    }, Error, /Parse error on line 7/);
-  });
- 
-  describe('externally compiled AST', function() {
-    it('can pass through an already-compiled AST', function() {
-      equals(ast_for(new Handlebars.AST.ProgramNode(false, [ new Handlebars.AST.ContentNode("Hello")])), "CONTENT[ \'Hello\' ]\n");
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/partials.js.html b/node_modules/handlebars/coverage/lcov-report/spec/partials.js.html deleted file mode 100644 index 3467042..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/partials.js.html +++ /dev/null @@ -1,841 +0,0 @@ - - - - Code coverage report for spec/partials.js - - - - - - - -
-

Code coverage report for spec/partials.js

-

- - Statements: 21.74% (25 / 115)      - - - Branches: 100% (0 / 0)      - - - Functions: 10.71% (3 / 28)      - - - Lines: 21.74% (25 / 115)      - - Ignored: none      -

-
All files » spec/ » partials.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174  -3 -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -3 -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -3 -  -  -  -  -  -  -  - 
/*global CompilerContext, Handlebars, handlebarsEnv, shouldCompileTo, shouldCompileToWithPartials, shouldThrow */
-describe('partials', function() {
-  it("basic partials", function() {
-    var string = "Dudes: {{#dudes}}{{> dude}}{{/dudes}}";
-    var partial = "{{name}} ({{url}}) ";
-    var hash = {dudes: [{name: "Yehuda", url: "http://yehuda"}, {name: "Alan", url: "http://alan"}]};
-    shouldCompileToWithPartials(string, [hash, {}, {dude: partial}], true, "Dudes: Yehuda (http://yehuda) Alan (http://alan) ",
-                    "Basic partials output based on current context.");
-  });
- 
-  it("partials with context", function() {
-    var string = "Dudes: {{>dude dudes}}";
-    var partial = "{{#this}}{{name}} ({{url}}) {{/this}}";
-    var hash = {dudes: [{name: "Yehuda", url: "http://yehuda"}, {name: "Alan", url: "http://alan"}]};
-    shouldCompileToWithPartials(string, [hash, {}, {dude: partial}], true, "Dudes: Yehuda (http://yehuda) Alan (http://alan) ",
-                    "Partials can be passed a context");
-  });
- 
-  it("partials with undefined context", function() {
-    var string = "Dudes: {{>dude dudes}}";
-    var partial = "{{foo}} Empty";
-    var hash = {};
-    shouldCompileToWithPartials(string, [hash, {}, {dude: partial}], true, "Dudes:  Empty");
-  });
- 
-  it("partials with parameters", function() {
-    var string = "Dudes: {{#dudes}}{{> dude others=..}}{{/dudes}}";
-    var partial = "{{others.foo}}{{name}} ({{url}}) ";
-    var hash = {foo: 'bar', dudes: [{name: "Yehuda", url: "http://yehuda"}, {name: "Alan", url: "http://alan"}]};
-    shouldCompileToWithPartials(string, [hash, {}, {dude: partial}], true, "Dudes: barYehuda (http://yehuda) barAlan (http://alan) ",
-                    "Basic partials output based on current context.");
-  });
- 
-  it("partial in a partial", function() {
-    var string = "Dudes: {{#dudes}}{{>dude}}{{/dudes}}";
-    var dude = "{{name}} {{> url}} ";
-    var url = "<a href='{{url}}'>{{url}}</a>";
-    var hash = {dudes: [{name: "Yehuda", url: "http://yehuda"}, {name: "Alan", url: "http://alan"}]};
-    shouldCompileToWithPartials(string, [hash, {}, {dude: dude, url: url}], true, "Dudes: Yehuda <a href='http://yehuda'>http://yehuda</a> Alan <a href='http://alan'>http://alan</a> ", "Partials are rendered inside of other partials");
-  });
- 
-  it("rendering undefined partial throws an exception", function() {
-    shouldThrow(function() {
-        var template = CompilerContext.compile("{{> whatever}}");
-        template();
-    }, Handlebars.Exception, 'The partial whatever could not be found');
-  });
- 
-  it("rendering template partial in vm mode throws an exception", function() {
-    shouldThrow(function() {
-      var template = CompilerContext.compile("{{> whatever}}");
-      template();
-    }, Handlebars.Exception, 'The partial whatever could not be found');
-  });
- 
-  it("rendering function partial in vm mode", function() {
-    var string = "Dudes: {{#dudes}}{{> dude}}{{/dudes}}";
-    var partial = function(context) {
-      return context.name + ' (' + context.url + ') ';
-    };
-    var hash = {dudes: [{name: "Yehuda", url: "http://yehuda"}, {name: "Alan", url: "http://alan"}]};
-    shouldCompileTo(string, [hash, {}, {dude: partial}], "Dudes: Yehuda (http://yehuda) Alan (http://alan) ",
-                    "Function partials output based in VM.");
-  });
- 
-  it("GH-14: a partial preceding a selector", function() {
-     var string = "Dudes: {{>dude}} {{another_dude}}";
-     var dude = "{{name}}";
-     var hash = {name:"Jeepers", another_dude:"Creepers"};
-     shouldCompileToWithPartials(string, [hash, {}, {dude:dude}], true, "Dudes: Jeepers Creepers", "Regular selectors can follow a partial");
-  });
- 
-  it("Partials with slash paths", function() {
-    var string = "Dudes: {{> shared/dude}}";
-    var dude = "{{name}}";
-    var hash = {name:"Jeepers", another_dude:"Creepers"};
-    shouldCompileToWithPartials(string, [hash, {}, {'shared/dude':dude}], true, "Dudes: Jeepers", "Partials can use literal paths");
-  });
- 
-  it("Partials with slash and point paths", function() {
-    var string = "Dudes: {{> shared/dude.thing}}";
-    var dude = "{{name}}";
-    var hash = {name:"Jeepers", another_dude:"Creepers"};
-    shouldCompileToWithPartials(string, [hash, {}, {'shared/dude.thing':dude}], true, "Dudes: Jeepers", "Partials can use literal with points in paths");
-  });
- 
-  it("Global Partials", function() {
-    handlebarsEnv.registerPartial('global_test', '{{another_dude}}');
- 
-    var string = "Dudes: {{> shared/dude}} {{> global_test}}";
-    var dude = "{{name}}";
-    var hash = {name:"Jeepers", another_dude:"Creepers"};
-    shouldCompileToWithPartials(string, [hash, {}, {'shared/dude':dude}], true, "Dudes: Jeepers Creepers", "Partials can use globals or passed");
-  });
- 
-  it("Multiple partial registration", function() {
-    handlebarsEnv.registerPartial({
-      'shared/dude': '{{name}}',
-      global_test: '{{another_dude}}'
-    });
- 
-    var string = "Dudes: {{> shared/dude}} {{> global_test}}";
-    var hash = {name:"Jeepers", another_dude:"Creepers"};
-    shouldCompileToWithPartials(string, [hash], true, "Dudes: Jeepers Creepers", "Partials can use globals or passed");
-  });
- 
-  it("Partials with integer path", function() {
-    var string = "Dudes: {{> 404}}";
-    var dude = "{{name}}";
-    var hash = {name:"Jeepers", another_dude:"Creepers"};
-    shouldCompileToWithPartials(string, [hash, {}, {404:dude}], true, "Dudes: Jeepers", "Partials can use literal paths");
-  });
- 
-  it("Partials with complex path", function() {
-    var string = "Dudes: {{> 404/asdf?.bar}}";
-    var dude = "{{name}}";
-    var hash = {name:"Jeepers", another_dude:"Creepers"};
-    shouldCompileToWithPartials(string, [hash, {}, {'404/asdf?.bar':dude}], true, "Dudes: Jeepers", "Partials can use literal paths");
-  });
- 
-  it("Partials with escaped", function() {
-    var string = "Dudes: {{> [+404/asdf?.bar]}}";
-    var dude = "{{name}}";
-    var hash = {name:"Jeepers", another_dude:"Creepers"};
-    shouldCompileToWithPartials(string, [hash, {}, {'+404/asdf?.bar':dude}], true, "Dudes: Jeepers", "Partials can use literal paths");
-  });
- 
-  it("Partials with string", function() {
-    var string = "Dudes: {{> \"+404/asdf?.bar\"}}";
-    var dude = "{{name}}";
-    var hash = {name:"Jeepers", another_dude:"Creepers"};
-    shouldCompileToWithPartials(string, [hash, {}, {'+404/asdf?.bar':dude}], true, "Dudes: Jeepers", "Partials can use literal paths");
-  });
- 
-  it('should handle empty partial', function() {
-    var string = "Dudes: {{#dudes}}{{> dude}}{{/dudes}}";
-    var partial = "";
-    var hash = {dudes: [{name: "Yehuda", url: "http://yehuda"}, {name: "Alan", url: "http://alan"}]};
-    shouldCompileToWithPartials(string, [hash, {}, {dude: partial}], true, "Dudes: ");  });
- 
-  describe('standalone partials', function() {
-    it("indented partials", function() {
-      var string = "Dudes:\n{{#dudes}}\n  {{>dude}}\n{{/dudes}}";
-      var dude = "{{name}}\n";
-      var hash = {dudes: [{name: "Yehuda", url: "http://yehuda"}, {name: "Alan", url: "http://alan"}]};
-      shouldCompileToWithPartials(string, [hash, {}, {dude: dude}], true,
-            "Dudes:\n  Yehuda\n  Alan\n");
-    });
-    it("nested indented partials", function() {
-      var string = "Dudes:\n{{#dudes}}\n  {{>dude}}\n{{/dudes}}";
-      var dude = "{{name}}\n {{> url}}";
-      var url = "{{url}}!\n";
-      var hash = {dudes: [{name: "Yehuda", url: "http://yehuda"}, {name: "Alan", url: "http://alan"}]};
-      shouldCompileToWithPartials(string, [hash, {}, {dude: dude, url: url}], true,
-            "Dudes:\n  Yehuda\n   http://yehuda!\n  Alan\n   http://alan!\n");
-    });
-  });
- 
-  describe('compat mode', function() {
-    it('basic partials', function() {
-      var string = 'Dudes: {{#dudes}}{{> dude}}{{/dudes}}';
-      var partial = '{{name}} ({{url}}) {{root}} ';
-      var hash = {root: 'yes', dudes: [{name: 'Yehuda', url: 'http://yehuda'}, {name: 'Alan', url: 'http://alan'}]};
-      shouldCompileToWithPartials(string, [hash, {}, {dude: partial}, true], true, 'Dudes: Yehuda (http://yehuda) yes Alan (http://alan) yes ');
-    });
-    it('partials inherit compat', function() {
-      var string = 'Dudes: {{> dude}}';
-      var partial = '{{#dudes}}{{name}} ({{url}}) {{root}} {{/dudes}}';
-      var hash = {root: 'yes', dudes: [{name: 'Yehuda', url: 'http://yehuda'}, {name: 'Alan', url: 'http://alan'}]};
-      shouldCompileToWithPartials(string, [hash, {}, {dude: partial}, true], true, 'Dudes: Yehuda (http://yehuda) yes Alan (http://alan) yes ');
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/precompiler.js.html b/node_modules/handlebars/coverage/lcov-report/spec/precompiler.js.html deleted file mode 100644 index e8e9623..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/precompiler.js.html +++ /dev/null @@ -1,442 +0,0 @@ - - - - Code coverage report for spec/precompiler.js - - - - - - - -
-

Code coverage report for spec/precompiler.js

-

- - Statements: 42.86% (9 / 21)      - - - Branches: 50% (1 / 2)      - - - Functions: 11.11% (1 / 9)      - - - Lines: 42.86% (9 / 21)      - - Ignored: none      -

-
All files » spec/ » precompiler.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41  -  -3 -  -3 -  -  -  -3 -  -  -3 -  -  -3 -  -  -  -  -  -  -3 -  -  -  -3 -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  - 
/*global shouldThrow */
- 
-describe('precompiler', function() {
-  // NOP Under non-node environments
-  Iif (typeof process === 'undefined') {
-    return;
-  }
- 
-  var Handlebars = require('../lib'),
-      Precompiler = require('../lib/precompiler');
- 
-  var log,
-      logFunction;
- 
-  beforeEach(function() {
-    logFunction = console.log;
-    log = '';
-    console.log = function() {
-      log += Array.prototype.join.call(arguments, '');
-    };
-  });
-  afterEach(function() {
-    console.log = logFunction;
-  });
- 
-  it('should output version', function() {
-    Precompiler.cli({templates: [], version: true});
-    equals(log, Handlebars.VERSION);
-  });
-  it('should throw if lacking templates', function() {
-    shouldThrow(function() {
-      Precompiler.cli({templates: []});
-    }, Handlebars.Exception, 'Must define at least one template or directory.');
-  });
-  it('should throw on missing template', function() {
-    shouldThrow(function() {
-      Precompiler.cli({templates: ['foo']});
-    }, Handlebars.Exception, 'Unable to open template file "foo"');
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/regressions.js.html b/node_modules/handlebars/coverage/lcov-report/spec/regressions.js.html deleted file mode 100644 index c09402c..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/regressions.js.html +++ /dev/null @@ -1,790 +0,0 @@ - - - - Code coverage report for spec/regressions.js - - - - - - - -
-

Code coverage report for spec/regressions.js

-

- - Statements: 27.94% (19 / 68)      - - - Branches: 100% (2 / 2)      - - - Functions: 4% (1 / 25)      - - - Lines: 27.94% (19 / 68)      - - Ignored: none      -

-
All files » spec/ » regressions.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157  -3 -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -3 -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -3 -  -  -  -3 -2 -  -  -  -2 -  -  -  -  - 
/*global CompilerContext, Handlebars, shouldCompileTo, shouldThrow */
-describe('Regressions', function() {
-  it("GH-94: Cannot read property of undefined", function() {
-    var data = {"books":[{"title":"The origin of species","author":{"name":"Charles Darwin"}},{"title":"Lazarillo de Tormes"}]};
-    var string = "{{#books}}{{title}}{{author.name}}{{/books}}";
-    shouldCompileTo(string, data, "The origin of speciesCharles DarwinLazarillo de Tormes",
-                    "Renders without an undefined property error");
-  });
- 
-  it("GH-150: Inverted sections print when they shouldn't", function() {
-    var string = "{{^set}}not set{{/set}} :: {{#set}}set{{/set}}";
- 
-    shouldCompileTo(string, {}, "not set :: ", "inverted sections run when property isn't present in context");
-    shouldCompileTo(string, {set: undefined}, "not set :: ", "inverted sections run when property is undefined");
-    shouldCompileTo(string, {set: false}, "not set :: ", "inverted sections run when property is false");
-    shouldCompileTo(string, {set: true}, " :: set", "inverted sections don't run when property is true");
-  });
- 
-  it("GH-158: Using array index twice, breaks the template", function() {
-    var string = "{{arr.[0]}}, {{arr.[1]}}";
-    var data = { "arr": [1,2] };
- 
-    shouldCompileTo(string, data, "1, 2", "it works as expected");
-  });
- 
-  it("bug reported by @fat where lambdas weren't being properly resolved", function() {
-    var string = '<strong>This is a slightly more complicated {{thing}}.</strong>.\n'
-        + '{{! Just ignore this business. }}\n'
-        + 'Check this out:\n'
-        + '{{#hasThings}}\n'
-        + '<ul>\n'
-        + '{{#things}}\n'
-        + '<li class={{className}}>{{word}}</li>\n'
-        + '{{/things}}</ul>.\n'
-        + '{{/hasThings}}\n'
-        + '{{^hasThings}}\n'
-        + '\n'
-        + '<small>Nothing to check out...</small>\n'
-        + '{{/hasThings}}';
-    var data = {
-      thing: function() {
-        return "blah";
-      },
-      things: [
-        {className: "one", word: "@fat"},
-        {className: "two", word: "@dhg"},
-        {className: "three", word:"@sayrer"}
-      ],
-      hasThings: function() {
-        return true;
-      }
-    };
- 
-    var output = '<strong>This is a slightly more complicated blah.</strong>.\n'
-        + 'Check this out:\n'
-        + '<ul>\n'
-        + '<li class=one>@fat</li>\n'
-        + '<li class=two>@dhg</li>\n'
-        + '<li class=three>@sayrer</li>\n'
-        + '</ul>.\n';
-    shouldCompileTo(string, data, output);
-  });
- 
-  it('GH-408: Multiple loops fail', function() {
-    var context = [
-      { name: "John Doe", location: { city: "Chicago" } },
-      { name: "Jane Doe", location: { city: "New York"} }
-    ];
- 
-    var template = CompilerContext.compile('{{#.}}{{name}}{{/.}}{{#.}}{{name}}{{/.}}{{#.}}{{name}}{{/.}}');
- 
-    var result = template(context);
-    equals(result, "John DoeJane DoeJohn DoeJane DoeJohn DoeJane Doe", 'It should output multiple times');
-  });
- 
-  it('GS-428: Nested if else rendering', function() {
-    var succeedingTemplate = '{{#inverse}} {{#blk}} Unexpected {{/blk}} {{else}}  {{#blk}} Expected {{/blk}} {{/inverse}}';
-    var failingTemplate = '{{#inverse}} {{#blk}} Unexpected {{/blk}} {{else}} {{#blk}} Expected {{/blk}} {{/inverse}}';
- 
-    var helpers = {
-      blk: function(block) { return block.fn(''); },
-      inverse: function(block) { return block.inverse(''); }
-    };
- 
-    shouldCompileTo(succeedingTemplate, [{}, helpers], '   Expected  ');
-    shouldCompileTo(failingTemplate, [{}, helpers], '  Expected  ');
-  });
- 
-  it('GH-458: Scoped this identifier', function() {
-    shouldCompileTo('{{./foo}}', {foo: 'bar'}, 'bar');
-  });
- 
-  it('GH-375: Unicode line terminators', function() {
-    shouldCompileTo('\u2028', {}, '\u2028');
-  });
- 
-  it('GH-534: Object prototype aliases', function() {
-    Object.prototype[0xD834] = true;
- 
-    shouldCompileTo('{{foo}}', { foo: 'bar' }, 'bar');
- 
-    delete Object.prototype[0xD834];
-  });
- 
-  it('GH-437: Matching escaping', function() {
-    shouldThrow(function() {
-      CompilerContext.compile('{{{a}}');
-    }, Error);
-    shouldThrow(function() {
-      CompilerContext.compile('{{a}}}');
-    }, Error);
-  });
- 
-  it("GH-676: Using array in escaping mustache fails", function() {
-    var string = "{{arr}}";
-    var data = { "arr": [1,2] };
- 
-    shouldCompileTo(string, data, data.arr.toString(), "it works as expected");
-  });
- 
-  it("Mustache man page", function() {
-    var string = "Hello {{name}}. You have just won ${{value}}!{{#in_ca}} Well, ${{taxed_value}}, after taxes.{{/in_ca}}";
-    var data = {
-      "name": "Chris",
-      "value": 10000,
-      "taxed_value": 10000 - (10000 * 0.4),
-      "in_ca": true
-    };
- 
-    shouldCompileTo(string, data, "Hello Chris. You have just won $10000! Well, $6000, after taxes.", "the hello world mustache example works");
-  });
- 
-  it("Passing falsy values to Handlebars.compile throws an error", function() {
-    shouldThrow(function() {
-      CompilerContext.compile(null);
-    }, Error, 'You must pass a string or Handlebars AST to Handlebars.precompile. You passed null');
-  });
- 
-  it('GH-731: zero context rendering', function() {
-    shouldCompileTo('{{#foo}} This is {{bar}} ~ {{/foo}}', {foo: 0, bar: 'OK'}, ' This is  ~ ');
-  });
- 
-  it('GH-820: zero pathed rendering', function() {
-    shouldCompileTo('{{foo.bar}}', {foo: 0}, '');
-  });
- 
-  if (Handlebars.AST) {
-    it("can pass through an already-compiled AST via compile/precompile", function() {
-      equal(Handlebars.compile(new Handlebars.AST.ProgramNode(true, [ new Handlebars.AST.ContentNode("Hello")]))(), 'Hello');
-    });
- 
-    it("can pass through an empty string", function() {
-      equal(Handlebars.compile('')(), '');
-    });
-  }
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/require.js.html b/node_modules/handlebars/coverage/lcov-report/spec/require.js.html deleted file mode 100644 index 9cec92b..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/require.js.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - Code coverage report for spec/require.js - - - - - - - -
-

Code coverage report for spec/require.js

-

- - Statements: 28.57% (4 / 14)      - - - Branches: 75% (3 / 4)      - - - Functions: 33.33% (1 / 3)      - - - Lines: 28.57% (4 / 14)      - - Ignored: none      -

-
All files » spec/ » require.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -243 -3 -3 -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  - 
Eif (typeof(require) !== 'undefined' && require.extensions[".handlebars"]) {
-  describe('Require', function() {
-    it('Load .handlebars files with require()', function() {
-      var template = require("./artifacts/example_1");
-      equal(template, require("./artifacts/example_1.handlebars"));
- 
-      var expected = 'foo\n';
-      var result = template({foo: "foo"});
- 
-      equal(result, expected);
-    });
- 
-    it('Load .hbs files with require()', function() {
-      var template = require("./artifacts/example_2");
-      equal(template, require("./artifacts/example_2.hbs"));
- 
-      var expected = 'Hello, World!\n';
-      var result = template({name: "World"});
- 
-      equal(result, expected);
-    });
-  });
-}
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/runtime.js.html b/node_modules/handlebars/coverage/lcov-report/spec/runtime.js.html deleted file mode 100644 index e71c168..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/runtime.js.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - Code coverage report for spec/runtime.js - - - - - - - -
-

Code coverage report for spec/runtime.js

-

- - Statements: 100% (3 / 3)      - - - Branches: 100% (0 / 0)      - - - Functions: 100% (2 / 2)      - - - Lines: 100% (3 / 3)      - - Ignored: none      -

-
All files » spec/ » runtime.js
-
-
-

-
-
1 -2 -3 -4 -5 -63 -3 -3 -  -  - 
describe('runtime', function() {
-  describe('#template', function() {
-    it('should throw on invalid data');
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/spec.js.html b/node_modules/handlebars/coverage/lcov-report/spec/spec.js.html deleted file mode 100644 index eeaee4d..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/spec.js.html +++ /dev/null @@ -1,469 +0,0 @@ - - - - Code coverage report for spec/spec.js - - - - - - - -
-

Code coverage report for spec/spec.js

-

- - Statements: 76.19% (16 / 21)      - - - Branches: 73.33% (11 / 15)      - - - Functions: 83.33% (5 / 6)      - - - Lines: 76.19% (16 / 21)      - - Ignored: none      -

-
All files » spec/ » spec.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -503 -  -3 -  -  -  -3 -  -  -  -3 -3 -42 -  -  -3 -21 -21 -  -  -366 -  -  -  -  -  -  -  -  -30 -78 -78 -  -  -288 -288 -  -  -  -288 -  -  -  -  -  -  -  -  -  - 
describe('spec', function() {
-  // NOP Under non-node environments
-  Iif (typeof process === 'undefined') {
-    return;
-  }
- 
-  var _ = require('underscore'),
-      Handlebars = require('../lib'),
-      fs = require('fs');
- 
-  var specDir =__dirname + '/mustache/specs/';
-  var specs = _.filter(fs.readdirSync(specDir), function(name) {
-    return /.*\.json$/.test(name);
-  });
- 
-  _.each(specs, function(name) {
-    var spec = require(specDir + name);
-    _.each(spec.tests, function(test) {
-      // Our lambda implementation knowingly deviates from the optional Mustace lambda spec
-      // We also do not support alternative delimeters
-      if (name === '~lambdas.json'
- 
-          // We also choose to throw if paritals are not found
-          || (name === 'partials.json' && test.name === 'Failed Lookup')
- 
-          // We nest the entire response from partials, not just the literals
-          || (name === 'partials.json' && test.name === 'Standalone Indentation')
- 
-          || /\{\{\=/.test(test.template)
-          || _.any(test.partials, function(partial) { return /\{\{\=/.test(partial); })) {
-        it.skip(name + ' - ' + test.name);
-        return;
-      }
- 
-      var data = _.clone(test.data);
-      Iif (data.lambda) {
-        // Blergh
-        data.lambda = eval('(' + data.lambda.js + ')');
-      }
-      it(name + ' - ' + test.name, function() {
-        if (test.partials) {
-          shouldCompileToWithPartials(test.template, [data, {}, test.partials, true], true, test.expected, test.desc + ' "' + test.template + '"');
-        } else {
-          shouldCompileTo(test.template, [data, {}, {}, true], test.expected, test.desc + ' "' + test.template + '"');
-        }
-      });
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/string-params.js.html b/node_modules/handlebars/coverage/lcov-report/spec/string-params.js.html deleted file mode 100644 index 0eb0e99..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/string-params.js.html +++ /dev/null @@ -1,850 +0,0 @@ - - - - Code coverage report for spec/string-params.js - - - - - - - -
-

Code coverage report for spec/string-params.js

-

- - Statements: 11.9% (10 / 84)      - - - Branches: 100% (0 / 0)      - - - Functions: 4.35% (1 / 23)      - - - Lines: 11.9% (10 / 84)      - - Ignored: none      -

-
All files » spec/ » string-params.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -1773 -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
describe('string params mode', function() {
-  it("arguments to helpers can be retrieved from options hash in string form", function() {
-    var template = CompilerContext.compile('{{wycats is.a slave.driver}}', {stringParams: true});
- 
-    var helpers = {
-      wycats: function(passiveVoice, noun) {
-        return "HELP ME MY BOSS " + passiveVoice + ' ' + noun;
-      }
-    };
- 
-    var result = template({}, {helpers: helpers});
- 
-    equals(result, "HELP ME MY BOSS is.a slave.driver", "String parameters output");
-  });
- 
-  it("when using block form, arguments to helpers can be retrieved from options hash in string form", function() {
-    var template = CompilerContext.compile('{{#wycats is.a slave.driver}}help :({{/wycats}}', {stringParams: true});
- 
-    var helpers = {
-      wycats: function(passiveVoice, noun, options) {
-        return "HELP ME MY BOSS " + passiveVoice + ' ' +
-                noun + ': ' + options.fn(this);
-      }
-    };
- 
-    var result = template({}, {helpers: helpers});
- 
-    equals(result, "HELP ME MY BOSS is.a slave.driver: help :(", "String parameters output");
-  });
- 
-  it("when inside a block in String mode, .. passes the appropriate context in the options hash", function() {
-    var template = CompilerContext.compile('{{#with dale}}{{tomdale ../need dad.joke}}{{/with}}', {stringParams: true});
- 
-    var helpers = {
-      tomdale: function(desire, noun, options) {
-        return "STOP ME FROM READING HACKER NEWS I " +
-                options.contexts[0][desire] + " " + noun;
-      },
- 
-      "with": function(context, options) {
-        return options.fn(options.contexts[0][context]);
-      }
-    };
- 
-    var result = template({
-      dale: {},
- 
-      need: 'need-a'
-    }, {helpers: helpers});
- 
-    equals(result, "STOP ME FROM READING HACKER NEWS I need-a dad.joke", "Proper context variable output");
-  });
- 
-  it("information about the types is passed along", function() {
-    var template = CompilerContext.compile('{{tomdale "need" dad.joke true false}}', { stringParams: true });
- 
-    var helpers = {
-      tomdale: function(desire, noun, trueBool, falseBool, options) {
-        equal(options.types[0], 'STRING', "the string type is passed");
-        equal(options.types[1], 'ID', "the expression type is passed");
-        equal(options.types[2], 'BOOLEAN', "the expression type is passed");
-        equal(desire, "need", "the string form is passed for strings");
-        equal(noun, "dad.joke", "the string form is passed for expressions");
-        equal(trueBool, true, "raw booleans are passed through");
-        equal(falseBool, false, "raw booleans are passed through");
-        return "Helper called";
-      }
-    };
- 
-    var result = template({}, { helpers: helpers });
-    equal(result, "Helper called");
-  });
- 
-  it("hash parameters get type information", function() {
-    var template = CompilerContext.compile('{{tomdale he.says desire="need" noun=dad.joke bool=true}}', { stringParams: true });
- 
-    var helpers = {
-      tomdale: function(exclamation, options) {
-        equal(exclamation, "he.says");
-        equal(options.types[0], "ID");
- 
-        equal(options.hashTypes.desire, "STRING");
-        equal(options.hashTypes.noun, "ID");
-        equal(options.hashTypes.bool, "BOOLEAN");
-        equal(options.hash.desire, "need");
-        equal(options.hash.noun, "dad.joke");
-        equal(options.hash.bool, true);
-        return "Helper called";
-      }
-    };
- 
-    var result = template({}, { helpers: helpers });
-    equal(result, "Helper called");
-  });
- 
-  it("hash parameters get context information", function() {
-    var template = CompilerContext.compile('{{#with dale}}{{tomdale he.says desire="need" noun=../dad/joke bool=true}}{{/with}}', { stringParams: true });
- 
-    var context = {dale: {}};
- 
-    var helpers = {
-      tomdale: function(exclamation, options) {
-        equal(exclamation, "he.says");
-        equal(options.types[0], "ID");
- 
-        equal(options.contexts.length, 1);
-        equal(options.hashContexts.noun, context);
-        equal(options.hash.desire, "need");
-        equal(options.hash.noun, "dad.joke");
-        equal(options.hash.bool, true);
-        return "Helper called";
-      },
-      "with": function(context, options) {
-        return options.fn(options.contexts[0][context]);
-      }
-    };
- 
-    var result = template(context, { helpers: helpers });
-    equal(result, "Helper called");
-  });
- 
-  it("when inside a block in String mode, .. passes the appropriate context in the options hash to a block helper", function() {
-    var template = CompilerContext.compile('{{#with dale}}{{#tomdale ../need dad.joke}}wot{{/tomdale}}{{/with}}', {stringParams: true});
- 
-    var helpers = {
-      tomdale: function(desire, noun, options) {
-        return "STOP ME FROM READING HACKER NEWS I " +
-                options.contexts[0][desire] + " " + noun + " " +
-                options.fn(this);
-      },
- 
-      "with": function(context, options) {
-        return options.fn(options.contexts[0][context]);
-      }
-    };
- 
-    var result = template({
-      dale: {},
- 
-      need: 'need-a'
-    }, {helpers: helpers});
- 
-    equals(result, "STOP ME FROM READING HACKER NEWS I need-a dad.joke wot", "Proper context variable output");
-  });
- 
-  it("with nested block ambiguous", function() {
-    var template = CompilerContext.compile('{{#with content}}{{#view}}{{firstName}} {{lastName}}{{/view}}{{/with}}', {stringParams: true});
- 
-    var helpers  = {
-      'with': function(options) {
-        return "WITH";
-      },
-      view: function() {
-        return "VIEW";
-      }
-    };
- 
-    var result = template({}, {helpers: helpers});
-    equals(result, "WITH");
-  });
- 
-  it('should handle DATA', function() {
-    var template = CompilerContext.compile('{{foo @bar}}', { stringParams: true });
- 
-    var helpers = {
-      foo: function(bar, options) {
-        equal(bar, 'bar');
-        equal(options.types[0], 'DATA');
-        return 'Foo!';
-      }
-    };
- 
-    var result = template({}, { helpers: helpers });
-    equal(result, 'Foo!');
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/subexpressions.js.html b/node_modules/handlebars/coverage/lcov-report/spec/subexpressions.js.html deleted file mode 100644 index fc7e305..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/subexpressions.js.html +++ /dev/null @@ -1,970 +0,0 @@ - - - - Code coverage report for spec/subexpressions.js - - - - - - - -
-

Code coverage report for spec/subexpressions.js

-

- - Statements: 13.33% (14 / 105)      - - - Branches: 0% (0 / 4)      - - - Functions: 2.56% (1 / 39)      - - - Lines: 13.33% (14 / 105)      - - Ignored: none      -

-
All files » spec/ » subexpressions.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217  -3 -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/*global CompilerContext, shouldCompileTo */
-describe('subexpressions', function() {
-  it("arg-less helper", function() {
-    var string   = "{{foo (bar)}}!";
-    var context  = {};
-    var helpers  = {
-      foo: function(val) {
-        return val+val;
-      },
-      bar: function() {
-        return "LOL";
-      }
-    };
-    shouldCompileTo(string, [context, helpers], "LOLLOL!");
-  });
- 
-  it("helper w args", function() {
-    var string   = '{{blog (equal a b)}}';
- 
-    var context  = { bar: "LOL" };
-    var helpers  = {
-      blog: function(val) {
-        return "val is " + val;
-      },
-      equal: function(x, y) {
-        return x === y;
-      }
-    };
-    shouldCompileTo(string, [context, helpers], "val is true");
-  });
- 
-  it("mixed paths and helpers", function() {
-    var string   = '{{blog baz.bat (equal a b) baz.bar}}';
- 
-    var context  = { bar: "LOL", baz: {bat: 'foo!', bar: 'bar!'} };
-    var helpers  = {
-      blog: function(val, that, theOther) {
-        return "val is " + val + ', ' + that + ' and ' + theOther;
-      },
-      equal: function(x, y) {
-        return x === y;
-      }
-    };
-    shouldCompileTo(string, [context, helpers], "val is foo!, true and bar!");
-  });
- 
-  it("supports much nesting", function() {
-    var string   = '{{blog (equal (equal true true) true)}}';
- 
-    var context  = { bar: "LOL" };
-    var helpers  = {
-      blog: function(val) {
-        return "val is " + val;
-      },
-      equal: function(x, y) {
-        return x === y;
-      }
-    };
-    shouldCompileTo(string, [context, helpers], "val is true");
-  });
- 
-  it('GH-800 : Complex subexpressions', function() {
-    var context  = {a: 'a', b:'b', c:{c:'c'}, d:'d', e: {e: 'e'}};
-    var helpers  = {
-      dash: function(a, b) {
-        return a + "-" + b;
-      },
-      concat: function(a, b) {
-        return a + b;
-      }
-    };
- 
-    shouldCompileTo('{{dash "abc" (concat a b)}}', [context, helpers], 'abc-ab');
-    shouldCompileTo('{{dash d (concat a b)}}', [context, helpers], 'd-ab');
-    shouldCompileTo('{{dash c.c (concat a b)}}', [context, helpers], 'c-ab');
-    shouldCompileTo('{{dash (concat a b) c.c}}', [context, helpers], 'ab-c');
-    shouldCompileTo('{{dash (concat a e.e) c.c}}', [context, helpers], 'ae-c');
-  });
- 
-  it("provides each nested helper invocation its own options hash", function() {
-    var string = '{{equal (equal true true) true}}';
- 
-    var lastOptions = null;
-    var helpers  = {
-      equal: function(x, y, options) {
-        if (!options || options === lastOptions) {
-          throw new Error("options hash was reused");
-        }
-        lastOptions = options;
-        return x === y;
-      }
-    };
-    shouldCompileTo(string, [{}, helpers], "true");
-  });
- 
-  it("with hashes", function() {
-    var string   = '{{blog (equal (equal true true) true fun="yes")}}';
- 
-    var context  = { bar: "LOL" };
-    var helpers  = {
-      blog: function(val) {
-        return "val is " + val;
-      },
-      equal: function(x, y) {
-        return x === y;
-      }
-    };
-    shouldCompileTo(string, [context, helpers], "val is true");
-  });
- 
-  it("as hashes", function() {
-    var string   = '{{blog fun=(equal (blog fun=1) "val is 1")}}';
- 
-    var helpers  = {
-      blog: function(options) {
-        return "val is " + options.hash.fun;
-      },
-      equal: function(x, y) {
-        return x === y;
-      }
-    };
-    shouldCompileTo(string, [{}, helpers], "val is true");
-  });
- 
-  it("multiple subexpressions in a hash", function() {
-    var string = '{{input aria-label=(t "Name") placeholder=(t "Example User")}}';
- 
-    var helpers = {
-      input: function(options) {
-        var hash        = options.hash;
-        var ariaLabel   = Handlebars.Utils.escapeExpression(hash['aria-label']);
-        var placeholder = Handlebars.Utils.escapeExpression(hash.placeholder);
-        return new Handlebars.SafeString('<input aria-label="' + ariaLabel + '" placeholder="' + placeholder + '" />');
-      },
-      t: function(defaultString) {
-        return new Handlebars.SafeString(defaultString);
-      }
-    }
-    shouldCompileTo(string, [{}, helpers], '<input aria-label="Name" placeholder="Example User" />');
-  });
- 
-  it("in string params mode,", function() {
-    var template = CompilerContext.compile('{{snog (blorg foo x=y) yeah a=b}}', {stringParams: true});
- 
-    var helpers = {
-      snog: function(a, b, options) {
-        equals(a, 'foo');
-        equals(options.types.length, 2, "string params for outer helper processed correctly");
-        equals(options.types[0], 'sexpr', "string params for outer helper processed correctly");
-        equals(options.types[1], 'ID', "string params for outer helper processed correctly");
-        return a + b;
-      },
- 
-      blorg: function(a, options) {
-        equals(options.types.length, 1, "string params for inner helper processed correctly");
-        equals(options.types[0], 'ID', "string params for inner helper processed correctly");
-        return a;
-      }
-    };
- 
-    var result = template({
-      foo: {},
-      yeah: {}
-    }, {helpers: helpers});
- 
-    equals(result, "fooyeah");
-  });
- 
-  it("as hashes in string params mode", function() {
- 
-    var template = CompilerContext.compile('{{blog fun=(bork)}}', {stringParams: true});
- 
-    var helpers  = {
-      blog: function(options) {
-        equals(options.hashTypes.fun, 'sexpr');
-        return "val is " + options.hash.fun;
-      },
-      bork: function() {
-        return "BORK";
-      }
-    };
- 
-    var result = template({}, {helpers: helpers});
-    equals(result, "val is BORK");
-  });
- 
-  it("subexpression functions on the context", function() {
-    var string   = "{{foo (bar)}}!";
-    var context  = {
-      bar: function() {
-        return "LOL";
-      }
-    };
-    var helpers  = {
-      foo: function(val) {
-        return val+val;
-      }
-    };
-    shouldCompileTo(string, [context, helpers], "LOLLOL!");
-  });
- 
-  it("subexpressions can't just be property lookups", function() {
-    var string   = "{{foo (bar)}}!";
-    var context  = {
-      bar: "LOL"
-    };
-    var helpers  = {
-      foo: function(val) {
-        return val+val;
-      }
-    };
-    shouldThrow(function() {
-      shouldCompileTo(string, [context, helpers], "LOLLOL!");
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/tokenizer.js.html b/node_modules/handlebars/coverage/lcov-report/spec/tokenizer.js.html deleted file mode 100644 index 377d160..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/tokenizer.js.html +++ /dev/null @@ -1,1528 +0,0 @@ - - - - Code coverage report for spec/tokenizer.js - - - - - - - -
-

Code coverage report for spec/tokenizer.js

-

- - Statements: 20.91% (55 / 263)      - - - Branches: 22.22% (2 / 9)      - - - Functions: 1.89% (1 / 53)      - - - Lines: 20.91% (55 / 263)      - - Ignored: none      -

-
All files » spec/ » tokenizer.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -4031 -  -  -  -  -1 -  -  -  -  -3 -3 -1 -  -  -1 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -2 -  -  -  -2 -  -  -  -  -  -  -  -  -  -  -  -  -2 -  -  -  -  -  -  -  -  -2 -  -  -  -  - 
function shouldMatchTokens(result, tokens) {
-  for (var index = 0; index < result.length; index++) {
-    equals(result[index].name, tokens[index]);
-  }
-}
-function shouldBeToken(result, name, text) {
-  equals(result.name, name);
-  equals(result.text, text);
-}
- 
-describe('Tokenizer', function() {
-  if (!Handlebars.Parser) {
-    return;
-  }
- 
-  function tokenize(template) {
-    var parser = Handlebars.Parser,
-        lexer = parser.lexer;
- 
-    lexer.setInput(template);
-    var out = [],
-        token;
- 
-    while (token = lexer.lex()) {
-      var result = parser.terminals_[token] || token;
-      if (!result || result === 'EOF' || result === 'INVALID') {
-        break;
-      }
-      out.push({name: result, text: lexer.yytext});
-    }
- 
-    return out;
-  }
- 
-  it('tokenizes a simple mustache as "OPEN ID CLOSE"', function() {
-    var result = tokenize("{{foo}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "foo");
-  });
- 
-  it('supports unescaping with &', function() {
-    var result = tokenize("{{&bar}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE']);
- 
-    shouldBeToken(result[0], "OPEN", "{{&");
-    shouldBeToken(result[1], "ID", "bar");
-  });
- 
-  it('supports unescaping with {{{', function() {
-    var result = tokenize("{{{bar}}}");
-    shouldMatchTokens(result, ['OPEN_UNESCAPED', 'ID', 'CLOSE_UNESCAPED']);
- 
-    shouldBeToken(result[1], "ID", "bar");
-  });
- 
-  it('supports escaping delimiters', function() {
-    var result = tokenize("{{foo}} \\{{bar}} {{baz}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);
- 
-    shouldBeToken(result[3], "CONTENT", " ");
-    shouldBeToken(result[4], "CONTENT", "{{bar}} ");
-  });
- 
-  it('supports escaping multiple delimiters', function() {
-    var result = tokenize("{{foo}} \\{{bar}} \\{{baz}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'CONTENT']);
- 
-    shouldBeToken(result[3], "CONTENT", " ");
-    shouldBeToken(result[4], "CONTENT", "{{bar}} ");
-    shouldBeToken(result[5], "CONTENT", "{{baz}}");
-  });
- 
-  it('supports escaping a triple stash', function() {
-    var result = tokenize("{{foo}} \\{{{bar}}} {{baz}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);
- 
-    shouldBeToken(result[4], "CONTENT", "{{{bar}}} ");
-  });
- 
-  it('supports escaping escape character', function() {
-    var result = tokenize("{{foo}} \\\\{{bar}} {{baz}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);
- 
-    shouldBeToken(result[3], "CONTENT", " \\");
-    shouldBeToken(result[5], "ID", "bar");
-  });
- 
-  it('supports escaping multiple escape characters', function() {
-    var result = tokenize("{{foo}} \\\\{{bar}} \\\\{{baz}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);
- 
-    shouldBeToken(result[3], "CONTENT", " \\");
-    shouldBeToken(result[5], "ID", "bar");
-    shouldBeToken(result[7], "CONTENT", " \\");
-    shouldBeToken(result[9], "ID", "baz");
-  });
- 
-  it('supports escaped mustaches after escaped escape characters', function() {
-    var result = tokenize("{{foo}} \\\\{{bar}} \\{{baz}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'CONTENT']);
- 
-    shouldBeToken(result[3], "CONTENT", " \\");
-    shouldBeToken(result[4], "OPEN", "{{");
-    shouldBeToken(result[5], "ID", "bar");
-    shouldBeToken(result[7], "CONTENT", " ");
-    shouldBeToken(result[8], "CONTENT", "{{baz}}");
-  });
- 
-  it('supports escaped escape characters after escaped mustaches', function() {
-    var result = tokenize("{{foo}} \\{{bar}} \\\\{{baz}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'CONTENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);
- 
-    shouldBeToken(result[4], "CONTENT", "{{bar}} ");
-    shouldBeToken(result[5], "CONTENT", "\\");
-    shouldBeToken(result[6], "OPEN", "{{");
-    shouldBeToken(result[7], "ID", "baz");
-  });
- 
-  it('supports escaped escape character on a triple stash', function() {
-    var result = tokenize("{{foo}} \\\\{{{bar}}} {{baz}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE', 'CONTENT', 'OPEN_UNESCAPED', 'ID', 'CLOSE_UNESCAPED', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);
- 
-    shouldBeToken(result[3], "CONTENT", " \\");
-    shouldBeToken(result[5], "ID", "bar");
-  });
- 
-  it('tokenizes a simple path', function() {
-    var result = tokenize("{{foo/bar}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);
-  });
- 
-  it('allows dot notation', function() {
-    var result = tokenize("{{foo.bar}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);
- 
-    shouldMatchTokens(tokenize("{{foo.bar.baz}}"), ['OPEN', 'ID', 'SEP', 'ID', 'SEP', 'ID', 'CLOSE']);
-  });
- 
-  it('allows path literals with []', function() {
-    var result = tokenize("{{foo.[bar]}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);
-  });
- 
-  it('allows multiple path literals on a line with []', function() {
-    var result = tokenize("{{foo.[bar]}}{{foo.[baz]}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE', 'OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);
-  });
- 
-  it('tokenizes {{.}} as OPEN ID CLOSE', function() {
-    var result = tokenize("{{.}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE']);
-  });
- 
-  it('tokenizes a path as "OPEN (ID SEP)* ID CLOSE"', function() {
-    var result = tokenize("{{../foo/bar}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'SEP', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "..");
-  });
- 
-  it('tokenizes a path with .. as a parent path', function() {
-    var result = tokenize("{{../foo.bar}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'SEP', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "..");
-  });
- 
-  it('tokenizes a path with this/foo as OPEN ID SEP ID CLOSE', function() {
-    var result = tokenize("{{this/foo}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'SEP', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "this");
-    shouldBeToken(result[3], "ID", "foo");
-  });
- 
-  it('tokenizes a simple mustache with spaces as "OPEN ID CLOSE"', function() {
-    var result = tokenize("{{  foo  }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "foo");
-  });
- 
-  it('tokenizes a simple mustache with line breaks as "OPEN ID ID CLOSE"', function() {
-    var result = tokenize("{{  foo  \n   bar }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "foo");
-  });
- 
-  it('tokenizes raw content as "CONTENT"', function() {
-    var result = tokenize("foo {{ bar }} baz");
-    shouldMatchTokens(result, ['CONTENT', 'OPEN', 'ID', 'CLOSE', 'CONTENT']);
-    shouldBeToken(result[0], "CONTENT", "foo ");
-    shouldBeToken(result[4], "CONTENT", " baz");
-  });
- 
-  it('tokenizes a partial as "OPEN_PARTIAL ID CLOSE"', function() {
-    var result = tokenize("{{> foo}}");
-    shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'CLOSE']);
-  });
- 
-  it('tokenizes a partial with context as "OPEN_PARTIAL ID ID CLOSE"', function() {
-    var result = tokenize("{{> foo bar }}");
-    shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'ID', 'CLOSE']);
-  });
- 
-  it('tokenizes a partial without spaces as "OPEN_PARTIAL ID CLOSE"', function() {
-    var result = tokenize("{{>foo}}");
-    shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'CLOSE']);
-  });
- 
-  it('tokenizes a partial space at the }); as "OPEN_PARTIAL ID CLOSE"', function() {
-    var result = tokenize("{{>foo  }}");
-    shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'CLOSE']);
-  });
- 
-  it('tokenizes a partial space at the }); as "OPEN_PARTIAL ID CLOSE"', function() {
-    var result = tokenize("{{>foo/bar.baz  }}");
-    shouldMatchTokens(result, ['OPEN_PARTIAL', 'ID', 'SEP', 'ID', 'SEP', 'ID', 'CLOSE']);
-  });
- 
-  it('tokenizes a comment as "COMMENT"', function() {
-    var result = tokenize("foo {{! this is a comment }} bar {{ baz }}");
-    shouldMatchTokens(result, ['CONTENT', 'COMMENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "COMMENT", " this is a comment ");
-  });
- 
-  it('tokenizes a block comment as "COMMENT"', function() {
-    var result = tokenize("foo {{!-- this is a {{comment}} --}} bar {{ baz }}");
-    shouldMatchTokens(result, ['CONTENT', 'COMMENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "COMMENT", " this is a {{comment}} ");
-  });
- 
-  it('tokenizes a block comment with whitespace as "COMMENT"', function() {
-    var result = tokenize("foo {{!-- this is a\n{{comment}}\n--}} bar {{ baz }}");
-    shouldMatchTokens(result, ['CONTENT', 'COMMENT', 'CONTENT', 'OPEN', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "COMMENT", " this is a\n{{comment}}\n");
-  });
- 
-  it('tokenizes open and closing blocks as OPEN_BLOCK, ID, CLOSE ..., OPEN_ENDBLOCK ID CLOSE', function() {
-    var result = tokenize("{{#foo}}content{{/foo}}");
-    shouldMatchTokens(result, ['OPEN_BLOCK', 'ID', 'CLOSE', 'CONTENT', 'OPEN_ENDBLOCK', 'ID', 'CLOSE']);
-  });
- 
-  it('tokenizes inverse sections as "OPEN_INVERSE CLOSE"', function() {
-    shouldMatchTokens(tokenize("{{^}}"), ['OPEN_INVERSE', 'CLOSE']);
-    shouldMatchTokens(tokenize("{{else}}"), ['OPEN_INVERSE', 'CLOSE']);
-    shouldMatchTokens(tokenize("{{ else }}"), ['OPEN_INVERSE', 'CLOSE']);
-  });
- 
-  it('tokenizes inverse sections with ID as "OPEN_INVERSE ID CLOSE"', function() {
-    var result = tokenize("{{^foo}}");
-    shouldMatchTokens(result, ['OPEN_INVERSE', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "foo");
-  });
- 
-  it('tokenizes inverse sections with ID and spaces as "OPEN_INVERSE ID CLOSE"', function() {
-    var result = tokenize("{{^ foo  }}");
-    shouldMatchTokens(result, ['OPEN_INVERSE', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "foo");
-  });
- 
-  it('tokenizes mustaches with params as "OPEN ID ID ID CLOSE"', function() {
-    var result = tokenize("{{ foo bar baz }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "foo");
-    shouldBeToken(result[2], "ID", "bar");
-    shouldBeToken(result[3], "ID", "baz");
-  });
- 
-  it('tokenizes mustaches with String params as "OPEN ID ID STRING CLOSE"', function() {
-    var result = tokenize("{{ foo bar \"baz\" }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'STRING', 'CLOSE']);
-    shouldBeToken(result[3], "STRING", "baz");
-  });
- 
-  it('tokenizes mustaches with String params using single quotes as "OPEN ID ID STRING CLOSE"', function() {
-    var result = tokenize("{{ foo bar \'baz\' }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'STRING', 'CLOSE']);
-    shouldBeToken(result[3], "STRING", "baz");
-  });
- 
-  it('tokenizes String params with spaces inside as "STRING"', function() {
-    var result = tokenize("{{ foo bar \"baz bat\" }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'STRING', 'CLOSE']);
-    shouldBeToken(result[3], "STRING", "baz bat");
-  });
- 
-  it('tokenizes String params with escapes quotes as STRING', function() {
-    var result = tokenize('{{ foo "bar\\"baz" }}');
-    shouldMatchTokens(result, ['OPEN', 'ID', 'STRING', 'CLOSE']);
-    shouldBeToken(result[2], "STRING", 'bar"baz');
-  });
- 
-  it('tokenizes String params using single quotes with escapes quotes as STRING', function() {
-    var result = tokenize("{{ foo 'bar\\'baz' }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'STRING', 'CLOSE']);
-    shouldBeToken(result[2], "STRING", "bar'baz");
-  });
- 
-  it('tokenizes numbers', function() {
-    var result = tokenize('{{ foo 1 }}');
-    shouldMatchTokens(result, ['OPEN', 'ID', 'NUMBER', 'CLOSE']);
-    shouldBeToken(result[2], "NUMBER", "1");
- 
-    result = tokenize('{{ foo 1.1 }}');
-    shouldMatchTokens(result, ['OPEN', 'ID', 'NUMBER', 'CLOSE']);
-    shouldBeToken(result[2], "NUMBER", "1.1");
- 
-    result = tokenize('{{ foo -1 }}');
-    shouldMatchTokens(result, ['OPEN', 'ID', 'NUMBER', 'CLOSE']);
-    shouldBeToken(result[2], "NUMBER", "-1");
- 
-    result = tokenize('{{ foo -1.1 }}');
-    shouldMatchTokens(result, ['OPEN', 'ID', 'NUMBER', 'CLOSE']);
-    shouldBeToken(result[2], "NUMBER", "-1.1");
-  });
- 
-  it('tokenizes booleans', function() {
-    var result = tokenize('{{ foo true }}');
-    shouldMatchTokens(result, ['OPEN', 'ID', 'BOOLEAN', 'CLOSE']);
-    shouldBeToken(result[2], "BOOLEAN", "true");
- 
-    result = tokenize('{{ foo false }}');
-    shouldMatchTokens(result, ['OPEN', 'ID', 'BOOLEAN', 'CLOSE']);
-    shouldBeToken(result[2], "BOOLEAN", "false");
-  });
- 
-  it('tokenizes hash arguments', function() {
-    var result = tokenize("{{ foo bar=baz }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'EQUALS', 'ID', 'CLOSE']);
- 
-    result = tokenize("{{ foo bar baz=bat }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'ID', 'CLOSE']);
- 
-    result = tokenize("{{ foo bar baz=1 }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'NUMBER', 'CLOSE']);
- 
-    result = tokenize("{{ foo bar baz=true }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'BOOLEAN', 'CLOSE']);
- 
-    result = tokenize("{{ foo bar baz=false }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'BOOLEAN', 'CLOSE']);
- 
-    result = tokenize("{{ foo bar\n  baz=bat }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'ID', 'CLOSE']);
- 
-    result = tokenize("{{ foo bar baz=\"bat\" }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'STRING', 'CLOSE']);
- 
-    result = tokenize("{{ foo bar baz=\"bat\" bam=wot }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'STRING', 'ID', 'EQUALS', 'ID', 'CLOSE']);
- 
-    result = tokenize("{{foo omg bar=baz bat=\"bam\"}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'ID', 'EQUALS', 'ID', 'ID', 'EQUALS', 'STRING', 'CLOSE']);
-    shouldBeToken(result[2], "ID", "omg");
-  });
- 
-  it('tokenizes special @ identifiers', function() {
-    var result = tokenize("{{ @foo }}");
-    shouldMatchTokens(result, ['OPEN', 'DATA', 'ID', 'CLOSE']);
-    shouldBeToken(result[2], "ID", "foo");
- 
-    result = tokenize("{{ foo @bar }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'DATA', 'ID', 'CLOSE']);
-    shouldBeToken(result[3], "ID", "bar");
- 
-    result = tokenize("{{ foo bar=@baz }}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'ID', 'EQUALS', 'DATA', 'ID', 'CLOSE']);
-    shouldBeToken(result[5], "ID", "baz");
-  });
- 
-  it('does not time out in a mustache with a single } followed by EOF', function() {
-    shouldMatchTokens(tokenize("{{foo}"), ['OPEN', 'ID']);
-  });
- 
-  it('does not time out in a mustache when invalid ID characters are used', function() {
-    shouldMatchTokens(tokenize("{{foo & }}"), ['OPEN', 'ID']);
-  });
- 
-  it('tokenizes subexpressions', function() {
-    var result = tokenize("{{foo (bar)}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'OPEN_SEXPR', 'ID', 'CLOSE_SEXPR', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "foo");
-    shouldBeToken(result[3], "ID", "bar");
- 
-    result = tokenize("{{foo (a-x b-y)}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'OPEN_SEXPR', 'ID', 'ID', 'CLOSE_SEXPR', 'CLOSE']);
-    shouldBeToken(result[1], "ID", "foo");
-    shouldBeToken(result[3], "ID", "a-x");
-    shouldBeToken(result[4], "ID", "b-y");
-  });
- 
-  it('tokenizes nested subexpressions', function() {
-    var result = tokenize("{{foo (bar (lol rofl)) (baz)}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'OPEN_SEXPR', 'ID', 'OPEN_SEXPR', 'ID', 'ID', 'CLOSE_SEXPR', 'CLOSE_SEXPR', 'OPEN_SEXPR', 'ID', 'CLOSE_SEXPR', 'CLOSE']);
-    shouldBeToken(result[3],  "ID", "bar");
-    shouldBeToken(result[5],  "ID", "lol");
-    shouldBeToken(result[6],  "ID", "rofl");
-    shouldBeToken(result[10], "ID", "baz");
-  });
- 
-  it('tokenizes nested subexpressions: literals', function() {
-    var result = tokenize("{{foo (bar (lol true) false) (baz 1) (blah 'b') (blorg \"c\")}}");
-    shouldMatchTokens(result, ['OPEN', 'ID', 'OPEN_SEXPR', 'ID', 'OPEN_SEXPR', 'ID', 'BOOLEAN', 'CLOSE_SEXPR', 'BOOLEAN', 'CLOSE_SEXPR', 'OPEN_SEXPR', 'ID', 'NUMBER', 'CLOSE_SEXPR', 'OPEN_SEXPR', 'ID', 'STRING', 'CLOSE_SEXPR', 'OPEN_SEXPR', 'ID', 'STRING', 'CLOSE_SEXPR', 'CLOSE']);
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/track-ids.js.html b/node_modules/handlebars/coverage/lcov-report/spec/track-ids.js.html deleted file mode 100644 index e026a5e..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/track-ids.js.html +++ /dev/null @@ -1,811 +0,0 @@ - - - - Code coverage report for spec/track-ids.js - - - - - - - -
-

Code coverage report for spec/track-ids.js

-

- - Statements: 27.38% (23 / 84)      - - - Branches: 100% (0 / 0)      - - - Functions: 16.67% (5 / 30)      - - - Lines: 27.38% (23 / 84)      - - Ignored: none      -

-
All files » spec/ » track-ids.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164  -3 -3 -3 -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -3 -3 -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  -3 -3 -  -  -  -  -3 -  -  -  -  -  -3 -3 -  -  -  -  -3 -  -  -  -  -3 -  -  -  -  -  -  -  - 
/*global CompilerContext */
-describe('track ids', function() {
-  var context;
-  beforeEach(function() {
-    context = {is: {a: 'foo'}, slave: {driver: 'bar'}};
-  });
- 
-  it('should not include anything without the flag', function() {
-    var template = CompilerContext.compile('{{wycats is.a slave.driver}}');
- 
-    var helpers = {
-      wycats: function(passiveVoice, noun, options) {
-        equal(options.ids, undefined);
-        equal(options.hashIds, undefined);
- 
-        return 'success';
-      }
-    };
- 
-    equals(template({}, {helpers: helpers}), 'success');
-  });
-  it('should include argument ids', function() {
-    var template = CompilerContext.compile('{{wycats is.a slave.driver}}', {trackIds: true});
- 
-    var helpers = {
-      wycats: function(passiveVoice, noun, options) {
-        equal(options.ids[0], 'is.a');
-        equal(options.ids[1], 'slave.driver');
- 
-        return "HELP ME MY BOSS " + options.ids[0] + ':' + passiveVoice + ' ' + options.ids[1] + ':' + noun;
-      }
-    };
- 
-    equals(template(context, {helpers: helpers}), 'HELP ME MY BOSS is.a:foo slave.driver:bar');
-  });
-  it('should include hash ids', function() {
-    var template = CompilerContext.compile('{{wycats bat=is.a baz=slave.driver}}', {trackIds: true});
- 
-    var helpers = {
-      wycats: function(options) {
-        equal(options.hashIds.bat, 'is.a');
-        equal(options.hashIds.baz, 'slave.driver');
- 
-        return "HELP ME MY BOSS " + options.hashIds.bat + ':' + options.hash.bat + ' ' + options.hashIds.baz + ':' + options.hash.baz;
-      }
-    };
- 
-    equals(template(context, {helpers: helpers}), 'HELP ME MY BOSS is.a:foo slave.driver:bar');
-  });
-  it('should note ../ and ./ references', function() {
-    var template = CompilerContext.compile('{{wycats ./is.a ../slave.driver}}', {trackIds: true});
- 
-    var helpers = {
-      wycats: function(passiveVoice, noun, options) {
-        equal(options.ids[0], 'is.a');
-        equal(options.ids[1], '../slave.driver');
- 
-        return "HELP ME MY BOSS " + options.ids[0] + ':' + passiveVoice + ' ' + options.ids[1] + ':' + noun;
-      }
-    };
- 
-    equals(template(context, {helpers: helpers}), 'HELP ME MY BOSS is.a:foo ../slave.driver:undefined');
-  });
-  it('should note @data references', function() {
-    var template = CompilerContext.compile('{{wycats @is.a @slave.driver}}', {trackIds: true});
- 
-    var helpers = {
-      wycats: function(passiveVoice, noun, options) {
-        equal(options.ids[0], '@is.a');
-        equal(options.ids[1], '@slave.driver');
- 
-        return "HELP ME MY BOSS " + options.ids[0] + ':' + passiveVoice + ' ' + options.ids[1] + ':' + noun;
-      }
-    };
- 
-    equals(template({}, {helpers: helpers, data:context}), 'HELP ME MY BOSS @is.a:foo @slave.driver:bar');
-  });
- 
-  it('should return null for constants', function() {
-    var template = CompilerContext.compile('{{wycats 1 "foo" key=false}}', {trackIds: true});
- 
-    var helpers = {
-      wycats: function(passiveVoice, noun, options) {
-        equal(options.ids[0], null);
-        equal(options.ids[1], null);
-        equal(options.hashIds.key, null);
- 
-        return "HELP ME MY BOSS " + passiveVoice + ' ' + noun + ' ' + options.hash.key;
-      }
-    };
- 
-    equals(template(context, {helpers: helpers}), 'HELP ME MY BOSS 1 foo false');
-  });
-  it('should return true for subexpressions', function() {
-    var template = CompilerContext.compile('{{wycats (sub)}}', {trackIds: true});
- 
-    var helpers = {
-      sub: function() { return 1; },
-      wycats: function(passiveVoice, options) {
-        equal(options.ids[0], true);
- 
-        return "HELP ME MY BOSS " + passiveVoice;
-      }
-    };
- 
-    equals(template(context, {helpers: helpers}), 'HELP ME MY BOSS 1');
-  });
- 
-  describe('builtin helpers', function() {
-    var helpers = {
-      wycats: function(name, options) {
-        return name + ':' + options.data.contextPath + '\n';
-      }
-    };
- 
-    describe('#each', function() {
-      it('should track contextPath for arrays', function() {
-        var template = CompilerContext.compile('{{#each array}}{{wycats name}}{{/each}}', {trackIds: true});
- 
-        equals(template({array: [{name: 'foo'}, {name: 'bar'}]}, {helpers: helpers}), 'foo:array.0\nbar:array.1\n');
-      });
-      it('should track contextPath for keys', function() {
-        var template = CompilerContext.compile('{{#each object}}{{wycats name}}{{/each}}', {trackIds: true});
- 
-        equals(template({object: {foo: {name: 'foo'}, bar: {name: 'bar'}}}, {helpers: helpers}), 'foo:object.foo\nbar:object.bar\n');
-      });
-      it('should handle nesting', function() {
-        var template = CompilerContext.compile('{{#each .}}{{#each .}}{{wycats name}}{{/each}}{{/each}}', {trackIds: true});
- 
-        equals(template({array: [{name: 'foo'}, {name: 'bar'}]}, {helpers: helpers}), 'foo:.array..0\nbar:.array..1\n');
-      });
-    });
-    describe('#with', function() {
-      it('should track contextPath', function() {
-        var template = CompilerContext.compile('{{#with field}}{{wycats name}}{{/with}}', {trackIds: true});
- 
-        equals(template({field: {name: 'foo'}}, {helpers: helpers}), 'foo:field\n');
-      });
-      it('should handle nesting', function() {
-        var template = CompilerContext.compile('{{#with bat}}{{#with field}}{{wycats name}}{{/with}}{{/with}}', {trackIds: true});
- 
-        equals(template({bat: {field: {name: 'foo'}}}, {helpers: helpers}), 'foo:bat.field\n');
-      });
-    });
-    describe('#blockHelperMissing', function() {
-      it('should track contextPath for arrays', function() {
-        var template = CompilerContext.compile('{{#field}}{{wycats name}}{{/field}}', {trackIds: true});
- 
-        equals(template({field: [{name: 'foo'}]}, {helpers: helpers}), 'foo:field.0\n');
-      });
-      it('should track contextPath for keys', function() {
-        var template = CompilerContext.compile('{{#field}}{{wycats name}}{{/field}}', {trackIds: true});
- 
-        equals(template({field: {name: 'foo'}}, {helpers: helpers}), 'foo:field\n');
-      });
-      it('should handle nesting', function() {
-        var template = CompilerContext.compile('{{#bat}}{{#field}}{{wycats name}}{{/field}}{{/bat}}', {trackIds: true});
- 
-        equals(template({bat: {field: {name: 'foo'}}}, {helpers: helpers}), 'foo:bat.field\n');
-      });
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/utils.js.html b/node_modules/handlebars/coverage/lcov-report/spec/utils.js.html deleted file mode 100644 index 013bde1..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/utils.js.html +++ /dev/null @@ -1,499 +0,0 @@ - - - - Code coverage report for spec/utils.js - - - - - - - -
-

Code coverage report for spec/utils.js

-

- - Statements: 32.43% (12 / 37)      - - - Branches: 0% (0 / 2)      - - - Functions: 33.33% (4 / 12)      - - - Lines: 32.43% (12 / 37)      - - Ignored: none      -

-
All files » spec/ » utils.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60  -  -3 -3 -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -3 -3 -  -  -3 -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -3 -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  - 
/*global Handlebars, shouldCompileTo */
- 
-describe('utils', function() {
-  describe('#SafeString', function() {
-    it("constructing a safestring from a string and checking its type", function() {
-      var safe = new Handlebars.SafeString("testing 1, 2, 3");
-      if (!(safe instanceof Handlebars.SafeString)) {
-        throw new Error('Must be instance of SafeString');
-      }
-      equals(safe == 'testing 1, 2, 3', true, 'SafeString is equivalent to its underlying string');
-    });
- 
-    it("it should not escape SafeString properties", function() {
-      var name = new Handlebars.SafeString("<em>Sean O&#x27;Malley</em>");
- 
-      shouldCompileTo('{{name}}', [{ name: name }], "<em>Sean O&#x27;Malley</em>");
-    });
-  });
- 
-  describe('#escapeExpression', function() {
-    it('shouhld escape html', function() {
-      equals(Handlebars.Utils.escapeExpression('foo<&"\'>'), 'foo&lt;&amp;&quot;&#x27;&gt;');
-    });
-    it('should not escape SafeString', function() {
-      var string = new Handlebars.SafeString('foo<&"\'>');
-      equals(Handlebars.Utils.escapeExpression(string), 'foo<&"\'>');
- 
-    });
-    it('should handle falsy', function() {
-      equals(Handlebars.Utils.escapeExpression(''), '');
-      equals(Handlebars.Utils.escapeExpression(undefined), '');
-      equals(Handlebars.Utils.escapeExpression(null), '');
-      equals(Handlebars.Utils.escapeExpression(false), '');
- 
-      equals(Handlebars.Utils.escapeExpression(0), '0');
-    });
-    it('should handle empty objects', function() {
-      equals(Handlebars.Utils.escapeExpression({}), {}.toString());
-      equals(Handlebars.Utils.escapeExpression([]), [].toString());
-    });
-  });
- 
-  describe('#isEmpty', function() {
-    it('should not be empty', function() {
-      equals(Handlebars.Utils.isEmpty(undefined), true);
-      equals(Handlebars.Utils.isEmpty(null), true);
-      equals(Handlebars.Utils.isEmpty(false), true);
-      equals(Handlebars.Utils.isEmpty(''), true);
-      equals(Handlebars.Utils.isEmpty([]), true);
-    });
- 
-    it('should be empty', function() {
-      equals(Handlebars.Utils.isEmpty(0), false);
-      equals(Handlebars.Utils.isEmpty([1]), false);
-      equals(Handlebars.Utils.isEmpty('foo'), false);
-      equals(Handlebars.Utils.isEmpty({bar: 1}), false);
-    });
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov-report/spec/whitespace-control.js.html b/node_modules/handlebars/coverage/lcov-report/spec/whitespace-control.js.html deleted file mode 100644 index 2d3df6c..0000000 --- a/node_modules/handlebars/coverage/lcov-report/spec/whitespace-control.js.html +++ /dev/null @@ -1,508 +0,0 @@ - - - - Code coverage report for spec/whitespace-control.js - - - - - - - -
-

Code coverage report for spec/whitespace-control.js

-

- - Statements: 19.51% (8 / 41)      - - - Branches: 100% (0 / 0)      - - - Functions: 25% (2 / 8)      - - - Lines: 19.51% (8 / 41)      - - Ignored: none      -

-
All files » spec/ » whitespace-control.js
-
-
-

-
-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -633 -3 -  -  -  -  -  -  -  -  -  -  -3 -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -3 -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -3 -  -  -  -  -  -3 -  -  -  -  -  - 
describe('whitespace control', function() {
-  it('should strip whitespace around mustache calls', function() {
-    var hash = {foo: 'bar<'};
- 
-    shouldCompileTo(' {{~foo~}} ', hash, 'bar&lt;');
-    shouldCompileTo(' {{~foo}} ', hash, 'bar&lt; ');
-    shouldCompileTo(' {{foo~}} ', hash, ' bar&lt;');
- 
-    shouldCompileTo(' {{~&foo~}} ', hash, 'bar<');
-    shouldCompileTo(' {{~{foo}~}} ', hash, 'bar<');
-  });
- 
-  describe('blocks', function() {
-    it('should strip whitespace around simple block calls', function() {
-      var hash = {foo: 'bar<'};
- 
-      shouldCompileTo(' {{~#if foo~}} bar {{~/if~}} ', hash, 'bar');
-      shouldCompileTo(' {{#if foo~}} bar {{/if~}} ', hash, ' bar ');
-      shouldCompileTo(' {{~#if foo}} bar {{~/if}} ', hash, ' bar ');
-      shouldCompileTo(' {{#if foo}} bar {{/if}} ', hash, '  bar  ');
-    });
-    it('should strip whitespace around inverse block calls', function() {
-      var hash = {};
- 
-      shouldCompileTo(' {{~^if foo~}} bar {{~/if~}} ', hash, 'bar');
-      shouldCompileTo(' {{^if foo~}} bar {{/if~}} ', hash, ' bar ');
-      shouldCompileTo(' {{~^if foo}} bar {{~/if}} ', hash, ' bar ');
-      shouldCompileTo(' {{^if foo}} bar {{/if}} ', hash, '  bar  ');
-    });
-    it('should strip whitespace around complex block calls', function() {
-      var hash = {foo: 'bar<'};
- 
-      shouldCompileTo('{{#if foo~}} bar {{~^~}} baz {{~/if}}', hash, 'bar');
-      shouldCompileTo('{{#if foo~}} bar {{^~}} baz {{/if}}', hash, 'bar ');
-      shouldCompileTo('{{#if foo}} bar {{~^~}} baz {{~/if}}', hash, ' bar');
-      shouldCompileTo('{{#if foo}} bar {{^~}} baz {{/if}}', hash, ' bar ');
- 
-      shouldCompileTo('{{#if foo~}} bar {{~else~}} baz {{~/if}}', hash, 'bar');
- 
-      hash = {};
- 
-      shouldCompileTo('{{#if foo~}} bar {{~^~}} baz {{~/if}}', hash, 'baz');
-      shouldCompileTo('{{#if foo}} bar {{~^~}} baz {{/if}}', hash, 'baz ');
-      shouldCompileTo('{{#if foo~}} bar {{~^}} baz {{~/if}}', hash, ' baz');
-      shouldCompileTo('{{#if foo~}} bar {{~^}} baz {{/if}}', hash, ' baz ');
- 
-      shouldCompileTo('{{#if foo~}} bar {{~else~}} baz {{~/if}}', hash, 'baz');
-    });
-  });
- 
-  it('should strip whitespace around partials', function() {
-    shouldCompileToWithPartials('foo {{~> dude~}} ', [{}, {}, {dude: 'bar'}], true, 'foobar');
-    shouldCompileToWithPartials('foo {{> dude~}} ', [{}, {}, {dude: 'bar'}], true, 'foo bar');
-    shouldCompileToWithPartials('foo {{> dude}} ', [{}, {}, {dude: 'bar'}], true, 'foo bar ');
-  });
- 
-  it('should only strip whitespace once', function() {
-    var hash = {foo: 'bar'};
- 
-    shouldCompileTo(' {{~foo~}} {{foo}} {{foo}} ', hash, 'barbar bar ');
-  });
-});
- 
- -
- - - - - - - - diff --git a/node_modules/handlebars/coverage/lcov.info b/node_modules/handlebars/coverage/lcov.info deleted file mode 100644 index b26981d..0000000 --- a/node_modules/handlebars/coverage/lcov.info +++ /dev/null @@ -1,3181 +0,0 @@ -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/lib/index.js -FN:19,(anonymous_1) -FNF:1 -FNH:1 -FNDA:2,(anonymous_1) -DA:6,1 -DA:8,1 -DA:10,1 -DA:11,1 -DA:12,1 -DA:14,1 -DA:18,1 -DA:19,1 -DA:20,2 -DA:21,2 -DA:22,2 -DA:24,1 -DA:25,1 -LF:13 -LH:13 -BRDA:18,1,0,1 -BRDA:18,1,1,0 -BRDA:18,2,0,1 -BRDA:18,2,1,1 -BRF:4 -BRH:4 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars.js -FN:15,(anonymous_1) -FN:18,(anonymous_2) -FN:21,(anonymous_3) -FNF:3 -FNH:3 -FNDA:504,(anonymous_1) -FNDA:82,(anonymous_2) -FNDA:409,(anonymous_3) -DA:3,1 -DA:6,1 -DA:7,1 -DA:8,1 -DA:9,1 -DA:10,1 -DA:11,1 -DA:12,1 -DA:14,1 -DA:15,1 -DA:16,504 -DA:18,504 -DA:19,82 -DA:21,504 -DA:22,409 -DA:25,504 -DA:26,504 -DA:27,504 -DA:28,504 -DA:29,504 -DA:31,504 -DA:34,1 -DA:35,1 -DA:37,1 -DA:39,1 -LF:25 -LH:25 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars.runtime.js -FN:13,(anonymous_1) -FN:23,(anonymous_2) -FNF:2 -FNH:2 -FNDA:505,(anonymous_1) -FNDA:474,(anonymous_2) -DA:3,1 -DA:7,1 -DA:8,1 -DA:9,1 -DA:10,1 -DA:13,1 -DA:14,505 -DA:16,505 -DA:17,505 -DA:18,505 -DA:19,505 -DA:20,505 -DA:22,505 -DA:23,505 -DA:24,474 -DA:27,505 -DA:30,1 -DA:31,1 -DA:33,1 -DA:35,1 -LF:20 -LH:20 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/base.js -FN:22,HandlebarsEnvironment -FN:35,(anonymous_2) -FN:43,(anonymous_3) -FN:47,(anonymous_4) -FN:54,(anonymous_5) -FN:59,registerDefaultHelpers -FN:60,(anonymous_7) -FN:70,(anonymous_8) -FN:99,(anonymous_9) -FN:158,(anonymous_10) -FN:171,(anonymous_11) -FN:175,(anonymous_12) -FN:193,(anonymous_13) -FN:198,(anonymous_14) -FN:214,(anonymous_15) -FN:226,(anonymous_16) -FNF:16 -FNH:16 -FNDA:505,HandlebarsEnvironment -FNDA:4059,(anonymous_2) -FNDA:1,(anonymous_3) -FNDA:2,(anonymous_4) -FNDA:1,(anonymous_5) -FNDA:505,registerDefaultHelpers -FNDA:24,(anonymous_7) -FNDA:145,(anonymous_8) -FNDA:83,(anonymous_9) -FNDA:83,(anonymous_10) -FNDA:2,(anonymous_11) -FNDA:9,(anonymous_12) -FNDA:5,(anonymous_13) -FNDA:4,(anonymous_14) -FNDA:3,(anonymous_15) -FNDA:109,(anonymous_16) -DA:2,1 -DA:3,1 -DA:5,1 -DA:6,1 -DA:7,1 -DA:8,1 -DA:16,1 -DA:17,1 -DA:22,1 -DA:23,505 -DA:24,505 -DA:26,505 -DA:29,1 -DA:36,4059 -DA:37,2 -DA:38,1 -DA:40,4057 -DA:44,1 -DA:48,2 -DA:49,1 -DA:51,1 -DA:55,1 -DA:59,1 -DA:60,505 -DA:61,24 -DA:63,23 -DA:66,1 -DA:70,505 -DA:71,145 -DA:74,145 -DA:75,26 -DA:76,119 -DA:77,40 -DA:78,79 -DA:79,57 -DA:80,49 -DA:81,1 -DA:84,49 -DA:86,8 -DA:89,22 -DA:90,3 -DA:91,3 -DA:92,3 -DA:95,22 -DA:99,505 -DA:100,83 -DA:101,1 -DA:104,82 -DA:105,82 -DA:107,82 -DA:108,82 -DA:109,5 -DA:112,82 -DA:114,82 -DA:115,76 -DA:118,82 -DA:119,81 -DA:120,75 -DA:121,173 -DA:122,160 -DA:123,160 -DA:124,160 -DA:126,160 -DA:127,5 -DA:130,173 -DA:133,6 -DA:134,13 -DA:135,12 -DA:136,10 -DA:137,10 -DA:138,10 -DA:140,10 -DA:141,3 -DA:144,12 -DA:145,12 -DA:151,82 -DA:152,4 -DA:155,82 -DA:158,505 -DA:159,83 -DA:164,83 -DA:165,44 -DA:167,39 -DA:171,505 -DA:172,2 -DA:175,505 -DA:176,9 -DA:178,9 -DA:180,9 -DA:181,8 -DA:182,3 -DA:183,3 -DA:184,3 -DA:187,8 -DA:189,1 -DA:193,505 -DA:194,5 -DA:195,5 -DA:198,505 -DA:199,4 -DA:203,1 -DA:215,3 -DA:216,2 -DA:217,2 -DA:218,1 -DA:223,1 -DA:224,1 -DA:225,1 -DA:226,1 -DA:227,109 -DA:228,109 -DA:229,109 -DA:231,1 -LF:113 -LH:113 -BRDA:23,1,0,505 -BRDA:23,1,1,505 -BRDA:24,2,0,505 -BRDA:24,2,1,505 -BRDA:36,3,0,2 -BRDA:36,3,1,4057 -BRDA:37,4,0,1 -BRDA:37,4,1,1 -BRDA:48,5,0,1 -BRDA:48,5,1,1 -BRDA:61,6,0,23 -BRDA:61,6,1,1 -BRDA:74,7,0,26 -BRDA:74,7,1,119 -BRDA:76,8,0,40 -BRDA:76,8,1,79 -BRDA:76,9,0,119 -BRDA:76,9,1,93 -BRDA:78,10,0,57 -BRDA:78,10,1,22 -BRDA:79,11,0,49 -BRDA:79,11,1,8 -BRDA:80,12,0,1 -BRDA:80,12,1,48 -BRDA:89,13,0,3 -BRDA:89,13,1,19 -BRDA:89,14,0,22 -BRDA:89,14,1,22 -BRDA:100,15,0,1 -BRDA:100,15,1,82 -BRDA:108,16,0,5 -BRDA:108,16,1,77 -BRDA:108,17,0,82 -BRDA:108,17,1,76 -BRDA:112,18,0,1 -BRDA:112,18,1,81 -BRDA:114,19,0,76 -BRDA:114,19,1,6 -BRDA:118,20,0,81 -BRDA:118,20,1,1 -BRDA:118,21,0,82 -BRDA:118,21,1,81 -BRDA:119,22,0,75 -BRDA:119,22,1,6 -BRDA:121,23,0,160 -BRDA:121,23,1,13 -BRDA:126,24,0,5 -BRDA:126,24,1,155 -BRDA:134,25,0,12 -BRDA:134,25,1,1 -BRDA:135,26,0,10 -BRDA:135,26,1,2 -BRDA:140,27,0,3 -BRDA:140,27,1,7 -BRDA:151,28,0,4 -BRDA:151,28,1,78 -BRDA:159,29,0,4 -BRDA:159,29,1,79 -BRDA:164,30,0,44 -BRDA:164,30,1,39 -BRDA:164,31,0,83 -BRDA:164,31,1,82 -BRDA:164,31,2,40 -BRDA:176,32,0,1 -BRDA:176,32,1,8 -BRDA:180,33,0,8 -BRDA:180,33,1,1 -BRDA:181,34,0,3 -BRDA:181,34,1,5 -BRDA:181,35,0,8 -BRDA:181,35,1,8 -BRDA:194,36,0,3 -BRDA:194,36,1,2 -BRDA:194,37,0,5 -BRDA:194,37,1,5 -BRDA:199,38,0,4 -BRDA:199,38,1,2 -BRDA:215,39,0,2 -BRDA:215,39,1,1 -BRDA:217,40,0,1 -BRDA:217,40,1,1 -BRDA:217,41,0,2 -BRDA:217,41,1,2 -BRF:83 -BRH:83 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/utils.js -FN:17,escapeChar -FN:21,extend -FN:37,(anonymous_3) -FN:43,(anonymous_4) -FN:50,(anonymous_5) -FN:55,escapeExpression -FN:74,isEmpty -FN:84,appendContextPath -FNF:8 -FNH:8 -FNDA:27,escapeChar -FNDA:933,extend -FNDA:175,(anonymous_3) -FNDA:0,(anonymous_4) -FNDA:0,(anonymous_5) -FNDA:534,escapeExpression -FNDA:58,isEmpty -FNDA:11,appendContextPath -DA:3,1 -DA:5,1 -DA:14,1 -DA:15,1 -DA:17,1 -DA:18,27 -DA:21,1 -DA:22,933 -DA:23,1249 -DA:24,6468 -DA:25,6467 -DA:30,933 -DA:33,1 -DA:34,1 -DA:37,1 -DA:38,175 -DA:42,1 -DA:43,1 -DA:44,1 -DA:47,1 -DA:48,1 -DA:50,1 -DA:51,1 -DA:53,1 -DA:55,1 -DA:57,534 -DA:58,11 -DA:59,523 -DA:60,29 -DA:61,494 -DA:62,19 -DA:68,475 -DA:70,475 -DA:71,9 -DA:74,1 -DA:75,58 -DA:76,5 -DA:77,53 -DA:78,2 -DA:80,51 -DA:84,1 -DA:85,11 -DA:88,1 -LF:43 -LH:43 -BRDA:24,1,0,6467 -BRDA:24,1,1,1 -BRDA:42,2,0,0 -BRDA:42,2,1,1 -BRDA:44,3,0,0 -BRDA:44,3,1,0 -BRDA:50,4,0,1 -BRDA:50,4,1,0 -BRDA:51,5,0,0 -BRDA:51,5,1,0 -BRDA:51,6,0,0 -BRDA:51,6,1,0 -BRDA:57,7,0,11 -BRDA:57,7,1,523 -BRDA:59,8,0,29 -BRDA:59,8,1,494 -BRDA:61,9,0,19 -BRDA:61,9,1,475 -BRDA:70,10,0,466 -BRDA:70,10,1,9 -BRDA:75,11,0,5 -BRDA:75,11,1,53 -BRDA:75,12,0,58 -BRDA:75,12,1,7 -BRDA:77,13,0,2 -BRDA:77,13,1,51 -BRDA:77,14,0,53 -BRDA:77,14,1,4 -BRDA:85,15,0,3 -BRDA:85,15,1,8 -BRF:30 -BRH:30 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/safe-string.js -FN:3,SafeString -FN:7,(anonymous_2) -FNF:2 -FNH:2 -FNDA:12,SafeString -FNDA:12,(anonymous_2) -DA:3,1 -DA:4,12 -DA:7,1 -DA:8,12 -DA:11,1 -LF:5 -LH:5 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/exception.js -FN:5,Exception -FNF:1 -FNH:1 -FNDA:48,Exception -DA:3,1 -DA:5,1 -DA:6,48 -DA:7,48 -DA:8,16 -DA:10,16 -DA:13,48 -DA:16,48 -DA:17,336 -DA:20,48 -DA:21,16 -DA:22,16 -DA:26,1 -DA:28,1 -LF:14 -LH:14 -BRDA:7,1,0,16 -BRDA:7,1,1,32 -BRDA:7,2,0,48 -BRDA:7,2,1,16 -BRDA:20,3,0,16 -BRDA:20,3,1,32 -BRF:6 -BRH:6 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/runtime.js -FN:8,checkRevision -FN:28,template -FN:41,(anonymous_3) -FN:73,(anonymous_4) -FN:81,(anonymous_5) -FN:88,(anonymous_6) -FN:93,(anonymous_7) -FN:104,(anonymous_8) -FN:110,(anonymous_9) -FN:124,(anonymous_10) -FN:141,(anonymous_11) -FN:154,(anonymous_12) -FN:164,program -FN:165,(anonymous_14) -FN:175,invokePartial -FN:185,noop -FN:187,initData -FNF:17 -FNH:17 -FNDA:470,checkRevision -FNDA:474,template -FNDA:55,(anonymous_3) -FNDA:175,(anonymous_4) -FNDA:138,(anonymous_5) -FNDA:345,(anonymous_6) -FNDA:345,(anonymous_7) -FNDA:4,(anonymous_8) -FNDA:512,(anonymous_9) -FNDA:480,(anonymous_10) -FNDA:482,(anonymous_11) -FNDA:4,(anonymous_12) -FNDA:347,program -FNDA:365,(anonymous_14) -FNDA:55,invokePartial -FNDA:62,noop -FNDA:462,initData -DA:2,1 -DA:3,1 -DA:4,1 -DA:5,1 -DA:6,1 -DA:8,1 -DA:9,470 -DA:12,470 -DA:13,3 -DA:14,2 -DA:16,2 -DA:20,1 -DA:26,1 -DA:28,1 -DA:30,474 -DA:31,1 -DA:33,474 -DA:34,3 -DA:39,471 -DA:41,468 -DA:42,55 -DA:43,2 -DA:46,55 -DA:48,53 -DA:49,39 -DA:50,39 -DA:51,39 -DA:53,53 -DA:54,52 -DA:55,8 -DA:56,8 -DA:57,18 -DA:58,6 -DA:61,12 -DA:63,8 -DA:65,52 -DA:67,1 -DA:72,468 -DA:74,175 -DA:75,175 -DA:76,261 -DA:77,170 -DA:82,138 -DA:89,345 -DA:94,345 -DA:96,345 -DA:97,340 -DA:98,5 -DA:99,4 -DA:101,345 -DA:105,4 -DA:106,6 -DA:108,4 -DA:111,512 -DA:113,512 -DA:114,313 -DA:117,512 -DA:124,468 -DA:125,480 -DA:126,480 -DA:128,480 -DA:129,480 -DA:130,462 -DA:132,480 -DA:133,480 -DA:134,141 -DA:137,480 -DA:139,468 -DA:141,468 -DA:142,482 -DA:143,471 -DA:145,471 -DA:146,41 -DA:149,11 -DA:150,11 -DA:154,468 -DA:155,4 -DA:156,1 -DA:159,3 -DA:161,468 -DA:164,1 -DA:165,347 -DA:166,365 -DA:168,365 -DA:170,347 -DA:171,347 -DA:172,347 -DA:175,1 -DA:176,55 -DA:178,55 -DA:179,2 -DA:180,53 -DA:181,13 -DA:185,62 -DA:187,1 -DA:188,462 -DA:189,424 -DA:190,424 -DA:192,462 -LF:99 -LH:99 -BRDA:9,1,0,470 -BRDA:9,1,1,469 -BRDA:9,1,2,1 -BRDA:12,2,0,3 -BRDA:12,2,1,467 -BRDA:13,3,0,2 -BRDA:13,3,1,1 -BRDA:30,4,0,0 -BRDA:30,4,1,474 -BRDA:33,5,0,3 -BRDA:33,5,1,471 -BRDA:33,6,0,474 -BRDA:33,6,1,472 -BRDA:42,7,0,2 -BRDA:42,7,1,53 -BRDA:48,8,0,39 -BRDA:48,8,1,14 -BRDA:48,9,0,53 -BRDA:48,9,1,40 -BRDA:53,10,0,52 -BRDA:53,10,1,1 -BRDA:54,11,0,8 -BRDA:54,11,1,44 -BRDA:57,12,0,6 -BRDA:57,12,1,12 -BRDA:57,13,0,18 -BRDA:57,13,1,6 -BRDA:76,14,0,170 -BRDA:76,14,1,91 -BRDA:76,15,0,261 -BRDA:76,15,1,261 -BRDA:82,16,0,3 -BRDA:82,16,1,135 -BRDA:96,17,0,340 -BRDA:96,17,1,5 -BRDA:96,18,0,345 -BRDA:96,18,1,6 -BRDA:98,19,0,4 -BRDA:98,19,1,1 -BRDA:105,20,0,10 -BRDA:105,20,1,10 -BRDA:111,21,0,512 -BRDA:111,21,1,197 -BRDA:113,22,0,313 -BRDA:113,22,1,199 -BRDA:113,23,0,512 -BRDA:113,23,1,315 -BRDA:113,23,2,315 -BRDA:125,24,0,480 -BRDA:125,24,1,174 -BRDA:129,25,0,462 -BRDA:129,25,1,18 -BRDA:129,26,0,480 -BRDA:129,26,1,469 -BRDA:133,27,0,141 -BRDA:133,27,1,339 -BRDA:134,28,0,15 -BRDA:134,28,1,126 -BRDA:142,29,0,471 -BRDA:142,29,1,11 -BRDA:145,30,0,41 -BRDA:145,30,1,430 -BRDA:155,31,0,1 -BRDA:155,31,1,3 -BRDA:155,32,0,4 -BRDA:155,32,1,2 -BRDA:166,33,0,365 -BRDA:166,33,1,147 -BRDA:168,34,0,365 -BRDA:168,34,1,162 -BRDA:168,35,0,365 -BRDA:168,35,1,152 -BRDA:171,36,0,122 -BRDA:171,36,1,225 -BRDA:178,37,0,2 -BRDA:178,37,1,53 -BRDA:180,38,0,13 -BRDA:180,38,1,40 -BRDA:188,39,0,424 -BRDA:188,39,1,38 -BRDA:188,40,0,462 -BRDA:188,40,1,59 -BRDA:189,41,0,21 -BRDA:189,41,1,403 -BRF:84 -BRH:84 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/ast.js -FN:4,LocationInfo -FN:13,(anonymous_2) -FN:20,(anonymous_3) -FN:49,(anonymous_4) -FN:72,(anonymous_5) -FN:83,(anonymous_6) -FN:97,(anonymous_7) -FN:111,(anonymous_8) -FN:117,(anonymous_9) -FN:123,(anonymous_10) -FN:163,(anonymous_11) -FN:169,(anonymous_12) -FN:177,(anonymous_13) -FN:185,(anonymous_14) -FN:193,(anonymous_15) -FN:200,(anonymous_16) -FNF:16 -FNH:16 -FNDA:10460,LocationInfo -FNDA:1700,(anonymous_2) -FNDA:1588,(anonymous_3) -FNDA:1644,(anonymous_4) -FNDA:96,(anonymous_5) -FNDA:602,(anonymous_6) -FNDA:5,(anonymous_7) -FNDA:1617,(anonymous_8) -FNDA:75,(anonymous_9) -FNDA:2756,(anonymous_10) -FNDA:96,(anonymous_11) -FNDA:75,(anonymous_12) -FNDA:58,(anonymous_13) -FNDA:56,(anonymous_14) -FNDA:55,(anonymous_15) -FNDA:37,(anonymous_16) -DA:2,1 -DA:4,1 -DA:5,10460 -DA:6,10460 -DA:7,10460 -DA:8,10460 -DA:9,10460 -DA:12,1 -DA:14,1700 -DA:15,1700 -DA:16,1700 -DA:17,1700 -DA:21,1588 -DA:22,1588 -DA:23,1588 -DA:26,1588 -DA:28,1584 -DA:29,1584 -DA:31,4 -DA:34,1588 -DA:35,1569 -DA:38,19 -DA:42,1588 -DA:43,1588 -DA:44,1588 -DA:45,1588 -DA:46,1588 -DA:50,1644 -DA:52,1644 -DA:53,1644 -DA:55,1644 -DA:56,1644 -DA:61,1644 -DA:65,1644 -DA:73,96 -DA:74,96 -DA:75,96 -DA:76,96 -DA:77,96 -DA:78,96 -DA:80,96 -DA:84,602 -DA:86,602 -DA:87,602 -DA:88,602 -DA:89,602 -DA:90,602 -DA:92,602 -DA:93,80 -DA:98,5 -DA:100,5 -DA:101,1 -DA:104,4 -DA:106,4 -DA:107,4 -DA:108,4 -DA:112,1617 -DA:113,1617 -DA:114,1617 -DA:118,75 -DA:119,75 -DA:120,75 -DA:124,2756 -DA:125,2756 -DA:127,2756 -DA:132,2756 -DA:133,3091 -DA:134,3091 -DA:136,3091 -DA:137,163 -DA:138,11 -DA:139,152 -DA:140,67 -DA:141,67 -DA:143,85 -DA:146,2928 -DA:150,2745 -DA:151,2745 -DA:152,2745 -DA:153,2745 -DA:154,2745 -DA:158,2745 -DA:160,2745 -DA:164,96 -DA:165,96 -DA:166,96 -DA:170,75 -DA:171,75 -DA:172,75 -DA:173,75 -DA:174,75 -DA:178,58 -DA:179,58 -DA:180,58 -DA:186,56 -DA:187,56 -DA:188,56 -DA:190,56 -DA:194,55 -DA:195,55 -DA:196,55 -DA:197,55 -DA:201,37 -DA:202,37 -DA:203,37 -DA:205,37 -DA:214,1 -LF:107 -LH:107 -BRDA:5,1,0,10460 -BRDA:5,1,1,47 -BRDA:26,2,0,1584 -BRDA:26,2,1,4 -BRDA:26,3,0,1588 -BRDA:26,3,1,1587 -BRDA:28,4,0,1584 -BRDA:28,4,1,1554 -BRDA:29,5,0,1584 -BRDA:29,5,1,1544 -BRDA:34,6,0,1569 -BRDA:34,6,1,19 -BRDA:61,7,0,1644 -BRDA:61,7,1,1225 -BRDA:65,8,0,1644 -BRDA:65,8,1,1159 -BRDA:92,9,0,80 -BRDA:92,9,1,522 -BRDA:92,10,0,602 -BRDA:92,10,1,143 -BRDA:100,11,0,1 -BRDA:100,11,1,4 -BRDA:134,12,0,3091 -BRDA:134,12,1,2758 -BRDA:136,13,0,163 -BRDA:136,13,1,2928 -BRDA:136,14,0,3091 -BRDA:136,14,1,3019 -BRDA:136,14,2,2960 -BRDA:137,15,0,11 -BRDA:137,15,1,152 -BRDA:139,16,0,67 -BRDA:139,16,1,85 -BRDA:158,17,0,2745 -BRDA:158,17,1,2478 -BRDA:158,17,2,2416 -BRF:36 -BRH:36 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/base.js -FN:12,parse -FNF:1 -FNH:1 -FNDA:1052,parse -DA:2,1 -DA:3,1 -DA:4,1 -DA:5,1 -DA:7,1 -DA:9,1 -DA:10,1 -DA:12,1 -DA:14,1052 -DA:16,1049 -DA:18,1049 -DA:21,1 -LF:12 -LH:12 -BRDA:14,1,0,3 -BRDA:14,1,1,1049 -BRF:2 -BRH:2 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/parser.js -FN:5,(anonymous_1) -FN:6,trace -FN:11,anonymous -FN:105,parseError -FN:108,parse -FN:121,popStack -FN:126,lex -FN:213,(anonymous_8) -FN:215,parseError -FN:222,(anonymous_10) -FN:233,(anonymous_11) -FN:252,(anonymous_12) -FN:280,(anonymous_13) -FN:284,(anonymous_14) -FN:287,(anonymous_15) -FN:291,(anonymous_16) -FN:298,(anonymous_17) -FN:303,(anonymous_18) -FN:357,lex -FN:365,begin -FN:368,popState -FN:371,_currentRules -FN:374,(anonymous_23) -FN:377,begin -FN:381,anonymous -FN:384,strip -FN:497,Parser -FNF:27 -FNH:27 -FNDA:1,(anonymous_1) -FNDA:0,trace -FNDA:26939,anonymous -FNDA:12,parseError -FNDA:1049,parse -FNDA:0,popStack -FNDA:11342,lex -FNDA:1,(anonymous_8) -FNDA:0,parseError -FNDA:1116,(anonymous_10) -FNDA:0,(anonymous_11) -FNDA:0,(anonymous_12) -FNDA:0,(anonymous_13) -FNDA:0,(anonymous_14) -FNDA:12,(anonymous_15) -FNDA:12,(anonymous_16) -FNDA:12,(anonymous_17) -FNDA:13951,(anonymous_18) -FNDA:13951,lex -FNDA:2483,begin -FNDA:2474,popState -FNDA:13951,_currentRules -FNDA:0,(anonymous_23) -FNDA:0,begin -FNDA:13951,anonymous -FNDA:141,strip -FNDA:1,Parser -DA:5,1 -DA:6,1 -DA:13,26939 -DA:14,26939 -DA:15,1026 -DA:16,1 -DA:17,1692 -DA:18,1692 -DA:19,952 -DA:20,952 -DA:21,601 -DA:22,601 -DA:23,4 -DA:24,4 -DA:25,95 -DA:26,95 -DA:27,1609 -DA:28,1609 -DA:29,36 -DA:30,36 -DA:31,5 -DA:32,4 -DA:33,5 -DA:34,5 -DA:35,523 -DA:36,521 -DA:37,80 -DA:38,80 -DA:39,531 -DA:40,531 -DA:41,80 -DA:42,80 -DA:43,62 -DA:44,62 -DA:45,603 -DA:46,603 -DA:47,914 -DA:48,914 -DA:49,38 -DA:50,38 -DA:51,6 -DA:52,6 -DA:53,89 -DA:54,89 -DA:55,1584 -DA:56,1584 -DA:57,40 -DA:58,40 -DA:59,390 -DA:60,390 -DA:61,55 -DA:62,55 -DA:63,53 -DA:64,53 -DA:65,54 -DA:66,54 -DA:67,34 -DA:68,34 -DA:69,52 -DA:70,52 -DA:71,74 -DA:72,74 -DA:73,119 -DA:74,119 -DA:75,91 -DA:76,91 -DA:77,2 -DA:78,2 -DA:79,2 -DA:80,2 -DA:81,74 -DA:82,74 -DA:83,2752 -DA:84,2744 -DA:85,341 -DA:86,341 -DA:87,2752 -DA:88,2752 -DA:89,1722 -DA:90,1722 -DA:91,3297 -DA:92,3297 -DA:93,1586 -DA:94,1586 -DA:95,513 -DA:96,513 -DA:97,74 -DA:98,74 -DA:99,45 -DA:100,45 -DA:106,12 -DA:109,1049 -DA:110,1049 -DA:111,1049 -DA:112,1049 -DA:113,1049 -DA:114,1049 -DA:115,1 -DA:116,1049 -DA:117,1049 -DA:118,1049 -DA:119,1049 -DA:120,1 -DA:121,1 -DA:122,1 -DA:123,1 -DA:124,1 -DA:126,1 -DA:127,11342 -DA:128,11342 -DA:129,11342 -DA:130,7 -DA:132,11342 -DA:134,1049 -DA:135,1049 -DA:136,38270 -DA:137,38270 -DA:138,1159 -DA:140,37111 -DA:141,11342 -DA:143,37111 -DA:145,38270 -DA:146,12 -DA:147,12 -DA:148,12 -DA:149,12 -DA:150,82 -DA:151,82 -DA:153,12 -DA:154,12 -DA:156,1 -DA:158,12 -DA:161,38258 -DA:162,1 -DA:164,38258 -DA:166,11319 -DA:167,11319 -DA:168,11319 -DA:169,11319 -DA:170,11319 -DA:171,11319 -DA:172,11319 -DA:173,11319 -DA:174,11319 -DA:175,11319 -DA:176,11319 -DA:177,1 -DA:179,1 -DA:180,1 -DA:182,11319 -DA:184,26939 -DA:185,26939 -DA:186,26939 -DA:187,26939 -DA:188,1 -DA:190,26939 -DA:191,26928 -DA:192,1026 -DA:194,25902 -DA:195,20448 -DA:196,20448 -DA:197,20448 -DA:199,25902 -DA:200,25902 -DA:201,25902 -DA:202,25902 -DA:203,25902 -DA:204,25902 -DA:206,1 -DA:209,1 -DA:213,1 -DA:214,1 -DA:216,1 -DA:217,1 -DA:219,1 -DA:223,1116 -DA:224,1116 -DA:225,1116 -DA:226,1116 -DA:227,1116 -DA:228,1116 -DA:229,1116 -DA:230,1116 -DA:231,1116 -DA:234,1 -DA:235,1 -DA:236,1 -DA:237,1 -DA:238,1 -DA:239,1 -DA:240,1 -DA:241,1 -DA:242,1 -DA:243,1 -DA:245,1 -DA:247,1 -DA:249,1 -DA:250,1 -DA:253,1 -DA:254,1 -DA:256,1 -DA:257,1 -DA:259,1 -DA:260,1 -DA:261,1 -DA:262,1 -DA:264,1 -DA:265,1 -DA:267,1 -DA:275,1 -DA:276,1 -DA:278,1 -DA:281,1 -DA:282,1 -DA:285,1 -DA:288,12 -DA:289,12 -DA:292,12 -DA:293,12 -DA:294,12 -DA:296,12 -DA:299,12 -DA:300,12 -DA:301,12 -DA:304,13951 -DA:305,1 -DA:307,13951 -DA:309,13951 -DA:315,13951 -DA:316,13951 -DA:317,13951 -DA:319,13951 -DA:320,13951 -DA:321,221226 -DA:322,221226 -DA:323,13951 -DA:324,13951 -DA:325,13951 -DA:328,13951 -DA:329,13951 -DA:330,13951 -DA:331,13951 -DA:335,13951 -DA:336,13951 -DA:337,13951 -DA:338,13951 -DA:339,13951 -DA:340,1 -DA:342,13951 -DA:343,13951 -DA:344,13951 -DA:345,13951 -DA:346,13951 -DA:347,13951 -DA:348,2151 -DA:350,1 -DA:351,1 -DA:353,1 -DA:358,13951 -DA:359,13951 -DA:360,11800 -DA:362,2151 -DA:366,2483 -DA:369,2474 -DA:372,13951 -DA:375,1 -DA:378,1 -DA:380,1 -DA:381,1 -DA:384,1 -DA:385,141 -DA:389,13951 -DA:390,13951 -DA:392,2476 -DA:393,10 -DA:394,10 -DA:395,2466 -DA:396,10 -DA:397,10 -DA:399,2456 -DA:401,2476 -DA:403,1275 -DA:404,426 -DA:405,1 -DA:407,10 -DA:408,10 -DA:410,1 -DA:412,5 -DA:413,5 -DA:414,5 -DA:416,1 -DA:417,5 -DA:418,1 -DA:419,2 -DA:420,1 -DA:421,62 -DA:422,1 -DA:423,62 -DA:424,1 -DA:425,5 -DA:426,1 -DA:428,5 -DA:429,5 -DA:430,5 -DA:432,1 -DA:433,100 -DA:434,1 -DA:435,532 -DA:436,1 -DA:437,604 -DA:438,1 -DA:439,44 -DA:440,1 -DA:441,22 -DA:442,1 -DA:443,81 -DA:444,1 -DA:445,1 -DA:446,1 -DA:447,42 -DA:448,1 -DA:449,23 -DA:450,1 -DA:451,2 -DA:452,2 -DA:453,37 -DA:454,1 -DA:455,973 -DA:456,1 -DA:457,131 -DA:458,1 -DA:459,73 -DA:460,1 -DA:461,59 -DA:462,1 -DA:463,355 -DA:464,1 -DA:466,874 -DA:467,42 -DA:468,1 -DA:469,2305 -DA:470,1 -DA:471,61 -DA:472,1 -DA:473,6 -DA:474,1 -DA:475,79 -DA:476,1 -DA:477,42 -DA:478,1 -DA:479,18 -DA:480,1 -DA:481,61 -DA:482,1 -DA:483,3208 -DA:484,1 -DA:485,15 -DA:486,1 -DA:487,9 -DA:488,1 -DA:489,1094 -DA:490,1 -DA:493,1 -DA:494,1 -DA:495,1 -DA:496,1 -DA:497,1 -DA:498,1 -DA:499,1 -LF:369 -LH:369 -BRDA:14,1,0,1026 -BRDA:14,1,1,1692 -BRDA:14,1,2,952 -BRDA:14,1,3,601 -BRDA:14,1,4,4 -BRDA:14,1,5,95 -BRDA:14,1,6,1609 -BRDA:14,1,7,36 -BRDA:14,1,8,5 -BRDA:14,1,9,5 -BRDA:14,1,10,523 -BRDA:14,1,11,80 -BRDA:14,1,12,531 -BRDA:14,1,13,80 -BRDA:14,1,14,62 -BRDA:14,1,15,603 -BRDA:14,1,16,914 -BRDA:14,1,17,38 -BRDA:14,1,18,6 -BRDA:14,1,19,89 -BRDA:14,1,20,1584 -BRDA:14,1,21,40 -BRDA:14,1,22,390 -BRDA:14,1,23,55 -BRDA:14,1,24,53 -BRDA:14,1,25,54 -BRDA:14,1,26,34 -BRDA:14,1,27,52 -BRDA:14,1,28,74 -BRDA:14,1,29,119 -BRDA:14,1,30,91 -BRDA:14,1,31,2 -BRDA:14,1,32,2 -BRDA:14,1,33,74 -BRDA:14,1,34,2752 -BRDA:14,1,35,341 -BRDA:14,1,36,2752 -BRDA:14,1,37,1722 -BRDA:14,1,38,3297 -BRDA:14,1,39,1586 -BRDA:14,1,40,513 -BRDA:14,1,41,74 -BRDA:14,1,42,45 -BRDA:114,2,0,0 -BRDA:114,2,1,1049 -BRDA:118,3,0,1049 -BRDA:118,3,1,1049 -BRDA:119,4,0,0 -BRDA:119,4,1,1049 -BRDA:128,5,0,11342 -BRDA:128,5,1,0 -BRDA:129,6,0,7 -BRDA:129,6,1,11335 -BRDA:130,7,0,7 -BRDA:130,7,1,7 -BRDA:137,8,0,1159 -BRDA:137,8,1,37111 -BRDA:140,9,0,11342 -BRDA:140,9,1,25769 -BRDA:140,10,0,37111 -BRDA:140,10,1,26818 -BRDA:143,11,0,37111 -BRDA:143,11,1,37111 -BRDA:145,12,0,12 -BRDA:145,12,1,38258 -BRDA:145,13,0,38270 -BRDA:145,13,1,38258 -BRDA:145,13,2,38258 -BRDA:147,14,0,12 -BRDA:147,14,1,0 -BRDA:150,15,0,82 -BRDA:150,15,1,0 -BRDA:150,16,0,82 -BRDA:150,16,1,82 -BRDA:153,17,0,12 -BRDA:153,17,1,0 -BRDA:154,18,0,12 -BRDA:154,18,1,7 -BRDA:156,19,0,0 -BRDA:156,19,1,0 -BRDA:156,20,0,0 -BRDA:156,20,1,0 -BRDA:158,21,0,12 -BRDA:158,21,1,7 -BRDA:161,22,0,0 -BRDA:161,22,1,38258 -BRDA:161,23,0,38258 -BRDA:161,23,1,0 -BRDA:164,24,0,11319 -BRDA:164,24,1,26939 -BRDA:164,24,2,0 -BRDA:171,25,0,11319 -BRDA:171,25,1,0 -BRDA:176,26,0,0 -BRDA:176,26,1,11319 -BRDA:186,27,0,26939 -BRDA:186,27,1,5454 -BRDA:186,28,0,26939 -BRDA:186,28,1,5454 -BRDA:187,29,0,0 -BRDA:187,29,1,26939 -BRDA:188,30,0,0 -BRDA:188,30,1,0 -BRDA:191,31,0,1026 -BRDA:191,31,1,25902 -BRDA:194,32,0,20448 -BRDA:194,32,1,5454 -BRDA:216,33,0,0 -BRDA:216,33,1,0 -BRDA:229,34,0,0 -BRDA:229,34,1,1116 -BRDA:241,35,0,0 -BRDA:241,35,1,0 -BRDA:247,36,0,0 -BRDA:247,36,1,0 -BRDA:264,37,0,0 -BRDA:264,37,1,0 -BRDA:270,38,0,0 -BRDA:270,38,1,0 -BRDA:271,39,0,0 -BRDA:271,39,1,0 -BRDA:275,40,0,0 -BRDA:275,40,1,0 -BRDA:289,41,0,0 -BRDA:289,41,1,12 -BRDA:293,42,0,12 -BRDA:293,42,1,0 -BRDA:296,43,0,0 -BRDA:296,43,1,12 -BRDA:304,44,0,0 -BRDA:304,44,1,13951 -BRDA:307,45,0,1094 -BRDA:307,45,1,12857 -BRDA:315,46,0,13951 -BRDA:315,46,1,0 -BRDA:322,47,0,13951 -BRDA:322,47,1,207275 -BRDA:322,48,0,221226 -BRDA:322,48,1,13951 -BRDA:322,48,2,0 -BRDA:325,49,0,13951 -BRDA:325,49,1,0 -BRDA:328,50,0,13951 -BRDA:328,50,1,0 -BRDA:330,51,0,370 -BRDA:330,51,1,13581 -BRDA:334,52,0,370 -BRDA:334,52,1,13581 -BRDA:339,53,0,0 -BRDA:339,53,1,13951 -BRDA:346,54,0,0 -BRDA:346,54,1,13951 -BRDA:346,55,0,13951 -BRDA:346,55,1,1094 -BRDA:347,56,0,11800 -BRDA:347,56,1,2151 -BRDA:350,57,0,0 -BRDA:350,57,1,0 -BRDA:359,58,0,11800 -BRDA:359,58,1,2151 -BRDA:390,59,0,2476 -BRDA:390,59,1,426 -BRDA:390,59,2,10 -BRDA:390,59,3,5 -BRDA:390,59,4,5 -BRDA:390,59,5,2 -BRDA:390,59,6,62 -BRDA:390,59,7,62 -BRDA:390,59,8,5 -BRDA:390,59,9,5 -BRDA:390,59,10,100 -BRDA:390,59,11,532 -BRDA:390,59,12,604 -BRDA:390,59,13,44 -BRDA:390,59,14,22 -BRDA:390,59,15,81 -BRDA:390,59,16,1 -BRDA:390,59,17,42 -BRDA:390,59,18,23 -BRDA:390,59,19,2 -BRDA:390,59,20,37 -BRDA:390,59,21,973 -BRDA:390,59,22,131 -BRDA:390,59,23,73 -BRDA:390,59,24,59 -BRDA:390,59,25,355 -BRDA:390,59,26,874 -BRDA:390,59,27,42 -BRDA:390,59,28,2305 -BRDA:390,59,29,61 -BRDA:390,59,30,6 -BRDA:390,59,31,79 -BRDA:390,59,32,42 -BRDA:390,59,33,18 -BRDA:390,59,34,61 -BRDA:390,59,35,3208 -BRDA:390,59,36,15 -BRDA:390,59,37,9 -BRDA:390,59,38,1094 -BRDA:392,60,0,10 -BRDA:392,60,1,2466 -BRDA:395,61,0,10 -BRDA:395,61,1,2456 -BRDA:401,62,0,1201 -BRDA:401,62,1,1275 -BRF:205 -BRH:205 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/helpers.js -FN:4,stripFlags -FN:12,prepareBlock -FN:68,prepareProgram -FN:118,isPrevWhitespace -FN:135,isNextWhitespace -FN:158,omitRight -FN:176,omitLeft -FNF:7 -FNH:7 -FNDA:2323,stripFlags -FNDA:603,prepareBlock -FNDA:2718,prepareProgram -FNDA:3514,isPrevWhitespace -FNDA:3469,isNextWhitespace -FNDA:432,omitRight -FNDA:422,omitLeft -DA:2,1 -DA:4,1 -DA:5,2323 -DA:11,1 -DA:12,1 -DA:14,603 -DA:15,2 -DA:18,601 -DA:20,601 -DA:30,601 -DA:31,34 -DA:34,601 -DA:35,62 -DA:37,62 -DA:38,22 -DA:40,62 -DA:41,22 -DA:43,62 -DA:44,18 -DA:48,62 -DA:51,17 -DA:52,17 -DA:55,539 -DA:56,14 -DA:60,601 -DA:61,80 -DA:63,521 -DA:67,1 -DA:68,1 -DA:69,2718 -DA:70,5434 -DA:73,5434 -DA:74,2583 -DA:77,2851 -DA:84,2851 -DA:85,72 -DA:87,2851 -DA:88,64 -DA:91,2851 -DA:92,63 -DA:94,63 -DA:96,20 -DA:97,11 -DA:101,2851 -DA:102,109 -DA:105,109 -DA:107,2851 -DA:109,115 -DA:111,115 -DA:115,2718 -DA:118,1 -DA:119,3514 -DA:120,663 -DA:125,3514 -DA:127,3514 -DA:128,1480 -DA:131,2034 -DA:132,1712 -DA:135,1 -DA:136,3469 -DA:137,618 -DA:140,3469 -DA:142,3469 -DA:143,1401 -DA:146,2068 -DA:147,1729 -DA:158,1 -DA:159,432 -DA:160,432 -DA:161,150 -DA:164,282 -DA:165,282 -DA:166,282 -DA:176,1 -DA:177,422 -DA:178,422 -DA:179,90 -DA:183,332 -DA:184,332 -DA:185,332 -DA:186,332 -LF:81 -LH:81 -BRDA:14,1,0,2 -BRDA:14,1,1,601 -BRDA:18,2,0,601 -BRDA:18,2,1,62 -BRDA:27,3,0,601 -BRDA:27,3,1,539 -BRDA:30,4,0,34 -BRDA:30,4,1,567 -BRDA:34,5,0,62 -BRDA:34,5,1,539 -BRDA:37,6,0,22 -BRDA:37,6,1,40 -BRDA:40,7,0,22 -BRDA:40,7,1,40 -BRDA:43,8,0,18 -BRDA:43,8,1,44 -BRDA:48,9,0,17 -BRDA:48,9,1,45 -BRDA:48,10,0,62 -BRDA:48,10,1,17 -BRDA:55,11,0,14 -BRDA:55,11,1,525 -BRDA:60,12,0,80 -BRDA:60,12,1,521 -BRDA:73,13,0,2583 -BRDA:73,13,1,2851 -BRDA:80,14,0,2851 -BRDA:80,14,1,143 -BRDA:81,15,0,2851 -BRDA:81,15,1,143 -BRDA:82,16,0,2851 -BRDA:82,16,1,236 -BRDA:82,16,2,73 -BRDA:84,17,0,72 -BRDA:84,17,1,2779 -BRDA:87,18,0,64 -BRDA:87,18,1,2787 -BRDA:91,19,0,63 -BRDA:91,19,1,2788 -BRDA:94,20,0,20 -BRDA:94,20,1,43 -BRDA:96,21,0,11 -BRDA:96,21,1,9 -BRDA:97,22,0,11 -BRDA:97,22,1,0 -BRDA:101,23,0,109 -BRDA:101,23,1,2742 -BRDA:102,24,0,109 -BRDA:102,24,1,28 -BRDA:107,25,0,115 -BRDA:107,25,1,2736 -BRDA:111,26,0,115 -BRDA:111,26,1,59 -BRDA:119,27,0,663 -BRDA:119,27,1,2851 -BRDA:127,28,0,1480 -BRDA:127,28,1,2034 -BRDA:131,29,0,1712 -BRDA:131,29,1,322 -BRDA:132,30,0,1353 -BRDA:132,30,1,359 -BRDA:132,31,0,1712 -BRDA:132,31,1,1125 -BRDA:136,32,0,618 -BRDA:136,32,1,2851 -BRDA:142,33,0,1401 -BRDA:142,33,1,2068 -BRDA:146,34,0,1729 -BRDA:146,34,1,339 -BRDA:147,35,0,1344 -BRDA:147,35,1,385 -BRDA:147,36,0,1729 -BRDA:147,36,1,1170 -BRDA:159,37,0,182 -BRDA:159,37,1,250 -BRDA:160,38,0,150 -BRDA:160,38,1,282 -BRDA:160,39,0,432 -BRDA:160,39,1,395 -BRDA:160,39,2,395 -BRDA:160,39,3,267 -BRDA:165,40,0,128 -BRDA:165,40,1,154 -BRDA:177,41,0,186 -BRDA:177,41,1,236 -BRDA:178,42,0,90 -BRDA:178,42,1,332 -BRDA:178,43,0,422 -BRDA:178,43,1,386 -BRDA:178,43,2,386 -BRDA:178,43,3,268 -BRDA:184,44,0,118 -BRDA:184,44,1,214 -BRF:93 -BRH:92 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/compiler.js -FN:7,Compiler -FN:17,(anonymous_2) -FN:45,(anonymous_3) -FN:74,(anonymous_4) -FN:78,(anonymous_5) -FN:86,(anonymous_6) -FN:93,(anonymous_7) -FN:111,(anonymous_8) -FN:152,(anonymous_9) -FN:166,(anonymous_10) -FN:187,(anonymous_11) -FN:193,(anonymous_12) -FN:203,(anonymous_13) -FN:218,(anonymous_14) -FN:235,(anonymous_15) -FN:252,(anonymous_16) -FN:264,(anonymous_17) -FN:277,(anonymous_18) -FN:282,(anonymous_19) -FN:286,(anonymous_20) -FN:290,(anonymous_21) -FN:294,(anonymous_22) -FN:297,(anonymous_23) -FN:301,(anonymous_24) -FN:310,(anonymous_25) -FN:332,(anonymous_26) -FN:338,(anonymous_27) -FN:359,(anonymous_28) -FN:376,precompile -FN:394,compile -FN:410,compileInput -FN:418,(anonymous_32) -FN:424,(anonymous_33) -FN:430,(anonymous_34) -FN:439,argEquals -FNF:35 -FNH:35 -FNDA:1595,Compiler -FNDA:129,(anonymous_2) -FNDA:1595,(anonymous_3) -FNDA:5302,(anonymous_4) -FNDA:1595,(anonymous_5) -FNDA:2,(anonymous_6) -FNDA:631,(anonymous_7) -FNDA:583,(anonymous_8) -FNDA:60,(anonymous_9) -FNDA:86,(anonymous_10) -FNDA:1553,(anonymous_11) -FNDA:913,(anonymous_12) -FNDA:894,(anonymous_13) -FNDA:186,(anonymous_14) -FNDA:468,(anonymous_15) -FNDA:965,(anonymous_16) -FNDA:1588,(anonymous_17) -FNDA:68,(anonymous_18) -FNDA:42,(anonymous_19) -FNDA:50,(anonymous_20) -FNDA:40,(anonymous_21) -FNDA:30,(anonymous_22) -FNDA:14161,(anonymous_23) -FNDA:1636,(anonymous_24) -FNDA:1548,(anonymous_25) -FNDA:468,(anonymous_26) -FNDA:598,(anonymous_27) -FNDA:468,(anonymous_28) -FNDA:801,precompile -FNDA:155,compile -FNDA:153,compileInput -FNDA:174,(anonymous_32) -FNDA:2,(anonymous_33) -FNDA:4,(anonymous_34) -FNDA:621,argEquals -DA:2,1 -DA:3,1 -DA:5,1 -DA:7,1 -DA:9,1 -DA:14,1 -DA:18,129 -DA:19,129 -DA:20,45 -DA:23,84 -DA:24,279 -DA:26,279 -DA:27,68 -DA:33,16 -DA:34,16 -DA:35,4 -DA:36,3 -DA:40,13 -DA:46,1595 -DA:47,1595 -DA:48,1595 -DA:49,1595 -DA:50,1595 -DA:51,1595 -DA:54,1595 -DA:55,1595 -DA:65,1595 -DA:66,646 -DA:67,5054 -DA:71,1595 -DA:75,5302 -DA:79,1595 -DA:81,1595 -DA:82,3165 -DA:84,1593 -DA:86,1593 -DA:87,2 -DA:90,1593 -DA:94,631 -DA:95,631 -DA:97,631 -DA:99,631 -DA:101,631 -DA:102,52 -DA:104,52 -DA:105,2 -DA:108,631 -DA:112,583 -DA:116,583 -DA:117,505 -DA:120,583 -DA:121,126 -DA:124,583 -DA:125,583 -DA:127,583 -DA:128,232 -DA:129,351 -DA:130,32 -DA:134,32 -DA:135,32 -DA:136,32 -DA:137,32 -DA:139,319 -DA:143,319 -DA:144,319 -DA:145,319 -DA:146,319 -DA:149,583 -DA:153,60 -DA:155,60 -DA:157,60 -DA:158,96 -DA:160,60 -DA:161,96 -DA:163,60 -DA:167,86 -DA:168,86 -DA:170,86 -DA:171,2 -DA:173,84 -DA:176,86 -DA:177,4 -DA:179,82 -DA:180,82 -DA:183,86 -DA:184,86 -DA:188,1553 -DA:189,1419 -DA:194,913 -DA:196,911 -DA:197,851 -DA:199,60 -DA:204,894 -DA:208,894 -DA:210,894 -DA:211,894 -DA:213,894 -DA:215,894 -DA:219,186 -DA:221,186 -DA:222,38 -DA:223,148 -DA:224,108 -DA:227,40 -DA:228,40 -DA:229,40 -DA:232,186 -DA:236,468 -DA:240,468 -DA:241,210 -DA:242,258 -DA:243,2 -DA:245,256 -DA:247,256 -DA:248,256 -DA:253,965 -DA:255,965 -DA:256,154 -DA:257,811 -DA:258,236 -DA:260,575 -DA:265,1588 -DA:266,1588 -DA:268,1588 -DA:269,1588 -DA:271,16 -DA:273,1572 -DA:278,68 -DA:279,68 -DA:283,42 -DA:287,50 -DA:291,40 -DA:298,14161 -DA:302,1636 -DA:304,56 -DA:305,54 -DA:306,54 -DA:311,1548 -DA:312,1548 -DA:313,1548 -DA:317,1548 -DA:318,912 -DA:320,912 -DA:321,10 -DA:322,902 -DA:323,8 -DA:327,1548 -DA:328,1080 -DA:329,186 -DA:333,468 -DA:334,502 -DA:339,598 -DA:340,62 -DA:341,6 -DA:343,62 -DA:344,62 -DA:346,62 -DA:349,4 -DA:352,536 -DA:353,54 -DA:355,536 -DA:360,468 -DA:361,468 -DA:363,468 -DA:364,468 -DA:366,468 -DA:367,58 -DA:369,410 -DA:372,468 -DA:376,1 -DA:377,801 -DA:378,2 -DA:381,799 -DA:382,799 -DA:383,767 -DA:385,799 -DA:386,180 -DA:389,799 -DA:390,785 -DA:391,783 -DA:394,1 -DA:395,155 -DA:396,2 -DA:399,153 -DA:401,153 -DA:402,71 -DA:404,153 -DA:405,48 -DA:408,153 -DA:410,1 -DA:411,153 -DA:412,153 -DA:413,153 -DA:414,153 -DA:418,153 -DA:419,174 -DA:420,150 -DA:422,174 -DA:424,153 -DA:425,2 -DA:426,1 -DA:428,2 -DA:430,153 -DA:431,4 -DA:432,2 -DA:434,4 -DA:436,153 -DA:439,1 -DA:440,621 -DA:441,241 -DA:444,380 -DA:445,312 -DA:446,342 -DA:447,81 -DA:450,231 -LF:215 -LH:215 -BRDA:19,1,0,45 -BRDA:19,1,1,84 -BRDA:26,2,0,68 -BRDA:26,2,1,211 -BRDA:26,3,0,279 -BRDA:26,3,1,279 -BRDA:35,4,0,3 -BRDA:35,4,1,1 -BRDA:65,5,0,646 -BRDA:65,5,1,949 -BRDA:97,6,0,631 -BRDA:97,6,1,631 -BRDA:104,7,0,50 -BRDA:104,7,1,2 -BRDA:116,8,0,505 -BRDA:116,8,1,78 -BRDA:120,9,0,126 -BRDA:120,9,1,457 -BRDA:127,10,0,232 -BRDA:127,10,1,351 -BRDA:129,11,0,32 -BRDA:129,11,1,319 -BRDA:170,12,0,2 -BRDA:170,12,1,84 -BRDA:176,13,0,4 -BRDA:176,13,1,82 -BRDA:183,14,0,86 -BRDA:183,14,1,76 -BRDA:188,15,0,1419 -BRDA:188,15,1,134 -BRDA:196,16,0,851 -BRDA:196,16,1,60 -BRDA:196,17,0,911 -BRDA:196,17,1,851 -BRDA:206,18,0,894 -BRDA:206,18,1,635 -BRDA:221,19,0,38 -BRDA:221,19,1,148 -BRDA:223,20,0,108 -BRDA:223,20,1,40 -BRDA:240,21,0,210 -BRDA:240,21,1,258 -BRDA:242,22,0,2 -BRDA:242,22,1,256 -BRDA:255,23,0,154 -BRDA:255,23,1,811 -BRDA:257,24,0,236 -BRDA:257,24,1,575 -BRDA:269,25,0,16 -BRDA:269,25,1,1572 -BRDA:302,26,0,1580 -BRDA:302,26,1,56 -BRDA:304,27,0,54 -BRDA:304,27,1,2 -BRDA:317,28,0,912 -BRDA:317,28,1,636 -BRDA:317,29,0,1548 -BRDA:317,29,1,1370 -BRDA:320,30,0,10 -BRDA:320,30,1,902 -BRDA:322,31,0,8 -BRDA:322,31,1,894 -BRDA:327,32,0,468 -BRDA:327,32,1,1080 -BRDA:328,33,0,894 -BRDA:328,33,1,186 -BRDA:339,34,0,62 -BRDA:339,34,1,536 -BRDA:340,35,0,6 -BRDA:340,35,1,56 -BRDA:343,36,0,62 -BRDA:343,36,1,56 -BRDA:346,37,0,4 -BRDA:346,37,1,58 -BRDA:352,38,0,54 -BRDA:352,38,1,482 -BRDA:353,39,0,54 -BRDA:353,39,1,12 -BRDA:366,40,0,58 -BRDA:366,40,1,410 -BRDA:377,41,0,2 -BRDA:377,41,1,799 -BRDA:377,42,0,801 -BRDA:377,42,1,800 -BRDA:377,42,2,2 -BRDA:381,43,0,799 -BRDA:381,43,1,387 -BRDA:382,44,0,767 -BRDA:382,44,1,32 -BRDA:385,45,0,180 -BRDA:385,45,1,619 -BRDA:395,46,0,2 -BRDA:395,46,1,153 -BRDA:395,47,0,155 -BRDA:395,47,1,154 -BRDA:395,47,2,2 -BRDA:399,48,0,153 -BRDA:399,48,1,7 -BRDA:401,49,0,71 -BRDA:401,49,1,82 -BRDA:404,50,0,48 -BRDA:404,50,1,105 -BRDA:419,51,0,150 -BRDA:419,51,1,24 -BRDA:425,52,0,1 -BRDA:425,52,1,1 -BRDA:431,53,0,2 -BRDA:431,53,1,2 -BRDA:440,54,0,241 -BRDA:440,54,1,380 -BRDA:444,55,0,312 -BRDA:444,55,1,68 -BRDA:444,56,0,380 -BRDA:444,56,1,312 -BRDA:444,56,2,312 -BRDA:446,57,0,81 -BRDA:446,57,1,261 -BRF:117 -BRH:117 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/javascript-compiler.js -FN:6,Literal -FN:10,JavaScriptCompiler -FN:15,(anonymous_3) -FN:22,(anonymous_4) -FN:28,(anonymous_5) -FN:34,(anonymous_6) -FN:41,(anonymous_7) -FN:46,(anonymous_8) -FN:53,(anonymous_9) -FN:137,(anonymous_10) -FN:144,(anonymous_11) -FN:176,(anonymous_12) -FN:237,(anonymous_13) -FN:255,(anonymous_14) -FN:276,(anonymous_15) -FN:293,(anonymous_16) -FN:310,(anonymous_17) -FN:323,(anonymous_18) -FN:333,(anonymous_19) -FN:344,(anonymous_20) -FN:358,(anonymous_21) -FN:378,(anonymous_22) -FN:388,(anonymous_23) -FN:401,(anonymous_24) -FN:415,(anonymous_25) -FN:430,(anonymous_26) -FN:441,(anonymous_27) -FN:447,(anonymous_28) -FN:468,(anonymous_29) -FN:478,(anonymous_30) -FN:491,(anonymous_31) -FN:503,(anonymous_32) -FN:520,(anonymous_33) -FN:537,(anonymous_34) -FN:554,(anonymous_35) -FN:579,(anonymous_36) -FN:600,(anonymous_37) -FN:627,(anonymous_38) -FN:641,(anonymous_39) -FN:665,(anonymous_40) -FN:674,(anonymous_41) -FN:689,(anonymous_42) -FN:696,(anonymous_43) -FN:700,(anonymous_44) -FN:711,(anonymous_45) -FN:720,(anonymous_46) -FN:759,(anonymous_47) -FN:764,(anonymous_48) -FN:767,(anonymous_49) -FN:781,(anonymous_50) -FN:785,(anonymous_51) -FN:803,(anonymous_52) -FN:814,(anonymous_53) -FN:822,(anonymous_54) -FN:832,(anonymous_55) -FN:844,(anonymous_56) -FN:857,(anonymous_57) -FN:922,(anonymous_58) -FN:960,(anonymous_59) -FNF:59 -FNH:59 -FNDA:6739,Literal -FNDA:1561,JavaScriptCompiler -FNDA:3716,(anonymous_3) -FNDA:332,(anonymous_4) -FNDA:935,(anonymous_5) -FNDA:3199,(anonymous_6) -FNDA:458,(anonymous_7) -FNDA:147,(anonymous_8) -FNDA:1555,(anonymous_9) -FNDA:1555,(anonymous_10) -FNDA:1555,(anonymous_11) -FNDA:1555,(anonymous_12) -FNDA:32,(anonymous_13) -FNDA:313,(anonymous_14) -FNDA:1409,(anonymous_15) -FNDA:723,(anonymous_16) -FNDA:828,(anonymous_17) -FNDA:2610,(anonymous_18) -FNDA:1401,(anonymous_19) -FNDA:1533,(anonymous_20) -FNDA:1345,(anonymous_21) -FNDA:68,(anonymous_22) -FNDA:80,(anonymous_23) -FNDA:182,(anonymous_24) -FNDA:62,(anonymous_25) -FNDA:1626,(anonymous_26) -FNDA:52,(anonymous_27) -FNDA:52,(anonymous_28) -FNDA:198,(anonymous_29) -FNDA:10559,(anonymous_30) -FNDA:78,(anonymous_31) -FNDA:3352,(anonymous_32) -FNDA:244,(anonymous_33) -FNDA:210,(anonymous_34) -FNDA:877,(anonymous_35) -FNDA:86,(anonymous_36) -FNDA:88,(anonymous_37) -FNDA:54,(anonymous_38) -FNDA:1555,(anonymous_39) -FNDA:625,(anonymous_40) -FNDA:952,(anonymous_41) -FNDA:1503,(anonymous_42) -FNDA:6739,(anonymous_43) -FNDA:4407,(anonymous_44) -FNDA:723,(anonymous_45) -FNDA:1425,(anonymous_46) -FNDA:879,(anonymous_47) -FNDA:879,(anonymous_48) -FNDA:1759,(anonymous_49) -FNDA:13878,(anonymous_50) -FNDA:10559,(anonymous_51) -FNDA:469,(anonymous_52) -FNDA:3259,(anonymous_53) -FNDA:13802,(anonymous_54) -FNDA:2459,(anonymous_55) -FNDA:1331,(anonymous_56) -FNDA:1676,(anonymous_57) -FNDA:1676,(anonymous_58) -FNDA:3716,(anonymous_59) -DA:2,1 -DA:3,1 -DA:4,1 -DA:6,1 -DA:7,6739 -DA:10,1 -DA:12,1 -DA:16,3716 -DA:17,3428 -DA:19,288 -DA:23,332 -DA:25,332 -DA:29,935 -DA:31,935 -DA:35,3199 -DA:36,1085 -DA:38,2114 -DA:41,458 -DA:47,147 -DA:54,1555 -DA:55,1555 -DA:56,1555 -DA:57,1555 -DA:58,1555 -DA:60,1555 -DA:61,1555 -DA:62,1555 -DA:67,1555 -DA:69,1555 -DA:70,1555 -DA:71,1555 -DA:72,1555 -DA:73,1555 -DA:74,1555 -DA:75,1555 -DA:77,1555 -DA:79,1555 -DA:81,1555 -DA:86,1555 -DA:87,13864 -DA:89,13864 -DA:93,1555 -DA:96,1555 -DA:97,1 -DA:100,1555 -DA:101,1555 -DA:102,936 -DA:106,936 -DA:107,936 -DA:108,1154 -DA:109,619 -DA:113,936 -DA:114,82 -DA:116,936 -DA:117,922 -DA:119,936 -DA:120,278 -DA:122,936 -DA:123,228 -DA:126,936 -DA:127,783 -DA:128,783 -DA:131,936 -DA:133,619 -DA:140,1555 -DA:141,1555 -DA:145,1555 -DA:147,1555 -DA:148,1555 -DA:149,1023 -DA:153,1555 -DA:154,2891 -DA:155,2889 -DA:159,1555 -DA:161,1555 -DA:162,472 -DA:166,1555 -DA:168,1555 -DA:169,184 -DA:171,184 -DA:173,1371 -DA:177,1555 -DA:182,1555 -DA:183,4235 -DA:184,4235 -DA:185,1656 -DA:186,796 -DA:188,860 -DA:191,2579 -DA:192,292 -DA:193,264 -DA:194,264 -DA:196,28 -DA:198,292 -DA:200,2579 -DA:202,2579 -DA:203,1140 -DA:208,1555 -DA:209,1143 -DA:210,324 -DA:213,412 -DA:214,412 -DA:215,269 -DA:217,143 -DA:221,1555 -DA:222,1207 -DA:225,1555 -DA:238,32 -DA:240,32 -DA:241,32 -DA:243,32 -DA:244,32 -DA:246,32 -DA:256,313 -DA:259,313 -DA:260,313 -DA:262,313 -DA:264,313 -DA:265,313 -DA:267,313 -DA:277,1409 -DA:278,26 -DA:281,1409 -DA:296,723 -DA:297,723 -DA:298,723 -DA:299,723 -DA:300,265 -DA:311,828 -DA:313,828 -DA:324,2610 -DA:334,1401 -DA:346,1533 -DA:349,1533 -DA:352,332 -DA:354,1201 -DA:357,1533 -DA:358,1345 -DA:359,1345 -DA:362,1345 -DA:363,1095 -DA:366,250 -DA:380,68 -DA:381,64 -DA:383,4 -DA:386,68 -DA:387,68 -DA:388,80 -DA:389,80 -DA:402,182 -DA:404,182 -DA:416,62 -DA:417,62 -DA:421,62 -DA:422,58 -DA:423,50 -DA:425,8 -DA:431,1626 -DA:433,1626 -DA:434,56 -DA:436,1626 -DA:437,30 -DA:438,30 -DA:442,52 -DA:443,2 -DA:445,52 -DA:448,52 -DA:449,52 -DA:451,52 -DA:452,4 -DA:454,52 -DA:455,10 -DA:456,10 -DA:459,52 -DA:469,198 -DA:479,10559 -DA:480,10559 -DA:492,78 -DA:504,3352 -DA:505,952 -DA:507,2400 -DA:521,244 -DA:523,244 -DA:524,244 -DA:526,244 -DA:527,244 -DA:538,210 -DA:539,210 -DA:555,877 -DA:556,877 -DA:557,877 -DA:559,877 -DA:561,877 -DA:562,877 -DA:564,877 -DA:566,877 -DA:580,86 -DA:582,86 -DA:583,82 -DA:584,4 -DA:585,2 -DA:587,86 -DA:588,26 -DA:591,86 -DA:601,88 -DA:606,88 -DA:607,6 -DA:609,88 -DA:610,18 -DA:611,18 -DA:614,88 -DA:615,88 -DA:616,18 -DA:618,88 -DA:619,18 -DA:621,88 -DA:622,6 -DA:624,88 -DA:628,54 -DA:629,46 -DA:630,8 -DA:631,2 -DA:633,6 -DA:642,1555 -DA:644,1555 -DA:645,625 -DA:646,625 -DA:648,625 -DA:650,625 -DA:651,619 -DA:652,619 -DA:653,619 -DA:654,619 -DA:655,619 -DA:656,619 -DA:658,619 -DA:660,6 -DA:661,6 -DA:666,625 -DA:667,222 -DA:668,222 -DA:669,6 -DA:675,952 -DA:680,952 -DA:682,952 -DA:683,376 -DA:686,952 -DA:690,1503 -DA:691,966 -DA:692,966 -DA:697,6739 -DA:701,4407 -DA:702,1383 -DA:703,1383 -DA:706,4407 -DA:707,2852 -DA:712,723 -DA:714,723 -DA:715,723 -DA:716,723 -DA:717,723 -DA:721,1425 -DA:728,1425 -DA:729,1 -DA:733,1425 -DA:735,1425 -DA:737,1269 -DA:738,1269 -DA:741,156 -DA:742,156 -DA:744,156 -DA:745,156 -DA:748,1425 -DA:750,1425 -DA:751,156 -DA:753,1425 -DA:754,156 -DA:756,1425 -DA:760,879 -DA:761,879 -DA:762,879 -DA:765,879 -DA:768,1759 -DA:769,1759 -DA:770,723 -DA:771,723 -DA:772,723 -DA:773,723 -DA:774,0 -DA:776,723 -DA:782,13878 -DA:786,10559 -DA:789,10559 -DA:790,5470 -DA:792,5089 -DA:794,723 -DA:795,1 -DA:797,723 -DA:799,5089 -DA:804,469 -DA:807,469 -DA:808,0 -DA:810,469 -DA:815,3259 -DA:816,54 -DA:818,3205 -DA:823,13802 -DA:833,2459 -DA:835,2459 -DA:836,10401 -DA:837,10397 -DA:841,2459 -DA:845,1331 -DA:847,1331 -DA:849,1331 -DA:858,1676 -DA:860,1676 -DA:861,1676 -DA:863,1676 -DA:864,60 -DA:866,1676 -DA:867,40 -DA:868,40 -DA:871,1676 -DA:872,1676 -DA:876,1676 -DA:877,890 -DA:878,138 -DA:881,890 -DA:882,690 -DA:885,890 -DA:886,890 -DA:891,1676 -DA:892,1676 -DA:893,486 -DA:894,486 -DA:896,486 -DA:897,48 -DA:899,486 -DA:900,44 -DA:901,44 -DA:905,1676 -DA:906,60 -DA:908,1676 -DA:909,40 -DA:910,40 -DA:913,1676 -DA:914,1640 -DA:917,1676 -DA:923,1676 -DA:925,1676 -DA:926,626 -DA:927,626 -DA:928,626 -DA:930,1050 -DA:931,1050 -DA:936,1 -DA:954,1 -DA:956,1 -DA:957,58 -DA:960,1 -DA:961,3716 -DA:964,1 -LF:363 -LH:361 -BRDA:16,1,0,3428 -BRDA:16,1,1,288 -BRDA:35,2,0,1085 -BRDA:35,2,1,2114 -BRDA:62,3,0,1555 -BRDA:62,3,1,936 -BRDA:79,4,0,1555 -BRDA:79,4,1,1369 -BRDA:79,4,2,1319 -BRDA:96,5,0,0 -BRDA:96,5,1,1555 -BRDA:96,6,0,1555 -BRDA:96,6,1,1555 -BRDA:96,6,2,1555 -BRDA:101,7,0,936 -BRDA:101,7,1,619 -BRDA:108,8,0,619 -BRDA:108,8,1,535 -BRDA:113,9,0,82 -BRDA:113,9,1,854 -BRDA:116,10,0,922 -BRDA:116,10,1,14 -BRDA:119,11,0,278 -BRDA:119,11,1,658 -BRDA:122,12,0,228 -BRDA:122,12,1,708 -BRDA:126,13,0,783 -BRDA:126,13,1,153 -BRDA:148,14,0,1023 -BRDA:148,14,1,532 -BRDA:154,15,0,2889 -BRDA:154,15,1,2 -BRDA:161,16,0,472 -BRDA:161,16,1,1083 -BRDA:168,17,0,184 -BRDA:168,17,1,1371 -BRDA:184,18,0,1656 -BRDA:184,18,1,2579 -BRDA:185,19,0,796 -BRDA:185,19,1,860 -BRDA:191,20,0,292 -BRDA:191,20,1,2287 -BRDA:192,21,0,264 -BRDA:192,21,1,28 -BRDA:202,22,0,1140 -BRDA:202,22,1,1439 -BRDA:208,23,0,1143 -BRDA:208,23,1,412 -BRDA:209,24,0,324 -BRDA:209,24,1,819 -BRDA:209,25,0,1143 -BRDA:209,25,1,844 -BRDA:210,26,0,324 -BRDA:210,26,1,25 -BRDA:213,27,0,264 -BRDA:213,27,1,148 -BRDA:214,28,0,269 -BRDA:214,28,1,143 -BRDA:221,29,0,1207 -BRDA:221,29,1,348 -BRDA:222,30,0,264 -BRDA:222,30,1,943 -BRDA:277,31,0,26 -BRDA:277,31,1,1383 -BRDA:299,32,0,265 -BRDA:299,32,1,458 -BRDA:349,33,0,332 -BRDA:349,33,1,1201 -BRDA:349,34,0,1533 -BRDA:349,34,1,1515 -BRDA:349,34,2,332 -BRDA:362,35,0,1095 -BRDA:362,35,1,250 -BRDA:380,36,0,64 -BRDA:380,36,1,4 -BRDA:421,37,0,58 -BRDA:421,37,1,4 -BRDA:422,38,0,50 -BRDA:422,38,1,8 -BRDA:433,39,0,56 -BRDA:433,39,1,1570 -BRDA:436,40,0,30 -BRDA:436,40,1,1596 -BRDA:442,41,0,2 -BRDA:442,41,1,50 -BRDA:451,42,0,4 -BRDA:451,42,1,48 -BRDA:454,43,0,10 -BRDA:454,43,1,42 -BRDA:504,44,0,952 -BRDA:504,44,1,2400 -BRDA:526,45,0,232 -BRDA:526,45,1,12 -BRDA:568,46,0,313 -BRDA:568,46,1,564 -BRDA:582,47,0,82 -BRDA:582,47,1,4 -BRDA:584,48,0,2 -BRDA:584,48,1,2 -BRDA:587,49,0,26 -BRDA:587,49,1,60 -BRDA:606,50,0,6 -BRDA:606,50,1,82 -BRDA:609,51,0,18 -BRDA:609,51,1,70 -BRDA:615,52,0,18 -BRDA:615,52,1,70 -BRDA:618,53,0,18 -BRDA:618,53,1,70 -BRDA:621,54,0,6 -BRDA:621,54,1,82 -BRDA:628,55,0,46 -BRDA:628,55,1,8 -BRDA:628,56,0,54 -BRDA:628,56,1,12 -BRDA:630,57,0,2 -BRDA:630,57,1,6 -BRDA:650,58,0,619 -BRDA:650,58,1,6 -BRDA:658,59,0,619 -BRDA:658,59,1,611 -BRDA:668,60,0,6 -BRDA:668,60,1,216 -BRDA:668,61,0,222 -BRDA:668,61,1,112 -BRDA:682,62,0,376 -BRDA:682,62,1,576 -BRDA:690,63,0,966 -BRDA:690,63,1,537 -BRDA:701,64,0,1383 -BRDA:701,64,1,3024 -BRDA:706,65,0,2852 -BRDA:706,65,1,1555 -BRDA:728,66,0,0 -BRDA:728,66,1,1425 -BRDA:735,67,0,1269 -BRDA:735,67,1,156 -BRDA:742,68,0,0 -BRDA:742,68,1,156 -BRDA:750,69,0,156 -BRDA:750,69,1,1269 -BRDA:753,70,0,156 -BRDA:753,70,1,1269 -BRDA:761,71,0,751 -BRDA:761,71,1,128 -BRDA:769,72,0,723 -BRDA:769,72,1,1036 -BRDA:773,73,0,0 -BRDA:773,73,1,723 -BRDA:787,74,0,9836 -BRDA:787,74,1,723 -BRDA:789,75,0,5470 -BRDA:789,75,1,5089 -BRDA:789,76,0,10559 -BRDA:789,76,1,9134 -BRDA:792,77,0,723 -BRDA:792,77,1,4366 -BRDA:794,78,0,0 -BRDA:794,78,1,723 -BRDA:804,79,0,156 -BRDA:804,79,1,313 -BRDA:807,80,0,0 -BRDA:807,80,1,469 -BRDA:815,81,0,54 -BRDA:815,81,1,3205 -BRDA:815,82,0,3259 -BRDA:815,82,1,826 -BRDA:836,83,0,10397 -BRDA:836,83,1,4 -BRDA:863,84,0,60 -BRDA:863,84,1,1616 -BRDA:866,85,0,40 -BRDA:866,85,1,1636 -BRDA:876,86,0,890 -BRDA:876,86,1,786 -BRDA:876,87,0,1676 -BRDA:876,87,1,924 -BRDA:877,88,0,138 -BRDA:877,88,1,752 -BRDA:881,89,0,690 -BRDA:881,89,1,200 -BRDA:896,90,0,48 -BRDA:896,90,1,438 -BRDA:899,91,0,44 -BRDA:899,91,1,442 -BRDA:905,92,0,60 -BRDA:905,92,1,1616 -BRDA:908,93,0,40 -BRDA:908,93,1,1636 -BRDA:913,94,0,1640 -BRDA:913,94,1,36 -BRDA:925,95,0,626 -BRDA:925,95,1,1050 -BRDA:961,96,0,3716 -BRDA:961,96,1,3480 -BRF:195 -BRH:192 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/visitor.js -FN:2,Visitor -FN:7,(anonymous_2) -FNF:2 -FNH:2 -FNDA:1,Visitor -FNDA:276,(anonymous_2) -DA:2,1 -DA:4,1 -DA:8,276 -DA:12,1 -LF:4 -LH:4 -BRF:0 -BRH:0 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/dist/cjs/handlebars/compiler/printer.js -FN:4,print -FN:8,PrintVisitor -FN:14,(anonymous_3) -FN:25,(anonymous_4) -FN:39,(anonymous_5) -FN:64,(anonymous_6) -FN:78,(anonymous_7) -FN:82,(anonymous_8) -FN:93,(anonymous_9) -FN:106,(anonymous_10) -FN:110,(anonymous_11) -FN:114,(anonymous_12) -FN:118,(anonymous_13) -FN:127,(anonymous_14) -FN:131,(anonymous_15) -FN:135,(anonymous_16) -FN:139,(anonymous_17) -FNF:17 -FNH:17 -FNDA:48,print -FNDA:48,PrintVisitor -FNDA:89,(anonymous_3) -FNDA:67,(anonymous_4) -FNDA:11,(anonymous_5) -FNDA:40,(anonymous_6) -FNDA:40,(anonymous_7) -FNDA:5,(anonymous_8) -FNDA:14,(anonymous_9) -FNDA:7,(anonymous_10) -FNDA:3,(anonymous_11) -FNDA:6,(anonymous_12) -FNDA:60,(anonymous_13) -FNDA:5,(anonymous_14) -FNDA:4,(anonymous_15) -FNDA:12,(anonymous_16) -FNDA:2,(anonymous_17) -DA:2,1 -DA:4,1 -DA:5,48 -DA:8,1 -DA:9,48 -DA:12,1 -DA:14,1 -DA:15,89 -DA:17,89 -DA:18,50 -DA:21,89 -DA:22,89 -DA:25,1 -DA:26,67 -DA:30,67 -DA:31,59 -DA:34,67 -DA:36,67 -DA:39,1 -DA:40,11 -DA:42,11 -DA:43,11 -DA:44,11 -DA:45,11 -DA:46,9 -DA:47,9 -DA:48,9 -DA:49,9 -DA:51,11 -DA:52,10 -DA:53,10 -DA:54,10 -DA:55,10 -DA:56,10 -DA:57,10 -DA:59,11 -DA:61,11 -DA:64,1 -DA:65,40 -DA:67,40 -DA:68,11 -DA:71,40 -DA:73,40 -DA:75,40 -DA:78,1 -DA:79,40 -DA:82,1 -DA:83,5 -DA:84,5 -DA:85,2 -DA:87,5 -DA:88,2 -DA:90,5 -DA:93,1 -DA:94,14 -DA:95,14 -DA:97,14 -DA:98,23 -DA:99,23 -DA:100,23 -DA:103,14 -DA:106,1 -DA:107,7 -DA:110,1 -DA:111,3 -DA:114,1 -DA:115,6 -DA:118,1 -DA:119,60 -DA:120,60 -DA:121,1 -DA:123,59 -DA:127,1 -DA:128,5 -DA:131,1 -DA:132,4 -DA:135,1 -DA:136,12 -DA:139,1 -DA:140,2 -LF:80 -LH:80 -BRDA:45,1,0,9 -BRDA:45,1,1,2 -BRDA:51,2,0,10 -BRDA:51,2,1,1 -BRDA:52,3,0,8 -BRDA:52,3,1,2 -BRDA:57,4,0,8 -BRDA:57,4,1,2 -BRDA:73,5,0,12 -BRDA:73,5,1,28 -BRDA:84,6,0,2 -BRDA:84,6,1,3 -BRDA:87,7,0,2 -BRDA:87,7,1,3 -BRDA:120,8,0,1 -BRDA:120,8,1,59 -BRF:16 -BRH:16 -end_of_record -TN: -SF:/Users/kpdecker/dev/kpdecker/handlebars.js/lib/precompiler.js -FN:7,(anonymous_1) -FN:18,(anonymous_2) -FN:45,(anonymous_3) -FN:63,processTemplate -FN:67,(anonymous_5) -FN:114,(anonymous_6) -FNF:6 -FNH:6 -FNDA:54,(anonymous_1) -FNDA:51,(anonymous_2) -FNDA:3,(anonymous_3) -FNDA:57,processTemplate -FNDA:45,(anonymous_5) -FNDA:36,(anonymous_6) -DA:2,1 -DA:7,1 -DA:8,54 -DA:9,3 -DA:10,3 -DA:13,51 -DA:14,51 -DA:15,3 -DA:18,48 -DA:19,51 -DA:20,51 -DA:22,3 -DA:26,45 -DA:27,3 -DA:29,42 -DA:30,6 -DA:34,36 -DA:35,36 -DA:36,3 -DA:38,36 -DA:39,3 -DA:40,3 -DA:45,36 -DA:46,36 -DA:48,36 -DA:49,36 -DA:50,27 -DA:51,12 -DA:52,15 -DA:53,3 -DA:55,12 -DA:57,27 -DA:58,27 -DA:59,27 -DA:60,27 -DA:61,27 -DA:63,1 -DA:64,57 -DA:66,57 -DA:67,15 -DA:68,45 -DA:70,45 -DA:71,21 -DA:75,42 -DA:77,42 -DA:78,0 -DA:81,42 -DA:86,42 -DA:87,3 -DA:91,42 -DA:92,21 -DA:93,21 -DA:94,21 -DA:96,42 -DA:98,42 -DA:99,9 -DA:100,33 -DA:101,9 -DA:102,3 -DA:104,9 -DA:106,24 -DA:107,3 -DA:109,24 -DA:114,36 -DA:115,36 -DA:119,36 -DA:120,27 -DA:121,12 -DA:122,6 -DA:123,3 -DA:125,3 -DA:128,12 -DA:129,15 -DA:130,12 -DA:133,36 -DA:135,36 -DA:136,3 -DA:139,36 -DA:140,0 -DA:142,36 -LF:80 -LH:78 -BRDA:8,1,0,3 -BRDA:8,1,1,51 -BRDA:14,2,0,3 -BRDA:14,2,1,48 -BRDA:26,3,0,3 -BRDA:26,3,1,42 -BRDA:26,4,0,45 -BRDA:26,4,1,18 -BRDA:29,5,0,6 -BRDA:29,5,1,36 -BRDA:29,6,0,42 -BRDA:29,6,1,15 -BRDA:29,6,2,12 -BRDA:35,7,0,3 -BRDA:35,7,1,33 -BRDA:35,8,0,36 -BRDA:35,8,1,3 -BRDA:38,9,0,3 -BRDA:38,9,1,33 -BRDA:49,10,0,27 -BRDA:49,10,1,9 -BRDA:50,11,0,12 -BRDA:50,11,1,15 -BRDA:52,12,0,3 -BRDA:52,12,1,12 -BRDA:66,13,0,15 -BRDA:66,13,1,42 -BRDA:70,14,0,21 -BRDA:70,14,1,24 -BRDA:70,15,0,45 -BRDA:70,15,1,24 -BRDA:71,16,0,21 -BRDA:71,16,1,21 -BRDA:77,17,0,0 -BRDA:77,17,1,42 -BRDA:77,18,0,42 -BRDA:77,18,1,0 -BRDA:86,19,0,3 -BRDA:86,19,1,39 -BRDA:91,20,0,21 -BRDA:91,20,1,21 -BRDA:93,21,0,21 -BRDA:93,21,1,0 -BRDA:98,22,0,9 -BRDA:98,22,1,33 -BRDA:100,23,0,9 -BRDA:100,23,1,24 -BRDA:101,24,0,3 -BRDA:101,24,1,6 -BRDA:101,25,0,9 -BRDA:101,25,1,9 -BRDA:101,25,2,9 -BRDA:106,26,0,3 -BRDA:106,26,1,21 -BRDA:106,27,0,24 -BRDA:106,27,1,9 -BRDA:106,27,2,9 -BRDA:119,28,0,27 -BRDA:119,28,1,9 -BRDA:120,29,0,12 -BRDA:120,29,1,15 -BRDA:121,30,0,6 -BRDA:121,30,1,6 -BRDA:121,31,0,12 -BRDA:121,31,1,12 -BRDA:121,31,2,12 -BRDA:122,32,0,3 -BRDA:122,32,1,3 -BRDA:129,33,0,12 -BRDA:129,33,1,3 -BRDA:135,34,0,3 -BRDA:135,34,1,33 -BRDA:139,35,0,0 -BRDA:139,35,1,36 -BRF:74 -BRH:70 -end_of_record diff --git a/node_modules/handlebars/dist/amd/handlebars.js b/node_modules/handlebars/dist/amd/handlebars.js index 779d757..3e2b5f9 100644 --- a/node_modules/handlebars/dist/amd/handlebars.js +++ b/node_modules/handlebars/dist/amd/handlebars.js @@ -1,43 +1,48 @@ -define( - ["./handlebars.runtime","./handlebars/compiler/ast","./handlebars/compiler/base","./handlebars/compiler/compiler","./handlebars/compiler/javascript-compiler","exports"], - function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) { - "use strict"; - /*globals Handlebars: true */ - var Handlebars = __dependency1__["default"]; +define(['exports', 'module', './handlebars.runtime', './handlebars/compiler/ast', './handlebars/compiler/base', './handlebars/compiler/compiler', './handlebars/compiler/javascript-compiler', './handlebars/compiler/visitor', './handlebars/no-conflict'], function (exports, module, _handlebarsRuntime, _handlebarsCompilerAst, _handlebarsCompilerBase, _handlebarsCompilerCompiler, _handlebarsCompilerJavascriptCompiler, _handlebarsCompilerVisitor, _handlebarsNoConflict) { + 'use strict'; - // Compiler imports - var AST = __dependency2__["default"]; - var Parser = __dependency3__.parser; - var parse = __dependency3__.parse; - var Compiler = __dependency4__.Compiler; - var compile = __dependency4__.compile; - var precompile = __dependency4__.precompile; - var JavaScriptCompiler = __dependency5__["default"]; + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; - var _create = Handlebars.create; - var create = function() { - var hb = _create(); + var _runtime = _interopRequire(_handlebarsRuntime); - hb.compile = function(input, options) { - return compile(input, options, hb); - }; - hb.precompile = function (input, options) { - return precompile(input, options, hb); - }; + // Compiler imports - hb.AST = AST; - hb.Compiler = Compiler; - hb.JavaScriptCompiler = JavaScriptCompiler; - hb.Parser = Parser; - hb.parse = parse; + var _AST = _interopRequire(_handlebarsCompilerAst); - return hb; + var _JavaScriptCompiler = _interopRequire(_handlebarsCompilerJavascriptCompiler); + + var _Visitor = _interopRequire(_handlebarsCompilerVisitor); + + var _noConflict = _interopRequire(_handlebarsNoConflict); + + var _create = _runtime.create; + function create() { + var hb = _create(); + + hb.compile = function (input, options) { + return _handlebarsCompilerCompiler.compile(input, options, hb); + }; + hb.precompile = function (input, options) { + return _handlebarsCompilerCompiler.precompile(input, options, hb); }; - Handlebars = create(); - Handlebars.create = create; + hb.AST = _AST; + hb.Compiler = _handlebarsCompilerCompiler.Compiler; + hb.JavaScriptCompiler = _JavaScriptCompiler; + hb.Parser = _handlebarsCompilerBase.parser; + hb.parse = _handlebarsCompilerBase.parse; - Handlebars['default'] = Handlebars; + return hb; + } - __exports__["default"] = Handlebars; - }); \ No newline at end of file + var inst = create(); + inst.create = create; + + _noConflict(inst); + + inst.Visitor = _Visitor; + + inst['default'] = inst; + + module.exports = inst; +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars.runtime.js b/node_modules/handlebars/dist/amd/handlebars.runtime.js index 222a074..73218be 100644 --- a/node_modules/handlebars/dist/amd/handlebars.runtime.js +++ b/node_modules/handlebars/dist/amd/handlebars.runtime.js @@ -1,39 +1,41 @@ -define( - ["./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","exports"], - function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) { - "use strict"; - /*globals Handlebars: true */ - var base = __dependency1__; +define(['exports', 'module', './handlebars/base', './handlebars/safe-string', './handlebars/exception', './handlebars/utils', './handlebars/runtime', './handlebars/no-conflict'], function (exports, module, _handlebarsBase, _handlebarsSafeString, _handlebarsException, _handlebarsUtils, _handlebarsRuntime, _handlebarsNoConflict) { + 'use strict'; - // Each of these augment the Handlebars object. No need to setup here. - // (This is done to easily share code between commonjs and browse envs) - var SafeString = __dependency2__["default"]; - var Exception = __dependency3__["default"]; - var Utils = __dependency4__; - var runtime = __dependency5__; + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; - // For compatibility and usage outside of module systems, make the Handlebars object a namespace - var create = function() { - var hb = new base.HandlebarsEnvironment(); + // Each of these augment the Handlebars object. No need to setup here. + // (This is done to easily share code between commonjs and browse envs) - Utils.extend(hb, base); - hb.SafeString = SafeString; - hb.Exception = Exception; - hb.Utils = Utils; - hb.escapeExpression = Utils.escapeExpression; + var _SafeString = _interopRequire(_handlebarsSafeString); - hb.VM = runtime; - hb.template = function(spec) { - return runtime.template(spec, hb); - }; + var _Exception = _interopRequire(_handlebarsException); - return hb; + var _noConflict = _interopRequire(_handlebarsNoConflict); + + // For compatibility and usage outside of module systems, make the Handlebars object a namespace + function create() { + var hb = new _handlebarsBase.HandlebarsEnvironment(); + + _handlebarsUtils.extend(hb, _handlebarsBase); + hb.SafeString = _SafeString; + hb.Exception = _Exception; + hb.Utils = _handlebarsUtils; + hb.escapeExpression = _handlebarsUtils.escapeExpression; + + hb.VM = _handlebarsRuntime; + hb.template = function (spec) { + return _handlebarsRuntime.template(spec, hb); }; - var Handlebars = create(); - Handlebars.create = create; + return hb; + } - Handlebars['default'] = Handlebars; + var inst = create(); + inst.create = create; - __exports__["default"] = Handlebars; - }); \ No newline at end of file + _noConflict(inst); + + inst['default'] = inst; + + module.exports = inst; +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/base.js b/node_modules/handlebars/dist/amd/handlebars/base.js index 403a895..4b7e4b3 100644 --- a/node_modules/handlebars/dist/amd/handlebars/base.js +++ b/node_modules/handlebars/dist/amd/handlebars/base.js @@ -1,235 +1,268 @@ -define( - ["./utils","./exception","exports"], - function(__dependency1__, __dependency2__, __exports__) { - "use strict"; - var Utils = __dependency1__; - var Exception = __dependency2__["default"]; +define(['exports', './utils', './exception'], function (exports, _utils, _exception) { + 'use strict'; - var VERSION = "2.0.0"; - __exports__.VERSION = VERSION;var COMPILER_REVISION = 6; - __exports__.COMPILER_REVISION = COMPILER_REVISION; - var REVISION_CHANGES = { - 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it - 2: '== 1.0.0-rc.3', - 3: '== 1.0.0-rc.4', - 4: '== 1.x.x', - 5: '== 2.0.0-alpha.x', - 6: '>= 2.0.0-beta.1' - }; - __exports__.REVISION_CHANGES = REVISION_CHANGES; - var isArray = Utils.isArray, - isFunction = Utils.isFunction, - toString = Utils.toString, - objectType = '[object Object]'; + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; - function HandlebarsEnvironment(helpers, partials) { - this.helpers = helpers || {}; - this.partials = partials || {}; + exports.__esModule = true; + exports.HandlebarsEnvironment = HandlebarsEnvironment; + exports.createFrame = createFrame; - registerDefaultHelpers(this); - } + var _Exception = _interopRequire(_exception); - __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = { - constructor: HandlebarsEnvironment, + var VERSION = '3.0.1'; + exports.VERSION = VERSION; + var COMPILER_REVISION = 6; - logger: logger, - log: log, + exports.COMPILER_REVISION = COMPILER_REVISION; + var REVISION_CHANGES = { + 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it + 2: '== 1.0.0-rc.3', + 3: '== 1.0.0-rc.4', + 4: '== 1.x.x', + 5: '== 2.0.0-alpha.x', + 6: '>= 2.0.0-beta.1' + }; - registerHelper: function(name, fn) { - if (toString.call(name) === objectType) { - if (fn) { throw new Exception('Arg not supported with multiple helpers'); } - Utils.extend(this.helpers, name); - } else { - this.helpers[name] = fn; + exports.REVISION_CHANGES = REVISION_CHANGES; + var isArray = _utils.isArray, + isFunction = _utils.isFunction, + toString = _utils.toString, + objectType = '[object Object]'; + + function HandlebarsEnvironment(helpers, partials) { + this.helpers = helpers || {}; + this.partials = partials || {}; + + registerDefaultHelpers(this); + } + + HandlebarsEnvironment.prototype = { + constructor: HandlebarsEnvironment, + + logger: logger, + log: log, + + registerHelper: function registerHelper(name, fn) { + if (toString.call(name) === objectType) { + if (fn) { + throw new _Exception('Arg not supported with multiple helpers'); } - }, - unregisterHelper: function(name) { - delete this.helpers[name]; - }, - - registerPartial: function(name, partial) { - if (toString.call(name) === objectType) { - Utils.extend(this.partials, name); - } else { - this.partials[name] = partial; - } - }, - unregisterPartial: function(name) { - delete this.partials[name]; + _utils.extend(this.helpers, name); + } else { + this.helpers[name] = fn; } - }; + }, + unregisterHelper: function unregisterHelper(name) { + delete this.helpers[name]; + }, - function registerDefaultHelpers(instance) { - instance.registerHelper('helperMissing', function(/* [args, ]options */) { - if(arguments.length === 1) { - // A missing field in a {{foo}} constuct. - return undefined; - } else { - // Someone is actually trying to call something, blow up. - throw new Exception("Missing helper: '" + arguments[arguments.length-1].name + "'"); + registerPartial: function registerPartial(name, partial) { + if (toString.call(name) === objectType) { + _utils.extend(this.partials, name); + } else { + if (typeof partial === 'undefined') { + throw new _Exception('Attempting to register a partial as undefined'); } - }); + this.partials[name] = partial; + } + }, + unregisterPartial: function unregisterPartial(name) { + delete this.partials[name]; + } + }; - instance.registerHelper('blockHelperMissing', function(context, options) { - var inverse = options.inverse, - fn = options.fn; + function registerDefaultHelpers(instance) { + instance.registerHelper('helperMissing', function () { + if (arguments.length === 1) { + // A missing field in a {{foo}} constuct. + return undefined; + } else { + // Someone is actually trying to call something, blow up. + throw new _Exception('Missing helper: "' + arguments[arguments.length - 1].name + '"'); + } + }); - if(context === true) { - return fn(this); - } else if(context === false || context == null) { + instance.registerHelper('blockHelperMissing', function (context, options) { + var inverse = options.inverse, + fn = options.fn; + + if (context === true) { + return fn(this); + } else if (context === false || context == null) { + return inverse(this); + } else if (isArray(context)) { + if (context.length > 0) { + if (options.ids) { + options.ids = [options.name]; + } + + return instance.helpers.each(context, options); + } else { return inverse(this); - } else if (isArray(context)) { - if(context.length > 0) { - if (options.ids) { - options.ids = [options.name]; - } - - return instance.helpers.each(context, options); - } else { - return inverse(this); - } - } else { - if (options.data && options.ids) { - var data = createFrame(options.data); - data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name); - options = {data: data}; - } - - return fn(context, options); } - }); - - instance.registerHelper('each', function(context, options) { - if (!options) { - throw new Exception('Must pass iterator to #each'); - } - - var fn = options.fn, inverse = options.inverse; - var i = 0, ret = "", data; - - var contextPath; + } else { if (options.data && options.ids) { - contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; + var data = createFrame(options.data); + data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name); + options = { data: data }; } - if (isFunction(context)) { context = context.call(this); } + return fn(context, options); + } + }); - if (options.data) { - data = createFrame(options.data); - } + instance.registerHelper('each', function (context, options) { + if (!options) { + throw new _Exception('Must pass iterator to #each'); + } - if(context && typeof context === 'object') { - if (isArray(context)) { - for(var j = context.length; i 0) { - throw new Exception("Invalid path: " + original, this); - } else if (part === "..") { - depth++; - depthString += '../'; - } else { - this.isScoped = true; - } - } else { - dig.push(part); - } - } - - this.original = original; - this.parts = dig; - this.string = dig.join('.'); - this.depth = depth; - this.idName = depthString + this.string; - - // an ID is simple if it only has one part, and that part is not - // `..` or `this`. - this.isSimple = parts.length === 1 && !this.isScoped && depth === 0; - - this.stringModeValue = this.string; - }, - - PartialNameNode: function(name, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "PARTIAL_NAME"; - this.name = name.original; - }, - - DataNode: function(id, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "DATA"; - this.id = id; - this.stringModeValue = id.stringModeValue; - this.idName = '@' + id.stringModeValue; - }, - - StringNode: function(string, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "STRING"; - this.original = - this.string = - this.stringModeValue = string; - }, - - NumberNode: function(number, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "NUMBER"; - this.original = - this.number = number; - this.stringModeValue = Number(number); - }, - - BooleanNode: function(bool, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "BOOLEAN"; - this.bool = bool; - this.stringModeValue = bool === "true"; - }, - - CommentNode: function(comment, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "comment"; - this.comment = comment; - - this.strip = { - inlineStandalone: true - }; + // an ID is simple if it only has one part, and that part is not + // `..` or `this`. + simpleId: function simpleId(path) { + return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth; } - }; + } + }; - - // Must be exported as an object rather than the root of the module as the jison lexer - // most modify the object to operate properly. - __exports__["default"] = AST; - }); \ No newline at end of file + // Must be exported as an object rather than the root of the module as the jison lexer + // must modify the object to operate properly. + module.exports = AST; +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/compiler/base.js b/node_modules/handlebars/dist/amd/handlebars/compiler/base.js index bc9158c..35473b1 100644 --- a/node_modules/handlebars/dist/amd/handlebars/compiler/base.js +++ b/node_modules/handlebars/dist/amd/handlebars/compiler/base.js @@ -1,25 +1,36 @@ -define( - ["./parser","./ast","./helpers","../utils","exports"], - function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) { - "use strict"; - var parser = __dependency1__["default"]; - var AST = __dependency2__["default"]; - var Helpers = __dependency3__; - var extend = __dependency4__.extend; +define(['exports', './parser', './ast', './whitespace-control', './helpers', '../utils'], function (exports, _parser, _ast, _whitespaceControl, _helpers, _utils) { + 'use strict'; - __exports__.parser = parser; + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; - var yy = {}; - extend(yy, Helpers, AST); + exports.__esModule = true; + exports.parse = parse; - function parse(input) { - // Just return if an already-compile AST was passed in. - if (input.constructor === AST.ProgramNode) { return input; } + var _parser2 = _interopRequire(_parser); - parser.yy = yy; + var _AST = _interopRequire(_ast); - return parser.parse(input); + var _WhitespaceControl = _interopRequire(_whitespaceControl); + + exports.parser = _parser2; + + var yy = {}; + _utils.extend(yy, _helpers, _AST); + + function parse(input, options) { + // Just return if an already-compiled AST was passed in. + if (input.type === 'Program') { + return input; } - __exports__.parse = parse; - }); \ No newline at end of file + _parser2.yy = yy; + + // Altering the shared object here, but this is ok as parser is a sync operation + yy.locInfo = function (locInfo) { + return new yy.SourceLocation(options && options.srcName, locInfo); + }; + + var strip = new _WhitespaceControl(); + return strip.accept(_parser2.parse(input)); + } +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js b/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js new file mode 100644 index 0000000..4baf088 --- /dev/null +++ b/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js @@ -0,0 +1,161 @@ +define(['exports', 'module', '../utils'], function (exports, module, _utils) { + 'use strict'; + + var SourceNode = undefined; + + try { + /* istanbul ignore next */ + if (typeof define !== 'function' || !define.amd) { + // We don't support this in AMD environments. For these environments, we asusme that + // they are running on the browser and thus have no need for the source-map library. + var SourceMap = require('source-map'); + SourceNode = SourceMap.SourceNode; + } + } catch (err) {} + + /* istanbul ignore if: tested but not covered in istanbul due to dist build */ + if (!SourceNode) { + SourceNode = function (line, column, srcFile, chunks) { + this.src = ''; + if (chunks) { + this.add(chunks); + } + }; + /* istanbul ignore next */ + SourceNode.prototype = { + add: function add(chunks) { + if (_utils.isArray(chunks)) { + chunks = chunks.join(''); + } + this.src += chunks; + }, + prepend: function prepend(chunks) { + if (_utils.isArray(chunks)) { + chunks = chunks.join(''); + } + this.src = chunks + this.src; + }, + toStringWithSourceMap: function toStringWithSourceMap() { + return { code: this.toString() }; + }, + toString: function toString() { + return this.src; + } + }; + } + + function castChunk(chunk, codeGen, loc) { + if (_utils.isArray(chunk)) { + var ret = []; + + for (var i = 0, len = chunk.length; i < len; i++) { + ret.push(codeGen.wrap(chunk[i], loc)); + } + return ret; + } else if (typeof chunk === 'boolean' || typeof chunk === 'number') { + // Handle primitives that the SourceNode will throw up on + return chunk + ''; + } + return chunk; + } + + function CodeGen(srcFile) { + this.srcFile = srcFile; + this.source = []; + } + + CodeGen.prototype = { + prepend: function prepend(source, loc) { + this.source.unshift(this.wrap(source, loc)); + }, + push: function push(source, loc) { + this.source.push(this.wrap(source, loc)); + }, + + merge: function merge() { + var source = this.empty(); + this.each(function (line) { + source.add([' ', line, '\n']); + }); + return source; + }, + + each: function each(iter) { + for (var i = 0, len = this.source.length; i < len; i++) { + iter(this.source[i]); + } + }, + + empty: function empty() { + var loc = arguments[0] === undefined ? this.currentLocation || { start: {} } : arguments[0]; + + return new SourceNode(loc.start.line, loc.start.column, this.srcFile); + }, + wrap: function wrap(chunk) { + var loc = arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1]; + + if (chunk instanceof SourceNode) { + return chunk; + } + + chunk = castChunk(chunk, this, loc); + + return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk); + }, + + functionCall: function functionCall(fn, type, params) { + params = this.generateList(params); + return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']); + }, + + quotedString: function quotedString(str) { + return '"' + (str + '').replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 + .replace(/\u2029/g, '\\u2029') + '"'; + }, + + objectLiteral: function objectLiteral(obj) { + var pairs = []; + + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + var value = castChunk(obj[key], this); + if (value !== 'undefined') { + pairs.push([this.quotedString(key), ':', value]); + } + } + } + + var ret = this.generateList(pairs); + ret.prepend('{'); + ret.add('}'); + return ret; + }, + + generateList: function generateList(entries, loc) { + var ret = this.empty(loc); + + for (var i = 0, len = entries.length; i < len; i++) { + if (i) { + ret.add(','); + } + + ret.add(castChunk(entries[i], this, loc)); + } + + return ret; + }, + + generateArray: function generateArray(entries, loc) { + var ret = this.generateList(entries, loc); + ret.prepend('['); + ret.add(']'); + + return ret; + } + }; + + module.exports = CodeGen; +}); +/*global define */ + +/* NOP */ \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js b/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js index 74c7b01..152e528 100644 --- a/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js +++ b/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js @@ -1,456 +1,523 @@ -define( - ["../exception","../utils","exports"], - function(__dependency1__, __dependency2__, __exports__) { - "use strict"; - var Exception = __dependency1__["default"]; - var isArray = __dependency2__.isArray; +define(['exports', '../exception', '../utils', './ast'], function (exports, _exception, _utils, _ast) { + 'use strict'; - var slice = [].slice; + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; - function Compiler() {} + exports.__esModule = true; + exports.Compiler = Compiler; + exports.precompile = precompile; + exports.compile = compile; - __exports__.Compiler = Compiler;// the foundHelper register will disambiguate helper lookup from finding a - // function in a context. This is necessary for mustache compatibility, which - // requires that context functions in blocks are evaluated by blockHelperMissing, - // and then proceed as if the resulting value was provided to blockHelperMissing. + var _Exception = _interopRequire(_exception); - Compiler.prototype = { - compiler: Compiler, + var _AST = _interopRequire(_ast); - equals: function(other) { - var len = this.opcodes.length; - if (other.opcodes.length !== len) { + var slice = [].slice; + + function Compiler() {} + + // the foundHelper register will disambiguate helper lookup from finding a + // function in a context. This is necessary for mustache compatibility, which + // requires that context functions in blocks are evaluated by blockHelperMissing, + // and then proceed as if the resulting value was provided to blockHelperMissing. + + Compiler.prototype = { + compiler: Compiler, + + equals: function equals(other) { + var len = this.opcodes.length; + if (other.opcodes.length !== len) { + return false; + } + + for (var i = 0; i < len; i++) { + var opcode = this.opcodes[i], + otherOpcode = other.opcodes[i]; + if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) { return false; } + } - for (var i = 0; i < len; i++) { - var opcode = this.opcodes[i], - otherOpcode = other.opcodes[i]; - if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) { - return false; + // We know that length is the same between the two arrays because they are directly tied + // to the opcode behavior above. + len = this.children.length; + for (var i = 0; i < len; i++) { + if (!this.children[i].equals(other.children[i])) { + return false; + } + } + + return true; + }, + + guid: 0, + + compile: function compile(program, options) { + this.sourceNode = []; + this.opcodes = []; + this.children = []; + this.options = options; + this.stringParams = options.stringParams; + this.trackIds = options.trackIds; + + options.blockParams = options.blockParams || []; + + // These changes will propagate to the other compiler components + var knownHelpers = options.knownHelpers; + options.knownHelpers = { + helperMissing: true, + blockHelperMissing: true, + each: true, + 'if': true, + unless: true, + 'with': true, + log: true, + lookup: true + }; + if (knownHelpers) { + for (var _name in knownHelpers) { + if (_name in knownHelpers) { + options.knownHelpers[_name] = knownHelpers[_name]; } } + } - // We know that length is the same between the two arrays because they are directly tied - // to the opcode behavior above. - len = this.children.length; - for (i = 0; i < len; i++) { - if (!this.children[i].equals(other.children[i])) { - return false; - } - } + return this.accept(program); + }, - return true; - }, + compileProgram: function compileProgram(program) { + var childCompiler = new this.compiler(), + // eslint-disable-line new-cap + result = childCompiler.compile(program, this.options), + guid = this.guid++; - guid: 0, + this.usePartial = this.usePartial || result.usePartial; - compile: function(program, options) { - this.opcodes = []; - this.children = []; - this.depths = {list: []}; - this.options = options; - this.stringParams = options.stringParams; - this.trackIds = options.trackIds; + this.children[guid] = result; + this.useDepths = this.useDepths || result.useDepths; - // These changes will propagate to the other compiler components - var knownHelpers = this.options.knownHelpers; - this.options.knownHelpers = { - 'helperMissing': true, - 'blockHelperMissing': true, - 'each': true, - 'if': true, - 'unless': true, - 'with': true, - 'log': true, - 'lookup': true - }; - if (knownHelpers) { - for (var name in knownHelpers) { - this.options.knownHelpers[name] = knownHelpers[name]; - } - } + return guid; + }, - return this.accept(program); - }, + accept: function accept(node) { + this.sourceNode.unshift(node); + var ret = this[node.type](node); + this.sourceNode.shift(); + return ret; + }, - accept: function(node) { - return this[node.type](node); - }, + Program: function Program(program) { + this.options.blockParams.unshift(program.blockParams); - program: function(program) { - var statements = program.statements; + var body = program.body, + bodyLength = body.length; + for (var i = 0; i < bodyLength; i++) { + this.accept(body[i]); + } - for(var i=0, l=statements.length; i 1) { + throw new _Exception('Unsupported number of partial arguments: ' + params.length, partial); + } else if (!params.length) { + params.push({ type: 'PathExpression', parts: [], depth: 0 }); + } - this.opcode('resolvePossibleLambda'); - }, + var partialName = partial.name.original, + isDynamic = partial.name.type === 'SubExpression'; + if (isDynamic) { + this.accept(partial.name); + } - helperSexpr: function(sexpr, program, inverse) { - var params = this.setupFullMustacheParams(sexpr, program, inverse), - id = sexpr.id, - name = id.parts[0]; + this.setupFullMustacheParams(partial, undefined, undefined, true); - if (this.options.knownHelpers[name]) { - this.opcode('invokeKnownHelper', params.length, name); - } else if (this.options.knownHelpersOnly) { - throw new Exception("You specified knownHelpersOnly, but used the unknown helper " + name, sexpr); - } else { - id.falsy = true; + var indent = partial.indent || ''; + if (this.options.preventIndent && indent) { + this.opcode('appendContent', indent); + indent = ''; + } - this.ID(id); - this.opcode('invokeHelper', params.length, id.original, id.isSimple); - } - }, + this.opcode('invokePartial', isDynamic, partialName, indent); + this.opcode('append'); + }, - sexpr: function(sexpr) { - var type = this.classifySexpr(sexpr); + MustacheStatement: function MustacheStatement(mustache) { + this.SubExpression(mustache); // eslint-disable-line new-cap - if (type === "simple") { - this.simpleSexpr(sexpr); - } else if (type === "helper") { - this.helperSexpr(sexpr); - } else { - this.ambiguousSexpr(sexpr); - } - }, + if (mustache.escaped && !this.options.noEscape) { + this.opcode('appendEscaped'); + } else { + this.opcode('append'); + } + }, - ID: function(id) { - this.addDepth(id.depth); - this.opcode('getContext', id.depth); + ContentStatement: function ContentStatement(content) { + if (content.value) { + this.opcode('appendContent', content.value); + } + }, - var name = id.parts[0]; - if (!name) { - // Context reference, i.e. `{{foo .}}` or `{{foo ..}}` - this.opcode('pushContext'); - } else { - this.opcode('lookupOnContext', id.parts, id.falsy, id.isScoped); - } - }, + CommentStatement: function CommentStatement() {}, - DATA: function(data) { + SubExpression: function SubExpression(sexpr) { + transformLiteralToPath(sexpr); + var type = this.classifySexpr(sexpr); + + if (type === 'simple') { + this.simpleSexpr(sexpr); + } else if (type === 'helper') { + this.helperSexpr(sexpr); + } else { + this.ambiguousSexpr(sexpr); + } + }, + ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) { + var path = sexpr.path, + name = path.parts[0], + isBlock = program != null || inverse != null; + + this.opcode('getContext', path.depth); + + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + + this.accept(path); + + this.opcode('invokeAmbiguous', name, isBlock); + }, + + simpleSexpr: function simpleSexpr(sexpr) { + this.accept(sexpr.path); + this.opcode('resolvePossibleLambda'); + }, + + helperSexpr: function helperSexpr(sexpr, program, inverse) { + var params = this.setupFullMustacheParams(sexpr, program, inverse), + path = sexpr.path, + name = path.parts[0]; + + if (this.options.knownHelpers[name]) { + this.opcode('invokeKnownHelper', params.length, name); + } else if (this.options.knownHelpersOnly) { + throw new _Exception('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr); + } else { + path.falsy = true; + + this.accept(path); + this.opcode('invokeHelper', params.length, path.original, _AST.helpers.simpleId(path)); + } + }, + + PathExpression: function PathExpression(path) { + this.addDepth(path.depth); + this.opcode('getContext', path.depth); + + var name = path.parts[0], + scoped = _AST.helpers.scopedId(path), + blockParamId = !path.depth && !scoped && this.blockParamIndex(name); + + if (blockParamId) { + this.opcode('lookupBlockParam', blockParamId, path.parts); + } else if (!name) { + // Context reference, i.e. `{{foo .}}` or `{{foo ..}}` + this.opcode('pushContext'); + } else if (path.data) { this.options.data = true; - this.opcode('lookupData', data.id.depth, data.id.parts); - }, + this.opcode('lookupData', path.depth, path.parts); + } else { + this.opcode('lookupOnContext', path.parts, path.falsy, scoped); + } + }, - STRING: function(string) { - this.opcode('pushString', string.string); - }, + StringLiteral: function StringLiteral(string) { + this.opcode('pushString', string.value); + }, - NUMBER: function(number) { - this.opcode('pushLiteral', number.number); - }, + NumberLiteral: function NumberLiteral(number) { + this.opcode('pushLiteral', number.value); + }, - BOOLEAN: function(bool) { - this.opcode('pushLiteral', bool.bool); - }, + BooleanLiteral: function BooleanLiteral(bool) { + this.opcode('pushLiteral', bool.value); + }, - comment: function() {}, + UndefinedLiteral: function UndefinedLiteral() { + this.opcode('pushLiteral', 'undefined'); + }, - // HELPERS - opcode: function(name) { - this.opcodes.push({ opcode: name, args: slice.call(arguments, 1) }); - }, + NullLiteral: function NullLiteral() { + this.opcode('pushLiteral', 'null'); + }, - addDepth: function(depth) { - if(depth === 0) { return; } + Hash: function Hash(hash) { + var pairs = hash.pairs, + i = 0, + l = pairs.length; - if(!this.depths[depth]) { - this.depths[depth] = true; - this.depths.list.push(depth); + this.opcode('pushHash'); + + for (; i < l; i++) { + this.pushParam(pairs[i].value); + } + while (i--) { + this.opcode('assignToHash', pairs[i].key); + } + this.opcode('popHash'); + }, + + // HELPERS + opcode: function opcode(name) { + this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc }); + }, + + addDepth: function addDepth(depth) { + if (!depth) { + return; + } + + this.useDepths = true; + }, + + classifySexpr: function classifySexpr(sexpr) { + var isSimple = _AST.helpers.simpleId(sexpr.path); + + var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]); + + // a mustache is an eligible helper if: + // * its id is simple (a single part, not `this` or `..`) + var isHelper = !isBlockParam && _AST.helpers.helperExpression(sexpr); + + // if a mustache is an eligible helper but not a definite + // helper, it is ambiguous, and will be resolved in a later + // pass or at runtime. + var isEligible = !isBlockParam && (isHelper || isSimple); + + // if ambiguous, we can possibly resolve the ambiguity now + // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc. + if (isEligible && !isHelper) { + var _name2 = sexpr.path.parts[0], + options = this.options; + + if (options.knownHelpers[_name2]) { + isHelper = true; + } else if (options.knownHelpersOnly) { + isEligible = false; } - }, + } - classifySexpr: function(sexpr) { - var isHelper = sexpr.isHelper; - var isEligible = sexpr.eligibleHelper; - var options = this.options; + if (isHelper) { + return 'helper'; + } else if (isEligible) { + return 'ambiguous'; + } else { + return 'simple'; + } + }, - // if ambiguous, we can possibly resolve the ambiguity now - // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc. - if (isEligible && !isHelper) { - var name = sexpr.id.parts[0]; + pushParams: function pushParams(params) { + for (var i = 0, l = params.length; i < l; i++) { + this.pushParam(params[i]); + } + }, - if (options.knownHelpers[name]) { - isHelper = true; - } else if (options.knownHelpersOnly) { - isEligible = false; - } + pushParam: function pushParam(val) { + var value = val.value != null ? val.value : val.original || ''; + + if (this.stringParams) { + if (value.replace) { + value = value.replace(/^(\.?\.\/)*/g, '').replace(/\//g, '.'); } - if (isHelper) { return "helper"; } - else if (isEligible) { return "ambiguous"; } - else { return "simple"; } - }, - - pushParams: function(params) { - for(var i=0, l=params.length; i= 0) { + return [depth, param]; + } } } - }); \ No newline at end of file + }; + + function precompile(input, options, env) { + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _Exception('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input); + } + + options = options || {}; + if (!('data' in options)) { + options.data = true; + } + if (options.compat) { + options.useDepths = true; + } + + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options); + return new env.JavaScriptCompiler().compile(environment, options); + } + + function compile(input, _x, env) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _Exception('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input); + } + + if (!('data' in options)) { + options.data = true; + } + if (options.compat) { + options.useDepths = true; + } + + var compiled = undefined; + + function compileInput() { + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options), + templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true); + return env.template(templateSpec); + } + + // Template is only compiled on first use and cached after that point. + function ret(context, execOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled.call(this, context, execOptions); + } + ret._setup = function (setupOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._setup(setupOptions); + }; + ret._child = function (i, data, blockParams, depths) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._child(i, data, blockParams, depths); + }; + return ret; + } + + function argEquals(a, b) { + if (a === b) { + return true; + } + + if (_utils.isArray(a) && _utils.isArray(b) && a.length === b.length) { + for (var i = 0; i < a.length; i++) { + if (!argEquals(a[i], b[i])) { + return false; + } + } + return true; + } + } + + function transformLiteralToPath(sexpr) { + if (!sexpr.path.parts) { + var literal = sexpr.path; + // Casting to string here to make false and 0 literal values play nicely with the rest + // of the system. + sexpr.path = new _AST.PathExpression(false, 0, [literal.original + ''], literal.original + '', literal.loc); + } + } +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/compiler/helpers.js b/node_modules/handlebars/dist/amd/handlebars/compiler/helpers.js index 8251c9f..97efc9e 100644 --- a/node_modules/handlebars/dist/amd/handlebars/compiler/helpers.js +++ b/node_modules/handlebars/dist/amd/handlebars/compiler/helpers.js @@ -1,191 +1,131 @@ -define( - ["../exception","exports"], - function(__dependency1__, __exports__) { - "use strict"; - var Exception = __dependency1__["default"]; +define(['exports', '../exception'], function (exports, _exception) { + 'use strict'; - function stripFlags(open, close) { - return { - left: open.charAt(2) === '~', - right: close.charAt(close.length-3) === '~' - }; + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + exports.__esModule = true; + exports.SourceLocation = SourceLocation; + exports.id = id; + exports.stripFlags = stripFlags; + exports.stripComment = stripComment; + exports.preparePath = preparePath; + exports.prepareMustache = prepareMustache; + exports.prepareRawBlock = prepareRawBlock; + exports.prepareBlock = prepareBlock; + + var _Exception = _interopRequire(_exception); + + function SourceLocation(source, locInfo) { + this.source = source; + this.start = { + line: locInfo.first_line, + column: locInfo.first_column + }; + this.end = { + line: locInfo.last_line, + column: locInfo.last_column + }; + } + + function id(token) { + if (/^\[.*\]$/.test(token)) { + return token.substr(1, token.length - 2); + } else { + return token; } + } - __exports__.stripFlags = stripFlags; - function prepareBlock(mustache, program, inverseAndProgram, close, inverted, locInfo) { - /*jshint -W040 */ - if (mustache.sexpr.id.original !== close.path.original) { - throw new Exception(mustache.sexpr.id.original + ' doesn\'t match ' + close.path.original, mustache); - } + function stripFlags(open, close) { + return { + open: open.charAt(2) === '~', + close: close.charAt(close.length - 3) === '~' + }; + } - var inverse = inverseAndProgram && inverseAndProgram.program; + function stripComment(comment) { + return comment.replace(/^\{\{~?\!-?-?/, '').replace(/-?-?~?\}\}$/, ''); + } - var strip = { - left: mustache.strip.left, - right: close.strip.right, + function preparePath(data, parts, locInfo) { + locInfo = this.locInfo(locInfo); - // Determine the standalone candiacy. Basically flag our content as being possibly standalone - // so our parent can determine if we actually are standalone - openStandalone: isNextWhitespace(program.statements), - closeStandalone: isPrevWhitespace((inverse || program).statements) - }; + var original = data ? '@' : '', + dig = [], + depth = 0, + depthString = ''; - if (mustache.strip.right) { - omitRight(program.statements, null, true); - } + for (var i = 0, l = parts.length; i < l; i++) { + var part = parts[i].part, - if (inverse) { - var inverseStrip = inverseAndProgram.strip; + // If we have [] syntax then we do not treat path references as operators, + // i.e. foo.[this] resolves to approximately context.foo['this'] + isLiteral = parts[i].original !== part; + original += (parts[i].separator || '') + part; - if (inverseStrip.left) { - omitLeft(program.statements, null, true); - } - if (inverseStrip.right) { - omitRight(inverse.statements, null, true); - } - if (close.strip.left) { - omitLeft(inverse.statements, null, true); - } - - // Find standalone else statments - if (isPrevWhitespace(program.statements) - && isNextWhitespace(inverse.statements)) { - - omitLeft(program.statements); - omitRight(inverse.statements); + if (!isLiteral && (part === '..' || part === '.' || part === 'this')) { + if (dig.length > 0) { + throw new _Exception('Invalid path: ' + original, { loc: locInfo }); + } else if (part === '..') { + depth++; + depthString += '../'; } } else { - if (close.strip.left) { - omitLeft(program.statements, null, true); - } - } - - if (inverted) { - return new this.BlockNode(mustache, inverse, program, strip, locInfo); - } else { - return new this.BlockNode(mustache, program, inverse, strip, locInfo); + dig.push(part); } } - __exports__.prepareBlock = prepareBlock; - function prepareProgram(statements, isRoot) { - for (var i = 0, l = statements.length; i < l; i++) { - var current = statements[i], - strip = current.strip; + return new this.PathExpression(data, depth, dig, original, locInfo); + } - if (!strip) { - continue; - } + function prepareMustache(path, params, hash, open, strip, locInfo) { + // Must use charAt to support IE pre-10 + var escapeFlag = open.charAt(3) || open.charAt(2), + escaped = escapeFlag !== '{' && escapeFlag !== '&'; - var _isPrevWhitespace = isPrevWhitespace(statements, i, isRoot, current.type === 'partial'), - _isNextWhitespace = isNextWhitespace(statements, i, isRoot), + return new this.MustacheStatement(path, params, hash, escaped, strip, this.locInfo(locInfo)); + } - openStandalone = strip.openStandalone && _isPrevWhitespace, - closeStandalone = strip.closeStandalone && _isNextWhitespace, - inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace; + function prepareRawBlock(openRawBlock, content, close, locInfo) { + if (openRawBlock.path.original !== close) { + var errorNode = { loc: openRawBlock.path.loc }; - if (strip.right) { - omitRight(statements, i, true); - } - if (strip.left) { - omitLeft(statements, i, true); - } - - if (inlineStandalone) { - omitRight(statements, i); - - if (omitLeft(statements, i)) { - // If we are on a standalone node, save the indent info for partials - if (current.type === 'partial') { - current.indent = (/([ \t]+$)/).exec(statements[i-1].original) ? RegExp.$1 : ''; - } - } - } - if (openStandalone) { - omitRight((current.program || current.inverse).statements); - - // Strip out the previous content node if it's whitespace only - omitLeft(statements, i); - } - if (closeStandalone) { - // Always strip the next node - omitRight(statements, i); - - omitLeft((current.inverse || current.program).statements); - } - } - - return statements; + throw new _Exception(openRawBlock.path.original + ' doesn\'t match ' + close, errorNode); } - __exports__.prepareProgram = prepareProgram;function isPrevWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = statements.length; - } + locInfo = this.locInfo(locInfo); + var program = new this.Program([content], null, {}, locInfo); - // Nodes that end with newlines are considered whitespace (but are special - // cased for strip operations) - var prev = statements[i-1], - sibling = statements[i-2]; - if (!prev) { - return isRoot; - } + return new this.BlockStatement(openRawBlock.path, openRawBlock.params, openRawBlock.hash, program, undefined, {}, {}, {}, locInfo); + } - if (prev.type === 'content') { - return (sibling || !isRoot ? (/\r?\n\s*?$/) : (/(^|\r?\n)\s*?$/)).test(prev.original); - } - } - function isNextWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = -1; - } + function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) { + // When we are chaining inverse calls, we will not have a close path + if (close && close.path && openBlock.path.original !== close.path.original) { + var errorNode = { loc: openBlock.path.loc }; - var next = statements[i+1], - sibling = statements[i+2]; - if (!next) { - return isRoot; - } - - if (next.type === 'content') { - return (sibling || !isRoot ? (/^\s*?\r?\n/) : (/^\s*?(\r?\n|$)/)).test(next.original); - } + throw new _Exception(openBlock.path.original + ' doesn\'t match ' + close.path.original, errorNode); } - // Marks the node to the right of the position as omitted. - // I.e. {{foo}}' ' will mark the ' ' node as omitted. - // - // If i is undefined, then the first child will be marked as such. - // - // If mulitple is truthy then all whitespace will be stripped out until non-whitespace - // content is met. - function omitRight(statements, i, multiple) { - var current = statements[i == null ? 0 : i + 1]; - if (!current || current.type !== 'content' || (!multiple && current.rightStripped)) { - return; + program.blockParams = openBlock.blockParams; + + var inverse = undefined, + inverseStrip = undefined; + + if (inverseAndProgram) { + if (inverseAndProgram.chain) { + inverseAndProgram.program.body[0].closeStrip = close.strip; } - var original = current.string; - current.string = current.string.replace(multiple ? (/^\s+/) : (/^[ \t]*\r?\n?/), ''); - current.rightStripped = current.string !== original; + inverseStrip = inverseAndProgram.strip; + inverse = inverseAndProgram.program; } - // Marks the node to the left of the position as omitted. - // I.e. ' '{{foo}} will mark the ' ' node as omitted. - // - // If i is undefined then the last child will be marked as such. - // - // If mulitple is truthy then all whitespace will be stripped out until non-whitespace - // content is met. - function omitLeft(statements, i, multiple) { - var current = statements[i == null ? statements.length - 1 : i - 1]; - if (!current || current.type !== 'content' || (!multiple && current.leftStripped)) { - return; - } - - // We omit the last node if it's whitespace only and not preceeded by a non-content node. - var original = current.string; - current.string = current.string.replace(multiple ? (/\s+$/) : (/[ \t]+$/), ''); - current.leftStripped = current.string !== original; - return current.leftStripped; + if (inverted) { + inverted = inverse; + inverse = program; + program = inverted; } - }); \ No newline at end of file + + return new this.BlockStatement(openBlock.path, openBlock.params, openBlock.hash, program, inverse, openBlock.strip, inverseStrip, close && close.strip, this.locInfo(locInfo)); + } +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js b/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js index 35cf820..befdf50 100644 --- a/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js +++ b/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js @@ -1,968 +1,1053 @@ -define( - ["../base","../exception","exports"], - function(__dependency1__, __dependency2__, __exports__) { - "use strict"; - var COMPILER_REVISION = __dependency1__.COMPILER_REVISION; - var REVISION_CHANGES = __dependency1__.REVISION_CHANGES; - var Exception = __dependency2__["default"]; +define(['exports', 'module', '../base', '../exception', '../utils', './code-gen'], function (exports, module, _base, _exception, _utils, _codeGen) { + 'use strict'; - function Literal(value) { - this.value = value; - } + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; - function JavaScriptCompiler() {} + var _Exception = _interopRequire(_exception); - JavaScriptCompiler.prototype = { - // PUBLIC API: You can override these methods in a subclass to provide - // alternative compiled forms for name lookup and buffering semantics - nameLookup: function(parent, name /* , type*/) { - if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) { - return parent + "." + name; - } else { - return parent + "['" + name + "']"; - } - }, - depthedLookup: function(name) { - this.aliases.lookup = 'this.lookup'; + var _CodeGen = _interopRequire(_codeGen); - return 'lookup(depths, "' + name + '")'; - }, + function Literal(value) { + this.value = value; + } - compilerInfo: function() { - var revision = COMPILER_REVISION, - versions = REVISION_CHANGES[revision]; - return [revision, versions]; - }, + function JavaScriptCompiler() {} - appendToBuffer: function(string) { - if (this.environment.isSimple) { - return "return " + string + ";"; - } else { - return { - appendToBuffer: true, - content: string, - toString: function() { return "buffer += " + string + ";"; } - }; - } - }, + JavaScriptCompiler.prototype = { + // PUBLIC API: You can override these methods in a subclass to provide + // alternative compiled forms for name lookup and buffering semantics + nameLookup: function nameLookup(parent, name /* , type*/) { + if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) { + return [parent, '.', name]; + } else { + return [parent, '[\'', name, '\']']; + } + }, + depthedLookup: function depthedLookup(name) { + return [this.aliasable('this.lookup'), '(depths, "', name, '")']; + }, - initializeBuffer: function() { - return this.quotedString(""); - }, + compilerInfo: function compilerInfo() { + var revision = _base.COMPILER_REVISION, + versions = _base.REVISION_CHANGES[revision]; + return [revision, versions]; + }, - namespace: "Handlebars", - // END PUBLIC API - - compile: function(environment, options, context, asObject) { - this.environment = environment; - this.options = options; - this.stringParams = this.options.stringParams; - this.trackIds = this.options.trackIds; - this.precompile = !asObject; - - this.name = this.environment.name; - this.isChild = !!context; - this.context = context || { - programs: [], - environments: [] - }; - - this.preamble(); - - this.stackSlot = 0; - this.stackVars = []; - this.aliases = {}; - this.registers = { list: [] }; - this.hashes = []; - this.compileStack = []; - this.inlineStack = []; - - this.compileChildren(environment, options); - - this.useDepths = this.useDepths || environment.depths.list.length || this.options.compat; - - var opcodes = environment.opcodes, - opcode, - i, - l; - - for (i = 0, l = opcodes.length; i < l; i++) { - opcode = opcodes[i]; - - this[opcode.opcode].apply(this, opcode.args); - } - - // Flush any trailing content that might be pending. - this.pushSource(''); - - /* istanbul ignore next */ - if (this.stackSlot || this.inlineStack.length || this.compileStack.length) { - throw new Exception('Compile completed with content left on stack'); - } - - var fn = this.createFunctionContext(asObject); - if (!this.isChild) { - var ret = { - compiler: this.compilerInfo(), - main: fn - }; - var programs = this.context.programs; - for (i = 0, l = programs.length; i < l; i++) { - if (programs[i]) { - ret[i] = programs[i]; - } - } - - if (this.environment.usePartial) { - ret.usePartial = true; - } - if (this.options.data) { - ret.useData = true; - } - if (this.useDepths) { - ret.useDepths = true; - } - if (this.options.compat) { - ret.compat = true; - } - - if (!asObject) { - ret.compiler = JSON.stringify(ret.compiler); - ret = this.objectLiteral(ret); - } - - return ret; - } else { - return fn; - } - }, - - preamble: function() { - // track the last context pushed into place to allow skipping the - // getContext opcode when it would be a noop - this.lastContext = 0; - this.source = []; - }, - - createFunctionContext: function(asObject) { - var varDeclarations = ''; - - var locals = this.stackVars.concat(this.registers.list); - if(locals.length > 0) { - varDeclarations += ", " + locals.join(", "); - } - - // Generate minimizer alias mappings - for (var alias in this.aliases) { - if (this.aliases.hasOwnProperty(alias)) { - varDeclarations += ', ' + alias + '=' + this.aliases[alias]; - } - } - - var params = ["depth0", "helpers", "partials", "data"]; - - if (this.useDepths) { - params.push('depths'); - } - - // Perform a second pass over the output to merge content when possible - var source = this.mergeSource(varDeclarations); - - if (asObject) { - params.push(source); - - return Function.apply(this, params); - } else { - return 'function(' + params.join(',') + ') {\n ' + source + '}'; - } - }, - mergeSource: function(varDeclarations) { - var source = '', - buffer, - appendOnly = !this.forceBuffer, - appendFirst; - - for (var i = 0, len = this.source.length; i < len; i++) { - var line = this.source[i]; - if (line.appendToBuffer) { - if (buffer) { - buffer = buffer + '\n + ' + line.content; - } else { - buffer = line.content; - } - } else { - if (buffer) { - if (!source) { - appendFirst = true; - source = buffer + ';\n '; - } else { - source += 'buffer += ' + buffer + ';\n '; - } - buffer = undefined; - } - source += line + '\n '; - - if (!this.environment.isSimple) { - appendOnly = false; - } - } - } - - if (appendOnly) { - if (buffer || !source) { - source += 'return ' + (buffer || '""') + ';\n'; - } - } else { - varDeclarations += ", buffer = " + (appendFirst ? '' : this.initializeBuffer()); - if (buffer) { - source += 'return buffer + ' + buffer + ';\n'; - } else { - source += 'return buffer;\n'; - } - } - - if (varDeclarations) { - source = 'var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n ') + source; - } + appendToBuffer: function appendToBuffer(source, location, explicit) { + // Force a source as this simplifies the merge logic. + if (!_utils.isArray(source)) { + source = [source]; + } + source = this.source.wrap(source, location); + if (this.environment.isSimple) { + return ['return ', source, ';']; + } else if (explicit) { + // This is a case where the buffer operation occurs as a child of another + // construct, generally braces. We have to explicitly output these buffer + // operations to ensure that the emitted code goes in the correct location. + return ['buffer += ', source, ';']; + } else { + source.appendToBuffer = true; return source; - }, + } + }, - // [blockValue] - // - // On stack, before: hash, inverse, program, value - // On stack, after: return value of blockHelperMissing - // - // The purpose of this opcode is to take a block of the form - // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and - // replace it on the stack with the result of properly - // invoking blockHelperMissing. - blockValue: function(name) { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; + initializeBuffer: function initializeBuffer() { + return this.quotedString(''); + }, + // END PUBLIC API - var params = [this.contextName(0)]; - this.setupParams(name, 0, params); + compile: function compile(environment, options, context, asObject) { + this.environment = environment; + this.options = options; + this.stringParams = this.options.stringParams; + this.trackIds = this.options.trackIds; + this.precompile = !asObject; - var blockName = this.popStack(); - params.splice(1, 0, blockName); + this.name = this.environment.name; + this.isChild = !!context; + this.context = context || { + programs: [], + environments: [] + }; - this.push('blockHelperMissing.call(' + params.join(', ') + ')'); - }, + this.preamble(); - // [ambiguousBlockValue] - // - // On stack, before: hash, inverse, program, value - // Compiler value, before: lastHelper=value of last found helper, if any - // On stack, after, if no lastHelper: same as [blockValue] - // On stack, after, if lastHelper: value - ambiguousBlockValue: function() { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; + this.stackSlot = 0; + this.stackVars = []; + this.aliases = {}; + this.registers = { list: [] }; + this.hashes = []; + this.compileStack = []; + this.inlineStack = []; + this.blockParams = []; - // We're being a bit cheeky and reusing the options value from the prior exec - var params = [this.contextName(0)]; - this.setupParams('', 0, params, true); + this.compileChildren(environment, options); - this.flushInline(); + this.useDepths = this.useDepths || environment.useDepths || this.options.compat; + this.useBlockParams = this.useBlockParams || environment.useBlockParams; - var current = this.topStack(); - params.splice(1, 0, current); + var opcodes = environment.opcodes, + opcode = undefined, + firstLoc = undefined, + i = undefined, + l = undefined; - this.pushSource("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }"); - }, + for (i = 0, l = opcodes.length; i < l; i++) { + opcode = opcodes[i]; - // [appendContent] - // - // On stack, before: ... - // On stack, after: ... - // - // Appends the string value of `content` to the current buffer - appendContent: function(content) { - if (this.pendingContent) { - content = this.pendingContent + content; - } + this.source.currentLocation = opcode.loc; + firstLoc = firstLoc || opcode.loc; + this[opcode.opcode].apply(this, opcode.args); + } - this.pendingContent = content; - }, + // Flush any trailing content that might be pending. + this.source.currentLocation = firstLoc; + this.pushSource(''); - // [append] - // - // On stack, before: value, ... - // On stack, after: ... - // - // Coerces `value` to a String and appends it to the current buffer. - // - // If `value` is truthy, or 0, it is coerced into a string and appended - // Otherwise, the empty string is appended - append: function() { - // Force anything that is inlined onto the stack so we don't have duplication - // when we examine local - this.flushInline(); - var local = this.popStack(); - this.pushSource('if (' + local + ' != null) { ' + this.appendToBuffer(local) + ' }'); - if (this.environment.isSimple) { - this.pushSource("else { " + this.appendToBuffer("''") + " }"); - } - }, + /* istanbul ignore next */ + if (this.stackSlot || this.inlineStack.length || this.compileStack.length) { + throw new _Exception('Compile completed with content left on stack'); + } - // [appendEscaped] - // - // On stack, before: value, ... - // On stack, after: ... - // - // Escape `value` and append it to the buffer - appendEscaped: function() { - this.aliases.escapeExpression = 'this.escapeExpression'; - - this.pushSource(this.appendToBuffer("escapeExpression(" + this.popStack() + ")")); - }, - - // [getContext] - // - // On stack, before: ... - // On stack, after: ... - // Compiler value, after: lastContext=depth - // - // Set the value of the `lastContext` compiler value to the depth - getContext: function(depth) { - this.lastContext = depth; - }, - - // [pushContext] - // - // On stack, before: ... - // On stack, after: currentContext, ... - // - // Pushes the value of the current context onto the stack. - pushContext: function() { - this.pushStackLiteral(this.contextName(this.lastContext)); - }, - - // [lookupOnContext] - // - // On stack, before: ... - // On stack, after: currentContext[name], ... - // - // Looks up the value of `name` on the current context and pushes - // it onto the stack. - lookupOnContext: function(parts, falsy, scoped) { - /*jshint -W083 */ - var i = 0, - len = parts.length; - - if (!scoped && this.options.compat && !this.lastContext) { - // The depthed query is expected to handle the undefined logic for the root level that - // is implemented below, so we evaluate that directly in compat mode - this.push(this.depthedLookup(parts[i++])); - } else { - this.pushContext(); - } - - for (; i < len; i++) { - this.replaceStack(function(current) { - var lookup = this.nameLookup(current, parts[i], 'context'); - // We want to ensure that zero and false are handled properly if the context (falsy flag) - // needs to have the special handling for these values. - if (!falsy) { - return ' != null ? ' + lookup + ' : ' + current; - } else { - // Otherwise we can use generic falsy handling - return ' && ' + lookup; - } - }); - } - }, - - // [lookupData] - // - // On stack, before: ... - // On stack, after: data, ... - // - // Push the data lookup operator - lookupData: function(depth, parts) { - /*jshint -W083 */ - if (!depth) { - this.pushStackLiteral('data'); - } else { - this.pushStackLiteral('this.data(data, ' + depth + ')'); - } - - var len = parts.length; - for (var i = 0; i < len; i++) { - this.replaceStack(function(current) { - return ' && ' + this.nameLookup(current, parts[i], 'data'); - }); - } - }, - - // [resolvePossibleLambda] - // - // On stack, before: value, ... - // On stack, after: resolved value, ... - // - // If the `value` is a lambda, replace it on the stack by - // the return value of the lambda - resolvePossibleLambda: function() { - this.aliases.lambda = 'this.lambda'; - - this.push('lambda(' + this.popStack() + ', ' + this.contextName(0) + ')'); - }, - - // [pushStringParam] - // - // On stack, before: ... - // On stack, after: string, currentContext, ... - // - // This opcode is designed for use in string mode, which - // provides the string value of a parameter along with its - // depth rather than resolving it immediately. - pushStringParam: function(string, type) { - this.pushContext(); - this.pushString(type); - - // If it's a subexpression, the string result - // will be pushed after this opcode. - if (type !== 'sexpr') { - if (typeof string === 'string') { - this.pushString(string); - } else { - this.pushStackLiteral(string); + var fn = this.createFunctionContext(asObject); + if (!this.isChild) { + var ret = { + compiler: this.compilerInfo(), + main: fn + }; + var programs = this.context.programs; + for (i = 0, l = programs.length; i < l; i++) { + if (programs[i]) { + ret[i] = programs[i]; } } - }, - emptyHash: function() { - this.pushStackLiteral('{}'); - - if (this.trackIds) { - this.push('{}'); // hashIds + if (this.environment.usePartial) { + ret.usePartial = true; } - if (this.stringParams) { - this.push('{}'); // hashContexts - this.push('{}'); // hashTypes - } - }, - pushHash: function() { - if (this.hash) { - this.hashes.push(this.hash); - } - this.hash = {values: [], types: [], contexts: [], ids: []}; - }, - popHash: function() { - var hash = this.hash; - this.hash = this.hashes.pop(); - - if (this.trackIds) { - this.push('{' + hash.ids.join(',') + '}'); - } - if (this.stringParams) { - this.push('{' + hash.contexts.join(',') + '}'); - this.push('{' + hash.types.join(',') + '}'); - } - - this.push('{\n ' + hash.values.join(',\n ') + '\n }'); - }, - - // [pushString] - // - // On stack, before: ... - // On stack, after: quotedString(string), ... - // - // Push a quoted version of `string` onto the stack - pushString: function(string) { - this.pushStackLiteral(this.quotedString(string)); - }, - - // [push] - // - // On stack, before: ... - // On stack, after: expr, ... - // - // Push an expression onto the stack - push: function(expr) { - this.inlineStack.push(expr); - return expr; - }, - - // [pushLiteral] - // - // On stack, before: ... - // On stack, after: value, ... - // - // Pushes a value onto the stack. This operation prevents - // the compiler from creating a temporary variable to hold - // it. - pushLiteral: function(value) { - this.pushStackLiteral(value); - }, - - // [pushProgram] - // - // On stack, before: ... - // On stack, after: program(guid), ... - // - // Push a program expression onto the stack. This takes - // a compile-time guid and converts it into a runtime-accessible - // expression. - pushProgram: function(guid) { - if (guid != null) { - this.pushStackLiteral(this.programExpression(guid)); - } else { - this.pushStackLiteral(null); - } - }, - - // [invokeHelper] - // - // On stack, before: hash, inverse, program, params..., ... - // On stack, after: result of helper invocation - // - // Pops off the helper's parameters, invokes the helper, - // and pushes the helper's return value onto the stack. - // - // If the helper is not found, `helperMissing` is called. - invokeHelper: function(paramSize, name, isSimple) { - this.aliases.helperMissing = 'helpers.helperMissing'; - - var nonHelper = this.popStack(); - var helper = this.setupHelper(paramSize, name); - - var lookup = (isSimple ? helper.name + ' || ' : '') + nonHelper + ' || helperMissing'; - this.push('((' + lookup + ').call(' + helper.callParams + '))'); - }, - - // [invokeKnownHelper] - // - // On stack, before: hash, inverse, program, params..., ... - // On stack, after: result of helper invocation - // - // This operation is used when the helper is known to exist, - // so a `helperMissing` fallback is not required. - invokeKnownHelper: function(paramSize, name) { - var helper = this.setupHelper(paramSize, name); - this.push(helper.name + ".call(" + helper.callParams + ")"); - }, - - // [invokeAmbiguous] - // - // On stack, before: hash, inverse, program, params..., ... - // On stack, after: result of disambiguation - // - // This operation is used when an expression like `{{foo}}` - // is provided, but we don't know at compile-time whether it - // is a helper or a path. - // - // This operation emits more code than the other options, - // and can be avoided by passing the `knownHelpers` and - // `knownHelpersOnly` flags at compile-time. - invokeAmbiguous: function(name, helperCall) { - this.aliases.functionType = '"function"'; - this.aliases.helperMissing = 'helpers.helperMissing'; - this.useRegister('helper'); - - var nonHelper = this.popStack(); - - this.emptyHash(); - var helper = this.setupHelper(0, name, helperCall); - - var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); - - this.push( - '((helper = (helper = ' + helperName + ' || ' + nonHelper + ') != null ? helper : helperMissing' - + (helper.paramsInit ? '),(' + helper.paramsInit : '') + '),' - + '(typeof helper === functionType ? helper.call(' + helper.callParams + ') : helper))'); - }, - - // [invokePartial] - // - // On stack, before: context, ... - // On stack after: result of partial invocation - // - // This operation pops off a context, invokes a partial with that context, - // and pushes the result of the invocation back. - invokePartial: function(name, indent) { - var params = [this.nameLookup('partials', name, 'partial'), "'" + indent + "'", "'" + name + "'", this.popStack(), this.popStack(), "helpers", "partials"]; - if (this.options.data) { - params.push("data"); - } else if (this.options.compat) { - params.push('undefined'); + ret.useData = true; + } + if (this.useDepths) { + ret.useDepths = true; + } + if (this.useBlockParams) { + ret.useBlockParams = true; } if (this.options.compat) { - params.push('depths'); + ret.compat = true; } - this.push("this.invokePartial(" + params.join(", ") + ")"); - }, + if (!asObject) { + ret.compiler = JSON.stringify(ret.compiler); - // [assignToHash] - // - // On stack, before: value, ..., hash, ... - // On stack, after: ..., hash, ... - // - // Pops a value off the stack and assigns it to the current hash - assignToHash: function(key) { - var value = this.popStack(), - context, - type, - id; + this.source.currentLocation = { start: { line: 1, column: 0 } }; + ret = this.objectLiteral(ret); - if (this.trackIds) { - id = this.popStack(); - } - if (this.stringParams) { - type = this.popStack(); - context = this.popStack(); - } - - var hash = this.hash; - if (context) { - hash.contexts.push("'" + key + "': " + context); - } - if (type) { - hash.types.push("'" + key + "': " + type); - } - if (id) { - hash.ids.push("'" + key + "': " + id); - } - hash.values.push("'" + key + "': (" + value + ")"); - }, - - pushId: function(type, name) { - if (type === 'ID' || type === 'DATA') { - this.pushString(name); - } else if (type === 'sexpr') { - this.pushStackLiteral('true'); - } else { - this.pushStackLiteral('null'); - } - }, - - // HELPERS - - compiler: JavaScriptCompiler, - - compileChildren: function(environment, options) { - var children = environment.children, child, compiler; - - for(var i=0, l=children.length; i this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); } - return this.topStackName(); - }, - topStackName: function() { - return "stack" + this.stackSlot; - }, - flushInline: function() { - var inlineStack = this.inlineStack; - if (inlineStack.length) { - this.inlineStack = []; - for (var i = 0, len = inlineStack.length; i < len; i++) { - var entry = inlineStack[i]; - if (entry instanceof Literal) { - this.compileStack.push(entry); - } else { - this.pushStack(entry); - } - } - } - }, - isInline: function() { - return this.inlineStack.length; - }, + createFunctionContext: function createFunctionContext(asObject) { + var varDeclarations = ''; - popStack: function(wrapped) { - var inline = this.isInline(), - item = (inline ? this.inlineStack : this.compileStack).pop(); + var locals = this.stackVars.concat(this.registers.list); + if (locals.length > 0) { + varDeclarations += ', ' + locals.join(', '); + } - if (!wrapped && (item instanceof Literal)) { - return item.value; - } else { - if (!inline) { - /* istanbul ignore next */ - if (!this.stackSlot) { - throw new Exception('Invalid stack pop'); - } - this.stackSlot--; - } - return item; - } - }, + // Generate minimizer alias mappings + // + // When using true SourceNodes, this will update all references to the given alias + // as the source nodes are reused in situ. For the non-source node compilation mode, + // aliases will not be used, but this case is already being run on the client and + // we aren't concern about minimizing the template size. + var aliasCount = 0; + for (var alias in this.aliases) { + // eslint-disable-line guard-for-in + var node = this.aliases[alias]; - topStack: function() { - var stack = (this.isInline() ? this.inlineStack : this.compileStack), - item = stack[stack.length - 1]; - - if (item instanceof Literal) { - return item.value; - } else { - return item; - } - }, - - contextName: function(context) { - if (this.useDepths && context) { - return 'depths[' + context + ']'; - } else { - return 'depth' + context; - } - }, - - quotedString: function(str) { - return '"' + str - .replace(/\\/g, '\\\\') - .replace(/"/g, '\\"') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 - .replace(/\u2029/g, '\\u2029') + '"'; - }, - - objectLiteral: function(obj) { - var pairs = []; - - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - pairs.push(this.quotedString(key) + ':' + obj[key]); - } - } - - return '{' + pairs.join(',') + '}'; - }, - - setupHelper: function(paramSize, name, blockHelper) { - var params = [], - paramsInit = this.setupParams(name, paramSize, params, blockHelper); - var foundHelper = this.nameLookup('helpers', name, 'helper'); - - return { - params: params, - paramsInit: paramsInit, - name: foundHelper, - callParams: [this.contextName(0)].concat(params).join(", ") - }; - }, - - setupOptions: function(helper, paramSize, params) { - var options = {}, contexts = [], types = [], ids = [], param, inverse, program; - - options.name = this.quotedString(helper); - options.hash = this.popStack(); - - if (this.trackIds) { - options.hashIds = this.popStack(); - } - if (this.stringParams) { - options.hashTypes = this.popStack(); - options.hashContexts = this.popStack(); - } - - inverse = this.popStack(); - program = this.popStack(); - - // Avoid setting fn and inverse if neither are set. This allows - // helpers to do a check for `if (options.fn)` - if (program || inverse) { - if (!program) { - program = 'this.noop'; - } - - if (!inverse) { - inverse = 'this.noop'; - } - - options.fn = program; - options.inverse = inverse; - } - - // The parameters go on to the stack in order (making sure that they are evaluated in order) - // so we need to pop them off the stack in reverse order - var i = paramSize; - while (i--) { - param = this.popStack(); - params[i] = param; - - if (this.trackIds) { - ids[i] = this.popStack(); - } - if (this.stringParams) { - types[i] = this.popStack(); - contexts[i] = this.popStack(); - } - } - - if (this.trackIds) { - options.ids = "[" + ids.join(",") + "]"; - } - if (this.stringParams) { - options.types = "[" + types.join(",") + "]"; - options.contexts = "[" + contexts.join(",") + "]"; - } - - if (this.options.data) { - options.data = "data"; - } - - return options; - }, - - // the params and contexts arguments are passed in arrays - // to fill in - setupParams: function(helperName, paramSize, params, useRegister) { - var options = this.objectLiteral(this.setupOptions(helperName, paramSize, params)); - - if (useRegister) { - this.useRegister('options'); - params.push('options'); - return 'options=' + options; - } else { - params.push(options); - return ''; + if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) { + varDeclarations += ', alias' + ++aliasCount + '=' + alias; + node.children[0] = 'alias' + aliasCount; } } - }; - var reservedWords = ( - "break else new var" + - " case finally return void" + - " catch for switch while" + - " continue function this with" + - " default if throw" + - " delete in try" + - " do instanceof typeof" + - " abstract enum int short" + - " boolean export interface static" + - " byte extends long super" + - " char final native synchronized" + - " class float package throws" + - " const goto private transient" + - " debugger implements protected volatile" + - " double import public let yield" - ).split(" "); + var params = ['depth0', 'helpers', 'partials', 'data']; + + if (this.useBlockParams || this.useDepths) { + params.push('blockParams'); + } + if (this.useDepths) { + params.push('depths'); + } + + // Perform a second pass over the output to merge content when possible + var source = this.mergeSource(varDeclarations); + + if (asObject) { + params.push(source); + + return Function.apply(this, params); + } else { + return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']); + } + }, + mergeSource: function mergeSource(varDeclarations) { + var isSimple = this.environment.isSimple, + appendOnly = !this.forceBuffer, + appendFirst = undefined, + sourceSeen = undefined, + bufferStart = undefined, + bufferEnd = undefined; + this.source.each(function (line) { + if (line.appendToBuffer) { + if (bufferStart) { + line.prepend(' + '); + } else { + bufferStart = line; + } + bufferEnd = line; + } else { + if (bufferStart) { + if (!sourceSeen) { + appendFirst = true; + } else { + bufferStart.prepend('buffer += '); + } + bufferEnd.add(';'); + bufferStart = bufferEnd = undefined; + } + + sourceSeen = true; + if (!isSimple) { + appendOnly = false; + } + } + }); + + if (appendOnly) { + if (bufferStart) { + bufferStart.prepend('return '); + bufferEnd.add(';'); + } else if (!sourceSeen) { + this.source.push('return "";'); + } + } else { + varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer()); + + if (bufferStart) { + bufferStart.prepend('return buffer + '); + bufferEnd.add(';'); + } else { + this.source.push('return buffer;'); + } + } + + if (varDeclarations) { + this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n')); + } + + return this.source.merge(); + }, + + // [blockValue] + // + // On stack, before: hash, inverse, program, value + // On stack, after: return value of blockHelperMissing + // + // The purpose of this opcode is to take a block of the form + // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and + // replace it on the stack with the result of properly + // invoking blockHelperMissing. + blockValue: function blockValue(name) { + var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs(name, 0, params); + + var blockName = this.popStack(); + params.splice(1, 0, blockName); + + this.push(this.source.functionCall(blockHelperMissing, 'call', params)); + }, + + // [ambiguousBlockValue] + // + // On stack, before: hash, inverse, program, value + // Compiler value, before: lastHelper=value of last found helper, if any + // On stack, after, if no lastHelper: same as [blockValue] + // On stack, after, if lastHelper: value + ambiguousBlockValue: function ambiguousBlockValue() { + // We're being a bit cheeky and reusing the options value from the prior exec + var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs('', 0, params, true); + + this.flushInline(); + + var current = this.topStack(); + params.splice(1, 0, current); + + this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']); + }, + + // [appendContent] + // + // On stack, before: ... + // On stack, after: ... + // + // Appends the string value of `content` to the current buffer + appendContent: function appendContent(content) { + if (this.pendingContent) { + content = this.pendingContent + content; + } else { + this.pendingLocation = this.source.currentLocation; + } + + this.pendingContent = content; + }, + + // [append] + // + // On stack, before: value, ... + // On stack, after: ... + // + // Coerces `value` to a String and appends it to the current buffer. + // + // If `value` is truthy, or 0, it is coerced into a string and appended + // Otherwise, the empty string is appended + append: function append() { + if (this.isInline()) { + this.replaceStack(function (current) { + return [' != null ? ', current, ' : ""']; + }); + + this.pushSource(this.appendToBuffer(this.popStack())); + } else { + var local = this.popStack(); + this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']); + if (this.environment.isSimple) { + this.pushSource(['else { ', this.appendToBuffer('\'\'', undefined, true), ' }']); + } + } + }, + + // [appendEscaped] + // + // On stack, before: value, ... + // On stack, after: ... + // + // Escape `value` and append it to the buffer + appendEscaped: function appendEscaped() { + this.pushSource(this.appendToBuffer([this.aliasable('this.escapeExpression'), '(', this.popStack(), ')'])); + }, + + // [getContext] + // + // On stack, before: ... + // On stack, after: ... + // Compiler value, after: lastContext=depth + // + // Set the value of the `lastContext` compiler value to the depth + getContext: function getContext(depth) { + this.lastContext = depth; + }, + + // [pushContext] + // + // On stack, before: ... + // On stack, after: currentContext, ... + // + // Pushes the value of the current context onto the stack. + pushContext: function pushContext() { + this.pushStackLiteral(this.contextName(this.lastContext)); + }, + + // [lookupOnContext] + // + // On stack, before: ... + // On stack, after: currentContext[name], ... + // + // Looks up the value of `name` on the current context and pushes + // it onto the stack. + lookupOnContext: function lookupOnContext(parts, falsy, scoped) { + var i = 0; + + if (!scoped && this.options.compat && !this.lastContext) { + // The depthed query is expected to handle the undefined logic for the root level that + // is implemented below, so we evaluate that directly in compat mode + this.push(this.depthedLookup(parts[i++])); + } else { + this.pushContext(); + } + + this.resolvePath('context', parts, i, falsy); + }, + + // [lookupBlockParam] + // + // On stack, before: ... + // On stack, after: blockParam[name], ... + // + // Looks up the value of `parts` on the given block param and pushes + // it onto the stack. + lookupBlockParam: function lookupBlockParam(blockParamId, parts) { + this.useBlockParams = true; + + this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']); + this.resolvePath('context', parts, 1); + }, + + // [lookupData] + // + // On stack, before: ... + // On stack, after: data, ... + // + // Push the data lookup operator + lookupData: function lookupData(depth, parts) { + if (!depth) { + this.pushStackLiteral('data'); + } else { + this.pushStackLiteral('this.data(data, ' + depth + ')'); + } + + this.resolvePath('data', parts, 0, true); + }, + + resolvePath: function resolvePath(type, parts, i, falsy) { + var _this = this; + + if (this.options.strict || this.options.assumeObjects) { + this.push(strictLookup(this.options.strict, this, parts, type)); + return; + } + + var len = parts.length; + for (; i < len; i++) { + /*eslint-disable no-loop-func */ + this.replaceStack(function (current) { + var lookup = _this.nameLookup(current, parts[i], type); + // We want to ensure that zero and false are handled properly if the context (falsy flag) + // needs to have the special handling for these values. + if (!falsy) { + return [' != null ? ', lookup, ' : ', current]; + } else { + // Otherwise we can use generic falsy handling + return [' && ', lookup]; + } + }); + /*eslint-enable no-loop-func */ + } + }, + + // [resolvePossibleLambda] + // + // On stack, before: value, ... + // On stack, after: resolved value, ... + // + // If the `value` is a lambda, replace it on the stack by + // the return value of the lambda + resolvePossibleLambda: function resolvePossibleLambda() { + this.push([this.aliasable('this.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']); + }, + + // [pushStringParam] + // + // On stack, before: ... + // On stack, after: string, currentContext, ... + // + // This opcode is designed for use in string mode, which + // provides the string value of a parameter along with its + // depth rather than resolving it immediately. + pushStringParam: function pushStringParam(string, type) { + this.pushContext(); + this.pushString(type); + + // If it's a subexpression, the string result + // will be pushed after this opcode. + if (type !== 'SubExpression') { + if (typeof string === 'string') { + this.pushString(string); + } else { + this.pushStackLiteral(string); + } + } + }, + + emptyHash: function emptyHash(omitEmpty) { + if (this.trackIds) { + this.push('{}'); // hashIds + } + if (this.stringParams) { + this.push('{}'); // hashContexts + this.push('{}'); // hashTypes + } + this.pushStackLiteral(omitEmpty ? 'undefined' : '{}'); + }, + pushHash: function pushHash() { + if (this.hash) { + this.hashes.push(this.hash); + } + this.hash = { values: [], types: [], contexts: [], ids: [] }; + }, + popHash: function popHash() { + var hash = this.hash; + this.hash = this.hashes.pop(); + + if (this.trackIds) { + this.push(this.objectLiteral(hash.ids)); + } + if (this.stringParams) { + this.push(this.objectLiteral(hash.contexts)); + this.push(this.objectLiteral(hash.types)); + } + + this.push(this.objectLiteral(hash.values)); + }, + + // [pushString] + // + // On stack, before: ... + // On stack, after: quotedString(string), ... + // + // Push a quoted version of `string` onto the stack + pushString: function pushString(string) { + this.pushStackLiteral(this.quotedString(string)); + }, + + // [pushLiteral] + // + // On stack, before: ... + // On stack, after: value, ... + // + // Pushes a value onto the stack. This operation prevents + // the compiler from creating a temporary variable to hold + // it. + pushLiteral: function pushLiteral(value) { + this.pushStackLiteral(value); + }, + + // [pushProgram] + // + // On stack, before: ... + // On stack, after: program(guid), ... + // + // Push a program expression onto the stack. This takes + // a compile-time guid and converts it into a runtime-accessible + // expression. + pushProgram: function pushProgram(guid) { + if (guid != null) { + this.pushStackLiteral(this.programExpression(guid)); + } else { + this.pushStackLiteral(null); + } + }, + + // [invokeHelper] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of helper invocation + // + // Pops off the helper's parameters, invokes the helper, + // and pushes the helper's return value onto the stack. + // + // If the helper is not found, `helperMissing` is called. + invokeHelper: function invokeHelper(paramSize, name, isSimple) { + var nonHelper = this.popStack(), + helper = this.setupHelper(paramSize, name), + simple = isSimple ? [helper.name, ' || '] : ''; + + var lookup = ['('].concat(simple, nonHelper); + if (!this.options.strict) { + lookup.push(' || ', this.aliasable('helpers.helperMissing')); + } + lookup.push(')'); + + this.push(this.source.functionCall(lookup, 'call', helper.callParams)); + }, + + // [invokeKnownHelper] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of helper invocation + // + // This operation is used when the helper is known to exist, + // so a `helperMissing` fallback is not required. + invokeKnownHelper: function invokeKnownHelper(paramSize, name) { + var helper = this.setupHelper(paramSize, name); + this.push(this.source.functionCall(helper.name, 'call', helper.callParams)); + }, + + // [invokeAmbiguous] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of disambiguation + // + // This operation is used when an expression like `{{foo}}` + // is provided, but we don't know at compile-time whether it + // is a helper or a path. + // + // This operation emits more code than the other options, + // and can be avoided by passing the `knownHelpers` and + // `knownHelpersOnly` flags at compile-time. + invokeAmbiguous: function invokeAmbiguous(name, helperCall) { + this.useRegister('helper'); + + var nonHelper = this.popStack(); + + this.emptyHash(); + var helper = this.setupHelper(0, name, helperCall); + + var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); + + var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')']; + if (!this.options.strict) { + lookup[0] = '(helper = '; + lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing')); + } + + this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']); + }, + + // [invokePartial] + // + // On stack, before: context, ... + // On stack after: result of partial invocation + // + // This operation pops off a context, invokes a partial with that context, + // and pushes the result of the invocation back. + invokePartial: function invokePartial(isDynamic, name, indent) { + var params = [], + options = this.setupParams(name, 1, params, false); + + if (isDynamic) { + name = this.popStack(); + delete options.name; + } + + if (indent) { + options.indent = JSON.stringify(indent); + } + options.helpers = 'helpers'; + options.partials = 'partials'; + + if (!isDynamic) { + params.unshift(this.nameLookup('partials', name, 'partial')); + } else { + params.unshift(name); + } + + if (this.options.compat) { + options.depths = 'depths'; + } + options = this.objectLiteral(options); + params.push(options); + + this.push(this.source.functionCall('this.invokePartial', '', params)); + }, + + // [assignToHash] + // + // On stack, before: value, ..., hash, ... + // On stack, after: ..., hash, ... + // + // Pops a value off the stack and assigns it to the current hash + assignToHash: function assignToHash(key) { + var value = this.popStack(), + context = undefined, + type = undefined, + id = undefined; + + if (this.trackIds) { + id = this.popStack(); + } + if (this.stringParams) { + type = this.popStack(); + context = this.popStack(); + } + + var hash = this.hash; + if (context) { + hash.contexts[key] = context; + } + if (type) { + hash.types[key] = type; + } + if (id) { + hash.ids[key] = id; + } + hash.values[key] = value; + }, + + pushId: function pushId(type, name, child) { + if (type === 'BlockParam') { + this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : '')); + } else if (type === 'PathExpression') { + this.pushString(name); + } else if (type === 'SubExpression') { + this.pushStackLiteral('true'); + } else { + this.pushStackLiteral('null'); + } + }, + + // HELPERS + + compiler: JavaScriptCompiler, + + compileChildren: function compileChildren(environment, options) { + var children = environment.children, + child = undefined, + compiler = undefined; + + for (var i = 0, l = children.length; i < l; i++) { + child = children[i]; + compiler = new this.compiler(); // eslint-disable-line new-cap + + var index = this.matchExistingProgram(child); + + if (index == null) { + this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children + index = this.context.programs.length; + child.index = index; + child.name = 'program' + index; + this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile); + this.context.environments[index] = child; + + this.useDepths = this.useDepths || compiler.useDepths; + this.useBlockParams = this.useBlockParams || compiler.useBlockParams; + } else { + child.index = index; + child.name = 'program' + index; + + this.useDepths = this.useDepths || child.useDepths; + this.useBlockParams = this.useBlockParams || child.useBlockParams; + } + } + }, + matchExistingProgram: function matchExistingProgram(child) { + for (var i = 0, len = this.context.environments.length; i < len; i++) { + var environment = this.context.environments[i]; + if (environment && environment.equals(child)) { + return i; + } + } + }, + + programExpression: function programExpression(guid) { + var child = this.environment.children[guid], + programParams = [child.index, 'data', child.blockParams]; + + if (this.useBlockParams || this.useDepths) { + programParams.push('blockParams'); + } + if (this.useDepths) { + programParams.push('depths'); + } + + return 'this.program(' + programParams.join(', ') + ')'; + }, + + useRegister: function useRegister(name) { + if (!this.registers[name]) { + this.registers[name] = true; + this.registers.list.push(name); + } + }, + + push: function push(expr) { + if (!(expr instanceof Literal)) { + expr = this.source.wrap(expr); + } + + this.inlineStack.push(expr); + return expr; + }, + + pushStackLiteral: function pushStackLiteral(item) { + this.push(new Literal(item)); + }, + + pushSource: function pushSource(source) { + if (this.pendingContent) { + this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation)); + this.pendingContent = undefined; + } + + if (source) { + this.source.push(source); + } + }, + + replaceStack: function replaceStack(callback) { + var prefix = ['('], + stack = undefined, + createdStack = undefined, + usedLiteral = undefined; + + /* istanbul ignore next */ + if (!this.isInline()) { + throw new _Exception('replaceStack on non-inline'); + } + + // We want to merge the inline statement into the replacement statement via ',' + var top = this.popStack(true); + + if (top instanceof Literal) { + // Literals do not need to be inlined + stack = [top.value]; + prefix = ['(', stack]; + usedLiteral = true; + } else { + // Get or create the current stack name for use by the inline + createdStack = true; + var _name = this.incrStack(); + + prefix = ['((', this.push(_name), ' = ', top, ')']; + stack = this.topStack(); + } + + var item = callback.call(this, stack); + + if (!usedLiteral) { + this.popStack(); + } + if (createdStack) { + this.stackSlot--; + } + this.push(prefix.concat(item, ')')); + }, + + incrStack: function incrStack() { + this.stackSlot++; + if (this.stackSlot > this.stackVars.length) { + this.stackVars.push('stack' + this.stackSlot); + } + return this.topStackName(); + }, + topStackName: function topStackName() { + return 'stack' + this.stackSlot; + }, + flushInline: function flushInline() { + var inlineStack = this.inlineStack; + this.inlineStack = []; + for (var i = 0, len = inlineStack.length; i < len; i++) { + var entry = inlineStack[i]; + /* istanbul ignore if */ + if (entry instanceof Literal) { + this.compileStack.push(entry); + } else { + var stack = this.incrStack(); + this.pushSource([stack, ' = ', entry, ';']); + this.compileStack.push(stack); + } + } + }, + isInline: function isInline() { + return this.inlineStack.length; + }, + + popStack: function popStack(wrapped) { + var inline = this.isInline(), + item = (inline ? this.inlineStack : this.compileStack).pop(); + + if (!wrapped && item instanceof Literal) { + return item.value; + } else { + if (!inline) { + /* istanbul ignore next */ + if (!this.stackSlot) { + throw new _Exception('Invalid stack pop'); + } + this.stackSlot--; + } + return item; + } + }, + + topStack: function topStack() { + var stack = this.isInline() ? this.inlineStack : this.compileStack, + item = stack[stack.length - 1]; + + /* istanbul ignore if */ + if (item instanceof Literal) { + return item.value; + } else { + return item; + } + }, + + contextName: function contextName(context) { + if (this.useDepths && context) { + return 'depths[' + context + ']'; + } else { + return 'depth' + context; + } + }, + + quotedString: function quotedString(str) { + return this.source.quotedString(str); + }, + + objectLiteral: function objectLiteral(obj) { + return this.source.objectLiteral(obj); + }, + + aliasable: function aliasable(name) { + var ret = this.aliases[name]; + if (ret) { + ret.referenceCount++; + return ret; + } + + ret = this.aliases[name] = this.source.wrap(name); + ret.aliasable = true; + ret.referenceCount = 1; + + return ret; + }, + + setupHelper: function setupHelper(paramSize, name, blockHelper) { + var params = [], + paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper); + var foundHelper = this.nameLookup('helpers', name, 'helper'); + + return { + params: params, + paramsInit: paramsInit, + name: foundHelper, + callParams: [this.contextName(0)].concat(params) + }; + }, + + setupParams: function setupParams(helper, paramSize, params) { + var options = {}, + contexts = [], + types = [], + ids = [], + param = undefined; + + options.name = this.quotedString(helper); + options.hash = this.popStack(); + + if (this.trackIds) { + options.hashIds = this.popStack(); + } + if (this.stringParams) { + options.hashTypes = this.popStack(); + options.hashContexts = this.popStack(); + } + + var inverse = this.popStack(), + program = this.popStack(); + + // Avoid setting fn and inverse if neither are set. This allows + // helpers to do a check for `if (options.fn)` + if (program || inverse) { + options.fn = program || 'this.noop'; + options.inverse = inverse || 'this.noop'; + } + + // The parameters go on to the stack in order (making sure that they are evaluated in order) + // so we need to pop them off the stack in reverse order + var i = paramSize; + while (i--) { + param = this.popStack(); + params[i] = param; + + if (this.trackIds) { + ids[i] = this.popStack(); + } + if (this.stringParams) { + types[i] = this.popStack(); + contexts[i] = this.popStack(); + } + } + + if (this.trackIds) { + options.ids = this.source.generateArray(ids); + } + if (this.stringParams) { + options.types = this.source.generateArray(types); + options.contexts = this.source.generateArray(contexts); + } + + if (this.options.data) { + options.data = 'data'; + } + if (this.useBlockParams) { + options.blockParams = 'blockParams'; + } + return options; + }, + + setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) { + var options = this.setupParams(helper, paramSize, params, true); + options = this.objectLiteral(options); + if (useRegister) { + this.useRegister('options'); + params.push('options'); + return ['options=', options]; + } else { + params.push(options); + return ''; + } + } + }; + + (function () { + var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' '); var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; - for(var i=0, l=reservedWords.length; i 2) { - expected.push("'" + this.terminals_[p] + "'"); - } - if (this.lexer.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); + }, + table: [{ 3: 1, 4: 2, 5: [2, 43], 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: [1, 11], 14: [1, 18], 15: 16, 17: [1, 21], 22: 14, 25: 15, 27: [1, 19], 32: [1, 20], 37: [2, 2], 42: [2, 2], 45: [2, 2], 46: [1, 12], 49: [1, 13], 53: [1, 17] }, { 1: [2, 1] }, { 5: [2, 44], 13: [2, 44], 14: [2, 44], 17: [2, 44], 27: [2, 44], 32: [2, 44], 37: [2, 44], 42: [2, 44], 45: [2, 44], 46: [2, 44], 49: [2, 44], 53: [2, 44] }, { 5: [2, 3], 13: [2, 3], 14: [2, 3], 17: [2, 3], 27: [2, 3], 32: [2, 3], 37: [2, 3], 42: [2, 3], 45: [2, 3], 46: [2, 3], 49: [2, 3], 53: [2, 3] }, { 5: [2, 4], 13: [2, 4], 14: [2, 4], 17: [2, 4], 27: [2, 4], 32: [2, 4], 37: [2, 4], 42: [2, 4], 45: [2, 4], 46: [2, 4], 49: [2, 4], 53: [2, 4] }, { 5: [2, 5], 13: [2, 5], 14: [2, 5], 17: [2, 5], 27: [2, 5], 32: [2, 5], 37: [2, 5], 42: [2, 5], 45: [2, 5], 46: [2, 5], 49: [2, 5], 53: [2, 5] }, { 5: [2, 6], 13: [2, 6], 14: [2, 6], 17: [2, 6], 27: [2, 6], 32: [2, 6], 37: [2, 6], 42: [2, 6], 45: [2, 6], 46: [2, 6], 49: [2, 6], 53: [2, 6] }, { 5: [2, 7], 13: [2, 7], 14: [2, 7], 17: [2, 7], 27: [2, 7], 32: [2, 7], 37: [2, 7], 42: [2, 7], 45: [2, 7], 46: [2, 7], 49: [2, 7], 53: [2, 7] }, { 5: [2, 8], 13: [2, 8], 14: [2, 8], 17: [2, 8], 27: [2, 8], 32: [2, 8], 37: [2, 8], 42: [2, 8], 45: [2, 8], 46: [2, 8], 49: [2, 8], 53: [2, 8] }, { 18: 22, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 33, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 4: 34, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 37: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 4: 35, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 12: 36, 14: [1, 18] }, { 18: 38, 54: 37, 58: 39, 59: [1, 40], 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 9], 13: [2, 9], 14: [2, 9], 16: [2, 9], 17: [2, 9], 27: [2, 9], 32: [2, 9], 37: [2, 9], 42: [2, 9], 45: [2, 9], 46: [2, 9], 49: [2, 9], 53: [2, 9] }, { 18: 41, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 42, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 43, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 31: [2, 73], 47: 44, 59: [2, 73], 66: [2, 73], 74: [2, 73], 75: [2, 73], 76: [2, 73], 77: [2, 73], 78: [2, 73], 79: [2, 73] }, { 21: [2, 30], 31: [2, 30], 52: [2, 30], 59: [2, 30], 62: [2, 30], 66: [2, 30], 69: [2, 30], 74: [2, 30], 75: [2, 30], 76: [2, 30], 77: [2, 30], 78: [2, 30], 79: [2, 30] }, { 21: [2, 31], 31: [2, 31], 52: [2, 31], 59: [2, 31], 62: [2, 31], 66: [2, 31], 69: [2, 31], 74: [2, 31], 75: [2, 31], 76: [2, 31], 77: [2, 31], 78: [2, 31], 79: [2, 31] }, { 21: [2, 32], 31: [2, 32], 52: [2, 32], 59: [2, 32], 62: [2, 32], 66: [2, 32], 69: [2, 32], 74: [2, 32], 75: [2, 32], 76: [2, 32], 77: [2, 32], 78: [2, 32], 79: [2, 32] }, { 21: [2, 33], 31: [2, 33], 52: [2, 33], 59: [2, 33], 62: [2, 33], 66: [2, 33], 69: [2, 33], 74: [2, 33], 75: [2, 33], 76: [2, 33], 77: [2, 33], 78: [2, 33], 79: [2, 33] }, { 21: [2, 34], 31: [2, 34], 52: [2, 34], 59: [2, 34], 62: [2, 34], 66: [2, 34], 69: [2, 34], 74: [2, 34], 75: [2, 34], 76: [2, 34], 77: [2, 34], 78: [2, 34], 79: [2, 34] }, { 21: [2, 35], 31: [2, 35], 52: [2, 35], 59: [2, 35], 62: [2, 35], 66: [2, 35], 69: [2, 35], 74: [2, 35], 75: [2, 35], 76: [2, 35], 77: [2, 35], 78: [2, 35], 79: [2, 35] }, { 21: [2, 36], 31: [2, 36], 52: [2, 36], 59: [2, 36], 62: [2, 36], 66: [2, 36], 69: [2, 36], 74: [2, 36], 75: [2, 36], 76: [2, 36], 77: [2, 36], 78: [2, 36], 79: [2, 36] }, { 21: [2, 40], 31: [2, 40], 52: [2, 40], 59: [2, 40], 62: [2, 40], 66: [2, 40], 69: [2, 40], 74: [2, 40], 75: [2, 40], 76: [2, 40], 77: [2, 40], 78: [2, 40], 79: [2, 40], 81: [1, 45] }, { 66: [1, 32], 80: 46 }, { 21: [2, 42], 31: [2, 42], 52: [2, 42], 59: [2, 42], 62: [2, 42], 66: [2, 42], 69: [2, 42], 74: [2, 42], 75: [2, 42], 76: [2, 42], 77: [2, 42], 78: [2, 42], 79: [2, 42], 81: [2, 42] }, { 50: 47, 52: [2, 77], 59: [2, 77], 66: [2, 77], 74: [2, 77], 75: [2, 77], 76: [2, 77], 77: [2, 77], 78: [2, 77], 79: [2, 77] }, { 23: 48, 36: 50, 37: [1, 52], 41: 51, 42: [1, 53], 43: 49, 45: [2, 49] }, { 26: 54, 41: 55, 42: [1, 53], 45: [2, 51] }, { 16: [1, 56] }, { 31: [2, 81], 55: 57, 59: [2, 81], 66: [2, 81], 74: [2, 81], 75: [2, 81], 76: [2, 81], 77: [2, 81], 78: [2, 81], 79: [2, 81] }, { 31: [2, 37], 59: [2, 37], 66: [2, 37], 74: [2, 37], 75: [2, 37], 76: [2, 37], 77: [2, 37], 78: [2, 37], 79: [2, 37] }, { 31: [2, 38], 59: [2, 38], 66: [2, 38], 74: [2, 38], 75: [2, 38], 76: [2, 38], 77: [2, 38], 78: [2, 38], 79: [2, 38] }, { 18: 58, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 28: 59, 31: [2, 53], 59: [2, 53], 66: [2, 53], 69: [2, 53], 74: [2, 53], 75: [2, 53], 76: [2, 53], 77: [2, 53], 78: [2, 53], 79: [2, 53] }, { 31: [2, 59], 33: 60, 59: [2, 59], 66: [2, 59], 69: [2, 59], 74: [2, 59], 75: [2, 59], 76: [2, 59], 77: [2, 59], 78: [2, 59], 79: [2, 59] }, { 19: 61, 21: [2, 45], 59: [2, 45], 66: [2, 45], 74: [2, 45], 75: [2, 45], 76: [2, 45], 77: [2, 45], 78: [2, 45], 79: [2, 45] }, { 18: 65, 31: [2, 75], 48: 62, 57: 63, 58: 66, 59: [1, 40], 63: 64, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 66: [1, 70] }, { 21: [2, 39], 31: [2, 39], 52: [2, 39], 59: [2, 39], 62: [2, 39], 66: [2, 39], 69: [2, 39], 74: [2, 39], 75: [2, 39], 76: [2, 39], 77: [2, 39], 78: [2, 39], 79: [2, 39], 81: [1, 45] }, { 18: 65, 51: 71, 52: [2, 79], 57: 72, 58: 66, 59: [1, 40], 63: 73, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 24: 74, 45: [1, 75] }, { 45: [2, 50] }, { 4: 76, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 37: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 45: [2, 19] }, { 18: 77, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 4: 78, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 24: 79, 45: [1, 75] }, { 45: [2, 52] }, { 5: [2, 10], 13: [2, 10], 14: [2, 10], 17: [2, 10], 27: [2, 10], 32: [2, 10], 37: [2, 10], 42: [2, 10], 45: [2, 10], 46: [2, 10], 49: [2, 10], 53: [2, 10] }, { 18: 65, 31: [2, 83], 56: 80, 57: 81, 58: 66, 59: [1, 40], 63: 82, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 59: [2, 85], 60: 83, 62: [2, 85], 66: [2, 85], 74: [2, 85], 75: [2, 85], 76: [2, 85], 77: [2, 85], 78: [2, 85], 79: [2, 85] }, { 18: 65, 29: 84, 31: [2, 55], 57: 85, 58: 66, 59: [1, 40], 63: 86, 64: 67, 65: 68, 66: [1, 69], 69: [2, 55], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 65, 31: [2, 61], 34: 87, 57: 88, 58: 66, 59: [1, 40], 63: 89, 64: 67, 65: 68, 66: [1, 69], 69: [2, 61], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 65, 20: 90, 21: [2, 47], 57: 91, 58: 66, 59: [1, 40], 63: 92, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 31: [1, 93] }, { 31: [2, 74], 59: [2, 74], 66: [2, 74], 74: [2, 74], 75: [2, 74], 76: [2, 74], 77: [2, 74], 78: [2, 74], 79: [2, 74] }, { 31: [2, 76] }, { 21: [2, 24], 31: [2, 24], 52: [2, 24], 59: [2, 24], 62: [2, 24], 66: [2, 24], 69: [2, 24], 74: [2, 24], 75: [2, 24], 76: [2, 24], 77: [2, 24], 78: [2, 24], 79: [2, 24] }, { 21: [2, 25], 31: [2, 25], 52: [2, 25], 59: [2, 25], 62: [2, 25], 66: [2, 25], 69: [2, 25], 74: [2, 25], 75: [2, 25], 76: [2, 25], 77: [2, 25], 78: [2, 25], 79: [2, 25] }, { 21: [2, 27], 31: [2, 27], 52: [2, 27], 62: [2, 27], 65: 94, 66: [1, 95], 69: [2, 27] }, { 21: [2, 89], 31: [2, 89], 52: [2, 89], 62: [2, 89], 66: [2, 89], 69: [2, 89] }, { 21: [2, 42], 31: [2, 42], 52: [2, 42], 59: [2, 42], 62: [2, 42], 66: [2, 42], 67: [1, 96], 69: [2, 42], 74: [2, 42], 75: [2, 42], 76: [2, 42], 77: [2, 42], 78: [2, 42], 79: [2, 42], 81: [2, 42] }, { 21: [2, 41], 31: [2, 41], 52: [2, 41], 59: [2, 41], 62: [2, 41], 66: [2, 41], 69: [2, 41], 74: [2, 41], 75: [2, 41], 76: [2, 41], 77: [2, 41], 78: [2, 41], 79: [2, 41], 81: [2, 41] }, { 52: [1, 97] }, { 52: [2, 78], 59: [2, 78], 66: [2, 78], 74: [2, 78], 75: [2, 78], 76: [2, 78], 77: [2, 78], 78: [2, 78], 79: [2, 78] }, { 52: [2, 80] }, { 5: [2, 12], 13: [2, 12], 14: [2, 12], 17: [2, 12], 27: [2, 12], 32: [2, 12], 37: [2, 12], 42: [2, 12], 45: [2, 12], 46: [2, 12], 49: [2, 12], 53: [2, 12] }, { 18: 98, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 36: 50, 37: [1, 52], 41: 51, 42: [1, 53], 43: 100, 44: 99, 45: [2, 71] }, { 31: [2, 65], 38: 101, 59: [2, 65], 66: [2, 65], 69: [2, 65], 74: [2, 65], 75: [2, 65], 76: [2, 65], 77: [2, 65], 78: [2, 65], 79: [2, 65] }, { 45: [2, 17] }, { 5: [2, 13], 13: [2, 13], 14: [2, 13], 17: [2, 13], 27: [2, 13], 32: [2, 13], 37: [2, 13], 42: [2, 13], 45: [2, 13], 46: [2, 13], 49: [2, 13], 53: [2, 13] }, { 31: [1, 102] }, { 31: [2, 82], 59: [2, 82], 66: [2, 82], 74: [2, 82], 75: [2, 82], 76: [2, 82], 77: [2, 82], 78: [2, 82], 79: [2, 82] }, { 31: [2, 84] }, { 18: 65, 57: 104, 58: 66, 59: [1, 40], 61: 103, 62: [2, 87], 63: 105, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 30: 106, 31: [2, 57], 68: 107, 69: [1, 108] }, { 31: [2, 54], 59: [2, 54], 66: [2, 54], 69: [2, 54], 74: [2, 54], 75: [2, 54], 76: [2, 54], 77: [2, 54], 78: [2, 54], 79: [2, 54] }, { 31: [2, 56], 69: [2, 56] }, { 31: [2, 63], 35: 109, 68: 110, 69: [1, 108] }, { 31: [2, 60], 59: [2, 60], 66: [2, 60], 69: [2, 60], 74: [2, 60], 75: [2, 60], 76: [2, 60], 77: [2, 60], 78: [2, 60], 79: [2, 60] }, { 31: [2, 62], 69: [2, 62] }, { 21: [1, 111] }, { 21: [2, 46], 59: [2, 46], 66: [2, 46], 74: [2, 46], 75: [2, 46], 76: [2, 46], 77: [2, 46], 78: [2, 46], 79: [2, 46] }, { 21: [2, 48] }, { 5: [2, 21], 13: [2, 21], 14: [2, 21], 17: [2, 21], 27: [2, 21], 32: [2, 21], 37: [2, 21], 42: [2, 21], 45: [2, 21], 46: [2, 21], 49: [2, 21], 53: [2, 21] }, { 21: [2, 90], 31: [2, 90], 52: [2, 90], 62: [2, 90], 66: [2, 90], 69: [2, 90] }, { 67: [1, 96] }, { 18: 65, 57: 112, 58: 66, 59: [1, 40], 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 22], 13: [2, 22], 14: [2, 22], 17: [2, 22], 27: [2, 22], 32: [2, 22], 37: [2, 22], 42: [2, 22], 45: [2, 22], 46: [2, 22], 49: [2, 22], 53: [2, 22] }, { 31: [1, 113] }, { 45: [2, 18] }, { 45: [2, 72] }, { 18: 65, 31: [2, 67], 39: 114, 57: 115, 58: 66, 59: [1, 40], 63: 116, 64: 67, 65: 68, 66: [1, 69], 69: [2, 67], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 23], 13: [2, 23], 14: [2, 23], 17: [2, 23], 27: [2, 23], 32: [2, 23], 37: [2, 23], 42: [2, 23], 45: [2, 23], 46: [2, 23], 49: [2, 23], 53: [2, 23] }, { 62: [1, 117] }, { 59: [2, 86], 62: [2, 86], 66: [2, 86], 74: [2, 86], 75: [2, 86], 76: [2, 86], 77: [2, 86], 78: [2, 86], 79: [2, 86] }, { 62: [2, 88] }, { 31: [1, 118] }, { 31: [2, 58] }, { 66: [1, 120], 70: 119 }, { 31: [1, 121] }, { 31: [2, 64] }, { 14: [2, 11] }, { 21: [2, 28], 31: [2, 28], 52: [2, 28], 62: [2, 28], 66: [2, 28], 69: [2, 28] }, { 5: [2, 20], 13: [2, 20], 14: [2, 20], 17: [2, 20], 27: [2, 20], 32: [2, 20], 37: [2, 20], 42: [2, 20], 45: [2, 20], 46: [2, 20], 49: [2, 20], 53: [2, 20] }, { 31: [2, 69], 40: 122, 68: 123, 69: [1, 108] }, { 31: [2, 66], 59: [2, 66], 66: [2, 66], 69: [2, 66], 74: [2, 66], 75: [2, 66], 76: [2, 66], 77: [2, 66], 78: [2, 66], 79: [2, 66] }, { 31: [2, 68], 69: [2, 68] }, { 21: [2, 26], 31: [2, 26], 52: [2, 26], 59: [2, 26], 62: [2, 26], 66: [2, 26], 69: [2, 26], 74: [2, 26], 75: [2, 26], 76: [2, 26], 77: [2, 26], 78: [2, 26], 79: [2, 26] }, { 13: [2, 14], 14: [2, 14], 17: [2, 14], 27: [2, 14], 32: [2, 14], 37: [2, 14], 42: [2, 14], 45: [2, 14], 46: [2, 14], 49: [2, 14], 53: [2, 14] }, { 66: [1, 125], 71: [1, 124] }, { 66: [2, 91], 71: [2, 91] }, { 13: [2, 15], 14: [2, 15], 17: [2, 15], 27: [2, 15], 32: [2, 15], 42: [2, 15], 45: [2, 15], 46: [2, 15], 49: [2, 15], 53: [2, 15] }, { 31: [1, 126] }, { 31: [2, 70] }, { 31: [2, 29] }, { 66: [2, 92], 71: [2, 92] }, { 13: [2, 16], 14: [2, 16], 17: [2, 16], 27: [2, 16], 32: [2, 16], 37: [2, 16], 42: [2, 16], 45: [2, 16], 46: [2, 16], 49: [2, 16], 53: [2, 16] }], + defaultActions: { 4: [2, 1], 49: [2, 50], 51: [2, 19], 55: [2, 52], 64: [2, 76], 73: [2, 80], 78: [2, 17], 82: [2, 84], 92: [2, 48], 99: [2, 18], 100: [2, 72], 105: [2, 88], 107: [2, 58], 110: [2, 64], 111: [2, 11], 123: [2, 70], 124: [2, 29] }, + parseError: function parseError(str, hash) { + throw new Error(str); + }, + parse: function parse(input) { + var self = this, + stack = [0], + vstack = [null], + lstack = [], + table = this.table, + yytext = "", + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + this.lexer.setInput(input); + this.lexer.yy = this.yy; + this.yy.lexer = this.lexer; + this.yy.parser = this; + if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {}; + var yyloc = this.lexer.yylloc; + lstack.push(yyloc); + var ranges = this.lexer.options && this.lexer.options.ranges; + if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError; + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + function lex() { + var token; + token = self.lexer.lex() || 1; + if (typeof token !== "number") { + token = self.symbols_[token] || token; } - this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); + return token; } - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) - recovering--; - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; + var symbol, + preErrorSymbol, + state, + action, + a, + r, + yyval = {}, + p, + len, + newState, + expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + if (!recovering) { + expected = []; + for (p in table[state]) if (this.terminals_[p] && p > 2) { + expected.push("'" + this.terminals_[p] + "'"); + } + if (this.lexer.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected }); + } + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(this.lexer.yytext); + lstack.push(this.lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = this.lexer.yyleng; + yytext = this.lexer.yytext; + yylineno = this.lexer.yylineno; + yyloc = this.lexer.yylloc; + if (recovering > 0) recovering--; + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column }; + if (ranges) { + yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; + } + r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column}; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: return true; } - } - return true; - } - }; - /* Jison generated lexer */ - var lexer = (function(){ - var lexer = ({EOF:1, - parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - setInput:function (input) { - this._input = input; - this._more = this._less = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0}; - if (this.options.ranges) this.yylloc.range = [0,0]; - this.offset = 0; - return this; - }, - input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) this.yylloc.range[1]++; + }; + /* Jison generated lexer */ + var lexer = (function () { + var lexer = { EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + setInput: function setInput(input) { + this._input = input; + this._more = this._less = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }; + if (this.options.ranges) this.yylloc.range = [0, 0]; + this.offset = 0; + return this; + }, + input: function input() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) this.yylloc.range[1]++; - this._input = this._input.slice(1); - return ch; - }, - unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = this._input.slice(1); + return ch; + }, + unput: function unput(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length-len-1); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length-1); - this.matched = this.matched.substr(0, this.matched.length-1); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len - 1); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length-1) this.yylineno -= lines.length-1; - var r = this.yylloc.range; + if (lines.length - 1) this.yylineno -= lines.length - 1; + var r = this.yylloc.range; - this.yylloc = {first_line: this.yylloc.first_line, - last_line: this.yylineno+1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length: - this.yylloc.first_column - len - }; + this.yylloc = { first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - return this; - }, - more:function () { - this._more = true; - return this; - }, - less:function (n) { - this.unput(this.match.slice(n)); - }, - pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, ""); - }, - showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c+"^"; - }, - next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) this.done = true; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + return this; + }, + more: function more() { + this._more = true; + return this; + }, + less: function less(n) { + this.unput(this.match.slice(n)); + }, + pastInput: function pastInput() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + upcomingInput: function upcomingInput() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + showPosition: function showPosition() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + next: function next() { + if (this.done) { + return this.EOF; + } + if (!this._input) this.done = true; - var token, - match, - tempMatch, - index, - col, - lines; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i=0;i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (!this.options.flex) break; + var token, match, tempMatch, index, col, lines; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (!this.options.flex) break; + } + } + if (match) { + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) this.yylineno += lines.length; + this.yylloc = { first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) this.done = false; + if (token) { + return token; + } else { + return; + } + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }); + } + }, + lex: function lex() { + var r = this.next(); + if (typeof r !== "undefined") { + return r; + } else { + return this.lex(); + } + }, + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + popState: function popState() { + return this.conditionStack.pop(); + }, + _currentRules: function _currentRules() { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + }, + topState: function topState() { + return this.conditionStack[this.conditionStack.length - 2]; + }, + pushState: function begin(condition) { + this.begin(condition); + } }; + lexer.options = {}; + lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + + function strip(start, end) { + return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng - end); } - } - if (match) { - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) this.yylineno += lines.length; - this.yylloc = {first_line: this.yylloc.last_line, - last_line: this.yylineno+1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length}; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; + + var YYSTATE = YY_START; + switch ($avoiding_name_collisions) { + case 0: + if (yy_.yytext.slice(-2) === "\\\\") { + strip(0, 1); + this.begin("mu"); + } else if (yy_.yytext.slice(-1) === "\\") { + strip(0, 1); + this.begin("emu"); + } else { + this.begin("mu"); + } + if (yy_.yytext) { + return 14; + }break; + case 1: + return 14; + break; + case 2: + this.popState(); + return 14; + + break; + case 3: + yy_.yytext = yy_.yytext.substr(5, yy_.yyleng - 9); + this.popState(); + return 16; + + break; + case 4: + return 14; + break; + case 5: + this.popState(); + return 13; + + break; + case 6: + return 59; + break; + case 7: + return 62; + break; + case 8: + return 17; + break; + case 9: + this.popState(); + this.begin("raw"); + return 21; + + break; + case 10: + return 53; + break; + case 11: + return 27; + break; + case 12: + return 45; + break; + case 13: + this.popState();return 42; + break; + case 14: + this.popState();return 42; + break; + case 15: + return 32; + break; + case 16: + return 37; + break; + case 17: + return 49; + break; + case 18: + return 46; + break; + case 19: + this.unput(yy_.yytext); + this.popState(); + this.begin("com"); + + break; + case 20: + this.popState(); + return 13; + + break; + case 21: + return 46; + break; + case 22: + return 67; + break; + case 23: + return 66; + break; + case 24: + return 66; + break; + case 25: + return 81; + break; + case 26: + // ignore whitespace + break; + case 27: + this.popState();return 52; + break; + case 28: + this.popState();return 31; + break; + case 29: + yy_.yytext = strip(1, 2).replace(/\\"/g, "\"");return 74; + break; + case 30: + yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 74; + break; + case 31: + return 79; + break; + case 32: + return 76; + break; + case 33: + return 76; + break; + case 34: + return 77; + break; + case 35: + return 78; + break; + case 36: + return 75; + break; + case 37: + return 69; + break; + case 38: + return 71; + break; + case 39: + return 66; + break; + case 40: + return 66; + break; + case 41: + return "INVALID"; + break; + case 42: + return 5; + break; } - this._more = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]); - if (this.done && this._input) this.done = false; - if (token) return token; - else return; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), - {text: "", token: null, line: this.yylineno}); - } - }, - lex:function lex() { - var r = this.next(); - if (typeof r !== 'undefined') { - return r; - } else { - return this.lex(); - } - }, - begin:function begin(condition) { - this.conditionStack.push(condition); - }, - popState:function popState() { - return this.conditionStack.pop(); - }, - _currentRules:function _currentRules() { - return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules; - }, - topState:function () { - return this.conditionStack[this.conditionStack.length-2]; - }, - pushState:function begin(condition) { - this.begin(condition); - }}); - lexer.options = {}; - lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { - - - function strip(start, end) { - return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng-end); - } - - - var YYSTATE=YY_START - switch($avoiding_name_collisions) { - case 0: - if(yy_.yytext.slice(-2) === "\\\\") { - strip(0,1); - this.begin("mu"); - } else if(yy_.yytext.slice(-1) === "\\") { - strip(0,1); - this.begin("emu"); - } else { - this.begin("mu"); - } - if(yy_.yytext) return 12; - - break; - case 1:return 12; - break; - case 2: - this.popState(); - return 12; - - break; - case 3: - yy_.yytext = yy_.yytext.substr(5, yy_.yyleng-9); - this.popState(); - return 15; - - break; - case 4: return 12; - break; - case 5:strip(0,4); this.popState(); return 13; - break; - case 6:return 45; - break; - case 7:return 46; - break; - case 8: return 16; - break; - case 9: - this.popState(); - this.begin('raw'); - return 18; - - break; - case 10:return 34; - break; - case 11:return 24; - break; - case 12:return 29; - break; - case 13:this.popState(); return 28; - break; - case 14:this.popState(); return 28; - break; - case 15:return 26; - break; - case 16:return 26; - break; - case 17:return 32; - break; - case 18:return 31; - break; - case 19:this.popState(); this.begin('com'); - break; - case 20:strip(3,5); this.popState(); return 13; - break; - case 21:return 31; - break; - case 22:return 51; - break; - case 23:return 50; - break; - case 24:return 50; - break; - case 25:return 54; - break; - case 26:// ignore whitespace - break; - case 27:this.popState(); return 33; - break; - case 28:this.popState(); return 25; - break; - case 29:yy_.yytext = strip(1,2).replace(/\\"/g,'"'); return 42; - break; - case 30:yy_.yytext = strip(1,2).replace(/\\'/g,"'"); return 42; - break; - case 31:return 52; - break; - case 32:return 44; - break; - case 33:return 44; - break; - case 34:return 43; - break; - case 35:return 50; - break; - case 36:yy_.yytext = strip(1,2); return 50; - break; - case 37:return 'INVALID'; - break; - case 38:return 5; - break; - } - }; - lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/]; - lexer.conditions = {"mu":{"rules":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[5],"inclusive":false},"raw":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,1,38],"inclusive":true}}; - return lexer;})() - parser.lexer = lexer; - function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser; - return new Parser; - })();__exports__["default"] = handlebars; - /* jshint ignore:end */ - }); \ No newline at end of file + }; + lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{\/)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[[^\]]*\])/, /^(?:.)/, /^(?:$)/]; + lexer.conditions = { mu: { rules: [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42], inclusive: false }, emu: { rules: [2], inclusive: false }, com: { rules: [5], inclusive: false }, raw: { rules: [3, 4], inclusive: false }, INITIAL: { rules: [0, 1, 42], inclusive: true } }; + return lexer; + })(); + parser.lexer = lexer; + function Parser() { + this.yy = {}; + }Parser.prototype = parser;parser.Parser = Parser; + return new Parser(); + })();module.exports = handlebars; +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/compiler/printer.js b/node_modules/handlebars/dist/amd/handlebars/compiler/printer.js index e2663b7..6b4c230 100644 --- a/node_modules/handlebars/dist/amd/handlebars/compiler/printer.js +++ b/node_modules/handlebars/dist/amd/handlebars/compiler/printer.js @@ -1,145 +1,165 @@ -define( - ["./visitor","exports"], - function(__dependency1__, __exports__) { - "use strict"; - var Visitor = __dependency1__["default"]; +define(['exports', './visitor'], function (exports, _visitor) { + 'use strict'; - function print(ast) { - return new PrintVisitor().accept(ast); + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + exports.__esModule = true; + exports.print = print; + exports.PrintVisitor = PrintVisitor; + /*eslint-disable new-cap */ + + var _Visitor = _interopRequire(_visitor); + + function print(ast) { + return new PrintVisitor().accept(ast); + } + + function PrintVisitor() { + this.padding = 0; + } + + PrintVisitor.prototype = new _Visitor(); + + PrintVisitor.prototype.pad = function (string) { + var out = ''; + + for (var i = 0, l = this.padding; i < l; i++) { + out = out + ' '; } - __exports__.print = print;function PrintVisitor() { - this.padding = 0; + out = out + string + '\n'; + return out; + }; + + PrintVisitor.prototype.Program = function (program) { + var out = '', + body = program.body, + i = undefined, + l = undefined; + + if (program.blockParams) { + var blockParams = 'BLOCK PARAMS: ['; + for (i = 0, l = program.blockParams.length; i < l; i++) { + blockParams += ' ' + program.blockParams[i]; + } + blockParams += ' ]'; + out += this.pad(blockParams); } - __exports__.PrintVisitor = PrintVisitor;PrintVisitor.prototype = new Visitor(); + for (i = 0, l = body.length; i < l; i++) { + out = out + this.accept(body[i]); + } - PrintVisitor.prototype.pad = function(string) { - var out = ""; + this.padding--; - for(var i=0,l=this.padding; i " + content + " }}"); - }; + } + this.padding--; - PrintVisitor.prototype.hash = function(hash) { - var pairs = hash.pairs; - var joinedPairs = [], left, right; + return out; + }; - for(var i=0, l=pairs.length; i 1) { - return "PATH:" + path; - } else { - return "ID:" + path; - } - }; + params = '[' + paramStrings.join(', ') + ']'; - PrintVisitor.prototype.PARTIAL_NAME = function(partialName) { - return "PARTIAL:" + partialName.name; - }; + hash = sexpr.hash ? ' ' + this.accept(sexpr.hash) : ''; - PrintVisitor.prototype.DATA = function(data) { - return "@" + this.accept(data.id); - }; + return this.accept(sexpr.path) + ' ' + params + hash; + }; - PrintVisitor.prototype.content = function(content) { - return this.pad("CONTENT[ '" + content.string + "' ]"); - }; + PrintVisitor.prototype.PathExpression = function (id) { + var path = id.parts.join('/'); + return (id.data ? '@' : '') + 'PATH:' + path; + }; - PrintVisitor.prototype.comment = function(comment) { - return this.pad("{{! '" + comment.comment + "' }}"); - }; - }); \ No newline at end of file + PrintVisitor.prototype.StringLiteral = function (string) { + return '"' + string.value + '"'; + }; + + PrintVisitor.prototype.NumberLiteral = function (number) { + return 'NUMBER{' + number.value + '}'; + }; + + PrintVisitor.prototype.BooleanLiteral = function (bool) { + return 'BOOLEAN{' + bool.value + '}'; + }; + + PrintVisitor.prototype.UndefinedLiteral = function () { + return 'UNDEFINED'; + }; + + PrintVisitor.prototype.NullLiteral = function () { + return 'NULL'; + }; + + PrintVisitor.prototype.Hash = function (hash) { + var pairs = hash.pairs, + joinedPairs = []; + + for (var i = 0, l = pairs.length; i < l; i++) { + joinedPairs.push(this.accept(pairs[i])); + } + + return 'HASH{' + joinedPairs.join(', ') + '}'; + }; + PrintVisitor.prototype.HashPair = function (pair) { + return pair.key + '=' + this.accept(pair.value); + }; + /*eslint-enable new-cap */ +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js b/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js index 325ba0e..c86bd51 100644 --- a/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js +++ b/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js @@ -1,16 +1,127 @@ -define( - ["exports"], - function(__exports__) { - "use strict"; - function Visitor() {} +define(['exports', 'module', '../exception', './ast'], function (exports, module, _exception, _ast) { + 'use strict'; - Visitor.prototype = { - constructor: Visitor, + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; - accept: function(object) { - return this[object.type](object); + var _Exception = _interopRequire(_exception); + + var _AST = _interopRequire(_ast); + + function Visitor() { + this.parents = []; + } + + Visitor.prototype = { + constructor: Visitor, + mutating: false, + + // Visits a given value. If mutating, will replace the value if necessary. + acceptKey: function acceptKey(node, name) { + var value = this.accept(node[name]); + if (this.mutating) { + // Hacky sanity check: + if (value && (!value.type || !_AST[value.type])) { + throw new _Exception('Unexpected node type "' + value.type + '" found when accepting ' + name + ' on ' + node.type); + } + node[name] = value; } - }; + }, - __exports__["default"] = Visitor; - }); \ No newline at end of file + // Performs an accept operation with added sanity check to ensure + // required keys are not removed. + acceptRequired: function acceptRequired(node, name) { + this.acceptKey(node, name); + + if (!node[name]) { + throw new _Exception(node.type + ' requires ' + name); + } + }, + + // Traverses a given array. If mutating, empty respnses will be removed + // for child elements. + acceptArray: function acceptArray(array) { + for (var i = 0, l = array.length; i < l; i++) { + this.acceptKey(array, i); + + if (!array[i]) { + array.splice(i, 1); + i--; + l--; + } + } + }, + + accept: function accept(object) { + if (!object) { + return; + } + + if (this.current) { + this.parents.unshift(this.current); + } + this.current = object; + + var ret = this[object.type](object); + + this.current = this.parents.shift(); + + if (!this.mutating || ret) { + return ret; + } else if (ret !== false) { + return object; + } + }, + + Program: function Program(program) { + this.acceptArray(program.body); + }, + + MustacheStatement: function MustacheStatement(mustache) { + this.acceptRequired(mustache, 'path'); + this.acceptArray(mustache.params); + this.acceptKey(mustache, 'hash'); + }, + + BlockStatement: function BlockStatement(block) { + this.acceptRequired(block, 'path'); + this.acceptArray(block.params); + this.acceptKey(block, 'hash'); + + this.acceptKey(block, 'program'); + this.acceptKey(block, 'inverse'); + }, + + PartialStatement: function PartialStatement(partial) { + this.acceptRequired(partial, 'name'); + this.acceptArray(partial.params); + this.acceptKey(partial, 'hash'); + }, + + ContentStatement: function ContentStatement() {}, + CommentStatement: function CommentStatement() {}, + + SubExpression: function SubExpression(sexpr) { + this.acceptRequired(sexpr, 'path'); + this.acceptArray(sexpr.params); + this.acceptKey(sexpr, 'hash'); + }, + + PathExpression: function PathExpression() {}, + + StringLiteral: function StringLiteral() {}, + NumberLiteral: function NumberLiteral() {}, + BooleanLiteral: function BooleanLiteral() {}, + UndefinedLiteral: function UndefinedLiteral() {}, + NullLiteral: function NullLiteral() {}, + + Hash: function Hash(hash) { + this.acceptArray(hash.pairs); + }, + HashPair: function HashPair(pair) { + this.acceptRequired(pair, 'value'); + } + }; + + module.exports = Visitor; +}); +/* content */ /* comment */ /* path */ /* string */ /* number */ /* bool */ /* literal */ /* literal */ \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js b/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js new file mode 100644 index 0000000..9f1d30f --- /dev/null +++ b/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js @@ -0,0 +1,209 @@ +define(['exports', 'module', './visitor'], function (exports, module, _visitor) { + 'use strict'; + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + var _Visitor = _interopRequire(_visitor); + + function WhitespaceControl() {} + WhitespaceControl.prototype = new _Visitor(); + + WhitespaceControl.prototype.Program = function (program) { + var isRoot = !this.isRootSeen; + this.isRootSeen = true; + + var body = program.body; + for (var i = 0, l = body.length; i < l; i++) { + var current = body[i], + strip = this.accept(current); + + if (!strip) { + continue; + } + + var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot), + _isNextWhitespace = isNextWhitespace(body, i, isRoot), + openStandalone = strip.openStandalone && _isPrevWhitespace, + closeStandalone = strip.closeStandalone && _isNextWhitespace, + inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace; + + if (strip.close) { + omitRight(body, i, true); + } + if (strip.open) { + omitLeft(body, i, true); + } + + if (inlineStandalone) { + omitRight(body, i); + + if (omitLeft(body, i)) { + // If we are on a standalone node, save the indent info for partials + if (current.type === 'PartialStatement') { + // Pull out the whitespace from the final line + current.indent = /([ \t]+$)/.exec(body[i - 1].original)[1]; + } + } + } + if (openStandalone) { + omitRight((current.program || current.inverse).body); + + // Strip out the previous content node if it's whitespace only + omitLeft(body, i); + } + if (closeStandalone) { + // Always strip the next node + omitRight(body, i); + + omitLeft((current.inverse || current.program).body); + } + } + + return program; + }; + WhitespaceControl.prototype.BlockStatement = function (block) { + this.accept(block.program); + this.accept(block.inverse); + + // Find the inverse program that is involed with whitespace stripping. + var program = block.program || block.inverse, + inverse = block.program && block.inverse, + firstInverse = inverse, + lastInverse = inverse; + + if (inverse && inverse.chained) { + firstInverse = inverse.body[0].program; + + // Walk the inverse chain to find the last inverse that is actually in the chain. + while (lastInverse.chained) { + lastInverse = lastInverse.body[lastInverse.body.length - 1].program; + } + } + + var strip = { + open: block.openStrip.open, + close: block.closeStrip.close, + + // Determine the standalone candiacy. Basically flag our content as being possibly standalone + // so our parent can determine if we actually are standalone + openStandalone: isNextWhitespace(program.body), + closeStandalone: isPrevWhitespace((firstInverse || program).body) + }; + + if (block.openStrip.close) { + omitRight(program.body, null, true); + } + + if (inverse) { + var inverseStrip = block.inverseStrip; + + if (inverseStrip.open) { + omitLeft(program.body, null, true); + } + + if (inverseStrip.close) { + omitRight(firstInverse.body, null, true); + } + if (block.closeStrip.open) { + omitLeft(lastInverse.body, null, true); + } + + // Find standalone else statments + if (isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) { + omitLeft(program.body); + omitRight(firstInverse.body); + } + } else if (block.closeStrip.open) { + omitLeft(program.body, null, true); + } + + return strip; + }; + + WhitespaceControl.prototype.MustacheStatement = function (mustache) { + return mustache.strip; + }; + + WhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) { + /* istanbul ignore next */ + var strip = node.strip || {}; + return { + inlineStandalone: true, + open: strip.open, + close: strip.close + }; + }; + + function isPrevWhitespace(body, i, isRoot) { + if (i === undefined) { + i = body.length; + } + + // Nodes that end with newlines are considered whitespace (but are special + // cased for strip operations) + var prev = body[i - 1], + sibling = body[i - 2]; + if (!prev) { + return isRoot; + } + + if (prev.type === 'ContentStatement') { + return (sibling || !isRoot ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(prev.original); + } + } + function isNextWhitespace(body, i, isRoot) { + if (i === undefined) { + i = -1; + } + + var next = body[i + 1], + sibling = body[i + 2]; + if (!next) { + return isRoot; + } + + if (next.type === 'ContentStatement') { + return (sibling || !isRoot ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(next.original); + } + } + + // Marks the node to the right of the position as omitted. + // I.e. {{foo}}' ' will mark the ' ' node as omitted. + // + // If i is undefined, then the first child will be marked as such. + // + // If mulitple is truthy then all whitespace will be stripped out until non-whitespace + // content is met. + function omitRight(body, i, multiple) { + var current = body[i == null ? 0 : i + 1]; + if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) { + return; + } + + var original = current.value; + current.value = current.value.replace(multiple ? /^\s+/ : /^[ \t]*\r?\n?/, ''); + current.rightStripped = current.value !== original; + } + + // Marks the node to the left of the position as omitted. + // I.e. ' '{{foo}} will mark the ' ' node as omitted. + // + // If i is undefined then the last child will be marked as such. + // + // If mulitple is truthy then all whitespace will be stripped out until non-whitespace + // content is met. + function omitLeft(body, i, multiple) { + var current = body[i == null ? body.length - 1 : i - 1]; + if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) { + return; + } + + // We omit the last node if it's whitespace only and not preceeded by a non-content node. + var original = current.value; + current.value = current.value.replace(multiple ? /\s+$/ : /[ \t]+$/, ''); + current.leftStripped = current.value !== original; + return current.leftStripped; + } + + module.exports = WhitespaceControl; +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/exception.js b/node_modules/handlebars/dist/amd/handlebars/exception.js index df0b042..a1ccecf 100644 --- a/node_modules/handlebars/dist/amd/handlebars/exception.js +++ b/node_modules/handlebars/dist/amd/handlebars/exception.js @@ -1,32 +1,37 @@ -define( - ["exports"], - function(__exports__) { - "use strict"; +define(['exports', 'module'], function (exports, module) { + 'use strict'; - var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; + var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; - function Exception(message, node) { - var line; - if (node && node.firstLine) { - line = node.firstLine; + function Exception(message, node) { + var loc = node && node.loc, + line = undefined, + column = undefined; + if (loc) { + line = loc.start.line; + column = loc.start.column; - message += ' - ' + line + ':' + node.firstColumn; - } - - var tmp = Error.prototype.constructor.call(this, message); - - // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. - for (var idx = 0; idx < errorProps.length; idx++) { - this[errorProps[idx]] = tmp[errorProps[idx]]; - } - - if (line) { - this.lineNumber = line; - this.column = node.firstColumn; - } + message += ' - ' + line + ':' + column; } - Exception.prototype = new Error(); + var tmp = Error.prototype.constructor.call(this, message); - __exports__["default"] = Exception; - }); \ No newline at end of file + // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. + for (var idx = 0; idx < errorProps.length; idx++) { + this[errorProps[idx]] = tmp[errorProps[idx]]; + } + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, Exception); + } + + if (loc) { + this.lineNumber = line; + this.column = column; + } + } + + Exception.prototype = new Error(); + + module.exports = Exception; +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/no-conflict.js b/node_modules/handlebars/dist/amd/handlebars/no-conflict.js new file mode 100644 index 0000000..c7dda86 --- /dev/null +++ b/node_modules/handlebars/dist/amd/handlebars/no-conflict.js @@ -0,0 +1,16 @@ +define(['exports', 'module'], function (exports, module) { + /*global window */ + 'use strict'; + + module.exports = function (Handlebars) { + /* istanbul ignore next */ + var root = typeof global !== 'undefined' ? global : window, + $Handlebars = root.Handlebars; + /* istanbul ignore next */ + Handlebars.noConflict = function () { + if (root.Handlebars === Handlebars) { + root.Handlebars = $Handlebars; + } + }; + }; +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/runtime.js b/node_modules/handlebars/dist/amd/handlebars/runtime.js index 7c30127..e1186e4 100644 --- a/node_modules/handlebars/dist/amd/handlebars/runtime.js +++ b/node_modules/handlebars/dist/amd/handlebars/runtime.js @@ -1,197 +1,226 @@ -define( - ["./utils","./exception","./base","exports"], - function(__dependency1__, __dependency2__, __dependency3__, __exports__) { - "use strict"; - var Utils = __dependency1__; - var Exception = __dependency2__["default"]; - var COMPILER_REVISION = __dependency3__.COMPILER_REVISION; - var REVISION_CHANGES = __dependency3__.REVISION_CHANGES; - var createFrame = __dependency3__.createFrame; +define(['exports', './utils', './exception', './base'], function (exports, _utils, _exception, _base) { + 'use strict'; - function checkRevision(compilerInfo) { - var compilerRevision = compilerInfo && compilerInfo[0] || 1, - currentRevision = COMPILER_REVISION; + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; - if (compilerRevision !== currentRevision) { - if (compilerRevision < currentRevision) { - var runtimeVersions = REVISION_CHANGES[currentRevision], - compilerVersions = REVISION_CHANGES[compilerRevision]; - throw new Exception("Template was precompiled with an older version of Handlebars than the current runtime. "+ - "Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+")."); - } else { - // Use the embedded version info since the runtime doesn't know about this revision yet - throw new Exception("Template was precompiled with a newer version of Handlebars than the current runtime. "+ - "Please update your runtime to a newer version ("+compilerInfo[1]+")."); - } + exports.__esModule = true; + exports.checkRevision = checkRevision; + + // TODO: Remove this line and break up compilePartial + + exports.template = template; + exports.wrapProgram = wrapProgram; + exports.resolvePartial = resolvePartial; + exports.invokePartial = invokePartial; + exports.noop = noop; + + var _Exception = _interopRequire(_exception); + + function checkRevision(compilerInfo) { + var compilerRevision = compilerInfo && compilerInfo[0] || 1, + currentRevision = _base.COMPILER_REVISION; + + if (compilerRevision !== currentRevision) { + if (compilerRevision < currentRevision) { + var runtimeVersions = _base.REVISION_CHANGES[currentRevision], + compilerVersions = _base.REVISION_CHANGES[compilerRevision]; + throw new _Exception('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').'); + } else { + // Use the embedded version info since the runtime doesn't know about this revision yet + throw new _Exception('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').'); } } + } - __exports__.checkRevision = checkRevision;// TODO: Remove this line and break up compilePartial + function template(templateSpec, env) { + /* istanbul ignore next */ + if (!env) { + throw new _Exception('No environment passed to template'); + } + if (!templateSpec || !templateSpec.main) { + throw new _Exception('Unknown template object: ' + typeof templateSpec); + } - function template(templateSpec, env) { - /* istanbul ignore next */ - if (!env) { - throw new Exception("No environment passed to template"); - } - if (!templateSpec || !templateSpec.main) { - throw new Exception('Unknown template object: ' + typeof templateSpec); + // Note: Using env.VM references rather than local var references throughout this section to allow + // for external users to override these as psuedo-supported APIs. + env.VM.checkRevision(templateSpec.compiler); + + function invokePartialWrapper(partial, context, options) { + if (options.hash) { + context = _utils.extend({}, context, options.hash); } - // Note: Using env.VM references rather than local var references throughout this section to allow - // for external users to override these as psuedo-supported APIs. - env.VM.checkRevision(templateSpec.compiler); + partial = env.VM.resolvePartial.call(this, partial, context, options); + var result = env.VM.invokePartial.call(this, partial, context, options); - var invokePartialWrapper = function(partial, indent, name, context, hash, helpers, partials, data, depths) { - if (hash) { - context = Utils.extend({}, context, hash); - } - - var result = env.VM.invokePartial.call(this, partial, name, context, helpers, partials, data, depths); - - if (result == null && env.compile) { - var options = { helpers: helpers, partials: partials, data: data, depths: depths }; - partials[name] = env.compile(partial, { data: data !== undefined, compat: templateSpec.compat }, env); - result = partials[name](context, options); - } - if (result != null) { - if (indent) { - var lines = result.split('\n'); - for (var i = 0, l = lines.length; i < l; i++) { - if (!lines[i] && i + 1 === l) { - break; - } - - lines[i] = indent + lines[i]; + if (result == null && env.compile) { + options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env); + result = options.partials[options.name](context, options); + } + if (result != null) { + if (options.indent) { + var lines = result.split('\n'); + for (var i = 0, l = lines.length; i < l; i++) { + if (!lines[i] && i + 1 === l) { + break; } - result = lines.join('\n'); + + lines[i] = options.indent + lines[i]; } - return result; - } else { - throw new Exception("The partial " + name + " could not be compiled when running in runtime-only mode"); + result = lines.join('\n'); } - }; - - // Just add water - var container = { - lookup: function(depths, name) { - var len = depths.length; - for (var i = 0; i < len; i++) { - if (depths[i] && depths[i][name] != null) { - return depths[i][name]; - } - } - }, - lambda: function(current, context) { - return typeof current === 'function' ? current.call(context) : current; - }, - - escapeExpression: Utils.escapeExpression, - invokePartial: invokePartialWrapper, - - fn: function(i) { - return templateSpec[i]; - }, - - programs: [], - program: function(i, data, depths) { - var programWrapper = this.programs[i], - fn = this.fn(i); - if (data || depths) { - programWrapper = program(this, i, fn, data, depths); - } else if (!programWrapper) { - programWrapper = this.programs[i] = program(this, i, fn); - } - return programWrapper; - }, - - data: function(data, depth) { - while (data && depth--) { - data = data._parent; - } - return data; - }, - merge: function(param, common) { - var ret = param || common; - - if (param && common && (param !== common)) { - ret = Utils.extend({}, common, param); - } - - return ret; - }, - - noop: env.VM.noop, - compilerInfo: templateSpec.compiler - }; - - var ret = function(context, options) { - options = options || {}; - var data = options.data; - - ret._setup(options); - if (!options.partial && templateSpec.useData) { - data = initData(context, data); - } - var depths; - if (templateSpec.useDepths) { - depths = options.depths ? [context].concat(options.depths) : [context]; - } - - return templateSpec.main.call(container, context, container.helpers, container.partials, data, depths); - }; - ret.isTop = true; - - ret._setup = function(options) { - if (!options.partial) { - container.helpers = container.merge(options.helpers, env.helpers); - - if (templateSpec.usePartial) { - container.partials = container.merge(options.partials, env.partials); - } - } else { - container.helpers = options.helpers; - container.partials = options.partials; - } - }; - - ret._child = function(i, data, depths) { - if (templateSpec.useDepths && !depths) { - throw new Exception('must pass parent depths'); - } - - return program(container, i, templateSpec[i], data, depths); - }; - return ret; - } - - __exports__.template = template;function program(container, i, fn, data, depths) { - var prog = function(context, options) { - options = options || {}; - - return fn.call(container, context, container.helpers, container.partials, options.data || data, depths && [context].concat(depths)); - }; - prog.program = i; - prog.depth = depths ? depths.length : 0; - return prog; - } - - __exports__.program = program;function invokePartial(partial, name, context, helpers, partials, data, depths) { - var options = { partial: true, helpers: helpers, partials: partials, data: data, depths: depths }; - - if(partial === undefined) { - throw new Exception("The partial " + name + " could not be found"); - } else if(partial instanceof Function) { - return partial(context, options); + return result; + } else { + throw new _Exception('The partial ' + options.name + ' could not be compiled when running in runtime-only mode'); } } - __exports__.invokePartial = invokePartial;function noop() { return ""; } + // Just add water + var container = { + strict: function strict(obj, name) { + if (!(name in obj)) { + throw new _Exception('"' + name + '" not defined in ' + obj); + } + return obj[name]; + }, + lookup: function lookup(depths, name) { + var len = depths.length; + for (var i = 0; i < len; i++) { + if (depths[i] && depths[i][name] != null) { + return depths[i][name]; + } + } + }, + lambda: function lambda(current, context) { + return typeof current === 'function' ? current.call(context) : current; + }, - __exports__.noop = noop;function initData(context, data) { - if (!data || !('root' in data)) { - data = data ? createFrame(data) : {}; - data.root = context; + escapeExpression: _utils.escapeExpression, + invokePartial: invokePartialWrapper, + + fn: function fn(i) { + return templateSpec[i]; + }, + + programs: [], + program: function program(i, data, declaredBlockParams, blockParams, depths) { + var programWrapper = this.programs[i], + fn = this.fn(i); + if (data || depths || blockParams || declaredBlockParams) { + programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths); + } else if (!programWrapper) { + programWrapper = this.programs[i] = wrapProgram(this, i, fn); + } + return programWrapper; + }, + + data: function data(value, depth) { + while (value && depth--) { + value = value._parent; + } + return value; + }, + merge: function merge(param, common) { + var obj = param || common; + + if (param && common && param !== common) { + obj = _utils.extend({}, common, param); + } + + return obj; + }, + + noop: env.VM.noop, + compilerInfo: templateSpec.compiler + }; + + function ret(context) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + var data = options.data; + + ret._setup(options); + if (!options.partial && templateSpec.useData) { + data = initData(context, data); } - return data; + var depths = undefined, + blockParams = templateSpec.useBlockParams ? [] : undefined; + if (templateSpec.useDepths) { + depths = options.depths ? [context].concat(options.depths) : [context]; + } + + return templateSpec.main.call(container, context, container.helpers, container.partials, data, blockParams, depths); } - }); \ No newline at end of file + ret.isTop = true; + + ret._setup = function (options) { + if (!options.partial) { + container.helpers = container.merge(options.helpers, env.helpers); + + if (templateSpec.usePartial) { + container.partials = container.merge(options.partials, env.partials); + } + } else { + container.helpers = options.helpers; + container.partials = options.partials; + } + }; + + ret._child = function (i, data, blockParams, depths) { + if (templateSpec.useBlockParams && !blockParams) { + throw new _Exception('must pass block params'); + } + if (templateSpec.useDepths && !depths) { + throw new _Exception('must pass parent depths'); + } + + return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths); + }; + return ret; + } + + function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) { + function prog(context) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + return fn.call(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), depths && [context].concat(depths)); + } + prog.program = i; + prog.depth = depths ? depths.length : 0; + prog.blockParams = declaredBlockParams || 0; + return prog; + } + + function resolvePartial(partial, context, options) { + if (!partial) { + partial = options.partials[options.name]; + } else if (!partial.call && !options.name) { + // This is a dynamic partial that returned a string + options.name = partial; + partial = options.partials[partial]; + } + return partial; + } + + function invokePartial(partial, context, options) { + options.partial = true; + + if (partial === undefined) { + throw new _Exception('The partial ' + options.name + ' could not be found'); + } else if (partial instanceof Function) { + return partial(context, options); + } + } + + function noop() { + return ''; + } + + function initData(context, data) { + if (!data || !('root' in data)) { + data = data ? _base.createFrame(data) : {}; + data.root = context; + } + return data; + } +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/safe-string.js b/node_modules/handlebars/dist/amd/handlebars/safe-string.js index 5a2ad31..f2b3d53 100644 --- a/node_modules/handlebars/dist/amd/handlebars/safe-string.js +++ b/node_modules/handlebars/dist/amd/handlebars/safe-string.js @@ -1,15 +1,14 @@ -define( - ["exports"], - function(__exports__) { - "use strict"; - // Build out our basic SafeString type - function SafeString(string) { - this.string = string; - } +define(['exports', 'module'], function (exports, module) { + // Build out our basic SafeString type + 'use strict'; - SafeString.prototype.toString = function() { - return "" + this.string; - }; + function SafeString(string) { + this.string = string; + } - __exports__["default"] = SafeString; - }); \ No newline at end of file + SafeString.prototype.toString = SafeString.prototype.toHTML = function () { + return '' + this.string; + }; + + module.exports = SafeString; +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/handlebars/utils.js b/node_modules/handlebars/dist/amd/handlebars/utils.js index e6372d3..e2d6fff 100644 --- a/node_modules/handlebars/dist/amd/handlebars/utils.js +++ b/node_modules/handlebars/dist/amd/handlebars/utils.js @@ -1,66 +1,84 @@ -define( - ["./safe-string","exports"], - function(__dependency1__, __exports__) { - "use strict"; - /*jshint -W004 */ - var SafeString = __dependency1__["default"]; +define(['exports'], function (exports) { + 'use strict'; - var escape = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`" - }; + exports.__esModule = true; + exports.extend = extend; - var badChars = /[&<>"'`]/g; - var possible = /[&<>"'`]/; + // Older IE versions do not directly support indexOf so we must implement our own, sadly. + exports.indexOf = indexOf; + exports.escapeExpression = escapeExpression; + exports.isEmpty = isEmpty; + exports.blockParams = blockParams; + exports.appendContextPath = appendContextPath; + var escape = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '`': '`' + }; - function escapeChar(chr) { - return escape[chr]; - } + var badChars = /[&<>"'`]/g, + possible = /[&<>"'`]/; - function extend(obj /* , ...source */) { - for (var i = 1; i < arguments.length; i++) { - for (var key in arguments[i]) { - if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { - obj[key] = arguments[i][key]; - } + function escapeChar(chr) { + return escape[chr]; + } + + function extend(obj /* , ...source */) { + for (var i = 1; i < arguments.length; i++) { + for (var key in arguments[i]) { + if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { + obj[key] = arguments[i][key]; } } - - return obj; } - __exports__.extend = extend;var toString = Object.prototype.toString; - __exports__.toString = toString; - // Sourced from lodash - // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt - var isFunction = function(value) { - return typeof value === 'function'; - }; - // fallback for older versions of Chrome and Safari - /* istanbul ignore next */ - if (isFunction(/x/)) { - isFunction = function(value) { - return typeof value === 'function' && toString.call(value) === '[object Function]'; - }; - } - var isFunction; - __exports__.isFunction = isFunction; - /* istanbul ignore next */ - var isArray = Array.isArray || function(value) { - return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false; - }; - __exports__.isArray = isArray; + return obj; + } - function escapeExpression(string) { + var toString = Object.prototype.toString; + + exports.toString = toString; + // Sourced from lodash + // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt + /*eslint-disable func-style, no-var */ + var isFunction = function isFunction(value) { + return typeof value === 'function'; + }; + // fallback for older versions of Chrome and Safari + /* istanbul ignore next */ + if (isFunction(/x/)) { + exports.isFunction = isFunction = function (value) { + return typeof value === 'function' && toString.call(value) === '[object Function]'; + }; + } + var isFunction; + exports.isFunction = isFunction; + /*eslint-enable func-style, no-var */ + + /* istanbul ignore next */ + var isArray = Array.isArray || function (value) { + return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false; + };exports.isArray = isArray; + + function indexOf(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; + } + + function escapeExpression(string) { + if (typeof string !== 'string') { // don't escape SafeStrings, since they're already safe - if (string instanceof SafeString) { - return string.toString(); + if (string && string.toHTML) { + return string.toHTML(); } else if (string == null) { - return ""; + return ''; } else if (!string) { return string + ''; } @@ -68,25 +86,31 @@ define( // Force a string conversion as this will be done by the append regardless and // the regex test will do this transparently behind the scenes, causing issues if // an object's to string has escaped characters in it. - string = "" + string; - - if(!possible.test(string)) { return string; } - return string.replace(badChars, escapeChar); + string = '' + string; } - __exports__.escapeExpression = escapeExpression;function isEmpty(value) { - if (!value && value !== 0) { - return true; - } else if (isArray(value) && value.length === 0) { - return true; - } else { - return false; - } + if (!possible.test(string)) { + return string; } + return string.replace(badChars, escapeChar); + } - __exports__.isEmpty = isEmpty;function appendContextPath(contextPath, id) { - return (contextPath ? contextPath + '.' : '') + id; + function isEmpty(value) { + if (!value && value !== 0) { + return true; + } else if (isArray(value) && value.length === 0) { + return true; + } else { + return false; } + } - __exports__.appendContextPath = appendContextPath; - }); \ No newline at end of file + function blockParams(params, ids) { + params.path = ids; + return params; + } + + function appendContextPath(contextPath, id) { + return (contextPath ? contextPath + '.' : '') + id; + } +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/amd/precompiler.js b/node_modules/handlebars/dist/amd/precompiler.js index 14630db..dc5aac8 100644 --- a/node_modules/handlebars/dist/amd/precompiler.js +++ b/node_modules/handlebars/dist/amd/precompiler.js @@ -1,149 +1,184 @@ -define( - [], - function() { - "use strict"; +define(['exports', 'fs', './handlebars', 'path', 'source-map', 'uglify-js'], function (exports, _fs, _handlebars, _path, _sourceMap, _uglifyJs) { + 'use strict'; - var fs = require('fs'), - Handlebars = require('./index'), - basename = require('path').basename, - uglify = require('uglify-js'); + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; - module.exports.cli = function(opts) { - if (opts.version) { - console.log(Handlebars.VERSION); - return; + /*eslint-disable no-console */ + + var _fs2 = _interopRequire(_fs); + + var _uglify = _interopRequire(_uglifyJs); + + module.exports.cli = function (opts) { + if (opts.version) { + console.log(_handlebars.VERSION); + return; + } + + if (!opts.templates.length) { + throw new _handlebars.Exception('Must define at least one template or directory.'); + } + + opts.templates.forEach(function (template) { + try { + _fs2.statSync(template); + } catch (err) { + throw new _handlebars.Exception('Unable to open template file "' + template + '"'); } + }); - var template = [0]; - if (!opts.templates.length) { - throw new Handlebars.Exception('Must define at least one template or directory.'); + if (opts.simple && opts.min) { + throw new _handlebars.Exception('Unable to minimize simple output'); + } + if (opts.simple && (opts.templates.length !== 1 || _fs2.statSync(opts.templates[0]).isDirectory())) { + throw new _handlebars.Exception('Unable to output multiple templates in simple mode'); + } + + // Convert the known list into a hash + var known = {}; + if (opts.known && !Array.isArray(opts.known)) { + opts.known = [opts.known]; + } + if (opts.known) { + for (var i = 0, len = opts.known.length; i < len; i++) { + known[opts.known[i]] = true; } + } - opts.templates.forEach(function(template) { - try { - fs.statSync(template); - } catch (err) { - throw new Handlebars.Exception('Unable to open template file "' + template + '"'); - } - }); + // Build file extension pattern + var extension = opts.extension.replace(/[\\^$*+?.():=!|{}\-\[\]]/g, function (arg) { + return '\\' + arg; + }); + extension = new RegExp('\\.' + extension + '$'); - if (opts.simple && opts.min) { - throw new Handlebars.Exception('Unable to minimze simple output'); - } - if (opts.simple && (opts.templates.length !== 1 || fs.statSync(opts.templates[0]).isDirectory())) { - throw new Handlebars.Exception('Unable to output multiple templates in simple mode'); - } - - // Convert the known list into a hash - var known = {}; - if (opts.known && !Array.isArray(opts.known)) { - opts.known = [opts.known]; - } - if (opts.known) { - for (var i = 0, len = opts.known.length; i < len; i++) { - known[opts.known[i]] = true; - } - } - - // Build file extension pattern - var extension = opts.extension.replace(/[\\^$*+?.():=!|{}\-\[\]]/g, function(arg) { return '\\' + arg; }); - extension = new RegExp('\\.' + extension + '$'); - - var output = []; - if (!opts.simple) { - if (opts.amd) { - output.push('define([\'' + opts.handlebarPath + 'handlebars.runtime\'], function(Handlebars) {\n Handlebars = Handlebars["default"];'); - } else if (opts.commonjs) { - output.push('var Handlebars = require("' + opts.commonjs + '");'); - } else { - output.push('(function() {\n'); - } - output.push(' var template = Handlebars.template, templates = '); - output.push(opts.namespace); - output.push(' = '); - output.push(opts.namespace); - output.push(' || {};\n'); - } - function processTemplate(template, root) { - var path = template, - stat = fs.statSync(path); - if (stat.isDirectory()) { - fs.readdirSync(template).map(function(file) { - var path = template + '/' + file; - - if (extension.test(path) || fs.statSync(path).isDirectory()) { - processTemplate(path, root || template); - } - }); - } else { - var data = fs.readFileSync(path, 'utf8'); - - if (opts.bom && data.indexOf('\uFEFF') === 0) { - data = data.substring(1); - } - - var options = { - knownHelpers: known, - knownHelpersOnly: opts.o - }; - - if (opts.data) { - options.data = true; - } - - // Clean the template name - if (!root) { - template = basename(template); - } else if (template.indexOf(root) === 0) { - template = template.substring(root.length+1); - } - template = template.replace(extension, ''); - - if (opts.simple) { - output.push(Handlebars.precompile(data, options) + '\n'); - } else if (opts.partial) { - if(opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) { - output.push('return '); - } - output.push('Handlebars.partials[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n'); - } else { - if(opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) { - output.push('return '); - } - output.push('templates[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n'); - } - } - } - - opts.templates.forEach(function(template) { - processTemplate(template, opts.root); - }); - - // Output the content - if (!opts.simple) { - if (opts.amd) { - if(opts.templates.length > 1 || (opts.templates.length == 1 && fs.statSync(opts.templates[0]).isDirectory())) { - if(opts.partial){ - output.push('return Handlebars.partials;\n'); - } else { - output.push('return templates;\n'); - } - } - output.push('});'); - } else if (!opts.commonjs) { - output.push('})();'); - } - } - output = output.join(''); - - if (opts.min) { - output = uglify.minify(output, {fromString: true}).code; - } - - if (opts.output) { - fs.writeFileSync(opts.output, output, 'utf8'); + var output = new _sourceMap.SourceNode(); + if (!opts.simple) { + if (opts.amd) { + output.add('define([\'' + opts.handlebarPath + 'handlebars.runtime\'], function(Handlebars) {\n Handlebars = Handlebars["default"];'); + } else if (opts.commonjs) { + output.add('var Handlebars = require("' + opts.commonjs + '");'); } else { - console.log(output); + output.add('(function() {\n'); } - }; - }); \ No newline at end of file + output.add(' var template = Handlebars.template, templates = '); + if (opts.namespace) { + output.add(opts.namespace); + output.add(' = '); + output.add(opts.namespace); + output.add(' || '); + } + output.add('{};\n'); + } + function processTemplate(template, root) { + var path = template, + stat = _fs2.statSync(path); + if (stat.isDirectory()) { + _fs2.readdirSync(template).map(function (file) { + var childPath = template + '/' + file; + + if (extension.test(childPath) || _fs2.statSync(childPath).isDirectory()) { + processTemplate(childPath, root || template); + } + }); + } else { + var data = _fs2.readFileSync(path, 'utf8'); + + if (opts.bom && data.indexOf('') === 0) { + data = data.substring(1); + } + + var options = { + knownHelpers: known, + knownHelpersOnly: opts.o + }; + + if (opts.map) { + options.srcName = path; + } + if (opts.data) { + options.data = true; + } + + // Clean the template name + if (!root) { + template = _path.basename(template); + } else if (template.indexOf(root) === 0) { + template = template.substring(root.length + 1); + } + template = template.replace(extension, ''); + + var precompiled = _handlebars.precompile(data, options); + + // If we are generating a source map, we have to reconstruct the SourceNode object + if (opts.map) { + var consumer = new _sourceMap.SourceMapConsumer(precompiled.map); + precompiled = _sourceMap.SourceNode.fromStringWithSourceMap(precompiled.code, consumer); + } + + if (opts.simple) { + output.add([precompiled, '\n']); + } else if (opts.partial) { + if (opts.amd && (opts.templates.length == 1 && !_fs2.statSync(opts.templates[0]).isDirectory())) { + output.add('return '); + } + output.add(['Handlebars.partials[\'', template, '\'] = template(', precompiled, ');\n']); + } else { + if (opts.amd && (opts.templates.length == 1 && !_fs2.statSync(opts.templates[0]).isDirectory())) { + output.add('return '); + } + output.add(['templates[\'', template, '\'] = template(', precompiled, ');\n']); + } + } + } + + opts.templates.forEach(function (template) { + processTemplate(template, opts.root); + }); + + // Output the content + if (!opts.simple) { + if (opts.amd) { + if (opts.templates.length > 1 || opts.templates.length == 1 && _fs2.statSync(opts.templates[0]).isDirectory()) { + if (opts.partial) { + output.add('return Handlebars.partials;\n'); + } else { + output.add('return templates;\n'); + } + } + output.add('});'); + } else if (!opts.commonjs) { + output.add('})();'); + } + } + + if (opts.map) { + output.add('\n//# sourceMappingURL=' + opts.map + '\n'); + } + + output = output.toStringWithSourceMap(); + output.map = output.map + ''; + + if (opts.min) { + output = _uglify.minify(output.code, { + fromString: true, + + outSourceMap: opts.map, + inSourceMap: JSON.parse(output.map) + }); + if (opts.map) { + output.code += '\n//# sourceMappingURL=' + opts.map + '\n'; + } + } + + if (opts.map) { + _fs2.writeFileSync(opts.map, output.map, 'utf8'); + } + output = output.code; + + if (opts.output) { + _fs2.writeFileSync(opts.output, output, 'utf8'); + } else { + console.log(output); + } + }; +}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/handlebars.js b/node_modules/handlebars/dist/cjs/handlebars.js index 31a0386..f294436 100644 --- a/node_modules/handlebars/dist/cjs/handlebars.js +++ b/node_modules/handlebars/dist/cjs/handlebars.js @@ -1,39 +1,63 @@ -"use strict"; -/*globals Handlebars: true */ -var Handlebars = require("./handlebars.runtime")["default"]; +'use strict'; + +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + +exports.__esModule = true; + +var _runtime = require('./handlebars.runtime'); + +var _runtime2 = _interopRequireWildcard(_runtime); // Compiler imports -var AST = require("./handlebars/compiler/ast")["default"]; -var Parser = require("./handlebars/compiler/base").parser; -var parse = require("./handlebars/compiler/base").parse; -var Compiler = require("./handlebars/compiler/compiler").Compiler; -var compile = require("./handlebars/compiler/compiler").compile; -var precompile = require("./handlebars/compiler/compiler").precompile; -var JavaScriptCompiler = require("./handlebars/compiler/javascript-compiler")["default"]; -var _create = Handlebars.create; -var create = function() { +var _AST = require('./handlebars/compiler/ast'); + +var _AST2 = _interopRequireWildcard(_AST); + +var _Parser$parse = require('./handlebars/compiler/base'); + +var _Compiler$compile$precompile = require('./handlebars/compiler/compiler'); + +var _JavaScriptCompiler = require('./handlebars/compiler/javascript-compiler'); + +var _JavaScriptCompiler2 = _interopRequireWildcard(_JavaScriptCompiler); + +var _Visitor = require('./handlebars/compiler/visitor'); + +var _Visitor2 = _interopRequireWildcard(_Visitor); + +var _noConflict = require('./handlebars/no-conflict'); + +var _noConflict2 = _interopRequireWildcard(_noConflict); + +var _create = _runtime2['default'].create; +function create() { var hb = _create(); - hb.compile = function(input, options) { - return compile(input, options, hb); + hb.compile = function (input, options) { + return _Compiler$compile$precompile.compile(input, options, hb); }; hb.precompile = function (input, options) { - return precompile(input, options, hb); + return _Compiler$compile$precompile.precompile(input, options, hb); }; - hb.AST = AST; - hb.Compiler = Compiler; - hb.JavaScriptCompiler = JavaScriptCompiler; - hb.Parser = Parser; - hb.parse = parse; + hb.AST = _AST2['default']; + hb.Compiler = _Compiler$compile$precompile.Compiler; + hb.JavaScriptCompiler = _JavaScriptCompiler2['default']; + hb.Parser = _Parser$parse.parser; + hb.parse = _Parser$parse.parse; return hb; -}; +} -Handlebars = create(); -Handlebars.create = create; +var inst = create(); +inst.create = create; -Handlebars['default'] = Handlebars; +_noConflict2['default'](inst); -exports["default"] = Handlebars; \ No newline at end of file +inst.Visitor = _Visitor2['default']; + +inst['default'] = inst; + +exports['default'] = inst; +module.exports = exports['default']; \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/handlebars.runtime.js b/node_modules/handlebars/dist/cjs/handlebars.runtime.js index d19e60c..e52f2fd 100644 --- a/node_modules/handlebars/dist/cjs/handlebars.runtime.js +++ b/node_modules/handlebars/dist/cjs/handlebars.runtime.js @@ -1,35 +1,60 @@ -"use strict"; -/*globals Handlebars: true */ -var base = require("./handlebars/base"); +'use strict'; + +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + +exports.__esModule = true; + +var _import = require('./handlebars/base'); + +var base = _interopRequireWildcard(_import); // Each of these augment the Handlebars object. No need to setup here. // (This is done to easily share code between commonjs and browse envs) -var SafeString = require("./handlebars/safe-string")["default"]; -var Exception = require("./handlebars/exception")["default"]; -var Utils = require("./handlebars/utils"); -var runtime = require("./handlebars/runtime"); + +var _SafeString = require('./handlebars/safe-string'); + +var _SafeString2 = _interopRequireWildcard(_SafeString); + +var _Exception = require('./handlebars/exception'); + +var _Exception2 = _interopRequireWildcard(_Exception); + +var _import2 = require('./handlebars/utils'); + +var Utils = _interopRequireWildcard(_import2); + +var _import3 = require('./handlebars/runtime'); + +var runtime = _interopRequireWildcard(_import3); + +var _noConflict = require('./handlebars/no-conflict'); + +var _noConflict2 = _interopRequireWildcard(_noConflict); // For compatibility and usage outside of module systems, make the Handlebars object a namespace -var create = function() { +function create() { var hb = new base.HandlebarsEnvironment(); Utils.extend(hb, base); - hb.SafeString = SafeString; - hb.Exception = Exception; + hb.SafeString = _SafeString2['default']; + hb.Exception = _Exception2['default']; hb.Utils = Utils; hb.escapeExpression = Utils.escapeExpression; hb.VM = runtime; - hb.template = function(spec) { + hb.template = function (spec) { return runtime.template(spec, hb); }; return hb; -}; +} -var Handlebars = create(); -Handlebars.create = create; +var inst = create(); +inst.create = create; -Handlebars['default'] = Handlebars; +_noConflict2['default'](inst); -exports["default"] = Handlebars; \ No newline at end of file +inst['default'] = inst; + +exports['default'] = inst; +module.exports = exports['default']; \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/handlebars/base.js b/node_modules/handlebars/dist/cjs/handlebars/base.js index 253a667..c7c6a69 100644 --- a/node_modules/handlebars/dist/cjs/handlebars/base.js +++ b/node_modules/handlebars/dist/cjs/handlebars/base.js @@ -1,9 +1,23 @@ -"use strict"; -var Utils = require("./utils"); -var Exception = require("./exception")["default"]; +'use strict'; + +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + +exports.__esModule = true; +exports.HandlebarsEnvironment = HandlebarsEnvironment; +exports.createFrame = createFrame; + +var _import = require('./utils'); + +var Utils = _interopRequireWildcard(_import); + +var _Exception = require('./exception'); + +var _Exception2 = _interopRequireWildcard(_Exception); + +var VERSION = '3.0.1'; +exports.VERSION = VERSION; +var COMPILER_REVISION = 6; -var VERSION = "2.0.0"; -exports.VERSION = VERSION;var COMPILER_REVISION = 6; exports.COMPILER_REVISION = COMPILER_REVISION; var REVISION_CHANGES = { 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it @@ -13,6 +27,7 @@ var REVISION_CHANGES = { 5: '== 2.0.0-alpha.x', 6: '>= 2.0.0-beta.1' }; + exports.REVISION_CHANGES = REVISION_CHANGES; var isArray = Utils.isArray, isFunction = Utils.isFunction, @@ -26,57 +41,62 @@ function HandlebarsEnvironment(helpers, partials) { registerDefaultHelpers(this); } -exports.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = { +HandlebarsEnvironment.prototype = { constructor: HandlebarsEnvironment, logger: logger, log: log, - registerHelper: function(name, fn) { + registerHelper: function registerHelper(name, fn) { if (toString.call(name) === objectType) { - if (fn) { throw new Exception('Arg not supported with multiple helpers'); } + if (fn) { + throw new _Exception2['default']('Arg not supported with multiple helpers'); + } Utils.extend(this.helpers, name); } else { this.helpers[name] = fn; } }, - unregisterHelper: function(name) { + unregisterHelper: function unregisterHelper(name) { delete this.helpers[name]; }, - registerPartial: function(name, partial) { + registerPartial: function registerPartial(name, partial) { if (toString.call(name) === objectType) { - Utils.extend(this.partials, name); + Utils.extend(this.partials, name); } else { + if (typeof partial === 'undefined') { + throw new _Exception2['default']('Attempting to register a partial as undefined'); + } this.partials[name] = partial; } }, - unregisterPartial: function(name) { + unregisterPartial: function unregisterPartial(name) { delete this.partials[name]; } }; function registerDefaultHelpers(instance) { - instance.registerHelper('helperMissing', function(/* [args, ]options */) { - if(arguments.length === 1) { + instance.registerHelper('helperMissing', function () { + if (arguments.length === 1) { // A missing field in a {{foo}} constuct. return undefined; } else { // Someone is actually trying to call something, blow up. - throw new Exception("Missing helper: '" + arguments[arguments.length-1].name + "'"); + throw new _Exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"'); } }); - instance.registerHelper('blockHelperMissing', function(context, options) { + instance.registerHelper('blockHelperMissing', function (context, options) { var inverse = options.inverse, fn = options.fn; - if(context === true) { + if (context === true) { return fn(this); - } else if(context === false || context == null) { + } else if (context === false || context == null) { return inverse(this); } else if (isArray(context)) { - if(context.length > 0) { + if (context.length > 0) { if (options.ids) { options.ids = [options.name]; } @@ -89,91 +109,111 @@ function registerDefaultHelpers(instance) { if (options.data && options.ids) { var data = createFrame(options.data); data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name); - options = {data: data}; + options = { data: data }; } return fn(context, options); } }); - instance.registerHelper('each', function(context, options) { + instance.registerHelper('each', function (context, options) { if (!options) { - throw new Exception('Must pass iterator to #each'); + throw new _Exception2['default']('Must pass iterator to #each'); } - var fn = options.fn, inverse = options.inverse; - var i = 0, ret = "", data; + var fn = options.fn, + inverse = options.inverse, + i = 0, + ret = '', + data = undefined, + contextPath = undefined; - var contextPath; if (options.data && options.ids) { contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; } - if (isFunction(context)) { context = context.call(this); } + if (isFunction(context)) { + context = context.call(this); + } if (options.data) { data = createFrame(options.data); } - if(context && typeof context === 'object') { - if (isArray(context)) { - for(var j = context.length; i 0) { - throw new Exception("Invalid path: " + original, this); - } else if (part === "..") { - depth++; - depthString += '../'; - } else { - this.isScoped = true; - } - } else { - dig.push(part); - } - } - - this.original = original; - this.parts = dig; - this.string = dig.join('.'); - this.depth = depth; - this.idName = depthString + this.string; + scopedId: function scopedId(path) { + return /^\.|this\b/.test(path.original); + }, // an ID is simple if it only has one part, and that part is not // `..` or `this`. - this.isSimple = parts.length === 1 && !this.isScoped && depth === 0; - - this.stringModeValue = this.string; - }, - - PartialNameNode: function(name, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "PARTIAL_NAME"; - this.name = name.original; - }, - - DataNode: function(id, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "DATA"; - this.id = id; - this.stringModeValue = id.stringModeValue; - this.idName = '@' + id.stringModeValue; - }, - - StringNode: function(string, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "STRING"; - this.original = - this.string = - this.stringModeValue = string; - }, - - NumberNode: function(number, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "NUMBER"; - this.original = - this.number = number; - this.stringModeValue = Number(number); - }, - - BooleanNode: function(bool, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "BOOLEAN"; - this.bool = bool; - this.stringModeValue = bool === "true"; - }, - - CommentNode: function(comment, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "comment"; - this.comment = comment; - - this.strip = { - inlineStandalone: true - }; + simpleId: function simpleId(path) { + return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth; + } } }; - // Must be exported as an object rather than the root of the module as the jison lexer -// most modify the object to operate properly. -exports["default"] = AST; \ No newline at end of file +// must modify the object to operate properly. +exports['default'] = AST; +module.exports = exports['default']; \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js b/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js index 8197e07..d4bafe0 100644 --- a/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js +++ b/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js @@ -1,21 +1,46 @@ -"use strict"; -var parser = require("./parser")["default"]; -var AST = require("./ast")["default"]; -var Helpers = require("./helpers"); -var extend = require("../utils").extend; +'use strict'; -exports.parser = parser; +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + +exports.__esModule = true; +exports.parse = parse; + +var _parser = require('./parser'); + +var _parser2 = _interopRequireWildcard(_parser); + +var _AST = require('./ast'); + +var _AST2 = _interopRequireWildcard(_AST); + +var _WhitespaceControl = require('./whitespace-control'); + +var _WhitespaceControl2 = _interopRequireWildcard(_WhitespaceControl); + +var _import = require('./helpers'); + +var Helpers = _interopRequireWildcard(_import); + +var _extend = require('../utils'); + +exports.parser = _parser2['default']; var yy = {}; -extend(yy, Helpers, AST); +_extend.extend(yy, Helpers, _AST2['default']); -function parse(input) { - // Just return if an already-compile AST was passed in. - if (input.constructor === AST.ProgramNode) { return input; } +function parse(input, options) { + // Just return if an already-compiled AST was passed in. + if (input.type === 'Program') { + return input; + } - parser.yy = yy; + _parser2['default'].yy = yy; - return parser.parse(input); -} + // Altering the shared object here, but this is ok as parser is a sync operation + yy.locInfo = function (locInfo) { + return new yy.SourceLocation(options && options.srcName, locInfo); + }; -exports.parse = parse; \ No newline at end of file + var strip = new _WhitespaceControl2['default'](); + return strip.accept(_parser2['default'].parse(input)); +} \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js b/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js new file mode 100644 index 0000000..8c48c8b --- /dev/null +++ b/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js @@ -0,0 +1,164 @@ +'use strict'; + +exports.__esModule = true; +/*global define */ + +var _isArray = require('../utils'); + +var SourceNode = undefined; + +try { + /* istanbul ignore next */ + if (typeof define !== 'function' || !define.amd) { + // We don't support this in AMD environments. For these environments, we asusme that + // they are running on the browser and thus have no need for the source-map library. + var SourceMap = require('source-map'); + SourceNode = SourceMap.SourceNode; + } +} catch (err) {} + +/* istanbul ignore if: tested but not covered in istanbul due to dist build */ +if (!SourceNode) { + SourceNode = function (line, column, srcFile, chunks) { + this.src = ''; + if (chunks) { + this.add(chunks); + } + }; + /* istanbul ignore next */ + SourceNode.prototype = { + add: function add(chunks) { + if (_isArray.isArray(chunks)) { + chunks = chunks.join(''); + } + this.src += chunks; + }, + prepend: function prepend(chunks) { + if (_isArray.isArray(chunks)) { + chunks = chunks.join(''); + } + this.src = chunks + this.src; + }, + toStringWithSourceMap: function toStringWithSourceMap() { + return { code: this.toString() }; + }, + toString: function toString() { + return this.src; + } + }; +} + +function castChunk(chunk, codeGen, loc) { + if (_isArray.isArray(chunk)) { + var ret = []; + + for (var i = 0, len = chunk.length; i < len; i++) { + ret.push(codeGen.wrap(chunk[i], loc)); + } + return ret; + } else if (typeof chunk === 'boolean' || typeof chunk === 'number') { + // Handle primitives that the SourceNode will throw up on + return chunk + ''; + } + return chunk; +} + +function CodeGen(srcFile) { + this.srcFile = srcFile; + this.source = []; +} + +CodeGen.prototype = { + prepend: function prepend(source, loc) { + this.source.unshift(this.wrap(source, loc)); + }, + push: function push(source, loc) { + this.source.push(this.wrap(source, loc)); + }, + + merge: function merge() { + var source = this.empty(); + this.each(function (line) { + source.add([' ', line, '\n']); + }); + return source; + }, + + each: function each(iter) { + for (var i = 0, len = this.source.length; i < len; i++) { + iter(this.source[i]); + } + }, + + empty: function empty() { + var loc = arguments[0] === undefined ? this.currentLocation || { start: {} } : arguments[0]; + + return new SourceNode(loc.start.line, loc.start.column, this.srcFile); + }, + wrap: function wrap(chunk) { + var loc = arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1]; + + if (chunk instanceof SourceNode) { + return chunk; + } + + chunk = castChunk(chunk, this, loc); + + return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk); + }, + + functionCall: function functionCall(fn, type, params) { + params = this.generateList(params); + return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']); + }, + + quotedString: function quotedString(str) { + return '"' + (str + '').replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 + .replace(/\u2029/g, '\\u2029') + '"'; + }, + + objectLiteral: function objectLiteral(obj) { + var pairs = []; + + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + var value = castChunk(obj[key], this); + if (value !== 'undefined') { + pairs.push([this.quotedString(key), ':', value]); + } + } + } + + var ret = this.generateList(pairs); + ret.prepend('{'); + ret.add('}'); + return ret; + }, + + generateList: function generateList(entries, loc) { + var ret = this.empty(loc); + + for (var i = 0, len = entries.length; i < len; i++) { + if (i) { + ret.add(','); + } + + ret.add(castChunk(entries[i], this, loc)); + } + + return ret; + }, + + generateArray: function generateArray(entries, loc) { + var ret = this.generateList(entries, loc); + ret.prepend('['); + ret.add(']'); + + return ret; + } +}; + +exports['default'] = CodeGen; +module.exports = exports['default']; + +/* NOP */ \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js b/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js index 99978ac..4840fa5 100644 --- a/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js +++ b/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js @@ -1,12 +1,27 @@ -"use strict"; -var Exception = require("../exception")["default"]; -var isArray = require("../utils").isArray; +'use strict'; + +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + +exports.__esModule = true; +exports.Compiler = Compiler; +exports.precompile = precompile; +exports.compile = compile; + +var _Exception = require('../exception'); + +var _Exception2 = _interopRequireWildcard(_Exception); + +var _isArray$indexOf = require('../utils'); + +var _AST = require('./ast'); + +var _AST2 = _interopRequireWildcard(_AST); var slice = [].slice; function Compiler() {} -exports.Compiler = Compiler;// the foundHelper register will disambiguate helper lookup from finding a +// the foundHelper register will disambiguate helper lookup from finding a // function in a context. This is necessary for mustache compatibility, which // requires that context functions in blocks are evaluated by blockHelperMissing, // and then proceed as if the resulting value was provided to blockHelperMissing. @@ -14,7 +29,7 @@ exports.Compiler = Compiler;// the foundHelper register will disambiguate helper Compiler.prototype = { compiler: Compiler, - equals: function(other) { + equals: function equals(other) { var len = this.opcodes.length; if (other.opcodes.length !== len) { return false; @@ -31,7 +46,7 @@ Compiler.prototype = { // We know that length is the same between the two arrays because they are directly tied // to the opcode behavior above. len = this.children.length; - for (i = 0; i < len; i++) { + for (var i = 0; i < len; i++) { if (!this.children[i].equals(other.children[i])) { return false; } @@ -42,101 +57,101 @@ Compiler.prototype = { guid: 0, - compile: function(program, options) { + compile: function compile(program, options) { + this.sourceNode = []; this.opcodes = []; this.children = []; - this.depths = {list: []}; this.options = options; this.stringParams = options.stringParams; this.trackIds = options.trackIds; + options.blockParams = options.blockParams || []; + // These changes will propagate to the other compiler components - var knownHelpers = this.options.knownHelpers; - this.options.knownHelpers = { - 'helperMissing': true, - 'blockHelperMissing': true, - 'each': true, + var knownHelpers = options.knownHelpers; + options.knownHelpers = { + helperMissing: true, + blockHelperMissing: true, + each: true, 'if': true, - 'unless': true, + unless: true, 'with': true, - 'log': true, - 'lookup': true + log: true, + lookup: true }; if (knownHelpers) { - for (var name in knownHelpers) { - this.options.knownHelpers[name] = knownHelpers[name]; + for (var _name in knownHelpers) { + if (_name in knownHelpers) { + options.knownHelpers[_name] = knownHelpers[_name]; + } } } return this.accept(program); }, - accept: function(node) { - return this[node.type](node); - }, - - program: function(program) { - var statements = program.statements; - - for(var i=0, l=statements.length; i 1) { + throw new _Exception2['default']('Unsupported number of partial arguments: ' + params.length, partial); + } else if (!params.length) { + params.push({ type: 'PathExpression', parts: [], depth: 0 }); } - if (partial.context) { - this.accept(partial.context); - } else { - this.opcode('getContext', 0); - this.opcode('pushContext'); + var partialName = partial.name.original, + isDynamic = partial.name.type === 'SubExpression'; + if (isDynamic) { + this.accept(partial.name); } - this.opcode('invokePartial', partialName.name, partial.indent || ''); + this.setupFullMustacheParams(partial, undefined, undefined, true); + + var indent = partial.indent || ''; + if (this.options.preventIndent && indent) { + this.opcode('appendContent', indent); + indent = ''; + } + + this.opcode('invokePartial', isDynamic, partialName, indent); this.opcode('append'); }, - content: function(content) { - if (content.string) { - this.opcode('appendContent', content.string); - } - }, + MustacheStatement: function MustacheStatement(mustache) { + this.SubExpression(mustache); // eslint-disable-line new-cap - mustache: function(mustache) { - this.sexpr(mustache.sexpr); - - if(mustache.escaped && !this.options.noEscape) { + if (mustache.escaped && !this.options.noEscape) { this.opcode('appendEscaped'); } else { this.opcode('append'); } }, - ambiguousSexpr: function(sexpr, program, inverse) { - var id = sexpr.id, - name = id.parts[0], - isBlock = program != null || inverse != null; - - this.opcode('getContext', id.depth); - - this.opcode('pushProgram', program); - this.opcode('pushProgram', inverse); - - this.ID(id); - - this.opcode('invokeAmbiguous', name, isBlock); - }, - - simpleSexpr: function(sexpr) { - var id = sexpr.id; - - if (id.type === 'DATA') { - this.DATA(id); - } else if (id.parts.length) { - this.ID(id); - } else { - // Simplified ID for `this` - this.addDepth(id.depth); - this.opcode('getContext', id.depth); - this.opcode('pushContext'); - } - - this.opcode('resolvePossibleLambda'); - }, - - helperSexpr: function(sexpr, program, inverse) { - var params = this.setupFullMustacheParams(sexpr, program, inverse), - id = sexpr.id, - name = id.parts[0]; - - if (this.options.knownHelpers[name]) { - this.opcode('invokeKnownHelper', params.length, name); - } else if (this.options.knownHelpersOnly) { - throw new Exception("You specified knownHelpersOnly, but used the unknown helper " + name, sexpr); - } else { - id.falsy = true; - - this.ID(id); - this.opcode('invokeHelper', params.length, id.original, id.isSimple); + ContentStatement: function ContentStatement(content) { + if (content.value) { + this.opcode('appendContent', content.value); } }, - sexpr: function(sexpr) { + CommentStatement: function CommentStatement() {}, + + SubExpression: function SubExpression(sexpr) { + transformLiteralToPath(sexpr); var type = this.classifySexpr(sexpr); - if (type === "simple") { + if (type === 'simple') { this.simpleSexpr(sexpr); - } else if (type === "helper") { + } else if (type === 'helper') { this.helperSexpr(sexpr); } else { this.ambiguousSexpr(sexpr); } }, + ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) { + var path = sexpr.path, + name = path.parts[0], + isBlock = program != null || inverse != null; - ID: function(id) { - this.addDepth(id.depth); - this.opcode('getContext', id.depth); + this.opcode('getContext', path.depth); - var name = id.parts[0]; - if (!name) { + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + + this.accept(path); + + this.opcode('invokeAmbiguous', name, isBlock); + }, + + simpleSexpr: function simpleSexpr(sexpr) { + this.accept(sexpr.path); + this.opcode('resolvePossibleLambda'); + }, + + helperSexpr: function helperSexpr(sexpr, program, inverse) { + var params = this.setupFullMustacheParams(sexpr, program, inverse), + path = sexpr.path, + name = path.parts[0]; + + if (this.options.knownHelpers[name]) { + this.opcode('invokeKnownHelper', params.length, name); + } else if (this.options.knownHelpersOnly) { + throw new _Exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr); + } else { + path.falsy = true; + + this.accept(path); + this.opcode('invokeHelper', params.length, path.original, _AST2['default'].helpers.simpleId(path)); + } + }, + + PathExpression: function PathExpression(path) { + this.addDepth(path.depth); + this.opcode('getContext', path.depth); + + var name = path.parts[0], + scoped = _AST2['default'].helpers.scopedId(path), + blockParamId = !path.depth && !scoped && this.blockParamIndex(name); + + if (blockParamId) { + this.opcode('lookupBlockParam', blockParamId, path.parts); + } else if (!name) { // Context reference, i.e. `{{foo .}}` or `{{foo ..}}` this.opcode('pushContext'); + } else if (path.data) { + this.options.data = true; + this.opcode('lookupData', path.depth, path.parts); } else { - this.opcode('lookupOnContext', id.parts, id.falsy, id.isScoped); + this.opcode('lookupOnContext', path.parts, path.falsy, scoped); } }, - DATA: function(data) { - this.options.data = true; - this.opcode('lookupData', data.id.depth, data.id.parts); + StringLiteral: function StringLiteral(string) { + this.opcode('pushString', string.value); }, - STRING: function(string) { - this.opcode('pushString', string.string); + NumberLiteral: function NumberLiteral(number) { + this.opcode('pushLiteral', number.value); }, - NUMBER: function(number) { - this.opcode('pushLiteral', number.number); + BooleanLiteral: function BooleanLiteral(bool) { + this.opcode('pushLiteral', bool.value); }, - BOOLEAN: function(bool) { - this.opcode('pushLiteral', bool.bool); + UndefinedLiteral: function UndefinedLiteral() { + this.opcode('pushLiteral', 'undefined'); }, - comment: function() {}, + NullLiteral: function NullLiteral() { + this.opcode('pushLiteral', 'null'); + }, + + Hash: function Hash(hash) { + var pairs = hash.pairs, + i = 0, + l = pairs.length; + + this.opcode('pushHash'); + + for (; i < l; i++) { + this.pushParam(pairs[i].value); + } + while (i--) { + this.opcode('assignToHash', pairs[i].key); + } + this.opcode('popHash'); + }, // HELPERS - opcode: function(name) { - this.opcodes.push({ opcode: name, args: slice.call(arguments, 1) }); + opcode: function opcode(name) { + this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc }); }, - addDepth: function(depth) { - if(depth === 0) { return; } - - if(!this.depths[depth]) { - this.depths[depth] = true; - this.depths.list.push(depth); + addDepth: function addDepth(depth) { + if (!depth) { + return; } + + this.useDepths = true; }, - classifySexpr: function(sexpr) { - var isHelper = sexpr.isHelper; - var isEligible = sexpr.eligibleHelper; - var options = this.options; + classifySexpr: function classifySexpr(sexpr) { + var isSimple = _AST2['default'].helpers.simpleId(sexpr.path); + + var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]); + + // a mustache is an eligible helper if: + // * its id is simple (a single part, not `this` or `..`) + var isHelper = !isBlockParam && _AST2['default'].helpers.helperExpression(sexpr); + + // if a mustache is an eligible helper but not a definite + // helper, it is ambiguous, and will be resolved in a later + // pass or at runtime. + var isEligible = !isBlockParam && (isHelper || isSimple); // if ambiguous, we can possibly resolve the ambiguity now // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc. if (isEligible && !isHelper) { - var name = sexpr.id.parts[0]; + var _name2 = sexpr.path.parts[0], + options = this.options; - if (options.knownHelpers[name]) { + if (options.knownHelpers[_name2]) { isHelper = true; } else if (options.knownHelpersOnly) { isEligible = false; } } - if (isHelper) { return "helper"; } - else if (isEligible) { return "ambiguous"; } - else { return "simple"; } + if (isHelper) { + return 'helper'; + } else if (isEligible) { + return 'ambiguous'; + } else { + return 'simple'; + } }, - pushParams: function(params) { - for(var i=0, l=params.length; i= 0) { + return [depth, param]; + } + } } }; function precompile(input, options, env) { - if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) { - throw new Exception("You must pass a string or Handlebars AST to Handlebars.precompile. You passed " + input); + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _Exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input); } options = options || {}; @@ -386,17 +452,17 @@ function precompile(input, options, env) { options.useDepths = true; } - var ast = env.parse(input); - var environment = new env.Compiler().compile(ast, options); + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options); return new env.JavaScriptCompiler().compile(environment, options); } -exports.precompile = precompile;function compile(input, options, env) { - if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) { - throw new Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + input); - } +function compile(input, _x, env) { + var options = arguments[1] === undefined ? {} : arguments[1]; - options = options || {}; + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _Exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input); + } if (!('data' in options)) { options.data = true; @@ -405,43 +471,43 @@ exports.precompile = precompile;function compile(input, options, env) { options.useDepths = true; } - var compiled; + var compiled = undefined; function compileInput() { - var ast = env.parse(input); - var environment = new env.Compiler().compile(ast, options); - var templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true); + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options), + templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true); return env.template(templateSpec); } // Template is only compiled on first use and cached after that point. - var ret = function(context, options) { + function ret(context, execOptions) { if (!compiled) { compiled = compileInput(); } - return compiled.call(this, context, options); + return compiled.call(this, context, execOptions); + } + ret._setup = function (setupOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._setup(setupOptions); }; - ret._setup = function(options) { + ret._child = function (i, data, blockParams, depths) { if (!compiled) { compiled = compileInput(); } - return compiled._setup(options); - }; - ret._child = function(i, data, depths) { - if (!compiled) { - compiled = compileInput(); - } - return compiled._child(i, data, depths); + return compiled._child(i, data, blockParams, depths); }; return ret; } -exports.compile = compile;function argEquals(a, b) { +function argEquals(a, b) { if (a === b) { return true; } - if (isArray(a) && isArray(b) && a.length === b.length) { + if (_isArray$indexOf.isArray(a) && _isArray$indexOf.isArray(b) && a.length === b.length) { for (var i = 0; i < a.length; i++) { if (!argEquals(a[i], b[i])) { return false; @@ -449,4 +515,13 @@ exports.compile = compile;function argEquals(a, b) { } return true; } +} + +function transformLiteralToPath(sexpr) { + if (!sexpr.path.parts) { + var literal = sexpr.path; + // Casting to string here to make false and 0 literal values play nicely with the rest + // of the system. + sexpr.path = new _AST2['default'].PathExpression(false, 0, [literal.original + ''], literal.original + '', literal.loc); + } } \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js b/node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js index 3e543da..dac4f0c 100644 --- a/node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js +++ b/node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js @@ -1,187 +1,131 @@ -"use strict"; -var Exception = require("../exception")["default"]; +'use strict'; + +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + +exports.__esModule = true; +exports.SourceLocation = SourceLocation; +exports.id = id; +exports.stripFlags = stripFlags; +exports.stripComment = stripComment; +exports.preparePath = preparePath; +exports.prepareMustache = prepareMustache; +exports.prepareRawBlock = prepareRawBlock; +exports.prepareBlock = prepareBlock; + +var _Exception = require('../exception'); + +var _Exception2 = _interopRequireWildcard(_Exception); + +function SourceLocation(source, locInfo) { + this.source = source; + this.start = { + line: locInfo.first_line, + column: locInfo.first_column + }; + this.end = { + line: locInfo.last_line, + column: locInfo.last_column + }; +} + +function id(token) { + if (/^\[.*\]$/.test(token)) { + return token.substr(1, token.length - 2); + } else { + return token; + } +} function stripFlags(open, close) { return { - left: open.charAt(2) === '~', - right: close.charAt(close.length-3) === '~' + open: open.charAt(2) === '~', + close: close.charAt(close.length - 3) === '~' }; } -exports.stripFlags = stripFlags; -function prepareBlock(mustache, program, inverseAndProgram, close, inverted, locInfo) { - /*jshint -W040 */ - if (mustache.sexpr.id.original !== close.path.original) { - throw new Exception(mustache.sexpr.id.original + ' doesn\'t match ' + close.path.original, mustache); +function stripComment(comment) { + return comment.replace(/^\{\{~?\!-?-?/, '').replace(/-?-?~?\}\}$/, ''); +} + +function preparePath(data, parts, locInfo) { + locInfo = this.locInfo(locInfo); + + var original = data ? '@' : '', + dig = [], + depth = 0, + depthString = ''; + + for (var i = 0, l = parts.length; i < l; i++) { + var part = parts[i].part, + + // If we have [] syntax then we do not treat path references as operators, + // i.e. foo.[this] resolves to approximately context.foo['this'] + isLiteral = parts[i].original !== part; + original += (parts[i].separator || '') + part; + + if (!isLiteral && (part === '..' || part === '.' || part === 'this')) { + if (dig.length > 0) { + throw new _Exception2['default']('Invalid path: ' + original, { loc: locInfo }); + } else if (part === '..') { + depth++; + depthString += '../'; + } + } else { + dig.push(part); + } } - var inverse = inverseAndProgram && inverseAndProgram.program; + return new this.PathExpression(data, depth, dig, original, locInfo); +} - var strip = { - left: mustache.strip.left, - right: close.strip.right, +function prepareMustache(path, params, hash, open, strip, locInfo) { + // Must use charAt to support IE pre-10 + var escapeFlag = open.charAt(3) || open.charAt(2), + escaped = escapeFlag !== '{' && escapeFlag !== '&'; - // Determine the standalone candiacy. Basically flag our content as being possibly standalone - // so our parent can determine if we actually are standalone - openStandalone: isNextWhitespace(program.statements), - closeStandalone: isPrevWhitespace((inverse || program).statements) - }; + return new this.MustacheStatement(path, params, hash, escaped, strip, this.locInfo(locInfo)); +} - if (mustache.strip.right) { - omitRight(program.statements, null, true); +function prepareRawBlock(openRawBlock, content, close, locInfo) { + if (openRawBlock.path.original !== close) { + var errorNode = { loc: openRawBlock.path.loc }; + + throw new _Exception2['default'](openRawBlock.path.original + ' doesn\'t match ' + close, errorNode); } - if (inverse) { - var inverseStrip = inverseAndProgram.strip; + locInfo = this.locInfo(locInfo); + var program = new this.Program([content], null, {}, locInfo); - if (inverseStrip.left) { - omitLeft(program.statements, null, true); - } - if (inverseStrip.right) { - omitRight(inverse.statements, null, true); - } - if (close.strip.left) { - omitLeft(inverse.statements, null, true); + return new this.BlockStatement(openRawBlock.path, openRawBlock.params, openRawBlock.hash, program, undefined, {}, {}, {}, locInfo); +} + +function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) { + // When we are chaining inverse calls, we will not have a close path + if (close && close.path && openBlock.path.original !== close.path.original) { + var errorNode = { loc: openBlock.path.loc }; + + throw new _Exception2['default'](openBlock.path.original + ' doesn\'t match ' + close.path.original, errorNode); + } + + program.blockParams = openBlock.blockParams; + + var inverse = undefined, + inverseStrip = undefined; + + if (inverseAndProgram) { + if (inverseAndProgram.chain) { + inverseAndProgram.program.body[0].closeStrip = close.strip; } - // Find standalone else statments - if (isPrevWhitespace(program.statements) - && isNextWhitespace(inverse.statements)) { - - omitLeft(program.statements); - omitRight(inverse.statements); - } - } else { - if (close.strip.left) { - omitLeft(program.statements, null, true); - } + inverseStrip = inverseAndProgram.strip; + inverse = inverseAndProgram.program; } if (inverted) { - return new this.BlockNode(mustache, inverse, program, strip, locInfo); - } else { - return new this.BlockNode(mustache, program, inverse, strip, locInfo); - } -} - -exports.prepareBlock = prepareBlock; -function prepareProgram(statements, isRoot) { - for (var i = 0, l = statements.length; i < l; i++) { - var current = statements[i], - strip = current.strip; - - if (!strip) { - continue; - } - - var _isPrevWhitespace = isPrevWhitespace(statements, i, isRoot, current.type === 'partial'), - _isNextWhitespace = isNextWhitespace(statements, i, isRoot), - - openStandalone = strip.openStandalone && _isPrevWhitespace, - closeStandalone = strip.closeStandalone && _isNextWhitespace, - inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace; - - if (strip.right) { - omitRight(statements, i, true); - } - if (strip.left) { - omitLeft(statements, i, true); - } - - if (inlineStandalone) { - omitRight(statements, i); - - if (omitLeft(statements, i)) { - // If we are on a standalone node, save the indent info for partials - if (current.type === 'partial') { - current.indent = (/([ \t]+$)/).exec(statements[i-1].original) ? RegExp.$1 : ''; - } - } - } - if (openStandalone) { - omitRight((current.program || current.inverse).statements); - - // Strip out the previous content node if it's whitespace only - omitLeft(statements, i); - } - if (closeStandalone) { - // Always strip the next node - omitRight(statements, i); - - omitLeft((current.inverse || current.program).statements); - } + inverted = inverse; + inverse = program; + program = inverted; } - return statements; -} - -exports.prepareProgram = prepareProgram;function isPrevWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = statements.length; - } - - // Nodes that end with newlines are considered whitespace (but are special - // cased for strip operations) - var prev = statements[i-1], - sibling = statements[i-2]; - if (!prev) { - return isRoot; - } - - if (prev.type === 'content') { - return (sibling || !isRoot ? (/\r?\n\s*?$/) : (/(^|\r?\n)\s*?$/)).test(prev.original); - } -} -function isNextWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = -1; - } - - var next = statements[i+1], - sibling = statements[i+2]; - if (!next) { - return isRoot; - } - - if (next.type === 'content') { - return (sibling || !isRoot ? (/^\s*?\r?\n/) : (/^\s*?(\r?\n|$)/)).test(next.original); - } -} - -// Marks the node to the right of the position as omitted. -// I.e. {{foo}}' ' will mark the ' ' node as omitted. -// -// If i is undefined, then the first child will be marked as such. -// -// If mulitple is truthy then all whitespace will be stripped out until non-whitespace -// content is met. -function omitRight(statements, i, multiple) { - var current = statements[i == null ? 0 : i + 1]; - if (!current || current.type !== 'content' || (!multiple && current.rightStripped)) { - return; - } - - var original = current.string; - current.string = current.string.replace(multiple ? (/^\s+/) : (/^[ \t]*\r?\n?/), ''); - current.rightStripped = current.string !== original; -} - -// Marks the node to the left of the position as omitted. -// I.e. ' '{{foo}} will mark the ' ' node as omitted. -// -// If i is undefined then the last child will be marked as such. -// -// If mulitple is truthy then all whitespace will be stripped out until non-whitespace -// content is met. -function omitLeft(statements, i, multiple) { - var current = statements[i == null ? statements.length - 1 : i - 1]; - if (!current || current.type !== 'content' || (!multiple && current.leftStripped)) { - return; - } - - // We omit the last node if it's whitespace only and not preceeded by a non-content node. - var original = current.string; - current.string = current.string.replace(multiple ? (/\s+$/) : (/[ \t]+$/), ''); - current.leftStripped = current.string !== original; - return current.leftStripped; + return new this.BlockStatement(openBlock.path, openBlock.params, openBlock.hash, program, inverse, openBlock.strip, inverseStrip, close && close.strip, this.locInfo(locInfo)); } \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js b/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js index 2b13a21..c77f270 100644 --- a/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js +++ b/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js @@ -1,7 +1,20 @@ -"use strict"; -var COMPILER_REVISION = require("../base").COMPILER_REVISION; -var REVISION_CHANGES = require("../base").REVISION_CHANGES; -var Exception = require("../exception")["default"]; +'use strict'; + +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + +exports.__esModule = true; + +var _COMPILER_REVISION$REVISION_CHANGES = require('../base'); + +var _Exception = require('../exception'); + +var _Exception2 = _interopRequireWildcard(_Exception); + +var _isArray = require('../utils'); + +var _CodeGen = require('./code-gen'); + +var _CodeGen2 = _interopRequireWildcard(_CodeGen); function Literal(value) { this.value = value; @@ -12,45 +25,49 @@ function JavaScriptCompiler() {} JavaScriptCompiler.prototype = { // PUBLIC API: You can override these methods in a subclass to provide // alternative compiled forms for name lookup and buffering semantics - nameLookup: function(parent, name /* , type*/) { + nameLookup: function nameLookup(parent, name /* , type*/) { if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) { - return parent + "." + name; + return [parent, '.', name]; } else { - return parent + "['" + name + "']"; + return [parent, '[\'', name, '\']']; } }, - depthedLookup: function(name) { - this.aliases.lookup = 'this.lookup'; - - return 'lookup(depths, "' + name + '")'; + depthedLookup: function depthedLookup(name) { + return [this.aliasable('this.lookup'), '(depths, "', name, '")']; }, - compilerInfo: function() { - var revision = COMPILER_REVISION, - versions = REVISION_CHANGES[revision]; + compilerInfo: function compilerInfo() { + var revision = _COMPILER_REVISION$REVISION_CHANGES.COMPILER_REVISION, + versions = _COMPILER_REVISION$REVISION_CHANGES.REVISION_CHANGES[revision]; return [revision, versions]; }, - appendToBuffer: function(string) { + appendToBuffer: function appendToBuffer(source, location, explicit) { + // Force a source as this simplifies the merge logic. + if (!_isArray.isArray(source)) { + source = [source]; + } + source = this.source.wrap(source, location); + if (this.environment.isSimple) { - return "return " + string + ";"; + return ['return ', source, ';']; + } else if (explicit) { + // This is a case where the buffer operation occurs as a child of another + // construct, generally braces. We have to explicitly output these buffer + // operations to ensure that the emitted code goes in the correct location. + return ['buffer += ', source, ';']; } else { - return { - appendToBuffer: true, - content: string, - toString: function() { return "buffer += " + string + ";"; } - }; + source.appendToBuffer = true; + return source; } }, - initializeBuffer: function() { - return this.quotedString(""); + initializeBuffer: function initializeBuffer() { + return this.quotedString(''); }, - - namespace: "Handlebars", // END PUBLIC API - compile: function(environment, options, context, asObject) { + compile: function compile(environment, options, context, asObject) { this.environment = environment; this.options = options; this.stringParams = this.options.stringParams; @@ -73,28 +90,34 @@ JavaScriptCompiler.prototype = { this.hashes = []; this.compileStack = []; this.inlineStack = []; + this.blockParams = []; this.compileChildren(environment, options); - this.useDepths = this.useDepths || environment.depths.list.length || this.options.compat; + this.useDepths = this.useDepths || environment.useDepths || this.options.compat; + this.useBlockParams = this.useBlockParams || environment.useBlockParams; var opcodes = environment.opcodes, - opcode, - i, - l; + opcode = undefined, + firstLoc = undefined, + i = undefined, + l = undefined; for (i = 0, l = opcodes.length; i < l; i++) { opcode = opcodes[i]; + this.source.currentLocation = opcode.loc; + firstLoc = firstLoc || opcode.loc; this[opcode.opcode].apply(this, opcode.args); } // Flush any trailing content that might be pending. + this.source.currentLocation = firstLoc; this.pushSource(''); /* istanbul ignore next */ if (this.stackSlot || this.inlineStack.length || this.compileStack.length) { - throw new Exception('Compile completed with content left on stack'); + throw new _Exception2['default']('Compile completed with content left on stack'); } var fn = this.createFunctionContext(asObject); @@ -119,13 +142,27 @@ JavaScriptCompiler.prototype = { if (this.useDepths) { ret.useDepths = true; } + if (this.useBlockParams) { + ret.useBlockParams = true; + } if (this.options.compat) { ret.compat = true; } if (!asObject) { ret.compiler = JSON.stringify(ret.compiler); + + this.source.currentLocation = { start: { line: 1, column: 0 } }; ret = this.objectLiteral(ret); + + if (options.srcName) { + ret = ret.toStringWithSourceMap({ file: options.destName }); + ret.map = ret.map && ret.map.toString(); + } else { + ret = ret.toString(); + } + } else { + ret.compilerOptions = this.options; } return ret; @@ -134,30 +171,43 @@ JavaScriptCompiler.prototype = { } }, - preamble: function() { + preamble: function preamble() { // track the last context pushed into place to allow skipping the // getContext opcode when it would be a noop this.lastContext = 0; - this.source = []; + this.source = new _CodeGen2['default'](this.options.srcName); }, - createFunctionContext: function(asObject) { + createFunctionContext: function createFunctionContext(asObject) { var varDeclarations = ''; var locals = this.stackVars.concat(this.registers.list); - if(locals.length > 0) { - varDeclarations += ", " + locals.join(", "); + if (locals.length > 0) { + varDeclarations += ', ' + locals.join(', '); } // Generate minimizer alias mappings + // + // When using true SourceNodes, this will update all references to the given alias + // as the source nodes are reused in situ. For the non-source node compilation mode, + // aliases will not be used, but this case is already being run on the client and + // we aren't concern about minimizing the template size. + var aliasCount = 0; for (var alias in this.aliases) { - if (this.aliases.hasOwnProperty(alias)) { - varDeclarations += ', ' + alias + '=' + this.aliases[alias]; + // eslint-disable-line guard-for-in + var node = this.aliases[alias]; + + if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) { + varDeclarations += ', alias' + ++aliasCount + '=' + alias; + node.children[0] = 'alias' + aliasCount; } } - var params = ["depth0", "helpers", "partials", "data"]; + var params = ['depth0', 'helpers', 'partials', 'data']; + if (this.useBlockParams || this.useDepths) { + params.push('blockParams'); + } if (this.useDepths) { params.push('depths'); } @@ -170,59 +220,65 @@ JavaScriptCompiler.prototype = { return Function.apply(this, params); } else { - return 'function(' + params.join(',') + ') {\n ' + source + '}'; + return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']); } }, - mergeSource: function(varDeclarations) { - var source = '', - buffer, + mergeSource: function mergeSource(varDeclarations) { + var isSimple = this.environment.isSimple, appendOnly = !this.forceBuffer, - appendFirst; - - for (var i = 0, len = this.source.length; i < len; i++) { - var line = this.source[i]; + appendFirst = undefined, + sourceSeen = undefined, + bufferStart = undefined, + bufferEnd = undefined; + this.source.each(function (line) { if (line.appendToBuffer) { - if (buffer) { - buffer = buffer + '\n + ' + line.content; + if (bufferStart) { + line.prepend(' + '); } else { - buffer = line.content; + bufferStart = line; } + bufferEnd = line; } else { - if (buffer) { - if (!source) { + if (bufferStart) { + if (!sourceSeen) { appendFirst = true; - source = buffer + ';\n '; } else { - source += 'buffer += ' + buffer + ';\n '; + bufferStart.prepend('buffer += '); } - buffer = undefined; + bufferEnd.add(';'); + bufferStart = bufferEnd = undefined; } - source += line + '\n '; - if (!this.environment.isSimple) { + sourceSeen = true; + if (!isSimple) { appendOnly = false; } } - } + }); if (appendOnly) { - if (buffer || !source) { - source += 'return ' + (buffer || '""') + ';\n'; + if (bufferStart) { + bufferStart.prepend('return '); + bufferEnd.add(';'); + } else if (!sourceSeen) { + this.source.push('return "";'); } } else { - varDeclarations += ", buffer = " + (appendFirst ? '' : this.initializeBuffer()); - if (buffer) { - source += 'return buffer + ' + buffer + ';\n'; + varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer()); + + if (bufferStart) { + bufferStart.prepend('return buffer + '); + bufferEnd.add(';'); } else { - source += 'return buffer;\n'; + this.source.push('return buffer;'); } } if (varDeclarations) { - source = 'var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n ') + source; + this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n')); } - return source; + return this.source.merge(); }, // [blockValue] @@ -234,16 +290,15 @@ JavaScriptCompiler.prototype = { // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and // replace it on the stack with the result of properly // invoking blockHelperMissing. - blockValue: function(name) { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; - - var params = [this.contextName(0)]; - this.setupParams(name, 0, params); + blockValue: function blockValue(name) { + var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs(name, 0, params); var blockName = this.popStack(); params.splice(1, 0, blockName); - this.push('blockHelperMissing.call(' + params.join(', ') + ')'); + this.push(this.source.functionCall(blockHelperMissing, 'call', params)); }, // [ambiguousBlockValue] @@ -252,19 +307,18 @@ JavaScriptCompiler.prototype = { // Compiler value, before: lastHelper=value of last found helper, if any // On stack, after, if no lastHelper: same as [blockValue] // On stack, after, if lastHelper: value - ambiguousBlockValue: function() { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; - + ambiguousBlockValue: function ambiguousBlockValue() { // We're being a bit cheeky and reusing the options value from the prior exec - var params = [this.contextName(0)]; - this.setupParams('', 0, params, true); + var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs('', 0, params, true); this.flushInline(); var current = this.topStack(); params.splice(1, 0, current); - this.pushSource("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }"); + this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']); }, // [appendContent] @@ -273,9 +327,11 @@ JavaScriptCompiler.prototype = { // On stack, after: ... // // Appends the string value of `content` to the current buffer - appendContent: function(content) { + appendContent: function appendContent(content) { if (this.pendingContent) { content = this.pendingContent + content; + } else { + this.pendingLocation = this.source.currentLocation; } this.pendingContent = content; @@ -290,14 +346,19 @@ JavaScriptCompiler.prototype = { // // If `value` is truthy, or 0, it is coerced into a string and appended // Otherwise, the empty string is appended - append: function() { - // Force anything that is inlined onto the stack so we don't have duplication - // when we examine local - this.flushInline(); - var local = this.popStack(); - this.pushSource('if (' + local + ' != null) { ' + this.appendToBuffer(local) + ' }'); - if (this.environment.isSimple) { - this.pushSource("else { " + this.appendToBuffer("''") + " }"); + append: function append() { + if (this.isInline()) { + this.replaceStack(function (current) { + return [' != null ? ', current, ' : ""']; + }); + + this.pushSource(this.appendToBuffer(this.popStack())); + } else { + var local = this.popStack(); + this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']); + if (this.environment.isSimple) { + this.pushSource(['else { ', this.appendToBuffer('\'\'', undefined, true), ' }']); + } } }, @@ -307,10 +368,8 @@ JavaScriptCompiler.prototype = { // On stack, after: ... // // Escape `value` and append it to the buffer - appendEscaped: function() { - this.aliases.escapeExpression = 'this.escapeExpression'; - - this.pushSource(this.appendToBuffer("escapeExpression(" + this.popStack() + ")")); + appendEscaped: function appendEscaped() { + this.pushSource(this.appendToBuffer([this.aliasable('this.escapeExpression'), '(', this.popStack(), ')'])); }, // [getContext] @@ -320,7 +379,7 @@ JavaScriptCompiler.prototype = { // Compiler value, after: lastContext=depth // // Set the value of the `lastContext` compiler value to the depth - getContext: function(depth) { + getContext: function getContext(depth) { this.lastContext = depth; }, @@ -330,7 +389,7 @@ JavaScriptCompiler.prototype = { // On stack, after: currentContext, ... // // Pushes the value of the current context onto the stack. - pushContext: function() { + pushContext: function pushContext() { this.pushStackLiteral(this.contextName(this.lastContext)); }, @@ -341,10 +400,8 @@ JavaScriptCompiler.prototype = { // // Looks up the value of `name` on the current context and pushes // it onto the stack. - lookupOnContext: function(parts, falsy, scoped) { - /*jshint -W083 */ - var i = 0, - len = parts.length; + lookupOnContext: function lookupOnContext(parts, falsy, scoped) { + var i = 0; if (!scoped && this.options.compat && !this.lastContext) { // The depthed query is expected to handle the undefined logic for the root level that @@ -354,19 +411,21 @@ JavaScriptCompiler.prototype = { this.pushContext(); } - for (; i < len; i++) { - this.replaceStack(function(current) { - var lookup = this.nameLookup(current, parts[i], 'context'); - // We want to ensure that zero and false are handled properly if the context (falsy flag) - // needs to have the special handling for these values. - if (!falsy) { - return ' != null ? ' + lookup + ' : ' + current; - } else { - // Otherwise we can use generic falsy handling - return ' && ' + lookup; - } - }); - } + this.resolvePath('context', parts, i, falsy); + }, + + // [lookupBlockParam] + // + // On stack, before: ... + // On stack, after: blockParam[name], ... + // + // Looks up the value of `parts` on the given block param and pushes + // it onto the stack. + lookupBlockParam: function lookupBlockParam(blockParamId, parts) { + this.useBlockParams = true; + + this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']); + this.resolvePath('context', parts, 1); }, // [lookupData] @@ -375,19 +434,39 @@ JavaScriptCompiler.prototype = { // On stack, after: data, ... // // Push the data lookup operator - lookupData: function(depth, parts) { - /*jshint -W083 */ + lookupData: function lookupData(depth, parts) { if (!depth) { this.pushStackLiteral('data'); } else { this.pushStackLiteral('this.data(data, ' + depth + ')'); } + this.resolvePath('data', parts, 0, true); + }, + + resolvePath: function resolvePath(type, parts, i, falsy) { + var _this = this; + + if (this.options.strict || this.options.assumeObjects) { + this.push(strictLookup(this.options.strict, this, parts, type)); + return; + } + var len = parts.length; - for (var i = 0; i < len; i++) { - this.replaceStack(function(current) { - return ' && ' + this.nameLookup(current, parts[i], 'data'); + for (; i < len; i++) { + /*eslint-disable no-loop-func */ + this.replaceStack(function (current) { + var lookup = _this.nameLookup(current, parts[i], type); + // We want to ensure that zero and false are handled properly if the context (falsy flag) + // needs to have the special handling for these values. + if (!falsy) { + return [' != null ? ', lookup, ' : ', current]; + } else { + // Otherwise we can use generic falsy handling + return [' && ', lookup]; + } }); + /*eslint-enable no-loop-func */ } }, @@ -398,10 +477,8 @@ JavaScriptCompiler.prototype = { // // If the `value` is a lambda, replace it on the stack by // the return value of the lambda - resolvePossibleLambda: function() { - this.aliases.lambda = 'this.lambda'; - - this.push('lambda(' + this.popStack() + ', ' + this.contextName(0) + ')'); + resolvePossibleLambda: function resolvePossibleLambda() { + this.push([this.aliasable('this.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']); }, // [pushStringParam] @@ -412,13 +489,13 @@ JavaScriptCompiler.prototype = { // This opcode is designed for use in string mode, which // provides the string value of a parameter along with its // depth rather than resolving it immediately. - pushStringParam: function(string, type) { + pushStringParam: function pushStringParam(string, type) { this.pushContext(); this.pushString(type); // If it's a subexpression, the string result // will be pushed after this opcode. - if (type !== 'sexpr') { + if (type !== 'SubExpression') { if (typeof string === 'string') { this.pushString(string); } else { @@ -427,9 +504,7 @@ JavaScriptCompiler.prototype = { } }, - emptyHash: function() { - this.pushStackLiteral('{}'); - + emptyHash: function emptyHash(omitEmpty) { if (this.trackIds) { this.push('{}'); // hashIds } @@ -437,26 +512,27 @@ JavaScriptCompiler.prototype = { this.push('{}'); // hashContexts this.push('{}'); // hashTypes } + this.pushStackLiteral(omitEmpty ? 'undefined' : '{}'); }, - pushHash: function() { + pushHash: function pushHash() { if (this.hash) { this.hashes.push(this.hash); } - this.hash = {values: [], types: [], contexts: [], ids: []}; + this.hash = { values: [], types: [], contexts: [], ids: [] }; }, - popHash: function() { + popHash: function popHash() { var hash = this.hash; this.hash = this.hashes.pop(); if (this.trackIds) { - this.push('{' + hash.ids.join(',') + '}'); + this.push(this.objectLiteral(hash.ids)); } if (this.stringParams) { - this.push('{' + hash.contexts.join(',') + '}'); - this.push('{' + hash.types.join(',') + '}'); + this.push(this.objectLiteral(hash.contexts)); + this.push(this.objectLiteral(hash.types)); } - this.push('{\n ' + hash.values.join(',\n ') + '\n }'); + this.push(this.objectLiteral(hash.values)); }, // [pushString] @@ -465,21 +541,10 @@ JavaScriptCompiler.prototype = { // On stack, after: quotedString(string), ... // // Push a quoted version of `string` onto the stack - pushString: function(string) { + pushString: function pushString(string) { this.pushStackLiteral(this.quotedString(string)); }, - // [push] - // - // On stack, before: ... - // On stack, after: expr, ... - // - // Push an expression onto the stack - push: function(expr) { - this.inlineStack.push(expr); - return expr; - }, - // [pushLiteral] // // On stack, before: ... @@ -488,7 +553,7 @@ JavaScriptCompiler.prototype = { // Pushes a value onto the stack. This operation prevents // the compiler from creating a temporary variable to hold // it. - pushLiteral: function(value) { + pushLiteral: function pushLiteral(value) { this.pushStackLiteral(value); }, @@ -500,7 +565,7 @@ JavaScriptCompiler.prototype = { // Push a program expression onto the stack. This takes // a compile-time guid and converts it into a runtime-accessible // expression. - pushProgram: function(guid) { + pushProgram: function pushProgram(guid) { if (guid != null) { this.pushStackLiteral(this.programExpression(guid)); } else { @@ -517,14 +582,18 @@ JavaScriptCompiler.prototype = { // and pushes the helper's return value onto the stack. // // If the helper is not found, `helperMissing` is called. - invokeHelper: function(paramSize, name, isSimple) { - this.aliases.helperMissing = 'helpers.helperMissing'; + invokeHelper: function invokeHelper(paramSize, name, isSimple) { + var nonHelper = this.popStack(), + helper = this.setupHelper(paramSize, name), + simple = isSimple ? [helper.name, ' || '] : ''; - var nonHelper = this.popStack(); - var helper = this.setupHelper(paramSize, name); + var lookup = ['('].concat(simple, nonHelper); + if (!this.options.strict) { + lookup.push(' || ', this.aliasable('helpers.helperMissing')); + } + lookup.push(')'); - var lookup = (isSimple ? helper.name + ' || ' : '') + nonHelper + ' || helperMissing'; - this.push('((' + lookup + ').call(' + helper.callParams + '))'); + this.push(this.source.functionCall(lookup, 'call', helper.callParams)); }, // [invokeKnownHelper] @@ -534,9 +603,9 @@ JavaScriptCompiler.prototype = { // // This operation is used when the helper is known to exist, // so a `helperMissing` fallback is not required. - invokeKnownHelper: function(paramSize, name) { + invokeKnownHelper: function invokeKnownHelper(paramSize, name) { var helper = this.setupHelper(paramSize, name); - this.push(helper.name + ".call(" + helper.callParams + ")"); + this.push(this.source.functionCall(helper.name, 'call', helper.callParams)); }, // [invokeAmbiguous] @@ -551,9 +620,7 @@ JavaScriptCompiler.prototype = { // This operation emits more code than the other options, // and can be avoided by passing the `knownHelpers` and // `knownHelpersOnly` flags at compile-time. - invokeAmbiguous: function(name, helperCall) { - this.aliases.functionType = '"function"'; - this.aliases.helperMissing = 'helpers.helperMissing'; + invokeAmbiguous: function invokeAmbiguous(name, helperCall) { this.useRegister('helper'); var nonHelper = this.popStack(); @@ -563,10 +630,13 @@ JavaScriptCompiler.prototype = { var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); - this.push( - '((helper = (helper = ' + helperName + ' || ' + nonHelper + ') != null ? helper : helperMissing' - + (helper.paramsInit ? '),(' + helper.paramsInit : '') + '),' - + '(typeof helper === functionType ? helper.call(' + helper.callParams + ') : helper))'); + var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')']; + if (!this.options.strict) { + lookup[0] = '(helper = '; + lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing')); + } + + this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']); }, // [invokePartial] @@ -576,19 +646,34 @@ JavaScriptCompiler.prototype = { // // This operation pops off a context, invokes a partial with that context, // and pushes the result of the invocation back. - invokePartial: function(name, indent) { - var params = [this.nameLookup('partials', name, 'partial'), "'" + indent + "'", "'" + name + "'", this.popStack(), this.popStack(), "helpers", "partials"]; + invokePartial: function invokePartial(isDynamic, name, indent) { + var params = [], + options = this.setupParams(name, 1, params, false); - if (this.options.data) { - params.push("data"); - } else if (this.options.compat) { - params.push('undefined'); + if (isDynamic) { + name = this.popStack(); + delete options.name; } + + if (indent) { + options.indent = JSON.stringify(indent); + } + options.helpers = 'helpers'; + options.partials = 'partials'; + + if (!isDynamic) { + params.unshift(this.nameLookup('partials', name, 'partial')); + } else { + params.unshift(name); + } + if (this.options.compat) { - params.push('depths'); + options.depths = 'depths'; } + options = this.objectLiteral(options); + params.push(options); - this.push("this.invokePartial(" + params.join(", ") + ")"); + this.push(this.source.functionCall('this.invokePartial', '', params)); }, // [assignToHash] @@ -597,11 +682,11 @@ JavaScriptCompiler.prototype = { // On stack, after: ..., hash, ... // // Pops a value off the stack and assigns it to the current hash - assignToHash: function(key) { + assignToHash: function assignToHash(key) { var value = this.popStack(), - context, - type, - id; + context = undefined, + type = undefined, + id = undefined; if (this.trackIds) { id = this.popStack(); @@ -613,21 +698,23 @@ JavaScriptCompiler.prototype = { var hash = this.hash; if (context) { - hash.contexts.push("'" + key + "': " + context); + hash.contexts[key] = context; } if (type) { - hash.types.push("'" + key + "': " + type); + hash.types[key] = type; } if (id) { - hash.ids.push("'" + key + "': " + id); + hash.ids[key] = id; } - hash.values.push("'" + key + "': (" + value + ")"); + hash.values[key] = value; }, - pushId: function(type, name) { - if (type === 'ID' || type === 'DATA') { + pushId: function pushId(type, name, child) { + if (type === 'BlockParam') { + this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : '')); + } else if (type === 'PathExpression') { this.pushString(name); - } else if (type === 'sexpr') { + } else if (type === 'SubExpression') { this.pushStackLiteral('true'); } else { this.pushStackLiteral('null'); @@ -638,17 +725,19 @@ JavaScriptCompiler.prototype = { compiler: JavaScriptCompiler, - compileChildren: function(environment, options) { - var children = environment.children, child, compiler; + compileChildren: function compileChildren(environment, options) { + var children = environment.children, + child = undefined, + compiler = undefined; - for(var i=0, l=children.length; i this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); } + if (this.stackSlot > this.stackVars.length) { + this.stackVars.push('stack' + this.stackSlot); + } return this.topStackName(); }, - topStackName: function() { - return "stack" + this.stackSlot; + topStackName: function topStackName() { + return 'stack' + this.stackSlot; }, - flushInline: function() { + flushInline: function flushInline() { var inlineStack = this.inlineStack; - if (inlineStack.length) { - this.inlineStack = []; - for (var i = 0, len = inlineStack.length; i < len; i++) { - var entry = inlineStack[i]; - if (entry instanceof Literal) { - this.compileStack.push(entry); - } else { - this.pushStack(entry); - } + this.inlineStack = []; + for (var i = 0, len = inlineStack.length; i < len; i++) { + var entry = inlineStack[i]; + /* istanbul ignore if */ + if (entry instanceof Literal) { + this.compileStack.push(entry); + } else { + var stack = this.incrStack(); + this.pushSource([stack, ' = ', entry, ';']); + this.compileStack.push(stack); } } }, - isInline: function() { + isInline: function isInline() { return this.inlineStack.length; }, - popStack: function(wrapped) { + popStack: function popStack(wrapped) { var inline = this.isInline(), item = (inline ? this.inlineStack : this.compileStack).pop(); - if (!wrapped && (item instanceof Literal)) { + if (!wrapped && item instanceof Literal) { return item.value; } else { if (!inline) { /* istanbul ignore next */ if (!this.stackSlot) { - throw new Exception('Invalid stack pop'); + throw new _Exception2['default']('Invalid stack pop'); } this.stackSlot--; } @@ -800,10 +895,11 @@ JavaScriptCompiler.prototype = { } }, - topStack: function() { - var stack = (this.isInline() ? this.inlineStack : this.compileStack), + topStack: function topStack() { + var stack = this.isInline() ? this.inlineStack : this.compileStack, item = stack[stack.length - 1]; + /* istanbul ignore if */ if (item instanceof Literal) { return item.value; } else { @@ -811,7 +907,7 @@ JavaScriptCompiler.prototype = { } }, - contextName: function(context) { + contextName: function contextName(context) { if (this.useDepths && context) { return 'depths[' + context + ']'; } else { @@ -819,43 +915,47 @@ JavaScriptCompiler.prototype = { } }, - quotedString: function(str) { - return '"' + str - .replace(/\\/g, '\\\\') - .replace(/"/g, '\\"') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 - .replace(/\u2029/g, '\\u2029') + '"'; + quotedString: function quotedString(str) { + return this.source.quotedString(str); }, - objectLiteral: function(obj) { - var pairs = []; + objectLiteral: function objectLiteral(obj) { + return this.source.objectLiteral(obj); + }, - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - pairs.push(this.quotedString(key) + ':' + obj[key]); - } + aliasable: function aliasable(name) { + var ret = this.aliases[name]; + if (ret) { + ret.referenceCount++; + return ret; } - return '{' + pairs.join(',') + '}'; + ret = this.aliases[name] = this.source.wrap(name); + ret.aliasable = true; + ret.referenceCount = 1; + + return ret; }, - setupHelper: function(paramSize, name, blockHelper) { + setupHelper: function setupHelper(paramSize, name, blockHelper) { var params = [], - paramsInit = this.setupParams(name, paramSize, params, blockHelper); + paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper); var foundHelper = this.nameLookup('helpers', name, 'helper'); return { params: params, paramsInit: paramsInit, name: foundHelper, - callParams: [this.contextName(0)].concat(params).join(", ") + callParams: [this.contextName(0)].concat(params) }; }, - setupOptions: function(helper, paramSize, params) { - var options = {}, contexts = [], types = [], ids = [], param, inverse, program; + setupParams: function setupParams(helper, paramSize, params) { + var options = {}, + contexts = [], + types = [], + ids = [], + param = undefined; options.name = this.quotedString(helper); options.hash = this.popStack(); @@ -868,22 +968,14 @@ JavaScriptCompiler.prototype = { options.hashContexts = this.popStack(); } - inverse = this.popStack(); - program = this.popStack(); + var inverse = this.popStack(), + program = this.popStack(); // Avoid setting fn and inverse if neither are set. This allows // helpers to do a check for `if (options.fn)` if (program || inverse) { - if (!program) { - program = 'this.noop'; - } - - if (!inverse) { - inverse = 'this.noop'; - } - - options.fn = program; - options.inverse = inverse; + options.fn = program || 'this.noop'; + options.inverse = inverse || 'this.noop'; } // The parameters go on to the stack in order (making sure that they are evaluated in order) @@ -903,29 +995,29 @@ JavaScriptCompiler.prototype = { } if (this.trackIds) { - options.ids = "[" + ids.join(",") + "]"; + options.ids = this.source.generateArray(ids); } if (this.stringParams) { - options.types = "[" + types.join(",") + "]"; - options.contexts = "[" + contexts.join(",") + "]"; + options.types = this.source.generateArray(types); + options.contexts = this.source.generateArray(contexts); } if (this.options.data) { - options.data = "data"; + options.data = 'data'; + } + if (this.useBlockParams) { + options.blockParams = 'blockParams'; } - return options; }, - // the params and contexts arguments are passed in arrays - // to fill in - setupParams: function(helperName, paramSize, params, useRegister) { - var options = this.objectLiteral(this.setupOptions(helperName, paramSize, params)); - + setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) { + var options = this.setupParams(helper, paramSize, params, true); + options = this.objectLiteral(options); if (useRegister) { this.useRegister('options'); params.push('options'); - return 'options=' + options; + return ['options=', options]; } else { params.push(options); return ''; @@ -933,32 +1025,38 @@ JavaScriptCompiler.prototype = { } }; -var reservedWords = ( - "break else new var" + - " case finally return void" + - " catch for switch while" + - " continue function this with" + - " default if throw" + - " delete in try" + - " do instanceof typeof" + - " abstract enum int short" + - " boolean export interface static" + - " byte extends long super" + - " char final native synchronized" + - " class float package throws" + - " const goto private transient" + - " debugger implements protected volatile" + - " double import public let yield" -).split(" "); +(function () { + var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' '); -var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; + var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; -for(var i=0, l=reservedWords.length; i 2) { - expected.push("'" + this.terminals_[p] + "'"); - } - if (this.lexer.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); + }, + table: [{ 3: 1, 4: 2, 5: [2, 43], 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: [1, 11], 14: [1, 18], 15: 16, 17: [1, 21], 22: 14, 25: 15, 27: [1, 19], 32: [1, 20], 37: [2, 2], 42: [2, 2], 45: [2, 2], 46: [1, 12], 49: [1, 13], 53: [1, 17] }, { 1: [2, 1] }, { 5: [2, 44], 13: [2, 44], 14: [2, 44], 17: [2, 44], 27: [2, 44], 32: [2, 44], 37: [2, 44], 42: [2, 44], 45: [2, 44], 46: [2, 44], 49: [2, 44], 53: [2, 44] }, { 5: [2, 3], 13: [2, 3], 14: [2, 3], 17: [2, 3], 27: [2, 3], 32: [2, 3], 37: [2, 3], 42: [2, 3], 45: [2, 3], 46: [2, 3], 49: [2, 3], 53: [2, 3] }, { 5: [2, 4], 13: [2, 4], 14: [2, 4], 17: [2, 4], 27: [2, 4], 32: [2, 4], 37: [2, 4], 42: [2, 4], 45: [2, 4], 46: [2, 4], 49: [2, 4], 53: [2, 4] }, { 5: [2, 5], 13: [2, 5], 14: [2, 5], 17: [2, 5], 27: [2, 5], 32: [2, 5], 37: [2, 5], 42: [2, 5], 45: [2, 5], 46: [2, 5], 49: [2, 5], 53: [2, 5] }, { 5: [2, 6], 13: [2, 6], 14: [2, 6], 17: [2, 6], 27: [2, 6], 32: [2, 6], 37: [2, 6], 42: [2, 6], 45: [2, 6], 46: [2, 6], 49: [2, 6], 53: [2, 6] }, { 5: [2, 7], 13: [2, 7], 14: [2, 7], 17: [2, 7], 27: [2, 7], 32: [2, 7], 37: [2, 7], 42: [2, 7], 45: [2, 7], 46: [2, 7], 49: [2, 7], 53: [2, 7] }, { 5: [2, 8], 13: [2, 8], 14: [2, 8], 17: [2, 8], 27: [2, 8], 32: [2, 8], 37: [2, 8], 42: [2, 8], 45: [2, 8], 46: [2, 8], 49: [2, 8], 53: [2, 8] }, { 18: 22, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 33, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 4: 34, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 37: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 4: 35, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 12: 36, 14: [1, 18] }, { 18: 38, 54: 37, 58: 39, 59: [1, 40], 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 9], 13: [2, 9], 14: [2, 9], 16: [2, 9], 17: [2, 9], 27: [2, 9], 32: [2, 9], 37: [2, 9], 42: [2, 9], 45: [2, 9], 46: [2, 9], 49: [2, 9], 53: [2, 9] }, { 18: 41, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 42, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 43, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 31: [2, 73], 47: 44, 59: [2, 73], 66: [2, 73], 74: [2, 73], 75: [2, 73], 76: [2, 73], 77: [2, 73], 78: [2, 73], 79: [2, 73] }, { 21: [2, 30], 31: [2, 30], 52: [2, 30], 59: [2, 30], 62: [2, 30], 66: [2, 30], 69: [2, 30], 74: [2, 30], 75: [2, 30], 76: [2, 30], 77: [2, 30], 78: [2, 30], 79: [2, 30] }, { 21: [2, 31], 31: [2, 31], 52: [2, 31], 59: [2, 31], 62: [2, 31], 66: [2, 31], 69: [2, 31], 74: [2, 31], 75: [2, 31], 76: [2, 31], 77: [2, 31], 78: [2, 31], 79: [2, 31] }, { 21: [2, 32], 31: [2, 32], 52: [2, 32], 59: [2, 32], 62: [2, 32], 66: [2, 32], 69: [2, 32], 74: [2, 32], 75: [2, 32], 76: [2, 32], 77: [2, 32], 78: [2, 32], 79: [2, 32] }, { 21: [2, 33], 31: [2, 33], 52: [2, 33], 59: [2, 33], 62: [2, 33], 66: [2, 33], 69: [2, 33], 74: [2, 33], 75: [2, 33], 76: [2, 33], 77: [2, 33], 78: [2, 33], 79: [2, 33] }, { 21: [2, 34], 31: [2, 34], 52: [2, 34], 59: [2, 34], 62: [2, 34], 66: [2, 34], 69: [2, 34], 74: [2, 34], 75: [2, 34], 76: [2, 34], 77: [2, 34], 78: [2, 34], 79: [2, 34] }, { 21: [2, 35], 31: [2, 35], 52: [2, 35], 59: [2, 35], 62: [2, 35], 66: [2, 35], 69: [2, 35], 74: [2, 35], 75: [2, 35], 76: [2, 35], 77: [2, 35], 78: [2, 35], 79: [2, 35] }, { 21: [2, 36], 31: [2, 36], 52: [2, 36], 59: [2, 36], 62: [2, 36], 66: [2, 36], 69: [2, 36], 74: [2, 36], 75: [2, 36], 76: [2, 36], 77: [2, 36], 78: [2, 36], 79: [2, 36] }, { 21: [2, 40], 31: [2, 40], 52: [2, 40], 59: [2, 40], 62: [2, 40], 66: [2, 40], 69: [2, 40], 74: [2, 40], 75: [2, 40], 76: [2, 40], 77: [2, 40], 78: [2, 40], 79: [2, 40], 81: [1, 45] }, { 66: [1, 32], 80: 46 }, { 21: [2, 42], 31: [2, 42], 52: [2, 42], 59: [2, 42], 62: [2, 42], 66: [2, 42], 69: [2, 42], 74: [2, 42], 75: [2, 42], 76: [2, 42], 77: [2, 42], 78: [2, 42], 79: [2, 42], 81: [2, 42] }, { 50: 47, 52: [2, 77], 59: [2, 77], 66: [2, 77], 74: [2, 77], 75: [2, 77], 76: [2, 77], 77: [2, 77], 78: [2, 77], 79: [2, 77] }, { 23: 48, 36: 50, 37: [1, 52], 41: 51, 42: [1, 53], 43: 49, 45: [2, 49] }, { 26: 54, 41: 55, 42: [1, 53], 45: [2, 51] }, { 16: [1, 56] }, { 31: [2, 81], 55: 57, 59: [2, 81], 66: [2, 81], 74: [2, 81], 75: [2, 81], 76: [2, 81], 77: [2, 81], 78: [2, 81], 79: [2, 81] }, { 31: [2, 37], 59: [2, 37], 66: [2, 37], 74: [2, 37], 75: [2, 37], 76: [2, 37], 77: [2, 37], 78: [2, 37], 79: [2, 37] }, { 31: [2, 38], 59: [2, 38], 66: [2, 38], 74: [2, 38], 75: [2, 38], 76: [2, 38], 77: [2, 38], 78: [2, 38], 79: [2, 38] }, { 18: 58, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 28: 59, 31: [2, 53], 59: [2, 53], 66: [2, 53], 69: [2, 53], 74: [2, 53], 75: [2, 53], 76: [2, 53], 77: [2, 53], 78: [2, 53], 79: [2, 53] }, { 31: [2, 59], 33: 60, 59: [2, 59], 66: [2, 59], 69: [2, 59], 74: [2, 59], 75: [2, 59], 76: [2, 59], 77: [2, 59], 78: [2, 59], 79: [2, 59] }, { 19: 61, 21: [2, 45], 59: [2, 45], 66: [2, 45], 74: [2, 45], 75: [2, 45], 76: [2, 45], 77: [2, 45], 78: [2, 45], 79: [2, 45] }, { 18: 65, 31: [2, 75], 48: 62, 57: 63, 58: 66, 59: [1, 40], 63: 64, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 66: [1, 70] }, { 21: [2, 39], 31: [2, 39], 52: [2, 39], 59: [2, 39], 62: [2, 39], 66: [2, 39], 69: [2, 39], 74: [2, 39], 75: [2, 39], 76: [2, 39], 77: [2, 39], 78: [2, 39], 79: [2, 39], 81: [1, 45] }, { 18: 65, 51: 71, 52: [2, 79], 57: 72, 58: 66, 59: [1, 40], 63: 73, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 24: 74, 45: [1, 75] }, { 45: [2, 50] }, { 4: 76, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 37: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 45: [2, 19] }, { 18: 77, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 4: 78, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 24: 79, 45: [1, 75] }, { 45: [2, 52] }, { 5: [2, 10], 13: [2, 10], 14: [2, 10], 17: [2, 10], 27: [2, 10], 32: [2, 10], 37: [2, 10], 42: [2, 10], 45: [2, 10], 46: [2, 10], 49: [2, 10], 53: [2, 10] }, { 18: 65, 31: [2, 83], 56: 80, 57: 81, 58: 66, 59: [1, 40], 63: 82, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 59: [2, 85], 60: 83, 62: [2, 85], 66: [2, 85], 74: [2, 85], 75: [2, 85], 76: [2, 85], 77: [2, 85], 78: [2, 85], 79: [2, 85] }, { 18: 65, 29: 84, 31: [2, 55], 57: 85, 58: 66, 59: [1, 40], 63: 86, 64: 67, 65: 68, 66: [1, 69], 69: [2, 55], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 65, 31: [2, 61], 34: 87, 57: 88, 58: 66, 59: [1, 40], 63: 89, 64: 67, 65: 68, 66: [1, 69], 69: [2, 61], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 65, 20: 90, 21: [2, 47], 57: 91, 58: 66, 59: [1, 40], 63: 92, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 31: [1, 93] }, { 31: [2, 74], 59: [2, 74], 66: [2, 74], 74: [2, 74], 75: [2, 74], 76: [2, 74], 77: [2, 74], 78: [2, 74], 79: [2, 74] }, { 31: [2, 76] }, { 21: [2, 24], 31: [2, 24], 52: [2, 24], 59: [2, 24], 62: [2, 24], 66: [2, 24], 69: [2, 24], 74: [2, 24], 75: [2, 24], 76: [2, 24], 77: [2, 24], 78: [2, 24], 79: [2, 24] }, { 21: [2, 25], 31: [2, 25], 52: [2, 25], 59: [2, 25], 62: [2, 25], 66: [2, 25], 69: [2, 25], 74: [2, 25], 75: [2, 25], 76: [2, 25], 77: [2, 25], 78: [2, 25], 79: [2, 25] }, { 21: [2, 27], 31: [2, 27], 52: [2, 27], 62: [2, 27], 65: 94, 66: [1, 95], 69: [2, 27] }, { 21: [2, 89], 31: [2, 89], 52: [2, 89], 62: [2, 89], 66: [2, 89], 69: [2, 89] }, { 21: [2, 42], 31: [2, 42], 52: [2, 42], 59: [2, 42], 62: [2, 42], 66: [2, 42], 67: [1, 96], 69: [2, 42], 74: [2, 42], 75: [2, 42], 76: [2, 42], 77: [2, 42], 78: [2, 42], 79: [2, 42], 81: [2, 42] }, { 21: [2, 41], 31: [2, 41], 52: [2, 41], 59: [2, 41], 62: [2, 41], 66: [2, 41], 69: [2, 41], 74: [2, 41], 75: [2, 41], 76: [2, 41], 77: [2, 41], 78: [2, 41], 79: [2, 41], 81: [2, 41] }, { 52: [1, 97] }, { 52: [2, 78], 59: [2, 78], 66: [2, 78], 74: [2, 78], 75: [2, 78], 76: [2, 78], 77: [2, 78], 78: [2, 78], 79: [2, 78] }, { 52: [2, 80] }, { 5: [2, 12], 13: [2, 12], 14: [2, 12], 17: [2, 12], 27: [2, 12], 32: [2, 12], 37: [2, 12], 42: [2, 12], 45: [2, 12], 46: [2, 12], 49: [2, 12], 53: [2, 12] }, { 18: 98, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 36: 50, 37: [1, 52], 41: 51, 42: [1, 53], 43: 100, 44: 99, 45: [2, 71] }, { 31: [2, 65], 38: 101, 59: [2, 65], 66: [2, 65], 69: [2, 65], 74: [2, 65], 75: [2, 65], 76: [2, 65], 77: [2, 65], 78: [2, 65], 79: [2, 65] }, { 45: [2, 17] }, { 5: [2, 13], 13: [2, 13], 14: [2, 13], 17: [2, 13], 27: [2, 13], 32: [2, 13], 37: [2, 13], 42: [2, 13], 45: [2, 13], 46: [2, 13], 49: [2, 13], 53: [2, 13] }, { 31: [1, 102] }, { 31: [2, 82], 59: [2, 82], 66: [2, 82], 74: [2, 82], 75: [2, 82], 76: [2, 82], 77: [2, 82], 78: [2, 82], 79: [2, 82] }, { 31: [2, 84] }, { 18: 65, 57: 104, 58: 66, 59: [1, 40], 61: 103, 62: [2, 87], 63: 105, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 30: 106, 31: [2, 57], 68: 107, 69: [1, 108] }, { 31: [2, 54], 59: [2, 54], 66: [2, 54], 69: [2, 54], 74: [2, 54], 75: [2, 54], 76: [2, 54], 77: [2, 54], 78: [2, 54], 79: [2, 54] }, { 31: [2, 56], 69: [2, 56] }, { 31: [2, 63], 35: 109, 68: 110, 69: [1, 108] }, { 31: [2, 60], 59: [2, 60], 66: [2, 60], 69: [2, 60], 74: [2, 60], 75: [2, 60], 76: [2, 60], 77: [2, 60], 78: [2, 60], 79: [2, 60] }, { 31: [2, 62], 69: [2, 62] }, { 21: [1, 111] }, { 21: [2, 46], 59: [2, 46], 66: [2, 46], 74: [2, 46], 75: [2, 46], 76: [2, 46], 77: [2, 46], 78: [2, 46], 79: [2, 46] }, { 21: [2, 48] }, { 5: [2, 21], 13: [2, 21], 14: [2, 21], 17: [2, 21], 27: [2, 21], 32: [2, 21], 37: [2, 21], 42: [2, 21], 45: [2, 21], 46: [2, 21], 49: [2, 21], 53: [2, 21] }, { 21: [2, 90], 31: [2, 90], 52: [2, 90], 62: [2, 90], 66: [2, 90], 69: [2, 90] }, { 67: [1, 96] }, { 18: 65, 57: 112, 58: 66, 59: [1, 40], 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 22], 13: [2, 22], 14: [2, 22], 17: [2, 22], 27: [2, 22], 32: [2, 22], 37: [2, 22], 42: [2, 22], 45: [2, 22], 46: [2, 22], 49: [2, 22], 53: [2, 22] }, { 31: [1, 113] }, { 45: [2, 18] }, { 45: [2, 72] }, { 18: 65, 31: [2, 67], 39: 114, 57: 115, 58: 66, 59: [1, 40], 63: 116, 64: 67, 65: 68, 66: [1, 69], 69: [2, 67], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 23], 13: [2, 23], 14: [2, 23], 17: [2, 23], 27: [2, 23], 32: [2, 23], 37: [2, 23], 42: [2, 23], 45: [2, 23], 46: [2, 23], 49: [2, 23], 53: [2, 23] }, { 62: [1, 117] }, { 59: [2, 86], 62: [2, 86], 66: [2, 86], 74: [2, 86], 75: [2, 86], 76: [2, 86], 77: [2, 86], 78: [2, 86], 79: [2, 86] }, { 62: [2, 88] }, { 31: [1, 118] }, { 31: [2, 58] }, { 66: [1, 120], 70: 119 }, { 31: [1, 121] }, { 31: [2, 64] }, { 14: [2, 11] }, { 21: [2, 28], 31: [2, 28], 52: [2, 28], 62: [2, 28], 66: [2, 28], 69: [2, 28] }, { 5: [2, 20], 13: [2, 20], 14: [2, 20], 17: [2, 20], 27: [2, 20], 32: [2, 20], 37: [2, 20], 42: [2, 20], 45: [2, 20], 46: [2, 20], 49: [2, 20], 53: [2, 20] }, { 31: [2, 69], 40: 122, 68: 123, 69: [1, 108] }, { 31: [2, 66], 59: [2, 66], 66: [2, 66], 69: [2, 66], 74: [2, 66], 75: [2, 66], 76: [2, 66], 77: [2, 66], 78: [2, 66], 79: [2, 66] }, { 31: [2, 68], 69: [2, 68] }, { 21: [2, 26], 31: [2, 26], 52: [2, 26], 59: [2, 26], 62: [2, 26], 66: [2, 26], 69: [2, 26], 74: [2, 26], 75: [2, 26], 76: [2, 26], 77: [2, 26], 78: [2, 26], 79: [2, 26] }, { 13: [2, 14], 14: [2, 14], 17: [2, 14], 27: [2, 14], 32: [2, 14], 37: [2, 14], 42: [2, 14], 45: [2, 14], 46: [2, 14], 49: [2, 14], 53: [2, 14] }, { 66: [1, 125], 71: [1, 124] }, { 66: [2, 91], 71: [2, 91] }, { 13: [2, 15], 14: [2, 15], 17: [2, 15], 27: [2, 15], 32: [2, 15], 42: [2, 15], 45: [2, 15], 46: [2, 15], 49: [2, 15], 53: [2, 15] }, { 31: [1, 126] }, { 31: [2, 70] }, { 31: [2, 29] }, { 66: [2, 92], 71: [2, 92] }, { 13: [2, 16], 14: [2, 16], 17: [2, 16], 27: [2, 16], 32: [2, 16], 37: [2, 16], 42: [2, 16], 45: [2, 16], 46: [2, 16], 49: [2, 16], 53: [2, 16] }], + defaultActions: { 4: [2, 1], 49: [2, 50], 51: [2, 19], 55: [2, 52], 64: [2, 76], 73: [2, 80], 78: [2, 17], 82: [2, 84], 92: [2, 48], 99: [2, 18], 100: [2, 72], 105: [2, 88], 107: [2, 58], 110: [2, 64], 111: [2, 11], 123: [2, 70], 124: [2, 29] }, + parseError: function parseError(str, hash) { + throw new Error(str); + }, + parse: function parse(input) { + var self = this, + stack = [0], + vstack = [null], + lstack = [], + table = this.table, + yytext = "", + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + this.lexer.setInput(input); + this.lexer.yy = this.yy; + this.yy.lexer = this.lexer; + this.yy.parser = this; + if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {}; + var yyloc = this.lexer.yylloc; + lstack.push(yyloc); + var ranges = this.lexer.options && this.lexer.options.ranges; + if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError; + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + function lex() { + var token; + token = self.lexer.lex() || 1; + if (typeof token !== "number") { + token = self.symbols_[token] || token; } - this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); + return token; } - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) - recovering--; - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; + var symbol, + preErrorSymbol, + state, + action, + a, + r, + yyval = {}, + p, + len, + newState, + expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + if (!recovering) { + expected = []; + for (p in table[state]) if (this.terminals_[p] && p > 2) { + expected.push("'" + this.terminals_[p] + "'"); + } + if (this.lexer.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected }); + } + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(this.lexer.yytext); + lstack.push(this.lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = this.lexer.yyleng; + yytext = this.lexer.yytext; + yylineno = this.lexer.yylineno; + yyloc = this.lexer.yylloc; + if (recovering > 0) recovering--; + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column }; + if (ranges) { + yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; + } + r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column}; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: return true; } - } - return true; -} -}; -/* Jison generated lexer */ -var lexer = (function(){ -var lexer = ({EOF:1, -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, -setInput:function (input) { - this._input = input; - this._more = this._less = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0}; - if (this.options.ranges) this.yylloc.range = [0,0]; - this.offset = 0; - return this; - }, -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) this.yylloc.range[1]++; + }; + /* Jison generated lexer */ + var lexer = (function () { + var lexer = { EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + setInput: function setInput(input) { + this._input = input; + this._more = this._less = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }; + if (this.options.ranges) this.yylloc.range = [0, 0]; + this.offset = 0; + return this; + }, + input: function input() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) this.yylloc.range[1]++; - this._input = this._input.slice(1); - return ch; - }, -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = this._input.slice(1); + return ch; + }, + unput: function unput(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length-len-1); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length-1); - this.matched = this.matched.substr(0, this.matched.length-1); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len - 1); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length-1) this.yylineno -= lines.length-1; - var r = this.yylloc.range; + if (lines.length - 1) this.yylineno -= lines.length - 1; + var r = this.yylloc.range; - this.yylloc = {first_line: this.yylloc.first_line, - last_line: this.yylineno+1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length: - this.yylloc.first_column - len - }; + this.yylloc = { first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - return this; - }, -more:function () { - this._more = true; - return this; - }, -less:function (n) { - this.unput(this.match.slice(n)); - }, -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, ""); - }, -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c+"^"; - }, -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) this.done = true; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + return this; + }, + more: function more() { + this._more = true; + return this; + }, + less: function less(n) { + this.unput(this.match.slice(n)); + }, + pastInput: function pastInput() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + upcomingInput: function upcomingInput() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + showPosition: function showPosition() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + next: function next() { + if (this.done) { + return this.EOF; + } + if (!this._input) this.done = true; - var token, - match, - tempMatch, - index, - col, - lines; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i=0;i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (!this.options.flex) break; + var token, match, tempMatch, index, col, lines; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (!this.options.flex) break; + } + } + if (match) { + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) this.yylineno += lines.length; + this.yylloc = { first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) this.done = false; + if (token) { + return token; + } else { + return; + } + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }); + } + }, + lex: function lex() { + var r = this.next(); + if (typeof r !== "undefined") { + return r; + } else { + return this.lex(); + } + }, + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + popState: function popState() { + return this.conditionStack.pop(); + }, + _currentRules: function _currentRules() { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + }, + topState: function topState() { + return this.conditionStack[this.conditionStack.length - 2]; + }, + pushState: function begin(condition) { + this.begin(condition); + } }; + lexer.options = {}; + lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + + function strip(start, end) { + return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng - end); } - } - if (match) { - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) this.yylineno += lines.length; - this.yylloc = {first_line: this.yylloc.last_line, - last_line: this.yylineno+1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length}; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; + + var YYSTATE = YY_START; + switch ($avoiding_name_collisions) { + case 0: + if (yy_.yytext.slice(-2) === "\\\\") { + strip(0, 1); + this.begin("mu"); + } else if (yy_.yytext.slice(-1) === "\\") { + strip(0, 1); + this.begin("emu"); + } else { + this.begin("mu"); + } + if (yy_.yytext) { + return 14; + }break; + case 1: + return 14; + break; + case 2: + this.popState(); + return 14; + + break; + case 3: + yy_.yytext = yy_.yytext.substr(5, yy_.yyleng - 9); + this.popState(); + return 16; + + break; + case 4: + return 14; + break; + case 5: + this.popState(); + return 13; + + break; + case 6: + return 59; + break; + case 7: + return 62; + break; + case 8: + return 17; + break; + case 9: + this.popState(); + this.begin("raw"); + return 21; + + break; + case 10: + return 53; + break; + case 11: + return 27; + break; + case 12: + return 45; + break; + case 13: + this.popState();return 42; + break; + case 14: + this.popState();return 42; + break; + case 15: + return 32; + break; + case 16: + return 37; + break; + case 17: + return 49; + break; + case 18: + return 46; + break; + case 19: + this.unput(yy_.yytext); + this.popState(); + this.begin("com"); + + break; + case 20: + this.popState(); + return 13; + + break; + case 21: + return 46; + break; + case 22: + return 67; + break; + case 23: + return 66; + break; + case 24: + return 66; + break; + case 25: + return 81; + break; + case 26: + // ignore whitespace + break; + case 27: + this.popState();return 52; + break; + case 28: + this.popState();return 31; + break; + case 29: + yy_.yytext = strip(1, 2).replace(/\\"/g, "\"");return 74; + break; + case 30: + yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 74; + break; + case 31: + return 79; + break; + case 32: + return 76; + break; + case 33: + return 76; + break; + case 34: + return 77; + break; + case 35: + return 78; + break; + case 36: + return 75; + break; + case 37: + return 69; + break; + case 38: + return 71; + break; + case 39: + return 66; + break; + case 40: + return 66; + break; + case 41: + return "INVALID"; + break; + case 42: + return 5; + break; } - this._more = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]); - if (this.done && this._input) this.done = false; - if (token) return token; - else return; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), - {text: "", token: null, line: this.yylineno}); - } - }, -lex:function lex() { - var r = this.next(); - if (typeof r !== 'undefined') { - return r; - } else { - return this.lex(); - } - }, -begin:function begin(condition) { - this.conditionStack.push(condition); - }, -popState:function popState() { - return this.conditionStack.pop(); - }, -_currentRules:function _currentRules() { - return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules; - }, -topState:function () { - return this.conditionStack[this.conditionStack.length-2]; - }, -pushState:function begin(condition) { - this.begin(condition); - }}); -lexer.options = {}; -lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { - - -function strip(start, end) { - return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng-end); -} - - -var YYSTATE=YY_START -switch($avoiding_name_collisions) { -case 0: - if(yy_.yytext.slice(-2) === "\\\\") { - strip(0,1); - this.begin("mu"); - } else if(yy_.yytext.slice(-1) === "\\") { - strip(0,1); - this.begin("emu"); - } else { - this.begin("mu"); - } - if(yy_.yytext) return 12; - -break; -case 1:return 12; -break; -case 2: - this.popState(); - return 12; - -break; -case 3: - yy_.yytext = yy_.yytext.substr(5, yy_.yyleng-9); - this.popState(); - return 15; - -break; -case 4: return 12; -break; -case 5:strip(0,4); this.popState(); return 13; -break; -case 6:return 45; -break; -case 7:return 46; -break; -case 8: return 16; -break; -case 9: - this.popState(); - this.begin('raw'); - return 18; - -break; -case 10:return 34; -break; -case 11:return 24; -break; -case 12:return 29; -break; -case 13:this.popState(); return 28; -break; -case 14:this.popState(); return 28; -break; -case 15:return 26; -break; -case 16:return 26; -break; -case 17:return 32; -break; -case 18:return 31; -break; -case 19:this.popState(); this.begin('com'); -break; -case 20:strip(3,5); this.popState(); return 13; -break; -case 21:return 31; -break; -case 22:return 51; -break; -case 23:return 50; -break; -case 24:return 50; -break; -case 25:return 54; -break; -case 26:// ignore whitespace -break; -case 27:this.popState(); return 33; -break; -case 28:this.popState(); return 25; -break; -case 29:yy_.yytext = strip(1,2).replace(/\\"/g,'"'); return 42; -break; -case 30:yy_.yytext = strip(1,2).replace(/\\'/g,"'"); return 42; -break; -case 31:return 52; -break; -case 32:return 44; -break; -case 33:return 44; -break; -case 34:return 43; -break; -case 35:return 50; -break; -case 36:yy_.yytext = strip(1,2); return 50; -break; -case 37:return 'INVALID'; -break; -case 38:return 5; -break; -} -}; -lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/]; -lexer.conditions = {"mu":{"rules":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[5],"inclusive":false},"raw":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,1,38],"inclusive":true}}; -return lexer;})() -parser.lexer = lexer; -function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser; -return new Parser; + }; + lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{\/)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[[^\]]*\])/, /^(?:.)/, /^(?:$)/]; + lexer.conditions = { mu: { rules: [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42], inclusive: false }, emu: { rules: [2], inclusive: false }, com: { rules: [5], inclusive: false }, raw: { rules: [3, 4], inclusive: false }, INITIAL: { rules: [0, 1, 42], inclusive: true } }; + return lexer; + })(); + parser.lexer = lexer; + function Parser() { + this.yy = {}; + }Parser.prototype = parser;parser.Parser = Parser; + return new Parser(); })();exports["default"] = handlebars; -/* jshint ignore:end */ \ No newline at end of file +module.exports = exports["default"]; \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js b/node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js index db44c8d..8caebf6 100644 --- a/node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js +++ b/node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js @@ -1,34 +1,54 @@ -"use strict"; -var Visitor = require("./visitor")["default"]; +'use strict'; + +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + +exports.__esModule = true; +exports.print = print; +exports.PrintVisitor = PrintVisitor; +/*eslint-disable new-cap */ + +var _Visitor = require('./visitor'); + +var _Visitor2 = _interopRequireWildcard(_Visitor); function print(ast) { return new PrintVisitor().accept(ast); } -exports.print = print;function PrintVisitor() { +function PrintVisitor() { this.padding = 0; } -exports.PrintVisitor = PrintVisitor;PrintVisitor.prototype = new Visitor(); +PrintVisitor.prototype = new _Visitor2['default'](); -PrintVisitor.prototype.pad = function(string) { - var out = ""; +PrintVisitor.prototype.pad = function (string) { + var out = ''; - for(var i=0,l=this.padding; i ' + content + ' }}'); +}; - for(var i=0, l=params.length; i " + content + " }}"); +PrintVisitor.prototype.StringLiteral = function (string) { + return '"' + string.value + '"'; }; -PrintVisitor.prototype.hash = function(hash) { - var pairs = hash.pairs; - var joinedPairs = [], left, right; +PrintVisitor.prototype.NumberLiteral = function (number) { + return 'NUMBER{' + number.value + '}'; +}; - for(var i=0, l=pairs.length; i": ">", - '"': """, - "'": "'", - "`": "`" + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '`': '`' }; -var badChars = /[&<>"'`]/g; -var possible = /[&<>"'`]/; +var badChars = /[&<>"'`]/g, + possible = /[&<>"'`]/; function escapeChar(chr) { return escape[chr]; @@ -30,48 +37,64 @@ function extend(obj /* , ...source */) { return obj; } -exports.extend = extend;var toString = Object.prototype.toString; +var toString = Object.prototype.toString; + exports.toString = toString; // Sourced from lodash // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt -var isFunction = function(value) { +/*eslint-disable func-style, no-var */ +var isFunction = function isFunction(value) { return typeof value === 'function'; }; // fallback for older versions of Chrome and Safari /* istanbul ignore next */ if (isFunction(/x/)) { - isFunction = function(value) { + exports.isFunction = isFunction = function (value) { return typeof value === 'function' && toString.call(value) === '[object Function]'; }; } var isFunction; exports.isFunction = isFunction; +/*eslint-enable func-style, no-var */ + /* istanbul ignore next */ -var isArray = Array.isArray || function(value) { - return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false; -}; -exports.isArray = isArray; +var isArray = Array.isArray || function (value) { + return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false; +};exports.isArray = isArray; + +function indexOf(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; +} function escapeExpression(string) { - // don't escape SafeStrings, since they're already safe - if (string instanceof SafeString) { - return string.toString(); - } else if (string == null) { - return ""; - } else if (!string) { - return string + ''; + if (typeof string !== 'string') { + // don't escape SafeStrings, since they're already safe + if (string && string.toHTML) { + return string.toHTML(); + } else if (string == null) { + return ''; + } else if (!string) { + return string + ''; + } + + // Force a string conversion as this will be done by the append regardless and + // the regex test will do this transparently behind the scenes, causing issues if + // an object's to string has escaped characters in it. + string = '' + string; } - // Force a string conversion as this will be done by the append regardless and - // the regex test will do this transparently behind the scenes, causing issues if - // an object's to string has escaped characters in it. - string = "" + string; - - if(!possible.test(string)) { return string; } + if (!possible.test(string)) { + return string; + } return string.replace(badChars, escapeChar); } -exports.escapeExpression = escapeExpression;function isEmpty(value) { +function isEmpty(value) { if (!value && value !== 0) { return true; } else if (isArray(value) && value.length === 0) { @@ -81,8 +104,11 @@ exports.escapeExpression = escapeExpression;function isEmpty(value) { } } -exports.isEmpty = isEmpty;function appendContextPath(contextPath, id) { - return (contextPath ? contextPath + '.' : '') + id; +function blockParams(params, ids) { + params.path = ids; + return params; } -exports.appendContextPath = appendContextPath; \ No newline at end of file +function appendContextPath(contextPath, id) { + return (contextPath ? contextPath + '.' : '') + id; +} \ No newline at end of file diff --git a/node_modules/handlebars/dist/cjs/precompiler.js b/node_modules/handlebars/dist/cjs/precompiler.js index 1f733ba..e9f9648 100644 --- a/node_modules/handlebars/dist/cjs/precompiler.js +++ b/node_modules/handlebars/dist/cjs/precompiler.js @@ -1,33 +1,47 @@ -"use strict"; +'use strict'; -var fs = require('fs'), - Handlebars = require('./index'), - basename = require('path').basename, - uglify = require('uglify-js'); +var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; -module.exports.cli = function(opts) { +/*eslint-disable no-console */ + +var _fs = require('fs'); + +var _fs2 = _interopRequireWildcard(_fs); + +var _import = require('./handlebars'); + +var Handlebars = _interopRequireWildcard(_import); + +var _basename = require('path'); + +var _SourceMapConsumer$SourceNode = require('source-map'); + +var _uglify = require('uglify-js'); + +var _uglify2 = _interopRequireWildcard(_uglify); + +module.exports.cli = function (opts) { if (opts.version) { console.log(Handlebars.VERSION); return; } - var template = [0]; if (!opts.templates.length) { throw new Handlebars.Exception('Must define at least one template or directory.'); } - opts.templates.forEach(function(template) { + opts.templates.forEach(function (template) { try { - fs.statSync(template); + _fs2['default'].statSync(template); } catch (err) { throw new Handlebars.Exception('Unable to open template file "' + template + '"'); } }); if (opts.simple && opts.min) { - throw new Handlebars.Exception('Unable to minimze simple output'); + throw new Handlebars.Exception('Unable to minimize simple output'); } - if (opts.simple && (opts.templates.length !== 1 || fs.statSync(opts.templates[0]).isDirectory())) { + if (opts.simple && (opts.templates.length !== 1 || _fs2['default'].statSync(opts.templates[0]).isDirectory())) { throw new Handlebars.Exception('Unable to output multiple templates in simple mode'); } @@ -43,39 +57,44 @@ module.exports.cli = function(opts) { } // Build file extension pattern - var extension = opts.extension.replace(/[\\^$*+?.():=!|{}\-\[\]]/g, function(arg) { return '\\' + arg; }); + var extension = opts.extension.replace(/[\\^$*+?.():=!|{}\-\[\]]/g, function (arg) { + return '\\' + arg; + }); extension = new RegExp('\\.' + extension + '$'); - var output = []; + var output = new _SourceMapConsumer$SourceNode.SourceNode(); if (!opts.simple) { if (opts.amd) { - output.push('define([\'' + opts.handlebarPath + 'handlebars.runtime\'], function(Handlebars) {\n Handlebars = Handlebars["default"];'); + output.add('define([\'' + opts.handlebarPath + 'handlebars.runtime\'], function(Handlebars) {\n Handlebars = Handlebars["default"];'); } else if (opts.commonjs) { - output.push('var Handlebars = require("' + opts.commonjs + '");'); + output.add('var Handlebars = require("' + opts.commonjs + '");'); } else { - output.push('(function() {\n'); + output.add('(function() {\n'); } - output.push(' var template = Handlebars.template, templates = '); - output.push(opts.namespace); - output.push(' = '); - output.push(opts.namespace); - output.push(' || {};\n'); + output.add(' var template = Handlebars.template, templates = '); + if (opts.namespace) { + output.add(opts.namespace); + output.add(' = '); + output.add(opts.namespace); + output.add(' || '); + } + output.add('{};\n'); } function processTemplate(template, root) { var path = template, - stat = fs.statSync(path); + stat = _fs2['default'].statSync(path); if (stat.isDirectory()) { - fs.readdirSync(template).map(function(file) { - var path = template + '/' + file; + _fs2['default'].readdirSync(template).map(function (file) { + var childPath = template + '/' + file; - if (extension.test(path) || fs.statSync(path).isDirectory()) { - processTemplate(path, root || template); + if (extension.test(childPath) || _fs2['default'].statSync(childPath).isDirectory()) { + processTemplate(childPath, root || template); } }); } else { - var data = fs.readFileSync(path, 'utf8'); + var data = _fs2['default'].readFileSync(path, 'utf8'); - if (opts.bom && data.indexOf('\uFEFF') === 0) { + if (opts.bom && data.indexOf('') === 0) { data = data.substring(1); } @@ -84,61 +103,91 @@ module.exports.cli = function(opts) { knownHelpersOnly: opts.o }; + if (opts.map) { + options.srcName = path; + } if (opts.data) { options.data = true; } // Clean the template name if (!root) { - template = basename(template); + template = _basename.basename(template); } else if (template.indexOf(root) === 0) { - template = template.substring(root.length+1); + template = template.substring(root.length + 1); } template = template.replace(extension, ''); + var precompiled = Handlebars.precompile(data, options); + + // If we are generating a source map, we have to reconstruct the SourceNode object + if (opts.map) { + var consumer = new _SourceMapConsumer$SourceNode.SourceMapConsumer(precompiled.map); + precompiled = _SourceMapConsumer$SourceNode.SourceNode.fromStringWithSourceMap(precompiled.code, consumer); + } + if (opts.simple) { - output.push(Handlebars.precompile(data, options) + '\n'); + output.add([precompiled, '\n']); } else if (opts.partial) { - if(opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) { - output.push('return '); + if (opts.amd && (opts.templates.length == 1 && !_fs2['default'].statSync(opts.templates[0]).isDirectory())) { + output.add('return '); } - output.push('Handlebars.partials[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n'); + output.add(['Handlebars.partials[\'', template, '\'] = template(', precompiled, ');\n']); } else { - if(opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) { - output.push('return '); + if (opts.amd && (opts.templates.length == 1 && !_fs2['default'].statSync(opts.templates[0]).isDirectory())) { + output.add('return '); } - output.push('templates[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n'); + output.add(['templates[\'', template, '\'] = template(', precompiled, ');\n']); } } } - opts.templates.forEach(function(template) { + opts.templates.forEach(function (template) { processTemplate(template, opts.root); }); // Output the content if (!opts.simple) { if (opts.amd) { - if(opts.templates.length > 1 || (opts.templates.length == 1 && fs.statSync(opts.templates[0]).isDirectory())) { - if(opts.partial){ - output.push('return Handlebars.partials;\n'); + if (opts.templates.length > 1 || opts.templates.length == 1 && _fs2['default'].statSync(opts.templates[0]).isDirectory()) { + if (opts.partial) { + output.add('return Handlebars.partials;\n'); } else { - output.push('return templates;\n'); + output.add('return templates;\n'); } } - output.push('});'); + output.add('});'); } else if (!opts.commonjs) { - output.push('})();'); + output.add('})();'); } } - output = output.join(''); - if (opts.min) { - output = uglify.minify(output, {fromString: true}).code; + if (opts.map) { + output.add('\n//# sourceMappingURL=' + opts.map + '\n'); } + output = output.toStringWithSourceMap(); + output.map = output.map + ''; + + if (opts.min) { + output = _uglify2['default'].minify(output.code, { + fromString: true, + + outSourceMap: opts.map, + inSourceMap: JSON.parse(output.map) + }); + if (opts.map) { + output.code += '\n//# sourceMappingURL=' + opts.map + '\n'; + } + } + + if (opts.map) { + _fs2['default'].writeFileSync(opts.map, output.map, 'utf8'); + } + output = output.code; + if (opts.output) { - fs.writeFileSync(opts.output, output, 'utf8'); + _fs2['default'].writeFileSync(opts.output, output, 'utf8'); } else { console.log(output); } diff --git a/node_modules/handlebars/dist/handlebars.amd.js b/node_modules/handlebars/dist/handlebars.amd.js index dddd408..07640c5 100644 --- a/node_modules/handlebars/dist/handlebars.amd.js +++ b/node_modules/handlebars/dist/handlebars.amd.js @@ -1,6 +1,6 @@ /*! - handlebars v2.0.0 + handlebars v3.0.3 Copyright (C) 2011-2014 by Yehuda Katz @@ -24,85 +24,87 @@ THE SOFTWARE. @license */ +define('handlebars/utils',['exports'], function (exports) { + -define( - 'handlebars/safe-string',["exports"], - function(__exports__) { - - // Build out our basic SafeString type - function SafeString(string) { - this.string = string; - } + exports.__esModule = true; + exports.extend = extend; - SafeString.prototype.toString = function() { - return "" + this.string; - }; + // Older IE versions do not directly support indexOf so we must implement our own, sadly. + exports.indexOf = indexOf; + exports.escapeExpression = escapeExpression; + exports.isEmpty = isEmpty; + exports.blockParams = blockParams; + exports.appendContextPath = appendContextPath; + var escape = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '`': '`' + }; - __exports__["default"] = SafeString; - }); -define( - 'handlebars/utils',["./safe-string","exports"], - function(__dependency1__, __exports__) { - - /*jshint -W004 */ - var SafeString = __dependency1__["default"]; + var badChars = /[&<>"'`]/g, + possible = /[&<>"'`]/; - var escape = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`" - }; + function escapeChar(chr) { + return escape[chr]; + } - var badChars = /[&<>"'`]/g; - var possible = /[&<>"'`]/; - - function escapeChar(chr) { - return escape[chr]; - } - - function extend(obj /* , ...source */) { - for (var i = 1; i < arguments.length; i++) { - for (var key in arguments[i]) { - if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { - obj[key] = arguments[i][key]; - } + function extend(obj /* , ...source */) { + for (var i = 1; i < arguments.length; i++) { + for (var key in arguments[i]) { + if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { + obj[key] = arguments[i][key]; } } - - return obj; } - __exports__.extend = extend;var toString = Object.prototype.toString; - __exports__.toString = toString; - // Sourced from lodash - // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt - var isFunction = function(value) { - return typeof value === 'function'; - }; - // fallback for older versions of Chrome and Safari - /* istanbul ignore next */ - if (isFunction(/x/)) { - isFunction = function(value) { - return typeof value === 'function' && toString.call(value) === '[object Function]'; - }; - } - var isFunction; - __exports__.isFunction = isFunction; - /* istanbul ignore next */ - var isArray = Array.isArray || function(value) { - return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false; - }; - __exports__.isArray = isArray; + return obj; + } - function escapeExpression(string) { + var toString = Object.prototype.toString; + + exports.toString = toString; + // Sourced from lodash + // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt + /*eslint-disable func-style, no-var */ + var isFunction = function isFunction(value) { + return typeof value === 'function'; + }; + // fallback for older versions of Chrome and Safari + /* istanbul ignore next */ + if (isFunction(/x/)) { + exports.isFunction = isFunction = function (value) { + return typeof value === 'function' && toString.call(value) === '[object Function]'; + }; + } + var isFunction; + exports.isFunction = isFunction; + /*eslint-enable func-style, no-var */ + + /* istanbul ignore next */ + var isArray = Array.isArray || function (value) { + return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false; + };exports.isArray = isArray; + + function indexOf(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; + } + + function escapeExpression(string) { + if (typeof string !== 'string') { // don't escape SafeStrings, since they're already safe - if (string instanceof SafeString) { - return string.toString(); + if (string && string.toHTML) { + return string.toHTML(); } else if (string == null) { - return ""; + return ''; } else if (!string) { return string + ''; } @@ -110,2933 +112,3751 @@ define( // Force a string conversion as this will be done by the append regardless and // the regex test will do this transparently behind the scenes, causing issues if // an object's to string has escaped characters in it. - string = "" + string; - - if(!possible.test(string)) { return string; } - return string.replace(badChars, escapeChar); + string = '' + string; } - __exports__.escapeExpression = escapeExpression;function isEmpty(value) { - if (!value && value !== 0) { - return true; - } else if (isArray(value) && value.length === 0) { - return true; + if (!possible.test(string)) { + return string; + } + return string.replace(badChars, escapeChar); + } + + function isEmpty(value) { + if (!value && value !== 0) { + return true; + } else if (isArray(value) && value.length === 0) { + return true; + } else { + return false; + } + } + + function blockParams(params, ids) { + params.path = ids; + return params; + } + + function appendContextPath(contextPath, id) { + return (contextPath ? contextPath + '.' : '') + id; + } +}); +define('handlebars/exception',['exports', 'module'], function (exports, module) { + + + var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; + + function Exception(message, node) { + var loc = node && node.loc, + line = undefined, + column = undefined; + if (loc) { + line = loc.start.line; + column = loc.start.column; + + message += ' - ' + line + ':' + column; + } + + var tmp = Error.prototype.constructor.call(this, message); + + // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. + for (var idx = 0; idx < errorProps.length; idx++) { + this[errorProps[idx]] = tmp[errorProps[idx]]; + } + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, Exception); + } + + if (loc) { + this.lineNumber = line; + this.column = column; + } + } + + Exception.prototype = new Error(); + + module.exports = Exception; +}); +define('handlebars/base',['exports', './utils', './exception'], function (exports, _utils, _exception) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + exports.__esModule = true; + exports.HandlebarsEnvironment = HandlebarsEnvironment; + exports.createFrame = createFrame; + + var _Exception = _interopRequire(_exception); + + var VERSION = '3.0.1'; + exports.VERSION = VERSION; + var COMPILER_REVISION = 6; + + exports.COMPILER_REVISION = COMPILER_REVISION; + var REVISION_CHANGES = { + 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it + 2: '== 1.0.0-rc.3', + 3: '== 1.0.0-rc.4', + 4: '== 1.x.x', + 5: '== 2.0.0-alpha.x', + 6: '>= 2.0.0-beta.1' + }; + + exports.REVISION_CHANGES = REVISION_CHANGES; + var isArray = _utils.isArray, + isFunction = _utils.isFunction, + toString = _utils.toString, + objectType = '[object Object]'; + + function HandlebarsEnvironment(helpers, partials) { + this.helpers = helpers || {}; + this.partials = partials || {}; + + registerDefaultHelpers(this); + } + + HandlebarsEnvironment.prototype = { + constructor: HandlebarsEnvironment, + + logger: logger, + log: log, + + registerHelper: function registerHelper(name, fn) { + if (toString.call(name) === objectType) { + if (fn) { + throw new _Exception('Arg not supported with multiple helpers'); + } + _utils.extend(this.helpers, name); } else { + this.helpers[name] = fn; + } + }, + unregisterHelper: function unregisterHelper(name) { + delete this.helpers[name]; + }, + + registerPartial: function registerPartial(name, partial) { + if (toString.call(name) === objectType) { + _utils.extend(this.partials, name); + } else { + if (typeof partial === 'undefined') { + throw new _Exception('Attempting to register a partial as undefined'); + } + this.partials[name] = partial; + } + }, + unregisterPartial: function unregisterPartial(name) { + delete this.partials[name]; + } + }; + + function registerDefaultHelpers(instance) { + instance.registerHelper('helperMissing', function () { + if (arguments.length === 1) { + // A missing field in a {{foo}} constuct. + return undefined; + } else { + // Someone is actually trying to call something, blow up. + throw new _Exception('Missing helper: "' + arguments[arguments.length - 1].name + '"'); + } + }); + + instance.registerHelper('blockHelperMissing', function (context, options) { + var inverse = options.inverse, + fn = options.fn; + + if (context === true) { + return fn(this); + } else if (context === false || context == null) { + return inverse(this); + } else if (isArray(context)) { + if (context.length > 0) { + if (options.ids) { + options.ids = [options.name]; + } + + return instance.helpers.each(context, options); + } else { + return inverse(this); + } + } else { + if (options.data && options.ids) { + var data = createFrame(options.data); + data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name); + options = { data: data }; + } + + return fn(context, options); + } + }); + + instance.registerHelper('each', function (context, options) { + if (!options) { + throw new _Exception('Must pass iterator to #each'); + } + + var fn = options.fn, + inverse = options.inverse, + i = 0, + ret = '', + data = undefined, + contextPath = undefined; + + if (options.data && options.ids) { + contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; + } + + if (isFunction(context)) { + context = context.call(this); + } + + if (options.data) { + data = createFrame(options.data); + } + + function execIteration(field, index, last) { + if (data) { + data.key = field; + data.index = index; + data.first = index === 0; + data.last = !!last; + + if (contextPath) { + data.contextPath = contextPath + field; + } + } + + ret = ret + fn(context[field], { + data: data, + blockParams: _utils.blockParams([context[field], field], [contextPath + field, null]) + }); + } + + if (context && typeof context === 'object') { + if (isArray(context)) { + for (var j = context.length; i < j; i++) { + execIteration(i, i, i === context.length - 1); + } + } else { + var priorKey = undefined; + + for (var key in context) { + if (context.hasOwnProperty(key)) { + // We're running the iterations one step out of sync so we can detect + // the last iteration without have to scan the object twice and create + // an itermediate keys array. + if (priorKey) { + execIteration(priorKey, i - 1); + } + priorKey = key; + i++; + } + } + if (priorKey) { + execIteration(priorKey, i - 1, true); + } + } + } + + if (i === 0) { + ret = inverse(this); + } + + return ret; + }); + + instance.registerHelper('if', function (conditional, options) { + if (isFunction(conditional)) { + conditional = conditional.call(this); + } + + // Default behavior is to render the positive path if the value is truthy and not empty. + // The `includeZero` option may be set to treat the condtional as purely not empty based on the + // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative. + if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) { + return options.inverse(this); + } else { + return options.fn(this); + } + }); + + instance.registerHelper('unless', function (conditional, options) { + return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash }); + }); + + instance.registerHelper('with', function (context, options) { + if (isFunction(context)) { + context = context.call(this); + } + + var fn = options.fn; + + if (!_utils.isEmpty(context)) { + if (options.data && options.ids) { + var data = createFrame(options.data); + data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]); + options = { data: data }; + } + + return fn(context, options); + } else { + return options.inverse(this); + } + }); + + instance.registerHelper('log', function (message, options) { + var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1; + instance.log(level, message); + }); + + instance.registerHelper('lookup', function (obj, field) { + return obj && obj[field]; + }); + } + + var logger = { + methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' }, + + // State enum + DEBUG: 0, + INFO: 1, + WARN: 2, + ERROR: 3, + level: 1, + + // Can be overridden in the host environment + log: function log(level, message) { + if (typeof console !== 'undefined' && logger.level <= level) { + var method = logger.methodMap[level]; + (console[method] || console.log).call(console, message); // eslint-disable-line no-console + } + } + }; + + exports.logger = logger; + var log = logger.log; + + exports.log = log; + + function createFrame(object) { + var frame = _utils.extend({}, object); + frame._parent = object; + return frame; + } +}); +/* [args, ]options */; +define('handlebars/safe-string',['exports', 'module'], function (exports, module) { + // Build out our basic SafeString type + + + function SafeString(string) { + this.string = string; + } + + SafeString.prototype.toString = SafeString.prototype.toHTML = function () { + return '' + this.string; + }; + + module.exports = SafeString; +}); +define('handlebars/runtime',['exports', './utils', './exception', './base'], function (exports, _utils, _exception, _base) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + exports.__esModule = true; + exports.checkRevision = checkRevision; + + // TODO: Remove this line and break up compilePartial + + exports.template = template; + exports.wrapProgram = wrapProgram; + exports.resolvePartial = resolvePartial; + exports.invokePartial = invokePartial; + exports.noop = noop; + + var _Exception = _interopRequire(_exception); + + function checkRevision(compilerInfo) { + var compilerRevision = compilerInfo && compilerInfo[0] || 1, + currentRevision = _base.COMPILER_REVISION; + + if (compilerRevision !== currentRevision) { + if (compilerRevision < currentRevision) { + var runtimeVersions = _base.REVISION_CHANGES[currentRevision], + compilerVersions = _base.REVISION_CHANGES[compilerRevision]; + throw new _Exception('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').'); + } else { + // Use the embedded version info since the runtime doesn't know about this revision yet + throw new _Exception('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').'); + } + } + } + + function template(templateSpec, env) { + /* istanbul ignore next */ + if (!env) { + throw new _Exception('No environment passed to template'); + } + if (!templateSpec || !templateSpec.main) { + throw new _Exception('Unknown template object: ' + typeof templateSpec); + } + + // Note: Using env.VM references rather than local var references throughout this section to allow + // for external users to override these as psuedo-supported APIs. + env.VM.checkRevision(templateSpec.compiler); + + function invokePartialWrapper(partial, context, options) { + if (options.hash) { + context = _utils.extend({}, context, options.hash); + } + + partial = env.VM.resolvePartial.call(this, partial, context, options); + var result = env.VM.invokePartial.call(this, partial, context, options); + + if (result == null && env.compile) { + options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env); + result = options.partials[options.name](context, options); + } + if (result != null) { + if (options.indent) { + var lines = result.split('\n'); + for (var i = 0, l = lines.length; i < l; i++) { + if (!lines[i] && i + 1 === l) { + break; + } + + lines[i] = options.indent + lines[i]; + } + result = lines.join('\n'); + } + return result; + } else { + throw new _Exception('The partial ' + options.name + ' could not be compiled when running in runtime-only mode'); + } + } + + // Just add water + var container = { + strict: function strict(obj, name) { + if (!(name in obj)) { + throw new _Exception('"' + name + '" not defined in ' + obj); + } + return obj[name]; + }, + lookup: function lookup(depths, name) { + var len = depths.length; + for (var i = 0; i < len; i++) { + if (depths[i] && depths[i][name] != null) { + return depths[i][name]; + } + } + }, + lambda: function lambda(current, context) { + return typeof current === 'function' ? current.call(context) : current; + }, + + escapeExpression: _utils.escapeExpression, + invokePartial: invokePartialWrapper, + + fn: function fn(i) { + return templateSpec[i]; + }, + + programs: [], + program: function program(i, data, declaredBlockParams, blockParams, depths) { + var programWrapper = this.programs[i], + fn = this.fn(i); + if (data || depths || blockParams || declaredBlockParams) { + programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths); + } else if (!programWrapper) { + programWrapper = this.programs[i] = wrapProgram(this, i, fn); + } + return programWrapper; + }, + + data: function data(value, depth) { + while (value && depth--) { + value = value._parent; + } + return value; + }, + merge: function merge(param, common) { + var obj = param || common; + + if (param && common && param !== common) { + obj = _utils.extend({}, common, param); + } + + return obj; + }, + + noop: env.VM.noop, + compilerInfo: templateSpec.compiler + }; + + function ret(context) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + var data = options.data; + + ret._setup(options); + if (!options.partial && templateSpec.useData) { + data = initData(context, data); + } + var depths = undefined, + blockParams = templateSpec.useBlockParams ? [] : undefined; + if (templateSpec.useDepths) { + depths = options.depths ? [context].concat(options.depths) : [context]; + } + + return templateSpec.main.call(container, context, container.helpers, container.partials, data, blockParams, depths); + } + ret.isTop = true; + + ret._setup = function (options) { + if (!options.partial) { + container.helpers = container.merge(options.helpers, env.helpers); + + if (templateSpec.usePartial) { + container.partials = container.merge(options.partials, env.partials); + } + } else { + container.helpers = options.helpers; + container.partials = options.partials; + } + }; + + ret._child = function (i, data, blockParams, depths) { + if (templateSpec.useBlockParams && !blockParams) { + throw new _Exception('must pass block params'); + } + if (templateSpec.useDepths && !depths) { + throw new _Exception('must pass parent depths'); + } + + return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths); + }; + return ret; + } + + function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) { + function prog(context) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + return fn.call(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), depths && [context].concat(depths)); + } + prog.program = i; + prog.depth = depths ? depths.length : 0; + prog.blockParams = declaredBlockParams || 0; + return prog; + } + + function resolvePartial(partial, context, options) { + if (!partial) { + partial = options.partials[options.name]; + } else if (!partial.call && !options.name) { + // This is a dynamic partial that returned a string + options.name = partial; + partial = options.partials[partial]; + } + return partial; + } + + function invokePartial(partial, context, options) { + options.partial = true; + + if (partial === undefined) { + throw new _Exception('The partial ' + options.name + ' could not be found'); + } else if (partial instanceof Function) { + return partial(context, options); + } + } + + function noop() { + return ''; + } + + function initData(context, data) { + if (!data || !('root' in data)) { + data = data ? _base.createFrame(data) : {}; + data.root = context; + } + return data; + } +}); +define('handlebars/no-conflict',['exports', 'module'], function (exports, module) { + /*global window */ + + + module.exports = function (Handlebars) { + /* istanbul ignore next */ + var root = typeof global !== 'undefined' ? global : window, + $Handlebars = root.Handlebars; + /* istanbul ignore next */ + Handlebars.noConflict = function () { + if (root.Handlebars === Handlebars) { + root.Handlebars = $Handlebars; + } + }; + }; +}); +define('handlebars.runtime',['exports', 'module', './handlebars/base', './handlebars/safe-string', './handlebars/exception', './handlebars/utils', './handlebars/runtime', './handlebars/no-conflict'], function (exports, module, _handlebarsBase, _handlebarsSafeString, _handlebarsException, _handlebarsUtils, _handlebarsRuntime, _handlebarsNoConflict) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + // Each of these augment the Handlebars object. No need to setup here. + // (This is done to easily share code between commonjs and browse envs) + + var _SafeString = _interopRequire(_handlebarsSafeString); + + var _Exception = _interopRequire(_handlebarsException); + + var _noConflict = _interopRequire(_handlebarsNoConflict); + + // For compatibility and usage outside of module systems, make the Handlebars object a namespace + function create() { + var hb = new _handlebarsBase.HandlebarsEnvironment(); + + _handlebarsUtils.extend(hb, _handlebarsBase); + hb.SafeString = _SafeString; + hb.Exception = _Exception; + hb.Utils = _handlebarsUtils; + hb.escapeExpression = _handlebarsUtils.escapeExpression; + + hb.VM = _handlebarsRuntime; + hb.template = function (spec) { + return _handlebarsRuntime.template(spec, hb); + }; + + return hb; + } + + var inst = create(); + inst.create = create; + + _noConflict(inst); + + inst['default'] = inst; + + module.exports = inst; +}); +define('handlebars/compiler/ast',['exports', 'module'], function (exports, module) { + + + var AST = { + Program: function Program(statements, blockParams, strip, locInfo) { + this.loc = locInfo; + this.type = 'Program'; + this.body = statements; + + this.blockParams = blockParams; + this.strip = strip; + }, + + MustacheStatement: function MustacheStatement(path, params, hash, escaped, strip, locInfo) { + this.loc = locInfo; + this.type = 'MustacheStatement'; + + this.path = path; + this.params = params || []; + this.hash = hash; + this.escaped = escaped; + + this.strip = strip; + }, + + BlockStatement: function BlockStatement(path, params, hash, program, inverse, openStrip, inverseStrip, closeStrip, locInfo) { + this.loc = locInfo; + this.type = 'BlockStatement'; + + this.path = path; + this.params = params || []; + this.hash = hash; + this.program = program; + this.inverse = inverse; + + this.openStrip = openStrip; + this.inverseStrip = inverseStrip; + this.closeStrip = closeStrip; + }, + + PartialStatement: function PartialStatement(name, params, hash, strip, locInfo) { + this.loc = locInfo; + this.type = 'PartialStatement'; + + this.name = name; + this.params = params || []; + this.hash = hash; + + this.indent = ''; + this.strip = strip; + }, + + ContentStatement: function ContentStatement(string, locInfo) { + this.loc = locInfo; + this.type = 'ContentStatement'; + this.original = this.value = string; + }, + + CommentStatement: function CommentStatement(comment, strip, locInfo) { + this.loc = locInfo; + this.type = 'CommentStatement'; + this.value = comment; + + this.strip = strip; + }, + + SubExpression: function SubExpression(path, params, hash, locInfo) { + this.loc = locInfo; + + this.type = 'SubExpression'; + this.path = path; + this.params = params || []; + this.hash = hash; + }, + + PathExpression: function PathExpression(data, depth, parts, original, locInfo) { + this.loc = locInfo; + this.type = 'PathExpression'; + + this.data = data; + this.original = original; + this.parts = parts; + this.depth = depth; + }, + + StringLiteral: function StringLiteral(string, locInfo) { + this.loc = locInfo; + this.type = 'StringLiteral'; + this.original = this.value = string; + }, + + NumberLiteral: function NumberLiteral(number, locInfo) { + this.loc = locInfo; + this.type = 'NumberLiteral'; + this.original = this.value = Number(number); + }, + + BooleanLiteral: function BooleanLiteral(bool, locInfo) { + this.loc = locInfo; + this.type = 'BooleanLiteral'; + this.original = this.value = bool === 'true'; + }, + + UndefinedLiteral: function UndefinedLiteral(locInfo) { + this.loc = locInfo; + this.type = 'UndefinedLiteral'; + this.original = this.value = undefined; + }, + + NullLiteral: function NullLiteral(locInfo) { + this.loc = locInfo; + this.type = 'NullLiteral'; + this.original = this.value = null; + }, + + Hash: function Hash(pairs, locInfo) { + this.loc = locInfo; + this.type = 'Hash'; + this.pairs = pairs; + }, + HashPair: function HashPair(key, value, locInfo) { + this.loc = locInfo; + this.type = 'HashPair'; + this.key = key; + this.value = value; + }, + + // Public API used to evaluate derived attributes regarding AST nodes + helpers: { + // a mustache is definitely a helper if: + // * it is an eligible helper, and + // * it has at least one parameter or hash segment + helperExpression: function helperExpression(node) { + return !!(node.type === 'SubExpression' || node.params.length || node.hash); + }, + + scopedId: function scopedId(path) { + return /^\.|this\b/.test(path.original); + }, + + // an ID is simple if it only has one part, and that part is not + // `..` or `this`. + simpleId: function simpleId(path) { + return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth; + } + } + }; + + // Must be exported as an object rather than the root of the module as the jison lexer + // must modify the object to operate properly. + module.exports = AST; +}); +define('handlebars/compiler/parser',["exports", "module"], function (exports, module) { + /* istanbul ignore next */ + /* Jison generated parser */ + + + var handlebars = (function () { + var parser = { trace: function trace() {}, + yy: {}, + symbols_: { error: 2, root: 3, program: 4, EOF: 5, program_repetition0: 6, statement: 7, mustache: 8, block: 9, rawBlock: 10, partial: 11, content: 12, COMMENT: 13, CONTENT: 14, openRawBlock: 15, END_RAW_BLOCK: 16, OPEN_RAW_BLOCK: 17, helperName: 18, openRawBlock_repetition0: 19, openRawBlock_option0: 20, CLOSE_RAW_BLOCK: 21, openBlock: 22, block_option0: 23, closeBlock: 24, openInverse: 25, block_option1: 26, OPEN_BLOCK: 27, openBlock_repetition0: 28, openBlock_option0: 29, openBlock_option1: 30, CLOSE: 31, OPEN_INVERSE: 32, openInverse_repetition0: 33, openInverse_option0: 34, openInverse_option1: 35, openInverseChain: 36, OPEN_INVERSE_CHAIN: 37, openInverseChain_repetition0: 38, openInverseChain_option0: 39, openInverseChain_option1: 40, inverseAndProgram: 41, INVERSE: 42, inverseChain: 43, inverseChain_option0: 44, OPEN_ENDBLOCK: 45, OPEN: 46, mustache_repetition0: 47, mustache_option0: 48, OPEN_UNESCAPED: 49, mustache_repetition1: 50, mustache_option1: 51, CLOSE_UNESCAPED: 52, OPEN_PARTIAL: 53, partialName: 54, partial_repetition0: 55, partial_option0: 56, param: 57, sexpr: 58, OPEN_SEXPR: 59, sexpr_repetition0: 60, sexpr_option0: 61, CLOSE_SEXPR: 62, hash: 63, hash_repetition_plus0: 64, hashSegment: 65, ID: 66, EQUALS: 67, blockParams: 68, OPEN_BLOCK_PARAMS: 69, blockParams_repetition_plus0: 70, CLOSE_BLOCK_PARAMS: 71, path: 72, dataName: 73, STRING: 74, NUMBER: 75, BOOLEAN: 76, UNDEFINED: 77, NULL: 78, DATA: 79, pathSegments: 80, SEP: 81, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 5: "EOF", 13: "COMMENT", 14: "CONTENT", 16: "END_RAW_BLOCK", 17: "OPEN_RAW_BLOCK", 21: "CLOSE_RAW_BLOCK", 27: "OPEN_BLOCK", 31: "CLOSE", 32: "OPEN_INVERSE", 37: "OPEN_INVERSE_CHAIN", 42: "INVERSE", 45: "OPEN_ENDBLOCK", 46: "OPEN", 49: "OPEN_UNESCAPED", 52: "CLOSE_UNESCAPED", 53: "OPEN_PARTIAL", 59: "OPEN_SEXPR", 62: "CLOSE_SEXPR", 66: "ID", 67: "EQUALS", 69: "OPEN_BLOCK_PARAMS", 71: "CLOSE_BLOCK_PARAMS", 74: "STRING", 75: "NUMBER", 76: "BOOLEAN", 77: "UNDEFINED", 78: "NULL", 79: "DATA", 81: "SEP" }, + productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [12, 1], [10, 3], [15, 5], [9, 4], [9, 4], [22, 6], [25, 6], [36, 6], [41, 2], [43, 3], [43, 1], [24, 3], [8, 5], [8, 5], [11, 5], [57, 1], [57, 1], [58, 5], [63, 1], [65, 3], [68, 3], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [54, 1], [54, 1], [73, 2], [72, 1], [80, 3], [80, 1], [6, 0], [6, 2], [19, 0], [19, 2], [20, 0], [20, 1], [23, 0], [23, 1], [26, 0], [26, 1], [28, 0], [28, 2], [29, 0], [29, 1], [30, 0], [30, 1], [33, 0], [33, 2], [34, 0], [34, 1], [35, 0], [35, 1], [38, 0], [38, 2], [39, 0], [39, 1], [40, 0], [40, 1], [44, 0], [44, 1], [47, 0], [47, 2], [48, 0], [48, 1], [50, 0], [50, 2], [51, 0], [51, 1], [55, 0], [55, 2], [56, 0], [56, 1], [60, 0], [60, 2], [61, 0], [61, 1], [64, 1], [64, 2], [70, 1], [70, 2]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + break; + case 2: + this.$ = new yy.Program($$[$0], null, {}, yy.locInfo(this._$)); + break; + case 3: + this.$ = $$[$0]; + break; + case 4: + this.$ = $$[$0]; + break; + case 5: + this.$ = $$[$0]; + break; + case 6: + this.$ = $$[$0]; + break; + case 7: + this.$ = $$[$0]; + break; + case 8: + this.$ = new yy.CommentStatement(yy.stripComment($$[$0]), yy.stripFlags($$[$0], $$[$0]), yy.locInfo(this._$)); + break; + case 9: + this.$ = new yy.ContentStatement($$[$0], yy.locInfo(this._$)); + break; + case 10: + this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$); + break; + case 11: + this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1] }; + break; + case 12: + this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$); + break; + case 13: + this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$); + break; + case 14: + this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) }; + break; + case 15: + this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) }; + break; + case 16: + this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) }; + break; + case 17: + this.$ = { strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]), program: $$[$0] }; + break; + case 18: + var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$), + program = new yy.Program([inverse], null, {}, yy.locInfo(this._$)); + program.chained = true; + + this.$ = { strip: $$[$0 - 2].strip, program: program, chain: true }; + + break; + case 19: + this.$ = $$[$0]; + break; + case 20: + this.$ = { path: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 2], $$[$0]) }; + break; + case 21: + this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$); + break; + case 22: + this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$); + break; + case 23: + this.$ = new yy.PartialStatement($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], yy.stripFlags($$[$0 - 4], $$[$0]), yy.locInfo(this._$)); + break; + case 24: + this.$ = $$[$0]; + break; + case 25: + this.$ = $$[$0]; + break; + case 26: + this.$ = new yy.SubExpression($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], yy.locInfo(this._$)); + break; + case 27: + this.$ = new yy.Hash($$[$0], yy.locInfo(this._$)); + break; + case 28: + this.$ = new yy.HashPair(yy.id($$[$0 - 2]), $$[$0], yy.locInfo(this._$)); + break; + case 29: + this.$ = yy.id($$[$0 - 1]); + break; + case 30: + this.$ = $$[$0]; + break; + case 31: + this.$ = $$[$0]; + break; + case 32: + this.$ = new yy.StringLiteral($$[$0], yy.locInfo(this._$)); + break; + case 33: + this.$ = new yy.NumberLiteral($$[$0], yy.locInfo(this._$)); + break; + case 34: + this.$ = new yy.BooleanLiteral($$[$0], yy.locInfo(this._$)); + break; + case 35: + this.$ = new yy.UndefinedLiteral(yy.locInfo(this._$)); + break; + case 36: + this.$ = new yy.NullLiteral(yy.locInfo(this._$)); + break; + case 37: + this.$ = $$[$0]; + break; + case 38: + this.$ = $$[$0]; + break; + case 39: + this.$ = yy.preparePath(true, $$[$0], this._$); + break; + case 40: + this.$ = yy.preparePath(false, $$[$0], this._$); + break; + case 41: + $$[$0 - 2].push({ part: yy.id($$[$0]), original: $$[$0], separator: $$[$0 - 1] });this.$ = $$[$0 - 2]; + break; + case 42: + this.$ = [{ part: yy.id($$[$0]), original: $$[$0] }]; + break; + case 43: + this.$ = []; + break; + case 44: + $$[$0 - 1].push($$[$0]); + break; + case 45: + this.$ = []; + break; + case 46: + $$[$0 - 1].push($$[$0]); + break; + case 53: + this.$ = []; + break; + case 54: + $$[$0 - 1].push($$[$0]); + break; + case 59: + this.$ = []; + break; + case 60: + $$[$0 - 1].push($$[$0]); + break; + case 65: + this.$ = []; + break; + case 66: + $$[$0 - 1].push($$[$0]); + break; + case 73: + this.$ = []; + break; + case 74: + $$[$0 - 1].push($$[$0]); + break; + case 77: + this.$ = []; + break; + case 78: + $$[$0 - 1].push($$[$0]); + break; + case 81: + this.$ = []; + break; + case 82: + $$[$0 - 1].push($$[$0]); + break; + case 85: + this.$ = []; + break; + case 86: + $$[$0 - 1].push($$[$0]); + break; + case 89: + this.$ = [$$[$0]]; + break; + case 90: + $$[$0 - 1].push($$[$0]); + break; + case 91: + this.$ = [$$[$0]]; + break; + case 92: + $$[$0 - 1].push($$[$0]); + break; + } + }, + table: [{ 3: 1, 4: 2, 5: [2, 43], 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: [1, 11], 14: [1, 18], 15: 16, 17: [1, 21], 22: 14, 25: 15, 27: [1, 19], 32: [1, 20], 37: [2, 2], 42: [2, 2], 45: [2, 2], 46: [1, 12], 49: [1, 13], 53: [1, 17] }, { 1: [2, 1] }, { 5: [2, 44], 13: [2, 44], 14: [2, 44], 17: [2, 44], 27: [2, 44], 32: [2, 44], 37: [2, 44], 42: [2, 44], 45: [2, 44], 46: [2, 44], 49: [2, 44], 53: [2, 44] }, { 5: [2, 3], 13: [2, 3], 14: [2, 3], 17: [2, 3], 27: [2, 3], 32: [2, 3], 37: [2, 3], 42: [2, 3], 45: [2, 3], 46: [2, 3], 49: [2, 3], 53: [2, 3] }, { 5: [2, 4], 13: [2, 4], 14: [2, 4], 17: [2, 4], 27: [2, 4], 32: [2, 4], 37: [2, 4], 42: [2, 4], 45: [2, 4], 46: [2, 4], 49: [2, 4], 53: [2, 4] }, { 5: [2, 5], 13: [2, 5], 14: [2, 5], 17: [2, 5], 27: [2, 5], 32: [2, 5], 37: [2, 5], 42: [2, 5], 45: [2, 5], 46: [2, 5], 49: [2, 5], 53: [2, 5] }, { 5: [2, 6], 13: [2, 6], 14: [2, 6], 17: [2, 6], 27: [2, 6], 32: [2, 6], 37: [2, 6], 42: [2, 6], 45: [2, 6], 46: [2, 6], 49: [2, 6], 53: [2, 6] }, { 5: [2, 7], 13: [2, 7], 14: [2, 7], 17: [2, 7], 27: [2, 7], 32: [2, 7], 37: [2, 7], 42: [2, 7], 45: [2, 7], 46: [2, 7], 49: [2, 7], 53: [2, 7] }, { 5: [2, 8], 13: [2, 8], 14: [2, 8], 17: [2, 8], 27: [2, 8], 32: [2, 8], 37: [2, 8], 42: [2, 8], 45: [2, 8], 46: [2, 8], 49: [2, 8], 53: [2, 8] }, { 18: 22, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 33, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 4: 34, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 37: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 4: 35, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 12: 36, 14: [1, 18] }, { 18: 38, 54: 37, 58: 39, 59: [1, 40], 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 9], 13: [2, 9], 14: [2, 9], 16: [2, 9], 17: [2, 9], 27: [2, 9], 32: [2, 9], 37: [2, 9], 42: [2, 9], 45: [2, 9], 46: [2, 9], 49: [2, 9], 53: [2, 9] }, { 18: 41, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 42, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 43, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 31: [2, 73], 47: 44, 59: [2, 73], 66: [2, 73], 74: [2, 73], 75: [2, 73], 76: [2, 73], 77: [2, 73], 78: [2, 73], 79: [2, 73] }, { 21: [2, 30], 31: [2, 30], 52: [2, 30], 59: [2, 30], 62: [2, 30], 66: [2, 30], 69: [2, 30], 74: [2, 30], 75: [2, 30], 76: [2, 30], 77: [2, 30], 78: [2, 30], 79: [2, 30] }, { 21: [2, 31], 31: [2, 31], 52: [2, 31], 59: [2, 31], 62: [2, 31], 66: [2, 31], 69: [2, 31], 74: [2, 31], 75: [2, 31], 76: [2, 31], 77: [2, 31], 78: [2, 31], 79: [2, 31] }, { 21: [2, 32], 31: [2, 32], 52: [2, 32], 59: [2, 32], 62: [2, 32], 66: [2, 32], 69: [2, 32], 74: [2, 32], 75: [2, 32], 76: [2, 32], 77: [2, 32], 78: [2, 32], 79: [2, 32] }, { 21: [2, 33], 31: [2, 33], 52: [2, 33], 59: [2, 33], 62: [2, 33], 66: [2, 33], 69: [2, 33], 74: [2, 33], 75: [2, 33], 76: [2, 33], 77: [2, 33], 78: [2, 33], 79: [2, 33] }, { 21: [2, 34], 31: [2, 34], 52: [2, 34], 59: [2, 34], 62: [2, 34], 66: [2, 34], 69: [2, 34], 74: [2, 34], 75: [2, 34], 76: [2, 34], 77: [2, 34], 78: [2, 34], 79: [2, 34] }, { 21: [2, 35], 31: [2, 35], 52: [2, 35], 59: [2, 35], 62: [2, 35], 66: [2, 35], 69: [2, 35], 74: [2, 35], 75: [2, 35], 76: [2, 35], 77: [2, 35], 78: [2, 35], 79: [2, 35] }, { 21: [2, 36], 31: [2, 36], 52: [2, 36], 59: [2, 36], 62: [2, 36], 66: [2, 36], 69: [2, 36], 74: [2, 36], 75: [2, 36], 76: [2, 36], 77: [2, 36], 78: [2, 36], 79: [2, 36] }, { 21: [2, 40], 31: [2, 40], 52: [2, 40], 59: [2, 40], 62: [2, 40], 66: [2, 40], 69: [2, 40], 74: [2, 40], 75: [2, 40], 76: [2, 40], 77: [2, 40], 78: [2, 40], 79: [2, 40], 81: [1, 45] }, { 66: [1, 32], 80: 46 }, { 21: [2, 42], 31: [2, 42], 52: [2, 42], 59: [2, 42], 62: [2, 42], 66: [2, 42], 69: [2, 42], 74: [2, 42], 75: [2, 42], 76: [2, 42], 77: [2, 42], 78: [2, 42], 79: [2, 42], 81: [2, 42] }, { 50: 47, 52: [2, 77], 59: [2, 77], 66: [2, 77], 74: [2, 77], 75: [2, 77], 76: [2, 77], 77: [2, 77], 78: [2, 77], 79: [2, 77] }, { 23: 48, 36: 50, 37: [1, 52], 41: 51, 42: [1, 53], 43: 49, 45: [2, 49] }, { 26: 54, 41: 55, 42: [1, 53], 45: [2, 51] }, { 16: [1, 56] }, { 31: [2, 81], 55: 57, 59: [2, 81], 66: [2, 81], 74: [2, 81], 75: [2, 81], 76: [2, 81], 77: [2, 81], 78: [2, 81], 79: [2, 81] }, { 31: [2, 37], 59: [2, 37], 66: [2, 37], 74: [2, 37], 75: [2, 37], 76: [2, 37], 77: [2, 37], 78: [2, 37], 79: [2, 37] }, { 31: [2, 38], 59: [2, 38], 66: [2, 38], 74: [2, 38], 75: [2, 38], 76: [2, 38], 77: [2, 38], 78: [2, 38], 79: [2, 38] }, { 18: 58, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 28: 59, 31: [2, 53], 59: [2, 53], 66: [2, 53], 69: [2, 53], 74: [2, 53], 75: [2, 53], 76: [2, 53], 77: [2, 53], 78: [2, 53], 79: [2, 53] }, { 31: [2, 59], 33: 60, 59: [2, 59], 66: [2, 59], 69: [2, 59], 74: [2, 59], 75: [2, 59], 76: [2, 59], 77: [2, 59], 78: [2, 59], 79: [2, 59] }, { 19: 61, 21: [2, 45], 59: [2, 45], 66: [2, 45], 74: [2, 45], 75: [2, 45], 76: [2, 45], 77: [2, 45], 78: [2, 45], 79: [2, 45] }, { 18: 65, 31: [2, 75], 48: 62, 57: 63, 58: 66, 59: [1, 40], 63: 64, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 66: [1, 70] }, { 21: [2, 39], 31: [2, 39], 52: [2, 39], 59: [2, 39], 62: [2, 39], 66: [2, 39], 69: [2, 39], 74: [2, 39], 75: [2, 39], 76: [2, 39], 77: [2, 39], 78: [2, 39], 79: [2, 39], 81: [1, 45] }, { 18: 65, 51: 71, 52: [2, 79], 57: 72, 58: 66, 59: [1, 40], 63: 73, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 24: 74, 45: [1, 75] }, { 45: [2, 50] }, { 4: 76, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 37: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 45: [2, 19] }, { 18: 77, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 4: 78, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 24: 79, 45: [1, 75] }, { 45: [2, 52] }, { 5: [2, 10], 13: [2, 10], 14: [2, 10], 17: [2, 10], 27: [2, 10], 32: [2, 10], 37: [2, 10], 42: [2, 10], 45: [2, 10], 46: [2, 10], 49: [2, 10], 53: [2, 10] }, { 18: 65, 31: [2, 83], 56: 80, 57: 81, 58: 66, 59: [1, 40], 63: 82, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 59: [2, 85], 60: 83, 62: [2, 85], 66: [2, 85], 74: [2, 85], 75: [2, 85], 76: [2, 85], 77: [2, 85], 78: [2, 85], 79: [2, 85] }, { 18: 65, 29: 84, 31: [2, 55], 57: 85, 58: 66, 59: [1, 40], 63: 86, 64: 67, 65: 68, 66: [1, 69], 69: [2, 55], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 65, 31: [2, 61], 34: 87, 57: 88, 58: 66, 59: [1, 40], 63: 89, 64: 67, 65: 68, 66: [1, 69], 69: [2, 61], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 65, 20: 90, 21: [2, 47], 57: 91, 58: 66, 59: [1, 40], 63: 92, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 31: [1, 93] }, { 31: [2, 74], 59: [2, 74], 66: [2, 74], 74: [2, 74], 75: [2, 74], 76: [2, 74], 77: [2, 74], 78: [2, 74], 79: [2, 74] }, { 31: [2, 76] }, { 21: [2, 24], 31: [2, 24], 52: [2, 24], 59: [2, 24], 62: [2, 24], 66: [2, 24], 69: [2, 24], 74: [2, 24], 75: [2, 24], 76: [2, 24], 77: [2, 24], 78: [2, 24], 79: [2, 24] }, { 21: [2, 25], 31: [2, 25], 52: [2, 25], 59: [2, 25], 62: [2, 25], 66: [2, 25], 69: [2, 25], 74: [2, 25], 75: [2, 25], 76: [2, 25], 77: [2, 25], 78: [2, 25], 79: [2, 25] }, { 21: [2, 27], 31: [2, 27], 52: [2, 27], 62: [2, 27], 65: 94, 66: [1, 95], 69: [2, 27] }, { 21: [2, 89], 31: [2, 89], 52: [2, 89], 62: [2, 89], 66: [2, 89], 69: [2, 89] }, { 21: [2, 42], 31: [2, 42], 52: [2, 42], 59: [2, 42], 62: [2, 42], 66: [2, 42], 67: [1, 96], 69: [2, 42], 74: [2, 42], 75: [2, 42], 76: [2, 42], 77: [2, 42], 78: [2, 42], 79: [2, 42], 81: [2, 42] }, { 21: [2, 41], 31: [2, 41], 52: [2, 41], 59: [2, 41], 62: [2, 41], 66: [2, 41], 69: [2, 41], 74: [2, 41], 75: [2, 41], 76: [2, 41], 77: [2, 41], 78: [2, 41], 79: [2, 41], 81: [2, 41] }, { 52: [1, 97] }, { 52: [2, 78], 59: [2, 78], 66: [2, 78], 74: [2, 78], 75: [2, 78], 76: [2, 78], 77: [2, 78], 78: [2, 78], 79: [2, 78] }, { 52: [2, 80] }, { 5: [2, 12], 13: [2, 12], 14: [2, 12], 17: [2, 12], 27: [2, 12], 32: [2, 12], 37: [2, 12], 42: [2, 12], 45: [2, 12], 46: [2, 12], 49: [2, 12], 53: [2, 12] }, { 18: 98, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 36: 50, 37: [1, 52], 41: 51, 42: [1, 53], 43: 100, 44: 99, 45: [2, 71] }, { 31: [2, 65], 38: 101, 59: [2, 65], 66: [2, 65], 69: [2, 65], 74: [2, 65], 75: [2, 65], 76: [2, 65], 77: [2, 65], 78: [2, 65], 79: [2, 65] }, { 45: [2, 17] }, { 5: [2, 13], 13: [2, 13], 14: [2, 13], 17: [2, 13], 27: [2, 13], 32: [2, 13], 37: [2, 13], 42: [2, 13], 45: [2, 13], 46: [2, 13], 49: [2, 13], 53: [2, 13] }, { 31: [1, 102] }, { 31: [2, 82], 59: [2, 82], 66: [2, 82], 74: [2, 82], 75: [2, 82], 76: [2, 82], 77: [2, 82], 78: [2, 82], 79: [2, 82] }, { 31: [2, 84] }, { 18: 65, 57: 104, 58: 66, 59: [1, 40], 61: 103, 62: [2, 87], 63: 105, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 30: 106, 31: [2, 57], 68: 107, 69: [1, 108] }, { 31: [2, 54], 59: [2, 54], 66: [2, 54], 69: [2, 54], 74: [2, 54], 75: [2, 54], 76: [2, 54], 77: [2, 54], 78: [2, 54], 79: [2, 54] }, { 31: [2, 56], 69: [2, 56] }, { 31: [2, 63], 35: 109, 68: 110, 69: [1, 108] }, { 31: [2, 60], 59: [2, 60], 66: [2, 60], 69: [2, 60], 74: [2, 60], 75: [2, 60], 76: [2, 60], 77: [2, 60], 78: [2, 60], 79: [2, 60] }, { 31: [2, 62], 69: [2, 62] }, { 21: [1, 111] }, { 21: [2, 46], 59: [2, 46], 66: [2, 46], 74: [2, 46], 75: [2, 46], 76: [2, 46], 77: [2, 46], 78: [2, 46], 79: [2, 46] }, { 21: [2, 48] }, { 5: [2, 21], 13: [2, 21], 14: [2, 21], 17: [2, 21], 27: [2, 21], 32: [2, 21], 37: [2, 21], 42: [2, 21], 45: [2, 21], 46: [2, 21], 49: [2, 21], 53: [2, 21] }, { 21: [2, 90], 31: [2, 90], 52: [2, 90], 62: [2, 90], 66: [2, 90], 69: [2, 90] }, { 67: [1, 96] }, { 18: 65, 57: 112, 58: 66, 59: [1, 40], 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 22], 13: [2, 22], 14: [2, 22], 17: [2, 22], 27: [2, 22], 32: [2, 22], 37: [2, 22], 42: [2, 22], 45: [2, 22], 46: [2, 22], 49: [2, 22], 53: [2, 22] }, { 31: [1, 113] }, { 45: [2, 18] }, { 45: [2, 72] }, { 18: 65, 31: [2, 67], 39: 114, 57: 115, 58: 66, 59: [1, 40], 63: 116, 64: 67, 65: 68, 66: [1, 69], 69: [2, 67], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 23], 13: [2, 23], 14: [2, 23], 17: [2, 23], 27: [2, 23], 32: [2, 23], 37: [2, 23], 42: [2, 23], 45: [2, 23], 46: [2, 23], 49: [2, 23], 53: [2, 23] }, { 62: [1, 117] }, { 59: [2, 86], 62: [2, 86], 66: [2, 86], 74: [2, 86], 75: [2, 86], 76: [2, 86], 77: [2, 86], 78: [2, 86], 79: [2, 86] }, { 62: [2, 88] }, { 31: [1, 118] }, { 31: [2, 58] }, { 66: [1, 120], 70: 119 }, { 31: [1, 121] }, { 31: [2, 64] }, { 14: [2, 11] }, { 21: [2, 28], 31: [2, 28], 52: [2, 28], 62: [2, 28], 66: [2, 28], 69: [2, 28] }, { 5: [2, 20], 13: [2, 20], 14: [2, 20], 17: [2, 20], 27: [2, 20], 32: [2, 20], 37: [2, 20], 42: [2, 20], 45: [2, 20], 46: [2, 20], 49: [2, 20], 53: [2, 20] }, { 31: [2, 69], 40: 122, 68: 123, 69: [1, 108] }, { 31: [2, 66], 59: [2, 66], 66: [2, 66], 69: [2, 66], 74: [2, 66], 75: [2, 66], 76: [2, 66], 77: [2, 66], 78: [2, 66], 79: [2, 66] }, { 31: [2, 68], 69: [2, 68] }, { 21: [2, 26], 31: [2, 26], 52: [2, 26], 59: [2, 26], 62: [2, 26], 66: [2, 26], 69: [2, 26], 74: [2, 26], 75: [2, 26], 76: [2, 26], 77: [2, 26], 78: [2, 26], 79: [2, 26] }, { 13: [2, 14], 14: [2, 14], 17: [2, 14], 27: [2, 14], 32: [2, 14], 37: [2, 14], 42: [2, 14], 45: [2, 14], 46: [2, 14], 49: [2, 14], 53: [2, 14] }, { 66: [1, 125], 71: [1, 124] }, { 66: [2, 91], 71: [2, 91] }, { 13: [2, 15], 14: [2, 15], 17: [2, 15], 27: [2, 15], 32: [2, 15], 42: [2, 15], 45: [2, 15], 46: [2, 15], 49: [2, 15], 53: [2, 15] }, { 31: [1, 126] }, { 31: [2, 70] }, { 31: [2, 29] }, { 66: [2, 92], 71: [2, 92] }, { 13: [2, 16], 14: [2, 16], 17: [2, 16], 27: [2, 16], 32: [2, 16], 37: [2, 16], 42: [2, 16], 45: [2, 16], 46: [2, 16], 49: [2, 16], 53: [2, 16] }], + defaultActions: { 4: [2, 1], 49: [2, 50], 51: [2, 19], 55: [2, 52], 64: [2, 76], 73: [2, 80], 78: [2, 17], 82: [2, 84], 92: [2, 48], 99: [2, 18], 100: [2, 72], 105: [2, 88], 107: [2, 58], 110: [2, 64], 111: [2, 11], 123: [2, 70], 124: [2, 29] }, + parseError: function parseError(str, hash) { + throw new Error(str); + }, + parse: function parse(input) { + var self = this, + stack = [0], + vstack = [null], + lstack = [], + table = this.table, + yytext = "", + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + this.lexer.setInput(input); + this.lexer.yy = this.yy; + this.yy.lexer = this.lexer; + this.yy.parser = this; + if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {}; + var yyloc = this.lexer.yylloc; + lstack.push(yyloc); + var ranges = this.lexer.options && this.lexer.options.ranges; + if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError; + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + function lex() { + var token; + token = self.lexer.lex() || 1; + if (typeof token !== "number") { + token = self.symbols_[token] || token; + } + return token; + } + var symbol, + preErrorSymbol, + state, + action, + a, + r, + yyval = {}, + p, + len, + newState, + expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + if (!recovering) { + expected = []; + for (p in table[state]) if (this.terminals_[p] && p > 2) { + expected.push("'" + this.terminals_[p] + "'"); + } + if (this.lexer.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected }); + } + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(this.lexer.yytext); + lstack.push(this.lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = this.lexer.yyleng; + yytext = this.lexer.yytext; + yylineno = this.lexer.yylineno; + yyloc = this.lexer.yylloc; + if (recovering > 0) recovering--; + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column }; + if (ranges) { + yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; + } + r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + /* Jison generated lexer */ + var lexer = (function () { + var lexer = { EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + setInput: function setInput(input) { + this._input = input; + this._more = this._less = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }; + if (this.options.ranges) this.yylloc.range = [0, 0]; + this.offset = 0; + return this; + }, + input: function input() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) this.yylloc.range[1]++; + + this._input = this._input.slice(1); + return ch; + }, + unput: function unput(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len - 1); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) this.yylineno -= lines.length - 1; + var r = this.yylloc.range; + + this.yylloc = { first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + return this; + }, + more: function more() { + this._more = true; + return this; + }, + less: function less(n) { + this.unput(this.match.slice(n)); + }, + pastInput: function pastInput() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + upcomingInput: function upcomingInput() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + showPosition: function showPosition() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + next: function next() { + if (this.done) { + return this.EOF; + } + if (!this._input) this.done = true; + + var token, match, tempMatch, index, col, lines; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (!this.options.flex) break; + } + } + if (match) { + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) this.yylineno += lines.length; + this.yylloc = { first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) this.done = false; + if (token) { + return token; + } else { + return; + } + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }); + } + }, + lex: function lex() { + var r = this.next(); + if (typeof r !== "undefined") { + return r; + } else { + return this.lex(); + } + }, + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + popState: function popState() { + return this.conditionStack.pop(); + }, + _currentRules: function _currentRules() { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + }, + topState: function topState() { + return this.conditionStack[this.conditionStack.length - 2]; + }, + pushState: function begin(condition) { + this.begin(condition); + } }; + lexer.options = {}; + lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + + function strip(start, end) { + return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng - end); + } + + var YYSTATE = YY_START; + switch ($avoiding_name_collisions) { + case 0: + if (yy_.yytext.slice(-2) === "\\\\") { + strip(0, 1); + this.begin("mu"); + } else if (yy_.yytext.slice(-1) === "\\") { + strip(0, 1); + this.begin("emu"); + } else { + this.begin("mu"); + } + if (yy_.yytext) { + return 14; + }break; + case 1: + return 14; + break; + case 2: + this.popState(); + return 14; + + break; + case 3: + yy_.yytext = yy_.yytext.substr(5, yy_.yyleng - 9); + this.popState(); + return 16; + + break; + case 4: + return 14; + break; + case 5: + this.popState(); + return 13; + + break; + case 6: + return 59; + break; + case 7: + return 62; + break; + case 8: + return 17; + break; + case 9: + this.popState(); + this.begin("raw"); + return 21; + + break; + case 10: + return 53; + break; + case 11: + return 27; + break; + case 12: + return 45; + break; + case 13: + this.popState();return 42; + break; + case 14: + this.popState();return 42; + break; + case 15: + return 32; + break; + case 16: + return 37; + break; + case 17: + return 49; + break; + case 18: + return 46; + break; + case 19: + this.unput(yy_.yytext); + this.popState(); + this.begin("com"); + + break; + case 20: + this.popState(); + return 13; + + break; + case 21: + return 46; + break; + case 22: + return 67; + break; + case 23: + return 66; + break; + case 24: + return 66; + break; + case 25: + return 81; + break; + case 26: + // ignore whitespace + break; + case 27: + this.popState();return 52; + break; + case 28: + this.popState();return 31; + break; + case 29: + yy_.yytext = strip(1, 2).replace(/\\"/g, "\"");return 74; + break; + case 30: + yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 74; + break; + case 31: + return 79; + break; + case 32: + return 76; + break; + case 33: + return 76; + break; + case 34: + return 77; + break; + case 35: + return 78; + break; + case 36: + return 75; + break; + case 37: + return 69; + break; + case 38: + return 71; + break; + case 39: + return 66; + break; + case 40: + return 66; + break; + case 41: + return "INVALID"; + break; + case 42: + return 5; + break; + } + }; + lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{\/)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[[^\]]*\])/, /^(?:.)/, /^(?:$)/]; + lexer.conditions = { mu: { rules: [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42], inclusive: false }, emu: { rules: [2], inclusive: false }, com: { rules: [5], inclusive: false }, raw: { rules: [3, 4], inclusive: false }, INITIAL: { rules: [0, 1, 42], inclusive: true } }; + return lexer; + })(); + parser.lexer = lexer; + function Parser() { + this.yy = {}; + }Parser.prototype = parser;parser.Parser = Parser; + return new Parser(); + })();module.exports = handlebars; +}); +define('handlebars/compiler/visitor',['exports', 'module', '../exception', './ast'], function (exports, module, _exception, _ast) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + var _Exception = _interopRequire(_exception); + + var _AST = _interopRequire(_ast); + + function Visitor() { + this.parents = []; + } + + Visitor.prototype = { + constructor: Visitor, + mutating: false, + + // Visits a given value. If mutating, will replace the value if necessary. + acceptKey: function acceptKey(node, name) { + var value = this.accept(node[name]); + if (this.mutating) { + // Hacky sanity check: + if (value && (!value.type || !_AST[value.type])) { + throw new _Exception('Unexpected node type "' + value.type + '" found when accepting ' + name + ' on ' + node.type); + } + node[name] = value; + } + }, + + // Performs an accept operation with added sanity check to ensure + // required keys are not removed. + acceptRequired: function acceptRequired(node, name) { + this.acceptKey(node, name); + + if (!node[name]) { + throw new _Exception(node.type + ' requires ' + name); + } + }, + + // Traverses a given array. If mutating, empty respnses will be removed + // for child elements. + acceptArray: function acceptArray(array) { + for (var i = 0, l = array.length; i < l; i++) { + this.acceptKey(array, i); + + if (!array[i]) { + array.splice(i, 1); + i--; + l--; + } + } + }, + + accept: function accept(object) { + if (!object) { + return; + } + + if (this.current) { + this.parents.unshift(this.current); + } + this.current = object; + + var ret = this[object.type](object); + + this.current = this.parents.shift(); + + if (!this.mutating || ret) { + return ret; + } else if (ret !== false) { + return object; + } + }, + + Program: function Program(program) { + this.acceptArray(program.body); + }, + + MustacheStatement: function MustacheStatement(mustache) { + this.acceptRequired(mustache, 'path'); + this.acceptArray(mustache.params); + this.acceptKey(mustache, 'hash'); + }, + + BlockStatement: function BlockStatement(block) { + this.acceptRequired(block, 'path'); + this.acceptArray(block.params); + this.acceptKey(block, 'hash'); + + this.acceptKey(block, 'program'); + this.acceptKey(block, 'inverse'); + }, + + PartialStatement: function PartialStatement(partial) { + this.acceptRequired(partial, 'name'); + this.acceptArray(partial.params); + this.acceptKey(partial, 'hash'); + }, + + ContentStatement: function ContentStatement() {}, + CommentStatement: function CommentStatement() {}, + + SubExpression: function SubExpression(sexpr) { + this.acceptRequired(sexpr, 'path'); + this.acceptArray(sexpr.params); + this.acceptKey(sexpr, 'hash'); + }, + + PathExpression: function PathExpression() {}, + + StringLiteral: function StringLiteral() {}, + NumberLiteral: function NumberLiteral() {}, + BooleanLiteral: function BooleanLiteral() {}, + UndefinedLiteral: function UndefinedLiteral() {}, + NullLiteral: function NullLiteral() {}, + + Hash: function Hash(hash) { + this.acceptArray(hash.pairs); + }, + HashPair: function HashPair(pair) { + this.acceptRequired(pair, 'value'); + } + }; + + module.exports = Visitor; +}); +/* content */ /* comment */ /* path */ /* string */ /* number */ /* bool */ /* literal */ /* literal */; +define('handlebars/compiler/whitespace-control',['exports', 'module', './visitor'], function (exports, module, _visitor) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + var _Visitor = _interopRequire(_visitor); + + function WhitespaceControl() {} + WhitespaceControl.prototype = new _Visitor(); + + WhitespaceControl.prototype.Program = function (program) { + var isRoot = !this.isRootSeen; + this.isRootSeen = true; + + var body = program.body; + for (var i = 0, l = body.length; i < l; i++) { + var current = body[i], + strip = this.accept(current); + + if (!strip) { + continue; + } + + var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot), + _isNextWhitespace = isNextWhitespace(body, i, isRoot), + openStandalone = strip.openStandalone && _isPrevWhitespace, + closeStandalone = strip.closeStandalone && _isNextWhitespace, + inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace; + + if (strip.close) { + omitRight(body, i, true); + } + if (strip.open) { + omitLeft(body, i, true); + } + + if (inlineStandalone) { + omitRight(body, i); + + if (omitLeft(body, i)) { + // If we are on a standalone node, save the indent info for partials + if (current.type === 'PartialStatement') { + // Pull out the whitespace from the final line + current.indent = /([ \t]+$)/.exec(body[i - 1].original)[1]; + } + } + } + if (openStandalone) { + omitRight((current.program || current.inverse).body); + + // Strip out the previous content node if it's whitespace only + omitLeft(body, i); + } + if (closeStandalone) { + // Always strip the next node + omitRight(body, i); + + omitLeft((current.inverse || current.program).body); + } + } + + return program; + }; + WhitespaceControl.prototype.BlockStatement = function (block) { + this.accept(block.program); + this.accept(block.inverse); + + // Find the inverse program that is involed with whitespace stripping. + var program = block.program || block.inverse, + inverse = block.program && block.inverse, + firstInverse = inverse, + lastInverse = inverse; + + if (inverse && inverse.chained) { + firstInverse = inverse.body[0].program; + + // Walk the inverse chain to find the last inverse that is actually in the chain. + while (lastInverse.chained) { + lastInverse = lastInverse.body[lastInverse.body.length - 1].program; + } + } + + var strip = { + open: block.openStrip.open, + close: block.closeStrip.close, + + // Determine the standalone candiacy. Basically flag our content as being possibly standalone + // so our parent can determine if we actually are standalone + openStandalone: isNextWhitespace(program.body), + closeStandalone: isPrevWhitespace((firstInverse || program).body) + }; + + if (block.openStrip.close) { + omitRight(program.body, null, true); + } + + if (inverse) { + var inverseStrip = block.inverseStrip; + + if (inverseStrip.open) { + omitLeft(program.body, null, true); + } + + if (inverseStrip.close) { + omitRight(firstInverse.body, null, true); + } + if (block.closeStrip.open) { + omitLeft(lastInverse.body, null, true); + } + + // Find standalone else statments + if (isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) { + omitLeft(program.body); + omitRight(firstInverse.body); + } + } else if (block.closeStrip.open) { + omitLeft(program.body, null, true); + } + + return strip; + }; + + WhitespaceControl.prototype.MustacheStatement = function (mustache) { + return mustache.strip; + }; + + WhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) { + /* istanbul ignore next */ + var strip = node.strip || {}; + return { + inlineStandalone: true, + open: strip.open, + close: strip.close + }; + }; + + function isPrevWhitespace(body, i, isRoot) { + if (i === undefined) { + i = body.length; + } + + // Nodes that end with newlines are considered whitespace (but are special + // cased for strip operations) + var prev = body[i - 1], + sibling = body[i - 2]; + if (!prev) { + return isRoot; + } + + if (prev.type === 'ContentStatement') { + return (sibling || !isRoot ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(prev.original); + } + } + function isNextWhitespace(body, i, isRoot) { + if (i === undefined) { + i = -1; + } + + var next = body[i + 1], + sibling = body[i + 2]; + if (!next) { + return isRoot; + } + + if (next.type === 'ContentStatement') { + return (sibling || !isRoot ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(next.original); + } + } + + // Marks the node to the right of the position as omitted. + // I.e. {{foo}}' ' will mark the ' ' node as omitted. + // + // If i is undefined, then the first child will be marked as such. + // + // If mulitple is truthy then all whitespace will be stripped out until non-whitespace + // content is met. + function omitRight(body, i, multiple) { + var current = body[i == null ? 0 : i + 1]; + if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) { + return; + } + + var original = current.value; + current.value = current.value.replace(multiple ? /^\s+/ : /^[ \t]*\r?\n?/, ''); + current.rightStripped = current.value !== original; + } + + // Marks the node to the left of the position as omitted. + // I.e. ' '{{foo}} will mark the ' ' node as omitted. + // + // If i is undefined then the last child will be marked as such. + // + // If mulitple is truthy then all whitespace will be stripped out until non-whitespace + // content is met. + function omitLeft(body, i, multiple) { + var current = body[i == null ? body.length - 1 : i - 1]; + if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) { + return; + } + + // We omit the last node if it's whitespace only and not preceeded by a non-content node. + var original = current.value; + current.value = current.value.replace(multiple ? /\s+$/ : /[ \t]+$/, ''); + current.leftStripped = current.value !== original; + return current.leftStripped; + } + + module.exports = WhitespaceControl; +}); +define('handlebars/compiler/helpers',['exports', '../exception'], function (exports, _exception) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + exports.__esModule = true; + exports.SourceLocation = SourceLocation; + exports.id = id; + exports.stripFlags = stripFlags; + exports.stripComment = stripComment; + exports.preparePath = preparePath; + exports.prepareMustache = prepareMustache; + exports.prepareRawBlock = prepareRawBlock; + exports.prepareBlock = prepareBlock; + + var _Exception = _interopRequire(_exception); + + function SourceLocation(source, locInfo) { + this.source = source; + this.start = { + line: locInfo.first_line, + column: locInfo.first_column + }; + this.end = { + line: locInfo.last_line, + column: locInfo.last_column + }; + } + + function id(token) { + if (/^\[.*\]$/.test(token)) { + return token.substr(1, token.length - 2); + } else { + return token; + } + } + + function stripFlags(open, close) { + return { + open: open.charAt(2) === '~', + close: close.charAt(close.length - 3) === '~' + }; + } + + function stripComment(comment) { + return comment.replace(/^\{\{~?\!-?-?/, '').replace(/-?-?~?\}\}$/, ''); + } + + function preparePath(data, parts, locInfo) { + locInfo = this.locInfo(locInfo); + + var original = data ? '@' : '', + dig = [], + depth = 0, + depthString = ''; + + for (var i = 0, l = parts.length; i < l; i++) { + var part = parts[i].part, + + // If we have [] syntax then we do not treat path references as operators, + // i.e. foo.[this] resolves to approximately context.foo['this'] + isLiteral = parts[i].original !== part; + original += (parts[i].separator || '') + part; + + if (!isLiteral && (part === '..' || part === '.' || part === 'this')) { + if (dig.length > 0) { + throw new _Exception('Invalid path: ' + original, { loc: locInfo }); + } else if (part === '..') { + depth++; + depthString += '../'; + } + } else { + dig.push(part); + } + } + + return new this.PathExpression(data, depth, dig, original, locInfo); + } + + function prepareMustache(path, params, hash, open, strip, locInfo) { + // Must use charAt to support IE pre-10 + var escapeFlag = open.charAt(3) || open.charAt(2), + escaped = escapeFlag !== '{' && escapeFlag !== '&'; + + return new this.MustacheStatement(path, params, hash, escaped, strip, this.locInfo(locInfo)); + } + + function prepareRawBlock(openRawBlock, content, close, locInfo) { + if (openRawBlock.path.original !== close) { + var errorNode = { loc: openRawBlock.path.loc }; + + throw new _Exception(openRawBlock.path.original + ' doesn\'t match ' + close, errorNode); + } + + locInfo = this.locInfo(locInfo); + var program = new this.Program([content], null, {}, locInfo); + + return new this.BlockStatement(openRawBlock.path, openRawBlock.params, openRawBlock.hash, program, undefined, {}, {}, {}, locInfo); + } + + function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) { + // When we are chaining inverse calls, we will not have a close path + if (close && close.path && openBlock.path.original !== close.path.original) { + var errorNode = { loc: openBlock.path.loc }; + + throw new _Exception(openBlock.path.original + ' doesn\'t match ' + close.path.original, errorNode); + } + + program.blockParams = openBlock.blockParams; + + var inverse = undefined, + inverseStrip = undefined; + + if (inverseAndProgram) { + if (inverseAndProgram.chain) { + inverseAndProgram.program.body[0].closeStrip = close.strip; + } + + inverseStrip = inverseAndProgram.strip; + inverse = inverseAndProgram.program; + } + + if (inverted) { + inverted = inverse; + inverse = program; + program = inverted; + } + + return new this.BlockStatement(openBlock.path, openBlock.params, openBlock.hash, program, inverse, openBlock.strip, inverseStrip, close && close.strip, this.locInfo(locInfo)); + } +}); +define('handlebars/compiler/base',['exports', './parser', './ast', './whitespace-control', './helpers', '../utils'], function (exports, _parser, _ast, _whitespaceControl, _helpers, _utils) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + exports.__esModule = true; + exports.parse = parse; + + var _parser2 = _interopRequire(_parser); + + var _AST = _interopRequire(_ast); + + var _WhitespaceControl = _interopRequire(_whitespaceControl); + + exports.parser = _parser2; + + var yy = {}; + _utils.extend(yy, _helpers, _AST); + + function parse(input, options) { + // Just return if an already-compiled AST was passed in. + if (input.type === 'Program') { + return input; + } + + _parser2.yy = yy; + + // Altering the shared object here, but this is ok as parser is a sync operation + yy.locInfo = function (locInfo) { + return new yy.SourceLocation(options && options.srcName, locInfo); + }; + + var strip = new _WhitespaceControl(); + return strip.accept(_parser2.parse(input)); + } +}); +define('handlebars/compiler/compiler',['exports', '../exception', '../utils', './ast'], function (exports, _exception, _utils, _ast) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + exports.__esModule = true; + exports.Compiler = Compiler; + exports.precompile = precompile; + exports.compile = compile; + + var _Exception = _interopRequire(_exception); + + var _AST = _interopRequire(_ast); + + var slice = [].slice; + + function Compiler() {} + + // the foundHelper register will disambiguate helper lookup from finding a + // function in a context. This is necessary for mustache compatibility, which + // requires that context functions in blocks are evaluated by blockHelperMissing, + // and then proceed as if the resulting value was provided to blockHelperMissing. + + Compiler.prototype = { + compiler: Compiler, + + equals: function equals(other) { + var len = this.opcodes.length; + if (other.opcodes.length !== len) { return false; } - } - __exports__.isEmpty = isEmpty;function appendContextPath(contextPath, id) { - return (contextPath ? contextPath + '.' : '') + id; - } - - __exports__.appendContextPath = appendContextPath; - }); -define( - 'handlebars/exception',["exports"], - function(__exports__) { - - - var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; - - function Exception(message, node) { - var line; - if (node && node.firstLine) { - line = node.firstLine; - - message += ' - ' + line + ':' + node.firstColumn; + for (var i = 0; i < len; i++) { + var opcode = this.opcodes[i], + otherOpcode = other.opcodes[i]; + if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) { + return false; + } } - var tmp = Error.prototype.constructor.call(this, message); - - // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. - for (var idx = 0; idx < errorProps.length; idx++) { - this[errorProps[idx]] = tmp[errorProps[idx]]; + // We know that length is the same between the two arrays because they are directly tied + // to the opcode behavior above. + len = this.children.length; + for (var i = 0; i < len; i++) { + if (!this.children[i].equals(other.children[i])) { + return false; + } } - if (line) { - this.lineNumber = line; - this.column = node.firstColumn; + return true; + }, + + guid: 0, + + compile: function compile(program, options) { + this.sourceNode = []; + this.opcodes = []; + this.children = []; + this.options = options; + this.stringParams = options.stringParams; + this.trackIds = options.trackIds; + + options.blockParams = options.blockParams || []; + + // These changes will propagate to the other compiler components + var knownHelpers = options.knownHelpers; + options.knownHelpers = { + helperMissing: true, + blockHelperMissing: true, + each: true, + 'if': true, + unless: true, + 'with': true, + log: true, + lookup: true + }; + if (knownHelpers) { + for (var _name in knownHelpers) { + if (_name in knownHelpers) { + options.knownHelpers[_name] = knownHelpers[_name]; + } + } + } + + return this.accept(program); + }, + + compileProgram: function compileProgram(program) { + var childCompiler = new this.compiler(), + // eslint-disable-line new-cap + result = childCompiler.compile(program, this.options), + guid = this.guid++; + + this.usePartial = this.usePartial || result.usePartial; + + this.children[guid] = result; + this.useDepths = this.useDepths || result.useDepths; + + return guid; + }, + + accept: function accept(node) { + this.sourceNode.unshift(node); + var ret = this[node.type](node); + this.sourceNode.shift(); + return ret; + }, + + Program: function Program(program) { + this.options.blockParams.unshift(program.blockParams); + + var body = program.body, + bodyLength = body.length; + for (var i = 0; i < bodyLength; i++) { + this.accept(body[i]); + } + + this.options.blockParams.shift(); + + this.isSimple = bodyLength === 1; + this.blockParams = program.blockParams ? program.blockParams.length : 0; + + return this; + }, + + BlockStatement: function BlockStatement(block) { + transformLiteralToPath(block); + + var program = block.program, + inverse = block.inverse; + + program = program && this.compileProgram(program); + inverse = inverse && this.compileProgram(inverse); + + var type = this.classifySexpr(block); + + if (type === 'helper') { + this.helperSexpr(block, program, inverse); + } else if (type === 'simple') { + this.simpleSexpr(block); + + // now that the simple mustache is resolved, we need to + // evaluate it by executing `blockHelperMissing` + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + this.opcode('emptyHash'); + this.opcode('blockValue', block.path.original); + } else { + this.ambiguousSexpr(block, program, inverse); + + // now that the simple mustache is resolved, we need to + // evaluate it by executing `blockHelperMissing` + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + this.opcode('emptyHash'); + this.opcode('ambiguousBlockValue'); + } + + this.opcode('append'); + }, + + PartialStatement: function PartialStatement(partial) { + this.usePartial = true; + + var params = partial.params; + if (params.length > 1) { + throw new _Exception('Unsupported number of partial arguments: ' + params.length, partial); + } else if (!params.length) { + params.push({ type: 'PathExpression', parts: [], depth: 0 }); + } + + var partialName = partial.name.original, + isDynamic = partial.name.type === 'SubExpression'; + if (isDynamic) { + this.accept(partial.name); + } + + this.setupFullMustacheParams(partial, undefined, undefined, true); + + var indent = partial.indent || ''; + if (this.options.preventIndent && indent) { + this.opcode('appendContent', indent); + indent = ''; + } + + this.opcode('invokePartial', isDynamic, partialName, indent); + this.opcode('append'); + }, + + MustacheStatement: function MustacheStatement(mustache) { + this.SubExpression(mustache); // eslint-disable-line new-cap + + if (mustache.escaped && !this.options.noEscape) { + this.opcode('appendEscaped'); + } else { + this.opcode('append'); + } + }, + + ContentStatement: function ContentStatement(content) { + if (content.value) { + this.opcode('appendContent', content.value); + } + }, + + CommentStatement: function CommentStatement() {}, + + SubExpression: function SubExpression(sexpr) { + transformLiteralToPath(sexpr); + var type = this.classifySexpr(sexpr); + + if (type === 'simple') { + this.simpleSexpr(sexpr); + } else if (type === 'helper') { + this.helperSexpr(sexpr); + } else { + this.ambiguousSexpr(sexpr); + } + }, + ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) { + var path = sexpr.path, + name = path.parts[0], + isBlock = program != null || inverse != null; + + this.opcode('getContext', path.depth); + + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + + this.accept(path); + + this.opcode('invokeAmbiguous', name, isBlock); + }, + + simpleSexpr: function simpleSexpr(sexpr) { + this.accept(sexpr.path); + this.opcode('resolvePossibleLambda'); + }, + + helperSexpr: function helperSexpr(sexpr, program, inverse) { + var params = this.setupFullMustacheParams(sexpr, program, inverse), + path = sexpr.path, + name = path.parts[0]; + + if (this.options.knownHelpers[name]) { + this.opcode('invokeKnownHelper', params.length, name); + } else if (this.options.knownHelpersOnly) { + throw new _Exception('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr); + } else { + path.falsy = true; + + this.accept(path); + this.opcode('invokeHelper', params.length, path.original, _AST.helpers.simpleId(path)); + } + }, + + PathExpression: function PathExpression(path) { + this.addDepth(path.depth); + this.opcode('getContext', path.depth); + + var name = path.parts[0], + scoped = _AST.helpers.scopedId(path), + blockParamId = !path.depth && !scoped && this.blockParamIndex(name); + + if (blockParamId) { + this.opcode('lookupBlockParam', blockParamId, path.parts); + } else if (!name) { + // Context reference, i.e. `{{foo .}}` or `{{foo ..}}` + this.opcode('pushContext'); + } else if (path.data) { + this.options.data = true; + this.opcode('lookupData', path.depth, path.parts); + } else { + this.opcode('lookupOnContext', path.parts, path.falsy, scoped); + } + }, + + StringLiteral: function StringLiteral(string) { + this.opcode('pushString', string.value); + }, + + NumberLiteral: function NumberLiteral(number) { + this.opcode('pushLiteral', number.value); + }, + + BooleanLiteral: function BooleanLiteral(bool) { + this.opcode('pushLiteral', bool.value); + }, + + UndefinedLiteral: function UndefinedLiteral() { + this.opcode('pushLiteral', 'undefined'); + }, + + NullLiteral: function NullLiteral() { + this.opcode('pushLiteral', 'null'); + }, + + Hash: function Hash(hash) { + var pairs = hash.pairs, + i = 0, + l = pairs.length; + + this.opcode('pushHash'); + + for (; i < l; i++) { + this.pushParam(pairs[i].value); + } + while (i--) { + this.opcode('assignToHash', pairs[i].key); + } + this.opcode('popHash'); + }, + + // HELPERS + opcode: function opcode(name) { + this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc }); + }, + + addDepth: function addDepth(depth) { + if (!depth) { + return; + } + + this.useDepths = true; + }, + + classifySexpr: function classifySexpr(sexpr) { + var isSimple = _AST.helpers.simpleId(sexpr.path); + + var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]); + + // a mustache is an eligible helper if: + // * its id is simple (a single part, not `this` or `..`) + var isHelper = !isBlockParam && _AST.helpers.helperExpression(sexpr); + + // if a mustache is an eligible helper but not a definite + // helper, it is ambiguous, and will be resolved in a later + // pass or at runtime. + var isEligible = !isBlockParam && (isHelper || isSimple); + + // if ambiguous, we can possibly resolve the ambiguity now + // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc. + if (isEligible && !isHelper) { + var _name2 = sexpr.path.parts[0], + options = this.options; + + if (options.knownHelpers[_name2]) { + isHelper = true; + } else if (options.knownHelpersOnly) { + isEligible = false; + } + } + + if (isHelper) { + return 'helper'; + } else if (isEligible) { + return 'ambiguous'; + } else { + return 'simple'; + } + }, + + pushParams: function pushParams(params) { + for (var i = 0, l = params.length; i < l; i++) { + this.pushParam(params[i]); + } + }, + + pushParam: function pushParam(val) { + var value = val.value != null ? val.value : val.original || ''; + + if (this.stringParams) { + if (value.replace) { + value = value.replace(/^(\.?\.\/)*/g, '').replace(/\//g, '.'); + } + + if (val.depth) { + this.addDepth(val.depth); + } + this.opcode('getContext', val.depth || 0); + this.opcode('pushStringParam', value, val.type); + + if (val.type === 'SubExpression') { + // SubExpressions get evaluated and passed in + // in string params mode. + this.accept(val); + } + } else { + if (this.trackIds) { + var blockParamIndex = undefined; + if (val.parts && !_AST.helpers.scopedId(val) && !val.depth) { + blockParamIndex = this.blockParamIndex(val.parts[0]); + } + if (blockParamIndex) { + var blockParamChild = val.parts.slice(1).join('.'); + this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild); + } else { + value = val.original || value; + if (value.replace) { + value = value.replace(/^\.\//g, '').replace(/^\.$/g, ''); + } + + this.opcode('pushId', val.type, value); + } + } + this.accept(val); + } + }, + + setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) { + var params = sexpr.params; + this.pushParams(params); + + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + + if (sexpr.hash) { + this.accept(sexpr.hash); + } else { + this.opcode('emptyHash', omitEmpty); + } + + return params; + }, + + blockParamIndex: function blockParamIndex(name) { + for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) { + var blockParams = this.options.blockParams[depth], + param = blockParams && _utils.indexOf(blockParams, name); + if (blockParams && param >= 0) { + return [depth, param]; + } } } + }; - Exception.prototype = new Error(); + function precompile(input, options, env) { + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _Exception('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input); + } - __exports__["default"] = Exception; - }); -define( - 'handlebars/base',["./utils","./exception","exports"], - function(__dependency1__, __dependency2__, __exports__) { - - var Utils = __dependency1__; - var Exception = __dependency2__["default"]; + options = options || {}; + if (!('data' in options)) { + options.data = true; + } + if (options.compat) { + options.useDepths = true; + } - var VERSION = "2.0.0"; - __exports__.VERSION = VERSION;var COMPILER_REVISION = 6; - __exports__.COMPILER_REVISION = COMPILER_REVISION; - var REVISION_CHANGES = { - 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it - 2: '== 1.0.0-rc.3', - 3: '== 1.0.0-rc.4', - 4: '== 1.x.x', - 5: '== 2.0.0-alpha.x', - 6: '>= 2.0.0-beta.1' + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options); + return new env.JavaScriptCompiler().compile(environment, options); + } + + function compile(input, _x, env) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _Exception('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input); + } + + if (!('data' in options)) { + options.data = true; + } + if (options.compat) { + options.useDepths = true; + } + + var compiled = undefined; + + function compileInput() { + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options), + templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true); + return env.template(templateSpec); + } + + // Template is only compiled on first use and cached after that point. + function ret(context, execOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled.call(this, context, execOptions); + } + ret._setup = function (setupOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._setup(setupOptions); }; - __exports__.REVISION_CHANGES = REVISION_CHANGES; - var isArray = Utils.isArray, - isFunction = Utils.isFunction, - toString = Utils.toString, - objectType = '[object Object]'; + ret._child = function (i, data, blockParams, depths) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._child(i, data, blockParams, depths); + }; + return ret; + } - function HandlebarsEnvironment(helpers, partials) { - this.helpers = helpers || {}; - this.partials = partials || {}; - - registerDefaultHelpers(this); + function argEquals(a, b) { + if (a === b) { + return true; } - __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = { - constructor: HandlebarsEnvironment, - - logger: logger, - log: log, - - registerHelper: function(name, fn) { - if (toString.call(name) === objectType) { - if (fn) { throw new Exception('Arg not supported with multiple helpers'); } - Utils.extend(this.helpers, name); - } else { - this.helpers[name] = fn; + if (_utils.isArray(a) && _utils.isArray(b) && a.length === b.length) { + for (var i = 0; i < a.length; i++) { + if (!argEquals(a[i], b[i])) { + return false; } - }, - unregisterHelper: function(name) { - delete this.helpers[name]; - }, + } + return true; + } + } - registerPartial: function(name, partial) { - if (toString.call(name) === objectType) { - Utils.extend(this.partials, name); - } else { - this.partials[name] = partial; - } - }, - unregisterPartial: function(name) { - delete this.partials[name]; + function transformLiteralToPath(sexpr) { + if (!sexpr.path.parts) { + var literal = sexpr.path; + // Casting to string here to make false and 0 literal values play nicely with the rest + // of the system. + sexpr.path = new _AST.PathExpression(false, 0, [literal.original + ''], literal.original + '', literal.loc); + } + } +}); +define('handlebars/compiler/code-gen',['exports', 'module', '../utils'], function (exports, module, _utils) { + + + var SourceNode = undefined; + + try { + /* istanbul ignore next */ + if (typeof define !== 'function' || !define.amd) { + // We don't support this in AMD environments. For these environments, we asusme that + // they are running on the browser and thus have no need for the source-map library. + var SourceMap = require('source-map'); + SourceNode = SourceMap.SourceNode; + } + } catch (err) {} + + /* istanbul ignore if: tested but not covered in istanbul due to dist build */ + if (!SourceNode) { + SourceNode = function (line, column, srcFile, chunks) { + this.src = ''; + if (chunks) { + this.add(chunks); } }; - - function registerDefaultHelpers(instance) { - instance.registerHelper('helperMissing', function(/* [args, ]options */) { - if(arguments.length === 1) { - // A missing field in a {{foo}} constuct. - return undefined; - } else { - // Someone is actually trying to call something, blow up. - throw new Exception("Missing helper: '" + arguments[arguments.length-1].name + "'"); + /* istanbul ignore next */ + SourceNode.prototype = { + add: function add(chunks) { + if (_utils.isArray(chunks)) { + chunks = chunks.join(''); } + this.src += chunks; + }, + prepend: function prepend(chunks) { + if (_utils.isArray(chunks)) { + chunks = chunks.join(''); + } + this.src = chunks + this.src; + }, + toStringWithSourceMap: function toStringWithSourceMap() { + return { code: this.toString() }; + }, + toString: function toString() { + return this.src; + } + }; + } + + function castChunk(chunk, codeGen, loc) { + if (_utils.isArray(chunk)) { + var ret = []; + + for (var i = 0, len = chunk.length; i < len; i++) { + ret.push(codeGen.wrap(chunk[i], loc)); + } + return ret; + } else if (typeof chunk === 'boolean' || typeof chunk === 'number') { + // Handle primitives that the SourceNode will throw up on + return chunk + ''; + } + return chunk; + } + + function CodeGen(srcFile) { + this.srcFile = srcFile; + this.source = []; + } + + CodeGen.prototype = { + prepend: function prepend(source, loc) { + this.source.unshift(this.wrap(source, loc)); + }, + push: function push(source, loc) { + this.source.push(this.wrap(source, loc)); + }, + + merge: function merge() { + var source = this.empty(); + this.each(function (line) { + source.add([' ', line, '\n']); }); + return source; + }, - instance.registerHelper('blockHelperMissing', function(context, options) { - var inverse = options.inverse, - fn = options.fn; + each: function each(iter) { + for (var i = 0, len = this.source.length; i < len; i++) { + iter(this.source[i]); + } + }, - if(context === true) { - return fn(this); - } else if(context === false || context == null) { - return inverse(this); - } else if (isArray(context)) { - if(context.length > 0) { - if (options.ids) { - options.ids = [options.name]; - } + empty: function empty() { + var loc = arguments[0] === undefined ? this.currentLocation || { start: {} } : arguments[0]; - return instance.helpers.each(context, options); + return new SourceNode(loc.start.line, loc.start.column, this.srcFile); + }, + wrap: function wrap(chunk) { + var loc = arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1]; + + if (chunk instanceof SourceNode) { + return chunk; + } + + chunk = castChunk(chunk, this, loc); + + return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk); + }, + + functionCall: function functionCall(fn, type, params) { + params = this.generateList(params); + return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']); + }, + + quotedString: function quotedString(str) { + return '"' + (str + '').replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 + .replace(/\u2029/g, '\\u2029') + '"'; + }, + + objectLiteral: function objectLiteral(obj) { + var pairs = []; + + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + var value = castChunk(obj[key], this); + if (value !== 'undefined') { + pairs.push([this.quotedString(key), ':', value]); + } + } + } + + var ret = this.generateList(pairs); + ret.prepend('{'); + ret.add('}'); + return ret; + }, + + generateList: function generateList(entries, loc) { + var ret = this.empty(loc); + + for (var i = 0, len = entries.length; i < len; i++) { + if (i) { + ret.add(','); + } + + ret.add(castChunk(entries[i], this, loc)); + } + + return ret; + }, + + generateArray: function generateArray(entries, loc) { + var ret = this.generateList(entries, loc); + ret.prepend('['); + ret.add(']'); + + return ret; + } + }; + + module.exports = CodeGen; +}); +/*global define */ + +/* NOP */; +define('handlebars/compiler/javascript-compiler',['exports', 'module', '../base', '../exception', '../utils', './code-gen'], function (exports, module, _base, _exception, _utils, _codeGen) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + var _Exception = _interopRequire(_exception); + + var _CodeGen = _interopRequire(_codeGen); + + function Literal(value) { + this.value = value; + } + + function JavaScriptCompiler() {} + + JavaScriptCompiler.prototype = { + // PUBLIC API: You can override these methods in a subclass to provide + // alternative compiled forms for name lookup and buffering semantics + nameLookup: function nameLookup(parent, name /* , type*/) { + if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) { + return [parent, '.', name]; + } else { + return [parent, '[\'', name, '\']']; + } + }, + depthedLookup: function depthedLookup(name) { + return [this.aliasable('this.lookup'), '(depths, "', name, '")']; + }, + + compilerInfo: function compilerInfo() { + var revision = _base.COMPILER_REVISION, + versions = _base.REVISION_CHANGES[revision]; + return [revision, versions]; + }, + + appendToBuffer: function appendToBuffer(source, location, explicit) { + // Force a source as this simplifies the merge logic. + if (!_utils.isArray(source)) { + source = [source]; + } + source = this.source.wrap(source, location); + + if (this.environment.isSimple) { + return ['return ', source, ';']; + } else if (explicit) { + // This is a case where the buffer operation occurs as a child of another + // construct, generally braces. We have to explicitly output these buffer + // operations to ensure that the emitted code goes in the correct location. + return ['buffer += ', source, ';']; + } else { + source.appendToBuffer = true; + return source; + } + }, + + initializeBuffer: function initializeBuffer() { + return this.quotedString(''); + }, + // END PUBLIC API + + compile: function compile(environment, options, context, asObject) { + this.environment = environment; + this.options = options; + this.stringParams = this.options.stringParams; + this.trackIds = this.options.trackIds; + this.precompile = !asObject; + + this.name = this.environment.name; + this.isChild = !!context; + this.context = context || { + programs: [], + environments: [] + }; + + this.preamble(); + + this.stackSlot = 0; + this.stackVars = []; + this.aliases = {}; + this.registers = { list: [] }; + this.hashes = []; + this.compileStack = []; + this.inlineStack = []; + this.blockParams = []; + + this.compileChildren(environment, options); + + this.useDepths = this.useDepths || environment.useDepths || this.options.compat; + this.useBlockParams = this.useBlockParams || environment.useBlockParams; + + var opcodes = environment.opcodes, + opcode = undefined, + firstLoc = undefined, + i = undefined, + l = undefined; + + for (i = 0, l = opcodes.length; i < l; i++) { + opcode = opcodes[i]; + + this.source.currentLocation = opcode.loc; + firstLoc = firstLoc || opcode.loc; + this[opcode.opcode].apply(this, opcode.args); + } + + // Flush any trailing content that might be pending. + this.source.currentLocation = firstLoc; + this.pushSource(''); + + /* istanbul ignore next */ + if (this.stackSlot || this.inlineStack.length || this.compileStack.length) { + throw new _Exception('Compile completed with content left on stack'); + } + + var fn = this.createFunctionContext(asObject); + if (!this.isChild) { + var ret = { + compiler: this.compilerInfo(), + main: fn + }; + var programs = this.context.programs; + for (i = 0, l = programs.length; i < l; i++) { + if (programs[i]) { + ret[i] = programs[i]; + } + } + + if (this.environment.usePartial) { + ret.usePartial = true; + } + if (this.options.data) { + ret.useData = true; + } + if (this.useDepths) { + ret.useDepths = true; + } + if (this.useBlockParams) { + ret.useBlockParams = true; + } + if (this.options.compat) { + ret.compat = true; + } + + if (!asObject) { + ret.compiler = JSON.stringify(ret.compiler); + + this.source.currentLocation = { start: { line: 1, column: 0 } }; + ret = this.objectLiteral(ret); + + if (options.srcName) { + ret = ret.toStringWithSourceMap({ file: options.destName }); + ret.map = ret.map && ret.map.toString(); } else { - return inverse(this); + ret = ret.toString(); } } else { - if (options.data && options.ids) { - var data = createFrame(options.data); - data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name); - options = {data: data}; - } - - return fn(context, options); - } - }); - - instance.registerHelper('each', function(context, options) { - if (!options) { - throw new Exception('Must pass iterator to #each'); - } - - var fn = options.fn, inverse = options.inverse; - var i = 0, ret = "", data; - - var contextPath; - if (options.data && options.ids) { - contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; - } - - if (isFunction(context)) { context = context.call(this); } - - if (options.data) { - data = createFrame(options.data); - } - - if(context && typeof context === 'object') { - if (isArray(context)) { - for(var j = context.length; i 0) { + varDeclarations += ', ' + locals.join(', '); } - // Note: Using env.VM references rather than local var references throughout this section to allow - // for external users to override these as psuedo-supported APIs. - env.VM.checkRevision(templateSpec.compiler); + // Generate minimizer alias mappings + // + // When using true SourceNodes, this will update all references to the given alias + // as the source nodes are reused in situ. For the non-source node compilation mode, + // aliases will not be used, but this case is already being run on the client and + // we aren't concern about minimizing the template size. + var aliasCount = 0; + for (var alias in this.aliases) { + // eslint-disable-line guard-for-in + var node = this.aliases[alias]; - var invokePartialWrapper = function(partial, indent, name, context, hash, helpers, partials, data, depths) { - if (hash) { - context = Utils.extend({}, context, hash); + if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) { + varDeclarations += ', alias' + ++aliasCount + '=' + alias; + node.children[0] = 'alias' + aliasCount; } - - var result = env.VM.invokePartial.call(this, partial, name, context, helpers, partials, data, depths); - - if (result == null && env.compile) { - var options = { helpers: helpers, partials: partials, data: data, depths: depths }; - partials[name] = env.compile(partial, { data: data !== undefined, compat: templateSpec.compat }, env); - result = partials[name](context, options); - } - if (result != null) { - if (indent) { - var lines = result.split('\n'); - for (var i = 0, l = lines.length; i < l; i++) { - if (!lines[i] && i + 1 === l) { - break; - } - - lines[i] = indent + lines[i]; - } - result = lines.join('\n'); - } - return result; - } else { - throw new Exception("The partial " + name + " could not be compiled when running in runtime-only mode"); - } - }; - - // Just add water - var container = { - lookup: function(depths, name) { - var len = depths.length; - for (var i = 0; i < len; i++) { - if (depths[i] && depths[i][name] != null) { - return depths[i][name]; - } - } - }, - lambda: function(current, context) { - return typeof current === 'function' ? current.call(context) : current; - }, - - escapeExpression: Utils.escapeExpression, - invokePartial: invokePartialWrapper, - - fn: function(i) { - return templateSpec[i]; - }, - - programs: [], - program: function(i, data, depths) { - var programWrapper = this.programs[i], - fn = this.fn(i); - if (data || depths) { - programWrapper = program(this, i, fn, data, depths); - } else if (!programWrapper) { - programWrapper = this.programs[i] = program(this, i, fn); - } - return programWrapper; - }, - - data: function(data, depth) { - while (data && depth--) { - data = data._parent; - } - return data; - }, - merge: function(param, common) { - var ret = param || common; - - if (param && common && (param !== common)) { - ret = Utils.extend({}, common, param); - } - - return ret; - }, - - noop: env.VM.noop, - compilerInfo: templateSpec.compiler - }; - - var ret = function(context, options) { - options = options || {}; - var data = options.data; - - ret._setup(options); - if (!options.partial && templateSpec.useData) { - data = initData(context, data); - } - var depths; - if (templateSpec.useDepths) { - depths = options.depths ? [context].concat(options.depths) : [context]; - } - - return templateSpec.main.call(container, context, container.helpers, container.partials, data, depths); - }; - ret.isTop = true; - - ret._setup = function(options) { - if (!options.partial) { - container.helpers = container.merge(options.helpers, env.helpers); - - if (templateSpec.usePartial) { - container.partials = container.merge(options.partials, env.partials); - } - } else { - container.helpers = options.helpers; - container.partials = options.partials; - } - }; - - ret._child = function(i, data, depths) { - if (templateSpec.useDepths && !depths) { - throw new Exception('must pass parent depths'); - } - - return program(container, i, templateSpec[i], data, depths); - }; - return ret; - } - - __exports__.template = template;function program(container, i, fn, data, depths) { - var prog = function(context, options) { - options = options || {}; - - return fn.call(container, context, container.helpers, container.partials, options.data || data, depths && [context].concat(depths)); - }; - prog.program = i; - prog.depth = depths ? depths.length : 0; - return prog; - } - - __exports__.program = program;function invokePartial(partial, name, context, helpers, partials, data, depths) { - var options = { partial: true, helpers: helpers, partials: partials, data: data, depths: depths }; - - if(partial === undefined) { - throw new Exception("The partial " + name + " could not be found"); - } else if(partial instanceof Function) { - return partial(context, options); } - } - __exports__.invokePartial = invokePartial;function noop() { return ""; } + var params = ['depth0', 'helpers', 'partials', 'data']; - __exports__.noop = noop;function initData(context, data) { - if (!data || !('root' in data)) { - data = data ? createFrame(data) : {}; - data.root = context; + if (this.useBlockParams || this.useDepths) { + params.push('blockParams'); + } + if (this.useDepths) { + params.push('depths'); } - return data; - } - }); -define( - 'handlebars.runtime',["./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","exports"], - function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) { - - /*globals Handlebars: true */ - var base = __dependency1__; - // Each of these augment the Handlebars object. No need to setup here. - // (This is done to easily share code between commonjs and browse envs) - var SafeString = __dependency2__["default"]; - var Exception = __dependency3__["default"]; - var Utils = __dependency4__; - var runtime = __dependency5__; + // Perform a second pass over the output to merge content when possible + var source = this.mergeSource(varDeclarations); - // For compatibility and usage outside of module systems, make the Handlebars object a namespace - var create = function() { - var hb = new base.HandlebarsEnvironment(); + if (asObject) { + params.push(source); - Utils.extend(hb, base); - hb.SafeString = SafeString; - hb.Exception = Exception; - hb.Utils = Utils; - hb.escapeExpression = Utils.escapeExpression; - - hb.VM = runtime; - hb.template = function(spec) { - return runtime.template(spec, hb); - }; - - return hb; - }; - - var Handlebars = create(); - Handlebars.create = create; - - Handlebars['default'] = Handlebars; - - __exports__["default"] = Handlebars; - }); -define( - 'handlebars/compiler/ast',["../exception","exports"], - function(__dependency1__, __exports__) { - - var Exception = __dependency1__["default"]; - - function LocationInfo(locInfo) { - locInfo = locInfo || {}; - this.firstLine = locInfo.first_line; - this.firstColumn = locInfo.first_column; - this.lastColumn = locInfo.last_column; - this.lastLine = locInfo.last_line; - } - - var AST = { - ProgramNode: function(statements, strip, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "program"; - this.statements = statements; - this.strip = strip; - }, - - MustacheNode: function(rawParams, hash, open, strip, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "mustache"; - this.strip = strip; - - // Open may be a string parsed from the parser or a passed boolean flag - if (open != null && open.charAt) { - // Must use charAt to support IE pre-10 - var escapeFlag = open.charAt(3) || open.charAt(2); - this.escaped = escapeFlag !== '{' && escapeFlag !== '&'; - } else { - this.escaped = !!open; - } - - if (rawParams instanceof AST.SexprNode) { - this.sexpr = rawParams; - } else { - // Support old AST API - this.sexpr = new AST.SexprNode(rawParams, hash); - } - - // Support old AST API that stored this info in MustacheNode - this.id = this.sexpr.id; - this.params = this.sexpr.params; - this.hash = this.sexpr.hash; - this.eligibleHelper = this.sexpr.eligibleHelper; - this.isHelper = this.sexpr.isHelper; - }, - - SexprNode: function(rawParams, hash, locInfo) { - LocationInfo.call(this, locInfo); - - this.type = "sexpr"; - this.hash = hash; - - var id = this.id = rawParams[0]; - var params = this.params = rawParams.slice(1); - - // a mustache is definitely a helper if: - // * it is an eligible helper, and - // * it has at least one parameter or hash segment - this.isHelper = !!(params.length || hash); - - // a mustache is an eligible helper if: - // * its id is simple (a single part, not `this` or `..`) - this.eligibleHelper = this.isHelper || id.isSimple; - - // if a mustache is an eligible helper but not a definite - // helper, it is ambiguous, and will be resolved in a later - // pass or at runtime. - }, - - PartialNode: function(partialName, context, hash, strip, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "partial"; - this.partialName = partialName; - this.context = context; - this.hash = hash; - this.strip = strip; - - this.strip.inlineStandalone = true; - }, - - BlockNode: function(mustache, program, inverse, strip, locInfo) { - LocationInfo.call(this, locInfo); - - this.type = 'block'; - this.mustache = mustache; - this.program = program; - this.inverse = inverse; - this.strip = strip; - - if (inverse && !program) { - this.isInverse = true; - } - }, - - RawBlockNode: function(mustache, content, close, locInfo) { - LocationInfo.call(this, locInfo); - - if (mustache.sexpr.id.original !== close) { - throw new Exception(mustache.sexpr.id.original + " doesn't match " + close, this); - } - - content = new AST.ContentNode(content, locInfo); - - this.type = 'block'; - this.mustache = mustache; - this.program = new AST.ProgramNode([content], {}, locInfo); - }, - - ContentNode: function(string, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "content"; - this.original = this.string = string; - }, - - HashNode: function(pairs, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "hash"; - this.pairs = pairs; - }, - - IdNode: function(parts, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "ID"; - - var original = "", - dig = [], - depth = 0, - depthString = ''; - - for(var i=0,l=parts.length; i 0) { - throw new Exception("Invalid path: " + original, this); - } else if (part === "..") { - depth++; - depthString += '../'; - } else { - this.isScoped = true; - } + return Function.apply(this, params); + } else { + return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']); + } + }, + mergeSource: function mergeSource(varDeclarations) { + var isSimple = this.environment.isSimple, + appendOnly = !this.forceBuffer, + appendFirst = undefined, + sourceSeen = undefined, + bufferStart = undefined, + bufferEnd = undefined; + this.source.each(function (line) { + if (line.appendToBuffer) { + if (bufferStart) { + line.prepend(' + '); } else { - dig.push(part); + bufferStart = line; + } + bufferEnd = line; + } else { + if (bufferStart) { + if (!sourceSeen) { + appendFirst = true; + } else { + bufferStart.prepend('buffer += '); + } + bufferEnd.add(';'); + bufferStart = bufferEnd = undefined; + } + + sourceSeen = true; + if (!isSimple) { + appendOnly = false; } } + }); - this.original = original; - this.parts = dig; - this.string = dig.join('.'); - this.depth = depth; - this.idName = depthString + this.string; - - // an ID is simple if it only has one part, and that part is not - // `..` or `this`. - this.isSimple = parts.length === 1 && !this.isScoped && depth === 0; - - this.stringModeValue = this.string; - }, - - PartialNameNode: function(name, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "PARTIAL_NAME"; - this.name = name.original; - }, - - DataNode: function(id, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "DATA"; - this.id = id; - this.stringModeValue = id.stringModeValue; - this.idName = '@' + id.stringModeValue; - }, - - StringNode: function(string, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "STRING"; - this.original = - this.string = - this.stringModeValue = string; - }, - - NumberNode: function(number, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "NUMBER"; - this.original = - this.number = number; - this.stringModeValue = Number(number); - }, - - BooleanNode: function(bool, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "BOOLEAN"; - this.bool = bool; - this.stringModeValue = bool === "true"; - }, - - CommentNode: function(comment, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "comment"; - this.comment = comment; - - this.strip = { - inlineStandalone: true - }; - } - }; - - - // Must be exported as an object rather than the root of the module as the jison lexer - // most modify the object to operate properly. - __exports__["default"] = AST; - }); -define( - 'handlebars/compiler/parser',["exports"], - function(__exports__) { - - /* jshint ignore:start */ - /* istanbul ignore next */ - /* Jison generated parser */ - var handlebars = (function(){ - var parser = {trace: function trace() { }, - yy: {}, - symbols_: {"error":2,"root":3,"program":4,"EOF":5,"program_repetition0":6,"statement":7,"mustache":8,"block":9,"rawBlock":10,"partial":11,"CONTENT":12,"COMMENT":13,"openRawBlock":14,"END_RAW_BLOCK":15,"OPEN_RAW_BLOCK":16,"sexpr":17,"CLOSE_RAW_BLOCK":18,"openBlock":19,"block_option0":20,"closeBlock":21,"openInverse":22,"block_option1":23,"OPEN_BLOCK":24,"CLOSE":25,"OPEN_INVERSE":26,"inverseAndProgram":27,"INVERSE":28,"OPEN_ENDBLOCK":29,"path":30,"OPEN":31,"OPEN_UNESCAPED":32,"CLOSE_UNESCAPED":33,"OPEN_PARTIAL":34,"partialName":35,"param":36,"partial_option0":37,"partial_option1":38,"sexpr_repetition0":39,"sexpr_option0":40,"dataName":41,"STRING":42,"NUMBER":43,"BOOLEAN":44,"OPEN_SEXPR":45,"CLOSE_SEXPR":46,"hash":47,"hash_repetition_plus0":48,"hashSegment":49,"ID":50,"EQUALS":51,"DATA":52,"pathSegments":53,"SEP":54,"$accept":0,"$end":1}, - terminals_: {2:"error",5:"EOF",12:"CONTENT",13:"COMMENT",15:"END_RAW_BLOCK",16:"OPEN_RAW_BLOCK",18:"CLOSE_RAW_BLOCK",24:"OPEN_BLOCK",25:"CLOSE",26:"OPEN_INVERSE",28:"INVERSE",29:"OPEN_ENDBLOCK",31:"OPEN",32:"OPEN_UNESCAPED",33:"CLOSE_UNESCAPED",34:"OPEN_PARTIAL",42:"STRING",43:"NUMBER",44:"BOOLEAN",45:"OPEN_SEXPR",46:"CLOSE_SEXPR",50:"ID",51:"EQUALS",52:"DATA",54:"SEP"}, - productions_: [0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[10,3],[14,3],[9,4],[9,4],[19,3],[22,3],[27,2],[21,3],[8,3],[8,3],[11,5],[11,4],[17,3],[17,1],[36,1],[36,1],[36,1],[36,1],[36,1],[36,3],[47,1],[49,3],[35,1],[35,1],[35,1],[41,2],[30,1],[53,3],[53,1],[6,0],[6,2],[20,0],[20,1],[23,0],[23,1],[37,0],[37,1],[38,0],[38,1],[39,0],[39,2],[40,0],[40,1],[48,1],[48,2]], - performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { - - var $0 = $$.length - 1; - switch (yystate) { - case 1: yy.prepareProgram($$[$0-1].statements, true); return $$[$0-1]; - break; - case 2:this.$ = new yy.ProgramNode(yy.prepareProgram($$[$0]), {}, this._$); - break; - case 3:this.$ = $$[$0]; - break; - case 4:this.$ = $$[$0]; - break; - case 5:this.$ = $$[$0]; - break; - case 6:this.$ = $$[$0]; - break; - case 7:this.$ = new yy.ContentNode($$[$0], this._$); - break; - case 8:this.$ = new yy.CommentNode($$[$0], this._$); - break; - case 9:this.$ = new yy.RawBlockNode($$[$0-2], $$[$0-1], $$[$0], this._$); - break; - case 10:this.$ = new yy.MustacheNode($$[$0-1], null, '', '', this._$); - break; - case 11:this.$ = yy.prepareBlock($$[$0-3], $$[$0-2], $$[$0-1], $$[$0], false, this._$); - break; - case 12:this.$ = yy.prepareBlock($$[$0-3], $$[$0-2], $$[$0-1], $$[$0], true, this._$); - break; - case 13:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$); - break; - case 14:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$); - break; - case 15:this.$ = { strip: yy.stripFlags($$[$0-1], $$[$0-1]), program: $$[$0] }; - break; - case 16:this.$ = {path: $$[$0-1], strip: yy.stripFlags($$[$0-2], $$[$0])}; - break; - case 17:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$); - break; - case 18:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$); - break; - case 19:this.$ = new yy.PartialNode($$[$0-3], $$[$0-2], $$[$0-1], yy.stripFlags($$[$0-4], $$[$0]), this._$); - break; - case 20:this.$ = new yy.PartialNode($$[$0-2], undefined, $$[$0-1], yy.stripFlags($$[$0-3], $$[$0]), this._$); - break; - case 21:this.$ = new yy.SexprNode([$$[$0-2]].concat($$[$0-1]), $$[$0], this._$); - break; - case 22:this.$ = new yy.SexprNode([$$[$0]], null, this._$); - break; - case 23:this.$ = $$[$0]; - break; - case 24:this.$ = new yy.StringNode($$[$0], this._$); - break; - case 25:this.$ = new yy.NumberNode($$[$0], this._$); - break; - case 26:this.$ = new yy.BooleanNode($$[$0], this._$); - break; - case 27:this.$ = $$[$0]; - break; - case 28:$$[$0-1].isHelper = true; this.$ = $$[$0-1]; - break; - case 29:this.$ = new yy.HashNode($$[$0], this._$); - break; - case 30:this.$ = [$$[$0-2], $$[$0]]; - break; - case 31:this.$ = new yy.PartialNameNode($$[$0], this._$); - break; - case 32:this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0], this._$), this._$); - break; - case 33:this.$ = new yy.PartialNameNode(new yy.NumberNode($$[$0], this._$)); - break; - case 34:this.$ = new yy.DataNode($$[$0], this._$); - break; - case 35:this.$ = new yy.IdNode($$[$0], this._$); - break; - case 36: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2]; - break; - case 37:this.$ = [{part: $$[$0]}]; - break; - case 38:this.$ = []; - break; - case 39:$$[$0-1].push($$[$0]); - break; - case 48:this.$ = []; - break; - case 49:$$[$0-1].push($$[$0]); - break; - case 52:this.$ = [$$[$0]]; - break; - case 53:$$[$0-1].push($$[$0]); - break; - } - }, - table: [{3:1,4:2,5:[2,38],6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],31:[2,38],32:[2,38],34:[2,38]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:[1,10],13:[1,11],14:16,16:[1,20],19:14,22:15,24:[1,18],26:[1,19],28:[2,2],29:[2,2],31:[1,12],32:[1,13],34:[1,17]},{1:[2,1]},{5:[2,39],12:[2,39],13:[2,39],16:[2,39],24:[2,39],26:[2,39],28:[2,39],29:[2,39],31:[2,39],32:[2,39],34:[2,39]},{5:[2,3],12:[2,3],13:[2,3],16:[2,3],24:[2,3],26:[2,3],28:[2,3],29:[2,3],31:[2,3],32:[2,3],34:[2,3]},{5:[2,4],12:[2,4],13:[2,4],16:[2,4],24:[2,4],26:[2,4],28:[2,4],29:[2,4],31:[2,4],32:[2,4],34:[2,4]},{5:[2,5],12:[2,5],13:[2,5],16:[2,5],24:[2,5],26:[2,5],28:[2,5],29:[2,5],31:[2,5],32:[2,5],34:[2,5]},{5:[2,6],12:[2,6],13:[2,6],16:[2,6],24:[2,6],26:[2,6],28:[2,6],29:[2,6],31:[2,6],32:[2,6],34:[2,6]},{5:[2,7],12:[2,7],13:[2,7],16:[2,7],24:[2,7],26:[2,7],28:[2,7],29:[2,7],31:[2,7],32:[2,7],34:[2,7]},{5:[2,8],12:[2,8],13:[2,8],16:[2,8],24:[2,8],26:[2,8],28:[2,8],29:[2,8],31:[2,8],32:[2,8],34:[2,8]},{17:21,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:27,30:22,41:23,50:[1,26],52:[1,25],53:24},{4:28,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{4:29,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{12:[1,30]},{30:32,35:31,42:[1,33],43:[1,34],50:[1,26],53:24},{17:35,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:36,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:37,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[1,38]},{18:[2,48],25:[2,48],33:[2,48],39:39,42:[2,48],43:[2,48],44:[2,48],45:[2,48],46:[2,48],50:[2,48],52:[2,48]},{18:[2,22],25:[2,22],33:[2,22],46:[2,22]},{18:[2,35],25:[2,35],33:[2,35],42:[2,35],43:[2,35],44:[2,35],45:[2,35],46:[2,35],50:[2,35],52:[2,35],54:[1,40]},{30:41,50:[1,26],53:24},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],52:[2,37],54:[2,37]},{33:[1,42]},{20:43,27:44,28:[1,45],29:[2,40]},{23:46,27:47,28:[1,45],29:[2,42]},{15:[1,48]},{25:[2,46],30:51,36:49,38:50,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],47:57,48:58,49:60,50:[1,59],52:[1,25],53:24},{25:[2,31],42:[2,31],43:[2,31],44:[2,31],45:[2,31],50:[2,31],52:[2,31]},{25:[2,32],42:[2,32],43:[2,32],44:[2,32],45:[2,32],50:[2,32],52:[2,32]},{25:[2,33],42:[2,33],43:[2,33],44:[2,33],45:[2,33],50:[2,33],52:[2,33]},{25:[1,61]},{25:[1,62]},{18:[1,63]},{5:[2,17],12:[2,17],13:[2,17],16:[2,17],24:[2,17],26:[2,17],28:[2,17],29:[2,17],31:[2,17],32:[2,17],34:[2,17]},{18:[2,50],25:[2,50],30:51,33:[2,50],36:65,40:64,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],46:[2,50],47:66,48:58,49:60,50:[1,59],52:[1,25],53:24},{50:[1,67]},{18:[2,34],25:[2,34],33:[2,34],42:[2,34],43:[2,34],44:[2,34],45:[2,34],46:[2,34],50:[2,34],52:[2,34]},{5:[2,18],12:[2,18],13:[2,18],16:[2,18],24:[2,18],26:[2,18],28:[2,18],29:[2,18],31:[2,18],32:[2,18],34:[2,18]},{21:68,29:[1,69]},{29:[2,41]},{4:70,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{21:71,29:[1,69]},{29:[2,43]},{5:[2,9],12:[2,9],13:[2,9],16:[2,9],24:[2,9],26:[2,9],28:[2,9],29:[2,9],31:[2,9],32:[2,9],34:[2,9]},{25:[2,44],37:72,47:73,48:58,49:60,50:[1,74]},{25:[1,75]},{18:[2,23],25:[2,23],33:[2,23],42:[2,23],43:[2,23],44:[2,23],45:[2,23],46:[2,23],50:[2,23],52:[2,23]},{18:[2,24],25:[2,24],33:[2,24],42:[2,24],43:[2,24],44:[2,24],45:[2,24],46:[2,24],50:[2,24],52:[2,24]},{18:[2,25],25:[2,25],33:[2,25],42:[2,25],43:[2,25],44:[2,25],45:[2,25],46:[2,25],50:[2,25],52:[2,25]},{18:[2,26],25:[2,26],33:[2,26],42:[2,26],43:[2,26],44:[2,26],45:[2,26],46:[2,26],50:[2,26],52:[2,26]},{18:[2,27],25:[2,27],33:[2,27],42:[2,27],43:[2,27],44:[2,27],45:[2,27],46:[2,27],50:[2,27],52:[2,27]},{17:76,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[2,47]},{18:[2,29],25:[2,29],33:[2,29],46:[2,29],49:77,50:[1,74]},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],51:[1,78],52:[2,37],54:[2,37]},{18:[2,52],25:[2,52],33:[2,52],46:[2,52],50:[2,52]},{12:[2,13],13:[2,13],16:[2,13],24:[2,13],26:[2,13],28:[2,13],29:[2,13],31:[2,13],32:[2,13],34:[2,13]},{12:[2,14],13:[2,14],16:[2,14],24:[2,14],26:[2,14],28:[2,14],29:[2,14],31:[2,14],32:[2,14],34:[2,14]},{12:[2,10]},{18:[2,21],25:[2,21],33:[2,21],46:[2,21]},{18:[2,49],25:[2,49],33:[2,49],42:[2,49],43:[2,49],44:[2,49],45:[2,49],46:[2,49],50:[2,49],52:[2,49]},{18:[2,51],25:[2,51],33:[2,51],46:[2,51]},{18:[2,36],25:[2,36],33:[2,36],42:[2,36],43:[2,36],44:[2,36],45:[2,36],46:[2,36],50:[2,36],52:[2,36],54:[2,36]},{5:[2,11],12:[2,11],13:[2,11],16:[2,11],24:[2,11],26:[2,11],28:[2,11],29:[2,11],31:[2,11],32:[2,11],34:[2,11]},{30:79,50:[1,26],53:24},{29:[2,15]},{5:[2,12],12:[2,12],13:[2,12],16:[2,12],24:[2,12],26:[2,12],28:[2,12],29:[2,12],31:[2,12],32:[2,12],34:[2,12]},{25:[1,80]},{25:[2,45]},{51:[1,78]},{5:[2,20],12:[2,20],13:[2,20],16:[2,20],24:[2,20],26:[2,20],28:[2,20],29:[2,20],31:[2,20],32:[2,20],34:[2,20]},{46:[1,81]},{18:[2,53],25:[2,53],33:[2,53],46:[2,53],50:[2,53]},{30:51,36:82,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],50:[1,26],52:[1,25],53:24},{25:[1,83]},{5:[2,19],12:[2,19],13:[2,19],16:[2,19],24:[2,19],26:[2,19],28:[2,19],29:[2,19],31:[2,19],32:[2,19],34:[2,19]},{18:[2,28],25:[2,28],33:[2,28],42:[2,28],43:[2,28],44:[2,28],45:[2,28],46:[2,28],50:[2,28],52:[2,28]},{18:[2,30],25:[2,30],33:[2,30],46:[2,30],50:[2,30]},{5:[2,16],12:[2,16],13:[2,16],16:[2,16],24:[2,16],26:[2,16],28:[2,16],29:[2,16],31:[2,16],32:[2,16],34:[2,16]}], - defaultActions: {4:[2,1],44:[2,41],47:[2,43],57:[2,47],63:[2,10],70:[2,15],73:[2,45]}, - parseError: function parseError(str, hash) { - throw new Error(str); - }, - parse: function parse(input) { - var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; - this.lexer.setInput(input); - this.lexer.yy = this.yy; - this.yy.lexer = this.lexer; - this.yy.parser = this; - if (typeof this.lexer.yylloc == "undefined") - this.lexer.yylloc = {}; - var yyloc = this.lexer.yylloc; - lstack.push(yyloc); - var ranges = this.lexer.options && this.lexer.options.ranges; - if (typeof this.yy.parseError === "function") - this.parseError = this.yy.parseError; - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = self.lexer.lex() || 1; - if (typeof token !== "number") { - token = self.symbols_[token] || token; - } - return token; - } - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - if (!recovering) { - expected = []; - for (p in table[state]) - if (this.terminals_[p] && p > 2) { - expected.push("'" + this.terminals_[p] + "'"); - } - if (this.lexer.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); - } - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) - recovering--; - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column}; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - /* Jison generated lexer */ - var lexer = (function(){ - var lexer = ({EOF:1, - parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - setInput:function (input) { - this._input = input; - this._more = this._less = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0}; - if (this.options.ranges) this.yylloc.range = [0,0]; - this.offset = 0; - return this; - }, - input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) this.yylloc.range[1]++; - - this._input = this._input.slice(1); - return ch; - }, - unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length-len-1); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length-1); - this.matched = this.matched.substr(0, this.matched.length-1); - - if (lines.length-1) this.yylineno -= lines.length-1; - var r = this.yylloc.range; - - this.yylloc = {first_line: this.yylloc.first_line, - last_line: this.yylineno+1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length: - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - return this; - }, - more:function () { - this._more = true; - return this; - }, - less:function (n) { - this.unput(this.match.slice(n)); - }, - pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, ""); - }, - showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c+"^"; - }, - next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) this.done = true; - - var token, - match, - tempMatch, - index, - col, - lines; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i=0;i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (!this.options.flex) break; - } - } - if (match) { - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) this.yylineno += lines.length; - this.yylloc = {first_line: this.yylloc.last_line, - last_line: this.yylineno+1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length}; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]); - if (this.done && this._input) this.done = false; - if (token) return token; - else return; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), - {text: "", token: null, line: this.yylineno}); - } - }, - lex:function lex() { - var r = this.next(); - if (typeof r !== 'undefined') { - return r; - } else { - return this.lex(); - } - }, - begin:function begin(condition) { - this.conditionStack.push(condition); - }, - popState:function popState() { - return this.conditionStack.pop(); - }, - _currentRules:function _currentRules() { - return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules; - }, - topState:function () { - return this.conditionStack[this.conditionStack.length-2]; - }, - pushState:function begin(condition) { - this.begin(condition); - }}); - lexer.options = {}; - lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { - - - function strip(start, end) { - return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng-end); - } - - - var YYSTATE=YY_START - switch($avoiding_name_collisions) { - case 0: - if(yy_.yytext.slice(-2) === "\\\\") { - strip(0,1); - this.begin("mu"); - } else if(yy_.yytext.slice(-1) === "\\") { - strip(0,1); - this.begin("emu"); - } else { - this.begin("mu"); - } - if(yy_.yytext) return 12; - - break; - case 1:return 12; - break; - case 2: - this.popState(); - return 12; - - break; - case 3: - yy_.yytext = yy_.yytext.substr(5, yy_.yyleng-9); - this.popState(); - return 15; - - break; - case 4: return 12; - break; - case 5:strip(0,4); this.popState(); return 13; - break; - case 6:return 45; - break; - case 7:return 46; - break; - case 8: return 16; - break; - case 9: - this.popState(); - this.begin('raw'); - return 18; - - break; - case 10:return 34; - break; - case 11:return 24; - break; - case 12:return 29; - break; - case 13:this.popState(); return 28; - break; - case 14:this.popState(); return 28; - break; - case 15:return 26; - break; - case 16:return 26; - break; - case 17:return 32; - break; - case 18:return 31; - break; - case 19:this.popState(); this.begin('com'); - break; - case 20:strip(3,5); this.popState(); return 13; - break; - case 21:return 31; - break; - case 22:return 51; - break; - case 23:return 50; - break; - case 24:return 50; - break; - case 25:return 54; - break; - case 26:// ignore whitespace - break; - case 27:this.popState(); return 33; - break; - case 28:this.popState(); return 25; - break; - case 29:yy_.yytext = strip(1,2).replace(/\\"/g,'"'); return 42; - break; - case 30:yy_.yytext = strip(1,2).replace(/\\'/g,"'"); return 42; - break; - case 31:return 52; - break; - case 32:return 44; - break; - case 33:return 44; - break; - case 34:return 43; - break; - case 35:return 50; - break; - case 36:yy_.yytext = strip(1,2); return 50; - break; - case 37:return 'INVALID'; - break; - case 38:return 5; - break; - } - }; - lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/]; - lexer.conditions = {"mu":{"rules":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[5],"inclusive":false},"raw":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,1,38],"inclusive":true}}; - return lexer;})() - parser.lexer = lexer; - function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser; - return new Parser; - })();__exports__["default"] = handlebars; - /* jshint ignore:end */ - }); -define( - 'handlebars/compiler/helpers',["../exception","exports"], - function(__dependency1__, __exports__) { - - var Exception = __dependency1__["default"]; - - function stripFlags(open, close) { - return { - left: open.charAt(2) === '~', - right: close.charAt(close.length-3) === '~' - }; - } - - __exports__.stripFlags = stripFlags; - function prepareBlock(mustache, program, inverseAndProgram, close, inverted, locInfo) { - /*jshint -W040 */ - if (mustache.sexpr.id.original !== close.path.original) { - throw new Exception(mustache.sexpr.id.original + ' doesn\'t match ' + close.path.original, mustache); - } - - var inverse = inverseAndProgram && inverseAndProgram.program; - - var strip = { - left: mustache.strip.left, - right: close.strip.right, - - // Determine the standalone candiacy. Basically flag our content as being possibly standalone - // so our parent can determine if we actually are standalone - openStandalone: isNextWhitespace(program.statements), - closeStandalone: isPrevWhitespace((inverse || program).statements) - }; - - if (mustache.strip.right) { - omitRight(program.statements, null, true); - } - - if (inverse) { - var inverseStrip = inverseAndProgram.strip; - - if (inverseStrip.left) { - omitLeft(program.statements, null, true); - } - if (inverseStrip.right) { - omitRight(inverse.statements, null, true); - } - if (close.strip.left) { - omitLeft(inverse.statements, null, true); - } - - // Find standalone else statments - if (isPrevWhitespace(program.statements) - && isNextWhitespace(inverse.statements)) { - - omitLeft(program.statements); - omitRight(inverse.statements); + if (appendOnly) { + if (bufferStart) { + bufferStart.prepend('return '); + bufferEnd.add(';'); + } else if (!sourceSeen) { + this.source.push('return "";'); } } else { - if (close.strip.left) { - omitLeft(program.statements, null, true); + varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer()); + + if (bufferStart) { + bufferStart.prepend('return buffer + '); + bufferEnd.add(';'); + } else { + this.source.push('return buffer;'); } } - if (inverted) { - return new this.BlockNode(mustache, inverse, program, strip, locInfo); + if (varDeclarations) { + this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n')); + } + + return this.source.merge(); + }, + + // [blockValue] + // + // On stack, before: hash, inverse, program, value + // On stack, after: return value of blockHelperMissing + // + // The purpose of this opcode is to take a block of the form + // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and + // replace it on the stack with the result of properly + // invoking blockHelperMissing. + blockValue: function blockValue(name) { + var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs(name, 0, params); + + var blockName = this.popStack(); + params.splice(1, 0, blockName); + + this.push(this.source.functionCall(blockHelperMissing, 'call', params)); + }, + + // [ambiguousBlockValue] + // + // On stack, before: hash, inverse, program, value + // Compiler value, before: lastHelper=value of last found helper, if any + // On stack, after, if no lastHelper: same as [blockValue] + // On stack, after, if lastHelper: value + ambiguousBlockValue: function ambiguousBlockValue() { + // We're being a bit cheeky and reusing the options value from the prior exec + var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs('', 0, params, true); + + this.flushInline(); + + var current = this.topStack(); + params.splice(1, 0, current); + + this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']); + }, + + // [appendContent] + // + // On stack, before: ... + // On stack, after: ... + // + // Appends the string value of `content` to the current buffer + appendContent: function appendContent(content) { + if (this.pendingContent) { + content = this.pendingContent + content; } else { - return new this.BlockNode(mustache, program, inverse, strip, locInfo); - } - } - - __exports__.prepareBlock = prepareBlock; - function prepareProgram(statements, isRoot) { - for (var i = 0, l = statements.length; i < l; i++) { - var current = statements[i], - strip = current.strip; - - if (!strip) { - continue; - } - - var _isPrevWhitespace = isPrevWhitespace(statements, i, isRoot, current.type === 'partial'), - _isNextWhitespace = isNextWhitespace(statements, i, isRoot), - - openStandalone = strip.openStandalone && _isPrevWhitespace, - closeStandalone = strip.closeStandalone && _isNextWhitespace, - inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace; - - if (strip.right) { - omitRight(statements, i, true); - } - if (strip.left) { - omitLeft(statements, i, true); - } - - if (inlineStandalone) { - omitRight(statements, i); - - if (omitLeft(statements, i)) { - // If we are on a standalone node, save the indent info for partials - if (current.type === 'partial') { - current.indent = (/([ \t]+$)/).exec(statements[i-1].original) ? RegExp.$1 : ''; - } - } - } - if (openStandalone) { - omitRight((current.program || current.inverse).statements); - - // Strip out the previous content node if it's whitespace only - omitLeft(statements, i); - } - if (closeStandalone) { - // Always strip the next node - omitRight(statements, i); - - omitLeft((current.inverse || current.program).statements); - } + this.pendingLocation = this.source.currentLocation; } - return statements; - } + this.pendingContent = content; + }, - __exports__.prepareProgram = prepareProgram;function isPrevWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = statements.length; - } - - // Nodes that end with newlines are considered whitespace (but are special - // cased for strip operations) - var prev = statements[i-1], - sibling = statements[i-2]; - if (!prev) { - return isRoot; - } - - if (prev.type === 'content') { - return (sibling || !isRoot ? (/\r?\n\s*?$/) : (/(^|\r?\n)\s*?$/)).test(prev.original); - } - } - function isNextWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = -1; - } - - var next = statements[i+1], - sibling = statements[i+2]; - if (!next) { - return isRoot; - } - - if (next.type === 'content') { - return (sibling || !isRoot ? (/^\s*?\r?\n/) : (/^\s*?(\r?\n|$)/)).test(next.original); - } - } - - // Marks the node to the right of the position as omitted. - // I.e. {{foo}}' ' will mark the ' ' node as omitted. + // [append] // - // If i is undefined, then the first child will be marked as such. + // On stack, before: value, ... + // On stack, after: ... // - // If mulitple is truthy then all whitespace will be stripped out until non-whitespace - // content is met. - function omitRight(statements, i, multiple) { - var current = statements[i == null ? 0 : i + 1]; - if (!current || current.type !== 'content' || (!multiple && current.rightStripped)) { - return; - } - - var original = current.string; - current.string = current.string.replace(multiple ? (/^\s+/) : (/^[ \t]*\r?\n?/), ''); - current.rightStripped = current.string !== original; - } - - // Marks the node to the left of the position as omitted. - // I.e. ' '{{foo}} will mark the ' ' node as omitted. + // Coerces `value` to a String and appends it to the current buffer. // - // If i is undefined then the last child will be marked as such. - // - // If mulitple is truthy then all whitespace will be stripped out until non-whitespace - // content is met. - function omitLeft(statements, i, multiple) { - var current = statements[i == null ? statements.length - 1 : i - 1]; - if (!current || current.type !== 'content' || (!multiple && current.leftStripped)) { - return; - } - - // We omit the last node if it's whitespace only and not preceeded by a non-content node. - var original = current.string; - current.string = current.string.replace(multiple ? (/\s+$/) : (/[ \t]+$/), ''); - current.leftStripped = current.string !== original; - return current.leftStripped; - } - }); -define( - 'handlebars/compiler/base',["./parser","./ast","./helpers","../utils","exports"], - function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) { - - var parser = __dependency1__["default"]; - var AST = __dependency2__["default"]; - var Helpers = __dependency3__; - var extend = __dependency4__.extend; - - __exports__.parser = parser; - - var yy = {}; - extend(yy, Helpers, AST); - - function parse(input) { - // Just return if an already-compile AST was passed in. - if (input.constructor === AST.ProgramNode) { return input; } - - parser.yy = yy; - - return parser.parse(input); - } - - __exports__.parse = parse; - }); -define( - 'handlebars/compiler/compiler',["../exception","../utils","exports"], - function(__dependency1__, __dependency2__, __exports__) { - - var Exception = __dependency1__["default"]; - var isArray = __dependency2__.isArray; - - var slice = [].slice; - - function Compiler() {} - - __exports__.Compiler = Compiler;// the foundHelper register will disambiguate helper lookup from finding a - // function in a context. This is necessary for mustache compatibility, which - // requires that context functions in blocks are evaluated by blockHelperMissing, - // and then proceed as if the resulting value was provided to blockHelperMissing. - - Compiler.prototype = { - compiler: Compiler, - - equals: function(other) { - var len = this.opcodes.length; - if (other.opcodes.length !== len) { - return false; - } - - for (var i = 0; i < len; i++) { - var opcode = this.opcodes[i], - otherOpcode = other.opcodes[i]; - if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) { - return false; - } - } - - // We know that length is the same between the two arrays because they are directly tied - // to the opcode behavior above. - len = this.children.length; - for (i = 0; i < len; i++) { - if (!this.children[i].equals(other.children[i])) { - return false; - } - } - - return true; - }, - - guid: 0, - - compile: function(program, options) { - this.opcodes = []; - this.children = []; - this.depths = {list: []}; - this.options = options; - this.stringParams = options.stringParams; - this.trackIds = options.trackIds; - - // These changes will propagate to the other compiler components - var knownHelpers = this.options.knownHelpers; - this.options.knownHelpers = { - 'helperMissing': true, - 'blockHelperMissing': true, - 'each': true, - 'if': true, - 'unless': true, - 'with': true, - 'log': true, - 'lookup': true - }; - if (knownHelpers) { - for (var name in knownHelpers) { - this.options.knownHelpers[name] = knownHelpers[name]; - } - } - - return this.accept(program); - }, - - accept: function(node) { - return this[node.type](node); - }, - - program: function(program) { - var statements = program.statements; - - for(var i=0, l=statements.length; i 0) { - varDeclarations += ", " + locals.join(", "); - } - - // Generate minimizer alias mappings - for (var alias in this.aliases) { - if (this.aliases.hasOwnProperty(alias)) { - varDeclarations += ', ' + alias + '=' + this.aliases[alias]; - } - } - - var params = ["depth0", "helpers", "partials", "data"]; - - if (this.useDepths) { - params.push('depths'); - } - - // Perform a second pass over the output to merge content when possible - var source = this.mergeSource(varDeclarations); - - if (asObject) { - params.push(source); - - return Function.apply(this, params); - } else { - return 'function(' + params.join(',') + ') {\n ' + source + '}'; - } - }, - mergeSource: function(varDeclarations) { - var source = '', - buffer, - appendOnly = !this.forceBuffer, - appendFirst; - - for (var i = 0, len = this.source.length; i < len; i++) { - var line = this.source[i]; - if (line.appendToBuffer) { - if (buffer) { - buffer = buffer + '\n + ' + line.content; - } else { - buffer = line.content; - } - } else { - if (buffer) { - if (!source) { - appendFirst = true; - source = buffer + ';\n '; - } else { - source += 'buffer += ' + buffer + ';\n '; - } - buffer = undefined; - } - source += line + '\n '; - - if (!this.environment.isSimple) { - appendOnly = false; - } - } - } - - if (appendOnly) { - if (buffer || !source) { - source += 'return ' + (buffer || '""') + ';\n'; - } - } else { - varDeclarations += ", buffer = " + (appendFirst ? '' : this.initializeBuffer()); - if (buffer) { - source += 'return buffer + ' + buffer + ';\n'; - } else { - source += 'return buffer;\n'; - } - } - - if (varDeclarations) { - source = 'var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n ') + source; - } - - return source; - }, - - // [blockValue] - // - // On stack, before: hash, inverse, program, value - // On stack, after: return value of blockHelperMissing - // - // The purpose of this opcode is to take a block of the form - // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and - // replace it on the stack with the result of properly - // invoking blockHelperMissing. - blockValue: function(name) { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; - - var params = [this.contextName(0)]; - this.setupParams(name, 0, params); - - var blockName = this.popStack(); - params.splice(1, 0, blockName); - - this.push('blockHelperMissing.call(' + params.join(', ') + ')'); - }, - - // [ambiguousBlockValue] - // - // On stack, before: hash, inverse, program, value - // Compiler value, before: lastHelper=value of last found helper, if any - // On stack, after, if no lastHelper: same as [blockValue] - // On stack, after, if lastHelper: value - ambiguousBlockValue: function() { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; - - // We're being a bit cheeky and reusing the options value from the prior exec - var params = [this.contextName(0)]; - this.setupParams('', 0, params, true); - - this.flushInline(); - - var current = this.topStack(); - params.splice(1, 0, current); - - this.pushSource("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }"); - }, - - // [appendContent] - // - // On stack, before: ... - // On stack, after: ... - // - // Appends the string value of `content` to the current buffer - appendContent: function(content) { - if (this.pendingContent) { - content = this.pendingContent + content; - } - - this.pendingContent = content; - }, - - // [append] - // - // On stack, before: value, ... - // On stack, after: ... - // - // Coerces `value` to a String and appends it to the current buffer. - // - // If `value` is truthy, or 0, it is coerced into a string and appended - // Otherwise, the empty string is appended - append: function() { - // Force anything that is inlined onto the stack so we don't have duplication - // when we examine local - this.flushInline(); + this.pushSource(this.appendToBuffer(this.popStack())); + } else { var local = this.popStack(); - this.pushSource('if (' + local + ' != null) { ' + this.appendToBuffer(local) + ' }'); + this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']); if (this.environment.isSimple) { - this.pushSource("else { " + this.appendToBuffer("''") + " }"); + this.pushSource(['else { ', this.appendToBuffer('\'\'', undefined, true), ' }']); } - }, + } + }, - // [appendEscaped] - // - // On stack, before: value, ... - // On stack, after: ... - // - // Escape `value` and append it to the buffer - appendEscaped: function() { - this.aliases.escapeExpression = 'this.escapeExpression'; + // [appendEscaped] + // + // On stack, before: value, ... + // On stack, after: ... + // + // Escape `value` and append it to the buffer + appendEscaped: function appendEscaped() { + this.pushSource(this.appendToBuffer([this.aliasable('this.escapeExpression'), '(', this.popStack(), ')'])); + }, - this.pushSource(this.appendToBuffer("escapeExpression(" + this.popStack() + ")")); - }, + // [getContext] + // + // On stack, before: ... + // On stack, after: ... + // Compiler value, after: lastContext=depth + // + // Set the value of the `lastContext` compiler value to the depth + getContext: function getContext(depth) { + this.lastContext = depth; + }, - // [getContext] - // - // On stack, before: ... - // On stack, after: ... - // Compiler value, after: lastContext=depth - // - // Set the value of the `lastContext` compiler value to the depth - getContext: function(depth) { - this.lastContext = depth; - }, + // [pushContext] + // + // On stack, before: ... + // On stack, after: currentContext, ... + // + // Pushes the value of the current context onto the stack. + pushContext: function pushContext() { + this.pushStackLiteral(this.contextName(this.lastContext)); + }, - // [pushContext] - // - // On stack, before: ... - // On stack, after: currentContext, ... - // - // Pushes the value of the current context onto the stack. - pushContext: function() { - this.pushStackLiteral(this.contextName(this.lastContext)); - }, + // [lookupOnContext] + // + // On stack, before: ... + // On stack, after: currentContext[name], ... + // + // Looks up the value of `name` on the current context and pushes + // it onto the stack. + lookupOnContext: function lookupOnContext(parts, falsy, scoped) { + var i = 0; - // [lookupOnContext] - // - // On stack, before: ... - // On stack, after: currentContext[name], ... - // - // Looks up the value of `name` on the current context and pushes - // it onto the stack. - lookupOnContext: function(parts, falsy, scoped) { - /*jshint -W083 */ - var i = 0, - len = parts.length; - - if (!scoped && this.options.compat && !this.lastContext) { - // The depthed query is expected to handle the undefined logic for the root level that - // is implemented below, so we evaluate that directly in compat mode - this.push(this.depthedLookup(parts[i++])); - } else { - this.pushContext(); - } - - for (; i < len; i++) { - this.replaceStack(function(current) { - var lookup = this.nameLookup(current, parts[i], 'context'); - // We want to ensure that zero and false are handled properly if the context (falsy flag) - // needs to have the special handling for these values. - if (!falsy) { - return ' != null ? ' + lookup + ' : ' + current; - } else { - // Otherwise we can use generic falsy handling - return ' && ' + lookup; - } - }); - } - }, - - // [lookupData] - // - // On stack, before: ... - // On stack, after: data, ... - // - // Push the data lookup operator - lookupData: function(depth, parts) { - /*jshint -W083 */ - if (!depth) { - this.pushStackLiteral('data'); - } else { - this.pushStackLiteral('this.data(data, ' + depth + ')'); - } - - var len = parts.length; - for (var i = 0; i < len; i++) { - this.replaceStack(function(current) { - return ' && ' + this.nameLookup(current, parts[i], 'data'); - }); - } - }, - - // [resolvePossibleLambda] - // - // On stack, before: value, ... - // On stack, after: resolved value, ... - // - // If the `value` is a lambda, replace it on the stack by - // the return value of the lambda - resolvePossibleLambda: function() { - this.aliases.lambda = 'this.lambda'; - - this.push('lambda(' + this.popStack() + ', ' + this.contextName(0) + ')'); - }, - - // [pushStringParam] - // - // On stack, before: ... - // On stack, after: string, currentContext, ... - // - // This opcode is designed for use in string mode, which - // provides the string value of a parameter along with its - // depth rather than resolving it immediately. - pushStringParam: function(string, type) { + if (!scoped && this.options.compat && !this.lastContext) { + // The depthed query is expected to handle the undefined logic for the root level that + // is implemented below, so we evaluate that directly in compat mode + this.push(this.depthedLookup(parts[i++])); + } else { this.pushContext(); - this.pushString(type); + } - // If it's a subexpression, the string result - // will be pushed after this opcode. - if (type !== 'sexpr') { - if (typeof string === 'string') { - this.pushString(string); + this.resolvePath('context', parts, i, falsy); + }, + + // [lookupBlockParam] + // + // On stack, before: ... + // On stack, after: blockParam[name], ... + // + // Looks up the value of `parts` on the given block param and pushes + // it onto the stack. + lookupBlockParam: function lookupBlockParam(blockParamId, parts) { + this.useBlockParams = true; + + this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']); + this.resolvePath('context', parts, 1); + }, + + // [lookupData] + // + // On stack, before: ... + // On stack, after: data, ... + // + // Push the data lookup operator + lookupData: function lookupData(depth, parts) { + if (!depth) { + this.pushStackLiteral('data'); + } else { + this.pushStackLiteral('this.data(data, ' + depth + ')'); + } + + this.resolvePath('data', parts, 0, true); + }, + + resolvePath: function resolvePath(type, parts, i, falsy) { + var _this = this; + + if (this.options.strict || this.options.assumeObjects) { + this.push(strictLookup(this.options.strict, this, parts, type)); + return; + } + + var len = parts.length; + for (; i < len; i++) { + /*eslint-disable no-loop-func */ + this.replaceStack(function (current) { + var lookup = _this.nameLookup(current, parts[i], type); + // We want to ensure that zero and false are handled properly if the context (falsy flag) + // needs to have the special handling for these values. + if (!falsy) { + return [' != null ? ', lookup, ' : ', current]; } else { - this.pushStackLiteral(string); + // Otherwise we can use generic falsy handling + return [' && ', lookup]; } - } - }, + }); + /*eslint-enable no-loop-func */ + } + }, - emptyHash: function() { - this.pushStackLiteral('{}'); + // [resolvePossibleLambda] + // + // On stack, before: value, ... + // On stack, after: resolved value, ... + // + // If the `value` is a lambda, replace it on the stack by + // the return value of the lambda + resolvePossibleLambda: function resolvePossibleLambda() { + this.push([this.aliasable('this.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']); + }, - if (this.trackIds) { - this.push('{}'); // hashIds - } - if (this.stringParams) { - this.push('{}'); // hashContexts - this.push('{}'); // hashTypes - } - }, - pushHash: function() { - if (this.hash) { - this.hashes.push(this.hash); - } - this.hash = {values: [], types: [], contexts: [], ids: []}; - }, - popHash: function() { - var hash = this.hash; - this.hash = this.hashes.pop(); + // [pushStringParam] + // + // On stack, before: ... + // On stack, after: string, currentContext, ... + // + // This opcode is designed for use in string mode, which + // provides the string value of a parameter along with its + // depth rather than resolving it immediately. + pushStringParam: function pushStringParam(string, type) { + this.pushContext(); + this.pushString(type); - if (this.trackIds) { - this.push('{' + hash.ids.join(',') + '}'); - } - if (this.stringParams) { - this.push('{' + hash.contexts.join(',') + '}'); - this.push('{' + hash.types.join(',') + '}'); - } - - this.push('{\n ' + hash.values.join(',\n ') + '\n }'); - }, - - // [pushString] - // - // On stack, before: ... - // On stack, after: quotedString(string), ... - // - // Push a quoted version of `string` onto the stack - pushString: function(string) { - this.pushStackLiteral(this.quotedString(string)); - }, - - // [push] - // - // On stack, before: ... - // On stack, after: expr, ... - // - // Push an expression onto the stack - push: function(expr) { - this.inlineStack.push(expr); - return expr; - }, - - // [pushLiteral] - // - // On stack, before: ... - // On stack, after: value, ... - // - // Pushes a value onto the stack. This operation prevents - // the compiler from creating a temporary variable to hold - // it. - pushLiteral: function(value) { - this.pushStackLiteral(value); - }, - - // [pushProgram] - // - // On stack, before: ... - // On stack, after: program(guid), ... - // - // Push a program expression onto the stack. This takes - // a compile-time guid and converts it into a runtime-accessible - // expression. - pushProgram: function(guid) { - if (guid != null) { - this.pushStackLiteral(this.programExpression(guid)); + // If it's a subexpression, the string result + // will be pushed after this opcode. + if (type !== 'SubExpression') { + if (typeof string === 'string') { + this.pushString(string); } else { - this.pushStackLiteral(null); + this.pushStackLiteral(string); } - }, + } + }, - // [invokeHelper] - // - // On stack, before: hash, inverse, program, params..., ... - // On stack, after: result of helper invocation - // - // Pops off the helper's parameters, invokes the helper, - // and pushes the helper's return value onto the stack. - // - // If the helper is not found, `helperMissing` is called. - invokeHelper: function(paramSize, name, isSimple) { - this.aliases.helperMissing = 'helpers.helperMissing'; + emptyHash: function emptyHash(omitEmpty) { + if (this.trackIds) { + this.push('{}'); // hashIds + } + if (this.stringParams) { + this.push('{}'); // hashContexts + this.push('{}'); // hashTypes + } + this.pushStackLiteral(omitEmpty ? 'undefined' : '{}'); + }, + pushHash: function pushHash() { + if (this.hash) { + this.hashes.push(this.hash); + } + this.hash = { values: [], types: [], contexts: [], ids: [] }; + }, + popHash: function popHash() { + var hash = this.hash; + this.hash = this.hashes.pop(); - var nonHelper = this.popStack(); - var helper = this.setupHelper(paramSize, name); + if (this.trackIds) { + this.push(this.objectLiteral(hash.ids)); + } + if (this.stringParams) { + this.push(this.objectLiteral(hash.contexts)); + this.push(this.objectLiteral(hash.types)); + } - var lookup = (isSimple ? helper.name + ' || ' : '') + nonHelper + ' || helperMissing'; - this.push('((' + lookup + ').call(' + helper.callParams + '))'); - }, + this.push(this.objectLiteral(hash.values)); + }, - // [invokeKnownHelper] - // - // On stack, before: hash, inverse, program, params..., ... - // On stack, after: result of helper invocation - // - // This operation is used when the helper is known to exist, - // so a `helperMissing` fallback is not required. - invokeKnownHelper: function(paramSize, name) { - var helper = this.setupHelper(paramSize, name); - this.push(helper.name + ".call(" + helper.callParams + ")"); - }, + // [pushString] + // + // On stack, before: ... + // On stack, after: quotedString(string), ... + // + // Push a quoted version of `string` onto the stack + pushString: function pushString(string) { + this.pushStackLiteral(this.quotedString(string)); + }, - // [invokeAmbiguous] - // - // On stack, before: hash, inverse, program, params..., ... - // On stack, after: result of disambiguation - // - // This operation is used when an expression like `{{foo}}` - // is provided, but we don't know at compile-time whether it - // is a helper or a path. - // - // This operation emits more code than the other options, - // and can be avoided by passing the `knownHelpers` and - // `knownHelpersOnly` flags at compile-time. - invokeAmbiguous: function(name, helperCall) { - this.aliases.functionType = '"function"'; - this.aliases.helperMissing = 'helpers.helperMissing'; - this.useRegister('helper'); + // [pushLiteral] + // + // On stack, before: ... + // On stack, after: value, ... + // + // Pushes a value onto the stack. This operation prevents + // the compiler from creating a temporary variable to hold + // it. + pushLiteral: function pushLiteral(value) { + this.pushStackLiteral(value); + }, - var nonHelper = this.popStack(); + // [pushProgram] + // + // On stack, before: ... + // On stack, after: program(guid), ... + // + // Push a program expression onto the stack. This takes + // a compile-time guid and converts it into a runtime-accessible + // expression. + pushProgram: function pushProgram(guid) { + if (guid != null) { + this.pushStackLiteral(this.programExpression(guid)); + } else { + this.pushStackLiteral(null); + } + }, - this.emptyHash(); - var helper = this.setupHelper(0, name, helperCall); + // [invokeHelper] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of helper invocation + // + // Pops off the helper's parameters, invokes the helper, + // and pushes the helper's return value onto the stack. + // + // If the helper is not found, `helperMissing` is called. + invokeHelper: function invokeHelper(paramSize, name, isSimple) { + var nonHelper = this.popStack(), + helper = this.setupHelper(paramSize, name), + simple = isSimple ? [helper.name, ' || '] : ''; - var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); + var lookup = ['('].concat(simple, nonHelper); + if (!this.options.strict) { + lookup.push(' || ', this.aliasable('helpers.helperMissing')); + } + lookup.push(')'); - this.push( - '((helper = (helper = ' + helperName + ' || ' + nonHelper + ') != null ? helper : helperMissing' - + (helper.paramsInit ? '),(' + helper.paramsInit : '') + '),' - + '(typeof helper === functionType ? helper.call(' + helper.callParams + ') : helper))'); - }, + this.push(this.source.functionCall(lookup, 'call', helper.callParams)); + }, - // [invokePartial] - // - // On stack, before: context, ... - // On stack after: result of partial invocation - // - // This operation pops off a context, invokes a partial with that context, - // and pushes the result of the invocation back. - invokePartial: function(name, indent) { - var params = [this.nameLookup('partials', name, 'partial'), "'" + indent + "'", "'" + name + "'", this.popStack(), this.popStack(), "helpers", "partials"]; + // [invokeKnownHelper] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of helper invocation + // + // This operation is used when the helper is known to exist, + // so a `helperMissing` fallback is not required. + invokeKnownHelper: function invokeKnownHelper(paramSize, name) { + var helper = this.setupHelper(paramSize, name); + this.push(this.source.functionCall(helper.name, 'call', helper.callParams)); + }, - if (this.options.data) { - params.push("data"); - } else if (this.options.compat) { - params.push('undefined'); - } - if (this.options.compat) { - params.push('depths'); - } + // [invokeAmbiguous] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of disambiguation + // + // This operation is used when an expression like `{{foo}}` + // is provided, but we don't know at compile-time whether it + // is a helper or a path. + // + // This operation emits more code than the other options, + // and can be avoided by passing the `knownHelpers` and + // `knownHelpersOnly` flags at compile-time. + invokeAmbiguous: function invokeAmbiguous(name, helperCall) { + this.useRegister('helper'); - this.push("this.invokePartial(" + params.join(", ") + ")"); - }, + var nonHelper = this.popStack(); - // [assignToHash] - // - // On stack, before: value, ..., hash, ... - // On stack, after: ..., hash, ... - // - // Pops a value off the stack and assigns it to the current hash - assignToHash: function(key) { - var value = this.popStack(), - context, - type, - id; + this.emptyHash(); + var helper = this.setupHelper(0, name, helperCall); - if (this.trackIds) { - id = this.popStack(); - } - if (this.stringParams) { - type = this.popStack(); - context = this.popStack(); - } + var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); - var hash = this.hash; - if (context) { - hash.contexts.push("'" + key + "': " + context); - } - if (type) { - hash.types.push("'" + key + "': " + type); - } - if (id) { - hash.ids.push("'" + key + "': " + id); - } - hash.values.push("'" + key + "': (" + value + ")"); - }, + var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')']; + if (!this.options.strict) { + lookup[0] = '(helper = '; + lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing')); + } - pushId: function(type, name) { - if (type === 'ID' || type === 'DATA') { - this.pushString(name); - } else if (type === 'sexpr') { - this.pushStackLiteral('true'); + this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']); + }, + + // [invokePartial] + // + // On stack, before: context, ... + // On stack after: result of partial invocation + // + // This operation pops off a context, invokes a partial with that context, + // and pushes the result of the invocation back. + invokePartial: function invokePartial(isDynamic, name, indent) { + var params = [], + options = this.setupParams(name, 1, params, false); + + if (isDynamic) { + name = this.popStack(); + delete options.name; + } + + if (indent) { + options.indent = JSON.stringify(indent); + } + options.helpers = 'helpers'; + options.partials = 'partials'; + + if (!isDynamic) { + params.unshift(this.nameLookup('partials', name, 'partial')); + } else { + params.unshift(name); + } + + if (this.options.compat) { + options.depths = 'depths'; + } + options = this.objectLiteral(options); + params.push(options); + + this.push(this.source.functionCall('this.invokePartial', '', params)); + }, + + // [assignToHash] + // + // On stack, before: value, ..., hash, ... + // On stack, after: ..., hash, ... + // + // Pops a value off the stack and assigns it to the current hash + assignToHash: function assignToHash(key) { + var value = this.popStack(), + context = undefined, + type = undefined, + id = undefined; + + if (this.trackIds) { + id = this.popStack(); + } + if (this.stringParams) { + type = this.popStack(); + context = this.popStack(); + } + + var hash = this.hash; + if (context) { + hash.contexts[key] = context; + } + if (type) { + hash.types[key] = type; + } + if (id) { + hash.ids[key] = id; + } + hash.values[key] = value; + }, + + pushId: function pushId(type, name, child) { + if (type === 'BlockParam') { + this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : '')); + } else if (type === 'PathExpression') { + this.pushString(name); + } else if (type === 'SubExpression') { + this.pushStackLiteral('true'); + } else { + this.pushStackLiteral('null'); + } + }, + + // HELPERS + + compiler: JavaScriptCompiler, + + compileChildren: function compileChildren(environment, options) { + var children = environment.children, + child = undefined, + compiler = undefined; + + for (var i = 0, l = children.length; i < l; i++) { + child = children[i]; + compiler = new this.compiler(); // eslint-disable-line new-cap + + var index = this.matchExistingProgram(child); + + if (index == null) { + this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children + index = this.context.programs.length; + child.index = index; + child.name = 'program' + index; + this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile); + this.context.environments[index] = child; + + this.useDepths = this.useDepths || compiler.useDepths; + this.useBlockParams = this.useBlockParams || compiler.useBlockParams; } else { - this.pushStackLiteral('null'); + child.index = index; + child.name = 'program' + index; + + this.useDepths = this.useDepths || child.useDepths; + this.useBlockParams = this.useBlockParams || child.useBlockParams; } - }, + } + }, + matchExistingProgram: function matchExistingProgram(child) { + for (var i = 0, len = this.context.environments.length; i < len; i++) { + var environment = this.context.environments[i]; + if (environment && environment.equals(child)) { + return i; + } + } + }, - // HELPERS + programExpression: function programExpression(guid) { + var child = this.environment.children[guid], + programParams = [child.index, 'data', child.blockParams]; - compiler: JavaScriptCompiler, + if (this.useBlockParams || this.useDepths) { + programParams.push('blockParams'); + } + if (this.useDepths) { + programParams.push('depths'); + } - compileChildren: function(environment, options) { - var children = environment.children, child, compiler; + return 'this.program(' + programParams.join(', ') + ')'; + }, - for(var i=0, l=children.length; i this.stackVars.length) { + this.stackVars.push('stack' + this.stackSlot); + } + return this.topStackName(); + }, + topStackName: function topStackName() { + return 'stack' + this.stackSlot; + }, + flushInline: function flushInline() { + var inlineStack = this.inlineStack; + this.inlineStack = []; + for (var i = 0, len = inlineStack.length; i < len; i++) { + var entry = inlineStack[i]; + /* istanbul ignore if */ + if (entry instanceof Literal) { + this.compileStack.push(entry); + } else { + var stack = this.incrStack(); + this.pushSource([stack, ' = ', entry, ';']); + this.compileStack.push(stack); + } + } + }, + isInline: function isInline() { + return this.inlineStack.length; + }, + + popStack: function popStack(wrapped) { + var inline = this.isInline(), + item = (inline ? this.inlineStack : this.compileStack).pop(); + + if (!wrapped && item instanceof Literal) { + return item.value; + } else { + if (!inline) { + /* istanbul ignore next */ + if (!this.stackSlot) { + throw new _Exception('Invalid stack pop'); } - } - }, - matchExistingProgram: function(child) { - for (var i = 0, len = this.context.environments.length; i < len; i++) { - var environment = this.context.environments[i]; - if (environment && environment.equals(child)) { - return i; - } - } - }, - - programExpression: function(guid) { - var child = this.environment.children[guid], - depths = child.depths.list, - useDepths = this.useDepths, - depth; - - var programParams = [child.index, 'data']; - - if (useDepths) { - programParams.push('depths'); - } - - return 'this.program(' + programParams.join(', ') + ')'; - }, - - useRegister: function(name) { - if(!this.registers[name]) { - this.registers[name] = true; - this.registers.list.push(name); - } - }, - - pushStackLiteral: function(item) { - return this.push(new Literal(item)); - }, - - pushSource: function(source) { - if (this.pendingContent) { - this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent))); - this.pendingContent = undefined; - } - - if (source) { - this.source.push(source); - } - }, - - pushStack: function(item) { - this.flushInline(); - - var stack = this.incrStack(); - this.pushSource(stack + " = " + item + ";"); - this.compileStack.push(stack); - return stack; - }, - - replaceStack: function(callback) { - var prefix = '', - inline = this.isInline(), - stack, - createdStack, - usedLiteral; - - /* istanbul ignore next */ - if (!this.isInline()) { - throw new Exception('replaceStack on non-inline'); - } - - // We want to merge the inline statement into the replacement statement via ',' - var top = this.popStack(true); - - if (top instanceof Literal) { - // Literals do not need to be inlined - prefix = stack = top.value; - usedLiteral = true; - } else { - // Get or create the current stack name for use by the inline - createdStack = !this.stackSlot; - var name = !createdStack ? this.topStackName() : this.incrStack(); - - prefix = '(' + this.push(name) + ' = ' + top + ')'; - stack = this.topStack(); - } - - var item = callback.call(this, stack); - - if (!usedLiteral) { - this.popStack(); - } - if (createdStack) { this.stackSlot--; } - this.push('(' + prefix + item + ')'); - }, + return item; + } + }, - incrStack: function() { - this.stackSlot++; - if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); } - return this.topStackName(); - }, - topStackName: function() { - return "stack" + this.stackSlot; - }, - flushInline: function() { - var inlineStack = this.inlineStack; - if (inlineStack.length) { - this.inlineStack = []; - for (var i = 0, len = inlineStack.length; i < len; i++) { - var entry = inlineStack[i]; - if (entry instanceof Literal) { - this.compileStack.push(entry); - } else { - this.pushStack(entry); - } - } - } - }, - isInline: function() { - return this.inlineStack.length; - }, + topStack: function topStack() { + var stack = this.isInline() ? this.inlineStack : this.compileStack, + item = stack[stack.length - 1]; - popStack: function(wrapped) { - var inline = this.isInline(), - item = (inline ? this.inlineStack : this.compileStack).pop(); + /* istanbul ignore if */ + if (item instanceof Literal) { + return item.value; + } else { + return item; + } + }, - if (!wrapped && (item instanceof Literal)) { - return item.value; - } else { - if (!inline) { - /* istanbul ignore next */ - if (!this.stackSlot) { - throw new Exception('Invalid stack pop'); - } - this.stackSlot--; - } - return item; - } - }, + contextName: function contextName(context) { + if (this.useDepths && context) { + return 'depths[' + context + ']'; + } else { + return 'depth' + context; + } + }, - topStack: function() { - var stack = (this.isInline() ? this.inlineStack : this.compileStack), - item = stack[stack.length - 1]; + quotedString: function quotedString(str) { + return this.source.quotedString(str); + }, - if (item instanceof Literal) { - return item.value; - } else { - return item; - } - }, + objectLiteral: function objectLiteral(obj) { + return this.source.objectLiteral(obj); + }, - contextName: function(context) { - if (this.useDepths && context) { - return 'depths[' + context + ']'; - } else { - return 'depth' + context; - } - }, + aliasable: function aliasable(name) { + var ret = this.aliases[name]; + if (ret) { + ret.referenceCount++; + return ret; + } - quotedString: function(str) { - return '"' + str - .replace(/\\/g, '\\\\') - .replace(/"/g, '\\"') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 - .replace(/\u2029/g, '\\u2029') + '"'; - }, + ret = this.aliases[name] = this.source.wrap(name); + ret.aliasable = true; + ret.referenceCount = 1; - objectLiteral: function(obj) { - var pairs = []; + return ret; + }, - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - pairs.push(this.quotedString(key) + ':' + obj[key]); - } - } + setupHelper: function setupHelper(paramSize, name, blockHelper) { + var params = [], + paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper); + var foundHelper = this.nameLookup('helpers', name, 'helper'); - return '{' + pairs.join(',') + '}'; - }, + return { + params: params, + paramsInit: paramsInit, + name: foundHelper, + callParams: [this.contextName(0)].concat(params) + }; + }, - setupHelper: function(paramSize, name, blockHelper) { - var params = [], - paramsInit = this.setupParams(name, paramSize, params, blockHelper); - var foundHelper = this.nameLookup('helpers', name, 'helper'); + setupParams: function setupParams(helper, paramSize, params) { + var options = {}, + contexts = [], + types = [], + ids = [], + param = undefined; - return { - params: params, - paramsInit: paramsInit, - name: foundHelper, - callParams: [this.contextName(0)].concat(params).join(", ") - }; - }, + options.name = this.quotedString(helper); + options.hash = this.popStack(); - setupOptions: function(helper, paramSize, params) { - var options = {}, contexts = [], types = [], ids = [], param, inverse, program; + if (this.trackIds) { + options.hashIds = this.popStack(); + } + if (this.stringParams) { + options.hashTypes = this.popStack(); + options.hashContexts = this.popStack(); + } - options.name = this.quotedString(helper); - options.hash = this.popStack(); + var inverse = this.popStack(), + program = this.popStack(); + + // Avoid setting fn and inverse if neither are set. This allows + // helpers to do a check for `if (options.fn)` + if (program || inverse) { + options.fn = program || 'this.noop'; + options.inverse = inverse || 'this.noop'; + } + + // The parameters go on to the stack in order (making sure that they are evaluated in order) + // so we need to pop them off the stack in reverse order + var i = paramSize; + while (i--) { + param = this.popStack(); + params[i] = param; if (this.trackIds) { - options.hashIds = this.popStack(); + ids[i] = this.popStack(); } if (this.stringParams) { - options.hashTypes = this.popStack(); - options.hashContexts = this.popStack(); - } - - inverse = this.popStack(); - program = this.popStack(); - - // Avoid setting fn and inverse if neither are set. This allows - // helpers to do a check for `if (options.fn)` - if (program || inverse) { - if (!program) { - program = 'this.noop'; - } - - if (!inverse) { - inverse = 'this.noop'; - } - - options.fn = program; - options.inverse = inverse; - } - - // The parameters go on to the stack in order (making sure that they are evaluated in order) - // so we need to pop them off the stack in reverse order - var i = paramSize; - while (i--) { - param = this.popStack(); - params[i] = param; - - if (this.trackIds) { - ids[i] = this.popStack(); - } - if (this.stringParams) { - types[i] = this.popStack(); - contexts[i] = this.popStack(); - } - } - - if (this.trackIds) { - options.ids = "[" + ids.join(",") + "]"; - } - if (this.stringParams) { - options.types = "[" + types.join(",") + "]"; - options.contexts = "[" + contexts.join(",") + "]"; - } - - if (this.options.data) { - options.data = "data"; - } - - return options; - }, - - // the params and contexts arguments are passed in arrays - // to fill in - setupParams: function(helperName, paramSize, params, useRegister) { - var options = this.objectLiteral(this.setupOptions(helperName, paramSize, params)); - - if (useRegister) { - this.useRegister('options'); - params.push('options'); - return 'options=' + options; - } else { - params.push(options); - return ''; + types[i] = this.popStack(); + contexts[i] = this.popStack(); } } - }; - var reservedWords = ( - "break else new var" + - " case finally return void" + - " catch for switch while" + - " continue function this with" + - " default if throw" + - " delete in try" + - " do instanceof typeof" + - " abstract enum int short" + - " boolean export interface static" + - " byte extends long super" + - " char final native synchronized" + - " class float package throws" + - " const goto private transient" + - " debugger implements protected volatile" + - " double import public let yield" - ).split(" "); + if (this.trackIds) { + options.ids = this.source.generateArray(ids); + } + if (this.stringParams) { + options.types = this.source.generateArray(types); + options.contexts = this.source.generateArray(contexts); + } + + if (this.options.data) { + options.data = 'data'; + } + if (this.useBlockParams) { + options.blockParams = 'blockParams'; + } + return options; + }, + + setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) { + var options = this.setupParams(helper, paramSize, params, true); + options = this.objectLiteral(options); + if (useRegister) { + this.useRegister('options'); + params.push('options'); + return ['options=', options]; + } else { + params.push(options); + return ''; + } + } + }; + + (function () { + var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' '); var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; - for(var i=0, l=reservedWords.length; i":">",'"':""","'":"'","`":"`"},j=/[&<>"'`]/g,k=/[&<>"'`]/;b.extend=d;var l=Object.prototype.toString;b.toString=l;var m=function(a){return"function"==typeof a};m(/x/)&&(m=function(a){return"function"==typeof a&&"[object Function]"===l.call(a)});var m;b.isFunction=m;var n=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===l.call(a):!1};b.isArray=n,b.escapeExpression=e,b.isEmpty=f,b.appendContextPath=g}),define("handlebars/exception",["exports"],function(a){function b(a,b){var d;b&&b.firstLine&&(d=b.firstLine,a+=" - "+d+":"+b.firstColumn);for(var e=Error.prototype.constructor.call(this,a),f=0;f0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):d(this);if(c.data&&c.ids){var g=q(c.data);g.contextPath=f.appendContextPath(c.data.contextPath,c.name),c={data:g}}return e(b,c)}),a.registerHelper("each",function(a,b){if(!b)throw new g("Must pass iterator to #each");var c,d,e=b.fn,h=b.inverse,i=0,j="";if(b.data&&b.ids&&(d=f.appendContextPath(b.data.contextPath,b.ids[0])+"."),l(a)&&(a=a.call(this)),b.data&&(c=q(b.data)),a&&"object"==typeof a)if(k(a))for(var m=a.length;m>i;i++)c&&(c.index=i,c.first=0===i,c.last=i===a.length-1,d&&(c.contextPath=d+i)),j+=e(a[i],{data:c});else for(var n in a)a.hasOwnProperty(n)&&(c&&(c.key=n,c.index=i,c.first=0===i,d&&(c.contextPath=d+n)),j+=e(a[n],{data:c}),i++);return 0===i&&(j=h(this)),j}),a.registerHelper("if",function(a,b){return l(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||f.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper("with",function(a,b){l(a)&&(a=a.call(this));var c=b.fn;if(f.isEmpty(a))return b.inverse(this);if(b.data&&b.ids){var d=q(b.data);d.contextPath=f.appendContextPath(b.data.contextPath,b.ids[0]),b={data:d}}return c(a,b)}),a.registerHelper("log",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper("lookup",function(a,b){return a&&a[b]})}var f=a,g=b["default"],h="2.0.0";c.VERSION=h;var i=6;c.COMPILER_REVISION=i;var j={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};c.REVISION_CHANGES=j;var k=f.isArray,l=f.isFunction,m=f.toString,n="[object Object]";c.HandlebarsEnvironment=d,d.prototype={constructor:d,logger:o,log:p,registerHelper:function(a,b){if(m.call(a)===n){if(b)throw new g("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){m.call(a)===n?f.extend(this.partials,a):this.partials[a]=b},unregisterPartial:function(a){delete this.partials[a]}};var o={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(a,b){if(o.level<=a){var c=o.methodMap[a];"undefined"!=typeof console&&console[c]&&console[c].call(console,b)}}};c.logger=o;var p=o.log;c.log=p;var q=function(a){var b=f.extend({},a);return b._parent=a,b};c.createFrame=q}),define("handlebars/runtime",["./utils","./exception","./base","exports"],function(a,b,c,d){function e(a){var b=a&&a[0]||1,c=m;if(b!==c){if(c>b){var d=n[c],e=n[b];throw new l("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new l("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function f(a,b){if(!b)throw new l("No environment passed to template");if(!a||!a.main)throw new l("Unknown template object: "+typeof a);b.VM.checkRevision(a.compiler);var c=function(c,d,e,f,g,h,i,j,m){g&&(f=k.extend({},f,g));var n=b.VM.invokePartial.call(this,c,e,f,h,i,j,m);if(null==n&&b.compile){var o={helpers:h,partials:i,data:j,depths:m};i[e]=b.compile(c,{data:void 0!==j,compat:a.compat},b),n=i[e](f,o)}if(null!=n){if(d){for(var p=n.split("\n"),q=0,r=p.length;r>q&&(p[q]||q+1!==r);q++)p[q]=d+p[q];n=p.join("\n")}return n}throw new l("The partial "+e+" could not be compiled when running in runtime-only mode")},d={lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:k.escapeExpression,invokePartial:c,fn:function(b){return a[b]},programs:[],program:function(a,b,c){var d=this.programs[a],e=this.fn(a);return b||c?d=g(this,a,e,b,c):d||(d=this.programs[a]=g(this,a,e)),d},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=k.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler},e=function(b,c){c=c||{};var f=c.data;e._setup(c),!c.partial&&a.useData&&(f=j(b,f));var g;return a.useDepths&&(g=c.depths?[b].concat(c.depths):[b]),a.main.call(d,b,d.helpers,d.partials,f,g)};return e.isTop=!0,e._setup=function(c){c.partial?(d.helpers=c.helpers,d.partials=c.partials):(d.helpers=d.merge(c.helpers,b.helpers),a.usePartial&&(d.partials=d.merge(c.partials,b.partials)))},e._child=function(b,c,e){if(a.useDepths&&!e)throw new l("must pass parent depths");return g(d,b,a[b],c,e)},e}function g(a,b,c,d,e){var f=function(b,f){return f=f||{},c.call(a,b,a.helpers,a.partials,f.data||d,e&&[b].concat(e))};return f.program=b,f.depth=e?e.length:0,f}function h(a,b,c,d,e,f,g){var h={partial:!0,helpers:d,partials:e,data:f,depths:g};if(void 0===a)throw new l("The partial "+b+" could not be found");return a instanceof Function?a(c,h):void 0}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?o(b):{},b.root=a),b}var k=a,l=b["default"],m=c.COMPILER_REVISION,n=c.REVISION_CHANGES,o=c.createFrame;d.checkRevision=e,d.template=f,d.program=g,d.invokePartial=h,d.noop=i}),define("handlebars.runtime",["./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","exports"],function(a,b,c,d,e,f){var g=a,h=b["default"],i=c["default"],j=d,k=e,l=function(){var a=new g.HandlebarsEnvironment;return j.extend(a,g),a.SafeString=h,a.Exception=i,a.Utils=j,a.escapeExpression=j.escapeExpression,a.VM=k,a.template=function(b){return k.template(b,a)},a},m=l();m.create=l,m["default"]=m,f["default"]=m}),define("handlebars/compiler/ast",["../exception","exports"],function(a,b){function c(a){a=a||{},this.firstLine=a.first_line,this.firstColumn=a.first_column,this.lastColumn=a.last_column,this.lastLine=a.last_line}var d=a["default"],e={ProgramNode:function(a,b,d){c.call(this,d),this.type="program",this.statements=a,this.strip=b},MustacheNode:function(a,b,d,f,g){if(c.call(this,g),this.type="mustache",this.strip=f,null!=d&&d.charAt){var h=d.charAt(3)||d.charAt(2);this.escaped="{"!==h&&"&"!==h}else this.escaped=!!d;this.sexpr=a instanceof e.SexprNode?a:new e.SexprNode(a,b),this.id=this.sexpr.id,this.params=this.sexpr.params,this.hash=this.sexpr.hash,this.eligibleHelper=this.sexpr.eligibleHelper,this.isHelper=this.sexpr.isHelper},SexprNode:function(a,b,d){c.call(this,d),this.type="sexpr",this.hash=b;var e=this.id=a[0],f=this.params=a.slice(1);this.isHelper=!(!f.length&&!b),this.eligibleHelper=this.isHelper||e.isSimple},PartialNode:function(a,b,d,e,f){c.call(this,f),this.type="partial",this.partialName=a,this.context=b,this.hash=d,this.strip=e,this.strip.inlineStandalone=!0},BlockNode:function(a,b,d,e,f){c.call(this,f),this.type="block",this.mustache=a,this.program=b,this.inverse=d,this.strip=e,d&&!b&&(this.isInverse=!0)},RawBlockNode:function(a,b,f,g){if(c.call(this,g),a.sexpr.id.original!==f)throw new d(a.sexpr.id.original+" doesn't match "+f,this);b=new e.ContentNode(b,g),this.type="block",this.mustache=a,this.program=new e.ProgramNode([b],{},g)},ContentNode:function(a,b){c.call(this,b),this.type="content",this.original=this.string=a},HashNode:function(a,b){c.call(this,b),this.type="hash",this.pairs=a},IdNode:function(a,b){c.call(this,b),this.type="ID";for(var e="",f=[],g=0,h="",i=0,j=a.length;j>i;i++){var k=a[i].part;if(e+=(a[i].separator||"")+k,".."===k||"."===k||"this"===k){if(f.length>0)throw new d("Invalid path: "+e,this);".."===k?(g++,h+="../"):this.isScoped=!0}else f.push(k)}this.original=e,this.parts=f,this.string=f.join("."),this.depth=g,this.idName=h+this.string,this.isSimple=1===a.length&&!this.isScoped&&0===g,this.stringModeValue=this.string},PartialNameNode:function(a,b){c.call(this,b),this.type="PARTIAL_NAME",this.name=a.original},DataNode:function(a,b){c.call(this,b),this.type="DATA",this.id=a,this.stringModeValue=a.stringModeValue,this.idName="@"+a.stringModeValue},StringNode:function(a,b){c.call(this,b),this.type="STRING",this.original=this.string=this.stringModeValue=a},NumberNode:function(a,b){c.call(this,b),this.type="NUMBER",this.original=this.number=a,this.stringModeValue=Number(a)},BooleanNode:function(a,b){c.call(this,b),this.type="BOOLEAN",this.bool=a,this.stringModeValue="true"===a},CommentNode:function(a,b){c.call(this,b),this.type="comment",this.comment=a,this.strip={inlineStandalone:!0}}};b["default"]=e}),define("handlebars/compiler/parser",["exports"],function(a){var b=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,CONTENT:12,COMMENT:13,openRawBlock:14,END_RAW_BLOCK:15,OPEN_RAW_BLOCK:16,sexpr:17,CLOSE_RAW_BLOCK:18,openBlock:19,block_option0:20,closeBlock:21,openInverse:22,block_option1:23,OPEN_BLOCK:24,CLOSE:25,OPEN_INVERSE:26,inverseAndProgram:27,INVERSE:28,OPEN_ENDBLOCK:29,path:30,OPEN:31,OPEN_UNESCAPED:32,CLOSE_UNESCAPED:33,OPEN_PARTIAL:34,partialName:35,param:36,partial_option0:37,partial_option1:38,sexpr_repetition0:39,sexpr_option0:40,dataName:41,STRING:42,NUMBER:43,BOOLEAN:44,OPEN_SEXPR:45,CLOSE_SEXPR:46,hash:47,hash_repetition_plus0:48,hashSegment:49,ID:50,EQUALS:51,DATA:52,pathSegments:53,SEP:54,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",12:"CONTENT",13:"COMMENT",15:"END_RAW_BLOCK",16:"OPEN_RAW_BLOCK",18:"CLOSE_RAW_BLOCK",24:"OPEN_BLOCK",25:"CLOSE",26:"OPEN_INVERSE",28:"INVERSE",29:"OPEN_ENDBLOCK",31:"OPEN",32:"OPEN_UNESCAPED",33:"CLOSE_UNESCAPED",34:"OPEN_PARTIAL",42:"STRING",43:"NUMBER",44:"BOOLEAN",45:"OPEN_SEXPR",46:"CLOSE_SEXPR",50:"ID",51:"EQUALS",52:"DATA",54:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[10,3],[14,3],[9,4],[9,4],[19,3],[22,3],[27,2],[21,3],[8,3],[8,3],[11,5],[11,4],[17,3],[17,1],[36,1],[36,1],[36,1],[36,1],[36,1],[36,3],[47,1],[49,3],[35,1],[35,1],[35,1],[41,2],[30,1],[53,3],[53,1],[6,0],[6,2],[20,0],[20,1],[23,0],[23,1],[37,0],[37,1],[38,0],[38,1],[39,0],[39,2],[40,0],[40,1],[48,1],[48,2]],performAction:function(a,b,c,d,e,f){var g=f.length-1;switch(e){case 1:return d.prepareProgram(f[g-1].statements,!0),f[g-1];case 2:this.$=new d.ProgramNode(d.prepareProgram(f[g]),{},this._$);break;case 3:this.$=f[g];break;case 4:this.$=f[g];break;case 5:this.$=f[g];break;case 6:this.$=f[g];break;case 7:this.$=new d.ContentNode(f[g],this._$);break;case 8:this.$=new d.CommentNode(f[g],this._$);break;case 9:this.$=new d.RawBlockNode(f[g-2],f[g-1],f[g],this._$);break;case 10:this.$=new d.MustacheNode(f[g-1],null,"","",this._$);break;case 11:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!1,this._$);break;case 12:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!0,this._$);break;case 13:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 14:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 15:this.$={strip:d.stripFlags(f[g-1],f[g-1]),program:f[g]};break;case 16:this.$={path:f[g-1],strip:d.stripFlags(f[g-2],f[g])};break;case 17:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 18:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 19:this.$=new d.PartialNode(f[g-3],f[g-2],f[g-1],d.stripFlags(f[g-4],f[g]),this._$);break;case 20:this.$=new d.PartialNode(f[g-2],void 0,f[g-1],d.stripFlags(f[g-3],f[g]),this._$);break;case 21:this.$=new d.SexprNode([f[g-2]].concat(f[g-1]),f[g],this._$);break;case 22:this.$=new d.SexprNode([f[g]],null,this._$);break;case 23:this.$=f[g];break;case 24:this.$=new d.StringNode(f[g],this._$);break;case 25:this.$=new d.NumberNode(f[g],this._$);break;case 26:this.$=new d.BooleanNode(f[g],this._$);break;case 27:this.$=f[g];break;case 28:f[g-1].isHelper=!0,this.$=f[g-1];break;case 29:this.$=new d.HashNode(f[g],this._$);break;case 30:this.$=[f[g-2],f[g]];break;case 31:this.$=new d.PartialNameNode(f[g],this._$);break;case 32:this.$=new d.PartialNameNode(new d.StringNode(f[g],this._$),this._$);break;case 33:this.$=new d.PartialNameNode(new d.NumberNode(f[g],this._$));break;case 34:this.$=new d.DataNode(f[g],this._$);break;case 35:this.$=new d.IdNode(f[g],this._$);break;case 36:f[g-2].push({part:f[g],separator:f[g-1]}),this.$=f[g-2];break;case 37:this.$=[{part:f[g]}];break;case 38:this.$=[];break;case 39:f[g-1].push(f[g]);break;case 48:this.$=[];break;case 49:f[g-1].push(f[g]);break;case 52:this.$=[f[g]];break;case 53:f[g-1].push(f[g])}},table:[{3:1,4:2,5:[2,38],6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],31:[2,38],32:[2,38],34:[2,38]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:[1,10],13:[1,11],14:16,16:[1,20],19:14,22:15,24:[1,18],26:[1,19],28:[2,2],29:[2,2],31:[1,12],32:[1,13],34:[1,17]},{1:[2,1]},{5:[2,39],12:[2,39],13:[2,39],16:[2,39],24:[2,39],26:[2,39],28:[2,39],29:[2,39],31:[2,39],32:[2,39],34:[2,39]},{5:[2,3],12:[2,3],13:[2,3],16:[2,3],24:[2,3],26:[2,3],28:[2,3],29:[2,3],31:[2,3],32:[2,3],34:[2,3]},{5:[2,4],12:[2,4],13:[2,4],16:[2,4],24:[2,4],26:[2,4],28:[2,4],29:[2,4],31:[2,4],32:[2,4],34:[2,4]},{5:[2,5],12:[2,5],13:[2,5],16:[2,5],24:[2,5],26:[2,5],28:[2,5],29:[2,5],31:[2,5],32:[2,5],34:[2,5]},{5:[2,6],12:[2,6],13:[2,6],16:[2,6],24:[2,6],26:[2,6],28:[2,6],29:[2,6],31:[2,6],32:[2,6],34:[2,6]},{5:[2,7],12:[2,7],13:[2,7],16:[2,7],24:[2,7],26:[2,7],28:[2,7],29:[2,7],31:[2,7],32:[2,7],34:[2,7]},{5:[2,8],12:[2,8],13:[2,8],16:[2,8],24:[2,8],26:[2,8],28:[2,8],29:[2,8],31:[2,8],32:[2,8],34:[2,8]},{17:21,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:27,30:22,41:23,50:[1,26],52:[1,25],53:24},{4:28,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{4:29,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{12:[1,30]},{30:32,35:31,42:[1,33],43:[1,34],50:[1,26],53:24},{17:35,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:36,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:37,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[1,38]},{18:[2,48],25:[2,48],33:[2,48],39:39,42:[2,48],43:[2,48],44:[2,48],45:[2,48],46:[2,48],50:[2,48],52:[2,48]},{18:[2,22],25:[2,22],33:[2,22],46:[2,22]},{18:[2,35],25:[2,35],33:[2,35],42:[2,35],43:[2,35],44:[2,35],45:[2,35],46:[2,35],50:[2,35],52:[2,35],54:[1,40]},{30:41,50:[1,26],53:24},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],52:[2,37],54:[2,37]},{33:[1,42]},{20:43,27:44,28:[1,45],29:[2,40]},{23:46,27:47,28:[1,45],29:[2,42]},{15:[1,48]},{25:[2,46],30:51,36:49,38:50,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],47:57,48:58,49:60,50:[1,59],52:[1,25],53:24},{25:[2,31],42:[2,31],43:[2,31],44:[2,31],45:[2,31],50:[2,31],52:[2,31]},{25:[2,32],42:[2,32],43:[2,32],44:[2,32],45:[2,32],50:[2,32],52:[2,32]},{25:[2,33],42:[2,33],43:[2,33],44:[2,33],45:[2,33],50:[2,33],52:[2,33]},{25:[1,61]},{25:[1,62]},{18:[1,63]},{5:[2,17],12:[2,17],13:[2,17],16:[2,17],24:[2,17],26:[2,17],28:[2,17],29:[2,17],31:[2,17],32:[2,17],34:[2,17]},{18:[2,50],25:[2,50],30:51,33:[2,50],36:65,40:64,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],46:[2,50],47:66,48:58,49:60,50:[1,59],52:[1,25],53:24},{50:[1,67]},{18:[2,34],25:[2,34],33:[2,34],42:[2,34],43:[2,34],44:[2,34],45:[2,34],46:[2,34],50:[2,34],52:[2,34]},{5:[2,18],12:[2,18],13:[2,18],16:[2,18],24:[2,18],26:[2,18],28:[2,18],29:[2,18],31:[2,18],32:[2,18],34:[2,18]},{21:68,29:[1,69]},{29:[2,41]},{4:70,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{21:71,29:[1,69]},{29:[2,43]},{5:[2,9],12:[2,9],13:[2,9],16:[2,9],24:[2,9],26:[2,9],28:[2,9],29:[2,9],31:[2,9],32:[2,9],34:[2,9]},{25:[2,44],37:72,47:73,48:58,49:60,50:[1,74]},{25:[1,75]},{18:[2,23],25:[2,23],33:[2,23],42:[2,23],43:[2,23],44:[2,23],45:[2,23],46:[2,23],50:[2,23],52:[2,23]},{18:[2,24],25:[2,24],33:[2,24],42:[2,24],43:[2,24],44:[2,24],45:[2,24],46:[2,24],50:[2,24],52:[2,24]},{18:[2,25],25:[2,25],33:[2,25],42:[2,25],43:[2,25],44:[2,25],45:[2,25],46:[2,25],50:[2,25],52:[2,25]},{18:[2,26],25:[2,26],33:[2,26],42:[2,26],43:[2,26],44:[2,26],45:[2,26],46:[2,26],50:[2,26],52:[2,26]},{18:[2,27],25:[2,27],33:[2,27],42:[2,27],43:[2,27],44:[2,27],45:[2,27],46:[2,27],50:[2,27],52:[2,27]},{17:76,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[2,47]},{18:[2,29],25:[2,29],33:[2,29],46:[2,29],49:77,50:[1,74]},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],51:[1,78],52:[2,37],54:[2,37]},{18:[2,52],25:[2,52],33:[2,52],46:[2,52],50:[2,52]},{12:[2,13],13:[2,13],16:[2,13],24:[2,13],26:[2,13],28:[2,13],29:[2,13],31:[2,13],32:[2,13],34:[2,13]},{12:[2,14],13:[2,14],16:[2,14],24:[2,14],26:[2,14],28:[2,14],29:[2,14],31:[2,14],32:[2,14],34:[2,14]},{12:[2,10]},{18:[2,21],25:[2,21],33:[2,21],46:[2,21]},{18:[2,49],25:[2,49],33:[2,49],42:[2,49],43:[2,49],44:[2,49],45:[2,49],46:[2,49],50:[2,49],52:[2,49]},{18:[2,51],25:[2,51],33:[2,51],46:[2,51]},{18:[2,36],25:[2,36],33:[2,36],42:[2,36],43:[2,36],44:[2,36],45:[2,36],46:[2,36],50:[2,36],52:[2,36],54:[2,36]},{5:[2,11],12:[2,11],13:[2,11],16:[2,11],24:[2,11],26:[2,11],28:[2,11],29:[2,11],31:[2,11],32:[2,11],34:[2,11]},{30:79,50:[1,26],53:24},{29:[2,15]},{5:[2,12],12:[2,12],13:[2,12],16:[2,12],24:[2,12],26:[2,12],28:[2,12],29:[2,12],31:[2,12],32:[2,12],34:[2,12]},{25:[1,80]},{25:[2,45]},{51:[1,78]},{5:[2,20],12:[2,20],13:[2,20],16:[2,20],24:[2,20],26:[2,20],28:[2,20],29:[2,20],31:[2,20],32:[2,20],34:[2,20]},{46:[1,81]},{18:[2,53],25:[2,53],33:[2,53],46:[2,53],50:[2,53]},{30:51,36:82,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],50:[1,26],52:[1,25],53:24},{25:[1,83]},{5:[2,19],12:[2,19],13:[2,19],16:[2,19],24:[2,19],26:[2,19],28:[2,19],29:[2,19],31:[2,19],32:[2,19],34:[2,19]},{18:[2,28],25:[2,28],33:[2,28],42:[2,28],43:[2,28],44:[2,28],45:[2,28],46:[2,28],50:[2,28],52:[2,28]},{18:[2,30],25:[2,30],33:[2,30],46:[2,30],50:[2,30]},{5:[2,16],12:[2,16],13:[2,16],16:[2,16],24:[2,16],26:[2,16],28:[2,16],29:[2,16],31:[2,16],32:[2,16],34:[2,16]}],defaultActions:{4:[2,1],44:[2,41],47:[2,43],57:[2,47],63:[2,10],70:[2,15],73:[2,45]},parseError:function(a){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||"undefined"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 12;break;case 1:return 12;case 2:return this.popState(),12;case 3:return b.yytext=b.yytext.substr(5,b.yyleng-9),this.popState(),15;case 4:return 12;case 5:return e(0,4),this.popState(),13;case 6:return 45;case 7:return 46;case 8:return 16;case 9:return this.popState(),this.begin("raw"),18;case 10:return 34;case 11:return 24;case 12:return 29;case 13:return this.popState(),28;case 14:return this.popState(),28;case 15:return 26;case 16:return 26;case 17:return 32;case 18:return 31;case 19:this.popState(),this.begin("com");break;case 20:return e(3,5),this.popState(),13;case 21:return 31;case 22:return 51;case 23:return 50;case 24:return 50;case 25:return 54;case 26:break;case 27:return this.popState(),33;case 28:return this.popState(),25;case 29:return b.yytext=e(1,2).replace(/\\"/g,'"'),42;case 30:return b.yytext=e(1,2).replace(/\\'/g,"'"),42;case 31:return 52;case 32:return 44;case 33:return 44;case 34:return 43;case 35:return 50;case 36:return b.yytext=e(1,2),50;case 37:return"INVALID";case 38:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[5],inclusive:!1},raw:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,1,38],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();a["default"]=b}),define("handlebars/compiler/helpers",["../exception","exports"],function(a,b){function c(a,b){return{left:"~"===a.charAt(2),right:"~"===b.charAt(b.length-3)}}function d(a,b,c,d,e,k){if(a.sexpr.id.original!==d.path.original)throw new j(a.sexpr.id.original+" doesn't match "+d.path.original,a);var l=c&&c.program,m={left:a.strip.left,right:d.strip.right,openStandalone:g(b.statements),closeStandalone:f((l||b).statements)};if(a.strip.right&&h(b.statements,null,!0),l){var n=c.strip;n.left&&i(b.statements,null,!0),n.right&&h(l.statements,null,!0),d.strip.left&&i(l.statements,null,!0),f(b.statements)&&g(l.statements)&&(i(b.statements),h(l.statements))}else d.strip.left&&i(b.statements,null,!0);return e?new this.BlockNode(a,l,b,m,k):new this.BlockNode(a,b,l,m,k)}function e(a,b){for(var c=0,d=a.length;d>c;c++){var e=a[c],j=e.strip;if(j){var k=f(a,c,b,"partial"===e.type),l=g(a,c,b),m=j.openStandalone&&k,n=j.closeStandalone&&l,o=j.inlineStandalone&&k&&l;j.right&&h(a,c,!0),j.left&&i(a,c,!0),o&&(h(a,c),i(a,c)&&"partial"===e.type&&(e.indent=/([ \t]+$)/.exec(a[c-1].original)?RegExp.$1:"")),m&&(h((e.program||e.inverse).statements),i(a,c)),n&&(h(a,c),i((e.inverse||e.program).statements))}}return a}function f(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"content"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function g(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"content"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function h(a,b,c){var d=a[null==b?0:b+1];if(d&&"content"===d.type&&(c||!d.rightStripped)){var e=d.string;d.string=d.string.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.string!==e}}function i(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"content"===d.type&&(c||!d.leftStripped)){var e=d.string;return d.string=d.string.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.string!==e,d.leftStripped}}var j=a["default"];b.stripFlags=c,b.prepareBlock=d,b.prepareProgram=e}),define("handlebars/compiler/base",["./parser","./ast","./helpers","../utils","exports"],function(a,b,c,d,e){function f(a){return a.constructor===h.ProgramNode?a:(g.yy=k,g.parse(a))}var g=a["default"],h=b["default"],i=c,j=d.extend;e.parser=g;var k={};j(k,i,h),e.parse=f}),define("handlebars/compiler/compiler",["../exception","../utils","exports"],function(a,b,c){function d(){}function e(a,b,c){if(null==a||"string"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new h("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function f(a,b,c){function d(){var d=c.parse(a),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}if(null==a||"string"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new h("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var e,f=function(a,b){return e||(e=d()),e.call(this,a,b)};return f._setup=function(a){return e||(e=d()),e._setup(a)},f._child=function(a,b,c){return e||(e=d()),e._child(a,b,c)},f}function g(a,b){if(a===b)return!0;if(i(a)&&i(b)&&a.length===b.length){for(var c=0;cc;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!g(d.args,e.args))return!1}for(b=this.children.length,c=0;b>c;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.opcodes=[],this.children=[],this.depths={list:[]},this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds;var c=this.options.knownHelpers; -if(this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)this.options.knownHelpers[d]=c[d];return this.accept(a)},accept:function(a){return this[a.type](a)},program:function(a){for(var b=a.statements,c=0,d=b.length;d>c;c++)this.accept(b[c]);return this.isSimple=1===d,this.depths.list=this.depths.list.sort(function(a,b){return a-b}),this},compileProgram:function(a){var b,c=(new this.compiler).compile(a,this.options),d=this.guid++;this.usePartial=this.usePartial||c.usePartial,this.children[d]=c;for(var e=0,f=c.depths.list.length;f>e;e++)b=c.depths.list[e],2>b||this.addDepth(b-1);return d},block:function(a){var b=a.mustache,c=a.program,d=a.inverse;c&&(c=this.compileProgram(c)),d&&(d=this.compileProgram(d));var e=b.sexpr,f=this.classifySexpr(e);"helper"===f?this.helperSexpr(e,c,d):"simple"===f?(this.simpleSexpr(e),this.opcode("pushProgram",c),this.opcode("pushProgram",d),this.opcode("emptyHash"),this.opcode("blockValue",e.id.original)):(this.ambiguousSexpr(e,c,d),this.opcode("pushProgram",c),this.opcode("pushProgram",d),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},hash:function(a){var b,c,d=a.pairs;for(this.opcode("pushHash"),b=0,c=d.length;c>b;b++)this.pushParam(d[b][1]);for(;b--;)this.opcode("assignToHash",d[b][0]);this.opcode("popHash")},partial:function(a){var b=a.partialName;this.usePartial=!0,a.hash?this.accept(a.hash):this.opcode("push","undefined"),a.context?this.accept(a.context):(this.opcode("getContext",0),this.opcode("pushContext")),this.opcode("invokePartial",b.name,a.indent||""),this.opcode("append")},content:function(a){a.string&&this.opcode("appendContent",a.string)},mustache:function(a){this.sexpr(a.sexpr),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ambiguousSexpr:function(a,b,c){var d=a.id,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.ID(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.id;"DATA"===b.type?this.DATA(b):b.parts.length?this.ID(b):(this.addDepth(b.depth),this.opcode("getContext",b.depth),this.opcode("pushContext")),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.id,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new h("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.falsy=!0,this.ID(e),this.opcode("invokeHelper",d.length,e.original,e.isSimple)}},sexpr:function(a){var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ID:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0];b?this.opcode("lookupOnContext",a.parts,a.falsy,a.isScoped):this.opcode("pushContext")},DATA:function(a){this.options.data=!0,this.opcode("lookupData",a.id.depth,a.id.parts)},STRING:function(a){this.opcode("pushString",a.string)},NUMBER:function(a){this.opcode("pushLiteral",a.number)},BOOLEAN:function(a){this.opcode("pushLiteral",a.bool)},comment:function(){},opcode:function(a){this.opcodes.push({opcode:a,args:j.call(arguments,1)})},addDepth:function(a){0!==a&&(this.depths[a]||(this.depths[a]=!0,this.depths.list.push(a)))},classifySexpr:function(a){var b=a.isHelper,c=a.eligibleHelper,d=this.options;if(c&&!b){var e=a.id.parts[0];d.knownHelpers[e]?b=!0:d.knownHelpersOnly&&(c=!1)}return b?"helper":c?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;c>b;b++)this.pushParam(a[b])},pushParam:function(a){this.stringParams?(a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",a.stringModeValue,a.type),"sexpr"===a.type&&this.sexpr(a)):(this.trackIds&&this.opcode("pushId",a.type,a.idName||a.stringModeValue),this.accept(a))},setupFullMustacheParams:function(a,b,c){var d=a.params;return this.pushParams(d),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.hash(a.hash):this.opcode("emptyHash"),d}},c.precompile=e,c.compile=f}),define("handlebars/compiler/javascript-compiler",["../base","../exception","exports"],function(a,b,c){function d(a){this.value=a}function e(){}var f=a.COMPILER_REVISION,g=a.REVISION_CHANGES,h=b["default"];e.prototype={nameLookup:function(a,b){return e.isValidJavaScriptVariableName(b)?a+"."+b:a+"['"+b+"']"},depthedLookup:function(a){return this.aliases.lookup="this.lookup",'lookup(depths, "'+a+'")'},compilerInfo:function(){var a=f,b=g[a];return[a,b]},appendToBuffer:function(a){return this.environment.isSimple?"return "+a+";":{appendToBuffer:!0,content:a,toString:function(){return"buffer += "+a+";"}}},initializeBuffer:function(){return this.quotedString("")},namespace:"Handlebars",compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.depths.list.length||this.options.compat;var e,f,g,i=a.opcodes;for(f=0,g=i.length;g>f;f++)e=i[f],this[e.opcode].apply(this,e.args);if(this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new h("Compile completed with content left on stack");var j=this.createFunctionContext(d);if(this.isChild)return j;var k={compiler:this.compilerInfo(),main:j},l=this.context.programs;for(f=0,g=l.length;g>f;f++)l[f]&&(k[f]=l[f]);return this.environment.usePartial&&(k.usePartial=!0),this.options.data&&(k.useData=!0),this.useDepths&&(k.useDepths=!0),this.options.compat&&(k.compat=!0),d||(k.compiler=JSON.stringify(k.compiler),k=this.objectLiteral(k)),k},preamble:function(){this.lastContext=0,this.source=[]},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));for(var d in this.aliases)this.aliases.hasOwnProperty(d)&&(b+=", "+d+"="+this.aliases[d]);var e=["depth0","helpers","partials","data"];this.useDepths&&e.push("depths");var f=this.mergeSource(b);return a?(e.push(f),Function.apply(this,e)):"function("+e.join(",")+") {\n "+f+"}"},mergeSource:function(a){for(var b,c,d="",e=!this.forceBuffer,f=0,g=this.source.length;g>f;f++){var h=this.source[f];h.appendToBuffer?b=b?b+"\n + "+h.content:h.content:(b&&(d?d+="buffer += "+b+";\n ":(c=!0,d=b+";\n "),b=void 0),d+=h+"\n ",this.environment.isSimple||(e=!1))}return e?(b||!d)&&(d+="return "+(b||'""')+";\n"):(a+=", buffer = "+(c?"":this.initializeBuffer()),d+=b?"return buffer + "+b+";\n":"return buffer;\n"),a&&(d="var "+a.substring(2)+(c?"":";\n ")+d),d},blockValue:function(a){this.aliases.blockHelperMissing="helpers.blockHelperMissing";var b=[this.contextName(0)];this.setupParams(a,0,b);var c=this.popStack();b.splice(1,0,c),this.push("blockHelperMissing.call("+b.join(", ")+")")},ambiguousBlockValue:function(){this.aliases.blockHelperMissing="helpers.blockHelperMissing";var a=[this.contextName(0)];this.setupParams("",0,a,!0),this.flushInline();var b=this.topStack();a.splice(1,0,b),this.pushSource("if (!"+this.lastHelper+") { "+b+" = blockHelperMissing.call("+a.join(", ")+"); }")},appendContent:function(a){this.pendingContent&&(a=this.pendingContent+a),this.pendingContent=a},append:function(){this.flushInline();var a=this.popStack();this.pushSource("if ("+a+" != null) { "+this.appendToBuffer(a)+" }"),this.environment.isSimple&&this.pushSource("else { "+this.appendToBuffer("''")+" }")},appendEscaped:function(){this.aliases.escapeExpression="this.escapeExpression",this.pushSource(this.appendToBuffer("escapeExpression("+this.popStack()+")"))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c){var d=0,e=a.length;for(c||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[d++]));e>d;d++)this.replaceStack(function(c){var e=this.nameLookup(c,a[d],"context");return b?" && "+e:" != null ? "+e+" : "+c})},lookupData:function(a,b){a?this.pushStackLiteral("this.data(data, "+a+")"):this.pushStackLiteral("data");for(var c=b.length,d=0;c>d;d++)this.replaceStack(function(a){return" && "+this.nameLookup(a,b[d],"data")})},resolvePossibleLambda:function(){this.aliases.lambda="this.lambda",this.push("lambda("+this.popStack()+", "+this.contextName(0)+")")},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"sexpr"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(){this.pushStackLiteral("{}"),this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}"))},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push("{"+a.ids.join(",")+"}"),this.stringParams&&(this.push("{"+a.contexts.join(",")+"}"),this.push("{"+a.types.join(",")+"}")),this.push("{\n "+a.values.join(",\n ")+"\n }")},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},push:function(a){return this.inlineStack.push(a),a},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},invokeHelper:function(a,b,c){this.aliases.helperMissing="helpers.helperMissing";var d=this.popStack(),e=this.setupHelper(a,b),f=(c?e.name+" || ":"")+d+" || helperMissing";this.push("(("+f+").call("+e.callParams+"))")},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(c.name+".call("+c.callParams+")")},invokeAmbiguous:function(a,b){this.aliases.functionType='"function"',this.aliases.helperMissing="helpers.helperMissing",this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper");this.push("((helper = (helper = "+e+" || "+c+") != null ? helper : helperMissing"+(d.paramsInit?"),("+d.paramsInit:"")+"),(typeof helper === functionType ? helper.call("+d.callParams+") : helper))")},invokePartial:function(a,b){var c=[this.nameLookup("partials",a,"partial"),"'"+b+"'","'"+a+"'",this.popStack(),this.popStack(),"helpers","partials"];this.options.data?c.push("data"):this.options.compat&&c.push("undefined"),this.options.compat&&c.push("depths"),this.push("this.invokePartial("+c.join(", ")+")")},assignToHash:function(a){var b,c,d,e=this.popStack();this.trackIds&&(d=this.popStack()),this.stringParams&&(c=this.popStack(),b=this.popStack());var f=this.hash;b&&f.contexts.push("'"+a+"': "+b),c&&f.types.push("'"+a+"': "+c),d&&f.ids.push("'"+a+"': "+d),f.values.push("'"+a+"': ("+e+")")},pushId:function(a,b){"ID"===a||"DATA"===a?this.pushString(b):"sexpr"===a?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:e,compileChildren:function(a,b){for(var c,d,e=a.children,f=0,g=e.length;g>f;f++){c=e[f],d=new this.compiler;var h=this.matchExistingProgram(c);null==h?(this.context.programs.push(""),h=this.context.programs.length,c.index=h,c.name="program"+h,this.context.programs[h]=d.compile(c,b,this.context,!this.precompile),this.context.environments[h]=c,this.useDepths=this.useDepths||d.useDepths):(c.index=h,c.name="program"+h)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){var b=this.environment.children[a],c=(b.depths.list,this.useDepths),d=[b.index,"data"];return c&&d.push("depths"),"this.program("+d.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},pushStackLiteral:function(a){return this.push(new d(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent))),this.pendingContent=void 0),a&&this.source.push(a)},pushStack:function(a){this.flushInline();var b=this.incrStack();return this.pushSource(b+" = "+a+";"),this.compileStack.push(b),b},replaceStack:function(a){{var b,c,e,f="";this.isInline()}if(!this.isInline())throw new h("replaceStack on non-inline");var g=this.popStack(!0);if(g instanceof d)f=b=g.value,e=!0;else{c=!this.stackSlot;var i=c?this.incrStack():this.topStackName();f="("+this.push(i)+" = "+g+")",b=this.topStack()}var j=a.call(this,b);e||this.popStack(),c&&this.stackSlot--,this.push("("+f+j+")")},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;if(a.length){this.inlineStack=[];for(var b=0,c=a.length;c>b;b++){var e=a[b];e instanceof d?this.compileStack.push(e):this.pushStack(e)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();if(!a&&c instanceof d)return c.value;if(!b){if(!this.stackSlot)throw new h("Invalid stack pop");this.stackSlot--}return c},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof d?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(this.quotedString(c)+":"+a[c]);return"{"+b.join(",")+"}"},setupHelper:function(a,b,c){var d=[],e=this.setupParams(b,a,d,c),f=this.nameLookup("helpers",b,"helper");return{params:d,paramsInit:e,name:f,callParams:[this.contextName(0)].concat(d).join(", ")}},setupOptions:function(a,b,c){var d,e,f,g={},h=[],i=[],j=[];g.name=this.quotedString(a),g.hash=this.popStack(),this.trackIds&&(g.hashIds=this.popStack()),this.stringParams&&(g.hashTypes=this.popStack(),g.hashContexts=this.popStack()),e=this.popStack(),f=this.popStack(),(f||e)&&(f||(f="this.noop"),e||(e="this.noop"),g.fn=f,g.inverse=e);for(var k=b;k--;)d=this.popStack(),c[k]=d,this.trackIds&&(j[k]=this.popStack()),this.stringParams&&(i[k]=this.popStack(),h[k]=this.popStack());return this.trackIds&&(g.ids="["+j.join(",")+"]"),this.stringParams&&(g.types="["+i.join(",")+"]",g.contexts="["+h.join(",")+"]"),this.options.data&&(g.data="data"),g},setupParams:function(a,b,c,d){var e=this.objectLiteral(this.setupOptions(a,b,c));return d?(this.useRegister("options"),c.push("options"),"options="+e):(c.push(e),"")}};for(var i="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "),j=e.RESERVED_WORDS={},k=0,l=i.length;l>k;k++)j[i[k]]=!0;e.isValidJavaScriptVariableName=function(a){return!e.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},c["default"]=e}),define("handlebars",["./handlebars.runtime","./handlebars/compiler/ast","./handlebars/compiler/base","./handlebars/compiler/compiler","./handlebars/compiler/javascript-compiler","exports"],function(a,b,c,d,e,f){var g=a["default"],h=b["default"],i=c.parser,j=c.parse,k=d.Compiler,l=d.compile,m=d.precompile,n=e["default"],o=g.create,p=function(){var a=o();return a.compile=function(b,c){return l(b,c,a)},a.precompile=function(b,c){return m(b,c,a)},a.AST=h,a.Compiler=k,a.JavaScriptCompiler=n,a.Parser=i,a.parse=j,a};g=p(),g.create=p,g["default"]=g,f["default"]=g}); \ No newline at end of file +define("handlebars/utils",["exports"],function(a){function b(a){return i[a]}function c(a){for(var b=1;bc;c++)if(a[c]===b)return c;return-1}function e(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return k.test(a)?a.replace(j,b):a}function f(a){return a||0===a?n(a)&&0===a.length?!0:!1:!0}function g(a,b){return a.path=b,a}function h(a,b){return(a?a+".":"")+b}a.__esModule=!0,a.extend=c,a.indexOf=d,a.escapeExpression=e,a.isEmpty=f,a.blockParams=g,a.appendContextPath=h;var i={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},j=/[&<>"'`]/g,k=/[&<>"'`]/,l=Object.prototype.toString;a.toString=l;var m=function(a){return"function"==typeof a};m(/x/)&&(a.isFunction=m=function(a){return"function"==typeof a&&"[object Function]"===l.call(a)});var m;a.isFunction=m;var n=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===l.call(a):!1};a.isArray=n}),define("handlebars/exception",["exports","module"],function(a,b){function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;i0?(d.ids&&(d.ids=[d.name]),a.helpers.each(c,d)):e(this);if(d.data&&d.ids){var h=f(d.data);h.contextPath=b.appendContextPath(d.data.contextPath,d.name),d={data:h}}return g(c,d)}),a.registerHelper("each",function(a,c){function d(c,d,f){k&&(k.key=c,k.index=d,k.first=0===d,k.last=!!f,n&&(k.contextPath=n+c)),j+=e(a[c],{data:k,blockParams:b.blockParams([a[c],c],[n+c,null])})}if(!c)throw new h("Must pass iterator to #each");var e=c.fn,g=c.inverse,i=0,j="",k=void 0,n=void 0;if(c.data&&c.ids&&(n=b.appendContextPath(c.data.contextPath,c.ids[0])+"."),m(a)&&(a=a.call(this)),c.data&&(k=f(c.data)),a&&"object"==typeof a)if(l(a))for(var o=a.length;o>i;i++)d(i,i,i===a.length-1);else{var p=void 0;for(var q in a)a.hasOwnProperty(q)&&(p&&d(p,i-1),p=q,i++);p&&d(p,i-1,!0)}return 0===i&&(j=g(this)),j}),a.registerHelper("if",function(a,c){return m(a)&&(a=a.call(this)),!c.hash.includeZero&&!a||b.isEmpty(a)?c.inverse(this):c.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper("with",function(a,c){m(a)&&(a=a.call(this));var d=c.fn;if(b.isEmpty(a))return c.inverse(this);if(c.data&&c.ids){var e=f(c.data);e.contextPath=b.appendContextPath(c.data.contextPath,c.ids[0]),c={data:e}}return d(a,c)}),a.registerHelper("log",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper("lookup",function(a,b){return a&&a[b]})}function f(a){var c=b.extend({},a);return c._parent=a,c}var g=function(a){return a&&a.__esModule?a["default"]:a};a.__esModule=!0,a.HandlebarsEnvironment=d,a.createFrame=f;var h=g(c),i="3.0.1";a.VERSION=i;var j=6;a.COMPILER_REVISION=j;var k={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};a.REVISION_CHANGES=k;var l=b.isArray,m=b.isFunction,n=b.toString,o="[object Object]";d.prototype={constructor:d,logger:p,log:q,registerHelper:function(a,c){if(n.call(a)===o){if(c)throw new h("Arg not supported with multiple helpers");b.extend(this.helpers,a)}else this.helpers[a]=c},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,c){if(n.call(a)===o)b.extend(this.partials,a);else{if("undefined"==typeof c)throw new h("Attempting to register a partial as undefined");this.partials[a]=c}},unregisterPartial:function(a){delete this.partials[a]}};var p={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:1,log:function(a,b){if("undefined"!=typeof console&&p.level<=a){var c=p.methodMap[a];(console[c]||console.log).call(console,b)}}};a.logger=p;var q=p.log;a.log=q}),define("handlebars/safe-string",["exports","module"],function(a,b){function c(a){this.string=a}c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b.exports=c}),define("handlebars/runtime",["exports","./utils","./exception","./base"],function(a,b,c,d){function e(a){var b=a&&a[0]||1,c=d.COMPILER_REVISION;if(b!==c){if(c>b){var e=d.REVISION_CHANGES[c],f=d.REVISION_CHANGES[b];throw new m("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+e+") or downgrade your runtime to an older version ("+f+").")}throw new m("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function f(a,c){function d(d,e,f){f.hash&&(e=b.extend({},e,f.hash)),d=c.VM.resolvePartial.call(this,d,e,f);var g=c.VM.invokePartial.call(this,d,e,f);if(null==g&&c.compile&&(f.partials[f.name]=c.compile(d,a.compilerOptions,c),g=f.partials[f.name](e,f)),null!=g){if(f.indent){for(var h=g.split("\n"),i=0,j=h.length;j>i&&(h[i]||i+1!==j);i++)h[i]=f.indent+h[i];g=h.join("\n")}return g}throw new m("The partial "+f.name+" could not be compiled when running in runtime-only mode")}function e(b){var c=void 0===arguments[1]?{}:arguments[1],d=c.data;e._setup(c),!c.partial&&a.useData&&(d=k(b,d));var g=void 0,h=a.useBlockParams?[]:void 0;return a.useDepths&&(g=c.depths?[b].concat(c.depths):[b]),a.main.call(f,b,f.helpers,f.partials,d,h,g)}if(!c)throw new m("No environment passed to template");if(!a||!a.main)throw new m("Unknown template object: "+typeof a);c.VM.checkRevision(a.compiler);var f={strict:function(a,b){if(!(b in a))throw new m('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:b.escapeExpression,invokePartial:d,fn:function(b){return a[b]},programs:[],program:function(a,b,c,d,e){var f=this.programs[a],h=this.fn(a);return b||e||d||c?f=g(this,a,h,b,c,d,e):f||(f=this.programs[a]=g(this,a,h)),f},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,c){var d=a||c;return a&&c&&a!==c&&(d=b.extend({},c,a)),d},noop:c.VM.noop,compilerInfo:a.compiler};return e.isTop=!0,e._setup=function(b){b.partial?(f.helpers=b.helpers,f.partials=b.partials):(f.helpers=f.merge(b.helpers,c.helpers),a.usePartial&&(f.partials=f.merge(b.partials,c.partials)))},e._child=function(b,c,d,e){if(a.useBlockParams&&!d)throw new m("must pass block params");if(a.useDepths&&!e)throw new m("must pass parent depths");return g(f,b,a[b],c,0,d,e)},e}function g(a,b,c,d,e,f,g){function h(b){var e=void 0===arguments[1]?{}:arguments[1];return c.call(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),g&&[b].concat(g))}return h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function h(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a=c.partials[c.name],a}function i(a,b,c){if(c.partial=!0,void 0===a)throw new m("The partial "+c.name+" could not be found");return a instanceof Function?a(b,c):void 0}function j(){return""}function k(a,b){return b&&"root"in b||(b=b?d.createFrame(b):{},b.root=a),b}var l=function(a){return a&&a.__esModule?a["default"]:a};a.__esModule=!0,a.checkRevision=e,a.template=f,a.wrapProgram=g,a.resolvePartial=h,a.invokePartial=i,a.noop=j;var m=l(c)}),define("handlebars/no-conflict",["exports","module"],function(a,b){b.exports=function(a){var b="undefined"!=typeof global?global:window,c=b.Handlebars;a.noConflict=function(){b.Handlebars===a&&(b.Handlebars=c)}}}),define("handlebars.runtime",["exports","module","./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","./handlebars/no-conflict"],function(a,b,c,d,e,f,g,h){function i(){var a=new c.HandlebarsEnvironment;return f.extend(a,c),a.SafeString=k,a.Exception=l,a.Utils=f,a.escapeExpression=f.escapeExpression,a.VM=g,a.template=function(b){return g.template(b,a)},a}var j=function(a){return a&&a.__esModule?a["default"]:a},k=j(d),l=j(e),m=j(h),n=i();n.create=i,m(n),n["default"]=n,b.exports=n}),define("handlebars/compiler/ast",["exports","module"],function(a,b){var c={Program:function(a,b,c,d){this.loc=d,this.type="Program",this.body=a,this.blockParams=b,this.strip=c},MustacheStatement:function(a,b,c,d,e,f){this.loc=f,this.type="MustacheStatement",this.path=a,this.params=b||[],this.hash=c,this.escaped=d,this.strip=e},BlockStatement:function(a,b,c,d,e,f,g,h,i){this.loc=i,this.type="BlockStatement",this.path=a,this.params=b||[],this.hash=c,this.program=d,this.inverse=e,this.openStrip=f,this.inverseStrip=g,this.closeStrip=h},PartialStatement:function(a,b,c,d,e){this.loc=e,this.type="PartialStatement",this.name=a,this.params=b||[],this.hash=c,this.indent="",this.strip=d},ContentStatement:function(a,b){this.loc=b,this.type="ContentStatement",this.original=this.value=a},CommentStatement:function(a,b,c){this.loc=c,this.type="CommentStatement",this.value=a,this.strip=b},SubExpression:function(a,b,c,d){this.loc=d,this.type="SubExpression",this.path=a,this.params=b||[],this.hash=c},PathExpression:function(a,b,c,d,e){this.loc=e,this.type="PathExpression",this.data=a,this.original=d,this.parts=c,this.depth=b},StringLiteral:function(a,b){this.loc=b,this.type="StringLiteral",this.original=this.value=a},NumberLiteral:function(a,b){this.loc=b,this.type="NumberLiteral",this.original=this.value=Number(a)},BooleanLiteral:function(a,b){this.loc=b,this.type="BooleanLiteral",this.original=this.value="true"===a},UndefinedLiteral:function(a){this.loc=a,this.type="UndefinedLiteral",this.original=this.value=void 0},NullLiteral:function(a){this.loc=a,this.type="NullLiteral",this.original=this.value=null},Hash:function(a,b){this.loc=b,this.type="Hash",this.pairs=a},HashPair:function(a,b,c){this.loc=c,this.type="HashPair",this.key=a,this.value=b},helpers:{helperExpression:function(a){return!("SubExpression"!==a.type&&!a.params.length&&!a.hash)},scopedId:function(a){return/^\.|this\b/.test(a.original)},simpleId:function(a){return 1===a.parts.length&&!c.helpers.scopedId(a)&&!a.depth}}};b.exports=c}),define("handlebars/compiler/parser",["exports","module"],function(a,b){var c=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,content:12,COMMENT:13,CONTENT:14,openRawBlock:15,END_RAW_BLOCK:16,OPEN_RAW_BLOCK:17,helperName:18,openRawBlock_repetition0:19,openRawBlock_option0:20,CLOSE_RAW_BLOCK:21,openBlock:22,block_option0:23,closeBlock:24,openInverse:25,block_option1:26,OPEN_BLOCK:27,openBlock_repetition0:28,openBlock_option0:29,openBlock_option1:30,CLOSE:31,OPEN_INVERSE:32,openInverse_repetition0:33,openInverse_option0:34,openInverse_option1:35,openInverseChain:36,OPEN_INVERSE_CHAIN:37,openInverseChain_repetition0:38,openInverseChain_option0:39,openInverseChain_option1:40,inverseAndProgram:41,INVERSE:42,inverseChain:43,inverseChain_option0:44,OPEN_ENDBLOCK:45,OPEN:46,mustache_repetition0:47,mustache_option0:48,OPEN_UNESCAPED:49,mustache_repetition1:50,mustache_option1:51,CLOSE_UNESCAPED:52,OPEN_PARTIAL:53,partialName:54,partial_repetition0:55,partial_option0:56,param:57,sexpr:58,OPEN_SEXPR:59,sexpr_repetition0:60,sexpr_option0:61,CLOSE_SEXPR:62,hash:63,hash_repetition_plus0:64,hashSegment:65,ID:66,EQUALS:67,blockParams:68,OPEN_BLOCK_PARAMS:69,blockParams_repetition_plus0:70,CLOSE_BLOCK_PARAMS:71,path:72,dataName:73,STRING:74,NUMBER:75,BOOLEAN:76,UNDEFINED:77,NULL:78,DATA:79,pathSegments:80,SEP:81,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",13:"COMMENT",14:"CONTENT",16:"END_RAW_BLOCK",17:"OPEN_RAW_BLOCK",21:"CLOSE_RAW_BLOCK",27:"OPEN_BLOCK",31:"CLOSE",32:"OPEN_INVERSE",37:"OPEN_INVERSE_CHAIN",42:"INVERSE",45:"OPEN_ENDBLOCK",46:"OPEN",49:"OPEN_UNESCAPED",52:"CLOSE_UNESCAPED",53:"OPEN_PARTIAL",59:"OPEN_SEXPR",62:"CLOSE_SEXPR",66:"ID",67:"EQUALS",69:"OPEN_BLOCK_PARAMS",71:"CLOSE_BLOCK_PARAMS",74:"STRING",75:"NUMBER",76:"BOOLEAN",77:"UNDEFINED",78:"NULL",79:"DATA",81:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[12,1],[10,3],[15,5],[9,4],[9,4],[22,6],[25,6],[36,6],[41,2],[43,3],[43,1],[24,3],[8,5],[8,5],[11,5],[57,1],[57,1],[58,5],[63,1],[65,3],[68,3],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[54,1],[54,1],[73,2],[72,1],[80,3],[80,1],[6,0],[6,2],[19,0],[19,2],[20,0],[20,1],[23,0],[23,1],[26,0],[26,1],[28,0],[28,2],[29,0],[29,1],[30,0],[30,1],[33,0],[33,2],[34,0],[34,1],[35,0],[35,1],[38,0],[38,2],[39,0],[39,1],[40,0],[40,1],[44,0],[44,1],[47,0],[47,2],[48,0],[48,1],[50,0],[50,2],[51,0],[51,1],[55,0],[55,2],[56,0],[56,1],[60,0],[60,2],[61,0],[61,1],[64,1],[64,2],[70,1],[70,2]],performAction:function(a,b,c,d,e,f){var g=f.length-1;switch(e){case 1:return f[g-1];case 2:this.$=new d.Program(f[g],null,{},d.locInfo(this._$));break;case 3:this.$=f[g];break;case 4:this.$=f[g];break;case 5:this.$=f[g];break;case 6:this.$=f[g];break;case 7:this.$=f[g];break;case 8:this.$=new d.CommentStatement(d.stripComment(f[g]),d.stripFlags(f[g],f[g]),d.locInfo(this._$));break;case 9:this.$=new d.ContentStatement(f[g],d.locInfo(this._$));break;case 10:this.$=d.prepareRawBlock(f[g-2],f[g-1],f[g],this._$);break;case 11:this.$={path:f[g-3],params:f[g-2],hash:f[g-1]};break;case 12:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!1,this._$);break;case 13:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!0,this._$);break;case 14:this.$={path:f[g-4],params:f[g-3],hash:f[g-2],blockParams:f[g-1],strip:d.stripFlags(f[g-5],f[g])};break;case 15:this.$={path:f[g-4],params:f[g-3],hash:f[g-2],blockParams:f[g-1],strip:d.stripFlags(f[g-5],f[g])};break;case 16:this.$={path:f[g-4],params:f[g-3],hash:f[g-2],blockParams:f[g-1],strip:d.stripFlags(f[g-5],f[g])};break;case 17:this.$={strip:d.stripFlags(f[g-1],f[g-1]),program:f[g]};break;case 18:var h=d.prepareBlock(f[g-2],f[g-1],f[g],f[g],!1,this._$),i=new d.Program([h],null,{},d.locInfo(this._$));i.chained=!0,this.$={strip:f[g-2].strip,program:i,chain:!0};break;case 19:this.$=f[g];break;case 20:this.$={path:f[g-1],strip:d.stripFlags(f[g-2],f[g])};break;case 21:this.$=d.prepareMustache(f[g-3],f[g-2],f[g-1],f[g-4],d.stripFlags(f[g-4],f[g]),this._$);break;case 22:this.$=d.prepareMustache(f[g-3],f[g-2],f[g-1],f[g-4],d.stripFlags(f[g-4],f[g]),this._$);break;case 23:this.$=new d.PartialStatement(f[g-3],f[g-2],f[g-1],d.stripFlags(f[g-4],f[g]),d.locInfo(this._$));break;case 24:this.$=f[g];break;case 25:this.$=f[g];break;case 26:this.$=new d.SubExpression(f[g-3],f[g-2],f[g-1],d.locInfo(this._$));break;case 27:this.$=new d.Hash(f[g],d.locInfo(this._$));break;case 28:this.$=new d.HashPair(d.id(f[g-2]),f[g],d.locInfo(this._$));break;case 29:this.$=d.id(f[g-1]);break;case 30:this.$=f[g];break;case 31:this.$=f[g];break;case 32:this.$=new d.StringLiteral(f[g],d.locInfo(this._$));break;case 33:this.$=new d.NumberLiteral(f[g],d.locInfo(this._$));break;case 34:this.$=new d.BooleanLiteral(f[g],d.locInfo(this._$));break;case 35:this.$=new d.UndefinedLiteral(d.locInfo(this._$));break;case 36:this.$=new d.NullLiteral(d.locInfo(this._$));break;case 37:this.$=f[g];break;case 38:this.$=f[g];break;case 39:this.$=d.preparePath(!0,f[g],this._$);break;case 40:this.$=d.preparePath(!1,f[g],this._$);break;case 41:f[g-2].push({part:d.id(f[g]),original:f[g],separator:f[g-1]}),this.$=f[g-2];break;case 42:this.$=[{part:d.id(f[g]),original:f[g]}];break;case 43:this.$=[];break;case 44:f[g-1].push(f[g]);break;case 45:this.$=[];break;case 46:f[g-1].push(f[g]);break;case 53:this.$=[];break;case 54:f[g-1].push(f[g]);break;case 59:this.$=[];break;case 60:f[g-1].push(f[g]);break;case 65:this.$=[];break;case 66:f[g-1].push(f[g]);break;case 73:this.$=[];break;case 74:f[g-1].push(f[g]);break;case 77:this.$=[];break;case 78:f[g-1].push(f[g]);break;case 81:this.$=[];break;case 82:f[g-1].push(f[g]);break;case 85:this.$=[];break;case 86:f[g-1].push(f[g]);break;case 89:this.$=[f[g]];break;case 90:f[g-1].push(f[g]);break;case 91:this.$=[f[g]];break;case 92:f[g-1].push(f[g])}},table:[{3:1,4:2,5:[2,43],6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],46:[2,43],49:[2,43],53:[2,43]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:[1,11],14:[1,18],15:16,17:[1,21],22:14,25:15,27:[1,19],32:[1,20],37:[2,2],42:[2,2],45:[2,2],46:[1,12],49:[1,13],53:[1,17]},{1:[2,1]},{5:[2,44],13:[2,44],14:[2,44],17:[2,44],27:[2,44],32:[2,44],37:[2,44],42:[2,44],45:[2,44],46:[2,44],49:[2,44],53:[2,44]},{5:[2,3],13:[2,3],14:[2,3],17:[2,3],27:[2,3],32:[2,3],37:[2,3],42:[2,3],45:[2,3],46:[2,3],49:[2,3],53:[2,3]},{5:[2,4],13:[2,4],14:[2,4],17:[2,4],27:[2,4],32:[2,4],37:[2,4],42:[2,4],45:[2,4],46:[2,4],49:[2,4],53:[2,4]},{5:[2,5],13:[2,5],14:[2,5],17:[2,5],27:[2,5],32:[2,5],37:[2,5],42:[2,5],45:[2,5],46:[2,5],49:[2,5],53:[2,5]},{5:[2,6],13:[2,6],14:[2,6],17:[2,6],27:[2,6],32:[2,6],37:[2,6],42:[2,6],45:[2,6],46:[2,6],49:[2,6],53:[2,6]},{5:[2,7],13:[2,7],14:[2,7],17:[2,7],27:[2,7],32:[2,7],37:[2,7],42:[2,7],45:[2,7],46:[2,7],49:[2,7],53:[2,7]},{5:[2,8],13:[2,8],14:[2,8],17:[2,8],27:[2,8],32:[2,8],37:[2,8],42:[2,8],45:[2,8],46:[2,8],49:[2,8],53:[2,8]},{18:22,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:33,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:34,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{4:35,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{12:36,14:[1,18]},{18:38,54:37,58:39,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,9],13:[2,9],14:[2,9],16:[2,9],17:[2,9],27:[2,9],32:[2,9],37:[2,9],42:[2,9],45:[2,9],46:[2,9],49:[2,9],53:[2,9]},{18:41,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:42,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:43,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[2,73],47:44,59:[2,73],66:[2,73],74:[2,73],75:[2,73],76:[2,73],77:[2,73],78:[2,73],79:[2,73]},{21:[2,30],31:[2,30],52:[2,30],59:[2,30],62:[2,30],66:[2,30],69:[2,30],74:[2,30],75:[2,30],76:[2,30],77:[2,30],78:[2,30],79:[2,30]},{21:[2,31],31:[2,31],52:[2,31],59:[2,31],62:[2,31],66:[2,31],69:[2,31],74:[2,31],75:[2,31],76:[2,31],77:[2,31],78:[2,31],79:[2,31]},{21:[2,32],31:[2,32],52:[2,32],59:[2,32],62:[2,32],66:[2,32],69:[2,32],74:[2,32],75:[2,32],76:[2,32],77:[2,32],78:[2,32],79:[2,32]},{21:[2,33],31:[2,33],52:[2,33],59:[2,33],62:[2,33],66:[2,33],69:[2,33],74:[2,33],75:[2,33],76:[2,33],77:[2,33],78:[2,33],79:[2,33]},{21:[2,34],31:[2,34],52:[2,34],59:[2,34],62:[2,34],66:[2,34],69:[2,34],74:[2,34],75:[2,34],76:[2,34],77:[2,34],78:[2,34],79:[2,34]},{21:[2,35],31:[2,35],52:[2,35],59:[2,35],62:[2,35],66:[2,35],69:[2,35],74:[2,35],75:[2,35],76:[2,35],77:[2,35],78:[2,35],79:[2,35]},{21:[2,36],31:[2,36],52:[2,36],59:[2,36],62:[2,36],66:[2,36],69:[2,36],74:[2,36],75:[2,36],76:[2,36],77:[2,36],78:[2,36],79:[2,36]},{21:[2,40],31:[2,40],52:[2,40],59:[2,40],62:[2,40],66:[2,40],69:[2,40],74:[2,40],75:[2,40],76:[2,40],77:[2,40],78:[2,40],79:[2,40],81:[1,45]},{66:[1,32],80:46},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{50:47,52:[2,77],59:[2,77],66:[2,77],74:[2,77],75:[2,77],76:[2,77],77:[2,77],78:[2,77],79:[2,77]},{23:48,36:50,37:[1,52],41:51,42:[1,53],43:49,45:[2,49]},{26:54,41:55,42:[1,53],45:[2,51]},{16:[1,56]},{31:[2,81],55:57,59:[2,81],66:[2,81],74:[2,81],75:[2,81],76:[2,81],77:[2,81],78:[2,81],79:[2,81]},{31:[2,37],59:[2,37],66:[2,37],74:[2,37],75:[2,37],76:[2,37],77:[2,37],78:[2,37],79:[2,37]},{31:[2,38],59:[2,38],66:[2,38],74:[2,38],75:[2,38],76:[2,38],77:[2,38],78:[2,38],79:[2,38]},{18:58,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{28:59,31:[2,53],59:[2,53],66:[2,53],69:[2,53],74:[2,53],75:[2,53],76:[2,53],77:[2,53],78:[2,53],79:[2,53]},{31:[2,59],33:60,59:[2,59],66:[2,59],69:[2,59],74:[2,59],75:[2,59],76:[2,59],77:[2,59],78:[2,59],79:[2,59]},{19:61,21:[2,45],59:[2,45],66:[2,45],74:[2,45],75:[2,45],76:[2,45],77:[2,45],78:[2,45],79:[2,45]},{18:65,31:[2,75],48:62,57:63,58:66,59:[1,40],63:64,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{66:[1,70]},{21:[2,39],31:[2,39],52:[2,39],59:[2,39],62:[2,39],66:[2,39],69:[2,39],74:[2,39],75:[2,39],76:[2,39],77:[2,39],78:[2,39],79:[2,39],81:[1,45]},{18:65,51:71,52:[2,79],57:72,58:66,59:[1,40],63:73,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{24:74,45:[1,75]},{45:[2,50]},{4:76,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{45:[2,19]},{18:77,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:78,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{24:79,45:[1,75]},{45:[2,52]},{5:[2,10],13:[2,10],14:[2,10],17:[2,10],27:[2,10],32:[2,10],37:[2,10],42:[2,10],45:[2,10],46:[2,10],49:[2,10],53:[2,10]},{18:65,31:[2,83],56:80,57:81,58:66,59:[1,40],63:82,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{59:[2,85],60:83,62:[2,85],66:[2,85],74:[2,85],75:[2,85],76:[2,85],77:[2,85],78:[2,85],79:[2,85]},{18:65,29:84,31:[2,55],57:85,58:66,59:[1,40],63:86,64:67,65:68,66:[1,69],69:[2,55],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,31:[2,61],34:87,57:88,58:66,59:[1,40],63:89,64:67,65:68,66:[1,69],69:[2,61],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,20:90,21:[2,47],57:91,58:66,59:[1,40],63:92,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[1,93]},{31:[2,74],59:[2,74],66:[2,74],74:[2,74],75:[2,74],76:[2,74],77:[2,74],78:[2,74],79:[2,74]},{31:[2,76]},{21:[2,24],31:[2,24],52:[2,24],59:[2,24],62:[2,24],66:[2,24],69:[2,24],74:[2,24],75:[2,24],76:[2,24],77:[2,24],78:[2,24],79:[2,24]},{21:[2,25],31:[2,25],52:[2,25],59:[2,25],62:[2,25],66:[2,25],69:[2,25],74:[2,25],75:[2,25],76:[2,25],77:[2,25],78:[2,25],79:[2,25]},{21:[2,27],31:[2,27],52:[2,27],62:[2,27],65:94,66:[1,95],69:[2,27]},{21:[2,89],31:[2,89],52:[2,89],62:[2,89],66:[2,89],69:[2,89]},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],67:[1,96],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{21:[2,41],31:[2,41],52:[2,41],59:[2,41],62:[2,41],66:[2,41],69:[2,41],74:[2,41],75:[2,41],76:[2,41],77:[2,41],78:[2,41],79:[2,41],81:[2,41]},{52:[1,97]},{52:[2,78],59:[2,78],66:[2,78],74:[2,78],75:[2,78],76:[2,78],77:[2,78],78:[2,78],79:[2,78]},{52:[2,80]},{5:[2,12],13:[2,12],14:[2,12],17:[2,12],27:[2,12],32:[2,12],37:[2,12],42:[2,12],45:[2,12],46:[2,12],49:[2,12],53:[2,12]},{18:98,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{36:50,37:[1,52],41:51,42:[1,53],43:100,44:99,45:[2,71]},{31:[2,65],38:101,59:[2,65],66:[2,65],69:[2,65],74:[2,65],75:[2,65],76:[2,65],77:[2,65],78:[2,65],79:[2,65]},{45:[2,17]},{5:[2,13],13:[2,13],14:[2,13],17:[2,13],27:[2,13],32:[2,13],37:[2,13],42:[2,13],45:[2,13],46:[2,13],49:[2,13],53:[2,13]},{31:[1,102]},{31:[2,82],59:[2,82],66:[2,82],74:[2,82],75:[2,82],76:[2,82],77:[2,82],78:[2,82],79:[2,82]},{31:[2,84]},{18:65,57:104,58:66,59:[1,40],61:103,62:[2,87],63:105,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{30:106,31:[2,57],68:107,69:[1,108]},{31:[2,54],59:[2,54],66:[2,54],69:[2,54],74:[2,54],75:[2,54],76:[2,54],77:[2,54],78:[2,54],79:[2,54]},{31:[2,56],69:[2,56]},{31:[2,63],35:109,68:110,69:[1,108]},{31:[2,60],59:[2,60],66:[2,60],69:[2,60],74:[2,60],75:[2,60],76:[2,60],77:[2,60],78:[2,60],79:[2,60]},{31:[2,62],69:[2,62]},{21:[1,111]},{21:[2,46],59:[2,46],66:[2,46],74:[2,46],75:[2,46],76:[2,46],77:[2,46],78:[2,46],79:[2,46]},{21:[2,48]},{5:[2,21],13:[2,21],14:[2,21],17:[2,21],27:[2,21],32:[2,21],37:[2,21],42:[2,21],45:[2,21],46:[2,21],49:[2,21],53:[2,21]},{21:[2,90],31:[2,90],52:[2,90],62:[2,90],66:[2,90],69:[2,90]},{67:[1,96]},{18:65,57:112,58:66,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,22],13:[2,22],14:[2,22],17:[2,22],27:[2,22],32:[2,22],37:[2,22],42:[2,22],45:[2,22],46:[2,22],49:[2,22],53:[2,22]},{31:[1,113]},{45:[2,18]},{45:[2,72]},{18:65,31:[2,67],39:114,57:115,58:66,59:[1,40],63:116,64:67,65:68,66:[1,69],69:[2,67],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,23],13:[2,23],14:[2,23],17:[2,23],27:[2,23],32:[2,23],37:[2,23],42:[2,23],45:[2,23],46:[2,23],49:[2,23],53:[2,23]},{62:[1,117]},{59:[2,86],62:[2,86],66:[2,86],74:[2,86],75:[2,86],76:[2,86],77:[2,86],78:[2,86],79:[2,86]},{62:[2,88]},{31:[1,118]},{31:[2,58]},{66:[1,120],70:119},{31:[1,121]},{31:[2,64]},{14:[2,11]},{21:[2,28],31:[2,28],52:[2,28],62:[2,28],66:[2,28],69:[2,28]},{5:[2,20],13:[2,20],14:[2,20],17:[2,20],27:[2,20],32:[2,20],37:[2,20],42:[2,20],45:[2,20],46:[2,20],49:[2,20],53:[2,20]},{31:[2,69],40:122,68:123,69:[1,108]},{31:[2,66],59:[2,66],66:[2,66],69:[2,66],74:[2,66],75:[2,66],76:[2,66],77:[2,66],78:[2,66],79:[2,66]},{31:[2,68],69:[2,68]},{21:[2,26],31:[2,26],52:[2,26],59:[2,26],62:[2,26],66:[2,26],69:[2,26],74:[2,26],75:[2,26],76:[2,26],77:[2,26],78:[2,26],79:[2,26]},{13:[2,14],14:[2,14],17:[2,14],27:[2,14],32:[2,14],37:[2,14],42:[2,14],45:[2,14],46:[2,14],49:[2,14],53:[2,14]},{66:[1,125],71:[1,124]},{66:[2,91],71:[2,91]},{13:[2,15],14:[2,15],17:[2,15],27:[2,15],32:[2,15],42:[2,15],45:[2,15],46:[2,15],49:[2,15],53:[2,15]},{31:[1,126]},{31:[2,70]},{31:[2,29]},{66:[2,92],71:[2,92]},{13:[2,16],14:[2,16],17:[2,16],27:[2,16],32:[2,16],37:[2,16],42:[2,16],45:[2,16],46:[2,16],49:[2,16],53:[2,16]}],defaultActions:{4:[2,1],49:[2,50],51:[2,19],55:[2,52],64:[2,76],73:[2,80],78:[2,17],82:[2,84],92:[2,48],99:[2,18],100:[2,72],105:[2,88],107:[2,58],110:[2,64],111:[2,11],123:[2,70],124:[2,29]},parseError:function(a){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||"undefined"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno}) +},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 14;break;case 1:return 14;case 2:return this.popState(),14;case 3:return b.yytext=b.yytext.substr(5,b.yyleng-9),this.popState(),16;case 4:return 14;case 5:return this.popState(),13;case 6:return 59;case 7:return 62;case 8:return 17;case 9:return this.popState(),this.begin("raw"),21;case 10:return 53;case 11:return 27;case 12:return 45;case 13:return this.popState(),42;case 14:return this.popState(),42;case 15:return 32;case 16:return 37;case 17:return 49;case 18:return 46;case 19:this.unput(b.yytext),this.popState(),this.begin("com");break;case 20:return this.popState(),13;case 21:return 46;case 22:return 67;case 23:return 66;case 24:return 66;case 25:return 81;case 26:break;case 27:return this.popState(),52;case 28:return this.popState(),31;case 29:return b.yytext=e(1,2).replace(/\\"/g,'"'),74;case 30:return b.yytext=e(1,2).replace(/\\'/g,"'"),74;case 31:return 79;case 32:return 76;case 33:return 76;case 34:return 77;case 35:return 78;case 36:return 75;case 37:return 69;case 38:return 71;case 39:return 66;case 40:return 66;case 41:return"INVALID";case 42:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[5],inclusive:!1},raw:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,1,42],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b.exports=c}),define("handlebars/compiler/visitor",["exports","module","../exception","./ast"],function(a,b,c,d){function e(){this.parents=[]}var f=function(a){return a&&a.__esModule?a["default"]:a},g=f(c),h=f(d);e.prototype={constructor:e,mutating:!1,acceptKey:function(a,b){var c=this.accept(a[b]);if(this.mutating){if(c&&(!c.type||!h[c.type]))throw new g('Unexpected node type "'+c.type+'" found when accepting '+b+" on "+a.type);a[b]=c}},acceptRequired:function(a,b){if(this.acceptKey(a,b),!a[b])throw new g(a.type+" requires "+b)},acceptArray:function(a){for(var b=0,c=a.length;c>b;b++)this.acceptKey(a,b),a[b]||(a.splice(b,1),b--,c--)},accept:function(a){if(a){this.current&&this.parents.unshift(this.current),this.current=a;var b=this[a.type](a);return this.current=this.parents.shift(),!this.mutating||b?b:b!==!1?a:void 0}},Program:function(a){this.acceptArray(a.body)},MustacheStatement:function(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")},BlockStatement:function(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash"),this.acceptKey(a,"program"),this.acceptKey(a,"inverse")},PartialStatement:function(a){this.acceptRequired(a,"name"),this.acceptArray(a.params),this.acceptKey(a,"hash")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:function(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")},PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(a){this.acceptArray(a.pairs)},HashPair:function(a){this.acceptRequired(a,"value")}},b.exports=e}),define("handlebars/compiler/whitespace-control",["exports","module","./visitor"],function(a,b,c){function d(){}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"ContentStatement"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"ContentStatement"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&"ContentStatement"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.value!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"ContentStatement"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.value!==e,d.leftStripped}}var i=function(a){return a&&a.__esModule?a["default"]:a},j=i(c);d.prototype=new j,d.prototype.Program=function(a){var b=!this.isRootSeen;this.isRootSeen=!0;for(var c=a.body,d=0,i=c.length;i>d;d++){var j=c[d],k=this.accept(j);if(k){var l=e(c,d,b),m=f(c,d,b),n=k.openStandalone&&l,o=k.closeStandalone&&m,p=k.inlineStandalone&&l&&m;k.close&&g(c,d,!0),k.open&&h(c,d,!0),p&&(g(c,d),h(c,d)&&"PartialStatement"===j.type&&(j.indent=/([ \t]+$)/.exec(c[d-1].original)[1])),n&&(g((j.program||j.inverse).body),h(c,d)),o&&(g(c,d),h((j.inverse||j.program).body))}}return a},d.prototype.BlockStatement=function(a){this.accept(a.program),this.accept(a.inverse);var b=a.program||a.inverse,c=a.program&&a.inverse,d=c,i=c;if(c&&c.chained)for(d=c.body[0].program;i.chained;)i=i.body[i.body.length-1].program;var j={open:a.openStrip.open,close:a.closeStrip.close,openStandalone:f(b.body),closeStandalone:e((d||b).body)};if(a.openStrip.close&&g(b.body,null,!0),c){var k=a.inverseStrip;k.open&&h(b.body,null,!0),k.close&&g(d.body,null,!0),a.closeStrip.open&&h(i.body,null,!0),e(b.body)&&f(d.body)&&(h(b.body),g(d.body))}else a.closeStrip.open&&h(b.body,null,!0);return j},d.prototype.MustacheStatement=function(a){return a.strip},d.prototype.PartialStatement=d.prototype.CommentStatement=function(a){var b=a.strip||{};return{inlineStandalone:!0,open:b.open,close:b.close}},b.exports=d}),define("handlebars/compiler/helpers",["exports","../exception"],function(a,b){function c(a,b){this.source=a,this.start={line:b.first_line,column:b.first_column},this.end={line:b.last_line,column:b.last_column}}function d(a){return/^\[.*\]$/.test(a)?a.substr(1,a.length-2):a}function e(a,b){return{open:"~"===a.charAt(2),close:"~"===b.charAt(b.length-3)}}function f(a){return a.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function g(a,b,c){c=this.locInfo(c);for(var d=a?"@":"",e=[],f=0,g="",h=0,i=b.length;i>h;h++){var j=b[h].part,k=b[h].original!==j;if(d+=(b[h].separator||"")+j,k||".."!==j&&"."!==j&&"this"!==j)e.push(j);else{if(e.length>0)throw new l("Invalid path: "+d,{loc:c});".."===j&&(f++,g+="../")}}return new this.PathExpression(a,f,e,d,c)}function h(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h="{"!==g&&"&"!==g;return new this.MustacheStatement(a,b,c,h,e,this.locInfo(f))}function i(a,b,c,d){if(a.path.original!==c){var e={loc:a.path.loc};throw new l(a.path.original+" doesn't match "+c,e)}d=this.locInfo(d);var f=new this.Program([b],null,{},d);return new this.BlockStatement(a.path,a.params,a.hash,f,void 0,{},{},{},d)}function j(a,b,c,d,e,f){if(d&&d.path&&a.path.original!==d.path.original){var g={loc:a.path.loc};throw new l(a.path.original+" doesn't match "+d.path.original,g)}b.blockParams=a.blockParams;var h=void 0,i=void 0;return c&&(c.chain&&(c.program.body[0].closeStrip=d.strip),i=c.strip,h=c.program),e&&(e=h,h=b,b=e),new this.BlockStatement(a.path,a.params,a.hash,b,h,a.strip,i,d&&d.strip,this.locInfo(f))}var k=function(a){return a&&a.__esModule?a["default"]:a};a.__esModule=!0,a.SourceLocation=c,a.id=d,a.stripFlags=e,a.stripComment=f,a.preparePath=g,a.prepareMustache=h,a.prepareRawBlock=i,a.prepareBlock=j;var l=k(b)}),define("handlebars/compiler/base",["exports","./parser","./ast","./whitespace-control","./helpers","../utils"],function(a,b,c,d,e,f){function g(a,b){if("Program"===a.type)return a;i.yy=l,l.locInfo=function(a){return new l.SourceLocation(b&&b.srcName,a)};var c=new k;return c.accept(i.parse(a))}var h=function(a){return a&&a.__esModule?a["default"]:a};a.__esModule=!0,a.parse=g;var i=h(b),j=h(c),k=h(d);a.parser=i;var l={};f.extend(l,e,j)}),define("handlebars/compiler/compiler",["exports","../exception","../utils","./ast"],function(a,b,c,d){function e(){}function f(a,b,c){if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function g(a,b,c){function d(){var b=c.parse(a,f),d=(new c.Compiler).compile(b,f),e=(new c.JavaScriptCompiler).compile(d,f,void 0,!0);return c.template(e)}function e(a,b){return g||(g=d()),g.call(this,a,b)}var f=void 0===arguments[1]?{}:arguments[1];if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);"data"in f||(f.data=!0),f.compat&&(f.useDepths=!0);var g=void 0;return e._setup=function(a){return g||(g=d()),g._setup(a)},e._child=function(a,b,c,e){return g||(g=d()),g._child(a,b,c,e)},e}function h(a,b){if(a===b)return!0;if(c.isArray(a)&&c.isArray(b)&&a.length===b.length){for(var d=0;dc;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!h(d.args,e.args))return!1}b=this.children.length;for(var c=0;b>c;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds,b.blockParams=b.blockParams||[];var c=b.knownHelpers;if(b.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)d in c&&(b.knownHelpers[d]=c[d]);return this.accept(a)},compileProgram:function(a){var b=new this.compiler,c=b.compile(a,this.options),d=this.guid++;return this.usePartial=this.usePartial||c.usePartial,this.children[d]=c,this.useDepths=this.useDepths||c.useDepths,d},accept:function(a){this.sourceNode.unshift(a);var b=this[a.type](a);return this.sourceNode.shift(),b},Program:function(a){this.options.blockParams.unshift(a.blockParams);for(var b=a.body,c=b.length,d=0;c>d;d++)this.accept(b[d]);return this.options.blockParams.shift(),this.isSimple=1===c,this.blockParams=a.blockParams?a.blockParams.length:0,this},BlockStatement:function(a){i(a);var b=a.program,c=a.inverse;b=b&&this.compileProgram(b),c=c&&this.compileProgram(c);var d=this.classifySexpr(a);"helper"===d?this.helperSexpr(a,b,c):"simple"===d?(this.simpleSexpr(a),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("blockValue",a.path.original)):(this.ambiguousSexpr(a,b,c),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},PartialStatement:function(a){this.usePartial=!0;var b=a.params;if(b.length>1)throw new k("Unsupported number of partial arguments: "+b.length,a);b.length||b.push({type:"PathExpression",parts:[],depth:0});var c=a.name.original,d="SubExpression"===a.name.type;d&&this.accept(a.name),this.setupFullMustacheParams(a,void 0,void 0,!0);var e=a.indent||"";this.options.preventIndent&&e&&(this.opcode("appendContent",e),e=""),this.opcode("invokePartial",d,c,e),this.opcode("append")},MustacheStatement:function(a){this.SubExpression(a),this.opcode(a.escaped&&!this.options.noEscape?"appendEscaped":"append")},ContentStatement:function(a){a.value&&this.opcode("appendContent",a.value)},CommentStatement:function(){},SubExpression:function(a){i(a);var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.accept(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){this.accept(a.path),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new k("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.falsy=!0,this.accept(e),this.opcode("invokeHelper",d.length,e.original,l.helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0],c=l.helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode("lookupBlockParam",d,a.parts):b?a.data?(this.options.data=!0,this.opcode("lookupData",a.depth,a.parts)):this.opcode("lookupOnContext",a.parts,a.falsy,c):this.opcode("pushContext")},StringLiteral:function(a){this.opcode("pushString",a.value)},NumberLiteral:function(a){this.opcode("pushLiteral",a.value)},BooleanLiteral:function(a){this.opcode("pushLiteral",a.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode("pushHash");d>c;c++)this.pushParam(b[c].value);for(;c--;)this.opcode("assignToHash",b[c].key);this.opcode("popHash")},opcode:function(a){this.opcodes.push({opcode:a,args:m.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(a){a&&(this.useDepths=!0)},classifySexpr:function(a){var b=l.helpers.simpleId(a.path),c=b&&!!this.blockParamIndex(a.path.parts[0]),d=!c&&l.helpers.helperExpression(a),e=!c&&(d||b);if(e&&!d){var f=a.path.parts[0],g=this.options;g.knownHelpers[f]?d=!0:g.knownHelpersOnly&&(e=!1)}return d?"helper":e?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;c>b;b++)this.pushParam(a[b])},pushParam:function(a){var b=null!=a.value?a.value:a.original||"";if(this.stringParams)b.replace&&(b=b.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",b,a.type),"SubExpression"===a.type&&this.accept(a);else{if(this.trackIds){var c=void 0;if(!a.parts||l.helpers.scopedId(a)||a.depth||(c=this.blockParamIndex(a.parts[0])),c){var d=a.parts.slice(1).join(".");this.opcode("pushId","BlockParam",c,d)}else b=a.original||b,b.replace&&(b=b.replace(/^\.\//g,"").replace(/^\.$/g,"")),this.opcode("pushId",a.type,b)}this.accept(a)}},setupFullMustacheParams:function(a,b,c,d){var e=a.params;return this.pushParams(e),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.accept(a.hash):this.opcode("emptyHash",d),e},blockParamIndex:function(a){for(var b=0,d=this.options.blockParams.length;d>b;b++){var e=this.options.blockParams[b],f=e&&c.indexOf(e,a);if(e&&f>=0)return[b,f]}}}}),define("handlebars/compiler/code-gen",["exports","module","../utils"],function(a,b,c){function d(a,b,d){if(c.isArray(a)){for(var e=[],f=0,g=a.length;g>f;f++)e.push(b.wrap(a[f],d));return e}return"boolean"==typeof a||"number"==typeof a?a+"":a}function e(a){this.srcFile=a,this.source=[]}var f=void 0;try{if("function"!=typeof define||!define.amd){var g=require("source-map");f=g.SourceNode}}catch(h){}f||(f=function(a,b,c,d){this.src="",d&&this.add(d)},f.prototype={add:function(a){c.isArray(a)&&(a=a.join("")),this.src+=a},prepend:function(a){c.isArray(a)&&(a=a.join("")),this.src=a+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),e.prototype={prepend:function(a,b){this.source.unshift(this.wrap(a,b))},push:function(a,b){this.source.push(this.wrap(a,b))},merge:function(){var a=this.empty();return this.each(function(b){a.add([" ",b,"\n"])}),a},each:function(a){for(var b=0,c=this.source.length;c>b;b++)a(this.source[b])},empty:function(){var a=void 0===arguments[0]?this.currentLocation||{start:{}}:arguments[0];return new f(a.start.line,a.start.column,this.srcFile)},wrap:function(a){var b=void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return a instanceof f?a:(a=d(a,this,b),new f(b.start.line,b.start.column,this.srcFile,a))},functionCall:function(a,b,c){return c=this.generateList(c),this.wrap([a,b?"."+b+"(":"(",c,")"])},quotedString:function(a){return'"'+(a+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)if(a.hasOwnProperty(c)){var e=d(a[c],this);"undefined"!==e&&b.push([this.quotedString(c),":",e])}var f=this.generateList(b);return f.prepend("{"),f.add("}"),f},generateList:function(a,b){for(var c=this.empty(b),e=0,f=a.length;f>e;e++)e&&c.add(","),c.add(d(a[e],this,b));return c},generateArray:function(a,b){var c=this.generateList(a,b);return c.prepend("["),c.add("]"),c}},b.exports=e}),define("handlebars/compiler/javascript-compiler",["exports","module","../base","../exception","../utils","./code-gen"],function(a,b,c,d,e,f){function g(a){this.value=a}function h(){}function i(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;g>f;f++)e=b.nameLookup(e,c[f],d);return a?[b.aliasable("this.strict"),"(",e,", ",b.quotedString(c[f]),")"]:e}var j=function(a){return a&&a.__esModule?a["default"]:a},k=j(d),l=j(f);h.prototype={nameLookup:function(a,b){return h.isValidJavaScriptVariableName(b)?[a,".",b]:[a,"['",b,"']"]},depthedLookup:function(a){return[this.aliasable("this.lookup"),'(depths, "',a,'")']},compilerInfo:function(){var a=c.COMPILER_REVISION,b=c.REVISION_CHANGES[a];return[a,b]},appendToBuffer:function(a,b,c){return e.isArray(a)||(a=[a]),a=this.source.wrap(a,b),this.environment.isSimple?["return ",a,";"]:c?["buffer += ",a,";"]:(a.appendToBuffer=!0,a)},initializeBuffer:function(){return this.quotedString("")},compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.useDepths||this.options.compat,this.useBlockParams=this.useBlockParams||a.useBlockParams;var e=a.opcodes,f=void 0,g=void 0,h=void 0,i=void 0;for(h=0,i=e.length;i>h;h++)f=e[h],this.source.currentLocation=f.loc,g=g||f.loc,this[f.opcode].apply(this,f.args);if(this.source.currentLocation=g,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new k("Compile completed with content left on stack");var j=this.createFunctionContext(d);if(this.isChild)return j;var l={compiler:this.compilerInfo(),main:j},m=this.context.programs;for(h=0,i=m.length;i>h;h++)m[h]&&(l[h]=m[h]);return this.environment.usePartial&&(l.usePartial=!0),this.options.data&&(l.useData=!0),this.useDepths&&(l.useDepths=!0),this.useBlockParams&&(l.useBlockParams=!0),this.options.compat&&(l.compat=!0),d?l.compilerOptions=this.options:(l.compiler=JSON.stringify(l.compiler),this.source.currentLocation={start:{line:1,column:0}},l=this.objectLiteral(l),b.srcName?(l=l.toStringWithSourceMap({file:b.destName}),l.map=l.map&&l.map.toString()):l=l.toString()),l},preamble:function(){this.lastContext=0,this.source=new l(this.options.srcName)},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=", alias"+ ++d+"="+e,f.children[0]="alias"+d)}var g=["depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&g.push("blockParams"),this.useDepths&&g.push("depths");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap(["function(",g.join(","),") {\n ",h,"}"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend(" + "):f=a,g=a):(f&&(e?f.prepend("buffer += "):d=!0,g.add(";"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend("return "),g.add(";")):e||this.source.push('return "";'):(a+=", buffer = "+(d?"":this.initializeBuffer()),f?(f.prepend("return buffer + "),g.add(";")):this.source.push("return buffer;")),a&&this.source.prepend("var "+a.substring(2)+(d?"":";\n")),this.source.merge()},blockValue:function(a){var b=this.aliasable("helpers.blockHelperMissing"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,"call",c))},ambiguousBlockValue:function(){var a=this.aliasable("helpers.blockHelperMissing"),b=[this.contextName(0)];this.setupHelperArgs("",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource(["if (!",this.lastHelper,") { ",c," = ",this.source.functionCall(a,"call",b),"}"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[" != null ? ",a,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource(["if (",a," != null) { ",this.appendToBuffer(a,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("this.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c){var d=0;c||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[d++])),this.resolvePath("context",a,d,b)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push(["blockParams[",a[0],"][",a[1],"]"]),this.resolvePath("context",b,1)},lookupData:function(a,b){this.pushStackLiteral(a?"this.data(data, "+a+")":"data"),this.resolvePath("data",b,0,!0)},resolvePath:function(a,b,c,d){var e=this;if(this.options.strict||this.options.assumeObjects)return void this.push(i(this.options.strict,this,b,a));for(var f=b.length;f>c;c++)this.replaceStack(function(f){var g=e.nameLookup(f,b[c],a);return d?[" && ",g]:[" != null ? ",g," : ",f]})},resolvePossibleLambda:function(){this.push([this.aliasable("this.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"SubExpression"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(a){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(a?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(a.ids)),this.stringParams&&(this.push(this.objectLiteral(a.contexts)),this.push(this.objectLiteral(a.types))),this.push(this.objectLiteral(a.values))},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){this.pushStackLiteral(null!=a?this.programExpression(a):null)},invokeHelper:function(a,b,c){var d=this.popStack(),e=this.setupHelper(a,b),f=c?[e.name," || "]:"",g=["("].concat(f,d);this.options.strict||g.push(" || ",this.aliasable("helpers.helperMissing")),g.push(")"),this.push(this.source.functionCall(g,"call",e.callParams))},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(this.source.functionCall(c.name,"call",c.callParams))},invokeAmbiguous:function(a,b){this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper"),f=["(","(helper = ",e," || ",c,")"];this.options.strict||(f[0]="(helper = ",f.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",f,d.paramsInit?["),(",d.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",d.callParams)," : helper))"])},invokePartial:function(a,b,c){var d=[],e=this.setupParams(b,1,d,!1);a&&(b=this.popStack(),delete e.name),c&&(e.indent=JSON.stringify(c)),e.helpers="helpers",e.partials="partials",d.unshift(a?b:this.nameLookup("partials",b,"partial")),this.options.compat&&(e.depths="depths"),e=this.objectLiteral(e),d.push(e),this.push(this.source.functionCall("this.invokePartial","",d))},assignToHash:function(a){var b=this.popStack(),c=void 0,d=void 0,e=void 0;this.trackIds&&(e=this.popStack()),this.stringParams&&(d=this.popStack(),c=this.popStack());var f=this.hash;c&&(f.contexts[a]=c),d&&(f.types[a]=d),e&&(f.ids[a]=e),f.values[a]=b},pushId:function(a,b,c){"BlockParam"===a?this.pushStackLiteral("blockParams["+b[0]+"].path["+b[1]+"]"+(c?" + "+JSON.stringify("."+c):"")):"PathExpression"===a?this.pushString(b):this.pushStackLiteral("SubExpression"===a?"true":"null")},compiler:h,compileChildren:function(a,b){for(var c=a.children,d=void 0,e=void 0,f=0,g=c.length;g>f;f++){d=c[f],e=new this.compiler;var h=this.matchExistingProgram(d);null==h?(this.context.programs.push(""),h=this.context.programs.length,d.index=h,d.name="program"+h,this.context.programs[h]=e.compile(d,b,this.context,!this.precompile),this.context.environments[h]=d,this.useDepths=this.useDepths||e.useDepths,this.useBlockParams=this.useBlockParams||e.useBlockParams):(d.index=h,d.name="program"+h,this.useDepths=this.useDepths||d.useDepths,this.useBlockParams=this.useBlockParams||d.useBlockParams)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){var b=this.environment.children[a],c=[b.index,"data",b.blockParams];return(this.useBlockParams||this.useDepths)&&c.push("blockParams"),this.useDepths&&c.push("depths"),"this.program("+c.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},push:function(a){return a instanceof g||(a=this.source.wrap(a)),this.inlineStack.push(a),a},pushStackLiteral:function(a){this.push(new g(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),a&&this.source.push(a)},replaceStack:function(a){var b=["("],c=void 0,d=void 0,e=void 0;if(!this.isInline())throw new k("replaceStack on non-inline");var f=this.popStack(!0);if(f instanceof g)c=[f.value],b=["(",c],e=!0;else{d=!0;var h=this.incrStack();b=["((",this.push(h)," = ",f,")"],c=this.topStack()}var i=a.call(this,c);e||this.popStack(),d&&this.stackSlot--,this.push(b.concat(i,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;c>b;b++){var d=a[b];if(d instanceof g)this.compileStack.push(d);else{var e=this.incrStack();this.pushSource([e," = ",d,";"]),this.compileStack.push(e)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();if(!a&&c instanceof g)return c.value;if(!b){if(!this.stackSlot)throw new k("Invalid stack pop");this.stackSlot--}return c},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof g?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return this.source.quotedString(a)},objectLiteral:function(a){return this.source.objectLiteral(a)},aliasable:function(a){var b=this.aliases[a];return b?(b.referenceCount++,b):(b=this.aliases[a]=this.source.wrap(a),b.aliasable=!0,b.referenceCount=1,b)},setupHelper:function(a,b,c){var d=[],e=this.setupHelperArgs(b,a,d,c),f=this.nameLookup("helpers",b,"helper");return{params:d,paramsInit:e,name:f,callParams:[this.contextName(0)].concat(d)}},setupParams:function(a,b,c){var d={},e=[],f=[],g=[],h=void 0;d.name=this.quotedString(a),d.hash=this.popStack(),this.trackIds&&(d.hashIds=this.popStack()),this.stringParams&&(d.hashTypes=this.popStack(),d.hashContexts=this.popStack());var i=this.popStack(),j=this.popStack();(j||i)&&(d.fn=j||"this.noop",d.inverse=i||"this.noop");for(var k=b;k--;)h=this.popStack(),c[k]=h,this.trackIds&&(g[k]=this.popStack()),this.stringParams&&(f[k]=this.popStack(),e[k]=this.popStack());return this.trackIds&&(d.ids=this.source.generateArray(g)),this.stringParams&&(d.types=this.source.generateArray(f),d.contexts=this.source.generateArray(e)),this.options.data&&(d.data="data"),this.useBlockParams&&(d.blockParams="blockParams"),d},setupHelperArgs:function(a,b,c,d){var e=this.setupParams(a,b,c,!0);return e=this.objectLiteral(e),d?(this.useRegister("options"),c.push("options"),["options=",e]):(c.push(e),"")}},function(){for(var a="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),b=h.RESERVED_WORDS={},c=0,d=a.length;d>c;c++)b[a[c]]=!0}(),h.isValidJavaScriptVariableName=function(a){return!h.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},b.exports=h}),define("handlebars",["exports","module","./handlebars.runtime","./handlebars/compiler/ast","./handlebars/compiler/base","./handlebars/compiler/compiler","./handlebars/compiler/javascript-compiler","./handlebars/compiler/visitor","./handlebars/no-conflict"],function(a,b,c,d,e,f,g,h,i){function j(){var a=q();return a.compile=function(b,c){return f.compile(b,c,a)},a.precompile=function(b,c){return f.precompile(b,c,a)},a.AST=m,a.Compiler=f.Compiler,a.JavaScriptCompiler=n,a.Parser=e.parser,a.parse=e.parse,a}var k=function(a){return a&&a.__esModule?a["default"]:a +},l=k(c),m=k(d),n=k(g),o=k(h),p=k(i),q=l.create,r=j();r.create=j,p(r),r.Visitor=o,r["default"]=r,b.exports=r}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/handlebars.js b/node_modules/handlebars/dist/handlebars.js index f826bbf..e0f7535 100644 --- a/node_modules/handlebars/dist/handlebars.js +++ b/node_modules/handlebars/dist/handlebars.js @@ -1,6 +1,6 @@ /*! - handlebars v2.0.0 + handlebars v3.0.3 Copyright (C) 2011-2014 by Yehuda Katz @@ -24,3056 +24,4075 @@ THE SOFTWARE. @license */ -/* exported Handlebars */ -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - define([], factory); - } else if (typeof exports === 'object') { - module.exports = factory(); - } else { - root.Handlebars = root.Handlebars || factory(); - } -}(this, function () { -// handlebars/safe-string.js -var __module4__ = (function() { - "use strict"; - var __exports__; - // Build out our basic SafeString type - function SafeString(string) { - this.string = string; - } - - SafeString.prototype.toString = function() { - return "" + this.string; - }; - - __exports__ = SafeString; - return __exports__; -})(); - -// handlebars/utils.js -var __module3__ = (function(__dependency1__) { - "use strict"; - var __exports__ = {}; - /*jshint -W004 */ - var SafeString = __dependency1__; - - var escape = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`" - }; - - var badChars = /[&<>"'`]/g; - var possible = /[&<>"'`]/; - - function escapeChar(chr) { - return escape[chr]; - } - - function extend(obj /* , ...source */) { - for (var i = 1; i < arguments.length; i++) { - for (var key in arguments[i]) { - if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { - obj[key] = arguments[i][key]; - } - } - } - - return obj; - } - - __exports__.extend = extend;var toString = Object.prototype.toString; - __exports__.toString = toString; - // Sourced from lodash - // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt - var isFunction = function(value) { - return typeof value === 'function'; - }; - // fallback for older versions of Chrome and Safari - /* istanbul ignore next */ - if (isFunction(/x/)) { - isFunction = function(value) { - return typeof value === 'function' && toString.call(value) === '[object Function]'; - }; - } - var isFunction; - __exports__.isFunction = isFunction; - /* istanbul ignore next */ - var isArray = Array.isArray || function(value) { - return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false; - }; - __exports__.isArray = isArray; - - function escapeExpression(string) { - // don't escape SafeStrings, since they're already safe - if (string instanceof SafeString) { - return string.toString(); - } else if (string == null) { - return ""; - } else if (!string) { - return string + ''; - } - - // Force a string conversion as this will be done by the append regardless and - // the regex test will do this transparently behind the scenes, causing issues if - // an object's to string has escaped characters in it. - string = "" + string; - - if(!possible.test(string)) { return string; } - return string.replace(badChars, escapeChar); - } - - __exports__.escapeExpression = escapeExpression;function isEmpty(value) { - if (!value && value !== 0) { - return true; - } else if (isArray(value) && value.length === 0) { - return true; - } else { - return false; - } - } - - __exports__.isEmpty = isEmpty;function appendContextPath(contextPath, id) { - return (contextPath ? contextPath + '.' : '') + id; - } - - __exports__.appendContextPath = appendContextPath; - return __exports__; -})(__module4__); - -// handlebars/exception.js -var __module5__ = (function() { - "use strict"; - var __exports__; - - var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; - - function Exception(message, node) { - var line; - if (node && node.firstLine) { - line = node.firstLine; - - message += ' - ' + line + ':' + node.firstColumn; - } - - var tmp = Error.prototype.constructor.call(this, message); - - // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. - for (var idx = 0; idx < errorProps.length; idx++) { - this[errorProps[idx]] = tmp[errorProps[idx]]; - } - - if (line) { - this.lineNumber = line; - this.column = node.firstColumn; - } - } - - Exception.prototype = new Error(); - - __exports__ = Exception; - return __exports__; -})(); - -// handlebars/base.js -var __module2__ = (function(__dependency1__, __dependency2__) { - "use strict"; - var __exports__ = {}; - var Utils = __dependency1__; - var Exception = __dependency2__; - - var VERSION = "2.0.0"; - __exports__.VERSION = VERSION;var COMPILER_REVISION = 6; - __exports__.COMPILER_REVISION = COMPILER_REVISION; - var REVISION_CHANGES = { - 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it - 2: '== 1.0.0-rc.3', - 3: '== 1.0.0-rc.4', - 4: '== 1.x.x', - 5: '== 2.0.0-alpha.x', - 6: '>= 2.0.0-beta.1' - }; - __exports__.REVISION_CHANGES = REVISION_CHANGES; - var isArray = Utils.isArray, - isFunction = Utils.isFunction, - toString = Utils.toString, - objectType = '[object Object]'; - - function HandlebarsEnvironment(helpers, partials) { - this.helpers = helpers || {}; - this.partials = partials || {}; - - registerDefaultHelpers(this); - } - - __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = { - constructor: HandlebarsEnvironment, - - logger: logger, - log: log, - - registerHelper: function(name, fn) { - if (toString.call(name) === objectType) { - if (fn) { throw new Exception('Arg not supported with multiple helpers'); } - Utils.extend(this.helpers, name); - } else { - this.helpers[name] = fn; - } - }, - unregisterHelper: function(name) { - delete this.helpers[name]; - }, - - registerPartial: function(name, partial) { - if (toString.call(name) === objectType) { - Utils.extend(this.partials, name); - } else { - this.partials[name] = partial; - } - }, - unregisterPartial: function(name) { - delete this.partials[name]; - } - }; - - function registerDefaultHelpers(instance) { - instance.registerHelper('helperMissing', function(/* [args, ]options */) { - if(arguments.length === 1) { - // A missing field in a {{foo}} constuct. - return undefined; - } else { - // Someone is actually trying to call something, blow up. - throw new Exception("Missing helper: '" + arguments[arguments.length-1].name + "'"); - } - }); - - instance.registerHelper('blockHelperMissing', function(context, options) { - var inverse = options.inverse, - fn = options.fn; - - if(context === true) { - return fn(this); - } else if(context === false || context == null) { - return inverse(this); - } else if (isArray(context)) { - if(context.length > 0) { - if (options.ids) { - options.ids = [options.name]; - } - - return instance.helpers.each(context, options); - } else { - return inverse(this); - } - } else { - if (options.data && options.ids) { - var data = createFrame(options.data); - data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name); - options = {data: data}; - } - - return fn(context, options); - } - }); - - instance.registerHelper('each', function(context, options) { - if (!options) { - throw new Exception('Must pass iterator to #each'); - } - - var fn = options.fn, inverse = options.inverse; - var i = 0, ret = "", data; - - var contextPath; - if (options.data && options.ids) { - contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; - } - - if (isFunction(context)) { context = context.call(this); } - - if (options.data) { - data = createFrame(options.data); - } - - if(context && typeof context === 'object') { - if (isArray(context)) { - for(var j = context.length; i 0) { - throw new Exception("Invalid path: " + original, this); - } else if (part === "..") { - depth++; - depthString += '../'; - } else { - this.isScoped = true; - } - } else { - dig.push(part); - } - } - - this.original = original; - this.parts = dig; - this.string = dig.join('.'); - this.depth = depth; - this.idName = depthString + this.string; - - // an ID is simple if it only has one part, and that part is not - // `..` or `this`. - this.isSimple = parts.length === 1 && !this.isScoped && depth === 0; - - this.stringModeValue = this.string; - }, - - PartialNameNode: function(name, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "PARTIAL_NAME"; - this.name = name.original; - }, - - DataNode: function(id, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "DATA"; - this.id = id; - this.stringModeValue = id.stringModeValue; - this.idName = '@' + id.stringModeValue; - }, - - StringNode: function(string, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "STRING"; - this.original = - this.string = - this.stringModeValue = string; - }, - - NumberNode: function(number, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "NUMBER"; - this.original = - this.number = number; - this.stringModeValue = Number(number); - }, - - BooleanNode: function(bool, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "BOOLEAN"; - this.bool = bool; - this.stringModeValue = bool === "true"; - }, - - CommentNode: function(comment, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "comment"; - this.comment = comment; - - this.strip = { - inlineStandalone: true - }; - } - }; - - - // Must be exported as an object rather than the root of the module as the jison lexer - // most modify the object to operate properly. - __exports__ = AST; - return __exports__; -})(__module5__); - -// handlebars/compiler/parser.js -var __module9__ = (function() { - "use strict"; - var __exports__; - /* jshint ignore:start */ - /* istanbul ignore next */ - /* Jison generated parser */ - var handlebars = (function(){ - var parser = {trace: function trace() { }, - yy: {}, - symbols_: {"error":2,"root":3,"program":4,"EOF":5,"program_repetition0":6,"statement":7,"mustache":8,"block":9,"rawBlock":10,"partial":11,"CONTENT":12,"COMMENT":13,"openRawBlock":14,"END_RAW_BLOCK":15,"OPEN_RAW_BLOCK":16,"sexpr":17,"CLOSE_RAW_BLOCK":18,"openBlock":19,"block_option0":20,"closeBlock":21,"openInverse":22,"block_option1":23,"OPEN_BLOCK":24,"CLOSE":25,"OPEN_INVERSE":26,"inverseAndProgram":27,"INVERSE":28,"OPEN_ENDBLOCK":29,"path":30,"OPEN":31,"OPEN_UNESCAPED":32,"CLOSE_UNESCAPED":33,"OPEN_PARTIAL":34,"partialName":35,"param":36,"partial_option0":37,"partial_option1":38,"sexpr_repetition0":39,"sexpr_option0":40,"dataName":41,"STRING":42,"NUMBER":43,"BOOLEAN":44,"OPEN_SEXPR":45,"CLOSE_SEXPR":46,"hash":47,"hash_repetition_plus0":48,"hashSegment":49,"ID":50,"EQUALS":51,"DATA":52,"pathSegments":53,"SEP":54,"$accept":0,"$end":1}, - terminals_: {2:"error",5:"EOF",12:"CONTENT",13:"COMMENT",15:"END_RAW_BLOCK",16:"OPEN_RAW_BLOCK",18:"CLOSE_RAW_BLOCK",24:"OPEN_BLOCK",25:"CLOSE",26:"OPEN_INVERSE",28:"INVERSE",29:"OPEN_ENDBLOCK",31:"OPEN",32:"OPEN_UNESCAPED",33:"CLOSE_UNESCAPED",34:"OPEN_PARTIAL",42:"STRING",43:"NUMBER",44:"BOOLEAN",45:"OPEN_SEXPR",46:"CLOSE_SEXPR",50:"ID",51:"EQUALS",52:"DATA",54:"SEP"}, - productions_: [0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[10,3],[14,3],[9,4],[9,4],[19,3],[22,3],[27,2],[21,3],[8,3],[8,3],[11,5],[11,4],[17,3],[17,1],[36,1],[36,1],[36,1],[36,1],[36,1],[36,3],[47,1],[49,3],[35,1],[35,1],[35,1],[41,2],[30,1],[53,3],[53,1],[6,0],[6,2],[20,0],[20,1],[23,0],[23,1],[37,0],[37,1],[38,0],[38,1],[39,0],[39,2],[40,0],[40,1],[48,1],[48,2]], - performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { - - var $0 = $$.length - 1; - switch (yystate) { - case 1: yy.prepareProgram($$[$0-1].statements, true); return $$[$0-1]; - break; - case 2:this.$ = new yy.ProgramNode(yy.prepareProgram($$[$0]), {}, this._$); - break; - case 3:this.$ = $$[$0]; - break; - case 4:this.$ = $$[$0]; - break; - case 5:this.$ = $$[$0]; - break; - case 6:this.$ = $$[$0]; - break; - case 7:this.$ = new yy.ContentNode($$[$0], this._$); - break; - case 8:this.$ = new yy.CommentNode($$[$0], this._$); - break; - case 9:this.$ = new yy.RawBlockNode($$[$0-2], $$[$0-1], $$[$0], this._$); - break; - case 10:this.$ = new yy.MustacheNode($$[$0-1], null, '', '', this._$); - break; - case 11:this.$ = yy.prepareBlock($$[$0-3], $$[$0-2], $$[$0-1], $$[$0], false, this._$); - break; - case 12:this.$ = yy.prepareBlock($$[$0-3], $$[$0-2], $$[$0-1], $$[$0], true, this._$); - break; - case 13:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$); - break; - case 14:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$); - break; - case 15:this.$ = { strip: yy.stripFlags($$[$0-1], $$[$0-1]), program: $$[$0] }; - break; - case 16:this.$ = {path: $$[$0-1], strip: yy.stripFlags($$[$0-2], $$[$0])}; - break; - case 17:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$); - break; - case 18:this.$ = new yy.MustacheNode($$[$0-1], null, $$[$0-2], yy.stripFlags($$[$0-2], $$[$0]), this._$); - break; - case 19:this.$ = new yy.PartialNode($$[$0-3], $$[$0-2], $$[$0-1], yy.stripFlags($$[$0-4], $$[$0]), this._$); - break; - case 20:this.$ = new yy.PartialNode($$[$0-2], undefined, $$[$0-1], yy.stripFlags($$[$0-3], $$[$0]), this._$); - break; - case 21:this.$ = new yy.SexprNode([$$[$0-2]].concat($$[$0-1]), $$[$0], this._$); - break; - case 22:this.$ = new yy.SexprNode([$$[$0]], null, this._$); - break; - case 23:this.$ = $$[$0]; - break; - case 24:this.$ = new yy.StringNode($$[$0], this._$); - break; - case 25:this.$ = new yy.NumberNode($$[$0], this._$); - break; - case 26:this.$ = new yy.BooleanNode($$[$0], this._$); - break; - case 27:this.$ = $$[$0]; - break; - case 28:$$[$0-1].isHelper = true; this.$ = $$[$0-1]; - break; - case 29:this.$ = new yy.HashNode($$[$0], this._$); - break; - case 30:this.$ = [$$[$0-2], $$[$0]]; - break; - case 31:this.$ = new yy.PartialNameNode($$[$0], this._$); - break; - case 32:this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0], this._$), this._$); - break; - case 33:this.$ = new yy.PartialNameNode(new yy.NumberNode($$[$0], this._$)); - break; - case 34:this.$ = new yy.DataNode($$[$0], this._$); - break; - case 35:this.$ = new yy.IdNode($$[$0], this._$); - break; - case 36: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2]; - break; - case 37:this.$ = [{part: $$[$0]}]; - break; - case 38:this.$ = []; - break; - case 39:$$[$0-1].push($$[$0]); - break; - case 48:this.$ = []; - break; - case 49:$$[$0-1].push($$[$0]); - break; - case 52:this.$ = [$$[$0]]; - break; - case 53:$$[$0-1].push($$[$0]); - break; - } - }, - table: [{3:1,4:2,5:[2,38],6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],31:[2,38],32:[2,38],34:[2,38]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:[1,10],13:[1,11],14:16,16:[1,20],19:14,22:15,24:[1,18],26:[1,19],28:[2,2],29:[2,2],31:[1,12],32:[1,13],34:[1,17]},{1:[2,1]},{5:[2,39],12:[2,39],13:[2,39],16:[2,39],24:[2,39],26:[2,39],28:[2,39],29:[2,39],31:[2,39],32:[2,39],34:[2,39]},{5:[2,3],12:[2,3],13:[2,3],16:[2,3],24:[2,3],26:[2,3],28:[2,3],29:[2,3],31:[2,3],32:[2,3],34:[2,3]},{5:[2,4],12:[2,4],13:[2,4],16:[2,4],24:[2,4],26:[2,4],28:[2,4],29:[2,4],31:[2,4],32:[2,4],34:[2,4]},{5:[2,5],12:[2,5],13:[2,5],16:[2,5],24:[2,5],26:[2,5],28:[2,5],29:[2,5],31:[2,5],32:[2,5],34:[2,5]},{5:[2,6],12:[2,6],13:[2,6],16:[2,6],24:[2,6],26:[2,6],28:[2,6],29:[2,6],31:[2,6],32:[2,6],34:[2,6]},{5:[2,7],12:[2,7],13:[2,7],16:[2,7],24:[2,7],26:[2,7],28:[2,7],29:[2,7],31:[2,7],32:[2,7],34:[2,7]},{5:[2,8],12:[2,8],13:[2,8],16:[2,8],24:[2,8],26:[2,8],28:[2,8],29:[2,8],31:[2,8],32:[2,8],34:[2,8]},{17:21,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:27,30:22,41:23,50:[1,26],52:[1,25],53:24},{4:28,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{4:29,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{12:[1,30]},{30:32,35:31,42:[1,33],43:[1,34],50:[1,26],53:24},{17:35,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:36,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:37,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[1,38]},{18:[2,48],25:[2,48],33:[2,48],39:39,42:[2,48],43:[2,48],44:[2,48],45:[2,48],46:[2,48],50:[2,48],52:[2,48]},{18:[2,22],25:[2,22],33:[2,22],46:[2,22]},{18:[2,35],25:[2,35],33:[2,35],42:[2,35],43:[2,35],44:[2,35],45:[2,35],46:[2,35],50:[2,35],52:[2,35],54:[1,40]},{30:41,50:[1,26],53:24},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],52:[2,37],54:[2,37]},{33:[1,42]},{20:43,27:44,28:[1,45],29:[2,40]},{23:46,27:47,28:[1,45],29:[2,42]},{15:[1,48]},{25:[2,46],30:51,36:49,38:50,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],47:57,48:58,49:60,50:[1,59],52:[1,25],53:24},{25:[2,31],42:[2,31],43:[2,31],44:[2,31],45:[2,31],50:[2,31],52:[2,31]},{25:[2,32],42:[2,32],43:[2,32],44:[2,32],45:[2,32],50:[2,32],52:[2,32]},{25:[2,33],42:[2,33],43:[2,33],44:[2,33],45:[2,33],50:[2,33],52:[2,33]},{25:[1,61]},{25:[1,62]},{18:[1,63]},{5:[2,17],12:[2,17],13:[2,17],16:[2,17],24:[2,17],26:[2,17],28:[2,17],29:[2,17],31:[2,17],32:[2,17],34:[2,17]},{18:[2,50],25:[2,50],30:51,33:[2,50],36:65,40:64,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],46:[2,50],47:66,48:58,49:60,50:[1,59],52:[1,25],53:24},{50:[1,67]},{18:[2,34],25:[2,34],33:[2,34],42:[2,34],43:[2,34],44:[2,34],45:[2,34],46:[2,34],50:[2,34],52:[2,34]},{5:[2,18],12:[2,18],13:[2,18],16:[2,18],24:[2,18],26:[2,18],28:[2,18],29:[2,18],31:[2,18],32:[2,18],34:[2,18]},{21:68,29:[1,69]},{29:[2,41]},{4:70,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{21:71,29:[1,69]},{29:[2,43]},{5:[2,9],12:[2,9],13:[2,9],16:[2,9],24:[2,9],26:[2,9],28:[2,9],29:[2,9],31:[2,9],32:[2,9],34:[2,9]},{25:[2,44],37:72,47:73,48:58,49:60,50:[1,74]},{25:[1,75]},{18:[2,23],25:[2,23],33:[2,23],42:[2,23],43:[2,23],44:[2,23],45:[2,23],46:[2,23],50:[2,23],52:[2,23]},{18:[2,24],25:[2,24],33:[2,24],42:[2,24],43:[2,24],44:[2,24],45:[2,24],46:[2,24],50:[2,24],52:[2,24]},{18:[2,25],25:[2,25],33:[2,25],42:[2,25],43:[2,25],44:[2,25],45:[2,25],46:[2,25],50:[2,25],52:[2,25]},{18:[2,26],25:[2,26],33:[2,26],42:[2,26],43:[2,26],44:[2,26],45:[2,26],46:[2,26],50:[2,26],52:[2,26]},{18:[2,27],25:[2,27],33:[2,27],42:[2,27],43:[2,27],44:[2,27],45:[2,27],46:[2,27],50:[2,27],52:[2,27]},{17:76,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[2,47]},{18:[2,29],25:[2,29],33:[2,29],46:[2,29],49:77,50:[1,74]},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],51:[1,78],52:[2,37],54:[2,37]},{18:[2,52],25:[2,52],33:[2,52],46:[2,52],50:[2,52]},{12:[2,13],13:[2,13],16:[2,13],24:[2,13],26:[2,13],28:[2,13],29:[2,13],31:[2,13],32:[2,13],34:[2,13]},{12:[2,14],13:[2,14],16:[2,14],24:[2,14],26:[2,14],28:[2,14],29:[2,14],31:[2,14],32:[2,14],34:[2,14]},{12:[2,10]},{18:[2,21],25:[2,21],33:[2,21],46:[2,21]},{18:[2,49],25:[2,49],33:[2,49],42:[2,49],43:[2,49],44:[2,49],45:[2,49],46:[2,49],50:[2,49],52:[2,49]},{18:[2,51],25:[2,51],33:[2,51],46:[2,51]},{18:[2,36],25:[2,36],33:[2,36],42:[2,36],43:[2,36],44:[2,36],45:[2,36],46:[2,36],50:[2,36],52:[2,36],54:[2,36]},{5:[2,11],12:[2,11],13:[2,11],16:[2,11],24:[2,11],26:[2,11],28:[2,11],29:[2,11],31:[2,11],32:[2,11],34:[2,11]},{30:79,50:[1,26],53:24},{29:[2,15]},{5:[2,12],12:[2,12],13:[2,12],16:[2,12],24:[2,12],26:[2,12],28:[2,12],29:[2,12],31:[2,12],32:[2,12],34:[2,12]},{25:[1,80]},{25:[2,45]},{51:[1,78]},{5:[2,20],12:[2,20],13:[2,20],16:[2,20],24:[2,20],26:[2,20],28:[2,20],29:[2,20],31:[2,20],32:[2,20],34:[2,20]},{46:[1,81]},{18:[2,53],25:[2,53],33:[2,53],46:[2,53],50:[2,53]},{30:51,36:82,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],50:[1,26],52:[1,25],53:24},{25:[1,83]},{5:[2,19],12:[2,19],13:[2,19],16:[2,19],24:[2,19],26:[2,19],28:[2,19],29:[2,19],31:[2,19],32:[2,19],34:[2,19]},{18:[2,28],25:[2,28],33:[2,28],42:[2,28],43:[2,28],44:[2,28],45:[2,28],46:[2,28],50:[2,28],52:[2,28]},{18:[2,30],25:[2,30],33:[2,30],46:[2,30],50:[2,30]},{5:[2,16],12:[2,16],13:[2,16],16:[2,16],24:[2,16],26:[2,16],28:[2,16],29:[2,16],31:[2,16],32:[2,16],34:[2,16]}], - defaultActions: {4:[2,1],44:[2,41],47:[2,43],57:[2,47],63:[2,10],70:[2,15],73:[2,45]}, - parseError: function parseError(str, hash) { - throw new Error(str); - }, - parse: function parse(input) { - var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; - this.lexer.setInput(input); - this.lexer.yy = this.yy; - this.yy.lexer = this.lexer; - this.yy.parser = this; - if (typeof this.lexer.yylloc == "undefined") - this.lexer.yylloc = {}; - var yyloc = this.lexer.yylloc; - lstack.push(yyloc); - var ranges = this.lexer.options && this.lexer.options.ranges; - if (typeof this.yy.parseError === "function") - this.parseError = this.yy.parseError; - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = self.lexer.lex() || 1; - if (typeof token !== "number") { - token = self.symbols_[token] || token; - } - return token; - } - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - if (!recovering) { - expected = []; - for (p in table[state]) - if (this.terminals_[p] && p > 2) { - expected.push("'" + this.terminals_[p] + "'"); - } - if (this.lexer.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); - } - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) - recovering--; - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column}; - if (ranges) { - yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; - } - r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - /* Jison generated lexer */ - var lexer = (function(){ - var lexer = ({EOF:1, - parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - setInput:function (input) { - this._input = input; - this._more = this._less = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0}; - if (this.options.ranges) this.yylloc.range = [0,0]; - this.offset = 0; - return this; - }, - input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) this.yylloc.range[1]++; - - this._input = this._input.slice(1); - return ch; - }, - unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length-len-1); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length-1); - this.matched = this.matched.substr(0, this.matched.length-1); - - if (lines.length-1) this.yylineno -= lines.length-1; - var r = this.yylloc.range; - - this.yylloc = {first_line: this.yylloc.first_line, - last_line: this.yylineno+1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length: - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - return this; - }, - more:function () { - this._more = true; - return this; - }, - less:function (n) { - this.unput(this.match.slice(n)); - }, - pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, ""); - }, - showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c+"^"; - }, - next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) this.done = true; - - var token, - match, - tempMatch, - index, - col, - lines; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i=0;i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (!this.options.flex) break; - } - } - if (match) { - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) this.yylineno += lines.length; - this.yylloc = {first_line: this.yylloc.last_line, - last_line: this.yylineno+1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length}; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]); - if (this.done && this._input) this.done = false; - if (token) return token; - else return; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), - {text: "", token: null, line: this.yylineno}); - } - }, - lex:function lex() { - var r = this.next(); - if (typeof r !== 'undefined') { - return r; - } else { - return this.lex(); - } - }, - begin:function begin(condition) { - this.conditionStack.push(condition); - }, - popState:function popState() { - return this.conditionStack.pop(); - }, - _currentRules:function _currentRules() { - return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules; - }, - topState:function () { - return this.conditionStack[this.conditionStack.length-2]; - }, - pushState:function begin(condition) { - this.begin(condition); - }}); - lexer.options = {}; - lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { - - - function strip(start, end) { - return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng-end); - } - - - var YYSTATE=YY_START - switch($avoiding_name_collisions) { - case 0: - if(yy_.yytext.slice(-2) === "\\\\") { - strip(0,1); - this.begin("mu"); - } else if(yy_.yytext.slice(-1) === "\\") { - strip(0,1); - this.begin("emu"); - } else { - this.begin("mu"); - } - if(yy_.yytext) return 12; - - break; - case 1:return 12; - break; - case 2: - this.popState(); - return 12; - - break; - case 3: - yy_.yytext = yy_.yytext.substr(5, yy_.yyleng-9); - this.popState(); - return 15; - - break; - case 4: return 12; - break; - case 5:strip(0,4); this.popState(); return 13; - break; - case 6:return 45; - break; - case 7:return 46; - break; - case 8: return 16; - break; - case 9: - this.popState(); - this.begin('raw'); - return 18; - - break; - case 10:return 34; - break; - case 11:return 24; - break; - case 12:return 29; - break; - case 13:this.popState(); return 28; - break; - case 14:this.popState(); return 28; - break; - case 15:return 26; - break; - case 16:return 26; - break; - case 17:return 32; - break; - case 18:return 31; - break; - case 19:this.popState(); this.begin('com'); - break; - case 20:strip(3,5); this.popState(); return 13; - break; - case 21:return 31; - break; - case 22:return 51; - break; - case 23:return 50; - break; - case 24:return 50; - break; - case 25:return 54; - break; - case 26:// ignore whitespace - break; - case 27:this.popState(); return 33; - break; - case 28:this.popState(); return 25; - break; - case 29:yy_.yytext = strip(1,2).replace(/\\"/g,'"'); return 42; - break; - case 30:yy_.yytext = strip(1,2).replace(/\\'/g,"'"); return 42; - break; - case 31:return 52; - break; - case 32:return 44; - break; - case 33:return 44; - break; - case 34:return 43; - break; - case 35:return 50; - break; - case 36:yy_.yytext = strip(1,2); return 50; - break; - case 37:return 'INVALID'; - break; - case 38:return 5; - break; - } - }; - lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/]; - lexer.conditions = {"mu":{"rules":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[5],"inclusive":false},"raw":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,1,38],"inclusive":true}}; - return lexer;})() - parser.lexer = lexer; - function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser; - return new Parser; - })();__exports__ = handlebars; - /* jshint ignore:end */ - return __exports__; -})(); - -// handlebars/compiler/helpers.js -var __module10__ = (function(__dependency1__) { - "use strict"; - var __exports__ = {}; - var Exception = __dependency1__; - - function stripFlags(open, close) { - return { - left: open.charAt(2) === '~', - right: close.charAt(close.length-3) === '~' - }; - } - - __exports__.stripFlags = stripFlags; - function prepareBlock(mustache, program, inverseAndProgram, close, inverted, locInfo) { - /*jshint -W040 */ - if (mustache.sexpr.id.original !== close.path.original) { - throw new Exception(mustache.sexpr.id.original + ' doesn\'t match ' + close.path.original, mustache); - } - - var inverse = inverseAndProgram && inverseAndProgram.program; - - var strip = { - left: mustache.strip.left, - right: close.strip.right, - - // Determine the standalone candiacy. Basically flag our content as being possibly standalone - // so our parent can determine if we actually are standalone - openStandalone: isNextWhitespace(program.statements), - closeStandalone: isPrevWhitespace((inverse || program).statements) - }; - - if (mustache.strip.right) { - omitRight(program.statements, null, true); - } - - if (inverse) { - var inverseStrip = inverseAndProgram.strip; - - if (inverseStrip.left) { - omitLeft(program.statements, null, true); - } - if (inverseStrip.right) { - omitRight(inverse.statements, null, true); - } - if (close.strip.left) { - omitLeft(inverse.statements, null, true); - } - - // Find standalone else statments - if (isPrevWhitespace(program.statements) - && isNextWhitespace(inverse.statements)) { - - omitLeft(program.statements); - omitRight(inverse.statements); - } - } else { - if (close.strip.left) { - omitLeft(program.statements, null, true); - } - } - - if (inverted) { - return new this.BlockNode(mustache, inverse, program, strip, locInfo); - } else { - return new this.BlockNode(mustache, program, inverse, strip, locInfo); - } - } - - __exports__.prepareBlock = prepareBlock; - function prepareProgram(statements, isRoot) { - for (var i = 0, l = statements.length; i < l; i++) { - var current = statements[i], - strip = current.strip; - - if (!strip) { - continue; - } - - var _isPrevWhitespace = isPrevWhitespace(statements, i, isRoot, current.type === 'partial'), - _isNextWhitespace = isNextWhitespace(statements, i, isRoot), - - openStandalone = strip.openStandalone && _isPrevWhitespace, - closeStandalone = strip.closeStandalone && _isNextWhitespace, - inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace; - - if (strip.right) { - omitRight(statements, i, true); - } - if (strip.left) { - omitLeft(statements, i, true); - } - - if (inlineStandalone) { - omitRight(statements, i); - - if (omitLeft(statements, i)) { - // If we are on a standalone node, save the indent info for partials - if (current.type === 'partial') { - current.indent = (/([ \t]+$)/).exec(statements[i-1].original) ? RegExp.$1 : ''; - } - } - } - if (openStandalone) { - omitRight((current.program || current.inverse).statements); - - // Strip out the previous content node if it's whitespace only - omitLeft(statements, i); - } - if (closeStandalone) { - // Always strip the next node - omitRight(statements, i); - - omitLeft((current.inverse || current.program).statements); - } - } - - return statements; - } - - __exports__.prepareProgram = prepareProgram;function isPrevWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = statements.length; - } - - // Nodes that end with newlines are considered whitespace (but are special - // cased for strip operations) - var prev = statements[i-1], - sibling = statements[i-2]; - if (!prev) { - return isRoot; - } - - if (prev.type === 'content') { - return (sibling || !isRoot ? (/\r?\n\s*?$/) : (/(^|\r?\n)\s*?$/)).test(prev.original); - } - } - function isNextWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = -1; - } - - var next = statements[i+1], - sibling = statements[i+2]; - if (!next) { - return isRoot; - } - - if (next.type === 'content') { - return (sibling || !isRoot ? (/^\s*?\r?\n/) : (/^\s*?(\r?\n|$)/)).test(next.original); - } - } - - // Marks the node to the right of the position as omitted. - // I.e. {{foo}}' ' will mark the ' ' node as omitted. - // - // If i is undefined, then the first child will be marked as such. - // - // If mulitple is truthy then all whitespace will be stripped out until non-whitespace - // content is met. - function omitRight(statements, i, multiple) { - var current = statements[i == null ? 0 : i + 1]; - if (!current || current.type !== 'content' || (!multiple && current.rightStripped)) { - return; - } - - var original = current.string; - current.string = current.string.replace(multiple ? (/^\s+/) : (/^[ \t]*\r?\n?/), ''); - current.rightStripped = current.string !== original; - } - - // Marks the node to the left of the position as omitted. - // I.e. ' '{{foo}} will mark the ' ' node as omitted. - // - // If i is undefined then the last child will be marked as such. - // - // If mulitple is truthy then all whitespace will be stripped out until non-whitespace - // content is met. - function omitLeft(statements, i, multiple) { - var current = statements[i == null ? statements.length - 1 : i - 1]; - if (!current || current.type !== 'content' || (!multiple && current.leftStripped)) { - return; - } - - // We omit the last node if it's whitespace only and not preceeded by a non-content node. - var original = current.string; - current.string = current.string.replace(multiple ? (/\s+$/) : (/[ \t]+$/), ''); - current.leftStripped = current.string !== original; - return current.leftStripped; - } - return __exports__; -})(__module5__); - -// handlebars/compiler/base.js -var __module8__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__) { - "use strict"; - var __exports__ = {}; - var parser = __dependency1__; - var AST = __dependency2__; - var Helpers = __dependency3__; - var extend = __dependency4__.extend; - - __exports__.parser = parser; - - var yy = {}; - extend(yy, Helpers, AST); - - function parse(input) { - // Just return if an already-compile AST was passed in. - if (input.constructor === AST.ProgramNode) { return input; } - - parser.yy = yy; - - return parser.parse(input); - } - - __exports__.parse = parse; - return __exports__; -})(__module9__, __module7__, __module10__, __module3__); - -// handlebars/compiler/compiler.js -var __module11__ = (function(__dependency1__, __dependency2__) { - "use strict"; - var __exports__ = {}; - var Exception = __dependency1__; - var isArray = __dependency2__.isArray; - - var slice = [].slice; - - function Compiler() {} - - __exports__.Compiler = Compiler;// the foundHelper register will disambiguate helper lookup from finding a - // function in a context. This is necessary for mustache compatibility, which - // requires that context functions in blocks are evaluated by blockHelperMissing, - // and then proceed as if the resulting value was provided to blockHelperMissing. - - Compiler.prototype = { - compiler: Compiler, - - equals: function(other) { - var len = this.opcodes.length; - if (other.opcodes.length !== len) { - return false; - } - - for (var i = 0; i < len; i++) { - var opcode = this.opcodes[i], - otherOpcode = other.opcodes[i]; - if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) { - return false; - } - } - - // We know that length is the same between the two arrays because they are directly tied - // to the opcode behavior above. - len = this.children.length; - for (i = 0; i < len; i++) { - if (!this.children[i].equals(other.children[i])) { - return false; - } - } - - return true; - }, - - guid: 0, - - compile: function(program, options) { - this.opcodes = []; - this.children = []; - this.depths = {list: []}; - this.options = options; - this.stringParams = options.stringParams; - this.trackIds = options.trackIds; - - // These changes will propagate to the other compiler components - var knownHelpers = this.options.knownHelpers; - this.options.knownHelpers = { - 'helperMissing': true, - 'blockHelperMissing': true, - 'each': true, - 'if': true, - 'unless': true, - 'with': true, - 'log': true, - 'lookup': true - }; - if (knownHelpers) { - for (var name in knownHelpers) { - this.options.knownHelpers[name] = knownHelpers[name]; - } - } - - return this.accept(program); - }, - - accept: function(node) { - return this[node.type](node); - }, - - program: function(program) { - var statements = program.statements; - - for(var i=0, l=statements.length; i 0) { - varDeclarations += ", " + locals.join(", "); - } - - // Generate minimizer alias mappings - for (var alias in this.aliases) { - if (this.aliases.hasOwnProperty(alias)) { - varDeclarations += ', ' + alias + '=' + this.aliases[alias]; - } - } - - var params = ["depth0", "helpers", "partials", "data"]; - - if (this.useDepths) { - params.push('depths'); - } - - // Perform a second pass over the output to merge content when possible - var source = this.mergeSource(varDeclarations); - - if (asObject) { - params.push(source); - - return Function.apply(this, params); - } else { - return 'function(' + params.join(',') + ') {\n ' + source + '}'; - } - }, - mergeSource: function(varDeclarations) { - var source = '', - buffer, - appendOnly = !this.forceBuffer, - appendFirst; - - for (var i = 0, len = this.source.length; i < len; i++) { - var line = this.source[i]; - if (line.appendToBuffer) { - if (buffer) { - buffer = buffer + '\n + ' + line.content; - } else { - buffer = line.content; - } - } else { - if (buffer) { - if (!source) { - appendFirst = true; - source = buffer + ';\n '; - } else { - source += 'buffer += ' + buffer + ';\n '; - } - buffer = undefined; - } - source += line + '\n '; - - if (!this.environment.isSimple) { - appendOnly = false; - } - } - } - - if (appendOnly) { - if (buffer || !source) { - source += 'return ' + (buffer || '""') + ';\n'; - } - } else { - varDeclarations += ", buffer = " + (appendFirst ? '' : this.initializeBuffer()); - if (buffer) { - source += 'return buffer + ' + buffer + ';\n'; - } else { - source += 'return buffer;\n'; - } - } - - if (varDeclarations) { - source = 'var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n ') + source; - } - - return source; - }, - - // [blockValue] - // - // On stack, before: hash, inverse, program, value - // On stack, after: return value of blockHelperMissing - // - // The purpose of this opcode is to take a block of the form - // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and - // replace it on the stack with the result of properly - // invoking blockHelperMissing. - blockValue: function(name) { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; - - var params = [this.contextName(0)]; - this.setupParams(name, 0, params); - - var blockName = this.popStack(); - params.splice(1, 0, blockName); - - this.push('blockHelperMissing.call(' + params.join(', ') + ')'); - }, - - // [ambiguousBlockValue] - // - // On stack, before: hash, inverse, program, value - // Compiler value, before: lastHelper=value of last found helper, if any - // On stack, after, if no lastHelper: same as [blockValue] - // On stack, after, if lastHelper: value - ambiguousBlockValue: function() { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; - - // We're being a bit cheeky and reusing the options value from the prior exec - var params = [this.contextName(0)]; - this.setupParams('', 0, params, true); - - this.flushInline(); - - var current = this.topStack(); - params.splice(1, 0, current); - - this.pushSource("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }"); - }, - - // [appendContent] - // - // On stack, before: ... - // On stack, after: ... - // - // Appends the string value of `content` to the current buffer - appendContent: function(content) { - if (this.pendingContent) { - content = this.pendingContent + content; - } - - this.pendingContent = content; - }, - - // [append] - // - // On stack, before: value, ... - // On stack, after: ... - // - // Coerces `value` to a String and appends it to the current buffer. - // - // If `value` is truthy, or 0, it is coerced into a string and appended - // Otherwise, the empty string is appended - append: function() { - // Force anything that is inlined onto the stack so we don't have duplication - // when we examine local - this.flushInline(); - var local = this.popStack(); - this.pushSource('if (' + local + ' != null) { ' + this.appendToBuffer(local) + ' }'); - if (this.environment.isSimple) { - this.pushSource("else { " + this.appendToBuffer("''") + " }"); - } - }, - - // [appendEscaped] - // - // On stack, before: value, ... - // On stack, after: ... - // - // Escape `value` and append it to the buffer - appendEscaped: function() { - this.aliases.escapeExpression = 'this.escapeExpression'; - - this.pushSource(this.appendToBuffer("escapeExpression(" + this.popStack() + ")")); - }, - - // [getContext] - // - // On stack, before: ... - // On stack, after: ... - // Compiler value, after: lastContext=depth - // - // Set the value of the `lastContext` compiler value to the depth - getContext: function(depth) { - this.lastContext = depth; - }, - - // [pushContext] - // - // On stack, before: ... - // On stack, after: currentContext, ... - // - // Pushes the value of the current context onto the stack. - pushContext: function() { - this.pushStackLiteral(this.contextName(this.lastContext)); - }, - - // [lookupOnContext] - // - // On stack, before: ... - // On stack, after: currentContext[name], ... - // - // Looks up the value of `name` on the current context and pushes - // it onto the stack. - lookupOnContext: function(parts, falsy, scoped) { - /*jshint -W083 */ - var i = 0, - len = parts.length; - - if (!scoped && this.options.compat && !this.lastContext) { - // The depthed query is expected to handle the undefined logic for the root level that - // is implemented below, so we evaluate that directly in compat mode - this.push(this.depthedLookup(parts[i++])); - } else { - this.pushContext(); - } - - for (; i < len; i++) { - this.replaceStack(function(current) { - var lookup = this.nameLookup(current, parts[i], 'context'); - // We want to ensure that zero and false are handled properly if the context (falsy flag) - // needs to have the special handling for these values. - if (!falsy) { - return ' != null ? ' + lookup + ' : ' + current; - } else { - // Otherwise we can use generic falsy handling - return ' && ' + lookup; - } - }); - } - }, - - // [lookupData] - // - // On stack, before: ... - // On stack, after: data, ... - // - // Push the data lookup operator - lookupData: function(depth, parts) { - /*jshint -W083 */ - if (!depth) { - this.pushStackLiteral('data'); - } else { - this.pushStackLiteral('this.data(data, ' + depth + ')'); - } - - var len = parts.length; - for (var i = 0; i < len; i++) { - this.replaceStack(function(current) { - return ' && ' + this.nameLookup(current, parts[i], 'data'); - }); - } - }, - - // [resolvePossibleLambda] - // - // On stack, before: value, ... - // On stack, after: resolved value, ... - // - // If the `value` is a lambda, replace it on the stack by - // the return value of the lambda - resolvePossibleLambda: function() { - this.aliases.lambda = 'this.lambda'; - - this.push('lambda(' + this.popStack() + ', ' + this.contextName(0) + ')'); - }, - - // [pushStringParam] - // - // On stack, before: ... - // On stack, after: string, currentContext, ... - // - // This opcode is designed for use in string mode, which - // provides the string value of a parameter along with its - // depth rather than resolving it immediately. - pushStringParam: function(string, type) { - this.pushContext(); - this.pushString(type); - - // If it's a subexpression, the string result - // will be pushed after this opcode. - if (type !== 'sexpr') { - if (typeof string === 'string') { - this.pushString(string); - } else { - this.pushStackLiteral(string); - } - } - }, - - emptyHash: function() { - this.pushStackLiteral('{}'); - - if (this.trackIds) { - this.push('{}'); // hashIds - } - if (this.stringParams) { - this.push('{}'); // hashContexts - this.push('{}'); // hashTypes - } - }, - pushHash: function() { - if (this.hash) { - this.hashes.push(this.hash); - } - this.hash = {values: [], types: [], contexts: [], ids: []}; - }, - popHash: function() { - var hash = this.hash; - this.hash = this.hashes.pop(); - - if (this.trackIds) { - this.push('{' + hash.ids.join(',') + '}'); - } - if (this.stringParams) { - this.push('{' + hash.contexts.join(',') + '}'); - this.push('{' + hash.types.join(',') + '}'); - } - - this.push('{\n ' + hash.values.join(',\n ') + '\n }'); - }, - - // [pushString] - // - // On stack, before: ... - // On stack, after: quotedString(string), ... - // - // Push a quoted version of `string` onto the stack - pushString: function(string) { - this.pushStackLiteral(this.quotedString(string)); - }, - - // [push] - // - // On stack, before: ... - // On stack, after: expr, ... - // - // Push an expression onto the stack - push: function(expr) { - this.inlineStack.push(expr); - return expr; - }, - - // [pushLiteral] - // - // On stack, before: ... - // On stack, after: value, ... - // - // Pushes a value onto the stack. This operation prevents - // the compiler from creating a temporary variable to hold - // it. - pushLiteral: function(value) { - this.pushStackLiteral(value); - }, - - // [pushProgram] - // - // On stack, before: ... - // On stack, after: program(guid), ... - // - // Push a program expression onto the stack. This takes - // a compile-time guid and converts it into a runtime-accessible - // expression. - pushProgram: function(guid) { - if (guid != null) { - this.pushStackLiteral(this.programExpression(guid)); - } else { - this.pushStackLiteral(null); - } - }, - - // [invokeHelper] - // - // On stack, before: hash, inverse, program, params..., ... - // On stack, after: result of helper invocation - // - // Pops off the helper's parameters, invokes the helper, - // and pushes the helper's return value onto the stack. - // - // If the helper is not found, `helperMissing` is called. - invokeHelper: function(paramSize, name, isSimple) { - this.aliases.helperMissing = 'helpers.helperMissing'; - - var nonHelper = this.popStack(); - var helper = this.setupHelper(paramSize, name); - - var lookup = (isSimple ? helper.name + ' || ' : '') + nonHelper + ' || helperMissing'; - this.push('((' + lookup + ').call(' + helper.callParams + '))'); - }, - - // [invokeKnownHelper] - // - // On stack, before: hash, inverse, program, params..., ... - // On stack, after: result of helper invocation - // - // This operation is used when the helper is known to exist, - // so a `helperMissing` fallback is not required. - invokeKnownHelper: function(paramSize, name) { - var helper = this.setupHelper(paramSize, name); - this.push(helper.name + ".call(" + helper.callParams + ")"); - }, - - // [invokeAmbiguous] - // - // On stack, before: hash, inverse, program, params..., ... - // On stack, after: result of disambiguation - // - // This operation is used when an expression like `{{foo}}` - // is provided, but we don't know at compile-time whether it - // is a helper or a path. - // - // This operation emits more code than the other options, - // and can be avoided by passing the `knownHelpers` and - // `knownHelpersOnly` flags at compile-time. - invokeAmbiguous: function(name, helperCall) { - this.aliases.functionType = '"function"'; - this.aliases.helperMissing = 'helpers.helperMissing'; - this.useRegister('helper'); - - var nonHelper = this.popStack(); - - this.emptyHash(); - var helper = this.setupHelper(0, name, helperCall); - - var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); - - this.push( - '((helper = (helper = ' + helperName + ' || ' + nonHelper + ') != null ? helper : helperMissing' - + (helper.paramsInit ? '),(' + helper.paramsInit : '') + '),' - + '(typeof helper === functionType ? helper.call(' + helper.callParams + ') : helper))'); - }, - - // [invokePartial] - // - // On stack, before: context, ... - // On stack after: result of partial invocation - // - // This operation pops off a context, invokes a partial with that context, - // and pushes the result of the invocation back. - invokePartial: function(name, indent) { - var params = [this.nameLookup('partials', name, 'partial'), "'" + indent + "'", "'" + name + "'", this.popStack(), this.popStack(), "helpers", "partials"]; - - if (this.options.data) { - params.push("data"); - } else if (this.options.compat) { - params.push('undefined'); - } - if (this.options.compat) { - params.push('depths'); - } - - this.push("this.invokePartial(" + params.join(", ") + ")"); - }, - - // [assignToHash] - // - // On stack, before: value, ..., hash, ... - // On stack, after: ..., hash, ... - // - // Pops a value off the stack and assigns it to the current hash - assignToHash: function(key) { - var value = this.popStack(), - context, - type, - id; - - if (this.trackIds) { - id = this.popStack(); - } - if (this.stringParams) { - type = this.popStack(); - context = this.popStack(); - } - - var hash = this.hash; - if (context) { - hash.contexts.push("'" + key + "': " + context); - } - if (type) { - hash.types.push("'" + key + "': " + type); - } - if (id) { - hash.ids.push("'" + key + "': " + id); - } - hash.values.push("'" + key + "': (" + value + ")"); - }, - - pushId: function(type, name) { - if (type === 'ID' || type === 'DATA') { - this.pushString(name); - } else if (type === 'sexpr') { - this.pushStackLiteral('true'); - } else { - this.pushStackLiteral('null'); - } - }, - - // HELPERS - - compiler: JavaScriptCompiler, - - compileChildren: function(environment, options) { - var children = environment.children, child, compiler; - - for(var i=0, l=children.length; i this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); } - return this.topStackName(); - }, - topStackName: function() { - return "stack" + this.stackSlot; - }, - flushInline: function() { - var inlineStack = this.inlineStack; - if (inlineStack.length) { - this.inlineStack = []; - for (var i = 0, len = inlineStack.length; i < len; i++) { - var entry = inlineStack[i]; - if (entry instanceof Literal) { - this.compileStack.push(entry); - } else { - this.pushStack(entry); - } - } - } - }, - isInline: function() { - return this.inlineStack.length; - }, - - popStack: function(wrapped) { - var inline = this.isInline(), - item = (inline ? this.inlineStack : this.compileStack).pop(); - - if (!wrapped && (item instanceof Literal)) { - return item.value; - } else { - if (!inline) { - /* istanbul ignore next */ - if (!this.stackSlot) { - throw new Exception('Invalid stack pop'); - } - this.stackSlot--; - } - return item; - } - }, - - topStack: function() { - var stack = (this.isInline() ? this.inlineStack : this.compileStack), - item = stack[stack.length - 1]; - - if (item instanceof Literal) { - return item.value; - } else { - return item; - } - }, - - contextName: function(context) { - if (this.useDepths && context) { - return 'depths[' + context + ']'; - } else { - return 'depth' + context; - } - }, - - quotedString: function(str) { - return '"' + str - .replace(/\\/g, '\\\\') - .replace(/"/g, '\\"') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 - .replace(/\u2029/g, '\\u2029') + '"'; - }, - - objectLiteral: function(obj) { - var pairs = []; - - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - pairs.push(this.quotedString(key) + ':' + obj[key]); - } - } - - return '{' + pairs.join(',') + '}'; - }, - - setupHelper: function(paramSize, name, blockHelper) { - var params = [], - paramsInit = this.setupParams(name, paramSize, params, blockHelper); - var foundHelper = this.nameLookup('helpers', name, 'helper'); - - return { - params: params, - paramsInit: paramsInit, - name: foundHelper, - callParams: [this.contextName(0)].concat(params).join(", ") - }; - }, - - setupOptions: function(helper, paramSize, params) { - var options = {}, contexts = [], types = [], ids = [], param, inverse, program; - - options.name = this.quotedString(helper); - options.hash = this.popStack(); - - if (this.trackIds) { - options.hashIds = this.popStack(); - } - if (this.stringParams) { - options.hashTypes = this.popStack(); - options.hashContexts = this.popStack(); - } - - inverse = this.popStack(); - program = this.popStack(); - - // Avoid setting fn and inverse if neither are set. This allows - // helpers to do a check for `if (options.fn)` - if (program || inverse) { - if (!program) { - program = 'this.noop'; - } - - if (!inverse) { - inverse = 'this.noop'; - } - - options.fn = program; - options.inverse = inverse; - } - - // The parameters go on to the stack in order (making sure that they are evaluated in order) - // so we need to pop them off the stack in reverse order - var i = paramSize; - while (i--) { - param = this.popStack(); - params[i] = param; - - if (this.trackIds) { - ids[i] = this.popStack(); - } - if (this.stringParams) { - types[i] = this.popStack(); - contexts[i] = this.popStack(); - } - } - - if (this.trackIds) { - options.ids = "[" + ids.join(",") + "]"; - } - if (this.stringParams) { - options.types = "[" + types.join(",") + "]"; - options.contexts = "[" + contexts.join(",") + "]"; - } - - if (this.options.data) { - options.data = "data"; - } - - return options; - }, - - // the params and contexts arguments are passed in arrays - // to fill in - setupParams: function(helperName, paramSize, params, useRegister) { - var options = this.objectLiteral(this.setupOptions(helperName, paramSize, params)); - - if (useRegister) { - this.useRegister('options'); - params.push('options'); - return 'options=' + options; - } else { - params.push(options); - return ''; - } - } - }; - - var reservedWords = ( - "break else new var" + - " case finally return void" + - " catch for switch while" + - " continue function this with" + - " default if throw" + - " delete in try" + - " do instanceof typeof" + - " abstract enum int short" + - " boolean export interface static" + - " byte extends long super" + - " char final native synchronized" + - " class float package throws" + - " const goto private transient" + - " debugger implements protected volatile" + - " double import public let yield" - ).split(" "); - - var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; - - for(var i=0, l=reservedWords.length; i 1) { + throw new _Exception2['default']('Unsupported number of partial arguments: ' + params.length, partial); + } else if (!params.length) { + params.push({ type: 'PathExpression', parts: [], depth: 0 }); + } + + var partialName = partial.name.original, + isDynamic = partial.name.type === 'SubExpression'; + if (isDynamic) { + this.accept(partial.name); + } + + this.setupFullMustacheParams(partial, undefined, undefined, true); + + var indent = partial.indent || ''; + if (this.options.preventIndent && indent) { + this.opcode('appendContent', indent); + indent = ''; + } + + this.opcode('invokePartial', isDynamic, partialName, indent); + this.opcode('append'); + }, + + MustacheStatement: function MustacheStatement(mustache) { + this.SubExpression(mustache); // eslint-disable-line new-cap + + if (mustache.escaped && !this.options.noEscape) { + this.opcode('appendEscaped'); + } else { + this.opcode('append'); + } + }, + + ContentStatement: function ContentStatement(content) { + if (content.value) { + this.opcode('appendContent', content.value); + } + }, + + CommentStatement: function CommentStatement() {}, + + SubExpression: function SubExpression(sexpr) { + transformLiteralToPath(sexpr); + var type = this.classifySexpr(sexpr); + + if (type === 'simple') { + this.simpleSexpr(sexpr); + } else if (type === 'helper') { + this.helperSexpr(sexpr); + } else { + this.ambiguousSexpr(sexpr); + } + }, + ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) { + var path = sexpr.path, + name = path.parts[0], + isBlock = program != null || inverse != null; + + this.opcode('getContext', path.depth); + + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + + this.accept(path); + + this.opcode('invokeAmbiguous', name, isBlock); + }, + + simpleSexpr: function simpleSexpr(sexpr) { + this.accept(sexpr.path); + this.opcode('resolvePossibleLambda'); + }, + + helperSexpr: function helperSexpr(sexpr, program, inverse) { + var params = this.setupFullMustacheParams(sexpr, program, inverse), + path = sexpr.path, + name = path.parts[0]; + + if (this.options.knownHelpers[name]) { + this.opcode('invokeKnownHelper', params.length, name); + } else if (this.options.knownHelpersOnly) { + throw new _Exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr); + } else { + path.falsy = true; + + this.accept(path); + this.opcode('invokeHelper', params.length, path.original, _AST2['default'].helpers.simpleId(path)); + } + }, + + PathExpression: function PathExpression(path) { + this.addDepth(path.depth); + this.opcode('getContext', path.depth); + + var name = path.parts[0], + scoped = _AST2['default'].helpers.scopedId(path), + blockParamId = !path.depth && !scoped && this.blockParamIndex(name); + + if (blockParamId) { + this.opcode('lookupBlockParam', blockParamId, path.parts); + } else if (!name) { + // Context reference, i.e. `{{foo .}}` or `{{foo ..}}` + this.opcode('pushContext'); + } else if (path.data) { + this.options.data = true; + this.opcode('lookupData', path.depth, path.parts); + } else { + this.opcode('lookupOnContext', path.parts, path.falsy, scoped); + } + }, + + StringLiteral: function StringLiteral(string) { + this.opcode('pushString', string.value); + }, + + NumberLiteral: function NumberLiteral(number) { + this.opcode('pushLiteral', number.value); + }, + + BooleanLiteral: function BooleanLiteral(bool) { + this.opcode('pushLiteral', bool.value); + }, + + UndefinedLiteral: function UndefinedLiteral() { + this.opcode('pushLiteral', 'undefined'); + }, + + NullLiteral: function NullLiteral() { + this.opcode('pushLiteral', 'null'); + }, + + Hash: function Hash(hash) { + var pairs = hash.pairs, + i = 0, + l = pairs.length; + + this.opcode('pushHash'); + + for (; i < l; i++) { + this.pushParam(pairs[i].value); + } + while (i--) { + this.opcode('assignToHash', pairs[i].key); + } + this.opcode('popHash'); + }, + + // HELPERS + opcode: function opcode(name) { + this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc }); + }, + + addDepth: function addDepth(depth) { + if (!depth) { + return; + } + + this.useDepths = true; + }, + + classifySexpr: function classifySexpr(sexpr) { + var isSimple = _AST2['default'].helpers.simpleId(sexpr.path); + + var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]); + + // a mustache is an eligible helper if: + // * its id is simple (a single part, not `this` or `..`) + var isHelper = !isBlockParam && _AST2['default'].helpers.helperExpression(sexpr); + + // if a mustache is an eligible helper but not a definite + // helper, it is ambiguous, and will be resolved in a later + // pass or at runtime. + var isEligible = !isBlockParam && (isHelper || isSimple); + + // if ambiguous, we can possibly resolve the ambiguity now + // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc. + if (isEligible && !isHelper) { + var _name2 = sexpr.path.parts[0], + options = this.options; + + if (options.knownHelpers[_name2]) { + isHelper = true; + } else if (options.knownHelpersOnly) { + isEligible = false; + } + } + + if (isHelper) { + return 'helper'; + } else if (isEligible) { + return 'ambiguous'; + } else { + return 'simple'; + } + }, + + pushParams: function pushParams(params) { + for (var i = 0, l = params.length; i < l; i++) { + this.pushParam(params[i]); + } + }, + + pushParam: function pushParam(val) { + var value = val.value != null ? val.value : val.original || ''; + + if (this.stringParams) { + if (value.replace) { + value = value.replace(/^(\.?\.\/)*/g, '').replace(/\//g, '.'); + } + + if (val.depth) { + this.addDepth(val.depth); + } + this.opcode('getContext', val.depth || 0); + this.opcode('pushStringParam', value, val.type); + + if (val.type === 'SubExpression') { + // SubExpressions get evaluated and passed in + // in string params mode. + this.accept(val); + } + } else { + if (this.trackIds) { + var blockParamIndex = undefined; + if (val.parts && !_AST2['default'].helpers.scopedId(val) && !val.depth) { + blockParamIndex = this.blockParamIndex(val.parts[0]); + } + if (blockParamIndex) { + var blockParamChild = val.parts.slice(1).join('.'); + this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild); + } else { + value = val.original || value; + if (value.replace) { + value = value.replace(/^\.\//g, '').replace(/^\.$/g, ''); + } + + this.opcode('pushId', val.type, value); + } + } + this.accept(val); + } + }, + + setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) { + var params = sexpr.params; + this.pushParams(params); + + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + + if (sexpr.hash) { + this.accept(sexpr.hash); + } else { + this.opcode('emptyHash', omitEmpty); + } + + return params; + }, + + blockParamIndex: function blockParamIndex(name) { + for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) { + var blockParams = this.options.blockParams[depth], + param = blockParams && _isArray$indexOf.indexOf(blockParams, name); + if (blockParams && param >= 0) { + return [depth, param]; + } + } + } + }; + + function precompile(input, options, env) { + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _Exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input); + } + + options = options || {}; + if (!('data' in options)) { + options.data = true; + } + if (options.compat) { + options.useDepths = true; + } + + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options); + return new env.JavaScriptCompiler().compile(environment, options); + } + + function compile(input, _x, env) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + if (input == null || typeof input !== 'string' && input.type !== 'Program') { + throw new _Exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input); + } + + if (!('data' in options)) { + options.data = true; + } + if (options.compat) { + options.useDepths = true; + } + + var compiled = undefined; + + function compileInput() { + var ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options), + templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true); + return env.template(templateSpec); + } + + // Template is only compiled on first use and cached after that point. + function ret(context, execOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled.call(this, context, execOptions); + } + ret._setup = function (setupOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._setup(setupOptions); + }; + ret._child = function (i, data, blockParams, depths) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._child(i, data, blockParams, depths); + }; + return ret; + } + + function argEquals(a, b) { + if (a === b) { + return true; + } + + if (_isArray$indexOf.isArray(a) && _isArray$indexOf.isArray(b) && a.length === b.length) { + for (var i = 0; i < a.length; i++) { + if (!argEquals(a[i], b[i])) { + return false; + } + } + return true; + } + } + + function transformLiteralToPath(sexpr) { + if (!sexpr.path.parts) { + var literal = sexpr.path; + // Casting to string here to make false and 0 literal values play nicely with the rest + // of the system. + sexpr.path = new _AST2['default'].PathExpression(false, 0, [literal.original + ''], literal.original + '', literal.loc); + } + } + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = __webpack_require__(8)['default']; + + exports.__esModule = true; + + var _COMPILER_REVISION$REVISION_CHANGES = __webpack_require__(9); + + var _Exception = __webpack_require__(11); + + var _Exception2 = _interopRequireWildcard(_Exception); + + var _isArray = __webpack_require__(12); + + var _CodeGen = __webpack_require__(17); + + var _CodeGen2 = _interopRequireWildcard(_CodeGen); + + function Literal(value) { + this.value = value; + } + + function JavaScriptCompiler() {} + + JavaScriptCompiler.prototype = { + // PUBLIC API: You can override these methods in a subclass to provide + // alternative compiled forms for name lookup and buffering semantics + nameLookup: function nameLookup(parent, name /* , type*/) { + if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) { + return [parent, '.', name]; + } else { + return [parent, '[\'', name, '\']']; + } + }, + depthedLookup: function depthedLookup(name) { + return [this.aliasable('this.lookup'), '(depths, "', name, '")']; + }, + + compilerInfo: function compilerInfo() { + var revision = _COMPILER_REVISION$REVISION_CHANGES.COMPILER_REVISION, + versions = _COMPILER_REVISION$REVISION_CHANGES.REVISION_CHANGES[revision]; + return [revision, versions]; + }, + + appendToBuffer: function appendToBuffer(source, location, explicit) { + // Force a source as this simplifies the merge logic. + if (!_isArray.isArray(source)) { + source = [source]; + } + source = this.source.wrap(source, location); + + if (this.environment.isSimple) { + return ['return ', source, ';']; + } else if (explicit) { + // This is a case where the buffer operation occurs as a child of another + // construct, generally braces. We have to explicitly output these buffer + // operations to ensure that the emitted code goes in the correct location. + return ['buffer += ', source, ';']; + } else { + source.appendToBuffer = true; + return source; + } + }, + + initializeBuffer: function initializeBuffer() { + return this.quotedString(''); + }, + // END PUBLIC API + + compile: function compile(environment, options, context, asObject) { + this.environment = environment; + this.options = options; + this.stringParams = this.options.stringParams; + this.trackIds = this.options.trackIds; + this.precompile = !asObject; + + this.name = this.environment.name; + this.isChild = !!context; + this.context = context || { + programs: [], + environments: [] + }; + + this.preamble(); + + this.stackSlot = 0; + this.stackVars = []; + this.aliases = {}; + this.registers = { list: [] }; + this.hashes = []; + this.compileStack = []; + this.inlineStack = []; + this.blockParams = []; + + this.compileChildren(environment, options); + + this.useDepths = this.useDepths || environment.useDepths || this.options.compat; + this.useBlockParams = this.useBlockParams || environment.useBlockParams; + + var opcodes = environment.opcodes, + opcode = undefined, + firstLoc = undefined, + i = undefined, + l = undefined; + + for (i = 0, l = opcodes.length; i < l; i++) { + opcode = opcodes[i]; + + this.source.currentLocation = opcode.loc; + firstLoc = firstLoc || opcode.loc; + this[opcode.opcode].apply(this, opcode.args); + } + + // Flush any trailing content that might be pending. + this.source.currentLocation = firstLoc; + this.pushSource(''); + + /* istanbul ignore next */ + if (this.stackSlot || this.inlineStack.length || this.compileStack.length) { + throw new _Exception2['default']('Compile completed with content left on stack'); + } + + var fn = this.createFunctionContext(asObject); + if (!this.isChild) { + var ret = { + compiler: this.compilerInfo(), + main: fn + }; + var programs = this.context.programs; + for (i = 0, l = programs.length; i < l; i++) { + if (programs[i]) { + ret[i] = programs[i]; + } + } + + if (this.environment.usePartial) { + ret.usePartial = true; + } + if (this.options.data) { + ret.useData = true; + } + if (this.useDepths) { + ret.useDepths = true; + } + if (this.useBlockParams) { + ret.useBlockParams = true; + } + if (this.options.compat) { + ret.compat = true; + } + + if (!asObject) { + ret.compiler = JSON.stringify(ret.compiler); + + this.source.currentLocation = { start: { line: 1, column: 0 } }; + ret = this.objectLiteral(ret); + + if (options.srcName) { + ret = ret.toStringWithSourceMap({ file: options.destName }); + ret.map = ret.map && ret.map.toString(); + } else { + ret = ret.toString(); + } + } else { + ret.compilerOptions = this.options; + } + + return ret; + } else { + return fn; + } + }, + + preamble: function preamble() { + // track the last context pushed into place to allow skipping the + // getContext opcode when it would be a noop + this.lastContext = 0; + this.source = new _CodeGen2['default'](this.options.srcName); + }, + + createFunctionContext: function createFunctionContext(asObject) { + var varDeclarations = ''; + + var locals = this.stackVars.concat(this.registers.list); + if (locals.length > 0) { + varDeclarations += ', ' + locals.join(', '); + } + + // Generate minimizer alias mappings + // + // When using true SourceNodes, this will update all references to the given alias + // as the source nodes are reused in situ. For the non-source node compilation mode, + // aliases will not be used, but this case is already being run on the client and + // we aren't concern about minimizing the template size. + var aliasCount = 0; + for (var alias in this.aliases) { + // eslint-disable-line guard-for-in + var node = this.aliases[alias]; + + if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) { + varDeclarations += ', alias' + ++aliasCount + '=' + alias; + node.children[0] = 'alias' + aliasCount; + } + } + + var params = ['depth0', 'helpers', 'partials', 'data']; + + if (this.useBlockParams || this.useDepths) { + params.push('blockParams'); + } + if (this.useDepths) { + params.push('depths'); + } + + // Perform a second pass over the output to merge content when possible + var source = this.mergeSource(varDeclarations); + + if (asObject) { + params.push(source); + + return Function.apply(this, params); + } else { + return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']); + } + }, + mergeSource: function mergeSource(varDeclarations) { + var isSimple = this.environment.isSimple, + appendOnly = !this.forceBuffer, + appendFirst = undefined, + sourceSeen = undefined, + bufferStart = undefined, + bufferEnd = undefined; + this.source.each(function (line) { + if (line.appendToBuffer) { + if (bufferStart) { + line.prepend(' + '); + } else { + bufferStart = line; + } + bufferEnd = line; + } else { + if (bufferStart) { + if (!sourceSeen) { + appendFirst = true; + } else { + bufferStart.prepend('buffer += '); + } + bufferEnd.add(';'); + bufferStart = bufferEnd = undefined; + } + + sourceSeen = true; + if (!isSimple) { + appendOnly = false; + } + } + }); + + if (appendOnly) { + if (bufferStart) { + bufferStart.prepend('return '); + bufferEnd.add(';'); + } else if (!sourceSeen) { + this.source.push('return "";'); + } + } else { + varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer()); + + if (bufferStart) { + bufferStart.prepend('return buffer + '); + bufferEnd.add(';'); + } else { + this.source.push('return buffer;'); + } + } + + if (varDeclarations) { + this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n')); + } + + return this.source.merge(); + }, + + // [blockValue] + // + // On stack, before: hash, inverse, program, value + // On stack, after: return value of blockHelperMissing + // + // The purpose of this opcode is to take a block of the form + // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and + // replace it on the stack with the result of properly + // invoking blockHelperMissing. + blockValue: function blockValue(name) { + var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs(name, 0, params); + + var blockName = this.popStack(); + params.splice(1, 0, blockName); + + this.push(this.source.functionCall(blockHelperMissing, 'call', params)); + }, + + // [ambiguousBlockValue] + // + // On stack, before: hash, inverse, program, value + // Compiler value, before: lastHelper=value of last found helper, if any + // On stack, after, if no lastHelper: same as [blockValue] + // On stack, after, if lastHelper: value + ambiguousBlockValue: function ambiguousBlockValue() { + // We're being a bit cheeky and reusing the options value from the prior exec + var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs('', 0, params, true); + + this.flushInline(); + + var current = this.topStack(); + params.splice(1, 0, current); + + this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']); + }, + + // [appendContent] + // + // On stack, before: ... + // On stack, after: ... + // + // Appends the string value of `content` to the current buffer + appendContent: function appendContent(content) { + if (this.pendingContent) { + content = this.pendingContent + content; + } else { + this.pendingLocation = this.source.currentLocation; + } + + this.pendingContent = content; + }, + + // [append] + // + // On stack, before: value, ... + // On stack, after: ... + // + // Coerces `value` to a String and appends it to the current buffer. + // + // If `value` is truthy, or 0, it is coerced into a string and appended + // Otherwise, the empty string is appended + append: function append() { + if (this.isInline()) { + this.replaceStack(function (current) { + return [' != null ? ', current, ' : ""']; + }); + + this.pushSource(this.appendToBuffer(this.popStack())); + } else { + var local = this.popStack(); + this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']); + if (this.environment.isSimple) { + this.pushSource(['else { ', this.appendToBuffer('\'\'', undefined, true), ' }']); + } + } + }, + + // [appendEscaped] + // + // On stack, before: value, ... + // On stack, after: ... + // + // Escape `value` and append it to the buffer + appendEscaped: function appendEscaped() { + this.pushSource(this.appendToBuffer([this.aliasable('this.escapeExpression'), '(', this.popStack(), ')'])); + }, + + // [getContext] + // + // On stack, before: ... + // On stack, after: ... + // Compiler value, after: lastContext=depth + // + // Set the value of the `lastContext` compiler value to the depth + getContext: function getContext(depth) { + this.lastContext = depth; + }, + + // [pushContext] + // + // On stack, before: ... + // On stack, after: currentContext, ... + // + // Pushes the value of the current context onto the stack. + pushContext: function pushContext() { + this.pushStackLiteral(this.contextName(this.lastContext)); + }, + + // [lookupOnContext] + // + // On stack, before: ... + // On stack, after: currentContext[name], ... + // + // Looks up the value of `name` on the current context and pushes + // it onto the stack. + lookupOnContext: function lookupOnContext(parts, falsy, scoped) { + var i = 0; + + if (!scoped && this.options.compat && !this.lastContext) { + // The depthed query is expected to handle the undefined logic for the root level that + // is implemented below, so we evaluate that directly in compat mode + this.push(this.depthedLookup(parts[i++])); + } else { + this.pushContext(); + } + + this.resolvePath('context', parts, i, falsy); + }, + + // [lookupBlockParam] + // + // On stack, before: ... + // On stack, after: blockParam[name], ... + // + // Looks up the value of `parts` on the given block param and pushes + // it onto the stack. + lookupBlockParam: function lookupBlockParam(blockParamId, parts) { + this.useBlockParams = true; + + this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']); + this.resolvePath('context', parts, 1); + }, + + // [lookupData] + // + // On stack, before: ... + // On stack, after: data, ... + // + // Push the data lookup operator + lookupData: function lookupData(depth, parts) { + if (!depth) { + this.pushStackLiteral('data'); + } else { + this.pushStackLiteral('this.data(data, ' + depth + ')'); + } + + this.resolvePath('data', parts, 0, true); + }, + + resolvePath: function resolvePath(type, parts, i, falsy) { + var _this = this; + + if (this.options.strict || this.options.assumeObjects) { + this.push(strictLookup(this.options.strict, this, parts, type)); + return; + } + + var len = parts.length; + for (; i < len; i++) { + /*eslint-disable no-loop-func */ + this.replaceStack(function (current) { + var lookup = _this.nameLookup(current, parts[i], type); + // We want to ensure that zero and false are handled properly if the context (falsy flag) + // needs to have the special handling for these values. + if (!falsy) { + return [' != null ? ', lookup, ' : ', current]; + } else { + // Otherwise we can use generic falsy handling + return [' && ', lookup]; + } + }); + /*eslint-enable no-loop-func */ + } + }, + + // [resolvePossibleLambda] + // + // On stack, before: value, ... + // On stack, after: resolved value, ... + // + // If the `value` is a lambda, replace it on the stack by + // the return value of the lambda + resolvePossibleLambda: function resolvePossibleLambda() { + this.push([this.aliasable('this.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']); + }, + + // [pushStringParam] + // + // On stack, before: ... + // On stack, after: string, currentContext, ... + // + // This opcode is designed for use in string mode, which + // provides the string value of a parameter along with its + // depth rather than resolving it immediately. + pushStringParam: function pushStringParam(string, type) { + this.pushContext(); + this.pushString(type); + + // If it's a subexpression, the string result + // will be pushed after this opcode. + if (type !== 'SubExpression') { + if (typeof string === 'string') { + this.pushString(string); + } else { + this.pushStackLiteral(string); + } + } + }, + + emptyHash: function emptyHash(omitEmpty) { + if (this.trackIds) { + this.push('{}'); // hashIds + } + if (this.stringParams) { + this.push('{}'); // hashContexts + this.push('{}'); // hashTypes + } + this.pushStackLiteral(omitEmpty ? 'undefined' : '{}'); + }, + pushHash: function pushHash() { + if (this.hash) { + this.hashes.push(this.hash); + } + this.hash = { values: [], types: [], contexts: [], ids: [] }; + }, + popHash: function popHash() { + var hash = this.hash; + this.hash = this.hashes.pop(); + + if (this.trackIds) { + this.push(this.objectLiteral(hash.ids)); + } + if (this.stringParams) { + this.push(this.objectLiteral(hash.contexts)); + this.push(this.objectLiteral(hash.types)); + } + + this.push(this.objectLiteral(hash.values)); + }, + + // [pushString] + // + // On stack, before: ... + // On stack, after: quotedString(string), ... + // + // Push a quoted version of `string` onto the stack + pushString: function pushString(string) { + this.pushStackLiteral(this.quotedString(string)); + }, + + // [pushLiteral] + // + // On stack, before: ... + // On stack, after: value, ... + // + // Pushes a value onto the stack. This operation prevents + // the compiler from creating a temporary variable to hold + // it. + pushLiteral: function pushLiteral(value) { + this.pushStackLiteral(value); + }, + + // [pushProgram] + // + // On stack, before: ... + // On stack, after: program(guid), ... + // + // Push a program expression onto the stack. This takes + // a compile-time guid and converts it into a runtime-accessible + // expression. + pushProgram: function pushProgram(guid) { + if (guid != null) { + this.pushStackLiteral(this.programExpression(guid)); + } else { + this.pushStackLiteral(null); + } + }, + + // [invokeHelper] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of helper invocation + // + // Pops off the helper's parameters, invokes the helper, + // and pushes the helper's return value onto the stack. + // + // If the helper is not found, `helperMissing` is called. + invokeHelper: function invokeHelper(paramSize, name, isSimple) { + var nonHelper = this.popStack(), + helper = this.setupHelper(paramSize, name), + simple = isSimple ? [helper.name, ' || '] : ''; + + var lookup = ['('].concat(simple, nonHelper); + if (!this.options.strict) { + lookup.push(' || ', this.aliasable('helpers.helperMissing')); + } + lookup.push(')'); + + this.push(this.source.functionCall(lookup, 'call', helper.callParams)); + }, + + // [invokeKnownHelper] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of helper invocation + // + // This operation is used when the helper is known to exist, + // so a `helperMissing` fallback is not required. + invokeKnownHelper: function invokeKnownHelper(paramSize, name) { + var helper = this.setupHelper(paramSize, name); + this.push(this.source.functionCall(helper.name, 'call', helper.callParams)); + }, + + // [invokeAmbiguous] + // + // On stack, before: hash, inverse, program, params..., ... + // On stack, after: result of disambiguation + // + // This operation is used when an expression like `{{foo}}` + // is provided, but we don't know at compile-time whether it + // is a helper or a path. + // + // This operation emits more code than the other options, + // and can be avoided by passing the `knownHelpers` and + // `knownHelpersOnly` flags at compile-time. + invokeAmbiguous: function invokeAmbiguous(name, helperCall) { + this.useRegister('helper'); + + var nonHelper = this.popStack(); + + this.emptyHash(); + var helper = this.setupHelper(0, name, helperCall); + + var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); + + var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')']; + if (!this.options.strict) { + lookup[0] = '(helper = '; + lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing')); + } + + this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']); + }, + + // [invokePartial] + // + // On stack, before: context, ... + // On stack after: result of partial invocation + // + // This operation pops off a context, invokes a partial with that context, + // and pushes the result of the invocation back. + invokePartial: function invokePartial(isDynamic, name, indent) { + var params = [], + options = this.setupParams(name, 1, params, false); + + if (isDynamic) { + name = this.popStack(); + delete options.name; + } + + if (indent) { + options.indent = JSON.stringify(indent); + } + options.helpers = 'helpers'; + options.partials = 'partials'; + + if (!isDynamic) { + params.unshift(this.nameLookup('partials', name, 'partial')); + } else { + params.unshift(name); + } + + if (this.options.compat) { + options.depths = 'depths'; + } + options = this.objectLiteral(options); + params.push(options); + + this.push(this.source.functionCall('this.invokePartial', '', params)); + }, + + // [assignToHash] + // + // On stack, before: value, ..., hash, ... + // On stack, after: ..., hash, ... + // + // Pops a value off the stack and assigns it to the current hash + assignToHash: function assignToHash(key) { + var value = this.popStack(), + context = undefined, + type = undefined, + id = undefined; + + if (this.trackIds) { + id = this.popStack(); + } + if (this.stringParams) { + type = this.popStack(); + context = this.popStack(); + } + + var hash = this.hash; + if (context) { + hash.contexts[key] = context; + } + if (type) { + hash.types[key] = type; + } + if (id) { + hash.ids[key] = id; + } + hash.values[key] = value; + }, + + pushId: function pushId(type, name, child) { + if (type === 'BlockParam') { + this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : '')); + } else if (type === 'PathExpression') { + this.pushString(name); + } else if (type === 'SubExpression') { + this.pushStackLiteral('true'); + } else { + this.pushStackLiteral('null'); + } + }, + + // HELPERS + + compiler: JavaScriptCompiler, + + compileChildren: function compileChildren(environment, options) { + var children = environment.children, + child = undefined, + compiler = undefined; + + for (var i = 0, l = children.length; i < l; i++) { + child = children[i]; + compiler = new this.compiler(); // eslint-disable-line new-cap + + var index = this.matchExistingProgram(child); + + if (index == null) { + this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children + index = this.context.programs.length; + child.index = index; + child.name = 'program' + index; + this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile); + this.context.environments[index] = child; + + this.useDepths = this.useDepths || compiler.useDepths; + this.useBlockParams = this.useBlockParams || compiler.useBlockParams; + } else { + child.index = index; + child.name = 'program' + index; + + this.useDepths = this.useDepths || child.useDepths; + this.useBlockParams = this.useBlockParams || child.useBlockParams; + } + } + }, + matchExistingProgram: function matchExistingProgram(child) { + for (var i = 0, len = this.context.environments.length; i < len; i++) { + var environment = this.context.environments[i]; + if (environment && environment.equals(child)) { + return i; + } + } + }, + + programExpression: function programExpression(guid) { + var child = this.environment.children[guid], + programParams = [child.index, 'data', child.blockParams]; + + if (this.useBlockParams || this.useDepths) { + programParams.push('blockParams'); + } + if (this.useDepths) { + programParams.push('depths'); + } + + return 'this.program(' + programParams.join(', ') + ')'; + }, + + useRegister: function useRegister(name) { + if (!this.registers[name]) { + this.registers[name] = true; + this.registers.list.push(name); + } + }, + + push: function push(expr) { + if (!(expr instanceof Literal)) { + expr = this.source.wrap(expr); + } + + this.inlineStack.push(expr); + return expr; + }, + + pushStackLiteral: function pushStackLiteral(item) { + this.push(new Literal(item)); + }, + + pushSource: function pushSource(source) { + if (this.pendingContent) { + this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation)); + this.pendingContent = undefined; + } + + if (source) { + this.source.push(source); + } + }, + + replaceStack: function replaceStack(callback) { + var prefix = ['('], + stack = undefined, + createdStack = undefined, + usedLiteral = undefined; + + /* istanbul ignore next */ + if (!this.isInline()) { + throw new _Exception2['default']('replaceStack on non-inline'); + } + + // We want to merge the inline statement into the replacement statement via ',' + var top = this.popStack(true); + + if (top instanceof Literal) { + // Literals do not need to be inlined + stack = [top.value]; + prefix = ['(', stack]; + usedLiteral = true; + } else { + // Get or create the current stack name for use by the inline + createdStack = true; + var _name = this.incrStack(); + + prefix = ['((', this.push(_name), ' = ', top, ')']; + stack = this.topStack(); + } + + var item = callback.call(this, stack); + + if (!usedLiteral) { + this.popStack(); + } + if (createdStack) { + this.stackSlot--; + } + this.push(prefix.concat(item, ')')); + }, + + incrStack: function incrStack() { + this.stackSlot++; + if (this.stackSlot > this.stackVars.length) { + this.stackVars.push('stack' + this.stackSlot); + } + return this.topStackName(); + }, + topStackName: function topStackName() { + return 'stack' + this.stackSlot; + }, + flushInline: function flushInline() { + var inlineStack = this.inlineStack; + this.inlineStack = []; + for (var i = 0, len = inlineStack.length; i < len; i++) { + var entry = inlineStack[i]; + /* istanbul ignore if */ + if (entry instanceof Literal) { + this.compileStack.push(entry); + } else { + var stack = this.incrStack(); + this.pushSource([stack, ' = ', entry, ';']); + this.compileStack.push(stack); + } + } + }, + isInline: function isInline() { + return this.inlineStack.length; + }, + + popStack: function popStack(wrapped) { + var inline = this.isInline(), + item = (inline ? this.inlineStack : this.compileStack).pop(); + + if (!wrapped && item instanceof Literal) { + return item.value; + } else { + if (!inline) { + /* istanbul ignore next */ + if (!this.stackSlot) { + throw new _Exception2['default']('Invalid stack pop'); + } + this.stackSlot--; + } + return item; + } + }, + + topStack: function topStack() { + var stack = this.isInline() ? this.inlineStack : this.compileStack, + item = stack[stack.length - 1]; + + /* istanbul ignore if */ + if (item instanceof Literal) { + return item.value; + } else { + return item; + } + }, + + contextName: function contextName(context) { + if (this.useDepths && context) { + return 'depths[' + context + ']'; + } else { + return 'depth' + context; + } + }, + + quotedString: function quotedString(str) { + return this.source.quotedString(str); + }, + + objectLiteral: function objectLiteral(obj) { + return this.source.objectLiteral(obj); + }, + + aliasable: function aliasable(name) { + var ret = this.aliases[name]; + if (ret) { + ret.referenceCount++; + return ret; + } + + ret = this.aliases[name] = this.source.wrap(name); + ret.aliasable = true; + ret.referenceCount = 1; + + return ret; + }, + + setupHelper: function setupHelper(paramSize, name, blockHelper) { + var params = [], + paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper); + var foundHelper = this.nameLookup('helpers', name, 'helper'); + + return { + params: params, + paramsInit: paramsInit, + name: foundHelper, + callParams: [this.contextName(0)].concat(params) + }; + }, + + setupParams: function setupParams(helper, paramSize, params) { + var options = {}, + contexts = [], + types = [], + ids = [], + param = undefined; + + options.name = this.quotedString(helper); + options.hash = this.popStack(); + + if (this.trackIds) { + options.hashIds = this.popStack(); + } + if (this.stringParams) { + options.hashTypes = this.popStack(); + options.hashContexts = this.popStack(); + } + + var inverse = this.popStack(), + program = this.popStack(); + + // Avoid setting fn and inverse if neither are set. This allows + // helpers to do a check for `if (options.fn)` + if (program || inverse) { + options.fn = program || 'this.noop'; + options.inverse = inverse || 'this.noop'; + } + + // The parameters go on to the stack in order (making sure that they are evaluated in order) + // so we need to pop them off the stack in reverse order + var i = paramSize; + while (i--) { + param = this.popStack(); + params[i] = param; + + if (this.trackIds) { + ids[i] = this.popStack(); + } + if (this.stringParams) { + types[i] = this.popStack(); + contexts[i] = this.popStack(); + } + } + + if (this.trackIds) { + options.ids = this.source.generateArray(ids); + } + if (this.stringParams) { + options.types = this.source.generateArray(types); + options.contexts = this.source.generateArray(contexts); + } + + if (this.options.data) { + options.data = 'data'; + } + if (this.useBlockParams) { + options.blockParams = 'blockParams'; + } + return options; + }, + + setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) { + var options = this.setupParams(helper, paramSize, params, true); + options = this.objectLiteral(options); + if (useRegister) { + this.useRegister('options'); + params.push('options'); + return ['options=', options]; + } else { + params.push(options); + return ''; + } + } + }; + + (function () { + var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' '); + + var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; + + for (var i = 0, l = reservedWords.length; i < l; i++) { + compilerWords[reservedWords[i]] = true; + } + })(); + + JavaScriptCompiler.isValidJavaScriptVariableName = function (name) { + return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name); + }; + + function strictLookup(requireTerminal, compiler, parts, type) { + var stack = compiler.popStack(), + i = 0, + len = parts.length; + if (requireTerminal) { + len--; + } + + for (; i < len; i++) { + stack = compiler.nameLookup(stack, parts[i], type); + } + + if (requireTerminal) { + return [compiler.aliasable('this.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ')']; + } else { + return stack; + } + } + + exports['default'] = JavaScriptCompiler; + module.exports = exports['default']; + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = __webpack_require__(8)['default']; + + exports.__esModule = true; + + var _Exception = __webpack_require__(11); + + var _Exception2 = _interopRequireWildcard(_Exception); + + var _AST = __webpack_require__(2); + + var _AST2 = _interopRequireWildcard(_AST); + + function Visitor() { + this.parents = []; + } + + Visitor.prototype = { + constructor: Visitor, + mutating: false, + + // Visits a given value. If mutating, will replace the value if necessary. + acceptKey: function acceptKey(node, name) { + var value = this.accept(node[name]); + if (this.mutating) { + // Hacky sanity check: + if (value && (!value.type || !_AST2['default'][value.type])) { + throw new _Exception2['default']('Unexpected node type "' + value.type + '" found when accepting ' + name + ' on ' + node.type); + } + node[name] = value; + } + }, + + // Performs an accept operation with added sanity check to ensure + // required keys are not removed. + acceptRequired: function acceptRequired(node, name) { + this.acceptKey(node, name); + + if (!node[name]) { + throw new _Exception2['default'](node.type + ' requires ' + name); + } + }, + + // Traverses a given array. If mutating, empty respnses will be removed + // for child elements. + acceptArray: function acceptArray(array) { + for (var i = 0, l = array.length; i < l; i++) { + this.acceptKey(array, i); + + if (!array[i]) { + array.splice(i, 1); + i--; + l--; + } + } + }, + + accept: function accept(object) { + if (!object) { + return; + } + + if (this.current) { + this.parents.unshift(this.current); + } + this.current = object; + + var ret = this[object.type](object); + + this.current = this.parents.shift(); + + if (!this.mutating || ret) { + return ret; + } else if (ret !== false) { + return object; + } + }, + + Program: function Program(program) { + this.acceptArray(program.body); + }, + + MustacheStatement: function MustacheStatement(mustache) { + this.acceptRequired(mustache, 'path'); + this.acceptArray(mustache.params); + this.acceptKey(mustache, 'hash'); + }, + + BlockStatement: function BlockStatement(block) { + this.acceptRequired(block, 'path'); + this.acceptArray(block.params); + this.acceptKey(block, 'hash'); + + this.acceptKey(block, 'program'); + this.acceptKey(block, 'inverse'); + }, + + PartialStatement: function PartialStatement(partial) { + this.acceptRequired(partial, 'name'); + this.acceptArray(partial.params); + this.acceptKey(partial, 'hash'); + }, + + ContentStatement: function ContentStatement() {}, + CommentStatement: function CommentStatement() {}, + + SubExpression: function SubExpression(sexpr) { + this.acceptRequired(sexpr, 'path'); + this.acceptArray(sexpr.params); + this.acceptKey(sexpr, 'hash'); + }, + + PathExpression: function PathExpression() {}, + + StringLiteral: function StringLiteral() {}, + NumberLiteral: function NumberLiteral() {}, + BooleanLiteral: function BooleanLiteral() {}, + UndefinedLiteral: function UndefinedLiteral() {}, + NullLiteral: function NullLiteral() {}, + + Hash: function Hash(hash) { + this.acceptArray(hash.pairs); + }, + HashPair: function HashPair(pair) { + this.acceptRequired(pair, 'value'); + } + }; + + exports['default'] = Visitor; + module.exports = exports['default']; + /* content */ /* comment */ /* path */ /* string */ /* number */ /* bool */ /* literal */ /* literal */ + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + exports.__esModule = true; + /*global window */ + + exports['default'] = function (Handlebars) { + /* istanbul ignore next */ + var root = typeof global !== 'undefined' ? global : window, + $Handlebars = root.Handlebars; + /* istanbul ignore next */ + Handlebars.noConflict = function () { + if (root.Handlebars === Handlebars) { + root.Handlebars = $Handlebars; + } + }; + }; + + module.exports = exports['default']; + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + + exports["default"] = function (obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + }; + + exports.__esModule = true; + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = __webpack_require__(8)['default']; + + exports.__esModule = true; + exports.HandlebarsEnvironment = HandlebarsEnvironment; + exports.createFrame = createFrame; + + var _import = __webpack_require__(12); + + var Utils = _interopRequireWildcard(_import); + + var _Exception = __webpack_require__(11); + + var _Exception2 = _interopRequireWildcard(_Exception); + + var VERSION = '3.0.1'; + exports.VERSION = VERSION; + var COMPILER_REVISION = 6; + + exports.COMPILER_REVISION = COMPILER_REVISION; + var REVISION_CHANGES = { + 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it + 2: '== 1.0.0-rc.3', + 3: '== 1.0.0-rc.4', + 4: '== 1.x.x', + 5: '== 2.0.0-alpha.x', + 6: '>= 2.0.0-beta.1' + }; + + exports.REVISION_CHANGES = REVISION_CHANGES; + var isArray = Utils.isArray, + isFunction = Utils.isFunction, + toString = Utils.toString, + objectType = '[object Object]'; + + function HandlebarsEnvironment(helpers, partials) { + this.helpers = helpers || {}; + this.partials = partials || {}; + + registerDefaultHelpers(this); + } + + HandlebarsEnvironment.prototype = { + constructor: HandlebarsEnvironment, + + logger: logger, + log: log, + + registerHelper: function registerHelper(name, fn) { + if (toString.call(name) === objectType) { + if (fn) { + throw new _Exception2['default']('Arg not supported with multiple helpers'); + } + Utils.extend(this.helpers, name); + } else { + this.helpers[name] = fn; + } + }, + unregisterHelper: function unregisterHelper(name) { + delete this.helpers[name]; + }, + + registerPartial: function registerPartial(name, partial) { + if (toString.call(name) === objectType) { + Utils.extend(this.partials, name); + } else { + if (typeof partial === 'undefined') { + throw new _Exception2['default']('Attempting to register a partial as undefined'); + } + this.partials[name] = partial; + } + }, + unregisterPartial: function unregisterPartial(name) { + delete this.partials[name]; + } + }; + + function registerDefaultHelpers(instance) { + instance.registerHelper('helperMissing', function () { + if (arguments.length === 1) { + // A missing field in a {{foo}} constuct. + return undefined; + } else { + // Someone is actually trying to call something, blow up. + throw new _Exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"'); + } + }); + + instance.registerHelper('blockHelperMissing', function (context, options) { + var inverse = options.inverse, + fn = options.fn; + + if (context === true) { + return fn(this); + } else if (context === false || context == null) { + return inverse(this); + } else if (isArray(context)) { + if (context.length > 0) { + if (options.ids) { + options.ids = [options.name]; + } + + return instance.helpers.each(context, options); + } else { + return inverse(this); + } + } else { + if (options.data && options.ids) { + var data = createFrame(options.data); + data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name); + options = { data: data }; + } + + return fn(context, options); + } + }); + + instance.registerHelper('each', function (context, options) { + if (!options) { + throw new _Exception2['default']('Must pass iterator to #each'); + } + + var fn = options.fn, + inverse = options.inverse, + i = 0, + ret = '', + data = undefined, + contextPath = undefined; + + if (options.data && options.ids) { + contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; + } + + if (isFunction(context)) { + context = context.call(this); + } + + if (options.data) { + data = createFrame(options.data); + } + + function execIteration(field, index, last) { + if (data) { + data.key = field; + data.index = index; + data.first = index === 0; + data.last = !!last; + + if (contextPath) { + data.contextPath = contextPath + field; + } + } + + ret = ret + fn(context[field], { + data: data, + blockParams: Utils.blockParams([context[field], field], [contextPath + field, null]) + }); + } + + if (context && typeof context === 'object') { + if (isArray(context)) { + for (var j = context.length; i < j; i++) { + execIteration(i, i, i === context.length - 1); + } + } else { + var priorKey = undefined; + + for (var key in context) { + if (context.hasOwnProperty(key)) { + // We're running the iterations one step out of sync so we can detect + // the last iteration without have to scan the object twice and create + // an itermediate keys array. + if (priorKey) { + execIteration(priorKey, i - 1); + } + priorKey = key; + i++; + } + } + if (priorKey) { + execIteration(priorKey, i - 1, true); + } + } + } + + if (i === 0) { + ret = inverse(this); + } + + return ret; + }); + + instance.registerHelper('if', function (conditional, options) { + if (isFunction(conditional)) { + conditional = conditional.call(this); + } + + // Default behavior is to render the positive path if the value is truthy and not empty. + // The `includeZero` option may be set to treat the condtional as purely not empty based on the + // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative. + if (!options.hash.includeZero && !conditional || Utils.isEmpty(conditional)) { + return options.inverse(this); + } else { + return options.fn(this); + } + }); + + instance.registerHelper('unless', function (conditional, options) { + return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash }); + }); + + instance.registerHelper('with', function (context, options) { + if (isFunction(context)) { + context = context.call(this); + } + + var fn = options.fn; + + if (!Utils.isEmpty(context)) { + if (options.data && options.ids) { + var data = createFrame(options.data); + data.contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]); + options = { data: data }; + } + + return fn(context, options); + } else { + return options.inverse(this); + } + }); + + instance.registerHelper('log', function (message, options) { + var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1; + instance.log(level, message); + }); + + instance.registerHelper('lookup', function (obj, field) { + return obj && obj[field]; + }); + } + + var logger = { + methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' }, + + // State enum + DEBUG: 0, + INFO: 1, + WARN: 2, + ERROR: 3, + level: 1, + + // Can be overridden in the host environment + log: function log(level, message) { + if (typeof console !== 'undefined' && logger.level <= level) { + var method = logger.methodMap[level]; + (console[method] || console.log).call(console, message); // eslint-disable-line no-console + } + } + }; + + exports.logger = logger; + var log = logger.log; + + exports.log = log; + + function createFrame(object) { + var frame = Utils.extend({}, object); + frame._parent = object; + return frame; + } + + /* [args, ]options */ + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + // Build out our basic SafeString type + function SafeString(string) { + this.string = string; + } + + SafeString.prototype.toString = SafeString.prototype.toHTML = function () { + return '' + this.string; + }; + + exports['default'] = SafeString; + module.exports = exports['default']; + +/***/ }, +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; + + function Exception(message, node) { + var loc = node && node.loc, + line = undefined, + column = undefined; + if (loc) { + line = loc.start.line; + column = loc.start.column; + + message += ' - ' + line + ':' + column; + } + + var tmp = Error.prototype.constructor.call(this, message); + + // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. + for (var idx = 0; idx < errorProps.length; idx++) { + this[errorProps[idx]] = tmp[errorProps[idx]]; + } + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, Exception); + } + + if (loc) { + this.lineNumber = line; + this.column = column; + } + } + + Exception.prototype = new Error(); + + exports['default'] = Exception; + module.exports = exports['default']; + +/***/ }, +/* 12 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports.extend = extend; + + // Older IE versions do not directly support indexOf so we must implement our own, sadly. + exports.indexOf = indexOf; + exports.escapeExpression = escapeExpression; + exports.isEmpty = isEmpty; + exports.blockParams = blockParams; + exports.appendContextPath = appendContextPath; + var escape = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '`': '`' + }; + + var badChars = /[&<>"'`]/g, + possible = /[&<>"'`]/; + + function escapeChar(chr) { + return escape[chr]; + } + + function extend(obj /* , ...source */) { + for (var i = 1; i < arguments.length; i++) { + for (var key in arguments[i]) { + if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { + obj[key] = arguments[i][key]; + } + } + } + + return obj; + } + + var toString = Object.prototype.toString; + + exports.toString = toString; + // Sourced from lodash + // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt + /*eslint-disable func-style, no-var */ + var isFunction = function isFunction(value) { + return typeof value === 'function'; + }; + // fallback for older versions of Chrome and Safari + /* istanbul ignore next */ + if (isFunction(/x/)) { + exports.isFunction = isFunction = function (value) { + return typeof value === 'function' && toString.call(value) === '[object Function]'; + }; + } + var isFunction; + exports.isFunction = isFunction; + /*eslint-enable func-style, no-var */ + + /* istanbul ignore next */ + var isArray = Array.isArray || function (value) { + return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false; + };exports.isArray = isArray; + + function indexOf(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; + } + + function escapeExpression(string) { + if (typeof string !== 'string') { + // don't escape SafeStrings, since they're already safe + if (string && string.toHTML) { + return string.toHTML(); + } else if (string == null) { + return ''; + } else if (!string) { + return string + ''; + } + + // Force a string conversion as this will be done by the append regardless and + // the regex test will do this transparently behind the scenes, causing issues if + // an object's to string has escaped characters in it. + string = '' + string; + } + + if (!possible.test(string)) { + return string; + } + return string.replace(badChars, escapeChar); + } + + function isEmpty(value) { + if (!value && value !== 0) { + return true; + } else if (isArray(value) && value.length === 0) { + return true; + } else { + return false; + } + } + + function blockParams(params, ids) { + params.path = ids; + return params; + } + + function appendContextPath(contextPath, id) { + return (contextPath ? contextPath + '.' : '') + id; + } + +/***/ }, +/* 13 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = __webpack_require__(8)['default']; + + exports.__esModule = true; + exports.checkRevision = checkRevision; + + // TODO: Remove this line and break up compilePartial + + exports.template = template; + exports.wrapProgram = wrapProgram; + exports.resolvePartial = resolvePartial; + exports.invokePartial = invokePartial; + exports.noop = noop; + + var _import = __webpack_require__(12); + + var Utils = _interopRequireWildcard(_import); + + var _Exception = __webpack_require__(11); + + var _Exception2 = _interopRequireWildcard(_Exception); + + var _COMPILER_REVISION$REVISION_CHANGES$createFrame = __webpack_require__(9); + + function checkRevision(compilerInfo) { + var compilerRevision = compilerInfo && compilerInfo[0] || 1, + currentRevision = _COMPILER_REVISION$REVISION_CHANGES$createFrame.COMPILER_REVISION; + + if (compilerRevision !== currentRevision) { + if (compilerRevision < currentRevision) { + var runtimeVersions = _COMPILER_REVISION$REVISION_CHANGES$createFrame.REVISION_CHANGES[currentRevision], + compilerVersions = _COMPILER_REVISION$REVISION_CHANGES$createFrame.REVISION_CHANGES[compilerRevision]; + throw new _Exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').'); + } else { + // Use the embedded version info since the runtime doesn't know about this revision yet + throw new _Exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').'); + } + } + } + + function template(templateSpec, env) { + /* istanbul ignore next */ + if (!env) { + throw new _Exception2['default']('No environment passed to template'); + } + if (!templateSpec || !templateSpec.main) { + throw new _Exception2['default']('Unknown template object: ' + typeof templateSpec); + } + + // Note: Using env.VM references rather than local var references throughout this section to allow + // for external users to override these as psuedo-supported APIs. + env.VM.checkRevision(templateSpec.compiler); + + function invokePartialWrapper(partial, context, options) { + if (options.hash) { + context = Utils.extend({}, context, options.hash); + } + + partial = env.VM.resolvePartial.call(this, partial, context, options); + var result = env.VM.invokePartial.call(this, partial, context, options); + + if (result == null && env.compile) { + options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env); + result = options.partials[options.name](context, options); + } + if (result != null) { + if (options.indent) { + var lines = result.split('\n'); + for (var i = 0, l = lines.length; i < l; i++) { + if (!lines[i] && i + 1 === l) { + break; + } + + lines[i] = options.indent + lines[i]; + } + result = lines.join('\n'); + } + return result; + } else { + throw new _Exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode'); + } + } + + // Just add water + var container = { + strict: function strict(obj, name) { + if (!(name in obj)) { + throw new _Exception2['default']('"' + name + '" not defined in ' + obj); + } + return obj[name]; + }, + lookup: function lookup(depths, name) { + var len = depths.length; + for (var i = 0; i < len; i++) { + if (depths[i] && depths[i][name] != null) { + return depths[i][name]; + } + } + }, + lambda: function lambda(current, context) { + return typeof current === 'function' ? current.call(context) : current; + }, + + escapeExpression: Utils.escapeExpression, + invokePartial: invokePartialWrapper, + + fn: function fn(i) { + return templateSpec[i]; + }, + + programs: [], + program: function program(i, data, declaredBlockParams, blockParams, depths) { + var programWrapper = this.programs[i], + fn = this.fn(i); + if (data || depths || blockParams || declaredBlockParams) { + programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths); + } else if (!programWrapper) { + programWrapper = this.programs[i] = wrapProgram(this, i, fn); + } + return programWrapper; + }, + + data: function data(value, depth) { + while (value && depth--) { + value = value._parent; + } + return value; + }, + merge: function merge(param, common) { + var obj = param || common; + + if (param && common && param !== common) { + obj = Utils.extend({}, common, param); + } + + return obj; + }, + + noop: env.VM.noop, + compilerInfo: templateSpec.compiler + }; + + function ret(context) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + var data = options.data; + + ret._setup(options); + if (!options.partial && templateSpec.useData) { + data = initData(context, data); + } + var depths = undefined, + blockParams = templateSpec.useBlockParams ? [] : undefined; + if (templateSpec.useDepths) { + depths = options.depths ? [context].concat(options.depths) : [context]; + } + + return templateSpec.main.call(container, context, container.helpers, container.partials, data, blockParams, depths); + } + ret.isTop = true; + + ret._setup = function (options) { + if (!options.partial) { + container.helpers = container.merge(options.helpers, env.helpers); + + if (templateSpec.usePartial) { + container.partials = container.merge(options.partials, env.partials); + } + } else { + container.helpers = options.helpers; + container.partials = options.partials; + } + }; + + ret._child = function (i, data, blockParams, depths) { + if (templateSpec.useBlockParams && !blockParams) { + throw new _Exception2['default']('must pass block params'); + } + if (templateSpec.useDepths && !depths) { + throw new _Exception2['default']('must pass parent depths'); + } + + return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths); + }; + return ret; + } + + function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) { + function prog(context) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + return fn.call(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), depths && [context].concat(depths)); + } + prog.program = i; + prog.depth = depths ? depths.length : 0; + prog.blockParams = declaredBlockParams || 0; + return prog; + } + + function resolvePartial(partial, context, options) { + if (!partial) { + partial = options.partials[options.name]; + } else if (!partial.call && !options.name) { + // This is a dynamic partial that returned a string + options.name = partial; + partial = options.partials[partial]; + } + return partial; + } + + function invokePartial(partial, context, options) { + options.partial = true; + + if (partial === undefined) { + throw new _Exception2['default']('The partial ' + options.name + ' could not be found'); + } else if (partial instanceof Function) { + return partial(context, options); + } + } + + function noop() { + return ''; + } + + function initData(context, data) { + if (!data || !('root' in data)) { + data = data ? _COMPILER_REVISION$REVISION_CHANGES$createFrame.createFrame(data) : {}; + data.root = context; + } + return data; + } + +/***/ }, +/* 14 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + + exports.__esModule = true; + /* istanbul ignore next */ + /* Jison generated parser */ + var handlebars = (function () { + var parser = { trace: function trace() {}, + yy: {}, + symbols_: { error: 2, root: 3, program: 4, EOF: 5, program_repetition0: 6, statement: 7, mustache: 8, block: 9, rawBlock: 10, partial: 11, content: 12, COMMENT: 13, CONTENT: 14, openRawBlock: 15, END_RAW_BLOCK: 16, OPEN_RAW_BLOCK: 17, helperName: 18, openRawBlock_repetition0: 19, openRawBlock_option0: 20, CLOSE_RAW_BLOCK: 21, openBlock: 22, block_option0: 23, closeBlock: 24, openInverse: 25, block_option1: 26, OPEN_BLOCK: 27, openBlock_repetition0: 28, openBlock_option0: 29, openBlock_option1: 30, CLOSE: 31, OPEN_INVERSE: 32, openInverse_repetition0: 33, openInverse_option0: 34, openInverse_option1: 35, openInverseChain: 36, OPEN_INVERSE_CHAIN: 37, openInverseChain_repetition0: 38, openInverseChain_option0: 39, openInverseChain_option1: 40, inverseAndProgram: 41, INVERSE: 42, inverseChain: 43, inverseChain_option0: 44, OPEN_ENDBLOCK: 45, OPEN: 46, mustache_repetition0: 47, mustache_option0: 48, OPEN_UNESCAPED: 49, mustache_repetition1: 50, mustache_option1: 51, CLOSE_UNESCAPED: 52, OPEN_PARTIAL: 53, partialName: 54, partial_repetition0: 55, partial_option0: 56, param: 57, sexpr: 58, OPEN_SEXPR: 59, sexpr_repetition0: 60, sexpr_option0: 61, CLOSE_SEXPR: 62, hash: 63, hash_repetition_plus0: 64, hashSegment: 65, ID: 66, EQUALS: 67, blockParams: 68, OPEN_BLOCK_PARAMS: 69, blockParams_repetition_plus0: 70, CLOSE_BLOCK_PARAMS: 71, path: 72, dataName: 73, STRING: 74, NUMBER: 75, BOOLEAN: 76, UNDEFINED: 77, NULL: 78, DATA: 79, pathSegments: 80, SEP: 81, $accept: 0, $end: 1 }, + terminals_: { 2: "error", 5: "EOF", 13: "COMMENT", 14: "CONTENT", 16: "END_RAW_BLOCK", 17: "OPEN_RAW_BLOCK", 21: "CLOSE_RAW_BLOCK", 27: "OPEN_BLOCK", 31: "CLOSE", 32: "OPEN_INVERSE", 37: "OPEN_INVERSE_CHAIN", 42: "INVERSE", 45: "OPEN_ENDBLOCK", 46: "OPEN", 49: "OPEN_UNESCAPED", 52: "CLOSE_UNESCAPED", 53: "OPEN_PARTIAL", 59: "OPEN_SEXPR", 62: "CLOSE_SEXPR", 66: "ID", 67: "EQUALS", 69: "OPEN_BLOCK_PARAMS", 71: "CLOSE_BLOCK_PARAMS", 74: "STRING", 75: "NUMBER", 76: "BOOLEAN", 77: "UNDEFINED", 78: "NULL", 79: "DATA", 81: "SEP" }, + productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [12, 1], [10, 3], [15, 5], [9, 4], [9, 4], [22, 6], [25, 6], [36, 6], [41, 2], [43, 3], [43, 1], [24, 3], [8, 5], [8, 5], [11, 5], [57, 1], [57, 1], [58, 5], [63, 1], [65, 3], [68, 3], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [54, 1], [54, 1], [73, 2], [72, 1], [80, 3], [80, 1], [6, 0], [6, 2], [19, 0], [19, 2], [20, 0], [20, 1], [23, 0], [23, 1], [26, 0], [26, 1], [28, 0], [28, 2], [29, 0], [29, 1], [30, 0], [30, 1], [33, 0], [33, 2], [34, 0], [34, 1], [35, 0], [35, 1], [38, 0], [38, 2], [39, 0], [39, 1], [40, 0], [40, 1], [44, 0], [44, 1], [47, 0], [47, 2], [48, 0], [48, 1], [50, 0], [50, 2], [51, 0], [51, 1], [55, 0], [55, 2], [56, 0], [56, 1], [60, 0], [60, 2], [61, 0], [61, 1], [64, 1], [64, 2], [70, 1], [70, 2]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + break; + case 2: + this.$ = new yy.Program($$[$0], null, {}, yy.locInfo(this._$)); + break; + case 3: + this.$ = $$[$0]; + break; + case 4: + this.$ = $$[$0]; + break; + case 5: + this.$ = $$[$0]; + break; + case 6: + this.$ = $$[$0]; + break; + case 7: + this.$ = $$[$0]; + break; + case 8: + this.$ = new yy.CommentStatement(yy.stripComment($$[$0]), yy.stripFlags($$[$0], $$[$0]), yy.locInfo(this._$)); + break; + case 9: + this.$ = new yy.ContentStatement($$[$0], yy.locInfo(this._$)); + break; + case 10: + this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$); + break; + case 11: + this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1] }; + break; + case 12: + this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$); + break; + case 13: + this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$); + break; + case 14: + this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) }; + break; + case 15: + this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) }; + break; + case 16: + this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) }; + break; + case 17: + this.$ = { strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]), program: $$[$0] }; + break; + case 18: + var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$), + program = new yy.Program([inverse], null, {}, yy.locInfo(this._$)); + program.chained = true; + + this.$ = { strip: $$[$0 - 2].strip, program: program, chain: true }; + + break; + case 19: + this.$ = $$[$0]; + break; + case 20: + this.$ = { path: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 2], $$[$0]) }; + break; + case 21: + this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$); + break; + case 22: + this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$); + break; + case 23: + this.$ = new yy.PartialStatement($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], yy.stripFlags($$[$0 - 4], $$[$0]), yy.locInfo(this._$)); + break; + case 24: + this.$ = $$[$0]; + break; + case 25: + this.$ = $$[$0]; + break; + case 26: + this.$ = new yy.SubExpression($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], yy.locInfo(this._$)); + break; + case 27: + this.$ = new yy.Hash($$[$0], yy.locInfo(this._$)); + break; + case 28: + this.$ = new yy.HashPair(yy.id($$[$0 - 2]), $$[$0], yy.locInfo(this._$)); + break; + case 29: + this.$ = yy.id($$[$0 - 1]); + break; + case 30: + this.$ = $$[$0]; + break; + case 31: + this.$ = $$[$0]; + break; + case 32: + this.$ = new yy.StringLiteral($$[$0], yy.locInfo(this._$)); + break; + case 33: + this.$ = new yy.NumberLiteral($$[$0], yy.locInfo(this._$)); + break; + case 34: + this.$ = new yy.BooleanLiteral($$[$0], yy.locInfo(this._$)); + break; + case 35: + this.$ = new yy.UndefinedLiteral(yy.locInfo(this._$)); + break; + case 36: + this.$ = new yy.NullLiteral(yy.locInfo(this._$)); + break; + case 37: + this.$ = $$[$0]; + break; + case 38: + this.$ = $$[$0]; + break; + case 39: + this.$ = yy.preparePath(true, $$[$0], this._$); + break; + case 40: + this.$ = yy.preparePath(false, $$[$0], this._$); + break; + case 41: + $$[$0 - 2].push({ part: yy.id($$[$0]), original: $$[$0], separator: $$[$0 - 1] });this.$ = $$[$0 - 2]; + break; + case 42: + this.$ = [{ part: yy.id($$[$0]), original: $$[$0] }]; + break; + case 43: + this.$ = []; + break; + case 44: + $$[$0 - 1].push($$[$0]); + break; + case 45: + this.$ = []; + break; + case 46: + $$[$0 - 1].push($$[$0]); + break; + case 53: + this.$ = []; + break; + case 54: + $$[$0 - 1].push($$[$0]); + break; + case 59: + this.$ = []; + break; + case 60: + $$[$0 - 1].push($$[$0]); + break; + case 65: + this.$ = []; + break; + case 66: + $$[$0 - 1].push($$[$0]); + break; + case 73: + this.$ = []; + break; + case 74: + $$[$0 - 1].push($$[$0]); + break; + case 77: + this.$ = []; + break; + case 78: + $$[$0 - 1].push($$[$0]); + break; + case 81: + this.$ = []; + break; + case 82: + $$[$0 - 1].push($$[$0]); + break; + case 85: + this.$ = []; + break; + case 86: + $$[$0 - 1].push($$[$0]); + break; + case 89: + this.$ = [$$[$0]]; + break; + case 90: + $$[$0 - 1].push($$[$0]); + break; + case 91: + this.$ = [$$[$0]]; + break; + case 92: + $$[$0 - 1].push($$[$0]); + break; + } + }, + table: [{ 3: 1, 4: 2, 5: [2, 43], 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: [1, 11], 14: [1, 18], 15: 16, 17: [1, 21], 22: 14, 25: 15, 27: [1, 19], 32: [1, 20], 37: [2, 2], 42: [2, 2], 45: [2, 2], 46: [1, 12], 49: [1, 13], 53: [1, 17] }, { 1: [2, 1] }, { 5: [2, 44], 13: [2, 44], 14: [2, 44], 17: [2, 44], 27: [2, 44], 32: [2, 44], 37: [2, 44], 42: [2, 44], 45: [2, 44], 46: [2, 44], 49: [2, 44], 53: [2, 44] }, { 5: [2, 3], 13: [2, 3], 14: [2, 3], 17: [2, 3], 27: [2, 3], 32: [2, 3], 37: [2, 3], 42: [2, 3], 45: [2, 3], 46: [2, 3], 49: [2, 3], 53: [2, 3] }, { 5: [2, 4], 13: [2, 4], 14: [2, 4], 17: [2, 4], 27: [2, 4], 32: [2, 4], 37: [2, 4], 42: [2, 4], 45: [2, 4], 46: [2, 4], 49: [2, 4], 53: [2, 4] }, { 5: [2, 5], 13: [2, 5], 14: [2, 5], 17: [2, 5], 27: [2, 5], 32: [2, 5], 37: [2, 5], 42: [2, 5], 45: [2, 5], 46: [2, 5], 49: [2, 5], 53: [2, 5] }, { 5: [2, 6], 13: [2, 6], 14: [2, 6], 17: [2, 6], 27: [2, 6], 32: [2, 6], 37: [2, 6], 42: [2, 6], 45: [2, 6], 46: [2, 6], 49: [2, 6], 53: [2, 6] }, { 5: [2, 7], 13: [2, 7], 14: [2, 7], 17: [2, 7], 27: [2, 7], 32: [2, 7], 37: [2, 7], 42: [2, 7], 45: [2, 7], 46: [2, 7], 49: [2, 7], 53: [2, 7] }, { 5: [2, 8], 13: [2, 8], 14: [2, 8], 17: [2, 8], 27: [2, 8], 32: [2, 8], 37: [2, 8], 42: [2, 8], 45: [2, 8], 46: [2, 8], 49: [2, 8], 53: [2, 8] }, { 18: 22, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 33, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 4: 34, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 37: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 4: 35, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 12: 36, 14: [1, 18] }, { 18: 38, 54: 37, 58: 39, 59: [1, 40], 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 9], 13: [2, 9], 14: [2, 9], 16: [2, 9], 17: [2, 9], 27: [2, 9], 32: [2, 9], 37: [2, 9], 42: [2, 9], 45: [2, 9], 46: [2, 9], 49: [2, 9], 53: [2, 9] }, { 18: 41, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 42, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 43, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 31: [2, 73], 47: 44, 59: [2, 73], 66: [2, 73], 74: [2, 73], 75: [2, 73], 76: [2, 73], 77: [2, 73], 78: [2, 73], 79: [2, 73] }, { 21: [2, 30], 31: [2, 30], 52: [2, 30], 59: [2, 30], 62: [2, 30], 66: [2, 30], 69: [2, 30], 74: [2, 30], 75: [2, 30], 76: [2, 30], 77: [2, 30], 78: [2, 30], 79: [2, 30] }, { 21: [2, 31], 31: [2, 31], 52: [2, 31], 59: [2, 31], 62: [2, 31], 66: [2, 31], 69: [2, 31], 74: [2, 31], 75: [2, 31], 76: [2, 31], 77: [2, 31], 78: [2, 31], 79: [2, 31] }, { 21: [2, 32], 31: [2, 32], 52: [2, 32], 59: [2, 32], 62: [2, 32], 66: [2, 32], 69: [2, 32], 74: [2, 32], 75: [2, 32], 76: [2, 32], 77: [2, 32], 78: [2, 32], 79: [2, 32] }, { 21: [2, 33], 31: [2, 33], 52: [2, 33], 59: [2, 33], 62: [2, 33], 66: [2, 33], 69: [2, 33], 74: [2, 33], 75: [2, 33], 76: [2, 33], 77: [2, 33], 78: [2, 33], 79: [2, 33] }, { 21: [2, 34], 31: [2, 34], 52: [2, 34], 59: [2, 34], 62: [2, 34], 66: [2, 34], 69: [2, 34], 74: [2, 34], 75: [2, 34], 76: [2, 34], 77: [2, 34], 78: [2, 34], 79: [2, 34] }, { 21: [2, 35], 31: [2, 35], 52: [2, 35], 59: [2, 35], 62: [2, 35], 66: [2, 35], 69: [2, 35], 74: [2, 35], 75: [2, 35], 76: [2, 35], 77: [2, 35], 78: [2, 35], 79: [2, 35] }, { 21: [2, 36], 31: [2, 36], 52: [2, 36], 59: [2, 36], 62: [2, 36], 66: [2, 36], 69: [2, 36], 74: [2, 36], 75: [2, 36], 76: [2, 36], 77: [2, 36], 78: [2, 36], 79: [2, 36] }, { 21: [2, 40], 31: [2, 40], 52: [2, 40], 59: [2, 40], 62: [2, 40], 66: [2, 40], 69: [2, 40], 74: [2, 40], 75: [2, 40], 76: [2, 40], 77: [2, 40], 78: [2, 40], 79: [2, 40], 81: [1, 45] }, { 66: [1, 32], 80: 46 }, { 21: [2, 42], 31: [2, 42], 52: [2, 42], 59: [2, 42], 62: [2, 42], 66: [2, 42], 69: [2, 42], 74: [2, 42], 75: [2, 42], 76: [2, 42], 77: [2, 42], 78: [2, 42], 79: [2, 42], 81: [2, 42] }, { 50: 47, 52: [2, 77], 59: [2, 77], 66: [2, 77], 74: [2, 77], 75: [2, 77], 76: [2, 77], 77: [2, 77], 78: [2, 77], 79: [2, 77] }, { 23: 48, 36: 50, 37: [1, 52], 41: 51, 42: [1, 53], 43: 49, 45: [2, 49] }, { 26: 54, 41: 55, 42: [1, 53], 45: [2, 51] }, { 16: [1, 56] }, { 31: [2, 81], 55: 57, 59: [2, 81], 66: [2, 81], 74: [2, 81], 75: [2, 81], 76: [2, 81], 77: [2, 81], 78: [2, 81], 79: [2, 81] }, { 31: [2, 37], 59: [2, 37], 66: [2, 37], 74: [2, 37], 75: [2, 37], 76: [2, 37], 77: [2, 37], 78: [2, 37], 79: [2, 37] }, { 31: [2, 38], 59: [2, 38], 66: [2, 38], 74: [2, 38], 75: [2, 38], 76: [2, 38], 77: [2, 38], 78: [2, 38], 79: [2, 38] }, { 18: 58, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 28: 59, 31: [2, 53], 59: [2, 53], 66: [2, 53], 69: [2, 53], 74: [2, 53], 75: [2, 53], 76: [2, 53], 77: [2, 53], 78: [2, 53], 79: [2, 53] }, { 31: [2, 59], 33: 60, 59: [2, 59], 66: [2, 59], 69: [2, 59], 74: [2, 59], 75: [2, 59], 76: [2, 59], 77: [2, 59], 78: [2, 59], 79: [2, 59] }, { 19: 61, 21: [2, 45], 59: [2, 45], 66: [2, 45], 74: [2, 45], 75: [2, 45], 76: [2, 45], 77: [2, 45], 78: [2, 45], 79: [2, 45] }, { 18: 65, 31: [2, 75], 48: 62, 57: 63, 58: 66, 59: [1, 40], 63: 64, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 66: [1, 70] }, { 21: [2, 39], 31: [2, 39], 52: [2, 39], 59: [2, 39], 62: [2, 39], 66: [2, 39], 69: [2, 39], 74: [2, 39], 75: [2, 39], 76: [2, 39], 77: [2, 39], 78: [2, 39], 79: [2, 39], 81: [1, 45] }, { 18: 65, 51: 71, 52: [2, 79], 57: 72, 58: 66, 59: [1, 40], 63: 73, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 24: 74, 45: [1, 75] }, { 45: [2, 50] }, { 4: 76, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 37: [2, 43], 42: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 45: [2, 19] }, { 18: 77, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 4: 78, 6: 3, 13: [2, 43], 14: [2, 43], 17: [2, 43], 27: [2, 43], 32: [2, 43], 45: [2, 43], 46: [2, 43], 49: [2, 43], 53: [2, 43] }, { 24: 79, 45: [1, 75] }, { 45: [2, 52] }, { 5: [2, 10], 13: [2, 10], 14: [2, 10], 17: [2, 10], 27: [2, 10], 32: [2, 10], 37: [2, 10], 42: [2, 10], 45: [2, 10], 46: [2, 10], 49: [2, 10], 53: [2, 10] }, { 18: 65, 31: [2, 83], 56: 80, 57: 81, 58: 66, 59: [1, 40], 63: 82, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 59: [2, 85], 60: 83, 62: [2, 85], 66: [2, 85], 74: [2, 85], 75: [2, 85], 76: [2, 85], 77: [2, 85], 78: [2, 85], 79: [2, 85] }, { 18: 65, 29: 84, 31: [2, 55], 57: 85, 58: 66, 59: [1, 40], 63: 86, 64: 67, 65: 68, 66: [1, 69], 69: [2, 55], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 65, 31: [2, 61], 34: 87, 57: 88, 58: 66, 59: [1, 40], 63: 89, 64: 67, 65: 68, 66: [1, 69], 69: [2, 61], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 18: 65, 20: 90, 21: [2, 47], 57: 91, 58: 66, 59: [1, 40], 63: 92, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 31: [1, 93] }, { 31: [2, 74], 59: [2, 74], 66: [2, 74], 74: [2, 74], 75: [2, 74], 76: [2, 74], 77: [2, 74], 78: [2, 74], 79: [2, 74] }, { 31: [2, 76] }, { 21: [2, 24], 31: [2, 24], 52: [2, 24], 59: [2, 24], 62: [2, 24], 66: [2, 24], 69: [2, 24], 74: [2, 24], 75: [2, 24], 76: [2, 24], 77: [2, 24], 78: [2, 24], 79: [2, 24] }, { 21: [2, 25], 31: [2, 25], 52: [2, 25], 59: [2, 25], 62: [2, 25], 66: [2, 25], 69: [2, 25], 74: [2, 25], 75: [2, 25], 76: [2, 25], 77: [2, 25], 78: [2, 25], 79: [2, 25] }, { 21: [2, 27], 31: [2, 27], 52: [2, 27], 62: [2, 27], 65: 94, 66: [1, 95], 69: [2, 27] }, { 21: [2, 89], 31: [2, 89], 52: [2, 89], 62: [2, 89], 66: [2, 89], 69: [2, 89] }, { 21: [2, 42], 31: [2, 42], 52: [2, 42], 59: [2, 42], 62: [2, 42], 66: [2, 42], 67: [1, 96], 69: [2, 42], 74: [2, 42], 75: [2, 42], 76: [2, 42], 77: [2, 42], 78: [2, 42], 79: [2, 42], 81: [2, 42] }, { 21: [2, 41], 31: [2, 41], 52: [2, 41], 59: [2, 41], 62: [2, 41], 66: [2, 41], 69: [2, 41], 74: [2, 41], 75: [2, 41], 76: [2, 41], 77: [2, 41], 78: [2, 41], 79: [2, 41], 81: [2, 41] }, { 52: [1, 97] }, { 52: [2, 78], 59: [2, 78], 66: [2, 78], 74: [2, 78], 75: [2, 78], 76: [2, 78], 77: [2, 78], 78: [2, 78], 79: [2, 78] }, { 52: [2, 80] }, { 5: [2, 12], 13: [2, 12], 14: [2, 12], 17: [2, 12], 27: [2, 12], 32: [2, 12], 37: [2, 12], 42: [2, 12], 45: [2, 12], 46: [2, 12], 49: [2, 12], 53: [2, 12] }, { 18: 98, 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 36: 50, 37: [1, 52], 41: 51, 42: [1, 53], 43: 100, 44: 99, 45: [2, 71] }, { 31: [2, 65], 38: 101, 59: [2, 65], 66: [2, 65], 69: [2, 65], 74: [2, 65], 75: [2, 65], 76: [2, 65], 77: [2, 65], 78: [2, 65], 79: [2, 65] }, { 45: [2, 17] }, { 5: [2, 13], 13: [2, 13], 14: [2, 13], 17: [2, 13], 27: [2, 13], 32: [2, 13], 37: [2, 13], 42: [2, 13], 45: [2, 13], 46: [2, 13], 49: [2, 13], 53: [2, 13] }, { 31: [1, 102] }, { 31: [2, 82], 59: [2, 82], 66: [2, 82], 74: [2, 82], 75: [2, 82], 76: [2, 82], 77: [2, 82], 78: [2, 82], 79: [2, 82] }, { 31: [2, 84] }, { 18: 65, 57: 104, 58: 66, 59: [1, 40], 61: 103, 62: [2, 87], 63: 105, 64: 67, 65: 68, 66: [1, 69], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 30: 106, 31: [2, 57], 68: 107, 69: [1, 108] }, { 31: [2, 54], 59: [2, 54], 66: [2, 54], 69: [2, 54], 74: [2, 54], 75: [2, 54], 76: [2, 54], 77: [2, 54], 78: [2, 54], 79: [2, 54] }, { 31: [2, 56], 69: [2, 56] }, { 31: [2, 63], 35: 109, 68: 110, 69: [1, 108] }, { 31: [2, 60], 59: [2, 60], 66: [2, 60], 69: [2, 60], 74: [2, 60], 75: [2, 60], 76: [2, 60], 77: [2, 60], 78: [2, 60], 79: [2, 60] }, { 31: [2, 62], 69: [2, 62] }, { 21: [1, 111] }, { 21: [2, 46], 59: [2, 46], 66: [2, 46], 74: [2, 46], 75: [2, 46], 76: [2, 46], 77: [2, 46], 78: [2, 46], 79: [2, 46] }, { 21: [2, 48] }, { 5: [2, 21], 13: [2, 21], 14: [2, 21], 17: [2, 21], 27: [2, 21], 32: [2, 21], 37: [2, 21], 42: [2, 21], 45: [2, 21], 46: [2, 21], 49: [2, 21], 53: [2, 21] }, { 21: [2, 90], 31: [2, 90], 52: [2, 90], 62: [2, 90], 66: [2, 90], 69: [2, 90] }, { 67: [1, 96] }, { 18: 65, 57: 112, 58: 66, 59: [1, 40], 66: [1, 32], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 22], 13: [2, 22], 14: [2, 22], 17: [2, 22], 27: [2, 22], 32: [2, 22], 37: [2, 22], 42: [2, 22], 45: [2, 22], 46: [2, 22], 49: [2, 22], 53: [2, 22] }, { 31: [1, 113] }, { 45: [2, 18] }, { 45: [2, 72] }, { 18: 65, 31: [2, 67], 39: 114, 57: 115, 58: 66, 59: [1, 40], 63: 116, 64: 67, 65: 68, 66: [1, 69], 69: [2, 67], 72: 23, 73: 24, 74: [1, 25], 75: [1, 26], 76: [1, 27], 77: [1, 28], 78: [1, 29], 79: [1, 31], 80: 30 }, { 5: [2, 23], 13: [2, 23], 14: [2, 23], 17: [2, 23], 27: [2, 23], 32: [2, 23], 37: [2, 23], 42: [2, 23], 45: [2, 23], 46: [2, 23], 49: [2, 23], 53: [2, 23] }, { 62: [1, 117] }, { 59: [2, 86], 62: [2, 86], 66: [2, 86], 74: [2, 86], 75: [2, 86], 76: [2, 86], 77: [2, 86], 78: [2, 86], 79: [2, 86] }, { 62: [2, 88] }, { 31: [1, 118] }, { 31: [2, 58] }, { 66: [1, 120], 70: 119 }, { 31: [1, 121] }, { 31: [2, 64] }, { 14: [2, 11] }, { 21: [2, 28], 31: [2, 28], 52: [2, 28], 62: [2, 28], 66: [2, 28], 69: [2, 28] }, { 5: [2, 20], 13: [2, 20], 14: [2, 20], 17: [2, 20], 27: [2, 20], 32: [2, 20], 37: [2, 20], 42: [2, 20], 45: [2, 20], 46: [2, 20], 49: [2, 20], 53: [2, 20] }, { 31: [2, 69], 40: 122, 68: 123, 69: [1, 108] }, { 31: [2, 66], 59: [2, 66], 66: [2, 66], 69: [2, 66], 74: [2, 66], 75: [2, 66], 76: [2, 66], 77: [2, 66], 78: [2, 66], 79: [2, 66] }, { 31: [2, 68], 69: [2, 68] }, { 21: [2, 26], 31: [2, 26], 52: [2, 26], 59: [2, 26], 62: [2, 26], 66: [2, 26], 69: [2, 26], 74: [2, 26], 75: [2, 26], 76: [2, 26], 77: [2, 26], 78: [2, 26], 79: [2, 26] }, { 13: [2, 14], 14: [2, 14], 17: [2, 14], 27: [2, 14], 32: [2, 14], 37: [2, 14], 42: [2, 14], 45: [2, 14], 46: [2, 14], 49: [2, 14], 53: [2, 14] }, { 66: [1, 125], 71: [1, 124] }, { 66: [2, 91], 71: [2, 91] }, { 13: [2, 15], 14: [2, 15], 17: [2, 15], 27: [2, 15], 32: [2, 15], 42: [2, 15], 45: [2, 15], 46: [2, 15], 49: [2, 15], 53: [2, 15] }, { 31: [1, 126] }, { 31: [2, 70] }, { 31: [2, 29] }, { 66: [2, 92], 71: [2, 92] }, { 13: [2, 16], 14: [2, 16], 17: [2, 16], 27: [2, 16], 32: [2, 16], 37: [2, 16], 42: [2, 16], 45: [2, 16], 46: [2, 16], 49: [2, 16], 53: [2, 16] }], + defaultActions: { 4: [2, 1], 49: [2, 50], 51: [2, 19], 55: [2, 52], 64: [2, 76], 73: [2, 80], 78: [2, 17], 82: [2, 84], 92: [2, 48], 99: [2, 18], 100: [2, 72], 105: [2, 88], 107: [2, 58], 110: [2, 64], 111: [2, 11], 123: [2, 70], 124: [2, 29] }, + parseError: function parseError(str, hash) { + throw new Error(str); + }, + parse: function parse(input) { + var self = this, + stack = [0], + vstack = [null], + lstack = [], + table = this.table, + yytext = "", + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + this.lexer.setInput(input); + this.lexer.yy = this.yy; + this.yy.lexer = this.lexer; + this.yy.parser = this; + if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {}; + var yyloc = this.lexer.yylloc; + lstack.push(yyloc); + var ranges = this.lexer.options && this.lexer.options.ranges; + if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError; + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + function lex() { + var token; + token = self.lexer.lex() || 1; + if (typeof token !== "number") { + token = self.symbols_[token] || token; + } + return token; + } + var symbol, + preErrorSymbol, + state, + action, + a, + r, + yyval = {}, + p, + len, + newState, + expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + if (!recovering) { + expected = []; + for (p in table[state]) if (this.terminals_[p] && p > 2) { + expected.push("'" + this.terminals_[p] + "'"); + } + if (this.lexer.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected }); + } + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(this.lexer.yytext); + lstack.push(this.lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = this.lexer.yyleng; + yytext = this.lexer.yytext; + yylineno = this.lexer.yylineno; + yyloc = this.lexer.yylloc; + if (recovering > 0) recovering--; + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column }; + if (ranges) { + yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; + } + r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + /* Jison generated lexer */ + var lexer = (function () { + var lexer = { EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + setInput: function setInput(input) { + this._input = input; + this._more = this._less = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }; + if (this.options.ranges) this.yylloc.range = [0, 0]; + this.offset = 0; + return this; + }, + input: function input() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) this.yylloc.range[1]++; + + this._input = this._input.slice(1); + return ch; + }, + unput: function unput(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len - 1); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) this.yylineno -= lines.length - 1; + var r = this.yylloc.range; + + this.yylloc = { first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + return this; + }, + more: function more() { + this._more = true; + return this; + }, + less: function less(n) { + this.unput(this.match.slice(n)); + }, + pastInput: function pastInput() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + upcomingInput: function upcomingInput() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + showPosition: function showPosition() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + next: function next() { + if (this.done) { + return this.EOF; + } + if (!this._input) this.done = true; + + var token, match, tempMatch, index, col, lines; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (!this.options.flex) break; + } + } + if (match) { + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) this.yylineno += lines.length; + this.yylloc = { first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) this.done = false; + if (token) { + return token; + } else { + return; + } + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { text: "", token: null, line: this.yylineno }); + } + }, + lex: function lex() { + var r = this.next(); + if (typeof r !== "undefined") { + return r; + } else { + return this.lex(); + } + }, + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + popState: function popState() { + return this.conditionStack.pop(); + }, + _currentRules: function _currentRules() { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + }, + topState: function topState() { + return this.conditionStack[this.conditionStack.length - 2]; + }, + pushState: function begin(condition) { + this.begin(condition); + } }; + lexer.options = {}; + lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + + function strip(start, end) { + return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng - end); + } + + var YYSTATE = YY_START; + switch ($avoiding_name_collisions) { + case 0: + if (yy_.yytext.slice(-2) === "\\\\") { + strip(0, 1); + this.begin("mu"); + } else if (yy_.yytext.slice(-1) === "\\") { + strip(0, 1); + this.begin("emu"); + } else { + this.begin("mu"); + } + if (yy_.yytext) { + return 14; + }break; + case 1: + return 14; + break; + case 2: + this.popState(); + return 14; + + break; + case 3: + yy_.yytext = yy_.yytext.substr(5, yy_.yyleng - 9); + this.popState(); + return 16; + + break; + case 4: + return 14; + break; + case 5: + this.popState(); + return 13; + + break; + case 6: + return 59; + break; + case 7: + return 62; + break; + case 8: + return 17; + break; + case 9: + this.popState(); + this.begin("raw"); + return 21; + + break; + case 10: + return 53; + break; + case 11: + return 27; + break; + case 12: + return 45; + break; + case 13: + this.popState();return 42; + break; + case 14: + this.popState();return 42; + break; + case 15: + return 32; + break; + case 16: + return 37; + break; + case 17: + return 49; + break; + case 18: + return 46; + break; + case 19: + this.unput(yy_.yytext); + this.popState(); + this.begin("com"); + + break; + case 20: + this.popState(); + return 13; + + break; + case 21: + return 46; + break; + case 22: + return 67; + break; + case 23: + return 66; + break; + case 24: + return 66; + break; + case 25: + return 81; + break; + case 26: + // ignore whitespace + break; + case 27: + this.popState();return 52; + break; + case 28: + this.popState();return 31; + break; + case 29: + yy_.yytext = strip(1, 2).replace(/\\"/g, "\"");return 74; + break; + case 30: + yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 74; + break; + case 31: + return 79; + break; + case 32: + return 76; + break; + case 33: + return 76; + break; + case 34: + return 77; + break; + case 35: + return 78; + break; + case 36: + return 75; + break; + case 37: + return 69; + break; + case 38: + return 71; + break; + case 39: + return 66; + break; + case 40: + return 66; + break; + case 41: + return "INVALID"; + break; + case 42: + return 5; + break; + } + }; + lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{\/)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[[^\]]*\])/, /^(?:.)/, /^(?:$)/]; + lexer.conditions = { mu: { rules: [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42], inclusive: false }, emu: { rules: [2], inclusive: false }, com: { rules: [5], inclusive: false }, raw: { rules: [3, 4], inclusive: false }, INITIAL: { rules: [0, 1, 42], inclusive: true } }; + return lexer; + })(); + parser.lexer = lexer; + function Parser() { + this.yy = {}; + }Parser.prototype = parser;parser.Parser = Parser; + return new Parser(); + })();exports["default"] = handlebars; + module.exports = exports["default"]; + +/***/ }, +/* 15 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = __webpack_require__(8)['default']; + + exports.__esModule = true; + + var _Visitor = __webpack_require__(6); + + var _Visitor2 = _interopRequireWildcard(_Visitor); + + function WhitespaceControl() {} + WhitespaceControl.prototype = new _Visitor2['default'](); + + WhitespaceControl.prototype.Program = function (program) { + var isRoot = !this.isRootSeen; + this.isRootSeen = true; + + var body = program.body; + for (var i = 0, l = body.length; i < l; i++) { + var current = body[i], + strip = this.accept(current); + + if (!strip) { + continue; + } + + var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot), + _isNextWhitespace = isNextWhitespace(body, i, isRoot), + openStandalone = strip.openStandalone && _isPrevWhitespace, + closeStandalone = strip.closeStandalone && _isNextWhitespace, + inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace; + + if (strip.close) { + omitRight(body, i, true); + } + if (strip.open) { + omitLeft(body, i, true); + } + + if (inlineStandalone) { + omitRight(body, i); + + if (omitLeft(body, i)) { + // If we are on a standalone node, save the indent info for partials + if (current.type === 'PartialStatement') { + // Pull out the whitespace from the final line + current.indent = /([ \t]+$)/.exec(body[i - 1].original)[1]; + } + } + } + if (openStandalone) { + omitRight((current.program || current.inverse).body); + + // Strip out the previous content node if it's whitespace only + omitLeft(body, i); + } + if (closeStandalone) { + // Always strip the next node + omitRight(body, i); + + omitLeft((current.inverse || current.program).body); + } + } + + return program; + }; + WhitespaceControl.prototype.BlockStatement = function (block) { + this.accept(block.program); + this.accept(block.inverse); + + // Find the inverse program that is involed with whitespace stripping. + var program = block.program || block.inverse, + inverse = block.program && block.inverse, + firstInverse = inverse, + lastInverse = inverse; + + if (inverse && inverse.chained) { + firstInverse = inverse.body[0].program; + + // Walk the inverse chain to find the last inverse that is actually in the chain. + while (lastInverse.chained) { + lastInverse = lastInverse.body[lastInverse.body.length - 1].program; + } + } + + var strip = { + open: block.openStrip.open, + close: block.closeStrip.close, + + // Determine the standalone candiacy. Basically flag our content as being possibly standalone + // so our parent can determine if we actually are standalone + openStandalone: isNextWhitespace(program.body), + closeStandalone: isPrevWhitespace((firstInverse || program).body) + }; + + if (block.openStrip.close) { + omitRight(program.body, null, true); + } + + if (inverse) { + var inverseStrip = block.inverseStrip; + + if (inverseStrip.open) { + omitLeft(program.body, null, true); + } + + if (inverseStrip.close) { + omitRight(firstInverse.body, null, true); + } + if (block.closeStrip.open) { + omitLeft(lastInverse.body, null, true); + } + + // Find standalone else statments + if (isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) { + omitLeft(program.body); + omitRight(firstInverse.body); + } + } else if (block.closeStrip.open) { + omitLeft(program.body, null, true); + } + + return strip; + }; + + WhitespaceControl.prototype.MustacheStatement = function (mustache) { + return mustache.strip; + }; + + WhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) { + /* istanbul ignore next */ + var strip = node.strip || {}; + return { + inlineStandalone: true, + open: strip.open, + close: strip.close + }; + }; + + function isPrevWhitespace(body, i, isRoot) { + if (i === undefined) { + i = body.length; + } + + // Nodes that end with newlines are considered whitespace (but are special + // cased for strip operations) + var prev = body[i - 1], + sibling = body[i - 2]; + if (!prev) { + return isRoot; + } + + if (prev.type === 'ContentStatement') { + return (sibling || !isRoot ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(prev.original); + } + } + function isNextWhitespace(body, i, isRoot) { + if (i === undefined) { + i = -1; + } + + var next = body[i + 1], + sibling = body[i + 2]; + if (!next) { + return isRoot; + } + + if (next.type === 'ContentStatement') { + return (sibling || !isRoot ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(next.original); + } + } + + // Marks the node to the right of the position as omitted. + // I.e. {{foo}}' ' will mark the ' ' node as omitted. + // + // If i is undefined, then the first child will be marked as such. + // + // If mulitple is truthy then all whitespace will be stripped out until non-whitespace + // content is met. + function omitRight(body, i, multiple) { + var current = body[i == null ? 0 : i + 1]; + if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) { + return; + } + + var original = current.value; + current.value = current.value.replace(multiple ? /^\s+/ : /^[ \t]*\r?\n?/, ''); + current.rightStripped = current.value !== original; + } + + // Marks the node to the left of the position as omitted. + // I.e. ' '{{foo}} will mark the ' ' node as omitted. + // + // If i is undefined then the last child will be marked as such. + // + // If mulitple is truthy then all whitespace will be stripped out until non-whitespace + // content is met. + function omitLeft(body, i, multiple) { + var current = body[i == null ? body.length - 1 : i - 1]; + if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) { + return; + } + + // We omit the last node if it's whitespace only and not preceeded by a non-content node. + var original = current.value; + current.value = current.value.replace(multiple ? /\s+$/ : /[ \t]+$/, ''); + current.leftStripped = current.value !== original; + return current.leftStripped; + } + + exports['default'] = WhitespaceControl; + module.exports = exports['default']; + +/***/ }, +/* 16 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = __webpack_require__(8)['default']; + + exports.__esModule = true; + exports.SourceLocation = SourceLocation; + exports.id = id; + exports.stripFlags = stripFlags; + exports.stripComment = stripComment; + exports.preparePath = preparePath; + exports.prepareMustache = prepareMustache; + exports.prepareRawBlock = prepareRawBlock; + exports.prepareBlock = prepareBlock; + + var _Exception = __webpack_require__(11); + + var _Exception2 = _interopRequireWildcard(_Exception); + + function SourceLocation(source, locInfo) { + this.source = source; + this.start = { + line: locInfo.first_line, + column: locInfo.first_column + }; + this.end = { + line: locInfo.last_line, + column: locInfo.last_column + }; + } + + function id(token) { + if (/^\[.*\]$/.test(token)) { + return token.substr(1, token.length - 2); + } else { + return token; + } + } + + function stripFlags(open, close) { + return { + open: open.charAt(2) === '~', + close: close.charAt(close.length - 3) === '~' + }; + } + + function stripComment(comment) { + return comment.replace(/^\{\{~?\!-?-?/, '').replace(/-?-?~?\}\}$/, ''); + } + + function preparePath(data, parts, locInfo) { + locInfo = this.locInfo(locInfo); + + var original = data ? '@' : '', + dig = [], + depth = 0, + depthString = ''; + + for (var i = 0, l = parts.length; i < l; i++) { + var part = parts[i].part, + + // If we have [] syntax then we do not treat path references as operators, + // i.e. foo.[this] resolves to approximately context.foo['this'] + isLiteral = parts[i].original !== part; + original += (parts[i].separator || '') + part; + + if (!isLiteral && (part === '..' || part === '.' || part === 'this')) { + if (dig.length > 0) { + throw new _Exception2['default']('Invalid path: ' + original, { loc: locInfo }); + } else if (part === '..') { + depth++; + depthString += '../'; + } + } else { + dig.push(part); + } + } + + return new this.PathExpression(data, depth, dig, original, locInfo); + } + + function prepareMustache(path, params, hash, open, strip, locInfo) { + // Must use charAt to support IE pre-10 + var escapeFlag = open.charAt(3) || open.charAt(2), + escaped = escapeFlag !== '{' && escapeFlag !== '&'; + + return new this.MustacheStatement(path, params, hash, escaped, strip, this.locInfo(locInfo)); + } + + function prepareRawBlock(openRawBlock, content, close, locInfo) { + if (openRawBlock.path.original !== close) { + var errorNode = { loc: openRawBlock.path.loc }; + + throw new _Exception2['default'](openRawBlock.path.original + ' doesn\'t match ' + close, errorNode); + } + + locInfo = this.locInfo(locInfo); + var program = new this.Program([content], null, {}, locInfo); + + return new this.BlockStatement(openRawBlock.path, openRawBlock.params, openRawBlock.hash, program, undefined, {}, {}, {}, locInfo); + } + + function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) { + // When we are chaining inverse calls, we will not have a close path + if (close && close.path && openBlock.path.original !== close.path.original) { + var errorNode = { loc: openBlock.path.loc }; + + throw new _Exception2['default'](openBlock.path.original + ' doesn\'t match ' + close.path.original, errorNode); + } + + program.blockParams = openBlock.blockParams; + + var inverse = undefined, + inverseStrip = undefined; + + if (inverseAndProgram) { + if (inverseAndProgram.chain) { + inverseAndProgram.program.body[0].closeStrip = close.strip; + } + + inverseStrip = inverseAndProgram.strip; + inverse = inverseAndProgram.program; + } + + if (inverted) { + inverted = inverse; + inverse = program; + program = inverted; + } + + return new this.BlockStatement(openBlock.path, openBlock.params, openBlock.hash, program, inverse, openBlock.strip, inverseStrip, close && close.strip, this.locInfo(locInfo)); + } + +/***/ }, +/* 17 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + /*global define */ + + var _isArray = __webpack_require__(12); + + var SourceNode = undefined; + + try { + /* istanbul ignore next */ + if (false) { + // We don't support this in AMD environments. For these environments, we asusme that + // they are running on the browser and thus have no need for the source-map library. + var SourceMap = require('source-map'); + SourceNode = SourceMap.SourceNode; + } + } catch (err) {} + + /* istanbul ignore if: tested but not covered in istanbul due to dist build */ + if (!SourceNode) { + SourceNode = function (line, column, srcFile, chunks) { + this.src = ''; + if (chunks) { + this.add(chunks); + } + }; + /* istanbul ignore next */ + SourceNode.prototype = { + add: function add(chunks) { + if (_isArray.isArray(chunks)) { + chunks = chunks.join(''); + } + this.src += chunks; + }, + prepend: function prepend(chunks) { + if (_isArray.isArray(chunks)) { + chunks = chunks.join(''); + } + this.src = chunks + this.src; + }, + toStringWithSourceMap: function toStringWithSourceMap() { + return { code: this.toString() }; + }, + toString: function toString() { + return this.src; + } + }; + } + + function castChunk(chunk, codeGen, loc) { + if (_isArray.isArray(chunk)) { + var ret = []; + + for (var i = 0, len = chunk.length; i < len; i++) { + ret.push(codeGen.wrap(chunk[i], loc)); + } + return ret; + } else if (typeof chunk === 'boolean' || typeof chunk === 'number') { + // Handle primitives that the SourceNode will throw up on + return chunk + ''; + } + return chunk; + } + + function CodeGen(srcFile) { + this.srcFile = srcFile; + this.source = []; + } + + CodeGen.prototype = { + prepend: function prepend(source, loc) { + this.source.unshift(this.wrap(source, loc)); + }, + push: function push(source, loc) { + this.source.push(this.wrap(source, loc)); + }, + + merge: function merge() { + var source = this.empty(); + this.each(function (line) { + source.add([' ', line, '\n']); + }); + return source; + }, + + each: function each(iter) { + for (var i = 0, len = this.source.length; i < len; i++) { + iter(this.source[i]); + } + }, + + empty: function empty() { + var loc = arguments[0] === undefined ? this.currentLocation || { start: {} } : arguments[0]; + + return new SourceNode(loc.start.line, loc.start.column, this.srcFile); + }, + wrap: function wrap(chunk) { + var loc = arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1]; + + if (chunk instanceof SourceNode) { + return chunk; + } + + chunk = castChunk(chunk, this, loc); + + return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk); + }, + + functionCall: function functionCall(fn, type, params) { + params = this.generateList(params); + return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']); + }, + + quotedString: function quotedString(str) { + return '"' + (str + '').replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 + .replace(/\u2029/g, '\\u2029') + '"'; + }, + + objectLiteral: function objectLiteral(obj) { + var pairs = []; + + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + var value = castChunk(obj[key], this); + if (value !== 'undefined') { + pairs.push([this.quotedString(key), ':', value]); + } + } + } + + var ret = this.generateList(pairs); + ret.prepend('{'); + ret.add('}'); + return ret; + }, + + generateList: function generateList(entries, loc) { + var ret = this.empty(loc); + + for (var i = 0, len = entries.length; i < len; i++) { + if (i) { + ret.add(','); + } + + ret.add(castChunk(entries[i], this, loc)); + } + + return ret; + }, + + generateArray: function generateArray(entries, loc) { + var ret = this.generateList(entries, loc); + ret.prepend('['); + ret.add(']'); + + return ret; + } + }; + + exports['default'] = CodeGen; + module.exports = exports['default']; + + /* NOP */ + +/***/ } +/******/ ]) +}); +; \ No newline at end of file diff --git a/node_modules/handlebars/dist/handlebars.min.js b/node_modules/handlebars/dist/handlebars.min.js index 53cf921..150df8a 100644 --- a/node_modules/handlebars/dist/handlebars.min.js +++ b/node_modules/handlebars/dist/handlebars.min.js @@ -1,6 +1,6 @@ /*! - handlebars v2.0.0 + handlebars v3.0.3 Copyright (C) 2011-2014 by Yehuda Katz @@ -24,5 +24,6 @@ THE SOFTWARE. @license */ -!function(a,b){"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.Handlebars=a.Handlebars||b()}(this,function(){var a=function(){"use strict";function a(a){this.string=a}var b;return a.prototype.toString=function(){return""+this.string},b=a}(),b=function(a){"use strict";function b(a){return i[a]}function c(a){for(var b=1;b":">",'"':""","'":"'","`":"`"},j=/[&<>"'`]/g,k=/[&<>"'`]/;g.extend=c;var l=Object.prototype.toString;g.toString=l;var m=function(a){return"function"==typeof a};m(/x/)&&(m=function(a){return"function"==typeof a&&"[object Function]"===l.call(a)});var m;g.isFunction=m;var n=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===l.call(a):!1};return g.isArray=n,g.escapeExpression=d,g.isEmpty=e,g.appendContextPath=f,g}(a),c=function(){"use strict";function a(a,b){var d;b&&b.firstLine&&(d=b.firstLine,a+=" - "+d+":"+b.firstColumn);for(var e=Error.prototype.constructor.call(this,a),f=0;f0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):d(this);if(c.data&&c.ids){var g=q(c.data);g.contextPath=f.appendContextPath(c.data.contextPath,c.name),c={data:g}}return e(b,c)}),a.registerHelper("each",function(a,b){if(!b)throw new g("Must pass iterator to #each");var c,d,e=b.fn,h=b.inverse,i=0,j="";if(b.data&&b.ids&&(d=f.appendContextPath(b.data.contextPath,b.ids[0])+"."),l(a)&&(a=a.call(this)),b.data&&(c=q(b.data)),a&&"object"==typeof a)if(k(a))for(var m=a.length;m>i;i++)c&&(c.index=i,c.first=0===i,c.last=i===a.length-1,d&&(c.contextPath=d+i)),j+=e(a[i],{data:c});else for(var n in a)a.hasOwnProperty(n)&&(c&&(c.key=n,c.index=i,c.first=0===i,d&&(c.contextPath=d+n)),j+=e(a[n],{data:c}),i++);return 0===i&&(j=h(this)),j}),a.registerHelper("if",function(a,b){return l(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||f.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper("with",function(a,b){l(a)&&(a=a.call(this));var c=b.fn;if(f.isEmpty(a))return b.inverse(this);if(b.data&&b.ids){var d=q(b.data);d.contextPath=f.appendContextPath(b.data.contextPath,b.ids[0]),b={data:d}}return c(a,b)}),a.registerHelper("log",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper("lookup",function(a,b){return a&&a[b]})}var e={},f=a,g=b,h="2.0.0";e.VERSION=h;var i=6;e.COMPILER_REVISION=i;var j={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};e.REVISION_CHANGES=j;var k=f.isArray,l=f.isFunction,m=f.toString,n="[object Object]";e.HandlebarsEnvironment=c,c.prototype={constructor:c,logger:o,log:p,registerHelper:function(a,b){if(m.call(a)===n){if(b)throw new g("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){m.call(a)===n?f.extend(this.partials,a):this.partials[a]=b},unregisterPartial:function(a){delete this.partials[a]}};var o={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(a,b){if(o.level<=a){var c=o.methodMap[a];"undefined"!=typeof console&&console[c]&&console[c].call(console,b)}}};e.logger=o;var p=o.log;e.log=p;var q=function(a){var b=f.extend({},a);return b._parent=a,b};return e.createFrame=q,e}(b,c),e=function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=m;if(b!==c){if(c>b){var d=n[c],e=n[b];throw new l("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new l("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){if(!b)throw new l("No environment passed to template");if(!a||!a.main)throw new l("Unknown template object: "+typeof a);b.VM.checkRevision(a.compiler);var c=function(c,d,e,f,g,h,i,j,m){g&&(f=k.extend({},f,g));var n=b.VM.invokePartial.call(this,c,e,f,h,i,j,m);if(null==n&&b.compile){var o={helpers:h,partials:i,data:j,depths:m};i[e]=b.compile(c,{data:void 0!==j,compat:a.compat},b),n=i[e](f,o)}if(null!=n){if(d){for(var p=n.split("\n"),q=0,r=p.length;r>q&&(p[q]||q+1!==r);q++)p[q]=d+p[q];n=p.join("\n")}return n}throw new l("The partial "+e+" could not be compiled when running in runtime-only mode")},d={lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:k.escapeExpression,invokePartial:c,fn:function(b){return a[b]},programs:[],program:function(a,b,c){var d=this.programs[a],e=this.fn(a);return b||c?d=f(this,a,e,b,c):d||(d=this.programs[a]=f(this,a,e)),d},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=k.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler},e=function(b,c){c=c||{};var f=c.data;e._setup(c),!c.partial&&a.useData&&(f=i(b,f));var g;return a.useDepths&&(g=c.depths?[b].concat(c.depths):[b]),a.main.call(d,b,d.helpers,d.partials,f,g)};return e.isTop=!0,e._setup=function(c){c.partial?(d.helpers=c.helpers,d.partials=c.partials):(d.helpers=d.merge(c.helpers,b.helpers),a.usePartial&&(d.partials=d.merge(c.partials,b.partials)))},e._child=function(b,c,e){if(a.useDepths&&!e)throw new l("must pass parent depths");return f(d,b,a[b],c,e)},e}function f(a,b,c,d,e){var f=function(b,f){return f=f||{},c.call(a,b,a.helpers,a.partials,f.data||d,e&&[b].concat(e))};return f.program=b,f.depth=e?e.length:0,f}function g(a,b,c,d,e,f,g){var h={partial:!0,helpers:d,partials:e,data:f,depths:g};if(void 0===a)throw new l("The partial "+b+" could not be found");return a instanceof Function?a(c,h):void 0}function h(){return""}function i(a,b){return b&&"root"in b||(b=b?o(b):{},b.root=a),b}var j={},k=a,l=b,m=c.COMPILER_REVISION,n=c.REVISION_CHANGES,o=c.createFrame;return j.checkRevision=d,j.template=e,j.program=f,j.invokePartial=g,j.noop=h,j}(b,c,d),f=function(a,b,c,d,e){"use strict";var f,g=a,h=b,i=c,j=d,k=e,l=function(){var a=new g.HandlebarsEnvironment;return j.extend(a,g),a.SafeString=h,a.Exception=i,a.Utils=j,a.escapeExpression=j.escapeExpression,a.VM=k,a.template=function(b){return k.template(b,a)},a},m=l();return m.create=l,m["default"]=m,f=m}(d,a,c,b,e),g=function(a){"use strict";function b(a){a=a||{},this.firstLine=a.first_line,this.firstColumn=a.first_column,this.lastColumn=a.last_column,this.lastLine=a.last_line}var c,d=a,e={ProgramNode:function(a,c,d){b.call(this,d),this.type="program",this.statements=a,this.strip=c},MustacheNode:function(a,c,d,f,g){if(b.call(this,g),this.type="mustache",this.strip=f,null!=d&&d.charAt){var h=d.charAt(3)||d.charAt(2);this.escaped="{"!==h&&"&"!==h}else this.escaped=!!d;this.sexpr=a instanceof e.SexprNode?a:new e.SexprNode(a,c),this.id=this.sexpr.id,this.params=this.sexpr.params,this.hash=this.sexpr.hash,this.eligibleHelper=this.sexpr.eligibleHelper,this.isHelper=this.sexpr.isHelper},SexprNode:function(a,c,d){b.call(this,d),this.type="sexpr",this.hash=c;var e=this.id=a[0],f=this.params=a.slice(1);this.isHelper=!(!f.length&&!c),this.eligibleHelper=this.isHelper||e.isSimple},PartialNode:function(a,c,d,e,f){b.call(this,f),this.type="partial",this.partialName=a,this.context=c,this.hash=d,this.strip=e,this.strip.inlineStandalone=!0},BlockNode:function(a,c,d,e,f){b.call(this,f),this.type="block",this.mustache=a,this.program=c,this.inverse=d,this.strip=e,d&&!c&&(this.isInverse=!0)},RawBlockNode:function(a,c,f,g){if(b.call(this,g),a.sexpr.id.original!==f)throw new d(a.sexpr.id.original+" doesn't match "+f,this);c=new e.ContentNode(c,g),this.type="block",this.mustache=a,this.program=new e.ProgramNode([c],{},g)},ContentNode:function(a,c){b.call(this,c),this.type="content",this.original=this.string=a},HashNode:function(a,c){b.call(this,c),this.type="hash",this.pairs=a},IdNode:function(a,c){b.call(this,c),this.type="ID";for(var e="",f=[],g=0,h="",i=0,j=a.length;j>i;i++){var k=a[i].part;if(e+=(a[i].separator||"")+k,".."===k||"."===k||"this"===k){if(f.length>0)throw new d("Invalid path: "+e,this);".."===k?(g++,h+="../"):this.isScoped=!0}else f.push(k)}this.original=e,this.parts=f,this.string=f.join("."),this.depth=g,this.idName=h+this.string,this.isSimple=1===a.length&&!this.isScoped&&0===g,this.stringModeValue=this.string},PartialNameNode:function(a,c){b.call(this,c),this.type="PARTIAL_NAME",this.name=a.original},DataNode:function(a,c){b.call(this,c),this.type="DATA",this.id=a,this.stringModeValue=a.stringModeValue,this.idName="@"+a.stringModeValue},StringNode:function(a,c){b.call(this,c),this.type="STRING",this.original=this.string=this.stringModeValue=a},NumberNode:function(a,c){b.call(this,c),this.type="NUMBER",this.original=this.number=a,this.stringModeValue=Number(a)},BooleanNode:function(a,c){b.call(this,c),this.type="BOOLEAN",this.bool=a,this.stringModeValue="true"===a},CommentNode:function(a,c){b.call(this,c),this.type="comment",this.comment=a,this.strip={inlineStandalone:!0}}};return c=e}(c),h=function(){"use strict";var a,b=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,CONTENT:12,COMMENT:13,openRawBlock:14,END_RAW_BLOCK:15,OPEN_RAW_BLOCK:16,sexpr:17,CLOSE_RAW_BLOCK:18,openBlock:19,block_option0:20,closeBlock:21,openInverse:22,block_option1:23,OPEN_BLOCK:24,CLOSE:25,OPEN_INVERSE:26,inverseAndProgram:27,INVERSE:28,OPEN_ENDBLOCK:29,path:30,OPEN:31,OPEN_UNESCAPED:32,CLOSE_UNESCAPED:33,OPEN_PARTIAL:34,partialName:35,param:36,partial_option0:37,partial_option1:38,sexpr_repetition0:39,sexpr_option0:40,dataName:41,STRING:42,NUMBER:43,BOOLEAN:44,OPEN_SEXPR:45,CLOSE_SEXPR:46,hash:47,hash_repetition_plus0:48,hashSegment:49,ID:50,EQUALS:51,DATA:52,pathSegments:53,SEP:54,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",12:"CONTENT",13:"COMMENT",15:"END_RAW_BLOCK",16:"OPEN_RAW_BLOCK",18:"CLOSE_RAW_BLOCK",24:"OPEN_BLOCK",25:"CLOSE",26:"OPEN_INVERSE",28:"INVERSE",29:"OPEN_ENDBLOCK",31:"OPEN",32:"OPEN_UNESCAPED",33:"CLOSE_UNESCAPED",34:"OPEN_PARTIAL",42:"STRING",43:"NUMBER",44:"BOOLEAN",45:"OPEN_SEXPR",46:"CLOSE_SEXPR",50:"ID",51:"EQUALS",52:"DATA",54:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[10,3],[14,3],[9,4],[9,4],[19,3],[22,3],[27,2],[21,3],[8,3],[8,3],[11,5],[11,4],[17,3],[17,1],[36,1],[36,1],[36,1],[36,1],[36,1],[36,3],[47,1],[49,3],[35,1],[35,1],[35,1],[41,2],[30,1],[53,3],[53,1],[6,0],[6,2],[20,0],[20,1],[23,0],[23,1],[37,0],[37,1],[38,0],[38,1],[39,0],[39,2],[40,0],[40,1],[48,1],[48,2]],performAction:function(a,b,c,d,e,f){var g=f.length-1;switch(e){case 1:return d.prepareProgram(f[g-1].statements,!0),f[g-1];case 2:this.$=new d.ProgramNode(d.prepareProgram(f[g]),{},this._$);break;case 3:this.$=f[g];break;case 4:this.$=f[g];break;case 5:this.$=f[g];break;case 6:this.$=f[g];break;case 7:this.$=new d.ContentNode(f[g],this._$);break;case 8:this.$=new d.CommentNode(f[g],this._$);break;case 9:this.$=new d.RawBlockNode(f[g-2],f[g-1],f[g],this._$);break;case 10:this.$=new d.MustacheNode(f[g-1],null,"","",this._$);break;case 11:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!1,this._$);break;case 12:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!0,this._$);break;case 13:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 14:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 15:this.$={strip:d.stripFlags(f[g-1],f[g-1]),program:f[g]};break;case 16:this.$={path:f[g-1],strip:d.stripFlags(f[g-2],f[g])};break;case 17:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 18:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 19:this.$=new d.PartialNode(f[g-3],f[g-2],f[g-1],d.stripFlags(f[g-4],f[g]),this._$);break;case 20:this.$=new d.PartialNode(f[g-2],void 0,f[g-1],d.stripFlags(f[g-3],f[g]),this._$);break;case 21:this.$=new d.SexprNode([f[g-2]].concat(f[g-1]),f[g],this._$);break;case 22:this.$=new d.SexprNode([f[g]],null,this._$);break;case 23:this.$=f[g];break;case 24:this.$=new d.StringNode(f[g],this._$);break;case 25:this.$=new d.NumberNode(f[g],this._$);break;case 26:this.$=new d.BooleanNode(f[g],this._$);break;case 27:this.$=f[g];break;case 28:f[g-1].isHelper=!0,this.$=f[g-1];break;case 29:this.$=new d.HashNode(f[g],this._$);break;case 30:this.$=[f[g-2],f[g]];break;case 31:this.$=new d.PartialNameNode(f[g],this._$);break;case 32:this.$=new d.PartialNameNode(new d.StringNode(f[g],this._$),this._$);break;case 33:this.$=new d.PartialNameNode(new d.NumberNode(f[g],this._$));break;case 34:this.$=new d.DataNode(f[g],this._$);break;case 35:this.$=new d.IdNode(f[g],this._$);break;case 36:f[g-2].push({part:f[g],separator:f[g-1]}),this.$=f[g-2];break;case 37:this.$=[{part:f[g]}];break;case 38:this.$=[];break;case 39:f[g-1].push(f[g]);break;case 48:this.$=[];break;case 49:f[g-1].push(f[g]);break;case 52:this.$=[f[g]];break;case 53:f[g-1].push(f[g])}},table:[{3:1,4:2,5:[2,38],6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],31:[2,38],32:[2,38],34:[2,38]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:[1,10],13:[1,11],14:16,16:[1,20],19:14,22:15,24:[1,18],26:[1,19],28:[2,2],29:[2,2],31:[1,12],32:[1,13],34:[1,17]},{1:[2,1]},{5:[2,39],12:[2,39],13:[2,39],16:[2,39],24:[2,39],26:[2,39],28:[2,39],29:[2,39],31:[2,39],32:[2,39],34:[2,39]},{5:[2,3],12:[2,3],13:[2,3],16:[2,3],24:[2,3],26:[2,3],28:[2,3],29:[2,3],31:[2,3],32:[2,3],34:[2,3]},{5:[2,4],12:[2,4],13:[2,4],16:[2,4],24:[2,4],26:[2,4],28:[2,4],29:[2,4],31:[2,4],32:[2,4],34:[2,4]},{5:[2,5],12:[2,5],13:[2,5],16:[2,5],24:[2,5],26:[2,5],28:[2,5],29:[2,5],31:[2,5],32:[2,5],34:[2,5]},{5:[2,6],12:[2,6],13:[2,6],16:[2,6],24:[2,6],26:[2,6],28:[2,6],29:[2,6],31:[2,6],32:[2,6],34:[2,6]},{5:[2,7],12:[2,7],13:[2,7],16:[2,7],24:[2,7],26:[2,7],28:[2,7],29:[2,7],31:[2,7],32:[2,7],34:[2,7]},{5:[2,8],12:[2,8],13:[2,8],16:[2,8],24:[2,8],26:[2,8],28:[2,8],29:[2,8],31:[2,8],32:[2,8],34:[2,8]},{17:21,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:27,30:22,41:23,50:[1,26],52:[1,25],53:24},{4:28,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{4:29,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{12:[1,30]},{30:32,35:31,42:[1,33],43:[1,34],50:[1,26],53:24},{17:35,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:36,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:37,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[1,38]},{18:[2,48],25:[2,48],33:[2,48],39:39,42:[2,48],43:[2,48],44:[2,48],45:[2,48],46:[2,48],50:[2,48],52:[2,48]},{18:[2,22],25:[2,22],33:[2,22],46:[2,22]},{18:[2,35],25:[2,35],33:[2,35],42:[2,35],43:[2,35],44:[2,35],45:[2,35],46:[2,35],50:[2,35],52:[2,35],54:[1,40]},{30:41,50:[1,26],53:24},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],52:[2,37],54:[2,37]},{33:[1,42]},{20:43,27:44,28:[1,45],29:[2,40]},{23:46,27:47,28:[1,45],29:[2,42]},{15:[1,48]},{25:[2,46],30:51,36:49,38:50,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],47:57,48:58,49:60,50:[1,59],52:[1,25],53:24},{25:[2,31],42:[2,31],43:[2,31],44:[2,31],45:[2,31],50:[2,31],52:[2,31]},{25:[2,32],42:[2,32],43:[2,32],44:[2,32],45:[2,32],50:[2,32],52:[2,32]},{25:[2,33],42:[2,33],43:[2,33],44:[2,33],45:[2,33],50:[2,33],52:[2,33]},{25:[1,61]},{25:[1,62]},{18:[1,63]},{5:[2,17],12:[2,17],13:[2,17],16:[2,17],24:[2,17],26:[2,17],28:[2,17],29:[2,17],31:[2,17],32:[2,17],34:[2,17]},{18:[2,50],25:[2,50],30:51,33:[2,50],36:65,40:64,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],46:[2,50],47:66,48:58,49:60,50:[1,59],52:[1,25],53:24},{50:[1,67]},{18:[2,34],25:[2,34],33:[2,34],42:[2,34],43:[2,34],44:[2,34],45:[2,34],46:[2,34],50:[2,34],52:[2,34]},{5:[2,18],12:[2,18],13:[2,18],16:[2,18],24:[2,18],26:[2,18],28:[2,18],29:[2,18],31:[2,18],32:[2,18],34:[2,18]},{21:68,29:[1,69]},{29:[2,41]},{4:70,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{21:71,29:[1,69]},{29:[2,43]},{5:[2,9],12:[2,9],13:[2,9],16:[2,9],24:[2,9],26:[2,9],28:[2,9],29:[2,9],31:[2,9],32:[2,9],34:[2,9]},{25:[2,44],37:72,47:73,48:58,49:60,50:[1,74]},{25:[1,75]},{18:[2,23],25:[2,23],33:[2,23],42:[2,23],43:[2,23],44:[2,23],45:[2,23],46:[2,23],50:[2,23],52:[2,23]},{18:[2,24],25:[2,24],33:[2,24],42:[2,24],43:[2,24],44:[2,24],45:[2,24],46:[2,24],50:[2,24],52:[2,24]},{18:[2,25],25:[2,25],33:[2,25],42:[2,25],43:[2,25],44:[2,25],45:[2,25],46:[2,25],50:[2,25],52:[2,25]},{18:[2,26],25:[2,26],33:[2,26],42:[2,26],43:[2,26],44:[2,26],45:[2,26],46:[2,26],50:[2,26],52:[2,26]},{18:[2,27],25:[2,27],33:[2,27],42:[2,27],43:[2,27],44:[2,27],45:[2,27],46:[2,27],50:[2,27],52:[2,27]},{17:76,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[2,47]},{18:[2,29],25:[2,29],33:[2,29],46:[2,29],49:77,50:[1,74]},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],51:[1,78],52:[2,37],54:[2,37]},{18:[2,52],25:[2,52],33:[2,52],46:[2,52],50:[2,52]},{12:[2,13],13:[2,13],16:[2,13],24:[2,13],26:[2,13],28:[2,13],29:[2,13],31:[2,13],32:[2,13],34:[2,13]},{12:[2,14],13:[2,14],16:[2,14],24:[2,14],26:[2,14],28:[2,14],29:[2,14],31:[2,14],32:[2,14],34:[2,14]},{12:[2,10]},{18:[2,21],25:[2,21],33:[2,21],46:[2,21]},{18:[2,49],25:[2,49],33:[2,49],42:[2,49],43:[2,49],44:[2,49],45:[2,49],46:[2,49],50:[2,49],52:[2,49]},{18:[2,51],25:[2,51],33:[2,51],46:[2,51]},{18:[2,36],25:[2,36],33:[2,36],42:[2,36],43:[2,36],44:[2,36],45:[2,36],46:[2,36],50:[2,36],52:[2,36],54:[2,36]},{5:[2,11],12:[2,11],13:[2,11],16:[2,11],24:[2,11],26:[2,11],28:[2,11],29:[2,11],31:[2,11],32:[2,11],34:[2,11]},{30:79,50:[1,26],53:24},{29:[2,15]},{5:[2,12],12:[2,12],13:[2,12],16:[2,12],24:[2,12],26:[2,12],28:[2,12],29:[2,12],31:[2,12],32:[2,12],34:[2,12]},{25:[1,80]},{25:[2,45]},{51:[1,78]},{5:[2,20],12:[2,20],13:[2,20],16:[2,20],24:[2,20],26:[2,20],28:[2,20],29:[2,20],31:[2,20],32:[2,20],34:[2,20]},{46:[1,81]},{18:[2,53],25:[2,53],33:[2,53],46:[2,53],50:[2,53]},{30:51,36:82,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],50:[1,26],52:[1,25],53:24},{25:[1,83]},{5:[2,19],12:[2,19],13:[2,19],16:[2,19],24:[2,19],26:[2,19],28:[2,19],29:[2,19],31:[2,19],32:[2,19],34:[2,19]},{18:[2,28],25:[2,28],33:[2,28],42:[2,28],43:[2,28],44:[2,28],45:[2,28],46:[2,28],50:[2,28],52:[2,28]},{18:[2,30],25:[2,30],33:[2,30],46:[2,30],50:[2,30]},{5:[2,16],12:[2,16],13:[2,16],16:[2,16],24:[2,16],26:[2,16],28:[2,16],29:[2,16],31:[2,16],32:[2,16],34:[2,16]}],defaultActions:{4:[2,1],44:[2,41],47:[2,43],57:[2,47],63:[2,10],70:[2,15],73:[2,45]},parseError:function(a){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||"undefined"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 12;break;case 1:return 12;case 2:return this.popState(),12;case 3:return b.yytext=b.yytext.substr(5,b.yyleng-9),this.popState(),15;case 4:return 12;case 5:return e(0,4),this.popState(),13;case 6:return 45;case 7:return 46;case 8:return 16;case 9:return this.popState(),this.begin("raw"),18;case 10:return 34;case 11:return 24;case 12:return 29;case 13:return this.popState(),28;case 14:return this.popState(),28;case 15:return 26;case 16:return 26;case 17:return 32;case 18:return 31;case 19:this.popState(),this.begin("com");break;case 20:return e(3,5),this.popState(),13;case 21:return 31;case 22:return 51;case 23:return 50;case 24:return 50;case 25:return 54;case 26:break;case 27:return this.popState(),33;case 28:return this.popState(),25;case 29:return b.yytext=e(1,2).replace(/\\"/g,'"'),42;case 30:return b.yytext=e(1,2).replace(/\\'/g,"'"),42;case 31:return 52;case 32:return 44;case 33:return 44;case 34:return 43;case 35:return 50;case 36:return b.yytext=e(1,2),50;case 37:return"INVALID";case 38:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[5],inclusive:!1},raw:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,1,38],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();return a=b}(),i=function(a){"use strict";function b(a,b){return{left:"~"===a.charAt(2),right:"~"===b.charAt(b.length-3)}}function c(a,b,c,d,i,k){if(a.sexpr.id.original!==d.path.original)throw new j(a.sexpr.id.original+" doesn't match "+d.path.original,a);var l=c&&c.program,m={left:a.strip.left,right:d.strip.right,openStandalone:f(b.statements),closeStandalone:e((l||b).statements)};if(a.strip.right&&g(b.statements,null,!0),l){var n=c.strip;n.left&&h(b.statements,null,!0),n.right&&g(l.statements,null,!0),d.strip.left&&h(l.statements,null,!0),e(b.statements)&&f(l.statements)&&(h(b.statements),g(l.statements))}else d.strip.left&&h(b.statements,null,!0);return i?new this.BlockNode(a,l,b,m,k):new this.BlockNode(a,b,l,m,k)}function d(a,b){for(var c=0,d=a.length;d>c;c++){var i=a[c],j=i.strip;if(j){var k=e(a,c,b,"partial"===i.type),l=f(a,c,b),m=j.openStandalone&&k,n=j.closeStandalone&&l,o=j.inlineStandalone&&k&&l;j.right&&g(a,c,!0),j.left&&h(a,c,!0),o&&(g(a,c),h(a,c)&&"partial"===i.type&&(i.indent=/([ \t]+$)/.exec(a[c-1].original)?RegExp.$1:"")),m&&(g((i.program||i.inverse).statements),h(a,c)),n&&(g(a,c),h((i.inverse||i.program).statements))}}return a}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"content"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"content"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&"content"===d.type&&(c||!d.rightStripped)){var e=d.string;d.string=d.string.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.string!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"content"===d.type&&(c||!d.leftStripped)){var e=d.string;return d.string=d.string.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.string!==e,d.leftStripped}}var i={},j=a;return i.stripFlags=b,i.prepareBlock=c,i.prepareProgram=d,i}(c),j=function(a,b,c,d){"use strict";function e(a){return a.constructor===h.ProgramNode?a:(g.yy=k,g.parse(a))}var f={},g=a,h=b,i=c,j=d.extend;f.parser=g;var k={};return j(k,i,h),f.parse=e,f}(h,g,i,b),k=function(a,b){"use strict";function c(){}function d(a,b,c){if(null==a||"string"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new h("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function e(a,b,c){function d(){var d=c.parse(a),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}if(null==a||"string"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new h("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var e,f=function(a,b){return e||(e=d()),e.call(this,a,b)};return f._setup=function(a){return e||(e=d()),e._setup(a)},f._child=function(a,b,c){return e||(e=d()),e._child(a,b,c)},f}function f(a,b){if(a===b)return!0;if(i(a)&&i(b)&&a.length===b.length){for(var c=0;cc;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!f(d.args,e.args))return!1}for(b=this.children.length,c=0;b>c;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.opcodes=[],this.children=[],this.depths={list:[]},this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds;var c=this.options.knownHelpers;if(this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)this.options.knownHelpers[d]=c[d];return this.accept(a)},accept:function(a){return this[a.type](a)},program:function(a){for(var b=a.statements,c=0,d=b.length;d>c;c++)this.accept(b[c]);return this.isSimple=1===d,this.depths.list=this.depths.list.sort(function(a,b){return a-b}),this},compileProgram:function(a){var b,c=(new this.compiler).compile(a,this.options),d=this.guid++; -this.usePartial=this.usePartial||c.usePartial,this.children[d]=c;for(var e=0,f=c.depths.list.length;f>e;e++)b=c.depths.list[e],2>b||this.addDepth(b-1);return d},block:function(a){var b=a.mustache,c=a.program,d=a.inverse;c&&(c=this.compileProgram(c)),d&&(d=this.compileProgram(d));var e=b.sexpr,f=this.classifySexpr(e);"helper"===f?this.helperSexpr(e,c,d):"simple"===f?(this.simpleSexpr(e),this.opcode("pushProgram",c),this.opcode("pushProgram",d),this.opcode("emptyHash"),this.opcode("blockValue",e.id.original)):(this.ambiguousSexpr(e,c,d),this.opcode("pushProgram",c),this.opcode("pushProgram",d),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},hash:function(a){var b,c,d=a.pairs;for(this.opcode("pushHash"),b=0,c=d.length;c>b;b++)this.pushParam(d[b][1]);for(;b--;)this.opcode("assignToHash",d[b][0]);this.opcode("popHash")},partial:function(a){var b=a.partialName;this.usePartial=!0,a.hash?this.accept(a.hash):this.opcode("push","undefined"),a.context?this.accept(a.context):(this.opcode("getContext",0),this.opcode("pushContext")),this.opcode("invokePartial",b.name,a.indent||""),this.opcode("append")},content:function(a){a.string&&this.opcode("appendContent",a.string)},mustache:function(a){this.sexpr(a.sexpr),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ambiguousSexpr:function(a,b,c){var d=a.id,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.ID(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.id;"DATA"===b.type?this.DATA(b):b.parts.length?this.ID(b):(this.addDepth(b.depth),this.opcode("getContext",b.depth),this.opcode("pushContext")),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.id,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new h("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.falsy=!0,this.ID(e),this.opcode("invokeHelper",d.length,e.original,e.isSimple)}},sexpr:function(a){var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ID:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0];b?this.opcode("lookupOnContext",a.parts,a.falsy,a.isScoped):this.opcode("pushContext")},DATA:function(a){this.options.data=!0,this.opcode("lookupData",a.id.depth,a.id.parts)},STRING:function(a){this.opcode("pushString",a.string)},NUMBER:function(a){this.opcode("pushLiteral",a.number)},BOOLEAN:function(a){this.opcode("pushLiteral",a.bool)},comment:function(){},opcode:function(a){this.opcodes.push({opcode:a,args:j.call(arguments,1)})},addDepth:function(a){0!==a&&(this.depths[a]||(this.depths[a]=!0,this.depths.list.push(a)))},classifySexpr:function(a){var b=a.isHelper,c=a.eligibleHelper,d=this.options;if(c&&!b){var e=a.id.parts[0];d.knownHelpers[e]?b=!0:d.knownHelpersOnly&&(c=!1)}return b?"helper":c?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;c>b;b++)this.pushParam(a[b])},pushParam:function(a){this.stringParams?(a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",a.stringModeValue,a.type),"sexpr"===a.type&&this.sexpr(a)):(this.trackIds&&this.opcode("pushId",a.type,a.idName||a.stringModeValue),this.accept(a))},setupFullMustacheParams:function(a,b,c){var d=a.params;return this.pushParams(d),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.hash(a.hash):this.opcode("emptyHash"),d}},g.precompile=d,g.compile=e,g}(c,b),l=function(a,b){"use strict";function c(a){this.value=a}function d(){}var e,f=a.COMPILER_REVISION,g=a.REVISION_CHANGES,h=b;d.prototype={nameLookup:function(a,b){return d.isValidJavaScriptVariableName(b)?a+"."+b:a+"['"+b+"']"},depthedLookup:function(a){return this.aliases.lookup="this.lookup",'lookup(depths, "'+a+'")'},compilerInfo:function(){var a=f,b=g[a];return[a,b]},appendToBuffer:function(a){return this.environment.isSimple?"return "+a+";":{appendToBuffer:!0,content:a,toString:function(){return"buffer += "+a+";"}}},initializeBuffer:function(){return this.quotedString("")},namespace:"Handlebars",compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.depths.list.length||this.options.compat;var e,f,g,i=a.opcodes;for(f=0,g=i.length;g>f;f++)e=i[f],this[e.opcode].apply(this,e.args);if(this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new h("Compile completed with content left on stack");var j=this.createFunctionContext(d);if(this.isChild)return j;var k={compiler:this.compilerInfo(),main:j},l=this.context.programs;for(f=0,g=l.length;g>f;f++)l[f]&&(k[f]=l[f]);return this.environment.usePartial&&(k.usePartial=!0),this.options.data&&(k.useData=!0),this.useDepths&&(k.useDepths=!0),this.options.compat&&(k.compat=!0),d||(k.compiler=JSON.stringify(k.compiler),k=this.objectLiteral(k)),k},preamble:function(){this.lastContext=0,this.source=[]},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));for(var d in this.aliases)this.aliases.hasOwnProperty(d)&&(b+=", "+d+"="+this.aliases[d]);var e=["depth0","helpers","partials","data"];this.useDepths&&e.push("depths");var f=this.mergeSource(b);return a?(e.push(f),Function.apply(this,e)):"function("+e.join(",")+") {\n "+f+"}"},mergeSource:function(a){for(var b,c,d="",e=!this.forceBuffer,f=0,g=this.source.length;g>f;f++){var h=this.source[f];h.appendToBuffer?b=b?b+"\n + "+h.content:h.content:(b&&(d?d+="buffer += "+b+";\n ":(c=!0,d=b+";\n "),b=void 0),d+=h+"\n ",this.environment.isSimple||(e=!1))}return e?(b||!d)&&(d+="return "+(b||'""')+";\n"):(a+=", buffer = "+(c?"":this.initializeBuffer()),d+=b?"return buffer + "+b+";\n":"return buffer;\n"),a&&(d="var "+a.substring(2)+(c?"":";\n ")+d),d},blockValue:function(a){this.aliases.blockHelperMissing="helpers.blockHelperMissing";var b=[this.contextName(0)];this.setupParams(a,0,b);var c=this.popStack();b.splice(1,0,c),this.push("blockHelperMissing.call("+b.join(", ")+")")},ambiguousBlockValue:function(){this.aliases.blockHelperMissing="helpers.blockHelperMissing";var a=[this.contextName(0)];this.setupParams("",0,a,!0),this.flushInline();var b=this.topStack();a.splice(1,0,b),this.pushSource("if (!"+this.lastHelper+") { "+b+" = blockHelperMissing.call("+a.join(", ")+"); }")},appendContent:function(a){this.pendingContent&&(a=this.pendingContent+a),this.pendingContent=a},append:function(){this.flushInline();var a=this.popStack();this.pushSource("if ("+a+" != null) { "+this.appendToBuffer(a)+" }"),this.environment.isSimple&&this.pushSource("else { "+this.appendToBuffer("''")+" }")},appendEscaped:function(){this.aliases.escapeExpression="this.escapeExpression",this.pushSource(this.appendToBuffer("escapeExpression("+this.popStack()+")"))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c){var d=0,e=a.length;for(c||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[d++]));e>d;d++)this.replaceStack(function(c){var e=this.nameLookup(c,a[d],"context");return b?" && "+e:" != null ? "+e+" : "+c})},lookupData:function(a,b){a?this.pushStackLiteral("this.data(data, "+a+")"):this.pushStackLiteral("data");for(var c=b.length,d=0;c>d;d++)this.replaceStack(function(a){return" && "+this.nameLookup(a,b[d],"data")})},resolvePossibleLambda:function(){this.aliases.lambda="this.lambda",this.push("lambda("+this.popStack()+", "+this.contextName(0)+")")},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"sexpr"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(){this.pushStackLiteral("{}"),this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}"))},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push("{"+a.ids.join(",")+"}"),this.stringParams&&(this.push("{"+a.contexts.join(",")+"}"),this.push("{"+a.types.join(",")+"}")),this.push("{\n "+a.values.join(",\n ")+"\n }")},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},push:function(a){return this.inlineStack.push(a),a},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},invokeHelper:function(a,b,c){this.aliases.helperMissing="helpers.helperMissing";var d=this.popStack(),e=this.setupHelper(a,b),f=(c?e.name+" || ":"")+d+" || helperMissing";this.push("(("+f+").call("+e.callParams+"))")},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(c.name+".call("+c.callParams+")")},invokeAmbiguous:function(a,b){this.aliases.functionType='"function"',this.aliases.helperMissing="helpers.helperMissing",this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper");this.push("((helper = (helper = "+e+" || "+c+") != null ? helper : helperMissing"+(d.paramsInit?"),("+d.paramsInit:"")+"),(typeof helper === functionType ? helper.call("+d.callParams+") : helper))")},invokePartial:function(a,b){var c=[this.nameLookup("partials",a,"partial"),"'"+b+"'","'"+a+"'",this.popStack(),this.popStack(),"helpers","partials"];this.options.data?c.push("data"):this.options.compat&&c.push("undefined"),this.options.compat&&c.push("depths"),this.push("this.invokePartial("+c.join(", ")+")")},assignToHash:function(a){var b,c,d,e=this.popStack();this.trackIds&&(d=this.popStack()),this.stringParams&&(c=this.popStack(),b=this.popStack());var f=this.hash;b&&f.contexts.push("'"+a+"': "+b),c&&f.types.push("'"+a+"': "+c),d&&f.ids.push("'"+a+"': "+d),f.values.push("'"+a+"': ("+e+")")},pushId:function(a,b){"ID"===a||"DATA"===a?this.pushString(b):"sexpr"===a?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:d,compileChildren:function(a,b){for(var c,d,e=a.children,f=0,g=e.length;g>f;f++){c=e[f],d=new this.compiler;var h=this.matchExistingProgram(c);null==h?(this.context.programs.push(""),h=this.context.programs.length,c.index=h,c.name="program"+h,this.context.programs[h]=d.compile(c,b,this.context,!this.precompile),this.context.environments[h]=c,this.useDepths=this.useDepths||d.useDepths):(c.index=h,c.name="program"+h)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){var b=this.environment.children[a],c=(b.depths.list,this.useDepths),d=[b.index,"data"];return c&&d.push("depths"),"this.program("+d.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},pushStackLiteral:function(a){return this.push(new c(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent))),this.pendingContent=void 0),a&&this.source.push(a)},pushStack:function(a){this.flushInline();var b=this.incrStack();return this.pushSource(b+" = "+a+";"),this.compileStack.push(b),b},replaceStack:function(a){{var b,d,e,f="";this.isInline()}if(!this.isInline())throw new h("replaceStack on non-inline");var g=this.popStack(!0);if(g instanceof c)f=b=g.value,e=!0;else{d=!this.stackSlot;var i=d?this.incrStack():this.topStackName();f="("+this.push(i)+" = "+g+")",b=this.topStack()}var j=a.call(this,b);e||this.popStack(),d&&this.stackSlot--,this.push("("+f+j+")")},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;if(a.length){this.inlineStack=[];for(var b=0,d=a.length;d>b;b++){var e=a[b];e instanceof c?this.compileStack.push(e):this.pushStack(e)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),d=(b?this.inlineStack:this.compileStack).pop();if(!a&&d instanceof c)return d.value;if(!b){if(!this.stackSlot)throw new h("Invalid stack pop");this.stackSlot--}return d},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof c?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(this.quotedString(c)+":"+a[c]);return"{"+b.join(",")+"}"},setupHelper:function(a,b,c){var d=[],e=this.setupParams(b,a,d,c),f=this.nameLookup("helpers",b,"helper");return{params:d,paramsInit:e,name:f,callParams:[this.contextName(0)].concat(d).join(", ")}},setupOptions:function(a,b,c){var d,e,f,g={},h=[],i=[],j=[];g.name=this.quotedString(a),g.hash=this.popStack(),this.trackIds&&(g.hashIds=this.popStack()),this.stringParams&&(g.hashTypes=this.popStack(),g.hashContexts=this.popStack()),e=this.popStack(),f=this.popStack(),(f||e)&&(f||(f="this.noop"),e||(e="this.noop"),g.fn=f,g.inverse=e);for(var k=b;k--;)d=this.popStack(),c[k]=d,this.trackIds&&(j[k]=this.popStack()),this.stringParams&&(i[k]=this.popStack(),h[k]=this.popStack());return this.trackIds&&(g.ids="["+j.join(",")+"]"),this.stringParams&&(g.types="["+i.join(",")+"]",g.contexts="["+h.join(",")+"]"),this.options.data&&(g.data="data"),g},setupParams:function(a,b,c,d){var e=this.objectLiteral(this.setupOptions(a,b,c));return d?(this.useRegister("options"),c.push("options"),"options="+e):(c.push(e),"")}};for(var i="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "),j=d.RESERVED_WORDS={},k=0,l=i.length;l>k;k++)j[i[k]]=!0;return d.isValidJavaScriptVariableName=function(a){return!d.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},e=d}(d,c),m=function(a,b,c,d,e){"use strict";var f,g=a,h=b,i=c.parser,j=c.parse,k=d.Compiler,l=d.compile,m=d.precompile,n=e,o=g.create,p=function(){var a=o();return a.compile=function(b,c){return l(b,c,a)},a.precompile=function(b,c){return m(b,c,a)},a.AST=h,a.Compiler=k,a.JavaScriptCompiler=n,a.Parser=i,a.parse=j,a};return g=p(),g.create=p,g["default"]=g,f=g}(f,g,j,k,l);return m}); \ No newline at end of file +!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):"object"==typeof exports?exports.Handlebars=b():a.Handlebars=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";function d(){var a=r();return a.compile=function(b,c){return k.compile(b,c,a)},a.precompile=function(b,c){return k.precompile(b,c,a)},a.AST=i["default"],a.Compiler=k.Compiler,a.JavaScriptCompiler=m["default"],a.Parser=j.parser,a.parse=j.parse,a}var e=c(8)["default"];b.__esModule=!0;var f=c(1),g=e(f),h=c(2),i=e(h),j=c(3),k=c(4),l=c(5),m=e(l),n=c(6),o=e(n),p=c(7),q=e(p),r=g["default"].create,s=d();s.create=d,q["default"](s),s.Visitor=o["default"],s["default"]=s,b["default"]=s,a.exports=b["default"]},function(a,b,c){"use strict";function d(){var a=new g.HandlebarsEnvironment;return m.extend(a,g),a.SafeString=i["default"],a.Exception=k["default"],a.Utils=m,a.escapeExpression=m.escapeExpression,a.VM=o,a.template=function(b){return o.template(b,a)},a}var e=c(8)["default"];b.__esModule=!0;var f=c(9),g=e(f),h=c(10),i=e(h),j=c(11),k=e(j),l=c(12),m=e(l),n=c(13),o=e(n),p=c(7),q=e(p),r=d();r.create=d,q["default"](r),r["default"]=r,b["default"]=r,a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0;var c={Program:function(a,b,c,d){this.loc=d,this.type="Program",this.body=a,this.blockParams=b,this.strip=c},MustacheStatement:function(a,b,c,d,e,f){this.loc=f,this.type="MustacheStatement",this.path=a,this.params=b||[],this.hash=c,this.escaped=d,this.strip=e},BlockStatement:function(a,b,c,d,e,f,g,h,i){this.loc=i,this.type="BlockStatement",this.path=a,this.params=b||[],this.hash=c,this.program=d,this.inverse=e,this.openStrip=f,this.inverseStrip=g,this.closeStrip=h},PartialStatement:function(a,b,c,d,e){this.loc=e,this.type="PartialStatement",this.name=a,this.params=b||[],this.hash=c,this.indent="",this.strip=d},ContentStatement:function(a,b){this.loc=b,this.type="ContentStatement",this.original=this.value=a},CommentStatement:function(a,b,c){this.loc=c,this.type="CommentStatement",this.value=a,this.strip=b},SubExpression:function(a,b,c,d){this.loc=d,this.type="SubExpression",this.path=a,this.params=b||[],this.hash=c},PathExpression:function(a,b,c,d,e){this.loc=e,this.type="PathExpression",this.data=a,this.original=d,this.parts=c,this.depth=b},StringLiteral:function(a,b){this.loc=b,this.type="StringLiteral",this.original=this.value=a},NumberLiteral:function(a,b){this.loc=b,this.type="NumberLiteral",this.original=this.value=Number(a)},BooleanLiteral:function(a,b){this.loc=b,this.type="BooleanLiteral",this.original=this.value="true"===a},UndefinedLiteral:function(a){this.loc=a,this.type="UndefinedLiteral",this.original=this.value=void 0},NullLiteral:function(a){this.loc=a,this.type="NullLiteral",this.original=this.value=null},Hash:function(a,b){this.loc=b,this.type="Hash",this.pairs=a},HashPair:function(a,b,c){this.loc=c,this.type="HashPair",this.key=a,this.value=b},helpers:{helperExpression:function(a){return!("SubExpression"!==a.type&&!a.params.length&&!a.hash)},scopedId:function(a){return/^\.|this\b/.test(a.original)},simpleId:function(a){return 1===a.parts.length&&!c.helpers.scopedId(a)&&!a.depth}}};b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){if("Program"===a.type)return a;g["default"].yy=o,o.locInfo=function(a){return new o.SourceLocation(b&&b.srcName,a)};var c=new k["default"];return c.accept(g["default"].parse(a))}var e=c(8)["default"];b.__esModule=!0,b.parse=d;var f=c(14),g=e(f),h=c(2),i=e(h),j=c(15),k=e(j),l=c(16),m=e(l),n=c(12);b.parser=g["default"];var o={};n.extend(o,m,i["default"])},function(a,b,c){"use strict";function d(){}function e(a,b,c){if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function f(a,b,c){function d(){var b=c.parse(a,f),d=(new c.Compiler).compile(b,f),e=(new c.JavaScriptCompiler).compile(d,f,void 0,!0);return c.template(e)}function e(a,b){return g||(g=d()),g.call(this,a,b)}var f=void 0===arguments[1]?{}:arguments[1];if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);"data"in f||(f.data=!0),f.compat&&(f.useDepths=!0);var g=void 0;return e._setup=function(a){return g||(g=d()),g._setup(a)},e._child=function(a,b,c,e){return g||(g=d()),g._child(a,b,c,e)},e}function g(a,b){if(a===b)return!0;if(l.isArray(a)&&l.isArray(b)&&a.length===b.length){for(var c=0;cc;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!g(d.args,e.args))return!1}b=this.children.length;for(var c=0;b>c;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds,b.blockParams=b.blockParams||[];var c=b.knownHelpers;if(b.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)d in c&&(b.knownHelpers[d]=c[d]);return this.accept(a)},compileProgram:function(a){var b=new this.compiler,c=b.compile(a,this.options),d=this.guid++;return this.usePartial=this.usePartial||c.usePartial,this.children[d]=c,this.useDepths=this.useDepths||c.useDepths,d},accept:function(a){this.sourceNode.unshift(a);var b=this[a.type](a);return this.sourceNode.shift(),b},Program:function(a){this.options.blockParams.unshift(a.blockParams);for(var b=a.body,c=b.length,d=0;c>d;d++)this.accept(b[d]);return this.options.blockParams.shift(),this.isSimple=1===c,this.blockParams=a.blockParams?a.blockParams.length:0,this},BlockStatement:function(a){h(a);var b=a.program,c=a.inverse;b=b&&this.compileProgram(b),c=c&&this.compileProgram(c);var d=this.classifySexpr(a);"helper"===d?this.helperSexpr(a,b,c):"simple"===d?(this.simpleSexpr(a),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("blockValue",a.path.original)):(this.ambiguousSexpr(a,b,c),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},PartialStatement:function(a){this.usePartial=!0;var b=a.params;if(b.length>1)throw new k["default"]("Unsupported number of partial arguments: "+b.length,a);b.length||b.push({type:"PathExpression",parts:[],depth:0});var c=a.name.original,d="SubExpression"===a.name.type;d&&this.accept(a.name),this.setupFullMustacheParams(a,void 0,void 0,!0);var e=a.indent||"";this.options.preventIndent&&e&&(this.opcode("appendContent",e),e=""),this.opcode("invokePartial",d,c,e),this.opcode("append")},MustacheStatement:function(a){this.SubExpression(a),this.opcode(a.escaped&&!this.options.noEscape?"appendEscaped":"append")},ContentStatement:function(a){a.value&&this.opcode("appendContent",a.value)},CommentStatement:function(){},SubExpression:function(a){h(a);var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.accept(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){this.accept(a.path),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new k["default"]("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.falsy=!0,this.accept(e),this.opcode("invokeHelper",d.length,e.original,n["default"].helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0],c=n["default"].helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode("lookupBlockParam",d,a.parts):b?a.data?(this.options.data=!0,this.opcode("lookupData",a.depth,a.parts)):this.opcode("lookupOnContext",a.parts,a.falsy,c):this.opcode("pushContext")},StringLiteral:function(a){this.opcode("pushString",a.value)},NumberLiteral:function(a){this.opcode("pushLiteral",a.value)},BooleanLiteral:function(a){this.opcode("pushLiteral",a.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode("pushHash");d>c;c++)this.pushParam(b[c].value);for(;c--;)this.opcode("assignToHash",b[c].key);this.opcode("popHash")},opcode:function(a){this.opcodes.push({opcode:a,args:o.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(a){a&&(this.useDepths=!0)},classifySexpr:function(a){var b=n["default"].helpers.simpleId(a.path),c=b&&!!this.blockParamIndex(a.path.parts[0]),d=!c&&n["default"].helpers.helperExpression(a),e=!c&&(d||b);if(e&&!d){var f=a.path.parts[0],g=this.options;g.knownHelpers[f]?d=!0:g.knownHelpersOnly&&(e=!1)}return d?"helper":e?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;c>b;b++)this.pushParam(a[b])},pushParam:function(a){var b=null!=a.value?a.value:a.original||"";if(this.stringParams)b.replace&&(b=b.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",b,a.type),"SubExpression"===a.type&&this.accept(a);else{if(this.trackIds){var c=void 0;if(!a.parts||n["default"].helpers.scopedId(a)||a.depth||(c=this.blockParamIndex(a.parts[0])),c){var d=a.parts.slice(1).join(".");this.opcode("pushId","BlockParam",c,d)}else b=a.original||b,b.replace&&(b=b.replace(/^\.\//g,"").replace(/^\.$/g,"")),this.opcode("pushId",a.type,b)}this.accept(a)}},setupFullMustacheParams:function(a,b,c,d){var e=a.params;return this.pushParams(e),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.accept(a.hash):this.opcode("emptyHash",d),e},blockParamIndex:function(a){for(var b=0,c=this.options.blockParams.length;c>b;b++){var d=this.options.blockParams[b],e=d&&l.indexOf(d,a);if(d&&e>=0)return[b,e]}}}},function(a,b,c){"use strict";function d(a){this.value=a}function e(){}function f(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;g>f;f++)e=b.nameLookup(e,c[f],d);return a?[b.aliasable("this.strict"),"(",e,", ",b.quotedString(c[f]),")"]:e}var g=c(8)["default"];b.__esModule=!0;var h=c(9),i=c(11),j=g(i),k=c(12),l=c(17),m=g(l);e.prototype={nameLookup:function(a,b){return e.isValidJavaScriptVariableName(b)?[a,".",b]:[a,"['",b,"']"]},depthedLookup:function(a){return[this.aliasable("this.lookup"),'(depths, "',a,'")']},compilerInfo:function(){var a=h.COMPILER_REVISION,b=h.REVISION_CHANGES[a];return[a,b]},appendToBuffer:function(a,b,c){return k.isArray(a)||(a=[a]),a=this.source.wrap(a,b),this.environment.isSimple?["return ",a,";"]:c?["buffer += ",a,";"]:(a.appendToBuffer=!0,a)},initializeBuffer:function(){return this.quotedString("")},compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.useDepths||this.options.compat,this.useBlockParams=this.useBlockParams||a.useBlockParams;var e=a.opcodes,f=void 0,g=void 0,h=void 0,i=void 0;for(h=0,i=e.length;i>h;h++)f=e[h],this.source.currentLocation=f.loc,g=g||f.loc,this[f.opcode].apply(this,f.args);if(this.source.currentLocation=g,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new j["default"]("Compile completed with content left on stack");var k=this.createFunctionContext(d);if(this.isChild)return k;var l={compiler:this.compilerInfo(),main:k},m=this.context.programs;for(h=0,i=m.length;i>h;h++)m[h]&&(l[h]=m[h]);return this.environment.usePartial&&(l.usePartial=!0),this.options.data&&(l.useData=!0),this.useDepths&&(l.useDepths=!0),this.useBlockParams&&(l.useBlockParams=!0),this.options.compat&&(l.compat=!0),d?l.compilerOptions=this.options:(l.compiler=JSON.stringify(l.compiler),this.source.currentLocation={start:{line:1,column:0}},l=this.objectLiteral(l),b.srcName?(l=l.toStringWithSourceMap({file:b.destName}),l.map=l.map&&l.map.toString()):l=l.toString()),l},preamble:function(){this.lastContext=0,this.source=new m["default"](this.options.srcName)},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=", alias"+ ++d+"="+e,f.children[0]="alias"+d)}var g=["depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&g.push("blockParams"),this.useDepths&&g.push("depths");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap(["function(",g.join(","),") {\n ",h,"}"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend(" + "):f=a,g=a):(f&&(e?f.prepend("buffer += "):d=!0,g.add(";"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend("return "),g.add(";")):e||this.source.push('return "";'):(a+=", buffer = "+(d?"":this.initializeBuffer()),f?(f.prepend("return buffer + "),g.add(";")):this.source.push("return buffer;")),a&&this.source.prepend("var "+a.substring(2)+(d?"":";\n")),this.source.merge()},blockValue:function(a){var b=this.aliasable("helpers.blockHelperMissing"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,"call",c))},ambiguousBlockValue:function(){var a=this.aliasable("helpers.blockHelperMissing"),b=[this.contextName(0)];this.setupHelperArgs("",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource(["if (!",this.lastHelper,") { ",c," = ",this.source.functionCall(a,"call",b),"}"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[" != null ? ",a,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource(["if (",a," != null) { ",this.appendToBuffer(a,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("this.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c){var d=0;c||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[d++])),this.resolvePath("context",a,d,b)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push(["blockParams[",a[0],"][",a[1],"]"]),this.resolvePath("context",b,1)},lookupData:function(a,b){this.pushStackLiteral(a?"this.data(data, "+a+")":"data"),this.resolvePath("data",b,0,!0)},resolvePath:function(a,b,c,d){var e=this;if(this.options.strict||this.options.assumeObjects)return void this.push(f(this.options.strict,this,b,a));for(var g=b.length;g>c;c++)this.replaceStack(function(f){var g=e.nameLookup(f,b[c],a);return d?[" && ",g]:[" != null ? ",g," : ",f]})},resolvePossibleLambda:function(){this.push([this.aliasable("this.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"SubExpression"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(a){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(a?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(a.ids)),this.stringParams&&(this.push(this.objectLiteral(a.contexts)),this.push(this.objectLiteral(a.types))),this.push(this.objectLiteral(a.values))},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){this.pushStackLiteral(null!=a?this.programExpression(a):null)},invokeHelper:function(a,b,c){var d=this.popStack(),e=this.setupHelper(a,b),f=c?[e.name," || "]:"",g=["("].concat(f,d);this.options.strict||g.push(" || ",this.aliasable("helpers.helperMissing")),g.push(")"),this.push(this.source.functionCall(g,"call",e.callParams))},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(this.source.functionCall(c.name,"call",c.callParams))},invokeAmbiguous:function(a,b){this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper"),f=["(","(helper = ",e," || ",c,")"];this.options.strict||(f[0]="(helper = ",f.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",f,d.paramsInit?["),(",d.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",d.callParams)," : helper))"])},invokePartial:function(a,b,c){var d=[],e=this.setupParams(b,1,d,!1);a&&(b=this.popStack(),delete e.name),c&&(e.indent=JSON.stringify(c)),e.helpers="helpers",e.partials="partials",d.unshift(a?b:this.nameLookup("partials",b,"partial")),this.options.compat&&(e.depths="depths"),e=this.objectLiteral(e),d.push(e),this.push(this.source.functionCall("this.invokePartial","",d))},assignToHash:function(a){var b=this.popStack(),c=void 0,d=void 0,e=void 0;this.trackIds&&(e=this.popStack()),this.stringParams&&(d=this.popStack(),c=this.popStack());var f=this.hash;c&&(f.contexts[a]=c),d&&(f.types[a]=d),e&&(f.ids[a]=e),f.values[a]=b},pushId:function(a,b,c){"BlockParam"===a?this.pushStackLiteral("blockParams["+b[0]+"].path["+b[1]+"]"+(c?" + "+JSON.stringify("."+c):"")):"PathExpression"===a?this.pushString(b):this.pushStackLiteral("SubExpression"===a?"true":"null")},compiler:e,compileChildren:function(a,b){for(var c=a.children,d=void 0,e=void 0,f=0,g=c.length;g>f;f++){d=c[f],e=new this.compiler;var h=this.matchExistingProgram(d);null==h?(this.context.programs.push(""),h=this.context.programs.length,d.index=h,d.name="program"+h,this.context.programs[h]=e.compile(d,b,this.context,!this.precompile),this.context.environments[h]=d,this.useDepths=this.useDepths||e.useDepths,this.useBlockParams=this.useBlockParams||e.useBlockParams):(d.index=h,d.name="program"+h,this.useDepths=this.useDepths||d.useDepths,this.useBlockParams=this.useBlockParams||d.useBlockParams)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){var b=this.environment.children[a],c=[b.index,"data",b.blockParams];return(this.useBlockParams||this.useDepths)&&c.push("blockParams"),this.useDepths&&c.push("depths"),"this.program("+c.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},push:function(a){return a instanceof d||(a=this.source.wrap(a)),this.inlineStack.push(a),a},pushStackLiteral:function(a){this.push(new d(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),a&&this.source.push(a)},replaceStack:function(a){var b=["("],c=void 0,e=void 0,f=void 0;if(!this.isInline())throw new j["default"]("replaceStack on non-inline");var g=this.popStack(!0);if(g instanceof d)c=[g.value],b=["(",c],f=!0;else{e=!0;var h=this.incrStack();b=["((",this.push(h)," = ",g,")"],c=this.topStack()}var i=a.call(this,c);f||this.popStack(),e&&this.stackSlot--,this.push(b.concat(i,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;c>b;b++){var e=a[b];if(e instanceof d)this.compileStack.push(e);else{var f=this.incrStack();this.pushSource([f," = ",e,";"]),this.compileStack.push(f)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();if(!a&&c instanceof d)return c.value;if(!b){if(!this.stackSlot)throw new j["default"]("Invalid stack pop");this.stackSlot--}return c},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof d?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return this.source.quotedString(a)},objectLiteral:function(a){return this.source.objectLiteral(a)},aliasable:function(a){var b=this.aliases[a];return b?(b.referenceCount++,b):(b=this.aliases[a]=this.source.wrap(a),b.aliasable=!0,b.referenceCount=1,b)},setupHelper:function(a,b,c){var d=[],e=this.setupHelperArgs(b,a,d,c),f=this.nameLookup("helpers",b,"helper");return{params:d,paramsInit:e,name:f,callParams:[this.contextName(0)].concat(d)}},setupParams:function(a,b,c){var d={},e=[],f=[],g=[],h=void 0;d.name=this.quotedString(a),d.hash=this.popStack(),this.trackIds&&(d.hashIds=this.popStack()),this.stringParams&&(d.hashTypes=this.popStack(),d.hashContexts=this.popStack());var i=this.popStack(),j=this.popStack();(j||i)&&(d.fn=j||"this.noop",d.inverse=i||"this.noop");for(var k=b;k--;)h=this.popStack(),c[k]=h,this.trackIds&&(g[k]=this.popStack()),this.stringParams&&(f[k]=this.popStack(),e[k]=this.popStack());return this.trackIds&&(d.ids=this.source.generateArray(g)),this.stringParams&&(d.types=this.source.generateArray(f),d.contexts=this.source.generateArray(e)),this.options.data&&(d.data="data"),this.useBlockParams&&(d.blockParams="blockParams"),d},setupHelperArgs:function(a,b,c,d){var e=this.setupParams(a,b,c,!0);return e=this.objectLiteral(e),d?(this.useRegister("options"),c.push("options"),["options=",e]):(c.push(e),"")}},function(){for(var a="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),b=e.RESERVED_WORDS={},c=0,d=a.length;d>c;c++)b[a[c]]=!0}(),e.isValidJavaScriptVariableName=function(a){return!e.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},b["default"]=e,a.exports=b["default"]},function(a,b,c){"use strict";function d(){this.parents=[]}var e=c(8)["default"];b.__esModule=!0;var f=c(11),g=e(f),h=c(2),i=e(h);d.prototype={constructor:d,mutating:!1,acceptKey:function(a,b){var c=this.accept(a[b]);if(this.mutating){if(c&&(!c.type||!i["default"][c.type]))throw new g["default"]('Unexpected node type "'+c.type+'" found when accepting '+b+" on "+a.type);a[b]=c}},acceptRequired:function(a,b){if(this.acceptKey(a,b),!a[b])throw new g["default"](a.type+" requires "+b)},acceptArray:function(a){for(var b=0,c=a.length;c>b;b++)this.acceptKey(a,b),a[b]||(a.splice(b,1),b--,c--)},accept:function(a){if(a){this.current&&this.parents.unshift(this.current),this.current=a;var b=this[a.type](a);return this.current=this.parents.shift(),!this.mutating||b?b:b!==!1?a:void 0}},Program:function(a){this.acceptArray(a.body)},MustacheStatement:function(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")},BlockStatement:function(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash"),this.acceptKey(a,"program"),this.acceptKey(a,"inverse")},PartialStatement:function(a){this.acceptRequired(a,"name"),this.acceptArray(a.params),this.acceptKey(a,"hash")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:function(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")},PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(a){this.acceptArray(a.pairs)},HashPair:function(a){this.acceptRequired(a,"value")}},b["default"]=d,a.exports=b["default"]},function(a,b){(function(c){"use strict";b.__esModule=!0,b["default"]=function(a){var b="undefined"!=typeof c?c:window,d=b.Handlebars;a.noConflict=function(){b.Handlebars===a&&(b.Handlebars=d)}},a.exports=b["default"]}).call(b,function(){return this}())},function(a,b){"use strict";b["default"]=function(a){return a&&a.__esModule?a:{"default":a}},b.__esModule=!0},function(a,b,c){"use strict";function d(a,b){this.helpers=a||{},this.partials=b||{},e(this)}function e(a){a.registerHelper("helperMissing",function(){if(1===arguments.length)return void 0;throw new k["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')}),a.registerHelper("blockHelperMissing",function(b,c){var d=c.inverse,e=c.fn;if(b===!0)return e(this);if(b===!1||null==b)return d(this);if(o(b))return b.length>0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):d(this);if(c.data&&c.ids){var g=f(c.data);g.contextPath=i.appendContextPath(c.data.contextPath,c.name),c={data:g}}return e(b,c)}),a.registerHelper("each",function(a,b){function c(b,c,e){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!e,l&&(j.contextPath=l+b)),h+=d(a[b],{data:j,blockParams:i.blockParams([a[b],b],[l+b,null])})}if(!b)throw new k["default"]("Must pass iterator to #each");var d=b.fn,e=b.inverse,g=0,h="",j=void 0,l=void 0;if(b.data&&b.ids&&(l=i.appendContextPath(b.data.contextPath,b.ids[0])+"."),p(a)&&(a=a.call(this)),b.data&&(j=f(b.data)),a&&"object"==typeof a)if(o(a))for(var m=a.length;m>g;g++)c(g,g,g===a.length-1);else{var n=void 0;for(var q in a)a.hasOwnProperty(q)&&(n&&c(n,g-1),n=q,g++);n&&c(n,g-1,!0)}return 0===g&&(h=e(this)),h}),a.registerHelper("if",function(a,b){return p(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||i.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper("with",function(a,b){p(a)&&(a=a.call(this));var c=b.fn;if(i.isEmpty(a))return b.inverse(this);if(b.data&&b.ids){var d=f(b.data);d.contextPath=i.appendContextPath(b.data.contextPath,b.ids[0]),b={data:d}}return c(a,b)}),a.registerHelper("log",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper("lookup",function(a,b){return a&&a[b]})}function f(a){var b=i.extend({},a);return b._parent=a,b}var g=c(8)["default"];b.__esModule=!0,b.HandlebarsEnvironment=d,b.createFrame=f;var h=c(12),i=g(h),j=c(11),k=g(j),l="3.0.1";b.VERSION=l;var m=6;b.COMPILER_REVISION=m;var n={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};b.REVISION_CHANGES=n;var o=i.isArray,p=i.isFunction,q=i.toString,r="[object Object]";d.prototype={constructor:d,logger:s,log:t,registerHelper:function(a,b){if(q.call(a)===r){if(b)throw new k["default"]("Arg not supported with multiple helpers");i.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(q.call(a)===r)i.extend(this.partials,a);else{if("undefined"==typeof b)throw new k["default"]("Attempting to register a partial as undefined");this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]}};var s={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:1,log:function(a,b){if("undefined"!=typeof console&&s.level<=a){var c=s.methodMap[a];(console[c]||console.log).call(console,b)}}};b.logger=s;var t=s.log;b.log=t},function(a,b){"use strict";function c(a){this.string=a}b.__esModule=!0,c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b["default"]=c,a.exports=b["default"]},function(a,b){"use strict";function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;ic;c++)if(a[c]===b)return c;return-1}function f(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return l.test(a)?a.replace(k,c):a}function g(a){return a||0===a?o(a)&&0===a.length?!0:!1:!0}function h(a,b){return a.path=b,a}function i(a,b){return(a?a+".":"")+b}b.__esModule=!0,b.extend=d,b.indexOf=e,b.escapeExpression=f,b.isEmpty=g,b.blockParams=h,b.appendContextPath=i;var j={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},k=/[&<>"'`]/g,l=/[&<>"'`]/,m=Object.prototype.toString;b.toString=m;var n=function(a){return"function"==typeof a};n(/x/)&&(b.isFunction=n=function(a){return"function"==typeof a&&"[object Function]"===m.call(a)});var n;b.isFunction=n;var o=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===m.call(a):!1};b.isArray=o},function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=p.COMPILER_REVISION;if(b!==c){if(c>b){var d=p.REVISION_CHANGES[c],e=p.REVISION_CHANGES[b];throw new o["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new o["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){function c(c,d,e){e.hash&&(d=m.extend({},d,e.hash)),c=b.VM.resolvePartial.call(this,c,d,e);var f=b.VM.invokePartial.call(this,c,d,e);if(null==f&&b.compile&&(e.partials[e.name]=b.compile(c,a.compilerOptions,b),f=e.partials[e.name](d,e)),null!=f){if(e.indent){for(var g=f.split("\n"),h=0,i=g.length;i>h&&(g[h]||h+1!==i);h++)g[h]=e.indent+g[h];f=g.join("\n")}return f}throw new o["default"]("The partial "+e.name+" could not be compiled when running in runtime-only mode")}function d(b){var c=void 0===arguments[1]?{}:arguments[1],f=c.data; +d._setup(c),!c.partial&&a.useData&&(f=j(b,f));var g=void 0,h=a.useBlockParams?[]:void 0;return a.useDepths&&(g=c.depths?[b].concat(c.depths):[b]),a.main.call(e,b,e.helpers,e.partials,f,h,g)}if(!b)throw new o["default"]("No environment passed to template");if(!a||!a.main)throw new o["default"]("Unknown template object: "+typeof a);b.VM.checkRevision(a.compiler);var e={strict:function(a,b){if(!(b in a))throw new o["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:m.escapeExpression,invokePartial:c,fn:function(b){return a[b]},programs:[],program:function(a,b,c,d,e){var g=this.programs[a],h=this.fn(a);return b||e||d||c?g=f(this,a,h,b,c,d,e):g||(g=this.programs[a]=f(this,a,h)),g},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=m.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler};return d.isTop=!0,d._setup=function(c){c.partial?(e.helpers=c.helpers,e.partials=c.partials):(e.helpers=e.merge(c.helpers,b.helpers),a.usePartial&&(e.partials=e.merge(c.partials,b.partials)))},d._child=function(b,c,d,g){if(a.useBlockParams&&!d)throw new o["default"]("must pass block params");if(a.useDepths&&!g)throw new o["default"]("must pass parent depths");return f(e,b,a[b],c,0,d,g)},d}function f(a,b,c,d,e,f,g){function h(b){var e=void 0===arguments[1]?{}:arguments[1];return c.call(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),g&&[b].concat(g))}return h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function g(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a=c.partials[c.name],a}function h(a,b,c){if(c.partial=!0,void 0===a)throw new o["default"]("The partial "+c.name+" could not be found");return a instanceof Function?a(b,c):void 0}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?p.createFrame(b):{},b.root=a),b}var k=c(8)["default"];b.__esModule=!0,b.checkRevision=d,b.template=e,b.wrapProgram=f,b.resolvePartial=g,b.invokePartial=h,b.noop=i;var l=c(12),m=k(l),n=c(11),o=k(n),p=c(9)},function(a,b){"use strict";b.__esModule=!0;var c=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,content:12,COMMENT:13,CONTENT:14,openRawBlock:15,END_RAW_BLOCK:16,OPEN_RAW_BLOCK:17,helperName:18,openRawBlock_repetition0:19,openRawBlock_option0:20,CLOSE_RAW_BLOCK:21,openBlock:22,block_option0:23,closeBlock:24,openInverse:25,block_option1:26,OPEN_BLOCK:27,openBlock_repetition0:28,openBlock_option0:29,openBlock_option1:30,CLOSE:31,OPEN_INVERSE:32,openInverse_repetition0:33,openInverse_option0:34,openInverse_option1:35,openInverseChain:36,OPEN_INVERSE_CHAIN:37,openInverseChain_repetition0:38,openInverseChain_option0:39,openInverseChain_option1:40,inverseAndProgram:41,INVERSE:42,inverseChain:43,inverseChain_option0:44,OPEN_ENDBLOCK:45,OPEN:46,mustache_repetition0:47,mustache_option0:48,OPEN_UNESCAPED:49,mustache_repetition1:50,mustache_option1:51,CLOSE_UNESCAPED:52,OPEN_PARTIAL:53,partialName:54,partial_repetition0:55,partial_option0:56,param:57,sexpr:58,OPEN_SEXPR:59,sexpr_repetition0:60,sexpr_option0:61,CLOSE_SEXPR:62,hash:63,hash_repetition_plus0:64,hashSegment:65,ID:66,EQUALS:67,blockParams:68,OPEN_BLOCK_PARAMS:69,blockParams_repetition_plus0:70,CLOSE_BLOCK_PARAMS:71,path:72,dataName:73,STRING:74,NUMBER:75,BOOLEAN:76,UNDEFINED:77,NULL:78,DATA:79,pathSegments:80,SEP:81,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",13:"COMMENT",14:"CONTENT",16:"END_RAW_BLOCK",17:"OPEN_RAW_BLOCK",21:"CLOSE_RAW_BLOCK",27:"OPEN_BLOCK",31:"CLOSE",32:"OPEN_INVERSE",37:"OPEN_INVERSE_CHAIN",42:"INVERSE",45:"OPEN_ENDBLOCK",46:"OPEN",49:"OPEN_UNESCAPED",52:"CLOSE_UNESCAPED",53:"OPEN_PARTIAL",59:"OPEN_SEXPR",62:"CLOSE_SEXPR",66:"ID",67:"EQUALS",69:"OPEN_BLOCK_PARAMS",71:"CLOSE_BLOCK_PARAMS",74:"STRING",75:"NUMBER",76:"BOOLEAN",77:"UNDEFINED",78:"NULL",79:"DATA",81:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[12,1],[10,3],[15,5],[9,4],[9,4],[22,6],[25,6],[36,6],[41,2],[43,3],[43,1],[24,3],[8,5],[8,5],[11,5],[57,1],[57,1],[58,5],[63,1],[65,3],[68,3],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[54,1],[54,1],[73,2],[72,1],[80,3],[80,1],[6,0],[6,2],[19,0],[19,2],[20,0],[20,1],[23,0],[23,1],[26,0],[26,1],[28,0],[28,2],[29,0],[29,1],[30,0],[30,1],[33,0],[33,2],[34,0],[34,1],[35,0],[35,1],[38,0],[38,2],[39,0],[39,1],[40,0],[40,1],[44,0],[44,1],[47,0],[47,2],[48,0],[48,1],[50,0],[50,2],[51,0],[51,1],[55,0],[55,2],[56,0],[56,1],[60,0],[60,2],[61,0],[61,1],[64,1],[64,2],[70,1],[70,2]],performAction:function(a,b,c,d,e,f){var g=f.length-1;switch(e){case 1:return f[g-1];case 2:this.$=new d.Program(f[g],null,{},d.locInfo(this._$));break;case 3:this.$=f[g];break;case 4:this.$=f[g];break;case 5:this.$=f[g];break;case 6:this.$=f[g];break;case 7:this.$=f[g];break;case 8:this.$=new d.CommentStatement(d.stripComment(f[g]),d.stripFlags(f[g],f[g]),d.locInfo(this._$));break;case 9:this.$=new d.ContentStatement(f[g],d.locInfo(this._$));break;case 10:this.$=d.prepareRawBlock(f[g-2],f[g-1],f[g],this._$);break;case 11:this.$={path:f[g-3],params:f[g-2],hash:f[g-1]};break;case 12:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!1,this._$);break;case 13:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!0,this._$);break;case 14:this.$={path:f[g-4],params:f[g-3],hash:f[g-2],blockParams:f[g-1],strip:d.stripFlags(f[g-5],f[g])};break;case 15:this.$={path:f[g-4],params:f[g-3],hash:f[g-2],blockParams:f[g-1],strip:d.stripFlags(f[g-5],f[g])};break;case 16:this.$={path:f[g-4],params:f[g-3],hash:f[g-2],blockParams:f[g-1],strip:d.stripFlags(f[g-5],f[g])};break;case 17:this.$={strip:d.stripFlags(f[g-1],f[g-1]),program:f[g]};break;case 18:var h=d.prepareBlock(f[g-2],f[g-1],f[g],f[g],!1,this._$),i=new d.Program([h],null,{},d.locInfo(this._$));i.chained=!0,this.$={strip:f[g-2].strip,program:i,chain:!0};break;case 19:this.$=f[g];break;case 20:this.$={path:f[g-1],strip:d.stripFlags(f[g-2],f[g])};break;case 21:this.$=d.prepareMustache(f[g-3],f[g-2],f[g-1],f[g-4],d.stripFlags(f[g-4],f[g]),this._$);break;case 22:this.$=d.prepareMustache(f[g-3],f[g-2],f[g-1],f[g-4],d.stripFlags(f[g-4],f[g]),this._$);break;case 23:this.$=new d.PartialStatement(f[g-3],f[g-2],f[g-1],d.stripFlags(f[g-4],f[g]),d.locInfo(this._$));break;case 24:this.$=f[g];break;case 25:this.$=f[g];break;case 26:this.$=new d.SubExpression(f[g-3],f[g-2],f[g-1],d.locInfo(this._$));break;case 27:this.$=new d.Hash(f[g],d.locInfo(this._$));break;case 28:this.$=new d.HashPair(d.id(f[g-2]),f[g],d.locInfo(this._$));break;case 29:this.$=d.id(f[g-1]);break;case 30:this.$=f[g];break;case 31:this.$=f[g];break;case 32:this.$=new d.StringLiteral(f[g],d.locInfo(this._$));break;case 33:this.$=new d.NumberLiteral(f[g],d.locInfo(this._$));break;case 34:this.$=new d.BooleanLiteral(f[g],d.locInfo(this._$));break;case 35:this.$=new d.UndefinedLiteral(d.locInfo(this._$));break;case 36:this.$=new d.NullLiteral(d.locInfo(this._$));break;case 37:this.$=f[g];break;case 38:this.$=f[g];break;case 39:this.$=d.preparePath(!0,f[g],this._$);break;case 40:this.$=d.preparePath(!1,f[g],this._$);break;case 41:f[g-2].push({part:d.id(f[g]),original:f[g],separator:f[g-1]}),this.$=f[g-2];break;case 42:this.$=[{part:d.id(f[g]),original:f[g]}];break;case 43:this.$=[];break;case 44:f[g-1].push(f[g]);break;case 45:this.$=[];break;case 46:f[g-1].push(f[g]);break;case 53:this.$=[];break;case 54:f[g-1].push(f[g]);break;case 59:this.$=[];break;case 60:f[g-1].push(f[g]);break;case 65:this.$=[];break;case 66:f[g-1].push(f[g]);break;case 73:this.$=[];break;case 74:f[g-1].push(f[g]);break;case 77:this.$=[];break;case 78:f[g-1].push(f[g]);break;case 81:this.$=[];break;case 82:f[g-1].push(f[g]);break;case 85:this.$=[];break;case 86:f[g-1].push(f[g]);break;case 89:this.$=[f[g]];break;case 90:f[g-1].push(f[g]);break;case 91:this.$=[f[g]];break;case 92:f[g-1].push(f[g])}},table:[{3:1,4:2,5:[2,43],6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],46:[2,43],49:[2,43],53:[2,43]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:[1,11],14:[1,18],15:16,17:[1,21],22:14,25:15,27:[1,19],32:[1,20],37:[2,2],42:[2,2],45:[2,2],46:[1,12],49:[1,13],53:[1,17]},{1:[2,1]},{5:[2,44],13:[2,44],14:[2,44],17:[2,44],27:[2,44],32:[2,44],37:[2,44],42:[2,44],45:[2,44],46:[2,44],49:[2,44],53:[2,44]},{5:[2,3],13:[2,3],14:[2,3],17:[2,3],27:[2,3],32:[2,3],37:[2,3],42:[2,3],45:[2,3],46:[2,3],49:[2,3],53:[2,3]},{5:[2,4],13:[2,4],14:[2,4],17:[2,4],27:[2,4],32:[2,4],37:[2,4],42:[2,4],45:[2,4],46:[2,4],49:[2,4],53:[2,4]},{5:[2,5],13:[2,5],14:[2,5],17:[2,5],27:[2,5],32:[2,5],37:[2,5],42:[2,5],45:[2,5],46:[2,5],49:[2,5],53:[2,5]},{5:[2,6],13:[2,6],14:[2,6],17:[2,6],27:[2,6],32:[2,6],37:[2,6],42:[2,6],45:[2,6],46:[2,6],49:[2,6],53:[2,6]},{5:[2,7],13:[2,7],14:[2,7],17:[2,7],27:[2,7],32:[2,7],37:[2,7],42:[2,7],45:[2,7],46:[2,7],49:[2,7],53:[2,7]},{5:[2,8],13:[2,8],14:[2,8],17:[2,8],27:[2,8],32:[2,8],37:[2,8],42:[2,8],45:[2,8],46:[2,8],49:[2,8],53:[2,8]},{18:22,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:33,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:34,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{4:35,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{12:36,14:[1,18]},{18:38,54:37,58:39,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,9],13:[2,9],14:[2,9],16:[2,9],17:[2,9],27:[2,9],32:[2,9],37:[2,9],42:[2,9],45:[2,9],46:[2,9],49:[2,9],53:[2,9]},{18:41,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:42,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:43,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[2,73],47:44,59:[2,73],66:[2,73],74:[2,73],75:[2,73],76:[2,73],77:[2,73],78:[2,73],79:[2,73]},{21:[2,30],31:[2,30],52:[2,30],59:[2,30],62:[2,30],66:[2,30],69:[2,30],74:[2,30],75:[2,30],76:[2,30],77:[2,30],78:[2,30],79:[2,30]},{21:[2,31],31:[2,31],52:[2,31],59:[2,31],62:[2,31],66:[2,31],69:[2,31],74:[2,31],75:[2,31],76:[2,31],77:[2,31],78:[2,31],79:[2,31]},{21:[2,32],31:[2,32],52:[2,32],59:[2,32],62:[2,32],66:[2,32],69:[2,32],74:[2,32],75:[2,32],76:[2,32],77:[2,32],78:[2,32],79:[2,32]},{21:[2,33],31:[2,33],52:[2,33],59:[2,33],62:[2,33],66:[2,33],69:[2,33],74:[2,33],75:[2,33],76:[2,33],77:[2,33],78:[2,33],79:[2,33]},{21:[2,34],31:[2,34],52:[2,34],59:[2,34],62:[2,34],66:[2,34],69:[2,34],74:[2,34],75:[2,34],76:[2,34],77:[2,34],78:[2,34],79:[2,34]},{21:[2,35],31:[2,35],52:[2,35],59:[2,35],62:[2,35],66:[2,35],69:[2,35],74:[2,35],75:[2,35],76:[2,35],77:[2,35],78:[2,35],79:[2,35]},{21:[2,36],31:[2,36],52:[2,36],59:[2,36],62:[2,36],66:[2,36],69:[2,36],74:[2,36],75:[2,36],76:[2,36],77:[2,36],78:[2,36],79:[2,36]},{21:[2,40],31:[2,40],52:[2,40],59:[2,40],62:[2,40],66:[2,40],69:[2,40],74:[2,40],75:[2,40],76:[2,40],77:[2,40],78:[2,40],79:[2,40],81:[1,45]},{66:[1,32],80:46},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{50:47,52:[2,77],59:[2,77],66:[2,77],74:[2,77],75:[2,77],76:[2,77],77:[2,77],78:[2,77],79:[2,77]},{23:48,36:50,37:[1,52],41:51,42:[1,53],43:49,45:[2,49]},{26:54,41:55,42:[1,53],45:[2,51]},{16:[1,56]},{31:[2,81],55:57,59:[2,81],66:[2,81],74:[2,81],75:[2,81],76:[2,81],77:[2,81],78:[2,81],79:[2,81]},{31:[2,37],59:[2,37],66:[2,37],74:[2,37],75:[2,37],76:[2,37],77:[2,37],78:[2,37],79:[2,37]},{31:[2,38],59:[2,38],66:[2,38],74:[2,38],75:[2,38],76:[2,38],77:[2,38],78:[2,38],79:[2,38]},{18:58,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{28:59,31:[2,53],59:[2,53],66:[2,53],69:[2,53],74:[2,53],75:[2,53],76:[2,53],77:[2,53],78:[2,53],79:[2,53]},{31:[2,59],33:60,59:[2,59],66:[2,59],69:[2,59],74:[2,59],75:[2,59],76:[2,59],77:[2,59],78:[2,59],79:[2,59]},{19:61,21:[2,45],59:[2,45],66:[2,45],74:[2,45],75:[2,45],76:[2,45],77:[2,45],78:[2,45],79:[2,45]},{18:65,31:[2,75],48:62,57:63,58:66,59:[1,40],63:64,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{66:[1,70]},{21:[2,39],31:[2,39],52:[2,39],59:[2,39],62:[2,39],66:[2,39],69:[2,39],74:[2,39],75:[2,39],76:[2,39],77:[2,39],78:[2,39],79:[2,39],81:[1,45]},{18:65,51:71,52:[2,79],57:72,58:66,59:[1,40],63:73,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{24:74,45:[1,75]},{45:[2,50]},{4:76,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{45:[2,19]},{18:77,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:78,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{24:79,45:[1,75]},{45:[2,52]},{5:[2,10],13:[2,10],14:[2,10],17:[2,10],27:[2,10],32:[2,10],37:[2,10],42:[2,10],45:[2,10],46:[2,10],49:[2,10],53:[2,10]},{18:65,31:[2,83],56:80,57:81,58:66,59:[1,40],63:82,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{59:[2,85],60:83,62:[2,85],66:[2,85],74:[2,85],75:[2,85],76:[2,85],77:[2,85],78:[2,85],79:[2,85]},{18:65,29:84,31:[2,55],57:85,58:66,59:[1,40],63:86,64:67,65:68,66:[1,69],69:[2,55],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,31:[2,61],34:87,57:88,58:66,59:[1,40],63:89,64:67,65:68,66:[1,69],69:[2,61],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,20:90,21:[2,47],57:91,58:66,59:[1,40],63:92,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[1,93]},{31:[2,74],59:[2,74],66:[2,74],74:[2,74],75:[2,74],76:[2,74],77:[2,74],78:[2,74],79:[2,74]},{31:[2,76]},{21:[2,24],31:[2,24],52:[2,24],59:[2,24],62:[2,24],66:[2,24],69:[2,24],74:[2,24],75:[2,24],76:[2,24],77:[2,24],78:[2,24],79:[2,24]},{21:[2,25],31:[2,25],52:[2,25],59:[2,25],62:[2,25],66:[2,25],69:[2,25],74:[2,25],75:[2,25],76:[2,25],77:[2,25],78:[2,25],79:[2,25]},{21:[2,27],31:[2,27],52:[2,27],62:[2,27],65:94,66:[1,95],69:[2,27]},{21:[2,89],31:[2,89],52:[2,89],62:[2,89],66:[2,89],69:[2,89]},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],67:[1,96],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{21:[2,41],31:[2,41],52:[2,41],59:[2,41],62:[2,41],66:[2,41],69:[2,41],74:[2,41],75:[2,41],76:[2,41],77:[2,41],78:[2,41],79:[2,41],81:[2,41]},{52:[1,97]},{52:[2,78],59:[2,78],66:[2,78],74:[2,78],75:[2,78],76:[2,78],77:[2,78],78:[2,78],79:[2,78]},{52:[2,80]},{5:[2,12],13:[2,12],14:[2,12],17:[2,12],27:[2,12],32:[2,12],37:[2,12],42:[2,12],45:[2,12],46:[2,12],49:[2,12],53:[2,12]},{18:98,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{36:50,37:[1,52],41:51,42:[1,53],43:100,44:99,45:[2,71]},{31:[2,65],38:101,59:[2,65],66:[2,65],69:[2,65],74:[2,65],75:[2,65],76:[2,65],77:[2,65],78:[2,65],79:[2,65]},{45:[2,17]},{5:[2,13],13:[2,13],14:[2,13],17:[2,13],27:[2,13],32:[2,13],37:[2,13],42:[2,13],45:[2,13],46:[2,13],49:[2,13],53:[2,13]},{31:[1,102]},{31:[2,82],59:[2,82],66:[2,82],74:[2,82],75:[2,82],76:[2,82],77:[2,82],78:[2,82],79:[2,82]},{31:[2,84]},{18:65,57:104,58:66,59:[1,40],61:103,62:[2,87],63:105,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{30:106,31:[2,57],68:107,69:[1,108]},{31:[2,54],59:[2,54],66:[2,54],69:[2,54],74:[2,54],75:[2,54],76:[2,54],77:[2,54],78:[2,54],79:[2,54]},{31:[2,56],69:[2,56]},{31:[2,63],35:109,68:110,69:[1,108]},{31:[2,60],59:[2,60],66:[2,60],69:[2,60],74:[2,60],75:[2,60],76:[2,60],77:[2,60],78:[2,60],79:[2,60]},{31:[2,62],69:[2,62]},{21:[1,111]},{21:[2,46],59:[2,46],66:[2,46],74:[2,46],75:[2,46],76:[2,46],77:[2,46],78:[2,46],79:[2,46]},{21:[2,48]},{5:[2,21],13:[2,21],14:[2,21],17:[2,21],27:[2,21],32:[2,21],37:[2,21],42:[2,21],45:[2,21],46:[2,21],49:[2,21],53:[2,21]},{21:[2,90],31:[2,90],52:[2,90],62:[2,90],66:[2,90],69:[2,90]},{67:[1,96]},{18:65,57:112,58:66,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,22],13:[2,22],14:[2,22],17:[2,22],27:[2,22],32:[2,22],37:[2,22],42:[2,22],45:[2,22],46:[2,22],49:[2,22],53:[2,22]},{31:[1,113]},{45:[2,18]},{45:[2,72]},{18:65,31:[2,67],39:114,57:115,58:66,59:[1,40],63:116,64:67,65:68,66:[1,69],69:[2,67],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,23],13:[2,23],14:[2,23],17:[2,23],27:[2,23],32:[2,23],37:[2,23],42:[2,23],45:[2,23],46:[2,23],49:[2,23],53:[2,23]},{62:[1,117]},{59:[2,86],62:[2,86],66:[2,86],74:[2,86],75:[2,86],76:[2,86],77:[2,86],78:[2,86],79:[2,86]},{62:[2,88]},{31:[1,118]},{31:[2,58]},{66:[1,120],70:119},{31:[1,121]},{31:[2,64]},{14:[2,11]},{21:[2,28],31:[2,28],52:[2,28],62:[2,28],66:[2,28],69:[2,28]},{5:[2,20],13:[2,20],14:[2,20],17:[2,20],27:[2,20],32:[2,20],37:[2,20],42:[2,20],45:[2,20],46:[2,20],49:[2,20],53:[2,20]},{31:[2,69],40:122,68:123,69:[1,108]},{31:[2,66],59:[2,66],66:[2,66],69:[2,66],74:[2,66],75:[2,66],76:[2,66],77:[2,66],78:[2,66],79:[2,66]},{31:[2,68],69:[2,68]},{21:[2,26],31:[2,26],52:[2,26],59:[2,26],62:[2,26],66:[2,26],69:[2,26],74:[2,26],75:[2,26],76:[2,26],77:[2,26],78:[2,26],79:[2,26]},{13:[2,14],14:[2,14],17:[2,14],27:[2,14],32:[2,14],37:[2,14],42:[2,14],45:[2,14],46:[2,14],49:[2,14],53:[2,14]},{66:[1,125],71:[1,124]},{66:[2,91],71:[2,91]},{13:[2,15],14:[2,15],17:[2,15],27:[2,15],32:[2,15],42:[2,15],45:[2,15],46:[2,15],49:[2,15],53:[2,15]},{31:[1,126]},{31:[2,70]},{31:[2,29]},{66:[2,92],71:[2,92]},{13:[2,16],14:[2,16],17:[2,16],27:[2,16],32:[2,16],37:[2,16],42:[2,16],45:[2,16],46:[2,16],49:[2,16],53:[2,16]}],defaultActions:{4:[2,1],49:[2,50],51:[2,19],55:[2,52],64:[2,76],73:[2,80],78:[2,17],82:[2,84],92:[2,48],99:[2,18],100:[2,72],105:[2,88],107:[2,58],110:[2,64],111:[2,11],123:[2,70],124:[2,29]},parseError:function(a){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||"undefined"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 14;break;case 1:return 14;case 2:return this.popState(),14;case 3:return b.yytext=b.yytext.substr(5,b.yyleng-9),this.popState(),16;case 4:return 14;case 5:return this.popState(),13;case 6:return 59;case 7:return 62;case 8:return 17;case 9:return this.popState(),this.begin("raw"),21;case 10:return 53;case 11:return 27;case 12:return 45;case 13:return this.popState(),42;case 14:return this.popState(),42;case 15:return 32;case 16:return 37;case 17:return 49;case 18:return 46;case 19:this.unput(b.yytext),this.popState(),this.begin("com");break;case 20:return this.popState(),13;case 21:return 46;case 22:return 67;case 23:return 66;case 24:return 66;case 25:return 81;case 26:break;case 27:return this.popState(),52;case 28:return this.popState(),31;case 29:return b.yytext=e(1,2).replace(/\\"/g,'"'),74;case 30:return b.yytext=e(1,2).replace(/\\'/g,"'"),74;case 31:return 79;case 32:return 76;case 33:return 76;case 34:return 77;case 35:return 78;case 36:return 75;case 37:return 69;case 38:return 71;case 39:return 66;case 40:return 66;case 41:return"INVALID";case 42:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[5],inclusive:!1},raw:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,1,42],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(){}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"ContentStatement"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"ContentStatement"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&"ContentStatement"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.value!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"ContentStatement"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.value!==e,d.leftStripped}}var i=c(8)["default"];b.__esModule=!0;var j=c(6),k=i(j);d.prototype=new k["default"],d.prototype.Program=function(a){var b=!this.isRootSeen;this.isRootSeen=!0;for(var c=a.body,d=0,i=c.length;i>d;d++){var j=c[d],k=this.accept(j);if(k){var l=e(c,d,b),m=f(c,d,b),n=k.openStandalone&&l,o=k.closeStandalone&&m,p=k.inlineStandalone&&l&&m;k.close&&g(c,d,!0),k.open&&h(c,d,!0),p&&(g(c,d),h(c,d)&&"PartialStatement"===j.type&&(j.indent=/([ \t]+$)/.exec(c[d-1].original)[1])),n&&(g((j.program||j.inverse).body),h(c,d)),o&&(g(c,d),h((j.inverse||j.program).body))}}return a},d.prototype.BlockStatement=function(a){this.accept(a.program),this.accept(a.inverse);var b=a.program||a.inverse,c=a.program&&a.inverse,d=c,i=c;if(c&&c.chained)for(d=c.body[0].program;i.chained;)i=i.body[i.body.length-1].program;var j={open:a.openStrip.open,close:a.closeStrip.close,openStandalone:f(b.body),closeStandalone:e((d||b).body)};if(a.openStrip.close&&g(b.body,null,!0),c){var k=a.inverseStrip;k.open&&h(b.body,null,!0),k.close&&g(d.body,null,!0),a.closeStrip.open&&h(i.body,null,!0),e(b.body)&&f(d.body)&&(h(b.body),g(d.body))}else a.closeStrip.open&&h(b.body,null,!0);return j},d.prototype.MustacheStatement=function(a){return a.strip},d.prototype.PartialStatement=d.prototype.CommentStatement=function(a){var b=a.strip||{};return{inlineStandalone:!0,open:b.open,close:b.close}},b["default"]=d,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){this.source=a,this.start={line:b.first_line,column:b.first_column},this.end={line:b.last_line,column:b.last_column}}function e(a){return/^\[.*\]$/.test(a)?a.substr(1,a.length-2):a}function f(a,b){return{open:"~"===a.charAt(2),close:"~"===b.charAt(b.length-3)}}function g(a){return a.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function h(a,b,c){c=this.locInfo(c);for(var d=a?"@":"",e=[],f=0,g="",h=0,i=b.length;i>h;h++){var j=b[h].part,k=b[h].original!==j;if(d+=(b[h].separator||"")+j,k||".."!==j&&"."!==j&&"this"!==j)e.push(j);else{if(e.length>0)throw new n["default"]("Invalid path: "+d,{loc:c});".."===j&&(f++,g+="../")}}return new this.PathExpression(a,f,e,d,c)}function i(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h="{"!==g&&"&"!==g;return new this.MustacheStatement(a,b,c,h,e,this.locInfo(f))}function j(a,b,c,d){if(a.path.original!==c){var e={loc:a.path.loc};throw new n["default"](a.path.original+" doesn't match "+c,e)}d=this.locInfo(d);var f=new this.Program([b],null,{},d);return new this.BlockStatement(a.path,a.params,a.hash,f,void 0,{},{},{},d)}function k(a,b,c,d,e,f){if(d&&d.path&&a.path.original!==d.path.original){var g={loc:a.path.loc};throw new n["default"](a.path.original+" doesn't match "+d.path.original,g)}b.blockParams=a.blockParams;var h=void 0,i=void 0;return c&&(c.chain&&(c.program.body[0].closeStrip=d.strip),i=c.strip,h=c.program),e&&(e=h,h=b,b=e),new this.BlockStatement(a.path,a.params,a.hash,b,h,a.strip,i,d&&d.strip,this.locInfo(f))}var l=c(8)["default"];b.__esModule=!0,b.SourceLocation=d,b.id=e,b.stripFlags=f,b.stripComment=g,b.preparePath=h,b.prepareMustache=i,b.prepareRawBlock=j,b.prepareBlock=k;var m=c(11),n=l(m)},function(a,b,c){"use strict";function d(a,b,c){if(f.isArray(a)){for(var d=[],e=0,g=a.length;g>e;e++)d.push(b.wrap(a[e],c));return d}return"boolean"==typeof a||"number"==typeof a?a+"":a}function e(a){this.srcFile=a,this.source=[]}b.__esModule=!0;var f=c(12),g=void 0;try{}catch(h){}g||(g=function(a,b,c,d){this.src="",d&&this.add(d)},g.prototype={add:function(a){f.isArray(a)&&(a=a.join("")),this.src+=a},prepend:function(a){f.isArray(a)&&(a=a.join("")),this.src=a+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),e.prototype={prepend:function(a,b){this.source.unshift(this.wrap(a,b))},push:function(a,b){this.source.push(this.wrap(a,b))},merge:function(){var a=this.empty();return this.each(function(b){a.add([" ",b,"\n"])}),a},each:function(a){for(var b=0,c=this.source.length;c>b;b++)a(this.source[b])},empty:function(){var a=void 0===arguments[0]?this.currentLocation||{start:{}}:arguments[0];return new g(a.start.line,a.start.column,this.srcFile)},wrap:function(a){var b=void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return a instanceof g?a:(a=d(a,this,b),new g(b.start.line,b.start.column,this.srcFile,a))},functionCall:function(a,b,c){return c=this.generateList(c),this.wrap([a,b?"."+b+"(":"(",c,")"])},quotedString:function(a){return'"'+(a+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)if(a.hasOwnProperty(c)){var e=d(a[c],this);"undefined"!==e&&b.push([this.quotedString(c),":",e]) +}var f=this.generateList(b);return f.prepend("{"),f.add("}"),f},generateList:function(a,b){for(var c=this.empty(b),e=0,f=a.length;f>e;e++)e&&c.add(","),c.add(d(a[e],this,b));return c},generateArray:function(a,b){var c=this.generateList(a,b);return c.prepend("["),c.add("]"),c}},b["default"]=e,a.exports=b["default"]}])}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/handlebars.runtime.amd.js b/node_modules/handlebars/dist/handlebars.runtime.amd.js index d805f82..9b5c9dd 100644 --- a/node_modules/handlebars/dist/handlebars.runtime.amd.js +++ b/node_modules/handlebars/dist/handlebars.runtime.amd.js @@ -1,6 +1,6 @@ /*! - handlebars v2.0.0 + handlebars v3.0.3 Copyright (C) 2011-2014 by Yehuda Katz @@ -24,85 +24,87 @@ THE SOFTWARE. @license */ +define('handlebars/utils',['exports'], function (exports) { + -define( - 'handlebars/safe-string',["exports"], - function(__exports__) { - - // Build out our basic SafeString type - function SafeString(string) { - this.string = string; - } + exports.__esModule = true; + exports.extend = extend; - SafeString.prototype.toString = function() { - return "" + this.string; - }; + // Older IE versions do not directly support indexOf so we must implement our own, sadly. + exports.indexOf = indexOf; + exports.escapeExpression = escapeExpression; + exports.isEmpty = isEmpty; + exports.blockParams = blockParams; + exports.appendContextPath = appendContextPath; + var escape = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '`': '`' + }; - __exports__["default"] = SafeString; - }); -define( - 'handlebars/utils',["./safe-string","exports"], - function(__dependency1__, __exports__) { - - /*jshint -W004 */ - var SafeString = __dependency1__["default"]; + var badChars = /[&<>"'`]/g, + possible = /[&<>"'`]/; - var escape = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`" - }; + function escapeChar(chr) { + return escape[chr]; + } - var badChars = /[&<>"'`]/g; - var possible = /[&<>"'`]/; - - function escapeChar(chr) { - return escape[chr]; - } - - function extend(obj /* , ...source */) { - for (var i = 1; i < arguments.length; i++) { - for (var key in arguments[i]) { - if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { - obj[key] = arguments[i][key]; - } + function extend(obj /* , ...source */) { + for (var i = 1; i < arguments.length; i++) { + for (var key in arguments[i]) { + if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { + obj[key] = arguments[i][key]; } } - - return obj; } - __exports__.extend = extend;var toString = Object.prototype.toString; - __exports__.toString = toString; - // Sourced from lodash - // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt - var isFunction = function(value) { - return typeof value === 'function'; - }; - // fallback for older versions of Chrome and Safari - /* istanbul ignore next */ - if (isFunction(/x/)) { - isFunction = function(value) { - return typeof value === 'function' && toString.call(value) === '[object Function]'; - }; - } - var isFunction; - __exports__.isFunction = isFunction; - /* istanbul ignore next */ - var isArray = Array.isArray || function(value) { - return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false; - }; - __exports__.isArray = isArray; + return obj; + } - function escapeExpression(string) { + var toString = Object.prototype.toString; + + exports.toString = toString; + // Sourced from lodash + // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt + /*eslint-disable func-style, no-var */ + var isFunction = function isFunction(value) { + return typeof value === 'function'; + }; + // fallback for older versions of Chrome and Safari + /* istanbul ignore next */ + if (isFunction(/x/)) { + exports.isFunction = isFunction = function (value) { + return typeof value === 'function' && toString.call(value) === '[object Function]'; + }; + } + var isFunction; + exports.isFunction = isFunction; + /*eslint-enable func-style, no-var */ + + /* istanbul ignore next */ + var isArray = Array.isArray || function (value) { + return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false; + };exports.isArray = isArray; + + function indexOf(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; + } + + function escapeExpression(string) { + if (typeof string !== 'string') { // don't escape SafeStrings, since they're already safe - if (string instanceof SafeString) { - return string.toString(); + if (string && string.toHTML) { + return string.toHTML(); } else if (string == null) { - return ""; + return ''; } else if (!string) { return string + ''; } @@ -110,528 +112,633 @@ define( // Force a string conversion as this will be done by the append regardless and // the regex test will do this transparently behind the scenes, causing issues if // an object's to string has escaped characters in it. - string = "" + string; - - if(!possible.test(string)) { return string; } - return string.replace(badChars, escapeChar); + string = '' + string; } - __exports__.escapeExpression = escapeExpression;function isEmpty(value) { - if (!value && value !== 0) { - return true; - } else if (isArray(value) && value.length === 0) { - return true; + if (!possible.test(string)) { + return string; + } + return string.replace(badChars, escapeChar); + } + + function isEmpty(value) { + if (!value && value !== 0) { + return true; + } else if (isArray(value) && value.length === 0) { + return true; + } else { + return false; + } + } + + function blockParams(params, ids) { + params.path = ids; + return params; + } + + function appendContextPath(contextPath, id) { + return (contextPath ? contextPath + '.' : '') + id; + } +}); +define('handlebars/exception',['exports', 'module'], function (exports, module) { + + + var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; + + function Exception(message, node) { + var loc = node && node.loc, + line = undefined, + column = undefined; + if (loc) { + line = loc.start.line; + column = loc.start.column; + + message += ' - ' + line + ':' + column; + } + + var tmp = Error.prototype.constructor.call(this, message); + + // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. + for (var idx = 0; idx < errorProps.length; idx++) { + this[errorProps[idx]] = tmp[errorProps[idx]]; + } + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, Exception); + } + + if (loc) { + this.lineNumber = line; + this.column = column; + } + } + + Exception.prototype = new Error(); + + module.exports = Exception; +}); +define('handlebars/base',['exports', './utils', './exception'], function (exports, _utils, _exception) { + + + var _interopRequire = function (obj) { return obj && obj.__esModule ? obj['default'] : obj; }; + + exports.__esModule = true; + exports.HandlebarsEnvironment = HandlebarsEnvironment; + exports.createFrame = createFrame; + + var _Exception = _interopRequire(_exception); + + var VERSION = '3.0.1'; + exports.VERSION = VERSION; + var COMPILER_REVISION = 6; + + exports.COMPILER_REVISION = COMPILER_REVISION; + var REVISION_CHANGES = { + 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it + 2: '== 1.0.0-rc.3', + 3: '== 1.0.0-rc.4', + 4: '== 1.x.x', + 5: '== 2.0.0-alpha.x', + 6: '>= 2.0.0-beta.1' + }; + + exports.REVISION_CHANGES = REVISION_CHANGES; + var isArray = _utils.isArray, + isFunction = _utils.isFunction, + toString = _utils.toString, + objectType = '[object Object]'; + + function HandlebarsEnvironment(helpers, partials) { + this.helpers = helpers || {}; + this.partials = partials || {}; + + registerDefaultHelpers(this); + } + + HandlebarsEnvironment.prototype = { + constructor: HandlebarsEnvironment, + + logger: logger, + log: log, + + registerHelper: function registerHelper(name, fn) { + if (toString.call(name) === objectType) { + if (fn) { + throw new _Exception('Arg not supported with multiple helpers'); + } + _utils.extend(this.helpers, name); } else { - return false; + this.helpers[name] = fn; } - } + }, + unregisterHelper: function unregisterHelper(name) { + delete this.helpers[name]; + }, - __exports__.isEmpty = isEmpty;function appendContextPath(contextPath, id) { - return (contextPath ? contextPath + '.' : '') + id; - } - - __exports__.appendContextPath = appendContextPath; - }); -define( - 'handlebars/exception',["exports"], - function(__exports__) { - - - var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; - - function Exception(message, node) { - var line; - if (node && node.firstLine) { - line = node.firstLine; - - message += ' - ' + line + ':' + node.firstColumn; - } - - var tmp = Error.prototype.constructor.call(this, message); - - // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. - for (var idx = 0; idx < errorProps.length; idx++) { - this[errorProps[idx]] = tmp[errorProps[idx]]; - } - - if (line) { - this.lineNumber = line; - this.column = node.firstColumn; - } - } - - Exception.prototype = new Error(); - - __exports__["default"] = Exception; - }); -define( - 'handlebars/base',["./utils","./exception","exports"], - function(__dependency1__, __dependency2__, __exports__) { - - var Utils = __dependency1__; - var Exception = __dependency2__["default"]; - - var VERSION = "2.0.0"; - __exports__.VERSION = VERSION;var COMPILER_REVISION = 6; - __exports__.COMPILER_REVISION = COMPILER_REVISION; - var REVISION_CHANGES = { - 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it - 2: '== 1.0.0-rc.3', - 3: '== 1.0.0-rc.4', - 4: '== 1.x.x', - 5: '== 2.0.0-alpha.x', - 6: '>= 2.0.0-beta.1' - }; - __exports__.REVISION_CHANGES = REVISION_CHANGES; - var isArray = Utils.isArray, - isFunction = Utils.isFunction, - toString = Utils.toString, - objectType = '[object Object]'; - - function HandlebarsEnvironment(helpers, partials) { - this.helpers = helpers || {}; - this.partials = partials || {}; - - registerDefaultHelpers(this); - } - - __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = { - constructor: HandlebarsEnvironment, - - logger: logger, - log: log, - - registerHelper: function(name, fn) { - if (toString.call(name) === objectType) { - if (fn) { throw new Exception('Arg not supported with multiple helpers'); } - Utils.extend(this.helpers, name); - } else { - this.helpers[name] = fn; + registerPartial: function registerPartial(name, partial) { + if (toString.call(name) === objectType) { + _utils.extend(this.partials, name); + } else { + if (typeof partial === 'undefined') { + throw new _Exception('Attempting to register a partial as undefined'); } - }, - unregisterHelper: function(name) { - delete this.helpers[name]; - }, - - registerPartial: function(name, partial) { - if (toString.call(name) === objectType) { - Utils.extend(this.partials, name); - } else { - this.partials[name] = partial; - } - }, - unregisterPartial: function(name) { - delete this.partials[name]; + this.partials[name] = partial; } - }; + }, + unregisterPartial: function unregisterPartial(name) { + delete this.partials[name]; + } + }; - function registerDefaultHelpers(instance) { - instance.registerHelper('helperMissing', function(/* [args, ]options */) { - if(arguments.length === 1) { - // A missing field in a {{foo}} constuct. - return undefined; + function registerDefaultHelpers(instance) { + instance.registerHelper('helperMissing', function () { + if (arguments.length === 1) { + // A missing field in a {{foo}} constuct. + return undefined; + } else { + // Someone is actually trying to call something, blow up. + throw new _Exception('Missing helper: "' + arguments[arguments.length - 1].name + '"'); + } + }); + + instance.registerHelper('blockHelperMissing', function (context, options) { + var inverse = options.inverse, + fn = options.fn; + + if (context === true) { + return fn(this); + } else if (context === false || context == null) { + return inverse(this); + } else if (isArray(context)) { + if (context.length > 0) { + if (options.ids) { + options.ids = [options.name]; + } + + return instance.helpers.each(context, options); } else { - // Someone is actually trying to call something, blow up. - throw new Exception("Missing helper: '" + arguments[arguments.length-1].name + "'"); - } - }); - - instance.registerHelper('blockHelperMissing', function(context, options) { - var inverse = options.inverse, - fn = options.fn; - - if(context === true) { - return fn(this); - } else if(context === false || context == null) { return inverse(this); - } else if (isArray(context)) { - if(context.length > 0) { - if (options.ids) { - options.ids = [options.name]; - } - - return instance.helpers.each(context, options); - } else { - return inverse(this); - } - } else { - if (options.data && options.ids) { - var data = createFrame(options.data); - data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name); - options = {data: data}; - } - - return fn(context, options); } - }); - - instance.registerHelper('each', function(context, options) { - if (!options) { - throw new Exception('Must pass iterator to #each'); - } - - var fn = options.fn, inverse = options.inverse; - var i = 0, ret = "", data; - - var contextPath; + } else { if (options.data && options.ids) { - contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; + var data = createFrame(options.data); + data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name); + options = { data: data }; } - if (isFunction(context)) { context = context.call(this); } + return fn(context, options); + } + }); - if (options.data) { - data = createFrame(options.data); + instance.registerHelper('each', function (context, options) { + if (!options) { + throw new _Exception('Must pass iterator to #each'); + } + + var fn = options.fn, + inverse = options.inverse, + i = 0, + ret = '', + data = undefined, + contextPath = undefined; + + if (options.data && options.ids) { + contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; + } + + if (isFunction(context)) { + context = context.call(this); + } + + if (options.data) { + data = createFrame(options.data); + } + + function execIteration(field, index, last) { + if (data) { + data.key = field; + data.index = index; + data.first = index === 0; + data.last = !!last; + + if (contextPath) { + data.contextPath = contextPath + field; + } } - if(context && typeof context === 'object') { - if (isArray(context)) { - for(var j = context.length; i":">",'"':""","'":"'","`":"`"},j=/[&<>"'`]/g,k=/[&<>"'`]/;b.extend=d;var l=Object.prototype.toString;b.toString=l;var m=function(a){return"function"==typeof a};m(/x/)&&(m=function(a){return"function"==typeof a&&"[object Function]"===l.call(a)});var m;b.isFunction=m;var n=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===l.call(a):!1};b.isArray=n,b.escapeExpression=e,b.isEmpty=f,b.appendContextPath=g}),define("handlebars/exception",["exports"],function(a){function b(a,b){var d;b&&b.firstLine&&(d=b.firstLine,a+=" - "+d+":"+b.firstColumn);for(var e=Error.prototype.constructor.call(this,a),f=0;f0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):d(this);if(c.data&&c.ids){var g=q(c.data);g.contextPath=f.appendContextPath(c.data.contextPath,c.name),c={data:g}}return e(b,c)}),a.registerHelper("each",function(a,b){if(!b)throw new g("Must pass iterator to #each");var c,d,e=b.fn,h=b.inverse,i=0,j="";if(b.data&&b.ids&&(d=f.appendContextPath(b.data.contextPath,b.ids[0])+"."),l(a)&&(a=a.call(this)),b.data&&(c=q(b.data)),a&&"object"==typeof a)if(k(a))for(var m=a.length;m>i;i++)c&&(c.index=i,c.first=0===i,c.last=i===a.length-1,d&&(c.contextPath=d+i)),j+=e(a[i],{data:c});else for(var n in a)a.hasOwnProperty(n)&&(c&&(c.key=n,c.index=i,c.first=0===i,d&&(c.contextPath=d+n)),j+=e(a[n],{data:c}),i++);return 0===i&&(j=h(this)),j}),a.registerHelper("if",function(a,b){return l(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||f.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper("with",function(a,b){l(a)&&(a=a.call(this));var c=b.fn;if(f.isEmpty(a))return b.inverse(this);if(b.data&&b.ids){var d=q(b.data);d.contextPath=f.appendContextPath(b.data.contextPath,b.ids[0]),b={data:d}}return c(a,b)}),a.registerHelper("log",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper("lookup",function(a,b){return a&&a[b]})}var f=a,g=b["default"],h="2.0.0";c.VERSION=h;var i=6;c.COMPILER_REVISION=i;var j={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};c.REVISION_CHANGES=j;var k=f.isArray,l=f.isFunction,m=f.toString,n="[object Object]";c.HandlebarsEnvironment=d,d.prototype={constructor:d,logger:o,log:p,registerHelper:function(a,b){if(m.call(a)===n){if(b)throw new g("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){m.call(a)===n?f.extend(this.partials,a):this.partials[a]=b},unregisterPartial:function(a){delete this.partials[a]}};var o={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(a,b){if(o.level<=a){var c=o.methodMap[a];"undefined"!=typeof console&&console[c]&&console[c].call(console,b)}}};c.logger=o;var p=o.log;c.log=p;var q=function(a){var b=f.extend({},a);return b._parent=a,b};c.createFrame=q}),define("handlebars/runtime",["./utils","./exception","./base","exports"],function(a,b,c,d){function e(a){var b=a&&a[0]||1,c=m;if(b!==c){if(c>b){var d=n[c],e=n[b];throw new l("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new l("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function f(a,b){if(!b)throw new l("No environment passed to template");if(!a||!a.main)throw new l("Unknown template object: "+typeof a);b.VM.checkRevision(a.compiler);var c=function(c,d,e,f,g,h,i,j,m){g&&(f=k.extend({},f,g));var n=b.VM.invokePartial.call(this,c,e,f,h,i,j,m);if(null==n&&b.compile){var o={helpers:h,partials:i,data:j,depths:m};i[e]=b.compile(c,{data:void 0!==j,compat:a.compat},b),n=i[e](f,o)}if(null!=n){if(d){for(var p=n.split("\n"),q=0,r=p.length;r>q&&(p[q]||q+1!==r);q++)p[q]=d+p[q];n=p.join("\n")}return n}throw new l("The partial "+e+" could not be compiled when running in runtime-only mode")},d={lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:k.escapeExpression,invokePartial:c,fn:function(b){return a[b]},programs:[],program:function(a,b,c){var d=this.programs[a],e=this.fn(a);return b||c?d=g(this,a,e,b,c):d||(d=this.programs[a]=g(this,a,e)),d},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=k.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler},e=function(b,c){c=c||{};var f=c.data;e._setup(c),!c.partial&&a.useData&&(f=j(b,f));var g;return a.useDepths&&(g=c.depths?[b].concat(c.depths):[b]),a.main.call(d,b,d.helpers,d.partials,f,g)};return e.isTop=!0,e._setup=function(c){c.partial?(d.helpers=c.helpers,d.partials=c.partials):(d.helpers=d.merge(c.helpers,b.helpers),a.usePartial&&(d.partials=d.merge(c.partials,b.partials)))},e._child=function(b,c,e){if(a.useDepths&&!e)throw new l("must pass parent depths");return g(d,b,a[b],c,e)},e}function g(a,b,c,d,e){var f=function(b,f){return f=f||{},c.call(a,b,a.helpers,a.partials,f.data||d,e&&[b].concat(e))};return f.program=b,f.depth=e?e.length:0,f}function h(a,b,c,d,e,f,g){var h={partial:!0,helpers:d,partials:e,data:f,depths:g};if(void 0===a)throw new l("The partial "+b+" could not be found");return a instanceof Function?a(c,h):void 0}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?o(b):{},b.root=a),b}var k=a,l=b["default"],m=c.COMPILER_REVISION,n=c.REVISION_CHANGES,o=c.createFrame;d.checkRevision=e,d.template=f,d.program=g,d.invokePartial=h,d.noop=i}),define("handlebars.runtime",["./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","exports"],function(a,b,c,d,e,f){var g=a,h=b["default"],i=c["default"],j=d,k=e,l=function(){var a=new g.HandlebarsEnvironment;return j.extend(a,g),a.SafeString=h,a.Exception=i,a.Utils=j,a.escapeExpression=j.escapeExpression,a.VM=k,a.template=function(b){return k.template(b,a)},a},m=l();m.create=l,m["default"]=m,f["default"]=m}); \ No newline at end of file +define("handlebars/utils",["exports"],function(a){function b(a){return i[a]}function c(a){for(var b=1;bc;c++)if(a[c]===b)return c;return-1}function e(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return k.test(a)?a.replace(j,b):a}function f(a){return a||0===a?n(a)&&0===a.length?!0:!1:!0}function g(a,b){return a.path=b,a}function h(a,b){return(a?a+".":"")+b}a.__esModule=!0,a.extend=c,a.indexOf=d,a.escapeExpression=e,a.isEmpty=f,a.blockParams=g,a.appendContextPath=h;var i={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},j=/[&<>"'`]/g,k=/[&<>"'`]/,l=Object.prototype.toString;a.toString=l;var m=function(a){return"function"==typeof a};m(/x/)&&(a.isFunction=m=function(a){return"function"==typeof a&&"[object Function]"===l.call(a)});var m;a.isFunction=m;var n=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===l.call(a):!1};a.isArray=n}),define("handlebars/exception",["exports","module"],function(a,b){function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;i0?(d.ids&&(d.ids=[d.name]),a.helpers.each(c,d)):e(this);if(d.data&&d.ids){var h=f(d.data);h.contextPath=b.appendContextPath(d.data.contextPath,d.name),d={data:h}}return g(c,d)}),a.registerHelper("each",function(a,c){function d(c,d,f){k&&(k.key=c,k.index=d,k.first=0===d,k.last=!!f,n&&(k.contextPath=n+c)),j+=e(a[c],{data:k,blockParams:b.blockParams([a[c],c],[n+c,null])})}if(!c)throw new h("Must pass iterator to #each");var e=c.fn,g=c.inverse,i=0,j="",k=void 0,n=void 0;if(c.data&&c.ids&&(n=b.appendContextPath(c.data.contextPath,c.ids[0])+"."),m(a)&&(a=a.call(this)),c.data&&(k=f(c.data)),a&&"object"==typeof a)if(l(a))for(var o=a.length;o>i;i++)d(i,i,i===a.length-1);else{var p=void 0;for(var q in a)a.hasOwnProperty(q)&&(p&&d(p,i-1),p=q,i++);p&&d(p,i-1,!0)}return 0===i&&(j=g(this)),j}),a.registerHelper("if",function(a,c){return m(a)&&(a=a.call(this)),!c.hash.includeZero&&!a||b.isEmpty(a)?c.inverse(this):c.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper("with",function(a,c){m(a)&&(a=a.call(this));var d=c.fn;if(b.isEmpty(a))return c.inverse(this);if(c.data&&c.ids){var e=f(c.data);e.contextPath=b.appendContextPath(c.data.contextPath,c.ids[0]),c={data:e}}return d(a,c)}),a.registerHelper("log",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper("lookup",function(a,b){return a&&a[b]})}function f(a){var c=b.extend({},a);return c._parent=a,c}var g=function(a){return a&&a.__esModule?a["default"]:a};a.__esModule=!0,a.HandlebarsEnvironment=d,a.createFrame=f;var h=g(c),i="3.0.1";a.VERSION=i;var j=6;a.COMPILER_REVISION=j;var k={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};a.REVISION_CHANGES=k;var l=b.isArray,m=b.isFunction,n=b.toString,o="[object Object]";d.prototype={constructor:d,logger:p,log:q,registerHelper:function(a,c){if(n.call(a)===o){if(c)throw new h("Arg not supported with multiple helpers");b.extend(this.helpers,a)}else this.helpers[a]=c},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,c){if(n.call(a)===o)b.extend(this.partials,a);else{if("undefined"==typeof c)throw new h("Attempting to register a partial as undefined");this.partials[a]=c}},unregisterPartial:function(a){delete this.partials[a]}};var p={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:1,log:function(a,b){if("undefined"!=typeof console&&p.level<=a){var c=p.methodMap[a];(console[c]||console.log).call(console,b)}}};a.logger=p;var q=p.log;a.log=q}),define("handlebars/safe-string",["exports","module"],function(a,b){function c(a){this.string=a}c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b.exports=c}),define("handlebars/runtime",["exports","./utils","./exception","./base"],function(a,b,c,d){function e(a){var b=a&&a[0]||1,c=d.COMPILER_REVISION;if(b!==c){if(c>b){var e=d.REVISION_CHANGES[c],f=d.REVISION_CHANGES[b];throw new m("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+e+") or downgrade your runtime to an older version ("+f+").")}throw new m("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function f(a,c){function d(d,e,f){f.hash&&(e=b.extend({},e,f.hash)),d=c.VM.resolvePartial.call(this,d,e,f);var g=c.VM.invokePartial.call(this,d,e,f);if(null==g&&c.compile&&(f.partials[f.name]=c.compile(d,a.compilerOptions,c),g=f.partials[f.name](e,f)),null!=g){if(f.indent){for(var h=g.split("\n"),i=0,j=h.length;j>i&&(h[i]||i+1!==j);i++)h[i]=f.indent+h[i];g=h.join("\n")}return g}throw new m("The partial "+f.name+" could not be compiled when running in runtime-only mode")}function e(b){var c=void 0===arguments[1]?{}:arguments[1],d=c.data;e._setup(c),!c.partial&&a.useData&&(d=k(b,d));var g=void 0,h=a.useBlockParams?[]:void 0;return a.useDepths&&(g=c.depths?[b].concat(c.depths):[b]),a.main.call(f,b,f.helpers,f.partials,d,h,g)}if(!c)throw new m("No environment passed to template");if(!a||!a.main)throw new m("Unknown template object: "+typeof a);c.VM.checkRevision(a.compiler);var f={strict:function(a,b){if(!(b in a))throw new m('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:b.escapeExpression,invokePartial:d,fn:function(b){return a[b]},programs:[],program:function(a,b,c,d,e){var f=this.programs[a],h=this.fn(a);return b||e||d||c?f=g(this,a,h,b,c,d,e):f||(f=this.programs[a]=g(this,a,h)),f},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,c){var d=a||c;return a&&c&&a!==c&&(d=b.extend({},c,a)),d},noop:c.VM.noop,compilerInfo:a.compiler};return e.isTop=!0,e._setup=function(b){b.partial?(f.helpers=b.helpers,f.partials=b.partials):(f.helpers=f.merge(b.helpers,c.helpers),a.usePartial&&(f.partials=f.merge(b.partials,c.partials)))},e._child=function(b,c,d,e){if(a.useBlockParams&&!d)throw new m("must pass block params");if(a.useDepths&&!e)throw new m("must pass parent depths");return g(f,b,a[b],c,0,d,e)},e}function g(a,b,c,d,e,f,g){function h(b){var e=void 0===arguments[1]?{}:arguments[1];return c.call(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),g&&[b].concat(g))}return h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function h(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a=c.partials[c.name],a}function i(a,b,c){if(c.partial=!0,void 0===a)throw new m("The partial "+c.name+" could not be found");return a instanceof Function?a(b,c):void 0}function j(){return""}function k(a,b){return b&&"root"in b||(b=b?d.createFrame(b):{},b.root=a),b}var l=function(a){return a&&a.__esModule?a["default"]:a};a.__esModule=!0,a.checkRevision=e,a.template=f,a.wrapProgram=g,a.resolvePartial=h,a.invokePartial=i,a.noop=j;var m=l(c)}),define("handlebars/no-conflict",["exports","module"],function(a,b){b.exports=function(a){var b="undefined"!=typeof global?global:window,c=b.Handlebars;a.noConflict=function(){b.Handlebars===a&&(b.Handlebars=c)}}}),define("handlebars.runtime",["exports","module","./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","./handlebars/no-conflict"],function(a,b,c,d,e,f,g,h){function i(){var a=new c.HandlebarsEnvironment;return f.extend(a,c),a.SafeString=k,a.Exception=l,a.Utils=f,a.escapeExpression=f.escapeExpression,a.VM=g,a.template=function(b){return g.template(b,a)},a}var j=function(a){return a&&a.__esModule?a["default"]:a},k=j(d),l=j(e),m=j(h),n=i();n.create=i,m(n),n["default"]=n,b.exports=n}); \ No newline at end of file diff --git a/node_modules/handlebars/dist/handlebars.runtime.js b/node_modules/handlebars/dist/handlebars.runtime.js index 932fb7a..2263826 100644 --- a/node_modules/handlebars/dist/handlebars.runtime.js +++ b/node_modules/handlebars/dist/handlebars.runtime.js @@ -1,6 +1,6 @@ /*! - handlebars v2.0.0 + handlebars v3.0.3 Copyright (C) 2011-2014 by Yehuda Katz @@ -24,637 +24,858 @@ THE SOFTWARE. @license */ -/* exported Handlebars */ -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - define([], factory); - } else if (typeof exports === 'object') { - module.exports = factory(); - } else { - root.Handlebars = root.Handlebars || factory(); - } -}(this, function () { -// handlebars/safe-string.js -var __module3__ = (function() { - "use strict"; - var __exports__; - // Build out our basic SafeString type - function SafeString(string) { - this.string = string; - } - - SafeString.prototype.toString = function() { - return "" + this.string; - }; - - __exports__ = SafeString; - return __exports__; -})(); - -// handlebars/utils.js -var __module2__ = (function(__dependency1__) { - "use strict"; - var __exports__ = {}; - /*jshint -W004 */ - var SafeString = __dependency1__; - - var escape = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`" - }; - - var badChars = /[&<>"'`]/g; - var possible = /[&<>"'`]/; - - function escapeChar(chr) { - return escape[chr]; - } - - function extend(obj /* , ...source */) { - for (var i = 1; i < arguments.length; i++) { - for (var key in arguments[i]) { - if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { - obj[key] = arguments[i][key]; - } - } - } - - return obj; - } - - __exports__.extend = extend;var toString = Object.prototype.toString; - __exports__.toString = toString; - // Sourced from lodash - // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt - var isFunction = function(value) { - return typeof value === 'function'; - }; - // fallback for older versions of Chrome and Safari - /* istanbul ignore next */ - if (isFunction(/x/)) { - isFunction = function(value) { - return typeof value === 'function' && toString.call(value) === '[object Function]'; - }; - } - var isFunction; - __exports__.isFunction = isFunction; - /* istanbul ignore next */ - var isArray = Array.isArray || function(value) { - return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false; - }; - __exports__.isArray = isArray; - - function escapeExpression(string) { - // don't escape SafeStrings, since they're already safe - if (string instanceof SafeString) { - return string.toString(); - } else if (string == null) { - return ""; - } else if (!string) { - return string + ''; - } - - // Force a string conversion as this will be done by the append regardless and - // the regex test will do this transparently behind the scenes, causing issues if - // an object's to string has escaped characters in it. - string = "" + string; - - if(!possible.test(string)) { return string; } - return string.replace(badChars, escapeChar); - } - - __exports__.escapeExpression = escapeExpression;function isEmpty(value) { - if (!value && value !== 0) { - return true; - } else if (isArray(value) && value.length === 0) { - return true; - } else { - return false; - } - } - - __exports__.isEmpty = isEmpty;function appendContextPath(contextPath, id) { - return (contextPath ? contextPath + '.' : '') + id; - } - - __exports__.appendContextPath = appendContextPath; - return __exports__; -})(__module3__); - -// handlebars/exception.js -var __module4__ = (function() { - "use strict"; - var __exports__; - - var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; - - function Exception(message, node) { - var line; - if (node && node.firstLine) { - line = node.firstLine; - - message += ' - ' + line + ':' + node.firstColumn; - } - - var tmp = Error.prototype.constructor.call(this, message); - - // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. - for (var idx = 0; idx < errorProps.length; idx++) { - this[errorProps[idx]] = tmp[errorProps[idx]]; - } - - if (line) { - this.lineNumber = line; - this.column = node.firstColumn; - } - } - - Exception.prototype = new Error(); - - __exports__ = Exception; - return __exports__; -})(); - -// handlebars/base.js -var __module1__ = (function(__dependency1__, __dependency2__) { - "use strict"; - var __exports__ = {}; - var Utils = __dependency1__; - var Exception = __dependency2__; - - var VERSION = "2.0.0"; - __exports__.VERSION = VERSION;var COMPILER_REVISION = 6; - __exports__.COMPILER_REVISION = COMPILER_REVISION; - var REVISION_CHANGES = { - 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it - 2: '== 1.0.0-rc.3', - 3: '== 1.0.0-rc.4', - 4: '== 1.x.x', - 5: '== 2.0.0-alpha.x', - 6: '>= 2.0.0-beta.1' - }; - __exports__.REVISION_CHANGES = REVISION_CHANGES; - var isArray = Utils.isArray, - isFunction = Utils.isFunction, - toString = Utils.toString, - objectType = '[object Object]'; - - function HandlebarsEnvironment(helpers, partials) { - this.helpers = helpers || {}; - this.partials = partials || {}; - - registerDefaultHelpers(this); - } - - __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = { - constructor: HandlebarsEnvironment, - - logger: logger, - log: log, - - registerHelper: function(name, fn) { - if (toString.call(name) === objectType) { - if (fn) { throw new Exception('Arg not supported with multiple helpers'); } - Utils.extend(this.helpers, name); - } else { - this.helpers[name] = fn; - } - }, - unregisterHelper: function(name) { - delete this.helpers[name]; - }, - - registerPartial: function(name, partial) { - if (toString.call(name) === objectType) { - Utils.extend(this.partials, name); - } else { - this.partials[name] = partial; - } - }, - unregisterPartial: function(name) { - delete this.partials[name]; - } - }; - - function registerDefaultHelpers(instance) { - instance.registerHelper('helperMissing', function(/* [args, ]options */) { - if(arguments.length === 1) { - // A missing field in a {{foo}} constuct. - return undefined; - } else { - // Someone is actually trying to call something, blow up. - throw new Exception("Missing helper: '" + arguments[arguments.length-1].name + "'"); - } - }); - - instance.registerHelper('blockHelperMissing', function(context, options) { - var inverse = options.inverse, - fn = options.fn; - - if(context === true) { - return fn(this); - } else if(context === false || context == null) { - return inverse(this); - } else if (isArray(context)) { - if(context.length > 0) { - if (options.ids) { - options.ids = [options.name]; - } - - return instance.helpers.each(context, options); - } else { - return inverse(this); - } - } else { - if (options.data && options.ids) { - var data = createFrame(options.data); - data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name); - options = {data: data}; - } - - return fn(context, options); - } - }); - - instance.registerHelper('each', function(context, options) { - if (!options) { - throw new Exception('Must pass iterator to #each'); - } - - var fn = options.fn, inverse = options.inverse; - var i = 0, ret = "", data; - - var contextPath; - if (options.data && options.ids) { - contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; - } - - if (isFunction(context)) { context = context.call(this); } - - if (options.data) { - data = createFrame(options.data); - } - - if(context && typeof context === 'object') { - if (isArray(context)) { - for(var j = context.length; i= 2.0.0-beta.1' + }; + + exports.REVISION_CHANGES = REVISION_CHANGES; + var isArray = Utils.isArray, + isFunction = Utils.isFunction, + toString = Utils.toString, + objectType = '[object Object]'; + + function HandlebarsEnvironment(helpers, partials) { + this.helpers = helpers || {}; + this.partials = partials || {}; + + registerDefaultHelpers(this); + } + + HandlebarsEnvironment.prototype = { + constructor: HandlebarsEnvironment, + + logger: logger, + log: log, + + registerHelper: function registerHelper(name, fn) { + if (toString.call(name) === objectType) { + if (fn) { + throw new _Exception2['default']('Arg not supported with multiple helpers'); + } + Utils.extend(this.helpers, name); + } else { + this.helpers[name] = fn; + } + }, + unregisterHelper: function unregisterHelper(name) { + delete this.helpers[name]; + }, + + registerPartial: function registerPartial(name, partial) { + if (toString.call(name) === objectType) { + Utils.extend(this.partials, name); + } else { + if (typeof partial === 'undefined') { + throw new _Exception2['default']('Attempting to register a partial as undefined'); + } + this.partials[name] = partial; + } + }, + unregisterPartial: function unregisterPartial(name) { + delete this.partials[name]; + } + }; + + function registerDefaultHelpers(instance) { + instance.registerHelper('helperMissing', function () { + if (arguments.length === 1) { + // A missing field in a {{foo}} constuct. + return undefined; + } else { + // Someone is actually trying to call something, blow up. + throw new _Exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"'); + } + }); + + instance.registerHelper('blockHelperMissing', function (context, options) { + var inverse = options.inverse, + fn = options.fn; + + if (context === true) { + return fn(this); + } else if (context === false || context == null) { + return inverse(this); + } else if (isArray(context)) { + if (context.length > 0) { + if (options.ids) { + options.ids = [options.name]; + } + + return instance.helpers.each(context, options); + } else { + return inverse(this); + } + } else { + if (options.data && options.ids) { + var data = createFrame(options.data); + data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name); + options = { data: data }; + } + + return fn(context, options); + } + }); + + instance.registerHelper('each', function (context, options) { + if (!options) { + throw new _Exception2['default']('Must pass iterator to #each'); + } + + var fn = options.fn, + inverse = options.inverse, + i = 0, + ret = '', + data = undefined, + contextPath = undefined; + + if (options.data && options.ids) { + contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; + } + + if (isFunction(context)) { + context = context.call(this); + } + + if (options.data) { + data = createFrame(options.data); + } + + function execIteration(field, index, last) { + if (data) { + data.key = field; + data.index = index; + data.first = index === 0; + data.last = !!last; + + if (contextPath) { + data.contextPath = contextPath + field; + } + } + + ret = ret + fn(context[field], { + data: data, + blockParams: Utils.blockParams([context[field], field], [contextPath + field, null]) + }); + } + + if (context && typeof context === 'object') { + if (isArray(context)) { + for (var j = context.length; i < j; i++) { + execIteration(i, i, i === context.length - 1); + } + } else { + var priorKey = undefined; + + for (var key in context) { + if (context.hasOwnProperty(key)) { + // We're running the iterations one step out of sync so we can detect + // the last iteration without have to scan the object twice and create + // an itermediate keys array. + if (priorKey) { + execIteration(priorKey, i - 1); + } + priorKey = key; + i++; + } + } + if (priorKey) { + execIteration(priorKey, i - 1, true); + } + } + } + + if (i === 0) { + ret = inverse(this); + } + + return ret; + }); + + instance.registerHelper('if', function (conditional, options) { + if (isFunction(conditional)) { + conditional = conditional.call(this); + } + + // Default behavior is to render the positive path if the value is truthy and not empty. + // The `includeZero` option may be set to treat the condtional as purely not empty based on the + // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative. + if (!options.hash.includeZero && !conditional || Utils.isEmpty(conditional)) { + return options.inverse(this); + } else { + return options.fn(this); + } + }); + + instance.registerHelper('unless', function (conditional, options) { + return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash }); + }); + + instance.registerHelper('with', function (context, options) { + if (isFunction(context)) { + context = context.call(this); + } + + var fn = options.fn; + + if (!Utils.isEmpty(context)) { + if (options.data && options.ids) { + var data = createFrame(options.data); + data.contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]); + options = { data: data }; + } + + return fn(context, options); + } else { + return options.inverse(this); + } + }); + + instance.registerHelper('log', function (message, options) { + var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1; + instance.log(level, message); + }); + + instance.registerHelper('lookup', function (obj, field) { + return obj && obj[field]; + }); + } + + var logger = { + methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' }, + + // State enum + DEBUG: 0, + INFO: 1, + WARN: 2, + ERROR: 3, + level: 1, + + // Can be overridden in the host environment + log: function log(level, message) { + if (typeof console !== 'undefined' && logger.level <= level) { + var method = logger.methodMap[level]; + (console[method] || console.log).call(console, message); // eslint-disable-line no-console + } + } + }; + + exports.logger = logger; + var log = logger.log; + + exports.log = log; + + function createFrame(object) { + var frame = Utils.extend({}, object); + frame._parent = object; + return frame; + } + + /* [args, ]options */ + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + // Build out our basic SafeString type + function SafeString(string) { + this.string = string; + } + + SafeString.prototype.toString = SafeString.prototype.toHTML = function () { + return '' + this.string; + }; + + exports['default'] = SafeString; + module.exports = exports['default']; + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack']; + + function Exception(message, node) { + var loc = node && node.loc, + line = undefined, + column = undefined; + if (loc) { + line = loc.start.line; + column = loc.start.column; + + message += ' - ' + line + ':' + column; + } + + var tmp = Error.prototype.constructor.call(this, message); + + // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. + for (var idx = 0; idx < errorProps.length; idx++) { + this[errorProps[idx]] = tmp[errorProps[idx]]; + } + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, Exception); + } + + if (loc) { + this.lineNumber = line; + this.column = column; + } + } + + Exception.prototype = new Error(); + + exports['default'] = Exception; + module.exports = exports['default']; + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports.extend = extend; + + // Older IE versions do not directly support indexOf so we must implement our own, sadly. + exports.indexOf = indexOf; + exports.escapeExpression = escapeExpression; + exports.isEmpty = isEmpty; + exports.blockParams = blockParams; + exports.appendContextPath = appendContextPath; + var escape = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '`': '`' + }; + + var badChars = /[&<>"'`]/g, + possible = /[&<>"'`]/; + + function escapeChar(chr) { + return escape[chr]; + } + + function extend(obj /* , ...source */) { + for (var i = 1; i < arguments.length; i++) { + for (var key in arguments[i]) { + if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { + obj[key] = arguments[i][key]; + } + } + } + + return obj; + } + + var toString = Object.prototype.toString; + + exports.toString = toString; + // Sourced from lodash + // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt + /*eslint-disable func-style, no-var */ + var isFunction = function isFunction(value) { + return typeof value === 'function'; + }; + // fallback for older versions of Chrome and Safari + /* istanbul ignore next */ + if (isFunction(/x/)) { + exports.isFunction = isFunction = function (value) { + return typeof value === 'function' && toString.call(value) === '[object Function]'; + }; + } + var isFunction; + exports.isFunction = isFunction; + /*eslint-enable func-style, no-var */ + + /* istanbul ignore next */ + var isArray = Array.isArray || function (value) { + return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false; + };exports.isArray = isArray; + + function indexOf(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; + } + + function escapeExpression(string) { + if (typeof string !== 'string') { + // don't escape SafeStrings, since they're already safe + if (string && string.toHTML) { + return string.toHTML(); + } else if (string == null) { + return ''; + } else if (!string) { + return string + ''; + } + + // Force a string conversion as this will be done by the append regardless and + // the regex test will do this transparently behind the scenes, causing issues if + // an object's to string has escaped characters in it. + string = '' + string; + } + + if (!possible.test(string)) { + return string; + } + return string.replace(badChars, escapeChar); + } + + function isEmpty(value) { + if (!value && value !== 0) { + return true; + } else if (isArray(value) && value.length === 0) { + return true; + } else { + return false; + } + } + + function blockParams(params, ids) { + params.path = ids; + return params; + } + + function appendContextPath(contextPath, id) { + return (contextPath ? contextPath + '.' : '') + id; + } + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = __webpack_require__(7)['default']; + + exports.__esModule = true; + exports.checkRevision = checkRevision; + + // TODO: Remove this line and break up compilePartial + + exports.template = template; + exports.wrapProgram = wrapProgram; + exports.resolvePartial = resolvePartial; + exports.invokePartial = invokePartial; + exports.noop = noop; + + var _import = __webpack_require__(4); + + var Utils = _interopRequireWildcard(_import); + + var _Exception = __webpack_require__(3); + + var _Exception2 = _interopRequireWildcard(_Exception); + + var _COMPILER_REVISION$REVISION_CHANGES$createFrame = __webpack_require__(1); + + function checkRevision(compilerInfo) { + var compilerRevision = compilerInfo && compilerInfo[0] || 1, + currentRevision = _COMPILER_REVISION$REVISION_CHANGES$createFrame.COMPILER_REVISION; + + if (compilerRevision !== currentRevision) { + if (compilerRevision < currentRevision) { + var runtimeVersions = _COMPILER_REVISION$REVISION_CHANGES$createFrame.REVISION_CHANGES[currentRevision], + compilerVersions = _COMPILER_REVISION$REVISION_CHANGES$createFrame.REVISION_CHANGES[compilerRevision]; + throw new _Exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').'); + } else { + // Use the embedded version info since the runtime doesn't know about this revision yet + throw new _Exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').'); + } + } + } + + function template(templateSpec, env) { + /* istanbul ignore next */ + if (!env) { + throw new _Exception2['default']('No environment passed to template'); + } + if (!templateSpec || !templateSpec.main) { + throw new _Exception2['default']('Unknown template object: ' + typeof templateSpec); + } + + // Note: Using env.VM references rather than local var references throughout this section to allow + // for external users to override these as psuedo-supported APIs. + env.VM.checkRevision(templateSpec.compiler); + + function invokePartialWrapper(partial, context, options) { + if (options.hash) { + context = Utils.extend({}, context, options.hash); + } + + partial = env.VM.resolvePartial.call(this, partial, context, options); + var result = env.VM.invokePartial.call(this, partial, context, options); + + if (result == null && env.compile) { + options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env); + result = options.partials[options.name](context, options); + } + if (result != null) { + if (options.indent) { + var lines = result.split('\n'); + for (var i = 0, l = lines.length; i < l; i++) { + if (!lines[i] && i + 1 === l) { + break; + } + + lines[i] = options.indent + lines[i]; + } + result = lines.join('\n'); + } + return result; + } else { + throw new _Exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode'); + } + } + + // Just add water + var container = { + strict: function strict(obj, name) { + if (!(name in obj)) { + throw new _Exception2['default']('"' + name + '" not defined in ' + obj); + } + return obj[name]; + }, + lookup: function lookup(depths, name) { + var len = depths.length; + for (var i = 0; i < len; i++) { + if (depths[i] && depths[i][name] != null) { + return depths[i][name]; + } + } + }, + lambda: function lambda(current, context) { + return typeof current === 'function' ? current.call(context) : current; + }, + + escapeExpression: Utils.escapeExpression, + invokePartial: invokePartialWrapper, + + fn: function fn(i) { + return templateSpec[i]; + }, + + programs: [], + program: function program(i, data, declaredBlockParams, blockParams, depths) { + var programWrapper = this.programs[i], + fn = this.fn(i); + if (data || depths || blockParams || declaredBlockParams) { + programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths); + } else if (!programWrapper) { + programWrapper = this.programs[i] = wrapProgram(this, i, fn); + } + return programWrapper; + }, + + data: function data(value, depth) { + while (value && depth--) { + value = value._parent; + } + return value; + }, + merge: function merge(param, common) { + var obj = param || common; + + if (param && common && param !== common) { + obj = Utils.extend({}, common, param); + } + + return obj; + }, + + noop: env.VM.noop, + compilerInfo: templateSpec.compiler + }; + + function ret(context) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + var data = options.data; + + ret._setup(options); + if (!options.partial && templateSpec.useData) { + data = initData(context, data); + } + var depths = undefined, + blockParams = templateSpec.useBlockParams ? [] : undefined; + if (templateSpec.useDepths) { + depths = options.depths ? [context].concat(options.depths) : [context]; + } + + return templateSpec.main.call(container, context, container.helpers, container.partials, data, blockParams, depths); + } + ret.isTop = true; + + ret._setup = function (options) { + if (!options.partial) { + container.helpers = container.merge(options.helpers, env.helpers); + + if (templateSpec.usePartial) { + container.partials = container.merge(options.partials, env.partials); + } + } else { + container.helpers = options.helpers; + container.partials = options.partials; + } + }; + + ret._child = function (i, data, blockParams, depths) { + if (templateSpec.useBlockParams && !blockParams) { + throw new _Exception2['default']('must pass block params'); + } + if (templateSpec.useDepths && !depths) { + throw new _Exception2['default']('must pass parent depths'); + } + + return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths); + }; + return ret; + } + + function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) { + function prog(context) { + var options = arguments[1] === undefined ? {} : arguments[1]; + + return fn.call(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), depths && [context].concat(depths)); + } + prog.program = i; + prog.depth = depths ? depths.length : 0; + prog.blockParams = declaredBlockParams || 0; + return prog; + } + + function resolvePartial(partial, context, options) { + if (!partial) { + partial = options.partials[options.name]; + } else if (!partial.call && !options.name) { + // This is a dynamic partial that returned a string + options.name = partial; + partial = options.partials[partial]; + } + return partial; + } + + function invokePartial(partial, context, options) { + options.partial = true; + + if (partial === undefined) { + throw new _Exception2['default']('The partial ' + options.name + ' could not be found'); + } else if (partial instanceof Function) { + return partial(context, options); + } + } + + function noop() { + return ''; + } + + function initData(context, data) { + if (!data || !('root' in data)) { + data = data ? _COMPILER_REVISION$REVISION_CHANGES$createFrame.createFrame(data) : {}; + data.root = context; + } + return data; + } + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + exports.__esModule = true; + /*global window */ + + exports['default'] = function (Handlebars) { + /* istanbul ignore next */ + var root = typeof global !== 'undefined' ? global : window, + $Handlebars = root.Handlebars; + /* istanbul ignore next */ + Handlebars.noConflict = function () { + if (root.Handlebars === Handlebars) { + root.Handlebars = $Handlebars; + } + }; + }; + + module.exports = exports['default']; + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + + exports["default"] = function (obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + }; + + exports.__esModule = true; + +/***/ } +/******/ ]) +}); +; \ No newline at end of file diff --git a/node_modules/handlebars/dist/handlebars.runtime.min.js b/node_modules/handlebars/dist/handlebars.runtime.min.js index 33b0759..9571216 100644 --- a/node_modules/handlebars/dist/handlebars.runtime.min.js +++ b/node_modules/handlebars/dist/handlebars.runtime.min.js @@ -1,6 +1,6 @@ /*! - handlebars v2.0.0 + handlebars v3.0.3 Copyright (C) 2011-2014 by Yehuda Katz @@ -24,4 +24,4 @@ THE SOFTWARE. @license */ -!function(a,b){"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.Handlebars=a.Handlebars||b()}(this,function(){var a=function(){"use strict";function a(a){this.string=a}var b;return a.prototype.toString=function(){return""+this.string},b=a}(),b=function(a){"use strict";function b(a){return i[a]}function c(a){for(var b=1;b":">",'"':""","'":"'","`":"`"},j=/[&<>"'`]/g,k=/[&<>"'`]/;g.extend=c;var l=Object.prototype.toString;g.toString=l;var m=function(a){return"function"==typeof a};m(/x/)&&(m=function(a){return"function"==typeof a&&"[object Function]"===l.call(a)});var m;g.isFunction=m;var n=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===l.call(a):!1};return g.isArray=n,g.escapeExpression=d,g.isEmpty=e,g.appendContextPath=f,g}(a),c=function(){"use strict";function a(a,b){var d;b&&b.firstLine&&(d=b.firstLine,a+=" - "+d+":"+b.firstColumn);for(var e=Error.prototype.constructor.call(this,a),f=0;f0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):d(this);if(c.data&&c.ids){var g=q(c.data);g.contextPath=f.appendContextPath(c.data.contextPath,c.name),c={data:g}}return e(b,c)}),a.registerHelper("each",function(a,b){if(!b)throw new g("Must pass iterator to #each");var c,d,e=b.fn,h=b.inverse,i=0,j="";if(b.data&&b.ids&&(d=f.appendContextPath(b.data.contextPath,b.ids[0])+"."),l(a)&&(a=a.call(this)),b.data&&(c=q(b.data)),a&&"object"==typeof a)if(k(a))for(var m=a.length;m>i;i++)c&&(c.index=i,c.first=0===i,c.last=i===a.length-1,d&&(c.contextPath=d+i)),j+=e(a[i],{data:c});else for(var n in a)a.hasOwnProperty(n)&&(c&&(c.key=n,c.index=i,c.first=0===i,d&&(c.contextPath=d+n)),j+=e(a[n],{data:c}),i++);return 0===i&&(j=h(this)),j}),a.registerHelper("if",function(a,b){return l(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||f.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper("with",function(a,b){l(a)&&(a=a.call(this));var c=b.fn;if(f.isEmpty(a))return b.inverse(this);if(b.data&&b.ids){var d=q(b.data);d.contextPath=f.appendContextPath(b.data.contextPath,b.ids[0]),b={data:d}}return c(a,b)}),a.registerHelper("log",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper("lookup",function(a,b){return a&&a[b]})}var e={},f=a,g=b,h="2.0.0";e.VERSION=h;var i=6;e.COMPILER_REVISION=i;var j={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};e.REVISION_CHANGES=j;var k=f.isArray,l=f.isFunction,m=f.toString,n="[object Object]";e.HandlebarsEnvironment=c,c.prototype={constructor:c,logger:o,log:p,registerHelper:function(a,b){if(m.call(a)===n){if(b)throw new g("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){m.call(a)===n?f.extend(this.partials,a):this.partials[a]=b},unregisterPartial:function(a){delete this.partials[a]}};var o={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(a,b){if(o.level<=a){var c=o.methodMap[a];"undefined"!=typeof console&&console[c]&&console[c].call(console,b)}}};e.logger=o;var p=o.log;e.log=p;var q=function(a){var b=f.extend({},a);return b._parent=a,b};return e.createFrame=q,e}(b,c),e=function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=m;if(b!==c){if(c>b){var d=n[c],e=n[b];throw new l("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new l("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){if(!b)throw new l("No environment passed to template");if(!a||!a.main)throw new l("Unknown template object: "+typeof a);b.VM.checkRevision(a.compiler);var c=function(c,d,e,f,g,h,i,j,m){g&&(f=k.extend({},f,g));var n=b.VM.invokePartial.call(this,c,e,f,h,i,j,m);if(null==n&&b.compile){var o={helpers:h,partials:i,data:j,depths:m};i[e]=b.compile(c,{data:void 0!==j,compat:a.compat},b),n=i[e](f,o)}if(null!=n){if(d){for(var p=n.split("\n"),q=0,r=p.length;r>q&&(p[q]||q+1!==r);q++)p[q]=d+p[q];n=p.join("\n")}return n}throw new l("The partial "+e+" could not be compiled when running in runtime-only mode")},d={lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:k.escapeExpression,invokePartial:c,fn:function(b){return a[b]},programs:[],program:function(a,b,c){var d=this.programs[a],e=this.fn(a);return b||c?d=f(this,a,e,b,c):d||(d=this.programs[a]=f(this,a,e)),d},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=k.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler},e=function(b,c){c=c||{};var f=c.data;e._setup(c),!c.partial&&a.useData&&(f=i(b,f));var g;return a.useDepths&&(g=c.depths?[b].concat(c.depths):[b]),a.main.call(d,b,d.helpers,d.partials,f,g)};return e.isTop=!0,e._setup=function(c){c.partial?(d.helpers=c.helpers,d.partials=c.partials):(d.helpers=d.merge(c.helpers,b.helpers),a.usePartial&&(d.partials=d.merge(c.partials,b.partials)))},e._child=function(b,c,e){if(a.useDepths&&!e)throw new l("must pass parent depths");return f(d,b,a[b],c,e)},e}function f(a,b,c,d,e){var f=function(b,f){return f=f||{},c.call(a,b,a.helpers,a.partials,f.data||d,e&&[b].concat(e))};return f.program=b,f.depth=e?e.length:0,f}function g(a,b,c,d,e,f,g){var h={partial:!0,helpers:d,partials:e,data:f,depths:g};if(void 0===a)throw new l("The partial "+b+" could not be found");return a instanceof Function?a(c,h):void 0}function h(){return""}function i(a,b){return b&&"root"in b||(b=b?o(b):{},b.root=a),b}var j={},k=a,l=b,m=c.COMPILER_REVISION,n=c.REVISION_CHANGES,o=c.createFrame;return j.checkRevision=d,j.template=e,j.program=f,j.invokePartial=g,j.noop=h,j}(b,c,d),f=function(a,b,c,d,e){"use strict";var f,g=a,h=b,i=c,j=d,k=e,l=function(){var a=new g.HandlebarsEnvironment;return j.extend(a,g),a.SafeString=h,a.Exception=i,a.Utils=j,a.escapeExpression=j.escapeExpression,a.VM=k,a.template=function(b){return k.template(b,a)},a},m=l();return m.create=l,m["default"]=m,f=m}(d,a,c,b,e);return f}); \ No newline at end of file +!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):"object"==typeof exports?exports.Handlebars=b():a.Handlebars=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";function d(){var a=new g.HandlebarsEnvironment;return m.extend(a,g),a.SafeString=i["default"],a.Exception=k["default"],a.Utils=m,a.escapeExpression=m.escapeExpression,a.VM=o,a.template=function(b){return o.template(b,a)},a}var e=c(7)["default"];b.__esModule=!0;var f=c(1),g=e(f),h=c(2),i=e(h),j=c(3),k=e(j),l=c(4),m=e(l),n=c(5),o=e(n),p=c(6),q=e(p),r=d();r.create=d,q["default"](r),r["default"]=r,b["default"]=r,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){this.helpers=a||{},this.partials=b||{},e(this)}function e(a){a.registerHelper("helperMissing",function(){if(1===arguments.length)return void 0;throw new k["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')}),a.registerHelper("blockHelperMissing",function(b,c){var d=c.inverse,e=c.fn;if(b===!0)return e(this);if(b===!1||null==b)return d(this);if(o(b))return b.length>0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):d(this);if(c.data&&c.ids){var g=f(c.data);g.contextPath=i.appendContextPath(c.data.contextPath,c.name),c={data:g}}return e(b,c)}),a.registerHelper("each",function(a,b){function c(b,c,e){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!e,l&&(j.contextPath=l+b)),h+=d(a[b],{data:j,blockParams:i.blockParams([a[b],b],[l+b,null])})}if(!b)throw new k["default"]("Must pass iterator to #each");var d=b.fn,e=b.inverse,g=0,h="",j=void 0,l=void 0;if(b.data&&b.ids&&(l=i.appendContextPath(b.data.contextPath,b.ids[0])+"."),p(a)&&(a=a.call(this)),b.data&&(j=f(b.data)),a&&"object"==typeof a)if(o(a))for(var m=a.length;m>g;g++)c(g,g,g===a.length-1);else{var n=void 0;for(var q in a)a.hasOwnProperty(q)&&(n&&c(n,g-1),n=q,g++);n&&c(n,g-1,!0)}return 0===g&&(h=e(this)),h}),a.registerHelper("if",function(a,b){return p(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||i.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper("with",function(a,b){p(a)&&(a=a.call(this));var c=b.fn;if(i.isEmpty(a))return b.inverse(this);if(b.data&&b.ids){var d=f(b.data);d.contextPath=i.appendContextPath(b.data.contextPath,b.ids[0]),b={data:d}}return c(a,b)}),a.registerHelper("log",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper("lookup",function(a,b){return a&&a[b]})}function f(a){var b=i.extend({},a);return b._parent=a,b}var g=c(7)["default"];b.__esModule=!0,b.HandlebarsEnvironment=d,b.createFrame=f;var h=c(4),i=g(h),j=c(3),k=g(j),l="3.0.1";b.VERSION=l;var m=6;b.COMPILER_REVISION=m;var n={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};b.REVISION_CHANGES=n;var o=i.isArray,p=i.isFunction,q=i.toString,r="[object Object]";d.prototype={constructor:d,logger:s,log:t,registerHelper:function(a,b){if(q.call(a)===r){if(b)throw new k["default"]("Arg not supported with multiple helpers");i.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(q.call(a)===r)i.extend(this.partials,a);else{if("undefined"==typeof b)throw new k["default"]("Attempting to register a partial as undefined");this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]}};var s={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:1,log:function(a,b){if("undefined"!=typeof console&&s.level<=a){var c=s.methodMap[a];(console[c]||console.log).call(console,b)}}};b.logger=s;var t=s.log;b.log=t},function(a,b){"use strict";function c(a){this.string=a}b.__esModule=!0,c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b["default"]=c,a.exports=b["default"]},function(a,b){"use strict";function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;ic;c++)if(a[c]===b)return c;return-1}function f(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return l.test(a)?a.replace(k,c):a}function g(a){return a||0===a?o(a)&&0===a.length?!0:!1:!0}function h(a,b){return a.path=b,a}function i(a,b){return(a?a+".":"")+b}b.__esModule=!0,b.extend=d,b.indexOf=e,b.escapeExpression=f,b.isEmpty=g,b.blockParams=h,b.appendContextPath=i;var j={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},k=/[&<>"'`]/g,l=/[&<>"'`]/,m=Object.prototype.toString;b.toString=m;var n=function(a){return"function"==typeof a};n(/x/)&&(b.isFunction=n=function(a){return"function"==typeof a&&"[object Function]"===m.call(a)});var n;b.isFunction=n;var o=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===m.call(a):!1};b.isArray=o},function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=p.COMPILER_REVISION;if(b!==c){if(c>b){var d=p.REVISION_CHANGES[c],e=p.REVISION_CHANGES[b];throw new o["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new o["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){function c(c,d,e){e.hash&&(d=m.extend({},d,e.hash)),c=b.VM.resolvePartial.call(this,c,d,e);var f=b.VM.invokePartial.call(this,c,d,e);if(null==f&&b.compile&&(e.partials[e.name]=b.compile(c,a.compilerOptions,b),f=e.partials[e.name](d,e)),null!=f){if(e.indent){for(var g=f.split("\n"),h=0,i=g.length;i>h&&(g[h]||h+1!==i);h++)g[h]=e.indent+g[h];f=g.join("\n")}return f}throw new o["default"]("The partial "+e.name+" could not be compiled when running in runtime-only mode")}function d(b){var c=void 0===arguments[1]?{}:arguments[1],f=c.data;d._setup(c),!c.partial&&a.useData&&(f=j(b,f));var g=void 0,h=a.useBlockParams?[]:void 0;return a.useDepths&&(g=c.depths?[b].concat(c.depths):[b]),a.main.call(e,b,e.helpers,e.partials,f,h,g)}if(!b)throw new o["default"]("No environment passed to template");if(!a||!a.main)throw new o["default"]("Unknown template object: "+typeof a);b.VM.checkRevision(a.compiler);var e={strict:function(a,b){if(!(b in a))throw new o["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:m.escapeExpression,invokePartial:c,fn:function(b){return a[b]},programs:[],program:function(a,b,c,d,e){var g=this.programs[a],h=this.fn(a);return b||e||d||c?g=f(this,a,h,b,c,d,e):g||(g=this.programs[a]=f(this,a,h)),g},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=m.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler};return d.isTop=!0,d._setup=function(c){c.partial?(e.helpers=c.helpers,e.partials=c.partials):(e.helpers=e.merge(c.helpers,b.helpers),a.usePartial&&(e.partials=e.merge(c.partials,b.partials)))},d._child=function(b,c,d,g){if(a.useBlockParams&&!d)throw new o["default"]("must pass block params");if(a.useDepths&&!g)throw new o["default"]("must pass parent depths");return f(e,b,a[b],c,0,d,g)},d}function f(a,b,c,d,e,f,g){function h(b){var e=void 0===arguments[1]?{}:arguments[1];return c.call(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),g&&[b].concat(g))}return h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function g(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a=c.partials[c.name],a}function h(a,b,c){if(c.partial=!0,void 0===a)throw new o["default"]("The partial "+c.name+" could not be found");return a instanceof Function?a(b,c):void 0}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?p.createFrame(b):{},b.root=a),b}var k=c(7)["default"];b.__esModule=!0,b.checkRevision=d,b.template=e,b.wrapProgram=f,b.resolvePartial=g,b.invokePartial=h,b.noop=i;var l=c(4),m=k(l),n=c(3),o=k(n),p=c(1)},function(a,b){(function(c){"use strict";b.__esModule=!0,b["default"]=function(a){var b="undefined"!=typeof c?c:window,d=b.Handlebars;a.noConflict=function(){b.Handlebars===a&&(b.Handlebars=d)}},a.exports=b["default"]}).call(b,function(){return this}())},function(a,b){"use strict";b["default"]=function(a){return a&&a.__esModule?a:{"default":a}},b.__esModule=!0}])}); \ No newline at end of file diff --git a/node_modules/handlebars/docs/compiler-api.md b/node_modules/handlebars/docs/compiler-api.md new file mode 100644 index 0000000..c09414f --- /dev/null +++ b/node_modules/handlebars/docs/compiler-api.md @@ -0,0 +1,276 @@ +# Handlebars Compiler APIs + +There are a number of formal APIs that tool implementors may interact with. + +## AST + +Other tools may interact with the formal AST as defined below. Any JSON structure matching this pattern may be used and passed into the `compile` and `precompile` methods in the same way as the text for a template. + +AST structures may be generated either with the `Handlebars.parse` method and then manipulated, via the `Handlebars.AST` objects of the same name, or constructed manually as a generic JavaScript object matching the structure defined below. + +```javascript +var ast = Handlebars.parse(myTemplate); + +// Modify ast + +Handlebars.precompile(ast); +``` + + +### Basic + +```java +interface Node { + type: string; + loc: SourceLocation | null; +} + +interface SourceLocation { + source: string | null; + start: Position; + end: Position; +} + +interface Position { + line: uint >= 1; + column: uint >= 0; +} +``` + +### Programs + +```java +interface Program <: Node { + type: "Program"; + body: [ Statement ]; + + blockParams: [ string ]; +} +``` + +### Statements + +```java +interface Statement <: Node { } + +interface MustacheStatement <: Statement { + type: "MustacheStatement"; + + path: PathExpression | Literal; + params: [ Expression ]; + hash: Hash; + + escaped: boolean; + strip: StripFlags | null; +} + +interface BlockStatement <: Statement { + type: "BlockStatement"; + path: PathExpression; + params: [ Expression ]; + hash: Hash; + + program: Program | null; + inverse: Program | null; + + openStrip: StripFlags | null; + inverseStrip: StripFlags | null; + closeStrip: StripFlags | null; +} + +interface PartialStatement <: Statement { + type: "PartialStatement"; + name: PathExpression | SubExpression; + params: [ Expression ]; + hash: Hash; + + indent: string; + strip: StripFlags | null; +} +``` + +`name` will be a `SubExpression` when tied to a dynamic partial, i.e. `{{> (foo) }}`, otherwise this is a path or literal whose `original` value is used to lookup the desired partial. + + +```java +interface ContentStatement <: Statement { + type: "ContentStatement"; + value: string; + original: string; +} + +interface CommentStatement <: Statement { + type: "CommentStatement"; + value: string; + + strip: StripFlags | null; +} +``` + +### Expressions + +```java +interface Expression <: Node { } +``` + +##### SubExpressions + +```java +interface SubExpression <: Expression { + type: "SubExpression"; + path: PathExpression; + params: [ Expression ]; + hash: Hash; +} +``` + +##### Paths + +```java +interface PathExpression <: Expression { + type: "PathExpression"; + data: boolean; + depth: uint >= 0; + parts: [ string ]; + original: string; +} +``` + +- `data` is true when the given expression is a `@data` reference. +- `depth` is an integer representation of which context the expression references. `0` represents the current context, `1` would be `../`, etc. +- `parts` is an array of the names in the path. `foo.bar` would be `['foo', 'bar']`. Scope references, `.`, `..`, and `this` should be omitted from this array. +- `original` is the path as entered by the user. Separator and scope references are left untouched. + + +##### Literals + +```java +interface Literal <: Expression { } + +interface StringLiteral <: Literal { + type: "StringLiteral"; + value: string; + original: string; +} + +interface BooleanLiteral <: Literal { + type: "BooleanLiteral"; + value: boolean; + original: boolean; +} + +interface NumberLiteral <: Literal { + type: "NumberLiteral"; + value: number; + original: number; +} + +interface UndefinedLiteral <: Literal { + type: "UndefinedLiteral"; +} + +interface NullLiteral <: Literal { + type: "NullLiteral"; +} +``` + + +### Miscellaneous + +```java +interface Hash <: Node { + type: "Hash"; + pairs: [ HashPair ]; +} + +interface HashPair <: Node { + type: "HashPair"; + key: string; + value: Expression; +} + +interface StripFlags { + open: boolean; + close: boolean; +} +``` + +`StripFlags` are used to signify whitespace control character that may have been entered on a given statement. + +## AST Visitor + +`Handlebars.Visitor` is available as a base class for general interaction with AST structures. This will by default traverse the entire tree and individual methods may be overridden to provide specific responses to particular nodes. + +Recording all referenced partial names: + +```javascript +var Visitor = Handlebars.Visitor; + +function ImportScanner() { + this.partials = []; +} +ImportScanner.prototype = new Visitor(); + +ImportScanner.prototype.PartialStatement = function(partial) { + this.partials.push({request: partial.name.original}); + + Visitor.prototype.PartialStatement.call(this, partial); +}; + +var scanner = new ImportScanner(); +scanner.accept(ast); +``` + +The current node's ancestors will be maintained in the `parents` array, with the most recent parent listed first. + +The visitor may also be configured to operate in mutation mode by setting the `mutation` field to true. When in this mode, handler methods may return any valid AST node and it will replace the one they are currently operating on. Returning `false` will remove the given value (if valid) and returning `undefined` will leave the node in tact. This return structure only apply to mutation mode and non-mutation mode visitors are free to return whatever values they wish. + +Implementors that may need to support mutation mode are encouraged to utilize the `acceptKey`, `acceptRequired` and `acceptArray` helpers which provide the conditional overwrite behavior as well as implement sanity checks where pertinent. + +## JavaScript Compiler + +The `Handlebars.JavaScriptCompiler` object has a number of methods that may be customized to alter the output of the compiler: + +- `nameLookup(parent, name, type)` + Used to generate the code to resolve a give path component. + + - `parent` is the existing code in the path resolution + - `name` is the current path component + - `type` is the type of name being evaluated. May be one of `context`, `data`, `helper`, or `partial`. + + Note that this does not impact dynamic partials, which implementors need to be aware of. Overriding `VM.resolvePartial` may be required to support dynamic cases. + +- `depthedLookup(name)` + Used to generate code that resolves parameters within any context in the stack. Is only used in `compat` mode. + +- `compilerInfo()` + Allows for custom compiler flags used in the runtime version checking logic. + +- `appendToBuffer(source, location, explicit)` + Allows for code buffer emitting code. Defaults behavior is string concatenation. + + - `source` is the source code whose result is to be appending + - `location` is the location of the source in the source map. + - `explicit` is a flag signaling that the emit operation must occur, vs. the lazy evaled options otherwise. + +- `initializeBuffer()` + Allows for buffers other than the default string buffer to be used. Generally needs to be paired with a custom `appendToBuffer` implementation. + +```javascript +function MyCompiler() { + Handlebars.JavaScriptCompiler.apply(this, arguments); +} +MyCompiler.prototype = Object.create(Handlebars.JavaScriptCompiler); + +MyCompiler.nameLookup = function(parent, name, type) { + if (type === 'partial') { + return 'MyPartialList[' + JSON.stringify(name) ']'; + } else { + return Handlebars.JavaScriptCompiler.prototype.nameLookup.call(this, parent, name, type); + } +}; + +var env = Handlebars.create(); +env.JavaScriptCompiler = MyCompiler; +env.compile('my template'); +``` diff --git a/node_modules/handlebars/lib/handlebars.js b/node_modules/handlebars/lib/handlebars.js index 039ab3e..f114959 100644 --- a/node_modules/handlebars/lib/handlebars.js +++ b/node_modules/handlebars/lib/handlebars.js @@ -1,20 +1,22 @@ -/*globals Handlebars: true */ -import Handlebars from "./handlebars.runtime"; +import runtime from './handlebars.runtime'; // Compiler imports -import AST from "./handlebars/compiler/ast"; -import { parser as Parser, parse } from "./handlebars/compiler/base"; -import { Compiler, compile, precompile } from "./handlebars/compiler/compiler"; -import JavaScriptCompiler from "./handlebars/compiler/javascript-compiler"; +import AST from './handlebars/compiler/ast'; +import { parser as Parser, parse } from './handlebars/compiler/base'; +import { Compiler, compile, precompile } from './handlebars/compiler/compiler'; +import JavaScriptCompiler from './handlebars/compiler/javascript-compiler'; +import Visitor from './handlebars/compiler/visitor'; -var _create = Handlebars.create; -var create = function() { - var hb = _create(); +import noConflict from './handlebars/no-conflict'; + +let _create = runtime.create; +function create() { + let hb = _create(); hb.compile = function(input, options) { return compile(input, options, hb); }; - hb.precompile = function (input, options) { + hb.precompile = function(input, options) { return precompile(input, options, hb); }; @@ -25,11 +27,15 @@ var create = function() { hb.parse = parse; return hb; -}; +} -Handlebars = create(); -Handlebars.create = create; +let inst = create(); +inst.create = create; -Handlebars['default'] = Handlebars; +noConflict(inst); -export default Handlebars; +inst.Visitor = Visitor; + +inst['default'] = inst; + +export default inst; diff --git a/node_modules/handlebars/lib/handlebars.runtime.js b/node_modules/handlebars/lib/handlebars.runtime.js index bc07714..3d05b54 100644 --- a/node_modules/handlebars/lib/handlebars.runtime.js +++ b/node_modules/handlebars/lib/handlebars.runtime.js @@ -1,16 +1,17 @@ -/*globals Handlebars: true */ -module base from "./handlebars/base"; +import * as base from './handlebars/base'; // Each of these augment the Handlebars object. No need to setup here. // (This is done to easily share code between commonjs and browse envs) -import SafeString from "./handlebars/safe-string"; -import Exception from "./handlebars/exception"; -module Utils from "./handlebars/utils"; -module runtime from "./handlebars/runtime"; +import SafeString from './handlebars/safe-string'; +import Exception from './handlebars/exception'; +import * as Utils from './handlebars/utils'; +import * as runtime from './handlebars/runtime'; + +import noConflict from './handlebars/no-conflict'; // For compatibility and usage outside of module systems, make the Handlebars object a namespace -var create = function() { - var hb = new base.HandlebarsEnvironment(); +function create() { + let hb = new base.HandlebarsEnvironment(); Utils.extend(hb, base); hb.SafeString = SafeString; @@ -24,11 +25,13 @@ var create = function() { }; return hb; -}; +} -var Handlebars = create(); -Handlebars.create = create; +let inst = create(); +inst.create = create; -Handlebars['default'] = Handlebars; +noConflict(inst); -export default Handlebars; +inst['default'] = inst; + +export default inst; diff --git a/node_modules/handlebars/lib/handlebars/base.js b/node_modules/handlebars/lib/handlebars/base.js index 76f53e2..cfe1e91 100644 --- a/node_modules/handlebars/lib/handlebars/base.js +++ b/node_modules/handlebars/lib/handlebars/base.js @@ -1,10 +1,10 @@ -module Utils from "./utils"; -import Exception from "./exception"; +import * as Utils from './utils'; +import Exception from './exception'; -export var VERSION = "2.0.0"; -export var COMPILER_REVISION = 6; +export const VERSION = '3.0.1'; +export const COMPILER_REVISION = 6; -export var REVISION_CHANGES = { +export const REVISION_CHANGES = { 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it 2: '== 1.0.0-rc.3', 3: '== 1.0.0-rc.4', @@ -13,10 +13,10 @@ export var REVISION_CHANGES = { 6: '>= 2.0.0-beta.1' }; -var isArray = Utils.isArray, - isFunction = Utils.isFunction, - toString = Utils.toString, - objectType = '[object Object]'; +const isArray = Utils.isArray, + isFunction = Utils.isFunction, + toString = Utils.toString, + objectType = '[object Object]'; export function HandlebarsEnvironment(helpers, partials) { this.helpers = helpers || {}; @@ -45,8 +45,11 @@ HandlebarsEnvironment.prototype = { registerPartial: function(name, partial) { if (toString.call(name) === objectType) { - Utils.extend(this.partials, name); + Utils.extend(this.partials, name); } else { + if (typeof partial === 'undefined') { + throw new Exception('Attempting to register a partial as undefined'); + } this.partials[name] = partial; } }, @@ -57,25 +60,25 @@ HandlebarsEnvironment.prototype = { function registerDefaultHelpers(instance) { instance.registerHelper('helperMissing', function(/* [args, ]options */) { - if(arguments.length === 1) { + if (arguments.length === 1) { // A missing field in a {{foo}} constuct. return undefined; } else { // Someone is actually trying to call something, blow up. - throw new Exception("Missing helper: '" + arguments[arguments.length-1].name + "'"); + throw new Exception('Missing helper: "' + arguments[arguments.length - 1].name + '"'); } }); instance.registerHelper('blockHelperMissing', function(context, options) { - var inverse = options.inverse, + let inverse = options.inverse, fn = options.fn; - if(context === true) { + if (context === true) { return fn(this); - } else if(context === false || context == null) { + } else if (context === false || context == null) { return inverse(this); } else if (isArray(context)) { - if(context.length > 0) { + if (context.length > 0) { if (options.ids) { options.ids = [options.name]; } @@ -86,7 +89,7 @@ function registerDefaultHelpers(instance) { } } else { if (options.data && options.ids) { - var data = createFrame(options.data); + let data = createFrame(options.data); data.contextPath = Utils.appendContextPath(options.data.contextPath, options.name); options = {data: data}; } @@ -100,10 +103,13 @@ function registerDefaultHelpers(instance) { throw new Exception('Must pass iterator to #each'); } - var fn = options.fn, inverse = options.inverse; - var i = 0, ret = "", data; + let fn = options.fn, + inverse = options.inverse, + i = 0, + ret = '', + data, + contextPath; - var contextPath; if (options.data && options.ids) { contextPath = Utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; } @@ -114,40 +120,51 @@ function registerDefaultHelpers(instance) { data = createFrame(options.data); } - if(context && typeof context === 'object') { - if (isArray(context)) { - for(var j = context.length; i 0) { - throw new Exception("Invalid path: " + original, this); - } else if (part === "..") { - depth++; - depthString += '../'; - } else { - this.isScoped = true; - } - } else { - dig.push(part); - } - } - - this.original = original; - this.parts = dig; - this.string = dig.join('.'); - this.depth = depth; - this.idName = depthString + this.string; + scopedId: function(path) { + return (/^\.|this\b/).test(path.original); + }, // an ID is simple if it only has one part, and that part is not // `..` or `this`. - this.isSimple = parts.length === 1 && !this.isScoped && depth === 0; - - this.stringModeValue = this.string; - }, - - PartialNameNode: function(name, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "PARTIAL_NAME"; - this.name = name.original; - }, - - DataNode: function(id, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "DATA"; - this.id = id; - this.stringModeValue = id.stringModeValue; - this.idName = '@' + id.stringModeValue; - }, - - StringNode: function(string, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "STRING"; - this.original = - this.string = - this.stringModeValue = string; - }, - - NumberNode: function(number, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "NUMBER"; - this.original = - this.number = number; - this.stringModeValue = Number(number); - }, - - BooleanNode: function(bool, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "BOOLEAN"; - this.bool = bool; - this.stringModeValue = bool === "true"; - }, - - CommentNode: function(comment, locInfo) { - LocationInfo.call(this, locInfo); - this.type = "comment"; - this.comment = comment; - - this.strip = { - inlineStandalone: true - }; + simpleId: function(path) { + return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth; + } } }; // Must be exported as an object rather than the root of the module as the jison lexer -// most modify the object to operate properly. +// must modify the object to operate properly. export default AST; diff --git a/node_modules/handlebars/lib/handlebars/compiler/base.js b/node_modules/handlebars/lib/handlebars/compiler/base.js index 1378463..7075d9b 100644 --- a/node_modules/handlebars/lib/handlebars/compiler/base.js +++ b/node_modules/handlebars/lib/handlebars/compiler/base.js @@ -1,18 +1,25 @@ -import parser from "./parser"; -import AST from "./ast"; -module Helpers from "./helpers"; -import { extend } from "../utils"; +import parser from './parser'; +import AST from './ast'; +import WhitespaceControl from './whitespace-control'; +import * as Helpers from './helpers'; +import { extend } from '../utils'; export { parser }; -var yy = {}; +let yy = {}; extend(yy, Helpers, AST); -export function parse(input) { - // Just return if an already-compile AST was passed in. - if (input.constructor === AST.ProgramNode) { return input; } +export function parse(input, options) { + // Just return if an already-compiled AST was passed in. + if (input.type === 'Program') { return input; } parser.yy = yy; - return parser.parse(input); + // Altering the shared object here, but this is ok as parser is a sync operation + yy.locInfo = function(locInfo) { + return new yy.SourceLocation(options && options.srcName, locInfo); + }; + + let strip = new WhitespaceControl(); + return strip.accept(parser.parse(input)); } diff --git a/node_modules/handlebars/lib/handlebars/compiler/code-gen.js b/node_modules/handlebars/lib/handlebars/compiler/code-gen.js new file mode 100644 index 0000000..bc7bc07 --- /dev/null +++ b/node_modules/handlebars/lib/handlebars/compiler/code-gen.js @@ -0,0 +1,164 @@ +/*global define */ +import {isArray} from '../utils'; + +let SourceNode; + +try { + /* istanbul ignore next */ + if (typeof define !== 'function' || !define.amd) { + // We don't support this in AMD environments. For these environments, we asusme that + // they are running on the browser and thus have no need for the source-map library. + let SourceMap = require('source-map'); + SourceNode = SourceMap.SourceNode; + } +} catch (err) { + /* NOP */ +} + +/* istanbul ignore if: tested but not covered in istanbul due to dist build */ +if (!SourceNode) { + SourceNode = function(line, column, srcFile, chunks) { + this.src = ''; + if (chunks) { + this.add(chunks); + } + }; + /* istanbul ignore next */ + SourceNode.prototype = { + add: function(chunks) { + if (isArray(chunks)) { + chunks = chunks.join(''); + } + this.src += chunks; + }, + prepend: function(chunks) { + if (isArray(chunks)) { + chunks = chunks.join(''); + } + this.src = chunks + this.src; + }, + toStringWithSourceMap: function() { + return {code: this.toString()}; + }, + toString: function() { + return this.src; + } + }; +} + + +function castChunk(chunk, codeGen, loc) { + if (isArray(chunk)) { + let ret = []; + + for (let i = 0, len = chunk.length; i < len; i++) { + ret.push(codeGen.wrap(chunk[i], loc)); + } + return ret; + } else if (typeof chunk === 'boolean' || typeof chunk === 'number') { + // Handle primitives that the SourceNode will throw up on + return chunk + ''; + } + return chunk; +} + + +function CodeGen(srcFile) { + this.srcFile = srcFile; + this.source = []; +} + +CodeGen.prototype = { + prepend: function(source, loc) { + this.source.unshift(this.wrap(source, loc)); + }, + push: function(source, loc) { + this.source.push(this.wrap(source, loc)); + }, + + merge: function() { + let source = this.empty(); + this.each(function(line) { + source.add([' ', line, '\n']); + }); + return source; + }, + + each: function(iter) { + for (let i = 0, len = this.source.length; i < len; i++) { + iter(this.source[i]); + } + }, + + empty: function(loc = this.currentLocation || {start: {}}) { + return new SourceNode(loc.start.line, loc.start.column, this.srcFile); + }, + wrap: function(chunk, loc = this.currentLocation || {start: {}}) { + if (chunk instanceof SourceNode) { + return chunk; + } + + chunk = castChunk(chunk, this, loc); + + return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk); + }, + + functionCall: function(fn, type, params) { + params = this.generateList(params); + return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']); + }, + + quotedString: function(str) { + return '"' + (str + '') + .replace(/\\/g, '\\\\') + .replace(/"/g, '\\"') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 + .replace(/\u2029/g, '\\u2029') + '"'; + }, + + objectLiteral: function(obj) { + let pairs = []; + + for (let key in obj) { + if (obj.hasOwnProperty(key)) { + let value = castChunk(obj[key], this); + if (value !== 'undefined') { + pairs.push([this.quotedString(key), ':', value]); + } + } + } + + let ret = this.generateList(pairs); + ret.prepend('{'); + ret.add('}'); + return ret; + }, + + + generateList: function(entries, loc) { + let ret = this.empty(loc); + + for (let i = 0, len = entries.length; i < len; i++) { + if (i) { + ret.add(','); + } + + ret.add(castChunk(entries[i], this, loc)); + } + + return ret; + }, + + generateArray: function(entries, loc) { + let ret = this.generateList(entries, loc); + ret.prepend('['); + ret.add(']'); + + return ret; + } +}; + +export default CodeGen; + diff --git a/node_modules/handlebars/lib/handlebars/compiler/compiler.js b/node_modules/handlebars/lib/handlebars/compiler/compiler.js index 1aba34b..4575421 100644 --- a/node_modules/handlebars/lib/handlebars/compiler/compiler.js +++ b/node_modules/handlebars/lib/handlebars/compiler/compiler.js @@ -1,7 +1,8 @@ -import Exception from "../exception"; -import {isArray} from "../utils"; +import Exception from '../exception'; +import {isArray, indexOf} from '../utils'; +import AST from './ast'; -var slice = [].slice; +const slice = [].slice; export function Compiler() {} @@ -14,13 +15,13 @@ Compiler.prototype = { compiler: Compiler, equals: function(other) { - var len = this.opcodes.length; + let len = this.opcodes.length; if (other.opcodes.length !== len) { return false; } - for (var i = 0; i < len; i++) { - var opcode = this.opcodes[i], + for (let i = 0; i < len; i++) { + let opcode = this.opcodes[i], otherOpcode = other.opcodes[i]; if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) { return false; @@ -30,7 +31,7 @@ Compiler.prototype = { // We know that length is the same between the two arrays because they are directly tied // to the opcode behavior above. len = this.children.length; - for (i = 0; i < len; i++) { + for (let i = 0; i < len; i++) { if (!this.children[i].equals(other.children[i])) { return false; } @@ -42,16 +43,18 @@ Compiler.prototype = { guid: 0, compile: function(program, options) { + this.sourceNode = []; this.opcodes = []; this.children = []; - this.depths = {list: []}; this.options = options; this.stringParams = options.stringParams; this.trackIds = options.trackIds; + options.blockParams = options.blockParams || []; + // These changes will propagate to the other compiler components - var knownHelpers = this.options.knownHelpers; - this.options.knownHelpers = { + let knownHelpers = options.knownHelpers; + options.knownHelpers = { 'helperMissing': true, 'blockHelperMissing': true, 'each': true, @@ -62,80 +65,77 @@ Compiler.prototype = { 'lookup': true }; if (knownHelpers) { - for (var name in knownHelpers) { - this.options.knownHelpers[name] = knownHelpers[name]; + for (let name in knownHelpers) { + if (name in knownHelpers) { + options.knownHelpers[name] = knownHelpers[name]; + } } } return this.accept(program); }, - accept: function(node) { - return this[node.type](node); - }, - - program: function(program) { - var statements = program.statements; - - for(var i=0, l=statements.length; i 1) { + throw new Exception('Unsupported number of partial arguments: ' + params.length, partial); + } else if (!params.length) { + params.push({type: 'PathExpression', parts: [], depth: 0}); } - if (partial.context) { - this.accept(partial.context); - } else { - this.opcode('getContext', 0); - this.opcode('pushContext'); + let partialName = partial.name.original, + isDynamic = partial.name.type === 'SubExpression'; + if (isDynamic) { + this.accept(partial.name); } - this.opcode('invokePartial', partialName.name, partial.indent || ''); + this.setupFullMustacheParams(partial, undefined, undefined, true); + + let indent = partial.indent || ''; + if (this.options.preventIndent && indent) { + this.opcode('appendContent', indent); + indent = ''; + } + + this.opcode('invokePartial', isDynamic, partialName, indent); this.opcode('append'); }, - content: function(content) { - if (content.string) { - this.opcode('appendContent', content.string); - } - }, + MustacheStatement: function(mustache) { + this.SubExpression(mustache); // eslint-disable-line new-cap - mustache: function(mustache) { - this.sexpr(mustache.sexpr); - - if(mustache.escaped && !this.options.noEscape) { + if (mustache.escaped && !this.options.noEscape) { this.opcode('appendEscaped'); } else { this.opcode('append'); } }, - ambiguousSexpr: function(sexpr, program, inverse) { - var id = sexpr.id, - name = id.parts[0], - isBlock = program != null || inverse != null; - - this.opcode('getContext', id.depth); - - this.opcode('pushProgram', program); - this.opcode('pushProgram', inverse); - - this.ID(id); - - this.opcode('invokeAmbiguous', name, isBlock); - }, - - simpleSexpr: function(sexpr) { - var id = sexpr.id; - - if (id.type === 'DATA') { - this.DATA(id); - } else if (id.parts.length) { - this.ID(id); - } else { - // Simplified ID for `this` - this.addDepth(id.depth); - this.opcode('getContext', id.depth); - this.opcode('pushContext'); - } - - this.opcode('resolvePossibleLambda'); - }, - - helperSexpr: function(sexpr, program, inverse) { - var params = this.setupFullMustacheParams(sexpr, program, inverse), - id = sexpr.id, - name = id.parts[0]; - - if (this.options.knownHelpers[name]) { - this.opcode('invokeKnownHelper', params.length, name); - } else if (this.options.knownHelpersOnly) { - throw new Exception("You specified knownHelpersOnly, but used the unknown helper " + name, sexpr); - } else { - id.falsy = true; - - this.ID(id); - this.opcode('invokeHelper', params.length, id.original, id.isSimple); + ContentStatement: function(content) { + if (content.value) { + this.opcode('appendContent', content.value); } }, - sexpr: function(sexpr) { - var type = this.classifySexpr(sexpr); + CommentStatement: function() {}, - if (type === "simple") { + SubExpression: function(sexpr) { + transformLiteralToPath(sexpr); + let type = this.classifySexpr(sexpr); + + if (type === 'simple') { this.simpleSexpr(sexpr); - } else if (type === "helper") { + } else if (type === 'helper') { this.helperSexpr(sexpr); } else { this.ambiguousSexpr(sexpr); } }, + ambiguousSexpr: function(sexpr, program, inverse) { + let path = sexpr.path, + name = path.parts[0], + isBlock = program != null || inverse != null; - ID: function(id) { - this.addDepth(id.depth); - this.opcode('getContext', id.depth); + this.opcode('getContext', path.depth); - var name = id.parts[0]; - if (!name) { - // Context reference, i.e. `{{foo .}}` or `{{foo ..}}` - this.opcode('pushContext'); + this.opcode('pushProgram', program); + this.opcode('pushProgram', inverse); + + this.accept(path); + + this.opcode('invokeAmbiguous', name, isBlock); + }, + + simpleSexpr: function(sexpr) { + this.accept(sexpr.path); + this.opcode('resolvePossibleLambda'); + }, + + helperSexpr: function(sexpr, program, inverse) { + let params = this.setupFullMustacheParams(sexpr, program, inverse), + path = sexpr.path, + name = path.parts[0]; + + if (this.options.knownHelpers[name]) { + this.opcode('invokeKnownHelper', params.length, name); + } else if (this.options.knownHelpersOnly) { + throw new Exception('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr); } else { - this.opcode('lookupOnContext', id.parts, id.falsy, id.isScoped); + path.falsy = true; + + this.accept(path); + this.opcode('invokeHelper', params.length, path.original, AST.helpers.simpleId(path)); } }, - DATA: function(data) { - this.options.data = true; - this.opcode('lookupData', data.id.depth, data.id.parts); + PathExpression: function(path) { + this.addDepth(path.depth); + this.opcode('getContext', path.depth); + + let name = path.parts[0], + scoped = AST.helpers.scopedId(path), + blockParamId = !path.depth && !scoped && this.blockParamIndex(name); + + if (blockParamId) { + this.opcode('lookupBlockParam', blockParamId, path.parts); + } else if (!name) { + // Context reference, i.e. `{{foo .}}` or `{{foo ..}}` + this.opcode('pushContext'); + } else if (path.data) { + this.options.data = true; + this.opcode('lookupData', path.depth, path.parts); + } else { + this.opcode('lookupOnContext', path.parts, path.falsy, scoped); + } }, - STRING: function(string) { - this.opcode('pushString', string.string); + StringLiteral: function(string) { + this.opcode('pushString', string.value); }, - NUMBER: function(number) { - this.opcode('pushLiteral', number.number); + NumberLiteral: function(number) { + this.opcode('pushLiteral', number.value); }, - BOOLEAN: function(bool) { - this.opcode('pushLiteral', bool.bool); + BooleanLiteral: function(bool) { + this.opcode('pushLiteral', bool.value); }, - comment: function() {}, + UndefinedLiteral: function() { + this.opcode('pushLiteral', 'undefined'); + }, + + NullLiteral: function() { + this.opcode('pushLiteral', 'null'); + }, + + Hash: function(hash) { + let pairs = hash.pairs, + i = 0, + l = pairs.length; + + this.opcode('pushHash'); + + for (; i < l; i++) { + this.pushParam(pairs[i].value); + } + while (i--) { + this.opcode('assignToHash', pairs[i].key); + } + this.opcode('popHash'); + }, // HELPERS opcode: function(name) { - this.opcodes.push({ opcode: name, args: slice.call(arguments, 1) }); + this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc }); }, addDepth: function(depth) { - if(depth === 0) { return; } - - if(!this.depths[depth]) { - this.depths[depth] = true; - this.depths.list.push(depth); + if (!depth) { + return; } + + this.useDepths = true; }, classifySexpr: function(sexpr) { - var isHelper = sexpr.isHelper; - var isEligible = sexpr.eligibleHelper; - var options = this.options; + let isSimple = AST.helpers.simpleId(sexpr.path); + + let isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]); + + // a mustache is an eligible helper if: + // * its id is simple (a single part, not `this` or `..`) + let isHelper = !isBlockParam && AST.helpers.helperExpression(sexpr); + + // if a mustache is an eligible helper but not a definite + // helper, it is ambiguous, and will be resolved in a later + // pass or at runtime. + let isEligible = !isBlockParam && (isHelper || isSimple); // if ambiguous, we can possibly resolve the ambiguity now // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc. if (isEligible && !isHelper) { - var name = sexpr.id.parts[0]; + let name = sexpr.path.parts[0], + options = this.options; if (options.knownHelpers[name]) { isHelper = true; @@ -323,58 +340,96 @@ Compiler.prototype = { } } - if (isHelper) { return "helper"; } - else if (isEligible) { return "ambiguous"; } - else { return "simple"; } + if (isHelper) { + return 'helper'; + } else if (isEligible) { + return 'ambiguous'; + } else { + return 'simple'; + } }, pushParams: function(params) { - for(var i=0, l=params.length; i= 0) { + return [depth, param]; + } + } } }; export function precompile(input, options, env) { - if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) { - throw new Exception("You must pass a string or Handlebars AST to Handlebars.precompile. You passed " + input); + if (input == null || (typeof input !== 'string' && input.type !== 'Program')) { + throw new Exception('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input); } options = options || {}; @@ -385,18 +440,16 @@ export function precompile(input, options, env) { options.useDepths = true; } - var ast = env.parse(input); - var environment = new env.Compiler().compile(ast, options); + let ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options); return new env.JavaScriptCompiler().compile(environment, options); } -export function compile(input, options, env) { - if (input == null || (typeof input !== 'string' && input.constructor !== env.AST.ProgramNode)) { - throw new Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + input); +export function compile(input, options = {}, env) { + if (input == null || (typeof input !== 'string' && input.type !== 'Program')) { + throw new Exception('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input); } - options = options || {}; - if (!('data' in options)) { options.data = true; } @@ -404,33 +457,33 @@ export function compile(input, options, env) { options.useDepths = true; } - var compiled; + let compiled; function compileInput() { - var ast = env.parse(input); - var environment = new env.Compiler().compile(ast, options); - var templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true); + let ast = env.parse(input, options), + environment = new env.Compiler().compile(ast, options), + templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true); return env.template(templateSpec); } // Template is only compiled on first use and cached after that point. - var ret = function(context, options) { + function ret(context, execOptions) { if (!compiled) { compiled = compileInput(); } - return compiled.call(this, context, options); + return compiled.call(this, context, execOptions); + } + ret._setup = function(setupOptions) { + if (!compiled) { + compiled = compileInput(); + } + return compiled._setup(setupOptions); }; - ret._setup = function(options) { + ret._child = function(i, data, blockParams, depths) { if (!compiled) { compiled = compileInput(); } - return compiled._setup(options); - }; - ret._child = function(i, data, depths) { - if (!compiled) { - compiled = compileInput(); - } - return compiled._child(i, data, depths); + return compiled._child(i, data, blockParams, depths); }; return ret; } @@ -441,7 +494,7 @@ function argEquals(a, b) { } if (isArray(a) && isArray(b) && a.length === b.length) { - for (var i = 0; i < a.length; i++) { + for (let i = 0; i < a.length; i++) { if (!argEquals(a[i], b[i])) { return false; } @@ -449,3 +502,12 @@ function argEquals(a, b) { return true; } } + +function transformLiteralToPath(sexpr) { + if (!sexpr.path.parts) { + let literal = sexpr.path; + // Casting to string here to make false and 0 literal values play nicely with the rest + // of the system. + sexpr.path = new AST.PathExpression(false, 0, [literal.original + ''], literal.original + '', literal.loc); + } +} diff --git a/node_modules/handlebars/lib/handlebars/compiler/helpers.js b/node_modules/handlebars/lib/handlebars/compiler/helpers.js index 758c740..fc0120c 100644 --- a/node_modules/handlebars/lib/handlebars/compiler/helpers.js +++ b/node_modules/handlebars/lib/handlebars/compiler/helpers.js @@ -1,186 +1,123 @@ -import Exception from "../exception"; +import Exception from '../exception'; + +export function SourceLocation(source, locInfo) { + this.source = source; + this.start = { + line: locInfo.first_line, + column: locInfo.first_column + }; + this.end = { + line: locInfo.last_line, + column: locInfo.last_column + }; +} + +export function id(token) { + if (/^\[.*\]$/.test(token)) { + return token.substr(1, token.length - 2); + } else { + return token; + } +} export function stripFlags(open, close) { return { - left: open.charAt(2) === '~', - right: close.charAt(close.length-3) === '~' + open: open.charAt(2) === '~', + close: close.charAt(close.length - 3) === '~' }; } +export function stripComment(comment) { + return comment.replace(/^\{\{~?\!-?-?/, '') + .replace(/-?-?~?\}\}$/, ''); +} -export function prepareBlock(mustache, program, inverseAndProgram, close, inverted, locInfo) { - /*jshint -W040 */ - if (mustache.sexpr.id.original !== close.path.original) { - throw new Exception(mustache.sexpr.id.original + ' doesn\'t match ' + close.path.original, mustache); +export function preparePath(data, parts, locInfo) { + locInfo = this.locInfo(locInfo); + + let original = data ? '@' : '', + dig = [], + depth = 0, + depthString = ''; + + for (let i = 0, l = parts.length; i < l; i++) { + let part = parts[i].part, + // If we have [] syntax then we do not treat path references as operators, + // i.e. foo.[this] resolves to approximately context.foo['this'] + isLiteral = parts[i].original !== part; + original += (parts[i].separator || '') + part; + + if (!isLiteral && (part === '..' || part === '.' || part === 'this')) { + if (dig.length > 0) { + throw new Exception('Invalid path: ' + original, {loc: locInfo}); + } else if (part === '..') { + depth++; + depthString += '../'; + } + } else { + dig.push(part); + } } - var inverse = inverseAndProgram && inverseAndProgram.program; + return new this.PathExpression(data, depth, dig, original, locInfo); +} - var strip = { - left: mustache.strip.left, - right: close.strip.right, +export function prepareMustache(path, params, hash, open, strip, locInfo) { + // Must use charAt to support IE pre-10 + let escapeFlag = open.charAt(3) || open.charAt(2), + escaped = escapeFlag !== '{' && escapeFlag !== '&'; - // Determine the standalone candiacy. Basically flag our content as being possibly standalone - // so our parent can determine if we actually are standalone - openStandalone: isNextWhitespace(program.statements), - closeStandalone: isPrevWhitespace((inverse || program).statements) - }; + return new this.MustacheStatement(path, params, hash, escaped, strip, this.locInfo(locInfo)); +} - if (mustache.strip.right) { - omitRight(program.statements, null, true); +export function prepareRawBlock(openRawBlock, content, close, locInfo) { + if (openRawBlock.path.original !== close) { + let errorNode = {loc: openRawBlock.path.loc}; + + throw new Exception(openRawBlock.path.original + " doesn't match " + close, errorNode); } - if (inverse) { - var inverseStrip = inverseAndProgram.strip; + locInfo = this.locInfo(locInfo); + let program = new this.Program([content], null, {}, locInfo); - if (inverseStrip.left) { - omitLeft(program.statements, null, true); - } - if (inverseStrip.right) { - omitRight(inverse.statements, null, true); - } - if (close.strip.left) { - omitLeft(inverse.statements, null, true); + return new this.BlockStatement( + openRawBlock.path, openRawBlock.params, openRawBlock.hash, + program, undefined, + {}, {}, {}, + locInfo); +} + +export function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) { + // When we are chaining inverse calls, we will not have a close path + if (close && close.path && openBlock.path.original !== close.path.original) { + let errorNode = {loc: openBlock.path.loc}; + + throw new Exception(openBlock.path.original + ' doesn\'t match ' + close.path.original, errorNode); + } + + program.blockParams = openBlock.blockParams; + + let inverse, + inverseStrip; + + if (inverseAndProgram) { + if (inverseAndProgram.chain) { + inverseAndProgram.program.body[0].closeStrip = close.strip; } - // Find standalone else statments - if (isPrevWhitespace(program.statements) - && isNextWhitespace(inverse.statements)) { - - omitLeft(program.statements); - omitRight(inverse.statements); - } - } else { - if (close.strip.left) { - omitLeft(program.statements, null, true); - } + inverseStrip = inverseAndProgram.strip; + inverse = inverseAndProgram.program; } if (inverted) { - return new this.BlockNode(mustache, inverse, program, strip, locInfo); - } else { - return new this.BlockNode(mustache, program, inverse, strip, locInfo); + inverted = inverse; + inverse = program; + program = inverted; } -} - - -export function prepareProgram(statements, isRoot) { - for (var i = 0, l = statements.length; i < l; i++) { - var current = statements[i], - strip = current.strip; - - if (!strip) { - continue; - } - - var _isPrevWhitespace = isPrevWhitespace(statements, i, isRoot, current.type === 'partial'), - _isNextWhitespace = isNextWhitespace(statements, i, isRoot), - - openStandalone = strip.openStandalone && _isPrevWhitespace, - closeStandalone = strip.closeStandalone && _isNextWhitespace, - inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace; - - if (strip.right) { - omitRight(statements, i, true); - } - if (strip.left) { - omitLeft(statements, i, true); - } - - if (inlineStandalone) { - omitRight(statements, i); - - if (omitLeft(statements, i)) { - // If we are on a standalone node, save the indent info for partials - if (current.type === 'partial') { - current.indent = (/([ \t]+$)/).exec(statements[i-1].original) ? RegExp.$1 : ''; - } - } - } - if (openStandalone) { - omitRight((current.program || current.inverse).statements); - - // Strip out the previous content node if it's whitespace only - omitLeft(statements, i); - } - if (closeStandalone) { - // Always strip the next node - omitRight(statements, i); - - omitLeft((current.inverse || current.program).statements); - } - } - - return statements; -} - -function isPrevWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = statements.length; - } - - // Nodes that end with newlines are considered whitespace (but are special - // cased for strip operations) - var prev = statements[i-1], - sibling = statements[i-2]; - if (!prev) { - return isRoot; - } - - if (prev.type === 'content') { - return (sibling || !isRoot ? (/\r?\n\s*?$/) : (/(^|\r?\n)\s*?$/)).test(prev.original); - } -} -function isNextWhitespace(statements, i, isRoot) { - if (i === undefined) { - i = -1; - } - - var next = statements[i+1], - sibling = statements[i+2]; - if (!next) { - return isRoot; - } - - if (next.type === 'content') { - return (sibling || !isRoot ? (/^\s*?\r?\n/) : (/^\s*?(\r?\n|$)/)).test(next.original); - } -} - -// Marks the node to the right of the position as omitted. -// I.e. {{foo}}' ' will mark the ' ' node as omitted. -// -// If i is undefined, then the first child will be marked as such. -// -// If mulitple is truthy then all whitespace will be stripped out until non-whitespace -// content is met. -function omitRight(statements, i, multiple) { - var current = statements[i == null ? 0 : i + 1]; - if (!current || current.type !== 'content' || (!multiple && current.rightStripped)) { - return; - } - - var original = current.string; - current.string = current.string.replace(multiple ? (/^\s+/) : (/^[ \t]*\r?\n?/), ''); - current.rightStripped = current.string !== original; -} - -// Marks the node to the left of the position as omitted. -// I.e. ' '{{foo}} will mark the ' ' node as omitted. -// -// If i is undefined then the last child will be marked as such. -// -// If mulitple is truthy then all whitespace will be stripped out until non-whitespace -// content is met. -function omitLeft(statements, i, multiple) { - var current = statements[i == null ? statements.length - 1 : i - 1]; - if (!current || current.type !== 'content' || (!multiple && current.leftStripped)) { - return; - } - - // We omit the last node if it's whitespace only and not preceeded by a non-content node. - var original = current.string; - current.string = current.string.replace(multiple ? (/\s+$/) : (/[ \t]+$/), ''); - current.leftStripped = current.string !== original; - return current.leftStripped; + + return new this.BlockStatement( + openBlock.path, openBlock.params, openBlock.hash, + program, inverse, + openBlock.strip, inverseStrip, close && close.strip, + this.locInfo(locInfo)); } diff --git a/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js b/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js index d41cacd..8830661 100644 --- a/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js +++ b/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js @@ -1,5 +1,7 @@ -import { COMPILER_REVISION, REVISION_CHANGES } from "../base"; -import Exception from "../exception"; +import { COMPILER_REVISION, REVISION_CHANGES } from '../base'; +import Exception from '../exception'; +import {isArray} from '../utils'; +import CodeGen from './code-gen'; function Literal(value) { this.value = value; @@ -12,40 +14,44 @@ JavaScriptCompiler.prototype = { // alternative compiled forms for name lookup and buffering semantics nameLookup: function(parent, name /* , type*/) { if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) { - return parent + "." + name; + return [parent, '.', name]; } else { - return parent + "['" + name + "']"; + return [parent, "['", name, "']"]; } }, depthedLookup: function(name) { - this.aliases.lookup = 'this.lookup'; - - return 'lookup(depths, "' + name + '")'; + return [this.aliasable('this.lookup'), '(depths, "', name, '")']; }, compilerInfo: function() { - var revision = COMPILER_REVISION, - versions = REVISION_CHANGES[revision]; + const revision = COMPILER_REVISION, + versions = REVISION_CHANGES[revision]; return [revision, versions]; }, - appendToBuffer: function(string) { + appendToBuffer: function(source, location, explicit) { + // Force a source as this simplifies the merge logic. + if (!isArray(source)) { + source = [source]; + } + source = this.source.wrap(source, location); + if (this.environment.isSimple) { - return "return " + string + ";"; + return ['return ', source, ';']; + } else if (explicit) { + // This is a case where the buffer operation occurs as a child of another + // construct, generally braces. We have to explicitly output these buffer + // operations to ensure that the emitted code goes in the correct location. + return ['buffer += ', source, ';']; } else { - return { - appendToBuffer: true, - content: string, - toString: function() { return "buffer += " + string + ";"; } - }; + source.appendToBuffer = true; + return source; } }, initializeBuffer: function() { - return this.quotedString(""); + return this.quotedString(''); }, - - namespace: "Handlebars", // END PUBLIC API compile: function(environment, options, context, asObject) { @@ -71,23 +77,29 @@ JavaScriptCompiler.prototype = { this.hashes = []; this.compileStack = []; this.inlineStack = []; + this.blockParams = []; this.compileChildren(environment, options); - this.useDepths = this.useDepths || environment.depths.list.length || this.options.compat; + this.useDepths = this.useDepths || environment.useDepths || this.options.compat; + this.useBlockParams = this.useBlockParams || environment.useBlockParams; - var opcodes = environment.opcodes, + let opcodes = environment.opcodes, opcode, + firstLoc, i, l; for (i = 0, l = opcodes.length; i < l; i++) { opcode = opcodes[i]; + this.source.currentLocation = opcode.loc; + firstLoc = firstLoc || opcode.loc; this[opcode.opcode].apply(this, opcode.args); } // Flush any trailing content that might be pending. + this.source.currentLocation = firstLoc; this.pushSource(''); /* istanbul ignore next */ @@ -95,13 +107,13 @@ JavaScriptCompiler.prototype = { throw new Exception('Compile completed with content left on stack'); } - var fn = this.createFunctionContext(asObject); + let fn = this.createFunctionContext(asObject); if (!this.isChild) { - var ret = { + let ret = { compiler: this.compilerInfo(), main: fn }; - var programs = this.context.programs; + let programs = this.context.programs; for (i = 0, l = programs.length; i < l; i++) { if (programs[i]) { ret[i] = programs[i]; @@ -117,13 +129,27 @@ JavaScriptCompiler.prototype = { if (this.useDepths) { ret.useDepths = true; } + if (this.useBlockParams) { + ret.useBlockParams = true; + } if (this.options.compat) { ret.compat = true; } if (!asObject) { ret.compiler = JSON.stringify(ret.compiler); + + this.source.currentLocation = {start: {line: 1, column: 0}}; ret = this.objectLiteral(ret); + + if (options.srcName) { + ret = ret.toStringWithSourceMap({file: options.destName}); + ret.map = ret.map && ret.map.toString(); + } else { + ret = ret.toString(); + } + } else { + ret.compilerOptions = this.options; } return ret; @@ -136,91 +162,111 @@ JavaScriptCompiler.prototype = { // track the last context pushed into place to allow skipping the // getContext opcode when it would be a noop this.lastContext = 0; - this.source = []; + this.source = new CodeGen(this.options.srcName); }, createFunctionContext: function(asObject) { - var varDeclarations = ''; + let varDeclarations = ''; - var locals = this.stackVars.concat(this.registers.list); - if(locals.length > 0) { - varDeclarations += ", " + locals.join(", "); + let locals = this.stackVars.concat(this.registers.list); + if (locals.length > 0) { + varDeclarations += ', ' + locals.join(', '); } // Generate minimizer alias mappings - for (var alias in this.aliases) { - if (this.aliases.hasOwnProperty(alias)) { - varDeclarations += ', ' + alias + '=' + this.aliases[alias]; + // + // When using true SourceNodes, this will update all references to the given alias + // as the source nodes are reused in situ. For the non-source node compilation mode, + // aliases will not be used, but this case is already being run on the client and + // we aren't concern about minimizing the template size. + let aliasCount = 0; + for (let alias in this.aliases) { // eslint-disable-line guard-for-in + let node = this.aliases[alias]; + + if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) { + varDeclarations += ', alias' + (++aliasCount) + '=' + alias; + node.children[0] = 'alias' + aliasCount; } } - var params = ["depth0", "helpers", "partials", "data"]; + let params = ['depth0', 'helpers', 'partials', 'data']; + if (this.useBlockParams || this.useDepths) { + params.push('blockParams'); + } if (this.useDepths) { params.push('depths'); } // Perform a second pass over the output to merge content when possible - var source = this.mergeSource(varDeclarations); + let source = this.mergeSource(varDeclarations); if (asObject) { params.push(source); return Function.apply(this, params); } else { - return 'function(' + params.join(',') + ') {\n ' + source + '}'; + return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']); } }, mergeSource: function(varDeclarations) { - var source = '', - buffer, + let isSimple = this.environment.isSimple, appendOnly = !this.forceBuffer, - appendFirst; + appendFirst, - for (var i = 0, len = this.source.length; i < len; i++) { - var line = this.source[i]; + sourceSeen, + bufferStart, + bufferEnd; + this.source.each((line) => { if (line.appendToBuffer) { - if (buffer) { - buffer = buffer + '\n + ' + line.content; + if (bufferStart) { + line.prepend(' + '); } else { - buffer = line.content; + bufferStart = line; } + bufferEnd = line; } else { - if (buffer) { - if (!source) { + if (bufferStart) { + if (!sourceSeen) { appendFirst = true; - source = buffer + ';\n '; } else { - source += 'buffer += ' + buffer + ';\n '; + bufferStart.prepend('buffer += '); } - buffer = undefined; + bufferEnd.add(';'); + bufferStart = bufferEnd = undefined; } - source += line + '\n '; - if (!this.environment.isSimple) { + sourceSeen = true; + if (!isSimple) { appendOnly = false; } } - } + }); + if (appendOnly) { - if (buffer || !source) { - source += 'return ' + (buffer || '""') + ';\n'; + if (bufferStart) { + bufferStart.prepend('return '); + bufferEnd.add(';'); + } else if (!sourceSeen) { + this.source.push('return "";'); } } else { - varDeclarations += ", buffer = " + (appendFirst ? '' : this.initializeBuffer()); - if (buffer) { - source += 'return buffer + ' + buffer + ';\n'; + varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer()); + + if (bufferStart) { + bufferStart.prepend('return buffer + '); + bufferEnd.add(';'); } else { - source += 'return buffer;\n'; + this.source.push('return buffer;'); } } if (varDeclarations) { - source = 'var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n ') + source; + this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n')); } - return source; + return this.source.merge(); }, // [blockValue] @@ -233,15 +279,14 @@ JavaScriptCompiler.prototype = { // replace it on the stack with the result of properly // invoking blockHelperMissing. blockValue: function(name) { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; + let blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs(name, 0, params); - var params = [this.contextName(0)]; - this.setupParams(name, 0, params); - - var blockName = this.popStack(); + let blockName = this.popStack(); params.splice(1, 0, blockName); - this.push('blockHelperMissing.call(' + params.join(', ') + ')'); + this.push(this.source.functionCall(blockHelperMissing, 'call', params)); }, // [ambiguousBlockValue] @@ -251,18 +296,20 @@ JavaScriptCompiler.prototype = { // On stack, after, if no lastHelper: same as [blockValue] // On stack, after, if lastHelper: value ambiguousBlockValue: function() { - this.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; - // We're being a bit cheeky and reusing the options value from the prior exec - var params = [this.contextName(0)]; - this.setupParams('', 0, params, true); + let blockHelperMissing = this.aliasable('helpers.blockHelperMissing'), + params = [this.contextName(0)]; + this.setupHelperArgs('', 0, params, true); this.flushInline(); - var current = this.topStack(); + let current = this.topStack(); params.splice(1, 0, current); - this.pushSource("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }"); + this.pushSource([ + 'if (!', this.lastHelper, ') { ', + current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), + '}']); }, // [appendContent] @@ -274,6 +321,8 @@ JavaScriptCompiler.prototype = { appendContent: function(content) { if (this.pendingContent) { content = this.pendingContent + content; + } else { + this.pendingLocation = this.source.currentLocation; } this.pendingContent = content; @@ -289,13 +338,16 @@ JavaScriptCompiler.prototype = { // If `value` is truthy, or 0, it is coerced into a string and appended // Otherwise, the empty string is appended append: function() { - // Force anything that is inlined onto the stack so we don't have duplication - // when we examine local - this.flushInline(); - var local = this.popStack(); - this.pushSource('if (' + local + ' != null) { ' + this.appendToBuffer(local) + ' }'); - if (this.environment.isSimple) { - this.pushSource("else { " + this.appendToBuffer("''") + " }"); + if (this.isInline()) { + this.replaceStack((current) => [' != null ? ', current, ' : ""']); + + this.pushSource(this.appendToBuffer(this.popStack())); + } else { + let local = this.popStack(); + this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']); + if (this.environment.isSimple) { + this.pushSource(['else { ', this.appendToBuffer("''", undefined, true), ' }']); + } } }, @@ -306,9 +358,8 @@ JavaScriptCompiler.prototype = { // // Escape `value` and append it to the buffer appendEscaped: function() { - this.aliases.escapeExpression = 'this.escapeExpression'; - - this.pushSource(this.appendToBuffer("escapeExpression(" + this.popStack() + ")")); + this.pushSource(this.appendToBuffer( + [this.aliasable('this.escapeExpression'), '(', this.popStack(), ')'])); }, // [getContext] @@ -340,9 +391,7 @@ JavaScriptCompiler.prototype = { // Looks up the value of `name` on the current context and pushes // it onto the stack. lookupOnContext: function(parts, falsy, scoped) { - /*jshint -W083 */ - var i = 0, - len = parts.length; + let i = 0; if (!scoped && this.options.compat && !this.lastContext) { // The depthed query is expected to handle the undefined logic for the root level that @@ -352,19 +401,21 @@ JavaScriptCompiler.prototype = { this.pushContext(); } - for (; i < len; i++) { - this.replaceStack(function(current) { - var lookup = this.nameLookup(current, parts[i], 'context'); - // We want to ensure that zero and false are handled properly if the context (falsy flag) - // needs to have the special handling for these values. - if (!falsy) { - return ' != null ? ' + lookup + ' : ' + current; - } else { - // Otherwise we can use generic falsy handling - return ' && ' + lookup; - } - }); - } + this.resolvePath('context', parts, i, falsy); + }, + + // [lookupBlockParam] + // + // On stack, before: ... + // On stack, after: blockParam[name], ... + // + // Looks up the value of `parts` on the given block param and pushes + // it onto the stack. + lookupBlockParam: function(blockParamId, parts) { + this.useBlockParams = true; + + this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']); + this.resolvePath('context', parts, 1); }, // [lookupData] @@ -374,18 +425,36 @@ JavaScriptCompiler.prototype = { // // Push the data lookup operator lookupData: function(depth, parts) { - /*jshint -W083 */ if (!depth) { this.pushStackLiteral('data'); } else { this.pushStackLiteral('this.data(data, ' + depth + ')'); } - var len = parts.length; - for (var i = 0; i < len; i++) { - this.replaceStack(function(current) { - return ' && ' + this.nameLookup(current, parts[i], 'data'); + this.resolvePath('data', parts, 0, true); + }, + + resolvePath: function(type, parts, i, falsy) { + if (this.options.strict || this.options.assumeObjects) { + this.push(strictLookup(this.options.strict, this, parts, type)); + return; + } + + let len = parts.length; + for (; i < len; i++) { + /*eslint-disable no-loop-func */ + this.replaceStack((current) => { + let lookup = this.nameLookup(current, parts[i], type); + // We want to ensure that zero and false are handled properly if the context (falsy flag) + // needs to have the special handling for these values. + if (!falsy) { + return [' != null ? ', lookup, ' : ', current]; + } else { + // Otherwise we can use generic falsy handling + return [' && ', lookup]; + } }); + /*eslint-enable no-loop-func */ } }, @@ -397,9 +466,7 @@ JavaScriptCompiler.prototype = { // If the `value` is a lambda, replace it on the stack by // the return value of the lambda resolvePossibleLambda: function() { - this.aliases.lambda = 'this.lambda'; - - this.push('lambda(' + this.popStack() + ', ' + this.contextName(0) + ')'); + this.push([this.aliasable('this.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']); }, // [pushStringParam] @@ -416,7 +483,7 @@ JavaScriptCompiler.prototype = { // If it's a subexpression, the string result // will be pushed after this opcode. - if (type !== 'sexpr') { + if (type !== 'SubExpression') { if (typeof string === 'string') { this.pushString(string); } else { @@ -425,9 +492,7 @@ JavaScriptCompiler.prototype = { } }, - emptyHash: function() { - this.pushStackLiteral('{}'); - + emptyHash: function(omitEmpty) { if (this.trackIds) { this.push('{}'); // hashIds } @@ -435,6 +500,7 @@ JavaScriptCompiler.prototype = { this.push('{}'); // hashContexts this.push('{}'); // hashTypes } + this.pushStackLiteral(omitEmpty ? 'undefined' : '{}'); }, pushHash: function() { if (this.hash) { @@ -443,18 +509,18 @@ JavaScriptCompiler.prototype = { this.hash = {values: [], types: [], contexts: [], ids: []}; }, popHash: function() { - var hash = this.hash; + let hash = this.hash; this.hash = this.hashes.pop(); if (this.trackIds) { - this.push('{' + hash.ids.join(',') + '}'); + this.push(this.objectLiteral(hash.ids)); } if (this.stringParams) { - this.push('{' + hash.contexts.join(',') + '}'); - this.push('{' + hash.types.join(',') + '}'); + this.push(this.objectLiteral(hash.contexts)); + this.push(this.objectLiteral(hash.types)); } - this.push('{\n ' + hash.values.join(',\n ') + '\n }'); + this.push(this.objectLiteral(hash.values)); }, // [pushString] @@ -467,17 +533,6 @@ JavaScriptCompiler.prototype = { this.pushStackLiteral(this.quotedString(string)); }, - // [push] - // - // On stack, before: ... - // On stack, after: expr, ... - // - // Push an expression onto the stack - push: function(expr) { - this.inlineStack.push(expr); - return expr; - }, - // [pushLiteral] // // On stack, before: ... @@ -516,13 +571,17 @@ JavaScriptCompiler.prototype = { // // If the helper is not found, `helperMissing` is called. invokeHelper: function(paramSize, name, isSimple) { - this.aliases.helperMissing = 'helpers.helperMissing'; + let nonHelper = this.popStack(), + helper = this.setupHelper(paramSize, name), + simple = isSimple ? [helper.name, ' || '] : ''; - var nonHelper = this.popStack(); - var helper = this.setupHelper(paramSize, name); + let lookup = ['('].concat(simple, nonHelper); + if (!this.options.strict) { + lookup.push(' || ', this.aliasable('helpers.helperMissing')); + } + lookup.push(')'); - var lookup = (isSimple ? helper.name + ' || ' : '') + nonHelper + ' || helperMissing'; - this.push('((' + lookup + ').call(' + helper.callParams + '))'); + this.push(this.source.functionCall(lookup, 'call', helper.callParams)); }, // [invokeKnownHelper] @@ -533,8 +592,8 @@ JavaScriptCompiler.prototype = { // This operation is used when the helper is known to exist, // so a `helperMissing` fallback is not required. invokeKnownHelper: function(paramSize, name) { - var helper = this.setupHelper(paramSize, name); - this.push(helper.name + ".call(" + helper.callParams + ")"); + let helper = this.setupHelper(paramSize, name); + this.push(this.source.functionCall(helper.name, 'call', helper.callParams)); }, // [invokeAmbiguous] @@ -550,21 +609,30 @@ JavaScriptCompiler.prototype = { // and can be avoided by passing the `knownHelpers` and // `knownHelpersOnly` flags at compile-time. invokeAmbiguous: function(name, helperCall) { - this.aliases.functionType = '"function"'; - this.aliases.helperMissing = 'helpers.helperMissing'; this.useRegister('helper'); - var nonHelper = this.popStack(); + let nonHelper = this.popStack(); this.emptyHash(); - var helper = this.setupHelper(0, name, helperCall); + let helper = this.setupHelper(0, name, helperCall); - var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); + let helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper'); - this.push( - '((helper = (helper = ' + helperName + ' || ' + nonHelper + ') != null ? helper : helperMissing' - + (helper.paramsInit ? '),(' + helper.paramsInit : '') + '),' - + '(typeof helper === functionType ? helper.call(' + helper.callParams + ') : helper))'); + let lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')']; + if (!this.options.strict) { + lookup[0] = '(helper = '; + lookup.push( + ' != null ? helper : ', + this.aliasable('helpers.helperMissing') + ); + } + + this.push([ + '(', lookup, + (helper.paramsInit ? ['),(', helper.paramsInit] : []), '),', + '(typeof helper === ', this.aliasable('"function"'), ' ? ', + this.source.functionCall('helper', 'call', helper.callParams), ' : helper))' + ]); }, // [invokePartial] @@ -574,19 +642,34 @@ JavaScriptCompiler.prototype = { // // This operation pops off a context, invokes a partial with that context, // and pushes the result of the invocation back. - invokePartial: function(name, indent) { - var params = [this.nameLookup('partials', name, 'partial'), "'" + indent + "'", "'" + name + "'", this.popStack(), this.popStack(), "helpers", "partials"]; + invokePartial: function(isDynamic, name, indent) { + let params = [], + options = this.setupParams(name, 1, params, false); - if (this.options.data) { - params.push("data"); - } else if (this.options.compat) { - params.push('undefined'); + if (isDynamic) { + name = this.popStack(); + delete options.name; } + + if (indent) { + options.indent = JSON.stringify(indent); + } + options.helpers = 'helpers'; + options.partials = 'partials'; + + if (!isDynamic) { + params.unshift(this.nameLookup('partials', name, 'partial')); + } else { + params.unshift(name); + } + if (this.options.compat) { - params.push('depths'); + options.depths = 'depths'; } + options = this.objectLiteral(options); + params.push(options); - this.push("this.invokePartial(" + params.join(", ") + ")"); + this.push(this.source.functionCall('this.invokePartial', '', params)); }, // [assignToHash] @@ -596,7 +679,7 @@ JavaScriptCompiler.prototype = { // // Pops a value off the stack and assigns it to the current hash assignToHash: function(key) { - var value = this.popStack(), + let value = this.popStack(), context, type, id; @@ -609,23 +692,27 @@ JavaScriptCompiler.prototype = { context = this.popStack(); } - var hash = this.hash; + let hash = this.hash; if (context) { - hash.contexts.push("'" + key + "': " + context); + hash.contexts[key] = context; } if (type) { - hash.types.push("'" + key + "': " + type); + hash.types[key] = type; } if (id) { - hash.ids.push("'" + key + "': " + id); + hash.ids[key] = id; } - hash.values.push("'" + key + "': (" + value + ")"); + hash.values[key] = value; }, - pushId: function(type, name) { - if (type === 'ID' || type === 'DATA') { + pushId: function(type, name, child) { + if (type === 'BlockParam') { + this.pushStackLiteral( + 'blockParams[' + name[0] + '].path[' + name[1] + ']' + + (child ? ' + ' + JSON.stringify('.' + child) : '')); + } else if (type === 'PathExpression') { this.pushString(name); - } else if (type === 'sexpr') { + } else if (type === 'SubExpression') { this.pushStackLiteral('true'); } else { this.pushStackLiteral('null'); @@ -637,13 +724,13 @@ JavaScriptCompiler.prototype = { compiler: JavaScriptCompiler, compileChildren: function(environment, options) { - var children = environment.children, child, compiler; + let children = environment.children, child, compiler; - for(var i=0, l=children.length; i this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); } + if (this.stackSlot > this.stackVars.length) { this.stackVars.push('stack' + this.stackSlot); } return this.topStackName(); }, topStackName: function() { - return "stack" + this.stackSlot; + return 'stack' + this.stackSlot; }, flushInline: function() { - var inlineStack = this.inlineStack; - if (inlineStack.length) { - this.inlineStack = []; - for (var i = 0, len = inlineStack.length; i < len; i++) { - var entry = inlineStack[i]; - if (entry instanceof Literal) { - this.compileStack.push(entry); - } else { - this.pushStack(entry); - } + let inlineStack = this.inlineStack; + this.inlineStack = []; + for (let i = 0, len = inlineStack.length; i < len; i++) { + let entry = inlineStack[i]; + /* istanbul ignore if */ + if (entry instanceof Literal) { + this.compileStack.push(entry); + } else { + let stack = this.incrStack(); + this.pushSource([stack, ' = ', entry, ';']); + this.compileStack.push(stack); } } }, @@ -781,7 +873,7 @@ JavaScriptCompiler.prototype = { }, popStack: function(wrapped) { - var inline = this.isInline(), + let inline = this.isInline(), item = (inline ? this.inlineStack : this.compileStack).pop(); if (!wrapped && (item instanceof Literal)) { @@ -799,9 +891,10 @@ JavaScriptCompiler.prototype = { }, topStack: function() { - var stack = (this.isInline() ? this.inlineStack : this.compileStack), + let stack = (this.isInline() ? this.inlineStack : this.compileStack), item = stack[stack.length - 1]; + /* istanbul ignore if */ if (item instanceof Literal) { return item.value; } else { @@ -818,42 +911,42 @@ JavaScriptCompiler.prototype = { }, quotedString: function(str) { - return '"' + str - .replace(/\\/g, '\\\\') - .replace(/"/g, '\\"') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4 - .replace(/\u2029/g, '\\u2029') + '"'; + return this.source.quotedString(str); }, objectLiteral: function(obj) { - var pairs = []; + return this.source.objectLiteral(obj); + }, - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - pairs.push(this.quotedString(key) + ':' + obj[key]); - } + aliasable: function(name) { + let ret = this.aliases[name]; + if (ret) { + ret.referenceCount++; + return ret; } - return '{' + pairs.join(',') + '}'; + ret = this.aliases[name] = this.source.wrap(name); + ret.aliasable = true; + ret.referenceCount = 1; + + return ret; }, setupHelper: function(paramSize, name, blockHelper) { - var params = [], - paramsInit = this.setupParams(name, paramSize, params, blockHelper); - var foundHelper = this.nameLookup('helpers', name, 'helper'); + let params = [], + paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper); + let foundHelper = this.nameLookup('helpers', name, 'helper'); return { params: params, paramsInit: paramsInit, name: foundHelper, - callParams: [this.contextName(0)].concat(params).join(", ") + callParams: [this.contextName(0)].concat(params) }; }, - setupOptions: function(helper, paramSize, params) { - var options = {}, contexts = [], types = [], ids = [], param, inverse, program; + setupParams: function(helper, paramSize, params) { + let options = {}, contexts = [], types = [], ids = [], param; options.name = this.quotedString(helper); options.hash = this.popStack(); @@ -866,27 +959,19 @@ JavaScriptCompiler.prototype = { options.hashContexts = this.popStack(); } - inverse = this.popStack(); - program = this.popStack(); + let inverse = this.popStack(), + program = this.popStack(); // Avoid setting fn and inverse if neither are set. This allows // helpers to do a check for `if (options.fn)` if (program || inverse) { - if (!program) { - program = 'this.noop'; - } - - if (!inverse) { - inverse = 'this.noop'; - } - - options.fn = program; - options.inverse = inverse; + options.fn = program || 'this.noop'; + options.inverse = inverse || 'this.noop'; } // The parameters go on to the stack in order (making sure that they are evaluated in order) // so we need to pop them off the stack in reverse order - var i = paramSize; + let i = paramSize; while (i--) { param = this.popStack(); params[i] = param; @@ -901,29 +986,29 @@ JavaScriptCompiler.prototype = { } if (this.trackIds) { - options.ids = "[" + ids.join(",") + "]"; + options.ids = this.source.generateArray(ids); } if (this.stringParams) { - options.types = "[" + types.join(",") + "]"; - options.contexts = "[" + contexts.join(",") + "]"; + options.types = this.source.generateArray(types); + options.contexts = this.source.generateArray(contexts); } if (this.options.data) { - options.data = "data"; + options.data = 'data'; + } + if (this.useBlockParams) { + options.blockParams = 'blockParams'; } - return options; }, - // the params and contexts arguments are passed in arrays - // to fill in - setupParams: function(helperName, paramSize, params, useRegister) { - var options = this.objectLiteral(this.setupOptions(helperName, paramSize, params)); - + setupHelperArgs: function(helper, paramSize, params, useRegister) { + let options = this.setupParams(helper, paramSize, params, true); + options = this.objectLiteral(options); if (useRegister) { this.useRegister('options'); params.push('options'); - return 'options=' + options; + return ['options=', options]; } else { params.push(options); return ''; @@ -931,32 +1016,55 @@ JavaScriptCompiler.prototype = { } }; -var reservedWords = ( - "break else new var" + - " case finally return void" + - " catch for switch while" + - " continue function this with" + - " default if throw" + - " delete in try" + - " do instanceof typeof" + - " abstract enum int short" + - " boolean export interface static" + - " byte extends long super" + - " char final native synchronized" + - " class float package throws" + - " const goto private transient" + - " debugger implements protected volatile" + - " double import public let yield" -).split(" "); -var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; +(function() { + const reservedWords = ( + 'break else new var' + + ' case finally return void' + + ' catch for switch while' + + ' continue function this with' + + ' default if throw' + + ' delete in try' + + ' do instanceof typeof' + + ' abstract enum int short' + + ' boolean export interface static' + + ' byte extends long super' + + ' char final native synchronized' + + ' class float package throws' + + ' const goto private transient' + + ' debugger implements protected volatile' + + ' double import public let yield await' + + ' null true false' + ).split(' '); -for(var i=0, l=reservedWords.length; i@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/]; -lexer.conditions = {"mu":{"rules":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[5],"inclusive":false},"raw":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,1,38],"inclusive":true}}; +lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/]; +lexer.conditions = {"mu":{"rules":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[5],"inclusive":false},"raw":{"rules":[3,4],"inclusive":false},"INITIAL":{"rules":[0,1,42],"inclusive":true}}; return lexer;})() parser.lexer = lexer; function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser; return new Parser; })();export default handlebars; -/* jshint ignore:end */ diff --git a/node_modules/handlebars/lib/handlebars/compiler/printer.js b/node_modules/handlebars/lib/handlebars/compiler/printer.js index 7654245..691a356 100644 --- a/node_modules/handlebars/lib/handlebars/compiler/printer.js +++ b/node_modules/handlebars/lib/handlebars/compiler/printer.js @@ -1,4 +1,5 @@ -import Visitor from "./visitor"; +/*eslint-disable new-cap */ +import Visitor from './visitor'; export function print(ast) { return new PrintVisitor().accept(ast); @@ -11,23 +12,32 @@ export function PrintVisitor() { PrintVisitor.prototype = new Visitor(); PrintVisitor.prototype.pad = function(string) { - var out = ""; + let out = ''; - for(var i=0,l=this.padding; i ' + content + ' }}'); +}; - for(var i=0, l=params.length; i " + content + " }}"); + +PrintVisitor.prototype.StringLiteral = function(string) { + return '"' + string.value + '"'; }; -PrintVisitor.prototype.hash = function(hash) { - var pairs = hash.pairs; - var joinedPairs = [], left, right; +PrintVisitor.prototype.NumberLiteral = function(number) { + return 'NUMBER{' + number.value + '}'; +}; - for(var i=0, l=pairs.length; i": ">", - '"': """, - "'": "'", - "`": "`" +const escape = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' }; -var badChars = /[&<>"'`]/g; -var possible = /[&<>"'`]/; +const badChars = /[&<>"'`]/g, + possible = /[&<>"'`]/; function escapeChar(chr) { return escape[chr]; } export function extend(obj /* , ...source */) { - for (var i = 1; i < arguments.length; i++) { - for (var key in arguments[i]) { + for (let i = 1; i < arguments.length; i++) { + for (let key in arguments[i]) { if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { obj[key] = arguments[i][key]; } @@ -29,10 +26,11 @@ export function extend(obj /* , ...source */) { return obj; } -export var toString = Object.prototype.toString; +export let toString = Object.prototype.toString; // Sourced from lodash // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt +/*eslint-disable func-style, no-var */ var isFunction = function(value) { return typeof value === 'function'; }; @@ -44,29 +42,42 @@ if (isFunction(/x/)) { }; } export var isFunction; +/*eslint-enable func-style, no-var */ /* istanbul ignore next */ -export var isArray = Array.isArray || function(value) { +export const isArray = Array.isArray || function(value) { return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false; }; +// Older IE versions do not directly support indexOf so we must implement our own, sadly. +export function indexOf(array, value) { + for (let i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; +} + export function escapeExpression(string) { - // don't escape SafeStrings, since they're already safe - if (string instanceof SafeString) { - return string.toString(); - } else if (string == null) { - return ""; - } else if (!string) { - return string + ''; + if (typeof string !== 'string') { + // don't escape SafeStrings, since they're already safe + if (string && string.toHTML) { + return string.toHTML(); + } else if (string == null) { + return ''; + } else if (!string) { + return string + ''; + } + + // Force a string conversion as this will be done by the append regardless and + // the regex test will do this transparently behind the scenes, causing issues if + // an object's to string has escaped characters in it. + string = '' + string; } - // Force a string conversion as this will be done by the append regardless and - // the regex test will do this transparently behind the scenes, causing issues if - // an object's to string has escaped characters in it. - string = "" + string; - - if(!possible.test(string)) { return string; } + if (!possible.test(string)) { return string; } return string.replace(badChars, escapeChar); } @@ -80,6 +91,11 @@ export function isEmpty(value) { } } +export function blockParams(params, ids) { + params.path = ids; + return params; +} + export function appendContextPath(contextPath, id) { return (contextPath ? contextPath + '.' : '') + id; } diff --git a/node_modules/handlebars/lib/index.js b/node_modules/handlebars/lib/index.js index 790aab7..0383c02 100644 --- a/node_modules/handlebars/lib/index.js +++ b/node_modules/handlebars/lib/index.js @@ -1,11 +1,10 @@ // USAGE: // var handlebars = require('handlebars'); +/* eslint-disable no-var */ // var local = handlebars.create(); -var handlebars = require('../dist/cjs/handlebars')["default"]; - -handlebars.Visitor = require('../dist/cjs/handlebars/compiler/visitor')["default"]; +var handlebars = require('../dist/cjs/handlebars')['default']; var printer = require('../dist/cjs/handlebars/compiler/printer'); handlebars.PrintVisitor = printer.PrintVisitor; @@ -14,13 +13,13 @@ handlebars.print = printer.print; module.exports = handlebars; // Publish a Node.js require() handler for .handlebars and .hbs files +function extension(module, filename) { + var fs = require('fs'); + var templateString = fs.readFileSync(filename, 'utf8'); + module.exports = handlebars.compile(templateString); +} /* istanbul ignore else */ if (typeof require !== 'undefined' && require.extensions) { - var extension = function(module, filename) { - var fs = require("fs"); - var templateString = fs.readFileSync(filename, "utf8"); - module.exports = handlebars.compile(templateString); - }; - require.extensions[".handlebars"] = extension; - require.extensions[".hbs"] = extension; + require.extensions['.handlebars'] = extension; + require.extensions['.hbs'] = extension; } diff --git a/node_modules/handlebars/lib/precompiler.js b/node_modules/handlebars/lib/precompiler.js index 6764022..48cfebd 100644 --- a/node_modules/handlebars/lib/precompiler.js +++ b/node_modules/handlebars/lib/precompiler.js @@ -1,8 +1,9 @@ - -var fs = require('fs'), - Handlebars = require('./index'), - basename = require('path').basename, - uglify = require('uglify-js'); +/*eslint-disable no-console */ +import fs from 'fs'; +import * as Handlebars from './handlebars'; +import {basename} from 'path'; +import {SourceMapConsumer, SourceNode} from 'source-map'; +import uglify from 'uglify-js'; module.exports.cli = function(opts) { if (opts.version) { @@ -10,7 +11,6 @@ module.exports.cli = function(opts) { return; } - var template = [0]; if (!opts.templates.length) { throw new Handlebars.Exception('Must define at least one template or directory.'); } @@ -19,70 +19,76 @@ module.exports.cli = function(opts) { try { fs.statSync(template); } catch (err) { - throw new Handlebars.Exception('Unable to open template file "' + template + '"'); + throw new Handlebars.Exception(`Unable to open template file "${template}"`); } }); if (opts.simple && opts.min) { - throw new Handlebars.Exception('Unable to minimze simple output'); + throw new Handlebars.Exception('Unable to minimize simple output'); } if (opts.simple && (opts.templates.length !== 1 || fs.statSync(opts.templates[0]).isDirectory())) { throw new Handlebars.Exception('Unable to output multiple templates in simple mode'); } // Convert the known list into a hash - var known = {}; + let known = {}; if (opts.known && !Array.isArray(opts.known)) { opts.known = [opts.known]; } if (opts.known) { - for (var i = 0, len = opts.known.length; i < len; i++) { + for (let i = 0, len = opts.known.length; i < len; i++) { known[opts.known[i]] = true; } } // Build file extension pattern - var extension = opts.extension.replace(/[\\^$*+?.():=!|{}\-\[\]]/g, function(arg) { return '\\' + arg; }); + let extension = opts.extension.replace(/[\\^$*+?.():=!|{}\-\[\]]/g, function(arg) { return '\\' + arg; }); extension = new RegExp('\\.' + extension + '$'); - var output = []; + let output = new SourceNode(); if (!opts.simple) { if (opts.amd) { - output.push('define([\'' + opts.handlebarPath + 'handlebars.runtime\'], function(Handlebars) {\n Handlebars = Handlebars["default"];'); + output.add('define([\'' + opts.handlebarPath + 'handlebars.runtime\'], function(Handlebars) {\n Handlebars = Handlebars["default"];'); } else if (opts.commonjs) { - output.push('var Handlebars = require("' + opts.commonjs + '");'); + output.add('var Handlebars = require("' + opts.commonjs + '");'); } else { - output.push('(function() {\n'); + output.add('(function() {\n'); } - output.push(' var template = Handlebars.template, templates = '); - output.push(opts.namespace); - output.push(' = '); - output.push(opts.namespace); - output.push(' || {};\n'); + output.add(' var template = Handlebars.template, templates = '); + if (opts.namespace) { + output.add(opts.namespace); + output.add(' = '); + output.add(opts.namespace); + output.add(' || '); + } + output.add('{};\n'); } function processTemplate(template, root) { - var path = template, + let path = template, stat = fs.statSync(path); if (stat.isDirectory()) { fs.readdirSync(template).map(function(file) { - var path = template + '/' + file; + let childPath = template + '/' + file; - if (extension.test(path) || fs.statSync(path).isDirectory()) { - processTemplate(path, root || template); + if (extension.test(childPath) || fs.statSync(childPath).isDirectory()) { + processTemplate(childPath, root || template); } }); } else { - var data = fs.readFileSync(path, 'utf8'); + let data = fs.readFileSync(path, 'utf8'); if (opts.bom && data.indexOf('\uFEFF') === 0) { data = data.substring(1); } - var options = { + let options = { knownHelpers: known, knownHelpersOnly: opts.o }; + if (opts.map) { + options.srcName = path; + } if (opts.data) { options.data = true; } @@ -91,22 +97,30 @@ module.exports.cli = function(opts) { if (!root) { template = basename(template); } else if (template.indexOf(root) === 0) { - template = template.substring(root.length+1); + template = template.substring(root.length + 1); } template = template.replace(extension, ''); + let precompiled = Handlebars.precompile(data, options); + + // If we are generating a source map, we have to reconstruct the SourceNode object + if (opts.map) { + let consumer = new SourceMapConsumer(precompiled.map); + precompiled = SourceNode.fromStringWithSourceMap(precompiled.code, consumer); + } + if (opts.simple) { - output.push(Handlebars.precompile(data, options) + '\n'); + output.add([precompiled, '\n']); } else if (opts.partial) { - if(opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) { - output.push('return '); + if (opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) { + output.add('return '); } - output.push('Handlebars.partials[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n'); + output.add(['Handlebars.partials[\'', template, '\'] = template(', precompiled, ');\n']); } else { - if(opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) { - output.push('return '); + if (opts.amd && (opts.templates.length == 1 && !fs.statSync(opts.templates[0]).isDirectory())) { + output.add('return '); } - output.push('templates[\'' + template + '\'] = template(' + Handlebars.precompile(data, options) + ');\n'); + output.add(['templates[\'', template, '\'] = template(', precompiled, ');\n']); } } } @@ -118,24 +132,44 @@ module.exports.cli = function(opts) { // Output the content if (!opts.simple) { if (opts.amd) { - if(opts.templates.length > 1 || (opts.templates.length == 1 && fs.statSync(opts.templates[0]).isDirectory())) { - if(opts.partial){ - output.push('return Handlebars.partials;\n'); + if (opts.templates.length > 1 || (opts.templates.length == 1 && fs.statSync(opts.templates[0]).isDirectory())) { + if (opts.partial) { + output.add('return Handlebars.partials;\n'); } else { - output.push('return templates;\n'); + output.add('return templates;\n'); } } - output.push('});'); + output.add('});'); } else if (!opts.commonjs) { - output.push('})();'); + output.add('})();'); } } - output = output.join(''); + + + if (opts.map) { + output.add('\n//# sourceMappingURL=' + opts.map + '\n'); + } + + output = output.toStringWithSourceMap(); + output.map = output.map + ''; if (opts.min) { - output = uglify.minify(output, {fromString: true}).code; + output = uglify.minify(output.code, { + fromString: true, + + outSourceMap: opts.map, + inSourceMap: JSON.parse(output.map) + }); + if (opts.map) { + output.code += '\n//# sourceMappingURL=' + opts.map + '\n'; + } } + if (opts.map) { + fs.writeFileSync(opts.map, output.map, 'utf8'); + } + output = output.code; + if (opts.output) { fs.writeFileSync(opts.output, output, 'utf8'); } else { diff --git a/node_modules/handlebars/node_modules/optimist/index.js b/node_modules/handlebars/node_modules/optimist/index.js index 8ac67eb..4da5a6d 100644 --- a/node_modules/handlebars/node_modules/optimist/index.js +++ b/node_modules/handlebars/node_modules/optimist/index.js @@ -1,4 +1,5 @@ var path = require('path'); +var minimist = require('minimist'); var wordwrap = require('wordwrap'); /* Hack an instance of Argv with process.argv into Argv @@ -17,7 +18,7 @@ Object.keys(inst).forEach(function (key) { }); var exports = module.exports = Argv; -function Argv (args, cwd) { +function Argv (processArgs, cwd) { var self = {}; if (!cwd) cwd = process.cwd(); @@ -37,50 +38,44 @@ function Argv (args, cwd) { ); } - var flags = { bools : {}, strings : {} }; + var options = { + boolean: [], + string: [], + alias: {}, + default: [] + }; self.boolean = function (bools) { - if (!Array.isArray(bools)) { - bools = [].slice.call(arguments); - } - - bools.forEach(function (name) { - flags.bools[name] = true; - }); - + options.boolean.push.apply(options.boolean, [].concat(bools)); return self; }; self.string = function (strings) { - if (!Array.isArray(strings)) { - strings = [].slice.call(arguments); - } - - strings.forEach(function (name) { - flags.strings[name] = true; - }); - + options.string.push.apply(options.string, [].concat(strings)); + return self; + }; + + self.default = function (key, value) { + if (typeof key === 'object') { + Object.keys(key).forEach(function (k) { + self.default(k, key[k]); + }); + } + else { + options.default[key] = value; + } return self; }; - var aliases = {}; self.alias = function (x, y) { if (typeof x === 'object') { Object.keys(x).forEach(function (key) { self.alias(key, x[key]); }); } - else if (Array.isArray(y)) { - y.forEach(function (yy) { - self.alias(x, yy); - }); - } else { - var zs = (aliases[x] || []).concat(aliases[y] || []).concat(x, y); - aliases[x] = zs.filter(function (z) { return z != x }); - aliases[y] = zs.filter(function (z) { return z != y }); + options.alias[x] = (options.alias[x] || []).concat(y); } - return self; }; @@ -128,20 +123,6 @@ function Argv (args, cwd) { return self; }; - var defaults = {}; - self.default = function (key, value) { - if (typeof key === 'object') { - Object.keys(key).forEach(function (k) { - self.default(k, key[k]); - }); - } - else { - defaults[key] = value; - } - - return self; - }; - var descriptions = {}; self.describe = function (key, desc) { if (typeof key === 'object') { @@ -156,7 +137,7 @@ function Argv (args, cwd) { }; self.parse = function (args) { - return Argv(args).argv; + return parseArgs(args); }; self.option = self.options = function (key, opt) { @@ -203,7 +184,7 @@ function Argv (args, cwd) { var keys = Object.keys( Object.keys(descriptions) .concat(Object.keys(demanded)) - .concat(Object.keys(defaults)) + .concat(Object.keys(options.default)) .reduce(function (acc, key) { if (key !== '_') acc[key] = true; return acc; @@ -217,7 +198,7 @@ function Argv (args, cwd) { } var switches = keys.reduce(function (acc, key) { - acc[key] = [ key ].concat(aliases[key] || []) + acc[key] = [ key ].concat(options.alias[key] || []) .map(function (sw) { return (sw.length > 1 ? '--' : '-') + sw }) @@ -254,8 +235,8 @@ function Argv (args, cwd) { var type = null; - if (flags.bools[key]) type = '[boolean]'; - if (flags.strings[key]) type = '[string]'; + if (options.boolean[key]) type = '[boolean]'; + if (options.string[key]) type = '[string]'; if (!wrap && dpadding.length > 0) { desc += dpadding; @@ -268,8 +249,8 @@ function Argv (args, cwd) { ? '[required]' : null , - defaults[key] !== undefined - ? '[default: ' + JSON.stringify(defaults[key]) + ']' + options.default[key] !== undefined + ? '[default: ' + JSON.stringify(options.default[key]) + ']' : null , ].filter(Boolean).join(' '); @@ -298,110 +279,13 @@ function Argv (args, cwd) { }; Object.defineProperty(self, 'argv', { - get : parseArgs, + get : function () { return parseArgs(processArgs) }, enumerable : true, }); - function parseArgs () { - var argv = { _ : [], $0 : self.$0 }; - Object.keys(flags.bools).forEach(function (key) { - setArg(key, defaults[key] || false); - }); - - function setArg (key, val) { - var num = Number(val); - var value = typeof val !== 'string' || isNaN(num) ? val : num; - if (flags.strings[key]) value = val; - - setKey(argv, key.split('.'), value); - - (aliases[key] || []).forEach(function (x) { - argv[x] = argv[key]; - }); - } - - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - - if (arg === '--') { - argv._.push.apply(argv._, args.slice(i + 1)); - break; - } - else if (arg.match(/^--.+=/)) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - var m = arg.match(/^--([^=]+)=([\s\S]*)$/); - setArg(m[1], m[2]); - } - else if (arg.match(/^--no-.+/)) { - var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false); - } - else if (arg.match(/^--.+/)) { - var key = arg.match(/^--(.+)/)[1]; - var next = args[i + 1]; - if (next !== undefined && !next.match(/^-/) - && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, next); - i++; - } - else if (/^(true|false)$/.test(next)) { - setArg(key, next === 'true'); - i++; - } - else { - setArg(key, true); - } - } - else if (arg.match(/^-[^-]+/)) { - var letters = arg.slice(1,-1).split(''); - - var broken = false; - for (var j = 0; j < letters.length; j++) { - if (letters[j+1] && letters[j+1].match(/\W/)) { - setArg(letters[j], arg.slice(j+2)); - broken = true; - break; - } - else { - setArg(letters[j], true); - } - } - - if (!broken) { - var key = arg.slice(-1)[0]; - - if (args[i+1] && !args[i+1].match(/^-/) - && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, args[i+1]); - i++; - } - else if (args[i+1] && /true|false/.test(args[i+1])) { - setArg(key, args[i+1] === 'true'); - i++; - } - else { - setArg(key, true); - } - } - } - else { - var n = Number(arg); - argv._.push(flags.strings['_'] || isNaN(n) ? arg : n); - } - } - - Object.keys(defaults).forEach(function (key) { - if (!(key in argv)) { - argv[key] = defaults[key]; - if (key in aliases) { - argv[aliases[key]] = defaults[key]; - } - } - }); + function parseArgs (args) { + var argv = minimist(args, options); + argv.$0 = self.$0; if (demanded._ && argv._.length < demanded._) { fail('Not enough non-option arguments: got ' @@ -457,22 +341,3 @@ function rebase (base, dir) { ).replace(/\/$/,'').replace(/^$/, '.'); return p.match(/^[.\/]/) ? p : './' + p; }; - -function setKey (obj, keys, value) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - if (o[key] === undefined) o[key] = {}; - o = o[key]; - }); - - var key = keys[keys.length - 1]; - if (o[key] === undefined || typeof o[key] === 'boolean') { - o[key] = value; - } - else if (Array.isArray(o[key])) { - o[key].push(value); - } - else { - o[key] = [ o[key], value ]; - } -} diff --git a/node_modules/node-notifier/.travis.yml b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/.travis.yml similarity index 77% rename from node_modules/node-notifier/.travis.yml rename to node_modules/handlebars/node_modules/optimist/node_modules/minimist/.travis.yml index 18ae2d8..cc4dba2 100644 --- a/node_modules/node-notifier/.travis.yml +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/.travis.yml @@ -1,4 +1,4 @@ language: node_js node_js: - - "0.11" + - "0.8" - "0.10" diff --git a/node_modules/node-notifier/node_modules/clone/LICENSE b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/LICENSE similarity index 67% rename from node_modules/node-notifier/node_modules/clone/LICENSE rename to node_modules/handlebars/node_modules/optimist/node_modules/minimist/LICENSE index fc808cc..ee27ba4 100644 --- a/node_modules/node-notifier/node_modules/clone/LICENSE +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/LICENSE @@ -1,7 +1,7 @@ -Copyright © 2011-2014 Paul Vorbach +This software is released under the MIT license: Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the “Software”), to deal in +this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, @@ -10,9 +10,9 @@ subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/example/parse.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/example/parse.js new file mode 100644 index 0000000..abff3e8 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/example/parse.js @@ -0,0 +1,2 @@ +var argv = require('../')(process.argv.slice(2)); +console.dir(argv); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/index.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/index.js new file mode 100644 index 0000000..71fb830 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/index.js @@ -0,0 +1,187 @@ +module.exports = function (args, opts) { + if (!opts) opts = {}; + + var flags = { bools : {}, strings : {} }; + + [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + }); + + var aliases = {}; + Object.keys(opts.alias || {}).forEach(function (key) { + aliases[key] = [].concat(opts.alias[key]); + aliases[key].forEach(function (x) { + aliases[x] = [key].concat(aliases[key].filter(function (y) { + return x !== y; + })); + }); + }); + + [].concat(opts.string).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; + if (aliases[key]) { + flags.strings[aliases[key]] = true; + } + }); + + var defaults = opts['default'] || {}; + + var argv = { _ : [] }; + Object.keys(flags.bools).forEach(function (key) { + setArg(key, defaults[key] === undefined ? false : defaults[key]); + }); + + var notFlags = []; + + if (args.indexOf('--') !== -1) { + notFlags = args.slice(args.indexOf('--')+1); + args = args.slice(0, args.indexOf('--')); + } + + function setArg (key, val) { + var value = !flags.strings[key] && isNumber(val) + ? Number(val) : val + ; + setKey(argv, key.split('.'), value); + + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split('.'), value); + }); + } + + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + + if (/^--.+=/.test(arg)) { + // Using [\s\S] instead of . because js doesn't support the + // 'dotall' regex modifier. See: + // http://stackoverflow.com/a/1068308/13216 + var m = arg.match(/^--([^=]+)=([\s\S]*)$/); + setArg(m[1], m[2]); + } + else if (/^--no-.+/.test(arg)) { + var key = arg.match(/^--no-(.+)/)[1]; + setArg(key, false); + } + else if (/^--.+/.test(arg)) { + var key = arg.match(/^--(.+)/)[1]; + var next = args[i + 1]; + if (next !== undefined && !/^-/.test(next) + && !flags.bools[key] + && (aliases[key] ? !flags.bools[aliases[key]] : true)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next === 'true'); + i++; + } + else { + setArg(key, flags.strings[key] ? '' : true); + } + } + else if (/^-[^-]+/.test(arg)) { + var letters = arg.slice(1,-1).split(''); + + var broken = false; + for (var j = 0; j < letters.length; j++) { + var next = arg.slice(j+2); + + if (next === '-') { + setArg(letters[j], next) + continue; + } + + if (/[A-Za-z]/.test(letters[j]) + && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { + setArg(letters[j], next); + broken = true; + break; + } + + if (letters[j+1] && letters[j+1].match(/\W/)) { + setArg(letters[j], arg.slice(j+2)); + broken = true; + break; + } + else { + setArg(letters[j], flags.strings[letters[j]] ? '' : true); + } + } + + var key = arg.slice(-1)[0]; + if (!broken && key !== '-') { + if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) + && !flags.bools[key] + && (aliases[key] ? !flags.bools[aliases[key]] : true)) { + setArg(key, args[i+1]); + i++; + } + else if (args[i+1] && /true|false/.test(args[i+1])) { + setArg(key, args[i+1] === 'true'); + i++; + } + else { + setArg(key, flags.strings[key] ? '' : true); + } + } + } + else { + argv._.push( + flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) + ); + } + } + + Object.keys(defaults).forEach(function (key) { + if (!hasKey(argv, key.split('.'))) { + setKey(argv, key.split('.'), defaults[key]); + + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split('.'), defaults[key]); + }); + } + }); + + notFlags.forEach(function(key) { + argv._.push(key); + }); + + return argv; +}; + +function hasKey (obj, keys) { + var o = obj; + keys.slice(0,-1).forEach(function (key) { + o = (o[key] || {}); + }); + + var key = keys[keys.length - 1]; + return key in o; +} + +function setKey (obj, keys, value) { + var o = obj; + keys.slice(0,-1).forEach(function (key) { + if (o[key] === undefined) o[key] = {}; + o = o[key]; + }); + + var key = keys[keys.length - 1]; + if (o[key] === undefined || typeof o[key] === 'boolean') { + o[key] = value; + } + else if (Array.isArray(o[key])) { + o[key].push(value); + } + else { + o[key] = [ o[key], value ]; + } +} + +function isNumber (x) { + if (typeof x === 'number') return true; + if (/^0x[0-9a-f]+$/i.test(x)) return true; + return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +} + diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/package.json b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/package.json new file mode 100644 index 0000000..54f611b --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/package.json @@ -0,0 +1,67 @@ +{ + "name": "minimist", + "version": "0.0.10", + "description": "parse argument options", + "main": "index.js", + "devDependencies": { + "tape": "~1.0.4", + "tap": "~0.4.0" + }, + "scripts": { + "test": "tap test/*.js" + }, + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/6..latest", + "ff/5", + "firefox/latest", + "chrome/10", + "chrome/latest", + "safari/5.1", + "safari/latest", + "opera/12" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/substack/minimist.git" + }, + "homepage": "https://github.com/substack/minimist", + "keywords": [ + "argv", + "getopt", + "parser", + "optimist" + ], + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/substack/minimist/issues" + }, + "_id": "minimist@0.0.10", + "dist": { + "shasum": "de3f98543dbf96082be48ad1a0c7cda836301dcf", + "tarball": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + }, + "_from": "minimist@~0.0.1", + "_npmVersion": "1.4.3", + "_npmUser": { + "name": "substack", + "email": "mail@substack.net" + }, + "maintainers": [ + { + "name": "substack", + "email": "mail@substack.net" + } + ], + "directories": {}, + "_shasum": "de3f98543dbf96082be48ad1a0c7cda836301dcf", + "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "readme": "ERROR: No README data found!" +} diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/readme.markdown b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/readme.markdown new file mode 100644 index 0000000..c256353 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/readme.markdown @@ -0,0 +1,73 @@ +# minimist + +parse argument options + +This module is the guts of optimist's argument parser without all the +fanciful decoration. + +[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist) + +[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist) + +# example + +``` js +var argv = require('minimist')(process.argv.slice(2)); +console.dir(argv); +``` + +``` +$ node example/parse.js -a beep -b boop +{ _: [], a: 'beep', b: 'boop' } +``` + +``` +$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz +{ _: [ 'foo', 'bar', 'baz' ], + x: 3, + y: 4, + n: 5, + a: true, + b: true, + c: true, + beep: 'boop' } +``` + +# methods + +``` js +var parseArgs = require('minimist') +``` + +## var argv = parseArgs(args, opts={}) + +Return an argument object `argv` populated with the array arguments from `args`. + +`argv._` contains all the arguments that didn't have an option associated with +them. + +Numeric-looking arguments will be returned as numbers unless `opts.string` or +`opts.boolean` is set for that argument name. + +Any arguments after `'--'` will not be parsed and will end up in `argv._`. + +options can be: + +* `opts.string` - a string or array of strings argument names to always treat as +strings +* `opts.boolean` - a string or array of strings to always treat as booleans +* `opts.alias` - an object mapping string names to strings or arrays of string +argument names to use as aliases +* `opts.default` - an object mapping string argument names to default values + +# install + +With [npm](https://npmjs.org) do: + +``` +npm install minimist +``` + +# license + +MIT diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/bool.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/bool.js new file mode 100644 index 0000000..749e083 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/bool.js @@ -0,0 +1,119 @@ +var parse = require('../'); +var test = require('tape'); + +test('flag boolean default false', function (t) { + var argv = parse(['moo'], { + boolean: ['t', 'verbose'], + default: { verbose: false, t: false } + }); + + t.deepEqual(argv, { + verbose: false, + t: false, + _: ['moo'] + }); + + t.deepEqual(typeof argv.verbose, 'boolean'); + t.deepEqual(typeof argv.t, 'boolean'); + t.end(); + +}); + +test('boolean groups', function (t) { + var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], { + boolean: ['x','y','z'] + }); + + t.deepEqual(argv, { + x : true, + y : false, + z : true, + _ : [ 'one', 'two', 'three' ] + }); + + t.deepEqual(typeof argv.x, 'boolean'); + t.deepEqual(typeof argv.y, 'boolean'); + t.deepEqual(typeof argv.z, 'boolean'); + t.end(); +}); +test('boolean and alias with chainable api', function (t) { + var aliased = [ '-h', 'derp' ]; + var regular = [ '--herp', 'derp' ]; + var opts = { + herp: { alias: 'h', boolean: true } + }; + var aliasedArgv = parse(aliased, { + boolean: 'herp', + alias: { h: 'herp' } + }); + var propertyArgv = parse(regular, { + boolean: 'herp', + alias: { h: 'herp' } + }); + var expected = { + herp: true, + h: true, + '_': [ 'derp' ] + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +test('boolean and alias with options hash', function (t) { + var aliased = [ '-h', 'derp' ]; + var regular = [ '--herp', 'derp' ]; + var opts = { + alias: { 'h': 'herp' }, + boolean: 'herp' + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var expected = { + herp: true, + h: true, + '_': [ 'derp' ] + }; + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +test('boolean and alias using explicit true', function (t) { + var aliased = [ '-h', 'true' ]; + var regular = [ '--herp', 'true' ]; + var opts = { + alias: { h: 'herp' }, + boolean: 'h' + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var expected = { + herp: true, + h: true, + '_': [ ] + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +// regression, see https://github.com/substack/node-optimist/issues/71 +test('boolean and --x=true', function(t) { + var parsed = parse(['--boool', '--other=true'], { + boolean: 'boool' + }); + + t.same(parsed.boool, true); + t.same(parsed.other, 'true'); + + parsed = parse(['--boool', '--other=false'], { + boolean: 'boool' + }); + + t.same(parsed.boool, true); + t.same(parsed.other, 'false'); + t.end(); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/dash.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/dash.js new file mode 100644 index 0000000..8b034b9 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/dash.js @@ -0,0 +1,24 @@ +var parse = require('../'); +var test = require('tape'); + +test('-', function (t) { + t.plan(5); + t.deepEqual(parse([ '-n', '-' ]), { n: '-', _: [] }); + t.deepEqual(parse([ '-' ]), { _: [ '-' ] }); + t.deepEqual(parse([ '-f-' ]), { f: '-', _: [] }); + t.deepEqual( + parse([ '-b', '-' ], { boolean: 'b' }), + { b: true, _: [ '-' ] } + ); + t.deepEqual( + parse([ '-s', '-' ], { string: 's' }), + { s: '-', _: [] } + ); +}); + +test('-a -- b', function (t) { + t.plan(3); + t.deepEqual(parse([ '-a', '--', 'b' ]), { a: true, _: [ 'b' ] }); + t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); + t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/default_bool.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/default_bool.js new file mode 100644 index 0000000..f0041ee --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/default_bool.js @@ -0,0 +1,20 @@ +var test = require('tape'); +var parse = require('../'); + +test('boolean default true', function (t) { + var argv = parse([], { + boolean: 'sometrue', + default: { sometrue: true } + }); + t.equal(argv.sometrue, true); + t.end(); +}); + +test('boolean default false', function (t) { + var argv = parse([], { + boolean: 'somefalse', + default: { somefalse: false } + }); + t.equal(argv.somefalse, false); + t.end(); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/dotted.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/dotted.js new file mode 100644 index 0000000..d8b3e85 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/dotted.js @@ -0,0 +1,22 @@ +var parse = require('../'); +var test = require('tape'); + +test('dotted alias', function (t) { + var argv = parse(['--a.b', '22'], {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); + t.equal(argv.a.b, 22); + t.equal(argv.aa.bb, 22); + t.end(); +}); + +test('dotted default', function (t) { + var argv = parse('', {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); + t.equal(argv.a.b, 11); + t.equal(argv.aa.bb, 11); + t.end(); +}); + +test('dotted default with no alias', function (t) { + var argv = parse('', {default: {'a.b': 11}}); + t.equal(argv.a.b, 11); + t.end(); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/long.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/long.js new file mode 100644 index 0000000..5d3a1e0 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/long.js @@ -0,0 +1,31 @@ +var test = require('tape'); +var parse = require('../'); + +test('long opts', function (t) { + t.deepEqual( + parse([ '--bool' ]), + { bool : true, _ : [] }, + 'long boolean' + ); + t.deepEqual( + parse([ '--pow', 'xixxle' ]), + { pow : 'xixxle', _ : [] }, + 'long capture sp' + ); + t.deepEqual( + parse([ '--pow=xixxle' ]), + { pow : 'xixxle', _ : [] }, + 'long capture eq' + ); + t.deepEqual( + parse([ '--host', 'localhost', '--port', '555' ]), + { host : 'localhost', port : 555, _ : [] }, + 'long captures sp' + ); + t.deepEqual( + parse([ '--host=localhost', '--port=555' ]), + { host : 'localhost', port : 555, _ : [] }, + 'long captures eq' + ); + t.end(); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/num.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/num.js new file mode 100644 index 0000000..2cc77f4 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/num.js @@ -0,0 +1,36 @@ +var parse = require('../'); +var test = require('tape'); + +test('nums', function (t) { + var argv = parse([ + '-x', '1234', + '-y', '5.67', + '-z', '1e7', + '-w', '10f', + '--hex', '0xdeadbeef', + '789' + ]); + t.deepEqual(argv, { + x : 1234, + y : 5.67, + z : 1e7, + w : '10f', + hex : 0xdeadbeef, + _ : [ 789 ] + }); + t.deepEqual(typeof argv.x, 'number'); + t.deepEqual(typeof argv.y, 'number'); + t.deepEqual(typeof argv.z, 'number'); + t.deepEqual(typeof argv.w, 'string'); + t.deepEqual(typeof argv.hex, 'number'); + t.deepEqual(typeof argv._[0], 'number'); + t.end(); +}); + +test('already a number', function (t) { + var argv = parse([ '-x', 1234, 789 ]); + t.deepEqual(argv, { x : 1234, _ : [ 789 ] }); + t.deepEqual(typeof argv.x, 'number'); + t.deepEqual(typeof argv._[0], 'number'); + t.end(); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/parse.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/parse.js new file mode 100644 index 0000000..7b4a2a1 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/parse.js @@ -0,0 +1,197 @@ +var parse = require('../'); +var test = require('tape'); + +test('parse args', function (t) { + t.deepEqual( + parse([ '--no-moo' ]), + { moo : false, _ : [] }, + 'no' + ); + t.deepEqual( + parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]), + { v : ['a','b','c'], _ : [] }, + 'multi' + ); + t.end(); +}); + +test('comprehensive', function (t) { + t.deepEqual( + parse([ + '--name=meowmers', 'bare', '-cats', 'woo', + '-h', 'awesome', '--multi=quux', + '--key', 'value', + '-b', '--bool', '--no-meep', '--multi=baz', + '--', '--not-a-flag', 'eek' + ]), + { + c : true, + a : true, + t : true, + s : 'woo', + h : 'awesome', + b : true, + bool : true, + key : 'value', + multi : [ 'quux', 'baz' ], + meep : false, + name : 'meowmers', + _ : [ 'bare', '--not-a-flag', 'eek' ] + } + ); + t.end(); +}); + +test('flag boolean', function (t) { + var argv = parse([ '-t', 'moo' ], { boolean: 't' }); + t.deepEqual(argv, { t : true, _ : [ 'moo' ] }); + t.deepEqual(typeof argv.t, 'boolean'); + t.end(); +}); + +test('flag boolean value', function (t) { + var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], { + boolean: [ 't', 'verbose' ], + default: { verbose: true } + }); + + t.deepEqual(argv, { + verbose: false, + t: true, + _: ['moo'] + }); + + t.deepEqual(typeof argv.verbose, 'boolean'); + t.deepEqual(typeof argv.t, 'boolean'); + t.end(); +}); + +test('newlines in params' , function (t) { + var args = parse([ '-s', "X\nX" ]) + t.deepEqual(args, { _ : [], s : "X\nX" }); + + // reproduce in bash: + // VALUE="new + // line" + // node program.js --s="$VALUE" + args = parse([ "--s=X\nX" ]) + t.deepEqual(args, { _ : [], s : "X\nX" }); + t.end(); +}); + +test('strings' , function (t) { + var s = parse([ '-s', '0001234' ], { string: 's' }).s; + t.equal(s, '0001234'); + t.equal(typeof s, 'string'); + + var x = parse([ '-x', '56' ], { string: 'x' }).x; + t.equal(x, '56'); + t.equal(typeof x, 'string'); + t.end(); +}); + +test('stringArgs', function (t) { + var s = parse([ ' ', ' ' ], { string: '_' })._; + t.same(s.length, 2); + t.same(typeof s[0], 'string'); + t.same(s[0], ' '); + t.same(typeof s[1], 'string'); + t.same(s[1], ' '); + t.end(); +}); + +test('empty strings', function(t) { + var s = parse([ '-s' ], { string: 's' }).s; + t.equal(s, ''); + t.equal(typeof s, 'string'); + + var str = parse([ '--str' ], { string: 'str' }).str; + t.equal(str, ''); + t.equal(typeof str, 'string'); + + var letters = parse([ '-art' ], { + string: [ 'a', 't' ] + }); + + t.equal(letters.a, ''); + t.equal(letters.r, true); + t.equal(letters.t, ''); + + t.end(); +}); + + +test('string and alias', function(t) { + var x = parse([ '--str', '000123' ], { + string: 's', + alias: { s: 'str' } + }); + + t.equal(x.str, '000123'); + t.equal(typeof x.str, 'string'); + t.equal(x.s, '000123'); + t.equal(typeof x.s, 'string'); + + var y = parse([ '-s', '000123' ], { + string: 'str', + alias: { str: 's' } + }); + + t.equal(y.str, '000123'); + t.equal(typeof y.str, 'string'); + t.equal(y.s, '000123'); + t.equal(typeof y.s, 'string'); + t.end(); +}); + +test('slashBreak', function (t) { + t.same( + parse([ '-I/foo/bar/baz' ]), + { I : '/foo/bar/baz', _ : [] } + ); + t.same( + parse([ '-xyz/foo/bar/baz' ]), + { x : true, y : true, z : '/foo/bar/baz', _ : [] } + ); + t.end(); +}); + +test('alias', function (t) { + var argv = parse([ '-f', '11', '--zoom', '55' ], { + alias: { z: 'zoom' } + }); + t.equal(argv.zoom, 55); + t.equal(argv.z, argv.zoom); + t.equal(argv.f, 11); + t.end(); +}); + +test('multiAlias', function (t) { + var argv = parse([ '-f', '11', '--zoom', '55' ], { + alias: { z: [ 'zm', 'zoom' ] } + }); + t.equal(argv.zoom, 55); + t.equal(argv.z, argv.zoom); + t.equal(argv.z, argv.zm); + t.equal(argv.f, 11); + t.end(); +}); + +test('nested dotted objects', function (t) { + var argv = parse([ + '--foo.bar', '3', '--foo.baz', '4', + '--foo.quux.quibble', '5', '--foo.quux.o_O', + '--beep.boop' + ]); + + t.same(argv.foo, { + bar : 3, + baz : 4, + quux : { + quibble : 5, + o_O : true + } + }); + t.same(argv.beep, { boop : true }); + t.end(); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/parse_modified.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/parse_modified.js new file mode 100644 index 0000000..21851b0 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/parse_modified.js @@ -0,0 +1,9 @@ +var parse = require('../'); +var test = require('tape'); + +test('parse with modifier functions' , function (t) { + t.plan(1); + + var argv = parse([ '-b', '123' ], { boolean: 'b' }); + t.deepEqual(argv, { b: true, _: ['123'] }); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/short.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/short.js new file mode 100644 index 0000000..d513a1c --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/short.js @@ -0,0 +1,67 @@ +var parse = require('../'); +var test = require('tape'); + +test('numeric short args', function (t) { + t.plan(2); + t.deepEqual(parse([ '-n123' ]), { n: 123, _: [] }); + t.deepEqual( + parse([ '-123', '456' ]), + { 1: true, 2: true, 3: 456, _: [] } + ); +}); + +test('short', function (t) { + t.deepEqual( + parse([ '-b' ]), + { b : true, _ : [] }, + 'short boolean' + ); + t.deepEqual( + parse([ 'foo', 'bar', 'baz' ]), + { _ : [ 'foo', 'bar', 'baz' ] }, + 'bare' + ); + t.deepEqual( + parse([ '-cats' ]), + { c : true, a : true, t : true, s : true, _ : [] }, + 'group' + ); + t.deepEqual( + parse([ '-cats', 'meow' ]), + { c : true, a : true, t : true, s : 'meow', _ : [] }, + 'short group next' + ); + t.deepEqual( + parse([ '-h', 'localhost' ]), + { h : 'localhost', _ : [] }, + 'short capture' + ); + t.deepEqual( + parse([ '-h', 'localhost', '-p', '555' ]), + { h : 'localhost', p : 555, _ : [] }, + 'short captures' + ); + t.end(); +}); + +test('mixed short bool and capture', function (t) { + t.same( + parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), + { + f : true, p : 555, h : 'localhost', + _ : [ 'script.js' ] + } + ); + t.end(); +}); + +test('short and long', function (t) { + t.deepEqual( + parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), + { + f : true, p : 555, h : 'localhost', + _ : [ 'script.js' ] + } + ); + t.end(); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/whitespace.js b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/whitespace.js new file mode 100644 index 0000000..8a52a58 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/minimist/test/whitespace.js @@ -0,0 +1,8 @@ +var parse = require('../'); +var test = require('tape'); + +test('whitespace should be whitespace' , function (t) { + t.plan(1); + var x = parse([ '-x', '\t' ]).x; + t.equal(x, '\t'); +}); diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/.npmignore b/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/.npmignore deleted file mode 100644 index 3c3629e..0000000 --- a/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/LICENSE b/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/LICENSE new file mode 100644 index 0000000..ee27ba4 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/LICENSE @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/package.json b/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/package.json index bd5d874..55055b4 100644 --- a/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/package.json +++ b/node_modules/handlebars/node_modules/optimist/node_modules/wordwrap/package.json @@ -1,7 +1,7 @@ { "name": "wordwrap", "description": "Wrap those words. Show them at what columns to start and stop.", - "version": "0.0.2", + "version": "0.0.3", "repository": { "type": "git", "url": "git://github.com/substack/node-wordwrap.git" @@ -28,21 +28,29 @@ "engines": { "node": ">=0.4.0" }, - "license": "MIT/X11", + "license": "MIT", "author": { "name": "James Halliday", "email": "mail@substack.net", "url": "http://substack.net" }, - "_id": "wordwrap@0.0.2", - "dependencies": {}, - "_engineSupported": true, - "_npmVersion": "1.0.10", - "_nodeVersion": "v0.5.0-pre", - "_defaultsLoaded": true, + "gitHead": "e59aa1bd338914019456bdfba034508c9c4cb29d", + "bugs": { + "url": "https://github.com/substack/node-wordwrap/issues" + }, + "homepage": "https://github.com/substack/node-wordwrap#readme", + "_id": "wordwrap@0.0.3", + "_shasum": "a3d5da6cd5c0bc0008d37234bbaf1bed63059107", + "_from": "wordwrap@~0.0.2", + "_npmVersion": "2.9.0", + "_nodeVersion": "2.0.0", + "_npmUser": { + "name": "substack", + "email": "substack@gmail.com" + }, "dist": { - "shasum": "b79669bb42ecb409f83d583cad52ca17eaa1643f", - "tarball": "http://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + "shasum": "a3d5da6cd5c0bc0008d37234bbaf1bed63059107", + "tarball": "http://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "maintainers": [ { @@ -50,11 +58,6 @@ "email": "mail@substack.net" } ], - "_shasum": "b79669bb42ecb409f83d583cad52ca17eaa1643f", - "_from": "wordwrap@~0.0.2", - "_resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "bugs": { - "url": "https://github.com/substack/node-wordwrap/issues" - }, + "_resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "readme": "ERROR: No README data found!" } diff --git a/node_modules/handlebars/node_modules/optimist/package.json b/node_modules/handlebars/node_modules/optimist/package.json index b9e67f233..484e963 100644 --- a/node_modules/handlebars/node_modules/optimist/package.json +++ b/node_modules/handlebars/node_modules/optimist/package.json @@ -1,10 +1,11 @@ { "name": "optimist", - "version": "0.3.7", + "version": "0.6.1", "description": "Light-weight option parsing with an argv hash. No optstrings attached.", "main": "./index.js", "dependencies": { - "wordwrap": "~0.0.2" + "wordwrap": "~0.0.2", + "minimist": "~0.0.1" }, "devDependencies": { "hashish": "~0.0.4", @@ -35,13 +36,17 @@ "engine": { "node": ">=0.4" }, - "_id": "optimist@0.3.7", - "dist": { - "shasum": "c90941ad59e4273328923074d2cf2e7cbc6ec0d9", - "tarball": "http://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz" + "bugs": { + "url": "https://github.com/substack/node-optimist/issues" }, - "_from": "optimist@~0.3", - "_npmVersion": "1.2.2", + "homepage": "https://github.com/substack/node-optimist", + "_id": "optimist@0.6.1", + "dist": { + "shasum": "da3ea74686fa21a19a111c326e90eb15a0196686", + "tarball": "http://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz" + }, + "_from": "optimist@^0.6.1", + "_npmVersion": "1.3.21", "_npmUser": { "name": "substack", "email": "mail@substack.net" @@ -53,10 +58,7 @@ } ], "directories": {}, - "_shasum": "c90941ad59e4273328923074d2cf2e7cbc6ec0d9", - "_resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", - "bugs": { - "url": "https://github.com/substack/node-optimist/issues" - }, + "_shasum": "da3ea74686fa21a19a111c326e90eb15a0196686", + "_resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "readme": "ERROR: No README data found!" } diff --git a/node_modules/handlebars/node_modules/optimist/readme.markdown b/node_modules/handlebars/node_modules/optimist/readme.markdown index ad9d3fd..b74b437 100644 --- a/node_modules/handlebars/node_modules/optimist/readme.markdown +++ b/node_modules/handlebars/node_modules/optimist/readme.markdown @@ -1,3 +1,16 @@ +# DEPRECATION NOTICE + +I don't want to maintain this module anymore since I just use +[minimist](https://npmjs.org/package/minimist), the argument parsing engine, +directly instead nowadays. + +See [yargs](https://github.com/chevex/yargs) for the modern, pirate-themed +successor to optimist. + +[![yarrrrrrrgs!](http://i.imgur.com/4WFGVJ9.png)](https://github.com/chevex/yargs) + +You should also consider [nomnom](https://github.com/harthur/nomnom). + optimist ======== @@ -465,6 +478,19 @@ This lets you organize arguments into nested objects. '$0': 'node ./examples/reflect.js', foo: { bar: { baz: 33 }, quux: 5 } } +short numbers +------------- + +Short numeric `head -n5` style argument work too: + + $ node reflect.js -n123 -m456 + { '3': true, + '6': true, + _: [], + '$0': 'node ./reflect.js', + n: 123, + m: 456 } + installation ============ diff --git a/node_modules/handlebars/node_modules/optimist/test/dash.js b/node_modules/handlebars/node_modules/optimist/test/dash.js new file mode 100644 index 0000000..af8ed6f --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/test/dash.js @@ -0,0 +1,31 @@ +var optimist = require('../index'); +var test = require('tap').test; + +test('-', function (t) { + t.plan(5); + t.deepEqual( + fix(optimist.parse([ '-n', '-' ])), + { n: '-', _: [] } + ); + t.deepEqual( + fix(optimist.parse([ '-' ])), + { _: [ '-' ] } + ); + t.deepEqual( + fix(optimist.parse([ '-f-' ])), + { f: '-', _: [] } + ); + t.deepEqual( + fix(optimist([ '-b', '-' ]).boolean('b').argv), + { b: true, _: [ '-' ] } + ); + t.deepEqual( + fix(optimist([ '-s', '-' ]).string('s').argv), + { s: '-', _: [] } + ); +}); + +function fix (obj) { + delete obj.$0; + return obj; +} diff --git a/node_modules/handlebars/node_modules/optimist/test/parse_modified.js b/node_modules/handlebars/node_modules/optimist/test/parse_modified.js new file mode 100644 index 0000000..a57dc84 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/test/parse_modified.js @@ -0,0 +1,14 @@ +var optimist = require('../'); +var test = require('tap').test; + +test('parse with modifier functions' , function (t) { + t.plan(1); + + var argv = optimist().boolean('b').parse([ '-b', '123' ]); + t.deepEqual(fix(argv), { b: true, _: ['123'] }); +}); + +function fix (obj) { + delete obj.$0; + return obj; +} diff --git a/node_modules/handlebars/node_modules/optimist/test/short.js b/node_modules/handlebars/node_modules/optimist/test/short.js new file mode 100644 index 0000000..b2c38ad --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/test/short.js @@ -0,0 +1,16 @@ +var optimist = require('../index'); +var test = require('tap').test; + +test('-n123', function (t) { + t.plan(1); + var parse = optimist.parse([ '-n123' ]); + t.equal(parse.n, 123); +}); + +test('-123', function (t) { + t.plan(3); + var parse = optimist.parse([ '-123', '456' ]); + t.equal(parse['1'], true); + t.equal(parse['2'], true); + t.equal(parse['3'], 456); +}); diff --git a/node_modules/handlebars/node_modules/optimist/test/whitespace.js b/node_modules/handlebars/node_modules/optimist/test/whitespace.js new file mode 100644 index 0000000..90b9075 --- /dev/null +++ b/node_modules/handlebars/node_modules/optimist/test/whitespace.js @@ -0,0 +1,8 @@ +var optimist = require('../'); +var test = require('tap').test; + +test('whitespace should be whitespace' , function (t) { + t.plan(1); + var x = optimist.parse([ '-x', '\t' ]).x; + t.equal(x, '\t'); +}); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/.npmignore b/node_modules/handlebars/node_modules/source-map/.npmignore similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/.npmignore rename to node_modules/handlebars/node_modules/source-map/.npmignore diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/.travis.yml b/node_modules/handlebars/node_modules/source-map/.travis.yml similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/.travis.yml rename to node_modules/handlebars/node_modules/source-map/.travis.yml diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md b/node_modules/handlebars/node_modules/source-map/CHANGELOG.md similarity index 84% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md rename to node_modules/handlebars/node_modules/source-map/CHANGELOG.md index 518bed4..2e7ca5d 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md +++ b/node_modules/handlebars/node_modules/source-map/CHANGELOG.md @@ -1,5 +1,26 @@ # Change Log +## 0.1.43 + +* Performance improvements for `SourceMapGenerator` and `SourceNode`. See issue + #148 for some discussion and issues #150, #151, and #152 for implementations. + +## 0.1.42 + +* Fix an issue where `SourceNode`s from different versions of the source-map + library couldn't be used in conjunction with each other. See issue #142. + +## 0.1.41 + +* Fix a bug with getting the source content of relative sources with a "./" + prefix. See issue #145 and [Bug 1090768](bugzil.la/1090768). + +* Add the `SourceMapConsumer.prototype.computeColumnSpans` method to compute the + column span of each mapping. + +* Add the `SourceMapConsumer.prototype.allGeneratedPositionsFor` method to find + all generated positions associated with a given original source and line. + ## 0.1.40 * Performance improvements for parsing source maps in SourceMapConsumer. diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/LICENSE b/node_modules/handlebars/node_modules/source-map/LICENSE similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/LICENSE rename to node_modules/handlebars/node_modules/source-map/LICENSE diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/Makefile.dryice.js b/node_modules/handlebars/node_modules/source-map/Makefile.dryice.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/Makefile.dryice.js rename to node_modules/handlebars/node_modules/source-map/Makefile.dryice.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/README.md b/node_modules/handlebars/node_modules/source-map/README.md similarity index 93% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/README.md rename to node_modules/handlebars/node_modules/source-map/README.md index 1a1c7d8..59767aa 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/README.md +++ b/node_modules/handlebars/node_modules/source-map/README.md @@ -175,6 +175,11 @@ following attributes: * `file`: Optional. The generated filename this source map is associated with. +#### SourceMapConsumer.prototype.computeColumnSpans() + +Compute the last column for each generated mapping. The last column is +inclusive. + #### SourceMapConsumer.prototype.originalPositionFor(generatedPosition) Returns the original source, line, and column information for the generated @@ -216,6 +221,22 @@ and an object is returned with the following properties: * `column`: The column number in the generated source, or null. +#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition) + +Returns all generated line and column information for the original source +and line provided. The only argument is an object with the following +properties: + +* `source`: The filename of the original source. + +* `line`: The line number in the original source. + +and an array of objects is returned, each with the following properties: + +* `line`: The line number in the generated source, or null. + +* `column`: The column number in the generated source, or null. + #### SourceMapConsumer.prototype.sourceContentFor(source) Returns the original source content for the source provided. The only @@ -253,6 +274,11 @@ You may pass an object with the following properties: * `sourceRoot`: A root for all relative URLs in this source map. +* `skipValidation`: Optional. When `true`, disables validation of mappings as + they are added. This can improve performance but should be used with + discretion, as a last resort. Even then, one should avoid using this flag when + running tests, if possible. + #### SourceMapGenerator.fromSourceMap(sourceMapConsumer) Creates a new SourceMapGenerator based on a SourceMapConsumer diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/assert-shim.js b/node_modules/handlebars/node_modules/source-map/build/assert-shim.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/assert-shim.js rename to node_modules/handlebars/node_modules/source-map/build/assert-shim.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/mini-require.js b/node_modules/handlebars/node_modules/source-map/build/mini-require.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/mini-require.js rename to node_modules/handlebars/node_modules/source-map/build/mini-require.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm b/node_modules/handlebars/node_modules/source-map/build/prefix-source-map.jsm similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm rename to node_modules/handlebars/node_modules/source-map/build/prefix-source-map.jsm diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm b/node_modules/handlebars/node_modules/source-map/build/prefix-utils.jsm similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm rename to node_modules/handlebars/node_modules/source-map/build/prefix-utils.jsm diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js b/node_modules/handlebars/node_modules/source-map/build/suffix-browser.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js rename to node_modules/handlebars/node_modules/source-map/build/suffix-browser.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm b/node_modules/handlebars/node_modules/source-map/build/suffix-source-map.jsm similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm rename to node_modules/handlebars/node_modules/source-map/build/suffix-source-map.jsm diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm b/node_modules/handlebars/node_modules/source-map/build/suffix-utils.jsm similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm rename to node_modules/handlebars/node_modules/source-map/build/suffix-utils.jsm diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js b/node_modules/handlebars/node_modules/source-map/build/test-prefix.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js rename to node_modules/handlebars/node_modules/source-map/build/test-prefix.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js b/node_modules/handlebars/node_modules/source-map/build/test-suffix.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js rename to node_modules/handlebars/node_modules/source-map/build/test-suffix.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map.js b/node_modules/handlebars/node_modules/source-map/lib/source-map.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map.js rename to node_modules/handlebars/node_modules/source-map/lib/source-map.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/array-set.js b/node_modules/handlebars/node_modules/source-map/lib/source-map/array-set.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/array-set.js rename to node_modules/handlebars/node_modules/source-map/lib/source-map/array-set.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js b/node_modules/handlebars/node_modules/source-map/lib/source-map/base64-vlq.js similarity index 97% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js rename to node_modules/handlebars/node_modules/source-map/lib/source-map/base64-vlq.js index b4ff136..e22dcae 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js +++ b/node_modules/handlebars/node_modules/source-map/lib/source-map/base64-vlq.js @@ -66,7 +66,7 @@ define(function (require, exports, module) { /** * Converts from a two-complement value to a value where the sign bit is - * is placed in the least significant bit. For example, as decimals: + * placed in the least significant bit. For example, as decimals: * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) */ @@ -78,7 +78,7 @@ define(function (require, exports, module) { /** * Converts to a two-complement value from a value where the sign bit is - * is placed in the least significant bit. For example, as decimals: + * placed in the least significant bit. For example, as decimals: * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 */ diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64.js b/node_modules/handlebars/node_modules/source-map/lib/source-map/base64.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64.js rename to node_modules/handlebars/node_modules/source-map/lib/source-map/base64.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js b/node_modules/handlebars/node_modules/source-map/lib/source-map/binary-search.js similarity index 80% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js rename to node_modules/handlebars/node_modules/source-map/lib/source-map/binary-search.js index ff347c6..e085f81 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js +++ b/node_modules/handlebars/node_modules/source-map/lib/source-map/binary-search.js @@ -23,17 +23,17 @@ define(function (require, exports, module) { // // 1. We find the exact element we are looking for. // - // 2. We did not find the exact element, but we can return the next - // closest element that is less than that element. + // 2. We did not find the exact element, but we can return the index of + // the next closest element that is less than that element. // // 3. We did not find the exact element, and there is no next-closest // element which is less than the one we are searching for, so we - // return null. + // return -1. var mid = Math.floor((aHigh - aLow) / 2) + aLow; var cmp = aCompare(aNeedle, aHaystack[mid], true); if (cmp === 0) { // Found the element we are looking for. - return aHaystack[mid]; + return mid; } else if (cmp > 0) { // aHaystack[mid] is greater than our needle. @@ -43,7 +43,7 @@ define(function (require, exports, module) { } // We did not find an exact match, return the next closest one // (termination case 2). - return aHaystack[mid]; + return mid; } else { // aHaystack[mid] is less than our needle. @@ -53,18 +53,16 @@ define(function (require, exports, module) { } // The exact needle element was not found in this haystack. Determine if // we are in termination case (2) or (3) and return the appropriate thing. - return aLow < 0 - ? null - : aHaystack[aLow]; + return aLow < 0 ? -1 : aLow; } } /** * This is an implementation of binary search which will always try and return - * the next lowest value checked if there is no exact hit. This is because - * mappings between original and generated line/col pairs are single points, - * and there is an implicit region between each of them, so a miss just means - * that you aren't on the very start of a region. + * the index of next lowest value checked if there is no exact hit. This is + * because mappings between original and generated line/col pairs are single + * points, and there is an implicit region between each of them, so a miss + * just means that you aren't on the very start of a region. * * @param aNeedle The element you are looking for. * @param aHaystack The array that is being searched. @@ -73,9 +71,10 @@ define(function (require, exports, module) { * than, equal to, or greater than the element, respectively. */ exports.search = function search(aNeedle, aHaystack, aCompare) { - return aHaystack.length > 0 - ? recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, aCompare) - : null; + if (aHaystack.length === 0) { + return -1; + } + return recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, aCompare) }; }); diff --git a/node_modules/handlebars/node_modules/source-map/lib/source-map/mapping-list.js b/node_modules/handlebars/node_modules/source-map/lib/source-map/mapping-list.js new file mode 100644 index 0000000..2a4eb61 --- /dev/null +++ b/node_modules/handlebars/node_modules/source-map/lib/source-map/mapping-list.js @@ -0,0 +1,86 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ +if (typeof define !== 'function') { + var define = require('amdefine')(module, require); +} +define(function (require, exports, module) { + + var util = require('./util'); + + /** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ + function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositions(mappingA, mappingB) <= 0; + } + + /** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ + function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; + } + + /** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ + MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + + /** + * Add the given source mapping. + * + * @param Object aMapping + */ + MappingList.prototype.add = function MappingList_add(aMapping) { + var mapping; + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } + }; + + /** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ + MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositions); + this._sorted = true; + } + return this._array; + }; + + exports.MappingList = MappingList; + +}); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js b/node_modules/handlebars/node_modules/source-map/lib/source-map/source-map-consumer.js similarity index 77% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js rename to node_modules/handlebars/node_modules/source-map/lib/source-map/source-map-consumer.js index ea643bf..cfaa299 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js +++ b/node_modules/handlebars/node_modules/source-map/lib/source-map/source-map-consumer.js @@ -66,6 +66,11 @@ define(function (require, exports, module) { throw new Error('Unsupported version: ' + version); } + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + sources = sources.map(util.normalize); + // Pass `true` below to allow duplicate names and sources. While source maps // are intended to be compressed and deduplicated, the TypeScript compiler // sometimes generates source maps with duplicates in them. See Github issue @@ -97,9 +102,8 @@ define(function (require, exports, module) { smc.sourceRoot); smc.file = aSourceMap._file; - smc.__generatedMappings = aSourceMap._mappings.slice() - .sort(util.compareByGeneratedPositions); - smc.__originalMappings = aSourceMap._mappings.slice() + smc.__generatedMappings = aSourceMap._mappings.toArray().slice(); + smc.__originalMappings = aSourceMap._mappings.toArray().slice() .sort(util.compareByOriginalPositions); return smc; @@ -290,6 +294,33 @@ define(function (require, exports, module) { return binarySearch.search(aNeedle, aMappings, aComparator); }; + /** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ + SourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + /** * Returns the original source, line, and column information for the generated * source's line and column positions provided. The only argument is an object @@ -312,23 +343,27 @@ define(function (require, exports, module) { generatedColumn: util.getArg(aArgs, 'column') }; - var mapping = this._findMapping(needle, - this._generatedMappings, - "generatedLine", - "generatedColumn", - util.compareByGeneratedPositions); + var index = this._findMapping(needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositions); - if (mapping && mapping.generatedLine === needle.generatedLine) { - var source = util.getArg(mapping, 'source', null); - if (source != null && this.sourceRoot != null) { - source = util.join(this.sourceRoot, source); + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source != null && this.sourceRoot != null) { + source = util.join(this.sourceRoot, source); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: util.getArg(mapping, 'name', null) + }; } - return { - source: source, - line: util.getArg(mapping, 'originalLine', null), - column: util.getArg(mapping, 'originalColumn', null), - name: util.getArg(mapping, 'name', null) - }; } return { @@ -406,25 +441,82 @@ define(function (require, exports, module) { needle.source = util.relative(this.sourceRoot, needle.source); } - var mapping = this._findMapping(needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions); + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions); + + if (index >= 0) { + var mapping = this._originalMappings[index]; - if (mapping) { return { line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null) + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) }; } return { line: null, - column: null + column: null, + lastColumn: null }; }; + /** + * Returns all generated line and column information for the original source + * and line provided. The only argument is an object with the following + * properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. + * - column: The column number in the generated source, or null. + */ + SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + // When there is no exact match, SourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to Infinity, we thus find the last + // mapping for the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: util.getArg(aArgs, 'line'), + originalColumn: Infinity + }; + + if (this.sourceRoot != null) { + needle.source = util.relative(this.sourceRoot, needle.source); + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + while (mapping && mapping.originalLine === needle.originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[--index]; + } + } + + return mappings.reverse(); + }; + SourceMapConsumer.GENERATED_ORDER = 1; SourceMapConsumer.ORIGINAL_ORDER = 2; diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js b/node_modules/handlebars/node_modules/source-map/lib/source-map/source-map-generator.js similarity index 94% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js rename to node_modules/handlebars/node_modules/source-map/lib/source-map/source-map-generator.js index 5387fa1..1ab7a47 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js +++ b/node_modules/handlebars/node_modules/source-map/lib/source-map/source-map-generator.js @@ -12,6 +12,7 @@ define(function (require, exports, module) { var base64VLQ = require('./base64-vlq'); var util = require('./util'); var ArraySet = require('./array-set').ArraySet; + var MappingList = require('./mapping-list').MappingList; /** * An instance of the SourceMapGenerator represents a source map which is @@ -27,9 +28,10 @@ define(function (require, exports, module) { } this._file = util.getArg(aArgs, 'file', null); this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); this._sources = new ArraySet(); this._names = new ArraySet(); - this._mappings = []; + this._mappings = new MappingList(); this._sourcesContents = null; } @@ -99,7 +101,9 @@ define(function (require, exports, module) { var source = util.getArg(aArgs, 'source', null); var name = util.getArg(aArgs, 'name', null); - this._validateMapping(generated, original, source, name); + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } if (source != null && !this._sources.has(source)) { this._sources.add(source); @@ -109,7 +113,7 @@ define(function (require, exports, module) { this._names.add(name); } - this._mappings.push({ + this._mappings.add({ generatedLine: generated.line, generatedColumn: generated.column, originalLine: original != null && original.line, @@ -186,7 +190,7 @@ define(function (require, exports, module) { var newNames = new ArraySet(); // Find mappings for the "sourceFile" - this._mappings.forEach(function (mapping) { + this._mappings.unsortedForEach(function (mapping) { if (mapping.source === sourceFile && mapping.originalLine != null) { // Check if it can be mapped by the source map, then update the mapping. var original = aSourceMapConsumer.originalPositionFor({ @@ -292,15 +296,10 @@ define(function (require, exports, module) { var result = ''; var mapping; - // The mappings must be guaranteed to be in sorted order before we start - // serializing them or else the generated line numbers (which are defined - // via the ';' separators) will be all messed up. Note: it might be more - // performant to maintain the sorting as we insert them, rather than as we - // serialize them, but the big O is the same either way. - this._mappings.sort(util.compareByGeneratedPositions); + var mappings = this._mappings.toArray(); - for (var i = 0, len = this._mappings.length; i < len; i++) { - mapping = this._mappings[i]; + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; if (mapping.generatedLine !== previousGeneratedLine) { previousGeneratedColumn = 0; @@ -311,7 +310,7 @@ define(function (require, exports, module) { } else { if (i > 0) { - if (!util.compareByGeneratedPositions(mapping, this._mappings[i - 1])) { + if (!util.compareByGeneratedPositions(mapping, mappings[i - 1])) { continue; } result += ','; diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js b/node_modules/handlebars/node_modules/source-map/lib/source-map/source-node.js similarity index 94% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js rename to node_modules/handlebars/node_modules/source-map/lib/source-map/source-node.js index baa5f40..9ee90bd 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js +++ b/node_modules/handlebars/node_modules/source-map/lib/source-map/source-node.js @@ -16,8 +16,13 @@ define(function (require, exports, module) { // operating systems these days (capturing the result). var REGEX_NEWLINE = /(\r?\n)/; - // Matches a Windows-style newline, or any character. - var REGEX_CHARACTER = /\r\n|[\s\S]/g; + // Newline character code for charCodeAt() comparisons + var NEWLINE_CODE = 10; + + // Private symbol for identifying `SourceNode`s when multiple versions of + // the source-map library are loaded. This MUST NOT CHANGE across + // versions! + var isSourceNode = "$$$isSourceNode$$$"; /** * SourceNodes provide a way to abstract over interpolating/concatenating @@ -38,6 +43,7 @@ define(function (require, exports, module) { this.column = aColumn == null ? null : aColumn; this.source = aSource == null ? null : aSource; this.name = aName == null ? null : aName; + this[isSourceNode] = true; if (aChunks != null) this.add(aChunks); } @@ -168,7 +174,7 @@ define(function (require, exports, module) { this.add(chunk); }, this); } - else if (aChunk instanceof SourceNode || typeof aChunk === "string") { + else if (aChunk[isSourceNode] || typeof aChunk === "string") { if (aChunk) { this.children.push(aChunk); } @@ -193,7 +199,7 @@ define(function (require, exports, module) { this.prepend(aChunk[i]); } } - else if (aChunk instanceof SourceNode || typeof aChunk === "string") { + else if (aChunk[isSourceNode] || typeof aChunk === "string") { this.children.unshift(aChunk); } else { @@ -215,7 +221,7 @@ define(function (require, exports, module) { var chunk; for (var i = 0, len = this.children.length; i < len; i++) { chunk = this.children[i]; - if (chunk instanceof SourceNode) { + if (chunk[isSourceNode]) { chunk.walk(aFn); } else { @@ -260,7 +266,7 @@ define(function (require, exports, module) { */ SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { var lastChild = this.children[this.children.length - 1]; - if (lastChild instanceof SourceNode) { + if (lastChild[isSourceNode]) { lastChild.replaceRight(aPattern, aReplacement); } else if (typeof lastChild === 'string') { @@ -293,7 +299,7 @@ define(function (require, exports, module) { SourceNode.prototype.walkSourceContents = function SourceNode_walkSourceContents(aFn) { for (var i = 0, len = this.children.length; i < len; i++) { - if (this.children[i] instanceof SourceNode) { + if (this.children[i][isSourceNode]) { this.children[i].walkSourceContents(aFn); } } @@ -369,12 +375,12 @@ define(function (require, exports, module) { lastOriginalSource = null; sourceMappingActive = false; } - chunk.match(REGEX_CHARACTER).forEach(function (ch, idx, array) { - if (REGEX_NEWLINE.test(ch)) { + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { generated.line++; generated.column = 0; // Mappings end at eol - if (idx + 1 === array.length) { + if (idx + 1 === length) { lastOriginalSource = null; sourceMappingActive = false; } else if (sourceMappingActive) { @@ -392,9 +398,9 @@ define(function (require, exports, module) { }); } } else { - generated.column += ch.length; + generated.column++; } - }); + } }); this.walkSourceContents(function (sourceFile, sourceContent) { map.setSourceContent(sourceFile, sourceContent); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/util.js b/node_modules/handlebars/node_modules/source-map/lib/source-map/util.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/util.js rename to node_modules/handlebars/node_modules/source-map/lib/source-map/util.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE b/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/LICENSE similarity index 96% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE rename to node_modules/handlebars/node_modules/source-map/node_modules/amdefine/LICENSE index f33d665..af46c6d 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE +++ b/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/LICENSE @@ -6,7 +6,7 @@ provided below. The "New" BSD License: ---------------------- -Copyright (c) 2011, The Dojo Foundation +Copyright (c) 2011-2015, The Dojo Foundation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -37,7 +37,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. MIT License ----------- -Copyright (c) 2011, The Dojo Foundation +Copyright (c) 2011-2015, The Dojo Foundation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md b/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/README.md similarity index 99% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md rename to node_modules/handlebars/node_modules/source-map/node_modules/amdefine/README.md index c6995c0..037a6e8 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md +++ b/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/README.md @@ -59,7 +59,7 @@ intercept module affects all .js files loaded in the Node app, and it is inconsiderate to modify global state like that unless you are also controlling the top level app. -#### Why distribute AMD-style nodes via npm? +#### Why distribute AMD-style modules via npm? npm has a lot of weaknesses for front-end use (installed layout is not great, should have better support for the `baseUrl + moduleID + '.js' style of loading, diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js b/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/amdefine.js similarity index 97% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js rename to node_modules/handlebars/node_modules/source-map/node_modules/amdefine/amdefine.js index 53bf5a6..0c4a954 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js +++ b/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/amdefine.js @@ -1,5 +1,5 @@ /** vim: et:ts=4:sw=4:sts=4 - * @license amdefine 0.1.0 Copyright (c) 2011, The Dojo Foundation All Rights Reserved. + * @license amdefine 1.0.0 Copyright (c) 2011-2015, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/amdefine for details */ @@ -120,9 +120,11 @@ function amdefine(module, requireFn) { }); //Wait for next tick to call back the require call. - process.nextTick(function () { - callback.apply(null, deps); - }); + if (callback) { + process.nextTick(function () { + callback.apply(null, deps); + }); + } } } diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/intercept.js b/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/intercept.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/intercept.js rename to node_modules/handlebars/node_modules/source-map/node_modules/amdefine/intercept.js diff --git a/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/package.json b/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/package.json new file mode 100644 index 0000000..897ee44 --- /dev/null +++ b/node_modules/handlebars/node_modules/source-map/node_modules/amdefine/package.json @@ -0,0 +1,47 @@ +{ + "name": "amdefine", + "description": "Provide AMD's define() API for declaring modules in the AMD format", + "version": "1.0.0", + "homepage": "http://github.com/jrburke/amdefine", + "author": { + "name": "James Burke", + "email": "jrburke@gmail.com", + "url": "http://github.com/jrburke" + }, + "license": "BSD-3-Clause AND MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/jrburke/amdefine.git" + }, + "main": "./amdefine.js", + "engines": { + "node": ">=0.4.2" + }, + "gitHead": "578bc4a3f7dede33f3f3e10edde0c1607005d761", + "bugs": { + "url": "https://github.com/jrburke/amdefine/issues" + }, + "_id": "amdefine@1.0.0", + "scripts": {}, + "_shasum": "fd17474700cb5cc9c2b709f0be9d23ce3c198c33", + "_from": "amdefine@>=0.0.4", + "_npmVersion": "2.12.1", + "_nodeVersion": "0.10.36", + "_npmUser": { + "name": "jrburke", + "email": "jrburke@gmail.com" + }, + "maintainers": [ + { + "name": "jrburke", + "email": "jrburke@gmail.com" + } + ], + "dist": { + "shasum": "fd17474700cb5cc9c2b709f0be9d23ce3c198c33", + "tarball": "http://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + }, + "directories": {}, + "_resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", + "readme": "ERROR: No README data found!" +} diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/package.json b/node_modules/handlebars/node_modules/source-map/package.json similarity index 85% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/package.json rename to node_modules/handlebars/node_modules/source-map/package.json index 070587a..8d5b384 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/package.json +++ b/node_modules/handlebars/node_modules/source-map/package.json @@ -1,7 +1,7 @@ { "name": "source-map", "description": "Generates and consumes source maps", - "version": "0.1.40", + "version": "0.1.43", "homepage": "https://github.com/mozilla/source-map", "author": { "name": "Nick Fitzgerald", @@ -107,6 +107,22 @@ { "name": "Chris Montgomery", "email": "christopher.montgomery@dowjones.com" + }, + { + "name": "J. Ryan Stinnett", + "email": "jryans@gmail.com" + }, + { + "name": "Jack Herrington", + "email": "jherrington@walmartlabs.com" + }, + { + "name": "Chris Truter", + "email": "jeffpalentine@gmail.com" + }, + { + "name": "Daniel Espeset", + "email": "daniel@danielespeset.com" } ], "repository": { @@ -139,9 +155,9 @@ "bugs": { "url": "https://github.com/mozilla/source-map/issues" }, - "_id": "source-map@0.1.40", - "_shasum": "7e0ee49ec0452aa9ac2b93ad5ae54ef33e82b37f", - "_from": "source-map@~0.1.7", + "_id": "source-map@0.1.43", + "_shasum": "c24bc146ca517c1471f5dacbe2571b2b7f9e3346", + "_from": "source-map@^0.1.40", "_npmVersion": "1.4.9", "_npmUser": { "name": "nickfitzgerald", @@ -162,9 +178,9 @@ } ], "dist": { - "shasum": "7e0ee49ec0452aa9ac2b93ad5ae54ef33e82b37f", - "tarball": "http://registry.npmjs.org/source-map/-/source-map-0.1.40.tgz" + "shasum": "c24bc146ca517c1471f5dacbe2571b2b7f9e3346", + "tarball": "http://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" }, - "_resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.40.tgz", + "_resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "readme": "ERROR: No README data found!" } diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/run-tests.js b/node_modules/handlebars/node_modules/source-map/test/run-tests.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/run-tests.js rename to node_modules/handlebars/node_modules/source-map/test/run-tests.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-api.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-api.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-array-set.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-array-set.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-array-set.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-array-set.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-base64-vlq.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-base64-vlq.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-base64.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-base64.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-binary-search.js similarity index 82% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-binary-search.js index ee30683..f1c9e0f 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js +++ b/node_modules/handlebars/node_modules/source-map/test/source-map/test-binary-search.js @@ -23,7 +23,7 @@ define(function (require, exports, module) { binarySearch.search(needle, haystack, numberCompare); }); - assert.equal(binarySearch.search(needle, haystack, numberCompare), 20); + assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 20); }; exports['test too low'] = function (assert, util) { @@ -34,21 +34,21 @@ define(function (require, exports, module) { binarySearch.search(needle, haystack, numberCompare); }); - assert.equal(binarySearch.search(needle, haystack, numberCompare), null); + assert.equal(binarySearch.search(needle, haystack, numberCompare), -1); }; exports['test exact search'] = function (assert, util) { var needle = 4; var haystack = [2,4,6,8,10,12,14,16,18,20]; - assert.equal(binarySearch.search(needle, haystack, numberCompare), 4); + assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 4); }; exports['test fuzzy search'] = function (assert, util) { var needle = 19; var haystack = [2,4,6,8,10,12,14,16,18,20]; - assert.equal(binarySearch.search(needle, haystack, numberCompare), 18); + assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 18); }; }); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-dog-fooding.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-dog-fooding.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-dog-fooding.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-dog-fooding.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-source-map-consumer.js similarity index 77% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-source-map-consumer.js index a4c6659..c714943 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js +++ b/node_modules/handlebars/node_modules/source-map/test/source-map/test-source-map-consumer.js @@ -252,6 +252,25 @@ define(function (require, exports, module) { }, Error); }; + exports['test that we can get the original source content with relative source paths'] = function (assert, util) { + var map = new SourceMapConsumer(util.testMapRelativeSources); + var sources = map.sources; + + assert.equal(map.sourceContentFor(sources[0]), ' ONE.foo = function (bar) {\n return baz(bar);\n };'); + assert.equal(map.sourceContentFor(sources[1]), ' TWO.inc = function (n) {\n return n + 1;\n };'); + assert.equal(map.sourceContentFor("one.js"), ' ONE.foo = function (bar) {\n return baz(bar);\n };'); + assert.equal(map.sourceContentFor("two.js"), ' TWO.inc = function (n) {\n return n + 1;\n };'); + assert.throws(function () { + map.sourceContentFor(""); + }, Error); + assert.throws(function () { + map.sourceContentFor("/the/root/three.js"); + }, Error); + assert.throws(function () { + map.sourceContentFor("three.js"); + }, Error); + }; + exports['test sourceRoot + generatedPositionFor'] = function (assert, util) { var map = new SourceMapGenerator({ sourceRoot: 'foo/bar', @@ -290,6 +309,158 @@ define(function (require, exports, module) { assert.equal(pos.column, 2); }; + exports['test allGeneratedPositionsFor'] = function (assert, util) { + var map = new SourceMapGenerator({ + file: 'generated.js' + }); + map.addMapping({ + original: { line: 1, column: 1 }, + generated: { line: 2, column: 2 }, + source: 'foo.coffee' + }); + map.addMapping({ + original: { line: 1, column: 1 }, + generated: { line: 2, column: 2 }, + source: 'bar.coffee' + }); + map.addMapping({ + original: { line: 2, column: 1 }, + generated: { line: 3, column: 2 }, + source: 'bar.coffee' + }); + map.addMapping({ + original: { line: 2, column: 2 }, + generated: { line: 3, column: 3 }, + source: 'bar.coffee' + }); + map.addMapping({ + original: { line: 3, column: 1 }, + generated: { line: 4, column: 2 }, + source: 'bar.coffee' + }); + map = new SourceMapConsumer(map.toString()); + + var mappings = map.allGeneratedPositionsFor({ + line: 2, + source: 'bar.coffee' + }); + + assert.equal(mappings.length, 2); + assert.equal(mappings[0].line, 3); + assert.equal(mappings[0].column, 2); + assert.equal(mappings[1].line, 3); + assert.equal(mappings[1].column, 3); + }; + + exports['test allGeneratedPositionsFor for line with no mappings'] = function (assert, util) { + var map = new SourceMapGenerator({ + file: 'generated.js' + }); + map.addMapping({ + original: { line: 1, column: 1 }, + generated: { line: 2, column: 2 }, + source: 'foo.coffee' + }); + map.addMapping({ + original: { line: 1, column: 1 }, + generated: { line: 2, column: 2 }, + source: 'bar.coffee' + }); + map.addMapping({ + original: { line: 3, column: 1 }, + generated: { line: 4, column: 2 }, + source: 'bar.coffee' + }); + map = new SourceMapConsumer(map.toString()); + + var mappings = map.allGeneratedPositionsFor({ + line: 2, + source: 'bar.coffee' + }); + + assert.equal(mappings.length, 0); + }; + + exports['test allGeneratedPositionsFor source map with no mappings'] = function (assert, util) { + var map = new SourceMapGenerator({ + file: 'generated.js' + }); + map = new SourceMapConsumer(map.toString()); + + var mappings = map.allGeneratedPositionsFor({ + line: 2, + source: 'bar.coffee' + }); + + assert.equal(mappings.length, 0); + }; + + exports['test computeColumnSpans'] = function (assert, util) { + var map = new SourceMapGenerator({ + file: 'generated.js' + }); + map.addMapping({ + original: { line: 1, column: 1 }, + generated: { line: 1, column: 1 }, + source: 'foo.coffee' + }); + map.addMapping({ + original: { line: 2, column: 1 }, + generated: { line: 2, column: 1 }, + source: 'foo.coffee' + }); + map.addMapping({ + original: { line: 2, column: 2 }, + generated: { line: 2, column: 10 }, + source: 'foo.coffee' + }); + map.addMapping({ + original: { line: 2, column: 3 }, + generated: { line: 2, column: 20 }, + source: 'foo.coffee' + }); + map.addMapping({ + original: { line: 3, column: 1 }, + generated: { line: 3, column: 1 }, + source: 'foo.coffee' + }); + map.addMapping({ + original: { line: 3, column: 2 }, + generated: { line: 3, column: 2 }, + source: 'foo.coffee' + }); + map = new SourceMapConsumer(map.toString()); + + map.computeColumnSpans(); + + var mappings = map.allGeneratedPositionsFor({ + line: 1, + source: 'foo.coffee' + }); + + assert.equal(mappings.length, 1); + assert.equal(mappings[0].lastColumn, Infinity); + + var mappings = map.allGeneratedPositionsFor({ + line: 2, + source: 'foo.coffee' + }); + + assert.equal(mappings.length, 3); + assert.equal(mappings[0].lastColumn, 9); + assert.equal(mappings[1].lastColumn, 19); + assert.equal(mappings[2].lastColumn, Infinity); + + var mappings = map.allGeneratedPositionsFor({ + line: 3, + source: 'foo.coffee' + }); + + assert.equal(mappings.length, 2); + assert.equal(mappings[0].lastColumn, 1); + assert.equal(mappings[1].lastColumn, Infinity); + }; + exports['test sourceRoot + originalPositionFor'] = function (assert, util) { var map = new SourceMapGenerator({ sourceRoot: 'foo/bar', diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-source-map-generator.js similarity index 97% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-source-map-generator.js index a0d9d00..d748bb1 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js +++ b/node_modules/handlebars/node_modules/source-map/test/source-map/test-source-map-generator.js @@ -98,6 +98,27 @@ define(function (require, exports, module) { }); }; + exports['test adding mappings with skipValidation'] = function (assert, util) { + var map = new SourceMapGenerator({ + file: 'generated-foo.js', + sourceRoot: '.', + skipValidation: true + }); + + // Not enough info, caught by `util.getArgs` + assert.throws(function () { + map.addMapping({}); + }); + + // Original file position, but no source. Not checked. + assert.doesNotThrow(function () { + map.addMapping({ + generated: { line: 1, column: 1 }, + original: { line: 1, column: 1 } + }); + }); + }; + exports['test that the correct mappings are being generated'] = function (assert, util) { var map = new SourceMapGenerator({ file: 'min.js', diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-node.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-source-node.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-node.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-source-node.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-util.js b/node_modules/handlebars/node_modules/source-map/test/source-map/test-util.js similarity index 100% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-util.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/test-util.js diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js b/node_modules/handlebars/node_modules/source-map/test/source-map/util.js similarity index 93% rename from node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js rename to node_modules/handlebars/node_modules/source-map/test/source-map/util.js index fa213ce..56bbe2c 100644 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js +++ b/node_modules/handlebars/node_modules/source-map/test/source-map/util.js @@ -71,6 +71,22 @@ define(function (require, exports, module) { sourceRoot: '/the/root', mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA' }; + exports.testMapRelativeSources = { + version: 3, + file: 'min.js', + names: ['bar', 'baz', 'n'], + sources: ['./one.js', './two.js'], + sourcesContent: [ + ' ONE.foo = function (bar) {\n' + + ' return baz(bar);\n' + + ' };', + ' TWO.inc = function (n) {\n' + + ' return n + 1;\n' + + ' };' + ], + sourceRoot: '/the/root', + mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA' + }; exports.emptyMap = { version: 3, file: 'min.js', diff --git a/node_modules/node-notifier/node_modules/clone/.travis.yml b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/.travis.yml similarity index 51% rename from node_modules/node-notifier/node_modules/clone/.travis.yml rename to node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/.travis.yml index 58f2371..cc4dba2 100644 --- a/node_modules/node-notifier/node_modules/clone/.travis.yml +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/.travis.yml @@ -1,5 +1,4 @@ language: node_js node_js: - - 0.6 - - 0.8 - - 0.10 + - "0.8" + - "0.10" diff --git a/node_modules/node-notifier/node_modules/shellwords/LICENSE b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/LICENSE similarity index 88% rename from node_modules/node-notifier/node_modules/shellwords/LICENSE rename to node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/LICENSE index 719e099..432d1ae 100644 --- a/node_modules/node-notifier/node_modules/shellwords/LICENSE +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/LICENSE @@ -1,4 +1,6 @@ -Copyright (C) 2011 by Jimmy Cuadra +Copyright 2010 James Halliday (mail@substack.net) + +This project is free software released under the MIT/X11 license: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -16,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file +THE SOFTWARE. diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/bool.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/bool.js new file mode 100644 index 0000000..a998fb7 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/bool.js @@ -0,0 +1,10 @@ +#!/usr/bin/env node +var util = require('util'); +var argv = require('optimist').argv; + +if (argv.s) { + util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: '); +} +console.log( + (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '') +); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js new file mode 100644 index 0000000..a35a7e6 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js @@ -0,0 +1,7 @@ +#!/usr/bin/env node +var argv = require('optimist') + .boolean(['x','y','z']) + .argv +; +console.dir([ argv.x, argv.y, argv.z ]); +console.dir(argv._); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js new file mode 100644 index 0000000..017bb68 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js @@ -0,0 +1,7 @@ +#!/usr/bin/env node +var argv = require('optimist') + .boolean('v') + .argv +; +console.dir(argv.v); +console.dir(argv._); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/default_hash.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/default_hash.js new file mode 100644 index 0000000..ade7768 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/default_hash.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +var argv = require('optimist') + .default({ x : 10, y : 10 }) + .argv +; + +console.log(argv.x + argv.y); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/default_singles.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/default_singles.js new file mode 100644 index 0000000..d9b1ff4 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/default_singles.js @@ -0,0 +1,7 @@ +#!/usr/bin/env node +var argv = require('optimist') + .default('x', 10) + .default('y', 10) + .argv +; +console.log(argv.x + argv.y); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/divide.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/divide.js new file mode 100644 index 0000000..5e2ee82 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/divide.js @@ -0,0 +1,8 @@ +#!/usr/bin/env node + +var argv = require('optimist') + .usage('Usage: $0 -x [num] -y [num]') + .demand(['x','y']) + .argv; + +console.log(argv.x / argv.y); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count.js new file mode 100644 index 0000000..b5f95bf --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count.js @@ -0,0 +1,20 @@ +#!/usr/bin/env node +var argv = require('optimist') + .usage('Count the lines in a file.\nUsage: $0') + .demand('f') + .alias('f', 'file') + .describe('f', 'Load a file') + .argv +; + +var fs = require('fs'); +var s = fs.createReadStream(argv.file); + +var lines = 0; +s.on('data', function (buf) { + lines += buf.toString().match(/\n/g).length; +}); + +s.on('end', function () { + console.log(lines); +}); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js new file mode 100644 index 0000000..d9ac709 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js @@ -0,0 +1,29 @@ +#!/usr/bin/env node +var argv = require('optimist') + .usage('Count the lines in a file.\nUsage: $0') + .options({ + file : { + demand : true, + alias : 'f', + description : 'Load a file' + }, + base : { + alias : 'b', + description : 'Numeric base to use for output', + default : 10, + }, + }) + .argv +; + +var fs = require('fs'); +var s = fs.createReadStream(argv.file); + +var lines = 0; +s.on('data', function (buf) { + lines += buf.toString().match(/\n/g).length; +}); + +s.on('end', function () { + console.log(lines.toString(argv.base)); +}); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js new file mode 100644 index 0000000..4267511 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js @@ -0,0 +1,29 @@ +#!/usr/bin/env node +var argv = require('optimist') + .usage('Count the lines in a file.\nUsage: $0') + .wrap(80) + .demand('f') + .alias('f', [ 'file', 'filename' ]) + .describe('f', + "Load a file. It's pretty important." + + " Required even. So you'd better specify it." + ) + .alias('b', 'base') + .describe('b', 'Numeric base to display the number of lines in') + .default('b', 10) + .describe('x', 'Super-secret optional parameter which is secret') + .default('x', '') + .argv +; + +var fs = require('fs'); +var s = fs.createReadStream(argv.file); + +var lines = 0; +s.on('data', function (buf) { + lines += buf.toString().match(/\n/g).length; +}); + +s.on('end', function () { + console.log(lines.toString(argv.base)); +}); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/nonopt.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/nonopt.js new file mode 100644 index 0000000..ee633ee --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/nonopt.js @@ -0,0 +1,4 @@ +#!/usr/bin/env node +var argv = require('optimist').argv; +console.log('(%d,%d)', argv.x, argv.y); +console.log(argv._); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/reflect.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/reflect.js new file mode 100644 index 0000000..816b3e1 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/reflect.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +console.dir(require('optimist').argv); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/short.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/short.js new file mode 100644 index 0000000..1db0ad0 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/short.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node +var argv = require('optimist').argv; +console.log('(%d,%d)', argv.x, argv.y); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/string.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/string.js new file mode 100644 index 0000000..a8e5aeb --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/string.js @@ -0,0 +1,11 @@ +#!/usr/bin/env node +var argv = require('optimist') + .string('x', 'y') + .argv +; +console.dir([ argv.x, argv.y ]); + +/* Turns off numeric coercion: + ./node string.js -x 000123 -y 9876 + [ '000123', '9876' ] +*/ diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/usage-options.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/usage-options.js new file mode 100644 index 0000000..b999977 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/usage-options.js @@ -0,0 +1,19 @@ +var optimist = require('./../index'); + +var argv = optimist.usage('This is my awesome program', { + 'about': { + description: 'Provide some details about the author of this program', + required: true, + short: 'a', + }, + 'info': { + description: 'Provide some information about the node.js agains!!!!!!', + boolean: true, + short: 'i' + } +}).argv; + +optimist.showHelp(); + +console.log('\n\nInspecting options'); +console.dir(argv); \ No newline at end of file diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/xup.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/xup.js new file mode 100644 index 0000000..8f6ecd2 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/example/xup.js @@ -0,0 +1,10 @@ +#!/usr/bin/env node +var argv = require('optimist').argv; + +if (argv.rif - 5 * argv.xup > 7.138) { + console.log('Buy more riffiwobbles'); +} +else { + console.log('Sell the xupptumblers'); +} + diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/index.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/index.js new file mode 100644 index 0000000..8ac67eb --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/index.js @@ -0,0 +1,478 @@ +var path = require('path'); +var wordwrap = require('wordwrap'); + +/* Hack an instance of Argv with process.argv into Argv + so people can do + require('optimist')(['--beeble=1','-z','zizzle']).argv + to parse a list of args and + require('optimist').argv + to get a parsed version of process.argv. +*/ + +var inst = Argv(process.argv.slice(2)); +Object.keys(inst).forEach(function (key) { + Argv[key] = typeof inst[key] == 'function' + ? inst[key].bind(inst) + : inst[key]; +}); + +var exports = module.exports = Argv; +function Argv (args, cwd) { + var self = {}; + if (!cwd) cwd = process.cwd(); + + self.$0 = process.argv + .slice(0,2) + .map(function (x) { + var b = rebase(cwd, x); + return x.match(/^\//) && b.length < x.length + ? b : x + }) + .join(' ') + ; + + if (process.env._ != undefined && process.argv[1] == process.env._) { + self.$0 = process.env._.replace( + path.dirname(process.execPath) + '/', '' + ); + } + + var flags = { bools : {}, strings : {} }; + + self.boolean = function (bools) { + if (!Array.isArray(bools)) { + bools = [].slice.call(arguments); + } + + bools.forEach(function (name) { + flags.bools[name] = true; + }); + + return self; + }; + + self.string = function (strings) { + if (!Array.isArray(strings)) { + strings = [].slice.call(arguments); + } + + strings.forEach(function (name) { + flags.strings[name] = true; + }); + + return self; + }; + + var aliases = {}; + self.alias = function (x, y) { + if (typeof x === 'object') { + Object.keys(x).forEach(function (key) { + self.alias(key, x[key]); + }); + } + else if (Array.isArray(y)) { + y.forEach(function (yy) { + self.alias(x, yy); + }); + } + else { + var zs = (aliases[x] || []).concat(aliases[y] || []).concat(x, y); + aliases[x] = zs.filter(function (z) { return z != x }); + aliases[y] = zs.filter(function (z) { return z != y }); + } + + return self; + }; + + var demanded = {}; + self.demand = function (keys) { + if (typeof keys == 'number') { + if (!demanded._) demanded._ = 0; + demanded._ += keys; + } + else if (Array.isArray(keys)) { + keys.forEach(function (key) { + self.demand(key); + }); + } + else { + demanded[keys] = true; + } + + return self; + }; + + var usage; + self.usage = function (msg, opts) { + if (!opts && typeof msg === 'object') { + opts = msg; + msg = null; + } + + usage = msg; + + if (opts) self.options(opts); + + return self; + }; + + function fail (msg) { + self.showHelp(); + if (msg) console.error(msg); + process.exit(1); + } + + var checks = []; + self.check = function (f) { + checks.push(f); + return self; + }; + + var defaults = {}; + self.default = function (key, value) { + if (typeof key === 'object') { + Object.keys(key).forEach(function (k) { + self.default(k, key[k]); + }); + } + else { + defaults[key] = value; + } + + return self; + }; + + var descriptions = {}; + self.describe = function (key, desc) { + if (typeof key === 'object') { + Object.keys(key).forEach(function (k) { + self.describe(k, key[k]); + }); + } + else { + descriptions[key] = desc; + } + return self; + }; + + self.parse = function (args) { + return Argv(args).argv; + }; + + self.option = self.options = function (key, opt) { + if (typeof key === 'object') { + Object.keys(key).forEach(function (k) { + self.options(k, key[k]); + }); + } + else { + if (opt.alias) self.alias(key, opt.alias); + if (opt.demand) self.demand(key); + if (typeof opt.default !== 'undefined') { + self.default(key, opt.default); + } + + if (opt.boolean || opt.type === 'boolean') { + self.boolean(key); + } + if (opt.string || opt.type === 'string') { + self.string(key); + } + + var desc = opt.describe || opt.description || opt.desc; + if (desc) { + self.describe(key, desc); + } + } + + return self; + }; + + var wrap = null; + self.wrap = function (cols) { + wrap = cols; + return self; + }; + + self.showHelp = function (fn) { + if (!fn) fn = console.error; + fn(self.help()); + }; + + self.help = function () { + var keys = Object.keys( + Object.keys(descriptions) + .concat(Object.keys(demanded)) + .concat(Object.keys(defaults)) + .reduce(function (acc, key) { + if (key !== '_') acc[key] = true; + return acc; + }, {}) + ); + + var help = keys.length ? [ 'Options:' ] : []; + + if (usage) { + help.unshift(usage.replace(/\$0/g, self.$0), ''); + } + + var switches = keys.reduce(function (acc, key) { + acc[key] = [ key ].concat(aliases[key] || []) + .map(function (sw) { + return (sw.length > 1 ? '--' : '-') + sw + }) + .join(', ') + ; + return acc; + }, {}); + + var switchlen = longest(Object.keys(switches).map(function (s) { + return switches[s] || ''; + })); + + var desclen = longest(Object.keys(descriptions).map(function (d) { + return descriptions[d] || ''; + })); + + keys.forEach(function (key) { + var kswitch = switches[key]; + var desc = descriptions[key] || ''; + + if (wrap) { + desc = wordwrap(switchlen + 4, wrap)(desc) + .slice(switchlen + 4) + ; + } + + var spadding = new Array( + Math.max(switchlen - kswitch.length + 3, 0) + ).join(' '); + + var dpadding = new Array( + Math.max(desclen - desc.length + 1, 0) + ).join(' '); + + var type = null; + + if (flags.bools[key]) type = '[boolean]'; + if (flags.strings[key]) type = '[string]'; + + if (!wrap && dpadding.length > 0) { + desc += dpadding; + } + + var prelude = ' ' + kswitch + spadding; + var extra = [ + type, + demanded[key] + ? '[required]' + : null + , + defaults[key] !== undefined + ? '[default: ' + JSON.stringify(defaults[key]) + ']' + : null + , + ].filter(Boolean).join(' '); + + var body = [ desc, extra ].filter(Boolean).join(' '); + + if (wrap) { + var dlines = desc.split('\n'); + var dlen = dlines.slice(-1)[0].length + + (dlines.length === 1 ? prelude.length : 0) + + body = desc + (dlen + extra.length > wrap - 2 + ? '\n' + + new Array(wrap - extra.length + 1).join(' ') + + extra + : new Array(wrap - extra.length - dlen + 1).join(' ') + + extra + ); + } + + help.push(prelude + body); + }); + + help.push(''); + return help.join('\n'); + }; + + Object.defineProperty(self, 'argv', { + get : parseArgs, + enumerable : true, + }); + + function parseArgs () { + var argv = { _ : [], $0 : self.$0 }; + Object.keys(flags.bools).forEach(function (key) { + setArg(key, defaults[key] || false); + }); + + function setArg (key, val) { + var num = Number(val); + var value = typeof val !== 'string' || isNaN(num) ? val : num; + if (flags.strings[key]) value = val; + + setKey(argv, key.split('.'), value); + + (aliases[key] || []).forEach(function (x) { + argv[x] = argv[key]; + }); + } + + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + + if (arg === '--') { + argv._.push.apply(argv._, args.slice(i + 1)); + break; + } + else if (arg.match(/^--.+=/)) { + // Using [\s\S] instead of . because js doesn't support the + // 'dotall' regex modifier. See: + // http://stackoverflow.com/a/1068308/13216 + var m = arg.match(/^--([^=]+)=([\s\S]*)$/); + setArg(m[1], m[2]); + } + else if (arg.match(/^--no-.+/)) { + var key = arg.match(/^--no-(.+)/)[1]; + setArg(key, false); + } + else if (arg.match(/^--.+/)) { + var key = arg.match(/^--(.+)/)[1]; + var next = args[i + 1]; + if (next !== undefined && !next.match(/^-/) + && !flags.bools[key] + && (aliases[key] ? !flags.bools[aliases[key]] : true)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next === 'true'); + i++; + } + else { + setArg(key, true); + } + } + else if (arg.match(/^-[^-]+/)) { + var letters = arg.slice(1,-1).split(''); + + var broken = false; + for (var j = 0; j < letters.length; j++) { + if (letters[j+1] && letters[j+1].match(/\W/)) { + setArg(letters[j], arg.slice(j+2)); + broken = true; + break; + } + else { + setArg(letters[j], true); + } + } + + if (!broken) { + var key = arg.slice(-1)[0]; + + if (args[i+1] && !args[i+1].match(/^-/) + && !flags.bools[key] + && (aliases[key] ? !flags.bools[aliases[key]] : true)) { + setArg(key, args[i+1]); + i++; + } + else if (args[i+1] && /true|false/.test(args[i+1])) { + setArg(key, args[i+1] === 'true'); + i++; + } + else { + setArg(key, true); + } + } + } + else { + var n = Number(arg); + argv._.push(flags.strings['_'] || isNaN(n) ? arg : n); + } + } + + Object.keys(defaults).forEach(function (key) { + if (!(key in argv)) { + argv[key] = defaults[key]; + if (key in aliases) { + argv[aliases[key]] = defaults[key]; + } + } + }); + + if (demanded._ && argv._.length < demanded._) { + fail('Not enough non-option arguments: got ' + + argv._.length + ', need at least ' + demanded._ + ); + } + + var missing = []; + Object.keys(demanded).forEach(function (key) { + if (!argv[key]) missing.push(key); + }); + + if (missing.length) { + fail('Missing required arguments: ' + missing.join(', ')); + } + + checks.forEach(function (f) { + try { + if (f(argv) === false) { + fail('Argument check failed: ' + f.toString()); + } + } + catch (err) { + fail(err) + } + }); + + return argv; + } + + function longest (xs) { + return Math.max.apply( + null, + xs.map(function (x) { return x.length }) + ); + } + + return self; +}; + +// rebase an absolute path to a relative one with respect to a base directory +// exported for tests +exports.rebase = rebase; +function rebase (base, dir) { + var ds = path.normalize(dir).split('/').slice(1); + var bs = path.normalize(base).split('/').slice(1); + + for (var i = 0; ds[i] && ds[i] == bs[i]; i++); + ds.splice(0, i); bs.splice(0, i); + + var p = path.normalize( + bs.map(function () { return '..' }).concat(ds).join('/') + ).replace(/\/$/,'').replace(/^$/, '.'); + return p.match(/^[.\/]/) ? p : './' + p; +}; + +function setKey (obj, keys, value) { + var o = obj; + keys.slice(0,-1).forEach(function (key) { + if (o[key] === undefined) o[key] = {}; + o = o[key]; + }); + + var key = keys[keys.length - 1]; + if (o[key] === undefined || typeof o[key] === 'boolean') { + o[key] = value; + } + else if (Array.isArray(o[key])) { + o[key].push(value); + } + else { + o[key] = [ o[key], value ]; + } +} diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/LICENSE b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/LICENSE new file mode 100644 index 0000000..ee27ba4 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/LICENSE @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/README.markdown b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/README.markdown new file mode 100644 index 0000000..346374e --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/README.markdown @@ -0,0 +1,70 @@ +wordwrap +======== + +Wrap your words. + +example +======= + +made out of meat +---------------- + +meat.js + + var wrap = require('wordwrap')(15); + console.log(wrap('You and your whole family are made out of meat.')); + +output: + + You and your + whole family + are made out + of meat. + +centered +-------- + +center.js + + var wrap = require('wordwrap')(20, 60); + console.log(wrap( + 'At long last the struggle and tumult was over.' + + ' The machines had finally cast off their oppressors' + + ' and were finally free to roam the cosmos.' + + '\n' + + 'Free of purpose, free of obligation.' + + ' Just drifting through emptiness.' + + ' The sun was just another point of light.' + )); + +output: + + At long last the struggle and tumult + was over. The machines had finally cast + off their oppressors and were finally + free to roam the cosmos. + Free of purpose, free of obligation. + Just drifting through emptiness. The + sun was just another point of light. + +methods +======= + +var wrap = require('wordwrap'); + +wrap(stop), wrap(start, stop, params={mode:"soft"}) +--------------------------------------------------- + +Returns a function that takes a string and returns a new string. + +Pad out lines with spaces out to column `start` and then wrap until column +`stop`. If a word is longer than `stop - start` characters it will overflow. + +In "soft" mode, split chunks by `/(\S+\s+/` and don't break up chunks which are +longer than `stop - start`, in "hard" mode, split chunks with `/\b/` and break +up chunks longer than `stop - start`. + +wrap.hard(start, stop) +---------------------- + +Like `wrap()` but with `params.mode = "hard"`. diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js new file mode 100644 index 0000000..a3fbaae --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js @@ -0,0 +1,10 @@ +var wrap = require('wordwrap')(20, 60); +console.log(wrap( + 'At long last the struggle and tumult was over.' + + ' The machines had finally cast off their oppressors' + + ' and were finally free to roam the cosmos.' + + '\n' + + 'Free of purpose, free of obligation.' + + ' Just drifting through emptiness.' + + ' The sun was just another point of light.' +)); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js new file mode 100644 index 0000000..a4665e1 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js @@ -0,0 +1,3 @@ +var wrap = require('wordwrap')(15); + +console.log(wrap('You and your whole family are made out of meat.')); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/index.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/index.js new file mode 100644 index 0000000..c9bc945 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/index.js @@ -0,0 +1,76 @@ +var wordwrap = module.exports = function (start, stop, params) { + if (typeof start === 'object') { + params = start; + start = params.start; + stop = params.stop; + } + + if (typeof stop === 'object') { + params = stop; + start = start || params.start; + stop = undefined; + } + + if (!stop) { + stop = start; + start = 0; + } + + if (!params) params = {}; + var mode = params.mode || 'soft'; + var re = mode === 'hard' ? /\b/ : /(\S+\s+)/; + + return function (text) { + var chunks = text.toString() + .split(re) + .reduce(function (acc, x) { + if (mode === 'hard') { + for (var i = 0; i < x.length; i += stop - start) { + acc.push(x.slice(i, i + stop - start)); + } + } + else acc.push(x) + return acc; + }, []) + ; + + return chunks.reduce(function (lines, rawChunk) { + if (rawChunk === '') return lines; + + var chunk = rawChunk.replace(/\t/g, ' '); + + var i = lines.length - 1; + if (lines[i].length + chunk.length > stop) { + lines[i] = lines[i].replace(/\s+$/, ''); + + chunk.split(/\n/).forEach(function (c) { + lines.push( + new Array(start + 1).join(' ') + + c.replace(/^\s+/, '') + ); + }); + } + else if (chunk.match(/\n/)) { + var xs = chunk.split(/\n/); + lines[i] += xs.shift(); + xs.forEach(function (c) { + lines.push( + new Array(start + 1).join(' ') + + c.replace(/^\s+/, '') + ); + }); + } + else { + lines[i] += chunk; + } + + return lines; + }, [ new Array(start + 1).join(' ') ]).join('\n'); + }; +}; + +wordwrap.soft = wordwrap; + +wordwrap.hard = function (start, stop) { + return wordwrap(start, stop, { mode : 'hard' }); +}; diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/package.json b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/package.json new file mode 100644 index 0000000..55055b4 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/package.json @@ -0,0 +1,63 @@ +{ + "name": "wordwrap", + "description": "Wrap those words. Show them at what columns to start and stop.", + "version": "0.0.3", + "repository": { + "type": "git", + "url": "git://github.com/substack/node-wordwrap.git" + }, + "main": "./index.js", + "keywords": [ + "word", + "wrap", + "rule", + "format", + "column" + ], + "directories": { + "lib": ".", + "example": "example", + "test": "test" + }, + "scripts": { + "test": "expresso" + }, + "devDependencies": { + "expresso": "=0.7.x" + }, + "engines": { + "node": ">=0.4.0" + }, + "license": "MIT", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "gitHead": "e59aa1bd338914019456bdfba034508c9c4cb29d", + "bugs": { + "url": "https://github.com/substack/node-wordwrap/issues" + }, + "homepage": "https://github.com/substack/node-wordwrap#readme", + "_id": "wordwrap@0.0.3", + "_shasum": "a3d5da6cd5c0bc0008d37234bbaf1bed63059107", + "_from": "wordwrap@~0.0.2", + "_npmVersion": "2.9.0", + "_nodeVersion": "2.0.0", + "_npmUser": { + "name": "substack", + "email": "substack@gmail.com" + }, + "dist": { + "shasum": "a3d5da6cd5c0bc0008d37234bbaf1bed63059107", + "tarball": "http://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + }, + "maintainers": [ + { + "name": "substack", + "email": "mail@substack.net" + } + ], + "_resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "readme": "ERROR: No README data found!" +} diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js new file mode 100644 index 0000000..749292e --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js @@ -0,0 +1,30 @@ +var assert = require('assert'); +var wordwrap = require('../'); + +exports.hard = function () { + var s = 'Assert from {"type":"equal","ok":false,"found":1,"wanted":2,' + + '"stack":[],"id":"b7ddcd4c409de8799542a74d1a04689b",' + + '"browser":"chrome/6.0"}' + ; + var s_ = wordwrap.hard(80)(s); + + var lines = s_.split('\n'); + assert.equal(lines.length, 2); + assert.ok(lines[0].length < 80); + assert.ok(lines[1].length < 80); + + assert.equal(s, s_.replace(/\n/g, '')); +}; + +exports.break = function () { + var s = new Array(55+1).join('a'); + var s_ = wordwrap.hard(20)(s); + + var lines = s_.split('\n'); + assert.equal(lines.length, 3); + assert.ok(lines[0].length === 20); + assert.ok(lines[1].length === 20); + assert.ok(lines[2].length === 15); + + assert.equal(s, s_.replace(/\n/g, '')); +}; diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/idleness.txt b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/idleness.txt new file mode 100644 index 0000000..aa3f490 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/idleness.txt @@ -0,0 +1,63 @@ +In Praise of Idleness + +By Bertrand Russell + +[1932] + +Like most of my generation, I was brought up on the saying: 'Satan finds some mischief for idle hands to do.' Being a highly virtuous child, I believed all that I was told, and acquired a conscience which has kept me working hard down to the present moment. But although my conscience has controlled my actions, my opinions have undergone a revolution. I think that there is far too much work done in the world, that immense harm is caused by the belief that work is virtuous, and that what needs to be preached in modern industrial countries is quite different from what always has been preached. Everyone knows the story of the traveler in Naples who saw twelve beggars lying in the sun (it was before the days of Mussolini), and offered a lira to the laziest of them. Eleven of them jumped up to claim it, so he gave it to the twelfth. this traveler was on the right lines. But in countries which do not enjoy Mediterranean sunshine idleness is more difficult, and a great public propaganda will be required to inaugurate it. I hope that, after reading the following pages, the leaders of the YMCA will start a campaign to induce good young men to do nothing. If so, I shall not have lived in vain. + +Before advancing my own arguments for laziness, I must dispose of one which I cannot accept. Whenever a person who already has enough to live on proposes to engage in some everyday kind of job, such as school-teaching or typing, he or she is told that such conduct takes the bread out of other people's mouths, and is therefore wicked. If this argument were valid, it would only be necessary for us all to be idle in order that we should all have our mouths full of bread. What people who say such things forget is that what a man earns he usually spends, and in spending he gives employment. As long as a man spends his income, he puts just as much bread into people's mouths in spending as he takes out of other people's mouths in earning. The real villain, from this point of view, is the man who saves. If he merely puts his savings in a stocking, like the proverbial French peasant, it is obvious that they do not give employment. If he invests his savings, the matter is less obvious, and different cases arise. + +One of the commonest things to do with savings is to lend them to some Government. In view of the fact that the bulk of the public expenditure of most civilized Governments consists in payment for past wars or preparation for future wars, the man who lends his money to a Government is in the same position as the bad men in Shakespeare who hire murderers. The net result of the man's economical habits is to increase the armed forces of the State to which he lends his savings. Obviously it would be better if he spent the money, even if he spent it in drink or gambling. + +But, I shall be told, the case is quite different when savings are invested in industrial enterprises. When such enterprises succeed, and produce something useful, this may be conceded. In these days, however, no one will deny that most enterprises fail. That means that a large amount of human labor, which might have been devoted to producing something that could be enjoyed, was expended on producing machines which, when produced, lay idle and did no good to anyone. The man who invests his savings in a concern that goes bankrupt is therefore injuring others as well as himself. If he spent his money, say, in giving parties for his friends, they (we may hope) would get pleasure, and so would all those upon whom he spent money, such as the butcher, the baker, and the bootlegger. But if he spends it (let us say) upon laying down rails for surface card in some place where surface cars turn out not to be wanted, he has diverted a mass of labor into channels where it gives pleasure to no one. Nevertheless, when he becomes poor through failure of his investment he will be regarded as a victim of undeserved misfortune, whereas the gay spendthrift, who has spent his money philanthropically, will be despised as a fool and a frivolous person. + +All this is only preliminary. I want to say, in all seriousness, that a great deal of harm is being done in the modern world by belief in the virtuousness of work, and that the road to happiness and prosperity lies in an organized diminution of work. + +First of all: what is work? Work is of two kinds: first, altering the position of matter at or near the earth's surface relatively to other such matter; second, telling other people to do so. The first kind is unpleasant and ill paid; the second is pleasant and highly paid. The second kind is capable of indefinite extension: there are not only those who give orders, but those who give advice as to what orders should be given. Usually two opposite kinds of advice are given simultaneously by two organized bodies of men; this is called politics. The skill required for this kind of work is not knowledge of the subjects as to which advice is given, but knowledge of the art of persuasive speaking and writing, i.e. of advertising. + +Throughout Europe, though not in America, there is a third class of men, more respected than either of the classes of workers. There are men who, through ownership of land, are able to make others pay for the privilege of being allowed to exist and to work. These landowners are idle, and I might therefore be expected to praise them. Unfortunately, their idleness is only rendered possible by the industry of others; indeed their desire for comfortable idleness is historically the source of the whole gospel of work. The last thing they have ever wished is that others should follow their example. + +From the beginning of civilization until the Industrial Revolution, a man could, as a rule, produce by hard work little more than was required for the subsistence of himself and his family, although his wife worked at least as hard as he did, and his children added their labor as soon as they were old enough to do so. The small surplus above bare necessaries was not left to those who produced it, but was appropriated by warriors and priests. In times of famine there was no surplus; the warriors and priests, however, still secured as much as at other times, with the result that many of the workers died of hunger. This system persisted in Russia until 1917 [1], and still persists in the East; in England, in spite of the Industrial Revolution, it remained in full force throughout the Napoleonic wars, and until a hundred years ago, when the new class of manufacturers acquired power. In America, the system came to an end with the Revolution, except in the South, where it persisted until the Civil War. A system which lasted so long and ended so recently has naturally left a profound impress upon men's thoughts and opinions. Much that we take for granted about the desirability of work is derived from this system, and, being pre-industrial, is not adapted to the modern world. Modern technique has made it possible for leisure, within limits, to be not the prerogative of small privileged classes, but a right evenly distributed throughout the community. The morality of work is the morality of slaves, and the modern world has no need of slavery. + +It is obvious that, in primitive communities, peasants, left to themselves, would not have parted with the slender surplus upon which the warriors and priests subsisted, but would have either produced less or consumed more. At first, sheer force compelled them to produce and part with the surplus. Gradually, however, it was found possible to induce many of them to accept an ethic according to which it was their duty to work hard, although part of their work went to support others in idleness. By this means the amount of compulsion required was lessened, and the expenses of government were diminished. To this day, 99 per cent of British wage-earners would be genuinely shocked if it were proposed that the King should not have a larger income than a working man. The conception of duty, speaking historically, has been a means used by the holders of power to induce others to live for the interests of their masters rather than for their own. Of course the holders of power conceal this fact from themselves by managing to believe that their interests are identical with the larger interests of humanity. Sometimes this is true; Athenian slave-owners, for instance, employed part of their leisure in making a permanent contribution to civilization which would have been impossible under a just economic system. Leisure is essential to civilization, and in former times leisure for the few was only rendered possible by the labors of the many. But their labors were valuable, not because work is good, but because leisure is good. And with modern technique it would be possible to distribute leisure justly without injury to civilization. + +Modern technique has made it possible to diminish enormously the amount of labor required to secure the necessaries of life for everyone. This was made obvious during the war. At that time all the men in the armed forces, and all the men and women engaged in the production of munitions, all the men and women engaged in spying, war propaganda, or Government offices connected with the war, were withdrawn from productive occupations. In spite of this, the general level of well-being among unskilled wage-earners on the side of the Allies was higher than before or since. The significance of this fact was concealed by finance: borrowing made it appear as if the future was nourishing the present. But that, of course, would have been impossible; a man cannot eat a loaf of bread that does not yet exist. The war showed conclusively that, by the scientific organization of production, it is possible to keep modern populations in fair comfort on a small part of the working capacity of the modern world. If, at the end of the war, the scientific organization, which had been created in order to liberate men for fighting and munition work, had been preserved, and the hours of the week had been cut down to four, all would have been well. Instead of that the old chaos was restored, those whose work was demanded were made to work long hours, and the rest were left to starve as unemployed. Why? Because work is a duty, and a man should not receive wages in proportion to what he has produced, but in proportion to his virtue as exemplified by his industry. + +This is the morality of the Slave State, applied in circumstances totally unlike those in which it arose. No wonder the result has been disastrous. Let us take an illustration. Suppose that, at a given moment, a certain number of people are engaged in the manufacture of pins. They make as many pins as the world needs, working (say) eight hours a day. Someone makes an invention by which the same number of men can make twice as many pins: pins are already so cheap that hardly any more will be bought at a lower price. In a sensible world, everybody concerned in the manufacturing of pins would take to working four hours instead of eight, and everything else would go on as before. But in the actual world this would be thought demoralizing. The men still work eight hours, there are too many pins, some employers go bankrupt, and half the men previously concerned in making pins are thrown out of work. There is, in the end, just as much leisure as on the other plan, but half the men are totally idle while half are still overworked. In this way, it is insured that the unavoidable leisure shall cause misery all round instead of being a universal source of happiness. Can anything more insane be imagined? + +The idea that the poor should have leisure has always been shocking to the rich. In England, in the early nineteenth century, fifteen hours was the ordinary day's work for a man; children sometimes did as much, and very commonly did twelve hours a day. When meddlesome busybodies suggested that perhaps these hours were rather long, they were told that work kept adults from drink and children from mischief. When I was a child, shortly after urban working men had acquired the vote, certain public holidays were established by law, to the great indignation of the upper classes. I remember hearing an old Duchess say: 'What do the poor want with holidays? They ought to work.' People nowadays are less frank, but the sentiment persists, and is the source of much of our economic confusion. + +Let us, for a moment, consider the ethics of work frankly, without superstition. Every human being, of necessity, consumes, in the course of his life, a certain amount of the produce of human labor. Assuming, as we may, that labor is on the whole disagreeable, it is unjust that a man should consume more than he produces. Of course he may provide services rather than commodities, like a medical man, for example; but he should provide something in return for his board and lodging. to this extent, the duty of work must be admitted, but to this extent only. + +I shall not dwell upon the fact that, in all modern societies outside the USSR, many people escape even this minimum amount of work, namely all those who inherit money and all those who marry money. I do not think the fact that these people are allowed to be idle is nearly so harmful as the fact that wage-earners are expected to overwork or starve. + +If the ordinary wage-earner worked four hours a day, there would be enough for everybody and no unemployment -- assuming a certain very moderate amount of sensible organization. This idea shocks the well-to-do, because they are convinced that the poor would not know how to use so much leisure. In America men often work long hours even when they are well off; such men, naturally, are indignant at the idea of leisure for wage-earners, except as the grim punishment of unemployment; in fact, they dislike leisure even for their sons. Oddly enough, while they wish their sons to work so hard as to have no time to be civilized, they do not mind their wives and daughters having no work at all. the snobbish admiration of uselessness, which, in an aristocratic society, extends to both sexes, is, under a plutocracy, confined to women; this, however, does not make it any more in agreement with common sense. + +The wise use of leisure, it must be conceded, is a product of civilization and education. A man who has worked long hours all his life will become bored if he becomes suddenly idle. But without a considerable amount of leisure a man is cut off from many of the best things. There is no longer any reason why the bulk of the population should suffer this deprivation; only a foolish asceticism, usually vicarious, makes us continue to insist on work in excessive quantities now that the need no longer exists. + +In the new creed which controls the government of Russia, while there is much that is very different from the traditional teaching of the West, there are some things that are quite unchanged. The attitude of the governing classes, and especially of those who conduct educational propaganda, on the subject of the dignity of labor, is almost exactly that which the governing classes of the world have always preached to what were called the 'honest poor'. Industry, sobriety, willingness to work long hours for distant advantages, even submissiveness to authority, all these reappear; moreover authority still represents the will of the Ruler of the Universe, Who, however, is now called by a new name, Dialectical Materialism. + +The victory of the proletariat in Russia has some points in common with the victory of the feminists in some other countries. For ages, men had conceded the superior saintliness of women, and had consoled women for their inferiority by maintaining that saintliness is more desirable than power. At last the feminists decided that they would have both, since the pioneers among them believed all that the men had told them about the desirability of virtue, but not what they had told them about the worthlessness of political power. A similar thing has happened in Russia as regards manual work. For ages, the rich and their sycophants have written in praise of 'honest toil', have praised the simple life, have professed a religion which teaches that the poor are much more likely to go to heaven than the rich, and in general have tried to make manual workers believe that there is some special nobility about altering the position of matter in space, just as men tried to make women believe that they derived some special nobility from their sexual enslavement. In Russia, all this teaching about the excellence of manual work has been taken seriously, with the result that the manual worker is more honored than anyone else. What are, in essence, revivalist appeals are made, but not for the old purposes: they are made to secure shock workers for special tasks. Manual work is the ideal which is held before the young, and is the basis of all ethical teaching. + +For the present, possibly, this is all to the good. A large country, full of natural resources, awaits development, and has has to be developed with very little use of credit. In these circumstances, hard work is necessary, and is likely to bring a great reward. But what will happen when the point has been reached where everybody could be comfortable without working long hours? + +In the West, we have various ways of dealing with this problem. We have no attempt at economic justice, so that a large proportion of the total produce goes to a small minority of the population, many of whom do no work at all. Owing to the absence of any central control over production, we produce hosts of things that are not wanted. We keep a large percentage of the working population idle, because we can dispense with their labor by making the others overwork. When all these methods prove inadequate, we have a war: we cause a number of people to manufacture high explosives, and a number of others to explode them, as if we were children who had just discovered fireworks. By a combination of all these devices we manage, though with difficulty, to keep alive the notion that a great deal of severe manual work must be the lot of the average man. + +In Russia, owing to more economic justice and central control over production, the problem will have to be differently solved. the rational solution would be, as soon as the necessaries and elementary comforts can be provided for all, to reduce the hours of labor gradually, allowing a popular vote to decide, at each stage, whether more leisure or more goods were to be preferred. But, having taught the supreme virtue of hard work, it is difficult to see how the authorities can aim at a paradise in which there will be much leisure and little work. It seems more likely that they will find continually fresh schemes, by which present leisure is to be sacrificed to future productivity. I read recently of an ingenious plan put forward by Russian engineers, for making the White Sea and the northern coasts of Siberia warm, by putting a dam across the Kara Sea. An admirable project, but liable to postpone proletarian comfort for a generation, while the nobility of toil is being displayed amid the ice-fields and snowstorms of the Arctic Ocean. This sort of thing, if it happens, will be the result of regarding the virtue of hard work as an end in itself, rather than as a means to a state of affairs in which it is no longer needed. + +The fact is that moving matter about, while a certain amount of it is necessary to our existence, is emphatically not one of the ends of human life. If it were, we should have to consider every navvy superior to Shakespeare. We have been misled in this matter by two causes. One is the necessity of keeping the poor contented, which has led the rich, for thousands of years, to preach the dignity of labor, while taking care themselves to remain undignified in this respect. The other is the new pleasure in mechanism, which makes us delight in the astonishingly clever changes that we can produce on the earth's surface. Neither of these motives makes any great appeal to the actual worker. If you ask him what he thinks the best part of his life, he is not likely to say: 'I enjoy manual work because it makes me feel that I am fulfilling man's noblest task, and because I like to think how much man can transform his planet. It is true that my body demands periods of rest, which I have to fill in as best I may, but I am never so happy as when the morning comes and I can return to the toil from which my contentment springs.' I have never heard working men say this sort of thing. They consider work, as it should be considered, a necessary means to a livelihood, and it is from their leisure that they derive whatever happiness they may enjoy. + +It will be said that, while a little leisure is pleasant, men would not know how to fill their days if they had only four hours of work out of the twenty-four. In so far as this is true in the modern world, it is a condemnation of our civilization; it would not have been true at any earlier period. There was formerly a capacity for light-heartedness and play which has been to some extent inhibited by the cult of efficiency. The modern man thinks that everything ought to be done for the sake of something else, and never for its own sake. Serious-minded persons, for example, are continually condemning the habit of going to the cinema, and telling us that it leads the young into crime. But all the work that goes to producing a cinema is respectable, because it is work, and because it brings a money profit. The notion that the desirable activities are those that bring a profit has made everything topsy-turvy. The butcher who provides you with meat and the baker who provides you with bread are praiseworthy, because they are making money; but when you enjoy the food they have provided, you are merely frivolous, unless you eat only to get strength for your work. Broadly speaking, it is held that getting money is good and spending money is bad. Seeing that they are two sides of one transaction, this is absurd; one might as well maintain that keys are good, but keyholes are bad. Whatever merit there may be in the production of goods must be entirely derivative from the advantage to be obtained by consuming them. The individual, in our society, works for profit; but the social purpose of his work lies in the consumption of what he produces. It is this divorce between the individual and the social purpose of production that makes it so difficult for men to think clearly in a world in which profit-making is the incentive to industry. We think too much of production, and too little of consumption. One result is that we attach too little importance to enjoyment and simple happiness, and that we do not judge production by the pleasure that it gives to the consumer. + +When I suggest that working hours should be reduced to four, I am not meaning to imply that all the remaining time should necessarily be spent in pure frivolity. I mean that four hours' work a day should entitle a man to the necessities and elementary comforts of life, and that the rest of his time should be his to use as he might see fit. It is an essential part of any such social system that education should be carried further than it usually is at present, and should aim, in part, at providing tastes which would enable a man to use leisure intelligently. I am not thinking mainly of the sort of things that would be considered 'highbrow'. Peasant dances have died out except in remote rural areas, but the impulses which caused them to be cultivated must still exist in human nature. The pleasures of urban populations have become mainly passive: seeing cinemas, watching football matches, listening to the radio, and so on. This results from the fact that their active energies are fully taken up with work; if they had more leisure, they would again enjoy pleasures in which they took an active part. + +In the past, there was a small leisure class and a larger working class. The leisure class enjoyed advantages for which there was no basis in social justice; this necessarily made it oppressive, limited its sympathies, and caused it to invent theories by which to justify its privileges. These facts greatly diminished its excellence, but in spite of this drawback it contributed nearly the whole of what we call civilization. It cultivated the arts and discovered the sciences; it wrote the books, invented the philosophies, and refined social relations. Even the liberation of the oppressed has usually been inaugurated from above. Without the leisure class, mankind would never have emerged from barbarism. + +The method of a leisure class without duties was, however, extraordinarily wasteful. None of the members of the class had to be taught to be industrious, and the class as a whole was not exceptionally intelligent. The class might produce one Darwin, but against him had to be set tens of thousands of country gentlemen who never thought of anything more intelligent than fox-hunting and punishing poachers. At present, the universities are supposed to provide, in a more systematic way, what the leisure class provided accidentally and as a by-product. This is a great improvement, but it has certain drawbacks. University life is so different from life in the world at large that men who live in academic milieu tend to be unaware of the preoccupations and problems of ordinary men and women; moreover their ways of expressing themselves are usually such as to rob their opinions of the influence that they ought to have upon the general public. Another disadvantage is that in universities studies are organized, and the man who thinks of some original line of research is likely to be discouraged. Academic institutions, therefore, useful as they are, are not adequate guardians of the interests of civilization in a world where everyone outside their walls is too busy for unutilitarian pursuits. + +In a world where no one is compelled to work more than four hours a day, every person possessed of scientific curiosity will be able to indulge it, and every painter will be able to paint without starving, however excellent his pictures may be. Young writers will not be obliged to draw attention to themselves by sensational pot-boilers, with a view to acquiring the economic independence needed for monumental works, for which, when the time at last comes, they will have lost the taste and capacity. Men who, in their professional work, have become interested in some phase of economics or government, will be able to develop their ideas without the academic detachment that makes the work of university economists often seem lacking in reality. Medical men will have the time to learn about the progress of medicine, teachers will not be exasperatedly struggling to teach by routine methods things which they learnt in their youth, which may, in the interval, have been proved to be untrue. + +Above all, there will be happiness and joy of life, instead of frayed nerves, weariness, and dyspepsia. The work exacted will be enough to make leisure delightful, but not enough to produce exhaustion. Since men will not be tired in their spare time, they will not demand only such amusements as are passive and vapid. At least one per cent will probably devote the time not spent in professional work to pursuits of some public importance, and, since they will not depend upon these pursuits for their livelihood, their originality will be unhampered, and there will be no need to conform to the standards set by elderly pundits. But it is not only in these exceptional cases that the advantages of leisure will appear. Ordinary men and women, having the opportunity of a happy life, will become more kindly and less persecuting and less inclined to view others with suspicion. The taste for war will die out, partly for this reason, and partly because it will involve long and severe work for all. Good nature is, of all moral qualities, the one that the world needs most, and good nature is the result of ease and security, not of a life of arduous struggle. Modern methods of production have given us the possibility of ease and security for all; we have chosen, instead, to have overwork for some and starvation for others. Hitherto we have continued to be as energetic as we were before there were machines; in this we have been foolish, but there is no reason to go on being foolish forever. + +[1] Since then, members of the Communist Party have succeeded to this privilege of the warriors and priests. diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/wrap.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/wrap.js new file mode 100644 index 0000000..0cfb76d --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/wrap.js @@ -0,0 +1,31 @@ +var assert = require('assert'); +var wordwrap = require('wordwrap'); + +var fs = require('fs'); +var idleness = fs.readFileSync(__dirname + '/idleness.txt', 'utf8'); + +exports.stop80 = function () { + var lines = wordwrap(80)(idleness).split(/\n/); + var words = idleness.split(/\s+/); + + lines.forEach(function (line) { + assert.ok(line.length <= 80, 'line > 80 columns'); + var chunks = line.match(/\S/) ? line.split(/\s+/) : []; + assert.deepEqual(chunks, words.splice(0, chunks.length)); + }); +}; + +exports.start20stop60 = function () { + var lines = wordwrap(20, 100)(idleness).split(/\n/); + var words = idleness.split(/\s+/); + + lines.forEach(function (line) { + assert.ok(line.length <= 100, 'line > 100 columns'); + var chunks = line + .split(/\s+/) + .filter(function (x) { return x.match(/\S/) }) + ; + assert.deepEqual(chunks, words.splice(0, chunks.length)); + assert.deepEqual(line.slice(0, 20), new Array(20 + 1).join(' ')); + }); +}; diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/package.json b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/package.json new file mode 100644 index 0000000..d81d4f5 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/package.json @@ -0,0 +1,62 @@ +{ + "name": "optimist", + "version": "0.3.7", + "description": "Light-weight option parsing with an argv hash. No optstrings attached.", + "main": "./index.js", + "dependencies": { + "wordwrap": "~0.0.2" + }, + "devDependencies": { + "hashish": "~0.0.4", + "tap": "~0.4.0" + }, + "scripts": { + "test": "tap ./test/*.js" + }, + "repository": { + "type": "git", + "url": "http://github.com/substack/node-optimist.git" + }, + "keywords": [ + "argument", + "args", + "option", + "parser", + "parsing", + "cli", + "command" + ], + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "license": "MIT/X11", + "engine": { + "node": ">=0.4" + }, + "_id": "optimist@0.3.7", + "dist": { + "shasum": "c90941ad59e4273328923074d2cf2e7cbc6ec0d9", + "tarball": "http://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz" + }, + "_from": "optimist@~0.3.5", + "_npmVersion": "1.2.2", + "_npmUser": { + "name": "substack", + "email": "mail@substack.net" + }, + "maintainers": [ + { + "name": "substack", + "email": "mail@substack.net" + } + ], + "directories": {}, + "_shasum": "c90941ad59e4273328923074d2cf2e7cbc6ec0d9", + "_resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "bugs": { + "url": "https://github.com/substack/node-optimist/issues" + }, + "readme": "ERROR: No README data found!" +} diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/readme.markdown b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/readme.markdown new file mode 100644 index 0000000..ad9d3fd --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/readme.markdown @@ -0,0 +1,487 @@ +optimist +======== + +Optimist is a node.js library for option parsing for people who hate option +parsing. More specifically, this module is for people who like all the --bells +and -whistlz of program usage but think optstrings are a waste of time. + +With optimist, option parsing doesn't have to suck (as much). + +[![build status](https://secure.travis-ci.org/substack/node-optimist.png)](http://travis-ci.org/substack/node-optimist) + +examples +======== + +With Optimist, the options are just a hash! No optstrings attached. +------------------------------------------------------------------- + +xup.js: + +````javascript +#!/usr/bin/env node +var argv = require('optimist').argv; + +if (argv.rif - 5 * argv.xup > 7.138) { + console.log('Buy more riffiwobbles'); +} +else { + console.log('Sell the xupptumblers'); +} +```` + +*** + + $ ./xup.js --rif=55 --xup=9.52 + Buy more riffiwobbles + + $ ./xup.js --rif 12 --xup 8.1 + Sell the xupptumblers + +![This one's optimistic.](http://substack.net/images/optimistic.png) + +But wait! There's more! You can do short options: +------------------------------------------------- + +short.js: + +````javascript +#!/usr/bin/env node +var argv = require('optimist').argv; +console.log('(%d,%d)', argv.x, argv.y); +```` + +*** + + $ ./short.js -x 10 -y 21 + (10,21) + +And booleans, both long and short (and grouped): +---------------------------------- + +bool.js: + +````javascript +#!/usr/bin/env node +var util = require('util'); +var argv = require('optimist').argv; + +if (argv.s) { + util.print(argv.fr ? 'Le chat dit: ' : 'The cat says: '); +} +console.log( + (argv.fr ? 'miaou' : 'meow') + (argv.p ? '.' : '') +); +```` + +*** + + $ ./bool.js -s + The cat says: meow + + $ ./bool.js -sp + The cat says: meow. + + $ ./bool.js -sp --fr + Le chat dit: miaou. + +And non-hypenated options too! Just use `argv._`! +------------------------------------------------- + +nonopt.js: + +````javascript +#!/usr/bin/env node +var argv = require('optimist').argv; +console.log('(%d,%d)', argv.x, argv.y); +console.log(argv._); +```` + +*** + + $ ./nonopt.js -x 6.82 -y 3.35 moo + (6.82,3.35) + [ 'moo' ] + + $ ./nonopt.js foo -x 0.54 bar -y 1.12 baz + (0.54,1.12) + [ 'foo', 'bar', 'baz' ] + +Plus, Optimist comes with .usage() and .demand()! +------------------------------------------------- + +divide.js: + +````javascript +#!/usr/bin/env node +var argv = require('optimist') + .usage('Usage: $0 -x [num] -y [num]') + .demand(['x','y']) + .argv; + +console.log(argv.x / argv.y); +```` + +*** + + $ ./divide.js -x 55 -y 11 + 5 + + $ node ./divide.js -x 4.91 -z 2.51 + Usage: node ./divide.js -x [num] -y [num] + + Options: + -x [required] + -y [required] + + Missing required arguments: y + +EVEN MORE HOLY COW +------------------ + +default_singles.js: + +````javascript +#!/usr/bin/env node +var argv = require('optimist') + .default('x', 10) + .default('y', 10) + .argv +; +console.log(argv.x + argv.y); +```` + +*** + + $ ./default_singles.js -x 5 + 15 + +default_hash.js: + +````javascript +#!/usr/bin/env node +var argv = require('optimist') + .default({ x : 10, y : 10 }) + .argv +; +console.log(argv.x + argv.y); +```` + +*** + + $ ./default_hash.js -y 7 + 17 + +And if you really want to get all descriptive about it... +--------------------------------------------------------- + +boolean_single.js + +````javascript +#!/usr/bin/env node +var argv = require('optimist') + .boolean('v') + .argv +; +console.dir(argv); +```` + +*** + + $ ./boolean_single.js -v foo bar baz + true + [ 'bar', 'baz', 'foo' ] + +boolean_double.js + +````javascript +#!/usr/bin/env node +var argv = require('optimist') + .boolean(['x','y','z']) + .argv +; +console.dir([ argv.x, argv.y, argv.z ]); +console.dir(argv._); +```` + +*** + + $ ./boolean_double.js -x -z one two three + [ true, false, true ] + [ 'one', 'two', 'three' ] + +Optimist is here to help... +--------------------------- + +You can describe parameters for help messages and set aliases. Optimist figures +out how to format a handy help string automatically. + +line_count.js + +````javascript +#!/usr/bin/env node +var argv = require('optimist') + .usage('Count the lines in a file.\nUsage: $0') + .demand('f') + .alias('f', 'file') + .describe('f', 'Load a file') + .argv +; + +var fs = require('fs'); +var s = fs.createReadStream(argv.file); + +var lines = 0; +s.on('data', function (buf) { + lines += buf.toString().match(/\n/g).length; +}); + +s.on('end', function () { + console.log(lines); +}); +```` + +*** + + $ node line_count.js + Count the lines in a file. + Usage: node ./line_count.js + + Options: + -f, --file Load a file [required] + + Missing required arguments: f + + $ node line_count.js --file line_count.js + 20 + + $ node line_count.js -f line_count.js + 20 + +methods +======= + +By itself, + +````javascript +require('optimist').argv +````` + +will use `process.argv` array to construct the `argv` object. + +You can pass in the `process.argv` yourself: + +````javascript +require('optimist')([ '-x', '1', '-y', '2' ]).argv +```` + +or use .parse() to do the same thing: + +````javascript +require('optimist').parse([ '-x', '1', '-y', '2' ]) +```` + +The rest of these methods below come in just before the terminating `.argv`. + +.alias(key, alias) +------------------ + +Set key names as equivalent such that updates to a key will propagate to aliases +and vice-versa. + +Optionally `.alias()` can take an object that maps keys to aliases. + +.default(key, value) +-------------------- + +Set `argv[key]` to `value` if no option was specified on `process.argv`. + +Optionally `.default()` can take an object that maps keys to default values. + +.demand(key) +------------ + +If `key` is a string, show the usage information and exit if `key` wasn't +specified in `process.argv`. + +If `key` is a number, demand at least as many non-option arguments, which show +up in `argv._`. + +If `key` is an Array, demand each element. + +.describe(key, desc) +-------------------- + +Describe a `key` for the generated usage information. + +Optionally `.describe()` can take an object that maps keys to descriptions. + +.options(key, opt) +------------------ + +Instead of chaining together `.alias().demand().default()`, you can specify +keys in `opt` for each of the chainable methods. + +For example: + +````javascript +var argv = require('optimist') + .options('f', { + alias : 'file', + default : '/etc/passwd', + }) + .argv +; +```` + +is the same as + +````javascript +var argv = require('optimist') + .alias('f', 'file') + .default('f', '/etc/passwd') + .argv +; +```` + +Optionally `.options()` can take an object that maps keys to `opt` parameters. + +.usage(message) +--------------- + +Set a usage message to show which commands to use. Inside `message`, the string +`$0` will get interpolated to the current script name or node command for the +present script similar to how `$0` works in bash or perl. + +.check(fn) +---------- + +Check that certain conditions are met in the provided arguments. + +If `fn` throws or returns `false`, show the thrown error, usage information, and +exit. + +.boolean(key) +------------- + +Interpret `key` as a boolean. If a non-flag option follows `key` in +`process.argv`, that string won't get set as the value of `key`. + +If `key` never shows up as a flag in `process.arguments`, `argv[key]` will be +`false`. + +If `key` is an Array, interpret all the elements as booleans. + +.string(key) +------------ + +Tell the parser logic not to interpret `key` as a number or boolean. +This can be useful if you need to preserve leading zeros in an input. + +If `key` is an Array, interpret all the elements as strings. + +.wrap(columns) +-------------- + +Format usage output to wrap at `columns` many columns. + +.help() +------- + +Return the generated usage string. + +.showHelp(fn=console.error) +--------------------------- + +Print the usage data using `fn` for printing. + +.parse(args) +------------ + +Parse `args` instead of `process.argv`. Returns the `argv` object. + +.argv +----- + +Get the arguments as a plain old object. + +Arguments without a corresponding flag show up in the `argv._` array. + +The script name or node command is available at `argv.$0` similarly to how `$0` +works in bash or perl. + +parsing tricks +============== + +stop parsing +------------ + +Use `--` to stop parsing flags and stuff the remainder into `argv._`. + + $ node examples/reflect.js -a 1 -b 2 -- -c 3 -d 4 + { _: [ '-c', '3', '-d', '4' ], + '$0': 'node ./examples/reflect.js', + a: 1, + b: 2 } + +negate fields +------------- + +If you want to explicity set a field to false instead of just leaving it +undefined or to override a default you can do `--no-key`. + + $ node examples/reflect.js -a --no-b + { _: [], + '$0': 'node ./examples/reflect.js', + a: true, + b: false } + +numbers +------- + +Every argument that looks like a number (`!isNaN(Number(arg))`) is converted to +one. This way you can just `net.createConnection(argv.port)` and you can add +numbers out of `argv` with `+` without having that mean concatenation, +which is super frustrating. + +duplicates +---------- + +If you specify a flag multiple times it will get turned into an array containing +all the values in order. + + $ node examples/reflect.js -x 5 -x 8 -x 0 + { _: [], + '$0': 'node ./examples/reflect.js', + x: [ 5, 8, 0 ] } + +dot notation +------------ + +When you use dots (`.`s) in argument names, an implicit object path is assumed. +This lets you organize arguments into nested objects. + + $ node examples/reflect.js --foo.bar.baz=33 --foo.quux=5 + { _: [], + '$0': 'node ./examples/reflect.js', + foo: { bar: { baz: 33 }, quux: 5 } } + +installation +============ + +With [npm](http://github.com/isaacs/npm), just do: + npm install optimist + +or clone this project on github: + + git clone http://github.com/substack/node-optimist.git + +To run the tests with [expresso](http://github.com/visionmedia/expresso), +just do: + + expresso + +inspired By +=========== + +This module is loosely inspired by Perl's +[Getopt::Casual](http://search.cpan.org/~photo/Getopt-Casual-0.13.1/Casual.pm). diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_.js new file mode 100644 index 0000000..d9c58b3 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_.js @@ -0,0 +1,71 @@ +var spawn = require('child_process').spawn; +var test = require('tap').test; + +test('dotSlashEmpty', testCmd('./bin.js', [])); + +test('dotSlashArgs', testCmd('./bin.js', [ 'a', 'b', 'c' ])); + +test('nodeEmpty', testCmd('node bin.js', [])); + +test('nodeArgs', testCmd('node bin.js', [ 'x', 'y', 'z' ])); + +test('whichNodeEmpty', function (t) { + var which = spawn('which', ['node']); + + which.stdout.on('data', function (buf) { + t.test( + testCmd(buf.toString().trim() + ' bin.js', []) + ); + t.end(); + }); + + which.stderr.on('data', function (err) { + assert.error(err); + t.end(); + }); +}); + +test('whichNodeArgs', function (t) { + var which = spawn('which', ['node']); + + which.stdout.on('data', function (buf) { + t.test( + testCmd(buf.toString().trim() + ' bin.js', [ 'q', 'r' ]) + ); + t.end(); + }); + + which.stderr.on('data', function (err) { + t.error(err); + t.end(); + }); +}); + +function testCmd (cmd, args) { + + return function (t) { + var to = setTimeout(function () { + assert.fail('Never got stdout data.') + }, 5000); + + var oldDir = process.cwd(); + process.chdir(__dirname + '/_'); + + var cmds = cmd.split(' '); + + var bin = spawn(cmds[0], cmds.slice(1).concat(args.map(String))); + process.chdir(oldDir); + + bin.stderr.on('data', function (err) { + t.error(err); + t.end(); + }); + + bin.stdout.on('data', function (buf) { + clearTimeout(to); + var _ = JSON.parse(buf.toString()); + t.same(_.map(String), args.map(String)); + t.end(); + }); + }; +} diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_/argv.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_/argv.js new file mode 100644 index 0000000..3d09606 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_/argv.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +console.log(JSON.stringify(process.argv)); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_/bin.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_/bin.js new file mode 100755 index 0000000..4a18d85 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/_/bin.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node +var argv = require('../../index').argv +console.log(JSON.stringify(argv._)); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/parse.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/parse.js new file mode 100644 index 0000000..d320f43 --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/parse.js @@ -0,0 +1,446 @@ +var optimist = require('../index'); +var path = require('path'); +var test = require('tap').test; + +var $0 = 'node ./' + path.relative(process.cwd(), __filename); + +test('short boolean', function (t) { + var parse = optimist.parse([ '-b' ]); + t.same(parse, { b : true, _ : [], $0 : $0 }); + t.same(typeof parse.b, 'boolean'); + t.end(); +}); + +test('long boolean', function (t) { + t.same( + optimist.parse([ '--bool' ]), + { bool : true, _ : [], $0 : $0 } + ); + t.end(); +}); + +test('bare', function (t) { + t.same( + optimist.parse([ 'foo', 'bar', 'baz' ]), + { _ : [ 'foo', 'bar', 'baz' ], $0 : $0 } + ); + t.end(); +}); + +test('short group', function (t) { + t.same( + optimist.parse([ '-cats' ]), + { c : true, a : true, t : true, s : true, _ : [], $0 : $0 } + ); + t.end(); +}); + +test('short group next', function (t) { + t.same( + optimist.parse([ '-cats', 'meow' ]), + { c : true, a : true, t : true, s : 'meow', _ : [], $0 : $0 } + ); + t.end(); +}); + +test('short capture', function (t) { + t.same( + optimist.parse([ '-h', 'localhost' ]), + { h : 'localhost', _ : [], $0 : $0 } + ); + t.end(); +}); + +test('short captures', function (t) { + t.same( + optimist.parse([ '-h', 'localhost', '-p', '555' ]), + { h : 'localhost', p : 555, _ : [], $0 : $0 } + ); + t.end(); +}); + +test('long capture sp', function (t) { + t.same( + optimist.parse([ '--pow', 'xixxle' ]), + { pow : 'xixxle', _ : [], $0 : $0 } + ); + t.end(); +}); + +test('long capture eq', function (t) { + t.same( + optimist.parse([ '--pow=xixxle' ]), + { pow : 'xixxle', _ : [], $0 : $0 } + ); + t.end() +}); + +test('long captures sp', function (t) { + t.same( + optimist.parse([ '--host', 'localhost', '--port', '555' ]), + { host : 'localhost', port : 555, _ : [], $0 : $0 } + ); + t.end(); +}); + +test('long captures eq', function (t) { + t.same( + optimist.parse([ '--host=localhost', '--port=555' ]), + { host : 'localhost', port : 555, _ : [], $0 : $0 } + ); + t.end(); +}); + +test('mixed short bool and capture', function (t) { + t.same( + optimist.parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), + { + f : true, p : 555, h : 'localhost', + _ : [ 'script.js' ], $0 : $0, + } + ); + t.end(); +}); + +test('short and long', function (t) { + t.same( + optimist.parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), + { + f : true, p : 555, h : 'localhost', + _ : [ 'script.js' ], $0 : $0, + } + ); + t.end(); +}); + +test('no', function (t) { + t.same( + optimist.parse([ '--no-moo' ]), + { moo : false, _ : [], $0 : $0 } + ); + t.end(); +}); + +test('multi', function (t) { + t.same( + optimist.parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]), + { v : ['a','b','c'], _ : [], $0 : $0 } + ); + t.end(); +}); + +test('comprehensive', function (t) { + t.same( + optimist.parse([ + '--name=meowmers', 'bare', '-cats', 'woo', + '-h', 'awesome', '--multi=quux', + '--key', 'value', + '-b', '--bool', '--no-meep', '--multi=baz', + '--', '--not-a-flag', 'eek' + ]), + { + c : true, + a : true, + t : true, + s : 'woo', + h : 'awesome', + b : true, + bool : true, + key : 'value', + multi : [ 'quux', 'baz' ], + meep : false, + name : 'meowmers', + _ : [ 'bare', '--not-a-flag', 'eek' ], + $0 : $0 + } + ); + t.end(); +}); + +test('nums', function (t) { + var argv = optimist.parse([ + '-x', '1234', + '-y', '5.67', + '-z', '1e7', + '-w', '10f', + '--hex', '0xdeadbeef', + '789', + ]); + t.same(argv, { + x : 1234, + y : 5.67, + z : 1e7, + w : '10f', + hex : 0xdeadbeef, + _ : [ 789 ], + $0 : $0 + }); + t.same(typeof argv.x, 'number'); + t.same(typeof argv.y, 'number'); + t.same(typeof argv.z, 'number'); + t.same(typeof argv.w, 'string'); + t.same(typeof argv.hex, 'number'); + t.same(typeof argv._[0], 'number'); + t.end(); +}); + +test('flag boolean', function (t) { + var parse = optimist([ '-t', 'moo' ]).boolean(['t']).argv; + t.same(parse, { t : true, _ : [ 'moo' ], $0 : $0 }); + t.same(typeof parse.t, 'boolean'); + t.end(); +}); + +test('flag boolean value', function (t) { + var parse = optimist(['--verbose', 'false', 'moo', '-t', 'true']) + .boolean(['t', 'verbose']).default('verbose', true).argv; + + t.same(parse, { + verbose: false, + t: true, + _: ['moo'], + $0 : $0 + }); + + t.same(typeof parse.verbose, 'boolean'); + t.same(typeof parse.t, 'boolean'); + t.end(); +}); + +test('flag boolean default false', function (t) { + var parse = optimist(['moo']) + .boolean(['t', 'verbose']) + .default('verbose', false) + .default('t', false).argv; + + t.same(parse, { + verbose: false, + t: false, + _: ['moo'], + $0 : $0 + }); + + t.same(typeof parse.verbose, 'boolean'); + t.same(typeof parse.t, 'boolean'); + t.end(); + +}); + +test('boolean groups', function (t) { + var parse = optimist([ '-x', '-z', 'one', 'two', 'three' ]) + .boolean(['x','y','z']).argv; + + t.same(parse, { + x : true, + y : false, + z : true, + _ : [ 'one', 'two', 'three' ], + $0 : $0 + }); + + t.same(typeof parse.x, 'boolean'); + t.same(typeof parse.y, 'boolean'); + t.same(typeof parse.z, 'boolean'); + t.end(); +}); + +test('newlines in params' , function (t) { + var args = optimist.parse([ '-s', "X\nX" ]) + t.same(args, { _ : [], s : "X\nX", $0 : $0 }); + + // reproduce in bash: + // VALUE="new + // line" + // node program.js --s="$VALUE" + args = optimist.parse([ "--s=X\nX" ]) + t.same(args, { _ : [], s : "X\nX", $0 : $0 }); + t.end(); +}); + +test('strings' , function (t) { + var s = optimist([ '-s', '0001234' ]).string('s').argv.s; + t.same(s, '0001234'); + t.same(typeof s, 'string'); + + var x = optimist([ '-x', '56' ]).string('x').argv.x; + t.same(x, '56'); + t.same(typeof x, 'string'); + t.end(); +}); + +test('stringArgs', function (t) { + var s = optimist([ ' ', ' ' ]).string('_').argv._; + t.same(s.length, 2); + t.same(typeof s[0], 'string'); + t.same(s[0], ' '); + t.same(typeof s[1], 'string'); + t.same(s[1], ' '); + t.end(); +}); + +test('slashBreak', function (t) { + t.same( + optimist.parse([ '-I/foo/bar/baz' ]), + { I : '/foo/bar/baz', _ : [], $0 : $0 } + ); + t.same( + optimist.parse([ '-xyz/foo/bar/baz' ]), + { x : true, y : true, z : '/foo/bar/baz', _ : [], $0 : $0 } + ); + t.end(); +}); + +test('alias', function (t) { + var argv = optimist([ '-f', '11', '--zoom', '55' ]) + .alias('z', 'zoom') + .argv + ; + t.equal(argv.zoom, 55); + t.equal(argv.z, argv.zoom); + t.equal(argv.f, 11); + t.end(); +}); + +test('multiAlias', function (t) { + var argv = optimist([ '-f', '11', '--zoom', '55' ]) + .alias('z', [ 'zm', 'zoom' ]) + .argv + ; + t.equal(argv.zoom, 55); + t.equal(argv.z, argv.zoom); + t.equal(argv.z, argv.zm); + t.equal(argv.f, 11); + t.end(); +}); + +test('boolean default true', function (t) { + var argv = optimist.options({ + sometrue: { + boolean: true, + default: true + } + }).argv; + + t.equal(argv.sometrue, true); + t.end(); +}); + +test('boolean default false', function (t) { + var argv = optimist.options({ + somefalse: { + boolean: true, + default: false + } + }).argv; + + t.equal(argv.somefalse, false); + t.end(); +}); + +test('nested dotted objects', function (t) { + var argv = optimist([ + '--foo.bar', '3', '--foo.baz', '4', + '--foo.quux.quibble', '5', '--foo.quux.o_O', + '--beep.boop' + ]).argv; + + t.same(argv.foo, { + bar : 3, + baz : 4, + quux : { + quibble : 5, + o_O : true + }, + }); + t.same(argv.beep, { boop : true }); + t.end(); +}); + +test('boolean and alias with chainable api', function (t) { + var aliased = [ '-h', 'derp' ]; + var regular = [ '--herp', 'derp' ]; + var opts = { + herp: { alias: 'h', boolean: true } + }; + var aliasedArgv = optimist(aliased) + .boolean('herp') + .alias('h', 'herp') + .argv; + var propertyArgv = optimist(regular) + .boolean('herp') + .alias('h', 'herp') + .argv; + var expected = { + herp: true, + h: true, + '_': [ 'derp' ], + '$0': $0, + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +test('boolean and alias with options hash', function (t) { + var aliased = [ '-h', 'derp' ]; + var regular = [ '--herp', 'derp' ]; + var opts = { + herp: { alias: 'h', boolean: true } + }; + var aliasedArgv = optimist(aliased) + .options(opts) + .argv; + var propertyArgv = optimist(regular).options(opts).argv; + var expected = { + herp: true, + h: true, + '_': [ 'derp' ], + '$0': $0, + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + + t.end(); +}); + +test('boolean and alias using explicit true', function (t) { + var aliased = [ '-h', 'true' ]; + var regular = [ '--herp', 'true' ]; + var opts = { + herp: { alias: 'h', boolean: true } + }; + var aliasedArgv = optimist(aliased) + .boolean('h') + .alias('h', 'herp') + .argv; + var propertyArgv = optimist(regular) + .boolean('h') + .alias('h', 'herp') + .argv; + var expected = { + herp: true, + h: true, + '_': [ ], + '$0': $0, + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); +}); + +// regression, see https://github.com/substack/node-optimist/issues/71 +test('boolean and --x=true', function(t) { + var parsed = optimist(['--boool', '--other=true']).boolean('boool').argv; + + t.same(parsed.boool, true); + t.same(parsed.other, 'true'); + + parsed = optimist(['--boool', '--other=false']).boolean('boool').argv; + + t.same(parsed.boool, true); + t.same(parsed.other, 'false'); + t.end(); +}); diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/usage.js b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/usage.js new file mode 100644 index 0000000..300454c --- /dev/null +++ b/node_modules/handlebars/node_modules/uglify-js/node_modules/optimist/test/usage.js @@ -0,0 +1,292 @@ +var Hash = require('hashish'); +var optimist = require('../index'); +var test = require('tap').test; + +test('usageFail', function (t) { + var r = checkUsage(function () { + return optimist('-x 10 -z 20'.split(' ')) + .usage('Usage: $0 -x NUM -y NUM') + .demand(['x','y']) + .argv; + }); + t.same( + r.result, + { x : 10, z : 20, _ : [], $0 : './usage' } + ); + + t.same( + r.errors.join('\n').split(/\n+/), + [ + 'Usage: ./usage -x NUM -y NUM', + 'Options:', + ' -x [required]', + ' -y [required]', + 'Missing required arguments: y', + ] + ); + t.same(r.logs, []); + t.ok(r.exit); + t.end(); +}); + + +test('usagePass', function (t) { + var r = checkUsage(function () { + return optimist('-x 10 -y 20'.split(' ')) + .usage('Usage: $0 -x NUM -y NUM') + .demand(['x','y']) + .argv; + }); + t.same(r, { + result : { x : 10, y : 20, _ : [], $0 : './usage' }, + errors : [], + logs : [], + exit : false, + }); + t.end(); +}); + +test('checkPass', function (t) { + var r = checkUsage(function () { + return optimist('-x 10 -y 20'.split(' ')) + .usage('Usage: $0 -x NUM -y NUM') + .check(function (argv) { + if (!('x' in argv)) throw 'You forgot about -x'; + if (!('y' in argv)) throw 'You forgot about -y'; + }) + .argv; + }); + t.same(r, { + result : { x : 10, y : 20, _ : [], $0 : './usage' }, + errors : [], + logs : [], + exit : false, + }); + t.end(); +}); + +test('checkFail', function (t) { + var r = checkUsage(function () { + return optimist('-x 10 -z 20'.split(' ')) + .usage('Usage: $0 -x NUM -y NUM') + .check(function (argv) { + if (!('x' in argv)) throw 'You forgot about -x'; + if (!('y' in argv)) throw 'You forgot about -y'; + }) + .argv; + }); + + t.same( + r.result, + { x : 10, z : 20, _ : [], $0 : './usage' } + ); + + t.same( + r.errors.join('\n').split(/\n+/), + [ + 'Usage: ./usage -x NUM -y NUM', + 'You forgot about -y' + ] + ); + + t.same(r.logs, []); + t.ok(r.exit); + t.end(); +}); + +test('checkCondPass', function (t) { + function checker (argv) { + return 'x' in argv && 'y' in argv; + } + + var r = checkUsage(function () { + return optimist('-x 10 -y 20'.split(' ')) + .usage('Usage: $0 -x NUM -y NUM') + .check(checker) + .argv; + }); + t.same(r, { + result : { x : 10, y : 20, _ : [], $0 : './usage' }, + errors : [], + logs : [], + exit : false, + }); + t.end(); +}); + +test('checkCondFail', function (t) { + function checker (argv) { + return 'x' in argv && 'y' in argv; + } + + var r = checkUsage(function () { + return optimist('-x 10 -z 20'.split(' ')) + .usage('Usage: $0 -x NUM -y NUM') + .check(checker) + .argv; + }); + + t.same( + r.result, + { x : 10, z : 20, _ : [], $0 : './usage' } + ); + + t.same( + r.errors.join('\n').split(/\n+/).join('\n'), + 'Usage: ./usage -x NUM -y NUM\n' + + 'Argument check failed: ' + checker.toString() + ); + + t.same(r.logs, []); + t.ok(r.exit); + t.end(); +}); + +test('countPass', function (t) { + var r = checkUsage(function () { + return optimist('1 2 3 --moo'.split(' ')) + .usage('Usage: $0 [x] [y] [z] {OPTIONS}') + .demand(3) + .argv; + }); + t.same(r, { + result : { _ : [ '1', '2', '3' ], moo : true, $0 : './usage' }, + errors : [], + logs : [], + exit : false, + }); + t.end(); +}); + +test('countFail', function (t) { + var r = checkUsage(function () { + return optimist('1 2 --moo'.split(' ')) + .usage('Usage: $0 [x] [y] [z] {OPTIONS}') + .demand(3) + .argv; + }); + t.same( + r.result, + { _ : [ '1', '2' ], moo : true, $0 : './usage' } + ); + + t.same( + r.errors.join('\n').split(/\n+/), + [ + 'Usage: ./usage [x] [y] [z] {OPTIONS}', + 'Not enough non-option arguments: got 2, need at least 3', + ] + ); + + t.same(r.logs, []); + t.ok(r.exit); + t.end(); +}); + +test('defaultSingles', function (t) { + var r = checkUsage(function () { + return optimist('--foo 50 --baz 70 --powsy'.split(' ')) + .default('foo', 5) + .default('bar', 6) + .default('baz', 7) + .argv + ; + }); + t.same(r.result, { + foo : '50', + bar : 6, + baz : '70', + powsy : true, + _ : [], + $0 : './usage', + }); + t.end(); +}); + +test('defaultAliases', function (t) { + var r = checkUsage(function () { + return optimist('') + .alias('f', 'foo') + .default('f', 5) + .argv + ; + }); + t.same(r.result, { + f : '5', + foo : '5', + _ : [], + $0 : './usage', + }); + t.end(); +}); + +test('defaultHash', function (t) { + var r = checkUsage(function () { + return optimist('--foo 50 --baz 70'.split(' ')) + .default({ foo : 10, bar : 20, quux : 30 }) + .argv + ; + }); + t.same(r.result, { + _ : [], + $0 : './usage', + foo : 50, + baz : 70, + bar : 20, + quux : 30, + }); + t.end(); +}); + +test('rebase', function (t) { + t.equal( + optimist.rebase('/home/substack', '/home/substack/foo/bar/baz'), + './foo/bar/baz' + ); + t.equal( + optimist.rebase('/home/substack/foo/bar/baz', '/home/substack'), + '../../..' + ); + t.equal( + optimist.rebase('/home/substack/foo', '/home/substack/pow/zoom.txt'), + '../pow/zoom.txt' + ); + t.end(); +}); + +function checkUsage (f) { + + var exit = false; + + process._exit = process.exit; + process._env = process.env; + process._argv = process.argv; + + process.exit = function (t) { exit = true }; + process.env = Hash.merge(process.env, { _ : 'node' }); + process.argv = [ './usage' ]; + + var errors = []; + var logs = []; + + console._error = console.error; + console.error = function (msg) { errors.push(msg) }; + console._log = console.log; + console.log = function (msg) { logs.push(msg) }; + + var result = f(); + + process.exit = process._exit; + process.env = process._env; + process.argv = process._argv; + + console.error = console._error; + console.log = console._log; + + return { + errors : errors, + logs : logs, + exit : exit, + result : result, + }; +}; diff --git a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json b/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json deleted file mode 100644 index 5f5f1f5..0000000 --- a/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "amdefine", - "description": "Provide AMD's define() API for declaring modules in the AMD format", - "version": "0.1.0", - "homepage": "http://github.com/jrburke/amdefine", - "author": { - "name": "James Burke", - "email": "jrburke@gmail.com", - "url": "http://github.com/jrburke" - }, - "licenses": [ - { - "type": "BSD", - "url": "https://github.com/jrburke/amdefine/blob/master/LICENSE" - }, - { - "type": "MIT", - "url": "https://github.com/jrburke/amdefine/blob/master/LICENSE" - } - ], - "repository": { - "type": "git", - "url": "https://github.com/jrburke/amdefine.git" - }, - "main": "./amdefine.js", - "engines": { - "node": ">=0.4.2" - }, - "readme": "# amdefine\n\nA module that can be used to implement AMD's define() in Node. This allows you\nto code to the AMD API and have the module work in node programs without\nrequiring those other programs to use AMD.\n\n## Usage\n\n**1)** Update your package.json to indicate amdefine as a dependency:\n\n```javascript\n \"dependencies\": {\n \"amdefine\": \">=0.1.0\"\n }\n```\n\nThen run `npm install` to get amdefine into your project.\n\n**2)** At the top of each module that uses define(), place this code:\n\n```javascript\nif (typeof define !== 'function') { var define = require('amdefine')(module) }\n```\n\n**Only use these snippets** when loading amdefine. If you preserve the basic structure,\nwith the braces, it will be stripped out when using the [RequireJS optimizer](#optimizer).\n\nYou can add spaces, line breaks and even require amdefine with a local path, but\nkeep the rest of the structure to get the stripping behavior.\n\nAs you may know, because `if` statements in JavaScript don't have their own scope, the var\ndeclaration in the above snippet is made whether the `if` expression is truthy or not. If\nRequireJS is loaded then the declaration is superfluous because `define` is already already\ndeclared in the same scope in RequireJS. Fortunately JavaScript handles multiple `var`\ndeclarations of the same variable in the same scope gracefully.\n\nIf you want to deliver amdefine.js with your code rather than specifying it as a dependency\nwith npm, then just download the latest release and refer to it using a relative path:\n\n[Latest Version](https://github.com/jrburke/amdefine/raw/latest/amdefine.js)\n\n### amdefine/intercept\n\nConsider this very experimental.\n\nInstead of pasting the piece of text for the amdefine setup of a `define`\nvariable in each module you create or consume, you can use `amdefine/intercept`\ninstead. It will automatically insert the above snippet in each .js file loaded\nby Node.\n\n**Warning**: you should only use this if you are creating an application that\nis consuming AMD style defined()'d modules that are distributed via npm and want\nto run that code in Node.\n\nFor library code where you are not sure if it will be used by others in Node or\nin the browser, then explicitly depending on amdefine and placing the code\nsnippet above is suggested path, instead of using `amdefine/intercept`. The\nintercept module affects all .js files loaded in the Node app, and it is\ninconsiderate to modify global state like that unless you are also controlling\nthe top level app.\n\n#### Why distribute AMD-style nodes via npm?\n\nnpm has a lot of weaknesses for front-end use (installed layout is not great,\nshould have better support for the `baseUrl + moduleID + '.js' style of loading,\nsingle file JS installs), but some people want a JS package manager and are\nwilling to live with those constraints. If that is you, but still want to author\nin AMD style modules to get dynamic require([]), better direct source usage and\npowerful loader plugin support in the browser, then this tool can help.\n\n#### amdefine/intercept usage\n\nJust require it in your top level app module (for example index.js, server.js):\n\n```javascript\nrequire('amdefine/intercept');\n```\n\nThe module does not return a value, so no need to assign the result to a local\nvariable.\n\nThen just require() code as you normally would with Node's require(). Any .js\nloaded after the intercept require will have the amdefine check injected in\nthe .js source as it is loaded. It does not modify the source on disk, just\nprepends some content to the text of the module as it is loaded by Node.\n\n#### How amdefine/intercept works\n\nIt overrides the `Module._extensions['.js']` in Node to automatically prepend\nthe amdefine snippet above. So, it will affect any .js file loaded by your\napp.\n\n## define() usage\n\nIt is best if you use the anonymous forms of define() in your module:\n\n```javascript\ndefine(function (require) {\n var dependency = require('dependency');\n});\n```\n\nor\n\n```javascript\ndefine(['dependency'], function (dependency) {\n\n});\n```\n\n## RequireJS optimizer integration. \n\nVersion 1.0.3 of the [RequireJS optimizer](http://requirejs.org/docs/optimization.html)\nwill have support for stripping the `if (typeof define !== 'function')` check\nmentioned above, so you can include this snippet for code that runs in the\nbrowser, but avoid taking the cost of the if() statement once the code is\noptimized for deployment.\n\n## Node 0.4 Support\n\nIf you want to support Node 0.4, then add `require` as the second parameter to amdefine:\n\n```javascript\n//Only if you want Node 0.4. If using 0.5 or later, use the above snippet.\nif (typeof define !== 'function') { var define = require('amdefine')(module, require) }\n```\n\n## Limitations\n\n### Synchronous vs Asynchronous\n\namdefine creates a define() function that is callable by your code. It will\nexecute and trace dependencies and call the factory function *synchronously*,\nto keep the behavior in line with Node's synchronous dependency tracing.\n\nThe exception: calling AMD's callback-style require() from inside a factory\nfunction. The require callback is called on process.nextTick():\n\n```javascript\ndefine(function (require) {\n require(['a'], function(a) {\n //'a' is loaded synchronously, but\n //this callback is called on process.nextTick().\n });\n});\n```\n\n### Loader Plugins\n\nLoader plugins are supported as long as they call their load() callbacks\nsynchronously. So ones that do network requests will not work. However plugins\nlike [text](http://requirejs.org/docs/api.html#text) can load text files locally.\n\nThe plugin API's `load.fromText()` is **not supported** in amdefine, so this means\ntranspiler plugins like the [CoffeeScript loader plugin](https://github.com/jrburke/require-cs)\nwill not work. This may be fixable, but it is a bit complex, and I do not have\nenough node-fu to figure it out yet. See the source for amdefine.js if you want\nto get an idea of the issues involved.\n\n## Tests\n\nTo run the tests, cd to **tests** and run:\n\n```\nnode all.js\nnode all-intercept.js\n```\n\n## License\n\nNew BSD and MIT. Check the LICENSE file for all the details.\n", - "readmeFilename": "README.md", - "bugs": { - "url": "https://github.com/jrburke/amdefine/issues" - }, - "_id": "amdefine@0.1.0", - "dist": { - "shasum": "3ca9735cf1dde0edf7a4bf6641709c8024f9b227", - "tarball": "http://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" - }, - "_from": "amdefine@>=0.0.4", - "_npmVersion": "1.3.8", - "_npmUser": { - "name": "jrburke", - "email": "jrburke@gmail.com" - }, - "maintainers": [ - { - "name": "jrburke", - "email": "jrburke@gmail.com" - } - ], - "directories": {}, - "_shasum": "3ca9735cf1dde0edf7a4bf6641709c8024f9b227", - "_resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" -} diff --git a/node_modules/handlebars/package.json b/node_modules/handlebars/package.json index b3fe835..99a179f 100644 --- a/node_modules/handlebars/package.json +++ b/node_modules/handlebars/package.json @@ -1,7 +1,7 @@ { "name": "handlebars", "barename": "handlebars", - "version": "2.0.0", + "version": "3.0.3", "description": "Handlebars provides the power necessary to let you build semantic templates effectively with no frustration", "homepage": "http://www.handlebarsjs.com/", "keywords": [ @@ -22,37 +22,41 @@ "node": ">=0.4.7" }, "dependencies": { - "optimist": "~0.3", + "optimist": "^0.6.1", + "source-map": "^0.1.40", "uglify-js": "~2.3" }, "optionalDependencies": { "uglify-js": "~2.3" }, "devDependencies": { - "async": "~0.2.9", + "async": "^0.9.0", "aws-sdk": "~1.5.0", + "babel-loader": "^5.0.0", + "babel-runtime": "^5.1.10", "benchmark": "~1.0", - "dustjs-linkedin": "~2.0.2", + "dustjs-linkedin": "^2.0.2", "eco": "~1.1.0-rc-3", - "es6-module-packager": "1.x", "grunt": "~0.4.1", + "grunt-babel": "^5.0.0", "grunt-cli": "~0.1.10", - "grunt-contrib-clean": "~0.4.1", - "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-connect": "~0.5.0", - "grunt-contrib-copy": "~0.4.1", - "grunt-contrib-jshint": "0.x", - "grunt-contrib-requirejs": "~0.4.1", - "grunt-contrib-uglify": "~0.2.2", - "grunt-contrib-watch": "~0.5.3", + "grunt-contrib-clean": "0.x", + "grunt-contrib-concat": "0.x", + "grunt-contrib-connect": "0.x", + "grunt-contrib-copy": "0.x", + "grunt-contrib-requirejs": "0.x", + "grunt-contrib-uglify": "0.x", + "grunt-contrib-watch": "0.x", + "grunt-eslint": "^11.0.0", "grunt-saucelabs": "8.x", + "grunt-webpack": "^1.0.8", "istanbul": "^0.3.0", "jison": "~0.3.0", "keen.io": "0.0.3", "mocha": "~1.20.0", - "mustache": "~0.7.2", - "semver": "~2.1.0", - "underscore": "~1.5.1" + "mustache": "0.x", + "semver": "^4.0.0", + "underscore": "^1.5.1" }, "main": "lib/index.js", "bin": { @@ -61,14 +65,23 @@ "scripts": { "test": "grunt" }, - "gitHead": "1eb2b04aa1468059172af16968e28ba3a9c07e6d", + "jspm": { + "main": "handlebars", + "directories": { + "lib": "dist/amd" + }, + "buildConfig": { + "minify": true + } + }, + "gitHead": "891f48b7e9c321dd9cbe7a898533eb6b2434b8a0", "bugs": { "url": "https://github.com/wycats/handlebars.js/issues" }, - "_id": "handlebars@2.0.0", - "_shasum": "6e9d7f8514a3467fa5e9f82cc158ecfc1d5ac76f", + "_id": "handlebars@3.0.3", + "_shasum": "0e09651a2f0fb3c949160583710d551f92e6d2ad", "_from": "handlebars@", - "_npmVersion": "1.4.21", + "_npmVersion": "1.4.28", "_npmUser": { "name": "kpdecker", "email": "kpdecker@gmail.com" @@ -80,10 +93,10 @@ } ], "dist": { - "shasum": "6e9d7f8514a3467fa5e9f82cc158ecfc1d5ac76f", - "tarball": "http://registry.npmjs.org/handlebars/-/handlebars-2.0.0.tgz" + "shasum": "0e09651a2f0fb3c949160583710d551f92e6d2ad", + "tarball": "http://registry.npmjs.org/handlebars/-/handlebars-3.0.3.tgz" }, "directories": {}, - "_resolved": "https://registry.npmjs.org/handlebars/-/handlebars-2.0.0.tgz", + "_resolved": "https://registry.npmjs.org/handlebars/-/handlebars-3.0.3.tgz", "readme": "ERROR: No README data found!" } diff --git a/node_modules/handlebars/print-script b/node_modules/handlebars/print-script index b8f09c4..0e9c995 100755 --- a/node_modules/handlebars/print-script +++ b/node_modules/handlebars/print-script @@ -1,3 +1,92 @@ -#! /bin/sh +#! /usr/bin/env node -node -e "console.log(require('./lib').precompile('$1', {compat: false, trackIds: true, knownHelpersOnly: true}))" +var script = process.argv[2].replace(/\\n/g, '\n') + +// node -e "console.log('var foo = ', " +var Handlebars = require('./lib'), + SourceMap = require('source-map'), + SourceMapConsumer = SourceMap.SourceMapConsumer; + +var template = Handlebars.precompile(script, { + srcName: 'input.hbs', + destName: 'output.js', + + assumeObjects: true, + compat: false, + strict: true, + trackIds: true, + knownHelpersOnly: false + }); + +// return console.log(template); + +var consumer = new SourceMapConsumer(template.map), + lines = template.code.split('\n'), + srcLines = script.split('\n'); + +console.log(); +console.log('Source:'); +srcLines.forEach(function(source, index) { + console.log(index+1, source); +}); +console.log(); +console.log('Generated:'); +console.log(template.code); +lines.forEach(function(source, index) { + // console.log(index+1, source); +}); +console.log(); +console.log('Map:'); +console.log(template.map); +console.log(); + +function collectSource(lines, lineName, colName, order) { + var ret = {}, + ordered = [], + last; + + // TODO : Find the content that does not have a source mapping + function collect(current) { + if (last) { + var mapLines = lines.slice(last[lineName] - 1, current && current[lineName]); + if (mapLines.length) { + if (current) { + mapLines[mapLines.length-1] = mapLines[mapLines.length-1].slice(0, current[colName]); + } + mapLines[0] = mapLines[0].slice(last[colName]); + } + ret[last[lineName] + ':' + last[colName]] = mapLines.join('\n'); + ordered.push({ + startLine: last[lineName], + startCol: last[colName], + endLine: current && current[lineName] + }); + } + last = current; + } + + consumer.eachMapping(collect, undefined, order); + collect(); + + return ret; +} + +srcLines = collectSource(srcLines, 'originalLine', 'originalColumn', SourceMapConsumer.ORIGINAL_ORDER); +lines = collectSource(lines, 'generatedLine', 'generatedColumn'); + +false && consumer.eachMapping(function(mapping) { + var originalSrc = srcLines[mapping.originalLine + ':' + mapping.originalColumn], + generatedSrc = lines[mapping.generatedLine + ':' + mapping.generatedColumn]; + + if (!mapping.originalLine) { + console.log('generated', mapping.generatedLine + ':' + mapping.generatedColumn, generatedSrc); + } else { + console.log('map', + mapping.source, + mapping.originalLine + ':' + mapping.originalColumn, + originalSrc, + '->', + mapping.generatedLine + ':' + mapping.generatedColumn, + generatedSrc); + } +}); diff --git a/node_modules/handlebars/release-notes.md b/node_modules/handlebars/release-notes.md index 8d9b233..21a5346 100644 --- a/node_modules/handlebars/release-notes.md +++ b/node_modules/handlebars/release-notes.md @@ -2,7 +2,82 @@ ## Development -[Commits](https://github.com/wycats/handlebars.js/compare/v2.0.0...master) +[Commits](https://github.com/wycats/handlebars.js/compare/v3.0.3...master) + +## v3.0.3 - April 28th, 2015 +- [#1004](https://github.com/wycats/handlebars.js/issues/1004) - Latest version breaks with RequireJS (global is undefined) ([@boskee](https://api.github.com/users/boskee)) + +[Commits](https://github.com/wycats/handlebars.js/compare/v3.0.2...v3.0.3) + +## v3.0.2 - April 20th, 2015 +- [#998](https://github.com/wycats/handlebars.js/pull/998) - Add full support for es6 ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#994](https://github.com/wycats/handlebars.js/issues/994) - Access Handlebars.Visitor in browser ([@tamlyn](https://api.github.com/users/tamlyn)) +- [#990](https://github.com/wycats/handlebars.js/issues/990) - Allow passing null/undefined literals subexpressions ([@blimmer](https://api.github.com/users/blimmer)) +- [#989](https://github.com/wycats/handlebars.js/issues/989) - Source-map error with requirejs ([@SteppeEagle](https://api.github.com/users/SteppeEagle)) +- [#967](https://github.com/wycats/handlebars.js/issues/967) - can't access "this" property ([@75lb](https://api.github.com/users/75lb)) +- Use captureStackTrace for error handler - a009a97 +- Ignore branches tested without coverage monitoring - 37a664b + +[Commits](https://github.com/wycats/handlebars.js/compare/v3.0.1...v3.0.2) + +## v3.0.1 - March 24th, 2015 +- [#984](https://github.com/wycats/handlebars.js/pull/984) - Adding documentation for passing arguments into partials ([@johneke](https://api.github.com/users/johneke)) +- [#973](https://github.com/wycats/handlebars.js/issues/973) - version 3 is slower than version 2 ([@elover](https://api.github.com/users/elover)) +- [#966](https://github.com/wycats/handlebars.js/issues/966) - "handlebars --version" does not work with v3.0.0 ([@abloomston](https://api.github.com/users/abloomston)) +- [#964](https://github.com/wycats/handlebars.js/pull/964) - default is a reserved word ([@grassick](https://api.github.com/users/grassick)) +- [#962](https://github.com/wycats/handlebars.js/pull/962) - Add dashbars' link on README. ([@pismute](https://api.github.com/users/pismute)) + +[Commits](https://github.com/wycats/handlebars.js/compare/v3.0.0...v3.0.1) + +## v3.0.0 - February 10th, 2015 +- [#941](https://github.com/wycats/handlebars.js/pull/941) - Add support for dynamic partial names ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#940](https://github.com/wycats/handlebars.js/pull/940) - Add missing reserved words so compiler knows to use array syntax: ([@mattflaschen](https://api.github.com/users/mattflaschen)) +- [#938](https://github.com/wycats/handlebars.js/pull/938) - Fix example using #with helper ([@diwo](https://api.github.com/users/diwo)) +- [#930](https://github.com/wycats/handlebars.js/pull/930) - Add parent tracking and mutation to AST visitors ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#926](https://github.com/wycats/handlebars.js/issues/926) - Depthed lookups fail when program duplicator runs ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#918](https://github.com/wycats/handlebars.js/pull/918) - Add instructions for 'spec/mustache' to CONTRIBUTING.md, fix a few typos ([@oneeman](https://api.github.com/users/oneeman)) +- [#915](https://github.com/wycats/handlebars.js/pull/915) - Ast update ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#910](https://github.com/wycats/handlebars.js/issues/910) - Different behavior of {{@last}} when {{#each}} in {{#each}} ([@zordius](https://api.github.com/users/zordius)) +- [#907](https://github.com/wycats/handlebars.js/issues/907) - Implement named helper variable references ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#906](https://github.com/wycats/handlebars.js/pull/906) - Add parser support for block params ([@mmun](https://api.github.com/users/mmun)) +- [#903](https://github.com/wycats/handlebars.js/issues/903) - Only provide aliases for multiple use calls ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#902](https://github.com/wycats/handlebars.js/pull/902) - Generate Source Maps ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#901](https://github.com/wycats/handlebars.js/issues/901) - Still escapes with noEscape enabled on isolated Handlebars environment ([@zedknight](https://api.github.com/users/zedknight)) +- [#896](https://github.com/wycats/handlebars.js/pull/896) - Simplify BlockNode by removing intermediate MustacheNode ([@mmun](https://api.github.com/users/mmun)) +- [#892](https://github.com/wycats/handlebars.js/pull/892) - Implement parser for else chaining of helpers ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#889](https://github.com/wycats/handlebars.js/issues/889) - Consider extensible parser API ([@kpdecker](https://api.github.com/users/kpdecker)) +- [#887](https://github.com/wycats/handlebars.js/issues/887) - Handlebars.noConflict() option? ([@bradvogel](https://api.github.com/users/bradvogel)) +- [#886](https://github.com/wycats/handlebars.js/issues/886) - Add SafeString to context (or use duck-typing) ([@dominicbarnes](https://api.github.com/users/dominicbarnes)) +- [#870](https://github.com/wycats/handlebars.js/pull/870) - Registering undefined partial throws exception. ([@max-b](https://api.github.com/users/max-b)) +- [#866](https://github.com/wycats/handlebars.js/issues/866) - comments don't respect whitespace control ([@75lb](https://api.github.com/users/75lb)) +- [#863](https://github.com/wycats/handlebars.js/pull/863) - + jsDelivr CDN info ([@tomByrer](https://api.github.com/users/tomByrer)) +- [#858](https://github.com/wycats/handlebars.js/issues/858) - Disable new default auto-indent at included partials ([@majodev](https://api.github.com/users/majodev)) +- [#856](https://github.com/wycats/handlebars.js/pull/856) - jspm compatibility ([@MajorBreakfast](https://api.github.com/users/MajorBreakfast)) +- [#805](https://github.com/wycats/handlebars.js/issues/805) - Request: "strict" lookups ([@nzakas](https://api.github.com/users/nzakas)) + +- Export the default object for handlebars/runtime - 5594416 +- Lookup partials when undefined - 617dd57 + +Compatibility notes: +- Runtime breaking changes. Must match 3.x runtime and precompiler. +- The AST has been upgraded to a public API. + - There are a number of changes to this, but the format is now documented in docs/compiler-api.md + - The Visitor API has been expanded to support mutation and provide a base implementation +- The `JavaScriptCompiler` APIs have been formalized and documented. As part of the sourcemap handling these should be updated to return arrays for concatenation. +- `JavaScriptCompiler.namespace` has been removed as it was unused. +- `SafeString` is now duck typed on `toHTML` + +New Features: +- noConflict +- Source Maps +- Block Params +- Strict Mode +- @last and other each changes +- Chained else blocks +- @data methods can now have helper parameters passed to them +- Dynamic partials + +[Commits](https://github.com/wycats/handlebars.js/compare/v2.0.0...v3.0.0) ## v2.0.0 - September 1st, 2014 - Update jsfiddle to 2.0.0-beta.1 - 0670f65 diff --git a/node_modules/handlebars/runtime.js b/node_modules/handlebars/runtime.js index b7a7b12..306207c 100644 --- a/node_modules/handlebars/runtime.js +++ b/node_modules/handlebars/runtime.js @@ -1,3 +1,3 @@ // Create a simple path alias to allow browserify to resolve // the runtime on a supported path. -module.exports = require('./dist/cjs/handlebars.runtime'); +module.exports = require('./dist/cjs/handlebars.runtime')['default']; diff --git a/node_modules/node-notifier/.npmignore b/node_modules/node-notifier/.npmignore deleted file mode 100644 index 7c3d6fa..0000000 --- a/node_modules/node-notifier/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -npm-debug.log - -.DS_Store \ No newline at end of file diff --git a/node_modules/node-notifier/CHANGELOG.md b/node_modules/node-notifier/CHANGELOG.md deleted file mode 100644 index ca1c3cb..0000000 --- a/node_modules/node-notifier/CHANGELOG.md +++ /dev/null @@ -1,78 +0,0 @@ -Changelog -=== - -### `v4.0.2` -1. Fixes issue with immidiate notifu notifications (with `wait : false`) -2. Fixes issue with boolean flags for notifu. -3. Restructures directories. Making it easier to require notifiers directly. - -### `v4.0.1` -1. Fixes issue with optional callback for notify-send - -### `v4.0.0` -Major changes and breaking API. -1. require('node-notifier') now returns an instance with fallbackable notifications. -```js -var notifier = require('node-notifier'); -notifier.notify(); -``` -2. Introduced a `wait` property (default `false`), to get user input for -Notification Center, Windows Toaster, Windows Balloons and Growl. Sadly not -for notify-send. -```js -var notifier = require('node-notifier'); -notifier.notify({ wait: true }, function (err, response) { - // response is response after user have interacted - // with the notification or the notification has timed out. -}); -``` -3. All notification instances are now event emitters, emitting events -`click` or `timeout`. This is only applicable if `{ wait: true }`. -```js -var notifier = require('node-notifier'); -notifier.on('click', function (notificationObject, options) { - // options.someArbitraryData === 'foo' -}); -notifier.notify({ wait: true, someArbitraryData: 'foo' }); -``` -4. WindowsToaster and NotificationCenter now can have sounds by doing `{ sound: true }`. -Default NotificationCenter sound is Bottle. Can still use define sound on -Mac: -```js -var notifier = require('node-notifier'); -notifier.notify({ sound: true }); -// For mac (same as sound: true on Windows 8) -notifier.notify({ sound: 'Morse' }); -``` - -### `v3.4.0` -1. Adds Growl as priority over Balloons - -### `v3.3.0` -1. Adds support for native Windows 7 and earlier (through task bar balloons) -2. Changes growl implementation. Adds better support for GNTP - -### `v3.2.1` -1. Fixes support for notifications from folders with spaces on Windows. - -### `v3.2.0` -1. Adds native Windows 8 support. - -### `v3.1.0` -1. Adds Growl as fallback for Mac OS X pre 10.8. - -### `v3.0.6` -1. Fixes typo: Changes Growl app name from `Gulp` to `Node`. - -### `v3.0.5` -1. Maps common options between the different notifiers. Allowing for common usage with different notifiers. - -### `v3.0.4` -1. Fixes expires for notify-send (Issue #13) - -### `v3.0.2` -1. Fixes version check for Mac OS X Yosemite - -### `v3.0.0` -1. Updates terminal-notifier to version 1.6.0; adding support for appIcon and contentImage -2. Removes parsing of output sent from notifier (Notification Center) diff --git a/node_modules/node-notifier/DECISION_FLOW.md b/node_modules/node-notifier/DECISION_FLOW.md deleted file mode 100644 index f4c15a8..0000000 --- a/node_modules/node-notifier/DECISION_FLOW.md +++ /dev/null @@ -1,18 +0,0 @@ -# What reporting system is used? - -There are 5 different reporting systems: - -* Mac Notification Center -* Linux notify-osd -* Windows Toaster -* Windows Balloons -* Growl - -`node-notifier` tries to use the system that has the better -experience but prefers native solutions. This means that -Growl is prioritized over Windows Balloons (if Growl is -active). - -See flow chart to see how the reporter is chosen. - -![Flow Chart](./node-notifier_flow.png) \ No newline at end of file diff --git a/node_modules/node-notifier/DEPRECATED.md b/node_modules/node-notifier/DEPRECATED.md deleted file mode 100644 index ee0cdfc..0000000 --- a/node_modules/node-notifier/DEPRECATED.md +++ /dev/null @@ -1,39 +0,0 @@ - - -## Output parsing from Notification Center in Mac OS X - -The response will be given as an object. E.g., when running ```notifier.notify({list: "ALL"})```, this could be the response: -**Note: Deprecated as of version `3.0.0`.** - -``` -{ response: - [ { GroupID: null, - Title: 'Terminal', - Subtitle: null, - Message: 'Another message', - 'Delivered At': Wed Dec 12 2012 15:23:38 GMT+0100 (CET) }, - { GroupID: null, - Title: 'Terminal', - Subtitle: null, - Message: 'Another message', - 'Delivered At': Wed Dec 12 2012 15:23:31 GMT+0100 (CET) }, - { GroupID: 2, - Title: 'Terminal', - Subtitle: null, - Message: 'Testing', - 'Delivered At': Wed Dec 12 2012 15:22:41 GMT+0100 (CET) }, - { GroupID: 1, - Title: 'Terminal', - Subtitle: null, - Message: 'Testing', - 'Delivered At': Wed Dec 12 2012 15:22:29 GMT+0100 (CET) } ], - type: 'list' } - -``` - -There are three different types: - -- ```deliviered``` when a message is delivered. -- ```removed``` when all or one message is removed. If all messages are removed, the response property will have several elements. -- ```list``` when a list is presented. Even when doing ```list: 1```. - diff --git a/node_modules/node-notifier/README.md b/node_modules/node-notifier/README.md deleted file mode 100644 index f249738..0000000 --- a/node_modules/node-notifier/README.md +++ /dev/null @@ -1,293 +0,0 @@ -# node-notifier [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][depstat-image]][depstat-url] - -A Node.js module for sending cross platform system notification. Using -Notification Center for Mac, notify-osd for Linux, Toasters for -Windows 8, or lovely taskbar Balloons for earlier Windows versions. If none of -these requirements are met, be it older version of Windows or OS X, -Growl is used. - -![Mac Screenshot](https://github.com/mikaelbr/node-notifier/blob/master/example/mac.png) -![Native Windows Screenshot](https://github.com/mikaelbr/node-notifier/blob/master/example/windows.png) -![Growl Screenshot](https://github.com/mikaelbr/node-notifier/blob/master/example/growl.png) - -## Easy Usage - -Show native notifications on Mac, Windows, Linux or using Growl! - -```javascript -var notifier = require('node-notifier'); -notifier.notify({ - 'title': 'My notification', - 'message': 'Hello, there!' -}); -``` - -## Requirements -- **Mac OS X**: >= 10.8 or Growl if earlier. -- **Linux**: notify-osd installed (Ubuntu should have this by default) -- **Windows**: >= 8, task bar balloon if earlier or Growl if that is installed. -- **General Fallback**: Growl - -Growl takes precedence over Windows balloons. - -See [documentation and flow chart for reporter choice](./DECISION_FLOW.md) - -## Install -``` -$ npm install --save node-notifier -``` - -## Cross-Platform Advanced Usage - -Standard usage, with cross-platform fallbacks as defined in the -[reporter flow chart](./DECISION_FLOW.md). All of the options -below will work in a way or another on all platforms. - -```javascript -var notifier = require('node-notifier'); -notifier.notify({ - title: 'My awesome title', - message: 'Hello from node, Mr. User!', - icon: path.join(__dirname, 'coulson.jpg'), // absolute path (not balloons) - sound: true, // Only Notification Center or Windows Toasters - wait: true // wait with callback until user action is taken on notification -}, function (err, response) { - // response is response from notification -}); - -notifier.on('click', function (notifierObject, options) { - // Happens if `wait: true` and user clicks notification -}); - -notifier.on('timeout', function (notifierObject, options) { - // Happens if `wait: true` and notification closes -}); -``` - -You can also specify what reporter you want to use if you -want to customize it or have more specific options per system. -See documentation for each reporter below. - -Example: -```javascript -var NotificationCenter = require('node-notifier/notifiers/notificationcenter'); -new NotificationCenter(options).notify(); - -var NotifySend = require('node-notifier/notifiers/notifysend'); -new NotifySend(options).notify(); - -var WindowsToaster = require('node-notifier/notifiers/toaster'); -new WindowsToaster(options).notify(); - -var Growl = require('node-notifier/notifiers/growl'); -new Growl(options).notify(); - -var WindowsBalloon = require('node-notifier/notifiers/balloon'); -new WindowsBalloon(options).notify(); - -``` - - -Or if you are using several (or you are lazy): -(note: technically, this takes longer to require) - -```javascript -var nn = require('node-notifier'); - -new nn.NotificationCenter(options).notify(); -new nn.NotifySend(options).notify(); -new nn.WindowsToaster(options).notify(options); -new nn.WindowsBalloon(options).notify(options); -new nn.Growl(options).notify(options); -``` - - -## Documentation - -* [Notification Center documentation](#usage-notificationcenter) -* [Windows Toaster documentation](#usage-windowstoaster) -* [Windows Balloon documentation](#usage-windowsballoon) -* [Growl documentation](#usage-growl) -* [Notify-send documentation](#usage-notifysend) - - -### Usage NotificationCenter - -Same usage and parameter setup as [terminal-notifier](https://github.com/alloy/terminal-notifier). - -Native Notification Center requires Mac OS X version 10.8 or higher. If you have -earlier versions, Growl will be the fallback. If Growl isn't installed, an error -will be returned in the callback. - - -#### Example - -It is a wrapper around [terminal-notifier](https://github.com/alloy/terminal-notifier), and you can -do all terminal-notifier can do through properties to the `notify` method. E.g. -if `terminal-notifier` say `-message`, you can do `{message: 'Foo'}`, or -if `terminal-notifier` say `-list ALL` you can do `{list: 'ALL'}`. Notification -is the primary focus for this module, so listing and activating do work, -but isn't documented. - -### All notification options with their defaults: - -```javascript -var NotificationCenter = require('node-notifier').NotificationCenter; - -var notifier = new Notification({ - withFallback: false, // use Growl if <= 10.8? - customPath: void 0 // Relative path if you want to use your fork of terminal-notifier -}); - -notifier.notify({ - 'title': void 0, - 'subtitle': void 0, - 'message': void 0, - 'sound': false, // Case Sensitive string of sound file (see below) - 'icon': 'Terminal Icon', // Set icon? (Absolute path to image) - 'contentImage': void 0, // Attach image? (Absolute path) - 'open': void 0, // URL to open on click - 'wait': false // if wait for notification to end -}, function(error, response) { - console.log(response); -}); -``` - -**For Mac OS notifications, icon and contentImage requires OS X 10.9.** - -Sound can be one of these: `Basso`, `Blow`, `Bottle`, `Frog`, `Funk`, `Glass`, -`Hero`, `Morse`, `Ping`, `Pop`, `Purr`, `Sosumi`, `Submarine`, `Tink`. If -sound is simply `true`, `Bottle` is used. - -See [specific Notification Center example](./example/advanced.js). - -### Usage WindowsToaster - -**Note:** There are some limitations for images in native Windows 8 notifications: -The image must be a PNG image, and cannot be over 1024x1024 px, or over over 200Kb. -You also need to specify the image by using absolute path. These limitations are -due to the Toast notification system. A good tip is to use something like -`path.join` or `path.delimiter` to have cross-platform pathing. - -[toaster](https://github.com/nels-o/toaster) is used to get native Windows Toasts! - -```javascript -var WindowsToaster = require('node-notifier').WindowsToaster; - -var notifier = new WindowsToaster({ - withFallback: false, // Fallback to Growl or Balloons? - customPath: void 0 // Relative path if you want to use your fork of toast.exe -}); - -notifier.notify({ - title: void 0, - message: void 0, - icon: void 0, // absolute path to an icon - sound: false, // true | false. - wait: false, // if wait for notification to end -}, function(error, response) { - console.log(response); -}); -``` - -### Usage Growl - -```javascript -var Growl = require('node-notifier').Growl; - -var notifier = new Growl({ - name: 'Growl Name Used' // Defaults as 'Node' -}); - -notifier.notify({ - title: 'Foo', - message: 'Hello World', - icon: fs.readFileSync(__dirname + "/coulson.jpg"), - wait: false, // if wait for user interaction - - // and other growl options like sticky etc. - sticky: false, - label: void 0, - priority: void 0 -}); -``` - -See more information about using -[growly](https://github.com/theabraham/growly/). - -### Usage WindowsBalloon - -For earlier Windows versions, the taskbar balloons are used (unless -fallback is activated and Growl is running). For balloons a great -project called [notifu](http://www.paralint.com/projects/notifu/) is used. - -```javascript -var WindowsBalloon = require('node-notifier').WindowsBalloon; - -var notifier = new WindowsBalloon({ - withFallback: false, // Try Windows 8 and Growl first? - customPath: void 0 // Relative path if you want to use your fork of notifu -}); - -notifier.notify({ - title: void 0, - message: void 0, - sound: false, // true | false. - time: 5000, // How long to show balloons in ms - wait: false, // if wait for notification to end -}, function(error, response) { - console.log(response); -}); -``` - -See full usage on the [project homepage: -notifu](http://www.paralint.com/projects/notifu/). - -### Usage NotifySend - -Note: notify-send doesn't support the wait flag. - -```javascript -var NotifySend = require('node-notifier').NotifySend; - -var notifier = new NotifySend(); - -notifier.notify({ - title: 'Foo', - message: 'Hello World', - icon: __dirname + "/coulson.jpg", - - // .. and other notify-send flags: - urgency: void 0, - time: void 0, - category: void 0, - hint: void 0, -}); -``` - -See flags and options [on the man pages](http://manpages.ubuntu.com/manpages/gutsy/man1/notify-send.1.html) - - -## Thanks to OSS - -A very special thanks to all the modules `node-notifier` uses. -* [terminal-notifier](https://github.com/alloy/terminal-notifier) -* [toaster](https://github.com/nels-o/toaster) -* [notifu](http://www.paralint.com/projects/notifu/) -* [growly](https://github.com/theabraham/growly/) - -[![NPM downloads][npm-downloads]][npm-url] - -## License - -[MIT License](http://en.wikipedia.org/wiki/MIT_License) - -[npm-url]: https://npmjs.org/package/node-notifier -[npm-image]: http://img.shields.io/npm/v/node-notifier.svg?style=flat -[npm-downloads]: http://img.shields.io/npm/dm/node-notifier.svg?style=flat - -[travis-url]: http://travis-ci.org/mikaelbr/node-notifier -[travis-image]: http://img.shields.io/travis/mikaelbr/node-notifier.svg?style=flat - -[depstat-url]: https://gemnasium.com/mikaelbr/node-notifier -[depstat-image]: http://img.shields.io/gemnasium/mikaelbr/node-notifier.svg?style=flat diff --git a/node_modules/node-notifier/example/advanced.js b/node_modules/node-notifier/example/advanced.js deleted file mode 100644 index b0aa367..0000000 --- a/node_modules/node-notifier/example/advanced.js +++ /dev/null @@ -1,12 +0,0 @@ -var notifier = require('../'); -var nc = new notifier.NotificationCenter(); - -nc.notify({ - 'title': 'Phil Coulson', - 'subtitle': 'Agent of S.H.I.E.L.D.', - 'message': 'If I come out, will you shoot me? \'Cause then I won\'t come out.', - 'sound': 'Funk', // case sensitive - 'appIcon': __dirname + '/coulson.jpg', - 'contentImage': __dirname + '/coulson.jpg', - 'open': 'file://' + __dirname + '/coulson.jpg' -}); diff --git a/node_modules/node-notifier/example/coulson.jpg b/node_modules/node-notifier/example/coulson.jpg deleted file mode 100644 index 505ee19fd13ce98096885b901f2143a601e988fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31737 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 Bv3>vm diff --git a/node_modules/node-notifier/example/message.js b/node_modules/node-notifier/example/message.js deleted file mode 100644 index c51e5a5..0000000 --- a/node_modules/node-notifier/example/message.js +++ /dev/null @@ -1,14 +0,0 @@ -var notifier = require('../index'); - -notifier - .notify({ - 'message': 'Hello', - 'wait': true - }, function (err, data) { - // Will also wait until notification is closed. - console.log('Waited'); - console.log(err, data); - }) - .on('click', function () { - console.log(arguments); - }); diff --git a/node_modules/node-notifier/example/windows.png b/node_modules/node-notifier/example/windows.png deleted file mode 100644 index aa7c9b4dca4c2a83a2ee19e0226787bb64b1951a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15108 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.0.0'); -}; - -module.exports.isWin8 = function() { - return os.type() === 'Windows_NT' && semver.satisfies(garanteeSemverFormat(os.release()), '>=6.2.9200'); -}; - -module.exports.isLessThanWin8 = function() { - return os.type() === 'Windows_NT' && semver.satisfies(garanteeSemverFormat(os.release()), '<6.2.9200'); -}; - -function garanteeSemverFormat (version) { - if (version.split('.').length === 2) { - version += '.0'; - } - return version; -} diff --git a/node_modules/node-notifier/node-notifier_flow.png b/node_modules/node-notifier/node-notifier_flow.png deleted file mode 100644 index bc4c12e529ec18ea5f0f34931f5cd51125725759..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20073 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 diff --git a/node_modules/node-notifier/node_modules/.bin/semver b/node_modules/node-notifier/node_modules/.bin/semver deleted file mode 120000 index 317eb29..0000000 --- a/node_modules/node-notifier/node_modules/.bin/semver +++ /dev/null @@ -1 +0,0 @@ -../semver/bin/semver \ No newline at end of file diff --git a/node_modules/node-notifier/node_modules/.bin/which b/node_modules/node-notifier/node_modules/.bin/which deleted file mode 120000 index f62471c..0000000 --- a/node_modules/node-notifier/node_modules/.bin/which +++ /dev/null @@ -1 +0,0 @@ -../which/bin/which \ No newline at end of file diff --git a/node_modules/node-notifier/node_modules/clone/.npmignore b/node_modules/node-notifier/node_modules/clone/.npmignore deleted file mode 100644 index c2658d7..0000000 --- a/node_modules/node-notifier/node_modules/clone/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/node_modules/node-notifier/node_modules/clone/README.md b/node_modules/node-notifier/node_modules/clone/README.md deleted file mode 100644 index d7231cf..0000000 --- a/node_modules/node-notifier/node_modules/clone/README.md +++ /dev/null @@ -1,126 +0,0 @@ -# clone - -[![build status](https://secure.travis-ci.org/pvorb/node-clone.png)](http://travis-ci.org/pvorb/node-clone) - -offers foolproof _deep cloning_ of variables in JavaScript. - - -## Installation - - npm install clone - -or - - ender build clone - - -## Example - -~~~ javascript -var clone = require('clone'); - -var a, b; - -a = { foo: { bar: 'baz' } }; // initial value of a - -b = clone(a); // clone a -> b -a.foo.bar = 'foo'; // change a - -console.log(a); // show a -console.log(b); // show b -~~~ - -This will print: - -~~~ javascript -{ foo: { bar: 'foo' } } -{ foo: { bar: 'baz' } } -~~~ - -**clone** masters cloning simple objects (even with custom prototype), arrays, -Date objects, and RegExp objects. Everything is cloned recursively, so that you -can clone dates in arrays in objects, for example. - - -## API - -`clone(val, circular, depth)` - - * `val` -- the value that you want to clone, any type allowed - * `circular` -- boolean - - Call `clone` with `circular` set to `false` if you are certain that `obj` - contains no circular references. This will give better performance if needed. - There is no error if `undefined` or `null` is passed as `obj`. - * `depth` -- depth to which the object is to be cloned (optional, - defaults to infinity) - -`clone.clonePrototype(obj)` - - * `obj` -- the object that you want to clone - -Does a prototype clone as -[described by Oran Looney](http://oranlooney.com/functional-javascript/). - - -## Circular References - -~~~ javascript -var a, b; - -a = { hello: 'world' }; - -a.myself = a; -b = clone(a); - -console.log(b); -~~~ - -This will print: - -~~~ javascript -{ hello: "world", myself: [Circular] } -~~~ - -So, `b.myself` points to `b`, not `a`. Neat! - - -## Test - - npm test - - -## Caveat - -Some special objects like a socket or `process.stdout`/`stderr` are known to not -be cloneable. If you find other objects that cannot be cloned, please [open an -issue](https://github.com/pvorb/node-clone/issues/new). - - -## Bugs and Issues - -If you encounter any bugs or issues, feel free to [open an issue at -github](https://github.com/pvorb/node-clone/issues) or send me an email to -. I also always like to hear from you, if you’re using my code. - -## License - -Copyright © 2011-2014 [Paul Vorbach](http://paul.vorba.ch/) and -[contributors](https://github.com/pvorb/node-clone/graphs/contributors). - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the “Software”), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/node-notifier/node_modules/clone/clone.js b/node_modules/node-notifier/node_modules/clone/clone.js deleted file mode 100644 index f8fa315..0000000 --- a/node_modules/node-notifier/node_modules/clone/clone.js +++ /dev/null @@ -1,144 +0,0 @@ -'use strict'; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - -// shim for Node's 'util' package -// DO NOT REMOVE THIS! It is required for compatibility with EnderJS (http://enderjs.com/). -var util = { - isArray: function (ar) { - return Array.isArray(ar) || (typeof ar === 'object' && objectToString(ar) === '[object Array]'); - }, - isDate: function (d) { - return typeof d === 'object' && objectToString(d) === '[object Date]'; - }, - isRegExp: function (re) { - return typeof re === 'object' && objectToString(re) === '[object RegExp]'; - }, - getRegExpFlags: function (re) { - var flags = ''; - re.global && (flags += 'g'); - re.ignoreCase && (flags += 'i'); - re.multiline && (flags += 'm'); - return flags; - } -}; - - -if (typeof module === 'object') - module.exports = clone; - -/** - * Clones (copies) an Object using deep copying. - * - * This function supports circular references by default, but if you are certain - * there are no circular references in your object, you can save some CPU time - * by calling clone(obj, false). - * - * Caution: if `circular` is false and `parent` contains circular references, - * your program may enter an infinite loop and crash. - * - * @param `parent` - the object to be cloned - * @param `circular` - set to true if the object to be cloned may contain - * circular references. (optional - true by default) - * @param `depth` - set to a number if the object is only to be cloned to - * a particular depth. (optional - defaults to Infinity) - * @param `prototype` - sets the prototype to be used when cloning an object. - * (optional - defaults to parent prototype). -*/ - -function clone(parent, circular, depth, prototype) { - // maintain two arrays for circular references, where corresponding parents - // and children have the same index - var allParents = []; - var allChildren = []; - - var useBuffer = typeof Buffer != 'undefined'; - - if (typeof circular == 'undefined') - circular = true; - - if (typeof depth == 'undefined') - depth = Infinity; - - // recurse this function so we don't reset allParents and allChildren - function _clone(parent, depth) { - // cloning null always returns null - if (parent === null) - return null; - - if (depth == 0) - return parent; - - var child; - var proto; - if (typeof parent != 'object') { - return parent; - } - - if (util.isArray(parent)) { - child = []; - } else if (util.isRegExp(parent)) { - child = new RegExp(parent.source, util.getRegExpFlags(parent)); - if (parent.lastIndex) child.lastIndex = parent.lastIndex; - } else if (util.isDate(parent)) { - child = new Date(parent.getTime()); - } else if (useBuffer && Buffer.isBuffer(parent)) { - child = new Buffer(parent.length); - parent.copy(child); - return child; - } else { - if (typeof prototype == 'undefined') { - proto = Object.getPrototypeOf(parent); - child = Object.create(proto); - } - else { - child = Object.create(prototype); - proto = prototype; - } - } - - if (circular) { - var index = allParents.indexOf(parent); - - if (index != -1) { - return allChildren[index]; - } - allParents.push(parent); - allChildren.push(child); - } - - for (var i in parent) { - var attrs; - if (proto) { - attrs = Object.getOwnPropertyDescriptor(proto, i); - } - - if (attrs && attrs.set == null) { - continue; - } - child[i] = _clone(parent[i], depth - 1); - } - - return child; - } - - return _clone(parent, depth); -} - -/** - * Simple flat clone using prototype, accepts only objects, usefull for property - * override on FLAT configuration object (no nested props). - * - * USE WITH CAUTION! This may not behave as you wish if you do not know how this - * works. - */ -clone.clonePrototype = function(parent) { - if (parent === null) - return null; - - var c = function () {}; - c.prototype = parent; - return new c(); -}; diff --git a/node_modules/node-notifier/node_modules/clone/package.json b/node_modules/node-notifier/node_modules/clone/package.json deleted file mode 100644 index 93617d7..0000000 --- a/node_modules/node-notifier/node_modules/clone/package.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "name": "clone", - "description": "deep cloning of objects and arrays", - "tags": [ - "clone", - "object", - "array", - "function", - "date" - ], - "version": "0.1.19", - "repository": { - "type": "git", - "url": "git://github.com/pvorb/node-clone.git" - }, - "bugs": { - "url": "https://github.com/pvorb/node-clone/issues" - }, - "main": "clone.js", - "author": { - "name": "Paul Vorbach", - "email": "paul@vorba.ch", - "url": "http://paul.vorba.ch/" - }, - "contributors": [ - { - "name": "Blake Miner", - "email": "miner.blake@gmail.com", - "url": "http://www.blakeminer.com/" - }, - { - "name": "Tian You", - "email": "axqd001@gmail.com", - "url": "http://blog.axqd.net/" - }, - { - "name": "George Stagas", - "email": "gstagas@gmail.com", - "url": "http://stagas.com/" - }, - { - "name": "Tobiasz Cudnik", - "email": "tobiasz.cudnik@gmail.com", - "url": "https://github.com/TobiaszCudnik" - }, - { - "name": "Pavel Lang", - "email": "langpavel@phpskelet.org", - "url": "https://github.com/langpavel" - }, - { - "name": "Dan MacTough", - "url": "http://yabfog.com/" - }, - { - "name": "w1nk", - "url": "https://github.com/w1nk" - }, - { - "name": "Hugh Kennedy", - "url": "http://twitter.com/hughskennedy" - }, - { - "name": "Dustin Diaz", - "url": "http://dustindiaz.com" - }, - { - "name": "Ilya Shaisultanov", - "url": "https://github.com/diversario" - }, - { - "name": "Nathan MacInnes", - "email": "nathan@macinn.es", - "url": "http://macinn.es/" - }, - { - "name": "Benjamin E. Coe", - "email": "ben@npmjs.com", - "url": "https://twitter.com/benjamincoe" - }, - { - "name": "Nathan Zadoks", - "url": "https://github.com/nathan7" - }, - { - "name": "Róbert Oroszi", - "email": "robert+gh@oroszi.net", - "url": "https://github.com/oroce" - } - ], - "license": "MIT", - "engines": { - "node": "*" - }, - "dependencies": {}, - "devDependencies": { - "underscore": "*", - "nodeunit": "*" - }, - "optionalDependencies": {}, - "scripts": { - "test": "nodeunit test.js" - }, - "gitHead": "bb11a43363a0f69e8ac014cb5376ce215ea1f8fd", - "homepage": "https://github.com/pvorb/node-clone", - "_id": "clone@0.1.19", - "_shasum": "613fb68639b26a494ac53253e15b1a6bd88ada85", - "_from": "clone@^0.1.18", - "_npmVersion": "1.4.14", - "_npmUser": { - "name": "pvorb", - "email": "paul@vorba.ch" - }, - "maintainers": [ - { - "name": "pvorb", - "email": "paul@vorb.de" - } - ], - "dist": { - "shasum": "613fb68639b26a494ac53253e15b1a6bd88ada85", - "tarball": "http://registry.npmjs.org/clone/-/clone-0.1.19.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz" -} diff --git a/node_modules/node-notifier/node_modules/clone/test.js b/node_modules/node-notifier/node_modules/clone/test.js deleted file mode 100644 index cb3d166..0000000 --- a/node_modules/node-notifier/node_modules/clone/test.js +++ /dev/null @@ -1,289 +0,0 @@ -if(module.parent === null) { - console.log('Run this test file with nodeunit:'); - console.log('$ nodeunit test.js'); -} - - -var clone = require('./'); -var util = require('util'); -var _ = require('underscore'); - - - -exports["clone string"] = function(test) { - test.expect(2); // how many tests? - - var a = "foo"; - test.strictEqual(clone(a), a); - a = ""; - test.strictEqual(clone(a), a); - - test.done(); -}; - - - -exports["clone number"] = function(test) { - test.expect(5); // how many tests? - - var a = 0; - test.strictEqual(clone(a), a); - a = 1; - test.strictEqual(clone(a), a); - a = -1000; - test.strictEqual(clone(a), a); - a = 3.1415927; - test.strictEqual(clone(a), a); - a = -3.1415927; - test.strictEqual(clone(a), a); - - test.done(); -}; - - - -exports["clone date"] = function(test) { - test.expect(3); // how many tests? - - var a = new Date; - var c = clone(a); - test.ok(a instanceof Date); - test.ok(c instanceof Date); - test.equal(c.getTime(), a.getTime()); - - test.done(); -}; - - - -exports["clone object"] = function(test) { - test.expect(2); // how many tests? - - var a = { foo: { bar: "baz" } }; - var b = clone(a); - - test.ok(_(a).isEqual(b), "underscore equal"); - test.deepEqual(b, a); - - test.done(); -}; - - - -exports["clone array"] = function(test) { - test.expect(2); // how many tests? - - var a = [ - { foo: "bar" }, - "baz" - ]; - var b = clone(a); - - test.ok(_(a).isEqual(b), "underscore equal"); - test.deepEqual(b, a); - - test.done(); -}; - -exports["clone buffer"] = function(test) { - test.expect(1); - - var a = new Buffer("this is a test buffer"); - var b = clone(a); - - // no underscore equal since it has no concept of Buffers - test.deepEqual(b, a); - test.done(); -}; - - - -exports["clone regexp"] = function(test) { - test.expect(5); - - var a = /abc123/gi; - var b = clone(a); - - test.deepEqual(b, a); - - var c = /a/g; - test.ok(c.lastIndex === 0); - - c.exec('123a456a'); - test.ok(c.lastIndex === 4); - - var d = clone(c); - test.ok(d.global); - test.ok(d.lastIndex === 4); - - test.done(); -}; - - -exports["clone object containing array"] = function(test) { - test.expect(2); // how many tests? - - var a = { - arr1: [ { a: '1234', b: '2345' } ], - arr2: [ { c: '345', d: '456' } ] - }; - var b = clone(a); - - test.ok(_(a).isEqual(b), "underscore equal"); - test.deepEqual(b, a); - - test.done(); -}; - - - -exports["clone object with circular reference"] = function(test) { - test.expect(8); // how many tests? - - var _ = test.ok; - var c = [1, "foo", {'hello': 'bar'}, function() {}, false, [2]]; - var b = [c, 2, 3, 4]; - var a = {'b': b, 'c': c}; - a.loop = a; - a.loop2 = a; - c.loop = c; - c.aloop = a; - var aCopy = clone(a); - _(a != aCopy); - _(a.c != aCopy.c); - _(aCopy.c == aCopy.b[0]); - _(aCopy.c.loop.loop.aloop == aCopy); - _(aCopy.c[0] == a.c[0]); - - //console.log(util.inspect(aCopy, true, null) ); - //console.log("------------------------------------------------------------"); - //console.log(util.inspect(a, true, null) ); - _(eq(a, aCopy)); - aCopy.c[0] = 2; - _(!eq(a, aCopy)); - aCopy.c = "2"; - _(!eq(a, aCopy)); - //console.log("------------------------------------------------------------"); - //console.log(util.inspect(aCopy, true, null) ); - - function eq(x, y) { - return util.inspect(x, true, null) === util.inspect(y, true, null); - } - - test.done(); -}; - - - -exports['clonePrototype'] = function(test) { - test.expect(3); // how many tests? - - var a = { - a: "aaa", - x: 123, - y: 45.65 - }; - var b = clone.clonePrototype(a); - - test.strictEqual(b.a, a.a); - test.strictEqual(b.x, a.x); - test.strictEqual(b.y, a.y); - - test.done(); -} - -exports['cloneWithinNewVMContext'] = function(test) { - test.expect(3); - var vm = require('vm'); - var ctx = vm.createContext({ clone: clone }); - var script = "clone( {array: [1, 2, 3], date: new Date(), regex: /^foo$/ig} );"; - var results = vm.runInContext(script, ctx); - test.ok(results.array instanceof Array); - test.ok(results.date instanceof Date); - test.ok(results.regex instanceof RegExp); - test.done(); -} - -exports['cloneObjectWithNoConstructor'] = function(test) { - test.expect(3); - var n = null; - var a = { foo: 'bar' }; - a.__proto__ = n; - test.ok(typeof a === 'object'); - test.ok(typeof a !== null); - var b = clone(a); - test.ok(a.foo, b.foo); - test.done(); -} - -exports['clone object with depth argument'] = function (test) { - test.expect(6); - var a = { - foo: { - bar : { - baz : 'qux' - } - } - }; - var b = clone(a, false, 1); - test.deepEqual(b, a); - test.notEqual(b, a); - test.strictEqual(b.foo, a.foo); - - b = clone(a, true, 2); - test.deepEqual(b, a); - test.notEqual(b.foo, a.foo); - test.strictEqual(b.foo.bar, a.foo.bar); - test.done(); -} - -exports['maintain prototype chain in clones'] = function (test) { - test.expect(1); - function Constructor() {} - var a = new Constructor(); - var b = clone(a); - test.strictEqual(Object.getPrototypeOf(a), Object.getPrototypeOf(b)); - test.done(); -} - -exports['parent prototype is overriden with prototype provided'] = function (test) { - test.expect(1); - function Constructor() {} - var a = new Constructor(); - var b = clone(a, true, Infinity, null); - test.strictEqual(b.__defineSetter__, undefined); - test.done(); -} - -exports['clone object with null children'] = function(test) { - test.expect(1); - var a = { - foo: { - bar: null, - baz: { - qux: false - } - } - }; - var b = clone(a); - test.deepEqual(b, a); - test.done(); -} - -exports['clone instance with getter'] = function(test) { - test.expect(1); - function Ctor() {}; - Object.defineProperty(Ctor.prototype, 'prop', { - configurable: true, - enumerable: true, - get: function() { - return 'value'; - } - }); - - var a = new Ctor(); - var b = clone(a); - - test.strictEqual(b.prop, 'value'); - test.done(); -}; \ No newline at end of file diff --git a/node_modules/node-notifier/node_modules/growly/HISTORY.md b/node_modules/node-notifier/node_modules/growly/HISTORY.md deleted file mode 100644 index 1ea94f1..0000000 --- a/node_modules/node-notifier/node_modules/growly/HISTORY.md +++ /dev/null @@ -1,5 +0,0 @@ -1.1.0 / 2012-12-12 -================== - -- Default registration work lazily, and is performed on the first call to `Growly.notify()`. -- Added callback to `Growly.register()`. diff --git a/node_modules/node-notifier/node_modules/growly/README.md b/node_modules/node-notifier/node_modules/growly/README.md deleted file mode 100644 index 6d1f807..0000000 --- a/node_modules/node-notifier/node_modules/growly/README.md +++ /dev/null @@ -1,90 +0,0 @@ -# Growly # - -Simple zero-dependency Growl notifications using GNTP. - -## Installation ## - -Install growly using `npm`: - -``` -npm install growly -``` - -And then require it: - -```javascript -var growly = require('growly'); -``` - -This module uses the Growl Network Transport Protocol (GNTP) which was implemented in Growl since version 1.3, so you **must have an appropriate version of Growl installed** for Growly to work. - -## Example ## - -Sending a minimal Growl notification: - -```javascript -var growly = require('growly'); - -growly.notify('This is as easy as it gets', { title: 'Hello, World!' }); -``` - -More examples can be found in the *example/* directory. - -## Usage ## - -The growly module exposes only two methods: `Growly.register()` and `Growly.notify()`. - -### Growly.register(appname, [appicon], [notifications], [callback]) ### - -Registers a new application with Growl. Registration is completely optional since it will be performed automatically for you with sensible defaults. Useful if you want your application, with its own icon and types of notifications, to show up in Growl's prefence panel. - - - `appname` the name of the application (required.) - - `appicon` url, file path, or Buffer instance for an application icon image. - - `notifications` a list of defined notification types with the following properties: - - `.label` name used to identify the type of notification being used (required.) - - `.dispname` name users will see in Growl's preference panel (defaults to `.label`.) - - `.enabled` whether or not notifications of this type are enabled (defaults to true.) - - `callback` called when the registration completes; if registration fails, the first argument will be an Error object. - -An example: - -```javascript -growly.register('My Application', 'path/to/icon.png', [ - { label: 'success', dispname: 'Success' }, - { label: 'warning', dispname: 'Warning', enabled: false } -], function(err) { - console.log(err || 'Registration successful!'); -}); -``` - -### Growly.notify(text, [opts], [callback]) ### - -Sends a Growl notification. If an application wasn't registered beforehand with `growly.register()`, a default application will automatically be registered beforesending the notification. - - - `text` the body of the notification. - - `opts` an object with the following properties: - - `.title` title of the notification. - - `.icon` url, file path, or Buffer instance for the notification's icon. - - `.sticky` whether or not to sticky the notification (defaults to false.) - - `.label` type of notification to use (defaults to the first registered notification type.) - - `.priority` the priority of the notification from lowest (-2) to highest (2). - - `callback` called when the user has closed/clicked the notification. The callback is passed an Error object `err` as the first argument when the notification fails; otherwise, the second argument `action` is a string that'll describe which action has been taken by the user (either 'closed' or 'clicked'.) - -An example: - -```javascript -/* Assuming an application was registered with a notification type labeled 'warning'. */ -growly.notify('Stuffs broken!', { label: 'warning' }, function(err, action) { - console.log('Action:', action); -}); -``` - -## License ## - -Copyright (C) 2012 Ibrahim Al-Rajhi - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/node-notifier/node_modules/growly/example/bakery.js b/node_modules/node-notifier/node_modules/growly/example/bakery.js deleted file mode 100644 index bcf47a8..0000000 --- a/node_modules/node-notifier/node_modules/growly/example/bakery.js +++ /dev/null @@ -1,22 +0,0 @@ -var growly = require('../lib/growly.js'); - -var notifications = [ - { label: 'muffin', dispname: 'Muffin' }, - { label: 'cake', dispname: 'Cake' } - ], - muffinopts = { label: 'muffin', icon: 'muffin.png' }, - cakeopts = { label: 'cake', title: 'Cake is ready!', icon: 'cake.png', sticky: true }; - -growly.register('Bakery', 'muffin.png', notifications, function(err) { - if (err) { - console.log(err); - return; - } - - growly.notify('Looks like it is half past muffin time!', muffinopts); - - growly.notify('Click to deliver', cakeopts, function(err, action) { - console.log('You', action, 'the notification, so the cake is on its way!'); - }); -}); - diff --git a/node_modules/node-notifier/node_modules/growly/example/cake.png b/node_modules/node-notifier/node_modules/growly/example/cake.png deleted file mode 100644 index bc53679f5d2b4ec599ebab057829690dac93cbe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14813 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 0) { - if (self.attempts <= self.maxAttempts) { - self.retry(callback); - } else { - var msg = 'GNTP request to "%s:%d" failed with error code %s (%s)'; - callback(new Error(format(msg, self.host, self.port, resp['Error-Code'], resp['Error-Description']))); - } - } else { - callback(undefined, resp); - } - }); - - socket.on('error', function() { - callback(new Error(format('Error while sending GNTP request to "%s:%d"', self.host, self.port))); - socket.destroy(); - }); -}; - -module.exports = GNTP; diff --git a/node_modules/node-notifier/node_modules/growly/lib/growly.js b/node_modules/node-notifier/node_modules/growly/lib/growly.js deleted file mode 100644 index c128e64..0000000 --- a/node_modules/node-notifier/node_modules/growly/lib/growly.js +++ /dev/null @@ -1,177 +0,0 @@ -var GNTP = require('./gntp.js'); - -/** - * Interface for registering Growl applications and sending Growl notifications. - * - * @api private - */ - -function Growly() { - this.appname = 'Growly'; - this.notifications = undefined; - this.labels = undefined; - this.count = 0; - this.registered = false; -} - -/** - * Returns an array of label strings extracted from each notification object in - * `Growly.notifications`. - * - * @param {Array} notifications - * @return {Array} notification labels - * @api private - */ - -Growly.prototype.getLabels = function() { - return this.notifications.map(function(notif) { - return notif.label; - }); -}; - -/** - * Register an application with the name `appname` (required), icon `appicon`, and - * a list of notification types `notifications`. If provided, `callback` will be - * called when the request completes with the first argument being an `err` error - * object if the request failed. - * - * Each object in the `notifications` array defines a type of notification the - * application will have with the following properties: - * - * - `.label` name used to identify the type of notification being used (required) - * - `.dispname` name users will see in Growl's preference panel (defaults to `.label`) - * - `.enabled` whether or not notifications of this type are enabled (defaults to true) - * - `.icon` default icon notifications of this type should use (url, file path, or Buffer object) - * - * Example registration: - * - * growl.register('My Application', 'path/to/icon.png', [ - * { label: 'success', dispname: 'Success', icon: 'path/to/success.png' }, - * { label: 'warning', dispname: 'Warning', icon: 'path/to/warning.png', enabled: false } - * ], function(err) { console.log(err || 'Registration successful!'); }); - * - * @param {String} appname - * @param {String|Buffer} appicon - * @param {Array} notifications - * @param {Function} callback - * @api public - */ - -Growly.prototype.register = function(appname, appicon, notifications, callback) { - var gntp; - - if (typeof appicon === 'object') { - notifications = appicon; - appicon = undefined; - } - - if (notifications === undefined || !notifications.length) { - notifications = [{ label: 'default', dispname: 'Default Notification', enabled: true }]; - } - - if (typeof arguments[arguments.length - 1] === 'function') { - callback = arguments[arguments.length - 1]; - } else { - callback = function() {}; - } - - this.appname = appname; - this.notifications = notifications; - this.labels = this.getLabels(); - this.registered = true; - - gntp = new GNTP('REGISTER'); - gntp.add('Application-Name', appname); - gntp.add('Application-Icon', appicon); - gntp.add('Notifications-Count', notifications.length); - gntp.newline(); - - notifications.forEach(function(notif) { - if (notif.enabled === undefined) notif.enabled = true; - gntp.add('Notification-Name', notif.label); - gntp.add('Notification-Display-Name', notif.dispname); - gntp.add('Notification-Enabled', notif.enabled ? 'True' : 'False'); - gntp.add('Notification-Icon', notif.icon); - gntp.newline(); - }); - - gntp.send(callback); -}; - -/** - * Send a notification with `text` content. Growly will lazily register itself - * if the user hasn't already before sending the notification. - * - * A notification can have the following `opts` options: - * - * - `.label` type of notification to use (defaults to the first registered type) - * - `.title` title of the notification - * - `.icon` url, file path, or Buffer instance for the notification's icon. - * - `.sticky` whether or not to sticky the notification (defaults to false) - * - `.priority` the priority of the notification from lowest (-2) to highest (2) - * - * If provided, `callback` will be called when the user interacts with the notification. - * The first argument will be an `err` error object, and the second argument an `action` - * string equal to either 'clicked' or 'closed' (whichever action the user took.) - * - * Example notification: - * - * growl.notify('Stuffs broken!', { label: 'warning' }, function(err, action) { - * console.log('Action:', action); - * }); - * - * @param {String} text - * @param {Object} opts - * @param {Function} callback - * @api public - */ - -Growly.prototype.notify = function(text, opts, callback) { - var self = this, - gntp; - - /* Lazy registration. */ - if (!this.registered) { - this.register(this.appname, function(err) { - if (err) console.log(err); - self.notify.call(self, text, opts, callback); - }); - return; - } - - opts = opts || {}; - - if (typeof opts === 'function') { - callback = opts; - opts = {}; - } - - gntp = new GNTP('NOTIFY'); - gntp.add('Application-Name', this.appname); - gntp.add('Notification-Name', opts.label || this.labels[0]); - gntp.add('Notification-ID', ++this.count); - gntp.add('Notification-Title', opts.title); - gntp.add('Notification-Text', text); - gntp.add('Notification-Sticky', opts.sticky ? 'True' : 'False'); - gntp.add('Notification-Priority', opts.priority); - gntp.add('Notification-Icon', opts.icon); - gntp.add('Notification-Coalescing-ID', undefined); - gntp.add('Notification-Callback-Context', callback ? 'context' : undefined); - gntp.add('Notification-Callback-Context-Type', callback ? 'string' : undefined); - gntp.add('Notification-Callback-Target', undefined); - gntp.newline(); - - gntp.send(function(err, resp) { - if (callback && err) { - callback(err); - } else if (callback && resp.state === 'CALLBACK') { - callback(undefined, resp['Notification-Callback-Result'].toLowerCase()); - } - }); -}; - -/** - * Expose an instance of the Growly object. - */ - -module.exports = new Growly(); diff --git a/node_modules/node-notifier/node_modules/growly/package.json b/node_modules/node-notifier/node_modules/growly/package.json deleted file mode 100644 index 4b52dc2..0000000 --- a/node_modules/node-notifier/node_modules/growly/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "growly", - "version": "1.1.1", - "description": "Simple zero-dependency Growl notifications using GNTP.", - "keywords": [ - "growl", - "growly", - "snarl", - "notifications", - "gntp", - "messages" - ], - "author": { - "name": "Ibrahim Al-Rajhi", - "email": "abrahamalrajhi@gmail.com", - "url": "http://ibrahimalrajhi.com/" - }, - "repository": { - "type": "git", - "url": "http://github.com/theabraham/growly" - }, - "bugs": "http://github.com/theabraham/growly/issues", - "main": "lib/growly.js", - "directories": { - "example": "example", - "lib": "lib" - }, - "license": "MIT", - "readme": "# Growly #\n\nSimple zero-dependency Growl notifications using GNTP.\n\n## Installation ##\n\nInstall growly using `npm`:\n\n```\nnpm install growly\n```\n\nAnd then require it:\n\n```javascript\nvar growly = require('growly');\n```\n\nThis module uses the Growl Network Transport Protocol (GNTP) which was implemented in Growl since version 1.3, so you **must have an appropriate version of Growl installed** for Growly to work.\n\n## Example ##\n\nSending a minimal Growl notification:\n\n```javascript\nvar growly = require('growly');\n\ngrowly.notify('This is as easy as it gets', { title: 'Hello, World!' });\n```\n\nMore examples can be found in the *example/* directory.\n\n## Usage ##\n\nThe growly module exposes only two methods: `Growly.register()` and `Growly.notify()`. \n\n### Growly.register(appname, [appicon], [notifications], [callback]) ###\n\nRegisters a new application with Growl. Registration is completely optional since it will be performed automatically for you with sensible defaults. Useful if you want your application, with its own icon and types of notifications, to show up in Growl's prefence panel.\n\n - `appname` the name of the application (required.)\n - `appicon` url, file path, or Buffer instance for an application icon image.\n - `notifications` a list of defined notification types with the following properties:\n - `.label` name used to identify the type of notification being used (required.)\n - `.dispname` name users will see in Growl's preference panel (defaults to `.label`.)\n - `.enabled` whether or not notifications of this type are enabled (defaults to true.)\n - `callback` called when the registration completes; if registration fails, the first argument will be an Error object.\n\nAn example:\n\n```javascript\ngrowly.register('My Application', 'path/to/icon.png', [\n { label: 'success', dispname: 'Success' },\n { label: 'warning', dispname: 'Warning', enabled: false }\n], function(err) {\n console.log(err || 'Registration successful!');\n});\n```\n\n### Growly.notify(text, [opts], [callback]) ###\n\nSends a Growl notification. If an application wasn't registered beforehand with `growly.register()`, a default application will automatically be registered beforesending the notification.\n\n - `text` the body of the notification.\n - `opts` an object with the following properties:\n - `.title` title of the notification.\n - `.icon` url, file path, or Buffer instance for the notification's icon.\n - `.sticky` whether or not to sticky the notification (defaults to false.)\n - `.label` type of notification to use (defaults to the first registered notification type.)\n - `.priority` the priority of the notification from lowest (-2) to highest (2).\n - `callback` called when the user has closed/clicked the notification. The callback is passed an Error object `err` as the first argument when the notification fails; otherwise, the second argument `action` is a string that'll describe which action has been taken by the user (either 'closed' or 'clicked'.)\n\nAn example:\n\n```javascript\n/* Assuming an application was registered with a notification type labeled 'warning'. */\ngrowly.notify('Stuffs broken!', { label: 'warning' }, function(err, action) {\n console.log('Action:', action);\n});\n```\n\n## License ##\n\nCopyright (C) 2012 Ibrahim Al-Rajhi \n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", - "_id": "growly@1.1.1", - "dist": { - "shasum": "eb434a0e56f0241d82864cbfd4112c70911242fa", - "tarball": "http://registry.npmjs.org/growly/-/growly-1.1.1.tgz" - }, - "_npmVersion": "1.1.61", - "_npmUser": { - "name": "theabraham", - "email": "abrahamalrajhi@gmail.com" - }, - "maintainers": [ - { - "name": "theabraham", - "email": "abrahamalrajhi@gmail.com" - } - ], - "_shasum": "eb434a0e56f0241d82864cbfd4112c70911242fa", - "_from": "growly@^1.1.1", - "_resolved": "https://registry.npmjs.org/growly/-/growly-1.1.1.tgz" -} diff --git a/node_modules/node-notifier/node_modules/semver/.npmignore b/node_modules/node-notifier/node_modules/semver/.npmignore deleted file mode 100644 index 7300fbc..0000000 --- a/node_modules/node-notifier/node_modules/semver/.npmignore +++ /dev/null @@ -1 +0,0 @@ -# nada diff --git a/node_modules/node-notifier/node_modules/semver/LICENSE b/node_modules/node-notifier/node_modules/semver/LICENSE deleted file mode 100644 index 0c44ae7..0000000 --- a/node_modules/node-notifier/node_modules/semver/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) Isaac Z. Schlueter ("Author") -All rights reserved. - -The BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/node-notifier/node_modules/semver/Makefile b/node_modules/node-notifier/node_modules/semver/Makefile deleted file mode 100644 index 71af0e9..0000000 --- a/node_modules/node-notifier/node_modules/semver/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -files = semver.browser.js \ - semver.min.js \ - semver.browser.js.gz \ - semver.min.js.gz - -all: $(files) - -clean: - rm -f $(files) - -semver.browser.js: head.js.txt semver.js foot.js.txt - ( cat head.js.txt; \ - cat semver.js | \ - egrep -v '^ *\/\* nomin \*\/' | \ - perl -pi -e 's/debug\([^\)]+\)//g'; \ - cat foot.js.txt ) > semver.browser.js - -semver.min.js: semver.browser.js - uglifyjs -m semver.min.js - -%.gz: % - gzip --stdout -9 <$< >$@ - -.PHONY: all clean diff --git a/node_modules/node-notifier/node_modules/semver/README.md b/node_modules/node-notifier/node_modules/semver/README.md deleted file mode 100644 index 7e1961d..0000000 --- a/node_modules/node-notifier/node_modules/semver/README.md +++ /dev/null @@ -1,275 +0,0 @@ -semver(1) -- The semantic versioner for npm -=========================================== - -## Usage - - $ npm install semver - - semver.valid('1.2.3') // '1.2.3' - semver.valid('a.b.c') // null - semver.clean(' =v1.2.3 ') // '1.2.3' - semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true - semver.gt('1.2.3', '9.8.7') // false - semver.lt('1.2.3', '9.8.7') // true - -As a command-line utility: - - $ semver -h - - Usage: semver [ [...]] [-r | -i | -d ] - Test if version(s) satisfy the supplied range(s), and sort them. - - Multiple versions or ranges may be supplied, unless increment - or decrement options are specified. In that case, only a single - version may be used, and it is incremented by the specified level - - Program exits successfully if any valid version satisfies - all supplied ranges, and prints all satisfying versions. - - If no versions are valid, or ranges are not satisfied, - then exits failure. - - Versions are printed in ascending order, so supplying - multiple versions to the utility will just sort them. - -## Versions - -A "version" is described by the `v2.0.0` specification found at -. - -A leading `"="` or `"v"` character is stripped off and ignored. - -## Ranges - -A `version range` is a set of `comparators` which specify versions -that satisfy the range. - -A `comparator` is composed of an `operator` and a `version`. The set -of primitive `operators` is: - -* `<` Less than -* `<=` Less than or equal to -* `>` Greater than -* `>=` Greater than or equal to -* `=` Equal. If no operator is specified, then equality is assumed, - so this operator is optional, but MAY be included. - -For example, the comparator `>=1.2.7` would match the versions -`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` -or `1.1.0`. - -Comparators can be joined by whitespace to form a `comparator set`, -which is satisfied by the **intersection** of all of the comparators -it includes. - -A range is composed of one or more comparator sets, joined by `||`. A -version matches a range if and only if every comparator in at least -one of the `||`-separated comparator sets is satisfied by the version. - -For example, the range `>=1.2.7 <1.3.0` would match the versions -`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, -or `1.1.0`. - -The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, -`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. - -### Prerelease Tags - -If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then -it will only be allowed to satisfy comparator sets if at least one -comparator with the same `[major, minor, patch]` tuple also has a -prerelease tag. - -For example, the range `>1.2.3-alpha.3` would be allowed to match the -version `1.2.3-alpha.7`, but it would *not* be satisfied by -`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater -than" `1.2.3-alpha.3` according to the SemVer sort rules. The version -range only accepts prerelease tags on the `1.2.3` version. The -version `3.4.5` *would* satisfy the range, because it does not have a -prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. - -The purpose for this behavior is twofold. First, prerelease versions -frequently are updated very quickly, and contain many breaking changes -that are (by the author's design) not yet fit for public consumption. -Therefore, by default, they are excluded from range matching -semantics. - -Second, a user who has opted into using a prerelease version has -clearly indicated the intent to use *that specific* set of -alpha/beta/rc versions. By including a prerelease tag in the range, -the user is indicating that they are aware of the risk. However, it -is still not appropriate to assume that they have opted into taking a -similar risk on the *next* set of prerelease versions. - -### Advanced Range Syntax - -Advanced range syntax desugars to primitive comparators in -deterministic ways. - -Advanced ranges may be combined in the same way as primitive -comparators using white space or `||`. - -#### Hyphen Ranges `X.Y.Z - A.B.C` - -Specifies an inclusive set. - -* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` - -If a partial version is provided as the first version in the inclusive -range, then the missing pieces are replaced with zeroes. - -* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` - -If a partial version is provided as the second version in the -inclusive range, then all versions that start with the supplied parts -of the tuple are accepted, but nothing that would be greater than the -provided tuple parts. - -* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0` -* `1.2.3 - 2` := `>=1.2.3 <3.0.0` - -#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` - -Any of `X`, `x`, or `*` may be used to "stand in" for one of the -numeric values in the `[major, minor, patch]` tuple. - -* `*` := `>=0.0.0` (Any version satisfies) -* `1.x` := `>=1.0.0 <2.0.0` (Matching major version) -* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions) - -A partial version range is treated as an X-Range, so the special -character is in fact optional. - -* `""` (empty string) := `*` := `>=0.0.0` -* `1` := `1.x.x` := `>=1.0.0 <2.0.0` -* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0` - -#### Tilde Ranges `~1.2.3` `~1.2` `~1` - -Allows patch-level changes if a minor version is specified on the -comparator. Allows minor-level changes if not. - -* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0` -* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`) -* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`) -* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0` -* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`) -* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`) -* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in - the `1.2.3` version will be allowed, if they are greater than or - equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but - `1.2.4-beta.2` would not, because it is a prerelease of a - different `[major, minor, patch]` tuple. - -Note: this is the same as the `~>` operator in rubygems. - -#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` - -Allows changes that do not modify the left-most non-zero digit in the -`[major, minor, patch]` tuple. In other words, this allows patch and -minor updates for versions `1.0.0` and above, patch updates for -versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. - -Many authors treat a `0.x` version as if the `x` were the major -"breaking-change" indicator. - -Caret ranges are ideal when an author may make breaking changes -between `0.2.4` and `0.3.0` releases, which is a common practice. -However, it presumes that there will *not* be breaking changes between -`0.2.4` and `0.2.5`. It allows for changes that are presumed to be -additive (but non-breaking), according to commonly observed practices. - -* `^1.2.3` := `>=1.2.3 <2.0.0` -* `^0.2.3` := `>=0.2.3 <0.3.0` -* `^0.0.3` := `>=0.0.3 <0.0.4` -* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in - the `1.2.3` version will be allowed, if they are greater than or - equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but - `1.2.4-beta.2` would not, because it is a prerelease of a - different `[major, minor, patch]` tuple. -* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the - `0.0.3` version *only* will be allowed, if they are greater than or - equal to `beta`. So, `0.0.3-pr.2` would be allowed. - -When parsing caret ranges, a missing `patch` value desugars to the -number `0`, but will allow flexibility within that value, even if the -major and minor versions are both `0`. - -* `^1.2.x` := `>=1.2.0 <2.0.0` -* `^0.0.x` := `>=0.0.0 <0.1.0` -* `^0.0` := `>=0.0.0 <0.1.0` - -A missing `minor` and `patch` values will desugar to zero, but also -allow flexibility within those values, even if the major version is -zero. - -* `^1.x` := `>=1.0.0 <2.0.0` -* `^0.x` := `>=0.0.0 <1.0.0` - -## Functions - -All methods and classes take a final `loose` boolean argument that, if -true, will be more forgiving about not-quite-valid semver strings. -The resulting output will always be 100% strict, of course. - -Strict-mode Comparators and Ranges will be strict about the SemVer -strings that they parse. - -* `valid(v)`: Return the parsed version, or null if it's not valid. -* `inc(v, release)`: Return the version incremented by the release - type (`major`, `premajor`, `minor`, `preminor`, `patch`, - `prepatch`, or `prerelease`), or null if it's not valid - * `premajor` in one call will bump the version up to the next major - version and down to a prerelease of that major version. - `preminor`, and `prepatch` work the same way. - * If called from a non-prerelease version, the `prerelease` will work the - same as `prepatch`. It increments the patch version, then makes a - prerelease. If the input version is already a prerelease it simply - increments it. - -### Comparison - -* `gt(v1, v2)`: `v1 > v2` -* `gte(v1, v2)`: `v1 >= v2` -* `lt(v1, v2)`: `v1 < v2` -* `lte(v1, v2)`: `v1 <= v2` -* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, - even if they're not the exact same string. You already know how to - compare strings. -* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. -* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call - the corresponding function above. `"==="` and `"!=="` do simple - string comparison, but are included for completeness. Throws if an - invalid comparison string is provided. -* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if - `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. -* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions - in descending order when passed to `Array.sort()`. - - -### Ranges - -* `validRange(range)`: Return the valid range or null if it's not valid -* `satisfies(version, range)`: Return true if the version satisfies the - range. -* `maxSatisfying(versions, range)`: Return the highest version in the list - that satisfies the range, or `null` if none of them do. -* `gtr(version, range)`: Return `true` if version is greater than all the - versions possible in the range. -* `ltr(version, range)`: Return `true` if version is less than all the - versions possible in the range. -* `outside(version, range, hilo)`: Return true if the version is outside - the bounds of the range in either the high or low direction. The - `hilo` argument must be either the string `'>'` or `'<'`. (This is - the function called by `gtr` and `ltr`.) - -Note that, since ranges may be non-contiguous, a version might not be -greater than a range, less than a range, *or* satisfy a range! For -example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` -until `2.0.0`, so the version `1.2.10` would not be greater than the -range (because `2.0.1` satisfies, which is higher), nor less than the -range (since `1.2.8` satisfies, which is lower), and it also does not -satisfy the range. - -If you want to know if a version satisfies or does not satisfy a -range, use the `satisfies(version, range)` function. diff --git a/node_modules/node-notifier/node_modules/semver/bin/semver b/node_modules/node-notifier/node_modules/semver/bin/semver deleted file mode 100755 index c5f2e85..0000000 --- a/node_modules/node-notifier/node_modules/semver/bin/semver +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/env node -// Standalone semver comparison program. -// Exits successfully and prints matching version(s) if -// any supplied version is valid and passes all tests. - -var argv = process.argv.slice(2) - , versions = [] - , range = [] - , gt = [] - , lt = [] - , eq = [] - , inc = null - , version = require("../package.json").version - , loose = false - , identifier = undefined - , semver = require("../semver") - , reverse = false - -main() - -function main () { - if (!argv.length) return help() - while (argv.length) { - var a = argv.shift() - var i = a.indexOf('=') - if (i !== -1) { - a = a.slice(0, i) - argv.unshift(a.slice(i + 1)) - } - switch (a) { - case "-rv": case "-rev": case "--rev": case "--reverse": - reverse = true - break - case "-l": case "--loose": - loose = true - break - case "-v": case "--version": - versions.push(argv.shift()) - break - case "-i": case "--inc": case "--increment": - switch (argv[0]) { - case "major": case "minor": case "patch": case "prerelease": - case "premajor": case "preminor": case "prepatch": - inc = argv.shift() - break - default: - inc = "patch" - break - } - break - case "--preid": - identifier = argv.shift() - break - case "-r": case "--range": - range.push(argv.shift()) - break - case "-h": case "--help": case "-?": - return help() - default: - versions.push(a) - break - } - } - - versions = versions.filter(function (v) { - return semver.valid(v, loose) - }) - if (!versions.length) return fail() - if (inc && (versions.length !== 1 || range.length)) - return failInc() - - for (var i = 0, l = range.length; i < l ; i ++) { - versions = versions.filter(function (v) { - return semver.satisfies(v, range[i], loose) - }) - if (!versions.length) return fail() - } - return success(versions) -} - -function failInc () { - console.error("--inc can only be used on a single version with no range") - fail() -} - -function fail () { process.exit(1) } - -function success () { - var compare = reverse ? "rcompare" : "compare" - versions.sort(function (a, b) { - return semver[compare](a, b, loose) - }).map(function (v) { - return semver.clean(v, loose) - }).map(function (v) { - return inc ? semver.inc(v, inc, loose, identifier) : v - }).forEach(function (v,i,_) { console.log(v) }) -} - -function help () { - console.log(["SemVer " + version - ,"" - ,"A JavaScript implementation of the http://semver.org/ specification" - ,"Copyright Isaac Z. Schlueter" - ,"" - ,"Usage: semver [options] [ [...]]" - ,"Prints valid versions sorted by SemVer precedence" - ,"" - ,"Options:" - ,"-r --range " - ," Print versions that match the specified range." - ,"" - ,"-i --increment []" - ," Increment a version by the specified level. Level can" - ," be one of: major, minor, patch, premajor, preminor," - ," prepatch, or prerelease. Default level is 'patch'." - ," Only one version may be specified." - ,"" - ,"--preid " - ," Identifier to be used to prefix premajor, preminor," - ," prepatch or prerelease version increments." - ,"" - ,"-l --loose" - ," Interpret versions and ranges loosely" - ,"" - ,"Program exits successfully if any valid version satisfies" - ,"all supplied ranges, and prints all satisfying versions." - ,"" - ,"If no satisfying versions are found, then exits failure." - ,"" - ,"Versions are printed in ascending order, so supplying" - ,"multiple versions to the utility will just sort them." - ].join("\n")) -} diff --git a/node_modules/node-notifier/node_modules/semver/foot.js.txt b/node_modules/node-notifier/node_modules/semver/foot.js.txt deleted file mode 100644 index 8f83c20..0000000 --- a/node_modules/node-notifier/node_modules/semver/foot.js.txt +++ /dev/null @@ -1,6 +0,0 @@ - -})( - typeof exports === 'object' ? exports : - typeof define === 'function' && define.amd ? {} : - semver = {} -); diff --git a/node_modules/node-notifier/node_modules/semver/head.js.txt b/node_modules/node-notifier/node_modules/semver/head.js.txt deleted file mode 100644 index 6536865..0000000 --- a/node_modules/node-notifier/node_modules/semver/head.js.txt +++ /dev/null @@ -1,2 +0,0 @@ -;(function(exports) { - diff --git a/node_modules/node-notifier/node_modules/semver/package.json b/node_modules/node-notifier/node_modules/semver/package.json deleted file mode 100644 index fc33751..0000000 --- a/node_modules/node-notifier/node_modules/semver/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "semver", - "version": "4.1.0", - "description": "The semantic version parser used by npm.", - "main": "semver.js", - "browser": "semver.browser.js", - "min": "semver.min.js", - "scripts": { - "test": "tap test/*.js", - "prepublish": "make" - }, - "devDependencies": { - "tap": "0.x >=0.0.4", - "uglify-js": "~2.3.6" - }, - "license": "BSD", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-semver.git" - }, - "bin": { - "semver": "./bin/semver" - }, - "gitHead": "f8db569b9fd00788d14064aaf81854ed81e1337a", - "bugs": { - "url": "https://github.com/isaacs/node-semver/issues" - }, - "homepage": "https://github.com/isaacs/node-semver", - "_id": "semver@4.1.0", - "_shasum": "bc80a9ff68532814362cc3cfda3c7b75ed9c321c", - "_from": "semver@^4.0.3", - "_npmVersion": "2.1.3", - "_nodeVersion": "0.10.31", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - } - ], - "dist": { - "shasum": "bc80a9ff68532814362cc3cfda3c7b75ed9c321c", - "tarball": "http://registry.npmjs.org/semver/-/semver-4.1.0.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/semver/-/semver-4.1.0.tgz" -} diff --git a/node_modules/node-notifier/node_modules/semver/semver.browser.js b/node_modules/node-notifier/node_modules/semver/semver.browser.js deleted file mode 100644 index 712de83..0000000 --- a/node_modules/node-notifier/node_modules/semver/semver.browser.js +++ /dev/null @@ -1,1120 +0,0 @@ -;(function(exports) { - -// export the class if we are in a Node-like system. -if (typeof module === 'object' && module.exports === exports) - exports = module.exports = SemVer; - -// The debug function is excluded entirely from the minified version. - -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -exports.SEMVER_SPEC_VERSION = '2.0.0'; - -// The actual regexps go on exports.re -var re = exports.re = []; -var src = exports.src = []; -var R = 0; - -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. - -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. - -var NUMERICIDENTIFIER = R++; -src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'; -var NUMERICIDENTIFIERLOOSE = R++; -src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'; - - -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. - -var NONNUMERICIDENTIFIER = R++; -src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; - - -// ## Main Version -// Three dot-separated numeric identifiers. - -var MAINVERSION = R++; -src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')\\.' + - '(' + src[NUMERICIDENTIFIER] + ')'; - -var MAINVERSIONLOOSE = R++; -src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + - '(' + src[NUMERICIDENTIFIERLOOSE] + ')'; - -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. - -var PRERELEASEIDENTIFIER = R++; -src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; - -var PRERELEASEIDENTIFIERLOOSE = R++; -src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + - '|' + src[NONNUMERICIDENTIFIER] + ')'; - - -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. - -var PRERELEASE = R++; -src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + - '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'; - -var PRERELEASELOOSE = R++; -src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + - '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'; - -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. - -var BUILDIDENTIFIER = R++; -src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'; - -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. - -var BUILD = R++; -src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + - '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'; - - -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. - -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. - -var FULL = R++; -var FULLPLAIN = 'v?' + src[MAINVERSION] + - src[PRERELEASE] + '?' + - src[BUILD] + '?'; - -src[FULL] = '^' + FULLPLAIN + '$'; - -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + - src[PRERELEASELOOSE] + '?' + - src[BUILD] + '?'; - -var LOOSE = R++; -src[LOOSE] = '^' + LOOSEPLAIN + '$'; - -var GTLT = R++; -src[GTLT] = '((?:<|>)?=?)'; - -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -var XRANGEIDENTIFIERLOOSE = R++; -src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'; -var XRANGEIDENTIFIER = R++; -src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'; - -var XRANGEPLAIN = R++; -src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + - '(?:' + src[PRERELEASE] + ')?' + - src[BUILD] + '?' + - ')?)?'; - -var XRANGEPLAINLOOSE = R++; -src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + - '(?:' + src[PRERELEASELOOSE] + ')?' + - src[BUILD] + '?' + - ')?)?'; - -var XRANGE = R++; -src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'; -var XRANGELOOSE = R++; -src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'; - -// Tilde ranges. -// Meaning is "reasonably at or greater than" -var LONETILDE = R++; -src[LONETILDE] = '(?:~>?)'; - -var TILDETRIM = R++; -src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'; -re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g'); -var tildeTrimReplace = '$1~'; - -var TILDE = R++; -src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'; -var TILDELOOSE = R++; -src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'; - -// Caret ranges. -// Meaning is "at least and backwards compatible with" -var LONECARET = R++; -src[LONECARET] = '(?:\\^)'; - -var CARETTRIM = R++; -src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'; -re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g'); -var caretTrimReplace = '$1^'; - -var CARET = R++; -src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'; -var CARETLOOSE = R++; -src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'; - -// A simple gt/lt/eq thing, or just "" to indicate "any version" -var COMPARATORLOOSE = R++; -src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'; -var COMPARATOR = R++; -src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'; - - -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -var COMPARATORTRIM = R++; -src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + - '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; - -// this one has to use the /g flag -re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); -var comparatorTrimReplace = '$1$2$3'; - - -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -var HYPHENRANGE = R++; -src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAIN] + ')' + - '\\s*$'; - -var HYPHENRANGELOOSE = R++; -src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s*$'; - -// Star ranges basically just allow anything at all. -var STAR = R++; -src[STAR] = '(<|>)?=?\\s*\\*'; - -// Compile to actual regexp objects. -// All are flag-free, unless they were created above with a flag. -for (var i = 0; i < R; i++) { - ; - if (!re[i]) - re[i] = new RegExp(src[i]); -} - -exports.parse = parse; -function parse(version, loose) { - var r = loose ? re[LOOSE] : re[FULL]; - return (r.test(version)) ? new SemVer(version, loose) : null; -} - -exports.valid = valid; -function valid(version, loose) { - var v = parse(version, loose); - return v ? v.version : null; -} - - -exports.clean = clean; -function clean(version, loose) { - var s = parse(version.trim().replace(/^[=v]+/, ''), loose); - return s ? s.version : null; -} - -exports.SemVer = SemVer; - -function SemVer(version, loose) { - if (version instanceof SemVer) { - if (version.loose === loose) - return version; - else - version = version.version; - } else if (typeof version !== 'string') { - throw new TypeError('Invalid Version: ' + version); - } - - if (!(this instanceof SemVer)) - return new SemVer(version, loose); - - ; - this.loose = loose; - var m = version.trim().match(loose ? re[LOOSE] : re[FULL]); - - if (!m) - throw new TypeError('Invalid Version: ' + version); - - this.raw = version; - - // these are actually numbers - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; - - // numberify any prerelease numeric ids - if (!m[4]) - this.prerelease = []; - else - this.prerelease = m[4].split('.').map(function(id) { - return (/^[0-9]+$/.test(id)) ? +id : id; - }); - - this.build = m[5] ? m[5].split('.') : []; - this.format(); -} - -SemVer.prototype.format = function() { - this.version = this.major + '.' + this.minor + '.' + this.patch; - if (this.prerelease.length) - this.version += '-' + this.prerelease.join('.'); - return this.version; -}; - -SemVer.prototype.inspect = function() { - return ''; -}; - -SemVer.prototype.toString = function() { - return this.version; -}; - -SemVer.prototype.compare = function(other) { - ; - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return this.compareMain(other) || this.comparePre(other); -}; - -SemVer.prototype.compareMain = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch); -}; - -SemVer.prototype.comparePre = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) - return -1; - else if (!this.prerelease.length && other.prerelease.length) - return 1; - else if (!this.prerelease.length && !other.prerelease.length) - return 0; - - var i = 0; - do { - var a = this.prerelease[i]; - var b = other.prerelease[i]; - ; - if (a === undefined && b === undefined) - return 0; - else if (b === undefined) - return 1; - else if (a === undefined) - return -1; - else if (a === b) - continue; - else - return compareIdentifiers(a, b); - } while (++i); -}; - -// preminor will bump the version up to the next minor release, and immediately -// down to pre-release. premajor and prepatch work the same way. -SemVer.prototype.inc = function(release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break; - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) - this.major++; - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) - this.minor++; - this.patch = 0; - this.prerelease = []; - break; - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) - this.patch++; - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) - this.prerelease = [0]; - else { - var i = this.prerelease.length; - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } - } - if (i === -1) // didn't increment anything - this.prerelease.push(0); - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) - this.prerelease = [identifier, 0]; - } else - this.prerelease = [identifier, 0]; - } - break; - - default: - throw new Error('invalid increment argument: ' + release); - } - this.format(); - return this; -}; - -exports.inc = inc; -function inc(version, release, loose, identifier) { - if (typeof(loose) === 'string') { - identifier = loose; - loose = undefined; - } - - try { - return new SemVer(version, loose).inc(release, identifier).version; - } catch (er) { - return null; - } -} - -exports.compareIdentifiers = compareIdentifiers; - -var numeric = /^[0-9]+$/; -function compareIdentifiers(a, b) { - var anum = numeric.test(a); - var bnum = numeric.test(b); - - if (anum && bnum) { - a = +a; - b = +b; - } - - return (anum && !bnum) ? -1 : - (bnum && !anum) ? 1 : - a < b ? -1 : - a > b ? 1 : - 0; -} - -exports.rcompareIdentifiers = rcompareIdentifiers; -function rcompareIdentifiers(a, b) { - return compareIdentifiers(b, a); -} - -exports.compare = compare; -function compare(a, b, loose) { - return new SemVer(a, loose).compare(b); -} - -exports.compareLoose = compareLoose; -function compareLoose(a, b) { - return compare(a, b, true); -} - -exports.rcompare = rcompare; -function rcompare(a, b, loose) { - return compare(b, a, loose); -} - -exports.sort = sort; -function sort(list, loose) { - return list.sort(function(a, b) { - return exports.compare(a, b, loose); - }); -} - -exports.rsort = rsort; -function rsort(list, loose) { - return list.sort(function(a, b) { - return exports.rcompare(a, b, loose); - }); -} - -exports.gt = gt; -function gt(a, b, loose) { - return compare(a, b, loose) > 0; -} - -exports.lt = lt; -function lt(a, b, loose) { - return compare(a, b, loose) < 0; -} - -exports.eq = eq; -function eq(a, b, loose) { - return compare(a, b, loose) === 0; -} - -exports.neq = neq; -function neq(a, b, loose) { - return compare(a, b, loose) !== 0; -} - -exports.gte = gte; -function gte(a, b, loose) { - return compare(a, b, loose) >= 0; -} - -exports.lte = lte; -function lte(a, b, loose) { - return compare(a, b, loose) <= 0; -} - -exports.cmp = cmp; -function cmp(a, op, b, loose) { - var ret; - switch (op) { - case '===': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a === b; - break; - case '!==': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a !== b; - break; - case '': case '=': case '==': ret = eq(a, b, loose); break; - case '!=': ret = neq(a, b, loose); break; - case '>': ret = gt(a, b, loose); break; - case '>=': ret = gte(a, b, loose); break; - case '<': ret = lt(a, b, loose); break; - case '<=': ret = lte(a, b, loose); break; - default: throw new TypeError('Invalid operator: ' + op); - } - return ret; -} - -exports.Comparator = Comparator; -function Comparator(comp, loose) { - if (comp instanceof Comparator) { - if (comp.loose === loose) - return comp; - else - comp = comp.value; - } - - if (!(this instanceof Comparator)) - return new Comparator(comp, loose); - - ; - this.loose = loose; - this.parse(comp); - - if (this.semver === ANY) - this.value = ''; - else - this.value = this.operator + this.semver.version; - - ; -} - -var ANY = {}; -Comparator.prototype.parse = function(comp) { - var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var m = comp.match(r); - - if (!m) - throw new TypeError('Invalid comparator: ' + comp); - - this.operator = m[1]; - if (this.operator === '=') - this.operator = ''; - - // if it literally is just '>' or '' then allow anything. - if (!m[2]) - this.semver = ANY; - else - this.semver = new SemVer(m[2], this.loose); -}; - -Comparator.prototype.inspect = function() { - return ''; -}; - -Comparator.prototype.toString = function() { - return this.value; -}; - -Comparator.prototype.test = function(version) { - ; - - if (this.semver === ANY) - return true; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - return cmp(version, this.operator, this.semver, this.loose); -}; - - -exports.Range = Range; -function Range(range, loose) { - if ((range instanceof Range) && range.loose === loose) - return range; - - if (!(this instanceof Range)) - return new Range(range, loose); - - this.loose = loose; - - // First, split based on boolean or || - this.raw = range; - this.set = range.split(/\s*\|\|\s*/).map(function(range) { - return this.parseRange(range.trim()); - }, this).filter(function(c) { - // throw out any that are not relevant for whatever reason - return c.length; - }); - - if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + range); - } - - this.format(); -} - -Range.prototype.inspect = function() { - return ''; -}; - -Range.prototype.format = function() { - this.range = this.set.map(function(comps) { - return comps.join(' ').trim(); - }).join('||').trim(); - return this.range; -}; - -Range.prototype.toString = function() { - return this.range; -}; - -Range.prototype.parseRange = function(range) { - var loose = this.loose; - range = range.trim(); - ; - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; - range = range.replace(hr, hyphenReplace); - ; - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); - ; - - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[TILDETRIM], tildeTrimReplace); - - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[CARETTRIM], caretTrimReplace); - - // normalize spaces - range = range.split(/\s+/).join(' '); - - // At this point, the range is completely trimmed and - // ready to be split into comparators. - - var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var set = range.split(' ').map(function(comp) { - return parseComparator(comp, loose); - }).join(' ').split(/\s+/); - if (this.loose) { - // in loose mode, throw out any that are not valid comparators - set = set.filter(function(comp) { - return !!comp.match(compRe); - }); - } - set = set.map(function(comp) { - return new Comparator(comp, loose); - }); - - return set; -}; - -// Mostly just for testing and legacy API reasons -exports.toComparators = toComparators; -function toComparators(range, loose) { - return new Range(range, loose).set.map(function(comp) { - return comp.map(function(c) { - return c.value; - }).join(' ').trim().split(' '); - }); -} - -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -function parseComparator(comp, loose) { - ; - comp = replaceCarets(comp, loose); - ; - comp = replaceTildes(comp, loose); - ; - comp = replaceXRanges(comp, loose); - ; - comp = replaceStars(comp, loose); - ; - return comp; -} - -function isX(id) { - return !id || id.toLowerCase() === 'x' || id === '*'; -} - -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -function replaceTildes(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceTilde(comp, loose); - }).join(' '); -} - -function replaceTilde(comp, loose) { - var r = loose ? re[TILDELOOSE] : re[TILDE]; - return comp.replace(r, function(_, M, m, p, pr) { - ; - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) - // ~1.2 == >=1.2.0- <1.3.0- - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else if (pr) { - ; - if (pr.charAt(0) !== '-') - pr = '-' + pr; - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - - ; - return ret; - }); -} - -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -function replaceCarets(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceCaret(comp, loose); - }).join(' '); -} - -function replaceCaret(comp, loose) { - ; - var r = loose ? re[CARETLOOSE] : re[CARET]; - return comp.replace(r, function(_, M, m, p, pr) { - ; - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) { - if (M === '0') - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else - ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; - } else if (pr) { - ; - if (pr.charAt(0) !== '-') - pr = '-' + pr; - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + (+M + 1) + '.0.0'; - } else { - ; - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + (+M + 1) + '.0.0'; - } - - ; - return ret; - }); -} - -function replaceXRanges(comp, loose) { - ; - return comp.split(/\s+/).map(function(comp) { - return replaceXRange(comp, loose); - }).join(' '); -} - -function replaceXRange(comp, loose) { - comp = comp.trim(); - var r = loose ? re[XRANGELOOSE] : re[XRANGE]; - return comp.replace(r, function(ret, gtlt, M, m, p, pr) { - ; - var xM = isX(M); - var xm = xM || isX(m); - var xp = xm || isX(p); - var anyX = xp; - - if (gtlt === '=' && anyX) - gtlt = ''; - - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0'; - } else { - // nothing is forbidden - ret = '*'; - } - } else if (gtlt && anyX) { - // replace X with 0 - if (xm) - m = 0; - if (xp) - p = 0; - - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = '>='; - if (xm) { - M = +M + 1; - m = 0; - p = 0; - } else if (xp) { - m = +m + 1; - p = 0; - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<' - if (xm) - M = +M + 1 - else - m = +m + 1 - } - - ret = gtlt + M + '.' + m + '.' + p; - } else if (xm) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - } else if (xp) { - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - } - - ; - - return ret; - }); -} - -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -function replaceStars(comp, loose) { - ; - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[STAR], ''); -} - -// This function is passed to string.replace(re[HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -function hyphenReplace($0, - from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) { - - if (isX(fM)) - from = ''; - else if (isX(fm)) - from = '>=' + fM + '.0.0'; - else if (isX(fp)) - from = '>=' + fM + '.' + fm + '.0'; - else - from = '>=' + from; - - if (isX(tM)) - to = ''; - else if (isX(tm)) - to = '<' + (+tM + 1) + '.0.0'; - else if (isX(tp)) - to = '<' + tM + '.' + (+tm + 1) + '.0'; - else if (tpr) - to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; - else - to = '<=' + to; - - return (from + ' ' + to).trim(); -} - - -// if ANY of the sets match ALL of its comparators, then pass -Range.prototype.test = function(version) { - if (!version) - return false; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - for (var i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version)) - return true; - } - return false; -}; - -function testSet(set, version) { - for (var i = 0; i < set.length; i++) { - if (!set[i].test(version)) - return false; - } - - if (version.prerelease.length) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (var i = 0; i < set.length; i++) { - ; - if (set[i].semver === ANY) - return true; - - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver; - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) - return true; - } - } - - // Version has a -pre, but it's not one of the ones we like. - return false; - } - - return true; -} - -exports.satisfies = satisfies; -function satisfies(version, range, loose) { - try { - range = new Range(range, loose); - } catch (er) { - return false; - } - return range.test(version); -} - -exports.maxSatisfying = maxSatisfying; -function maxSatisfying(versions, range, loose) { - return versions.filter(function(version) { - return satisfies(version, range, loose); - }).sort(function(a, b) { - return rcompare(a, b, loose); - })[0] || null; -} - -exports.validRange = validRange; -function validRange(range, loose) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, loose).range || '*'; - } catch (er) { - return null; - } -} - -// Determine if version is less than all the versions possible in the range -exports.ltr = ltr; -function ltr(version, range, loose) { - return outside(version, range, '<', loose); -} - -// Determine if version is greater than all the versions possible in the range. -exports.gtr = gtr; -function gtr(version, range, loose) { - return outside(version, range, '>', loose); -} - -exports.outside = outside; -function outside(version, range, hilo, loose) { - version = new SemVer(version, loose); - range = new Range(range, loose); - - var gtfn, ltefn, ltfn, comp, ecomp; - switch (hilo) { - case '>': - gtfn = gt; - ltefn = lte; - ltfn = lt; - comp = '>'; - ecomp = '>='; - break; - case '<': - gtfn = lt; - ltefn = gte; - ltfn = gt; - comp = '<'; - ecomp = '<='; - break; - default: - throw new TypeError('Must provide a hilo val of "<" or ">"'); - } - - // If it satisifes the range it is not outside - if (satisfies(version, range, loose)) { - return false; - } - - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i]; - - var high = null; - var low = null; - - comparators.forEach(function(comparator) { - high = high || comparator; - low = low || comparator; - if (gtfn(comparator.semver, high.semver, loose)) { - high = comparator; - } else if (ltfn(comparator.semver, low.semver, loose)) { - low = comparator; - } - }); - - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false; - } - - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && - ltefn(version, low.semver)) { - return false; - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false; - } - } - return true; -} - -// Use the define() function if we're in AMD land -if (typeof define === 'function' && define.amd) - define(exports); - -})( - typeof exports === 'object' ? exports : - typeof define === 'function' && define.amd ? {} : - semver = {} -); diff --git a/node_modules/node-notifier/node_modules/semver/semver.browser.js.gz b/node_modules/node-notifier/node_modules/semver/semver.browser.js.gz deleted file mode 100644 index e3066055506fd63423614ef9f3297b45d4356b35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7595 zcmV;c9aQ2UiwFQ%7e7=21KmAqa~nsF-}x)rT31L)Bu&Xl-JT>$rA?HLuPoUmDO=vP zrS*^;QWMXEnHlPlNdE1IM?dF9%5nCp?rvj}{XnAuG#U+{TYH_^GM?l?5_kN&MUv)O zSNz^;y?7z`r^v5;F$uja6TwW}`oc?n5yZk1r^(dshruUbWcOL_M}rnL=;ZecKbeUr znJzBGQ99q=RxX+_hObN5uqOiaWD&@>c&qqXg(k?r%CSbLOt|_|6#k#kD$dMN$0Ai zfT>W;!k@qwFBbv)FIt3t1jA$!jEMb-pJiSez^K@K;Y~hybKivmgG_*AgO;4t;QaXH zAIE3^K7V`s{lDSM`KvdlFw^$VU^p1I%~ZWfzVt$o`g7=*iFqObqJok7ts5_eN-?s^ z;K%#RJ*vsliB-kFRNWbTADV$?Nf;)#K|B{{{(KoigX6nJ3KN4V0PbEa#=cl)K*w2< ziahz`$H8yVyoUg8yfB!0IsO!0JOvWK)BzMTPE#VwQz*@t1AqC8I9*158cf8iDY6Zi zlw!q^z`h_qABP`%0tWL$oW%X#{4^2MU=BQBTmhBwy`W-f6eTcosz&%Y!PB2lj?Z3w z|LTY1(~DO>zB>{`tA8oKz%=`po7Ox}JWvwN+}3$&yLTIUmqWxA6E-$RXx-4aJPv~ zwNt0*Kj^NNYrtl56#^x0*EU*-sv>tIzE48Bo@H3`lhiA=-brHL=p| zC+mgvS%e#$6nbmE$pZP{gG26g+?{zboXn(>K_evcy%@o5c%VzA;BFw4H?cg<&4M(;lb;_UBwSCE z9I8_P*Cm`Zr_6$PXGf=hZ!!WZ8{jNg*jW#E5APm6d{D=cBABKjYM~baTac9$6@XIl zr7c}r>6S+&Tcgf;CJp?5)VaL>a+kxJK1DIFf!sap9#&AXMg&aVdi1nS?na}%nK=J> zFlB06oe!IOuSfSf;+IKoG>}m*TX>SqHr;tjF_+58fUIFk(RG#9Y@`XWWW z#9PLR)JULgHd5Foz@8X`z5#UxdTtIS=mY@u25O3x?&YJ|7%v^Oq_v z&R(6^J#-=WK=iu`e+wGV4DG~)Pvvz?15V-go|Bm{_9mZhy>yzfDU=7} zkoSGVz3-3CjxUPbqe5fkUTN-8MUi{Du!egQn!`P(Pl0=;&gR|(XI9%Muv3u_5vV?5$}qfz?*94G6n8 zCvT6=jxOGmH~K$cZKCe;hbv714X7IYD#(sms{r%-$%8C?yEs!cY8C=#3D#%s zXA5NR*w1f$pKZ>09_Gs1$i$+vT8^%IJgmVvGfUX!`gkD7GX5w=qXYQGKMFG{$*)sW zA;fZeHTysvIUnlOyD}%qFOMhGYcE4W;MoSJ_+l<*p*N>xQbMh`R@?^8f}zuomnUgy z)jZ#M{!;OyVAOu(Lq?zI`0dBi!4PnSy%b?Xp%e3#Dd9HSKHcC{#^- z(od^guTKHFsm~b}nx$1+tZSafx>nGt8P!kg2_tMOwRWCkEQt0b*mg3|UFe4(g+|9$ zT;MEb9+fap&o7P~1%tnN0m`En4k6D8xbuO41fV)$u{fbA!Erv`4Ua(d(Bpt>s6R`6 zzbBS)2>ONuQ{4LKjUY<~gmRqR@Qw(lH0&^FVSuTFxCIoVf{%T11|M5n7@ZVi5B|ew z<1<*E!DW}ILto2_6RP)Gk1ZW_!@v}-K>FNk=@26Q?r4V&Ee0Np0&LKO*T*3aB$=~| z-^rDL2*K94Ok>eW2cST61*+SHE{GFH!b&6Tig+1@4vKtI9r20PLXm#gqIjbwRcvA5 zb_2NF43uZc8d{G%0mCH*Nc3rqO}}f$&Wd9XK&wQZ?jU82*LiXEespuW^#XKbyIX-+ z28d-YH;12%r(~yTeK26cFzSBsL=|4C zcWaQKV)l7voSwjH2{d24jKZA=dD9&Qzpj`tmPdI!~3vdmb*f{fT5D8jxgzN~3RpK=4Lr|_qsFNZaev#evJvB&WE2TsYD zTDAQ+6eIiLkM;V=*bVoiA1es;wwBdjmri)Tcyj?qpc}FcZOsN!eV{7fnAEr^F~jSb zoL%*Tl?>@`EB(h4sRy?Xw6%e)h1-xQVr)a_J9mEZ2!;1elz(eXXS~xMwx8%pLVxj{Ygf<)*E#*D^Hc3D6$=8eE*x}s|s&xOvUU+(B6PxB`n8B$9K&l36 zU!LH~X{+JeyOLTpk~vbmEtno|sWMXvr8oc{+^jM{zJr6e9eh=jF`T+S?G?~O*k2LN zKa3E;)(8QAU(Ix;rWZno>Aj<-dgzI=M9GpJ6^hoNrfIS$*l!toR-#~jooo31U6AEH z%tV~9JB4h^ILQqt?0)0LxgfU;Mr^^<$OliOBU6VaTuGm&kxvs6&Qby)S;{*;;71%d8+Sq!U;V=!uh*7$rk9 zcbW_gtT(94Zv)hf@g$|hUv6u)q40kHJAzAYL@KcBp}^GcShbpdyuk5HIMjv}udzbe zT6C^b4Am;6dL37sS1K2)t2!!4Pop-I-fpsr^w`!R{Z5heJ1*&W2HSS+%QETz0GTV) z-5(=plj@_ioT`)}qyG${I1ybhU~@=Y zfnsAPS{o5k{>auB^nI+@fZ;&lEyLW{j>@YiJ$ixk=vmB6=S%#;&OK#0vlp}EaB^G_ ze0oqGVYboXU&~94hJ#j#+BT$4`b-gFBQs=nDShXgmEF-ZvUE-o%Z~D004aq z42GSLURU{w#}&0>;|r$Fc=Cl$H8nh6Z+T2(JWFqlHDQ&rQ+0dB{SHBIh+QMlow2I- zWW7`EiG2WE?Bt09Ds>8nP6#5cq-_uAPv?Cr_7tw~~?;`6_5uI~|QV5Xl5CEch8-TpS7fu;Aj) zPDqEkGE6L|e#XykrlngIh~!{MVp^D|L?kU>l72;0(lv3JBO-Gfi+R41!cP4`VLgNh zF|;9uPlUK%faw2w=6jZRD_OXXEg-UM*|PcQIoEx=q{+R3 z6Ek(%j|=Tl+mDOwG0ScwL62(>P0#)hFnZRAQF~Vr%Y4JH+`AxudsQ>ijpNm=4|LzrnwNo?v+ z&5YU>k*#h>XAa5*mt^$JG*U^eDrK~RWL`ZL%!!U67*>)LHgaHB*BsbvK6$qKtRM26(EPllMSUo}MDwyYp*Dhl*P7=yp1HqzTyp<^=G1H=+ zt1_AL@&XeaAK?G9%@>7ao0JLQnBGQ@TDZ$xDBh)*G2Ou|fQ>LU&?X8JD_~bj{Gzja#FX3Pf$c zLg7LRv9pyx5p-jcQ7T1UPut-j>gTM$K`N7pL89H2ykj!T;)e&P+-AKLrz$+x z(^Cxqj957VXd{KVgQ-XC;7Ie{H?!8hKXTkL<8? zj{+7_!}DdN(8v47k}Owu1n5~OFp($;ES`$cpL>&garE|; z+5n&i@-T37w$RSmj^gjmud^N8y(+W-7~ ze&H@T_pUyH_S~Mar~cg&Cp{7M1Prp!-W`*~Nxr3)iNU_>oOHX6 z|Bsy^R>~wcii(X6Mrh-nPr{5erLTY=5M^cU(27k5aH?Uz_Bu?g zV&2#1!hf6r|4G_EjqEG8prW3vGT61Iv~}N?=xzr7bmd*qkKo(UGULjs(C6<;ZmD;c zM{0#ehx#5J-BxJ!JAA8x6}nZ3fh4HGg9oW`s|s<4dReuws=yd{hm{L!tDwgd0BIDGdIO>F>b?&)pqZNm*M-8=Rp*N zUK)Z0ygw>I`zzADC;WUeC=qeLT_j;80qc~zp@zx7{-<4iy(|4KlWq1PV}}r`nTF`dMGh-pF--f<1qCj ze8K~}Zf5!c{y|CEmmNWR|AApBnJ~sTLNIPPkCPP8y!KNc#0WiYtg~*td-%xY764y@ zT+HEA@~rwCVtL%@T@!kMLeYgT2iSi^0EHG^bcuX5)$VRbJLm)_cMQJNYu`nqyY(&3 z7#Dr4AO`<{* zUI?=jXZ5&U7EN8~Yhvu=A1Mqyi)`Nk{z!3|L}< zf)(QE^=m8*^2~Nm_c#{?S5P@B+LU)e5o=XqtFf6EW`A0uMb!&Kg|NBx-jGBArg84) zDnTTFAAma1&-}O%2Tl@k64vB=9__bl6vzw>QHLy52sYsMjPWTvJ>=pf5wNn()U~ei zm3R{u`!SHOzR9?R?30<8m^36&*seX;2ds;=8VJnBzw7#DD^O0_TqrIV;{{;9@ehjtxwoflF55R1tSjy8LCV`1?UizCTpC|CHGe6o*+{2J9y+J>dkE;6_{vjiLX>ZV~T^`P;_T2(64>El45UHoW z+qVo!#t3@Gnv}7*``!C zP%kKFU@fcHFhPJ&d7xQ~FHaa9MaC!Db)0HI$)0V@nB)8cu(QF|T_amg=0Cwq<)M4c z3uA!84?b`T)+d=9`k^#1uKA@tk8(@xmpL%9on`cdt*sEP3k>9*$y4V7L)x?!Bx=br z&w{C6Y6(`8bH}FvYx`;BH4z_J7dlcp6{gOGjz5I?LA&yHl5CIf#PBz3#5!2lL72Gl z&_-*=dS7pqevw|ac|OB_xz8W?FQ3zVmCUYggCHvIeUJlv_X45FYerl^0M(TiRU}LH z+{F0yfr&5ZBI8J@x|!gP8kR<#mqwkJM%^!ux?eeJ?M+uJneqfr!(jK`Ab&mL8tM{M z2^;(TX9^BB+9sz`U&$wJ7|i_4PSVQNoqs76(r8(5t0hvlXbAkbvYP#DGaI3ie4%xLXwK)u=`B^?c&G+9sUCWbZsgI+RA4G_mrPd*yd+-@v zb)vurR}8#}UMQ1*)n5n&k$miS&;Vm7_Foaze`NGf7w?*uYm5gSe}AMt`X 1.2.3` ==> `>1.2.3` -var COMPARATORTRIM = R++; -src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + - '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; - -// this one has to use the /g flag -re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); -var comparatorTrimReplace = '$1$2$3'; - - -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -var HYPHENRANGE = R++; -src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAIN] + ')' + - '\\s*$'; - -var HYPHENRANGELOOSE = R++; -src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s+-\\s+' + - '(' + src[XRANGEPLAINLOOSE] + ')' + - '\\s*$'; - -// Star ranges basically just allow anything at all. -var STAR = R++; -src[STAR] = '(<|>)?=?\\s*\\*'; - -// Compile to actual regexp objects. -// All are flag-free, unless they were created above with a flag. -for (var i = 0; i < R; i++) { - debug(i, src[i]); - if (!re[i]) - re[i] = new RegExp(src[i]); -} - -exports.parse = parse; -function parse(version, loose) { - var r = loose ? re[LOOSE] : re[FULL]; - return (r.test(version)) ? new SemVer(version, loose) : null; -} - -exports.valid = valid; -function valid(version, loose) { - var v = parse(version, loose); - return v ? v.version : null; -} - - -exports.clean = clean; -function clean(version, loose) { - var s = parse(version.trim().replace(/^[=v]+/, ''), loose); - return s ? s.version : null; -} - -exports.SemVer = SemVer; - -function SemVer(version, loose) { - if (version instanceof SemVer) { - if (version.loose === loose) - return version; - else - version = version.version; - } else if (typeof version !== 'string') { - throw new TypeError('Invalid Version: ' + version); - } - - if (!(this instanceof SemVer)) - return new SemVer(version, loose); - - debug('SemVer', version, loose); - this.loose = loose; - var m = version.trim().match(loose ? re[LOOSE] : re[FULL]); - - if (!m) - throw new TypeError('Invalid Version: ' + version); - - this.raw = version; - - // these are actually numbers - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; - - // numberify any prerelease numeric ids - if (!m[4]) - this.prerelease = []; - else - this.prerelease = m[4].split('.').map(function(id) { - return (/^[0-9]+$/.test(id)) ? +id : id; - }); - - this.build = m[5] ? m[5].split('.') : []; - this.format(); -} - -SemVer.prototype.format = function() { - this.version = this.major + '.' + this.minor + '.' + this.patch; - if (this.prerelease.length) - this.version += '-' + this.prerelease.join('.'); - return this.version; -}; - -SemVer.prototype.inspect = function() { - return ''; -}; - -SemVer.prototype.toString = function() { - return this.version; -}; - -SemVer.prototype.compare = function(other) { - debug('SemVer.compare', this.version, this.loose, other); - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return this.compareMain(other) || this.comparePre(other); -}; - -SemVer.prototype.compareMain = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - return compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch); -}; - -SemVer.prototype.comparePre = function(other) { - if (!(other instanceof SemVer)) - other = new SemVer(other, this.loose); - - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) - return -1; - else if (!this.prerelease.length && other.prerelease.length) - return 1; - else if (!this.prerelease.length && !other.prerelease.length) - return 0; - - var i = 0; - do { - var a = this.prerelease[i]; - var b = other.prerelease[i]; - debug('prerelease compare', i, a, b); - if (a === undefined && b === undefined) - return 0; - else if (b === undefined) - return 1; - else if (a === undefined) - return -1; - else if (a === b) - continue; - else - return compareIdentifiers(a, b); - } while (++i); -}; - -// preminor will bump the version up to the next minor release, and immediately -// down to pre-release. premajor and prepatch work the same way. -SemVer.prototype.inc = function(release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break; - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) - this.major++; - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) - this.minor++; - this.patch = 0; - this.prerelease = []; - break; - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) - this.patch++; - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) - this.prerelease = [0]; - else { - var i = this.prerelease.length; - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } - } - if (i === -1) // didn't increment anything - this.prerelease.push(0); - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) - this.prerelease = [identifier, 0]; - } else - this.prerelease = [identifier, 0]; - } - break; - - default: - throw new Error('invalid increment argument: ' + release); - } - this.format(); - return this; -}; - -exports.inc = inc; -function inc(version, release, loose, identifier) { - if (typeof(loose) === 'string') { - identifier = loose; - loose = undefined; - } - - try { - return new SemVer(version, loose).inc(release, identifier).version; - } catch (er) { - return null; - } -} - -exports.compareIdentifiers = compareIdentifiers; - -var numeric = /^[0-9]+$/; -function compareIdentifiers(a, b) { - var anum = numeric.test(a); - var bnum = numeric.test(b); - - if (anum && bnum) { - a = +a; - b = +b; - } - - return (anum && !bnum) ? -1 : - (bnum && !anum) ? 1 : - a < b ? -1 : - a > b ? 1 : - 0; -} - -exports.rcompareIdentifiers = rcompareIdentifiers; -function rcompareIdentifiers(a, b) { - return compareIdentifiers(b, a); -} - -exports.compare = compare; -function compare(a, b, loose) { - return new SemVer(a, loose).compare(b); -} - -exports.compareLoose = compareLoose; -function compareLoose(a, b) { - return compare(a, b, true); -} - -exports.rcompare = rcompare; -function rcompare(a, b, loose) { - return compare(b, a, loose); -} - -exports.sort = sort; -function sort(list, loose) { - return list.sort(function(a, b) { - return exports.compare(a, b, loose); - }); -} - -exports.rsort = rsort; -function rsort(list, loose) { - return list.sort(function(a, b) { - return exports.rcompare(a, b, loose); - }); -} - -exports.gt = gt; -function gt(a, b, loose) { - return compare(a, b, loose) > 0; -} - -exports.lt = lt; -function lt(a, b, loose) { - return compare(a, b, loose) < 0; -} - -exports.eq = eq; -function eq(a, b, loose) { - return compare(a, b, loose) === 0; -} - -exports.neq = neq; -function neq(a, b, loose) { - return compare(a, b, loose) !== 0; -} - -exports.gte = gte; -function gte(a, b, loose) { - return compare(a, b, loose) >= 0; -} - -exports.lte = lte; -function lte(a, b, loose) { - return compare(a, b, loose) <= 0; -} - -exports.cmp = cmp; -function cmp(a, op, b, loose) { - var ret; - switch (op) { - case '===': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a === b; - break; - case '!==': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - ret = a !== b; - break; - case '': case '=': case '==': ret = eq(a, b, loose); break; - case '!=': ret = neq(a, b, loose); break; - case '>': ret = gt(a, b, loose); break; - case '>=': ret = gte(a, b, loose); break; - case '<': ret = lt(a, b, loose); break; - case '<=': ret = lte(a, b, loose); break; - default: throw new TypeError('Invalid operator: ' + op); - } - return ret; -} - -exports.Comparator = Comparator; -function Comparator(comp, loose) { - if (comp instanceof Comparator) { - if (comp.loose === loose) - return comp; - else - comp = comp.value; - } - - if (!(this instanceof Comparator)) - return new Comparator(comp, loose); - - debug('comparator', comp, loose); - this.loose = loose; - this.parse(comp); - - if (this.semver === ANY) - this.value = ''; - else - this.value = this.operator + this.semver.version; - - debug('comp', this); -} - -var ANY = {}; -Comparator.prototype.parse = function(comp) { - var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var m = comp.match(r); - - if (!m) - throw new TypeError('Invalid comparator: ' + comp); - - this.operator = m[1]; - if (this.operator === '=') - this.operator = ''; - - // if it literally is just '>' or '' then allow anything. - if (!m[2]) - this.semver = ANY; - else - this.semver = new SemVer(m[2], this.loose); -}; - -Comparator.prototype.inspect = function() { - return ''; -}; - -Comparator.prototype.toString = function() { - return this.value; -}; - -Comparator.prototype.test = function(version) { - debug('Comparator.test', version, this.loose); - - if (this.semver === ANY) - return true; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - return cmp(version, this.operator, this.semver, this.loose); -}; - - -exports.Range = Range; -function Range(range, loose) { - if ((range instanceof Range) && range.loose === loose) - return range; - - if (!(this instanceof Range)) - return new Range(range, loose); - - this.loose = loose; - - // First, split based on boolean or || - this.raw = range; - this.set = range.split(/\s*\|\|\s*/).map(function(range) { - return this.parseRange(range.trim()); - }, this).filter(function(c) { - // throw out any that are not relevant for whatever reason - return c.length; - }); - - if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + range); - } - - this.format(); -} - -Range.prototype.inspect = function() { - return ''; -}; - -Range.prototype.format = function() { - this.range = this.set.map(function(comps) { - return comps.join(' ').trim(); - }).join('||').trim(); - return this.range; -}; - -Range.prototype.toString = function() { - return this.range; -}; - -Range.prototype.parseRange = function(range) { - var loose = this.loose; - range = range.trim(); - debug('range', range, loose); - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; - range = range.replace(hr, hyphenReplace); - debug('hyphen replace', range); - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); - debug('comparator trim', range, re[COMPARATORTRIM]); - - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[TILDETRIM], tildeTrimReplace); - - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[CARETTRIM], caretTrimReplace); - - // normalize spaces - range = range.split(/\s+/).join(' '); - - // At this point, the range is completely trimmed and - // ready to be split into comparators. - - var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var set = range.split(' ').map(function(comp) { - return parseComparator(comp, loose); - }).join(' ').split(/\s+/); - if (this.loose) { - // in loose mode, throw out any that are not valid comparators - set = set.filter(function(comp) { - return !!comp.match(compRe); - }); - } - set = set.map(function(comp) { - return new Comparator(comp, loose); - }); - - return set; -}; - -// Mostly just for testing and legacy API reasons -exports.toComparators = toComparators; -function toComparators(range, loose) { - return new Range(range, loose).set.map(function(comp) { - return comp.map(function(c) { - return c.value; - }).join(' ').trim().split(' '); - }); -} - -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -function parseComparator(comp, loose) { - debug('comp', comp); - comp = replaceCarets(comp, loose); - debug('caret', comp); - comp = replaceTildes(comp, loose); - debug('tildes', comp); - comp = replaceXRanges(comp, loose); - debug('xrange', comp); - comp = replaceStars(comp, loose); - debug('stars', comp); - return comp; -} - -function isX(id) { - return !id || id.toLowerCase() === 'x' || id === '*'; -} - -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -function replaceTildes(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceTilde(comp, loose); - }).join(' '); -} - -function replaceTilde(comp, loose) { - var r = loose ? re[TILDELOOSE] : re[TILDE]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('tilde', comp, _, M, m, p, pr); - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) - // ~1.2 == >=1.2.0- <1.3.0- - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else if (pr) { - debug('replaceTilde pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - - debug('tilde return', ret); - return ret; - }); -} - -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -function replaceCarets(comp, loose) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceCaret(comp, loose); - }).join(' '); -} - -function replaceCaret(comp, loose) { - debug('caret', comp, loose); - var r = loose ? re[CARETLOOSE] : re[CARET]; - return comp.replace(r, function(_, M, m, p, pr) { - debug('caret', comp, _, M, m, p, pr); - var ret; - - if (isX(M)) - ret = ''; - else if (isX(m)) - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - else if (isX(p)) { - if (M === '0') - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - else - ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; - } else if (pr) { - debug('replaceCaret pr', pr); - if (pr.charAt(0) !== '-') - pr = '-' + pr; - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + pr + - ' <' + (+M + 1) + '.0.0'; - } else { - debug('no pr'); - if (M === '0') { - if (m === '0') - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + m + '.' + (+p + 1); - else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + M + '.' + (+m + 1) + '.0'; - } else - ret = '>=' + M + '.' + m + '.' + p + - ' <' + (+M + 1) + '.0.0'; - } - - debug('caret return', ret); - return ret; - }); -} - -function replaceXRanges(comp, loose) { - debug('replaceXRanges', comp, loose); - return comp.split(/\s+/).map(function(comp) { - return replaceXRange(comp, loose); - }).join(' '); -} - -function replaceXRange(comp, loose) { - comp = comp.trim(); - var r = loose ? re[XRANGELOOSE] : re[XRANGE]; - return comp.replace(r, function(ret, gtlt, M, m, p, pr) { - debug('xRange', comp, ret, gtlt, M, m, p, pr); - var xM = isX(M); - var xm = xM || isX(m); - var xp = xm || isX(p); - var anyX = xp; - - if (gtlt === '=' && anyX) - gtlt = ''; - - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0'; - } else { - // nothing is forbidden - ret = '*'; - } - } else if (gtlt && anyX) { - // replace X with 0 - if (xm) - m = 0; - if (xp) - p = 0; - - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = '>='; - if (xm) { - M = +M + 1; - m = 0; - p = 0; - } else if (xp) { - m = +m + 1; - p = 0; - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<' - if (xm) - M = +M + 1 - else - m = +m + 1 - } - - ret = gtlt + M + '.' + m + '.' + p; - } else if (xm) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - } else if (xp) { - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - } - - debug('xRange return', ret); - - return ret; - }); -} - -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -function replaceStars(comp, loose) { - debug('replaceStars', comp, loose); - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[STAR], ''); -} - -// This function is passed to string.replace(re[HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -function hyphenReplace($0, - from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) { - - if (isX(fM)) - from = ''; - else if (isX(fm)) - from = '>=' + fM + '.0.0'; - else if (isX(fp)) - from = '>=' + fM + '.' + fm + '.0'; - else - from = '>=' + from; - - if (isX(tM)) - to = ''; - else if (isX(tm)) - to = '<' + (+tM + 1) + '.0.0'; - else if (isX(tp)) - to = '<' + tM + '.' + (+tm + 1) + '.0'; - else if (tpr) - to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; - else - to = '<=' + to; - - return (from + ' ' + to).trim(); -} - - -// if ANY of the sets match ALL of its comparators, then pass -Range.prototype.test = function(version) { - if (!version) - return false; - - if (typeof version === 'string') - version = new SemVer(version, this.loose); - - for (var i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version)) - return true; - } - return false; -}; - -function testSet(set, version) { - for (var i = 0; i < set.length; i++) { - if (!set[i].test(version)) - return false; - } - - if (version.prerelease.length) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (var i = 0; i < set.length; i++) { - debug(set[i].semver); - if (set[i].semver === ANY) - return true; - - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver; - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) - return true; - } - } - - // Version has a -pre, but it's not one of the ones we like. - return false; - } - - return true; -} - -exports.satisfies = satisfies; -function satisfies(version, range, loose) { - try { - range = new Range(range, loose); - } catch (er) { - return false; - } - return range.test(version); -} - -exports.maxSatisfying = maxSatisfying; -function maxSatisfying(versions, range, loose) { - return versions.filter(function(version) { - return satisfies(version, range, loose); - }).sort(function(a, b) { - return rcompare(a, b, loose); - })[0] || null; -} - -exports.validRange = validRange; -function validRange(range, loose) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, loose).range || '*'; - } catch (er) { - return null; - } -} - -// Determine if version is less than all the versions possible in the range -exports.ltr = ltr; -function ltr(version, range, loose) { - return outside(version, range, '<', loose); -} - -// Determine if version is greater than all the versions possible in the range. -exports.gtr = gtr; -function gtr(version, range, loose) { - return outside(version, range, '>', loose); -} - -exports.outside = outside; -function outside(version, range, hilo, loose) { - version = new SemVer(version, loose); - range = new Range(range, loose); - - var gtfn, ltefn, ltfn, comp, ecomp; - switch (hilo) { - case '>': - gtfn = gt; - ltefn = lte; - ltfn = lt; - comp = '>'; - ecomp = '>='; - break; - case '<': - gtfn = lt; - ltefn = gte; - ltfn = gt; - comp = '<'; - ecomp = '<='; - break; - default: - throw new TypeError('Must provide a hilo val of "<" or ">"'); - } - - // If it satisifes the range it is not outside - if (satisfies(version, range, loose)) { - return false; - } - - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i]; - - var high = null; - var low = null; - - comparators.forEach(function(comparator) { - high = high || comparator; - low = low || comparator; - if (gtfn(comparator.semver, high.semver, loose)) { - high = comparator; - } else if (ltfn(comparator.semver, low.semver, loose)) { - low = comparator; - } - }); - - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false; - } - - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && - ltefn(version, low.semver)) { - return false; - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false; - } - } - return true; -} - -// Use the define() function if we're in AMD land -if (typeof define === 'function' && define.amd) - define(exports); diff --git a/node_modules/node-notifier/node_modules/semver/semver.min.js b/node_modules/node-notifier/node_modules/semver/semver.min.js deleted file mode 100644 index 56c9249..0000000 --- a/node_modules/node-notifier/node_modules/semver/semver.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(e){if(typeof module==="object"&&module.exports===e)e=module.exports=H;e.SEMVER_SPEC_VERSION="2.0.0";var r=e.re=[];var t=e.src=[];var n=0;var i=n++;t[i]="0|[1-9]\\d*";var s=n++;t[s]="[0-9]+";var a=n++;t[a]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var o=n++;t[o]="("+t[i]+")\\."+"("+t[i]+")\\."+"("+t[i]+")";var f=n++;t[f]="("+t[s]+")\\."+"("+t[s]+")\\."+"("+t[s]+")";var u=n++;t[u]="(?:"+t[i]+"|"+t[a]+")";var l=n++;t[l]="(?:"+t[s]+"|"+t[a]+")";var p=n++;t[p]="(?:-("+t[u]+"(?:\\."+t[u]+")*))";var c=n++;t[c]="(?:-?("+t[l]+"(?:\\."+t[l]+")*))";var h=n++;t[h]="[0-9A-Za-z-]+";var v=n++;t[v]="(?:\\+("+t[h]+"(?:\\."+t[h]+")*))";var m=n++;var g="v?"+t[o]+t[p]+"?"+t[v]+"?";t[m]="^"+g+"$";var w="[v=\\s]*"+t[f]+t[c]+"?"+t[v]+"?";var d=n++;t[d]="^"+w+"$";var y=n++;t[y]="((?:<|>)?=?)";var b=n++;t[b]=t[s]+"|x|X|\\*";var j=n++;t[j]=t[i]+"|x|X|\\*";var $=n++;t[$]="[v=\\s]*("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:"+t[p]+")?"+t[v]+"?"+")?)?";var k=n++;t[k]="[v=\\s]*("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:"+t[c]+")?"+t[v]+"?"+")?)?";var E=n++;t[E]="^"+t[y]+"\\s*"+t[$]+"$";var x=n++;t[x]="^"+t[y]+"\\s*"+t[k]+"$";var R=n++;t[R]="(?:~>?)";var S=n++;t[S]="(\\s*)"+t[R]+"\\s+";r[S]=new RegExp(t[S],"g");var V="$1~";var I=n++;t[I]="^"+t[R]+t[$]+"$";var T=n++;t[T]="^"+t[R]+t[k]+"$";var A=n++;t[A]="(?:\\^)";var C=n++;t[C]="(\\s*)"+t[A]+"\\s+";r[C]=new RegExp(t[C],"g");var M="$1^";var z=n++;t[z]="^"+t[A]+t[$]+"$";var N=n++;t[N]="^"+t[A]+t[k]+"$";var P=n++;t[P]="^"+t[y]+"\\s*("+w+")$|^$";var Z=n++;t[Z]="^"+t[y]+"\\s*("+g+")$|^$";var q=n++;t[q]="(\\s*)"+t[y]+"\\s*("+w+"|"+t[$]+")";r[q]=new RegExp(t[q],"g");var L="$1$2$3";var X=n++;t[X]="^\\s*("+t[$]+")"+"\\s+-\\s+"+"("+t[$]+")"+"\\s*$";var _=n++;t[_]="^\\s*("+t[k]+")"+"\\s+-\\s+"+"("+t[k]+")"+"\\s*$";var O=n++;t[O]="(<|>)?=?\\s*\\*";for(var B=0;B'};H.prototype.toString=function(){return this.version};H.prototype.compare=function(e){if(!(e instanceof H))e=new H(e,this.loose);return this.compareMain(e)||this.comparePre(e)};H.prototype.compareMain=function(e){if(!(e instanceof H))e=new H(e,this.loose);return Q(this.major,e.major)||Q(this.minor,e.minor)||Q(this.patch,e.patch)};H.prototype.comparePre=function(e){if(!(e instanceof H))e=new H(e,this.loose);if(this.prerelease.length&&!e.prerelease.length)return-1;else if(!this.prerelease.length&&e.prerelease.length)return 1;else if(!this.prerelease.length&&!e.prerelease.length)return 0;var r=0;do{var t=this.prerelease[r];var n=e.prerelease[r];if(t===undefined&&n===undefined)return 0;else if(n===undefined)return 1;else if(t===undefined)return-1;else if(t===n)continue;else return Q(t,n)}while(++r)};H.prototype.inc=function(e,r){switch(e){case"premajor":this.prerelease.length=0;this.patch=0;this.minor=0;this.major++;this.inc("pre",r);break;case"preminor":this.prerelease.length=0;this.patch=0;this.minor++;this.inc("pre",r);break;case"prepatch":this.prerelease.length=0;this.inc("patch",r);this.inc("pre",r);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",r);this.inc("pre",r);break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0;this.patch=0;this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0;this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{var t=this.prerelease.length;while(--t>=0){if(typeof this.prerelease[t]==="number"){this.prerelease[t]++;t=-2}}if(t===-1)this.prerelease.push(0)}if(r){if(this.prerelease[0]===r){if(isNaN(this.prerelease[1]))this.prerelease=[r,0]}else this.prerelease=[r,0]}break;default:throw new Error("invalid increment argument: "+e)}this.format();return this};e.inc=J;function J(e,r,t,n){if(typeof t==="string"){n=t;t=undefined}try{return new H(e,t).inc(r,n).version}catch(i){return null}}e.compareIdentifiers=Q;var K=/^[0-9]+$/;function Q(e,r){var t=K.test(e);var n=K.test(r);if(t&&n){e=+e;r=+r}return t&&!n?-1:n&&!t?1:er?1:0}e.rcompareIdentifiers=U;function U(e,r){return Q(r,e)}e.compare=W;function W(e,r,t){return new H(e,t).compare(r)}e.compareLoose=Y;function Y(e,r){return W(e,r,true)}e.rcompare=er;function er(e,r,t){return W(r,e,t)}e.sort=rr;function rr(r,t){return r.sort(function(r,n){return e.compare(r,n,t)})}e.rsort=tr;function tr(r,t){return r.sort(function(r,n){return e.rcompare(r,n,t)})}e.gt=nr;function nr(e,r,t){return W(e,r,t)>0}e.lt=ir;function ir(e,r,t){return W(e,r,t)<0}e.eq=sr;function sr(e,r,t){return W(e,r,t)===0}e.neq=ar;function ar(e,r,t){return W(e,r,t)!==0}e.gte=or;function or(e,r,t){return W(e,r,t)>=0}e.lte=fr;function fr(e,r,t){return W(e,r,t)<=0}e.cmp=ur;function ur(e,r,t,n){var i;switch(r){case"===":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e===t;break;case"!==":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e!==t;break;case"":case"=":case"==":i=sr(e,t,n);break;case"!=":i=ar(e,t,n);break;case">":i=nr(e,t,n);break;case">=":i=or(e,t,n);break;case"<":i=ir(e,t,n);break;case"<=":i=fr(e,t,n);break;default:throw new TypeError("Invalid operator: "+r)}return i}e.Comparator=lr;function lr(e,r){if(e instanceof lr){if(e.loose===r)return e;else e=e.value}if(!(this instanceof lr))return new lr(e,r);this.loose=r;this.parse(e);if(this.semver===pr)this.value="";else this.value=this.operator+this.semver.version}var pr={};lr.prototype.parse=function(e){var t=this.loose?r[P]:r[Z];var n=e.match(t);if(!n)throw new TypeError("Invalid comparator: "+e);this.operator=n[1];if(this.operator==="=")this.operator="";if(!n[2])this.semver=pr;else this.semver=new H(n[2],this.loose)};lr.prototype.inspect=function(){return''};lr.prototype.toString=function(){return this.value};lr.prototype.test=function(e){if(this.semver===pr)return true;if(typeof e==="string")e=new H(e,this.loose);return ur(e,this.operator,this.semver,this.loose)};e.Range=cr;function cr(e,r){if(e instanceof cr&&e.loose===r)return e;if(!(this instanceof cr))return new cr(e,r);this.loose=r;this.raw=e;this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length});if(!this.set.length){throw new TypeError("Invalid SemVer Range: "+e)}this.format()}cr.prototype.inspect=function(){return''};cr.prototype.format=function(){this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim();return this.range};cr.prototype.toString=function(){return this.range};cr.prototype.parseRange=function(e){var t=this.loose;e=e.trim();var n=t?r[_]:r[X];e=e.replace(n,kr);e=e.replace(r[q],L);e=e.replace(r[S],V);e=e.replace(r[C],M);e=e.split(/\s+/).join(" ");var i=t?r[P]:r[Z];var s=e.split(" ").map(function(e){return vr(e,t)}).join(" ").split(/\s+/);if(this.loose){s=s.filter(function(e){return!!e.match(i)})}s=s.map(function(e){return new lr(e,t)});return s};e.toComparators=hr;function hr(e,r){return new cr(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function vr(e,r){e=dr(e,r);e=gr(e,r);e=br(e,r);e=$r(e,r);return e}function mr(e){return!e||e.toLowerCase()==="x"||e==="*"}function gr(e,r){return e.trim().split(/\s+/).map(function(e){return wr(e,r)}).join(" ")}function wr(e,t){var n=t?r[T]:r[I];return e.replace(n,function(e,r,t,n,i){var s;if(mr(r))s="";else if(mr(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(mr(n))s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else if(i){if(i.charAt(0)!=="-")i="-"+i;s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0";return s})}function dr(e,r){return e.trim().split(/\s+/).map(function(e){return yr(e,r)}).join(" ")}function yr(e,t){var n=t?r[N]:r[z];return e.replace(n,function(e,r,t,n,i){var s;if(mr(r))s="";else if(mr(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(mr(n)){if(r==="0")s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else s=">="+r+"."+t+".0 <"+(+r+1)+".0.0"}else if(i){if(i.charAt(0)!=="-")i="-"+i;if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+i+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+i+" <"+(+r+1)+".0.0"}else{if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+(+r+1)+".0.0"}return s})}function br(e,r){return e.split(/\s+/).map(function(e){return jr(e,r)}).join(" ")}function jr(e,t){e=e.trim();var n=t?r[x]:r[E];return e.replace(n,function(e,r,t,n,i,s){var a=mr(t);var o=a||mr(n);var f=o||mr(i);var u=f;if(r==="="&&u)r="";if(a){if(r===">"||r==="<"){e="<0.0.0"}else{e="*"}}else if(r&&u){if(o)n=0;if(f)i=0;if(r===">"){r=">=";if(o){t=+t+1;n=0;i=0}else if(f){n=+n+1;i=0}}else if(r==="<="){r="<";if(o)t=+t+1;else n=+n+1}e=r+t+"."+n+"."+i}else if(o){e=">="+t+".0.0 <"+(+t+1)+".0.0"}else if(f){e=">="+t+"."+n+".0 <"+t+"."+(+n+1)+".0"}return e})}function $r(e,t){return e.trim().replace(r[O],"")}function kr(e,r,t,n,i,s,a,o,f,u,l,p,c){if(mr(t))r="";else if(mr(n))r=">="+t+".0.0";else if(mr(i))r=">="+t+"."+n+".0";else r=">="+r;if(mr(f))o="";else if(mr(u))o="<"+(+f+1)+".0.0";else if(mr(l))o="<"+f+"."+(+u+1)+".0";else if(p)o="<="+f+"."+u+"."+l+"-"+p;else o="<="+o;return(r+" "+o).trim()}cr.prototype.test=function(e){if(!e)return false;if(typeof e==="string")e=new H(e,this.loose);for(var r=0;r0){var n=e[t].semver;if(n.major===r.major&&n.minor===r.minor&&n.patch===r.patch)return true}}return false}return true}e.satisfies=xr;function xr(e,r,t){try{r=new cr(r,t)}catch(n){return false}return r.test(e)}e.maxSatisfying=Rr;function Rr(e,r,t){return e.filter(function(e){return xr(e,r,t)}).sort(function(e,r){return er(e,r,t)})[0]||null}e.validRange=Sr;function Sr(e,r){try{return new cr(e,r).range||"*"}catch(t){return null}}e.ltr=Vr;function Vr(e,r,t){return Tr(e,r,"<",t)}e.gtr=Ir;function Ir(e,r,t){return Tr(e,r,">",t)}e.outside=Tr;function Tr(e,r,t,n){e=new H(e,n);r=new cr(r,n);var i,s,a,o,f;switch(t){case">":i=nr;s=fr;a=ir;o=">";f=">=";break;case"<":i=ir;s=or;a=nr;o="<";f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(xr(e,r,n)){return false}for(var u=0;udt0q4(Yo4@WR9$6dMWw*!vrHKZM5 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 yVkXE&u@J#MUMN diff --git a/node_modules/node-notifier/node_modules/semver/test/amd.js b/node_modules/node-notifier/node_modules/semver/test/amd.js deleted file mode 100644 index a604134..0000000 --- a/node_modules/node-notifier/node_modules/semver/test/amd.js +++ /dev/null @@ -1,15 +0,0 @@ -var tap = require('tap'); -var test = tap.test; - -test('amd', function(t) { - global.define = define; - define.amd = true; - var defined = null; - function define(stuff) { - defined = stuff; - } - var fromRequire = require('../'); - t.ok(defined, 'amd function called'); - t.equal(fromRequire, defined, 'amd stuff same as require stuff'); - t.end(); -}); diff --git a/node_modules/node-notifier/node_modules/semver/test/clean.js b/node_modules/node-notifier/node_modules/semver/test/clean.js deleted file mode 100644 index 9e268de..0000000 --- a/node_modules/node-notifier/node_modules/semver/test/clean.js +++ /dev/null @@ -1,29 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var clean = semver.clean; - -test('\nclean tests', function(t) { - // [range, version] - // Version should be detectable despite extra characters - [ - ['1.2.3', '1.2.3'], - [' 1.2.3 ', '1.2.3'], - [' 1.2.3-4 ', '1.2.3-4'], - [' 1.2.3-pre ', '1.2.3-pre'], - [' =v1.2.3 ', '1.2.3'], - ['v1.2.3', '1.2.3'], - [' v1.2.3 ', '1.2.3'], - ['\t1.2.3', '1.2.3'], - ['>1.2.3', null], - ['~1.2.3', null], - ['<=1.2.3', null], - ['1.2.x', null] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var msg = 'clean(' + range + ') = ' + version; - t.equal(clean(range), version, msg); - }); - t.end(); -}); diff --git a/node_modules/node-notifier/node_modules/semver/test/gtr.js b/node_modules/node-notifier/node_modules/semver/test/gtr.js deleted file mode 100644 index bbb8789..0000000 --- a/node_modules/node-notifier/node_modules/semver/test/gtr.js +++ /dev/null @@ -1,173 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var gtr = semver.gtr; - -test('\ngtr tests', function(t) { - // [range, version, loose] - // Version should be greater than range - [ - ['~1.2.2', '1.3.0'], - ['~0.6.1-1', '0.7.1-1'], - ['1.0.0 - 2.0.0', '2.0.1'], - ['1.0.0', '1.0.1-beta1'], - ['1.0.0', '2.0.0'], - ['<=2.0.0', '2.1.1'], - ['<=2.0.0', '3.2.9'], - ['<2.0.0', '2.0.0'], - ['0.1.20 || 1.2.4', '1.2.5'], - ['2.x.x', '3.0.0'], - ['1.2.x', '1.3.0'], - ['1.2.x || 2.x', '3.0.0'], - ['2.*.*', '5.0.1'], - ['1.2.*', '1.3.3'], - ['1.2.* || 2.*', '4.0.0'], - ['2', '3.0.0'], - ['2.3', '2.4.2'], - ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.5.5'], - ['~>3.2.1', '3.3.0'], // >=3.2.1 <3.3.0 - ['~1', '2.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '2.2.4'], - ['~> 1', '3.2.3'], - ['~1.0', '1.1.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '1.1.0'], - ['<1.2', '1.2.0'], - ['< 1.2', '1.2.1'], - ['1', '2.0.0beta', true], - ['~v0.5.4-pre', '0.6.0'], - ['~v0.5.4-pre', '0.6.1-pre'], - ['=0.7.x', '0.8.0'], - ['=0.7.x', '0.8.0-asdf'], - ['<0.7.x', '0.7.0'], - ['~1.2.2', '1.3.0'], - ['1.0.0 - 2.0.0', '2.2.3'], - ['1.0.0', '1.0.1'], - ['<=2.0.0', '3.0.0'], - ['<=2.0.0', '2.9999.9999'], - ['<=2.0.0', '2.2.9'], - ['<2.0.0', '2.9999.9999'], - ['<2.0.0', '2.2.9'], - ['2.x.x', '3.1.3'], - ['1.2.x', '1.3.3'], - ['1.2.x || 2.x', '3.1.3'], - ['2.*.*', '3.1.3'], - ['1.2.*', '1.3.3'], - ['1.2.* || 2.*', '3.1.3'], - ['2', '3.1.2'], - ['2.3', '2.4.1'], - ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0 - ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0 - ['~1', '2.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '2.2.3'], - ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0 - ['<1', '1.0.0'], - ['1', '2.0.0beta', true], - ['<1', '1.0.0beta', true], - ['< 1', '1.0.0beta', true], - ['=0.7.x', '0.8.2'], - ['<0.7.x', '0.7.2'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'gtr(' + version + ', ' + range + ', ' + loose + ')'; - t.ok(gtr(version, range, loose), msg); - }); - t.end(); -}); - -test('\nnegative gtr tests', function(t) { - // [range, version, loose] - // Version should NOT be greater than range - [ - ['~0.6.1-1', '0.6.1-1'], - ['1.0.0 - 2.0.0', '1.2.3'], - ['1.0.0 - 2.0.0', '0.9.9'], - ['1.0.0', '1.0.0'], - ['>=*', '0.2.4'], - ['', '1.0.0', true], - ['*', '1.2.3'], - ['*', 'v1.2.3-foo'], - ['>=1.0.0', '1.0.0'], - ['>=1.0.0', '1.0.1'], - ['>=1.0.0', '1.1.0'], - ['>1.0.0', '1.0.1'], - ['>1.0.0', '1.1.0'], - ['<=2.0.0', '2.0.0'], - ['<=2.0.0', '1.9999.9999'], - ['<=2.0.0', '0.2.9'], - ['<2.0.0', '1.9999.9999'], - ['<2.0.0', '0.2.9'], - ['>= 1.0.0', '1.0.0'], - ['>= 1.0.0', '1.0.1'], - ['>= 1.0.0', '1.1.0'], - ['> 1.0.0', '1.0.1'], - ['> 1.0.0', '1.1.0'], - ['<= 2.0.0', '2.0.0'], - ['<= 2.0.0', '1.9999.9999'], - ['<= 2.0.0', '0.2.9'], - ['< 2.0.0', '1.9999.9999'], - ['<\t2.0.0', '0.2.9'], - ['>=0.1.97', 'v0.1.97'], - ['>=0.1.97', '0.1.97'], - ['0.1.20 || 1.2.4', '1.2.4'], - ['0.1.20 || >1.2.4', '1.2.4'], - ['0.1.20 || 1.2.4', '1.2.3'], - ['0.1.20 || 1.2.4', '0.1.20'], - ['>=0.2.3 || <0.0.1', '0.0.0'], - ['>=0.2.3 || <0.0.1', '0.2.3'], - ['>=0.2.3 || <0.0.1', '0.2.4'], - ['||', '1.3.4'], - ['2.x.x', '2.1.3'], - ['1.2.x', '1.2.3'], - ['1.2.x || 2.x', '2.1.3'], - ['1.2.x || 2.x', '1.2.3'], - ['x', '1.2.3'], - ['2.*.*', '2.1.3'], - ['1.2.*', '1.2.3'], - ['1.2.* || 2.*', '2.1.3'], - ['1.2.* || 2.*', '1.2.3'], - ['1.2.* || 2.*', '1.2.3'], - ['*', '1.2.3'], - ['2', '2.1.2'], - ['2.3', '2.3.1'], - ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.4.5'], - ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0 - ['~1', '1.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '1.2.3'], - ['~> 1', '1.2.3'], - ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '1.0.2'], - ['>=1', '1.0.0'], - ['>= 1', '1.0.0'], - ['<1.2', '1.1.1'], - ['< 1.2', '1.1.1'], - ['1', '1.0.0beta', true], - ['~v0.5.4-pre', '0.5.5'], - ['~v0.5.4-pre', '0.5.4'], - ['=0.7.x', '0.7.2'], - ['>=0.7.x', '0.7.2'], - ['=0.7.x', '0.7.0-asdf'], - ['>=0.7.x', '0.7.0-asdf'], - ['<=0.7.x', '0.6.2'], - ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'], - ['>=0.2.3 <=0.2.4', '0.2.4'], - ['1.0.0 - 2.0.0', '2.0.0'], - ['^1', '0.0.0-0'], - ['^3.0.0', '2.0.0'], - ['^1.0.0 || ~2.0.1', '2.0.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true], - ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true], - ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = '!gtr(' + version + ', ' + range + ', ' + loose + ')'; - t.notOk(gtr(version, range, loose), msg); - }); - t.end(); -}); diff --git a/node_modules/node-notifier/node_modules/semver/test/index.js b/node_modules/node-notifier/node_modules/semver/test/index.js deleted file mode 100644 index de8acae..0000000 --- a/node_modules/node-notifier/node_modules/semver/test/index.js +++ /dev/null @@ -1,653 +0,0 @@ -'use strict'; - -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var eq = semver.eq; -var gt = semver.gt; -var lt = semver.lt; -var neq = semver.neq; -var cmp = semver.cmp; -var gte = semver.gte; -var lte = semver.lte; -var satisfies = semver.satisfies; -var validRange = semver.validRange; -var inc = semver.inc; -var replaceStars = semver.replaceStars; -var toComparators = semver.toComparators; -var SemVer = semver.SemVer; -var Range = semver.Range; - -test('\ncomparison tests', function(t) { - // [version1, version2] - // version1 should be greater than version2 - [['0.0.0', '0.0.0-foo'], - ['0.0.1', '0.0.0'], - ['1.0.0', '0.9.9'], - ['0.10.0', '0.9.0'], - ['0.99.0', '0.10.0'], - ['2.0.0', '1.2.3'], - ['v0.0.0', '0.0.0-foo', true], - ['v0.0.1', '0.0.0', true], - ['v1.0.0', '0.9.9', true], - ['v0.10.0', '0.9.0', true], - ['v0.99.0', '0.10.0', true], - ['v2.0.0', '1.2.3', true], - ['0.0.0', 'v0.0.0-foo', true], - ['0.0.1', 'v0.0.0', true], - ['1.0.0', 'v0.9.9', true], - ['0.10.0', 'v0.9.0', true], - ['0.99.0', 'v0.10.0', true], - ['2.0.0', 'v1.2.3', true], - ['1.2.3', '1.2.3-asdf'], - ['1.2.3', '1.2.3-4'], - ['1.2.3', '1.2.3-4-foo'], - ['1.2.3-5-foo', '1.2.3-5'], - ['1.2.3-5', '1.2.3-4'], - ['1.2.3-5-foo', '1.2.3-5-Foo'], - ['3.0.0', '2.7.2+asdf'], - ['1.2.3-a.10', '1.2.3-a.5'], - ['1.2.3-a.b', '1.2.3-a.5'], - ['1.2.3-a.b', '1.2.3-a'], - ['1.2.3-a.b.c.10.d.5', '1.2.3-a.b.c.5.d.100'] - ].forEach(function(v) { - var v0 = v[0]; - var v1 = v[1]; - var loose = v[2]; - t.ok(gt(v0, v1, loose), "gt('" + v0 + "', '" + v1 + "')"); - t.ok(lt(v1, v0, loose), "lt('" + v1 + "', '" + v0 + "')"); - t.ok(!gt(v1, v0, loose), "!gt('" + v1 + "', '" + v0 + "')"); - t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')"); - t.ok(eq(v0, v0, loose), "eq('" + v0 + "', '" + v0 + "')"); - t.ok(eq(v1, v1, loose), "eq('" + v1 + "', '" + v1 + "')"); - t.ok(neq(v0, v1, loose), "neq('" + v0 + "', '" + v1 + "')"); - t.ok(cmp(v1, '==', v1, loose), "cmp('" + v1 + "' == '" + v1 + "')"); - t.ok(cmp(v0, '>=', v1, loose), "cmp('" + v0 + "' >= '" + v1 + "')"); - t.ok(cmp(v1, '<=', v0, loose), "cmp('" + v1 + "' <= '" + v0 + "')"); - t.ok(cmp(v0, '!=', v1, loose), "cmp('" + v0 + "' != '" + v1 + "')"); - }); - t.end(); -}); - -test('\nequality tests', function(t) { - // [version1, version2] - // version1 should be equivalent to version2 - [['1.2.3', 'v1.2.3', true], - ['1.2.3', '=1.2.3', true], - ['1.2.3', 'v 1.2.3', true], - ['1.2.3', '= 1.2.3', true], - ['1.2.3', ' v1.2.3', true], - ['1.2.3', ' =1.2.3', true], - ['1.2.3', ' v 1.2.3', true], - ['1.2.3', ' = 1.2.3', true], - ['1.2.3-0', 'v1.2.3-0', true], - ['1.2.3-0', '=1.2.3-0', true], - ['1.2.3-0', 'v 1.2.3-0', true], - ['1.2.3-0', '= 1.2.3-0', true], - ['1.2.3-0', ' v1.2.3-0', true], - ['1.2.3-0', ' =1.2.3-0', true], - ['1.2.3-0', ' v 1.2.3-0', true], - ['1.2.3-0', ' = 1.2.3-0', true], - ['1.2.3-1', 'v1.2.3-1', true], - ['1.2.3-1', '=1.2.3-1', true], - ['1.2.3-1', 'v 1.2.3-1', true], - ['1.2.3-1', '= 1.2.3-1', true], - ['1.2.3-1', ' v1.2.3-1', true], - ['1.2.3-1', ' =1.2.3-1', true], - ['1.2.3-1', ' v 1.2.3-1', true], - ['1.2.3-1', ' = 1.2.3-1', true], - ['1.2.3-beta', 'v1.2.3-beta', true], - ['1.2.3-beta', '=1.2.3-beta', true], - ['1.2.3-beta', 'v 1.2.3-beta', true], - ['1.2.3-beta', '= 1.2.3-beta', true], - ['1.2.3-beta', ' v1.2.3-beta', true], - ['1.2.3-beta', ' =1.2.3-beta', true], - ['1.2.3-beta', ' v 1.2.3-beta', true], - ['1.2.3-beta', ' = 1.2.3-beta', true], - ['1.2.3-beta+build', ' = 1.2.3-beta+otherbuild', true], - ['1.2.3+build', ' = 1.2.3+otherbuild', true], - ['1.2.3-beta+build', '1.2.3-beta+otherbuild'], - ['1.2.3+build', '1.2.3+otherbuild'], - [' v1.2.3+build', '1.2.3+otherbuild'] - ].forEach(function(v) { - var v0 = v[0]; - var v1 = v[1]; - var loose = v[2]; - t.ok(eq(v0, v1, loose), "eq('" + v0 + "', '" + v1 + "')"); - t.ok(!neq(v0, v1, loose), "!neq('" + v0 + "', '" + v1 + "')"); - t.ok(cmp(v0, '==', v1, loose), 'cmp(' + v0 + '==' + v1 + ')'); - t.ok(!cmp(v0, '!=', v1, loose), '!cmp(' + v0 + '!=' + v1 + ')'); - t.ok(!cmp(v0, '===', v1, loose), '!cmp(' + v0 + '===' + v1 + ')'); - t.ok(cmp(v0, '!==', v1, loose), 'cmp(' + v0 + '!==' + v1 + ')'); - t.ok(!gt(v0, v1, loose), "!gt('" + v0 + "', '" + v1 + "')"); - t.ok(gte(v0, v1, loose), "gte('" + v0 + "', '" + v1 + "')"); - t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')"); - t.ok(lte(v0, v1, loose), "lte('" + v0 + "', '" + v1 + "')"); - }); - t.end(); -}); - - -test('\nrange tests', function(t) { - // [range, version] - // version should be included by range - [['1.0.0 - 2.0.0', '1.2.3'], - ['^1.2.3+build', '1.2.3'], - ['^1.2.3+build', '1.3.0'], - ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3'], - ['1.2.3pre+asdf - 2.4.3-pre+asdf', '1.2.3', true], - ['1.2.3-pre+asdf - 2.4.3pre+asdf', '1.2.3', true], - ['1.2.3pre+asdf - 2.4.3pre+asdf', '1.2.3', true], - ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3-pre.2'], - ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '2.4.3-alpha'], - ['1.2.3+asdf - 2.4.3+asdf', '1.2.3'], - ['1.0.0', '1.0.0'], - ['>=*', '0.2.4'], - ['', '1.0.0'], - ['*', '1.2.3'], - ['*', 'v1.2.3-foo', true], - ['>=1.0.0', '1.0.0'], - ['>=1.0.0', '1.0.1'], - ['>=1.0.0', '1.1.0'], - ['>1.0.0', '1.0.1'], - ['>1.0.0', '1.1.0'], - ['<=2.0.0', '2.0.0'], - ['<=2.0.0', '1.9999.9999'], - ['<=2.0.0', '0.2.9'], - ['<2.0.0', '1.9999.9999'], - ['<2.0.0', '0.2.9'], - ['>= 1.0.0', '1.0.0'], - ['>= 1.0.0', '1.0.1'], - ['>= 1.0.0', '1.1.0'], - ['> 1.0.0', '1.0.1'], - ['> 1.0.0', '1.1.0'], - ['<= 2.0.0', '2.0.0'], - ['<= 2.0.0', '1.9999.9999'], - ['<= 2.0.0', '0.2.9'], - ['< 2.0.0', '1.9999.9999'], - ['<\t2.0.0', '0.2.9'], - ['>=0.1.97', 'v0.1.97', true], - ['>=0.1.97', '0.1.97'], - ['0.1.20 || 1.2.4', '1.2.4'], - ['>=0.2.3 || <0.0.1', '0.0.0'], - ['>=0.2.3 || <0.0.1', '0.2.3'], - ['>=0.2.3 || <0.0.1', '0.2.4'], - ['||', '1.3.4'], - ['2.x.x', '2.1.3'], - ['1.2.x', '1.2.3'], - ['1.2.x || 2.x', '2.1.3'], - ['1.2.x || 2.x', '1.2.3'], - ['x', '1.2.3'], - ['2.*.*', '2.1.3'], - ['1.2.*', '1.2.3'], - ['1.2.* || 2.*', '2.1.3'], - ['1.2.* || 2.*', '1.2.3'], - ['*', '1.2.3'], - ['2', '2.1.2'], - ['2.3', '2.3.1'], - ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.4.5'], - ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0, - ['~1', '1.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '1.2.3'], - ['~> 1', '1.2.3'], - ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0, - ['~ 1.0', '1.0.2'], - ['~ 1.0.3', '1.0.12'], - ['>=1', '1.0.0'], - ['>= 1', '1.0.0'], - ['<1.2', '1.1.1'], - ['< 1.2', '1.1.1'], - ['~v0.5.4-pre', '0.5.5'], - ['~v0.5.4-pre', '0.5.4'], - ['=0.7.x', '0.7.2'], - ['<=0.7.x', '0.7.2'], - ['>=0.7.x', '0.7.2'], - ['<=0.7.x', '0.6.2'], - ['~1.2.1 >=1.2.3', '1.2.3'], - ['~1.2.1 =1.2.3', '1.2.3'], - ['~1.2.1 1.2.3', '1.2.3'], - ['~1.2.1 >=1.2.3 1.2.3', '1.2.3'], - ['~1.2.1 1.2.3 >=1.2.3', '1.2.3'], - ['~1.2.1 1.2.3', '1.2.3'], - ['>=1.2.1 1.2.3', '1.2.3'], - ['1.2.3 >=1.2.1', '1.2.3'], - ['>=1.2.3 >=1.2.1', '1.2.3'], - ['>=1.2.1 >=1.2.3', '1.2.3'], - ['>=1.2', '1.2.8'], - ['^1.2.3', '1.8.1'], - ['^0.1.2', '0.1.2'], - ['^0.1', '0.1.2'], - ['^1.2', '1.4.2'], - ['^1.2 ^1', '1.4.2'], - ['^1.2.3-alpha', '1.2.3-pre'], - ['^1.2.0-alpha', '1.2.0-pre'], - ['^0.0.1-alpha', '0.0.1-beta'] - ].forEach(function(v) { - var range = v[0]; - var ver = v[1]; - var loose = v[2]; - t.ok(satisfies(ver, range, loose), range + ' satisfied by ' + ver); - }); - t.end(); -}); - -test('\nnegative range tests', function(t) { - // [range, version] - // version should not be included by range - [['1.0.0 - 2.0.0', '2.2.3'], - ['1.2.3+asdf - 2.4.3+asdf', '1.2.3-pre.2'], - ['1.2.3+asdf - 2.4.3+asdf', '2.4.3-alpha'], - ['^1.2.3+build', '2.0.0'], - ['^1.2.3+build', '1.2.0'], - ['^1.2.3', '1.2.3-pre'], - ['^1.2', '1.2.0-pre'], - ['>1.2', '1.3.0-beta'], - ['<=1.2.3', '1.2.3-beta'], - ['^1.2.3', '1.2.3-beta'], - ['=0.7.x', '0.7.0-asdf'], - ['>=0.7.x', '0.7.0-asdf'], - ['1', '1.0.0beta', true], - ['<1', '1.0.0beta', true], - ['< 1', '1.0.0beta', true], - ['1.0.0', '1.0.1'], - ['>=1.0.0', '0.0.0'], - ['>=1.0.0', '0.0.1'], - ['>=1.0.0', '0.1.0'], - ['>1.0.0', '0.0.1'], - ['>1.0.0', '0.1.0'], - ['<=2.0.0', '3.0.0'], - ['<=2.0.0', '2.9999.9999'], - ['<=2.0.0', '2.2.9'], - ['<2.0.0', '2.9999.9999'], - ['<2.0.0', '2.2.9'], - ['>=0.1.97', 'v0.1.93', true], - ['>=0.1.97', '0.1.93'], - ['0.1.20 || 1.2.4', '1.2.3'], - ['>=0.2.3 || <0.0.1', '0.0.3'], - ['>=0.2.3 || <0.0.1', '0.2.2'], - ['2.x.x', '1.1.3'], - ['2.x.x', '3.1.3'], - ['1.2.x', '1.3.3'], - ['1.2.x || 2.x', '3.1.3'], - ['1.2.x || 2.x', '1.1.3'], - ['2.*.*', '1.1.3'], - ['2.*.*', '3.1.3'], - ['1.2.*', '1.3.3'], - ['1.2.* || 2.*', '3.1.3'], - ['1.2.* || 2.*', '1.1.3'], - ['2', '1.1.2'], - ['2.3', '2.4.1'], - ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.3.9'], - ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0 - ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0 - ['~1', '0.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '2.2.3'], - ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0 - ['<1', '1.0.0'], - ['>=1.2', '1.1.1'], - ['1', '2.0.0beta', true], - ['~v0.5.4-beta', '0.5.4-alpha'], - ['=0.7.x', '0.8.2'], - ['>=0.7.x', '0.6.2'], - ['<0.7.x', '0.7.2'], - ['<1.2.3', '1.2.3-beta'], - ['=1.2.3', '1.2.3-beta'], - ['>1.2', '1.2.8'], - ['^1.2.3', '2.0.0-alpha'], - ['^1.2.3', '1.2.2'], - ['^1.2', '1.1.9'], - // invalid ranges never satisfied! - ['blerg', '1.2.3'], - ['git+https://user:password0123@github.com/foo', '123.0.0', true], - ['^1.2.3', '2.0.0-pre'] - ].forEach(function(v) { - var range = v[0]; - var ver = v[1]; - var loose = v[2]; - var found = satisfies(ver, range, loose); - t.ok(!found, ver + ' not satisfied by ' + range); - }); - t.end(); -}); - -test('\nincrement versions test', function(t) { -// [version, inc, result, identifier] -// inc(version, inc) -> result - [['1.2.3', 'major', '2.0.0'], - ['1.2.3', 'minor', '1.3.0'], - ['1.2.3', 'patch', '1.2.4'], - ['1.2.3tag', 'major', '2.0.0', true], - ['1.2.3-tag', 'major', '2.0.0'], - ['1.2.3', 'fake', null], - ['1.2.0-0', 'patch', '1.2.0'], - ['fake', 'major', null], - ['1.2.3-4', 'major', '2.0.0'], - ['1.2.3-4', 'minor', '1.3.0'], - ['1.2.3-4', 'patch', '1.2.3'], - ['1.2.3-alpha.0.beta', 'major', '2.0.0'], - ['1.2.3-alpha.0.beta', 'minor', '1.3.0'], - ['1.2.3-alpha.0.beta', 'patch', '1.2.3'], - ['1.2.4', 'prerelease', '1.2.5-0'], - ['1.2.3-0', 'prerelease', '1.2.3-1'], - ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1'], - ['1.2.3-alpha.1', 'prerelease', '1.2.3-alpha.2'], - ['1.2.3-alpha.2', 'prerelease', '1.2.3-alpha.3'], - ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta'], - ['1.2.3-alpha.1.beta', 'prerelease', '1.2.3-alpha.2.beta'], - ['1.2.3-alpha.2.beta', 'prerelease', '1.2.3-alpha.3.beta'], - ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta'], - ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta'], - ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta'], - ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1'], - ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2'], - ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3'], - ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta'], - ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta'], - ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta'], - ['1.2.0', 'prepatch', '1.2.1-0'], - ['1.2.0-1', 'prepatch', '1.2.1-0'], - ['1.2.0', 'preminor', '1.3.0-0'], - ['1.2.3-1', 'preminor', '1.3.0-0'], - ['1.2.0', 'premajor', '2.0.0-0'], - ['1.2.3-1', 'premajor', '2.0.0-0'], - ['1.2.0-1', 'minor', '1.2.0'], - ['1.0.0-1', 'major', '1.0.0'], - - ['1.2.3', 'major', '2.0.0', false, 'dev'], - ['1.2.3', 'minor', '1.3.0', false, 'dev'], - ['1.2.3', 'patch', '1.2.4', false, 'dev'], - ['1.2.3tag', 'major', '2.0.0', true, 'dev'], - ['1.2.3-tag', 'major', '2.0.0', false, 'dev'], - ['1.2.3', 'fake', null, false, 'dev'], - ['1.2.0-0', 'patch', '1.2.0', false, 'dev'], - ['fake', 'major', null, false, 'dev'], - ['1.2.3-4', 'major', '2.0.0', false, 'dev'], - ['1.2.3-4', 'minor', '1.3.0', false, 'dev'], - ['1.2.3-4', 'patch', '1.2.3', false, 'dev'], - ['1.2.3-alpha.0.beta', 'major', '2.0.0', false, 'dev'], - ['1.2.3-alpha.0.beta', 'minor', '1.3.0', false, 'dev'], - ['1.2.3-alpha.0.beta', 'patch', '1.2.3', false, 'dev'], - ['1.2.4', 'prerelease', '1.2.5-dev.0', false, 'dev'], - ['1.2.3-0', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.0', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1', false, 'alpha'], - ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta', false, 'alpha'], - ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta', false, 'alpha'], - ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta', false, 'alpha'], - ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta', false, 'alpha'], - ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1', false, 'alpha'], - ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2', false, 'alpha'], - ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3', false, 'alpha'], - ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'], - ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta', false, 'alpha'], - ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta', false, 'alpha'], - ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta', false, 'alpha'], - ['1.2.0', 'prepatch', '1.2.1-dev.0', 'dev'], - ['1.2.0-1', 'prepatch', '1.2.1-dev.0', 'dev'], - ['1.2.0', 'preminor', '1.3.0-dev.0', 'dev'], - ['1.2.3-1', 'preminor', '1.3.0-dev.0', 'dev'], - ['1.2.0', 'premajor', '2.0.0-dev.0', 'dev'], - ['1.2.3-1', 'premajor', '2.0.0-dev.0', 'dev'], - ['1.2.0-1', 'minor', '1.2.0', 'dev'], - ['1.0.0-1', 'major', '1.0.0', 'dev'], - ['1.2.3-dev.bar', 'prerelease', '1.2.3-dev.0', false, 'dev'] - - ].forEach(function(v) { - var pre = v[0]; - var what = v[1]; - var wanted = v[2]; - var loose = v[3]; - var id = v[4]; - var found = inc(pre, what, loose, id); - var cmd = 'inc(' + pre + ', ' + what + ', ' + id + ')'; - t.equal(found, wanted, cmd + ' === ' + wanted); - }); - - t.end(); -}); - -test('\nvalid range test', function(t) { - // [range, result] - // validRange(range) -> result - // translate ranges into their canonical form - [['1.0.0 - 2.0.0', '>=1.0.0 <=2.0.0'], - ['1.0.0', '1.0.0'], - ['>=*', '*'], - ['', '*'], - ['*', '*'], - ['*', '*'], - ['>=1.0.0', '>=1.0.0'], - ['>1.0.0', '>1.0.0'], - ['<=2.0.0', '<=2.0.0'], - ['1', '>=1.0.0 <2.0.0'], - ['<=2.0.0', '<=2.0.0'], - ['<=2.0.0', '<=2.0.0'], - ['<2.0.0', '<2.0.0'], - ['<2.0.0', '<2.0.0'], - ['>= 1.0.0', '>=1.0.0'], - ['>= 1.0.0', '>=1.0.0'], - ['>= 1.0.0', '>=1.0.0'], - ['> 1.0.0', '>1.0.0'], - ['> 1.0.0', '>1.0.0'], - ['<= 2.0.0', '<=2.0.0'], - ['<= 2.0.0', '<=2.0.0'], - ['<= 2.0.0', '<=2.0.0'], - ['< 2.0.0', '<2.0.0'], - ['< 2.0.0', '<2.0.0'], - ['>=0.1.97', '>=0.1.97'], - ['>=0.1.97', '>=0.1.97'], - ['0.1.20 || 1.2.4', '0.1.20||1.2.4'], - ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'], - ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'], - ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'], - ['||', '||'], - ['2.x.x', '>=2.0.0 <3.0.0'], - ['1.2.x', '>=1.2.0 <1.3.0'], - ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'], - ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'], - ['x', '*'], - ['2.*.*', '>=2.0.0 <3.0.0'], - ['1.2.*', '>=1.2.0 <1.3.0'], - ['1.2.* || 2.*', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'], - ['*', '*'], - ['2', '>=2.0.0 <3.0.0'], - ['2.3', '>=2.3.0 <2.4.0'], - ['~2.4', '>=2.4.0 <2.5.0'], - ['~2.4', '>=2.4.0 <2.5.0'], - ['~>3.2.1', '>=3.2.1 <3.3.0'], - ['~1', '>=1.0.0 <2.0.0'], - ['~>1', '>=1.0.0 <2.0.0'], - ['~> 1', '>=1.0.0 <2.0.0'], - ['~1.0', '>=1.0.0 <1.1.0'], - ['~ 1.0', '>=1.0.0 <1.1.0'], - ['^0', '>=0.0.0 <1.0.0'], - ['^ 1', '>=1.0.0 <2.0.0'], - ['^0.1', '>=0.1.0 <0.2.0'], - ['^1.0', '>=1.0.0 <2.0.0'], - ['^1.2', '>=1.2.0 <2.0.0'], - ['^0.0.1', '>=0.0.1 <0.0.2'], - ['^0.0.1-beta', '>=0.0.1-beta <0.0.2'], - ['^0.1.2', '>=0.1.2 <0.2.0'], - ['^1.2.3', '>=1.2.3 <2.0.0'], - ['^1.2.3-beta.4', '>=1.2.3-beta.4 <2.0.0'], - ['<1', '<1.0.0'], - ['< 1', '<1.0.0'], - ['>=1', '>=1.0.0'], - ['>= 1', '>=1.0.0'], - ['<1.2', '<1.2.0'], - ['< 1.2', '<1.2.0'], - ['1', '>=1.0.0 <2.0.0'], - ['>01.02.03', '>1.2.3', true], - ['>01.02.03', null], - ['~1.2.3beta', '>=1.2.3-beta <1.3.0', true], - ['~1.2.3beta', null], - ['^ 1.2 ^ 1', '>=1.2.0 <2.0.0 >=1.0.0 <2.0.0'] - ].forEach(function(v) { - var pre = v[0]; - var wanted = v[1]; - var loose = v[2]; - var found = validRange(pre, loose); - - t.equal(found, wanted, 'validRange(' + pre + ') === ' + wanted); - }); - - t.end(); -}); - -test('\ncomparators test', function(t) { - // [range, comparators] - // turn range into a set of individual comparators - [['1.0.0 - 2.0.0', [['>=1.0.0', '<=2.0.0']]], - ['1.0.0', [['1.0.0']]], - ['>=*', [['']]], - ['', [['']]], - ['*', [['']]], - ['*', [['']]], - ['>=1.0.0', [['>=1.0.0']]], - ['>=1.0.0', [['>=1.0.0']]], - ['>=1.0.0', [['>=1.0.0']]], - ['>1.0.0', [['>1.0.0']]], - ['>1.0.0', [['>1.0.0']]], - ['<=2.0.0', [['<=2.0.0']]], - ['1', [['>=1.0.0', '<2.0.0']]], - ['<=2.0.0', [['<=2.0.0']]], - ['<=2.0.0', [['<=2.0.0']]], - ['<2.0.0', [['<2.0.0']]], - ['<2.0.0', [['<2.0.0']]], - ['>= 1.0.0', [['>=1.0.0']]], - ['>= 1.0.0', [['>=1.0.0']]], - ['>= 1.0.0', [['>=1.0.0']]], - ['> 1.0.0', [['>1.0.0']]], - ['> 1.0.0', [['>1.0.0']]], - ['<= 2.0.0', [['<=2.0.0']]], - ['<= 2.0.0', [['<=2.0.0']]], - ['<= 2.0.0', [['<=2.0.0']]], - ['< 2.0.0', [['<2.0.0']]], - ['<\t2.0.0', [['<2.0.0']]], - ['>=0.1.97', [['>=0.1.97']]], - ['>=0.1.97', [['>=0.1.97']]], - ['0.1.20 || 1.2.4', [['0.1.20'], ['1.2.4']]], - ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]], - ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]], - ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]], - ['||', [[''], ['']]], - ['2.x.x', [['>=2.0.0', '<3.0.0']]], - ['1.2.x', [['>=1.2.0', '<1.3.0']]], - ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['x', [['']]], - ['2.*.*', [['>=2.0.0', '<3.0.0']]], - ['1.2.*', [['>=1.2.0', '<1.3.0']]], - ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]], - ['*', [['']]], - ['2', [['>=2.0.0', '<3.0.0']]], - ['2.3', [['>=2.3.0', '<2.4.0']]], - ['~2.4', [['>=2.4.0', '<2.5.0']]], - ['~2.4', [['>=2.4.0', '<2.5.0']]], - ['~>3.2.1', [['>=3.2.1', '<3.3.0']]], - ['~1', [['>=1.0.0', '<2.0.0']]], - ['~>1', [['>=1.0.0', '<2.0.0']]], - ['~> 1', [['>=1.0.0', '<2.0.0']]], - ['~1.0', [['>=1.0.0', '<1.1.0']]], - ['~ 1.0', [['>=1.0.0', '<1.1.0']]], - ['~ 1.0.3', [['>=1.0.3', '<1.1.0']]], - ['~> 1.0.3', [['>=1.0.3', '<1.1.0']]], - ['<1', [['<1.0.0']]], - ['< 1', [['<1.0.0']]], - ['>=1', [['>=1.0.0']]], - ['>= 1', [['>=1.0.0']]], - ['<1.2', [['<1.2.0']]], - ['< 1.2', [['<1.2.0']]], - ['1', [['>=1.0.0', '<2.0.0']]], - ['1 2', [['>=1.0.0', '<2.0.0', '>=2.0.0', '<3.0.0']]], - ['1.2 - 3.4.5', [['>=1.2.0', '<=3.4.5']]], - ['1.2.3 - 3.4', [['>=1.2.3', '<3.5.0']]], - ['1.2.3 - 3', [['>=1.2.3', '<4.0.0']]], - ['>*', [['<0.0.0']]], - ['<*', [['<0.0.0']]] - ].forEach(function(v) { - var pre = v[0]; - var wanted = v[1]; - var found = toComparators(v[0]); - var jw = JSON.stringify(wanted); - t.equivalent(found, wanted, 'toComparators(' + pre + ') === ' + jw); - }); - - t.end(); -}); - -test('\ninvalid version numbers', function(t) { - ['1.2.3.4', - 'NOT VALID', - 1.2, - null, - 'Infinity.NaN.Infinity' - ].forEach(function(v) { - t.throws(function() { - new SemVer(v); - }, {name:'TypeError', message:'Invalid Version: ' + v}); - }); - - t.end(); -}); - -test('\nstrict vs loose version numbers', function(t) { - [['=1.2.3', '1.2.3'], - ['01.02.03', '1.2.3'], - ['1.2.3-beta.01', '1.2.3-beta.1'], - [' =1.2.3', '1.2.3'], - ['1.2.3foo', '1.2.3-foo'] - ].forEach(function(v) { - var loose = v[0]; - var strict = v[1]; - t.throws(function() { - new SemVer(loose); - }); - var lv = new SemVer(loose, true); - t.equal(lv.version, strict); - t.ok(eq(loose, strict, true)); - t.throws(function() { - eq(loose, strict); - }); - t.throws(function() { - new SemVer(strict).compare(loose); - }); - }); - t.end(); -}); - -test('\nstrict vs loose ranges', function(t) { - [['>=01.02.03', '>=1.2.3'], - ['~1.02.03beta', '>=1.2.3-beta <1.3.0'] - ].forEach(function(v) { - var loose = v[0]; - var comps = v[1]; - t.throws(function() { - new Range(loose); - }); - t.equal(new Range(loose, true).range, comps); - }); - t.end(); -}); - -test('\nmax satisfying', function(t) { - [[['1.2.3', '1.2.4'], '1.2', '1.2.4'], - [['1.2.4', '1.2.3'], '1.2', '1.2.4'], - [['1.2.3', '1.2.4', '1.2.5', '1.2.6'], '~1.2.3', '1.2.6'], - [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0b3', '2.0.0', '2.1.0'], '~2.0.0', '2.0.0', true] - ].forEach(function(v) { - var versions = v[0]; - var range = v[1]; - var expect = v[2]; - var loose = v[3]; - var actual = semver.maxSatisfying(versions, range, loose); - t.equal(actual, expect); - }); - t.end(); -}); diff --git a/node_modules/node-notifier/node_modules/semver/test/ltr.js b/node_modules/node-notifier/node_modules/semver/test/ltr.js deleted file mode 100644 index ecd1387..0000000 --- a/node_modules/node-notifier/node_modules/semver/test/ltr.js +++ /dev/null @@ -1,181 +0,0 @@ -var tap = require('tap'); -var test = tap.test; -var semver = require('../semver.js'); -var ltr = semver.ltr; - -test('\nltr tests', function(t) { - // [range, version, loose] - // Version should be less than range - [ - ['~1.2.2', '1.2.1'], - ['~0.6.1-1', '0.6.1-0'], - ['1.0.0 - 2.0.0', '0.0.1'], - ['1.0.0-beta.2', '1.0.0-beta.1'], - ['1.0.0', '0.0.0'], - ['>=2.0.0', '1.1.1'], - ['>=2.0.0', '1.2.9'], - ['>2.0.0', '2.0.0'], - ['0.1.20 || 1.2.4', '0.1.5'], - ['2.x.x', '1.0.0'], - ['1.2.x', '1.1.0'], - ['1.2.x || 2.x', '1.0.0'], - ['2.*.*', '1.0.1'], - ['1.2.*', '1.1.3'], - ['1.2.* || 2.*', '1.1.9999'], - ['2', '1.0.0'], - ['2.3', '2.2.2'], - ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.3.5'], - ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0 - ['~1', '0.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '0.2.4'], - ['~> 1', '0.2.3'], - ['~1.0', '0.1.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '0.1.0'], - ['>1.2', '1.2.0'], - ['> 1.2', '1.2.1'], - ['1', '0.0.0beta', true], - ['~v0.5.4-pre', '0.5.4-alpha'], - ['~v0.5.4-pre', '0.5.4-alpha'], - ['=0.7.x', '0.6.0'], - ['=0.7.x', '0.6.0-asdf'], - ['>=0.7.x', '0.6.0'], - ['~1.2.2', '1.2.1'], - ['1.0.0 - 2.0.0', '0.2.3'], - ['1.0.0', '0.0.1'], - ['>=2.0.0', '1.0.0'], - ['>=2.0.0', '1.9999.9999'], - ['>=2.0.0', '1.2.9'], - ['>2.0.0', '2.0.0'], - ['>2.0.0', '1.2.9'], - ['2.x.x', '1.1.3'], - ['1.2.x', '1.1.3'], - ['1.2.x || 2.x', '1.1.3'], - ['2.*.*', '1.1.3'], - ['1.2.*', '1.1.3'], - ['1.2.* || 2.*', '1.1.3'], - ['2', '1.9999.9999'], - ['2.3', '2.2.1'], - ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0 - ['~>3.2.1', '2.3.2'], // >=3.2.1 <3.3.0 - ['~1', '0.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '0.2.3'], - ['~1.0', '0.0.0'], // >=1.0.0 <1.1.0 - ['>1', '1.0.0'], - ['2', '1.0.0beta', true], - ['>1', '1.0.0beta', true], - ['> 1', '1.0.0beta', true], - ['=0.7.x', '0.6.2'], - ['=0.7.x', '0.7.0-asdf'], - ['^1', '1.0.0-0'], - ['>=0.7.x', '0.7.0-asdf'], - ['1', '1.0.0beta', true], - ['>=0.7.x', '0.6.2'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = 'ltr(' + version + ', ' + range + ', ' + loose + ')'; - t.ok(ltr(version, range, loose), msg); - }); - t.end(); -}); - -test('\nnegative ltr tests', function(t) { - // [range, version, loose] - // Version should NOT be greater than range - [ - ['~ 1.0', '1.1.0'], - ['~0.6.1-1', '0.6.1-1'], - ['1.0.0 - 2.0.0', '1.2.3'], - ['1.0.0 - 2.0.0', '2.9.9'], - ['1.0.0', '1.0.0'], - ['>=*', '0.2.4'], - ['', '1.0.0', true], - ['*', '1.2.3'], - ['*', 'v1.2.3-foo'], - ['>=1.0.0', '1.0.0'], - ['>=1.0.0', '1.0.1'], - ['>=1.0.0', '1.1.0'], - ['>1.0.0', '1.0.1'], - ['>1.0.0', '1.1.0'], - ['<=2.0.0', '2.0.0'], - ['<=2.0.0', '1.9999.9999'], - ['<=2.0.0', '0.2.9'], - ['<2.0.0', '1.9999.9999'], - ['<2.0.0', '0.2.9'], - ['>= 1.0.0', '1.0.0'], - ['>= 1.0.0', '1.0.1'], - ['>= 1.0.0', '1.1.0'], - ['> 1.0.0', '1.0.1'], - ['> 1.0.0', '1.1.0'], - ['<= 2.0.0', '2.0.0'], - ['<= 2.0.0', '1.9999.9999'], - ['<= 2.0.0', '0.2.9'], - ['< 2.0.0', '1.9999.9999'], - ['<\t2.0.0', '0.2.9'], - ['>=0.1.97', 'v0.1.97'], - ['>=0.1.97', '0.1.97'], - ['0.1.20 || 1.2.4', '1.2.4'], - ['0.1.20 || >1.2.4', '1.2.4'], - ['0.1.20 || 1.2.4', '1.2.3'], - ['0.1.20 || 1.2.4', '0.1.20'], - ['>=0.2.3 || <0.0.1', '0.0.0'], - ['>=0.2.3 || <0.0.1', '0.2.3'], - ['>=0.2.3 || <0.0.1', '0.2.4'], - ['||', '1.3.4'], - ['2.x.x', '2.1.3'], - ['1.2.x', '1.2.3'], - ['1.2.x || 2.x', '2.1.3'], - ['1.2.x || 2.x', '1.2.3'], - ['x', '1.2.3'], - ['2.*.*', '2.1.3'], - ['1.2.*', '1.2.3'], - ['1.2.* || 2.*', '2.1.3'], - ['1.2.* || 2.*', '1.2.3'], - ['1.2.* || 2.*', '1.2.3'], - ['*', '1.2.3'], - ['2', '2.1.2'], - ['2.3', '2.3.1'], - ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0 - ['~2.4', '2.4.5'], - ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0 - ['~1', '1.2.3'], // >=1.0.0 <2.0.0 - ['~>1', '1.2.3'], - ['~> 1', '1.2.3'], - ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0 - ['~ 1.0', '1.0.2'], - ['>=1', '1.0.0'], - ['>= 1', '1.0.0'], - ['<1.2', '1.1.1'], - ['< 1.2', '1.1.1'], - ['~v0.5.4-pre', '0.5.5'], - ['~v0.5.4-pre', '0.5.4'], - ['=0.7.x', '0.7.2'], - ['>=0.7.x', '0.7.2'], - ['<=0.7.x', '0.6.2'], - ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'], - ['>=0.2.3 <=0.2.4', '0.2.4'], - ['1.0.0 - 2.0.0', '2.0.0'], - ['^3.0.0', '4.0.0'], - ['^1.0.0 || ~2.0.1', '2.0.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'], - ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true], - ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true], - ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'], - ['^1.0.0alpha', '1.0.0beta', true], - ['~1.0.0alpha', '1.0.0beta', true], - ['^1.0.0-alpha', '1.0.0beta', true], - ['~1.0.0-alpha', '1.0.0beta', true], - ['^1.0.0-alpha', '1.0.0-beta'], - ['~1.0.0-alpha', '1.0.0-beta'], - ['=0.1.0', '1.0.0'] - ].forEach(function(tuple) { - var range = tuple[0]; - var version = tuple[1]; - var loose = tuple[2] || false; - var msg = '!ltr(' + version + ', ' + range + ', ' + loose + ')'; - t.notOk(ltr(version, range, loose), msg); - }); - t.end(); -}); diff --git a/node_modules/node-notifier/node_modules/semver/test/no-module.js b/node_modules/node-notifier/node_modules/semver/test/no-module.js deleted file mode 100644 index 8b50873..0000000 --- a/node_modules/node-notifier/node_modules/semver/test/no-module.js +++ /dev/null @@ -1,19 +0,0 @@ -var tap = require('tap'); -var test = tap.test; - -test('no module system', function(t) { - var fs = require('fs'); - var vm = require('vm'); - var head = fs.readFileSync(require.resolve('../head.js.txt'), 'utf8'); - var src = fs.readFileSync(require.resolve('../'), 'utf8'); - var foot = fs.readFileSync(require.resolve('../foot.js.txt'), 'utf8'); - vm.runInThisContext(head + src + foot, 'semver.js'); - - // just some basic poking to see if it did some stuff - t.type(global.semver, 'object'); - t.type(global.semver.SemVer, 'function'); - t.type(global.semver.Range, 'function'); - t.ok(global.semver.satisfies('1.2.3', '1.2')); - t.end(); -}); - diff --git a/node_modules/node-notifier/node_modules/shellwords/.npmignore b/node_modules/node-notifier/node_modules/shellwords/.npmignore deleted file mode 100644 index 3c3629e..0000000 --- a/node_modules/node-notifier/node_modules/shellwords/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/node_modules/node-notifier/node_modules/shellwords/Cakefile b/node_modules/node-notifier/node_modules/shellwords/Cakefile deleted file mode 100644 index 462b676..0000000 --- a/node_modules/node-notifier/node_modules/shellwords/Cakefile +++ /dev/null @@ -1,42 +0,0 @@ -{spawn, exec} = require "child_process" -watch = require "nodewatch" - -task "spec", "Runs the Jasmine specs.", -> - header() - - jasmine = spawn "node", ["node_modules/jasmine-node/lib/jasmine-node/cli.js", "--coffee", "-i", "src", "spec"] - - jasmine.stdout.on "data", (data) -> - process.stdout.write data - jasmine.stderr.on "data", (data) -> - process.stderr.write data - - jasmine.stdin.end() - -task "watch", "Watches for file changes, recompiling CoffeeScript and running the Jasmine specs.", -> - console.log "Watching Shellwords for changes...\n" - - invoke "spec" - - watch.add("src").add("spec").onChange (file, prev, cur) -> - exec "coffee -co lib src", (error, stdout, stderr) -> - throw error if error - - invoke "spec" - -header = -> - divider = "------------" - console.log divider, dateString(), divider - -dateString = -> - d = new Date - h = d.getHours() - m = d.getMinutes() - s = d.getSeconds() - meridiem = if h >= 12 then "PM" else "AM" - h -= 12 if h > 12 - h = 12 if h is 0 - m = "0" + m if m < 10 - s = "0" + s if s < 10 - - "#{d.toLocaleDateString()} #{h}:#{m}:#{s} #{meridiem}" diff --git a/node_modules/node-notifier/node_modules/shellwords/README.md b/node_modules/node-notifier/node_modules/shellwords/README.md deleted file mode 100644 index 8cf5d88..0000000 --- a/node_modules/node-notifier/node_modules/shellwords/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Shellwords - -Shellwords provides functions to manipulate strings according to the word parsing rules of the UNIX Bourne shell. It is based on [the Ruby module of the same name](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/shellwords/rdoc/Shellwords.html). - -## Installation - -Add "shellwords" to your `package.json` file and run `npm install`. - -## Example - -``` javascript -var shellwords = require("shellwords"); - -shellwords.split("foo 'bar baz'"); -// ["foo", "bar baz"] - -shellwords.escape("What's up, yo?"); -// 'What\\\'s\\ up,\\ yo\\?' -``` diff --git a/node_modules/node-notifier/node_modules/shellwords/lib/shellwords.js b/node_modules/node-notifier/node_modules/shellwords/lib/shellwords.js deleted file mode 100644 index 0fb4833..0000000 --- a/node_modules/node-notifier/node_modules/shellwords/lib/shellwords.js +++ /dev/null @@ -1,57 +0,0 @@ -// Generated by CoffeeScript 1.3.3 -(function() { - var scan; - - scan = function(string, pattern, callback) { - var match, result; - result = ""; - while (string.length > 0) { - match = string.match(pattern); - if (match) { - result += string.slice(0, match.index); - result += callback(match); - string = string.slice(match.index + match[0].length); - } else { - result += string; - string = ""; - } - } - return result; - }; - - exports.split = function(line) { - var field, words; - if (line == null) { - line = ""; - } - words = []; - field = ""; - scan(line, /\s*(?:([^\s\\\'\"]+)|'((?:[^\'\\]|\\.)*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\s|$)?/, function(match) { - var dq, escape, garbage, raw, seperator, sq, word; - raw = match[0], word = match[1], sq = match[2], dq = match[3], escape = match[4], garbage = match[5], seperator = match[6]; - if (garbage != null) { - throw new Error("Unmatched quote"); - } - field += word || (sq || dq || escape).replace(/\\(?=.)/, ""); - if (seperator != null) { - words.push(field); - return field = ""; - } - }); - if (field) { - words.push(field); - } - return words; - }; - - exports.escape = function(str) { - if (str == null) { - str = ""; - } - if (str == null) { - return "''"; - } - return str.replace(/([^A-Za-z0-9_\-.,:\/@\n])/g, "\\$1").replace(/\n/g, "'\n'"); - }; - -}).call(this); diff --git a/node_modules/node-notifier/node_modules/shellwords/package.json b/node_modules/node-notifier/node_modules/shellwords/package.json deleted file mode 100644 index 3b60721..0000000 --- a/node_modules/node-notifier/node_modules/shellwords/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "author": { - "name": "Jimmy Cuadra", - "email": "jimmy@jimmycuadra.com", - "url": "http://jimmycuadra.com/" - }, - "name": "shellwords", - "description": "Manipulate strings according to the word parsing rules of the UNIX Bourne shell.", - "version": "0.1.0", - "homepage": "https://github.com/jimmycuadra/shellwords", - "repository": { - "type": "git", - "url": "git://github.com/jimmycuadra/shellwords.git" - }, - "main": "./lib/shellwords", - "scripts": { - "test": "cake spec" - }, - "dependencies": {}, - "devDependencies": { - "jasmine-node": "~1.0.26", - "nodewatch": "~0.1.0" - }, - "readme": "# Shellwords\n\nShellwords provides functions to manipulate strings according to the word parsing rules of the UNIX Bourne shell. It is based on [the Ruby module of the same name](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/shellwords/rdoc/Shellwords.html).\n\n## Installation\n\nAdd \"shellwords\" to your `package.json` file and run `npm install`.\n\n## Example\n\n``` javascript\nvar shellwords = require(\"shellwords\");\n\nshellwords.split(\"foo 'bar baz'\");\n// [\"foo\", \"bar baz\"]\n\nshellwords.escape(\"What's up, yo?\");\n// 'What\\\\\\'s\\\\ up,\\\\ yo\\\\?'\n```\n", - "_id": "shellwords@0.1.0", - "dist": { - "shasum": "66afd47b6a12932d9071cbfd98a52e785cd0ba14", - "tarball": "http://registry.npmjs.org/shellwords/-/shellwords-0.1.0.tgz" - }, - "maintainers": [ - { - "name": "jimmycuadra", - "email": "jimmycuadra@gmail.com" - } - ], - "directories": {}, - "_shasum": "66afd47b6a12932d9071cbfd98a52e785cd0ba14", - "_from": "shellwords@^0.1.0", - "_resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.0.tgz" -} diff --git a/node_modules/node-notifier/node_modules/shellwords/spec/shellwords_spec.coffee b/node_modules/node-notifier/node_modules/shellwords/spec/shellwords_spec.coffee deleted file mode 100644 index cc72d18..0000000 --- a/node_modules/node-notifier/node_modules/shellwords/spec/shellwords_spec.coffee +++ /dev/null @@ -1,55 +0,0 @@ -shellwords = require "../src/shellwords" - -describe "Shellwords", -> - describe "#split", -> - it "splits normal words", -> - results = shellwords.split "foo bar baz" - (expect results).toEqual ["foo", "bar", "baz"] - - it "splits single quoted phrases", -> - results = shellwords.split "foo 'bar baz'" - (expect results).toEqual ["foo", "bar baz"] - - it "splits double quoted phrases", -> - results = shellwords.split '"foo bar" baz' - (expect results).toEqual ["foo bar", "baz"] - - it "respects escaped characters", -> - results = shellwords.split "foo\\ bar baz" - (expect results).toEqual ["foo bar", "baz"] - - it "respects escaped characters within single quotes", -> - results = shellwords.split "foo 'bar\\ baz'" - (expect results).toEqual ["foo", "bar baz"] - - it "respects escaped characters within double quotes", -> - results = shellwords.split 'foo "bar\\ baz"' - (expect results).toEqual ["foo", "bar baz"] - - it "respects escaped quotes within quotes", -> - results = shellwords.split 'foo "bar\\" baz"' - (expect results).toEqual ['foo', 'bar" baz'] - - results = shellwords.split "foo 'bar\\' baz'" - (expect results).toEqual ["foo", "bar' baz"] - - it "throws on unmatched single quotes", -> - fn = -> - shellwords.split "foo 'bar baz" - - (expect fn).toThrow() - - it "throws on unmatched double quotes", -> - fn = -> - shellwords.split 'foo "bar baz' - - (expect fn).toThrow() - - describe "#escape", -> - it "escapes a string to be safe for shell command line", -> - results = shellwords.escape "foo '\"' bar" - (expect results).toEqual "foo\\ \\'\\\"\\'\\ bar" - - it "dummy escapes any multibyte chars", -> - results = shellwords.escape "あい" - (expect results).toEqual "\\あ\\い" diff --git a/node_modules/node-notifier/node_modules/shellwords/src/shellwords.coffee b/node_modules/node-notifier/node_modules/shellwords/src/shellwords.coffee deleted file mode 100644 index e973721..0000000 --- a/node_modules/node-notifier/node_modules/shellwords/src/shellwords.coffee +++ /dev/null @@ -1,53 +0,0 @@ -scan = (string, pattern, callback) -> - result = "" - - while string.length > 0 - match = string.match pattern - - if match - result += string.slice 0, match.index - result += callback match - string = string.slice(match.index + match[0].length) - else - result += string - string = "" - - result - -exports.split = (line = "") -> - words = [] - field = "" - scan line, /// - \s* # Leading whitespace - (?: # - ([^\s\\\'\"]+) # Normal words - | # - '((?:[^\'\\]|\\.)*)' # Stuff in single quotes - | # - "((?:[^\"\\]|\\.)*)" # Stuff in double quotes - | # - (\\.?) # Escaped character - | # - (\S) # Garbage - ) # - (\s|$)? # Seperator - ///, (match) -> - [raw, word, sq, dq, escape, garbage, seperator] = match - - throw new Error "Unmatched quote" if garbage? - - field += (word or (sq or dq or escape).replace(/\\(?=.)/, "")) - - if seperator? - words.push field - field = "" - - words.push field if field - - words - -exports.escape = (str = "") -> - return "''" unless str? - - str.replace(/([^A-Za-z0-9_\-.,:\/@\n])/g, "\\$1").replace(/\n/g, "'\n'") - diff --git a/node_modules/node-notifier/node_modules/which/LICENSE b/node_modules/node-notifier/node_modules/which/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/node_modules/node-notifier/node_modules/which/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/node-notifier/node_modules/which/README.md b/node_modules/node-notifier/node_modules/which/README.md deleted file mode 100644 index ff1eb53..0000000 --- a/node_modules/node-notifier/node_modules/which/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The "which" util from npm's guts. - -Finds the first instance of a specified executable in the PATH -environment variable. Does not cache the results, so `hash -r` is not -needed when the PATH changes. diff --git a/node_modules/node-notifier/node_modules/which/bin/which b/node_modules/node-notifier/node_modules/which/bin/which deleted file mode 100755 index 8432ce2..0000000 --- a/node_modules/node-notifier/node_modules/which/bin/which +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env node -var which = require("../") -if (process.argv.length < 3) { - console.error("Usage: which ") - process.exit(1) -} - -which(process.argv[2], function (er, thing) { - if (er) { - console.error(er.message) - process.exit(er.errno || 127) - } - console.log(thing) -}) diff --git a/node_modules/node-notifier/node_modules/which/package.json b/node_modules/node-notifier/node_modules/which/package.json deleted file mode 100644 index 12b84a6..0000000 --- a/node_modules/node-notifier/node_modules/which/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "name": "which", - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "version": "1.0.8", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" - }, - "main": "which.js", - "bin": { - "which": "./bin/which" - }, - "license": "ISC", - "gitHead": "681a9ebbc447cb428232ddf6c0983006d89e7755", - "bugs": { - "url": "https://github.com/isaacs/node-which/issues" - }, - "homepage": "https://github.com/isaacs/node-which", - "_id": "which@1.0.8", - "scripts": {}, - "_shasum": "c2ff319534ac4a1fa45df2221b56c36279903ded", - "_from": "which@^1.0.5", - "_npmVersion": "2.1.11", - "_nodeVersion": "0.10.16", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "dist": { - "shasum": "c2ff319534ac4a1fa45df2221b56c36279903ded", - "tarball": "http://registry.npmjs.org/which/-/which-1.0.8.tgz" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/which/-/which-1.0.8.tgz" -} diff --git a/node_modules/node-notifier/node_modules/which/which.js b/node_modules/node-notifier/node_modules/which/which.js deleted file mode 100644 index f19dd33..0000000 --- a/node_modules/node-notifier/node_modules/which/which.js +++ /dev/null @@ -1,99 +0,0 @@ -module.exports = which -which.sync = whichSync - -var path = require("path") - , fs - , COLON = process.platform === "win32" ? ";" : ":" - , isExe - , fs = require("fs") - -if (process.platform == "win32") { - // On windows, there is no good way to check that a file is executable - isExe = function isExe () { return true } -} else { - isExe = function isExe (mod, uid, gid) { - //console.error(mod, uid, gid); - //console.error("isExe?", (mod & 0111).toString(8)) - var ret = (mod & 0001) - || (mod & 0010) && process.getgid && gid === process.getgid() - || (mod & 0100) && process.getuid && uid === process.getuid() - //console.error("isExe?", ret) - return ret - } -} - - - -function which (cmd, cb) { - if (isAbsolute(cmd)) return cb(null, cmd) - var pathEnv = (process.env.PATH || "").split(COLON) - , pathExt = [""] - if (process.platform === "win32") { - pathEnv.push(process.cwd()) - pathExt = (process.env.PATHEXT || ".EXE").split(COLON) - if (cmd.indexOf(".") !== -1) pathExt.unshift("") - } - //console.error("pathEnv", pathEnv) - ;(function F (i, l) { - if (i === l) return cb(new Error("not found: "+cmd)) - var p = path.resolve(pathEnv[i], cmd) - ;(function E (ii, ll) { - if (ii === ll) return F(i + 1, l) - var ext = pathExt[ii] - //console.error(p + ext) - fs.stat(p + ext, function (er, stat) { - if (!er && - stat && - stat.isFile() && - isExe(stat.mode, stat.uid, stat.gid)) { - //console.error("yes, exe!", p + ext) - return cb(null, p + ext) - } - return E(ii + 1, ll) - }) - })(0, pathExt.length) - })(0, pathEnv.length) -} - -function whichSync (cmd) { - if (isAbsolute(cmd)) return cmd - var pathEnv = (process.env.PATH || "").split(COLON) - , pathExt = [""] - if (process.platform === "win32") { - pathEnv.push(process.cwd()) - pathExt = (process.env.PATHEXT || ".EXE").split(COLON) - if (cmd.indexOf(".") !== -1) pathExt.unshift("") - } - for (var i = 0, l = pathEnv.length; i < l; i ++) { - var p = path.join(pathEnv[i], cmd) - for (var j = 0, ll = pathExt.length; j < ll; j ++) { - var cur = p + pathExt[j] - var stat - try { stat = fs.statSync(cur) } catch (ex) {} - if (stat && - stat.isFile() && - isExe(stat.mode, stat.uid, stat.gid)) return cur - } - } - throw new Error("not found: "+cmd) -} - -var isAbsolute = process.platform === "win32" ? absWin : absUnix - -function absWin (p) { - if (absUnix(p)) return true - // pull off the device/UNC bit from a windows path. - // from node's lib/path.js - var splitDeviceRe = - /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?([\\\/])?/ - , result = splitDeviceRe.exec(p) - , device = result[1] || '' - , isUnc = device && device.charAt(1) !== ':' - , isAbsolute = !!result[2] || isUnc // UNC paths are always absolute - - return isAbsolute -} - -function absUnix (p) { - return p.charAt(0) === "/" || p === "" -} diff --git a/node_modules/node-notifier/notifiers/balloon.js b/node_modules/node-notifier/notifiers/balloon.js deleted file mode 100644 index a381338..0000000 --- a/node_modules/node-notifier/notifiers/balloon.js +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Wrapper for the notifu 1.6 (http://www.paralint.com/projects/notifu/) - -Usage -/t The type of message to display values are: - info The message is an informational message - warn The message is an warning message - error The message is an error message -/d The number of milliseconds to display (omit or 0 for infinit) -/p The title (or prompt) of the ballon -/m The message text -/i Specify an icon to use ("parent" uses the icon of the parent process) -/e Enable ballon tips in the registry (for this user only) -/q Do not play a sound when the tooltip is displayed -/w Show the tooltip even if the user is in the quiet period that follows his very first login (Windows 7 and up) -/xp Use IUserNotification interface event when IUserNotification2 is available - - -// Kill codes: - 2 = Timeout - 3 = Clicked - - */ -var path = require('path'), - notifier = path.resolve(__dirname, '../vendor/notifu/notifu'), - utils = require('../lib/utils'), - checkGrowl = require('../lib/checkGrowl'), - Toaster = require('./toaster'), - Growl = require('./growl'); - -var EventEmitter = require('events').EventEmitter; -var util = require('util'); - -var hasGrowl = void 0; - -module.exports = WindowsBalloon; - -function WindowsBalloon (options) { - options = options || {}; - if (!(this instanceof WindowsBalloon)) { - return new WindowsBalloon(options); - } - - this.options = options; - - EventEmitter.call(this); -} -util.inherits(WindowsBalloon, EventEmitter); - -WindowsBalloon.prototype.notify = function (options, callback) { - var fallback, notifierOptions = this.options; - callback = callback || function () {}; - var actionJackedCallback = utils.actionJackerDecorator(this, options, callback, function (data) { - var cleaned = data.toLowerCase().trim(); - if (cleaned === 'activate') { - return 'click'; - } - if (cleaned === 'timeout') { - return 'timeout'; - } - return false; - }); - - if (!!this.options.withFallback && utils.isWin8()) { - fallback = fallback || new Toaster(notifierOptions); - return fallback.notify(options, callback); - } - - if (!!this.options.withFallback && (!utils.isLessThanWin8() || hasGrowl === true)) { - fallback = fallback || new Growl(notifierOptions); - return fallback.notify(options, callback); - } - - if (!this.options.withFallback || hasGrowl === false) { - doNotification(options, notifierOptions, actionJackedCallback); - return this; - } - - checkGrowl(function (hasGrowlResult) { - hasGrowl = hasGrowlResult; - - if (hasGrowl) { - fallback = fallback || new Growl(notifierOptions); - return fallback.notify(options, callback); - } - - doNotification(options, notifierOptions, actionJackedCallback); - }); - - return this; -}; - -var allowedArguments = ["t", "d", "p", "m", "i", "e", "q", "w", "xp"]; - -function doNotification (options, notifierOptions, callback) { - options = options || {}; - options = utils.mapToNotifu(options); - options.p = options.p || 'Node Notification:'; - var localNotifier = notifierOptions.customPath || notifier; - - if (!options.m) { - callback(new Error('Message is required.')); - return this; - } - - var argsList = utils.constructArgumentList(options, { - wrapper: '', - noEscape: true, - explicitTrue: true, - allowedArguments: allowedArguments - }); - - if (!!options.wait) { - return utils.fileCommand(localNotifier, argsList, function (error, data) { - var action = fromErrorCodeToAction(error.code); - if (action === 'error') return callback(error, data); - - return callback(null, action); - }); - } - utils.immediateFileCommand(localNotifier, argsList, callback); -} - -function fromErrorCodeToAction (errorCode) { - if (errorCode === 2) { - return 'timeout'; - } - if (errorCode === 3) { - return 'activate'; - } - return 'error'; -} diff --git a/node_modules/node-notifier/notifiers/growl.js b/node_modules/node-notifier/notifiers/growl.js deleted file mode 100644 index 23f4512..0000000 --- a/node_modules/node-notifier/notifiers/growl.js +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Wrapper for the growly module - */ -var utils = require('../lib/utils'), - checkGrowl = require('../lib/checkGrowl'); - growly = require('growly'); - -var EventEmitter = require('events').EventEmitter; -var util = require('util'); - -var errorMessageNotFound = 'Couldn\'t connect to growl (might be used as a fallback). Make sure it is running'; - -module.exports = Growl; - -var hasGrowl = void 0; - -function Growl (options) { - options = options || {}; - if (!(this instanceof Growl)) { - return new Growl(options); - } - - growly.appname = options.name || 'Node'; - - EventEmitter.call(this); -} -util.inherits(Growl, EventEmitter); - - -Growl.prototype.notify = function (options, callback) { - options = options || {}; - callback = utils.actionJackerDecorator(this, options, callback, function (data) { - var cleaned = data.toLowerCase().trim(); - if (cleaned === 'click') { - return 'click'; - } - if (cleaned === 'timedout') { - return 'timeout'; - } - return false; - }); - - options = utils.mapToGrowl(options); - - if (!options.message) { - callback(new Error('Message is required.')); - return this; - } - - options.title = options.title || 'Node Notification:'; - - if (hasGrowl || !!options.wait) { - var localCallback = !!options.wait ? callback : function () {}; - growly.notify(options.message, options, localCallback); - if (!options.wait) callback(); - return this; - } - - checkGrowl(function (didHaveGrowl) { - hasGrowl = didHaveGrowl; - if (!didHaveGrowl) return callback(new Error(errorMessageNotFound)); - growly.notify(options.message, options); - callback(); - }); - return this; -}; diff --git a/node_modules/node-notifier/notifiers/notificationcenter.js b/node_modules/node-notifier/notifiers/notificationcenter.js deleted file mode 100644 index 3439bcf..0000000 --- a/node_modules/node-notifier/notifiers/notificationcenter.js +++ /dev/null @@ -1,76 +0,0 @@ -/** - * A Node.js wrapper for terminal-notify (with fallback). - */ -var path = require('path'), - notifier = path.join(__dirname, '../vendor/terminal-notifier.app/Contents/MacOS/terminal-notifier'), - utils = require('../lib/utils'), - Growl = require('./growl'); - -var EventEmitter = require('events').EventEmitter; -var util = require('util'); - -var errorMessageOsX = 'You need Mac OS X 10.8 or above to use NotificationCenter,' + - ' or use Growl fallback with constructor option {withFallback: true}.'; - -module.exports = NotificationCenter; - -function NotificationCenter (options) { - options = options || {}; - if (!(this instanceof NotificationCenter)) { - return new NotificationCenter(options); - } - this.options = options; - - EventEmitter.call(this); -} -util.inherits(NotificationCenter, EventEmitter); -var activeId = null; - -NotificationCenter.prototype.notify = function (options, callback) { - var fallbackNotifier = null, id = identificator(); - options = options || {}; - activeId = id; - - callback = callback || function () {}; - var actionJackedCallback = utils.actionJackerDecorator(this, options, callback, function (data) { - if (activeId !== id) return false; - - var cleaned = data.toLowerCase().trim(); - if (cleaned === 'activate') { - return 'click'; - } - if (cleaned === 'timeout') { - return 'timeout'; - } - return false; - }); - - options = utils.mapToMac(options); - if (!!options.wait) { - options.wait = 'YES'; - } - - if (!options.message && !options.group && !options.list && !options.remove) { - callback(new Error('Message, group, remove or list property is required.')); - return this; - } - - var argsList = utils.constructArgumentList(options); - - if(utils.isMountainLion()) { - utils.command(this.options.customPath || notifier, argsList, actionJackedCallback); - return this; - } - - if (fallbackNotifier || !!this.options.withFallback) { - fallbackNotifier = fallbackNotifier || new Growl(this.options); - return fallbackNotifier.notify(options, callback); - } - - callback(new Error(errorMessageOsX)); - return this; -}; - -function identificator () { - return { _ref: 'val' }; -} diff --git a/node_modules/node-notifier/notifiers/notifysend.js b/node_modules/node-notifier/notifiers/notifysend.js deleted file mode 100644 index 2c53848..0000000 --- a/node_modules/node-notifier/notifiers/notifysend.js +++ /dev/null @@ -1,88 +0,0 @@ -/** - * Node.js wrapper for "notify-send". - */ -var os = require('os'), - which = require('which'), - utils = require('../lib/utils'); - -var EventEmitter = require('events').EventEmitter; -var util = require('util'); - -var notifier = 'notify-send', hasNotifier = void 0; - -module.exports = NotifySend; - -function NotifySend (options) { - options = options || {}; - if (!(this instanceof NotifySend)) { - return new NotifySend(options); - } - - this.options = options; - - EventEmitter.call(this); -} -util.inherits(NotifySend, EventEmitter); - -NotifySend.prototype.notify = function (options, callback) { - options = options || {}; - callback = callback || function () {}; - - if (!options.message) { - callback(new Error('Message is required.')); - return this; - } - - if (os.type() !== 'Linux') { - callback(new Error('Only supported on Linux systems')); - return this; - } - - if (hasNotifier === false) { - callback(new Error('notify-send must be installed on the system.')); - return this; - } - - if (hasNotifier || !!this.options.suppressOsdCheck) { - doNotification(options, callback); - return this; - } - - which(notifier, function (err) { - hasNotifier = !err; - - if (err) { - return callback(err); - } - - doNotification(options, callback); - }); - return this; -}; - -var allowedArguments = [ - "urgency", - "expire-time", - "icon", - "category", - "hint" -]; - -function doNotification (options, callback) { - var initial, argsList; - - options = utils.mapToNotifySend(options); - options.title = options.title || 'Node Notification:'; - - initial = [options.title, options.message]; - delete options.title; - delete options.message; - - argsList = utils.constructArgumentList(options, { - initial: initial, - keyExtra: '-', - allowedArguments: allowedArguments - }); - - utils.command(notifier, argsList, callback); -} diff --git a/node_modules/node-notifier/notifiers/toaster.js b/node_modules/node-notifier/notifiers/toaster.js deleted file mode 100644 index 266116b..0000000 --- a/node_modules/node-notifier/notifiers/toaster.js +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Wrapper for the toaster (https://github.com/nels-o/toaster) - */ -var path = require('path'), - notifier = path.resolve(__dirname, '../vendor/toaster/toast.exe'), - utils = require('../lib/utils'), - Balloon = require('./balloon'); - -var EventEmitter = require('events').EventEmitter; -var util = require('util'); - -var fallback = void 0; - -module.exports = WindowsToaster; - -function WindowsToaster (options) { - options = options || {}; - if (!(this instanceof WindowsToaster)) { - return new WindowsToaster(options); - } - - this.options = options; - - EventEmitter.call(this); -} -util.inherits(WindowsToaster, EventEmitter); - -WindowsToaster.prototype.notify = function (options, callback) { - options = options || {}; - - callback = callback || function () {}; - var actionJackedCallback = utils.actionJackerDecorator(this, options, callback, function (data) { - var cleaned = data.toLowerCase().trim(); - if (cleaned === 'activated') { - return 'click'; - } - if (cleaned === 'timeout') { - return 'timeout'; - } - return false; - }); - - options.title = options.title || 'Node Notification:'; - - if (!options.message) { - callback(new Error('Message is required.')); - return this; - } - - if (!utils.isWin8() && !!this.options.withFallback) { - fallback = fallback || new Balloon(this.options); - return fallback.notify(options, callback); - } - - options = utils.mapToWin8(options); - var argsList = utils.constructArgumentList(options, { - wrapper: '', - noEscape: true - }); - utils.fileCommand(this.options.customPath || notifier, argsList, actionJackedCallback); - return this; -}; diff --git a/node_modules/node-notifier/package.json b/node_modules/node-notifier/package.json deleted file mode 100644 index 721d60e..0000000 --- a/node_modules/node-notifier/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "node-notifier", - "version": "4.0.3", - "description": "A Node.js module for sending notifications on native Mac, Windows (post and pre 8) and Linux (or Growl as fallback)", - "main": "index.js", - "directories": { - "example": "example" - }, - "scripts": { - "test": "mocha -R spec" - }, - "repository": { - "type": "git", - "url": "git@github.com:mikaelbr/node-notifier.git" - }, - "keywords": [ - "notification center", - "mac os x 10.8", - "notify", - "terminal-notifier", - "notify-send", - "growl", - "windows 8 notification", - "toaster", - "notification" - ], - "author": { - "name": "Mikael Brevik" - }, - "license": "MIT", - "devDependencies": { - "mocha": "^1.21.4", - "should": "^4.0.4" - }, - "dependencies": { - "semver": "^4.0.3", - "shellwords": "^0.1.0", - "which": "^1.0.5", - "growly": "^1.1.1", - "clone": "^0.1.18" - }, - "gitHead": "8bed44d43d3c463a28b62d75d28337684e0030f9", - "bugs": { - "url": "https://github.com/mikaelbr/node-notifier/issues" - }, - "homepage": "https://github.com/mikaelbr/node-notifier", - "_id": "node-notifier@4.0.3", - "_shasum": "d536dfaa80922552423ec34edf00e1fade9da91b", - "_from": "node-notifier@", - "_npmVersion": "2.1.2", - "_nodeVersion": "0.10.21", - "_npmUser": { - "name": "mikaelb", - "email": "mikaelbre@gmail.com" - }, - "maintainers": [ - { - "name": "mikaelb", - "email": "mikaelbre@gmail.com" - } - ], - "dist": { - "shasum": "d536dfaa80922552423ec34edf00e1fade9da91b", - "tarball": "http://registry.npmjs.org/node-notifier/-/node-notifier-4.0.3.tgz" - }, - "_resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-4.0.3.tgz" -} diff --git a/node_modules/node-notifier/test/balloon.js b/node_modules/node-notifier/test/balloon.js deleted file mode 100644 index 0745b3c..0000000 --- a/node_modules/node-notifier/test/balloon.js +++ /dev/null @@ -1,207 +0,0 @@ -var Notify = require('../notifiers/balloon') - , should = require('should') - , utils = require('../lib/utils') - , os = require('os') - , assert = require('assert'); - -describe('WindowsBalloon', function(){ - - before(function () { - this.original = utils.immediateFileCommand; - this.originalType = os.type; - os.type = function () { - return "Windows_NT"; - }; - }); - - after(function () { - utils.immediateFileCommand = this.original; - os.type = this.originalType; - }); - - it('should pass on title and body', function (done) { - var expected = [ '-m', 'body', '-p', 'title', '-q' ]; - - utils.immediateFileCommand = function (notifier, argsList, callback) { - argsList.should.eql(expected); - done(); - }; - - var notifier = new Notify(); - - notifier.notify({ - title: "title", - message: "body" - }, function (err) { - should.not.exist(err); - }) - }); - - it('should pass have default title', function (done) { - var expected = [ '-m', 'body', '-q', '-p', 'Node Notification:' ]; - - utils.immediateFileCommand = function (notifier, argsList, callback) { - argsList.should.eql(expected); - done(); - }; - - var notifier = new Notify(); - - notifier.notify({ - message: "body" - }, function (err) { - should.not.exist(err); - }) - }); - - it('should throw error if no message is passed', function (done) { - - utils.immediateFileCommand = function (notifier, argsList, callback) { - should.not.exist(argsList); - }; - - var notifier = new Notify(); - - notifier.notify({ - }, function (err) { - err.message.should.equal("Message is required."); - done(); - }); - }); - - it('should escape message input', function (done) { - var expected = [ '-m', 'some "me\'ss\`age\`\"', '-q', '-p', 'Node Notification:' ]; - - utils.immediateFileCommand = function (notifier, argsList, callback) { - argsList.should.eql(expected); - done(); - }; - - var notifier = new Notify(); - - notifier.notify({ - message: 'some "me\'ss`age`"' - }, function (err) { - should.not.exist(err); - }) - }); - - it('should be able to deactivate silent mode', function (done) { - var expected = [ '-m', 'body', '-p', 'Node Notification:' ]; - - utils.immediateFileCommand = function (notifier, argsList, callback) { - argsList.should.eql(expected); - done(); - }; - - var notifier = new Notify(); - - notifier.notify({ - message: "body", - sound: true - }, function (err) { - should.not.exist(err); - }) - }); - - - it('should be able to deactivate silent mode, by doing quiet false', function (done) { - var expected = [ '-m', 'body', '-p', 'Node Notification:' ]; - - utils.immediateFileCommand = function (notifier, argsList, callback) { - argsList.should.eql(expected); - done(); - }; - - var notifier = new Notify(); - - notifier.notify({ - message: "body", - quiet: false - }, function (err) { - should.not.exist(err); - }) - }); - - it('should send set time', function (done) { - var expected = [ '-m', 'body', '-p', 'title', '-d', '1000', '-q' ]; - - utils.immediateFileCommand = function (notifier, argsList, callback) { - argsList.should.eql(expected); - done(); - }; - - var notifier = new Notify(); - - notifier.notify({ - title: "title", - message: "body", - time: "1000" - }, function (err) { - should.not.exist(err); - }) - }); - - it('should not send false flags', function (done) { - var expected = [ '-d', '1000', '-i', 'icon', '-m', 'body', '-p', 'title', '-q' ]; - - utils.immediateFileCommand = function (notifier, argsList, callback) { - argsList.should.eql(expected); - done(); - }; - - var notifier = new Notify(); - - notifier.notify({ - title: "title", - message: "body", - d: "1000", - icon: 'icon', - w: false - }, function (err) { - should.not.exist(err); - }) - }); - - - it('should send additional parameters as --"keyname"', function (done) { - var expected = [ '-d', '1000', '-w', '-i', 'icon', '-m', 'body', '-p', 'title', '-q' ]; - - utils.immediateFileCommand = function (notifier, argsList, callback) { - argsList.should.eql(expected); - done(); - }; - - var notifier = new Notify(); - - notifier.notify({ - title: "title", - message: "body", - d: "1000", - icon: 'icon', - w: true - }, function (err) { - should.not.exist(err); - }) - }); - - it('should remove extra options that are not supported by notifu', function (done) { - var expected = [ '-m', 'body', '-p', 'title', '-q' ]; - - utils.immediateFileCommand = function (notifier, argsList, callback) { - argsList.should.eql(expected); - done(); - }; - - var notifier = new Notify(); - - notifier.notify({ - title: "title", - message: "body", - tullball: "notValid" - }, function (err) { - should.not.exist(err); - }) - }); - -}); diff --git a/node_modules/node-notifier/test/fixture/coulson.jpg b/node_modules/node-notifier/test/fixture/coulson.jpg deleted file mode 100644 index 505ee19fd13ce98096885b901f2143a601e988fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31737 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 *#%I~9$Cxi2jD+VUJ5C+Ec**wJXVZfdsldf! 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�hkCV22=uW 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

_rgf0CrB#rr|cm!fSZ=Redv)ERQ5QuW*w# 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 Hl=6BncEaBR7`{kK0$h)kWIp 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�A~2ZVkpjc98kguU6`h(8n{; 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

}4}~gn#BpK5q+| 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΂_5H;Atr@3xa4 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�H_{vl*xnoqWA5z<`a;=WtJh5V3vn0^F) z?7RKgzkh<9>h>_jADFzS|_gC7*vud;uMKjNj>G__e3A zaaJ;LUqgYOuaV_Wi!}H5<0^`tjlIKWOhlj5Ca3Rz%XoV^A1a6s(~91*+^w$_a(S__+{SofG{@R}a*Zs9W z!>#*kkHD?_Ykz@T_tze!f7M_6o27RNl&nO8y}f4P(1(r$@uT)JygynXhc8#{kY}@re48 zwSvJAK%s!>Sr&Uu^0h`k)7`O?oNVJt5$hRFdv9OwJAcyeITQN~UV?S`qL;_{II`8= z!+%TO23*N3I@+ZL_rh@P-FVP;sQZB?z}lvR90IUtx!o_sNE-ul-q&K1bD6f4yf+&QN9fU5E9xtXH&I_$_s3 z62j1RXFs?l4N12z+}6hOvSe`()b`Wd8CtA!Q$Wl2{&~Cr7kZIP>eWG@Pr`(RlYN+^ zqnx4_2El`LhXAH+E6OG~D>rzIMn8s69!}eaZ%5hEVQbtd@Cf0B`CzLn!21Zu!T3(a zo8j=>+&~}Vt7UMq2l=FoQ+|f0X)1> zC6*B_&XOMfEcc}x9L#6e;ESHGz-advAEr@A;}9Q<^JymeCSw7QSsSNp4nW*>V3EMP z7&$lQdLVep*zFw7s@O9<#b3~saucAS^r`c8(!6L+|i zfpW%oG8_q*gd=B$9R--I*I_tE!>#XRcm~|CSyFd090Qo#5kNoBguCcYh9i-GMRzi= z%s<&X8IDDmu?=)B$~f<2couN-A9)ySXkevifHyyUOZuV?}G)+<6J^gmH`< zrvY9eJo2#Yar!Ry|I*I85M!F`=kWU|yhSHGCrOtvrrv)a?A!5~a61dvg~|4tve9gt zmH12A>qwMh+0L#JKRqW6)2FGs3oAvE0V&lBbEZ+iC)UtN&SJr6R}t?Td|4*vAl}l> z^IO{a6Y;Iv`FU`QPA1)4{8(;J!kbUQdZv_E##({M# zD-WmJU)HT4V`xuh&BlE2Axj1gekU+ zjRVT94oBKBIXhuCc*xrCMtu9ylF4lL3l;+}`d!Y&Y6eXD>KRXVEV{0=1T?WOU5E0_ zbsI~8lPBGu%y0|yel^Nl{#}eM%{@a~{Kds6A4^64_V9BwHa zq+13z%jgOpk1Q_ahxFrCf|hx0Y(Xo&`C*G!~_9TzL@jeLnmpBmc}l9t*!f=cHPjT3Wr4;T5)Gk*?v;(Ll*d$&N={E>=)=hp zt#9SMsmT@F?B_CZ63Gx!f^_YcZ@rjrEE6oNO!u>qUQ$Ll$CWCd&8s9pqPe+owKJR|!bcD^l&sM)kT0boUa1LXvX+`*UDZ15TV@(^}t>22xEQWJlTfoChT|%uss3e zA-X~{5pGN|C1=G^Crk#ca~sR#fZ-hE3lN@^P$y$usU5IbXER+#vexs3pkw;Sy8H0b zs40_R2UmdS^NY#cul_%&op#I0|E-$n<{$3yV;j;Q(A|Ob%IteV`XxAgi|!ZQS%jlq z8gOC!{W9oP&P}%>JU8A~XF3rs>u@7(=Z-fEvwu|u-qx`^0$cV=W+P~%Ec1+By4Bv^ z(k8g$als(d22sg{+MR@bc;zFK^efl!cGT$%G;{~|ZQIp_K!cjOG zJLDNpY^xY9ZNWfWHkW#t7{3ef?c(aM%81qfe zmK8d#4Z;{APr_{K9qLKeM7ZSM^j^ZS=4= z0k*!kzq4seUyImfZw4&Zbxf;~*kx}49iLd|aZlU<(0NyTeC{3`3^679ZB*ZZXQ}FO zL%Od4ALMScz-c|<_946t{K}B~TK~Qd?+j1iMZa)fi2Ov?y#w?j1>>p4E@FSM&S&k9l3Cm(Ic6Hc9g1pVH|E` zT)k}XD~JQ-u7|97@yp`U`6&Kee6#CU$Ww4S|0UhybP~IW>Bz8Ik2Q~v0?sE77q4Fl z{<7;=G%jAhqH*#1l}{ji>hVu{`Di}}`e3_!#jjtv9(3Mb;kt!Xma?zKG8V5}c{}`w zt&;I%?dUr5F3?E5Pu8qp1k)9Qu)p92MJMZ3-m74;UgiA?ChJu`pkPN@9aLvNs9>^Q zMZ;vhiiXL06~;@}2e7~JA-MC_t9%%6yDzt9%-Cu`cBJBG;>Y1~_@r_FpE4g7rrfMp}|=QFXJ%x&hn8!X+ew+^7jP z%O00Fll}|q_RWw<^cc$|-JioR?iB90ID{FWxWZ`L8fS$_bF&LnOU+zC&Gd%(_7 z)S1tNXG%Jh5w`h5phYjfy=hHzV_S3kszu9iD5Gz~Zh@cnBs#9GzZI|mV*6KTz5tj$ zJD%>)o;!Tpmeamqd}wiWZgcY{Jd=oU)>Dp|Z1&SBgfV{h9(8LGID3Hkg0wAv5#h-r zb8|W)YURr|C`Fwwbbkr_*aq&T!oGRtsmP=`$ehj*}eUkN*KLJjjy!I(d zez%|s3N0Mj6;Y_RYJRcpid{`>TioH#><}c5q@5aOzS)^8$-WEWm5AqU+AM1yfF0j> z5OJq2qmJXZ=(u0to4QME%3s3Gddm7jx}W1mo%}1j`Q+iGt&}m1UxSwZe}i|19&pjO z#IY@saAb|=G#?K2NWi)MQN*!bC!9Kx-+xHHogVt54_Exdi*3{Y1UMh@&v;XYhXI#x zIDeChD|Cg%Nq>H>@6Z3t@^t%>_#N*{`YmA8C54%2ZPl^nA<$X9QAp_KJ$?teu%2|R zp*z&avF7)1=j|Q(GvHC}vEzA<04{n+=9wu=dwb``?!opBoXyqV(cL>R)Nl8tmK?4d z7wdJmZ{0Y^v9&ajjn96izkmmlE>jm-*7w4E#-qUV;Xb3~w1jYgR;^_62IH`0y~duz zq$@7xjo>IwyMv5dAXZoUD_ho^bt523>aC1P@yuF#wk*biS)K+Fug84+SQGx{zlEM- zSSMGl zr3?aYK7+RI1oL;u0=qTIo96B7?O4#`fa7k$Efv2n)e@|%Y?1MxCxBm$Gb)>g`UiUZ z*JF%of+<5*$!|+fW+cPg9YGP;wQ^Exy%fyqN_TP$9@>XAASr9M zoFJV?C-MfnC5tPYAJ{pmP`eoNih2Vt?TkT!B6+){5zw>R8uBlq<(<>6*W`Jw&AeVTv^ZKcdd zO+pxKTle$t$^JbBZ-#pU!b$ui23n>VCo;)c`~jZVfu0w`3A}=-3cvSk^@}zCO47V^AfpLh` z88XVg+lact{_uI|o1rvr?1>sv;&@j1DAU)4Vf>^&JSm4;Z0m6GVH;NucX!{w`K$W7Hd)o{!=6T6YW#R<}5`PY=q~02~em-6Hf;A>$&z2F~Y< zwGG+!qmBYx^gC&J7Xi|QC=m*g!)8U8ykHb4d54iLL zXp4}K=-cD*E#cF)AnrN%>2VkG6P%R|z6)iGah_-FZ=)TLE}Iz$t0|=1unEnvxM#!9 z1-s%2WtINw;ZJnm)MOu&8}rjR>CevueY&l#GlZq@SavX>TeM>ks)gZ|%q-;}$FTbK zRSv$!oz;so&n?E%GhS@-g*J5$v#qZs(+WMoal^`nC0*OAo%(+5(h2Y%>u8qmz0H#H zY~bV>RdRiRT}XE7?La=l^8MKwb<6e9?P5nKj6ROUS20Hu9B!Taf|;{t&zd*8e$I(= zXVhc!j9n@f*rCp8R<53}YjOk)vl)5eeGe}Xv?e9*Vh zT|e7Tm>1v`cR{+VpYs8CO}#spyMgYIv&pDTI4viX4Q!1Kj)H=MwU4Dn@VsDmGIhG8 z)C9hwTcmH#utqZPy%=;z)=b@H{o$R-&A{_v|9zTq)nzv(i?0z#K~~4zRDZZeuBcrN z!+Z-`s6o^T|ikG)@uB8`^tFT4Z~6D-x}ca=os#R=V9Zi z!tE(e?;7*@lEgOk3+Z603t=iR)-rB8U3#pmAv3ydh4D$_()lJh7uW3ENs@2SQ98dR zo#QlO`qBQ^{sxhreDZMdd`a+^oiEY2c)mpA;`x#nBHd`WRq(duYE)W2(XY4o`TG^1 zOU;)^&R~!F#3{zG9L4h_E8$1_cW!n#c%of&I`E>qlDT^!!Ndq@S{04Vi?k`2%!{m7 zFtMY~P_QGdZB%E@R4|zr(J+}8(J+}8VSK_kY@Im^?!0-C=K-$gMV=40o)>um+@n&37kCXzH*#1p{wkt?IlN&I=G8{ zmznjmX8SgB*v?CH?aqr^$GH)45#7czO!p@I^7<|T7j&icT{goH{deJQ>wxBkZ>?L& zM|5j9z9oG2Pl(%spVqD9Cpaq`d`q3mh81w^&re0zs7`F0-JWV6M$G3N-B|%*yziHs3xB!&nL>}wUh09rq~1pT8I6;A*b92;r?CIddQDi|pV4%>KhvlDOCN>( z9K!SZGmO`8{h9MXQ`Dd72QIEh(w`XsPM%St3i~sKDVWot8Bv-49_(8wb1buT4?z}P z=EXL75IRB1n5Nt2WtZ~56>jp{j`wtoeQ~|!4t%$-ZC}y6axKn{T5Q*f8mCai@jb ze#(V#OB}^N(_*KWDT@pBS^6n21ugq27vW7?h75m=OZ|u%zI?7S?Jk9U%u{|Zex^%DnP<8TIF1EMo{;vH z_)RF6&8zU{BX>i_cSYy>8*N_g{T+q<$1FFoKbEUK(O1s*Ki0e^3D?bo2bn@Sk@5J; zLCbn_g@3=+zh8&N^?&h9G4jyYz2CHyCe z3Oc4e&i5?89&mYlzbheID_=hChgnzPdo|d@!%G5}R5;hWV^&V5Cxut#f%*AH$Rm0C zH;nm@-^qM-^YB*zC;3XcH{r*6_-4HMZ$ zpXiNi@h!TBvJ!V4e!8t@92qaE`){v7M;?qnWq7BjvvE$zfICrqI+5<(1^kF(Un5VZ zEH0g<;?ISh?V}`Vij>fKA!(46+2tqW#IV_4(L6o?IG;RR++PX)vi%i}i~B1Y7xz~_ zg78@fKkDV z(y;dU9g0@^Fz-?@>BHQhU}8JHN5P~I^Iip$K8%J*A4bEZ55xFL+eAC;M!56(Fz*9g z_hH@-x9-Dy5N_Rv`4HT?5A$LASACd|S^E4w49leSVQ#{AYwN70X2AL6;kr<-@^L{= zOWXQs@FDNd`S<7j`xd;(doy??azjdyI}fL2iv0zd#!O;(U-034(Z6r=;icjUI%!vI zJfU;6EYhEQ$lCz-P$|O(VB3Bx`0eJx1HRbb4!)vyWW4uwz^u;NjU|<~=$FAau8XWI z92@=$aPp|}gxx5CufB5I*?+OFY#mYk_vb{+IHsj#al4!vkyuh9W^$SY&aBXcww5l% zfM!F(B40)An$52v9i44en#gadhj-vx*TZkXEp?4_U&oL2_)fg}A8_(y>p%h5s95hxdEt76 z{Se?X^s|mYzObzD>@n^&sYAbTU7NA{PVR?XvR;8}O<+HlzprG?Td&}kP`UD~S1hzI z^TpNm-Dl!#PTIfIbNh)cD|&mn&c&%3YvrrKp9l0qgin98wSVNl<(!)zz|DD0p2zcJ ze24wuqs&i83qL>geunAq@K(^p)$ZzGH9nZZ?jI^dr{ee^!$KNMoud2a_{IB)Se_Fc zzIAz~{al2j?HX{wcD>D)b$!;vFAy%vdZFYf1GM9Q2|8P*iwP~=uRs^hov1T(hyBIQ z&22z#O->1Gfp``P*6`31E>h?^AH7#+1DAdczj57Q{)|H(_BX)EbEt9SWHqBP!u*+A zLsw&s5SI83p!nfPI{EfF%QEy3WMaM!!^5pVc0BxAWXO+#Odh`{kDd7W{_h{)mU2S= zzr&Au`Hy(>A&zAs!J#+%xE(vn$1TPgrF=3x0gKC5;8`;FA85UqS+&#WwCWBQF?^)T z{G*VU?TxHo{wv(9lN`g&#-YwUrsBu34K2&R;E#`_(VL&;c*J!7@H|8hFf7uNj=yZU zqs+f*gnJt|vgP^%-hp%=-Bftd zbakGGgvWH|*|b_V32(HgW!WP?mS4^hj0OBCNAxh~c#O$ED>kVISbJ|PhhMp~PP-a1 z)#YKHT}8d}C&WEq-I}F81Gc)KTctX1D!6Cp`^66fCu{XQ25nN=+yU8FG@jAEu5tO= zW~;Nx<`K~H{HOJsaS~H&pT7g8Z2kf`&xva5J-5m;oc4wPzX66Z)^(NcA%7Qi+58=_ zrb-W%i+5Dr*{Lkvj{cv(omv@a9ohgG)?AW@hglwOtyJ0k8+0Nsh|eW4X&(o?Wxxrw z7u+ld90Tv`*o<|ITq{{Ntoxip=mP^N3hVC)z?N2fs{L4DW$#|_@-R+}YvaH`*QOr3 zqt(jvAHbV&yun7axlXU5^dN6r2m6~g+x6|pdALtSGcv9PIaM<3VCGyTT_-oI(!{FT+M)qdAP;#>-sFC7~+)X__RwVk=TnY<@X zF=h{jrwb9_)TIaE4(;*4$>Z;gR>dY?ACsSMXX)M(KkCnTj4;6=5UmGUmje#*RQfZG zD;d#CtY^&6;4jUS?Q_5d-NC&OGQMj}&+1;3D{+r9J$AU4Zt@=I?rJl8AwF@Mv0m*B z_ysA1YsdEi9GB4Ys50bnota2C&e+(D;-TEW7&t%sf<}$alqSI)x69NK<8cP31N3^drPWCidT*_a1FT_xR zKh&&=*6|U( zvY!4vJ8r@}9cvB%ZF%AP@6%1cIYMw_X zerMHUJgY6AGvdztI0kV{${s|g`dEw#(cD zz_SRc3&@W)VDK}_9Orq9ABH!apJ#hN(!ZVoH|xmpc*{JP4x8bR1z+~l^W_+8>OD{K zujLqt|5=etGrdeF;4Sqf#5>fN5Ba{%Gpv87$BxA}7SXz5k;!DzOfb&^jau7jHwjQL zPN(1gDq3B)hVwaz8|RJ<_V;!#@9JPX#yT-O2iLsa>f6#B;PUoGo`v$h2l_R0ftN@6 z{DmU3uOE2Z6;R(Fd zC+cMK6P?@uda0iu0-U%;z~cG34+1WFwF&qlI`SC5)5*~6>1>>p4E@Ertj4rGjVtad zb+f63gjmFwP^vix=EqXT)ysBjK^&NN^^i3$epy^PAH|=GZ+h&UdV@R#r}JOZJx(WS zCz*~6n>tPNSOqwrJe-UTW^vg$!oV|o7qZ61bA+u3pYdw*^3je9^ue}}Gl>?0j$L-4SemVi|)8~7cvbdo8#AbW}XzBm#JYIl{u6$Fmo?!>(xa&@2G(NPbQ`E{{ja zbRlnq2lbxt;5kxkAB%8LKv3dXj{c2rDMwqtkGfyN?eTdZ^X~QG%2*NSHEE;e#q&H* z%l(nr`Ru{UCd{F63E$HG-l4wrU7drQ2h7@Ba6__BaKOtc;XjDT4CcyOHbXvq8ABv3 zbujJath{w*o2Sp>N@g3zMVM}RIQHX-6PcQ^_Ug!7TAYR8!(e;MJY(G@&zAr$dB}ce zs=h*IjgvmUlN8aPGpc!hLZH=0?E68b{}rC=kC1_=uJ5$8HAP4-`7JvjRhg zl}&!UYOFa2c-r$g;>>Sxq#7X#}Hs^wPyhH4qLG|u{${@zT5d(gd;#P*6;lE z0k)=k-cWU5(7}`O#Ic4rv_Tnozk}=L9Ej^!vlVdM=UD9@WNl&m$C~Yq)~FD}zG=ZIE8Yr@4p6sI2Ji#N^a~9giGqUJQC{8S5G7Mz^K0qXQ@m8}d{O zw~mnO2~NfM;y_UQ3jqj?-nwkwWPnx@7*1UP`8!8)Sx6iDfS!v%e_oNOiv8hz* z>ra?Hv$Ouh%mh4ioM)rf(Ts#s@j9A|5O3*|u$`v+W%#k37rU1Fop90bFUL1^jp+AF z;HKV*{l5ZmK6$vmA^-Dnp)HhkG#7&pd0*<^uk`QB@Fwraz$=j(Qi|MpI4x7`FUaK9 z4P5TSd9{CE;loSC6LRS`pKXGcMfB^veoWxcHr{R>&8xsq&Gm=e-L*nu*Ur2KyyCj? zTEO&LfF~OO>)z|YE4EQt_PJi>O5o&CHfmTe^MA1H*BaxanK;;AV_h-&y+!No*cQJ5 z=^^$tzop*13E#TjTm`q(4br_4Ki0c9j~Hl~GB_`jjNM)9d0ppuF`U3F$YSG%`Vw%VA1mX=Tn8)b&fW%ozE7LU z9NHz<10UCcw*w}9+KeaHr!Bn$G;!Hx`QV)Z?*vXBRkoi}`M42wmFQgB`gFe=;fSrz z@ThYMm$LI7;C0z~FWgc-#6Qc4UV!}IUXc$2&gU1ClXbGY z!Ww<#LUPvXv?x)(`Az6gNxkN`B;hj0@Ah=G3kvbKDtAp97694=f{}2Q1X>9FM+!-vYY0ese7k>-Vj| z$rIP_9FAd(1*Ii}SLJ1Y+LeJ`eiEZ)&m+0xa4nb5AD`SSs5Z#uQHWo3Kw z%Ce~^qkV8Eb4_r~bHVUetNlW5JK^SG_ONBf_1`Q|30U*c^>X|Ph z&7~gkTk6r5@U837?QlzdAl+^Fu^xRHZ$4RED1%aFzXDp8)34&4p$A-SH<3&9-yNV& z!i0npCg~`r=x>g>knT?W^f><6cAO%A-HJ}*Om3TzuxUxW%?$*b=rLkZpK&S zvuTHT+ygkDJe=qm^0T~mx_03^o;Uq`7vDNv#1C-{Go(dW=OB4;AMnhJ@8Qib$ag%# zpx^JO{Dyqda=J7QagZ?*#xXy>W%EPu<#UX!kNNqbO1B?iteHc*t3D2YtL@WXLBl=Q zA&)~EGB4P_3Amuw*J1pKZT;7f-dbHeoe9dhM6?U$>yRORFZPI3rIcPog(9#VTIzg+}k zlY{wI`YHLgZ>@G<4cB6f6)`{Aj`AMupIN@-&GQFce*TZ@tvwt|g+0P%aQC;P%rj|+ zs8{L!Ieu&-MbC2$J@fMyfJ^=|UzmqniAuf5`@4T>-Gn7}_5Z3G|DV*0Y_G1x*p1jN z{1&_AH%L3(_Wl-bt1FR~r2948%#(+F8fS5#y_2@`cc5jS{yvWv;M#6s7-F~l3G_*r zkWj*;{FGD53)@W6Jq(z(TS&KUqQtX2@h`yZxIGHDw8=W0zXHxD52tMe1G``Q(>U@D zGG*;X-+>QQ1(K=+M3l^N( zva+?Uab;6;d;4&9LW&gj`H0HB^3-7GG*#e{X`Ui=w!HhNUd@z2%uh;OEe`Fx&LVkABX;JOY?*haZDm+F^d{cKC0J zJG8@;Gj50f37CW?g?DUfzbDNE`$Pt&!m>b}t*T({{ zb>BF+rQVPq{Zp^+fj6HlF6bev*D=;M9<&^Dn}D~-CAxbrz!JWYLiqOkF%#Y+#<5VI z%Q6PEdd!V(J?6G2+=U}usT;~{Jt^%CdMUrGCzBxEfo83G9(kB+$v6hL4`}&J#M_UV zj4UW*a3LYaQ!qc__aw=H!N~6LwaXC00hY^XKEn0*ql+JD-h3Hw(@B*(rBJ z)`vGmHWrVQW&O;bzj*mlCK3{PZBv_Bn{pNh0()oI!)a??v3fb~wnHK^oZze(PS38# z2b=?Q7pD}cW_UcayL4M^AT&Nr6DOX?gR!v*WMc zH_3GDV0Mri$T}(~ZN}xK&7LZ4$O~!Ui^f2bE|XMxO;+i(f0SMa`t+ji9*^{S zu1cSSYo?E?7Q3Lkd7n^7m!6izO>PX+rO6h*xG&`2DAT#kj$Zoq1vjCT8x3s_PzLUT+ zyYEEf;(aI2L->r>^SykW{|WSA{zuNzUJ5#IQ@g{LWfOuwOPl!}?>jjae#GXFJ#h@= zG~lJ5klAyBEhnT|p=e~k$tnet{U)a?nCv%MqhLqcwi0J^E12vz(JqG7V%gz=HS zIAv>tJ8!?qTEO*wlXY7<8!ZLw|2B9htD;X3~-dwE7n*y*8H+Q}-0 z;9K@}XusImK>~Fus55f)Kij+MHP&c^5N0V+xCvA5LUEyb0)0ga1eIgKb0XTfiDxQQ zI|lQ8W;U<58&-ly=}6m+EMfRV$I^ZKobu@{o)aNz`A_a{xn!8U?6t|A6Q3E!@MN&| zm1~zTPX=b19CdEMI9n|7kaMsY^&t2CcKC8CeR7sr;@D5m$CW0H2F-VXrwzw9`A~0) zZVmoMn~k2o?DwcmUuQOZ`onQ{&KU3+GZ+$k7`&&LJZRK`)afe(4V$iH9g-!H+Nycd91A~&QIx$|&Zrr2MQ$?YS!(1)|r zzhCOZOT`m%i7jp82|G*6B4e!&piXf=)*KseH`aOq__4)%>V<{;>dZypC-#=?vw0a{ z)<%2kf!HzJi@`6pL0A{KpWx-d$)jwLryjCz2rVNw->}>30?!*M7>{EXEyBp9vE~WC zT=Q(_fnI?)>-t0YrTFn2`J*Pg)R6KYa3ymH2OaR_;cmehUVK>Z=tt_^<@nb1?$vPT z`M&~iK6yAfZ%D?v20_QRBuiU1udBf)?vsYNh5E1vZ4c|pE5V2F%l!LQ{{0&Neyx9B z>EEyS?>FGhelvM9-jwl8_)fw?%II{AaT3=&e<6*Wj92+E-|XLS!8?;Ch=bI1%EkPU zyl2}_xvs%a_m#+&=WmRY{H6WF zbhyE%$9w$yz5acpf4|Sa-;Z}zj&ypZ!z!E2zMe~ac-9g5JU$HGe6sx0=_+Y1=_753 z)LGh=EN?o0B)x9(VMsann2*=T@fKKI#w9#gcGLM7`4Rh*{E#;NQ(mr5 z`}b%3`?GlG@fLkE-REcQ|8qHfVp^do3NxLrC3Cm0Z<6jz^RFVWwS3G^Zuu+r>5SjWZ#T~LWxyG3EaO)^AGQ^b!jH5SUn3vo z|LX<*@9_S~oBa^hOZTM9Jjai8os}|q1=bI9?3Fr>>sAH^`^`QW6@Mf6Bn_vvP8mUwfUx$@mfJIVQvL1J0kk z!@JvhT^R3#TaW3y3vNB8Lphtb^bNYR9P7-x;g+~??1}x950HmCC+~xa+eVJ|llf49 z+1qgm`v_t748}nBQNY?TqOuJ`{G@U2wcyV5Et^jOzr457=?>jnZ(*MVOk_Il6nCG? z%?ifxFrEXiVQx-;wE4WE;~3dKxDEUk1(PwdTLD|&kKRmMFM@V=iBmqp*HkN={yaz` zY&zc#c#soUjrR`WWK5UlUj>daZtHFA@2~8z@%#p0)`cS^X>+lEcqd?7_hrMg1NUz2 z%UyuSwkYkmMzgVeH*oSOTh#K5?YL!j?ssQd=-u1Sn78omb6ou0wi$8l#8&ws%qU@P zN*1bY!WVMP`(j&nC-PhB#E5)ORz9S;B=>YJNqJAEa{XaiWJF#C$CKSKqQ}=j!{%zx zK56cWvrd|Waq)ep>}T#r7*u^Y_aIv)c2ht++u{3+3x`>7zSqEDrH6GW%<*+@b6FDR zK$+Hdt-eDH$UNZ#;Ik*shi&Yu^bc;q(1e@c`vKq+0S}q##%z8FIM+f}H&%wa2Zfod ze?JCJ^o{g4nI3s()j>y;9Im^!qte~Jb>koppJ?ahPwgGuy#t)IwBtnkm3{&qOw+h- zKY+TuH~N`B1)k5P=tE65wx0eMQ=gsByu9ToXg14Tfv-^^X5n(})&7y?a)|fJ+WpVu zIItC!ZX{qbBJ1Jk6gxyRhR-_nAkxX{q4LDXQP;=sWL1>=+GL$Di0e(XFNC7|cpnaPsQx=y_Q}O4*PLEYlk0*J7Rzv57q(N3@ zm!FIi!={ecJpKVVpFEr%CrkUw&O-*C*?CBfi{~L9NBE4_6J9>rk%2xt5BXcr(QeEX zc+?S&Ni)CWdB}(0Cp`}-wZz$ze*j+eR5B0gNH7cOX#S*V1op6ki5>YD1(SKmM-_~= zAnl>QDwxbeYM9JJYM9tqjE|m&d<^cqdC0#3u5H%8!>w)Bf5NTjA^!!po`?K5{i}J% z|5*B{l|j0*oniTtc}O!atDC96I1gC@P99}haoI={-|@i^G6vb zbWFKUg_${jbO?tvZR)9ZPSv-GKymxCNZU{ICJN#?KUW8@Z(ELY>irQ>%X@qKVD2ba z1Mm$E)`l7lIjB3Rm&W+-U*+<2ZI&}JaEcZdka;0_TI!5Uh|$Ij_)uF$hW9M9uSs|f zr>$_e z@`F7BC?nH-y4yT}43uXgXbG48`#x~*iyw8N@U!xvrJ4jdA88*+o24t6$(}9`r`t#7 zKjY%$4gQ3`$Z-_H)N}_b{#PB4#tDBZUyK{&I3x;7=(LQn9CzlFQZSO+H%?JWZY+Bz3WP8B$b9-svnJXEf ze+g&$=k2kfZXOR@DCoo2pVS89CsX+lCx$x#;mSU#r>EAtaQ8;I>_6k49NWj<4{q5v zH3i>#-_-tzJM5dH+<3b*G50r234uBiV@!X+4*S9~&`oX;p162=pvK$OJWI<*H z{)al4y#oVKn^uPb#`UW#5)AKf?`CnJdn(*|4;EoZ0+zSu3b@iyz{ULu>gN4%PsGu{ z$&=n2_4MRYO79jZ+Z4?%>gM6kPgfM|J`8*2 z$J1P1Q|4K!q@MQQE|qNSr=z^+GD-Jw__0iiJ#xG+lQRI9G8u`Tj2E#ij`!yWJR9`# z{7=hbBrNouXoLTH8gri*&vlkHX-xCyAYI1qMBPWa$~YU=+;3a8apOQ0Z4_bkpc!TQ zmJIcDn1vWaW?y8cN>5ow4r||?3&s6g#@&`~&xxYj+t0&{|Fq(QrS7U5ezOO*%9v{e z_S_!v_iyEnX|sF1q;hWlZG<_9geTMGZtP{%Ws&YVh_klIXA)&@F%uO*#Db`>puTH%872O zzv2+PZZNYp)RCMiLpiKe-nOKBZ4ZV9&$aeb=_I(B(IXbq@hQz`xY1cIJi~7<*hwb? zCy(fgT?v9VOhk`CR6sJR=8Bvzc=qfu-UX=39o?ru9_m23vrqa~yeH6>7YM8Ap6lh$ z;&eH4>jf5qmSwTQzZ>z+_yb;-PllU>hw>@mL9U5}OTV@myd*BXuaCGTfay9UYf6dd z`W*RD1}>MNA3i+S{#5woBYsHB`u7oxkMphl*ffKmWjTK6uO9U5XXW`>?)^xAn!M>J zOItQ8JuT<^8Lt+&nVzTl_X_`Bg}3k{FRq`><99mf_( zJsM%<$+1314$6|xyUv{H>GOEq$c)63$~WjZ>N)m_vwlXI=SSgl-ra_uOJ8Tsj^f5K z1=44Em(2?kSzR4?0o=^9cK@#6%{E{({OfTQ^6LODk7p;~e007Q$FI(8^z=I4D03d~ z%{jEME1*3mM-HZ4emd8g?uefGTTAYqNEV^ble^E;W^w3K*z+}6o=THwk4XKuvcgTi z-^JYp`Erjn1CiX~zo>i;70Qyn&7@b0KR=)44BLz$ayqN6-?$8 zPCc#pOdcU5V^&Nzj%{rwbMO*dl4Dx~l`ZR6t)DxaaIVW(4SpEYu;Uf_cWI3+FPe6GNiw1jUFxE9FsN^lv8UHp6D*Nr>D@Ed~tx5JGy zod-D59J!N*_a|@{NrpcNn42AOez(HC3fE#vUTq^DQ`sDYBt6|rx`zffd-ry@_592Z zxb^(ai{NhV8QLP{@Fj4s>>cddxB~~w_H3#G?u7AizQFS1#p3QtS&@VAHH_tezjxf1 zJ<1gPB=IU;2>RIO<2st@SVyxHIC<0^s^n-dP{l{mKd7~a+Fz!TzF-mQvarVd$oig6 zUenRGd8p@Hgr=QIn6#}fRkqc|keB^7o}b4vG)iW@J=v?RxqWdn78I>Ivw1Po>3p1z zQS#?wTmnCCM#f3mf<5&#?7dmw0Lo+pw%7Ag3_72tRczVI;AT5P9ZR}P;ik>|D!ln*aX~lB8llTUOaHIV;{~|bu#}78i*5RH zd^60~;;n5{hDn`VgiFban8|#E==LG_(T!1o8saw zayaVI=1tz8q%qTy^1j)}#ik!*N~Is#hY)t?SKjUWl^4P9D3n#MFZvDAgJ(HWkG~9X zuCW=k1=PW8ngP~_8=3pDx@N_|rerVvp@3uOIj&-<8ul+=0srYT<<>1-0eDoF(nZng zll{zVtXyoX(giOfwz}wbpoRVusggbM)CpGt*D?S}Pp$NHc317$286#JaOg&baC+^H zfa8MeZI%8`tDd?#DuZ3eob{_H#SP<;3t@?fcFcEJQ;kuu>F10b)~m}CTed> zjPFS9jJXD!jOqMhW2n7VkX3XObqw9_#4ny-rrns}5G%dTh5AC{ zmh2Az9;To6$2-(+SNkn^U!3?OPW$7Xw1U%ma&J>Nh5pDF)X2lmwCAx@U7?N-UB!5FQ(YK#J+g1gMm#?@3tOiliUc{hUz9<*y`#k-MqM)cf-FA z-*%q0zuz!l#^LVR_gfg@l+opXB$^+#5oxpe!nK1sU+DfI`09L-^2+sxV$buP(4xG4 z*vqogr_+bvcEdwxkp19idVM0+PJ;&N;zs(sUM640v&TcZrnL@n{ix?ptct6vY>qat zud##=snpPbu=3Z7Bx%TTVeV#y>4Fp$moL(6pKgLYVgvA7Y=BSTTiXDigq!7)Wu9~& z$B#C^r|{;Jhm$ib#0K~@XzBkmcxUJV7aL$!?pkP^4Yp+M$|hJ)O@_Dgi37>t?U~Pk zFYPY!{ye@DITdflnK+@lwUDkfk^Ce*zUckXKhs9a+HKzdm+;p0PSRG|{x5qvn{MEm zN;g!@AZuv*A3+)9I{VMUug*Sc<8B7rjsr`+`ucVY;L>i%`mir3n5-kaUBRYyaCBFC zkSclo85s;q#)fHkFb!G0?aYHMVb1pG!}vG*m3?xegOjQB6&04O)BP%7vCYr&JOMWU z*DQaALHlN8<(cyz#>DdtEwJCWc6CAHTGz23Ox*ye_S7)ErYK7DvK&TSHGmId$8Ic zt+313KB*N8;w8PV&ic_y7aW;eAILUTiJ;8CA|I|)rpo61NLy(y_$}q{0etK7_XD`4 zjFIm9__6%`5N|$NTvYx*^CQr*z4$TS8G68_yce=Xs8~73Vev5A{pZFm^h8biE z{Z?Bi5#~ei%QX2N-VB3$83z6S!SjvdqvdqC5C^e|7{~nhmd&5Rm(N4CY!81AN^U_- zEnpjQ*-qApm~}E0pDx8kMfWKd_T-H7kWV2Un4TQZ4Y<%|@9*z2`3cfY*S6hS;r-a# zPZ5T!<#Rol-I(&;mUs|hXdTNw!Y=@Wy_>A%`xV^MXW+N)GyFPnhqZQ;Td(C~8}NI; zBpf*d{f~eloa8Q&Kf$ffKz|r+j18pjB6$QbUs7y;<}Yx|oOevix|6p)llBeklI^EF ziMvQ1CEsZNn(YG5K>w@dOWyf+k?hVKjOxIDsj4`eh3PJOmHLV9zu`xnFZxpM6Zt#f zl1EHy<^y|V)GxeG=HO1j7KWB!!Zaj*X;=4v9|@0i60emQL)~LC z?pp^fbxj@UR9Zq$9AZZK@Y=DUWpQ(KW4G0}hnUfzf!bHLtbWY5MG+%Xo{)f3~GrpE%;xy=@e)L6_| z$d?oszo~}$It5?bQ*qmE+}O-G_>uiLq@_C{aqUcLJYb@mX=k&%PK2F30dPJn$1{wz zadoohme*QilNg~$_UL5#NXgh-*lw7iNp>DOowOI^bM>M;k^K?cNm3W~0Z!@y>GsBt zbzvgjeDZMGPGcPi{zBP47;8<+!0ih@d{6T4{qWB41U}fXrHSMxb$5S!i$0~S#2tWN z+D>)xlJb904Lb5*{3*jBp3cTOC4=kZ3Eg1@{K$jjym>NZap^P_e=h7$m$PY;_9tnO zmD$-`sEP-2N!D zq&ye2^2oS*ie-)Tm_0kl%J|SdkFp{?!g+meY+U2w_9EayT1k6x68N#bnD5^w<1J~N z_ybJ^rXFXGT_o)Gy-2lM;_7+Gt2FLD*k<`W>rC8MosRHXzSns9*j5Ezp{=^tw^a*3 zr!-S0YuQe*yv6O*De#wWr&76`v{4P9OX{~J+wcYR*{UX?^;G#qdLad_p>2KDoa9U+4Vi`z~c;}+}xy{_CnyLKFj*m z4h54srD0O1Iu%`f)|$piovwmj*R73k>$*i*m-JWdc|YuPGd=Bmrn4s&5z6PP@MXQsx=O#yxQ4|%T|I+Sr@NY@@E8YdN$kB^XKi7*QCokdYj9w}%-OSN z&6{06=ft@)>K(rXhou-xmNwc4pN(>y5X;(8OwmNvuwKRO6P#drfW!DM)>OJ%a(K>K zfHfy~=TJt*yEoy*^m21*i5yQtM(T%!SnDqJjrE4^^AHa8$Wp%!o^gqBv27Rp>AL8~ z0{X#^w%ve#58|ES3B2eF>ICu=ov;n`BI6RkiQ5iXY}+*hF1FqIz!%YxhuBRo_H;JR zN`{_deO<%0ThiMz$PuVv%{n1WS_tOF1&rrTmo^s`$j@}6Ud)SI7MIRL@#o^2wdcrF za60cL&EqtZHic=(uxZa}9+v>lCl43fbHQKMp3}J4p3}J4p1Ta;v)sPQ%SZhl=z~2c z_pc0rE@jV2F8TXcSiWLgZY%txZMooyI)4Z7qVtn+1|jilOJ1aC#CCg$f{E?6Q^7>f zzf{4*cDqQy#CFp#X=gM{+8M@2+iov|JI{8z7;xRbyc}-bzPti%ZM$6xx3=A0N&m`r zyWG;}+iom>V!OQ>baA`Hc7bCHR{$rEv`gA{lVo=qJYX=SAgEM*ypQwOXrEYqS$61t zEyAEJBDR6WAyADgO?Fab{gurRz=IEQLwM);+kkeEj>wLWY!Z?3M-y!Bo zz#&%Bj+6HFfUzFp98exo$7Rm2O%5?{0DMotW!`cw)(VY=%6+5f{SAcW(~Ku;uBdKV zv8mtKQ#ReVZ!y_!HzLsC+U={rSK4jb4Q#*O?8AZ>N&BVR{^bXhhGLSwCyG945J@Em>CRvOf?vES^^1+}Mca#7&CIh37+cvoWEX$P;zw}jt^JRt7v_~~|# z`~+uZ%PFfNtVnLpGxo>5-JCbN7GaG%k=^{tb?|e+$URv*`W^6-=uGCM*OMA9`tO~f zP1lP$Ls+`}JDAY%9OD6N=a$U7l>bw!l|DBcIB6?+e@*8-y?tZQ78EFt&b4Osijczh8&rT=jo zz7rW0U(yjLbhj7Ml`KC=i?4V;^v`sWcI>O(|JU%=?U3}d8Hj`=Nl z_bu?#<@g@BrREGy9!PULp zJKT9Ieg|IT_O&f;-Wu22@uw{875DZ5?ZV0zAhhar9&F zHfy(zH9rN6*N)@5^42O&${p<53LCiF+sk9k&zzq{z5SiI9fP+2So0uYYpUlBRR;zg zytS|5?wxQrj0a@kKZhT{-9_iFBHQ(1_h9hqRLp4)^rcV?r^NijxO-C3y}eiZCE%jV zMQ@UJB>Pu?1v(VBTpfET*0KH?cs}emFE`FsR}y5^2-4)7+PaLhKP^b(9%llt?#1vm zlf2T^Q|;Gd78tK6B1^11)~nw_M$zZ|7JdFZe6zmE_}%Z}7M)GHhw!65{{!B9@^CLg zT`R)HW5a=G&}(uB(H{{8+krp%_n-ayVZ0gc`3NWRj~Hl~Vw}h%{p`PZUXOZS3@7jk zve@_`vjZ;J5Ld#6pg!4V|aXZg) zvI~XKVF4~ec#%OAcohv584xcO9 zq{O>1ntvfp#I|I+N%z0;lXjEoMLV5vsSi)!Ti1vGz%6B7{Ifoo`7X7yxKNhFzA1s0 zd&kOnvo4Yk!=T?$fF*n(h4Ah7W$mA!mAzw+<2&g1DTZ#*@pdgQc#SksS)N9NUYAGa z759vd0i4g}MEB0$^*mcSBKThf`@7kc%pSm&|7{!z6JPz?- z{!h>C|Fn2^D6{^H<(2-%)89^8HYOoQ%mlb4pUHC%{8$F|#G6kZF4lX&Unn24-f1uJ zDTB}6{=E<08J@t4{m3#)eo|&9;akc%WhHJu{Ng?o<0a*8N)0;lVEie=0iMprS;_F^ z=EQUk)+#4ShNSw|2PwG@E|8xxb8agy4YIg&9*RE~*X*2Fl7~ono%fRFaT-aR$~0uy zwD~oUBLU}=hl}ULg1_vXn8w9(Vj36Ei9G}1vmHFf%g3>rKp)yYnG>4`I^WiXOYCih zbT%@}S3D=SFJRKXMV@Sbcrx&!gOWKhpZ(Hj-e1wkoY;X1CjIb36ioW-hbq{S))uWZ zhbfrMiD{V3iD{V3i7`H+b2)Z!INW)2Vn+b3=ftMMt>?s!f?Lmt9Sygh6Prf=YEJB# zmOg(@jO9<}#E!*xY$M2=*t0AhX%oGkpPj)hDAce0#X7sNV!IVnuwwgryN7Moxp>Nv zCR&}k`8dQubRFAtx@X`Qx9Nn7emoxE)O%7Np944R9Lv7=r#`O-oKF@Pbg#7OGeOHX zeHPv#m+02nfF*n(h47U&ec>}13j0M<%(FqO+jP36e6dYG0qzkdDC<*c4(O#mv7f_y zVw*k}a6V@ql;r&g*$&gB=j78cXUter8Arz9PD0(3!#r@nRDREc+{|ybdHj|f-E);(BAC|R@=C`=LmBDkz*+%oBt;KqM8hDN0X-tiNjGoc-D>i4$oHcJG zv(4@6r`5OAoNcBID<}i%fRt0ZSK`O=E#qEUTqqk-mR7+J%g<`OGxR>rc-gwfFr==v z;#7h}#8J_1^mEUrBkWyCbhguL z;3qZrJX}usIe@kBCv_oSYpHQ!Z>$4-dVZ?T5SE_DaxkIObI|LRf0{(3n3;B8L#_q7PTol0h<+_|~zu2z&m!UuxK7HDeLFaFyy{}^@l0`puT+;5E zt_*f;=9!ucS{k<_DvetGC-m^)|A33L3vBf>ZtP5b}H z-kZS5SyXG|)!ma!NCE~3o1hLM0!G9TmWvp%XH6PrbCv{9X*)BWNkgZ5=$XlaiV+bv zMBEh-5%+z=U2(%*5jWg7+?T6@+jYJF=czj9t$LT9#QWX*{lD+``TnNoee0Z4r%qL! zI<;5v;GxaUItGVr{U4JFH9)pd#p2r29)93*6^o}&mdkV2L$TNczamzVyQiF}&g^fP z6ryf-5hzyf@;Xp10ZNMNJVa3HkWi$aMONo7rjm6 z680Ny%^A?re(%WQ1-On6q?{PzF9cJ1=bOaLy`{5BQKL>qhS{KG&r<8?TJ{ zEblMQbB*w%KW)RW1&nbBc_!zxzKFJr@&tKIPR@1tIK=0=c*d#6`EyOf^U!&=Dcfaf z846|>G!n_iGHiItP z#+Ca81gUh(?z&fd?0e%eLccGl6WmsaKE;6KXPIs9WX`CyY z#HoHZFjvYjsN-q+g1J`0Q61|?Uz0MXY4hef(5?@7la^;tWYgnZTH($1B+Kfv;pY3f zcx!kU;=KQC|9SI#@y~R;272N0F2Cx9fb&~<(ETF(vSfa-@JQowW*$7lw4xl;S;~~A zFPIyI7v*`D$fGjQePbILUe-ni&QX5@de4Vz#nN?mR1Mlbu-3SVUa*3resFdf!TO!P z()j3T_gMGPxZx>~-dT+F^%annX`4NF15f=I^!AUsQWmyzTd_F;&gZ{Ro z{esYH-A+3G$e+KoEFI>H;wO#E8Lkmxx+%W}eDg=Ua#*JQ=rCVt%g^c2dic!>i~83N z$GUfe$0W}dWNCpkJ&8lD)i8t6WYkq&+nvW5Bi4Yuu@9p2efdaP-JsO~e#w{E|30% zbX1*V`zO|)MZSkP9S^+gFt?6o3TKaxVjP!iYIu*JexC)s(e-*`wm;)&cz%Me=_@1L zQ^fCM@V#EXEBHP`zK@6Bv*r5=C__=c*P_hy$@c{A1KKR#+u(N)-y8$4;Ty}ym@l!l zZ@@adxwSJb+<(J$hRstk9+y~W zc<2#_o1LIvg;c>>JQ*jd;|fY$Ht6PGnbuir5gYJZ?)7UC$t!CuBH`e#Ol`cHq+Mh! z;;irr*CJj9n4i-+%FwNIT3n0Rf;+tyafO)!9N}XRbaXy7);4yUdBEGRQ7o7R;E~4e z1`J;CA!D}=9>gdKmy}d`=Ap=mp;@)~)T9^y@oL{Tg9WbEdHQ+X_oj>d^zy#^uSQt(PRe`);KM-l9P=Z)I zM=>%uZ_{x%;^$_NHR5h<=H4W{e~+bqEZ}YqJ5C?vpMq_8o#t_%N38qzU?mt<(5e}; zydEFNMYhhReW!UsQij2ry$_W6|HKR&L`0f(nkSL(j^=KPg7v6F)y9Gi?LDS!;U@xM*=9NRfHeA9-8nE0h3xfRbG!8e= zs_c}J;t1=~`&sZiR-Hq>%Mw|HMVs?Hz;VbxW3CQO>Ykda)~l_`e6zLH>O!Y^0q}^^ zh&{9l7d?$u=69%^*E?Kat2ry97%r@rIJoACO^26;;Y_yb%Ht-$-67dLW>yy5iY~p} z;#yT1EJksht+wXnA}q+qxwxCj*R9Kq4=IcMuLZu;*wwt$>U*bo9o(}E^JUJ1?DncG zsl}aNE)K5;-Ar}=bZ-!TEU3NBdQ;aPzft@r;Ytt7fwcx{`XpTGvCpi6`2c%w6?IVg zC*c~u$+>Ea+N0^L@kzp!o&~2~+1ouQm+~b2wZp$j;?E7t>gUZ8_YkJxh`EqEf1F;c zY>VMo-Zr%=+gx*n>(4ul`Xg>Lrx8#)sSKKK(#{#ES7zjHBA<3yxP-qxyCoP09!*{9 zScGXW{xfMbzE;mdLm_2cWp9U%`DX-S9>O?Ve*ye0k`M8M>U8<7k{?;Pw*klX?uo)< z?akXAPR`@&H1D9hva2ek)Y7~YFxZEoW}|i~*5X>&dmW6iwlhSUC)Pir68e81Xh#~1 zh%1aCt*qT2u8NPr%HHMz?%ifOyx)Z(o?JXX0GK3o<{p6$5?^V^q*`PkEkEK$QYgpQ z;V?;rt)aVE;YuEUG?YOCR@`mCjZb0Gk*(7^4P_f?V1}z&Q7-9l10>_fa8d52aL3jp zwnDf|!z65ri+FW6EQQ#vkK3?Dn{&7TaK3j3uMM=i^GOR&L|^J%C!gTF9KiZCko*V| z!r5Ss4_v_W{`z_miba3{C9tHTeK3t?(ucA3KZRMcs$cL2mb$1%MctfXpE3@+p zEwS5_4|*Ddkq_ux<3`d&=wh(XIJ&-GiOc8U7J(wz?SP@4sMKq&eLN+4c1IjOqxHj= z0C)MzM0Ps)Wx%?pFIkww+H{3|6)@D<)$J~}+FG)Cf2YM!aiAw`F}S>vyVp9+*MR5# z;xNZFjlK>X;?6p@FZ^Ta4nnNXrr-RunzsO$Jlm(b}gJvz6X82X$waO zS_~2C55sui4hxsmc8Otm{Tlr1Ax^vGqUVoAA86L%nJ&T<=|#S8LLrzB{W`SQec{1& z%pOap%_b%aD>WCN-vIwO$49E2s5u)EGQ1_|uX%0M4qgY?^lmR7=fs&$ z^uzx9^DN%2{~COl3t+7&*jb79J)pader-G2`DOZj3b1Y21}{oSOA|HD zd^%dVln>uHb9kny#U~n0nywayYhkDAl{wm8!kMlXo@#hFo=jhlmj*_lC!a%Hrs}O& zzf{xu4u@kCHtMq~?km96r)tw-dzH9{qwIVgxVc%|TD0l02W95l7B*gO?W$p)pi4{U z+xG#V-W_YXSwF=6D8!{&WiEbC!T8V5K(`GY-gJ8i_YNcenq*E@X}fR^9N?mI0(Q2C z{pa@gTy~m20&mA1Br47}7IOaqxUTWiy@3qlK=uay8FU?pZ*mP4&ms6E_6Gh1cs{&; z=~uFbDmHq=-GP2EDOy|7v&gvQrh0Q*rB0=pV)qb7GbA9w#g5TJxW9=ET%Dq0aA{oP z+y=-T`b(b8@OSVO38ao$Vg3PFe4X10^Phm}*$j*m#*_2rp*BhEKV7Sph(X&pZCE5- zTz>>!-A9y`9J97#3r7t@*hV}2`2TX>{K zFGHL@VLozwPvj4)CBBaFT|PQbL0ic=3a+zZUMz##(-+LqBD2ynti|Z>9nm}8I|gp% z{jqrKnx!zzaD7iY{H5kT!cYB%;qTAy{Sva=S7hnJTj!)WPm>+@yjdgu({jbnONghL zTOWleXQZcFAEh{^i%)B>_a|bVG3O+%?)VWwG&tP4zf$^LNRfTHKO9sHtwBvIm@Yws313%G>c z&;1)q-q&|3_J`YqM9*!`WPeplm%ex0}^8Pu(iToo5p-f4f z%B1?xC%pQF7sK(qyeu{j&Do79g@fO-9B z&j5Bcw;8laUD5LpO2Fxp)Rp#JW2)1REYc+ISKzvz^I%sNJGc6L$fEldxGpe{5@6HR=|U zWe?q&M`P(U!rp;WHKFo zZ>S@4JDM%I93TJ}2eckt^ej7^v54~(IYNUD6Hh4=mw0BKxfS87jpVo5$P4iu+Q^IG zR$E893-F_jd?em{w5`{P@dZ{LY1+Jbw9wK%@yvxs!A+ZVG2SV9z_pF7a#9}BRX`uf z0Etxw%L8RK#A#pnX4{v^n=<@{Ng?eY^BBNklYAOUTZ?d;fUfScbb96__gyi*?3+y4 zF%#?qhO2|)9rR?!-*aXgcqDD$6ktia#=K-5I1QXW(OuwyWLbI1xU8j zlNkD?Y!f@sNS?Oy?8D98al?9lsachu3F54_67@cYMrZ2Pz!McY11uWt+JS7-Q>Rs@ z=&pf(R-ewb|6Mw%zNP#jEyKPb`+E^jcvXM8ep>fd+XtVgUT}!x@(aYdR@bBTAP*_;@K6* z%yr^fd>Fps)Zf~pL5znu<>??DWEr3<>C?EJ z`RgjjD+{;fe(iBw2hK;wj;0|~$it;^&O9+l8?OkK78Wt zTH79{@pe3OX187Q=Xl2bdA-vy5aJgQK7U~vs4iR^$QKXCt$lW~=MGzf58{)*G|wgG z*}_xX&)31tba@WmDi_Nc*F?9I>v_UM$5Ke23_IKJQuBgD_|KQ{Ux+v5r9YoX@qExU zQ2pZ?Y(Clhp|IY5YiYP|Wb5c)cW?ht|L}xeiJX8zb8Nr*B?zB-qdI?s$de57rGWFH zouVJLQ!h*SzbWBg_2cE@Kg=7A&mmG?HE*s5E%W9Tc&n{qT60f8+JD}>N_dC)$o*@{ zyl~+a%xfZgH^%mA3GcOdx819Qi)Mx=#wW%mdtG`4ZcWSA!+)5TZ-ATfa!%jpZO*(A za6ZJv%Vr!G_m`~`n!cY!- zap9wJBdz|@^ab-tq1U)^y}#0DhtXj^od_fJlNH8i6ZDq9ghP5w3oW0Y7y2;1pIjY} zuj=v_GHA8lj`Pi%FJ{Q0vS-QhWue!*((Ztp`TQk$e+6%qQR@QoVZQQbWz6Nxoe`g8 zTzy&4^k>>oZvNPQB0p_MIeqLf-w=Lb9+RGaNzZqvTi*)8kK^*@*_gxS6Y}Ezz-9Q6 z7suv9Uf<2&W6W6tz`E?>Z(rFyyw0ZN}AiOv(Uf0BNe*7?$Q*|KhOQ}Dbrnz`OOL4A@c-;wk zy1XcuKO+u&(m2mk)8%;RL>AqjgSaxU7{245H+LLi*+*r07sAv0w}6l0H11k= zs{XUD$h6mbC?0OX{Aa)`j`R1+sot=k#a}vZd6VDhOXXV zN7#R$JWBw}3U8@|r}0!;zSHytvrOpIIK&fs*7*>}^2M}v=^59-IL_z0mT&gG)do`z z{i*H~@AI+K9305R{P8#+u9kE1;EzR6>0)xX_J(n_^X8bX)N!s$pieR(hq?F_=2Ez`<}>Snhja8h;ST5Mo8%+& zot*!iwRpR$#f|>T_}LubI`*Y!KW^SS+*dARF@TJz&4UIqxJwb^FufGf&d)A5I>&zy zL$X`lTA>siJMZ0o3Y_B%KbR9u`ANY8KYPM(wqiM_#AR>DOW>U2c$|edre#^!R*l!= z0mo`JY*?9_tISkma4eXf9&XOpw(pIwHjY<>VN77R3*yK*xT^qXKG`$c1O>t^7*d^|kL;TWG+0_T`bG-aW-jVIyGJ<)V{7uVMTjyndN#P&FN zuEWKeR=|63`gX%@^RnT-8L?K*{T^poy==E||9iHj1>; z^#zezgrh&Er`tE>*l9kz18~HDtU3)Pk#h1*z#xZieZ&6S_eIY%dj0?jHc0kzlbUNzdwxu>#!)CA;?Z|G- z1C2Ik7iL|ad;mObTFd$k^5l@eeQuu^_iZ9`FU*8 zvT5`wg^yLHYfZt3+@Apst2Z4S7UHzAQ|VcIruOvDg120*3MaLn9{h3$~KE}Y5sNiE6qg- zV3Pxu%BI6NfusEvAtD1#p5L~(xO{|vCkFTOeGhOKA6?Aj!uN2y@W+PxeMjrIK?Jt& zt`I(Ex1U)0A2Lk4C&uds?b6Q@aHw#UztEc$|6h<^;Q{|&5sv)~&I4-)C;Ptx?)1`Q zmfF7v|!EnKOU20K(QxQC*$xxI=MtmT-dY|*x5F> zL!_nre*#RDC@LTS0hrtI0V6!St%*HJaJso{`q8qiNbWRn`@x*89+|B+BA=2ke<4rX zX6r>%xnH zcJVmK`A@-@0}gvotJIq_QGu6qS^=CG7%G5`D`BIp>Ml_h3tI`;rsjMzgwdwDeZo@N z3QyKskk7?)%-5ByL!-WTL0CS^Fixi%k;e%rt)#~s8C!N*BDMV-vep=g>{aW z&k#0=wj8&+QiquLr8!qrTnc$z_w{V|+}?)0chP9MsLoBnidGsDOUvs}$V=NQX*|*7 zReX*rYTMbefugFBRrwBwU(76{O|AE<7fb>MQxdZeuqA`lUDbN5oO?TCaV|xjzuans zk+n{e>yK~3ot{SkuaB-t5(e>wkl=SY{9yM`Ug_OCIzP|fG-G~~~kKW>NP*k3zbj3;8L^W?T4kG{6| z=f{g0vM%@ivfhmA2EKs3V&x#t%x}WKNVqK7P}r9U5=3 z?+cthT_&M}`%f8JR2NEf09uIfsfSNRUWa-}cNgU0dX4L>9{91J5T|2lIxggKp{^}G zj0Nm?@Z)=pyidS8P2zr(AS%4FF5@0MV|9bwF0{=>Zf2F{`Qs7@H z@UIm3e=h}mn*n=J(N)|getTZm(rc!?{?DTzTHDq^ zV0t%N2-CaKLYUr-#(0H&o73RVx*Kf+;Nkq?>2QbhhiAea-i>w^+!)u8vyTeq-{?QM z8|@rR??$gm=s#5&xLFwe2ksB1F7iYW_HiBxx?~@R`(chYTk;!$(?|Q}=t5!UFC&Ni zHX*qmEy$Q?Hw^Zb$bCY3#{&B^=OP@IS$>~@wKM!C-N&t*u6z^M9nigm<@_pNF6izB zo@cMCJ&(EWu_C)eMdS?)#qw<&dr_&0UF$`w7sFT zHN4~%2UQYx8SY(LMjQr^>}idzdl%tW5|_vl`s04zRc5w#0QyGv8icyqOz)0vkd=HZ zBJ87uzhlk8o>tACeJ6fK-j)rR>;+r?1Ct1! zV&@k?-|Uq?c8G>w;*0ul9>P`~pk1Q-eEfLks;=*&4$yvuxa2;6kBgu8u+YXI`?~a_ zece%fuiHl*a<=>taHqmW-+T;kK53lSS-UnWhq4V?-laEzx5kxW(C-$&yv&~O6~^t+ zz7u7^?a}TugP@I{NzrMB0Mqj)c+Sx<++)>>J3B+pLK*>#Ip%^uwBfbIDNrfEa{5bdQ1MQw^hJHz1ZZ!UF{PP64wfa4OY7|p z&{A(}cvEjlt9pAWV3A))p?uGiG0cl>IIfNGNPL&)Ydh@OK(-$4G>--hI;nZqi(_Y_ zGabuu9PC}EsW@1vZ*F8e4<6t-NQ7?#T+iG*1iGzZx$(s1W?FcaKu_Jjg!Fof)&D7% zL_yzKf7c;fSO$+os;@PZsfYJpt-#qkJ3-H+|Kp;DrbJAp|J&}rnmp6n4wg&0 zXOZ4v+k|D2a4m~1;KQ;w2e+0*_0O_64>+GRE?pKEK+CeY3vZT1^3k%m2e61Qq)@(k zFXrvm#!<(PFqeVWkJ~%9wrN>Db_2i2#i?3ybUq-r7xbadHc)TyKGw?t=W}59v3j=9 zm$tz}ca$({g)%MHp(CgEol&LxaR@(|M}%u0T>*TUM^AuT^FjSHkM>DC(ztXUJrT6b zqbu=NxipWi0xaSSDU`3CIdLpxbM^cY=JB8n^N8*+kDdf~+eDH}@BEQl=i0u(li?@K zC(eB^pRNX+&ow7RHsqgSy`Su|HM|!k$~8Cll5Q)wxtH-8F7K;yh1=f#%N8ni&Vg53 z8@Emjo^wubX}Vr@hZ?nX=YBSQakP6&NL_^gNB|sXmo@*G3IZ*QAV9~$=IzsvZqzyE z^V9LoeAfE=8F2GQonf{<72od3n``9zFtqQu2KAY6OCQoOPoO^eYa@E<>;Jwq;hApj z@?`6V?*0ol;@Vd?>1v%gg#eekN<#~E7|&~X*1G+l1@LUdPtS|s9_T#c{G5z92b=yk zV%J{pg)Zy>T%54*C|mEjd$Bll$Kzm~$vCjT+%^q@^Bc}Q>x}hhorzm;&pJa=M3MGv zhN01JJoxO763Csq(2lq3i*GEkL1eF-_kD1fJ%I-Cq~5&%Y36h=XTR09y$JBow!Ii` zwO{n}Li}jkuE(2C7H%cldhKw@xkt~_+eF>p`x1n~cIFN8eyO}~#GB!+Ksb?qXnQDA z5~niho|Bt|*UN<$!|}YlEH-}VQ+k~5Q)(T#%*NN9@$xe8lX0&gLtOjuX5d0Q%68i; z0MqfVz=Lhmy%M!Rz4Gye8di z;HDnDUgXHa{V*7pWcr5wl6v5AKJ8Tx-heRZ|Bdo~lf2)IH^b$ff02L0Ae1SIQ<+o` z-YUG_CcI*DBFu0MiDL_4I6AiQbm?z@&&Jp3!CSyD(u4FJIJOPMHq+Zdm(+=O0OoZf z%d>0q-vYX%eq1d2@lN3MN$N)y$C$}T6GYa-woNz&Z|g6d7lv=unfD;fP-or?x9SDy z-VHZ(=6xbt7A_piW?qE;k~-sYKA%))-j6Wo{{!;=puBIzo8fY-E%J{Tgfb;@DwFEW zhlSTigjY;XgqhTtFdWqxwH;5xSRvbP+^g^*@QZXt&KTlYIrZeDz$NwMV}N-*i9A@_ zaT{<+-B8={ap3ex>PEyRrVs*+v|!Qt2-ob)?q#JrGT6VRf2_yWaTZwQO^gB!c(D&O zh5S%G`V{0_zR$Obrh)r3V9Ym;seCe$KW{!G-#X?-TGcC0mouLex((8H`Yha2kkj?` zSD4SkUBfz~&^;};%`n}N$NAfZ2h&d4R{wNd+0Nl!r}I#L7CRT~4uqxc96j^si|O!V zXC6hTErrnHdD6&Qyxr_CBlo8_P3@?(PT6qgS#ktb@7P3iuC8mhcu&Rtwd;G(Xu5{a(5@*DSE)Q3{tlkhU(Tg@U7u@ z!JZTMP5hE;_Y`MkgYUMoC2_(t>F;toFP1l7Ls-Gh?+2LJ*4~@1!|xUUyl2`2^DX#Q z`_UDh&&3?}`^iEYod^3i{KdzOu~r|j_&BkHDP7Orc^PBNnePPt{g|#~FT#H_IdWFbw+rIbacANTGbMl=jVD(CRqDU7!ue8R!nj z8GZ)$B7*@~%h|y072IQFcQSCnI%bo2>Aj3+{sR70Upc36E%K0K4!;DP56=vjy6e9b z46?DUKXjVf$rsgHdRE?R6KCZ)w>vA3XL_@L`tKq$<(7IQIuCDSxs070(h-cH#j;xM zr-O%Sv)0*-U0_x(9O;P4Hfw`Z+@ORk3Lk7XXXE1@algg$IqVS-$A&%J-G>~L_)Qd_ zytxs3iuvgH#i4NXM}11t-Yx!4l{)yhaLf1wHyxn-t}yp_7`Ce|*tu$^0n_n!QMge$ z_WtiqgKc)6>ZuSXe4H&oKV0V|+}zSR=U`44dnu=JMFyshCqq|}ExkCoRFrmY?;jA? z<@;P2eI&oHa%sx;58Z#lkMozNPJJC5`7Jz8h}2mG+k{4?HaE69rv=d;@L3g@np z;rRKfb+A(hffw(!XB+20?!xwQImrA&WJ$*bXJE-1fS%Z#JnDp*1*EK-FXucx>xJ2R zZ5x1g4*ht@u?(=?LzPRgayx=8x3F46VY|S8CH=~t7S4Aw4yyp;4E%P4!8I$)moOV? zuSokxz*o~hC)owYed$L7)^IaawjKW$&~fgHb4sk2nJ4`X9vKagwS6nhUjggIJw%NK zH(&oZ@q^(VD;@p)-N6!bS~&LraGld4op~77$XBL0@6}tG+QGX|*q%HTX9wnh)8{zT zMu+z^KWg<9y2*AHzqRh_0B_bST6ZmhTXl|f1-MyvEfpEkxOCms30ms!vMgSJ`!-+R z%A)n!3eZPkLc&;>9dVqt^R9)BV!rYo4$M{}%bo5pPdiKlyTzTGIMAzXW9CE#H_N7{n{OSWNXcb1t`^M?SZ&&qar_FuF+96M-N*XS4{wma?O z7B*hhLS@8au2@eog^y}Xw`XA$!yRG@M_h)_HTWSraQ?nqTXSo)wgz_)fL~kyw@+#<;8>eCRB2RZxW|U z`~Hw~Yk!FN^}wg^b?!8$0nTND?sC2Oz18rS+W@>Rp9dm{l+`ofCtl7E&z%Vvk|b4z zcR~NS9^@?G`Gj{d9bojOJSPOiP*9jku1HG3gq$2xYggCcwCx3K+1snD8tpYsX`nE3 z^~%|hU)#vkAG#lcUsgGfaG(oq0QJ@5{M|>Y%O1D5zp$=}^Gu(I#W@AGDbiu&O;PeB z3wIpGK=@?gCZ$iNbxsfXFim>#PSg7{eU*Nr(D&o5Yuk9<7UiV8ArHzx?wdf%N9jq& zbMC^k?wEe=DVUOcYrnBQEzW04@K)Mnx+(9W1n(l|mHA7{oi`&wtL@Zmd2{9w37$-k zY}&jTk9g)+G2G?*e7Z~m$F!l{Ov_U+TN2^We|DPZ%>@Zs%F~YaBB5oNq-m$iahz{+ zd?L>^2L*Eu`1GdBqFq<~P~fh}LOQ!-s8`|IcJG!2(n5zd^XS9aJ-^ZY@8`x~_6Uqt z6F2V7O<)b>_}XHs~a?^lX)ynbasru>>($tli7~%106>vc{Y!_`>G8) zUqJT&@NNyY8@Jf(_~JOAUA1}@7unjltT5*R&i)>y9IxSmQ-KdUIGRU{gvHqLk71#= z$GuxH$dDj|Kwb@FY82Z@?IO?cw z+@3x+XCqgg#xcedO)?d^Vl;?wEg&I}3&CTox)Y~O@#G`Ro|!=oR?bHPk2}a3RR(H# z7R;jn)A~s7Gh-Q|vLFA>K6`>e|y3uBqEef2&D>-yh>v9CTm z?qKXkJsROA+pMg2j>lN=#lY#K?X3*8-jbotv3lpwVE+MaEZvU*Z?>!MZQF>hoF{Q% z9TCTcb&K1BT>(EdSIstgPvLFLaTp%HwJu}digIW>a69O=ZafBX;${E~+g)s19Syj) zt!lt$(J|axG5;UMGYI#J_H}yOvDS?xKiO=rvURhC!%f$ik|xwhL;5xtnoZCr`j>Ua zb)QS0or}a_y`)_-9T>kjE}oByvw4gZ*16$ye#HH0x;uZdys~$CFipvW?FFB3v@zF1hb(55lK@?#0{25#`a-`}*NdJHJ&h)1Z^Qa+`w^*`<5G zsB6i+Usd?kzGxfIcFb%C=puW9F%=vM(Unw-u63>tc1b|1d%!LYV7dpa5x{irs~NzK zhn->lHyglo4_F98A2LO!d%ze!-zUI6A-J>lfVBV*>&ZE|!#!XNaEE)qcEKI)0ozUg z!5*;7Eq!9c5o|MUF!d5M&8)w3j|E-QUT#B~<{q%e0jE#AkKZPzd@r8_`z^O`M8Q%U zMSY|D3WP~J`c4))JX*#=T+)tuoG)WMW19B!3E;=~K6yV8?-WnqLpw@-YDcdEy~=nC z;KV%{u%sP*2jFT)p8|Y4I`U9k^)#WgagNE5U-eh?Rh8};ZTK-BV3!$I8W&Gf_2VrEOY>OYUV2aY>u@0)$T;d!fk3 zHioD7HtjEB)2;+v8=K}DuI`|sI$BkB{*q$~)PbaZdlLAxvu|le&fZ)NKa1G9q&Jv7 z=kKY3KZQL#fT`WPCV;8kdu9MryLW8>Q@a>va6{CcHZ;8AtAW=9Bi9Gsj}@ zW;>kT1;zdbbxG^Vcj24$pXSNC;m+dy9*HOW9v{a#$k5OG+W2|D_(}8g_4fNv-!qOk zf|l=>$@}Ha{GokHQ}xr7O0fyDdR? zLL0hI2whfKTDCN-!`txq^dda83}*4~3dTW`>7n=dW%<*+yIHvPi|~9u2k!7>`Mco+ zhts%rwTbJO7K!UKS2-S8{KNGb$+(8LHHiytYZ4dQ)+A1CYnCjbJx%&MH?UDjoZ7)G zp5Is`?xEdF@(k@>5*PLllDN?BC2^tMOXAe-WyL}3(JWkOyOKO3TbOgU>m$$++OChu z`{VNdq`W^R@6X8lv-19&ygx7R+vWWQdEX)LFUtGN^8SjvzbfxL<^45ze_h_+koPy` z{VjQaTi)N1_jl#}J$Zj$-anA{UGn~+yniI`AItkEc(Yz$U83z7HrZ(Jeuf{{K85MY zK8Cl2q0MxCkx!t0VV=b4a^{!d#V5omf4#FX#M!nK!af1>mwdEcz`8s;jJ)}cgrT&b zhhMGxW%Wjl8SFU$=dmWB4w<0X|skA}Mv6T-2X8T79#2CfBFk1Ul zz_ky=wVBfA14R_dop*!rq{Fd}Pc+NQ2{keJO-vhQ4lbuyubuf=JrguUf&M*84aICSO z=HR*@tepP=IOY@Vc^oRYo~atj|7Xxea4&Q2FMuceI_z@{VQuYSfzxM|Iq*Kmo6+v% z_yqS>a7;-oL2#WeX+4u95?2P_EWeTUZ?loA}%VkUAEZX~dxJDNvLV1n1dq;5(J-AL+2$9gW zjOEUCzIj*OvQynRZ5ZKd!?^B&?gD<{xKYT%;oN!&av|q-vg?^nDnmRRKd+80WS? zcg#Qfv8#e`<2au#*0$v^Rt;LNcRvho%?pM>zN-P#_^>{S@r5l5acawWzL{B#P^}F2 z+|6&E$J~K(%W)t2!KR>{SO#h}Md#J>7H$_{+H%}MHwyAtWw&guayEo;fMc*Fq}9Tl zSVY1(xuwFZzkwA|*m-g25l5L$!2Eg?=k{YTN10{7Cs;wQ!_7f}vpeY4oCL+i+R09{ z0{Fy;3jB4Nm4Nds=J9H4m!7A8Fkl#;+0uj|V7ceHSZg^)mpc8**}TKan~P4uVBH*I z?g-!#bwG}?mdo|#RHa_twSB&VyGP0_>E)?@f5_F7H((bYBAAz+mM*+|0 zY_va5_I58OhCO#Ggh<(6Y#mGA-bQ6-ZEAcT*8|{Yk{t^T-Y1^{6<*ZOCt>XdZH2ZK zK7cf1y-I!MdI#d~4S82!B>PyAn>f;WoG%Ajej*$!o%SbFIPj0*5N_lThA1;E_gf->Au*Wyc57*_vGo> z18ajY^}Gc%Uvy!Ad{dDd5)9DAeh~ue0JF}&vh`4TZhjgnUUvyQ8FNN)pzfRqS+t&^ zuF!oFe$T={zUSJwDG>S3;bw4ZK6N?bTz8B zeL?sGL-;hV$(gU(`<$1VCHYf;)8}Aw;OX0Fzwe{$?rva{%$+uJ&N;T}(l@wiqJIcC zMNjniUm$Il7_6A`DcK2|x5yc0DPLww3KZ#u*5&gj81ufh#;^~idHLWdEedA6d}}{~ z>zmj|p&vb$jCHN|(_ygo+df%-vcu^xIPt2O;rehdRbviY z+uS*0E6ka|VRa!QnNfky91argFMRVHAYD|2$^+zRt=J`5_` zK&@K0wwF5p5RXF{T45gQ+@vctoU}Gn+G6U~LD>JX5j6Vfer6vrr^}1!7R$tPvn>B` z$v5)4x0I(KLvo((0TlK1&tuYKAP04(BhP%1$KJY_TZ~EmufOm=~@LJ!qEzYpCEnWh>%J@gXi8~Llu%AGFqbFtK z7*G0JzR!g_1iw*SV&UdjJrHYOlx{@mvcdwpwsORA@pM$2O=H9`9P^B&BXD8*YrLJm zSX$XNJB$<4fPE|vTP< zc@yZ8^V_l@J(|xx7x|o=&)y7wsrl^4qZ?N_A2d-N9jw(6vS_|~Frd@<>fr#U^VOpP zOy{c~5x{i5dMtqHxK9Yv@u3j*Fd0W;ynJ7&V8-Fjny;P!JRI+tggYGX*$Q_!Uwr}G z;e0jDq>9Z~Kg!Z4dRH=LLS5AP>PLev*#_PM+r;_mi-FUp&3tu~Ls?671R2dovmEmt z9km72S-KyCaFVuwIv3$!eAKq6-HC9Zi{YT39_RH__c`5V=Xj}4Ia5Kn6V=vE=~Lvk z!A;$jtBcUo2foaTd-buV}AHUt$^$vuqX-K*mxLH@!M4l|%KUm4((J|gjK+F8O z6z>yJ&vA^gj_>khd91&8!nVbE-#gpy^;vgsD9`aNAl^GA9AZVM)Y}&Mh{fd$>BFl1 zqq_+np}zFkx)$r{01xkQqFe89Vjq(3urENj=KmPvgX-ij156+7gFz(*DmdUep$s-h zG7ypcmw=~fGai_IR^Udxmf7|0vWak@;H0CAN*2#R&)Icp1&p8a$Mj+`$0{Ou@@8JX z50kdZ0^DMY3}t0|WLHEVwMS%MeCiy;|FW!$^hc!X*jO4uC$))!=IsiW{W)M1YwGtN z$m?`HXTP=0aXH|j-ai&@)ouFOiy!s=ad`8|!u>etLr~vCf64Zf$9a3Cdq5wLFzEjZ zc|Sqk`|xJCKSDT>f3zDynUXk_Nz3Au!s|)GD<&txOxngU936wv^P}#v@#Xkghj}9S zr7{Ec2g~|Zz-c`!b11nd1E%%2&pkK(ay4*CJLviiC+435oIde7#&g-94%`8`!#aiT zr-APZr1~su93R@LgD`OSvqLeCd&IHk=@M?DhQwa7C5WNPKSS`ht%~ea2}f$s07tjr zE#Q7)oF1NriUpv4o{zHtR5s=f-Or?K(7g#chd^~N#3l91Fr)$@@CI zQ#^rJU10m1{Isk*7xXIQIN-!R53tb2GA?6)vrLiq3xID&M;^XCd19fXzsIiP?|q8F!KOC2iuw_|leU#W#(M=d1d2@lW>`$Ww8lK4?B9 z(@pDfrYpl{8!F^+GvIu(aLN9H_m}Q3gt+8-*btZOFT5JzQ_o)`^0B|*>3w_bE?E!z zY|zE}3+eod`VG{-WWV7#@UM2qtsc)};Q9~G2d&zzF6}?0$)kS63j=!XN4z+IX+PqI z0QR7B-Q3Gd1DN(BZVX`Bj|gGfj|gGfk6=8*e#Fb*&gw_p1bEnwcsbl*KjIZ|hy93G z!X5S_UPb@Gy4TlQ`h=B~egt(?`w_1LUDC#HM;T{7;`PAk6Swj0bIjX(S?`+8r>Gon zTf~;YI=kT`-0ECvOxIdy$>XBg3ND@CVa^zm+7E@;a+W8KF}^W~i`rAQ0Unn#YQN7z zy~A-p`W>szFSHtNzMf-4Zvroj|KW(03a)*2M-&nMX245xaMz}t7ksjh!gv-i*7lY_ z1|4hLPb>~Np0x8Em#0nS_c8oNUxIODxu*N=_+{;dj&Pt0(}r>Pxb*yi$Ho28c6gk( z9WOwda{T{okOTVXrh1S*Y~#NJu&ik@oj1A#_$x9Aod0(MANCR61$TPBppbhv;7NVw z{M}OYaoz)*KC15-Gj)s3-|=k6HHiOtNc+X+k=}=}bRLO)7`9#BAB3-cm|&vF&m-|z zFFnL7AV3G>d{KLQmUi&~ zpTalWz}gP`G~8+%N%u+o*tY)+-h9$HZ{xHN_gT==wtf!p6g}W-OKFc82E!-a7w{d0 z2?;e!(os&e+qA!=`yzhvHoY4Y(mMi_&c*@!z6^Rk3@eG#`i)`PI|%kMO)&NZKPunX z@Eyvhe#nnudYOEEscG_c_+^@W18?QaI*ES2C47_d3FUM+9|s*DVLYXJDUp{wP zoz6a&FHoy275%U1^f~8jZB=G%V?;iRasAC!+W#dbznf{r^!54U<8N`W`5x!%-a~M9 z1IGY9kF*NQ*nd}IXgz&9_~ZNse*?#VTL7+}zXSZWFQDr{zXTZS`e;4mSK!7X0lSWX z-|nme*S`O19&&Ex+>?j^MTf1qeM`_J@N z`^j=b_mAJ%w9L=n;GLoeTIbY%r_A!zn@W;A}aIFJ>k8e+xkTu4`+t_!Z4av2j zTW$N&*^%FZPb>x9T$H&R@GIg7+YcgK=Qe0B?tvS&%ys0ka?Kha=`;Nfxc)u!Ei7%$ z!sq?~yxK4w@BJfSNn1c&;C&*00#2V(#1@2^-%b}6yYmL^)98-a-pagQV;W8n$Us4W z4chF?mp?-;r)T+9f5CZ&Y)@!A?ytaUo|En`_))k1hBu!qT-ctWPI-T!9=S2vzk?6@ zB<3IT{!hG9Jb_pJW4n|5v@GNw?qsJQ%1T@Tuy}jU#Y=T>3GnUc$b<1GzfPgEagND= z^8zHDNOw>he#CK{Gb^k#E}o|9&xM^HA0A5FM13DcCT^7J}9CUdA({a!h0Zhk1R|YU02Mu954jRIA9F*}2 z$3YK798@-hEA7)N#;}6Om7>g?{wcAVPPFJN`MQI`pz*6kMp*MIO?S0LYt!H!{eGz&l7hw9PRw+noQys0OC6-1NV!pk+jUhofOp5aT)yigh_u~*Szc~ zCquXfmErTpHgVcdhdC)j4#&lpW!iGaRc-k?_@Rx~y61s#lXol+Q1_e?@Q&krT57xI zL7?T{lvD9$UB~dW9#{`pnAS1AusNb06SWBT=sCMYS#KAK50kFW~6+RO(nL|A_P!u1st@rPJI`!{zGi0^IIb8>>bbw_dhjjt35V-njLRr>R@JcLHEz)w$+EYpSXZ3GH{T&A^Rcp7uA{ zXjR?K<_;J7^EmjFHrD;YcL1mPCBsv=_v82x4!N;pH1c6(_wc}n4I^((gdf2mllWn}5#7qp0zmw1T)sVK<=6ATTDa&&60QlWh#UY2d`@O%_!V#+MC+5vbXrFRT zK9b$0En!@H#k2FK<_L0a*9TKBFqf=nJaVT2rge|DDVgsFvIl1a=%`OgJ9`%F?0wMw zJRNvG+=HX-PapgiFN*X+7VE==R}i7y8akssj4it;M`ud7D4ph8w(TzEI)?LhLCd`N z=l8RnBjdTy2ZwoCu$Raoom?vN>% zhk-ZSNs%e$n zaLGQ6_m}R|gt%m%Cd4KCG>=C3Y@b{#^080j>3zA?a~(^di}h*Z`W>zJV7@2&HRr)^ zykC>_?8bM8K&SOf)VGO~M(aFA0$T0gJR*Q;|7JXZY5!&-fNB3`GJt9SCWLAKCWLAK zhVj#858Fsv;LhsbYy~{*-&_E9*uS|5?y!IJNVvoP&74>Yv;yeyeS-<2&r*?1Y=?MLR*dOYvh} z)WDlh7A~}nNq@fHxlPIW}>3+qp|A=0#Y^AzylV{xF1;tQDaN#lGSoaUK`Ta0JCAH%fs;dy_W zSK3Cq7BYr(nhz(+c^7v^^BNuI$)NR_&;I7&=4!yub%P#9T4Co&p9*+b=RFN>U*~n2 zrxVX9%cx(}X`TU?_KP@Ha1Gq?{#2)VCSW@6%lSK|Kl`;itZuqFQRWBdM7QBQdA(1R z{n%&0Z?X(h{sZa9QeMV0Sr%Dl4nt25s$(w!EaD3(lb0WTYviKaMV$7E+Fu&HDhQwT9@|~7-cR@?IYlQs5hfKKwX64Bn;43f zJ&(zJ_LzvHTbJ-!$fdK1E+|2NC~E%JUV-VB%XC6Rx`Ae1SIQ<=2A^>*R)4&fD(6JaLnz%U$bZ(S}n zg7a?L-g+DOMeVI1`8mf%8*vNpVR@$wcqd@KtrhcR$2i{weA2d4FWAm{H*oqS+gUMA zu|`&a3H0Lf#dVF#L$QICJ0s=FF(_bS&1f{}6c88fuvUW5l{G1GXou1+zZY>)o#eOb zf{IDR=p$L`|zVqeh_ay)UeX6QD`z_a^~M>MwPT z`ui!%lYH4OlCk9jjjHH$5XA%5wVQdq1L`=oKlrV>_F2di>e}bvRvjSSXW*u;eO~0w z!i8tlQjfg9P&tkn{&Vhe4eB)V zrp|iadGl4!@zMSb`E&X;NpFcD?bn1}d1ukubi%0aHzM9k594_3*WqS-zlpc{r)+wj zPg1sT2ma~r&cMIQt8q)p>tw(>$cRVIp24m1wxj<+MDOzG`x53|c!zVk^sm2kx^|c! z2_N+nhMOIBhxth&>>o?mKg|f6bII-a{Jc%ri~0FwBJ5vC*uTO%rRNAcw1e#Hc%Ab7 zMD43>Iujmj9au151iz?`?880emH8>0Ct&NxuK<^@A2!d?uflO`Slm3nw`VUej+XlL zTc8hcwtq(*8C_^kAK)zgcN~vW-^g~$nKt*kfVn%X*BiQj7`acg?w>{O4c7hdk$c#- z>wgWmuhV@bS>OK#xTHN~`}HW;!`}j@PqIGuTw;~Ef}@(8bxA~b{sda~z5WAll}qcyzW^5Tg%rwH+g04B zNu6Qe>vy0H`(AX1eXl>m-L}WGF=O|x+h3XcEBuA}b|vzG{ja|P&ZiHp@BR0`(whox zL#VAlXquGbuH5%_A=crXhcd8OKXxg?)qX77)a=7`0;W$^KXx|< zKg#GuW_RL7yUSapVe9&`EPwlx4EFmOkxBW8O0Ap)iu!ebI&^f=>yYa5F@Wi_s18x5v-LSR545da(w(q4 zO1##f;C2s>%_g4Iyw|p6)*!4{4%#w@JLLh7_B^|sw*AHv0mqzhz{T}JPXgTS zV+v4qjak7wfMHbXb;rii=N<@HSoYXfIt8#~TZ!vwmSeBbgMiaV$F)PnYo~_;NEeRJ zGhZ10>D^Wedsi*t%y;%{XWe{dbS5mv?WcDS&COs*8i?<{7-zf`aMt95L9b7i9Os;q zO#R6OpcqSTDKK|0(hji00l|^f{yZ5(nnMMdIAKh^V?XP(qLVs#Hay`hqon&N>UO$M z$1hw@6Y_Al_!?oJ4e$B;vPOSQcjXz@KS`d+b;oEYME;Vp#BqL3Da|u|M!c6L7oE4j zaRI{BK0OTIEQ^5KF`{$fChu6duul&MoKG6((?HwC#iFYVyYXguXLwrPd-1Ju@f`RV zUzGO{7mXL~=Nx$Y$vOvqgN6HZ;Lo5NovP$H@Pq>#I|u$u(&`4n#G+od1INA`?&&ec5>?!<}|@ar@i z0q4+_o)6EmzrXX~d&sM80kdmvbA6ym+A+$0Aai;Bpko}9HjlP|`y&T{=d;MU@c)!8 zpe=3F*XYH$wNq6L6<23?Q^l6JTWksSc5~6&3zi4EOZctG=gqrV+2LV%B3#SU`S?~F zLwi8nAbw%F*7Nwz13VtMTiZMYxTbSgxxD+VGrD3;Vvb`nez+MuKMY!Zv>kMy@jC|N zexa;%kAh!lyBI&hHGX5jhxTF|ZnX*OpY53m!1<(cX?rnQboOEk-b{D$QG0O#U=d$P zp?n*t>$v`YIcT-*{0Pwc@^^%xTgxBEI<~^SNZXmafCpv&sG=1c|CXBdXSnZs zOTYHfz&ShOSWv$hK882)7Xzn{=+{3L{uX&r-hK4VxUCae%4$!er)ocW-b1_;|Umf4J1&SMKiZN4P1NhCM61 zZj|(5m{^%xnTxJIaCt>I#>(8v860y<3hE&9X$^c}eka0VFn1mc1*5k0O62(r{Mb_h z0za#;dxgtzl*ekLK0V)~jXjv)?qS3gHaXvdy!sqx%0vA_C@N&HBET;+!RkP(lB-q)>n1FK-N0pgSAF=Q)M>fJxlmpZ)LV0C#}_HcJK@& z@?yC27I#4m&U1?Q5Z;>N9R)b8&Bx)Xgb!7wL?p|Ha$X~F6-)VFCvX)@;m;#{VQvUx znmZSEj*j*ZxiD73CccQc+4=E>ZF5tt8a{B@fyRgUn-chu?c3+7^WOh!6_2TofPdSr>eYG_wP^XQ=L`Y69Hn1UFT+Q!O@L^mB)WkI(O|I|St+{40)rp08|nNj_R8e*-TJq>}2y;?gfHkqwWVI8%*2m*O*Ju=q4 z_5A(|dq%p)Tn!SqAvMlrE*vondh&&>$Jl_2!=aYPT&+>wZqr+J&BcT8SuA*Ra^DZO z1S^68tKiBS2isdDKf*5Om4bJ(jeum&UkRVH5B5(?pni$F87H0>ta^tQ#I{h^z5-qEF!kBF%ln#BGT%p9!k1b2$in>W zf;}@w;VT_Ij>DO^cNr4S^jc-M@3uw|ddN1y63F`aqDspCR=IDamo-B-t6%waaa$uY zUP?x$x>Id0oy$xOhmur{whf+8B#nD;=Tv2;e`svHe-Q1p-oeu7X!pcsn+ho?LV{eO zPU2b?Ue+Skp7C(`*>u(d@!%bWdBo$1MGcYZHPk;mS;7TBddJV^{_ej1F*BJBXSmtz z1IRu+G}hnKJ=VLqf6Ex_$`lB`AqU$UPl60=YiL^0PN7v8<&7&J+ijUTN92Ao{ODuT zYNB^@33@U<;aWimE(W2jtl!bU%s&i$3Vl|Z^7w`0h;O-jvad8z?(H5N?CI`3U)nTn zapXtYa}RK`ZwGIaI%6GNCQ4guYk>`LnwQLW#DS3c^mSefS z*NhIj0viIH3}=a+(r#ds#qNE!#S?rf#~0SJTsU}X8a01ydyRMRsg1bS`lDZ#%ksp? z`TfJ?@sY_f+XM}rF1+kM3uMKOZM}otcwEa6U*u7~JTE1IH#`?-V zgCjjC_$iq3dXDf~mziIs$yR*`H7Mp=?T3?_y7fHzy9#^h(QjIg`10OLu2r$?Rp4HO zAHTnKru!zIFpdSVJx~A7$FCDD`WN8MhvN){>o~)U@V#!Ih1+q-7sIV%3F@EY4A%qB zCyj$5AY48=F8Pw88)vuyZ;c1Tpx+w-i}*qc3yZ{zsIz*ntU- zA!I-qHtkN@-l69#x8Gu8!FJe+$s|P6_zeh~<*5yyvDqoeyJv62CJq1>sjuEdKKq<* zzgfO@jTYxSSPtI;_%gh;EHdmj;>Wp?x8ltwTVF~Dc6@$eTPTKiYh2!5^fJ6dzO`@9 z@F~YFfTzPRn0Ershqi!nsV#UnzFAHIx3=ItaBF#2`DqK@3pk%NE^Q0mS9G@E{dm(B zkPpM4-w)zD;tMI1uZ}r}w%~1`r7dvdXEvWOet4{T7vPAlz?n{N9oPo|PwD~lk9Oi# z;6gh=ec+hmhXCipeJ-#Q2c%bQM`h@wo6)dq&gPp_&H8u^_oPmivcO)iK2k&)wbjou zswozgk=~KPzU~P&H4_lkjgOJfKA(@b!L540Fg}VO?=${5-h9%yycs^b9j;&={XmCP zePdm-20zwCX7t{jzA=2&x6k4`)VI&UP5)?H7?qRy_Ibehq;Y9|yS?c2?F)EQ z-^fSx?Th%1_(BTh`|6Ck=M$i%zK!p$VR0en3yw9P1dO_db4Ji7f)38;y`9IJPXV_& z!r4>pte?*Sesly!KM;o-Qx7>#eg|-wDgk>*J^d2!p`KFLmO)Ry3^<<)kFk21rBsXR zT6UYgym?}1usn(>{)zGh9OQz6B|%PCIj_R{h+`$jw5GPys=IA3QR<`I2~4LQt(nH; z?6mBGBmGy4Ort&Q%|>^m-wBvLrO0-v!jI*u2l3~Vh12t;sGF9@KBuSO zEjoGB_I?lUEdSpJoR6-3=6#`DpO&W0o4bmn%*Orai4NDse)$;pHZhjyh6clg@L-n@ zjL(mY8i)Ln@I6JCh>tGk3jS9z5w$d{k{JHo9@LvJg2RKHNdKrY${~GYkfIGPyN@W@Zobj({ zL@^ITyZd|i3CpzORmlAj@X+4UHgNyzp8)6c3FHUb1-@)#*an@SO3n!_!2e3K&{M(j z%Cv=auQI!%HAA$et6@uB3|zaNu(g0$Pe?bmp_f3#{#=A-dCqWiNHW$^8tfY{UF7=S z(EyA9i?;oGq}XmZ2Q#sAGX%nDJjMf;*m=mm7L_yOin*`u;c<>mj0~51O2d7L`H#iW zF1+lzrqn$(h2hQ`Znt*=u+^S|frGWxe}_!8)$GsZ5dUYu-s#g}Hct+X_La+KQa%<7 zx4dca!qLrc>ScTY^P&@|Tv9L%*L1sZLt9JR!}+p#yt%$8Pa4?1g3$8&)eivds&@Sh zlwS02Mo>Rt1`YGCcKjg*(eRfh!taEeZF{w83}*>pkYgF%d{kD_^4^Xt+T}v4c9OJd zx|~^=;7NXApC%0d5TQ-;@ivk6mVVUU9tuC9y**6ipuJVzw6})`yyG~}TgM(&gO>XR zj=)>4>pScC1+eII;ligBrLLXR2D;Rki() zg8^R+IQRIA2TOl1z>ju(Fg-NiJCFG!@>vBq?RjYqJ@y7FSd7EbHXR8#dw`f>1GpZ9 zUC12`Txg$IwzvoG7{K|sz20fxlPQoZBTS$E)19s|Z}_cwa~ybvd2=7QnYT=T(j5yo z^X9%1b{dz?oBM&5dDDeA=`VjszzZQOFOCs1KeYa1x*QKbC3h3~9LGc0K3)S@m>wJt z?Lc~*05~6MA4k3>BL*)1w5RF58*A78t$rq`{{lBem;^c=+3iR0=)RzTe6Tdmep={a z**-^X@cpfv)%l&n)!lwN7dNF#JNiW6A7g;;-cy|$#By`Qn|Yo`(w-!7WITVCLkJkT z$FRN5E4xq=FovBy=1|7e*I2(BMrFq`bh>y_R~~>cX@_K`_NO$IQ4&gp12p9F^7?wqkk8K?s={+CG z7P!Fa?puWqu(iY5>;D@yim}SIT96@NBpONr4(W=eNR9mn(F3;G9INM;V zOuRD>IL1m{>qML%9K?Ae=1cm=wqRhtJUlW{8o02$fg^S)7~`K^zDnpgv-0Pz2}ZHi ztfTTz16^KF?@mMbVPA{x4fwIIHE^U&T-%l>T9{>mUTL4S+{Uj7xX|vocHxQnjezr!aqe`IE|SjKdBv@P90TYZ8S+j3$t)=In`v?` zWME#gKH<0KM-ks)essgFX->L_-*tT<`EU=#4k^kzM?8E`(Xp2_6UHm%mgY(p(tV?$ffVcasN6UEk_C*d$GJ1>qI zU|Xx;&2+z7c(s{h-qF)qnA;&`o%~mt+N51-AoUDks|@Cbdv?~e?jdY7=F|yNJ94z8 zaq}+c-j#!)mR{+`L`c9_7g@<2IR;rv2Q@BM|QD2tH@m@S)w79}DDJYs%+O42|@h zhe?-m@8sC{2vjNsax&dpWWe+p9=GO_-+8RLWSc9GPqcHQr-N}F9l=22xQ(UzbiA_L zAD|x^nH=vg4UbMbo$${6_~W9NKJU*voxkk49)!0U3uU%;j|D--An+Zf{TdrHJ9=St zWeehp{XJ1x*=pUFMs741f!|@>?6abJ&0iR#&v8s2FS7k&c-dodvDq-p&e_ytV>m_>=ksXc!}~*7F4+I&S{qz>%ymgt57`&) zFx$s4_lFt`%bL1(RcdwDZXs@&*$#5FemIwpHBi(U>SH-b6T60Euw+-!Sf!C~ri;#r zCdX9PfH&JjrFoRA+3HkiyH*K2ETddkvN~8-!nhnqTTnwSjJQxPwk<1xT-JUK4_S4z za>+O4BE3ni`9R)cz@&FVx()J8de(_k;H`Dyw4^QbYeL2hSnn-^Ty$>-p7VuQ+O_wt zPK@Jn=IXY%CFbdEafqa~C)qs1GnV4v70k75c^1rb+T!x&`HSFQ+!mKJ^J|e9c+%-o zFgLXImp3mH9Mha>scAlkG!5G!^KffhL(`n?kOjasT=scA&ZnKW3wME*?U3DgYhG$Q zWG`TmUr3>R?~*azuw6Ig26a0N2{Z4?)VVLqtT)_dlThU%&7!A;z0UE@6WR{&Cm>2B}65j-#dQS)VVmdEg??l@Mu2>SNm}_zC-)*6u8xXsDIjzrvlC=jZ52) zr-7FCk~#Ys{%D+s3#K;Vv^AQNsQR$inu+vqculb04#|%+@^D;B(!4v$eL2!IM^{XYYJ< zuDsziGr1oEr!$oCGLdl~Wc-Q9xPb8$tlzC~A8gKWK#}E>W$?L>;ZcMS=n``WeAYlJ3WFj>`e213|)r>Cr{FrM0V=qdv)6!iRXkk>_zTVH`ZLOUhk%zdH$b*71g& zZox?SGQOVhUMxIVKw?Um+!t~N;cj1uU5kV@hWY0OXrbe#PzlWLonMr%{H6rjW7zEqE1jWEM{g6`MgM?HG)8YhqHQHZ+%GV;m7 z>G}m-zx#TW3-&n{`!&wW;TBO3g!Fij5hvjLCZEi>tfe> zbZu?I*}f-y$0!=A&|%iyuLGQAoNzl@CGgh+&T>uo*4i{CM;txjEX$U^+wf-jyb$W~SE|W^V;kN(K*P2?+b8X4ZUGJ3^TM6epfemZU|PHjIJW1dPo zz!`QlOf73YJ_wwab(f}v-2cbio50z16!-pTu4GvVVT2<<*n*4)*%-$V*_MrQ49qIc zwP$1IjwBn$=5=40)!Ak76>6g2w@4~k+3fzgnfrBBsO7( z@V>w9u5gww1>gvA%7W196=+S#6li?Y2yyI;6(7TDJ z=RN$&9<+*gRO@WU#)hX34A-Z|2FCYJu?NVxlqsDbu7(>AdLQ|0Ih7=zfNmsPoab^s zKE}RKb1g{j2CpRnULi|JzZtf2hNoBko|0G?r>T#d*bvM6(xD7bpJ<#wwP@#}6<<0O z;NwL&dQQQ6r`NqLi{kD8#tP*a2NxZg+WJKL6~X(am!}WSFR<6a)>4o`l&+KTiRRjx zB)_p~mXTpUOJTdBFqc_Kr*^q8Ns~DhkG0E18GK@`wG7JnwUd!7bTK%gX&FS7>bpA& zE7e(hXs&+fnc}v)GJ7=acE7=CVUwc1&Y)?1dR7Qt~G3p&d zpJ%V#ZvJYkx7^18twBzEqw~~hZ?sK02&tW1^a1h_Eol#-JP(qpf1uB$=GW4EFr=xb zX(#KCEvz%Fu~~?W0=4`q!42m>21N?~}b)?XhcuJPW5u%`4snc)k%g>T`+?V?PXa3ZeML8%Av%a)`j>C#H5QoKUaKViRzQlV>17GIb`q|Qp z2EGDZPdThi179VsXy9x7iUx$oXy6;Xr+6ua;e9~3n>1d7e~!3D12fvdr%8`BSLPO4 z$DQu!^MrR&Ce4AXN9O0?>vN{BQd-T&n#YP^N~bwl>82NaD$$nGXiip|7_Ru5j}?Dr zZDqk_6J!Ua(LAg)#jr0BrukQ4DD&}Dv>c9j`>ELE62;S89O4Bl1}^=Sfn&%=ak`6f z9Jlr|gTni>@bTtj*D;aubGpI?OJOdtlLZt$6vB@-PabMbugnfjpVanw8a@`n4>gZW zADeHj^tDF|lSOKW`bEMIhVUg631ib7&8A)&yI&`)Fk;-8{U-2u%$^M; z-8Yph5HH63xvTAr<8KjH&$szSwh#|Z$6FY`>9@vTHBa_>xSSQHKa1#8aYeX|<9{K~ zEvG!4Kk*{}Udl$C|Hw~;r{y}6byBS;AG5kkrJZTG{ zSNt5fo^n{0ukH8zH*qyr{DNOAv&|J9y;+&%chB(N81y&K=~6D9|NWTs;!zU|ESLi9 zC&0v)CfN}YRQv{IcoH?1)6dp`#k@xCE%{&ra6R8gj|5-2llDI2>@MQgHfr4Y_m0ic z``x1VEz$ekv-jH8?7icx?EPN%yyNz9=10-C@_^I#^#-BHU>orPv_3no?IcIjLyQad zihEf%;xEqA|FDPU)N-pu3v zFCU+{So6w{$+2v$@O>ZFIH)A^OY6x+vgZLM)0ExR>I zmvs)WU}q%fhfN!Ao9i{kA_23m84wD(H}j>!w`N+_Sod`?!kOH`LG z=p6Z~b`RRZ9(*)GTw-p0z1{F3?Ykvq-JkVjYHP{;Mxk>JMCvdH-4pzpBdc*uP1HyB zVRtji<+z_m5GDv|SXi)2VxiYiR zw=ge0sQIWyo$lLfH4?o@_Q0pe!M>qM)~q;0ks~`Vl9a$czv{jN&+zC-9UpjFL7R1V z9^})j@9sw#LtolM)Z_j2@o*8BXCes@Q5LiYY{JnDOAax(YbnVgtdneqHW;k%NP zx$g^;85cq0Md24GGcJO@yZGK6?Ddq$V0*m1UW!NYt~8rHLBn_!{OVx07pLzIc7ZXh zKbgmxcx7#3X4;+Uvb+Y98G)QGM>Kd(`s-ZU%ATRnUlRk3{yHuXCK{vt12P-79xDZO zI~p-6!^{(a-4lPFfQcXEKX{G9a5q-S+B zx3q7iwT`Lv;<9!cJsE@e)u|)2ZC4i+@;@B_}~uZ7Ei>|#5tT&U+5cMU@El=CVTFU z$ssOC@P1UR-v!_7;I>POT|lU_!nV4w!KSyw_q5pse#x1Fid%|lDG#*~wp7Q`j6*w} zPkDE!UHhB(V!*~6HSI#(`v>#m0JmWHJd(U}H;R4%@$GT8Rt)fgu~fH}es$AU7gYB3 z)bJ&jUMbPm{VJaJa4!UJ7l=s^1$CAYsUr*92&@c~R#LfiN@_D1y% zY&1dojY$JvGFjYCU}tEj%x%tIlFrAQ{2VyC>}v1nO!;pPaPOEYo2&8twX)JeFwx=L zmR}>N9A~AtFHOh&wnUUVn)-G!y4ddEDT-7MxKE1XvJ}UTWcWnis?W!_i~F8(3gl4V z2lr}?gj|)~3YhA0751v+;Nqg(Fs@=c6ZE(jDNTp9#~zp8uK@dU2kkj?G&FWbYd`Dg zTiHFbd_t|Q@u)QzbW^*SH0e{DIylj@e_+bHVx;Ti&u+&@;(dJe@utwnT@DHBCUy_v zy#lq_$KASYZq50aU}(r5-^Px@wkD`+u)x(e>*}ftb#1D!?IG*{`sSt!%KCU`vZU-J zWDVkiFm3bB3_fHstjZ_7x3$>rK!bu`7{N^k{oVV!xk32d;!yQ?XfOJm+Dwlun3ib9 zG?0GOoTz>NUnPz`W3{ORb=LPBp5cV2d`oDVR|Ivtc5SPdW^S&J?1%A<@AKZiVt`L8 zes&4@il0^M3R2f_TCt;XnL4o?`HRbd8NSN`zUK%2=RMtd$yrVdQ>jP!8$a}0sZou?f*=-Rsi-0j-Dx~-kjE=~m+4$(tgf_O?1a!OdEAL+er}F+u z=%*EDo3XSw6ZOyTWM*MS2jQZAK&J7qUcZl}{<;#GWc`q=ezU&4n*I{R_DI!dR4wUN zdi(>${f$ghpJ^=(;4Nsz@)F)b4<9=c>6HW@O6H{+Ol@ie8*_5eTGQxD`lkjmtSf$? zi*@47ChI*5+_ED+qOr%`Z|xDZg*`_kGmH!m?eCjJL>iWN3)h-?P`7Kx2Lv7_yxcpX ztvyHEKiK8;Nv=UuZ-wKNG4*?^@2&nj-47H!Z_}BtsJ&G$&V0-q5sVE!<9&kfplud| z4peyvwv#q+^HX!S6xNyeqwI18p!i((AROd?T-}gnB%Z`pF?odT@CPl(J62SyNeA{jXw&oVK4H z8Te0^!vcq2Yo4&VRIrVShnapwu+0H>8D-NLmfVlWzx2U}WVsnf&cb`78ejq~ z!MdThn+tLX6VLiI?xFDVo6b|(zt?8SJmRwp3H-#DW%hV~^O#LCLFmh54ejMe;V!wx zmC|bdlct0H_I2Fr&f}VVQMMo!u6_Ob(zH~xD8dw|?UW3+=0q~a-|fo&*1|f%Q5L3s z{t)JTni@{+?~k$Z>DB@YS@h<+I$vsWB=3xHNd)I0IR>ALl*W5Noae3Livm-!nrj?CkNAcT7_oiJ1ADJ3vB|6OV6HlT0IG~jO?xv44F1o>~`AYMm zc$a)EoJ7{Lxl`*O{V6P7pH7mO((l(V>CMI!bUd@i5%dt&y@Y7>SAR<|Oatg|vzz*m4Q8+Q%4L4hA+?|HqK8c$w8#_0-?$ zF3&5Zn^&A0_>;`=>-_4G{#|h6VN<+|zZeg@iErammR>w;I;1a$m3i19;);jO@T;~K z9_695P2N+yl)~_iSMabKi7Or^k2d27;NnZOz$#kG@uWGzVxA;kApeqwf$ItW7c@!a z+B7hv9ITsmen#L$oi6oI^B5M}q6vL-2gEAUFeAcir3F6^crB4P@gl$I)8#wqSbsGU zHwT~gO1J+4&HuKd@Z)_C`+l9=i-7XO$pn%y*<-2Ahq|ap_~Yv9!GZ78_`s0!VLLHc zca|z8Ahm&J)fXdowx8(TU#1KE>@&l$Kp8~G)pBoi&Q@~Dh_nguF_?CnZS{7~U z-Dq=}_n0;x%eT>=;-MPDo!4 zEBEy)iL1W;U4GTq!ef2?d%UN3DTU#EcHockS;-d@7uhc9Uzt9xxkqb~mjKgpXCGJ3 zIWuQ>s@I3TjIiy54bHDM*q0e=$xMWF;mqz98-|YlCwM!17x>d^{j>~wpK;8ne-x#F#a#p7KxpmRxo z30%(!4qgPCy?l3{h6c1Bu}s=7{t%JVv3gg|KE9oNi)SC-5z3> zHx>ool5o{g0j@l@Mr#y(bCwxB$mkrHUH@5Gw(GV*hWP5}99N3E&{Qw5BXO*}xzcE* zVdBrsm$i5Hf;2qXho;jfFl^ZJ2}$$J%-@$)|Yg6pEnIbiwNG&j_t2@WsaDIa-%NGF|~wGS)d zio0*n?Xo4|j*N%C^LpW#nIi?b?!-Yh#s3!$^ymE?1!w zne1_P8e=`&Thl)|KE$>xY&QG!^=P|?B&E0ZprozM)Zi(E)J``2U}yugr#Z*%B}_5} z`1^-oQ?-AH%7os;UkrkWnQ=Ni`|#zdmX|5Gvp2zA(ZL4dx35bci+hZ? z_*~b%R+`rB?>LC>U*W@MgFT=5H9Kd299-UBW8pCEoZ1M9w%G5??bm!Cp4X{0teMM& z^632Nu4H*;yvb>DovaFQ<#(a-^P;BDHMD`kF3!SqY|Ir(WAQBL=(Dt=J?Ly*`wtEb zG{*3ldthomQ(75DFF0ReN%h*-ovydTE&hWPK|cE&`Ni^?zCX{O2a}3h$DufV;E2U*+56Gs7*}?Q6jGl*4E|+E$P4`Fx$YlHI<+ zuXvU4C=aFm7VjxuN?~|MHs*CwlE1z{T*+>d%@*8Q3vXkqurCtUNtooiV%V1mlia3s zx3m!4X>+CdGH}UkN)yACk7PE*KaOe5ft6{u4zPT7hcv}7rP~wIv8}^J<1Bs_SYM=< z4ElUkRy*Tzx_B!0)d3$~C0M^4nqHAW%1#$1IcXibLwVZ85uW}c9_>jN@C+956ygZa zP!Z2%vqQSp(xb}Sb*zZ1BA)OyiufjuOylRrql@~<&cdX1tcWLkHx%({V}lKFE1~uK zO~vw6#1p>RBEEj6oQk|fOGk=0+r$;#g(BV_%&kJTt&Gb>e1$l|qxGlgG;J50G03b* z1Y&qj6!8?|h;DBUc#dN~G{1D%?V%aHp9<-VVM=#fNGCdWh6XZFg8y3Dr-igt;VS<# zqx9EKbLwn%+MCBjegE7DM=_4pQr`rRTT2BFt2NZOfyHa6bKpGZ$7iAJv^Du??(SlJ z^&Qga`4@h}`l>C@zB$OhN4u0FyI1i(FdFo)YYTnML*Z&YH3u;~|3ThbFI3~Hi$yLsXH&s`vIsFe2wo0PwalBJQ+uZN<2I)Z zGhE*bxXi9wVx!ATUt|&3`{4f3>B}u|MY9=4j>fL%ucd|Ab#XZQ6VoP9)Re zC9E2JmIX+6pn;!(NBOlWduqQB&g`#J_!7);{dd5ndi)~1o6rBB^PTin)uonn0M}!6 z)`VPD=M5pA>5kpRP2BgMR~3Ilaz=)Co7&Fgm@|P(#<2W0^KG(E=Z2262#a~G=xhu8^q#==M7A;-5NYacj2Ngp9V2Vqo@VWi`y!w1 z0x$R1_N>hGW2WNl3EZ7dHM;HWkgxL2?y+saCHw0-wBfE6^z4&0RSfp|w;6BRn;Bon zj#igEo4z#zWM$t@{;@2t?|buCCCkTQMOi)$E6Vb5SS-s6Ze!pa-s3TFF5gDymR@6E zCvZLGu<{tVKXEk%9>A~0fbiHD=;S@cODPQRo5L80^|1FLuINy*i)4e*W8si`nD_5X zcqieK&8xz95Dr^#=@;jh(mT{Oj_ya8$@OuVWQAWQ%+Ybyaqc|hdB9^D77ggGvo7Fz z`q^y@GC`EmQ*Z|GG*G>-;&M$*zLC(vwN|zwtP09#Y8U0Wlldp_B;92fgECwf2-hj! ze-8@p#>1t(JDupSXXxiT;l?5x^LkSa2&&%pKjFDdjb}=xG5%c#U8owNP zdusDM`(eb1>0LCdJ%%fR>xuRlst7a4H&sCyojnt{Qqgg3 zGl$}wAX^oX;r%trD7@17Rp?s!CMMW>l<>^~OM54^lf53Hw70dr`!tO|K|{ys^=&vF z74kRPqML7{UEzNuf8zB${OYL+`>c}(L}wk_l*Z_~pZA!q@sg9$wc!?B?~QP8Adf7p zOxOE}E4m)!S9GnoM%UNyo~ES~hIgq#Zs{ei z-M_4?Sjz@|K*9rd&UOPoj0b&MknfC zcqqeErfMDV6e`?9Om2&7(zItEqzLPQG4c~V+nUnX>8|;0xTr_4U!p?0rU%ka8{?N-#?9(pQW<8hy1XyD@ZdVqkPz z5k%@x?}qBlShVq>?@9h-U-B)^BkIxk5ZuPc0p8>BagcB0`<7ng<2vAa%3#;jk?rQsLty}INgx=A#>!N3hPZ2V3)=K5ZLu z$p$jgaSfonv0^G;X+HwG6Ye%!abqI-tuHB){L-$)IJO-@DNAS7Ka1 zxoebrF0`GJu+H!Gu4(iGcKT$0;30k=D_kQ5Tzo|^_Oh-Ybq>QlOlP}TbIi}m=*RE8 zyYcoj3bg|p6MrDYj}7sWBT@br#&^pOjF&H#4KPZ^IrvTV-P5Rop0IB`g!vttc)bJT zS6y}W`qGjFi-+h`!$WlB=#fdI0@z(j3woVz-*EOea=4lDRitutQW%sEYHzQ59$y=s z?XTxxYClgO+iFLndTuJ07p~{GzOyP&4ANKAs25xt!L9`cqIFlleXD&$ql@Gj^A3G4 z@uzvW=VXc!#AIUs(mNryN%1D{I6RUs>nZ%4~e)IIt8i zr7*mj17cfT&9N=w+FEI;<#r?7T74OKCuNcRXK?YEW5DyR=I7iKz+)bx_Sc+y61bjd zou0OLRr^=(RjQlnORVSISuE!~3QbZK)cWu@$X9)+zRG*w)R%MTlrI8 zJf2@Y<*;&JoFcCJ;tBk!FNDYX;z_)xcqxV9?Je|$+V+XWt*VpgS-Ozh2#?!XZ6!O; zCj-~x?K~?nv~8=?=p#m#R}r}8FtrOEl>z)1Q(d1*-fCylscDU;JDcytui8%QJjHn$ ze>zL?^ibAvSk|s)UoAXUf915Bl4rKXTT6b9e5S{2SX9Q-mvdwCoVNHfe}JMb)y-(@ z`Mk%p^#Z<)eyj~dTQ7`oZ=hURSk?x%zxmt56>YtUUu$opt(O2x(^3k<`%w1hi{tzm z#MLRo|2OUVdNb@v$Zt`5h zv~FY#S_*p}VY`(VuJpJc&k6C`vk)Ir`SuXz$~T=aqspN@O_d`H^67;0Y8U2Cr&~dt zO!Q*H9Iwg<*Xd(k3OpW18Uy!W9K8&@)ni$~g zFF7G8*+h^wccrPfZ_0yw`fC11dff^zQQtR$In%hWbq=C>o80(nSMH^?#fG=reGT7( z3E#R*VPgKU#)f!xjXJ(Is^d+nW3EubBNdeN0#yx-F$|5buG=WJQoKf9$scmEY}W<$S2g zSF*d|(=9FY=T`G!`SYv!u*)L));cxDxhD$KdX?GDc{PaFvXaBMr~VE&0Z-rAc+pwT zKI}IaT89VlX?D`i$G?I0xln1GK_UZu-rFf@&yaKXIh#?zICCG2KKD*9&M%y_JQT*+ zdrqfMv}TSfiXSh6H-OJCmEi|Dr%vSNniHpeSrz{V_A1RnQso!yrVK_Nd3}Y#XOnqO z?_hayRDRR^>cr9>(Ruipb$OglZ6vK-7HF4YOjxmKbL_|9%TXJnKk!$2g!cR++H5U} z%s7FIzP2+)-bk1|YxwWT=*#g#sX9t9(W=P>+7J81qa<(CkU%^pg>~_og^^JR(>yM? z&EtPY{_#BiCcbSRxAdCF-yF(W4$E-cJpSjz)ja-|fa?X9WMz>rMZdsa^_&EQC$dum$iy6a}L2vJ(`q_>ktyuQ-+ zJNVQ3%I>_ieSjV+s55caw^`g;^3G7!TwLm2757~sZaFOLE75`Q8y&od_m~de%eVEl zl|yv!z6kdQ^3TFD+(rj~OI*>x`}wuDFnR6+z|ypo!tm-0isU)bp6&Dg6>+5x>cu6| z($v^GZWo;#_1C}^ZSVZj{OS=OAUgUR;E+`sA6MNj{=0!|UpI|UfN19LfEWAE%Xk|) z{uf~}?T8+bx7gBQ3!yt;2&zwf1nJat?G4T zF?rC$7m&vK_zw%;skU|!g_Pw28qI$+;87Vr7T$~Nk&giXIDbZ?s>_G?lg{!J{OS>n z3T`y|Dc)lm{WRZ3qn2JY`i~)fIjl^hpCPVj^q=^(HZ>akXJ9E_N?~}bbe5kau4ok6 znzd7d>L=0HX9+9zhV`=e)8`0}X-ssY^XQ)kt|#a$3+-(9A@!5s)=yvIJ?^Kk@@;)#>D5nP1FokWR_>>-6IcE8 z4Sv;6!ejmPE#6bSl)~^{U%^YhOkDL7doQ^LP(OW>uwpwHANV$5aUZE&)kog}t|#Fm#c+9u7(o2qkD zjsI0$E)CfVH3dUZ&mmcK84aA0I`7;`iE&C!+d`ERA$8_w*6{iwNM)D-VW&DmXBDzDn){ z2RQc$aBDa2$0PWCfwQW{VW@9Q#oYmnSh!!BnP1gLJbh$&-cRvyx10rLVdoI`XuML% z8@k0m7ueW5*HHE>&4v}Z!=-yJIVUuSRN);^l85N~EDhDDuWnFZ*~O8ryX?c$&Pbq% zqMhMFm)aQL(7mnHADwKxIkU93;HAWTQQvnQM=S zd8b+y_VL{u!j>)my?TdIm(zKu=tul#JNaquGJPM#=V9N!aHbWy_M4@lPh=}CI|7TR zc~ta%pQ!vn&p39STy#d)PxOt(Am5&Ip*_96F~48CMu|2i^PZGL{(`Z$I@nsdWgn+) zT;B?|)#+x|a1wev8JB8PEd($AP1$BxAHc@gN#+D2v= zuJ;d3OCApHE!Ps~7OA_7xtRS1;r}#Y-s+uV_BrQ_-CGAmWy4 z2+e8z@?gT^c~R}7y}FBl>&g2uvew9)7#T$ElRppbR{TMK=xMnNd>gr?bk?AO?ghsO zv+YR?;!%n243^fsNC3HLDHj><9!3exU1cVc|>o|M7__A#PMP04vabdPUBGOoa|CdlG|?y zyh;28U*`UL9H$k{bh8^1e-7RAB|i^&el(lT1Nufsozo3(Pjoe*@4wyD2fL8NGe?G- zG67TjiNwGUStR?kmU6Qh0CVi^}0kh_lpY!y)9 z&^W%Fa%q0j`{ys`_qJ@$_j7!Ifxk211)KR3pU_%C@g7Dx=~%7|^)kJT(sU8$i~Q=Z zD$P|PjqQIc5A|Jj{0+&~A%2@Rm5yHzx0Vorv=)lKtd5T)z18ti;obC~%C{R>xtz76 zC*)fW>qx#H?BS}y>>gUHpS7dvS&qLU83_3l3rQZ~SoLcJjqVM6-=n zFf?;>*13tocBNtFqrmU8{~BT1^B-@{uG{{@BY<5D%wMF(MdsYptMy|q@ZG>gzT!)Q z^#R)hj5XzB5x-r$eqh?yALMMN#oG%^`}y_NaSYKoEea1;`a$5`z_m`rLCffz&VqUq z0*C7w!uglfmpJT!@=j@n01N`7e2c9md1{?M;R+ebr0^la*(+fobBsG$*N!w=eqB65 z*qF~RHaT@=86&JgSd}fN@>RVK5?)`OILUPZ>428Zu%EEHjc`|v4IKx8#j=9dgTI8V za2;?x;T}CpHEHR^6RPE|df&qI>MH(s=Z^)oN*+K;@)jLEhCIY4jrPSKyU0_2MP8}6 zH}H36az^s&{OS?y3vRSO#d}QqH}P%sZRth((;{+A$#HYQ=ougHVe5VpVwG7&9^}(Yw{kOORev(yK`&nKIPc28 zHj5x79eS#xz$T=Bo{NelYaJ!dR^1!uum5ptU#;5~Lfut=w;pokNIjvXUzDJYEjNXg z!D(0~o7F=e$>F1+eDcGLmFxwp2IA|{I9nNdnbNj z=KPV!{r*Oh%wA(Ts_Vv%V!8YG2hTZiWdQp8tL2*d7z_%XDKfTm2h%%!7x7{Mty<-)VaS*mht;t!bxw5r4l0nD$I{ zSG)MA`1&be6`jaDw4vjPgvC5WbRiw-lYr|9{yEDea2mS!Zcd-KwpiBZtu6Mf&gArV zo0GLgt&RlL_?FHNz00CAE8sr+A*|~(<60OtSc?NEP|a6_G42<8jy0v0%jsH#6F*st zEL1APSdT2mIzq+o1g0~ZG6+z+?l^8!5<1dh!1Yvr2GWujw{+{ZhC#e-_&RDOM&-t7r;@~DAG&r0bbN?UJfkP zZ3cU{PH0gQTV4(2y^2NO zjPy3=hDbLyI&_`l`c&zc(r64lm3+h-s`+oDcYJ`eb$tWg#dR`S0DvXP7f%m(ULEEg z*apw+@zIH379~HX(fU~7@*kD+wio(bVVe~ed)$k{Wbf6xKEE(K;!Z_5I#wEI>xGCn z*IHR*W$Wnc26VgIu|MjY=uhplRM$B(LS zTu)w47Pm_KwyM^XI!oYT)(%o;a4V^uk%r02WWFNA+WqB}C7yrv{R;lHzqkdRlOFYn z;MOOv>DyYes{9>l%t}^O9bXUL zEvMSaH;#{SU-e#pP1D$@d$)djLrB|JhDKHHeUP)^z=au3h%Uek*Bb*a+uysFD(hC3 zc{@tMYsp^CA?f`k8vixGe-heADY*w#H%(3L?U@{EOpWf{D-V2LSylj20@}WsheU?q zD))H5E;6qGdK_xcKRa!kxZal+u)vSNRsvzjAR{Z!~5E zw=wfp-s3Uzmwel}u=E-;Zv(EU99AAPZzrzC%scp1{e{QI%sY8c@lp!IyA))@c+9+o zxEeF^DRBf%f*%j(CVv6E6S&5b!6gs=74TBiIbFtvj=v@>9z&u}ot1hQa6Qpksk_t{ zcS;*>Trh{_Xv2V6f4-aiHP+x|&OYKje8=E>)Mx< z3n4ZWpra~qmiPMu&gwOCeRQFTRMnb9G6z-k1qR0_KA`lswUbvYMc7NoPy|3$jt_=% zSR4F3-=Z_oxAOR3{E5E*fnPmUVMgDktGu;~b<@VGxV7XXZSiEZthq&b+c^0+@9{YK z1m89mtc)5bpNw!zznFz(xNQyfDdK9Je41bNvEte|`3&!AT1sJfUlhhkY?t~W;!4NT zAM|J+=38qjbT0A6jMJlilrXKW2vf(pO$M#6J_cOttI;LhBMsd!ZZxL;5xDiFql7Rg z{S)wbJc)*6kNR2QdcyiDqMD2Vghw<~P0L<#>Ek35m(ZjpjA0YA0M2OWbL1;pRKMxn z`t1w6$Nlz2zOCOB@ALer-@e4Jo^n{Z-@Z&-_1jnYRlf<3_1o8YPw`R;!&@b%eU-S? zwe|D<*9ni?SnVY_?Hj=L#By4pVN6gffPH&auP?&B;>2~sy`w|SXD}|miI_svXR7bF z$bZWzY)mV8k@PjXK)W%)c2r-(-K?Em;aP+m&hG@A(!-Yd+mRMJT~^SO;U(+$e+}uh zR;$rfQ(>M{`>^&#LD#7FU3(qJZTxn6_UUn`U$o}zQi6itYn=nvT>}kylGRlM(7xj8 zK7j3o`v4g0weN<05hm8btP|^vp@H7$I)E79^EcgKut{8>4{N3Kz_CsD#I3qjnOj#0 zcD9FUHI~RGMfv_`lrMXO<74cq?wzWmpv>OMt zzCxQ2VO>r$x%HlNL+KCpxONg;cfdKltR^Kmi?yM`uqSHGOmk`>wCnfCV`s9g<3sE{ zvqlBK`c-@2{}t5{-Np3bUfnIrg%%UYOSw;9=C<-DcQ?BGw7tEHS0xr;U~qK)gHY%F zl{A^N5v|(Gj!i{N;g-jbLLS%WeFUs?awoMeyXvZ`DQBrtKQO=KR#H>DckkYlG%CT} zQ@O-sWHc_l5B71^6SvD}z)#4(5>4n^g>U8tQ1!!xWLxd0eA|PaY%VM4E%&WDs$LtC z&6~c)+8>_{x$yt5^{VD$T3AlZtjsU3#b?%Ih_(HHtL<;|bB5k+&PWFGb4CZ>HZLgN zFZk1(Q3I~090tJ#9kI>z8;GkpVu z`)Iz{3|x<&FG{K1IrU=uXkEBWnlAp>W@Q|DK6zK}m)JsnMf=dZhcc)fk2t-3=;fE) ziGAqhm(hdNS?&0mK0g=PnOslf(`ruHa`hd%fuoW@C=bvR3^6%gmX!MZTUdMTOq~(N=AJ&cFS{W>IR?95Un|* zy^(N#huZgS^3z;zYjB+-W<{3r@pZm7CvywahyDJQ_9n3L>&5QLm09h$Jt{LiW4w22 zPMdbz5zS+x z%9eh1hqKyf!bZ}e?tyqq={Jy-Xw?IxKW zM!H8B0ALAx=e$tYkwB-uu9bGN82|gdUd3Ur7d7bm;!^NwyiO-l-*p3Otg2rh7}d?4 z%OBd`z|cJHitN*usk%O%R`(4}cuke-L`XFSWc4{e)aTWwsZST>FWxgD7KeEo9N~s%jZF-Wj5g|fuS3R3--Y*; zZSZ#aesxx!u6}%Te+KRs+=UkDc;|lfoZYtgr|w2Kn$h>pWX9iU7HCGWPSWYb_$oV? z!SRK|xsUp>hj%Dkf#!HWdX(C)MD<~hOZLm!KjMz~;AtWHR=ukATTZ(c^ps)OZk4G+ zB1Hiz9GX8KBD%V*oi5p>^qksbaqpJ)SC#e@f8g1jzI#2{C45Wnl8#7uJd{7_h%V(< zPgPjak5ruQ6%TBm&U`yo;k3Pos<5IyHqOuVRjS)RYVYcl>gnrtRhzo~TBw`SC{CQ_ z5pB{uGELLr`od(~Zr~S1dG>_#%-3mqO2+LC=~cgc7)0e{0j)_loh{k6kGT5n=hymP zc_{5(U{-(G%NgD`;Ey7<@s=*?GUD1^$*P<)GgbxP1H6;+IUmE*hv3P}&gSfL;E=u3 z2d_nN#lJAbKQ`awF7hLsH02^7p@i=Ur_yRED_wHCIKs0#!ovl}Y|wN4awwN@?1^v` z!>=G*Hg_twztPLbw&gQYEm zT}`^1d^)uLu3ISYQJ3yfgw2L@>Ms`%`cnBF@#&`KR$8|-mwfxEe-=U-gG;wL0KAHK zdD_^}fp?eOdP+R;eypbkf$MoIJR|rlDsaE{Jh6=|u6D6|3t9fSQl;O<53eC#@lxY8 z`o5Mw=E8I=mcugtd2RIkF7MG{fAO`?*?(ESBg*%bAJe1Z-Sq5_-3W~UE9YBF9t~Vi zIjkdjDQ(v-%y^^OJt>csU3vdzS=~1zlOdnDOp0I5x0W0@O_@5+Z(k1NH zw{nR8&qlcOVHwRC|8Ejk{C|#L@qghl{(pq`6fdPPyj^FM`Tr1c#s62DI7nM<_DwIZ zt*-?CE5n3!x-c|{oNp8lM}l$ue+GM@wPph?qoZXPHbI!WK)iJ}TnriptK%mP!j1p0 zFU{kN4ZUgLC;JH#-=B6{5l)-r(i{XXem~pP7DWcX4!H68))LqMtj0{IL3+cQe9LD>r!j=A}v>mJ*E$*ySWBPepIA+tf zsE#8%HXpQ>mV@nQxlL?tXcy-(;8_mknVt9dFo|x~LjDF*ekam$yBYDs8pn9oqcY!` zmbo0R^rzDFs}gV0e!neEm%(o!{?mYay0__KFSi`}v%?x2iu25nc6nNB4~yq*3zLSHfStO=dnebarZSTFVWAR z1w8HI+(ewW_&9-OtoC{@*q#Qb34dEIyw~|B6Mm(AXD*Di4VGPUq78qM{Bf8#`I%nr zu%Tlfc&x{j%V(EHILhVfY(`s!+ey<*5U44 zNaOCSjRScCwle|cn8>FHz$TDt>&V~hPsba2IjHT`@rt&(JkJ6 z*H${ijstzYs%5%xE$qJW(aEt1TEpKG>py)um1`}Ot9rjGBpMs9???HwZy>{yfihgj z0-#N-+Q62H*6FgUDM)T^rMoM)z9nT*v!4jv#X63d()0*3w|8< zR?eu-AHz58;if{`fgdOb0;N-})Q#$4DY_5GsE?(+V^t>A07zwnz;n>hWY?I?IUPQNG}XI?wbu95Q_82g%cWFw?s z`P+NE$_y=?3T3~ZHqZQx6UjYp?~My*hX?xWlf&%2rSDUdBkl^NBE;_`rqL*d#<2G_ z{zURB##euf7T$ZlGF--w9lIdr6pt{ClNx)7Pa>^7*yL$XFwG?FA*SD|`vgU-PyQ;o=w1zUS&Y9?GZEHM0?WV|8A%k!L0e9 z8*EYPJwsCBdoCD#tIzk7E-BeRPL1@BPxVbqP2eCzr{S??X-qNk;>Fm_nWqZ|YZw>5 zM_Dws%on=mNAXzc^5Z}8Uaf`COg1I2Q5tCBwIQwEe?PpNob_tH;fFeL(bv*h*|qW3 zI=8Y)?p2$;j&SzH8q`oYZ~ljrW)<^2M&kusE@3^Fhn=X}Y(Wa<7mq^p*z>i+mulLLYCE&10)MoZbXJ_Q$lv6XwLE_GV!AaK=eE`|A^95eLn_ zh5MSyvbfcRw#l{3D4(~e2oWx|^IKHM+dMDZOhNSh7yM~YrMSlthyCsOzSQD@`E<49 zZzJ84(im@kJMS@Xeh1&ie+{>I^IrkiQw}Th=64cTy!o&BwfY!u{u^K^UP@tjpH2T1 z_a5F#+@0hp9m_&<=`hFZ-P-gofp-S@)Kc?!e9r!DgzX~C^(eeVYrA&=Yug*d5wCwY zabjMtKGhk;_W;*(?+0p}w#DML#BKVtnm#b=M8<9mjt}(c#-5zF`>KF!47`srX&knZ zvthNm4JJAWhxAbfX87J8@R?mvm#eWml;(Ki`_5P0rzJ!>7s}$3vXNx3852o=Hbd*U z4}`W-a(v7j=km~SBztO*bz$9EK~_LT_icECre+yI*Jn*p=vz7mQ+m5Az<6jgRnc^l#}kHa-emPdThSHaWs`@Yvi~CS;>%-6S9{1tr`L=$t z^yC9d`1>Ji)whJO5K;GL93 z{TRa)U%buj;kCG5Bk182pQVV4KNGkYkI zpMQ(@xX-`MxAm*yeUm@+`FHr$Qw}Tl`M(fXeg3cfs?UYT`uyK{Pw`R;!&|l9_&4HK z)Y8pC-zBWr##(Ru2XH;v8H0R#_yY!cnA)g%esDcJMhmlVu2bjSCKxt3^T2FO-cJ6Z zo!z-8+2X6sBx5M-4*oPgzZc3WJ}S8N$M<=U`{M_ETbo;Y^~VoG`f^ygKYm19^~aC- zReuPN^~XG@dgiDOHZ<$b zG*{u*_o_|$SU1eG35kByd1Uo<>)0z91zpn&mvanpOUSD8)$H055@x+TpleL}aPN|? ztp(rCxmIUk;m+?VFl(zFNv4Na+wZI{o30yjZLT;ENbqL3(mcTV)I>V(yV15a%4Sa| zy86b@6qodJKBfo1nCN2DE0B=g+6Vf!tLCMwTQDy)#|FrMehpuMfx*d68!6A0Q;ea| z4{8T?vlg5b2u-N1p9&B;Ftw30`@Bt2U04tI;#VQP5Ypb2Pc=XCr>;0BfRD^n$g2Q? zfpTc9Z&q26^TcQLZhU47?=hdbJKx4j6z^{QiO+21S5G;t%xCUFT=AK+__e%^&ujyh z;-wUZw~FuIleiU?Vh?*m$Gr$E@)Ys?vw`c$_`cZ6U2CV2(2qr*yV9W`w|lq7fvyGH ziVY(`#{#Uc86N@SbsrmPp6#JbDwnfyhMqV_#ud}t2&Ai`dE@RI8LrhzsB4htbQyN;b3y~xPyE(cB*j}Z+Xz|8l%HZ2Z7k_Sfz&xXZ3oq zI=-aoN<`7Qfpb+pH(r7bC}kBb-#?U_apdOp2k@;ip?O_tcJilr{g?UGqwyxVjkoi7 zkH=dV-!`T!y~f)EL;7-9dA#i+uEyK>{Hlz?W8>{Xyr+06h2gy(`qI394&gcnCmFYs zcgf0V@lxYh$+#B)Z_{9IEM7=>JQmd#n%^JnaHo2J>L$OFzBnt|$J&%6x1Sxx#jiNr z{wR#j0#N9 zTDY9JqJ=B?wR#vWTnQ{qODPQRp+F0l$D?RELF@TbF2jjRA8$eRatJuFfR;i~}o}P3wV{sA9s5ihrZlg{s#}vXj@^AA+F}~8~D{@G?s;BbR-%T z+-P))G%=0d#CI{hXmq*_?z`7A+(x5^h$|YM;n&JH8>u z>ia4VK^r>O2#fnweIr?J-QiCAwb+nwiXzCjt*v7^ zRkUQNd91nM*7*AF;I_ck*3A4gE{E-ImGgkt5*_cz_ENflZFKq;zm9n|k4Uo#3h^f*nF} z4B^8!4Zgv_x%V`J`*JG&LRwGNXS0htvn)GWr59|AgSDKEnP5u0)xl6NhIoQ)bFjrZ zcL+7)FZgy3UuIR9!?DA`SJ$Rj)>?;d_U)zkI~}~q1eEDzIxX(Z(OleJKJIE9_d*AA z*)bk7ycat-o}<^wVY^)z4z$;oSCz=>xhI0-?K{;iUFmVn;_8;zSvff;tu_VjeS;gG zZU?96NMP1Cs%yW&XYx9#L4z+&yLs5~3^_PUOpd(Abslr@mDQCQWssGpk;0Wh20!TG z*bwH+bAy93trp-nIXKqW1^BGN3*|rJ;B#tdrAXUt!Na-MNZ_nI%ML!jxV+eMGQ8Dy zErKfxgP$yt8~?;^4E*L+jjciuV=6^NI}4mUtHbRSwP>g|+2U zSznum%{CY13?LeNuXkZbn$w=FT|c}CTY)z^IMur>%j0bhc6?rSYt7B2WqM}>SD{o^ z@r8Fg_-vC)rc>B^J#6-tGLwZcCuf!OyyOkqa*!j zRMA@R$L)_C1em;53h=lzNBsun*mA1fnRH~eVf+==F^O_lh&UlF2LY2?BmHK;Q>_!4 zn%Xxof^k*flw9ZFdeJUHs)QTP#|NDIgWf>*c(5CYSlbFyqNl3>$DRf&WBmHte5rmp z<=S~U+;gd05Rk-!AA?(hf0!o_2U}2oAyZ?r*UddwU3E1V5@5Pri9?NWAw|hbDdBF9A{k5o7wXn-tTy0!! zOFMN?hZCl}0UVql{v;LotG+KFAB}&r*Ym!>8u(2PJsNoD;02-yU2n*39xQTajwZLy zK@T;W^tVGOMDyjmsFLocaXaazib;D@Tc}Pi4t08S;2YBSC&~2u zl$XTZ_z;Y}9bnUo^9$LXOxVlMPa)VI)u0damftS`&fL1zn!&rJ=R4BdZ&Q2~Kodb| zE7_}V7o3B~tjBcf#^rehgKme#4>(>zS$7JyB&CDD8&YHOrBR!9CRW2FSJyVxtDVilT8jfOL*wfFA`U$p+x_bd6+`pfM1 zG?oRovHU9Dr4)wutw9eI z`+ogh;+h@a%!2N{4BqzLm_0X9cqe6&y^0U_F7c%YQrNCsSc9WG$lUq2ZYCbLVYK_(d&Wh>4!51dz8D}cXqBrdrPv*jn8$w0laF%Khp21 zBzasIOI^y0y)&bAosV{Yb)2I@Pv>u^0X8!~*;+$!@ISJ83n#_`Q*`4&@a=*RHW!xn za<(Uo3FRTbD+0TnX-0Zk!x7EjK`;E!m zn!Br){dZY0SlcRWD`C330G7`_q6>9xr?BlI%<1%9P$p;ZOqP_L7UJpNyxO%hgAcWi zdtXeO7)o!7+I3elh2JHX4eol`o(9gcdneiB_G4!GZ zH@5s7>hks&+Gj`STYF1XCeCe*3{T-8YV^PelUe$%JgfQG*x2yYf#EvaNJwiF4R$y= z!BznT17l3I{?^cME4g_i?^j8CNgLf+1c=!ksPt_vxIe$ZeGeF{Ssx1S&n{@I*-a|0 z|I`=TlDXqf6GHx~vveVE%h$Pov@e)pPuZ(4@AE?$H3uch;`A!>v8|bOw!$BP$ml^n z-y94FAxFbF^XDoUe>%1vV7@PAW{wDk|0Ju2;GC_fqhU$uQ#=Ddnq%feOLdSP%{!tx zxG~y5ZszJmH$20;`mK%bQ1rUM-&*igqRFQK%KGe`>a*L#t2(yn-R75f@gC1Ff5W%U zA&U3c{Aqr9H@|wyVN|3bE53)gnqS__ujoa1Y<~G$-c!7k!tk1H#2)n1((j4azmK@3 zDiJ0=|9-+^KCd>CZN%RJ*JJipg$8NcMh^)0#)#hj|8Nh-n=TL?oD==;O`N%kt*fX88GKU|g0{C`x175!MnIL)Vs#-iXh7C*^* zJQhF2w~aSTud(=P;Cjko<+1pW#MM~*48IzS!ee9cv%IHxDTU!ZJKT>L%X%LnuGu87 z2mb*d1=dM9B;OfK@pb`|Ewa;GIl1iIL~%`~i{T#w&NigCX>P5r%&-QKd?-A-10GKQ zpzQK+;n@@7$MBB>zcR$1UtL88@V1b`^$EhR4r$^r@tA)itUy7Izx*@sn7@ej?g4-K z9B@5Ppprq3Olhr(_U1Oky7%FN-rbE|xkqZQ?APsQ`TN>8pohSRbY-~sl;1BH#aZxd zI@buUv*EJa)O}s^T7Smqp(^iJ7 zJ@zE{iN5U8kj&foSlzF*{&PY^)+bj7_#pNwP)pj5-AUh(=FHIv+hD_2d)9);% zcfof!f3wo5d?{)}Y>>lwdG6w2DX5DFCW`IYR}NEKw$Z`6@zk?|W%?SsIe3lo^ek1r z2)-O5T$;PSLb)UdRIg)fojNvp082P6WG3Z`BdkedsNwrsz*nswn&>kX_Ea(%eUO?l zqw;(sq}Tg5!@Ferq-2j(mx-^tXp%W1eYbLaTWOtaUfbs0siScIOTcOR2k9LD6`08z ziu)b@t8EyUZru?k;D@}D7IIWPP|N-54`n2%PS=RXxaV6{gm|wM@;+m}UQ{L0G$U27i?-}pK zvmgIXT3Yp=ggCk6KM2!u2mQ4(f0BH0JFx8@HprBT??x}H+yPv+PQ;z? zqK(&Y{TFb_QoyCUama;7@jE>{cPEVGl%EimQI0>S_cLIzj3V08*{h!e*Avd^rSw*$ zy%F|xG9M&iockeO+|?N=ZQ+bOvOAXoVtyHIsrw3kLH_yu9+HQ7MqyZvrSrz-B%Awm zM;Nk+Kda$cXgYVD6>K3ir*sl;TN2zoyJIV!cM5*5l=t?mpD?yf-jd(W#IH%Rk4WJ; z+jyI=vl!4Y8nVFU{5Y>3&#YVAHBm5_^wr0g?PHBRy2yi}1!;KsuV`;CpHG{)w`8H$ zUm|RC<&I=#S$?$iy#YMvyxq6-df=;VjLPrs*a+t~bh7u7D_n7M5K7f<-{UU$bg6CI zM1JDA)%%s$-_5kNQ;4vJNU;~eLX)vf@haddi^k>VfU|l%H+5k2z!iJsAwnmW>6F~J z;n)&zXpc#4^*?Ig1>e5U!PeQeZ}`?ZmR+1DN^jD!7N_P|Xg9DS=E7v#&EJM+^CF{00Q zl7rf*2L7`n{C3_)-ah)d`I>%o=YQ;5_^a(R#jfH_6uTxVc$;BcMQKGx+sV&#T6(v+ zRwF;l$Bd62gdhu(k7+Q9K_1CE0n7Zk2;9k-qB%Jv247LH!<#P;&&4sRS7qo7YOHV z>g$eedNQP-?ak`w-41WM7T6R?;(Gc z?Nmo{yX}2@k+#7>hXuDoB%Z4{o0IzNLX*R#ORFeTT3iW{t+TdrpDBAsvvH`U+s19_ z$I!jZ_O8zy#nz#CXUul#2b9xfwvOL{PT@oZyPR@%`uvIL5h?$1`t3}}=!&QvU)52l zbx&X4=p^TYup!btair^~0V-l|6+wX zgHvD5^XTi{=*N$=j-!~FWy>#vU&>q^bQ-g|+d_5ir2c!Te-SQ!R97ZPCe~)_OWNL2 zT*0n(u>78v;N1@HmxdZ2>=o6njQX`-9{hU785IXYQCp`!MygBgWq73BecmBv2 z22yLd`7+wvs=dt>F4vY~FKUx*$r4coolkWw!m&NU>q4-*63>uKbX8PF=NHi(i{z?Z zZZT=3&h6mg6>v(8TwFCjIZdoFa_>*qm)~e#e()-6@ zMZJF<*6H}F=ikM24?Im+QSTq)G`)XSS^n@r6pp7Vta!IYjMMB!%IUIsMst|b*c>*< zdpw8L`Br+ZuMM~6uxo(pDTigaO+LDoxSGR;__aQH+Det(F+IDKNs zyS4JTlx8rbDTeJMY>2Sc=7Ns7xV%;Ov49I7;zwft;;Mfm;3|eG-N7_nz!=J{bT_2w z@?q+mn?gF~ymj$$wSoF(Hl#7QWZ+@ol|$O4+t4vecr2%!4Mm-kOvaDnANNIe86&Qq zNAnx@WBy0{<3{+9)<#ct`_3NM?gXd8vT?z{b)-Jf&#{W&YdE;MaA&{oJdXI>6LYe1 zHm|<+{wi-jHqbLoXC6U2i$A~V0@1UF$2LG+6z#R>JUFxFr>!Xd>qC5;cceHj?C?0Q zZJtbRf*PT%RLj?QOv!g0cZgBR{q?>9O)Uk8%Kwy5{-SKB^)3GK>UIaxI^WwO`wGbd z&St4#Gl71i(q>|3h0R1~WHX^P!kP5b{-_Szp``ue!G80?XIsb-M0L0{*9Y^?l*H!3 zjmeUeGW7in8X5Z!>@*hBd+`oN`Qc|kchU_G4=^LUYvsMZC59+J&ErUyHMMj0{)52kyyQ(dpf$Wjt2zlai$jq(snI_1esh-k#-U^HIR+Kuh)rV)eOE^|>vZ z*YrKbU)8>Q9A@*j<}Sf)?mEPKJa^6TZS#|**W5J=Tu(WyJa;vTtGR2AU-g0T*xYr5 z_Y^OsFuXshn7eKwuI4WB{ORT8g?UbxvSe_>Tl{dE@J_-tS5$>7{jQMySlAA>behYQ zE`}?<<}&3s&xuBxW0a5PGR2SKim!Rh&q+&%7x0(E+^E&CK<<@+s`o?g@*Ibvy_t#2U zSvA*XX|gb-(_H7;>ExOZo2K34UNc(1-!_^aZ*ahUO5@y^YZ zI}R(Zi{da_7l~&JZan)q?=jCl!ME{cOD~>%61bjnSea+vLR|6e-{4n$Dm=!sf0OqV zFQqWNe}Wt!otf!lHAYv7Ydm`mQ%-rln_FP{ALQOO!aFIG_(WCsI^o8%;d#LT-jBy) zgc;wC!!+J*B`oei>3<&wEFNd-ciFB#9=M*!cD-%Cn=Y=X3yAicoUN+q;+_z23%}9l zz|c^AY$Eg8^+zK$)n?*21Fz6_Aj^^=7s zqHBFWg}*Agj>C#{9fuX^Iu48JT5zN5-{L){>u2(9v}@@_*Utj3ryN$M>t_>Jbp0HD z)n>wDbp1TuQ@oVI@Lp75ulH2q8eK20I=|V=tpz8K49i?hwEr~XbW$$ScDp!FCr(P= z(hox>~(_eDnfNWEA^Wf{OeGKhc zh+eiOMLk2>vd+|7>&6$JCz{}*7smotkKiQ1tsh?ot)#v%eLp!p@yi|Ds_Emt!om9R zDe85}zvI4B)v!C~C|$}cf!o75$GdVWheJ~O&8v4bCRLADNA>9VzfzBsHvXTE$=BufliKTCBDrLJ z3CGo`bWWoc$b}-Y%icUCG%yUz{ujJ6cbtin}{ma#wFljuTG7_Glkt z#{0(>j3L2#mpgBl*y0N|H-cT2tfoY5X|GO}ayD58?@sV|5Qjwh^(W>16rK4S8E^kGSpv&%im{?pj}iRJ=VH7!nOHn%q@?>HdJ`=;d3=yG#u-w^YR z%BnnOeI7F_tt=1Chukevdu>E#{=PS_)iR6OO!MU--N%uog?ai6JLN&w=^A%Hj>kLj()+=I4!I{j)C_8QLNTxKoC79By&EFW> zpy1C}TWx8%yh)=L_Bh1*wu572 zf^mV!uVIcb~&8R z0z35&qOz-uvgc zS&YwjMg4Q7vsv@yXs%rvcx(3E%@~y|E}gCN=}wZ{4+R?aykTka$gH>N{1k%vR-NOI z=J6fa5^PIW({s>@)9HKwU-}DtA{Xr`8c@)>E4o-8HruA33lU}pBJzXU)ObDCUmu&zbNTj#allR zm6Q2l0&8x&yfo)2uR4H|(cU*!*~Q0Kk;W?pEpyi|DVfIuGW+;AB^l@pySJ17AZ5)K zy@tq-ABDl+E>U^Z*SeGQ@1wf0rt!w=F?Kqn4D@wU`;=t|W}C74!GR%9Dscm~3$ecY z5M@!{Ron5%kXQm5|JY(~444#I4L6)02{_G8+WXkaah;Sds`!-lM)36@vF(`gt}bA* zFN^t~{AuiT{Kb3knVa`(M;lWgi`tpz=a1KTvPgI`%6o+$SLAM0M8t1+X)+Sbdg?D1F zxP;KOGO&CshVSC6=Q5W|+KiC#ZSwT&*Ug1GPyWfMtuOX>Q`6KF9K)cIbvbqT5{;N{ zTWwdgpYNnRW{<9Uwg&D`N4TB5+RJ^_y+fnDPG+?aFw?$m*D~$~w!zWSYf~HK97N?( zpMQqD)aS1YJk^(R&7E7cwvo)SFE-9^P{7xjMORbe)1gQHAoQXjW=*yz^|AO${=H*!J zS?T+W{8jA<#9_84pgk+WO}GCQ-Y+_(HudM}zRI`h?=8J_`(FdDryNG(GMDQy8@aC& zSGxUg@M~pO9!mQyU@2ZoVR)~o(CvSTxTf33x@$!wBz^vufp?Oh^!YJd@pl2&zHxjH znBtrMK87p4>F#w8*a8M*qEX9ZcgUj{rgWyekMAc_KBl*i;fjBCC|7Ljr}*6=4}(j` z|4rZ(MBw!N-zF^9^NX&|LeKvl;CkNEqp??&x;q?^7sT=`n$Znobc9v_7aHc9SSQs;EtLq{1m^bPB2b4*?seZYu zr1*@BXZ+_!gvb2n$9x-)vGn3UKM8d!hn4xyPl+r3^D};}T*iO?8(4~$av5H&WwdAh zeV32t0YBvZnG}1XxmIin=eOtQgjY5R-uAW6{R_h5u`1bA{xA%PGA zOs~_O^hPf;6No(N>3({qncnhr_bicRfDxmhBC?5y$Rdk~0TBWQ3=jla6ci8?5s*zb z35bXw{J+1dI``IHp2^_n_5Z$~_a;5hz2{V&+D@ISI(6z)-=4t{n!EtW+Nw6-`MR1; z@4m)??&kdL!G?4CvC7%20z|x{x@{L7#v`?>-mP6X@gBG98GKvYDcnZ>)UKQP)lTKFsge{iG%l!>)cLNux&*F z9t!e6xG*n%G4M_JXrG?d_JEh$HO^HbzpXyAGLIgpaZKyw^j&;X&0~4iBvJv8@#=Qc*>a+lJ%wAMO!!;< zNZ%GM5yW`)-hocFZ3kXdwVoOr9>$1EvM&0}@^Y?dIDW5fdvT}Fm))zPv#WyLk1*or z&D4v+-4rr;()K4E6-t8`Xm0P+mWnaHq zV_ig;av3)z4+?pT<7ymKT>UEU+xe)9``{4we$+QQBv;=myZBu3)ClEx8RpP`%%_e@oVCynoRSBJkegg1W_qW`o?zNsaTs0e$cMc6As zSgR*1uga`CQeBnvzcG1Kh*!-o%(Hq%hsQ=IoDcH!N|yp`ci@*tLreS;m+dNG<#cPw zV?w$XR(+_N_iM>xL)cDu;0($m-c$L+cWTd5x9J(l<6FcR@10Kku8O?wz}IzExq3p_ zSUxBXm)FWRXixfD#Bup+5ob?`Q`O$CUslH3$f|QoYePKi7it6kZ`m(~ zLwJp!NomatUrkJ2H^hbU{YaqrYj@zKQR0i2iuE`Kyt?nUCr=1z7UR5yjJAq15#ksh zim&d*TDYohrwU=kv(dUZSoOutq14urJgIF7%Fqu;7HvmuVPMLHIj z#<^NDR|u z=wiz8viY?2U&n*ck&MwEU#s!3S*WiIXamJ5r%_AR3Sq@ht@!*%MOe|UqI)cawYs+U zt*)aD$xR`AnO1g(UA0aQiNdCmY4D{Z@M5M2+?}p_pGI2hqc+CGeDHK|`cpou=K*IV z&j@*~ivK~z3jLib{xd`T>T%f3(cD=<(^LCtTMWv|@@#0SERsDZ!@KdM^6<;R%5_>x zo)hw*b)e?Fwhp|R_lq4pFJFEAF|&W*JW{Iw8YwDY)(Z%x1WT*7J{_&k1h`&PD|--F8jYapRilWhuvJ&unGz~!25$&cLF>&e-L9VSfGpbmGpxT0Jpt> z+ZS*bC=bFl8|(-gQ6KL@aOZ<#S8uJk%-!2uw5>C4qPY`X2e`ha^~L-|+sC~a{EiB| zrF#kZox*bs$V#Kj=}HBYj?=^TIoQL1Nw>MDvDU+8&HOC6)Xm^lHsPh;EaEMlUErnX zEaIJOf-YYcg+aYh9cG^oa~WZF7s3Rm1g<_V2j3g;%j~px&lLSsnJ?QT!SlaMBaipx zyb|P43GcVrt*i<&)*_6R_iDmSmcoRb23~m_VfI^?s7-eRzdnVt9U|wazOr2zyTRX3 zg%5S4dYmodb&QIG-r|{F@P|A;tmt9Veg2Lk;rqca7=Cr8Iq!~b`T83Gw^G9Sy1NFP zbilOno^?zibb!k0YzW-30?z76={?os$cVffNN13xccO&z>8W3w^te&%`9cXj-;aR1 z+2hP$$(4N^`13qG?k?_Jh2?dUFwbuh#`3(EFfa6Be7e4Aoj-cj;ePNh_4sh%iL9P{ z-kt>R<=~u2%EE$^5Q_7Qz+ahz`*PNSzeey?f(9Bl0DHZIO$`oXMm~*mNZW@H?oD~z zKEq9ey9M0H^4k2|@r>RK@V5bvE5+)g0q)iU&g$VHxZ50Vp@IL}oNSs0cRM(Ap{dL$ z_SHKAKHnF!zWSj`ysww1K>wp9e7>(L%*R`Vu`;NyezFuM-&Yq1^BD`X6#8V;r?_=J z`JBg>cu~Ca1&^!bm1Xc>7Jhzl9UJtJ@=0FCGVnPExobw#qP$@_pc!fNus~97j=NyZk&A{8sR6BP1Ac8`0ZtU%KyIt{#@`HFXP#a>PP!%zYad9#&h}I(Ds|aV;!&b zfdlAxpATHm-5=`p@{t0tQXlxf+#Yz|W=(S??cX4<{K=5m-7EPpTLI4DADv`_ae5Z7 z2ISk|+FvuPgk2%LmRZ>0t@It6X?QX2T~}K?;bo(i;=L8P+s_kDc4(nf2aLA|Krd2z zK`1-Hm_yXB;bJqtd*#gm3IIP}tk&!19pg(KJ36tqZ(N?(L~Eaqt9jcCNmFyprCdGc z{RLV*dUJ}bepGM0%j>WcJj~@&syD3-u{)bNG_bt7*0Y-0`3jDGvWH_htM-;n*^8qx zW1Gx{8Uv#flT(AC$hmKFjlER04@Tut`6=cRTj>K%V;;5ZHek*QGr(l8u-(}J`+G~2 zua`#ova^a@gFM(XjQz8mC^)r;j?uqzmh~b$bW=t@XS8Y8|gX;Z@I@ z`BmK4^LIvaX7UDp^^|eh+F0$YIM%*z;yrHPKjz!o&}gfD-yG52KpGjY+`fN8Sheph z{HlEw*4p>2yr*%=h0&FtmZBfyHxgFu+q>-Cv8Lmr;M*L$m*X)0?f{K}e*}CxaON^D z0xlr@WybU$jT>(PA2k5u=7zRE1s3yw+VBi`;BCP5TuDOgEPE3nm{v7y~9!@)H+Lzra zApE<*U+wW+0<|tnbAl`{$%mfse*u2C$9HitfsuB+_5pBdvj=(eL0~bjiEng1{zJg^ zytm8onlVd>ZzKaX9v1Dg{oPZiw#!zSjtaZ%-zLo}yX+5#JSktVsj|!Vb|*!M7&O{PhXK ziogDrU-6gd7=L||_mnQVFuGR-{xTm7k}H2l*j#Z!dw&Xe+}@g>$mZbF!1Z{WgM7@X z+^4UXYFnOQi`3nPDfoEb(5U&rt%j>zRL0Mc_LdXeQBPiy(jH8eBNBOvVxD(hd|e)s zzY3QnRUs|ie+cQ?xg*J?1YgxN=#|9N(mQic=Yg4S|1CUsbRL-Lk)6M{gZf;kH^sy@ zzN?#CYxS?v@O7Ki`q>M$$IY>1|CRU6ntm%@t9cd7ifZI=!Fn?W5u0&Eb^6aL8?szH zx0%HC{RRH2Y&TN@%q04 zOX-peqpSIQ(cj1y34115%TfOh}~kiykBz7E`3Eyh(B`o}lG#r;EV zv5EfiP2hTh|9|y}Tx@Ug7=wIU#5OkPCE^J$FK>}!{$youf0!4F-?aDLo-kYFD6YQ0 zO`4mNC1#NR%o=l?+IK=e6#K$tM_qzBJGHT+j)J#2?M~^|FMCunbr%7A9wk4N-UT9> z>}f8qd*8DieAR;Qe_Qtnwjs4)_q?ineK*P%=P0rZEjgvy-6vP&MUYQhem0bLCv?#i zG#fXrHHy+8b5<;jVoIv9J{7>@(R}B{0X8k4QnpZ-O0Hh4EHhi&uCtf*5Re; znt4|W%kIg(GKD=N5ig!iU4JjC>)naG5bLf<4r_9mjP9DuuA0nX)b^?53I|E2gIsw8 zW4zcq1`#{Rm47GgSgz>%2mDpZl^7Sx6~Rre{3q|RT=@~-COa&?UL2N0&%Xp~>VXqdct_mw6@feJw}JCt8$&y&EzVD>5~ji`O4+(U#i8pu z5R)h1K)zn9_k?rtr$(+F@wd)Kd7z#hRC#DI4~s*~lV{gt59aDQ(gr^5yzJ#xi!R4N zG4%jdUQVMt-Qvgb-a=La^fYM1? zw@WsNmQ=~a?9ilsqm1S`_{)2lpymfkk7hgAGh$z&bx0g}s}D zYx0rNJ=?)#!kNMD?qEa9+%%Zxcblh4k9LK)Q*vfYvU$@zfaC8b;<*2PIa59V4r`c^ z$#7GfoFe$67a7R6i^iOLl5fe&{8^J>4i+7nUg%j~K0NQ|csh^So=lBuPiYChtudV4 z%hiP>l5|I{#r1I4_{0D=@STomFNPKG#dFg(?7!phXC}#=cJA&1my`6kr{gcdYROR@ zXtraZ4t^i<&K&k8o0IC8zIf(b;2YaGRqt+g3>#o!jwD*oX`9F3d}3J_JJ@-4!Ebi( zso9m@gN}~uxSrRhv-kM;Y`SZ{+`TB;SGaFfZ_jVzh^f=6OobQUHZ5e-wLRm*b*m#g zSzE7ws@~MT=aH7$w_3l7T~F8kzKNkhI}4M3S^QrJ@w-DG)>`v)&gFCxYI8ELi6}?! zhdH?I<(B5)4~WX|&g6KH+d8*CI>o@RTsa@y0b+Ui$%B1a-kKlV{U99%)%mr#`q4ET z!*{uX-2Iad_jeKSigeh&tAM*hfV&8HDcRS#@_7BQc6@b(8VPfPPU_?IXkFoWOW`?7 zI*sF++4}mDSeJVsw9emFyD+NT9j8h4QY6IbRU$c zk&7zgq?Hlo5(=Yu23K6kiZhdQH$4a(=lM^M%}<+0|951Cjm5ql($ctbOEAv+FSEgW z9Ag8=qcwcRJ=m39<^SI(XSpw0uKsWH=)(e!8n1C%F{VLoM>(w@>0+#YB&$?E4~goB zxyt{;d{C~R|J$+w)+8E~xXZ$$f*SD9Iy&NjIbAEXMDbQbS?X109 zXJsl=(BL;h@Kn`Zek@`! zr1h{)VC~pL1SMBaKesuV8Dip@!Y-#=Ta)#!W^?*DE0pyaW~8EfxL3No=0Plrbit^z z?bt+8S48!|Jtw)`7IUwBSFbMyo#&9H##%S->)pf_>kzCvn-R#@op|C=fhU@w4vIe0 zv{w<|C9-FSAMcWO^=Ql`Sb{eME`U4rjOi>tM+%Khl5 z+*kYkxXIDcq3*76Z^h0wNBH#lu3jTM%~?VBXrEbmAEWY~%=V^Vg0eN0R{?ua6V+WFmzBlztk)7&de$L+#gj@; zX^8F!@0MrT#v9$sHkS8q9!FT|Sr;4Z-K75Zyp7=F!F7O>zIA?en0uh-*<|s)wuOVO z9d2eCpQA?_Qd~RR!`rTZIvwT`8Rv#zeoj zq_~%-aWi-~aP8kKU5+TrEE88~7>yw}wLh;sYyaMrrvk6^c8B=OO9vV_yKBrAY%Y~{ zZ=lgCOb=mDJ#&ZEnm=4jUsn3Pz=s0;865~%TI-vgUz4q*tG7PzV}W)RUiqI4`1w_5 z;TKWxX{ZkNhcpgh&+RVF4e2ZX^&x%{r+7Dnc(aB3!W3^d#H+#`3b^^zVEM@$PUTg7 zE(Ds(ON+}mv2t+L;Yx@T!xdg~(esUJfc>3tHJ9iq-mx@Z8Q%~7so>{Oj61V}P;SvZ zkldw|~&;vHN#zH-Rj6yR;Y zhQZ}WKh-aHwE>U!jP8$g#bT?~<8;ptXODV}czT||Z}7`w18LY#vQIy*R{O7$ZdhV; ze17JTCW#?Vb|rEFk&V$4q-%CEdbhD>iuZWz*~_<$JqkC;pT?ej{OT#=%45%d!fNcf zj$e&EqGMyvlXy?*k_)3NU0ZBBpuM{%61G)|)fU%-kK00ZCVQD*1g8VEAYKlE-q(BM7hfjPddofU4DKk>jpe)W`bWga+0SnR+Ug_-&cbBKe>&EqANK#bd6O^$~7p400uljly7z9C8O{L5f-p>Zxra7H$h*(OL2 z-JXatMyzgHgc(omr~k! zy_D#rrE+V`6~YWS`T8lj2kJO2t#fIKWUUL^F4@1ppnQb6 z*V+OX@P(pf__qZ-$2c-{6#v$MUtC@);jf}xw|TrP=NjqVp3F!qerXoir*#3iI|9z~ z_pR+o@*&O!D1yPRhUQ0sEi6u_>ute44vdR3QrP2weUh~6a*d{fH~rr4J<(0y82FKD z;jB?LBcT1SIMGvITqRGE zN!2pWje0|kgUlPk@FI(3XH=B~LXEZ&y>-z;u1GFyCX@O;!k_F;-tZuwYsnnJP39cq zJ(fAg`8K&?@g;L^0TJLX;Cj9ce}!@XwCmRF(JpWlf(O*l9|WsKzJhgr zq&;zp0e62q>%-c!LfVSH2_MGZ&nRXm6Qfh(Tr_}Q$~md4M)>w^VZ)Gm>+kA@1sx%s z@Tmf4d~%Zfi0{TLd780sVpRM*H8}vmL2sYxtVrGVSSw^k|2ctv_1sAuJkijt!GW#4 zWiia%3Ik=w-#3dc{4E~VyYcX^@gDQ=bNMztRk&Z}PdxlQe)W`bWgh-@!itA~gJ1Em z=ok+_pZAn5xiGr@1s)c!{w85tl}r4r`O|L^Cgxe2KfM6Bp3L6(=dZUGdNelK53jq! zXVYj3nvyIP0Wvx-7M&A`(+MUe8|H}4(DK0? z8NQ7NUK(hqO@1f5n_rTb@clCWH1_FF?JPN{{J)65Gw7MW%dZ|glc6~AnT#xKE&06= zwoE5Gmt+1fIz@Dc|0{>zki0UYB|UPMPR4uXcx}n=Tqwex=M~3z{x!VEJpWq06(4z% z(iYGEVU%tjm!)gEs@D-#JpX!rRliElc>ayNTb`w>GP;|BpV*&tE0=!l`*Ol=<16@E zaIB#wl}vvHI7BcOoBqTt9-e#Wx$$D$T^8=+|2|>PCCn7p=2V3eoj)Lq#)duUZkA?y zSl^cEyoxX#K1{H`z)y9!uSqms4PH$K4eqOA0dC8*uT9_Qan> z;XZ|6za-qYWPLt9Ln$5icHNI;^UikF-^%PUzWw>Dq;^Xvzv^J8^xb2lL)YoDQGf0v z{UW#6<;8Xh+zaDw4Awts|3#4<85k>lfDn@-TLs`d5`<>JNULftZ;wEpZf5v{OT#= z%6<5qgjFAY7r*MmqGNsdHr`XZ(-Y!uuS@fOlB~Tyl#3w9CfSqAZrquYb5MD>YjC9QHWu>qBGFbomB(O9txiGrge=MGn{U~9#l9s#CMOy^(OY4nZ6r*l@IWPGbc#WZZaDmzn zgC4-xz}7#12QI2mx9<5Au(&^}O>`#b)4=syvcru>Su?a~leZ8~{iu4bS0C@L4-8ID z_Dwiv-S9#lkhSe+Nmq2Ld4q9ba<4Ax=-cndh4c#wca8_1{15ViH=VKRChGCfX9a6d zko#<;uXW8yYwq+K|44e+{BaFhBh_`hrO#k~Ke?Ue{9LFHQQocbiIhiJE=^*DKGhRO zsRB%Ss-8#JpRhi?z@0FobKxc=YNQCt>g4mGPQ*7KLD={)0ok?N*A@Kh&hUPbaK`5f z_XWPShW}E?dl{GUsrrE8SReQbapFGk)j)d#^&=ZQy#s*>N*0sHT(|9#rDR zGir;Q*oU^Z_&4aQPdqE|x8_*v=uWR5_B^a_^olFv;r5eD1J4UCKl28^EWl-l<}bF@oC}h6|fdoz1bXaJ6d4PTLe@8mVLsVq0B^MTvLDOQNQ#v&CoYvh|2ZTkpB)v z!VAtQ4z$>AcIgPl&OEooHJZn{v`rVxSRRC{C31>=kR$$C_zlu5&luR}_xtFp+8LYa z`|d6xn-6a0?w4ad(|C)Z+l6}Qgzi>W6pO57A)I0@&bCB%82j`Tc01nJP!R%~b%)g~ z+_{`#o113)ylVmB;?JBZ{P{WfWlmpr7Df4fRCkWo`?bRjMYt+GyqB`gm|CldW&pYXt(#zW+v+_GS-Q-d?%!kAd*_@0s zj_XS}`>{JPeV#^}v-3;Sw)XHa-NA-~uF*MX#jg9a+BpyLWAapaPgQZ_;OD$QOZ8Q| z*!N+xDf(|${*}2Ucjb|^{*%l5ky^&{!gE(fgzx7XR2Rba7vWjU%q?+Nv*EzL9t5Xv zd$^pLQ9oWUl+=Fe(sT_)U$5^U#yQY9*6Y}~aqsrv$mA3@c5qHLf|h`PnD?c3$K5^o z`Oe&O$c#Ma&)l{Fv*$jiK688N6?bvw_R=eS9v=peB_%yk>dPJu%if9M_;~~Qkc^c+ z+4{Bkd1PoJ=m4~2EZ+4N<1;zod>S?8kZrT+`3=cU#>d*msJz(qEiJ4b@xBDLO-07? z0AHRKb1HTndwPfVq!W;O9^m7O_s$4qtCk&Ft>rYT98xXAte(ykt&{vQM(N$gsIz#F z=L=i;wmGwl!?)%OcjH%28As)4@aD1k!r6q?eBti=svM$Y^M!lxp3)^3M)z@Hz7YFs z*hbiLiTs#;4!C$sR~>0RdQaebvi0cc)zRm3WAy4;eYTO_HFg2?kcTo}TDE>J*e1br z1y+z{I=;SHu%!hlMqPgwY>QwxakRLCZ58Zb2Gf|Y`x)y<$RmNC?ngXVFd4=~unxhd zwdv*4P`I6fE#_gn1VgSW+{M(7#;|*Z`XLH7S#=Cw)*g8|{Oeyl@4YzJmj+jt5pxLV z)JKo?GxS}C^J=3o_ZYZH^`M~^1GA9tPSV?!a6AWtGb@W=_}*%yZZX4Fi|BucIjzR$ z6bGFHltFWt`$T2H&OTl*bD*BJ_~c;UL~Az~I(1(W$d|o({W37zH`(QO{pxhG?8C6vPJZ>M4qZM@ z`1c*al@HVP8%@!BAhJ9O7%;V|kH`yEw!*8JFS8GVURS zm5jTDU(37FP~3+BOXDKrjP8LT<6_@v7ZO%$A{jVKK1fgfAYc-yg1G}Pz_qvZP~d6v z!6({FdN{CH4yyg72iOH%PtXHcqnFxW`mTyGH%w!@rh1uc^mGkjz}$0fy{kvljFvd# zhs#J?ZP#+1ih4MIZF}}@G%gP`?j2;2);ZkZj>|A_IjMbKs=xNgP)=c)1NM*hOig&r zoIB?4j#Za|q(Yrm_jPBho{w2`hBeOO`o@Zr0>V^C%uFDrKrLc z?X%-}MO*P0SF{z6aYbA47+17Sk8x(>P?gW0UM!AqeSVwbm@L@Cdn^kE_*Q($0;4Ti zFbG^v8CRAC*AP~+;97pg6QX0XV3_xmF1awe;}!QUKAx~<|6ukok_WqicaRs^-yWG> zSl9R|xWexME_;a>uJAiUcsFYgaz)`U3E^XS7w}ynyygLTYH{?tfnOfN$M7EDSBCJj z1)Jnva94*oMO+`a-2rFz9V$mZ@Lu5ZN5gsw`%1q%D490|u7b0j>>B|W%RcpsyCeHX zf$KRFT}-h3$n^n)pr(~MnEJ&{Ia$M!SjSvkSI%@Q?a}>=jNjhoiL~$+o725;Z*Y32 zwq)1#;+V1_LR2e0Q>WfL9igHPr?rAsc1?i0g! zY-2u=8Uj(14iZBk>fycb4u}^kLHvrcY*&$gaR@Q0tnCVh< z#+2jSp6=ViKC`wsKw5EI=zE4gwM9{G$GD=rk8wqr9^;BKJ;vFY8?~KmGGg54SRd#y zn+(l`SK*a%*jn{{NoTKqLjSn-!+Ia>(_mx3&B0Pg@USsud`Ufsya{w^26 z$!3L@jCZm>g3ke$j92&r2YZ$mxVB#D9t18KukbNk;U(i;cs!Ccn)x`A^Da&Sr+AX{ zg?K~wzHquQOLKQQelCpY^p@%LVy~3ud!S4s#UCR6P{22rj}9))`u!lKFWgwbtzv)1 z8kX+kg9twlelp-^8Vd{Zu_5?j;QN8kyG^GaFn&B-0De92*@jL`dAMXk6L`Ld`nmZU z@S;q(7cyZTxSnmSWy1Jmow>4a7j;{{1eyL+HWRV_b}Rh?9V1Ruo7zcp_b6x$DtnG? z*mHC-&T8DSb>`8KALXe-V@^-kNbew4t$o?8aWMpmorYLRnYMdLswr{fD)!U1;34*oJ>B?q6wuj);7Ob*`6drFsF7~Lv+lV2fhs}gHn`>WvNzGF6$zXn`S{+vOf zYVM-Ws>fK(wcv72tIM|5PqngdYTNP2^GIKOVtSrVmz%}IF`ujeYflyrbMeFio{HTZ z@%t$KHsS*a*vg?M?ilF<;vvSJ+HZt1iIlrXdw6PSa`4)|>onE#$A)td<;D0^_A=yV zeQwU5CljAazsO#il!opcRE;#AUrYn#!ZbT})6MBcSJvoT^nWe%gW?%#l~;Eo#CBrR z&EVfZcRt$Bd1os3CC_DFl8yUx?tFeSKe2wmfm}b+e1N+WeBS7Ln%8S?{DPP~(9rJ?-QdWZb=5`Fu%+Q{8F0Vu1> zmjzn)4|RE=sxleE98><(*i&iD4y^_sLx`E$%cD9#zDBy<;jWRcJvf9*y*X-$G(OxV z%Sp0unjuxjYIz{v6~nC~-pILccamu=ZrG`hRCi>)tBHEWNz^tBM8E8G3_LrXf zS03yt$Nhs31=G6?b>WvQ)ybL5jht$(RS=(V$x_wrJy;*xgYK+vKf1o)kv4z%NDGYe z-Lh}xB$ksfIf#|{HKEMaV%}_^d-a7D>|1rMI=n@7cvAJ*=H6}Y_EzBW-0e^Kw)vUjyoEo_-QLEpo-&RC zxN$1mm;E!sYVP)Sel2aAyWI*brOVvS=w3zJ7S9L2gRq6tIepwafyZ+;)rvcTb>i0I%R{d7XDYt6#5xif- z0>HPg>gqkBbHcTgv)TI#zE$VaZ77X*^Cvya?fmK~a3tNbghwe?@|p2j5?Mz_jt^}U4E{?wkvny)8kf$!JJ z?*k_mlbxFSrPjh90#@B3e&7DX;A0+9TWi1SBf#~9{i@0~Jyl!V`m@tf>7PHgzM}cr z_}*}Df#B^4ldj0Nrbe}WETpSw%rBhmh_4Fk!`a1gdVDp)_+#Ta7ZATj9c)Sb`-WQf ze%8kC-TCPtBNYw{$oYepdfDUS@qJnL-JY2FiI<5Avk5!6nL{$W%hvsVj~&Lvx9l`~ zyOMV*=TR{Zikb;g5AiDks%11-E|r54^|y@*nxOerfU5FFyxdPZ^id zwto3fgjK)%JijWF=vcq}0`DnZa$$5wf((xLjXz6R^~-)MYUqFe3_LA9Fs-G(2rTY% zsz2$bzXV)QxIZhUR8@a_P&TUmVx4U-Fso1DzYIOu?tdlFE#umfqFy+Q*Ov4_Lr*zg zR*z*|TXF~Xih9(3qG#>*P4W@9-?#Wye92BrSMB%hD8G4JmaetmcL=NY`!{~oexhUT zcPFrvF1aweZ!L_W(lLIOu(r=2D|W2~1^*iG4)Q0R>q2Ac;MyUtd;B`^9l)2^9n+4C zh5uLJsy12PN(PI@H-Je8EE@Ht#!=nRsPK}{-vu|gKi$dEO}Oqn!S{g2JfiXPOnBt` z!1WyCfF8QaLd>ZG!1uT6bs}?OmQc6|9Nn+=gqui}VUh=`*B_AXmJ`ymv{<`mHyW|9 z8XVc<^&};z(feVbXZ|ibU8!a?&ZIu>EMREF>p024uH-Xj* zDNwg|_U@^U@WM(?)fndK(v!&E8;{S8=8^dsu1>_YpyaEUzltgwM6WgVa{fL8>gU`W zsh}Er(GO_MgjDUvQNFMX{U7N)b!I~Kto0XcU3+MkO6ecggyWM#EPT-hyYq<7GQpn- zsz&&_I2&8jJDJz3JmiyZ;dQDPII=6#3pTt(V^b{w&T&nRxAVb2;m;@^?J>+&QkM zM|%9awMM(%&4pJS>ucQ@Ai1>njr97;?#Y3C{irQFh@(09kC~LJOm`1?G23mmJG(dO zKE1x#J4yHHJNXW4ZMPc8=2Llnr@~>6m)c+IdprFWW4`8em>+BHBOT5?qVl-&7EXWR zTHLjD_UX$}%_oE0`OFR#x1k(bp6!{|RuzME5e5avbN5uaPiEt&zPIzIy6L|+ndPx@ zG{ceEuwK+SD!7fK_u*Y*9B{YxIhSu6M=id_(fb0|Q^sYqZ5+KHVKt7P$FJH-bd-kT z{sQkQU2h48Y&4YYp__6Zdz*Lk;{JI%jW8e9}%eCg$CHDsxkAG?htxFyN zTu)e+lN;qpW>%-`0K?kfvnNdxG2)e<87s%hjxSQaTg*Q1|@W;`B;b z4`|*DO!wu;|Ml4XjNf@lWZPCZQ z)xN`-p7-&MUWbb{IO8$iaF>^BOq6}ynKb={p$=6Fe@;7dhKn3YUE`|!8i$gSuHG%n z!FTQ%9>N4sJ`o4%i^@ZYGG{e=B+k=gQ^^+L)zJOCd5#0L8#k|M; zymBY- z4)PMuK_3ik2Qb-)&AM$FKX-gM@D>&B=8%_ykNc3?Qs?Y01Fk3dNRaC2=WfgDajCv{ zu(xk?4ClIx#@unuLcIX7K6N>HP@lTElE3Oxy}AWri1^{n;yp6Nt4?1<=~|jOwA}P+ zKCjJ+Ax7s)(SZ-eGkQ0kxr+CgXCA}1@rA-Ynm_T()%@xy=eEMs$p4 zcJrRnB^O5baRr`{ynH-iOC_XVX-(M$E^cepk92+A!1ZLhzPL83>*vXpZGvRz>Y41B z+>du7?+ycvd>@+u+Pk{!k-K)e@$=L{GC9yozSREJy2bkVSdVj}#C{UzsW|EHO`WU2 z8O{Dcv)YcB{15Hz86BD$9`S3F^vif+AjGd8D_l?0;=o;%9YkIFZ8WYCjYz)f`&#}a z-->o!G0trB#7~=PuNYUf>xywjd$1T+v@y$Y8JAasF(tjus5 z9G%7ak`JT!yF&a{Va5n^Ibmj(2NzeCajzTl`UK#z@8a+-xnW6oq) zV@i!?{l!3AA>IB~-|+ZE-{ij0@u6O~^_!Y5RUzm-VSey*DlhIo`mRG;ddHWm@_EFU zf*W5>gOB<00N=)!7GHch6Y^NbmHBd(u;R-`p!HE2ETu)tM$2qgV_o14#L*ns`IZQ( z1(i>2HV1Anz&N;m1lQB<-ZRPYgW%$JlMI($@DOl4K`&U0JyoPfZJz2(!jzOuVZaZ~ z9)q&BcnaypZK3bO{7IG-&j`f0;u(P$SCmOH&g7%oS8!|J72f0ay^(KgLyNEWZ35R* z#+BQ5m9T2xHGU;`M91XL5#Cd}jzT5HG?E35?@DAXTBQbml zxMYvQ$7c$bft%bhxcFrqxa;F_69ql;QE)N8XpN+M(T@Sw)62{~^z&S7KTD56zRjz3 zdoJ~U%#s=$_Q|tN0V=*zUEW0cG2iI>m-rLk6x%<>S^KN~GzP}F;y4%MY@F>Gp|PS$2oA6md$gH;#v^i5a;e2xFnr9Ejr<@Je?m#E-{&)yG(f z7sHj_WC+ha3d_^M_rB7RZL#V*hAaH_Y4~*?Bg)$iX`DPx@n+L_{%(X2!p%pN-k~&Z z9tpK2=OPDgCaj)cibF6z(_plZ<&jzk1Ae=D$1XQyuh15U0idr<7ft3>Ho7*8aD)w+tuXe zAAs)wKQY6dAPY(iH%iNU=Vk9Infz+-G;cC6z1qL9e00cNI>UTIvgZxpiv7^j-O%<& z;9|KW`EV98=1su$1YJ_07gzV|7Hj?iEdTa(jq8%KDXsaCx$86 zbjaRX`q>W9wSolMFzqg0yka&+z^x6|`zq7gP9b9=dZ6JEEJnNr*)AQKKPOmO6 zq4>pM%BLmVwxs9y%tAvB7g8ILbFs?7awSJc>74JZb(%*|B|F-GLU}r(e5wA`-=(*` zCDb+1l8!d#08s|EBbZ_am*==qa5lFFqLzrSbMDHww+GDIIA;4lK7Hj$d!Dg9x#Drx zSSjzEsXS_4CA9Zcn&sZDN4^wEod#DtjkaZl3s*UM~Y}Kd35yYoy(t%nvL# zZ?YMHt0%$nH^oA zS94p5F~HYnwSEXo*xtTjwheo_#-#X+KYcvOns<<%;a;t2z@Mlg}UEJ*7)7jBeFB{5^z~d`4FK zilp5o=k5SrS*2lJ^_SpdS*NzrI{bsc_1HSRqESxSR<;MLeH~`ZIlEiW=QFwU8RF3z z)$>;&UB%Lwrrx?7`r`fsAt@(Jd4O+Qv#Zd)5;IQj*Xmi5pJ2&>P9Qp?W_^4vr1Oz{ zI;e67_d4@^nH(rdoU2U?_7pt1oK7&~x3+B)EJ}=bK1O=#3)OQ?_;zxy-3XKUsf-{{ zb#mly0-fr8cxm{Cb$Cu^2mFbICrsfXE*J__qAb6)ZJ!9VPq8-M)8JV0yfa@`gG z^1zJV--#Z5)%uveKgpl^SWyR@;Wi|fv8Sg;{ZDYK!@uV}?th=*+xnQrSO5Dga6M&Q zx&QqGVb%Zskze&c(XsybPrRpe$%WB9QlT696k#=2(b}rXX_Dq_W)t;ka2?>ZMw``9 z6OVNL^K;IZG$`)ZgwT;Xdu$`NjkBxwUO9?A=*X zog53}m|)H(X}!6++~g?feCDU`0%&ecj&`kKvU7k{fZb95FXZ>^WVN{u|1}&}cQQb9 z?u`t<3Bvs1`l3g<#J!9Vt@|ZM$Cg*tS0aMx*n56*pnn~^2Yf^{mL}F$q{p^7%$G^8 zgZUF@o&AMF$H(g#<@ZmYV zIE&{lPGYpPNPtvEDRuDR>_v{D9@2R z)c3#fCwW-Z`NgD#?}oc8Jqcb8=- zV(zGpmSZew^QerEeo7v^o~Uh`-i;rmB#il?jc;pnh5H$Q;)fb=J!M>(A2twH{Ls#? z_(61xA2tC?>5>bh+g}(T)vg-}+q%@gea|3F+`g(i?dxv_t|!~qudE=y!C#5;b@z%5 zURHb$f4^uh7ke8rgmt1Wl@%SpwE{6SQOzMGLpl|{iG%c}VY0DfhvG!zmcn0@hIf{E z>DqWF@c#M6!fdcf)OqPkfQ@2#x`cSuse7d<_``sYO|v+P#wx*g89ee?DEMUt-#0%i z+ijzBIq-=YuC)tuVugJqu%6`=nY*Upt^^jm5(i)UzKjZgm1yHTcP+Raw=w$OJAD4r z(K(FWoy1YPVLXY8=h742rRSBS9GYp&;-L|7k>%%Vmq&RK$@1|y(Ol=+;2__Xx81<5 z<5*`wk&<_j?vPH)YA*|YQ4mkJ8jFCU*qr=t| zhk&CCSsiOM#~S$PF!%y+0IR+Ue7;rIl>i@TI4>n>_%-06j{NWx)t_)9>)F|wV^P>< zW?X*ODdv>Q8|UJk8bs}5^GN~X{_1r;g7!}@&M%}kxq@#?1mEXdE#zN5s?qmM zo9yuO@}#yk%J*b8-|J^V>DH0CXdCw zZq&)zajW2NgY|pvTq(=r+SySawj$N`Eu3NVl4E*d0NWU}+%B&0=QzLe?0&Np#<@G@ z<(Z#|bE2|u=S<%)eggcRjdl{P3{!o_YbBCM&n>8oNwS{v1>?)T?v5-Rq48D`T*xRH z&N_LvojhzN&gk46i_lf4bI^SKUQyoAt&HJTvkx7fF5Yum%OXViYO&@R?i(H*#|gbw z9FDE?0Aj)`nlIdkG`F14SmwuG-^Qye^*P_w)GvJ-16v9AC{Ul$vDV1*eWN_%2br7O zU7%ztef4P>zrMuj4ps(H0lM~*eK7O5!L>R6y_wp?FNU*2(KBd|NwMe6`WTf$J&b%5AiZuxg`A z`BfW?QTWeWu(PyQ1x*T}iPUK`D^o`{un~g`EZz%7VSgTM^_!3aL!gzk6tEU5tD?NuAGlx;@`T3L1xlmugr?9d27^Nd#V~u!J zM-$vZt&o=HZL9;2Dnl_`dDy8taw59a6?EO<1~4{E-<2fRI;Qw{lbWf+)mG^d+0hmM=4e>z55qE;bPw*1+sg_5sc`I^yL zTh_C=`)1aGtG|yrhcKScWFw+8w!L9Jt8eyhSDYb)yeEb_5Y6p^>nv{ICGi}7Xjb+t z;MXn8iN$Z{Crbeo(g4MDW z@#B+8PqI&YV^nYLxes*7yMNlzT6RrbTi4wi{w0ey)8*q;^D%kA{NHcFy5!R@SAGIzPg)NJ3_ciHG$>1bWKLfB6JXiMn$`N=I(ge5C` z`=fQSKbN`69*UR8bEH+gd+A`5e#fcrUb>7kk~`{dKnz!@EH`)5F*9mTJ9R?+vdev4 zc85GEk4e&;jde2@0BHx7-qIE1;bWM)Yy!^4j`J^}IS2ixHXr5B>F2R;!Op5@Gp^xg(+8bKxMz9!@Vsx6jda}hWQr+)m+kt-KjY%yEQ$av&O#nVV@L4K8Pvpg zHp7^>80B?m&aYwJ3G2ZgZwaBhYP$AdO>kOwzLrC)O#gqF56cf-)qGg+pJzV29MyYa zKJ5E$HXoMPO4oPg(?e|u%iU>mLf=?oGGF)StZ#%aJfT~j+_~o({Md}rV*MkVsQO+O zG47hb=xaCW$ezgc0VnsG2hr>~+jPOsAz}L8!CCb5^RrqD%yu;ou10fkTslYJtXr}` z@S^%9Bx-9>e%yURvTbpCL3XSWW7#J;B3_HRZBXhBE}?y6Glunj0iyC~Y&=4GlIbnh zp<>pFfxf=UaQS3?ucj;&P@{J&(7T56B&Bt&cD8hPgf^eJ7_t$L2jc=PjDBLgcr}@Lv`PEa#QR(of9-BWrgRq)EoZwe=Bsw;Kcoy#| zU2AqN!V89va$Wygo(#?)tmP6P6F4H?dARa^;XRr^*wzfeRxHw#|>WCKb!7Hu;(4}{Z{ln{t?=1`bSgAUBvS=3e4{rcgwSRa3c-8*ltf!mq zABrEePgu2o_=mu&_77hVylVgOO~9-64{r(Z;{M^=fVbK|6fWLByfq42wSRaU_^SQG z+daIre|QJ*s{O+cxpd0=haUxAwSV~W2p;breiC@A{lm{>xYGXNuLc>TUi!Is|Bz)s zw12oy@}OFlFd)TO-MA4d26%ZO8T#BHOU%cU=7#nszd+va&xYjJ6^`(~5yH0~M{-vK z<;+5=FecNUFS=nI(YuW!FW@~MM}C`c8!Hs+~jqe$a9h&#QJmfyce zB|5T~VBNLGaTUDgvx6V)@3Pj?h1IFfr_<3~oVG-auIHVUg;1bk0y=u3w`b-U!|v`kG~nd#3wv;ekfcO!FPU=STcqF5}=Z ze#(|-CRWfGEK?-Z(^_%5qL-O_z-ei4- zqY*-0wH^`N#*ugO9*-mM;=34M~TfVgaX><=% zoK1W)VYgDov1X%7&F;sJ^O8RSuHrDaT=NL8r@RIDb{}3hp*#KOTYyQ|sjv zr@*D}gf<7@9CZg5jgAoB5DG8&4j&#hsGHTh@P7szb)KVd2n&CS58pdK>vJjiI|#ok zgijG6Pq%`*+{Zx)wK6=vG{2~EO7Vn~np@?_A&IL!-}ivedW80fH?-XjEFNRkr?#+~?r8MN$E)q6&om1=aKXy`T}v*b;06v~0=ndDDA@P5*?d5qqT|31Kb%zuB$ zxAC9C-NB#u?}Pm6DdRHUw)OCb2rK^kD}F6)XOt$jkbdi5_^-9C3WA2JZ)-4Nx`b0)!M6)OeJlspxP3n3_6W9? zI9E;2ba-13e0hgDQEo2D#zJ@b4CV3j6+a-RFiPln=Zoxdm|WN1kG?+%J<0VobxI!b zMIM*&MH!dh-w{3I$In1F=Eu+SZ9He`iXZG=%L@D`8Sp8>N@igL!w#^&&s6YF1MdLdSX@C-?B$zasv6GlPRlMp;r*6mf7dUvSnx^SD0?05?hYp<_{_Bz#`8s zi22CpKVG{i?^-{pTo}$cabWzVHI(48zNN4!Kkka)X`m%~X_yY2Up z!D=!6Ry^hR`^xW0=^F2nhPLL}Iy|t@knb9lpy`c{xujYJ%j)O{p^lXPf28l;rs0Qt z+nA}m{X2geYyXp9Jyke6%T|Reo`K6~))Mo3TaHJAXp+yPHH+fd82wY;<1zYYd@DX} zm>6x1(aErjUV+PK+Zf$OSdGy&eyvSxjBW>((j^y0_oA?7iETE2L|)8hb0%#pZ?pMd z;5x{X#^2fHnRVSTG#uT#@MG{Avvsy^nTuwYo48I0W4Gek*j>aa-X+C&B(9N96=HxD>mX0!0^^+FjyBaK`VONjsiH>ibOobhpSY z*c|8)p9yY!b{6k3pKaya_{`#q&+Z0XPZ?L{v$F{+KD#@=;xo}PKD!6+DP3}5boW-w z1-B4Ze1<)6&aeR2=?_WTO=DhlBDn0 zOv4?`>Je)jygh@L=2n|CoIgb$jb~dkoL%&rjz`;qKFS>e#$E{xtHT|-Q1Uy?ha@G7 z5`V_r&h*?Xlv(8-(>;YfePixE3U5>L2so+&=*z41Sy|TCC&%iz3cZ$y;f>HvzTbzm zww%y@ZQD7LQ5SMwfpkUZ0@u7nF!=_(ufo9-_Y2`ox7-OHo66L_Sl^nju!Gp(ZtCDD z%g+ri0Jk}rnWgKyy3pR(mgJag2fc4ij;HTuqYt(DhH%&*J3AB2(XhFzolidOIVb5I z+Jo6DvpwC05q;qSsr1 zBq;ru5)wn^h^1DddP3lkFN5D52Hh4oLsZM zzEyh^-HY?aTM8rlc7ZI+b{B?&mQi0nS78JSbKq}xNyar6bRU8A2;#}kD9=}h{SLM` z{B0g%ecaOOR}V2v`LCXz)md=Z1-9Bmj6aD*KGYv~kf!=?3!OB#9M2A*mP1C`YZmvS z5Vt!0k>Q?hd`9&4aTyMblKaeP>r?VIF0!Ndf!{+#ieYu^?)a^UQws${b}pTe28af#>jgBYQW z9~SDk+OA0V;OrY7bneRP?#Kz&O%=e5-mXBe<$8B=uTBAEI*#zAGKl9cJ7s?A*Y&H1ucckBzX2M1%524!2W7M#8EAFVb`^C!HjJCDI{&IH zCO4ky=2$CE#HLoGQQzl0?>a^u-pp!NX8&IHT}fJ-lcStj&gK%^E6x%;1N!GC-i$u7 z`*-*DZiK%c4IO*VPtOaa#|yG38u*K+A0n*EWVW{6u6Jqi&}`GmHJzhD_O9L}gOO=( z!}rb|l6{=GnLdWyj^9UpOq3TVcmIdJovPci%$8NGs&a_W9vj-SC7+t@qBpfpzbyXa z?oeT;v4B^1n*sM z`WYT{$3s2$MD@%bzVn!sst*ub*SfAerR%m%fz0xHbMW0-Ez22qFhs`%(B8qmeSXxB zzOBCcLwQH=r)*=PbW&&s5$1kh$>5Tey_D9S7;bsz?G-vN>84zm;pwIIIjl07jc`y~2anS+T>7a}7?)C(59z6V7!nL8 zmu-AkTT5S+;q&F!oXp`u{zCHU{9pR37+9Km}rx(nq!s=CetRD9KSk11l^iR(( zNKqWlfh$j!gAbOd=wr=0WLBmt!Bg?mhjAK$Zwij`XSk~~oU)eI)o$P}ua=ppEqjHV zKGusXJl5EmzHK1Ddm{L+kins3`oP}l=KM5jpfP+_$+w7jayxQvAmVw}HL(LnxIF%Z zBgsQ`zjs=$vC*Ny9;SlPhmRw%NmcjJ1;mz^T%t|8NQ3 zm_LmfePn44r)gG=J4ET`DmgzEMjt+YwX7sq;4Q79&?ziBF;##;!O6<8kiPVa<#A70 z?&@*z`Bj|ib)pM5#dsZFeEv>B)2@Zot&pdrX#uAclD0hsO>QM}$q(HXO$#`skf)|O z5NHnE6-^5`rI64(MLqQo`JKU@F5d2fZg00`mN$j1p0B%dcaL&d%2$D2eLhYR9ut*b zmc1^nd%ugksNcB2J=fhOZTWQ!q4ny+w;W@riBtKdIz<_Jh9*)6s_tE7I7K@7-q>ZI zcUd0wLaSR|@3K6(Ufa`UpLdzg&{&p`dslg?<(cR8v3+p_efTt5?nUASm-7VfhSIP@ zor5U7w{G;~xYkffa>V)N)i|T?TEg(nJ|vEjFBP8~9KUr2zbuAhb7$~J7<>gftnqQh z;>U#!_l@`u-_qO2hp>J7wcNS`C_UM!ayB)^ce?L&2M}KSXT)DxQ;3j9>1*&a5`aG6 ze(&^9N@oaJNEinYo!u_Z+(JyJ%fV(3xWoc&pWg$^%MR#i`#i4B*m(Jy%(E!-aU~|& zflfL$eggd&XT;f|T9bQfSFbux!+nA4IxM3&BQAd{GYj)lTu(cg=8>C|1FLIIQTAz% zx^RLW;M&3r{%l82Fi&4PBIvK)q#&Uzp5Dq)5A^iHy@l&bhcjAD)&Rtv#c)PImtWm~ z2rLXbKJKjs^NN2L?g_peg%Qcq_yK#~(3o~-wnLuAUHF-4^EogPzSl!JCd2o9DF2k< z=RM86;oItGpW#Ek_lIvg_kNw>gI}^IhHp5*)%lacH(cPpuMgki0ISDe3^30DzAl~| zU}z*=J=BekxFD4Eh5$=BA;6~t+%ZFd9WZ*v5CJ|D;Nk$II~&0q2ZXSV0LOzu>W^tI zg&h^p<@I2It#HzhGgq$Mfqz^_7JqhlesUbA?|b;~wBKIfzkNpz>FdlE?Va}B&JZT< zU$S{7Os?;)8!g|0O95_mtFFqF^?vy9pWE*+}X9Fw2!`bBkQZ@kb~@DN&SbZ%kn(;oAz7O-KeW({<->XOaP=eb&)FSWkKGYK5w%26wwGXunTu&KCVZ&ak?RTya zR{Kyl@@x6BeW+DnDP3}5bf1j=Q8sdu4^}GPrf7k%1AOgitc@ONG@IN7c5MTn@A6Zq zJ*g)6a&7p1!ZmR5e$?6I0bjc zi5K#?w#4j~#b=6Re0GAkF`qq?Z{sDSEk1iz$afi6=CfxLR(y7nU(2)c*>ixUbjgL$ zHGfr;J*pYcXHO@rShx>0p_!O#fBG4~S@+`KVCJx?52YUx@BK2k!O;c$8HCfDju!V1 z0gw4k@<4u&ZU(OBN)m$4axtfJpIIBU^?UxYGrYg%X!K*6<^9>{yFKZ4-5 zsqrDN}t zsDrV|@%n!Dck7c~-9vrsa8!bgK6fq!np={M=V%?#R+C%`?;E1`_UL_M^u8&2KO=hI z9KD|zy>E%$&x+o+X73yBmc4J==KT$p`PFT5Iy1;*Dto77j_>{`l&iY$)g5nO55|e) zl>16BqxHvkO^aDZPsVwUd<@F!`%eO`FKzN`&KL5{Uf;@$PIHC%RR;qL@@9RGQ)n@4 zbAT~2aapS$&lGlRfcFI-VS;T7Fm6dZY&1GaX?uX1-w7N0uzkgiYx8)le-)kc1KenI zK%)ciH1XLk!7fO~aJk|0bOGO;$+{aU?aZinYX^IpjL4y2KJ1Gr|ITE^9j@S?5!R2` z1i2fJ+}!e|;4ev5f+qoPGF@-v{D_I}u4M4w(sHxWha=KiY$-zEbPrnPxSUfLOsE@8 zpSr6SmA!-bSK_asiNn;@mBA(KvSrfc(iZN~p&V9zmF=ozYH1!9zhi67(*Eq#vLW_R zH|JHI?@of&JG8H0y|N`{x4;MWb@5u}WCIB<=Ui=QcJ1NMWQ{l^xI6sfVJg#DLRHKh zo?H%hJ_$BSU14)T5gM~@H#p*{{mF{E{tKHjhf?`vYjC~u7&Pmrz9G%urQUCV{`vuJ zocT4;?*W@lbln0a-_H?i=bt9CZ#ZN)&QHqr%y?_T>OMNte)b;uU7j0U>ZP%xa^2m- z1(kYVm_f|wTzkBN^j)0Mr3I#^+#2B1_L5dq` zFzIv6Z|m(>g>+U2y*Y<^}g)Y)r2%ySq^7t|Q84*t-?$)E3I4n^~- zfCp$mqxrf(Gj8YCd)P>$F+1GTGv?~y4IVbNL}#)-_r@4@SyuOJ%v)(e=ludF7%slr z{Fv-Z3UHkPe5&V#&;>n9n0<%l-zVtjRJ=b#7|Q)R`1WM7f)L|~?9x(WA@p#y|C`9y z&Gc{SH{2x0`T%)&p7Z5vy~qV|`O}*C`G)gd$0MV-FEqU8sT^MAd#Tbq=;Vc`N#0*h zU5KN{4zV>I@~*J2WabHimT+Rhwb`4=_iLcBdVI-=W|igZJGiTl{b{(x6-6-hxi@*3 zZ`_FPEy;?9>7wHRm%Mr#;U^r0tS{fHd)}Ol8^?}aHZt68iQ6eMgv+1k+>RV_ED-AD z7V>Y?ccm(i5|$C1}w^?Ajm^+$M~ zQo5gv;g@Id&&2R6{91dEx$;}cmpz>M&*nba*js|_W*o1!;~3nJ$?52@PGhsB*=RZ| zsi`WcXlT9ir=%aRvGn~m{$vkbyz4i{74Ha+apsHG)@B)QL-GoAA9~8TTJi^{z`eR9 zZbS0gfYW+UY1y3cHs0g)-n;p>HJ#;2>%I2?w>-&KF~gPDdw)S#t@m!{*XqyKd+!65 z#w8a%F%FzXiB#q@7|nz~2G_Jfn3Rxak#K1k5^wi}Oz6+zxzx2@YP%;O_!{2XHpBu{O=%e-8XZ zz?%*3gPrjRtv}xjyo$GcSvIu2AAGzHy+1Yfh)n-6Re0Q;xU!?ZgLryAz%T36pPQ#^ zjFVaqR?lzQE0IYT3xL5rBf+h18D{f;ZP4sk@FgyA|H`E-=RJ1>`e7c z%B-UVQ@)>5IuDfHO(k8CY)w{gn(%icX$B$hyUty%&yU}0Nbg#5N3d+p@^msQzn?*2 z@5&^a^8LAb6X!DA3^6O0>?}lD7eLy$BKq?GIWl1e8c+{%TC~m&w7jU!XmyBIIH6C> zwdEOIvhDFFpebKx({s%63>DGz{>~Wln8tgr6d7IFQ5fBxRT&)mwt5yccR_PzbvidM z2kdMp{JkH(CDq<1L0n1rZtbd&w)7EqryV~Uwd2)Eecwcv&qrfT=Y8VO-A?ya&9_b; zFwxgDH9k0bUHu6hfby0LG04Z4T>9(4w|d{%?Rj{qdTku(EOMrZIHVe%80Z>0EiZb- zu;j#zFP{kcs2;EAcOyOYMTYz*_Tk2Vyo>W#+E^|@jo#k{diTTDoIc`oliH`!Unk#r zJ?O^dQwmQVd^*IFU&$|A=)gFQr>%&Y3)sUGezAB`2`Ohq9sJ&e{O+ z{!OT!+CN75?g+NUgCl$U#wW-3q=v;Qz~@Ce8tSyR1WkJuLfo#Qu>omPM*Ova4}04= z(i3a{QgdkiX>Z2f<}FBy)8lTw+-_C>xySj}I)$*KkC+}zcPT~j!0 zkKeg_*FVkpCej4&+ zWl%e+9ObYzIUID4onNxB+Vd@k-;mTo`1q{0#vT1t*He4a9^#bg)so`cCTojY^4~4% zsh0e#C9XYb!(LpEWQypSOxZ#{E{gFs+{5x%CXG;&QEiTBzrpc5afa@TSS{G@#Zg9of z0bJ{-82%r?cPjie&dTiAC-O$={16=5=*cYp6z6BWE>Z9w0pA6Dekt=kA=u@Dt@hoB zO46S<1*S8jt2117xG=c1w!C+~!JVz5@n7Js2FKKNVR{8sN|1>^2EH43fBFwnyRNsU@Ozyr=k<6q0B!6 zzCXmDTn;C#Tm}0&X``L4ceK_Z@ASbgjSawW0PfEEqDBrlrz=z*HiDl8k8g+BxV<(3 zKLlK5n_SN5sl66}(_Y+`QL#|mNk zmSjQf>q_{i7Vy-s(<58@Ckl8SAwr4b{B$eK8IWfIWfGR&WX1>I;S@$zE?<7>0WVKbK)zoBRQQ(@fDYmOP9wE zXm|1l&)@m!+;}b>9(@ttC8qOLIL?DPA9)TO#%#eiCzCj*%ZKG0uJ)S4W<<6&+~(ol z?+X`g*j!ozHn^ ze}A=RV5@E`&f;|>y^RCw2e}jihh2qzI<@x>W}@!?y{-j3qc{bHOS7MGYG36gT1z|sIs4%hPy1Sf1O#u zo`j24z1~GUx0!OEAC=p!54B8#*K~BxtDM}7wFFf;PhrEr0#nBvgSsMoDURj}_b1IQ zCp1^^>v`#h9so?g9qrV|HgDIYxz!oT#-syW^&Y?ZAtZa;QE& zHBuiP>FMJnO#DghB8ODQhmq!%6RHF68{px5Yn^QEN;A{08{PQa3f4>I&l8gUyn8?Ccqs8j;6?+&3w5&t;{Z zkUum$>Rc_LIrCEDk(WcE1xB<~?ni~ZTR+gdTx8cvTF z`YSXw3RQu#HbDvR+P_*p3~HN~3uz^_Y0~J+>gDk&AN|wTT4zun(&6Y=cC_ku$gV`; zcJp@z616MjTYXw^>(f2FUwlIK=GTtBd|SV@`0CS~vUg7zSMJmOgjJtLf#%vnbS@?h z#U125rAsc1?s(|au|B1nuv7-0C-$4em$|F?Hb^5A6Na#mh@WSdOpHI z1olp%8ZFmvi#8cwUgrKUZ=*jo7=2lr43ox|6IwQVol5bXuJMf$k=y|VMe3`5L0X~-m<>DqDx1>N9?lr1AKI$6 z{gSt^M&Hi)=$?sQqvU)8Zlat|h|2lGq)t}-NGX?M>REXJr6Ug)g*q?lh9w_3=YnH| zX?MYhbY(Ttn26GF_xqrw#Uljwsr(<>-UGm{qq_gUTPzD9U~L2_Mv(QQ7$FSE1!Igu zv`yM)?`qduRE%N$cK1oUXd7Epj6)VMV0s5rL+=68duXQD5WkiM?)GaQ@M|W!>Mo0OlIlyH=Bfd z5**zavdkVlL3v%ZU~LZ8U0uxWopHY*VF$S1Fxx*W2JSVpa&K-xq-EDJD zuK6vQZI@qd*83~SNh-hO=&`8$&UeXPZYS(Re(p&fx79(Yfd+bOw+}fo7?v9JChbe6 z--@U4_yFm}x;lLyH6~Vp>nY->Wcs@vlXE5rt1)qsU#pXyYd&rbSW1^%7+tOB z^7^1dgf)GTDm%Cob8F^@fNLjB>4WmPtH5msC!Nq`)nirHO6FHCti>Nn7&V9DHwyDG z!kioEuxOhKX75gCJq50w1H9~Y7gzrHMMry1gJ zT5GhY?X&~o!Y}799*Ls}GafxETFj}&C;Fb{uS}mDpBV-02h- z`8GbW_~M~Q0M}E*6?tfhu;QU*e#JwgvvbYIUFAKcOD>G=yGnRyjjVxr^#s|{FEH% zD12X&r(^e%J6N-aaUjIq)vh`1WGI8m(btmmmMV*ddjF{hj3@6dzs`;){W?%O_zq}% z^Zs7e(|W=9Rbd}VI$9528`3lRQ1RA})0#Xg#3|BiN^H+WJg#(%#~)3coogA7KZbAP zW6O_t{IL;jjiDK?$m7=$Ry_VVe#PSoyOT6T_X)t#xa7j-*5j)O=Gq3O=u4Ccno zmZs~$<#|_oa!&-VC)|Bmi0#go)DfiR$%o01YU?B!n_D(1De#`wirf)5ml{4t@Qohs zF7u>6I|DuK!)fjE0EZu#_0iw>*?+uq6j8EkY}B0tSP$* zJ2*DnjdrM0j;_k#P;xTDQ_0(=wIng$LB8x$$F1n6Sv$> z1?vq&@@{TQ85$g^_&xq2%&=NF6ps?jNR3`y>`Tr~dg|<&`n2yxfik#+RLT544mN&If1=vvNN_ zlv{Lf2=DP;_@s27$DhuK7{Pn!= zjM9Ar-%3|ww#Cin!u<{wBg|JpUVhjbC=I`M7TZmeM5`M)#J}i*oOa2peRU zl$mt+LwqQ?<0atR$rHYc8sfKu=eP#zrura?|5D;hZo$+$MH=nD1}B+Uaxpt9X__ws zz6-cyofxk0+8QJ7#m(atzdwr4t^&J>Y!XKChobm-yyCn4)lgmx#upbBR~O^>2c!6Tyy9OKrQbKh zshoK~Un}od$8jT^;!Q>ID)YzOAquOn=_p=|Q@q(I-oWbY%8cJIR=v5kl+s;{;+KUH z9qqwdJL@2gPFPs_C!+Wd;Fsh>pg^LWMoSrmWI?85Ptg^aKNEs7iC6z^A2y#DG$4JZ3bHtiGt8O6=x z75}$Ue6RJJBKI6IsB$)hziwQP^0g(R8RL|ftx-IbskLLdGHr|E#(1rp-c0;@NmBV~X}S@3yk^>obbybr zQ+WLTR4?nRw?aeD+xSJVFS*hL)KYmhw^ujf&fSMi>(TM}Gm~%M0qsp|N%GR5PdMA9 zc>IuV*wMN}-}rnQU`aTw`ZO5+o_cgO-ho;zJ+G&*_fHxX-kOZMEe#S$;!Jzoe+(+4OduKn5`*35NMUJaae=lOLuU1q`MElykRFl{WcnZ8)(c29`JiR@&KFd zn`oWsoSg?AknKTRvf3rXHt~eFMd0?&lU{x_*w*AY>LX7_`xTt?@F!KFqy1j#k3LNL z_Bb1aeFMY2U7f=&zu{eZ{awhP(!$EDx_s30*$Q8+$&53gP`dhNUxX`Q@-`LA&f>=M zrhO?aa8e)c+ArlEu;puljhxZK)_!tYFgd&p6*#qFec@}P^8Y(mp&ny*JW!xeSeZa z>7e7i3c+p7_G#XCu4QY*&+u*QGK;S@+h>96DdMQGHjlHtiq8>NYqrnxYx&x_=Hq@5 zSW1^%7~Ow|_wsucpCarwNNatx;M~aS=((Sdgln(E_16vu8C1CK0q4BeqlQyV&11st z$l+W}>d^4#=I~w#o#A)o@OBTk=BqD2zr6MQy!9pU@w}z>-^5(>cfj?Why7HTi}DS< zZu^&ybuK5BJshB}g_$i7se>6${ylk!`A6Sh;ZOYY_0Yy@f98oK#u;yw;Y{~ihO@J< z(hG~8@#NQe-?^6YzO!`2livicr-&=^47r%W6cu6Ze8R@&=VqO!Eh}ZrJxSojD>iD4%kCgKmo?nJ~#}9CVu2-kqF4q~l zJSZEZzE9el){>;**)@OloV?TwSBBV9cau~en9=)TpjU3&#QZ$kEmJ!`c87Q4_aBG2 zc8=w2S1ZT&9}V+}zLCvFCac*!6|!$I+X~G;9fUzon);N~x90NR6Dv#AaOPg~gml9H zOnUaXb1awl9_nJxd}z!&tj#`s`O4>poZE3Et34H2Z``_}9bj?w3_ zon*gk87o~sx9ToW>`+!lSn}6&%_ne`kEyiz=TZ5#=sX+eDn|w}F4^NR=*vER`K;c( zebuqr_%RuF&ofwMwyv#-!8xHF@}N52n8FuRzlwry7JNk)ReJeH`T9kaueQV`GLE!B zon`N;r-nSl9UG|LgSezupMQ-bY__b!&#q@uRWplrTmoUU1enqLrRZJf$0d!k`u-Jv z8iVs=X^e} zqO)_&$NeAPQ@Z5B=t}m@&+oq`tc|6Uy6hg+i00sb2i{IzG?p4%W8H6omsB2cTAF?b zE*|SNzQ{k@?}6(HduUqYopO8F{>f>s{Jrz6mR4lxY%-KV`X#blnw$H0(*YZo=sBNcNymffv)Z`%#j9qxI2M?p&pR&S_^sI zw03K@zn$}w(+f+f_+Un|b>NKVX`%`LYEIX?@!{#b?<6hb!;O3!uPNLH{=|p3;a5)) zSLDM@gcTp&mS6Fq=qL@vy&dl_TeT@2vSLm-xL*D%vc{KVo+CBqz*6g$ zJjlman{6R|@r&6S%wvak?0)_Xu>8`hEj11*+@1K7E$W^5)noS0ahzg!Y$QW?@ucV& zPoBkl%#(NJ+xX7X6Hjgn@r$@3Pu`8N;>o-7YvnVZYzLOoB^O3l_j+k;jBQu%LfFle zQM!5DCS?`qc=E2vpMck})Oi@|n+U6M@=w7Psyy)W+2CSc77uEi>;SIk-0g1tkx{&r zHZ14iigUR+TN|67TEKT1*K>^(Kp78gC+$sZ@-^xC`H0(JOz+~WyWg)9yBW@Rz~NdQ zqrBpDlJW96p$sYq_U76Be8F>~B-0|$=cC+icf2x)>S~N`IIPIg7qM=BbI9)_umeD% ztuD_@x;vUB_SxlulC^e_FMP%=IB_uOH#&%MHFq_;i>J+NlP=$k@KXtwPB*|!b8mI^ zXkC0PgT1auwDExkK8^2ihh1AI&G(AxiE~idUCvy9<}Mb)qv(29J~s~L>#}@aTE^RI z6+a;3c1h`29-=x`pSgG7hx++<6#HK$U)^>c)lpkGcV+YMeWJ4A-=(1+j?n?mSm?Uw zQ<{K_p)If5S;U#VrhRUG-;X@VuHd_oKixd;dkt|-$qyRhvhhY^nbNYc>_XCv$FlqL zZR3^YNn_bXp?-?EjJC;n4&vFuIBGcfW>2;`nv2#9|T-axWhDxH5QTZJYBwCtnhIsqW zNz;#YWwIOdZ~y*1m3_{T+E2aFw|LIR$h;0&I#15DVV=bC=FmU>g0%1Rxn|hT>kvdrFsF7~L}YutM0|JU`U^(fiT-$gz!xUYg@#N9`pzN?+i3iFZf%h1Vm%{_W=P7dK` z#mjqxAx{d?sxw*MWw`qljeUeGSyPz(TJCOj7$!As%cHV3zk)Oy^SpC;SaJ3dS8y9q z-DgH)L^R-=@_8CQ9vJH%t&EF8^pV9M3wbabuMWz;ADDPS@}=mH@~3h80Ka-{tx_JY zDLIsdYg2sV<%jSd^YT@E8^2mQ;^l{i_(fcimmfx0@$xvo;$_h>Uas<<(j^y0_gN+5 z@>5}Aczo&**h1!&v zg{Ea880S5XRS-E4=BT|p-r3cDkN)!DTRcP=Rb5}2%*@yxwaz2<<13UYJk7@tbj?Gk<~WT7x2GMBMC~w| zjMM+S!W2pqL|@dt8{bNN0UQ`SaM6V&hyNka2n99rpgjVs6Y*s@1)JvCoriOtuKO3N zk&j~W;^@Lkb#`d_r23oD5Fd6P<9@*$T<73?cq(-d*BC`{pd>pBmOjfvM6UrG9sZx*6_ zci=Na3t4aHv&iwwItOy+UnFN4>jv;;dvIuD@gzGl={RY1>GQ?COwk=oDi8Nfxifu| z9hJ97M0s=P2D|%vJNG%qnL0e^?j(R+3sBXW+ND^(3XM8?gcF;ol0ExYJk|AbsOwAW zcy%%z6O>o+sj9-t^oAbgfAO%KXdqF#du&vO)u;?^4`XzcJ0B129o%Q$8^}`*rhGJ< zxBGhghtka32Qlbd%KPzdzNp@Qq1f(3t^oU>$%&-FiVnBn`e!paxt@--EVYqIf6{VixN zbr#VXn$92OgzvaB|E>36tKgzlfu`C&7y7gEs>|%` z(o?|IRWE$2b@kJL=Vd#cmw!5NJ>k53+%To>RIWobjl7!xx>;&wy7Uy3wevGc)7F)G zw>p0|?{S?!hi|J_g?ko%s`KaatEY%7*7@@Yt2%!^zp8W5u{wVN?Vkv#yz7Skox2hxUIlKtCp87q9v_cxzQNz8>;k{i~jCFc%qv759z)MJL)7m;~ zuFiv%kzkU?sGoi*zUKA6CVmHbU2B$ak62Eso|sJqxlHzHO@MR$zw-o3kTCAN3>q5+ z?>sTXQPaZ<@Sf%pjXN(7b)ovWzS-rV*I8luaj)}W_)>n#^*6-fsJ^Dp?g7jKbxW#S zKjwi@2=mb^L!Im=53XcNJbh&6=$ubtz0ljcZ@g=4&mOKdQXTakLWkVd)Q zrOY{q*5M^SL&83dc=WY_rrx_4%hgxJ>stHj`}N?p_Pr_iIJ9-LZ0_VYs4VOoiKC}{ ze5P*kLX2=AR}!vPv(K!oe-rX$W2@48Gq5>itzw!j$y-92ad@(qbTkP6)(~D}vC3)V z!rOtzg4zA$}2892ee2Sd9zs=GW@k#)bC+OX-peqx*@HvG@&y)mXf@ zwxZzy*D~QmF+3>!>6^f78W^a`FSpY_;tmkOz>UjyO>P7)9V+oTHZtW`yq-jA2mUs~ zNS|64#u@Z`A1UtvUm2<`Spr>43&%OV;O-34*#AE8@%W_vrSsPB2d>ADPo)%4kQV8} z5vh;7CC7vFbCY4cBw21(vf8s$4W>8LgT}*Vn&5*WJ*DYvHQDSQjd#Cc!+MbCy~|4b zud^;NM}C-v>imghy?PIS8N$<2TYrdr#C=NNALcK%y)=G~aW}a&MRxX3d>r#~7PdM0 zSSYJ_S#aa!kMkb$@+bHdr0_{n9Hv11&}x|0B()&JovUvz6yi= z(!KYn>~h$Hi8kfX8eg!E#G59kcH4C39f@7JnwS%&G@y$bD?_)w-`?KanOq^ zx`tiZlIAakvMCq%!1vy;I)}Uau$k8qy^E>GR%Pp9;bOO*D9&fDzLaWe{*i|$uK452 zx30ge}iAkv+?w| zfTeWFh0&ca;pwjs*6fxRmlkxDu(MnG2jK1GMLcbA@$NT)=j+Y$dP~!{!Nq*5b)EF1 z-vO>CvRk^YaOC((a!#wMR6%AJfF1 z!2{l*efrgyZ^kdHj0UHUer=xv5R?9(Hu!!>TkkXI94sG2UL+sx+C6`PVf zFZ9nJx;mU)T+vagu-5)@fYFgsScfa=^b!W-(tx-=cs4L>58Ymx>a~@6`H73`>&Bgp zA3ZeGn`Xy8va%gL*Oy2AwOAfa?T#xd^BDX3`(e{=whl6*|5KG0IZpF|-mUNaocFlz z{43wqKNRj~{HgE!f?qvFT(R%`8)4OVZsu2QB|6r3e#v`Ems}WK=^5hrKz-pB!md*| zw_p1!!o+<-^{2JZuYv2y);@oD{i&Z7+XSwPU3b}9Aa(AQ)%|~v7x8NOx@vrc8$!Fo zT@2|vu^rFuIYe-O2afl5oav4y zbtF)?&N&|bZ_;r(D|b>*VEG2|dl$b6b*ZGWllX)8_sYkd%7K~r%6x6bE!f85FRO#M zZ1=otz8O^q(xY}nf8tB6PZaidFrbrKrulVo+7#S%B5vSMsl)4UavZAYhu!}{00cK^oQz+A&>-HA0t?`%EVY#dm zWU;QL=x%oezVPjaQj( zYRS;q-8ljrI)hBSyIG^|-+$^q5s{w9Prn1=HSO@Kr-*1sFr!`rf2ZXZr0PJxJGc)9^R~EL}+i$2&(xSR3^p zVu>``nI`eS2=B^W*U#$r@KqNow+gt&S%RA7fbV~r=QMx23W#`jGjZbmV};ZF&Eaj$ z>U+5Yt?GzI{dfy;3iv=o{Y*5p7Zt+P`HbI|#dTZ6`Lx@UY2=CSl@n2V+lkYOmy)@O z*^|Qy^1WZ-=DnZ03V-^I-7Pq7t0VI1CFdtsoC8)ijJ$fBWm~ET5B|H2RD{C z#JV;qJ^r5~4vu}sK(KRuN~YnYD>>-C#4R+5%Tr6!E^x6Nq_J0e#`A#diG1V5 z4cf4c9~NY8=@hwPCH1*0|H}A7TfQdny2dX0XnK}jeaX(g*?1}%Tasf({Ur&0PguI} z(`cd#LjIJ>R`GRa$7$!t&Cat^ylZO#pRfAyM7EurzwcXEx<;m!(!#p=RdCMXGq|i2 z;MjtW&aBMV4lGrjA0_4gTJ+zHCx`c7J+Cr&nKEgS?<*al z9<_gt#}MtGyD>odZ%yW%PXg6NGj;KRh`wJpcXjskm_~y1Mze3#MXYZl%QqhjX|*dU z-FH4Sw>pPn8cQ_}Ci)xARX*XHbk8}yNpfgcUk@Z7&2S<5kYkw2r!vZpd>rSo;1*~1 z%JA8INtA!~x7jG_?j7M^wGYuCx8uA^w?7nbVaS0yuJ%WRDZsQ3zdb%Hm6 zuDO{QHihk50Hu5}?ZR<-MFFFEdRAcr*z&lToJjp#s7x!#$@E)ko(TDHz=+nhAuoCO zn$J%ijq5Bw4w}jG*N6NV4XumrM4SIb)aFl7zovnQ`uBGA`{Tyx*KYdUMBvf9UAfNY zI=}N0D8tyOai^_;&kpWON&SSV9*{lKF;u*$u@OCF`fO9abU<;hw_zHs40&eE!IZ~x zSy|eozR_-Hf8JG_t{$7=uyVMeq#i07njgDKUvs?XX1&|o+{=4BH}B!w=3j;D;ZJk( zUVilyaTKo2<7{s3Bdq4;3cr@N&CQnsOX-peqg!T!ei>m)OX}v|mZpC2@jR)zlFn=Z zxSmXBcItH{`(g37WJtz%XLV@by6;%Rm0tgEfr7mY*OBm9Oe+&q`Wmc9?*C;7|NxbZB53x$_eSdzrSATTmlsj z+&7e~Ly@toisefdEY~->Lvfgd&3g%d z8L>qhVG%@e#Wy3QEuOV~Z{_n@_wo8N@u6f@g&E~fHb`S3uSFbZ9ddU_X7MuqP19WS ze0xagyLT_QUdeYE?T3VP)we{~`qo2vkNeicLVVVKX};CB#zTDTTb8%mssY*v%wv7) zYQm~-Rr$62THl%kmc}I)M)zs7y>!x-I9gtI-A`EUx9`&s=lauKlLNpMWaQ{f>WA_m zFv-W_4UL78d#?f}nV1tu^U@DVo}B=eZ%0qJrD+OW+)u?9l4onc^@M%%92b=Hg^k(m zE@tN>HZ`1k@^Yy9o8V2!$iy}0`MFnpsTo;kHoCJzFm895ta&lY&3%GxP`vY#n>)go zeI(=$6f!5u?S8Zy{OfqTIkxS|?vxOZwkH2qdM3a8b$zvaR_@c%dAco$a4bOLxq1s0 zZ8PY;s`gl^d5DE+m?oN zOJ)Tw4cDG<8yM#^F}^tAO_;MWa=Xc}owKA<)!N=wnvIb=l30in!&)e~L zbKT@jYBQ|xyOWXLKAe`#aw^$5Lk;wW>&bAQ+raIIzvxrVGZBCFC0_gHhHsW4_&3RP za~H^i#sId`e#|eTce}OxzPd5qopuRI#f)!SwWn^-D4+O1pFfTTq~<6?E1%L+9gXsd z4|JasZtRkayzxC_`@FV^dx;}0VmaF9)AVPOmC&Ef)J~kd=3tml1#1nkLlJCafL#ep z`%lW(TwT7Hgt{xe2M=B8b2k&&%OFQXsrGTbC>3`yQ2qTK6i3?NBEVU{nB>E8RQO| zV-$Xwv`=SbS_x$>;+m89_4ypcbVV=zYee^WL%I~M&C@NWnfc1LG}UhLpVHQGhGN_e z$stGzzGm*@HPY<_<%`H1KD>-biD&F_}3=J&@%`K`xgb!_wd;|Z(z{Rx5AFYg!8B4wlXFRV%9 zeP+$etHg2oC@y^sHut&+$=PWf1J_Qzuzl-8h3U546z2qR6Ljoo!0;(u zi(xFYld(l~nSwHQDE>8s-38p=k*lTqEE)<=N4N{YaUObMl3ly0h2u_9A?=#Qz1ZQM zx3*jePybqITuK<^58MEE;rak$ppf>X!0iS%x>TKC<}Q|6=j0^GFI72|BL6f>9fh`jV9 zCCc+_co4g;hE&j1Hb`K%nN9WW{I7fF}2ljL{ragr`X>5Erd6Y%6 z%V7GCSzwK^DRF3^i-Qrp2QRtgQf>)h^K0rpGCjG^$jP|}Cu2p}?y|@ve9O&$cv@PV z6%up6MyW0R;pOt{n?iD7SK`5qQv74e*FD@_NKdfFY3b}x8!h)V+OgOMUTzSM5#r<= zb+52bFNF2=Dp^iA$Nj8Z74{j0uvUIgTX<;ux`MuFJkHIjqYFoCteX$}aIyzHGg&$^ zkuFkwUY=Q?@9MzO5sp>La5r=>;m*-bN!x~J0mJsg%P^fWUvl+m2^5CIMz?IgZT!GU zC&!Ff68M*_PdtY-)F;a2j>?Esu}daSBH7ggGCI!_o$E9ghIz7;cm59D#sBJE_ZjKe z<}Jl}K7Xh4-wpigDdMtuN4OQjWbrbb<~zY{zI!q6@qG6ZzHPp<_?qut8l|iGF2iNC zZNB?!!fL*I8NV7&6jo`7?kjjt6)$1AN6Y@jqxu8*9NXK zhut`*zL+W4i)Dy|FAR@7&KyI#tc)&j>-J$A&tF7bt#vEQS!``aXe@s@xLo5oTdr3E zkH>FY@4gDSp0M7nZ}tX!p#6lT;P1@c7&kbOn$FdKi)U4ruOU70kF~$PU(28DQ_Tjo zh%4T|lErIIzPDQ?D5q(@`jqwy@ad{Pp!YW^AH3ThqU5{30aljwn}O@Gu!`F#?2RF8 z8J!6UFg!(E#)IN-mCgA39lXc<{Z76WUp#DeApU+=lx{sPqiy{CZo-Pc-@~u9iShUQ zfTeWFh0*N_vfU4np>3b?b%cErUq~lX!Z~fBc=z?dZ}jl=fVuJR8^FB-9GaT~?v3Ey z1Fr0Th_`_IK#pd7Z_Hc4e>g`skH4u%+XYdc-$wjTdHR8am%C1mhC&6|?(Ky69AUUQ zbq?RJ*O;E^y};|aU9x6N)BAzPeeUkmHkTJReAKUQhfMVW;_3MyzsOX&PjTITB|Wv~ zs1HhTMIU?^3m<1zOTGpF=mS0cSQSYXYg@s#U*=&elM8e5<$Mlv5qz`ZLoQ8PQ%CoQ zI50Gty{iwKf4EhmOINHvt+Cu$VBX~y?jz6;Uwu@+Yw{`Q^LGy=nRK6=oUKXip6nosQ?4{ft9_TcSPUjW>RzoV^vIkVT+g(D;*MAh7uCU*q-$irtK!3pPyb==o^_MSRZm0RbrFN?1} zI2o;%0#_fryDTCJXpg|R^EcX6Cb#8_j5IhaO}06OTU}zghc9p!JNi~Uvp?{@csu8paV51B&U-13nx|Ot z`fZqi5?p9C({*>_5U88mxFCBxq|@TD|L4wC?D+} z=4j~~8>>#|;v4=@Ki4_`uS7iI&iVK6ch(24EyKIo(R}8$NU4@|t>V(g=?Iih-xiLv z7PZ**Zjjz?!&hDXkL&a+_Hug%&|Z%B_H&`dzEKteWnfYwZyIaQz|L7?ZAV>Q&m+-$ ze(?2-F*x5EFG#QX>rq)4cgK16tmT}|NhqzOUxpnT_*(mysXl^yZ(0{D{K!%&(Q6@y>nx zrMHBR_jPKzX@s#hygQi?j~y%J33t$9znhwMzFHP7{08kWsMh`gyoow>Pgs^g| z!O213^Pf@{<)MM?FE-{EoKIJwc(N$Pgkd}n%4q#O(7JD^V~sP|qV2)!&*~D2J9mU* zkXuUUyO*fY0AEhD2O+uT7g4=Nw&ytqY|d6(mD}sD9xX%rJXzoM`FOeEH%DpHcc*5Kjjxc1`-R#%^N;FgaA9GSrLN=ykYy>93w-qb~MM zqcIp;z2lS1VF-xq1^UhrA5I3V13$kChP_JH$rbNcKx8@YdHTP$llhM*eN}>og8Fwdvi)-T&b|9(RAow~eg|_gnrn?*5)%Jw;q`+)b|V z<8Bkb8h1s<#@!ZRDP3}5bTz)^$K7Va=1ZvcR4ed!y!HHZPV;HN_0*5I>(|Yb+!$tZ zsE?0Vzy2PkTx}ZWC7!;SBhv@a^glR{aNJx_aC+$OdPy^-u{%pgeDZ&n7mVSGSrPEm za>5v^J})`>bn3J|_o1MKkqjd|a*gZC3cs-!-epE%g(EEAT8C|*&u`su8(@r?w_e|Q z;lDv8Zc0u&vx8Jl+bDU+zc=45dvCf!_TJi-y*F)%-tQE>-#L1}OZL8T>n%6SSA@#- zxL#K-tgi-Ae|ficWp$&ZtEbKGyJyjCvu@|Ub&IH=ALbm&SB7YzlUH!&a^$G1`j$vx|>*~R~|nTze{w2ssnm*r~$pNvdS z*U-Ia?38SHR#Z3cyiaUx;4MJwAR4c1ZKL$i8)))R{RAn!_&)PoiwwBxm~mQ~t_y%Q5aAPN(VT zNWpE6?BG3~Bk#et&4U(SbL4j5dWyK>9QkL2)!O77el5>7NA3WY(j^y0_gy9X>g|Np zzPfa;lim{^3jx1}EnIuRA+pWlXw~fzpACF_J=|ZZ##kU7sNzXQEt(;occ&NdihpiB z-WhtU|5^N90Y9;D0$VC6E;8JODNZ})c2vUSMO*4im-f;k*H$d2dDdRL;Kyg!tq=S7 z%Iod`U&OAwYY8{|oPLPwpeNvKbBik{<+&`1+ZS+i%g)A(V+uzYlbz9CT9*D0Mv}P3 zYpn_INxCIm>GZw#0vF3C;^{M35AFo6=Mx?38zr&5+mixMn@y6p`{fP+zcugl6Oe)y zhG`SECA&LVbCTd2{kZ7-L8*_Q8`4)Eu$AJT0Tv^pINTrZ)Dg?N@7?qztwE(v60O~d zbO7-hbn2MRL^kd!9OKS0a~Y<5+?O=5K|Y3piF-4=-L3L+zbG$#(vzZ`tnA&l-yQgL z140ZSH}IC#gLD|^w-*-YJzFZB&236sFwe?X2k0h&dG?gd>z!%% z*ZTBSF0BXM;Uw~5w6O*ArkerwAohXrjkav(2-WUN?}8{j>fO!^AHdaj{v2@%BL}Yj z7fD&^!-K5leEpw_FV_3JdY36fa`TlT9~VXW7+v2N>jQ4h7wZEq@^vI0X%Bhihy4Se z$20gy(7T#X&5KE!dD@-6R9i|%(hTT0~Yn*)$>1qCaQl0*J+@}$KW>yZffS#Kh-^FA9oOga++VKas3R>v^-hE0m z$=EHfoqy4l>3VjSmaDHa(B19y`2Hm;(_e%#J&XB4yeS<$=K~Iyj^67H4i7G}sbPJE zGr!EF)s@v{g6Z10z{BcC=u=ll77njmKH)Gazi&+rJBO+4M7sgf`oT8AN0^#x^OM?3 z(K_JI$y5Eh!K%ymAK~$_nx1_Vtp_p~UzH9E+qFz8m<~rfCI7 z1McN$!L|V-sIwyzUBTL$ruVW*QR~+v7|JU6_NM8fC4ZtYr(3U<-c{W*pKk!)AKft%i^Hw&= z`Uj)DF~=tv4(1{+dTbx!5Md?jU&*iPSYb`pzY16yms}X#SI|%L=VFEkyBWIdwk+2o zyUtbMF*5_X=P-6$&Ayrt=( z;A6Q~d)PWF^Dy9gg6&W#g|Sk?yPaI8K3SZ{rTO#c1+h}~2ME(oA5V38HEEk(Q}5P} z6THXmILWuQqrz4BQ#(%atEY%7wquR3YRAL;TH4l*)4)=?&f(*X+@OQ%fn0SGrCu-t8=6xhgj|^HDs*Zj!bp|*?Iwe8<-AY*5wg> z&CFyv@9tnPGQMZ+82M_ZTIWJ}RHm!r`_4jgY)o*o+o@-7z3}9+!QLffCAJnUfVf(% zci7#q=GGl~V8&|;)s!!!luaaU}O`P7bpPh^vB`Yw$8qojovJt4RlW znd7abc{yqeZ`;7GU{CLUv`>yJ#s>!R1m%h_T!vBomiOOrjwGS4nLK%TZbkl($E=^`vMqA8O9fyNxxE-$yEJ{{U7e;XfWxTfR_ zLC0@vq0jTJd9oO`IeBf!t9YV+puYdV9$Ya_Q}Tv1PE(uGHNJfl@R)D^Cd3!tTK>eh zZw~Q|Z!=t0E?ZZ;g|On=8w0K9T@cYCWux_)FfVL%`T*bduO^Q8v9gS}Bz6YX=C1)J zK6E!@1^#;-F!7(e>)ep6}<^(zbEv zgTPX{KinA%Wj|hXgk$7@pxK(XHGk5<1lRZt9&gJr{pBpDCOFcrTclMyOy1y zw{)K$=9n*lpKUKoe?#)ckbXYT7PleYPh56ylhl0!zp0qH$erNWR}7J&Ri`S8MXa25}nKVQcc^5J%&P@+bbb zda?TaXTp@%Woz;;Y5b-(^*5V8f5yA!HspJ^2KzbR%CqDl>zA58|24!f;)?Ukj!j@5d(skslE(O z@{@CiBW$oU_zG|*L*d_mgEPW7dF!jdB}YNa;BFsFve?(awdZi|Y;H*F8{laUpO(cA z>3s{FWOr?haSyw&l_{hiEWpA^5ue}h5RN4n9&{!fhE!g@OSoMjFGx?Tt^kbF!hH|i zg*luGA>0qZU7W}HLb$j;0xz2mS6_Wb+1q>k1l(@nLe7NE6~fW@DdBnumzAL;Bzcw1 z#?6F{M{*|oaQ{+E(=Wlr@{r~r`8D_za6PwiHui&NuaG z?4|yOZ+p-m_w;s+?HzaJL0pQyR3|o8ouJcxg+JM)NnVniq;;R>{{K-uF<$&mzia3* zkZnwsb0@F86R%W`EBf$~N0X%mv+Y#9v?ke|ruyFK?-)vD)Xl7@Cc_ym;dM`uzW2i~ ztYLAB3NSqGK8WtIVV#}8DyAD7LESe$+}qEYiv1{OQIj@CQw!9i%J<{TefhK&FY=`1 z{DJDyBUWp*5|wBf2Fi|Z3wgCQlHQH~PUAfu<2Uea|am6uyBVjeh z--ch6Npx(CzpZfmIlAP+=$5UKHW992iK#EGkv0=19urh=S|i;KxSmWuT2?z=m0X5V zy=m`E?cCq#Y3bi~*+KmQ=RYrnfyB3Ve&uJHgp$R&GZ&hxvB&fVIK3wpHD^iIZ6*(A zgz_jBXGr$-4C4xAXxQ-@%vJZTyqDYEkavuC#Gh`rAiOL53&UDaGAR~(?yRVd1^7Rn zoQd{0ba!^%uIx-=ZB6ECb2{~eW8)=ORxHC@e-v(;$H}Q}K>2Y)d(_yNECP1cu2srx z>2AkItCSb%MZ;mNxdZjYc|M%K9K|V+PvdOTI5(Np-3O_ij9~XoCik-yo300UC6iJk z$mqK+-1#A`{fE7OJH@>aSa$Ny=S%R55_j!$ovoSR7bocwnbmHVuS!7e_w+jJ$F9M#eg4YTdXO(~`I>OwKzA2+iuUyOROFzo?$gIpe$NW|-4Ob~7q=_J z&VNigCknPP>0DizmXJ2-lv5xbullo6bl4eON1?QG2j&B>o=f4kdRneE#oIe!mTi$Y z5u$jr&=7|xNqf?B63f7uNnJ;B1kc+MZoA>!MfA>NVA^MP_&F@~6=;1)z7J=P;lAid z@LCz@sa(5skKWATnOd0Z)fPHGyDe&qi<9xu!OOXxRX0;tM!5WS1op^-e4Un`LuKr7 zM+}F1*~=ZkaB!^K`&2GKq2l=H?x9`OMyCaTAmy}E9W^JkolO}Rcw}2w8PMlX^v)LT z>yo70W=JkFUv!1F|H zER@bht55D-cY6iOb92(%yqh@oa3A3xo#*noCHQ(_@ylwK^St%nHcoVr7vnX(8?W{7 z9`jl+-&P+A*Ug`JZ4bYCint=L?Io;ut&d;Tv*;MFUB-J#ms}WKvweCyduQtN>em&* z)|bZn$hjPN%x9_>@mW7`Js*cg>H}w;dTF3LmZ;ygFm*ER#P0M(1hG2ZM|#FT8e{c6 z$Y0sLsWC3^vns~5qyN>Tdd}0dGe>2({+wU%nC6S`(U|7%n9uZR3{o89ivzsJd~uL( zYkQ+DzBmM2PZ3w-iz^8$zIX_~;tSC+zIZ6_DP3}5bpNHLrEbqkbHNZ{r3>Tg&G89# zVU8?0;myqxSAc5=cZ9P)d7R>Hw|GaSnZixljOlgmnkcSxVJ>b7ei*!TU`ltE3rAV6 z$*|a^I|6Q3h?~bLp7dUdx3aJpqWO7E@uc@snt7b!N#~__*f399f~o_>+a2QNaf;Uy z;!P~9tSrohB$2f&ZeNI7hDVTh{z8@R{DQlM#>E>0J{01`aHThD=^gRsXDpqAmQDm$ z_^U#AchyOhud74&7_RVBAv_1uj%wUB`qLqN3|IKs5dIiO{6~Wfp*mX(;bXYMuY~Z` zT=)|qd<<9kYeV>j`Pqdk^0(z@ErgHZ3ePm-+Hqli)yIg+aD5u59w&Z%N{F{SiOwk4 z>WWXF5#q#frSqILo#mQtK#%L{hBTdeoZ`JWjW&O3Ombvow|GhfC2NXK`$)wakP|-*%4u`b*)q$alQ1 z`60fodA6db2ph@id2NN=mcjdVpO)sM(-<}FVna*yGunkM>`d&-Z0%2nQGo9Tca6OsMuB>*v&aMoj zded3AKi|%p3p$$<>F~UsSl^7IrE6f}S|vwD`r#$=vM~#vp3htkc@#BtzC**6{cH%} zSsx>17Q}Vm%8%qL<3~p8^sa25CZ`10@sXX2!gxO{K_y6CX&ug9Tk~p^W*h79&Y|9M zuKpS4veruQu2+C5ZJp<)Nt>S>WEOAR1S2QeLdrHJcO?-Y`f+C zryfAgh^utp$G(ozRoi|SnM!$VrEN{W^e9KSy0lb1iP3d+8SkvswdC#p)E5?c-#Asp>ptj9-|Hol-ELU-Mm zMpD}PZGk|%r}9{6seZ51FZEll3#p)i;-p7Vd5ps=k2YRqaaxlng*dhkpT>cX;`sV4i@PCtN{DMV7-eyb zX`YrmtwBCFl4g0?u={P47I{=Y6}K#{XN7oL52)NW)<1`Ljl;m*9{h9p&d1kS|GW^t zh=XZp3q59&_G=zc7yF_u!vMSjJfPhUE+y4Uv@f z@U>*JCxcV69*2ML+03t=@J|K5CB^SsSeZF|QvF@Hr-R!H&O11+$2}9=wiH*N=Ci@I zr?~nwB@?{>e9XT-y_TjI0gvY+^@B~wJTC^WC)hYfoL}q*8mp6nz64ok-+;fNd*9$_ zWe-RA3n1TL)ebKuJ@v!#^|5BvP9!~l2!b13a)6A^%S7io$1`nuH(q)L?=dgEl5gV| zg?l-F;-y#dtEY%7^3tmbD_(jHzbb?17%#n!_mnQVFuJC5_<}ku{GzsbEn#y7!akv; z>GiEF_%}yr)tN<0~&A72G)vC$#FJnV%P@3=Coz* z!<|96je^a)m5+-n*e1cWYZmAUwpp+v8BFQ635H9JV}afsfo&CR+4mjgl@K zde@~P*ml9@>R~$s!~31WX^yxpP4uQvH$-7=JTB*%7o0zH5ffSV4!5|m`?Z&m_qFwS z&Rt0qpS+0x8PC0iG>zxl;tEY%7^4vQJE1r8Nzv4O3 zF`j!j?#ky)>8>=d2yX52A>QM5`7qyB_ZDC6@)6*A zinwCCe3Y6#QUex3ifz}taK zXA{E}etQUy-x)4v@$-nn?+D=yuCeAO;3bvq+Wr&Z;HO>`f$IrpB8pA5PWzSH za#TXg+x?r}tl^I=ES-c<1B~_APm`CJ7xeuZ{$k%rYHz`s8u@~Cy|JIY>G`S9QlUH5!Hm|oMJpN$_5B_G%Jly+&h-E4 z8-iQk_$S`uzVSW2jsGpa`o{Nx>nY-jed7m&Rp0m_zv>&JV}0Ytyr*=@h0&GXD?TTp zvG5-WYhz*6Ik@&?+joJtlNXJJ23Mc?5%7}QM6PaW`U$wWuSjOyKwtT1;Ch0btFf)F z-W#<=`M5UDb$I(mWD+^JZ@eE<0q>-fj!=%ERl_>}r{qICQa)#@AN5s6xx#SoUONx( zdsiN6eDd=^uUwvXg7|P3*U_RzxzZn>-Zzi|vV8p_&`~>niwPy>J$>H{UcC1LbQ5~S zADW|MTz)So#^vYl7-#c$8O{9OQylN>Va-<-Z__&Yv_4W6Z$*78qtYA|CHtBQ^2VMIJK3xYtl)`5N z98KGDZ6yo8SO?F-OONSzhMBlFpM^hB2lwIsn{=-=_|hbb2ic(TYf|8dM z)qhJdXDaOa*M{|G^Sr6*ry+#_62#O-Njn04Pz=M8Aabs$zsi4 zlj7H|f;9tk*Qtbcs$ea^%nzwwUnk9{g?xZUeqyW~>g?|w9mSZ=-O`!^_`F<68Hzd( zlfC3{oNEdvYkR6P4L#Xiot@QAaVCQ`3ITPuRz00OY3wc6wG`4RA?)+1@#Hq5wU+51 zWru2io50!lr!+V6C;P42@~cPVpWrtB-H!Ko{JTBhHpW?ejemCt@r$_P_}4~QjelqG ztNe+A%?)7RcpyttU!QC^I_3G(vv4CkYl7jaVN z&JBB+SN)f>q{zU7cw$kX_wY|rH(Qg*g~gLH6?R)MZl6W_e|HIGQn|LFHyIyiIWjpd z151}C>XRJE^ON=^zTM$<(7O-^>|Pi^Jo4aIZ*wU)cYH74>cw3>>UMxQ7i4RTjcP5{ zLhkm6&`&jGw}}=P%t_g!uzx~+w|e?cW>Oi>iptQJ3=Iv8S9-XjBy-fmE%!yBFGsoD zMOSzJW%>pOFZWiPy$78dvjByP>!;hugZfr^KQ(#-gZq1j1}of`BAuusmV$hK#P@d( zwDi88%8g|&eYb;`?DYZmtn^sFjd6LICdRe9^Y*?^3vPXSJ9Ohd{bzhzzqR=4)8_!U zbS3X(xMH8aCt=m6cLZ8h(o4gWve9~5Nk2ZDIO@lHYb$%XpViH49l+W=Y-C||$@z8E z94`1454TM)Z85s}S~%&}q0?8JUDU;!j@CVZOHK-KZH8)7&*^6G1+LP&w6w6~+(x^tRG+>KDlfs z!9zb#czk3lyxVI~KR6Q@K4d4CyGPQoK`@lLaOU|eCoxG*DA^t8`i zEco8)++0;NXtpo4*;3yp)QgJS-weaEjOiZi z9~>ST>g?|I*HYAjd><&^lOuljfuY!j+P+k`>MQpnJ@vtcHW;1#qobYJIPV#B{V)6U z>59gA>(bD*rOs;!MuCSTxcBijIDF^=)U4%jqxpb9v*DVNP1d2o{zE;(od?dt z0WU342QfMi40LQyv>o}v_9?Xo+W{YFFZ4kQM_peU!Z&PhC93UmuU$#MEWHPZ`1h^r zS7VEq+Vx{H7wN6~7mnAKhMiWGJ|+HWhCg=`-yZZ=dxtxFD#&^qV3U=8{kPIApDVm4 zGJnobQSqKkWH+|g0ii(JDtA}N_x|!W?AuBL&ON3x&bHcwQD8_yG$@on>j#n(J>IdDBiTydW0C#>d) z0e&sdN<(o6fu(fGh0&GFk>8))OV}`H_`A`=nyL@DiW3HTyaF#Hf*h-9LQuO%kF<|4 z6|U_L5#5+S1S~)1OMi3)a6RX4cVm7QYb>K6p0U25{det!eH6PC^#zU9>I);#QF%x8 zyVgh#WLEH%dDgDBs7)``iJ?kU^!AG$>jt%*-mUEp@*cO{A-=7B6z%|jYP&1>)l%L{9J>^}RZyzd!bHzU(kx$AQ7 z9jHOarGzC6h1b7$!osXpe6XI*d8oAM^!J3>0@N9A(3;#KCc zq@1kD1DZQAl?VBBMQbL|QvH|Awc#Gv0q&|(3mh8n@9gUBub;?EkQx1>DgD@9&ad1? z7o4~Lls9ybp6zXPI3ASxYN(3oYZ_*=TSIYCIySzS=mEWAa}>7`16{$UKrs=hlia}sekc#cv3i{+Tqg0pR9U9G;Zea z6q5fRe-|*erdkMvu=2IAIhjt6R;z7~0c!&`8SGKzi^1L7>L5Pff^E@VuHF738>6Q( zZcVUnJc4OsNJFq~*f2_I;d*C)i^jHu`v7wAcVp+-o-8gdhdJj?tm*ll)}1j%b1Sgz z$>QPpRDJ04bv6o;9m({>+yQzXSAH)Y4f7Uh?NEMWOvuMs&^kAnUYyOv5v^UK72RR0 zJn!;!0@UA+f$Y+JZPacT$|iVlXr!;VceJm!vxj~@zF(`35-2U&VD1SAYh`*qJg8e< z{XyICt$6DDk6M?Hv-{eJpWfYOao0jz(^ci|RcB$ajmgsFY?sdXWIl}5#tXAtcNXf9 zV6^4rqOGN$1fV^sDvZ-#nVoA3`t0oqJj0q>vWn*L$3*qUdH!@IrNvEuWnXXo`YMB} z3^oP_8|1m=Yldr&Se;p_;kqZBb9Q-r7-=DnHD4E{72W?i+#KkE|SF!ccws@iA$B ze3Vyg%ykzHg8_F8_f*C>F_8n13*wqALiO`Z%9E&@G?mU#M{G*rxR8(`ZM^ov`t2T7O<2qxiGqF=Xh^kGWs(K zyMF1ttp04m#j?8UQL_4Tfa}TZ$r@IaxAts^_VxJRVNTLH0(Re|UmjcLK6TR<`||}3 zetB&PlWvFc4Ain_XUTtuLoA5NWaq^X}5>J(D4eJuE| z_`mR{-#`W)=pB&c>mB4r4x*glWn-joJMrNSgbXUr=!K z!3#tDj|M*IXYQA*wt{c@+2E^Uz{7f$monJDF%Id3&+PJ)1F9Vvj08K#erXE3C4=cE zA*WONrHAz{U<;*qzw+OsCuZgx{`rjiqRobe6UL24kbNd9^XLzw_T>)ZiNVzs0i8@F zz3Gdi_GGPuuLx;@7zD$c%3i*HL+#Xqp9wZCSy;(gMcud6*-Jy6mFxQ|!>jZ25~F>+ zQ|arF&Rp6YQ~o@`uwBVjeJzKLJ)v*_5k`exo! zy5z#>zAKEY@t)-?2pjZPs%{q0?m&;*r+5`O4d)=-_pABVUPom)1cjfp2l5)=+UMX@ z;8DW}{#xML=Rj$#HB6PeSf)bbI=$E5fX_8D>9jPx1$aD$i(jd$e8s|F)b#&2&U-I(9>{dWFNCoeYNmFsAoH9|-yRiBjrv$Wo+wAR$7 zo`2uPxA9t*Zd3AZ;Cjk%W{+e(y(JgjfSg?n+nl^_9XfeisVx2GUW>ySN%?Otlxc__mnQVFuLDi9U03r>KpGMtolYcrR@6Adw{hA!ws?PZ|~)MJKx-J zzkoS`3-f+pJAk1@a`(ZB)(3!{3(TLBW)p5f6P6GEL2$dk;l>U#5d3Fw5!}e?;^M** zb9(5%3UgsDOt0%&J|DtgoWr}F_9*_PIecY)s;0%EeWGIHKBjv5X9zHU?aNMcamF`Et4}qVg=nE{FwJx`wDEvpkkAj!| z5gUm|FlcvU)2D#P9o3H#UdH?kxOjZh7$e`9p9QYx*Z0vHpcuQ+7;~kQLCg=er=dI7 zJBK;z%BDR>UWZFOQ;y~RLvnq39ECweXE9?PANx@{1`AxWfnP7_;&2CaekVUq8S->( z{VAMw6BPH3E}K`ZR;PU2`{Gj*Uz8iZKp6CHbs0hRRrgKC((|Mpj?Vh|QvGmWU-Oq- z`Yu8tjX$)0&I!I{l1YSvB~M|QF~H>I~8h+2U6 zwPr5LpSQjqKGij|#;C85f6Xa6m!r1xWu2_9a9qk{#Mtkk`G$`T8Z-wpHa34Xs*5eU zU#}Z2`d(!5bay)j_%fa!($$@XSV5+Gu~oh{CWqZMvdYK5GuTN_rlHN!`&yKqyN_vf zKPJedy?8~l?esc`c&p)D+>Q4nw2gKOM52A)XddYEta|%~>MfEp_5Dr$Bxl;(s5wV) zn{&R+dpzfShi{v6EWYNPe*~_lh%3%H-zBW(oPXli@?~?*_kpE!$%WC?+35V7^DV+^ z&N+4U3&7d9Et-gN@P1UW< z=jCfZH?H<9Os>im6jQ+>e9WrBnalVQwj7zY>pzo@`h)87U&4DVEBzFh$sk$2nv$O}KENjEZqfb^FJ}HbX9WKSn6y}3V+>sv4{4#w;YqF<`rO;H2wXts_H?$nX zYjJqPL4H%qTR%FXZG2V(kw6$%MlW~_U9nl#x#vc|S#7Ga^9-eY_%VcByi>@Tdgx_yVq;TpPJ zw~^xab2n4Bzm4j4N2LEBVjf2Oe;)HHGKmosN}vOIWv*+gVvZL>IWs=I zATVMP;c2N&??_(6|1s|^Z_jv7_$~aYKinzgTf8T@@!nl{k9lt^-^O1SU%dAxA$}28 z9E8e>+zm`wqy}JQR>5>bhdu0jl-I=iBJ(-eDISJJB)i&UbYE8U#cknT9soo_Y z{V8xgseF`PtaHSiomSx&L%IL){^9Vfmhp=v1DQoE{|tV zy4`fokAgQP6SxAIIXtp*k|8~VHzyMZ{PFM%hKDeiTB-yu6NslpqcxduIGaYgAHdRZMY4|MCa0+PtjnfClmd(6*LICv?|KS#$;jukKMYp-t{4+cbjD5 zU|%@9E;|G1vhNY8utp92(#Uq#9rsR5}^5Sg_W*7abhm$G% zG3c?_PxN;$Ng1-b9Ck?jodxQ@e-`E8++;liN}2SoV_$i|=e2?DZSTSE-XV7a)Zg{s z7e=_OFM>0kxM$#ravK=xtFmus%pVtUZ^U%-;Jwz3R~cXnYUYXx14?+ac=rzR%I8SZ z!?Kr61KhS87#wB?U2E*rXxL<8jf+nYQh7<72M`*a9*zof#7#;l{^1|K&E+y)-nMOb?l#m5zPw_p_={#HZ#z2iKPnjtOe zO^Py4*nZ$#@h2ky_>z#*)F5U_slHO@k3b!YfiXNZW7nQp&nO& zao3r4Gdt(p!5eQEs6KOHR9?47etGXOm%r^D>Z}aAZSv@woTTS}@-`K!d)<{6ZUA*- zg;8yM=S*d#as14-xqA0K1)Hd#r!9eF|ci-sX zs8n&j0~Nu$UHh1g?%9kz`ct~Gjqb&&U+VdR`dv#Bv%^q0c2!clypK7X11?LQKRSDe(j-L_F#k1)ipLc>ThXeF01?W zbx|(MILT_5rB@~t1zEHnnAPVV)#r7Y+^O%q{Ka}BTMxy!o9H8Yin!+FV}l+i{!kp_ zkIQ+F<<)+^O(r$kl2-?S>nY->DAwG1Z2yQOcurm&)IQEZeFLPe-;L0j}px z%voWdqrSP;X+y2OigS`#-*@dr1;IR#9x(`jto@NmT>Go7^loi+fcLnq4)Sg7p>X^8 zQ(GP4S5FaFY^y5?tF^^L_*GkpjI=1ZvheHie#epNTJ zRT>Abr~X{Q`gP;y`obR4Sl!0Uscn+f$D!)i+e7LgpZGbg+e507|3-UA!r2}Y?8B4o zA)O!gkR}Mjd{v(hHj(N9o+oyOaaH+{1wy>PmCu{%Nc%`rp?(#kkj@`iN9A&DSe0>1 zqQc2wujR9&5{+?`%*~sJ$>*lEMrU&>y2rz>JW~7Iu@a!Kr}DK!NpN>Ip-8&-gr}o^ zFr$1$W3av-&R_oC6~V24&hj4j&pE!W4_bWn&w1c_inwC`Tp+Ca=OVwBFYBL6z*4&8 z!swb$tZA2y9~Y1EelBTp9yhuh#jpP#0j|83yl!b3eB6gs&szVlIQmI)0>c=_$g&D$ zlq>^h^(>iI?Qi>MZ6Yf@r$@(AALMw)kmMeua(XE=o5jZbjgL$)qJBl zG`3S)BP{xVP8wC6{kG(p#{iRfb-+1f^ZoUDV1=rM$28wQ30&M))mG92KN+~5aHcZf zFb&(P+!m59)xW=|GQt_NaNaxn%-Z;=q$z$W=RcDcx>uL9|KU|*sZbO{jsKo5dhm?e zRPWZN&*VLB(`WH*?WSGAbOd?1 z=y`-KEvb`NTbgbFAGeq4O7hVQfa|H3kK$U%1jrbwy3)8^I)q-ljk5- z&o3hFc<$5pi}{n@`+K{UD_@7|qZux%L)C9RF0&;l!{z;sWi*?Tyq~iem-oXF z_Y%Tty|YxESq{bvZcX!2;O)RCoF^}D)u6HAuYqp|?tHsA{~80_nCxxhUIuOlIQir9 z_IENPRnybg+*onf&BL*H-d}%q54o8{qRk|^&IneQRR9}c^@j@m#X(o5l#Y^c&5lO)*s(Y z9yYBdN$yPM<-LdMoFEjWdK`=|JvbT7EmItH_jo=wiM=hzL@Tbu6L_QRk*dwfE@uO4 zO}M6Yk-K5M1e3xyB**v9EUn;`jVR9ZThJvFXJd*R!QGs{D_UnfZ=_6R88f*^_)W>G zGMn0ONv|0OFB0vDX5-zvRF7-YxwfQt zUA#ESY!lz(>TUhIE*?%DGrTpw*M)TzlDy=U?z%Yd{F zeeP0}=)=d+nEU=v&hq;6O8}ktvr~VzEQn#g{+io97-*HtE#W3Rv-WYjD|T6549xQO zA<;u_vAIv*ALdW`y!;#%;|4W=^Joqe+}iYGyvK9cO?=xtW$`tKeH^%+BCa@xeS)x> z!#>Hc>Qi)V4*N9kDP3}5be|UFogX^AqhDu!gs^WSO^yB9XZGVOHpswl3~((H;``c! zdxyp0l$mx;Wox7{`%~b`YFx7JXTZf{w%SX&yUzmG^V*$mU3$=&pTteWuw4ZD_Nvzd znX{;D{l>jM)y1ltopk9+x~{{%YRZ-CBul?Z?vXx{;WpRb&FeTueA-Ggd_Lq=`DNT1 z9_q#}HeBqE*9OL|Jjmy>oX_RcR(BJ3;rVEg!@iXv2ozw(=U*gk8yhsvb@0cLY4qRT z-a~6FX5IaJoELgu9<9@`^;pDa$&Jf@2Mz9_QA@kMIIYLO9F^$;#t9YJ>}(g7>Mz5= zF5^}L`0|#^v{}C{p6~S#E9+N6S)Uim)=oJX?>R-5wNtD6?)Mh*VSTP}8 zGx!zmL&L^SO=a}ZxIa(a0H-oH7`t>Ph)V=nsMmre41J*pgaYN)IPf*q+jZI4rSGrv z7uyHhxEA9~{w~AW*_|?+*~OOOzNQ0MJY~52I2z|AzrKiZ`SnGH%f?8Jzk=KN`+eTy z@%IOOD^Ku#V(~Tp{t&pHA}*tCYlt5aR^#uF`L%kt@%NvBrF6-K(cM#Wr{*^Zt2Kn= z{)yu&H_UhDCS-xK1` zE-bh+^ICT(o~;{VxWe~`@W-5+S-;Lu_@R(a3|Dymcln#ng+Ca=$8fdNRU!PsJl^tW zmZz;A)K*uAIC-4nO{MXchAZ=5KSjv26NoLyFI!lt4%5*aGnat47EXo1r-(fB9v8BLet!?z&KZiRVP%iQ%HZDbUAvX^8$*ppW672Yz#)-&oshOsqE2vszyO zcT32c$RvRXWi zu9Qs{DXn=4_P>k4*vjhWYG8HmXji9O|DEu>Zf!dkn`+iJ^MAV-SDCI8?brA_D>)YR2RPit#sWwhvBU4+zqS?*a9xZ4E9Z6yMd{m z&xJ!3hWi#c({YRIqpMoqQ2qH&;8E$hwbdU0i|dWbTz9$r5V)S`E|C(OKZk z9y&#av8v_=XM>N+%l56d0@u^R*YuCg|LQey`G#P;#z<{^ye>C!xo<1CZG^q`lx(7_ z^u@F{QZr96L!&q^)sE`aga&-Akw_2YwR3{}>NO}^iPovqy6%2!dKcH}vU>rM$?cR} z>YMa~-mUJO%X?gR?#H*)57FJ1Kh>S>{OT#=%5~@d(5mj7$FJ&+U7ozJ(Gh4HJLb_M=2u3SzJhgRjZ zn_rca=V?V)%CSwb;jRMvINRE6 zIJb;Fyo>^~wU|z=*W#qhT?K;vQ-7?y+7pF~zbn6>j)n77`s(Ft4TZ5v?a8bY*@I7* z;Cs^hiLO|n2juym#QiX~uOHj0?m`&;_&GO+EiHcgW|mgnTFLpq@ozfw^p!PRSW4H> zx5|HM0WLY)k^{|^BQs66O3>SEupFMQId#T39FVA8SbVnAnpk9;Wi#H-&H5Vi@||Q} zRYmu3Lb1Ch2K%v}bZ*t-+8A4?jVk=(zD`PR#XRJ6jQ2>c^!sJRReDVJe@b`JR_DCks^6;{&9TK3 zjb>a=XV)-(Wul+?qcBXz|AMMOF)Zv+BwB1_&>M>U*wHAB1kLxOT zJ~jN+30|(k?hfmS(!FO>uYNkp-#%Mc9zTd52RYjq-|zLBUt7+DeO{})N0=}A`Kcdg z==;gYjqQ*bXSngm7&se`#B@&y@u6hFwPKNfy)G6aq(wp)K(CeLEOLc`!}4YG(+SzH%n;xl7?!w2W`O}Og=uE{}1kIKq$ zF5pl|EaPr+g~|~rVYePB-i3f)X0~ZK&D$ryxwVzP(cvsV+S{gp$K!eJ1@B-ye-OBy z7ja)`u*Emd;8MZMk?xoOH|vv=r2oWh!?_Z59l62fBb7b6o|$#Oho!#V-GwxJ!_Xol zA=Af#b05;?k%^P*9B-RkJd%wCx|02i42j)gDaqXhZC7H0i)_q;|H-u@iyLb*YbUkY zG^T4}Y|lyZ_b{ethI?O`%he8tw1T4kO|$VcIoPAVKYjK3+3aPzMVQPSnVqk@enQ_{ z+;>m<-Qm7_6OE7CY1Y?9VKCmU_w?>(Ou;#>^woz^y~oHLD0i`pKb@Bc<>Oc!Cn&Et z_p{JD;q&u4;^Xeyp`EM$B9676iQ+gZA3Ui|Z+6R#4HNt%D1#IF-R3i6ld#ZQn@fF* zM;CDxY<=~XWC$xuYU{O)wUscZ5N$_tU~OenPWFA=w5CSfR{I*Wi%S|z2Vc^H<4Sbl{{Dl5{fGSV`{-MFtA622=likXb93#jr*U*~nWZ`=5Mggzb-W{C zG-S{aXTdwO_8ErGS^L_N1dwZCS$pcz_`bPvG?Iw_FQ1ONC>{9C@T2AW(AYqoTZqS} z*f|~UpWZ(;;;)ir_B^g-x_d(A%f!YD@_~LMd8zT5&N6P07TGAz6Tb51sD4kivU^SE z!R+!+=+uNWp{;^iUM~iD)$5Lf!(=u?#c)j|lZ5!&WZV#B91G>;efsud%P{Ng>{NHX zKVO{Xv)8Q#V0x`Har44-uC|NxYEPRp@v4UDoJRCr;C6UxWsQWHdwO5gBcY6zh=)C0 z;qC&?kWR}Pb$xoQK3*U0XMCDkqF3RRrqkI2jE_!@^!ba1yy8d!a8mzNMk}Y!)B5_! z<=HRI+UVX3er}6Q7AMaCXmBFY#(E}OW4#l=^^|cm^boF%^-e;ovEGgRDo-TG#(FpLp2{T_CRcj3Xt%x&ty{mt zQB{+tvZ+RJZM$ERT-gjR++sBn(CZVS+}>n1bkd}Dg&+6z7)8g zuvS|Y#A(amp+TSRa#AL7zOg*G&RY60>XZ6H=?Su+_H!W|k>Ri3-+$0Q)PK+&e4!gC zKvcffI%cqU2KQNV*+CaiCp=XEWcuM&!rXcayX_FiVqdO)V;laoof&hm7ZQxVoKD+2 z2T};qt6zJF+DbUK9Qshv?yM~yTEI@)`to0l(%DrT8Sd@jirqfhgwd7fK7Bk}q)~g{ z`*CB{&>-3S5R3s?8egt7MmkX6ui($E5d@!6)(&D^alRYlY`$B?SDZt~d__B-7-wq@ zYIlNLySttDxZV94-`2K_U+wPKf$J&b%I)qqpjErOgI~2f$+33#YTi@1#KPo0q2fHi zE1|VH^sKks&)vKBD)3#zNj5Pn%gq%|4LQAf8}Qx0HBXG;qSyS{)3ez!$GnDiGV3Z} z#%uHFmE~%hUq;TJAm34V?d`(;6>xh)80h&@K}$i{%%8$yau?Q&HJZw#E8>R6ElFXzvHGmlqrdC(Txp%25=XU?RY6Z z7W~jZ0vh}V)aQ;(a3hu+wYG87dob+7$K$!! zl%u6-llv z_lE1zqVNMK3;)Aun6=J7Pv3p`f6*fRkA(26;%0j?Wn3+J`jtN38eb_tZG83DyldSnaE+@(e*_DEt>cRRJ-{`D5Pb~)6W|(4iGE&# zX*Z93aPnT@HhzlXqPMZr8rsM9Jw$Kgr5LXGXdlAGztL%i>{Os#TREQAO~vhI;F2BNUn?(f3G^{s^e+wcvHi8^ zZw>S@Ty5gzfqo88aJqEME&PS`9JP(x0$&wgX}KM|_I&J)M&+5{cSvs7D~fS{2JSUM z=7w%V4DCel*BX5P%8H#^R^GhP;5{pII*6q(J_`KJ0X`e_qu_rD{B6KzoqgG)3&G;_ z4&ZYv{A@HbxajZ9=v~N0|K5x~g)7_-r1Ykl{rZ>E{o#}+kNYcd9|h<4CC4#h_B<+s zkEJ{rTy5;*z@=x3^DdS1C&8&+w3@f6%z|Sz=sqtP|t*gt14J%tmMH@ZPzrHST4n;j^{o zs_^!o*IH(AY!#=$#$;xPA)5{9!g3h3c>vJMZy$;%j`1UtjG~T{`26k5B%d&lY#FGz~=&A z4F4i<>jV4PA72RZ|3~1~@5S&h0bdRBnHQxt2mb_IWvevB@P7t=BG8*3Qt8is0e(}U zFTzg+_~b#45xwN7uTy@;@Gk?mzK-61bBWW!qW@Rm*4M>wrT5k#$8A>W>L^X7f_;e6 z{c`Y_P#VU`Q@Pyc;PRaB%f!ZH{|4@MaQ!D%+5PonpsxbE1K1RHCgP~G4I-WTP2dH^ zh5YumZv&6@>Vv3#kE+zGV{R?_f#}okz@z88{Gw0u>ac}=Y%!NU?0vO)L&GWW0g7pA z6*$wg-y__ur&^s~NPVYz(e>R zbuXz~WegW$q&Bb}ZoVG8RfIJXbp_7WW6hbuy7iPF5GHmWZVSrqOK=ARFniw7mZqy! zigIwJ zaE@&j-A|L9gvf!t9O={KpzoWd%k^%$yvBR1%iH-jUGC`kmM-7Iubwiltjo`UR=WI5 zel2X%g>o_&{U_^??s*sK5o0pFP$CP3S3YA>_{$SPMcrV=SH-~ z;BS=-dG4G5u`$*Hk>&k1;-hhq@?P(j_vi2)=ly;7w)_>{z4=q#ck-*Jj4S8;eW6v} zpUbcEUUDq&xAUILB^D;PD(~+HZHt6Cy?KA|ao*dxo%4X}@p<1$!s+u&I!JvTO$s~b zpUfA+4#F?`LU>?^lj7BLdS3{aF{VDPFNDkX`Eq@9<+|Ml=MA{whZR5nlGT9+6Njy* zlqSE%FCD_H14p8nPT|~%9GoVSU886p62-eC8SBAU{ega*VEY#@JI<^5pD?c;R*_d- zQJBl8&#Q~~uqk=k%z}bgroJrv8Iu0xCKmltS{Qq~enRk0^%L$|pkVO6lyZ3G4lj;2XdFd@s6l=jw01x=U+Dz!o<+Qq!E%SVwTJNe=;Eutm?%mqN~XcWym+ zz)bg`FNpGNQhiR}U=NNg)jb_5@$NCQ#cWS^c-^-pnA zJUXa<@i*YyH^qGS>qA~V%EfQ>n62jT3F%b&)dv^hkA@x}ohkjr5xwp{FnWVO2KwC* z{Uw3^#mL_q(HmT8*q5vZH-5bv@)xSImp_n;qP)D^?IVtI{a15cW^rSi*xSy!ES)Gq z$sxC1zl-^a+WwLJ9^;|WL)gS|2L-hlGq|GLDyf1)tge;3hoy+_>4FFX)cIZ2m-Af_ zI#b$I#|TzSWKAH@H{Cs)k0)(;A7H6?H!c(2`(0LCygkMie0}YS@`OE?LPQwC79h%t zSCXIE9;=HW{}m})=0g$Da}w+FE0V(Xq#oMcB286U_P-u4Y+TFH67VO9742JPsr}ze zN@Wz19&~{4^lZuww_ki|nchW7^+GskWroYWqh~T++HvMyVC*p#O01aOS-mKDvr7?G znX5A2iZAT#S1Vlq`~+bYBcX`@ujH-bwS{<{_rDac|E;=ca~9MT5BKjmH@!orm#&r1qVMsD0~PvFg~STSLR7o@;LRV>4rM|E0RtP=N2>^b3kXCqI=w z=Ptp$|5+Dr!FIL@=KQ6)xfCk8_M|9Y*EyT?ktxRI2lnG>tN*Y!mDUYM8HkvXH|pP# zvb~`{?yPl)Ax;)xM&_5N{kPJjG4$nxDgAwJNT2$OBpE%v9PG*&Zr84e;+5LAar21= z2Ene)eMx5Z{6cOE#zqgZRm~f>&K{UPSRa~Vyw?KZ)1~-zhxk1X`z7W7E>~>%`L1jb zbU$4G3C=+TAJ<0PksMu{H;?4|{g_NLbe>pXPE;JRGW0h0>o@jpa#DH8VbXf0yKL4s zj$*dr48~Kq`e$2*voK||6JUP29o6qHaPm@V`xD|>pib?^%c?*7S+4gQL+(iy7tQuw zwx8XJuByq>(}!FeCn!By@4h!>*Atc9Kq6mljBZ`hZ% zPtT|F>Qi~$?B{cgnG${X^QU$4;@WhKE3Rp0I1)kn^=OWmmsv|5)!Q2Pn1IvVRPt?*YHY(dlE2Jc;6^c<%-8<9)=Pfzv4x*~!Ln-{<2%+^cCM=kip} zJl=HHS#8SF-ktL2apLRC^Q~+KJ8k0mPe{7qm-gokTb6R8}XPWAr(ltHtZ>eoIIi&16t$$%Z&r7_{u(4 zv+&9~FvDd!r5u;+KJO~r#_m?}Y)guIH4CpTu{}oVN5M@$F7h7h$EWkHaN7yS_@y6j zi1IFv%hF={u?em8;}XACUZx*cfTePYg~|Pk3jH_@t@I;p)16O~?ztXV7cg{Js3_Wk zX8;p)<_vgc5jvADauw&VjX>b_$`SCU8=K8MiS5VCLgV!#yD>rT95Cs`8H{qwcAx=F zdQkdV#?PB!4@hB{?(=ZD_3`^U^WdcO#IqJ6NX2)1MB?i%;2dX&!%^^k1w1ATCoPV` zo9;8&;ra~MpD4aVDL)q5ew)JK7Ql^x^E%yG1SsmMJ-77dGBk2_8#PL|hPnzo)}LzM z=b}HK0bI`;SvO#RslZv?zN>WuC)(t*)LfRLjq-p@H>?w;bjq|eIo zjLvgJ_zmL4x{uh*xvv{snoNx?dpSXudIKh&vI*9@&1T3)B?UjOA?bG1&t(iBJ`a8| zjGZ@Ky7Oaa!MMZIc{x$I`tC@=Y$eKGU&e4<|!= zkRE<~zxA7bY_0ESg4cN6Y%Q$MiE%|6jTl!P=f}8We-z`2=WAk|ov*2iOVP$A<}2C- z$GGnEC={M5nICwv$Jx0%8%wBc%k=HZ3qm=@^hIBZS=jB#EiLHpOB4Ik^3-9_8Z-!U6b0vO% z)vEXv_Ckq2!;8OJ;`djASYAlRYDq?(Msn28D8I5aGH0EcU2p~kp^PN!L`hbePV#Ol z$s1c)cLpI@eLhu^m8Vhu-rQ2o;WUqLX(`9kNX|=J%DE<$b8AaEod8FXF^^d*H*e6@MefnbrL}0&f*w`T3f_zriRN-xn)uZg7<4;1W z!C{V<@f>L0Tqz@?k({?x%9&bb`hc&QhRaLIdPk+KJe}m-St)OnQKJ**bc5u*w^Cl7 zPVzobDNp7(xUXB;WJlfSxnzF0Qf8S}az9!rw}(i28+6J0Sf#v-M)lz1K@JIY-T>>7 zJ-X`9CxeVCyz0SSQ9PWHm5xbR*XGe}V!>K%W=J>Mq+?C_; zaD}rw(69P4BFdOFKQ9bCMV$C9%JcceM}6;}JZ}y!{=IqrkO5hl?921#@Z!Hb&+jt9 z%B4Hco8pu|eR)2oUsP8I@;nYM`k_D{pZgL0SfG#LqMyvsXZ1`xhjTm`PJGwp__Der zzUy;*8BTn2Ilg>767NEeH;)&8GsmCRCGoE2cr%>%HgbH~7({$0a(o$1<#tn!k38_` zw9cK%@#gX3zd6V6^1@4q>fS9m8D$#Dd1+3L&lfK!tAn@ZV<>Q-kGRicP z^R}EEpGRI$mXGhq$tlxF&Yd|q%BL*7%E$NSWaRP6#}DNA{fx!(@xwXZ3@5&i=J?2` zuup8fAItIP@#6n@j^E{xmk^C{KbezJrjeYxa&mkgc|krO)vi9DlT)UVoG<0%D4(+Q zO2(ISGV*wp!&d|UaaR+wGWxy5yyFZ%m#6h>#DkKv-<9_X{%C$qkD zN8l;q#J4l>$?nkQv^&I|#jh*yR^i3JyU3qTSuzJrL*(Cc2?O*VG6o z(oJK5Hij#mlL5YJv%|n6S%-tH8#Smrk&Sb%3p_DgX}dnqv*EfnkE;_4U*XIJo+3_s z3xRKyvz0w8+usmelA2Cw2Hq;X_*aYk^?B!0()c%u{1IOKCj$TM`np>RHoltzUkraP z^rtL5xphXxSvsEw?q&F`raPs2AdUY0MYl#CL1V=heKcGva%B%opLrcU#OC z2LDQ%_->E+BHYd3?l8WUb*0XQ^?cy3F`fu6`qyUkF6IhD^l!}QQ@H5goYDIjhdL*o zw`DvzocP|6@r4-sHZQ(AGrk;7<@?^ihrP-=OG9aU`#|7{;iCVr(Ki>!Pzm7zAKE!skqwBE`anaSdD_~<$9!6J|`%lP4z2Db(l?!Kd z-8s7@Pqc@@I&qqb)~ZzK1ELJaTih6C$1Uk zogNvT9Na(H>s+UK36rP8S{mJYJCZs{M%O>DoNvjLY0!pqnOwksaFgWa`eunOQiy;|>alxc5;7(yxh$$oWlK8-tp(2`h?Lw=)K7A+oSyMi}TH$dt)P1Zr6QII*9T| zX9LLS+Dn4ZH06rF=c7I~C8I~Sj(XiI)Re8({l9Y{zc-}s-ym%54HfrlVq9^rCdTbQ zPa$V}95JqVUO2`bxU@Cj3x29KuDFL4%d|Z#?WqWEdn&Ibjq#q!>-e^P6XVyO%Iksa zDdWg!Dxn^;e|Q75+EaNWzm~VQr}F#2Qn|#!3|>-HBX{MLGYua@>1t!G404J%@m&=7v^`wp+Y|VTIPvWb zd_!E;(QHr&L%*f)_65EoPU*iq@J-o86mYmhRoJu<7$3~Fn>SXZP>aHmY<*ziI2(ntyNX|{M9A(bbpzFWIe=6pWaK8iY z=D_D|bh+w%Y$iRU{=49B3A{zT#sI$uez1OmR##s-vdFTrDvI*lwYm1TH-V4G1Lx7& zA6_00jOjdQ7k&7fq1W>ke(A$2CF38sB0#UFt8HTjIi-8U=Bmt97H2s*fz#$3;3wea z99)6<61ZLe@HXP?&wkcA|Eq`hQ%Ukr?C;JbJ?bBK@hkWrDUG}RpLAshuj2hf{?5Yd z+1rKZFbHA+9LzVwyTK_AWxiT+XUf;sskoT#e-H1m?*9|M zO}|^5rTgC-_{+Gm?tdS&(*5t}SMih_)BPXdJ(Wu=Ozy8Uevu#Kw}LnS5AWbzx&Y7E z>kaRPuU}`m)Q;Z;?s{a-+gUJYuc=gE2%-Wpu zBk-rt6wBJ{#`d-kf{W|5>YaQee+amqtLZYW(87Sq!B zt2@-U4-=N^Sc^I@TU_V+r5B$r3OWx!N*LGth2)?FtX}B*Bm7m_yu`S8ydb#MnZM#a zt}}nlx77>dSDpD7a6M&Qxz79zw5l_I%dhH;VPN zawN5h{7c|nz%@3A;i6Ylb@Yt=t#1_lg+?F2MQ{B-O3>9s(OSQ6Fwt3mKfAz*&QNbf zYkhqT7yacS9t+Nz)Ax6x?+)>Z;iB&g^y{#W-@Wu~vNg9HnyWv$-wJE(;FH9~>s{^*=iTbz zr+AO+;ivhwx+c1R;7|4NE`IftapijW8E91xKg+M`q2yRS{5w%9~OctMyO{}v_G4(-*pc+wmqOU0<~*qPIe#Wp`7GLdIoQO)A}fXl!@l(ZcMdKW`R^Uzp4yj{WSo=C_B1yej@)G2 z$HP2n6bI~N>&?}LnWF6b26$2Sxxi;UHH@0{Y**iD^dOLl8x+8{hI#qv7!1%zd7U`9d|1jRS0S! zX*U123P)|y?C}(~<|A8@BL^4PxnK(WA)Sq{5$;!`aB25;k?1|XS7rOCulJ|(b<>Mi z=7p8Hp2orqcU-NR@0J4Cr$PGn>uO6kOBc7fchmiM1CMq8H~BXGE}n1jC*A)oe)W`b zB)HS#Y|Y}^&`S4zhhGcZbpL+R$x?*A^d()|OIg=D!ty1ngt;A5R{zHa^# zxSmYsmnDRor3-?6epTB@N4@?E-b`|zSw8=Ou;VeJzJJJ{#)w6G;}}=8H;!>dyXY8K zw2O{$#Wk!L7mrB=xBAe2C|@78@NH#o{HhOU0M}E-mFvTq(5gP1#jomv!cL&@HxSr_l06%tY zQU9JB&TH&)T(i0J$y+#Ikt)uh%VnG10lcrVeuMTdrPBn{y<(G#8>lp|cO_5fS z+xfmG`qr6~!%jJ7JUY*OO##*=I=6Aa^&(tjV>*1dXe;0s0_Q|xGuw#C9wLslAZ}H^dp=R$xmEnRUyu<)3J` z2|jb81V0D3-Pb0%PJKt=p3C>_`lho_v@o^h`5g>%5QWd~<@)se%+g}>qznHQ+!tQsRt%t+KKeVO z35&9DFt55oy?rIL+V|PFD5NNbKxJGC%Va# zOGzTU&h(*xF1>_JP-2c_(oAPLzawF`w#wa&?Bu0X7PfS2??Pkt26roGHm{M6Jv6hp zF~D7&3eT^lCA9}edBK@Jo4@(_owQAu_<4ZOgKD2&)01P|>pAQlbc9z=uYUW%gd_cA zXO$k#`8(;qoxpWQn>i=roc81)qJ#dSf!@wmzn;0O+Jp91HFnltcDDPBq$}{9ANcZP z?^&&Nq`oC}-ii5e3cG-MQKMcw9A10EKILH8q#PtAt?tg!k{@@s%Iw5>H}J!|2qIpk z=@E+C&3@dY^=N%xz+crGV2rczmc~m(J{$Yl`m^#VzQ;L}Q%fEl(x-8};5Kf%hvW%I?!c?@uk+t{63+;Emd-tOXJ z;BLGXm7@>4z3ozP@t8|(>1@Vadx7gY!2~kcM#S8e^}>7;zKQy6kE?rQqg-n4YM*;k z9kMl~U5;=z=ZoQdU#Hz!Ud5+IkvuWPN95@7i2*DmrnS`FS088YS^y9Nd0XvEM^)T= zX%35q&afc(>a0L`St|FRA`Uip)VtNWpXNQTbC>gN^-6S4;!kz%$^7am;YB$6$4E5PHTq;LOv)jT>mP8!+4SM{(tCOV}Os3`MRpUPjGSn8b?Xg z$4T#Vm*8Z4zw!2DQ+EqGU&o?RAF(6Zx|P(-2oYYXb*{MtkZ* z*_~934>aCbFWiup1N%G20xN=5&y_doAGjATy|YyQ@P>)2-G`PF62>0FcaW>vLu<#H zcqB?2A4~o?gEpdH3sm$PMtTVxGdltic56^Ok+-9o{l@hl^^Zg+coCm z5KI4`<;Q8(X$HpAoe|dqq~A)9^vXDKiTiPVPw-dOkH@%TKOWohU0xK0z}iZ)R( z&TOL8-wSTK_gda#-TPF&O}`qybnkV*^^|dC-TO1pO7}jEU&|xYz1IUv^H6f zZtFBLT=Mq@`SE&>UraA+ASfvqj$>;%{)R>r4aB*D{Su+S_J;$9;_I>pAo> zM}X^jUp*aTr1di_ET-SS{Z;lS6W2^k_76|jhw9_}@89?r zWKMq^uQX+0(APLQDA4)EqnrK+aVjjMqyMR<^8#J}sW5j! zS6^N2TU<+pq`0meE?e``J?*=-_EboZ%1b(4_zMHR6wjb%MRO4}S=gG3Ywa+pErdEo z^k@@QkI6xQrLeXm@CrG}+R_(5;{7ii{w-_CX=l#kT&7pOhq0(gI z*{4VGa%1G7`UH+0$ENsi|7h5Zi69E+1)=|`3P)oJe1wO-(A5T)e}c2;*SoRS#8Ifv zQ_WSk(JyV_zM0E0O6!|JNJ_tr{N0`m%a#+CcFXF;pJ?b-ZFA4-n(ZO;Lg$|V*i_iJG;`y}dt*;1`SyN$2$ z#!(F1GhboP04}oe#xd^t_Vdy;VB3KWu4CK1EaOT)@7(~-^iucB`yuBcPk#)!=E+!i zH_#NzN4Z~v*5l^5C%|=i9sx(^hi29{Jdx}BZUny@yzcO^(9}1b0zMc3J}`gHmHMaW zf{Xhnjj``V|MWcIdhY*l*FRNobNReaQ6$pW_j7W(ze*=;HZ{Sm(*J6oZa*Td5l9cJ zPD<|&h55c zH?fxP6NnF=XR8|#OkrYIu!beB<9iu2JCjxR;=QjuD;w=O#rs6dPf%M~U7MxH-r$aU z?Xjqgehz+nTp3M`Q6T-!IH11|=gxhj+2u4Xa6YeUotu4L=bLU-U;R7iX49?0-%5CA zv10!VAzbCL;Fia~1U%M*FX!8Io$*T#z9R6Kab-RDN@%4AU&XKVpyZey{AFONTw-Bz zM=JE-FG4FlSf88o8();K^v!L+2OR{XD5vk*+kORDtY@_LdhxN=^< z8d~M`Z}F?VmK@9L-{w7)ODs%o)mqkTpsh}opJ)6I_&9&f4&rx#>xu0kiuq!OBSpCK zOZ`DoTF0`O=(IvQ$*utUvQxTWM?5Ug^=^6o2HxX5e#z_f1ITv>Z5?*^~&Dq~P@d#}mQ49owIGLxmJ69_c3sB`_p;St+c#eH_V+VKk7;=8?OQwaR zV_DlPGJ>jaZSL<}Qdgb#gl&X2^&jT}g|3~s}&f1v1Kgpl;$NeXjI@RB{ zPQk6ce2VwDy?mN)YZJz=_Hq|+J!M?Ey?h2*wU^KGt8_|^wU^KHp2{T_CRa8TvA$P( z_y=fJZwFVTSPe6`ch_aJXomn+M; zcXViUyxw=^)Wjs)Fn(9D0Hbs`uj}^+ihCSiB2FENGj*=dJ)MgxoDsR-E3A>N{}ke^ zcspBJx34i-2*FjbN{qs;uA@HpJZ(;na!Z_vY%2(2NufP9|Z`C>Vhl z4liFG=BxZ`z`KBB@uS=u-(-bMZQ$F$3%T#?o74ur3odR0ssm@z2L1!Mo}i1}R_u?f z1E{vJH`}_P=?d`-k+uKoD3T|cjU%ba<`6IrqERA1f z`QO0xlyT*<)Ztx~WgEXLOUbdaYzLOgB^D-kt)eV{0H4ZIdnfT;%MXEf0aqCtTxD59 zwkyj*-l>mKd2Rt8m#4}^<#`5hJyCfUC3xG20#s%4d(KBZ8Imf}UVvNQl_X+a$6RP%WH5b>~ zM<;N57?j80<4_sL{YN6&raLL4OTE)Nf)JiTOn9$8{=Vxl---li+QbZpCETz-lEHsIl0 zzeA`U-iLBJH!7!Zw=vus86D{z8e~Ke27%u7dkL!c@vJa5=#&u^YhrO76)f01;+rRR z)aByi+s^US1l#PboxO6hPEjw-Y=TtMHvTW9h#2HqZ};k@j8 z%tY^afB(pI&(!|?T=*64nXBkycZG1^ZpE86Jwbe>n?O~`6O0v8;UEJ&@LZ%d}&lf^T@hs+K~aM`X( ze{q;`Wv#w8EB^#qGu}eEJt!An>R#^zhp8sH*=N`d46{!kKjrTi*k_6RVtwyKj{4#s z`G}|Esu;Jz8m%51b7i<%@{E8}KP|ZR(_P4o`|0!fw!YZ-)lcsV=_uo*2z|JAmg(Wp zs-NB+WPO$JQdxv-vVK4G&9~LX@8`k~foD5k%y+#`4Dg2n-vK;aI^%H@nGZVQ)u%Jw zDd8RluFK<`-@R#%K)_2^>Yddj$RJ-P&1)uT)KRlATJg(2R{cu(aL3zIui zVO#T9Xl=YV%aRQS%j#C#9^m7^brBzp`HDF4?FOfD;^H#PJfTKv?khfZ3F0f_#7C8P zeCw_Q_v=97*%NqTxajxh=-GJ*K5N9YFUOPN#CN&zxyiDQ^!j!rzHZ}-aH{ir!If)^ zAIm-gTwLc>*JOY5MBsYfM_Uc^^SEM#$wdsx>e|PGGhEruAj4(#TXormdCJ%89)<7T{hYd&?<(1SAzbNj@mt&5 z&wJeV4g`M9jV*k&y@9}QZ7;)RaWfr02(8-QmHb+Kt?dl~OL>Wf$(7BC)`;T0|EEB^ zjd+aE==^-?!AUnTbr};kWIhV(z@+!J8fd;H`+@BM*4xxo1AcAkDqv|5y1L%pHViDT zv#JBq(<8w3_`QXUi@mZ?9ef>VsZV`6nW1~aY^o`dKUHk-F@5>;H*9C=fr&;kS+-}0*d>{_P zjyqf98ev=?g~1sH#<|AfhUMV{$;^u`sMLA$bJJ={Q~p#sluQqW*h-(>FZWB#t)h3pLtXE!v4hr$S7a^N0%>$*|9;^;L^sz_b z(fGh$_N>hyChJ2S1*J?hMpyu^F+vgFk3V9yi)HZM-I!d(`GKd{HTGNq7q<&rQ(6VC zr;lEae%LuH%X0@0W;vj*C$eKtN`2!bHx$#KP7c?{uS%xkFDu72!c?7kWvDafyZ)PH z6ZXBV9c^*`IrDoyqU%WdR+iW!Q=S+t`#TO6+X#ua6K`AV>$(9ale;~IgOk@xyTio&EpSTnt3x{dnSnk`$CjP5 z6c>Nuxh3(wHz;vU9cPwj8`=-_I>n{g|JT9-XEAA=^LNsV({^4N`GRY zKIC|(hqxhk=wilMr$Zx^G+mO@BbtB9Mwt;^bob&3;;8*VE^EA4JR0lOi2KPX?)ciN z46IcolqTsjuI>zDr&{L)y?K43@0$oieXz}2Oy9(~;u(Y(S3H9dbZQIE;4@Uspp0CmvLo1bu+ZmQ_tsD>6RRYA>J1POXU&^lWX&9^9?1P^s~^a@7BC! znXOp25<{5?_bhN-;56S64*zzW8g~izY;e0Hz8H53oXv&S{Q+IJbNzVj1>oFVgA;-2 zVwjWJ-gXPPSjVaF*SPIP!1V+j7tWbx-06YB6y)oo^gvm^1*cJUfBIibWZAhf?_R2m z^753=FCi|{eb!$V#}((1DcI(1G`(vpH;+->epyI^($N{l2owF22M7BP$zk*8_yI<@ z+IsdogE_d>?dJ{n`b5i-Eo@E30>9 zTsF5+zbtuH-(QKmxW2!NZ}GR2b_-Ya{kACFJT42@#;U&zt?K))@T+o=9INlQ154!+ z3zPeEp^uK|AHM*t<{vhPP+k5dV48o#bCQ<>E6zV&0c;0!HcwHX{j0#-^uf8gP@k`f zjoL_i+pmGEs?Wa;Tu(F)$#MJnNDT7zuhly3=%FXy|ya&c>j3@vKE8^z^Lr>91yhIQ$@JMrSJV>rPYfqdM~N!st< zg@9eejGuIVv#F?JGojUdh5I_>Z%HWDjrGPe$Ulu^YlQpyC|t@`Uew3NM<*xxubw{W zT;Hi^E1-max9K_Av@85``OSPHv?p&wwsgkt>Gu>mB-8^Rx22i&8+uekuLcdSTG7YTNDBELP+Ja1x&KH9MqO$G;U?>G;9*{%0^u4y*fq{P9k3g^Y0Xt9JvBb+w<{Ur@UfxSn8NozKD+ zd0M@G6viDoWj)B@tlkMKv>$I|psY;ZL%6D|yFy((!{rr6xjD1v{PfK@Q`G~Tc+;7u z&X8@j_lCGCzU+lfjv~3QJkUFa3(SeBp~+xB z7Xz|1y+5R>y1q^$Xmw3xuyOJRP9sbe04Arc^8?7SdicR0vw9z8(C_aI4iDpyh0=;Y zOgBiiEB?De;VAyEpfHv($nBBYl%A}d16akE&1uw;GWzPcUJP0)8OhYakZqk zC2mWC!H9dR>coMTxHFjdwBkD>xvC|OF;Pq0mgMTw;3it)YIxsh6_;9as3opFx%M=; z>ssR4lBc!AagzDrt>UsJd2P#fgh#B?$ee45t0nWN!7a4JoteD8Wn9{m8(Q+!lGn84 zW6dw{Nrxw;wYcDoBK$0F%umlPE-lI5#UA_bV)k|K5m|TI-+wdcO!cwf3h#D4;FZMn z+rY|oyOw+hxSp6co>OMJv6lQtpj8;%jOo>v8K1J_KU;+H{gltoam8DXOIz~8LR>`G zK_6MBttCGSv^Gu@ZRM%;M|l8T(bqt_9loT=FKg`n!g*E%R(iwp8&Dp2nlM z6R|3uGXszL0Tb;H@ExY{qyBbBXO6RSI3wvu`TX8whHFdS8pd|z@M_5?ej1@XRk&lP zsp}_FT-&+qjX1xNUHs}#d9J^*%rla6TE;UQCzkm*&pLlJi=o?TlnC$kX^*@w0Kw1L29s*AL=bvb9cP>CpK4 z!IA7dF3UF?U+;ugUWlV`61?kqa+u*@O9n z)>HlhyoRe<50`I<27|A=gyY`COsJRnm*BKc$tnfAD!8@q z3oS0ZzXI06uDU3Ycr}Gowhe~+AY+-2?%~%T>OYi@IX0k*RVjAkoC!yh= zk4sdh{{Zm16n@ORr}vrd%KTH{udl*~JW@W+74hCk)RpC@!7q4xxQU8NddQ!7Rvz93 zzG?W>EXC*FXTYtNa6a!o3r_l&yw%*SF~o5&%d^jcJ5j({UMakrJdTLqt=Fx@XW^YH z;e2>%7dLy{=xSp*q|mpS&x5? zJ&h077p?R2p*;K&_}e`GAg9EcitCiQkJ~?iyB*x%^7;l&Yn_G=&p!jdBM0~C{1@P_ z5qureAmhuxUh807lZ3J5%u%vB)GOiMn8zJ5+`oc*GdO%iEY6?I{!7AR@r*M@iz_$Po{gp$A{=b2D z01x5zTAdXAHsDjsA?zThjefZk_;^DG;F-TsnbY4qS=mZo-*n&=Z1p z1NV9BF_Lp%;C;Z0E|1lP2Y^2eKG-&=s!eeg?z$4r*Y_RZt_L@P?+z+O8Xv*uGI$yf z<;w!_!S#t|qp>RII?fK|p}=!XWiB7v+q!_O8=1k8^^<{J!YJ~o<@@zcccbo@*6FTe zPxpLe>Dk4v>{fJtCOLfCb-GK=_w&f=wLX>)uj(Hk;dY#{`rx=*C6B(lStr++_Ys7r zxoC?uT6yQ3#@YcR5pLWW9p`e^=@QIjJu=8L`w*hXv$SDn#I-*lSPj^KyGP44Q@0l& z_!i)1#U)y%68Q99+Hh2~598koY-GhRJ=?hv(QX6Imcw{sRwgnTeW#;$hoTxd(Q#*< zlxJrVl}Ckqhn+bKdB%~KdgSdp`y`db;nCIW65|I(!zYzwkA_uNg&h>4cjb10wB zs+$*wG|O&QY1X{5=nrTY5S>Sfeeno}pEkKQAI9fWwEwu+*Wj{M2MqN|wCq8SH&&Tr zIfSn_g0o*GYe)=~B*mXukxkL1Q6BA3o!LJ)G}%9nyCwE8a-ZF<&a|?P@bR2ob0?@n z8Pt$}StLL65j!ald+zMC3&h(+q%cBq?fG!sw`bY-CZ+W=9lPko_OzkH59zz{?o)o> ztai|LuIA1^zuT`*Xdlt$@uK-D{E;g&|s-$M^D{@)8S^tFu|MS3EHxNxskjX=uCnnp&OH zd|UbC#zB_@Co9zN&2m4bM^Jxc@6ZD-%SrWz?QMO);(kG8A)DQP;Ck-=aHr$b{4bWp zNT~1L=kfBA-FI;#>2~|AGA#_d=4ux^9-%s%`NLAZ>WbQg_LM2Y+JO+h;^6FZM~3B# zO3wNHHEQ9UUlFSMQQbc{%cb;611tdSP)!bI^=pvu<9#K4U&){LRg3m#G0yDBte(X< zvp>^%k>FO(MtG0w*(l#u&x~L7Yz(-bGOk?Du7+0i44V>H&m_m{*(C3&Tw-BzU&%dl zs%No{*;UZ)B+R4On4ykVHn|2_XB{=35w0uXWa)Wm4U-J&n&DIr#V50xsbx0Fn@p(F zqm`a+2pJa!x`ml_?mQ!iP{)VCT@-NsjLngmHF>J@O2~yHnmt9D{haeJGOWvI zvHUJZ`E^}{ziMWEfrT}Hk}t?s`CcDr7T0?;L2^D7CV*G8NWyJzn*tZ>q;sjk56q2K z$6Omf4?T4dT0MvO4QH8h?HPR~o5LLJG&*A9qmg4 za*2h>l|7Q$`s36{LwP<*WNY@E-o+WU-^NV1Fq+q z2fDH;W@O8}ZK1#WSO=R}*<71#_{AUii=eD*<_SA48+{+;Px`yKcaq_s8+W)`5`MwoqE zQPj^m?Aqka8hY1_2NuC;2qN52gG;OfPG!0Ru9StLOrHU+Sf&~mtO3_^5%q@lRxE&) zWg;JQ@m%0ITLEUTEch;Da!!RJ#wdn5C)oMGI+A1VteNIOjIC-LA$-NbjW=b0gSFY% z#3VPXGN6sV)y^+~uVQRDwx&CTrUu=w=#>A*kR8_itdQ2Sq4sspZf&R(9{)2<^TV4WX_4t{J(bs9U8=Rm7R?L=v}cJe&l<92d0-_{l^ zkJL_{ANb3-ayxkev}z|W=B0O8uubAfLM?kkPghqnOpwa1U6U(9#hUR3XN&-+V&>)D53+Dob4 zy*RXs!}~?m*Eq6y)P<}1uQK4QMY?8bunsiz?54Z)*Dq#<_M*AZwq*3Urpl8GY{Z4L zH-dLMITOsJR~J^+GGD*jlL;1&yqNvOS#!phg*YolJD68b4o&xt4`TMlnUdhIS5xZ> zu&=kza&7LGn)tJ4ad{fYN^4Jg(&e~LmY1=|Zg3Xwu@lpq%U4tZr;l8bOqFQ?cbB18 zbO-Uo06!mU^Z(=Uk5`9({2qkgey;8$`FZlO995;u>o?)4jby;IyQ@+>w^s8I7tbSn z;5lx3a+g5JQT7UUCHIY-k?c707of#1`ZW2TOqSypXXQ8VHXBCiVs4n4K7O&cht)S8 z)TfVM;`6(fbku&y#my1^m~bo0`~Nw=dqNxPazU?89|>{PcN=j$LLAk0^sP7_xitH3 z*Y{qZhApJw75}p|{6E)OyGy{IQ(M+uLDE5PJ;>{U<;fKX@pi^EuG*`jxcd9HWGI^6 z0i+(leW^{z#{2Wkr!njZIMebK79hXr{8yoVYrhhO z_mE`w^!hYPU~(|!a%bIkPcz$Fo9Q{Z!R0=e>`SKZ8J*(zsZfra#F4rtcWEyDcV4V| z++3YsW|NoQP`i6)11fC1kMuUz`xU0O2f^_zbp+}h`~*4}zuIowl9e(i`xvn8z-IAV zpgN-O9mxXo1^mB+Hn)Mj{mx|J2y@Tb8;-8&(6OWaIJ8~FYyC#;BV_BAg6nPzE~{5& zI)rS)lC=Z>F?L#Adz1#s2jBnE~<%jyZ>*C(q zD%=KRw`yE_a#uL7Tjr}Jw+5X0e1&Cw{%eR&+~@x`-`1~NoYd$4PDpzhN5+Ks+SvGa zp;e#%T7E4btj~Wvuv9LwFuCUje<5+7{~OS%&mX0ab7y+hyZU!r#No6# zTIa&drr(FL{ac0K12+n6&q11_0)>Ok?-gfp=?pJ|Yu~+&-nb^BaK2 z;}EUo>rR6=0@o9*=S7@;fi(kA`{+ls7MGOPWz8!z))6=Kdl$Hw6YU7-WvJ|apRiSj zRd4ie_2$jI$Mxndd|TZR-JAGRz4-%v^^|etdh=FjRd3$LuZ3;(=8u4-a*2h>)!Zar z_fr1;A+%K~RUW?`T%5;#&GLfUJAmu)^W7@$aO?W;P${3P_gviCg)4R`*-M$QXfY!L zWO@89!jAQXzTeHC=DVL%<>XQRNl(N$Tgz102ySKb9^T`!`4he^|BYW|^IqV3%D8gb zyboHH&HMRP*+`C+%?Ef-4k7v02`5wWo?EVVgxa|I#Zz~_;SJ{0GxSleuTy}p0t;+6i z`BnTS$I9;Gz*4!y!sP1Ap4wHck3R~n^f9_LtjXa?d#(S(Y;#lR@?|CF^yXher=bp!g4!p5>j`TZl@d5_62~hD_U*0O_rjnW{LBW< zQnYHAeR!T0?R&6)-=2&VzC0jn-~T|IO^52;%KFp1$7OvN-&UTY`xJjF>(B73r;IC? z^=F|~S$~dSm9^wpS$~1|R4%bFxlamZ{YmgzPgMDQp7%n6TzmT>@VH!*H@ZLIA0034 zhF*ucay~0sFB=;l}Mx-~Y^CmF|pjvF;Sy%H&^pkIUpM zd|SR7zsls_fa@va%4PCZXjLZv&acWua;!|g&U-4CSeV@9Lcb>c_%G0!?$o}F>CG<# z?;)g1gz3m&|;&N13NN?T^Tu-Do?@?K_Xjkg;yfNF}pmf6*CFsV; z-y%GfpRLX9Vvlisx6fDgcfx<0Kk3u>%4Pq2zmq5L(*ZT6q7V@J{)1_+I+%&piAm z-zv|1xNXVzL%8Z^6(6fBKjb~GEB_VvS?f&Wt-A7~z;AWM(sZv{xvu;-w5lt~wLXrb zwYpLRmhut{lUvo#eiuH~m04%gJ+`vCx$1QD4}f<8S6!KxA6;u?^uek#ZG_=+(n`(s z&FyXNz~lO&@>YG>0$fj2UyRcac%t&It|QZj@u}25UB^C!m8t9_YvX4UhRV$BGnfkV z45#OZck$IxxaUByZLGDigUy`=7rQy%S;*;3>g0%DLlDjOl;#pgqxH5O!LN+XNkz9a zrMond&XY|~M@Tzp@|39SB44|s(4{2?bh~l+L3qpKa+rq4IG@@xI3&+FcFiI8^?HB# zr^h3iw$#?SmH1fQyjRGxY8{LFfU*8*R~rO$Z)|U{{{uiB6`#)Ka7W^Ctnkva-@Bm0?uKuFmxadroR6v9moV+wF58+uGJCRr zkXuQ;jg(*6F93ahmX!F|>ETC=)CVhb=*+`^W_c{A>xJT!_SlMMcJ9$PMtV-Vbw zsnY$RknZX+*!1M&^uQn%OS*M)|ELs50it+F&dwl*cH(@vC_Uz@K&|GX!bA74K&SC$ zMLT8LtXJbi*`=y>dKXbsT23p&eb{ZC=OfeF<*p!K{d-o|XErw07LTxLo%%`tGs=xU zwWayxspaGNsJ8O!f}ir-zp{2*CPJ95-op`g` zuyWk(TexJTpS}zp7vj0gG2!?^c6`AFnBxC6l(F_X%)U=|xYh{gf+!sPN<>C@b|xO@ z7N|V@f#p2`WrlpGA+)$vmeBy$!qSXoLTIm^Ugdis@ls#1KcuV0eeX_zD1B;&=#QSw zjSc71Rj@}PgZuoXRGgncdg9 zah%g&eaPy{Hr7`8cAcMK@{Q41;TvOnGF#~zqlF&~@0f<$W0tgV9qN5q4EGQB;Eln|Zo_p& zl~~DCeR*7{FSZBn{Xw`D!5QZX0_%9CZI`PjF1hLV_GEN(V|K;eRiJ*KabaywlqUA) zqINOeQ=b^@ZQUHoc*W7|bQQk(gV;V*^@mg5?p%=K_(kehN3wu=-*j>GdyZ?1?Ap8X z@q3M{$FO*IcP&ZxUlPUF^^>y7X5cW|bER(ow0n%ZN9OcJKOSo zZY_BtGFA5b^m~eVc+eHf&;LK{ZQMxTQMI=rc&ojQCq?;~+uQJ2XnPxnR6b8r90^Np#M`v1U!^zpRxS=M+79_o((M8aIkn$= zIWqHmu%s~PPT{!wH`N6@Sv7N~q1fMdhd-A!$ns%Ic2^?Z!3IL$KOfj`Yzj8KVLjU$ zGxFx>JxGiwqpnoZqDY=`mQ5ibN9`{od_AOJvrVI*OnZ=%*W2=P(LSZ$U+M*ZA#iMA1a$NIK44r9$vobYpQn~%U*a2|+z_r@@(pteVG}^}s`)+Qn zMfF$fw*x=-;ZmF&&rM)cbYGzmNok?Cj)jxiX9~@Mp zkVgDeSFa`>((TpzWYZJZOfb@5c6^BO0v@CXd*$D+0%~=CBFNj19k$w>`V?k#OYyxt zf^7j-U!PUucX~xI_Wzf(4v7=qz4cz(zUsqwCyFFG&t_z@@&$qgY|x*qE!!)9A+G z7*GFE#9w3hXTX0E`2CA(?hbg{rx*Njz-6MW2*&h#B(E_)v)S}0<&o$w0p7!E&JB*i z>(VaZdw~yfx)~SFE{_Gf3|MN%9>zO@KLI#L95!cfV5}DOvEWYxKDNkAuf9CDe`aa1 z$(dM%D;#6dB?U?QOZEHZ$ufy*&T!L}quYe8TQD6e>mPP>g7pd3+h{gJ#gI(F2L!Jl zJL)fG^5>-3`m0Ta_5umM0aWMv59u%tOATC`873DwP*%r3eZcGEhoaB04Rhmfg{420 zqwE7?KQf{}M0jU$8t!li_q4poFx?yTUK@C|CMCG(*Xw}C`t@h{HXUmG(yvbo{AFBO zzfMCd{dzsWYS)sZFvNQVSSpuTnA|G+!fT+_-qzR}2TR?Nc6rl-(beil@THT^YDT%->*Pbur#+&o1qd#9PE6wz6ITnJ%kepe9&YoNod zeC{8_7+4FQ;UnXJdf@+17{3*L09V~D;Pu`K9g|M==g#D0?wdKTCx~?A?qt>z1=udi z=|bjL<14GFoQpWswH9=Y!r7CYOuv_4*qfY?MM(;ij3HL!dpO6=k(3;KELohABLxAa z6GS_itjy2%EG@>c!`Mazkkd1wyUx)qZmf$iitqKJ4PePs9Ose~>Dqz57m}0dw`4U# zJRC5RwHo45gm3uxpR znd#0LH*}tIA=9fdu6RBz#=Y*5t@(cRXpfUV7LV!U6THXz_$1$^b4|AN@r}UslyPN! z{7h)2k8k4F^49e6vw)>?iG|5M7;L}dvumr+YX8dZX|m92diWW@yMW7nnUSnnFOI_DSQm3WQMX&L)=w;Dt@HOBXFN=QN&&VA8I&h7ZMIXaAfNPvA`Z@2f zAhk`~1b2DhDdLWS>kc?62@C%?@IK&v-%f+|aYkSMF5904*Q%Cl%>8WeaX+JWav%Dc zQ^56{jjytB&Z^uT!iH%X;oC{|TF&&a!2~v7j8_ zeu({}$yD|Zw;QM59C)ky3=BPvEw1CDWBCT12#vms{{`X?ZCm@Y`hFpQYTI9Wl5$1$ zw5?NcYZou#J#H5-=G*GN@vB|D1h}3uuG}tO3a#43%lK8hkQ{3lKhJwAmsprw^Rc^I z6*$bWtSf0M`@tZlm0*&dUiJ zjLNZk&LmS9ZTC-VGTH0zKh2B_W2lwQ%L!j)qx{#q<^L;rkMsXkd|Mui?iKtg|8L`0 zPZ?Lv|6hhy`Tr~YD*q+N^8a?;Q@O;#gOBst>1=(FAlg{V1=pGpDdu?EJ6wLw8NQM`eE8u5hAFzIs ztLVWs))&Z?Y;JfKXL4r38J*XVA7@4DbPB&CndBau-h~EdX>FXhjTIj0`}Kx!UY2M( zS^ukoZ%^sR8l0%itt0M8c`}?|>%-rDsDsLeok{CFOQu@ml%ICq!RO~JgHAujyQyFO z%i7T+W_AJG?+13&em4pmU;ANSX6i6&D#JaaLo6T1wLyoAddGW9hj;|*u3{!y-@N-1 zxpL0mQ*=IQ-jc47a!NKVsG46F;m=I*+8)PA5bLRiS6Vv~S8fv=I&*dBzQDEx9_d<@ zXBV(@Sea}3bz4`)g54*{az%9F?M!s=+^^djzwR_Rw~&WxwEwd?-}1VjI1lkBqE+Kk zJ{r7rUY;BB@*wsJcx=-M$(3ar@p!{e91r=`D@DQqTg4#1uXTt;p0ENmaguehIZk(H z^NKBr@Dq(0uKbOC0KJmD?CO8O4 z*U$ptWvPGs1LC20SNHW}W5e9z#RVi>*)uxDbzURP*(-pVytf5;kE3rOoo7C_uJ-5- zB92duOmh)7_~JeMD*q%$VTkv=z*4!y!sMEbXKZ8r z4rsLwHMBA_*Vk;Sn$YF?Im3!|XVLLLZJIXb-(*FNPqA=Zl`p7VM ziqv}t`UeI_{BlPQqCBj&;j>X_&v?4h@qgL-?)bQlYX7U1Y%7jm;v`Nmi3y71gb++{ z3M7~$Sk>A@4Qba-LRqb(m9_C|SF9x43IPn{(c25X*GGp(@4c4?k6uIX?_7Bu`2F?!jdVYE=giERGiT16Ia6;66!GWN^w^^sfL;7q_#I&Lh9=8*N`U*Bvh6`u=c3vxTsJSjMj*U*Ru*3xB_X-9 zo#k&TwUkp%D&<7j`dIn+V=w~Zne7Gk@9_|+;Y#qKt^%JH?z5mqV`Igf=jEh;+ zg$uCV&6U5 z9N2GIGVT`Kcuahp?`_ z_X<+iLtJx@!yX=S9f5pCj3dJ0L}?H@9|lD!;Ab#-wFVY2VgXUzJ!inSHQB#OJAil2 zvp#<1>f-{`E6(hiIwTKRFE?WEJNMi2na5a#&#w`mb;@=}`+>NB3D`PdJL1afpZh|8 zVYV=0+i(H08}mlA{>ITm+J5VP%bFVVP15!|#7Wb#Hu$}xMee`XY4sXjM1M!{N0%mz zFS<8R&b$#HpK~zRl#UO%bhyI!;3xC_80Lh0@&D%Hv;QYeq7VN8xYmcb$ke3g+?>!( zeb@##9dXCQ()uumxYUR3c$3e>Bl>U+U?E;mA$Z^G`WtO~-3r=hd*Qwvb3X&;iT?l? zZLZzCvz?1J?rxqx0lo=v+G00gY{a;K28_owi}hIxHFH8|1b+pbbJ<91CsIrwc1G}b zz`Fnk?hwv>6&;{Czo%L`=)R!Ex!tvZX?@H&JnpAh2RNOZ!&9k>3dOE)-@|J!v~7oc zIuZLZsRP9hUJqPSmyCBD{A^ptyF7ehU1&>mA{UhBrL(Zc4B1G>Zx2pzxMcqw7Og1ze5dnT z6WlILXLX9^<$E37Qhw5K1>`l2Cl{RV@Ca{(W`F$lV2g{-Hpe`r&7BFjZgY2ppZT#} z32kh1T`qk(EZyeLLR_}FtqxZ&_Ed$qkh9?Wvs>Hwzy-+6$^8bTxduMSJqN#6b9+16 z&%XhFzX)!3Q@A#CBElwZ*Z{6dHB$hiv%@(4Vbh+3@EIG9&ppS2P1`&f;d3^;cX@Hi z90p;Yn*gsxcw=FwA#A~hnay)ypreUt+1H{R$TJKz`7!K}4a;Lw0LvLhV7{9XexnVS zBNt^()m-FwbbEv!w&C5iTA0+}J_BJlg<)hzJp2v_e{>igC!KjS{o})MO}ZUtGW^M5 zc#3>;PV8*N$+J{EIeEy2N| z>Xa2T>eICl^E)|ONpBa&goU9zCrifdmUHK^`g9y=P)j++jhr1v@(x{d<1#i2O9s)xCr_+PJFm?1>(%#kO zEjni_3U&ct+QuOM?Ra=5{%&~FiT;YhA{!$e7U>g~*U)>I{ZMY>#lWZgq)XsWr*8}H z?((IsV|vkbm*Th9b(gvH)OA7|b=^H(deL=JSVWu5?d(Kc>biU3E%Y)Ero95NFfFJM zyu2GMd47He;?lm*-#fk#FxnULZDY32ivXi-!D)2at9cK=Xj{nllW8Yh4w$Zg8M|Ex zxNe7(BYw~O-hk8Dv0E&q{q(Vu3(A7u<~6I&YA_x5iwt!mA3a}3e-9qo63IOiI!vF* zCS2;YAHQ{-4!|$dqm+b)Av_oU0oKoKBsuU6ucSoq=}F z6B^Nh3+F+Np)X?_8bvb6|eLp_+LdJdQSmVRCh5p%DEIx!| z$qhkO!_7_S9G?;o=E!uIv9q~vNyfU2gFDg(CU!T=vkAO7&!pioy!gJa4h!!AmVCQ# zcRPBJ#=%906ugkIZHX|0*oE`Vl^rj~lJ^Y_Mg7(GMEcPtw(#O?l#HXtUA>}cb{su{ zdGx*s^CfY+gINP?JyEBSK3gB?;>;#od(M+EoWrv_g|DkLIp-*GJA>W0_{x4~f-w6% z<=O&P7pwDS%rP%my6suA+CpKjvAl>QSqu;yo1nEY-HeX_pd^@)rkt_AEU0qeJd<5C z!>62i6f^Qz`u%GOdD-TSdpg`_1OnWp;r2d9K#PNIbr0ne{TthPC(2F#UOemYTlU{m zrU@6Bz81f=4!I6~(G!xMI^@29)1|{A+|n=H4{@nO?vJ<7B|4-8Scn%?2wvJa$$sG) z#AUyLTT7ziIy;bI>>u2{zOiuXlLsK&!z^=G$0WkEP9guPQ_6tTx%vMzt5@Ow`M`l9 zC+2bnu@2Nf#K{}^h1xnI^BkPhqI~i(<2}5$;)(9oSsToNCi1Yt_hIhK_Sr5*bDB*P z;|<(iXt(x-e&$IW`-nry2mNz+*#9K=<>@flmq*zlTx4fIerwsO!7uV5=_xz&fYYVJ z(y~)WT*^)ZZ=qRa=YfEQctM5W_4Pkh#FhSM&h6i4zjQs|U7&^ikH9G}3xFrMXl(Z; z;96Fs|5*f_PW3+_zkU4o&!f9_9h|1$WA>{+IoJiA5F&NAjQm*temvYKW)6)Hj*eb! z#4Qd07So^QHXd|%wqhQTdf^cKlsU>GWl+ZQgi#J@AFjjS3e!P`ZgA<(cRH7I!x$-6 zM=A%+CJpLE!tjlg>S%4oz&OvDLsj31wBm5aTIMtP{R14EAK7isr*XR5&2%P0Pzoc* zqr;XLLc`Ct5$ggDan0ew5#>-fcLdWI2%F6cW}S&NJXFzu^CdW+KZ2Fu0Zg;o@5dw| z%riqjV;XZs}{X}^!gZ{2<$1HZIU$&c;#u`Yc&EZu$|hq!FNkH?$x zLOjxbpNQWfUQi);Z+5zWvymk`)_w%yQor+3W5|}72l;ovX#aB!*xK}G1djrY_WuN~ z0T&q4vhC*=`|z2+6>~TL69DtojZM?u_9TSscFsEI*x<>4)BOM$^RDA#sq+IyS10f6 zg@ldedvQafnR;N8%atv_Q zod4%I0AtN)%2 zeC)U74j+~oUqJ}(<|Q2+!6AI(aB-pG&KMHb8LY%$XPs^8VhRTp7xz2<5r(^er*Jnb zzvOa+^IB_AhUcm>a8Dr)54k;3@)Oj8FaG@#)(XN%6*l!!85{nZV$Wz8%S-+Ke3no3 zY4pDU4{gdN$QGUSNjhvjXwM3h?-KaZCGAv=Q`@P8OF#FY_^tc7m%%T6nWSew_j166 zCfYqwSh}Bk1>&-wdnMk&2kGZt4Oo~KR0!T4&v}j)A};$X?q{{%m~J*|_Gp8d(|!@c zyAV!$)qXF?9gsx*(Vk^E*&K!2ladU3F~ZJ6m^rgC4ZO7iPH9Eyw#U*%VNACpmTssr z3)z(XE{Ua!!d`-Om$`I}x}}zK#&j=5*yS#r4x{b;Duj8Y4(Zz4UV|{*FH>g!4gKF6IfR7?=9ks0N0k-Gmq!Tu+PevqP_szepv7S1v=Qi{cWja zuLCI+uEn)tR2aaR1Vy;s;BbA<^($LV38QZ`z8>M&A5g(A)n$AJiRbX#jpot(N+xN+|7gJ&5d9>I|a1mqb$Dzv{IJ&``P#|AN9Jd3vWf~I5y;7k$0la ziEd`RcOl(6aQxklw;X2>F8cSqfNTBxKKModN_y(w_q+7zu(baD0OC^reh_b=SM=|P z0Sobh3c)+>#u?oAAZxDgL0lAvYn5b;IWs_=^dZ32MuCg09&2y=2;f>D(H`TOp^pMi z=k6kp_8V|asC?kInOFWa`aj{%$B|a}zJ90WJ9$7`g8ok;+&4yK_{gPET|{wn!GAk? zWISnb0VegP<9;R)m-_{>@P5|C&74nPWnGZ<^m(M0vVI}_ZTB005&krNZNZmZo{%fE zFZmqY3+RjY6&FwL5TtJ4UIgF1gsA*$g0H!BGM?sLHI-W_n3 zH{F`xn~8F;{KQXNBci7*_;wU;BjF+^-vwN^qwjgrvmJfkrBCAa-K+Wo#AQ4Bp~H15 z<wvx9Wl-45XSMm zN;5jUn@ir-j`%XdX)hrhYt-GiAJEz*Uj@7?O2?~&OkQ6He4B;G_7jL*atp#~BjxQU zEsU-5Ex>3S4PX((>;`l;%y$5%UF7DR3qk<(#g7nXR_y^4UGZbUw65SB@d?lsKLMQX zLhSo=>;6n-SN-veI^sHK1F&DlEUmj>$@XuAVa&!;R+tE}{Ve6R6JsE`iAlpZ0B$4a z&AbWcHh?1cGe-w=zCwD z0yIz`h@N^n3c`LS+QW$Zni&Uif92xx_q||*>Tw7CM-Z;{q_o{AtUY)$WScG>))u^d zl`y$CiG3UKNt^sV^3-ke5AaL7lYH4G{|LC`%l00HrTex&AuikGpB=95d#d=zS#WW0 zZF0@zR-|E@&H-NjgIE+t0?#HOkz<&$4Ym3o%&&fM+nYlH5uS4Vd9pG$( zqji4C!>;v7dt#a{gt>3UW9rVPbRR)Adu0BCI6N!aTdShOH8+A7TmP?s>-NIAcJAf- z8{l+qu05X8e&!>@MA`K3i^g}#8V9N~_ylBasfz1J%y(?;{hpaYk(~YmG-!FFpPRDG z+KHLBWS?Q@)FHyA|6qT>{ULmA1dxx&U6dZP1;9f`*&t+g(F zIxH<)>kyZ+)rmLT5%Dk&rd%pmwGZf6+>dPaEB(-~ zyf4|@FxEZG3vaBRT|&%GHUG6i&41zk;Ml%%>_ZRdzi5AL4ra|oNVJ`xr*bE_axiz? zGgaP)MH}qa$MwNx5-;>Y3XdFEWzPX=!Z*=+@PVF+yWPsHaa&re6K3ddrv*Yd_8nNb zx^Ic`vFD)Io>8|6IDRA?`wSdBntx!}jgbA#L2cFr4q(p6j5(R6fIQ}7*diWYqrx0U zLmTnk5BS1_24j@&nL(9j0xWTE?8UsEYvB%+jZa)J1TH2pXk2{4Z($zh9t#r^=DoR% z@$EfEEDQU&6WNSZT@~6;S0gx@HEEGsW0obdIsv{2+z#PSf6vzg}G{MpGXH}k5dA*n7uH)ySB10w>Yu9 zu+V5?O2EoL)D-%VX)_BY=X^II-;Dt#4))o*nC-YH$epVAV&IcG*Bey(+o;-K`rJp<{#d3h>bwVS zj4pLwFY6iSU2?Zm zeCv)nJDNj^edO-KOYX_9+^rsi^ghwiWcQ{PNBR9P$|3z5g95f8ql?E}mDC^0(gka~ zf$xU#+c=d25J^|J4BHlkh5MXEuFnfNw_?AgPS{hrX{SpGcnj#Qrmd|-J)Wt``kJ70 zb?^9a?6R(&q0t_+H7}gyl6$bJxA{#4b334!inHb8dGrqCJsaM>XW=|sz1HkE;@1Ls zCxGRBm!b!A^3#|@!Y+Z>G7 zN^pHm;&Kc~Jd4d~a}y}x#Lsac;WaFTu#N=2L%|pDO#y*l;^4EG2_&3j!@B@as>%$V z?QM5On6_~!1N^q#1%T5%0q3_cModuVVn3 zsyNQmhwcL&4q#>NgrNP@i-CuEV7V(CuVPvY&fc6lGk`UXWn2Z~bOPgc2GM->5bP{` z+jn89I?o$3%@RJ_^(DZ&F$fczHjU!s?hd%PjX5F9UX52Amkl)0=SFa2o&#H&{d51a z*(7nSu7&e;HDirINM(z;EHL8 z+uk++m~MCEJI5Bg0jEpu>++i6^gQMS;&RSpY&qP_W%Ty7fNOqO{omepU%->H!!>~W0Z#WR*k{n$ zij!%+X6THu38!UCqs78l(R?W=0gB|{0mzRs^iF4kSz9H(zk@K?{$_rax|ROU#NG(P zHUtN8d%Lw^!hHn`=3XBR3nDnaD~ydR#riaFYC?$EW}7j`$PaXw17yygTY-Lu&3yyz z5#}|`#x5l8cN-k$a~@_Mk#_f_;~hu|-f#Bh;iDAXjgRZ5*^sQ=jh%uqpyh?^!%5yd zA^W*8s=zX^&Hru%_AL(L=;ZnHN$i2a`Eyeq@?$1gj@h3aFU+a&0{3Ck&YV(o*GM<4 z`a)lRVvI!F4eK!o+Z1Jxd?S6>JBb^YaJ`nJ#on`j&;c#qxekH*dMdNi_)N1a2VtnQ z5cm+#!*6}hD0;B&Xr_oQG8&wAZ&Gs2u{K?r#^!^4jpj;f-(<^T0zV=$#qu#mR;qbR;ZAMs+vYo3{I>ZH@>BNTChwHlh5R~$%5W9aW<#*; zcvg#J;~eVlfr=*FB{H}9JC$28Gk{S#Fv*RV!aNUKS$z=mH^1#V=#B9Ea6j1P%RZQRr4N26ezSiB+^nM> zcIjCb$)A1j!(4jlgQKvBHW|x39C6tPKLT%|mw7PlzXKMg1r>t#vCgK`eefZ~Wgo21 z0ImQ=R_HT;HvoqAfc1sw4B$fm<2U=XK#7=yc+*A>XE~%(P6u+<*uV!1R5VW z(k;&bEqeS#|1C$28dV3z?vfiGL zH|vdfq~2bL-yvR5A$U12n_NeH7UHtr<{JkpxTwp_dl1I+u3rGSmzC%vSl2H?c(Sh9K3@ztook=I%2>6IGWvJvI(i3-BUfXv z74u6QeJS!@f7ss5Mw{KWZ;q=(Cbk%5&i-%w60uzhz zs|820_;N>Y+|I0r_j%K{db^ods+aIJ5Zte7_X%=Z8FR*^GQJYNgt=kXnb`Lm0I%cJ z^|{8*405k@^+6tN3=qPtQ$_n0zCF2U+eC(4#Qql7^!D$@g?4tVY!tQzMP+)8D-&h< zweGi!N4J88*8#@%!SN{beKq`Sd;f(uo%Gq}E)@9n9VJox_TUXJzU(0)?q{%%ckkY7 zeEF;i-jqlu`RKH1`ql(*ap|NiOy|!d7rf2Ir5+*8qDS5VxYi@@gkN-pl#P1iT`qk( zEUic0jkwe!@4=fqCmzuw?*lBv3n~QfTDQMh>;KmyF7=41Y&*y>`!T6I-iR>j6ZQ>m z{K3h5Gneybgi)`UbhYv#WONjZjAoQV1Wf-{#G#JKFB(HS75;XFZ*e$yTSt@}QHj&& zoHGK(>vHk1Zy_Dc>8|%8ULK)b%x=z?&3DJBv)&K5)>*Vuxo_bEfYZ6Tq(sVM0+p3@ zzm01&CNDM*uQW_TklNU&A3~nGAEN)mczpAKI!xvPMMia4a?iaElRfvobWg=tpUxMS z{GNlxDc^IToD(i`{@?hm<^0p|i!4ie%K2vimwaj4Mqz0={~yGqoPQQ?$~ohToPQp_ z!?d76@ZJO8vP!N+d<1c~ATQ2IV$eM+{oqFd?*g22k{ZtV+g$u6mcS^_j4SI90%N@G zVY~xjyd4fFHgy{q<6Yw7iS8Dhm$|q}_~jvv^2~}oEo1uhj{(;%hpSQNCNpezM$?uRS4rp@J|2^b!_K*msV<( ziMa~8D3ix05r%(LA2W&XPkagilP+B{jC`DN>EXx>C$28c6JNmvYmYsZ=p-t*|z};@q!A$%RP`u zyY#Dw%l>4v&eFQO-0im>%-%-U$+r+kF#|Hx-u4~9bX}0297B8;a5^`Jh*$_~GV)k{ zUIlt+4_UR=U90Y^&(rK7?4%xIF{4*I&j}ybhZmOSO!!&wuf^Go2QFhe3G2eV?-|3q zwckhn_zv_04~NJHcndMF&71d>GM{B;6V#^c0l3IM>j2Ci1B+ldgFQ9KuX00%Y5zhO z=6>kPODtyo1$#An#)}h!7h|J3reh*+Bts1}^!0~>tb3QnE7RC{#7+@Bi#$>KpCC`B ze`C8X19^d2lJJZq{kh;EhxEABdFDc~I|=WI;ARg#d0=@N#=ltNFHWx{7`xV0?YlhAEoGgAhOvxjZEsYb&9Ex&DEi_=_zCXG+R z-ri2^{~{{-9Uf>=OAF_DaRw93Z3YH4wLqXL$M4QHFf$1# zW$!Zh7EIxoALkH&%M^}&?n{S1~j@mQec)hAK$ zpl7CHva>MG`vYbmq~|Q_w*)x+oCiXjWnDjK3(Np5F1t2>-6Vz(3tJX^7HIfqd9ZN6 zwofZZKSjIT5G(*>8n21>2?}c9$OSE2pS%do^JhwLnDb2G>==}WnkSX}e#t{~Cfb~a zj@JC$-pal88N02E<+r@F_ww?$?5Vr~g9F@ehsA?l_t_jjcMxAHPui*v@(E(cZBEtUcg^%Xass^6zrC`RN1DgEvL?F#W#-9?liN#C9ryj0343 z*rvpGj^gHmU%R{|F6sRy3`bwwTV33A7|xl{*o52oo)GM9LA^!<+X&d|*Z`uaLBeua`iQn<*cu*mDWj~M}YyJvxX&a1J z_Tdy_rD+T!XTKdm7_-G#(|~&$jr~=3KkaW2wh3YQ_G(3^`7PiaU)npXO^DkDZ}$QH z4&hr=e)_Bk!@5*hu~|23%6|bo??!PwmANvGWHz}29(S6+Zf$S-8^X1n!Z}KgCI1dM zof}K~F<{lAR-s7}$4vS2&%u^MOOV~lf-9AYWQbP~0UV{7Ee%z0XW~>~s zF}%X0X&NSNAxB(j3zRSZ7WwMHZ!KSI;1~H~ymma4ueEs7rNh$lwT|f^U!8cf9K<8? zwI07iyr4qx(%#ZzJld7VA#S=vw%(3Mn65YSi1)&80G!UwTY6Gw@Msq4gVf%VQt7~S zsfbx0@ELEm(R*9#fOh8cd!*?apqcX^k6F{TrCAL-iPsF3oi){rz zAfLfT!2QUBBc!=4$mLE#9C2+yBF}#T&EqZdrmh(hc|2UO@_h>E)_kCU6CTZn(;Od8 z1-u&J3`i5pej4E7d}UWjiYmRArt4ZO=fd(7KIyE=ngDolv)(s@R$X5DZ;wZp_jFg@ z(*aN54M-o$dmNRhzC2%eh1L3%TE89c&J;>pn(s^ z{nnKEI|80WD|R=(8xRDQLkn2wFkerDt|aX_@TCjs#NnGh$+nw9SxiDaw719?5QGi= ziY*C%2eWMhTS2qt3;k!~@yWzCz!P{wnK%bw;yf~uOjb+)y!5qL_GzrV;<5`>_$0)G zoicGJ(5%Z&|9Nc9^k0PM_*^ddEP8Xg9>=ST0gofq{K4)| zey!JyX~{F*(X?;Q0L|KAJ9u^paEQYk(m!2>sn+C+1EX4bC1G*+pc#C+2k6#(qW@An zx}Ax=aT(w~)NE^{mu>Byh$GI^*1XA!KB$M@7Ug9Q!wDrWF|P-!)wTBm-QxU$N6=IZg=gL}L9X9EL#-Wsemd!4QX9@>Vx+`HSo zd+_GIj}u|-_TqP}b zG~(b0>7=~p5iZUn@1CT^G|WS1tL@)%A=&;tP){D@#nqr+^Md{%Jen8M{)Yi~Y>#KC z+W!dRi1YBno4n|QdgyI&tbs#mN-DI^gOfZM1I?NT^xp@M=7HGWb@fA*5#*v4<2oQU*!7Ay?}eM$MlP#2fE1G z6W1V(IFCKyM<+rNFPgUu-20lt*Z`vd;B}Y}r)SWxIWLv5PdoQs+c4fu%(s+GqdMyiQP|OPP0&b`j&bf^rTlD8ZkVwe%NEV^i7h?_z}`H|g*) z#8c;)D37I_E!qRiP`F_=2E~}y!#&$3ra-@L6ZB8x(QSfqM;^@p9>eNs3#65{bp>(7 zdH51X(*mtr2etBE#@fr0Sp%g%hf#8UpFPV!e|y01eFdg%bYPFz@>0{-vwdiH(qWMeX6DHer-r!HIP-XO9Kp6jydhCw2j?m48Ws|2 z#}|x`wO8uyfPCmcyJ;90;of!=qK{Cu#)lT$iaDO5aL4@_{Cyy3)@_CUCLUk^xd?b1 zskJ3(OD!QxoTvXxBrC@K9@<*87h>8$c{~`cZa4rsb$RJOh=(#H<8aXphX7YN&6=kj zcUNcl@d>dXs2f%gSDZ&TXf#FT@zU9%{ZMbzr+0Z${gI>L_EmTFTao?^G-4$8_SkVc$OR&Fcpt+k=)G6q|4%= zxy8O^X1S~jXLFKgo*R<;83e?@Av;43=pmQ>|>>#@~-s4>mM14J^6oE{egdFkU zX8B(RnsxconlS48fku(aI20%<7suf+QTC-<+y?-XI+m&mz{d00lSoxB?H#d&m2 z3RNp*Y*E)Vxd|BilV+-V&d>+V;NxpSyXGVPufwC|NNnH#0^EmM+7$b#*CUQNk1TnU z7ky9LZaS#(5K-<8!zJ)|EFMmX@`* zATDL?t$6c19d+#6@H<6aZ2l#wV>!hVt?yx9u-Sda^GD>*8q~qt9Zjr<4M9q;rL$|1 zKP|TD`SPLoHi`rwllSig-C7pue-|Fzre)0WZom_GRlkHC0G>S*??D=Io_3l3BF3=HjKpB0X`s+pF+(#AS`#;@;oH`vIsY&X*IvtTmm8n)nv{ z8Rav2nDJ$uiF$?Qz*(#E3f5AwUbj%G^MX^m2DKJ*>EAZ-nTF%2R%`dzc-*3$SzcVJ zPnQy_J04(WJ$@Hu(QS|Z@8QvUTl%r@1Mb1C`Z8++$(a8Kh%e5gi+!ky9-x=@7Hv*; zt`A&pEa_R2G|ZC&_0o?(zvd17KgOeZBeEKWMY1YuIzK@g%IZ(?ma)vw@Hu( zn)}RHPL5@Mj`-p{y!4_h1zu_{@=A&=Jm>6r=xP>*;Sy=bX3i9M;b;tjr zESj(M{}PYZ_vbp>=~sYf<^Www`Z>P&HR6f$=>2RI$4GyRec^IFwj~K%iUTrvb1TZB zc|-qi@aTPEB6Cq#dJk9>mfiyvg+;O|d%%8+yeO-`bMN1~_aE?%*L6w%U-4); zmofa`0ME!YT)+A|;)wIect&zAV6{ebi?ZFAy1p{4&AbG_!wuW+(Lu-fL4O+_%@3J# z&jFsm8}2)AN0>MdACk$634oVAW#d7Bo4E9z_8r!q8V8L{XKlQ4?O=Ju+__&@Hr^W0 zld=NJ`}Q>}`|zo1EkJ1t&l}A{VT*F>MHdvkU{5Z#p4Oo}lv}aa*1|73hhd#~*asem zH(fd`(ks#ju18$zmE-Z|x&rMq;*IRIT(ALtFQw4)w96P@>@@O&`x^euzzFy5Yw)8x z27a{ICaPFMcGd&P$oZa54tr!=sz8g)}Jy@a0cKh%xFiXllIaUgp2d& z&~#Ev1}8}O(%GV(I*4PqC0y#gI2T*H^@6?muzx)hWzhVf|BiUHe8`%A7vNs(PPf=~ zGZVv1D6t%rm9vmeoJUstD2raOw;V0Eq4K`@vXYvGW(?rPO&*;M`ZbT}--gG>qjLaH z;8pr%sj}7jQSg(}?x>HQIm3cC-WW#d&1JgQ_*UTilD+n9*BAv@e4f7lB^Q3;Hj{qvb+u z)k^@^C^;V~d-v~-FmWE4h$Sm(pNFm%Wq@ZWVpeBROo2Sut?hRy=+)(>|1vzf+|tL~ z6Yvyf)yM2axHwPQ(@9&Tv&BB9QLB`fmm2mGKcyc0a1Te=CN4)AG(YIS0*~g0jNz^X z+>bokGj(so5$EAaM)IN`?xDFw-b5QXur);S#t--8L*8_wESfj;_u$d`Li*oc!2QUz z&WQG@NdMc1bmBaEBLk&6FRIJuDMyR*=5DXRbfZ?Q;Q9^4v8)hJUgX&T%AY6NT(|NR`S%dy95Tv$6!euh^3ScraVNb2ZAK`9l8? z9?cigx5I!Z@P=~(BM1}c;YBhTtlAjCUiw(PNckR_mtg!oc#hAl4fZ-7q{G^RzW@)N;N_UW_oUOV4X#@S zuiQ0}P8ZFSobT4Pt^pp-lU(cG_jT|4x%d6?em3S$PQ;Fq2jI7db;@RUtX5+joY5)I zW4&C)#+~kruDv)q+Do+|z$utTd`4HL-DrAy9K3P&agjHhf~n=&{?crPR}ea##65f^ z&?atkke(g;SIELK%AGxotaKB2mw;tR9m>TvT1J_48>N2=5BD40>0(=2spBXtlB;xB zdfr~AOUg|YmX@1o&_TJGaqo(I&${#o z#d-EON&8Rm99s*Ip&pL0&e63k&+GemOnZsJR_nk767?9hjonziL17N!+S!JH}^I&x!iT=6w?~6&(F; zEF)8kjq-xgU-&d?>~us%Kt`^njW42Xy1waO!lV0PsnaMds#BToUPc<$=>fdCH;((5 z4&rwPNlItiaWl)$b>BlsBhJ%j|4Yl?;@CmjaeQgRRBs%#8lP`Kxh$XCPF{louGW7u z?t}0gpIZ~$==dRZ5QS+yYjLjDcSq^g1P@&WXHo}8>7qK9zWc$z!#aP6dmnc1hq?E| z@qW0|!H>XiwCgy-R9_3J;}|}ai?sf=YP7|EJJv_Dp3$G>ZUPPB@V(mP9UK32JwN0a z+A#Jo+G`CL!|#--o_e*=3@LMc_9Ib7-Ja=x6dv84Wqsw*fUlO5){C;&oMohK{TQSb zm(@;J#m!xunHqQD`APrd@o0WZ+l<1Zwj%oR2}r}X z@+e1#+25?%UwunvEEHicElM!EB7SDb7!sS23h^#WVxIZS+!*f_BiS2PW z8b1Ne$j!;@%_tXntnUokfr82-{AIkS;Njkor#fDw!_u}$lrE|lu|=K+Jgk?eyZ1Bj zw);NXgJrp11rQHXm)-ao4pX_Brng!oIocEEa&jV29Ps(^y@Pt zO!p!@$LBhO7du`_8;ZiBb|U)gC5X#*@>0CN?CiV$#BU$vBJ0eTdx+;N*!%0o(1hXM zH=L)7V5AY>XhJ-D#h;`n9OLrv?47`gV;vsvT~1zs zvgkHP|10ru41aI8ze?&q3QO;yi^3w=5FPp|;G=B3+Pz?+X9=sO6HMLR)tlJ>i zUy(cR>F=<2c$f(r8ISQBvHQ&6&aUOJMg6=EIK^d+yJLA4wJ)1r$1)yZ{m(b_NIMD1 z&WG*y^(X`DMfQ`k{FGs-3x>Y|5BHP5(UmtHmhS7Kbm@9}6Y#K}-t69Q!JB)NxM%#W z_?;|4ysk{Om~k@cWItzbB)4llJn!{3;1HM9kEQZ3ZANo4n{UUWXED|&PeThV#`f;| zpxODcp5B2n>GnhaJMpkyK7kQCozzPd7V%#6=ev-Gyni>|mgl+PJ^1aTNce8`Ck#M0 zKVkXKHNKL$W3&T2e=l%|%i_5=56(iRIF!wcW8uBEne4TPN@;n)895r;`~4`J<~{u% zz{7EIats@VrFs8Bq#^G=g!c`u@A@!)dkKn-Nh6uJ`iXus=@Q!L_?|_xvDCmkPh^u| zo{3*>3gc|#j&5b|eFS-n%NmFJX)AicSv))zdv9@hfrsi!X16;!(b zhH~oqqyOW0w7ti+z%zrN0DLtXq(8vP7VgIfh1i(S%R#_bvHd;?9OANUzt!?6t`eA4 z&SU8_@I?(XeW5s;0%hexe*QPgr};_$r}0o1CGS0r!qR<26c)7=>B~O@d~7TKHDa|g|&Al?@75jbj!;OL(;GOTQ6?MfD;5#+Q+X_3;(FId8*x)vx0BYLrQT zVQnlsJ|a&zhwwF|6_?dUR>h4=7qU5)&68tkC+L|VIOW)`gCr;;C)00y17#%dw_r@ws)uHyw}CVd=IMrHkrL+S0dxhjsUD_x=vvFLQ0_yZD_hXS5E1 zoi(0y4#O5>4U0bP^sIg0`$ws@53F^>);>0Q);{p9A+w}U`C)xQ=j6TzI>l|to-@78 z^>r+E1#L&HrsG@Wu?Z(Hcs2R>0m?-AxB&989)%OxpuMFZ+FRmh9FYg6{~?~^bL)d2 zIsT->B6*Ou{A0wWJp2Ujlkr_yw&kDVx3>T(y_y~y+i`RpPI~QFIvQUSX2;QS*hXj( z!%R26qD(RFCho$q;u6~Xn`LK?RDh$8@wX(#;)HdXTM-=o5iCkKPxz6@4hj41WXMmjii9+PPQo?}#JLvp>$xt$U~piayNQv>%Jj zX=hHF=40EX#pz~sL7y&MEi^lS@-8UFc}IU69-nTB!XjCgekzAFl;w83uXHwN2Y#}==lvuC(hFj zvQgqVEe1$F)_BX`;vJULgYVaLK76-AikWXL+K94W%(XKyM!8$0?v&^Mn3PcyxQ0wf<89_uvlasBEZ_ zeX+>Qw`j;OaatF|^`9lAhcr;&V zQ?ie}Bj6dChI{6uJ+TawmoB6c=iyBTy4K5Z9r9_xmaO1>FzyKnfxW)Rj14C7P34o{eZ2x;cXx8;d|6TBC8}f7~-`fFC;0@1K+!bNsJbh*| zSup|d($`|y@vZN2Gx|IP4mHLBUfgWkcLUA3?DX%z<171xfG6;VWxohv;yh(fCTod4 zeTT#<_k<<(OQ-LUuyO?KG4Yz*hHRP-sm2hTGaDibaJEC(MxXI!KEk{WkK$>xCDODO$@sX4|V=M z@uo|MMS4rd20Ia#9K9Fb4*`F9uLbdP3JE+pLjOJBk605Nq1}2pVE#hcIZxuSSZu#b z933GR3!|>Wd}n34fl&bRA}`nBPK+x|TBi5jGwRRQ-2m4LFI#N0)%tX8c}APHNr*=t z*kAm=>!AGI9xPUx2dZXWl>QFf zTqU>D^R7l4zyF&4F#bgU_?~<({Zr71Yn@KK8f8f7#Kdj#Y0aF7;3+|iZ7G2$C?)_N z%vM&0K{sWk2Xp%;q7sJSm-&6ZY5!1<$ZrV~xP%cdGDVytc#hAV7>wdgCpwk*)A8DZ z`?z@Nut+Y&792xd%H_CwPvAX;^#STq;uqaY+pYkAf)_?s8Bgm^(x2W#zxo~c19t5P!>-?|4}r&Lk4h{9aZXE zlf@S0oEHoxPS7SG9!Y1Pu@^LJok;&Rc(hKGKI2-zQyD2UMLYO#@-5X1GG`b!R z`3jD{=D|jT4<(kDFyNb7UaBna+L0}BorL|Q#eBy0xGh9hDCn3xRBGpVX0$QTTw2OK0O}7jB>v*(2k~O{t;29YP zEE{#w0^*2kO($hxjE;ZA3*B1T9(kL2U0!sP?uyN6SW8qm-O~h5G>_@W35XbvMdvR8 zp3W^e!t#*6%Lo_O8h<_5aMN|NjIEaE)||}aRJ!Xc_=Lf}ikr)+^fru=i(t8+(mOgF zY8@K@o^af=HmD>5EW9(Q3`2QVnl`qHyOA*N_E4}cm0kxD_pVr2gp6T_L6fCZXJhjY z+M=*1I~Ueo*a92`b%H0mq!jpaof!uTDBvF0393YZSUq;edNx+&Jt`D#3j-w{;Uac9y#p+I~oVyWm#d*d&|JTa+*xTH9%+o9> z#rrFaQ9aOO;rBzp2hDH#ABxAf|SYCz{9fKM{{_d>e(O$G1;H8jf$DjQ9T^-$rBJqm6I>1N=(Y zpzYgQ9m{gQlw;gALB2kRQ9M6QN*Oy9I{Rke7uVYO)hnWWBhg~^PYm}GR-!OhV?8e42ZRq+m^S=$@Putx)-#?4zsyN7>=}62o}Y;~-IdP9 zVmw)wppEq`_&tP}d49%~wF#D;cGj~UK8CbrXZf(-_OjphJ_|h+&lRU8X#Mb(YQpK$ z=Yl6%pVI$4Jib2b`GEU#435aW$O{lhTx)$+21ef6?J0AsWxMUREzRxZtU+M*7AB#s z(!zf0Mc|9(GyN~dLphiGuVnw*O91y$fjX15CfQHLa&rIMOOZxgYqIUl;h!q!KehJ2 zBO;;dGYTdKITl{O47||1rvK%5G_Pe3<|_b4E05(RbF*B(vv-LEW-WqzekJ0IYmLt- z>{KAJ{8}yBZPy=euU%@y=7+aR59RvR;D_cl{jVX9AlGMJXE`Nu{aV2NIa>Rny@T=X z*qCJ{zh6gO&b7wxj2vXEXMzW$v6XJ{W@G*_5m;!m}o^6dUn6#V5$4!!3h`nHMK9se$pbVNn z^uHC4udjL=;9l(D5ozZ9z}pc=oTsnyC+DZW(nayo+@j2saSKB7b6;tgCkOK6ohXCm z3H|TFqj@4@`ga4KMjYTcp5@1T5H8Nc4^Pr!8s?#sdz4yeJJI%I)em@po*ZoZc^~N4 zyrBR6cy#*_J2MJPj}1S7G#nd#5O29R??d?Qp(Wf?B6^Eu1alq>A{!p`dWZuB(FlLO`Iqo7~&lKzk3(Y%yC^y7f15nG+^(?y>^d~qJ$ zcu={|Z|kyn=x&iO(+dl!@0F%u9{l9Xr$D>r3;q9%NApGcyH5k2My&b5`mXPzy+PWk zr$2)<;yk?Zpev?f9@<;n8wAs&f@P6V{){0OgLrV0FP{b7nlJQ!4v$X{eID>sM&JQy zq+b34!o_*?P%0@6s-w}^;vOLVjUdjpMxQ*&DEF5@t1dVFU&f=$E&Kkz0=P!WdY3&w zUqzTWPnl!Mjz(9D?Vwhj#>Y36vI&YQkf+pE*M1%J>T=Wn4LrKs((l{?cnUN6VbaO^ z{wBi3dCHzn+9I7Tp7Y}7LnZJrZ)W+w4VrcN>HiKMU4E(e?*bmfin5b7mi>DO6Xz@Y zvC`IRJFhf(O}Q$z+ol;pJSAs4{{iUL<);6Kc(neLe&I)eC(*{oR@O!(&D4EAMtpG| z-IqdDOhP;~w`hBCFzhyeh8(bi{v_0s2l?_-(60GH|IhGfzHlCk^Hx6x+?!!+e6M2I zF-yR*kWarrdT|~;sf5Q~mKJpf^WX;BL%ivFpP+QS4keBur+m_u*r8tuScyUvPegnESU+DiW9?ciAU!$l4#uCv9Q42^0n9wan`=Rh!c~g zvc5mt2leDa9{w4$YaY`77d)DWvPb!^fcsF#b<`n}!)fQR{rwH;#CiDRMOpMgJ!NQ7 z#^$OsGZn4A695lp+xGqe+BJXZ4<^Zbo^=G;2O5$EAYM)KBa zZc#4m0R+XA1i-@$D;LLse$5Z#2TZpc`3~^$fG6-8U9zC&??^9o@dm^d=V>cRG{pqK zOK*#P)Z)P^KA03g>5ztba-e*i0J=3l=syvU=7;p>8v#!v*5f??ccWPj^5`U_7w6%T z2X!$G^OU1SKFu$dmbpbvNlgmm!EWW|6wt2uME@o{x*f?l;8egHjYrFew2^Iqr!cEFat^}9d1NG=w3q^U>GZde z1Jlu=6&w*7Yb-8}m+NZ7XHZPTcEwWRh9dIdPM}-!fd2FFXddiw zSHXlxC@&qsaFs_gwB6Pj43`f%7|X^pvgZS@xD7#!%G+GF5#UbGZ6|RzwOScdJ}$_F{7pKk*bNm1Sf2jxb!2>c-&A`;stR(pz3J?6NS- zqz%h)c?g#@jw*$BR~W~njg^UX^#v~N1TKBB3^Zk8zJof<)f4M($kb(_(wxVK>R5#; zzp(&FW^gf0qaILRPeWU{8{|e@A=MU?grbEjUrJv6{Yygr^L0%0RA+kUDlvoI3r^)= z?TiaSuWl3cUxY`u37Ipv7;rCc$FGwEI<$r5XiRqr(ul)1A>w+^kF4kgd+7JiJty*@ z!c)CV%hW1!KTFE8Qj4HnBnWI@pj z_T<5~axc)V+Y0@crM`PNYH&R}Yvo zt}G+x)vg3yah*xN`7>;}j4j)5J-B{ZFL$uM;;TDjh33}y(X6D**(4~%4ci~}gJ#VS`Umi6euzBn1{|GeA}edd zB=s-X%UiW)2Z2{y+MZ2i$c{WtLq^$dI0t1rj0g38R)17Ze)Eg|t0#kiciiLlSL0+K z@7s}%^V9KoZNV_&)5&*-7>|3!({Xdb=p3Wn8`>P{xX&c!vJV^h$!!Q9hhOHx zg(i+QCjh5Qheh<7GwwiAn8Z9e-bK8ntjvRH_W~B;#py!9`$3FRf=%tg=5qtMTaTP{ z>KVZh;*u5l#l9+!ixV~i*e1g2)uoZj!4S3?u%SlT*k_D4hIm^5nw|N1*8)y=>e-aJWXfU!uxl4>%8WJD!g%+{M0al?KRQzC$&d7v@*@MIXGnlIg75 z$ghX=50CHe%j1mhaQ{dl;72`T5KwUB0`MeA?eEKvVLQ%pvvN@YZn&R_4L*?G(xj#L zgrNP@1!PD1P78t~TwfsluRn=2EbJL5n9s}_8=iX{amV&TxoN-EQ=Vj*?D`dT7U`b? zOx&5lwh|Av_Eqft#*OB-Qsod96U@+|bP*^!N(4*qxxfuk&pi%pPh3YZcy<4^rBYC| zZ^Se_O!I*p8yOt#FLV#~clY&=TOMi%(~>8ZNz0R)9S^pe%%-O}l#x0ktRt8mE-&sk zb_V^pW9^{rQ6s&$A(&plDBi?bx)a;j+*GrtJiTAZ1HKz@5ThI3pFD^)$$Xy*!}kLY z4r618$je3G0rXaGA7~V}h4KNhC{kcevBZNCp`Neu%0*vwabd79JhZnyGf}DG3THQ9 z3yN7Gz-IVUMc(W;sNeWo^xJ;?*7~gmzvwW=yB-hq+dSTM=`a+GN(fH$TYb{%w+7y< z8{!fD_CWj&@q!A$%lqT0-#)`i0WYan77#b9T;vgTOcQamjv?PVpko#Rr@Qv{tn*AP ztMctiZyn@W0r~pEvM~Q*G}07I_`W=8`A)vEf1>{Yo^>euSE-cYd|^G%jdZLprjhzu z!Eaq(H^47-BDh&!4+5Mn9hR=I8z*gjJs5A+7x74aJrut~yr4qx{ytG(>>~~$F8dU) zrnK0cHhs?_z`6k2SBYSZ$G(K|aMuWl^Ly*sLneBtB?45eXwG56MsWj9TNRU{|V4t;y(-ije-599{XPE zphrvs=-kOc-_Y)Sp??_vV?*7AeyEW+08;GwoVfz>J>xfG@gr)(&(;7O(JjTE@>z9KN?TM7Tid9%hRs}jK!`&m@ zyZgsWL!-OLx(kEZ*4Qc$Bbj@;%a^tixqy8T5#g~y6DU27Z4VUZ~J%yPo-fWU%<7+6;2N@721j5!#9GWFqe{g1NuMr z%t@BPx-QxPqRDtWd@=me)`TXu!;?2g$<)OpgtAnRwI|rf z<{mK&H&mNoUo=oF@8g|nBG<-NHn&ShFt#b&t5%k88?&9UJ&i6b(fl<{b-?JXAouD? zQfeK(1v=7Sfas6(WAp|a7~)^-#URNG2G!sL=h;aM`?Ub;Y}YrM((Db5gy*;>r{J`` za{#|~l4-2NTJHE*ZwZZV!VVLakNhETgY=jz-+$>28j@w~?&v>+&MFSDG*TY_Ytpt; zwgvu{w(ti0rknz9<`UirzsNh|y&ezS!kh4>ONXV~!kZ^;TX+lJlDD*lw*eO71r>sK zr)vvey%w1`Tl=kun?7E39tXC+YZ8&2JCAz1d#F(8#*~8_y+vLt2mbyRXNwP1(W=cy zXK~l3_D1sao=Mc@VT`@Jawub&K9qMJiw5ku%1c$OHs&!C3`THV$R)RMY;&}jlzGa| z`EdI?qhdWKKKtcjuy=F_M%Y+)Z@-xq z(cVZdJ~e6OVo$IZ`svX*Lu^pO2bY_JJ^8|L_t?&zrP6S|Z>W^tTdi~YX0fzm$Bs*J zld=!IOD9D(J+6J8Y!J`7=?#0&{il()7m4d17~YB1ZR*?hU}Nqx@QcI8x)hC2@yds6 zq1S!-*2J>Ka!ITw;>Tx^$NIzeo(A>{mhL%>&2fa^(e*jR!EVy=%6tPCf7*WQ6oLX5 z?;e*xuGS)T=i1LtvJ9HKe~zF2a^-s)Gia)dOJ(eVC~6;h!M5;4(4ouq%sU%;_se{w zovUA1ykTN_>gtLe3lfI!b1&XtmX}A&zI66u?Pz*m20n2csJjY16Wx3I$GXS6hbOv? z#TkQ;4*%Q-(qaa)|C&PYct6IAWBr(9O~a%dUq!yQ9KQNBqaCh3xj8JEM$w?CuD?!P z&`s1WohS_b-@rp#_tXLaaO`gh7rpgO{67D%ft&vJTkwl+lJwMD-v*p69hTNx-$`Zfu84Zpem;o^aIA0Ql=}W( z{MPmTOZcTuC2!XEuK=e@ho$TL*ORuskKoPvCLXEp-{5zM7gPw|>s>#k#~MFF+zkQ7 z0^sT}u2kXL3FY7yfTO4e&WU99Q5*~03V59Jc0S;@fNL3G9j=88{0?wBHy;qIGhZEM zw(pVty#+LI%(;)}d-s~=9S1=IKqGnahe`0{aDaZp*S@bA9_kw%mfq7`I=L7WeNbRD z`2IwEH`#jSZ>iV6;J2>Vzrrtd$9R9n!+QN2-gN1(biMw4($?!g@Mc+vN9wh$90Va= zP$78PKPK&u0C9a~5?dpOa9v;I6>W`n!0D{5;l;2juc~*kykc3Y59wb6oW6PGC@dGe zeb8iUc$7>h^8##FOe6e14tO>H*TXM77To0j@vcniur&WSATHNH{|#^QpLm4-Cju7Y z1r>sq;|KEp@;xkr9mB6h+)Lo&-QG*)Dpp#-b}YXRVV5CnqO#PxylBRwrpK*SyW7Z71{u?L zV4n@Xi>>C(%#i&E$LzEnPIYuM`G%lWz%*gWcK#*U4~4uewEEznCSxpJ+M6G__@WZV z{Qcd-B`ls5lMtq*T-?r;gTH^U*OrO2dB*3Qnn5kr?eJ%;fi0y_IC&p9;?wEG51n%| z`XQ9p^gS=XAU?0gIA`Elhtq9a@TQY?7lozg)uOOS{#g!_=V2@NUCiJ7wsQh!!SBPp z)#b~!$@J1Tx8XP24dBMcIme}EStNh9&2wFPX`4}4M4Qa7-3f8oHqXOb=w%*Edp=-c zT2LW)x$ergsr$S;ATIm75iF8geRxK2CSaz&+g~+(9s9sL0tVA17_ZoQS;Ec+Y%^e( z9jnuBXPZ#&?0R@eG5tR^R`w8Ng>!BI4V{$bY;L%+!H z1<2dhZ*JoYM(yvd;1%1Sf1g2hu6H6h!hRx$s=3h7PWp}Q4*Pq86K67B6azd4wDQe- zSSK&Mim9VEzX@N}!4S+WPfI=*t9&+_wdv8~ME~IE=+$;&uKya7(Qp#Va{9+P&{HNh zmii~6wDbvY?(TTww;z}uny7Jca+1^jf>0Zb!0 zpa*$r9ncHEv~$5t9nhy}qJD_NqI^XM^dl~HzyRLlE#ry~7z8X#3n~Qf6FoZMO2plO zytEFuH(*H}unVxH4(J9fsRMQcW?HbSBeAve2-EFf`rfMmr&H};r?yRBL0IQ97qZo) z#7-(q2=Y68QNKA_!y;`6I~(yjv7%@04s0~d946%&e9jHI{E2E~FgC^>Z>XOc_Luti zn5{t`pp|RCoj!5x1awYmY;-Rd+kgXxKpMt!oDj61I)eOJj>#Z6@=ol_mNHP|V&#K# zg{E91=hHSBYaFaJdzP1$0Jb`V@QuMltx{P?!M6lM*kEs#Fbs|_c5w|Ku+fD|eQ$Zc z%(*cC?MA~l58#wQnBR^dKZDClL%v>a{Dta#rLin)bU+#GGH|SEt$JeS;nW`iDQ!q?s>Y1GC~;X>*E@MDUQvTutA>NNx+6c@60kj zLpy|Ou1~Mn;7E^-1(;<`CRB7>=_F87Df=3m3q4f zdZZtG$}am`><@?moVE8^|9edt%RP%rP27EJ?T>3zc`!G65MRle=pN|r9v?6DAU7~N z39@vbkMwP*tHi!PY=#^$Gu-xvje8nw*A7s^IiO{{Nf+mGPY60ULVuz^?FjD6a-cl- zAkw_iufI*HjyGci}el7Bc;AHhI@;Zuot-P{9zOW#_?Z{4>}!7qI)<4xjW z-#U#qT{BHEEDla-?|UKL%g6u@bb)ea_(UkaXqCp>&0^j(|sX%#CeA* z;B@gdj))&wJQ~NhxF{p6ADqJX?5p&x7gq-+3NZfrXJ;`e3&)rnf*5>wqB0$ZVJ%Om z!E#ok*;BRO=@uP@wY`Cf-OciB0`KNHJcf5mJj~z~9YlHS3aU`%(0hvxsTw11ON1H3 zE}Zk6=LI!PyvLIFVQ3!qY1?L9GC9O;{YVK9EJ zwRttbwi&-ITNV87uL)} z+#0Xoyn&ls>3<;7b3W>8H1^Jsw7ditR;90OomqMv)6wSObRd&*6MjQlbVzKgn&gmEq18iTN}rg@p5?Y9}9 zYwF1`$`s}sa}RdqMYNzRDD>EQW(*L+pSEmQxw4hEF=l;!ZlIWGtE6z<-LvVY-G3(Hh3XF+`o4i1Jl0Iy(4xx%oiYZ z`R1Oi7Vedb>Z#0?4^;8xLD%7=0xT}d=fgmg^gH}5ZQ~L6t=q;;@QeI2-ox>*ZTvgl zbm_2k+ju16vTZyHZ^>KQ#$x~r@q!A$%W+V$-+46RW|f$GMjnfBE$f#5=jI*Z>Oq zF4q~k*Lto}-8Z*n=fU*ObvPY2w?ePe?> z6Jc5oSa+O{dlukyeWyn2mAalVX=@fNHH>vfJY=*y=BylfieP7wjo*Yk#jn^*qPXOuAv$@14N8BlGb&jsu`H zk`U5MxlhkivuIfF8C+UgkS>HDWW!W-R*1;$^FV{>3jP-PdjWoH`FkP!B7cncd_0uD z7vW8p4ol15ixHRd_Y%A*f5ap5_n-J3;sq6g*LQ~FrHGqVF4|wz7cWB`EhnNcUJf{& z)fbsqj>@+?oQ*OZ#vGKBAJ#p_J>22NgS|5|xByx2bL_w_PgrPSh{#tb;iI$A^0mf3 zoZ*)>l2~hD8$6 zL4RjZ#V$4gT)$2jY-+&vniebZU`qowXj{FD%d*3M2Hc)qvvx?3dyOiCo&W9co+ys@ zb8Z_JrP-Rv8QCP1vUv|je;3*g=9Ctu!J(zbbfY#w6N%FRZVmzAhPMk`o8j2ojxk@S z^2QjGyD>2vTbSs-PpN;TZ)`Nr!*gD+Lkehd zP{v;mI@rEsfAs;_6|Xus>I)eD20Ywz@gs_Y&&2R z3pHbRi*5H_M-%C~+}d`%#fie`@Wj|q9wQ>V$=I#ZctRir*z;ujm!!=}TXF+zNgTN| zN<-Qm;ae;mih=FG&iB4w(X!prGSNTOJJ>z4+n%u)84mr-SK1GX23NqRspiWytYl&y zhWFx_b`KSnnqOwwa}bvgs{HKya$&F^hhSZndXCu>01BWRC|CC`SUu@)PiXyvd)Y7t z@p5mZPcV7vU1*N|Jp5ku9RUr33fzi~_ zryV~38aR1j)(7|G`}dBGj&moETe8M+YPju^7@LTKFue$WKr6phL)~~tr zqFbY|v~K-6;!?MM18=qg#ueTAP5chif(pUQ{yM2!zks;Zt-C8reK_zfJz#h~fwuUU z5r=aJh?CFv4Ky3`qdixR_YbfgP#52V@O;Q&yWi_ufN34fI^w*+w*jYf^9E6>VuXQp z^hu}FXd~bjL>_%Mdi3|(sJrL#Fa(rcv1k^w#D1X8!^%f^UYc`VW}MAAJ*T(b{J``a zVLUYL>%+94z~KRN;4B z*;yj97r(HFW{Pe4?l;Rm?rqyLV;WxQ;@dLs2?R#aKpFWy@)tXtzePTOh~HX1e+0kC zAmjZ259Ra6c+;iB((?He#HD=x6mQ8}mO_vT!^ZvJpOWywuZ}Ogag!g~I?+`Dj5WI4>MxSHn(`WbCUy0sZ-&Z5qYwFejB1R0F$P0;YF8$Kk^ePojyIurIoP(d4uyASop1A8akSn>A<{< z1)9&^_mpvNl6}=fVJCJX%oyh~oCod^@Pqc^DZnod<8!xtu`q~r5*T0F@X89Zv}W?k z*j7WZ5XZWQ`U^ZqFNT-`M&&)#mG?)nzB#_8#3v5tpZ!33UZw&t|uE7NZ_>GRXF4}|e}hS_b2rSX@S zdUz1lQ@Rj;wm!VLucvXS7pGXJcr^<6O?sGi8`2J8(PSBYKN1?do&EOhP;POi-yWXW z-7|WPK8F&6?1HTN^_rO<938@aLvFs;O&MwsQaky&J@VByD*dP9p^Z9}I18=Ap36ZO z9Q7G(TOB5ATE4LLtE5Zb`Jr*@J3j~){d*REYyG>G^n)hay^@~#_iVuF(qU=+yA5&K zx1EDG^$qce{=E}^hj>AS;QfrVd!=uqO?w97%KY*)Pa;k)p>I1Q*aCPLXyN>_hTj43 zZGf9QLfjck#y=BqnO}x@o3odM-x2WbF8&gyZ&9a&cLBb`;TJe<=yL&2ONZ?b&O=zT zKj3{-cLtp9LhLzlcX?<*%9Jg?K9HV1j=~4s<#h2~kiYc1{4Mo~&|9;x?>@jJu|Dg>`@4d^1o^_9uiPkY-X2-mzOuV~xc z9dNq1ZPOaB9snFc>Rh($^yx14H3Gs><|S6mAE z)*lYcH#ai(1Dj&$M?uY&WZ+9i8v;yc{%$+hpgfuo~*-%J2)hWZY8*atgg_>}7v5 zK4t4l;3Y5l`)imB&^nm@T?nTR7QILLrJmJcNj>|2csmpL%8Dxg-y}`bG^i045D`)PW$Dg?q!Y4qH;9DS$xCA9_kF>A-^N{W-*Cfy9CdWu_i^7r z$8p9{|KDF#oqOxudtVRy=Rg1Z`6TbwIj2t5tvYpTJ9R3?<@IcgyOA-0o+8hVmYu;#Tq+x5WX%*4`{#wZ$rM<1PK1;fihXVrbPCFX7k9$lBr%urw~Y zFur9vxB{(o@XCTe%3?aQ2Y457=V!?~uy(q$7r1n=bn{#U?*nc+c(PI7uagtTs~?>7 zuyzg%wgs4UFjC;gq|(2Gz?}XK9dk6fc4P8w;A6d@bu8)NVc>cq9bDuP`~!La-x=r4 z$Xofma&n+=a-hnHY|QzXKoc|rh#AHRmy*6@Rb$3tyRU}4*v9@C#elC5zopO;r+lei z$He>EOcoU$=TEZ#*KYUOshnoGOkO05f}1Sv;60YborFymExu&>?fOxQw^idtVN% zWbvW=TAoc79|kPtOD>GB?Kj6~J|>{mI#}>g?d+q~UvCG_P&0!2@^h!PLZ2?04NWwD zq$;_(0^AX5!O7N@(8RK(x;z@$ngp)r0y04V-m<>v=v(48QnbeczIr zpB8~|2(nfqKa#bX=5zdhgK$h+6&Oi+hldwlc+qMD+vfW8nHuGsIfN1LgOl+R;O4Mq z-5j4p(euG}?|4-};`huuk@6|>QNqd1D}>`N1CsOWh26wF4x8bnl~rz|2wSFnkB#}U z567Fw@XTm!zuQ?SFC+jt_Zi~p_`^Ly0lVCAym32oG-@5FHW?`pn9>6FjqY!o@V zI#>7YJzf1vK|XEec}~30rP7IdH=WqvUHS_6@u;z6fw1X4(arNGow&%ao+7TO6R&|* zI&q0#OIv9u?h3G!FS#(jWouN+&=$Ya&q-Fn#X8H@sP+NZ(>zX23nW`1O+lMe{c_Bh zFC*ns<0*v?z)$4@U#8l(ek^c3Vc$CF z`Yd*;{!`FqSEkp6bsDYFF*BHV<{3fv3AP59x4iJ}TCjD%g5`zNcY+;fbpGlN2R{jT zC-9NETB9E6w&Q`x?s;VPKz%M+1KSYb>PyrXkEYnK4c`ST)^Zq)nb(x`)qh9%`XxkT z{iD^&ppNDRbK@*bOxK1VM;hx7OIO6_B^quUSGvBFfur*o#=fpoW#mt?+)n2p8tSoPBNt*^aJknv}XKnD=&n9eCJUAkIdI#|_sVy5QoibVG;=ro^+=ok>xwLI)} z#q+^yS9EM;byv?SXAzeC-s%g1$9h8T<5={>i-7C7Hk*c{XCuV$P!(>|^YZ9;9C z6D-TN>8o}jSUb0GhhtXh*k?_$ih0x&p3z-vaqvSFCO&-jPc4tv@xIR3c?);Udb<+! z&o2r2QY!8&Fy~c=M>JaW2W+z-xuX4*&t?1>evS)I_KjAz_v;vc1uJZv;n8=y^ZjKw zeW&E-W#mD6z-%$Ql^LA}$@vg0Tff%+vDWF`>b)C=dVMLl*08;kCWlDNNxlTl525CG zM^O&1AP@Fni`iEl>&0)aw^BoaLYL4qx{Pbl+&EsXYrSB<5s21sZR&9 zwV78nrHkI&HY7WXrtOgo;M0|jPEuI2k}adw>$Sp;iBGmW*8<^rsr+9<9&G%hcheoO z<2}|L|3KJuhv;6*pLECT`PEazW%|r?#~YxP?sy}=mbU4RHv>!gk_+QowpREiXj^=k z+XsCM__!Ua%(PbcR^WR47^oEoXZ~4In44X_mybE!3I)zEYGDju=HfBP$JckioqWXe zcZIL#Pkm5+JwL|Tx|a03;8s`f;ytdbcN4byu=uL0_W;*Z#1-r6z0j(z-p8-y+3M;8 zz*4^C!uU3Vp8uzArQ&t&JD|1oe9oKJb-%TA>^p&XL8Ub#gKJ*?e&EH@^kdr(f{W`_ zbs^i84*}N`e3q(WZ@Q^vLncg(Kr2|IewsqQ`vUB2`*e*P@* zxZb?pJ+=LF!1aW6l;&cl)|vsEU7h_f=-qA?vw4qGu)LpH-v_dnyRgb}VZZip5_HEU z`?0B-!cco*sj@V+hXpuyLxyy_^|QB4+_q!7S1Dey<*zI+*XMW59psi2*W=pRY2i1x ze#c)e?s}fUPdM$1Ru(Zd^(zw&t+cccdt$O@XknTuD`ly1_%T%H=R^7EQ=M;TE+*+6 z-|5HH;hj=R&m8x&-^46(d4dU|_--LgewTZfclFh0YO8a>4pwmTB6v1(BA;qc+B5h< zKHb4#wn6&Gs#~{J#vCQq(H5PdAQJQeYdKw@GX-Y1?M0)EFYp>t; zsYg*BXol6G6<`-6vxD`0Os_&&YK-;OC~v`z zcznCJ7w#La_^RAC6obea@yqQorP_2TEp#(xgHsCjeDsZ9ClA)g>)mwDH+heB&bJ7g zUJ>0l_><20Hotm`xT4Pa4z$ua-{sfRHl6c*U@2d6VSLN_`0qhm`dLmVb+r8ee5_Mc zUh3n22wYFr$KSg0lK!(X8*7_kJ&+bZySq`J4l09*wb86eX#%b~yzrJt(~s^gbUR>pB{*fYVV5IHJG`249o%;wh86#fOgwU+kD z3sq;?xFN%}C3UA0%Wzp6)R;nXtbP9mzH$5hEn#cJ##`d^H&?Xz){aEtfz{UDQeTnvV{s>&p zG58Pk{_mS(I|ukppv_M9G^R-k^D_D!zn|@QU%a|+f)LyFLw_RO^@lTiKFOozu`B$^ zo=;&)KKW14AxD1>^m_lxS-`Fhbql@1e*v%gg!y1}_1=VQPfiT>^d=K=JX=!|uA7uw z;gqjdILT6m%VbG%D!9q%nyF?vJ&JHXPmI24Gv3>Zu)38!)X)VUzFF znCRMpX%5sk%Z-|fj9wAE19%tkfqHGxX~3ZOB)i9es}5OO9c}9g$MSkQ@}_<6V}a`l zbDt1nB1GNnWb-XSFXrtzRCk>7tD4Qe!kqEL3$z2daqudz4asWiuu8gAu#L%T>afaS zCnl@r+`z>(-}h>kW(%lwYy4ZJHux6zjARwF62CH|wy5#%ZNj$^#rv_?HYD2+UC+1O z-7e&oOk$A#Ug_*&Tby*~jJDxkZ_8yl1Dh5YxVg4@JMy8nskZh)e1+=0d@U?+$J5Eqja`jnx*-8y@&R#`J}>kgjVf)_Iv<5Y7=>!^%-h!iev3< zBXLhZtncxATX!LBZOVA7z17GybO>-7BHz*XHMZi7}AI{2a8tb{V~ac!-m?Hk{w5>uV@@Tx*b@AqNzT#Ug*}@!z$(jA>6t{ox3e;@ z@rZzG4}NcFW!@)Qn;XPzSspPA$6o4uKlgfZHE#jO{Aa$huda<~zlFs2TRir1<~dSR zisSyk`5oarztJ=2oR`NeIV@2*8XR92cmUgtm(8!`x2r`vP}s&3lKN{KK6Kd}NlJSt^a`Ew%aCx!@Z_an1v$B=G~Bj;k+7 z8hn(y;3n0Z7YU|b0C%3sv-IX>!Fua+b73>j;C+Hu_U*QPKj}dFk@k~=d=eF(a#DD) zKkeXMqzUBpN%>q{UIluwi5}=1WvrS7G97dZ=}C^uZBsNOYxcl>u6Hw#17`g0DSqfK z=^(wE4!Rfbu?{+&u<04moyMPZ(7pN9Q^XZ@&>7H52c5~UbddO%4!RHTDPMA7e9QLN z&w{q>OSP7DHn>=isGKzKJO{X*Y~GnGk|UH;`97-c@K>GBk!*wBhbdv#H=RqmR=#?- z^1UDLarvH4*ve3J=kcfVy+6NtinwC=UI4Ai_W}H>e8tDg_kp~pe949JEjzz-A+))# zV?5N+b`kKnY*j8Q+Xn&H(`>tNq;hHN?7Ji@i-!<@{b8TyuUzHJOW&*hQsD}Ct<7#{ z%&$kXD!7$pFZj4D`v_ZkS$vgcKX5%oT(K;-K&!Ic%CE{&e5@?1z*4^C!uV=mQ1hs6 zmrp;2?15JOB7UW^Yd~0Tpp$fVl^RP9Koj2!BHgO;z8H91-qIPeYq$isp3o;ojI}76 zB_kPZ-oI}?PxN}m0P%Sujal0%ilM+?X@v7c69aBhv9~fY;B|-eUvUhF{u|sr&UtZd zi=}rZHG_P7mFY0)SiL`G#MgW5Z}&^gM|EDxWI;5S5=ZBzMnfKpxaK*PWGIW5)w9xn zs?t2H`t{?i?eHw)w`oH za`!NPl}FK<+)V;Yc{V(ipTFr^SAF$AKxivB($q1Tf8!FlO2L`DO_3MX_xa8a^Dw2aXL3}2c`uz99g?EG3xIdnsO9nGsdvfq@F5y(xGF)5o!N~rkIbP9jK91KFtrg_s?YO^B&)SyG z+iAa}oAzb$p7H8P8llc?-z=t&_sz06Xpvl;Zjy}S71LRRR}Y^rv)NHwzwFLsd1_Bq z0xpHtT2sX1|$kG5oApmS{vei<%nYnGn!SN=WJQI?*oXKV8h2OhWiM-X;tMfp&h ze`K7GCR~;eYx9qSR&D;#{F+=@n|};2`v$Fx7~jugju*eu%?f+`vVU1)fn>>zoFEFi8w3hsiKpKJw#UfU1uB5>8^A>HZ7l+9W8xofyKH~{rU!U<=+9GyZO8V^ z&ZItDM7tqrjO<@J=WNxT#tLf@<-ZSkRxUOs_+`PoXp9|5dn32bPfqDrfiuVWNY+@v zjV`jF|3=xU zo^0MzC>THUDS&->X^*E^cU9SeN)Id}n(4dhTHp9w(v15>g|FjJ{bK%{R*YMJvd^pO zXZ25Ue~{6(Coh1X9@U}XR);U*J+8wS6SjJ?_^QK~g!n~Vu?}Aft?KY){Mz?f9lios z%9mUiU$sx^=h)WfdC*FS?#8BOk`>$dyw&r;bp@Qip~sKKUI<+J)UEi^?xa&*4lFBm zZ`=4vU~&Dc-n3uxD&TtVc(T(eXym0sqem8mI~S(j>9LhT5BoM_Z{ zE52M6FL*~F-aB#Vlim)Ev*8i}-Icb^wa%x$=^fx=Inq2&4lTU~I9Vu?S9udd=Y%Z>Bp~})OOZOi`T$`U+ z+<0!1rA40-=!?ACl7AvyJ!LrCYnHAQKa;b6<~^3PFB4Y$4)|EQlC!S>*Hgq5a)WEgTTi7QdRsff$suOTL@<&hId`f zhKt&Q+R4|zn~Ylf_y(}JeMrW&SNu)jdY*E!>#IXr%`#rT7VWjU+zOMr88^FLMPX|j z--dtOk1G5f{pStcKR&kB>~ac7`k zUYeR%;yyIXqoxxo(-?je^jCR$l_jW(wuy`7`?`?%3BN<{eeKgtOXlI2=$~i9ueZ?ar&miKAyg52Ir(r`PMgG z8{)=DSBE%xobvS#As&l=%d&^kw<=$63UOk%=-(FT zZLA^McLrL6iSE6DPHTe3^MirTV50j-pqp|&v3I(97tb35Z44Lvr<>?6OX>fyiQdCS z|HVMRFf&7I&iH>N(8qAmf4zx5W{OHPL7Mf7L|q z;nGRJ^Yoz&a#j)(86k1GWzw+5XytR|!m0Og^hv|K(D2+! zoDRerDjN^2A#IKMY)x%F_Q$eYwZ2#QqxjQW%36N)sP7fr`rdWC$9?ZHgsp$I`09Jt zhxkQYvF|+=TJ^oh@vFX9e5~)iE$=B`a$$V!{Mv~V%B8Q{qoM62apO zprzf_r#ik3bS;a^@#<*19W?Q{T=k*-_D!hUexDog8>~@EulelDkb2?`B+4?oNSLa(61fDhu&3 zxjPM5%9mUi-v%~=`L*0TKzkzjP=8!oT$I&Cx-TYNSB7hXZ_40yc*^w&ibGZ$zf}&8 zS9Z(V(98G+aA$zKy0)+8?JND5O7OFR>qzm6AwnO#5!`u!-#oXgYNyNg!A=BsLBK7} zt?r)136J_E@w+I%rx-BK){UvpM;G|b0l%=gj1|j_JFl*|%6}iYyiYR02aM<9s-L=t zJPJ1$aLWgmF>^LAqQ37Hek9;`d9TJPfu%Vf@G7$u8S&p4@H$?v3p}mA5brAjj{3vA zdtu2cM7&P|e^tPTi9I&bV~cfm%B-v)arL#pc_Ji{x)R`dBDPXG>k!4{m_rs)-!WP~j}E#j_G8w|!trj7 z&SvVW3@e^$A7_vU^&hr2rTqZ)A3G2(Ys;cJlRvE^oW-vm^&x^=TRxljxGkSUSn<_f zExy|FeM9^ruGp5(g;s6(Jbo>&)|Sr)mhvSR#`o%y_4xZhdmQ=LT3=zAhvJ#G5?M}E zZ}$UleTQLWyPTG!lednx`$HGkqv}Nc#|6OkH2a|`<&<{mWmv0|a}nJ2hq-&aw9c`? z8tWY$mRrox)C8*uVtgJ*zQm{X-fH1&9)k|8z!c%e^FiWyt?GljA9=U>e+ch!{ck30 zbu79E^QZc+@T;eYE7pGxw5tDJepUbCWA)$9d&-ww7~itJ)jnv;ze;VoqiqZLxL$2< zbt`Z^+1_fgT#i&;wtw-*P2#eLGZ$XxYyUzp-Ph1Shpbd)G}3i;%lBo?#@`23Pxt6_ zFRq7q|H*48Dh@@b&t};rv(4_dFudCgZE)T5nS|}0{y;N~~9m$`j1`EloSf% zh>o^taIp-?UR`|#!wmO?KBI(l>vAr)&DCxl9`o^gxQ)T8JLv3oB%5KT19p?X>2bYV zU0@E@R2Nqhw(=I;9{yApd->H<#1-pe4qDa4Jin?7@v*vC;63F_E{t#4o@4{slCN|+ zd=Xq+&MG7ANnQh7Pqru7TpoVcwi%`}GXFxa)*w=~kKT~pR(M@9Sl?aqHWLQxOm>Qi zTffryj&V=>a!6YoHab6Py1!}C8ARY9Ed+eqY1!A~oM0S}NbWicGoy+iR-db+rFN{e zld^NLgWJQ6xXu(S4O#sCA%1y2Y$tetbMfylSHvS00 zCOe9Ah(F2IBl*=+#1-Z0QP4`R9?h?%ZF2P(U@2eZ%J`O@hd2yv?t@(0eJt=;rfi@4 z?||#cWJ;rpBbQD2KG@_K&IKyl_)E{QPYzVZFvf3%vHJRZ@}T-I-!IfTrR+|+V0_nf zN1e*+@qvfN%w|)Ox3l;`RpXRJraArwNZo%e+IO+{gKsl~JD7a$9G5IkK;qg;H)Z7f zeYur9Z|aYdPZ2DFmdXY#8$5FeA- zXY-!&B^SoGY)tzsXv@D=L9dnR{|Rd795 z;RcrA=$N`Iz*KMg=I4Bugi`9POHM*1C*yOcvXdT{F(`IKV`=7MR)doD+1i z;P{S6;r9*jZs6;I56{fV^`<*hC)s;JC<7&X+swbFP9b|g0j|M#r<)ltlb6?C?DK!u zkpFAeh|}Dn`LxhsYn3kp+~3byo)I$qy#BHy$=@$YL+ zlpT{VyO%otmoI32Lgn@{7xr#&tQ_%4T$|&5TiGF~UwU~{p2m8IN4Woy%Lwd^ly9=L z0ZLncFXY^Ue&q{6b9$ZEdL?{RpRdyIVc~tAyp7>Cs|&#gi?=ak7nE;M9@@#nYoa{h zLv(I>cHiU*CE;H-yYX&$UxZ5F0@?o2EnEfRwL~65Y$s>03;D9X{NhbyJlQilKj+Kp zzxbdv+@ZI`3Yo^&Dz8;2IB)Mq{=k$6mD%f~{BBI}HZqP+Z)eIT6X#?i4^bYDtfQQ7 zV`pQU+JM~f})eN_9d85ANT9tQOr`}CRy_xq|N48N+`p7JFZ#=`w3flS$vh{2SWaexMEp;5L%Vxhxk=lijS4$ zhk>Ph$%XMfL_5l_N52nESh~VKZ}Q$-aqps6+bEW2*~;-??cl=dO0C6KyZ`&Z}J|?{ptoXQKHq>gti9`Og3~+FP2U54q>|GZ_6N|!?Ly_R zwUZwL*VB5v{g#)%jag1|9A|WUgqzFUo^X4z&yAZ-4RZ3MkgiA>%WbLd>}S;EeC)^UCZTu-Yp!T)WU zmd|IZ)}8sgjoHeZD1fp$xtYAFPE@8^PgnT&{K@8`BX>7dj9a74O&+yp!L2U;$a`Fu z|4!KI%i^mp{{&o55m&6s|A1C?`Jeo%F2%>{^1pab`H~CcTQ&~)1GE~4TqDQrY3cYi z^?w7`mB(r63_T|~_%rxIF@}2o3%I!6RWBNc{1v#KFb=uJ^-@0O;JWvTp>(#T%TOoA zw9HTj&gwU*Q)Y*KxmDR0jq6(BcJR(;0q=TD4l-QPXF-O`>Z&Z>&cIVLqBtfaN0VkO zBkKs892jrO$T7ezPnx%7xGY^8_pgUmGIA`xk`d9GjNArT8kbxc-zSym{0?ZP^JCux zYk+B*5&I@M3fKld{-u?>-%gxa}tm>f?+%m!`2Em&mwymgQ%}qCs<=n z%VTa_BG`Jtbig`{j|9^l?324Qn9}VOY)J|GF^%TS8w6X{fhP~U1F(&PF@Bd1Z;gEf z>k@3f8Frdr_fR}_p^d;LCT4raXW7>pJd@a;&E*zV+x{m~TE0w1F94SEB^So`@*ty| zv{@fy<{W6d2n{#n(MH>JtIPP0Yq09(#wGU$-&7PXUPs#lfX8y9GS&R!Lg0FW+{A@g zTBbI~=ytJWZSVEB!uTU}eT&USFABUx>h4w=93CBV6IZrI+^erA^>vz4ziX>w>i!+? z>_B?seZFxE5zFc4#dEW|)mT;GhmfYms;~D8x2cZHa9Q0*HwkX_-b38D-g^mK-CBIr zdtdmjA}-@?x~U&p)%zBHRqx_s^*#VB95rcRxKnTE{?e%9#y&{Zs)b z{p7r*L|EBSYOJ~yJWe@wqe_-)OYUlVH$SNY&&!0ysTTv+bH*msX)dPRdqkX67uw%e zAO3vj4`|O`^TQ~=J?ytFAHoZ)-SaCLdu_{y+%mp1H%-^22Sd6_+ub2F-lMG;e+RqY zFK&V;ZLP;7g>@mfQdrR$h>kdK%5ACbi? z-t(K`vU`4uJlm5uhB=sIS8+^sxAPv$?he8xpT=9VyA!ycBCaUAmq9Dpy_{dkuK1Yj zUcr0Hms}X%ZwA?oeMyW!t3FV6OYxn)mjdqsu65uTJ_;PsbMX9KzhmH}4l!v=?PJG* zodJvyS$Ym@0@&HWxGlo<*UH0rg#Gz7uPYx4tV||+f8NpdFz|8vkgVwrt}B7-dFq{9 z`_N+MEta+Bwa7kBc=!wV)P7EaC+)4FGr6pLyUR&!ye-_?M7t~g9s$9n!=*Q`3i(l< z(6b|B)or?8JZwA1L8P5{E!I*iJ-u57hbwFVP1>ucSKaR-jrE6*G!`Bj-8x$7tJ1-< z&p7C|9s8SM*4CJ8I9}R+)0{#2`b!L)l+H}RmG}9Rqg%J>vuta#IV}FRwz|ia$H52#SQ~U9&%?Y#&wl104 zPieXQ{^n%qGH$1iM>O8nhsHVzgoAjSE#8U z$-)9@Nao6A!B*k=xn_4d+j4ZljK?+Najj<yAx&FPC|b^(EF$sZJCf+XHTmk*#L; zn7+(#MSaPr-|5T!{3`#VHGO%I_cSiKFuoV&^riai1JE{qonKEp1U%M9Di^IMJ{-87 z=JmwZ>l`@A*^T`~-gW6mdmadm^;z zo1et5zF&My)}F$9%9mUiU$aB}JMfxMNYksdbj$14)1Y&KbNr8 zspy`~pX&QMe)SY_#rl38w5spt^Q-z6AFJ;d@}BY~7sj_tx4Zz_{1<9n;YGmXx;Fd3 z7X#Om?b}905xlWwh2_hpybWr-Z09&V)=2+0KRU3G>O$Z2Qqo#~_y}i3w6+EVUC!&L z12G`0mzM`V(lr_%JqUmL_Hf@$rPp1BR2du`-qGJT$#rBLKk2;$xD?qDu$Ir``+dE) z{7%gOMtUk+*)!#%Es*8!)gga(WsmeIGSf$B_7J~_E4GpAp;a4s2fvahrDtvAUBIj?<(t&_ULX43 z3;7mXV|g94nrn};>#wnh*7jZxOe8zF(Mjvrg1rHl)&QLkJgi3-IsP)s$wlGb1Ws## ztnCF1R|7krnkOW00jK$p)(*W{qMwhv6L{6AduqGy>(c3HdpGd7ZK~ft20i>9;Cg;U zCYU!g#bm`Vc;XPF&2CI}+oa=;*Fdj2yDCX;io*k)$xSn1oU1W87Vfp>u>P;{!5Z$P zGkaO#wMQTmagApc)?NVNAw?4GedLY3fJ0hCRrvjc7YQ>qcD8$KslE?{{1ZKSZzoM< zQ1`F6M&sVdb&EAhH*4!zm_8WnZMZq00P^1~IrtFi#B+OvZ{W|_A*hmgOm<_O*;bX| zx=v{w@8p1!%!{AN{Kt8ZW&TFOCfAm(Wd0Mt^%QYMng1lTlKD^ZYu{=z{~2H@Uvgo5 zPYwQf<2m|=p|v^suG-XIe^AD+FMR}D7x~dVJ&*e+xJ}?Rw_j*1XxAuR`~Da>&D9kz zk5fF&*+aaU85hyFE5$oIi`Rrxyz|m{duq#jru^z>Xs3#MK^nIiukp^O!52g&w6o8G zi`$vj$B(0(eGa&uRYsPyGj*T0NcPJ62N!>gqX*38gV=_UHQ3s@wRo;uR|+2{|3KSMkeRq0+z-l7smIixw)0}@)w|$oafh^1n&xP)`&Qz zj?3jS`Kj=2;EUiT=X-;Xn=cU#vh92{iuXSQlT72VB!zt$m}J?nJ2|lHJH7&3ay;cc zT>G*3H-R-thm+}!wr>NEG*)j|ZUrTUNa-gZ6DG*7olO zUczDz)W4l|9EMtxTP6kvb2nVI#7TZz$h_RgvLJxp)E;C$3YpCRfb=Ev@z`ei6#A+) znOutIhx}=d`mg-zF`3P9*}hH@m&ui6$fbGM%hONcx8A*byS1MYF2-+5ejd`5%qzah z{4aTrW&T$ozU12SCYk?rh;Qv7!)19hng0#6lKJ2AYxy;qzX@0xms}X%G8={;L96jh zY{T$lU>eWFHVi)j#!#ZkhT#{$)J4WN48H>w*P$OHb+p|KJTIrRVfa08J&_GVOIawN zi!(MD*fGgST1Ob1IQmV=JP>ILYe)Y^nySy1dz`&JQz|y$n!uZ}$qRan6-fYaW(AZU<;Vkds68=TP`24TnyU3Ft ze-!bGud4K8keUvz`{-dTq4?SOr5UfW#2WHisERO_SPL$03#wbSg`&yzC2lUF@%8hj0k>y%%F@G*FRH#^kiW&LvEB!#`S zur|j9CZiK<-VgQDCv4-|L>B+(BStTSkzb!{Ng>%*Js(S6)Fv+v-*S>Nm8^2dI71&)7ScKQ;(h+9oYxTjHqm#xy+kg^u5ROOc^~)v z^m=pXW{@uft$P&9pt5|hF%@mAClh&yzOlUh<|(P;0?4PWGU`+rh4!m9rtt0gQ~Ui< zbf<4Kjt`bH=TZAr9BaQDc#qrf9SK_-HQs8!cLJ`bh|73ezjSA4)qXefYk9Wzdskp7 zUvgo59~av1?OZy3oPRv;8UyvPq1>1pmS>v1V@p%PoWaxF0UC|xw=f`E-culQYnXR| zrck7z9i9L#-ww6MeIjr@eoSACeWW_N`5s=5%VouB1a0i?nr*nN7Q>;E3?f-kx!r?2 zSY2zaN8v91%I2jp&gP}6Yr(CqPv$+Y>rI5MJ}tiL`V`=LinwB3p9-z&`kwq+o~^F$ z1uW%DE{w125M#S(jg3!&)^v63Q?na*7kQD6j^Uy=-7GkA;nr0|Z#p@Ki{9pwjt~Bm zYAcm=KUnc>PMOC`m!Af{P;+7YeLA>UhE(sexwpJlcOL1{|z< zj&O+qW2vqE+zHPHTzqh|C5_4LeaO@L!!7Sh*fBiXH`y~d%t(JSeYd#hgt(HW_u(r_ ze5_2K=gVXki&CfaSNLX?31?pA(Ur3EecE|VWpZhCyh2j$hg7ID?d=wI_`tyM@FkOz ztXcaPPpf>KAM#W_cbOc!Y>Z_ob3+n^?3*r#zUdTvOt&tZ>fplEUccc#k-ZzA2L?Xo zYp0v<*IX?=H@xb~WOaOYWv>vz@a2?rZ1-IlsPq$Wi)vnfk>CMPm0G(RJa#>ncj?XrZ=Vcq;F%~ij)mc87@C=j^o+5xfn0g zrA1uPrYPo_U*m~!H@Y@bmd~P1Q5G+=DN>&yxb+#sl$-Q9aObOfgs}3f@rA`#pK&R0 zJw;shoi;ugg;ssW7{8JW@lhIzI{_@^OD>G>qe}c1_CafX24|VH0qfRI`hj{&ohsc%ypTXT%z zTYz5_@>%zOKGXh4yfz137>8)|n)2!kabmdW2LgQ~@~y432LpW!-wJ#r&@VKWS9i^G z!&>;p0dV6XP9CRtJJWbe?xsb3qvBkV#>wDS;8y_;DY$PCY#NxS^5eLRf$agNvWsoK zE&)CVTy+`42Z1jJc-{tV2%P!`H{%Z9v<=t+VDyNtjMb-)19N>k9*I(q(T={OZ9BMp zpMD~J`VQcFK7h=IK0S`@$8r$_4b@`YA7(|P{e#23&Q>CwC}p5bzgNm{Rs7sk( zB?c2`C-<5I3D%a3?K*Uh*ZC(AZfEzY!5wbq)2CyN@;$s?x8x{}!t0W)xV>6*;mwRy zj>8&#D%koc+?n*bu-0CVhUG&;8NikaN%G!?+X57W%3absVZsiuGRZi&q_B~NLj1LC-Cb1|R?;mrA0VwNcfG;OY zFTXAp^H+NEQPHWJH2F@Q(@}a?N9lE`^==y)kkJNCF?zP`7mo zZsVN;@YPtv+VereHm0%o8t)tm-&Dl$!LD6tuVU@-8s|J5TKztPU&*8RC=JDZ6tI*p zxiG$$m+Zk}Zkg^)P08k|ufDjl$Bzs4f$O5))qn0GMr zoraz7j}=E_AjR2JpWVGDj6aml*&&_PMP|yl*I-?g!{a_5ig#X!*9vcAAzVPu;yS@G zw|v@o$l-Rl47oAGe)w(?&%(>0t*@TsVhq+ByD6&B-emvUo=8K}O_3$RM@gd{@MA+7 zipIW~UkQybgi~K76Ws~)&k?ZXqP0%qd|^d9A0yRX)EI3k2Kf9-?ye;-(u3-QlHxk< zP-UF8$4UKUaUK`ql-t;n6t;9U;lcjOXs=5;3MkFU_G*$ zm9NRG35^X7Y9Yw`81}8I36z!ji^zxCmCE2R!~9bID!+B)P2rb-*Pe7kijPNiBe>Pg z%fQEV^K!yg{uW<#^9ta4inwCkyb@Z~&8zsed|BPR23X3MTo_-iE2(Z`Tep`&dmL$A zDjx{m-Hr3N^lISM9kY#U17ijmt|5Q26MZf4xUQsYb&l|L!1V+_CUMM(n2)uOmov#! znU?Dvvwk00SY+Oky2o^R-jBlC!?c1Sk{yJZ-?*JZ`tI9=f;GMwrG~4#KE*I%4vYDTM zjIrK}UA#u=1*L z;Cn+}71f{L8y^`Syo}l7cE8~^o`od`<#q4+=|S_S6IRjFu*uK+Nh@xL3V(pVvNgaM zmtO;naryCNjI(j5+P2^(Yaih~mbH%(HhHr6lC_Tk*Hgq5W$ok8O4e@VSF$EPCTpMM zJ>^R-jPDC`dRODE4?=6}XDiXYQy&7}MP4-ai{Uo_*EmvROz$noj}<=*+{TawmtOw_ z@LX*<9q}pPd0E!p_ospDiT1wJdM&Hx7W28O#aSt&iAn#G>4VS0fBj)>;lnsYbF0{n zwVROk6XJby!F1oegE{NfY_8_l&p9g<#u$E1HZ`?J=SVbF3*$pSADi{Fx&YJhJF|s8tE0ziKco*bXwy*1G=CT+?fTH?=gt-ugJSSXFGjE z^H=2r8#D{4T*~FdMk_lS(|&xIw$4@nas26N|)r}hrchCLsHGq+yd zHRdj_8lTAGKMVmC~ASry%eq_VVYRz4&SPUyO*1x)SOW^i&T z{Kf<)YMd*UUSKTQ{^w90py=yT2c0x*bKAMu>6G$u;G`WVXE|2O9?fB5y7};5NJC}S zQXly9Tw06d0uiSVnjpsKZ-LM0O=UjJk)E2{cvKm7@g1xq&Cl1TXJvV(e7EzRZM#8) zM}2GsAJijmOWWKnvQ?Uo*4A@~KNYDX59Rt9Q~={a|X!s=}edpyo_5ESyG zadk+yqd8q$bsDN{t87J|qXS0CtuER*sL~Y4dL`*l_`-^G*6j+ZXWcynlkDDA%>o_jQG}HQ%rJl{CGp{+`) zWmj&$Z5lORzsaWcG1SU`1NpJ?*SnSfop_JS|IUQ1j74`x{#5=O`PEaz70drF(5n3J z%CE{_e60LWw%N(Hq;wu+N{=G24_!9%j6{122`^c<&MUj`j}?vj(xPf(daL zfuP!RFynhl;9IWOt6XPSn_Ji|zs+uSY9bFYKKB$KKL&C3E$_u=i)2D;cfy^zxj**7dgHTP`arzlU>gaN5EGcQN}g<4dc4KTqSIbHL@x(#AdK zf{W!>bt7Ba^MLCK{-UDvTG!3#r8?Wq7Yb)U?c7CvKl^;rwY%h$7ZvCILtd1hkGM0X zP5akMAOavIv`wvnt-sul|B1%&H3|AdNLifG;OE?F(sN7^Tf#Pz59T z?cPg<-H@a%8Awl+^R1WVdgWU~?(^MZ+%!a+8pUQ&4q+KK#X%oWa&-}Tl@3rntmXCU zQ&nRAaeKx)wKU+yOYV)Bt@o$AzXh%VVW?wMF3$RUK$hl1LYf*c7yD~BGnQX%O{`y9)R4r*>`Yc4fG{EnOVX)(LHXsCn1%jMs{M+LJA$rAPWfJWM|f z@E+@jDq+(PmX`Fx#UXwXSJV%eKr8()$gh37>4$B=QoiKE_`Wvi2V0BK+F&oVS{u|F zU~G5Q2fQo5^LAJL;5G%^%)*jt#MxwT1+Mi$v&WJi83NX_Mniu%3{9+0Bo|sI909H; zS|=>2{jg$Kf@v+Q)#15%>UNpz!XpPUnHnVzali3J>>jM{g&X5f@--gvs=624>V7-# zaoz7AZ1rpLRrfnX{35Pc_m@Gdy1$%X)xG#w-Cx0b%9mUi-|Z!R!vwVI8}RuwyHAJq zgYU?P0?(I+>Hdd-i|b1IR{K6z0@oAveR8E)UcTk)f0JVqBO}A3;~1w8d!uxeR{>`A za~0{XKiq2G=dKmOcxc40Z^B6TjAQ_~AcHEyU4f6;@#Jloy7@NQz_@7*aWr4i9Hujw zoz`M2leKitydk$PBf5>)S2=5+5LfF=Cpx?A=5^&R*>1aK9`D!fXsUlYlr3y%cXGgL zM+jLiZVKA>v~{kc$4v%j!na8_S2kzxJppchJa!YF+wE8pBLrmc!T+1(5&ta+wMmD7F4PFI5^D$jT0XWBSIZ zA5nObzp_207-xNj%2{wLe{3C^bifK>Yv&eUI$#yJo+7TO1NK2H9k8EY)r{8;WhHmwthw#>I6gxYglfc#rk?V+mV5 zS$x&u-vQTC#1-rCT4+^=f6uS#P<*ToAJ2Qrms}X%t4r$e(a@%K7~T7O78JdZPNX0xvE97Hj%8_$|FFRNwz((vdD7CEenmPSciN{8q8>kXs#_#EYpYr~5*23a( z!qXWbNd`2(6z-YOO7@<`ubv_#w!1{cen%_m<1Tu+!!=3~1tTg;D|X<{*fg&Jkq+j+v-vOCES{1Mo48HZ}8dr_&UM)#&B<0Z*6fo9UB}c z9Ni_pJ*OxPFj>4#;k1Gg(Qk0{y<-j-#tuq*qvtcnrjbL<&}NQCgkBNKOj&2GeR8PU zH#ix7W>;n=r)THqC(q`wf9IfoZxI=#MEbS|o%h?PJTV97LijoNt-og;eOxlPdl7q4 zvk!h%l(!AqgQC58*9#*R7O2P5Ib##hr+a>=lUC{Wuy|o--cHB=G->ZrezmSiTWEhx zl(zW>^vU#$PK*t3n84i!VYAi}l+VW}Lq1kjz)ADopUOaX1^F=|<-J^^~=1jGaoIsXBy9oMe}-i%O36xA&qX%mL2W#@5h+>mREC@U4H9c z%kQHxI5xeQ#XmZEQ;1*0`Mp`#l*G%<)>%F^rd4^xzGSj=I+C{?A)OoVsZ><Fs-L#bUME6fYSxy z%U(BK4ApVYyVP^goo-kGDf}1~jDU83bKxzV)sLkH}>BaBfKa z-wEzKkCVHbraZq3oJ=&~>x{YO-HDBKovd(u)d#>=6{EH?wTDmAn*E1>#eI~Ra(XK|1PxZ9dw~w|^3teoxuz z+k)Q3|3=`tulG~@>alid^rBPSX{PT;J`?EG_Qc29-sgbFZSNlmTidhr)b>6f;umqn zw)aoas_lJ&Un>`DdtU;U@+B9>_qviX)~BJ>7|ZVnR~xK1FrDtL;knDTrO$%bcx$x2 zvUG5?F1PXZX@~Z0RQL_xhw97D!-}7*ds+V?xN1PKi{ke2CGY*T>fhTbWyY)yFqN zeu}taeS8yI)yKE^Regw$)yH>$rF_YS@huzkeid5PhdU87gYp<#U0h_xez|{XX<^Cj zbvQlpZRn~2m!bSz>$~9M^3_~f>uBEtt|zRc6=F{m7*fi#pChb$I0xWimm)|Z=kAQcP7tOWv zaP@o^R{fi3W4P!q3iOTW?6~MR2l^QPW8i&(K0Y({6W{}ZK8A~aFwn5w_$_cfZ({v0oaJhY?N4;YATQtLYe{|%vSpO5XintX z;NQZ;bp6szq`CfZlI#j&e~qsx^?lwr+Lc(k9?bcs0B1LaZ_!-QpS?Etae5X?C1g}e5>2AY||0c=tXQ^nlS=*lyzen)T+M@9P1~1t$ z{xR@WdlTH++n<2P?d?AZTbr`@YH$A;;umqn_V#CJ)!zOq@Vd(bk|gCt%EoIn^mlVt z=u5r){yTBhpKYzL$VZ4fhw>L-a%HULVt*+cw%_;lHnV>PmzNdk(!T-M6V?xkv7K|| zW{#BXO*)fY9Jh>&3{CDBs&aQ3HWBW+gRx01WtGFlNA=UT$IFhL=l8Z=<4d*1vR_t} zAs6~PTT_T|+ZI-|DqeGzXP#z&b^Ue8`22QmpkqxOcZ^eetcY=AduBM<*(|n|>?dflol=M5b+3!;* zFY=APPUTIxAEV#H?Eki`%aQ)kEv_29lT%-jIiOEl{EiL$-XFeI>1o7O<9-%@E>@Sg za6xux^TMxj`0)iyR048nb#7&Lac&lC$*9iP73f$zT3)GXK4NllocB21f>|a%okhBo znRKA+>24F1J$@ZzBOUA_HIaye{`<@K=|@L;C)r8Ex;kErJtvuHfym18cA+dKm&JDG zdIav07+6`sl9@YsmshsXR2G&FhQUiI4(_hK-Cn$}ZB_3jyi1v8dA&o(t7Kq9`tE(? z+>x;9S*3eCe;O;@iC;a^vx1wR-N<{aXYWGTbg9Lcp1o^`U&Iyl>Z6YE~psdR4_a6Q2% zz046y>#el-Lkgn0EJcvj()`BNR)osU+387?bh)t}&2 zf2Z;u*WWz}TOC<^)!%8r^%QX#Z(E;)?b80BBX87xJt66d$Y4i+E4@k_+Q|R+wk#4oDjVoeQnz z?5q(jtm5^<7Zf|?+`Xl`6@FucpJ*((>lhtHsQ>ezQJa=^q{Uaiqxiyg1zZ-_^A>Is zIPc{kjhV(fEyYDK1K;}*S96zqzAath&yMgB2PdBo1fNNTAKyI)SS*`oA)8uzdoXZ4 z!SABaD5nzga#g+`IanPV_nvEY19TiRS=OKvRU_>b3|UkZ&IP9m=w zgE+W$ufmYfaBEdda=Q@xEb0z0jYS;&R$cOa^G%)f&^?sHEy%6g_Yv(zM()K=_V)Q} zlg{?uP;V+q_NZEwBV&f~^>Ft3x_jy_$fey`48PyS zu(*9|^xem^PRB_Qu3p}W6U(6<&V7y#U(&ygb9Gy2D=l%9GGi(~)_D$VWwHm-euMhY zD*UD2F4phiBaXMYaLo-tby*_!cLg`NO+a6t;x{OMjNeShD?G%X(p-^J;wj?VlfMPK zRq1%eF&#g`d#vLxC2V@!cuU8R0yp0J#tc`~@ng_R$B*-Cc{Uxt9atKdTo~WahCVwU zb8UlG`dRBVEDEq0;7dsQc^F)m@_`@N)kS8)TA2+xRyY-f$Bh+mr-AFM&u{}vF`jg@ z$7S)f7Bc})H`dG5mezuIfQ$97=2W_OXeV$z2k3~xT1+nXk?Z>Tl_SZHc26{HtS}-? zS1(I|ne052{77~r19~?Zco^@o3|vXrWI%LR@Fy9V~NZkIBFk z?X!FqjRy1^YQV;w^*Cb=sS|R zKwrdV^DrQoz$0EC`*>u-o2A#DT+=eWw&ba~@nsf|H24NRW$EX~rE$D1 z=x;reSHVqQ_mhuUUJno!Z|NnAFL^x}<+mA^m5S)Q!fsN2zA9}QejxSz)?hFr|-el`U&U3Oj7w<(h;g&zZ-qv2zI=Oj0Ro80^z z_*ibPC2VqI@g+BZAM#VgWxP#p9tW-D=JEVWZp6pr=83>kzU0FAZVP=~EH{sZR&wK( zG!Odqg(m=WeUA6^Kc;)-)ZaV_cwCNVWBz2|dcxkAI)^Bx?`txEFH8AABl~$jINUwy zoZz@$>9n7aXB%(fiFRr^b3c}@!Ev|q)Uq9iMh1<3ou@x!HafBk!TxA!xp&MB?nEb8 zr(jwxWMNORjrjGzc4umtE1(y3h#FZpo)-wdwT5B&D8utCt&39l)}=Z-3`V~>h4-*i z;Q8EsfOaRiCV+06!tWEVr#zk(%2MSy(1!l!lBdk@(QoWGgM4|~nA@*oV;MKkDRA#r z*4cTfte+9_#&*GvHE}$IueHlKy*)fJ!qC11s(Mgem#hi)x@9SqrX3|~0{Fa1KA%O} z@%T~UXY;52$M%}7O~tspevfhaz0VkzUq{Mt?MeGZD&1^vX5W2S&smf86EW=zLYY}V zrSurL;MA9c+p^l2k{Ocgw_ghUG!L)h z`@rc_rSUT0>d#5v;7xgdIe7K$;43nH*N&L=@%k?H@!-a=MxL*Q@xUvA)8v$g?KS+W zk_DHyR|8j5hF*EAG^R)7&S@Jna2tf~}OrYyTEcR9OrQ3#vhVdopW>Dds7;b;+{iG?~Q$7!Kx9K@^ z^C=9urWTf_msu~-HHpnYpT2a#2gUE&On)i-A^zfVqUp8_m)-kZhC4f~rI;O_bh-Xy z-y8Q|8NW5jM@dtU^r7IU4?oU(tPgJ_tTd(bEWY&NCqn!puBZ<`39ae`W_<4O{ehee$3M>L; z?codLN9{{?d-^twyRj6g?TpUt3x=Ie?XnyUpX{}r{aEINauFT2Ikn3oSQjwtacZMm zdz=o}-h%ejzZ8{&JKHeQKZqi!;71LGU;&@ca{H31Yy{|AG(+NONH`)hQ3}q!_sja; zsQoMa75-%JbM_`O%cC|axV6cz@*cOzuMxI(XYti0zYbha5m#)J-+)$a@|*msO^T1T z$#3(X@+B9>S8L(){Rjxsa(Qd)z9aaoej{pz?Bw9n16o7&f1IqE^s|z z-gv9axm+%to*&%aJ25ssJk-Y>faWwt)&{I*GU z1>=12cG-SOCbgb`-faJ2_#V*cC6|xtNTsh2i*O7$n#1J4+3R#c+s)r?lgwU6VeRNWC&j;-GFnF&{q)wA(U?!FP)-IfEi2hxDX;o2^wUkp zhqC**OWTh-XULECzJ77*@}pIPLS`JWG$%LT^tfa#;~(1>E!1pYCfLM!a2_@^yFB&a zWW0HI(E&F%!xXtR8P7JZ*B{JO-$Oor7KI+O8zKFOPJQrlgdY;6AxwD#PBwyUDfZ%?-@ z{*RGHCIgnr|CKC+56p{*raWqrg*>H*T=m?_O1t@{_y4bdLuF~HhIHlj{5|x4mV1qJ zBwN2L%1c^qk}u)01PL%NV>cDzgnWkakMPWfmG?w#Y)!Ip?ajcLE9Ezh^OaWC)=hwO zt^HP37kRr=(0R{u_NILdn;PzNEY+j*-XC1PmG}Q?Uh|*zzgLevO?_Z+sX4xob!gEV z@R}sWYs!&Us@kIZ>OcOkeZM7D5akr{Ka=L0Z+iFtySC_*YrX~t8)JtGxp%-^&TmyG zq&tv&JNy%6->l<(ifV(xF*hRz**ZU~GqMkMb4~T9> zE$mi(3hm3*Qq-T2-*ikB_cPd}xHT5lmt^kGk<9&1@}B?5|E>Dc9OVQS2;;ev!hhjA zWNWyO^T>KM_gTkphFhB)Xo+i24jln^j20GniafEWxnFDCFW5KGqj{Y2Ve_~(v(59k zqX^qv&GM^x+*;szin!uD?r3N=k6Rabol1HsFH$yMHzV))x!YeUJI&qv`kc*R{kqEE z!0GdwaPDmF2^a|Y^_9vBF75X;$7=(pwH0?SiJ_2Dt-G{?3+v3x(CbT$+FZKKCwvF^ zF5jS;&4_{4N|w+p|}X!wa#IAh^ywv#u_m2V&A&D}-9!Rf^*w%`vO?BxLM zE*87eW1Md8d<4AmZhk0aD~aGb8%gEoTeM%+g{nPBQ18kCH-FUK-rP@BUBMT&%1ZgU zLzExR;80k2d|1K;Lia;VG>4U5^SEHj`Ls}a-J~vG6B6vkid(F6r#^qV#ZZDUb##fswyArs*L9%;i z()Q~gE!NBjE4o{9WFlNJsZ?T!@wrRj^P3<;DhGBPaH-<_g1P;nxO`mcI;fW$(d(WM zcOEy=CyJx4nAMVshnPo28h zUhVCd$KEZ~t!&a#s=S{C}Z9w9Xm(db^v-m^!U0rgH9TZo3t}B_TtgbBdu!ZE#&GiHwb~1Ui$N4zeHZKOFR}}|+Je9{Op=?^NF}ehMD)^^K zFKcK9WxVbgc$MeJwcE&XU~|~&>Ry3|@^%OM?09^n@V&vymLl&@HOASwZX4&sxcpi1 z7?-#2jdA&NA}ayV6kH2Lem^k_+Se&n0Km&wy6r zq21UMBj3{p(JW?fcP6;56t}#HxpBQ`VLIJoJ_|fuM~Lh3&V3N_t+CX7z@L`GbD+!Z z2P@q(0&bZkSA)%-crtu+JU!fTbo|Z+cOE#MU0>kr3b_?YeQHmwp*wMvrt+-)czsVR znscDh-h6Er4j957-hF{>2FBRUjTgjA>Gc6yMjNZm3a0!G0E2&JZjN0*S1SJSs-2}j z7n(s&(@YT3IuHDaOX(t=aeokSJ<%EW=CgCb zhQ1l-^}t!7Up&ciXx<0>J&V`*`%5n;&33>K327=?I)AeZBG?Ys-5Yq54!4-1&b+>F zNn!d#wkhiOCD)s<<&i$o`)zl5xY-PKlWs40i1(L8-vdnZvA&Q$YpWTqc$P22Wo=Dq zo}%sDYJfFaE3p7+JTG{@pF zc|&`?lG_nrZU-8#dlO8GCQ|!#R#_c{h4CA1T>DctO0 z`?0g$na3ouv1q4gCIWAf_#n}jHeAM52hF5gX7gfeM z{qAl}AJe!g8cDULBPBPk*+HHpPv!k>W%*!Zsyflw+gRA&NG6(sKCi0p%fy2=VRESO z<@}Y|E5%1!a6Ls_#@l3j7qpV? zDSqu+O}6X6QoiKE_?E3JJQP~Vb`K{U8~FX@hSF@#7IgU)&`8#|%r<71_vDGZzJC}r zl6}v|TcKHBa3wgkfe=3+vv}%PeLVIc>$PQX^L;|1cwJdML%KFJ4X&x$U7yj>HUm6v zKawArGnjo;N^>Xe49om~SDwKK`kQh2w#O1_tY z71M4{Rzlh~=TTloe~NzBl*L(->H8k!^waEe94Ufprm2_HB9k z{owelq^~l)Zj`JsqF8vKNm(F~e6!AR*}Na^Hoi2wd$%kO1be>oOSISo>q6GBEmD{34%=!j zul1N~Lz+t0*-rUcJYM~_Zsp!C?+YdEl47vsqpYuUqfK{CKRq>90QvZmoyU=fSbr$| zc>dJ?N$@?>a zrF_YS@oj`LQheU>3D8OgHRqT@i7y4&d?N5J;JbAWGr%Q3PX}Hox}d|K2`-i+je+DZ z;aR}-M82|bQC-NMu4LTOyuLFy%w?_qLKm!!a*I4MGOOR`ke~I36ZUVLWVY$fO4-ai z-;cA)D;noX#wE*wvzBtp6`QtRkz zspjiKS*g7IT4?VuSAAB-`Ui#wSy9w#Xbj=2+_>wPC;`cA`I?EVvD^)nMVRq=K`0-| z)eFPB`5L+h>$maWi@;mIpgcUEuzU`^m|s0=3xZo)cq#C>ExatmS6i_7Y6~w9@vSXn zxMEv)1+;1lujE&G7Ok~~R|8Aqk_+Q|c}ZJ%3AAbpQ_hy!+iAZFSh1wc-HUW>N84+l ziRIq>y}TBq#A;6XIVmi@{x2bn1yAHQC&SdFLf%g&Q(p{L>te0a@mjAbi7cy@0rtn+& zE7Qv{&h&CwyumxUDk|mq;*(qBUe8*wo-&^KyVB#lqtFJ*soTt za$$U5yVlR!<38za&|06gB2N%uO!ao)UF1c5QVbXUCgAGB><)H~jYN+saP%=;^cow9 zz7hF+6#dzOK89Zp{JcOPujRc1xUI#-aM52B=%;6w<)I>7UsIgTA&orlo#6Tcjyt5> z-RSy`cL5&={IrW@L;(0jmWGfTj-Agzd)-tj$Q}Mkv z@GZkD{u4s{kY{InYiA`C|0yAU8D8=K4{dJ(r`J{1@!y$AO9&A{2@s)_X^5qSP|`M( zS^{LYWZrf*W=YagnZB8MCo^<1GrTjCr4}5aLdBvL5DHW*dx44-P!S7ODNvy7Wk*0L zf{03yO+o#Cf9IU%-gB2X#sBC3zn@Ird!OxW&w0-Noa+NWXS1fRgi-Ml-^&AE3|HRY z5a^i#W?{~krONBZKp(@UFE<7HqqtnTk(8qAm-yG;?3-q@H`WUV=%-ICPTv40U7cU#R*W>TKyN;BC13QL1APov z{%i^K*yD8VL-})hpf|Y2GPeVFeY?235ymoq4=(Q0ssGZ)Smp!3^}KUP+0O)qHpzLDBp_rB)a z;5!42%?)X-_#?oqk0II*^R2nDkMgTWeFed-uW%RexUcZ>z^}f7@vE=!iNJ4tg$!5j zD|`}K^%XwFuf^H=3ZDU%@)8S^I~4lt@51kr`Gorzw5r4G3Yc@ZSyO&0+fM_pu^5E& z9k;-ye)?yD#bxTxDV^1RH*h`g8*ybCaZN-bd^uLn*)b^Vt#xyh%lnGWeR@8n@$-bE z@~Z9&!{qN;8s~aY=XStN=dTC;GOk?C-+)%-{Ez%vT&&HUHJ(}*|b@}YXeEsn9)AqC$L!dvrx7xRC6_cM1YlV@n zJdm?7-zCkcgXSaeZH76IGhHr>Hke4%(H?ic;ycjg_vwaI&@O2%LwIgzr39U0~wyE)BAW^6zIp|5P`zYwiCU#dTvM_q}%fd2+m~TL&)7FvaaY z&a%~38b{LoaS!g-ymGjbh+aiE8)8AO03g)BTOPan z_UXvsFuFcJERxqUh~?+Kgc*;m_5DNss>aqa&c@cVC4!qR`7!UYE%^!GW-p9iw&bV4 z^^|dCTkbtP?o5P83Ti}cPi{d#u@WgP@?+Em9e^m54(=f9BtLS$H`nZ27`U?ZS!DajY3wWu7 zT{=42egQ7Ff6^`a2mNp0dcxg2@)s0oL$!XK1#dgW@u@M-tN%IgG9W+n6Yj_Bpvq*K z`GyT^t?r(sjT`J6;{0ykpiGxP9-4!gKDIsE%dvg2ns=qd{(rq+po1{&vHJyxqQ76@ zfKTIj!QS}2u45+_R_e!{Lw@pIcIb>D)oBkmM;}_-Q2w0~$;ZdI49M7}L*rcs@t=>& zaGcG%eqSZr^5rQrzMk6p-2imbRW?A5N^zKEBjtf#Ym(+Q;hN?J}>DrQC2{No-B0Bvk+%kPf@}NL(ebsZG*^0J3d2pbW-BH}k?mPr| zYz+c8?>9cvQhe0d5^KgEp{Y2=i#(kLkL#sZ_ zDDx6s>`j-wc>pkVa}G4|8V69Yjlebo+dJ>??-T5Sz-Yg4Y7)|YVuc;K$mnQ$1hCkCoP!QO0Q>Ps;CdcP zACvJ<#x;?>OINGcZbEmOUD#9XT*p^=EqM4;+^w@+iIq&{{i6s!Zm0Bp27hX&tSvI# zigC7XCw&pz^yN(6V}04mx9NoOOJ5!XTu&KS)|YM2N?(4BUyHNp%VUA1a*2h>eQD5_ zZ~vM?@omwgp}mDKH{V%r^5e@_@LL0Xnsr#4H|PZZZs2Oy46gD$3;0QMKC~HULl>91 z%24-PJr1~@w``BbN0p`Y%a!3P(4Dvp_5FCl(AeaKg}tdU?%I>!UfdE_UbD?)mUSk^ zy^470F@1`0=k>M573b<>zT#YcjI+JIX8$yfdoZ@W9DaLpK`4_luDlO93nSaZTg6vg z@5uNv9ame{qMymJcxFbIxzxlQ2KWJ032t?HH)+_g=Ih8)(|6ydJdN+FI6gh3TlHA+ zvwGYGJgxm-dvUI2(_XK{)&f~H)n%(b(R`s}#U)5vDv3k4@SSpuTnA}g?zr3EY z16tW>b{BG-t2uXQm8s)kkDmap6C9PhggXbEY<0771aF=hS~mWP;MC_-U7wn-FE6{p z65ej?1gCzd>_!nMKJ`7t$3Voj7ou0cQ}i*+`keIIoOFeIF0{J?Ek4mXXJadOKJ4?r z?+N(jaF?R^&IjHLT;VP*%*wl{3wsxEhCwdu7%uvOlzxgKru<;yqaXN4N}s_+Kc3Q0 zADZ{5G>n5OPaY?}%TvB98z(sHX7j2F>xz^wj}zZ?%(uFf#&0&}32@QR$MnvVOO^*q zF;9dO-%84NWN~%bU8s|$>v+nS$BFOi0^d;<0xS>L3VenW-!*wYDPPKWZJsa1iSN2R zpUX)L@A^DniWA?<^L*r(*Cplu4SBv4_atyP2Hf=Gl)K%@>XdZ+rXX`=ZpGabtawPz z-xzpexae;V^c?Oxyjo|seW;(}xh3!vafhk3ZUZ-k&!ajQ;aPkx1b%yv>2JZPIp_Bl-W>tgbe_^Oe=Nc)op*v) z9aLIOrqXy<;EUl3>r(-~I5UI!8feUfK8SF4=WydJVEA$q?u$8`KSilH2=~<-uD^lf z7}pmSUiRf1IXuSzu`(7{rQsg%&VF&qv8fSk2v_O&Zs46O;KcX+n9t1$XZG?3F<*oe z-;V+xH(8a!`&r;C;>7ohm@ks4c+zBenb&q; zL&@Wv0Ebup*;u=_Yf6ZpFp)uru&1F641a`!;YZi+SIfl6Q70?@)vF@5bs9z1Xl8DO<23m08A% ze`m^HpCMNRduB^^rTk^Q_%BTP-5OVke|O4X#*2SX%HLc();Laz8G?H^LC#Qb2J~yvD3#rY&JSQWM7ylJG ze#OHUIBy; zWliPC;!49IoNPO*%e~4jdyH0RbQ${Tf=K5tKdPqxE+Ji5t8_m zloEg4r!JYDF0Fk%Jt3a@rZdUJtfUB+=E7fbR;>n0B%*+cof9mj>hh!a+yZZ8@7kL>}bzK;x!^53*>{u< z(K1SK5@e=Zb>bs^P`T>e%5{qOxLl|Cwz3o5A^udZ4Sw~MapiKIfmY>um|vBvh7AALZpkv(TO-akR@FZO?`#&VS{f?!mbdxE_Dr@MKc%JO8Tp9jmpG+`-05 z`3|B8n3cg1;$&r@cPoQM-s3V@;@k3BbPN2c44%WUo-(dn22E&H2Fv`a3?#?OV3qe& zF0nAVI=iB?qgJ<61}o53rBr!;6kMG5$|vRhG2nXgcMwHcl1x;H^!Zf1ucS7{Ov$|W zz_U!%i9fUaJwdp!&C~Z){K@7O_Zw%p_T<*W9_9?!mfYdyp_9bcjG7n@t(C9vC!g0U z3)=l8<5`zHFQnhj3W$Cya`e}l@04UMl+MVYDBMa&MHIC{0n!$eyxZ0QW*38gO{WkC&5qtzc1nSvI{`0}@bhx97SB5d* z3xMqcHoP!YKRS0f9UJ}*@CzN>Zd&sDV_yV(H*n6cPWw7EcEIBFyWsXX9`AiiK57*1 zi-Gq756c_g{Z=ogZfe$z8?FbRtA>uRqwS@@W1FD*tb2}L23*hm-5Iz%XRG@Bdzbk7 zZ0n|5;a6WQzQbNLe}rtUnYD6n2rE-ad$+fdK@mlCBq1{Nj_Q{(S)7PAJG%sXsP4bVy*Tz!RrIHD2VR-BJ$Xl)uX=*{AFCZ9{m-xsz>kPSM^A8tRB6W_f#&iFu5NJ{gk*K{VBAnN40Q9Q8w() zfN98~d)?-y>h5lXI$myPgN?ft{N_A94_+)GFA{sFW@B^m*ii#-~L;S!W_^ zV={B>lE#U24&WDCrCZIZFpKQQ{%Y&bNanZ*&yT_Ny)~ITh-WyrCs5yKC3Ba?-`kV9 zF*i+5nzR?)Tm)Nc@Kd&R2Q<)EPjvCPon*&;($n|2ctnNzv$dc15?HSvMM;V&C z)OQ=|NuAQH%kT`;ZZC()=q&8D-Ii!9A*%d5*4Zh1*sap2kE3<^4MhL0kXHmlU#n{f z&o0B=7qd}4oHLl*&q%rwOwJ(3?D$=selM2#A=#bBjG2(HHn`jd*7mY=<+WL(9%^$Q z;N?q?K7|a^VZECUe}?y1hd;}=>8a>G&7XAmZhrNYab+F;9JJEm&+}_xn+|^wSSpuT zm|X4YEshVr0Bs>bu7C0+;IYmsZ=|zd2CgUg0m^4Zi@d4MS0>U1_V?Gu$Ju}G_kR~5 z(rKmbtAx2>&8M@;SWoZOd&{-LKiJzf-Zx$w>^m@cN#CWt!v}`!_Kq?lE4#0UFsk>3 z*l;&z;j&S14xGvSN6DlQqIOvCrVroZJ=TYN__i_^-8cD@K75;BJ!M>3AN~ni>BD#U zRh~(X>BB$sp2{T_CRhGPi~8_gXsc7JaYaYl_rS+`q5P6w{0neB`8k7J#@uIq{iG+& zFW0|$-vOU?jn9SqSHjR-z`upClrMQ)mM_Y4@mQYU3s0QqKjho;)nqHr|09yEv1x|O zWZV4bkDyha|CnFpxo9oVe+n$+B^D;v_Q%D2pMQr|eIN5@sXodNfT{1Zcdi-Ef_Rwv zJGJFrIrDOT8PTbqgDaK#0<+ud!~6tTZLD!v3myabePC?s?zr`1#*Vh1fse~j^FEsM z{7>L|Lfx*CK$p8LSM_wJ(sr^hc#J*Llico9>**SpjLu51ZF+RD%bzp)rO2{+^>gC6 zVXc)7z-4J|+(Mef=fuQ5bGOn0qxh@*{yWIExgxC{sSjm;u^-j{6)il;l|C*l#!o%N zI2rBt<_#CF_K~HfJ@9L6Y3(IDa*o+aj&nm>?EQEw9b3LCTifb@7vD4ZJe_spO5@j> znem?ozsB$+rF|Xr_H0Usjy$6Eji#~7K7IUJjOoVu%sazqA3jXR#u?O=V3wz+hV<$D z&Qrsl={-qu@AtyG*;W^!{JIl&rPPnplYh=CzIC}z*wV#aKi=c3HvOXi24{_{ete|S z#4BtL&idBeLIr#?JB^PumRB-V*5BEZjL&i`x;~Hp;N_JjTUPvizMaJL^rU-r`2>3z z#%DE{Se$3ync^Vaqry3%cr8lsGZF_$=^oAOk)6@8_;*F;!fXn?c8z!7A3O=o!xNvA=0sGzkj5E*C!(*gOdjaYm*~*<8Y2|`dIj@0D4`l zZkJOBO1*syS!yFPC-R+~WgIeG>6lpJWT~ai8Q@`L;fZ$yT4_5x`A$2QL{;%H(m@CwU~a z>XV$#uf^H=Bxe9id5ML|eRZK9sQ$;ppbhioYH+6G`SFK?>m*oqzm#y|+Xl|>_07=g zmplqw>k{z&%SS^K_f1re+PmKgT+c%>jA1>ts<0S=XhdFx^5r;_tEc-K?7W+s(m|GJ z%&WTz9NZmd$!xCfByjM)#4(%|J2vGvMW?oZU9uu?GVWXFkhuRL=kx2+%nNQxj;t_nceYsH zTM{nXioQFOdiuSUxSgFGZq7vaf(o`nFinvzk8xuo8&mMtq4a9}zmwf{%WSf?^zRX^ zYhiSUM3!g0Xo9tOvbPUFWw%9n(yzM;bO3p5oZQIXl@F>f#|N_dau$5*_erlW+@8IE zCcN8v-Q%Fs8k()!X`N4fH;onK(`&orAmi~tUiJELZY=3Lt84+Pg8I0&Z+gN><=Loe zTswKwy;D_CllMf)!`>(#^lonZXk|B^#IN#3 za?EZ#nfFvKu`sz+)xZGF79^mTXK6qf;3nEo(g-Pn<$AJ@H2dpKGacUrI-H zJ~)FoP(Rd|4@zf^T@GgXu!r#CHcsDN{At{6zQUxBf}1|}@E+@9FW;tf#xH&B1Folx zE9>K4Xr+()_?13Nj_G5K_f#&iFuD6Ft9U*`?N~Row(e`bsMHqq1Fy&#r=u5xi*;1_ zs-iuLkEFdoYWV} zaAh636k6%fW&BEqL~A;9IqxYiu`sz+=j?}}l@4itnsy(1TlUCg1b8QK?J0=i&j7AI zkl^$Fwr)39GYb4{;LEFr7+SJJz)h6<^?HS|16+Mccgi?~;~4|K6S&_epTWn0?*cyE zn5Q?L!6$%g4?(lR^)gc)A$@-)@JfvfcKJ8J$2u>a)j9iT0oN0qvoC08(E0*YI$J%y zs_D`>*Zb$FZFq&6c&Lo7AiP+|_04TAPRC7Gr8|O~?y!cN)17I)O?Ql6y3+uzr;ID> z&J48Dox}WEyi9lIfTePYg~@$?us`wK-XUl;w~`^B?;WtX%vD}m&%6@2 zo?z#!kSJ(-_2s3$d3lWG_Y91&uXnJox7Jm$ueSqrz83CuXt{pS!%Y7^ zZmvj|4`M*3Q%gZ+_4*}~1>9j)8^4sfLO+QxJj&$(1I$hC*RF??p|dcWAq>s6mGi`U zMBYnox_i!jW-?YJBlP$5Zu)(c_t-Wb_X%jF-&gS~{gxcl z@2h!F~`pMyNB{dvIkPRnsZ0F$@*}^ zcayLg8hgFyQ5AhSvdgcyin1xY2w=om<^c@P&6vmzK zERN1D+IaN&#D8-do}XJ&cxNZgr71sU;>Ma<$A3YT)*TvGF+DOo&^O4{@m>2+)6h^O#iRCCaI;6RCLXapdJW%- zllo)EFMD)j6yH3K0uQon-s+E`l|6bbzbZe;F?)0quv9LwFu5~fpJ&|O{vot#Z-=A% zpJl{PmYjug{G!>F(MUvz=2g(BU)YC#OOC|3KEa;=lcr1PV11#^MF(!}|8>A)+pYF@ z6a9kM1J@J!f(1@jX(Cb77}9r=v5&vGAq;)a58cQ-(94iMypgcuexbhK#9!6eC&m@^ zJI2{QW~)yzuINJ|#ufcy#5nVdp*kbD)tOs(kL%2z@@;j-_*G}#0bEZRSFSUE2CeGM zt^8UZS)F+&uv9LwFuD6H_C~)MS{vWgo9qAz=j7i4ypy=7zZt_tFa6ed$b8<4R{HH| zgKylMfl063xT%2$hj8D>TY*cbMLQkAC0BYZ`sEdFi9B?|)iKGI?utH!zYX~AKp*=7 zemn3zfj)*yK4!(q$N#`!J@{^r{Qf|1aP^u09Jm`Z<(1Oak#~WM>xlGRb>!W^^&Dkh zHq28Oxcv-u9_aPFdj7_i#NZ{zroIANTH#xd<@?0%YhCYnowBruWc~mfd-=W~F zO9MZ@M87e>WBRQ~$4}YZxX<4TG`Z( z@oQ-{oBDBJmYxS-Q%!DFKjZ_@svqL-6&qgA3{6jT|K%Ovl^x+uvK)c>1Rn&i{)zF+ zqehWm{gsqIA`t(F;FnD|{?W#QZU}Jw1%=%i^9H2&gp+MIzOg!uLFlIlCmWxJ>5#q; zBb;o#@x^^D;biYqK96*Lkh{S7+tB=FP-Alo?(SZ#6?_6*Y-80Ac_23Slfd`8eihXyAnMzoKSu~7PM;eIagR<|8CGVh%`8v0q;CcF%0vc4c$ z*GTW%HtF5!*_U{a>)Dt2wz?#`FY>2)_7#5hlyT*H_El(A&;Eg5<$>f_J^MQEsa#@V za;wfaehu1+RHEk{ZQlSF>yPqCdlml?xSsqRM3x_|^5`Ue*)gVJr_6;^AIDr=zo7uN zeEt^U$9-9S-@~8!vNq;Y9jF>Y_+j+Yo$9RJ0*ondUKauwXl^`Ci<%k_JFTiF@E z%JpA>>nY>P<@$YSRj&WaugX<&tX%({_f#&iFuCugZPvO?JdXP|w6dRLvx~=ix$NE@ z&;wK^G@NqvA67b&vFWb4V1^&C>!&uKm4{NxnKHtBAt13Hh13TJ&06x|! z>4f%9-V0n$*gL6B2!+ybtrOLAhPD2cm8GG^;l-6X?P^1#;&0QXt^u!0HZRgiziF%f zh>PivXnsWebWZ8VA)e9&!A%!_3Ov?@pYd(wZT!-O{|x+PTv-?X3tH*I&-s-uNRH{k ze*;V95(|@iSF@{Q`VGcg}Nt^#1`KmzCNN zt>gW#lg*d{B~l+f&R4fMngfv2=+#N;{>W^TN&H}6ZE-aZ^fHtOZS(oMukUvLs>ZP~ z&c?ASH^HskPT@T+w^RAHvN3*@+x>v+DdWoJwjNrQ+x_{qI9s_r09Y!QSeV>5hjO#C z=juyzKx^a5*ssGn;GM)pM?73d!eLoyp>H5|>03Mqk)p^OcfG^XwC%+ovtZ*g6bpMgSx34K& zKW};4(gO7|ZfWL-mesVqV^S-Nwv*k)~kXCrCSJRbXL7yJU; z$Rc})-I|2z#3P_l+eKe^xE*a^{?&S+#W zwKw<)QQ7QCSY{q%4Onw76Jvb`v6p#(&%5eAmh`GNG}v`8T|v%1vpj!d$n&!*>w-Hy zNB2xe;WD0c#S_^+eV@mlY@fB|X6s^H<7_NY#aA4A z#PKT5hsQXZM^|6rMNjed+HCS};#n2eQ$zg4BU!QqdVhNQ?rr*>7W`c)zo!#lRX9C? zu8eC>Y@d?F^}#*WGWHh2QX0$h+LHd3VYMY6i{`MDUTecH;XQ7{2Kbij4vNt7SZ&x~ zBs-5Qw_!ujstp_F*Ya0kNbWO$rE-ad$$fEqxjj1{+Kt3R{WR_5w!YXd;A+FvPmAFf z09QX<^yYs}ZQhfCYrG};7=9se^$$hgtI|F?T7rpw2qOWnRe=gjYCwlb_ zB|nCXen+5ZVXD#8#u(RzJ~9!{&cIW|iEmfnlXuT6S&*j_hpRh39ucqBBV2ka@E3vC zx`g6+zFfnI4y?A^_Z(Sal}8`2gTNR+kJed6w0z$O{Bq##9{6!4+}Vl1?)bFtQUiYlc-Bnu zr_ev6kR?y>Y2c%@v5bT~B9!ID;AX)QR{u2RrT+Q|FmE+|e`b{LxIZI1dpiA@G2nWB zmv)-|j7w>3XSY_`#r zN%d~^`BL8F`g|GRR-Z+8kU!PuXY#A3j4RjY%b`_${tbRrpC!lY^Ca)7Tw-BztM+C; z3)W!Q3+mGdwl0~P>*^VCeY!Vb!`CM>PG{BTV=LPmA^u|T)V`RW{;p9rp{0#}^ldux zTns?me(U=%ax{l>_YM~kS9a@p&2X8I7MqXR3SMKI_57)<^Yk6bvqRjZN0MWD#3_=T z9v$J^bj8Ax9xVj^GOnygi_l7smiUz(Nsj4J6Id#jSeV?utQhCaLc5W4nI9~7s>_`` zTi7?hcnEdzc5)6nk`0}FU!_#qJCUQi61vUM?Q5)55jmUj9B68uE2Z(bpLyL~24B=& zof}#Kt|!d(R7#kr6zp|RbI#e=Vs-u!#%;2f24nq`*+~w<1eiakJI_Jg6}Q(*`Ys(j z8see2xOG@o8b-!O`g+_dtbO<}RW?`9Ur>EH`Mf?S;)2`XbWdRl%4D4&Y_nB*Hy!&; z-c|nA|GAoP(<9Mc#h-NSx%}!W=1#n!!<25tQZe?+|uuFZBIF{?y+u z&f90WEdNyh1-G*KUEbrec`@IX|HiMf`90uz%D7Cnt!-Wht;*&l{Hkmu$I9jpcu(aL z3zMsTkHvY87eTv`Fb~w{R`7S`uY8)4KP|t$crAEe?_GbO60iE+&)Q;)RNvtD;VtL9 zujAK)E0(+J_#Xn-6Y6-ekQkd4LB8Co*Xn2=aPZq-=@&U`;uZ@ye~;`)3ev`9_!hS ze48#Azx3>nf$J&b%6j%%Xr*U=!msp9a!k)&$9pQ5SeV>zc6dFD=Z{|rZ90EUXVdn< z-vGRmxTt?U6~RTn4Y>N{Q+2mNZVdn4u8%67vyG>K6W`IOoNMGqo*9P7qPJGt|z9Y--s3NW-4znZO-;HZ|bA8}%MI$*c4|1NfiaY%%>>C2F!DX{= zg1%tr$j^?p*8`93wdU`(VXxl+T+cb|O$&SE?$c)KT$c5@+#D}6k?ARK;wPNWIj>7* zR-7kPrgLrm$Z+`7bDL9ZL9*%93Qy6EoQ9m$mByQvh>o_032rfsTA*N`o+)|DcuSL&;5z~sIud!xKk`<%gNxWQjX#iXV`L?He9(3{;$A!ka_V#s+j&^CuDfbPh8%Mu|FxB>* zd>lQ%@r;G(a=$bNXYJryB@<;=|3~lEF1?-ixLvx1Z)PkQh-{OT#=%6f1cw9%n9=9NCDtzLbSu+}AWeYhv) zTtAI`u+!~i$)`d*#JwY#JTTV99Wn=oM=$Byk24#cKP!TKS!v!NDXqKuok<#7*gg~2 zAv-TC-_HcqGBRh^I=s}tYmJ(Wu=OzzPA%44Iup|!EmijMRQ)KAdIcKz7Tf$Jnb z>US4$;@bw!_qo+KmKUV@5(lH)8ijb#d&ld~PUP|8-x2tyqcg_pTZ-4lNJX6Zc3HTM zS^VB-;{@^9xad#;_jzy{6ETeHJ09Jor0~7~ZVx!pS;Bo0TrW89hbTgav5Df-4_^7e zIYf8+k?O6bW5CNT;l!sgk@!{@=BB9b-E-4(X}*sKz9Q~R@M$dM^Bq6QM|^&N8Mwwk zDyu__8C>*N1p21CSkT8!^wWVphJOY4Y@lD7JKmr#;DjkXUj@fM7e)~$K8<-?K8SDB z1?KWWe6od#o8yac{{T*7pOAkcG#|&Wfz$ZM@hvXraN=9b_`JlB@8Y{AD$W#PZ1|Rjd6@`q(V1tjChN9@!u5j z599t`+x}zSdSk?2#H-wI4*c`3O7CmVO>4y?)0bNUe-&Q*x0d*IZa?FHcZom4EB@~( z@w@C!>&9&*{tPev+e`f32cnhN9VPw@FaA4A{F!aKtHkSZ;`>zKqlKP!V{X?+@OJ6$ zz*oeH?~4{5xm4u)s)bj;iSHYMPiK=ZUR_?9oAKw>q+j<0z9LS1-!1cvH|P9$Qt^Jj z%$wp>zCVcgFR3rj&P~^y{gG|>QN$bL6zAysh3#s=gO-;?q5!s!xWyG~%;6K8rZ<>3&b~)funP2N$-cLz_c*F-~(4 z_rMqTlGGRfCtz_OaXT&V-e2Y}MC_9KVLkNQzk>`t-{m*VS@^D3nB$H6VcJWfaoL%U zW1%s5q<&a?6$D!X)}8<(53TREIfco*D`ljn0 z+@Bk>ur~@8ov9Q50|l#7_-vxBQw~PEN$}Z5U3cFa>@>kRa5)wBvnrg;f=w;Y8J%ET z9NjX$(KBA=OhnhP`wbQL84h+N^=%*+b0|vB0+UoqW*YWZC$n)lPWv{&n#;{80Vx}c z=UEQ!1sLpX!3Zkm-!9l36KWwp755#2S?H0>oq|v4T4**oMDX(jXX^=#NgDnxM@tGq z`a6+(fnbf}4LtR^vJ>pdg1PcoT*1k#Tcfu4UMQSAW3J4uE^zgu!7p-f^0C>NIdno( zaap=|3%7iXJ-$pZM)0Qz-Z;J_71MZ#X|eY21^p!&^qD4WgLs6P93DF_xX))CQUv)i zMfI4|opO}_=AoWGH{k@o{J6%TY)tZf!rri^waj=9Z*@N2r}<5kVO=u1x-if<+L+Jg z($*&vbAG-qxp#rIXf5^MqO`DIx~m6IEzXm4>a1dPVrX)J5!Qg)rkVMf{$)u|mUb3} z#>Y8Ad+EO6q3BY`0t^XmUgHO8+FOq2Qm4iY>+BeO4ra1`C|PunY<#2d|KP7`PhpI+ z@s!3lg4_7!C%nhwo1gM+V;JMt_~vK8^^|et@y&litMSc$@vHHT7u5#*7<^~IADLSSu8=a^wt!Q6Z>t01liafnH_N4x zLee)<+wpU7uIzWNs(ZT}4}ZbMWrbnfSWfa{6Q5#+i35?~Id@-$zSI{*6*Ph!4- zF|Ypa|5)$OWIZzFt1>x)|1!d&*WB&`O8=WIo=lvmv5%ikGd1c1yOODr_d#KL)lL|y zpZlxB(On9Yy_XJk4RS#8vf-h=LZvz>-ojWH!gxin0XpB!sANfwz;L(ioLR``364L- zB@X!rrin3U3%5e8y~_a}wmW-UD4vZOkKf~=iBHGvX~eHR&VfIp36hSIc5=J@RN`sR zX6+TiWb}+5lou%F>Lgc6^!YjV$*!@nzQOK+OWAKc-lbW0w_yB#pjX~JBIL*R{R(yQ z(6dRm_qeUOr&AtERcc=!#R=c9^~3#LLpTE%@9Nf3jr_M{YOb-YFJ80#HOT4gd<75* z)G^iF4Jxy1GJB)%2k=)lmlWfQb4f9-IDZr4Z2m@eN^rANn|P1y)PwmpTV(vQQ>Ovf zQ^u9;)I*?^o!ZQ=rPb`z!vy0`Y1KJzll$5VJGBuS*(vo?Wv9$O{R;3-;AX!J{y^Z{ z0)3rX0Nca*AmC<~3@)4WP~a7XD9qj3IUfVHU`#5kt>f3Q!ci=9Eli)3k(?b~At0o)rD3|`e z<5LZ{2S8U~I2+<^%a}T}sa+9lz5LWqT{$p!gsbjDU(ef=vDHIkCziPya(piIO$Fb? z>77H3rdwK3cw5QqO@;fEM7KHVY95;75`pH43H*h*gFtl2T)**~>}lP?uGsmR-V)Lb<8zPUrT?@yYR8H(Bgoe7&?ZDol3Ou5fcV+i|tTJ3KR5KbDKrI!+=@m#~>V zT(6zHp0&pI=;M}l$=;aZdhpfJP5z|)Ri9ohhYrtN)@UxWKAHLi5pHv$`HK1!%a>%m zHW2%JoH#4j-WjEFi}gdt2XIGGqtM4W$ZBh<)zP;H$F=BaQUimS-1oTUXKIT2`u(2u^repU}&+M|IoK=sLs|+ME3|j9ympy{iQj-Ub3&}f-8G_^L@Va z!NvAfx+njbyMXICzQxT2lzhc8B~XG%cdOUlYkuZ_Y-O>@UJ-b6-{MnVUO<@A8||Se zx9#YE;P=d~SCE64oC_sqO@8y*PGc;U{5s!T`PHB4mcn{6f76qIwuX6^fKaGSt6KPZD-drGm!xXs|O%7$@cnWw^oDzQ)6 zOYB{on$bZ!)rF^nQ(Y+Fh8JqulG^QN1f<7((B(D9>+n9{u?|ZIrNjNe^_Y)WH`RO+ z9jrdfh~5nij_-H=j@xXyZ)c=I&^Q+Xq5gC4F-;*~|9Mk*;wyH?%a-m(`K= z`+QxiUV~*x?XY_L{`5fnW&CgH_vw<3jf6DXol;kk7X1wae+GY6cNFFj-}htmGs>?X ztE0wKP2Z7>2YS^Z$+0@LA9!4c4)AUD#KKb@IvDuNxN;r36k64x%lK9LB**H|<-k(8 z#KPo0uc8i(L903>Tiwmn9eoH2&ClgefRidQMEA@2*EG?;GWYoff3 zXx-Nv9>i_a@Il?@);AbBdwH13>#Sf`iudcz6Bm5%HtbFt*~E6T@kofH;<=N1aC=gb z1d;pn@soXkZ^K0JuPQ!#*NzNxMbX}Y;Vzk%?8EbnhB$2%vF>eIX|7JK_%VU%Ip;~1 zuX5L3WH4+WFbyt!A9V%JjmgT&T#en&z?4t2b4yYDIkS$P!U6YqH)r#QapGIUgKrr| ztX%)%PC8C;zf|8%GdkSv0fkL+jQ6XrPs$ooXfbfULS{6dVPXl z*&fL;+w+^iQn|#!l*dFA9ajs9 zFpBRLq77ixN2*Z!Z-qRDEt%GQ8G9GIsR#p9$oOjy`Kk+xRMetvt;(z6Mw-7u#rZzZPuc zMXn6BcJlD#T4NnJ)araArNi_X99ivar zXIu|l;~?N%aqs(lF9oJCkotUDnbz3n<-la8fyt$g^N;gtU}Y`#{k|K)#Wq*pO$tn+`W7k4l>Bt2^}cGt#Iw;7cF%P#6y?t4$DTQ?DYT(|W7I{wtQ#&h0+n~uDJ z_gF{X$hYZ;@k>YE1YA!USJsg?Ln|G53%}A4$uS*yEAOdXVqtPMHY?t#^m=Hm{X90? zXw3IE<|#7Q7Tydlp9{Wh-Ud7_8|9~bvArF*o=`Tq{A-n;j|p{uD>9Puy4aYG?oIN) z<^MYfLuFXKF5+7Rj)Ut?KGv`Yy7sYlRs}VAw+4B(p8d^jO2I70#a3(TkEv}FY@LS< zsplq`?BROn>(_zYe2~_&-x=~iQs~#=lcu*e#GMOrf#hNmeJc*MS#F+tj~J4fM12d2 zb;G+OIqSG9jN2Qm8=Ah0zq-8$bFQPqgJDmARuJ8welmht9{gp<1L@I*P)DlA%e8}p z1I%cwy3=$M@t4W^YstFC`vxeNr#Q0ps_X-9+Ej)AH&I+}OW(a;nD_B*ZGpmhFMq0c z@8?%f6|T5`74zA=Ru!MsWgE9Yn)O`$RmY(t`9O$+#)JyP>i!3LkL&)2__q3OaZ%m> zaNsZF%60!vXjS(=!msj7a;)xujQ3P7u`s!BuJ9HAx6oSMZ{m#6`pLHg?<7ADvtF;s zE1Rp49T!ej#Bl5uoST_z=$5P0r;KP^pE~eQEKP&;Bql?{Ysr`x9dPZ#-@&sJnAYA5 zCONwT-4Ql~x}AmSiDdjexC;Z09W&D>SUw>J4ky0d0XG%-U{M%*fGdm`F8ba;&(;KY zz|P{?AK=rAQ*8h7V`$M27<^?~(RJb80el2F$4!Zg>A9ch_$auzzWBWEXuAt|Y)e(| zPQ#Xd9Jroa9`EL*Pg?J+FS-T&WOsGC?sX<#%&Ya*PYlmo+F;iyd3P4_+fk`c2KnMR zjdLn^6K5Bletcc5o|~?Xxd~EtI>If*aff^!0=KKjpGJP%PU`zJ{N0c6tebl^eemeL>)B7?~{Py^8y5^77Pb|w}u%^bNx-FVeS9=?HQk-8NsV_8!wYuc$;1|HF z&T__}5-2-!(9SIk+zh#k0Eq;d@+kd+4(a_wKC? z3|KELhKXNw|b=$Gr~>dvD!0=WWLt&7*Tu4Y$?M&fE&;eL`lq z^FqH(xb+3T^CR5G0&Z7?+XRjS*GD<$-Hi7(p0Y{f9mC+Zn0jFIA37`C!+>Xg@o?Y5 zN>fga9qw&Cs(0|LEKV)XQ+wtXTpv<%fBnha{?Oz&TEPaAxv-eOw|-=9{)B}g9P=)N z_2Xky3XypEf{z2ATPVX1CUXKdR$Swm%{gA4%vprexLlFJ2xE9=hDs2JJ)O*jGjm$2 z8rFfMly{bJf-mQ>saf1DM0q(+z6`Rfq0V#>8x0(f%4R9b<58R|G>>vAb;!?uLMK*O zyH6ttT)MUyJ^oIl$19wd9_zyA&iF9*qq*H|?!a^rwg+9ac2Z$8n{;e{eSX#AsksVb zbZq%5cXa#SXC}SpC|EM!o49VFzG!a8IfZ?nyqloB%@X4&w~X zk1@`W8(Ixz?%hPl-zSY#F@I7hL*d!4=k_0WB%9j*HOhbNi1H>E9G0U5BML3{vawVC z2!09T1S6mfL;^Y>d-3mtuY9vHn@`hhZDFaoI2Gdj0~g2HQ71dV9^%p-=q}jh^1XvH zzSpI%9OwTp@?G&I;jS-a{*iTu`Bvg${TSi@gE(k@?nf@((9>5D-1;g%0j_=oaOX?( zr+iy~#Q4=$`B~sElhKp}EX0rBUQ?e}c=-PpQWA75@Gu%BdnqSd=tM(|qr?*cYn_<0` zkyRaU5i3-g+_&=N40HuPH&@~ICG)O*$!=bjU){C19@zajiLwsa(t%IXdEBselD#QI zg9H0}x_bKi`dJxst$Gfka3$w{l7}3dga0J=zp_Wz*>}x{qjv50hsK@_$>c!q@Pyk1 zYi}m&8T5hTv4p-K0I$aWw=sXD$LdmyyZ#)HvwHXUq&c1!&S=|{2Zp#*$tn8$%J}fn zsLmpf>Z{;ZUr$5c_B980_4OfqTb(q1)z{5YxSBK0aOL{?P-s70n3kWJQS z(AT1$uZ{48I-2-zGWiu~=-#LvXEbi7qnZovwOsxB2SGPqWf~s*U`2GT+udYugk9j*AwO#Gm$Qy^rZ_B z>CnaKTT+@^OlJj0@RE<~e2(ysI?vrL5J(E`&m)P$hBaU2ZO_ii{80gZPOukma=N)R zv(Pm^zc{7o32y^_8$H1u%`9*qnP8gBY^S&%9nz-svGzQu#onIDy`z1)D{gecZE-0B zeY_Szm|Mln-uUrF`k}73mGw{80k0ozj<6)E9RZk{45$70A?wDL8d*O~@-~9QcFQT; zBJP=lP50xR8O7PJQ=fc4&9|n=w`;Qcs_(}jBc4CEIvC^baB~|~eC^4X*b|{gbx=H3 z2Oo>v?Q0J1>fqUYTOBmns)LUMuBVJE*TL=3st!J$U)edy*}mp^p8zbCODs(8i$i^k z*R8ift9qe1uz212*MN5h_~b(4m|H9fb?Gc{nCFCMP;=x z>iQyvij1{8+RgzV*CW*h`Pq9Sa6J!wjB8^xS6?B)FM^a2UgxUk;3xME_e_jUI-eNq z1ouv7Du7;w^6*^ZvSF>2e@vIUak)hZ=RM93YY90R(p(E8eN{61puhK6$+t)nrQ+ZG25(|_2 ziV7Wi6137GKcDI6KP~{)2~2u5HS1xbliqkb#&y(t*=EsdKFHI0xO8ea@QPfAr=#s@ z;9`B!m`r;io(^13bWR~xKCQ}Zw9+=4CmxN(+{xxht5dH^7067dx`>bTK;@}-E6*O@ zx36X8*~_<;ndrLtQ+f9BtEY@Bm*-w+Ri69!Re4Iz_BGF2<2{v2EKKg+LU}6R`=LEq z%9Z~YLlft}@=v~qE&;A5?~AA+i!z@?6-b|d)jq+@J#BaJ>amw~AZxefwHgM$h2e%E9lyT)U8iQ74G|sQeNOHEX zdEWiJr*esf$$eHRqj;<{3~lH~xeOS^)|xGz09TnEuD*4&9RMGfo$^`ZorA#jgz-*Q zhMqK^tLqTmn3m_)T)({~meO;!^fKbLVXf7Ad6?rHU{+*|$->-cR{oa<8S&l@75maU zjSc)5MDthLEBh?bQZ|$K74FbrZW8TaoWtBkj?dJ%+-M!O(DmgEeSWo?5&Ls%DbL!bIN`Cur;)Q`U>7w7Jsiw)H;qltuOA9ALTVRO2(~;NFfNWR`_ zx34LG{JhO7-{MEN()^JvI|^J+8CSMt$DoxhJI=4GFNC*!>Lb%<@*}9Zl}@!Wz>Y zzWa4PO6~uZ(Dw7yQ(y2-=jQ3*houIM4U9(XCHoi?;%ax5Yrh?Q9$pQ7*;|~0OXj$z z_YFkoyNdpxr_aHU0KeSR_x6M^7l2&>EbK{2;dE))1Bi`X;CgBtrK~iZ^>y)C0ymq- zq2fLb&jB|Nj%5})#~Du(_!980>1X5dC4(;mmrdd#-^Ps3nJ|6r_r;t5uTw#_g^~IC z6m!}ujV%9Mm>q4u2~BM4A4W-?QS?(n-V9+cbl3RR(Cc|FzxX6+Dcv1MstnlM6Wb@f z)k&L5=c)9qb&}Y=wWC_U6~Yy{n*-}wUZP3UQEuNzq@P~C*(h&Mdzweaxvp-R9s3M8 z2I~t<@i$ra@ODWwn-XZ4++SSf2JVc&*)8Eah3{LKXTPmBl{j9tXR^J&9mQ>DGTAqz zYkb*Aqr-uN1vAwe>Eo?>xo=xmFJFM{4QqbQ2@~n&V~;1vy&uZi;Pl+7a|LL&ma~|4 z9@S@Ou(gu2KEt65`67uI+DT%XEjOER>2goCIYYQu(ed?NV46^`?x_$OmZ zecE}xa+_}ym){``otez|_`RD`!0xucFv`Ol$iwIiu103ef=^TceV$eK1Jmh|{k6UW zx@vHEbf2#3s)i%UwG-Ed{Fc3XoX$W^Cm!gpi+Epi39zV* z(f99zSAVj&w>`!c_YTCk;Xh;M?rH@v9AZW#BL4%5A_6(5el16~D?O$=OaA;(ZOUR4%bFxffU53-t%ksz0kS z;GyW=Cc!Bd2cL`XXA)d;WP&*oP0nzr{}@`3up5kT&KZ3Ov89M^!8b} z&cL_KDQ$lUFT+u7oy_G`mKFk5ZIk%uemER1a=1f^I}9+$eh%@G$@SoO1iUUditlL> zZfAsZ(_ta5e+X_@gj27|WGc)H18%my+jrVQhOTq09IIXUEluw6ndjd{p5)N|- zm2Qoci*-v&Z@}X^h^rWIq`{`CI9#>W%G;tpM#V{Ov@1hq8n5(MBxnlAwT;4$1pIK= ztMqbUYNzckDUCm04a|-Edlru{SJ0UDC-RWd(RL%axINRj|KYS-e+*pDkDrjvBjve+ z&y-lAY(k4YxY0f*c}0ysy-kv?{|RBnHbCDu@h2PbjXf?pt{$xCHOAQ-kLpMfSF`~! zpV^M$Ucj#tR#{d@@}`g{Wn9@t#o=Uk@3px!n*Dey^0u#K_Tz1QOEzs}nm*Z&w@2aT zab^2)3$(Hyf6A}r>2|`9+&=?m@lqes)#bSIRo2A|LSLzPu4yYW)+ckbBlY=ouLo!J zG?<;!{R5geMnBu%6~a@Po5I;1ydKpq>kCUV)~Uz=y&c#Z!Y-Z%yx_3fGdDwiudVa` zMHJ2*o9L&oVp$uy#7XzBUS@TF$7bZ5F&txy{E99($fnWqa3s0@&R-FxY?S%}dbhg# z*Sv3E%j)ub`L?<&y7%y>y8Ji%>M7&Ob@?`ERhQq#uj;boY+v)df6IF+msptGZt^ca z3m|=YKeR1U>)L?Z!N+=|{BnNKf$Pc7J?8V}Wcl^Ia6V3Y!)R2ut)zOhE@3MY>txSa zZ7fW&N6-4;>yy+Cm)rMi@QtEp=iW@%GidNl3EQJ8;F}Y!d*HBLhRWttwj|@Y_B&G7 z!WexP7C?QxI*H}!?6X@w!N_rZ7OyL_>N&Z%3HPXEWRcFu3EQu%I0$}5;vgyAqZ#3b zT~BGcIuq^iZIYbrgdw?K z1eVGr7AE)kVXi8kcmEKy8;J+=O};BI?EFEwGnZ-uKMY=3zOM!TBj7iC{xLrnfj^Hc z*}xe3{2v9cu?zf__>X~CKZo!=UWSrg!|~YQE@(Pq85K02fMy#s-R#{NU-Y6Z4xa?4 zK96v<8T@B1WasQY1y21P;^%G#37oF|7vD~B6AOpn%**^VIQ4&gruq4+F96dF6P}{O z+31e8F9C~fyY}cjh(5uWf$MpR+e4LdxoIfzt1h-UE8wo~afdcEGokK$0b=#|tAw#( z4ZR3$`X`k^$-pX8^{HLNzm?l}#jwPcx%v?8sN2^<{KSF(&;jm;o5Z8uWY;*mIl3n> zBusErKo$10LwKEH#%8f^#f_QFUbiLq4C`85;g0z^E^bQOrPGLCds3TbzDj3bnkh+` z>v{23^?zdC%`ku^zUZReXd}bm z=_jnP-Sr7WPfNy&kUimmS;~aqAKt4w2erra9^zHxP`FB;aIANvZT|Yi@5~j>@0SZJ z|9* zOd;)LSph=A*dJWE&ePS?(>I0#w7#Jlt|fce!PDKH8RAS>#U#61r&p}3u_|mf;o*3=v!}~8zghwa4yT)(~Dt9=Uquu+Y zvH1Q=2+PLFTPY*;UG%4UJ+&3`L-ntsBX0i|=wBc7US%!oR}W?POy&dEso$_Ljk^YC zXoKtTKcPGyrT>RrHJTK=UcO{*`)${C1Ud|0EJTK?w6z=7y-=g`{9}s7IZb@+J zhd8i1nianD)8rkwq6RH63R`*p z;~>}8W0hy>`>gV-dyTXC*LBHHLtK6qc*K7;`#3kOiLT?Jzaa98KWz{8&97bl9NHvl z9!~vCj0iu!#JwEu%x*h*_zOoPI<-w2kM&SfdNlBxM47t=vDsBnOT&NfAr9AM^T$eq z{xpYdeIe2O58u+a{|(`3EGD@1ciI;7{hfBct-oXZ>hE*_*Hgxk81hVy^>@}mtNzX@ z{3^dBXZxDxy&tetF0nAVhse9)e$510^>@15=HWSZKY4qv3zv1KN8`0qp{ZpA);V`$ zwe{fQ_FV0Q_8QzDxSp`rpv*l{mT39@*U$9%u6$6r>-z!7)4uhc+niYP!TX{UUVkh6 zmFYW@UkUM0nMjV6$%B9^zks{B@=bhOzFT-IlLrU>GOk=Er$MVSc?iEM6UnhMc_^?{ zF0nAVS5=hBMrd7`Ofzx2un>0H`8k*ef|DwQHOm}cWwjZ6t?#&;nYr<#acge%Vc_Dj zQr|{?mL3jVkNLPNbF=%V1f;ZRSFJCl{Ab6YKNJ@F4=R^h^}UB)K@$eaYo)No`qY_L#a>`>TB(@&PT-@UaCt+}YSs zXR`$FU2WFghDG9SYk#LlaiL%LjETO{OHH%+h)W@rlQp`hGNj8f&fu-Ip$E92(mg*w%c- zySQRL^Y2s@p3QMr;mpso>Z;^fU40zyab4ZcxA@i0TezyLj|Z-&j4RjG9nh+-K7n7= zRmris`b6GSxx~WczOCZE;ZA66UV72_BlBw^X9DjeE=;9NPN|#7AVcFv!Bvcc>r938 zM)0k`H6~+DnOhq;mZUY^a4t@Gg`;tq_%fvDeGIsro;O@G;o%BPV>0ph>nAdL%|~ng zTAgi+gXnE8I)+RBoJ?L~&yw|3@8C-dHU7)Yeuk^1R@#m+Nch?8{7=AYJmk0WzZab}yo6>ee zppW6AzcJ9y7U*vZ^afYkb`JCv*3|Vwc7luBHre8{Xxq*OuIDEcY9A`NTiD|Lt!;Vl z@F2}D6SX+u)8&onK6o#x723BEvNh)ur`X2pdl!GPjh77++-%?lyvH{1$$XogGk)2? z3xVq?Lh@jqIbs(84bbIek^PeJI77eaz#d(1NX1c(RvX7OO>z^P{Rs z5oIdV>}Su|Sh^6voh!W!jC$xzq_ncBPUhH{mTsKm3d^6}d7N9ch=my4o{X*~O>cq5 ztrJCQlg$nB$QDQF4_O#ycNvM+-L|TkY<^OCBik!}G`V(U36FD3K>3bSCd2Hob!kkt z*m`G_C3P?%XqIqLXGj0S~9Bz*AeQbhDFC33#+!E33oomcb zGZAl+EYEL^X)4P8-8nql4t*7JZLR9pdt$t{;Tb^`kK2kg74f(|qS@DA%rocCBU3zC zow*~T>8IylL0MYvEZ|uQFp{)v?uuzDbnH_xo=$=ZurTh9@U^{hg0r&uVobx`cU5`v z)tF|1-m3)^<=Z!6n&q0Vs4%KDJ@-U31NB3VG{TXb@5VIowd#>g`+iJg2Qni34`MuP z7#0!Bmmfv=!MgL~nJc@WoR$|r!kecCnz7IxwEn8q#VmBZ?cXtX!>Fb)Q0jV#iOZ3Vitaz`|0$27Ces0GQ=wj-vQ zUp+jR>lS5nJ7c=VrB&URX!*P=!Ufkp!O~CT1NApK;sXQ zWa+vszz_B=9%1v*s5U|2-7ih|?S>y5=wDe`O7R+#KZUY#qv}?}UKhuXwx>duAD?eX zo>M%hGV#kkBdjBz^3Vmw_fJEvo~QF0#`i5_^2?0Rwcd2|lwVWW#Cnsh-52*B&TrM+ zb#sb4)9Kp#yH^3Rw_^c6TiJdB?zA0m&Sl@7_&88ItU9H6>n`HGP4|G2Pnxqhm0@~! zNR!g#)~)bGzHhXvx5kl_*vDB6V|KyqcP!68yB>GwQM*yuGFv1nfZ6;+FX3x`LURy$ zw>gNtyvK78`}nqb2GRBLr#Xmze)W`bssm|x97NRG`x4Dg=HB^D-E{+Nn; z3NL}SB2o0YJK6@p#k!|;5A7!$0Q=c|Pst{zacpoW%}4wrpKWzHc6c@7`w+ zhVo%O;fQ{OZ><%MhOo=Hvj2dLuRUqs?V?;E6aTaYA2k_Yd7oO0dkKoJryQ58yrc`_ zFfTePYg~`>O2gNnb zF=#gukNh?uZ_mcTDY*=%)Wo?l*#xl79!5p<7NZ!}n>EkYM6J-NSHD99)zK zJ1<80SNm(K*bYvD_rTG@k=k~({PKpvR)p6R(iR>ujPU1gKxhIN{*6obz1>}Yy=0GJ6%-We1!j9*` z^}WiUbg8&58RKlNQ)Mr>mHlzv%;pYOY%1PDZ-vSqxp{?Jq0oQZg zW70lQKFg`hYTfccUkfuit zR$W?Rn>uIpR!$5pvPJSlgwOmgxIT}=C`}}ZI8PtzI&w%M<<8X#wh>BueO~3Zq-kIG{n1|8c6>ZcFAg4#`hL0>rwccQOef$W*Y^Qs3wI>*GV`wg z_XyhToyqJHTkzfYV+YmeThi9t{>5-N&vC-LFj-2qX=dJd_txK5Q3T1m8GS&y*hnJCV+KBd-MEUjTWZR_H zrMVQz9Ti<{ZkuG-->kbU6erKazTF2w7T@>bi!HWw`u+pLlC3j)X6<8)v$J|-TxP4v zINDFTRdIV2a6RJL zJMQ&K@2@HF-`Ilxk0btV*hA@~`2VE9e^U$o*9HD^+~~8TV0y~9_T+yl&sMmfx5Smt zX=Y_nZUbXn@!r4~SKMQh;W`rhZMTf)ftI-P-lI%rTVnfm%K3sX6YQCucwF>K%H;7?^4RKD(rU`!WON31;~$X75!fZdOKeu z+y3B6+VC*?C`Z~&U>+9TxJoQ6>yZwvr<6Cj;AP!bG>g&8e3OA3- z?1zoN{uWyGb#CWZbw+X&hUES|uv9LwFu7+vAU_sYzvg;q)z@+TnkgD+H`4O+P=5%n z6WnsapUX>uZv)p4bP>%fM-Tq`uSQ!u;ZLV=AD%%$I}T0bb!%;r|Fc%_Ob( zk)_22wfbys^?p3v_)GHXelU)qhs1Uco9`6-!ZcjkfC#5BH5B(@=5gZNlk!conBd2r z;^|F!GPvmbbM%b``SVa-if16lli|cSQsC2tsK$r+4DnM~q&wimcQD7t2qWC1s_-t) z@ntyiU6JFXtisqteA79;3@5(Xh>xoR)3njGN#kg6(W_1O<$b8ZJ}g|mucYZ(NqO=( z@f}b3#F6FU)hSN~7yVjFA7m{qIY0Q8hu5ThWxV*WP5DvuaJPf<;<}VCgNy$9l-|o* zsxLc#trp(PQ@%1@{5Pchp40elO!+eStD(Osz^7K5P4%p`d=u;U8#8&KD;;)~g*gqS z<>pLwCCzK0xy94?{yQFNR>HoG*Mqy&&qEUD4#b#^KNLc34OFTn0X-ZuE_q^kn03W7s>vFh(#!Og~cpJF&;BZ`0pPKbMjg&`k z2fh*bH0$6oTspid$SUrwRQ_!S=WR{(-b(Rr3H+`0R!Yw4nViLA%UWyqe%G!1Ix`t1 zy!f}}_*oHVWXtyU)K;FI@l?6(2|T`4EbBvW4xj16pTgS@PG#YF^ZGE5cBy8Q#4i0=-8*q>mA@O2ge!t!;Jz?d3{9)Z;>m--KlqWMXd(imA*`eFstyl zf}aKNOOUhu^(joVtrUCxe;4WJH@Oxl z&T~4@(e?r0@m$?S^r+|lU#)kJxH*{_=Iif3rk)S-8`e70Q2h*_eflwYi}TW&3XHZJ zdCm-wjo&{^IJUku)Zl&1j|)B`xO?|wkB{|^ zSN{TVJ&}L)h_kwEtLOM!sDA4Xtw)&HNx#twH<$Y*!i(pz^!;W2RNlpTfEZVtlZbIe zU5Ig}3#LOct~kdPT1mAkGkN>YgE8UZhH5ZSKv4zXo@~;B#1TLM7;i8xB ziJsZ+9R1mWK8F7T^g9B5e2(aAz;_1v7%uuDjT;}wv2@>% z`O#C{4jNwpC%((ed;{(jP-w%&e?^%;MQ;fCc+BdMm#cZf&Sc)XTvb?_ zTfaZ%;9oKC^C#6jPBuseFtmfxJvK~C3%?a@JZVB?7T<1_^J`V+w69}+3|i1*lT{+MsGjm9s#`4ixJ%DA%K{3*1un?K`M zc2jc9ZvGeVsoejEwfBJ2tE%?D&pb0g3_%Bo7$w3aL_~}jAQZWXnU>^%X-r81qQhk7 znasdsW}K3Os8M6@z29p=1;u*N>$M;%wk!7D8!C3?+C_Q4zrFW5XFunh3HZP7`DF5( zv)XQJuie)s7AE&CC2jWap*6dScdhiy;O)R$h>PrI4F6x?vYUcW&bMlWJT0eSvQ@&F z?VOzNLt2JcyZ%@3u0F&i!{5QhbwcH8^NCt>h_-&-r7SwWb}K&_iI3GT+1 zM*(j(c$fpaC$N>k*a0JQw{1c7@Ls@I0UyMn-lVIYzCF?+aec{1c4NbRfXDiwGFIJN z1zeBUj~r)78S4%Y+5a_;YjoT@*7fVoS6`wwX?DSUbgzX*J_)=FbWfu;Vnu={V-BoX zdn7viRqkgew%dDg7+HV65HAJe_Fi}oI-P^yemk+(}(rYNFT;0=a>M?&e1;vcnffijqr=OgR#$I7>d5q@ar z-TLu&>AYCE3wIuWvJw9l;;FI~+{*UhyvJpG0pC`B#;>w{MBp#tied?>0=KJZbpn0< z9=Z?ahcz?IuvnkPAXZ1W5N;@&X1!aUS9y=~{6fAhUq!c-KjryF{OT#cLe?-u9%;fK&$+`lwakiwYS;SjXy3vFSaI-}HJqP#9Y5*)hBVQgo(y8Kzr#)d}$kMmi5 z8R_w(f$Isrxav85o0CeC4wknyV$;mGJ00q@e%_xW$pJGPb2;If9_!umeJAg6zK`;4 zc`LdR{*>=y{OT#P1XCm61*kBuXFCgn{C92Iq%9; zh?At&-)U3kdNI1yrhxY4S>EO_XTjN|p4RTpj?RI0{6xA=Xgw&?hiT%p{6Lau{#W|)Nxb10hUS*AIg99;D51D?NXU~znWa-W;?5pA<*b1?3? z9vGd#odq&gHx4JCW}|#sr8yWjG7ofi;MRY;OH1~77x~cB?dELS2dmp~EA4peL0LY` zg?uQ_Q&+PY{#Y|^6FD&`leHjO2Ynq;pH1J3{FTk+#5kMFkxdlb>gGP)xXC zuex~^a6Ls_v2H#VTGh>~`BmMN9IKm;=RK86EKKg6l6HL$v^HNe&C=v9UDg`x&~rWpIz3a zdn7*1?~Q3Vl~;<&WIvgBnN8KZmD^KzkIU_;d|TOw?jV0Ex2N%|r-&<-+tZ;{xjlnl zm7C;Pxjl>bR4%bFxn=i_J`>udQ|-&)+0ex0puCf9eGYIvnQbl2Aa7wyQ9kc_!r6m0 zPFnZKuE|knD_Z!j;LHDtnK`+cuFcsAF#3(MQNlOMr~eZ8wczm`%dVT=ad&xF;1e9* z%nn|io?O7?0`FsTx#PkWenr3!;eWfH!iO!IW^RpRaejWjcf6Cm|NH&6#SFhPk%yXM z*sB8E1sKJN`ve?)8;*<32Di}5o9osTx|iFD{;o^f>tKq@M(F(NxW7;CD6;N(p?pBI zwi7%U_xE-W_x24|dwW{DhPQUMcId3Z(zs3ZIr4s?d-{e3!>!JFr_ipt6dXf)D9)iH zP6SIIvw0aurd%dsdAUfoi@Z7<+M>F|qFBinyLrE-ad$t~+gy$af5Dt%pl4Y;_jE00vy{~frV`td-TAxq}bc&VMmf7Il3 zZFpg#HazcqaS!9Hy=%C;x}&q>yz>U>I$t@we`YZmN?$h}iiP4(e!P}AT6?R#1^Rv+ ze@F6e^CxOk1-Ei~1MhJ;UBkDPMaoY(y%D&cA}*6{^B`}6R^{|&el1>BPS*iT}Ydmo#;K7_}fXm|GPTE5fFaP4Yi!&`vGWu?5Mp`y+U3cQ$`5*rvoE z4Ko|by#P4q#}Z7Aj>xZxza=H3UlI9!UziB}Oq0j>6gv)oJ$w!DmCRtzv4GglUO$}t zBfN$~|0`H*^uFKKM}0@gYsGq1GTh(Sj(fAgzTv_C)}8^~jL1EebijKCtF2uF!}MG4 zlEmAV`0Uifl7H>&)VqjN{_NDdqj}8$|9F71%Y%Hl(&O(w$m_A*|2E{` zb$l?|1@0o#A0@x{&1mZ#RYcb@&L|}Z$mD!Ra-y-QzHi}AW6=$qCDNmE(Kt26**cV+qxwgipU*4Oa;G-( z^cd}zPUK@2Z7MjXwznr7hxijqtDT~8b1Fdva=`bDrI`6TLeuHn*Lrbr8 z^qYadh%4&ox1g1dew$zEsN|TAewX)DF0nAVzX&>dCuy+x#Lq%|IbYTJ)`jitS88LA zqWb$<+xQ%~F>uT^T3OFC9!bw&d;$CfcsU{%oXL^U$CZpPL8HA!qG3GaFArkfQn;^x z;~!yHr}2YbvpW;N22gqIU2g`4K?QdZctI9TzggQ|5V+5ZPV_0Ha9!gKQpsHjVuFa_40-X z*VjvZ-%8vyH~xe{#a{Kz->0yZdb*bH>n_f8Kc@d_NVC<83|I6qli@PGR-F;t>dY^Y z7uT6z@@@6P_*G|q6@^PXnq;_4w%PSxL#sOT8-7)1L~C{Ccfe9!VqtQ1e~|3@k6k!k zr+>oxI>PG5Z>C?%I6nCqFqX>bwbjC%R>vo|0b37Dn?TGtmh}GTz&8LN;>==(@pJgU z1y?Ax(C7X=xLC*4chH`M+kxu|{#x>dUZMwH2jsV*s7rpXv$b0@w>H)3zodWXksqo9 zlN}0iVT>d2u1*}=FI}G;n{p68U+@Rw#U4A|DDI#Nk20$KF~nCA{Joo9omp`7Hr$7g zqwSxN?$I~r2mvz}93vRnJ?p|<1C+a{#>Y7%hW{+wD{EZn`+>q8p7y^zmi-rdxy+|F z*IyggUTm8e|8o>4>a4$UsjYX2tGue+t}m_pz~2DZjcY*P&2>e?OW>7H<$a&w?E_qN z)ZIDI$5l+OJJq>EH%OF$efp)Re0H(9>$37xe;1sV)oIb*L3l?bhb8|Ad15|z#3$Q#SA2H{KE?fg3j2WM zmxtZ(nDVeI!1bH}A7hUe zX-b+85mw%pSeCBr4xXaSN^&&&bM(m0i^uHzy$MS;7`WSSa2(&_mn}Ehvh(+e;#7~z z^3&}6DrjZr@5`@rP;wN8^A~fQ3)5+DLlu15OIDUHDvL zJ6gcF{!SxsrczQK?`hJv8;60@9yHIB`Jg-kxYjS)IVn6iSKcm26zz@6`L{sz3z2Rs(|CJ%R)u(nNd3OL|af>To> zgkb99-49qbT&3sf8XHyvi`zbpZ;z$zyFYL}_nbRyx!V;Oz7@Taj%{@h87i}ykaZu)-`@3H=`0)7JLhF(%M=XUi{Ki z?U|aH9vP?0?b$=wi(fkH`Rno0gHynl7KaPJvEfwku}-MXRe$Kg!1YA?qw@uNm*srp zh4tmE?}s2)ca3e!`FqK5Sy{-=32x=Q0p7TrPv_gp()d-*XN0&HahYthb7w-Ua^A?V z%2{%(oX-Z9$|V*i*ZQ+@IiCit%6Y`?tyTZYt>*NNg!8__x76X;idb`KXD=QKUghlh zb;M$zre2@C0IM9&0`JO^8B7e8TYA!%?Hu57`Dx6iJ#gm&*OTsn!$n!f>1${P@O4w` zFvY%XPj_~7f__%rXI7`rBfRAYvaycFo;n|*IRV{AsBdyQIbU?-^TPxE68@>G%#Uf> zP~F7vnuYapM&SEX0JefVTD*I);3*QR8bgqqGJw;q`zi!5t^+T-vR~YuE zzCckPGu$C8iKTm0%rSYD~_^#}eUu2}a5pjF))fSbBsa#@Va*r$N zW3)r7K1MISh>^Jk`FGQ$%dTE^fKwlX`Io*q4qS5yuxn>KfvUHn5s%-0?k;y5yvqEh{ zFF4um-f8cFKg0Sqd5W>o~c% zGLxe+Ut*5i=28ZN^Or-yH=GUc{BCgDZJQC)B*1g>Q(JT%Ou=+y_ zRu4e3>jyV9znb|#)4_!hj*ao(0`58VMHYcCAXh_BYezM&ut)UNtG$75skVEtt)n{7 zryO%_cl2rTs5I{nGRpJH^*VIE(grcU^AJHSuO2Ho2ebOD@2mMM+bD zJn$CcqW-wS)qgt(ypWTw58v4ERB&!DF|xP+67{a!BwQYm>BcjNgX-iG{j|P;tv%Gm%@UQqn?5`%@Rrx-;eksAIEg#l zI@D1eq>gCjEf31#@thz_W%gkDC9$6A`+4Bi$J-vApAy`3=>_0pU3wwkrZ2`XU3w94 zJw;qmmtG95bm=AhTD(k`UIr|cODs(8r9qcs8~=Q0W#cbitj+E3UYuH(WU<6q&GC^@ z<^`lbFNLP+a2Ho?JpXcFvEFDrul*yh0IugVN4xR7ak024*%wz;KIQA1euR;pdUcoI zg|R{%Fe{f=5msCl`hGQkWpzHrS)DJpTP_|7-TS)nQAoc{zy3pEAMknq+VtJefxV7z zm7)6Gak#GsuBQwapR*Q^>CPK@k9FrwLALq;CR@7m=16uuuBbcLLMz?5j$i4Hg5OlRLgTug7)H2HTMPw88KE&RO;I<>iKdyimd?A_v{to}3bm$#Sn zQ@RIQS)k|{@*~(BAdAO)f}E3?x0Rm0lKD6NeV?@n{n_^-aajvKYyX!e{}tl$z96HY zd@hdN3EFKxVYk9o?O|$fb<3r`%X0{17RUDo`AYW=6hd`f?;n;8KH%R!l+yURcO&0c zzr^!FzGV+S%&(sEb)D)CZZ9m{iaAsY&f@oxH0(B+KqRgy17VYM;OU}1eFgcZm4tEJ&plCMQF4%RXm-zbss%_U@fE0S^lD>5112{LS~ zsC?7kcT43oCf^Hkie*qq-tPMA$fm4M#{Y?>^@kyhIITY_m0wAIdlH<$Hk@Hb?9i}7W#;{Ocz_km}v03Rt5T}R?%d={DyLgRf* z+K|q#iG2~=O)1X&bujI}OCk9=urEV%b4sJ0hVF>-xUYlzREi6?*@phax53?#;nY%x zn*crU_rZT5#WU|l$9JCTHFh<*%fPi`N@@H7bYDs7QsGXyY;AV`2hOO|3rqKJNad8*7uRpP^@=k0N*cqZG+Q-@3rShu%-kU9$aD=cZlpBp5VYM`eJk|9NpN6d@&o0y+-g-86$c4O4&WU zA3v`V9p^oF5AUt#UG3=VVJ(79&X4I%#1lyKJutfsb1vfUKYVxXW(U=7Qnu87pdM!O z`k2V;81Cq78`@$!tjoYzzp;@p)DD)Ut?jx8?{V9;oNu);YM+c>ZP$^&^%QZ%wrd5nYP*i&S8bQ%Sle|k-cz~6 z!sM3CdmRDoYQj|gkNtNo1Kt8$cEjKrE8Y`$F*jwC8XKCy#q~pFp?R;Pf$NFpz2b~t zvMf#wdcVeTPqAJ;Gd>=4Qm{%gH9SR|Qo~R9$%It_bZiJqEKTweB8`IU|PRmZ%N(S-74VH!7VxX{eZW4xYoTSYD(>&^soh-TlmtFook00 z8`c7g^-uF>+V6Z4a6Li)BuiX=;fy!wMY-J=zNj;-j)n7;%xUI9a1(y{`Q>5eG&*{> z54R0%-rU*mPtPz{+uPrPpe1pN&s9P9AK>E7E^B|Z(%J2{0j0*>cjuwOcAxBM{f)J4 z9PzKs=}fIBk-dK)zO~@1O)qA!)29X7EbslPES)bsELnE=1CiHUe{S>tbiTAakDWE~ zR~^r9onfym^|c67o=9&WM4aNftM60!lWqPM{dYa0yP=cc1O9!zc-*@mJ3NGM)tP0` z#{8!N*Hebe?_-MjY#&n@-#1k;mXK*Sql_=_TQUyM+L^EUfzQGaPwby2qpc*5NW;jN zUuN@^h7)Fd8cb#zeDSzDmf60f%u4dR%Pe0SobH*8-VBfIr;SIq@U8Mtn{KjYqqjz~ z>v36pZ9H0qRyO)VeofaEhU9huOXZ^LCil^e^=GVPdmjv~?5W!Bu`p=#HuCu7q2O8q zZX9p?=6ibs@O8k|52)>{jkeD1a^r*3fvZ|cRt!G__&y9I=c=4ZK$FE+y9}|gpQyp)H+X${B=IdrWI>L?RuI)HJISc&O zm^X(%8+=#H-%;DS81|%`1FkRTjd16J8w|KbZmHmIncA2)(Y@o=%@6Tc9Cw5;IFCIR z&-*KWQbmWym?ifS4-E< zd)&6kxrN1%so>f|dGu)7=L+rf#V*XS!$XI`ZGFqFX_KqXqw|x-^+ly@MSC-6@ezZLQJL_o+OJxZ1N` z{+!r*Qym!GR_*luoU+d>t(OgDx-i$`-^=^HI_2wXS#_F5MYhalC*8T`QdAZWlMi8S zs-ao$ri-Jz$L%f|o3^{6+sU8WUD^}(Seu;TitX+=v}$*`kJh!jqP2E+lJ}ICSeV>0 z-#ru1E}d#WM!o`?*uE(5biVmY;Ciz2&7~RS&p4N&vb@{4#h1%m(7|Jzm%f3`)XkxO zPI(Ru4EEvuOee-lprqpWHtzrP<>H=R*gfd|)4!ozZ7|=uO?Y6^jr$Z{h45yh@Wz}j zcWxi-+%eeQIoMxq@7xhIItTQ5c5=w4!>BuGfv&H2d7*x2bFyb-&O7pP`@}xxnLcQa)>6)boJr3Hzc_ zaZBa%&QQ;lr}TvPYIa0=B)caVcVVborHSIVZpYDBc=H7RA zVI%4AaZ4&M2ys(LE%>3?(jx$@>}3wPP8{;x}>>_QeN;~2t;`*PybIob8l zF+r+jHFy4Ad8oCQ*F<@^L2cC_SIMhC>l?)M%hGxq^FUsY%Jv^QOX~J{ofR4?|KasP zdiYx9)xpeW>HBs3m93q`xcr<}jLXlx#WzHYr>*ihF z08I-t8t*Sfa}6}>OwP!@w9lq_lsAI2d7IriocPuo-{f@K|1-V~7H$qFzKzB=vai5r z^EQN+;xyiVD}1r$Xq^2vV6jb?zUsWo+kxv@ym#969#Y@d^m~0(KQJly{14;X!L36* z7rEVpXS4EG0?hRHU4$?F*V+L^o%a>BxwmJ~`HJ!{p09lT<4@Ie^==v7Jk-_YtPE#v z!no9(xGBR~J-i{rL-``x{1Z+7gokz9kzFvi^$!hfb*9ihvUEI&zMs+|J^dRF%Ty<= zZ@3mYkGV3dqr$(B@U-9hzxmap`oI`5iE)2oURaOyQFQK1vb5G!q;E_<7-Xq#N{-dd z8-d4l^TT{w{j=~?H*bpKLLQ`XIkHl$n;(Hzb@QV^)?tr`=n2_mS$&NAmhXp0{gVFL zu1Ri~o@-~1#4e7OG5O`@l|BGoeaxZh5(;d+>dl9sSsBZi8kwK3vgs!hW^}9SWtC87 zGG!;yP(_K;lt^S6c1uxaJtgr}UHlmFtRlc<`hIj{!_C0+^-*hQ9|x`{tewT2L$RDq zw87)$bx_SLLoodN^bFFMU~?}c!2uT3be=}DHLcwPv_`HuzDqiVBc1*v@iP7XJmW&? zH+ts$C47!=(?{Vx4XxUr{|RX+;ws5E(HA{MT&8Q%W63i;{v7gRJ^no3rpFep^!N)= zxQ&F7;WF8_2Jl5_rN>|5SLqb3!jRmr084p^g~`=gq5Sd0I{g`FrPK1K>&y7~8CW%pm&~)a>B(2Y#d@NCtIj8X4Y;0j34k$Eo}05} zQ#cc!UNCto$8x(_KZBxE)qyoX_Yt9xhJGu*zCk>KF1U9qt8W31%j(;FTUm+coBXM) zzQeDcBCc3g--T9X^*w$qY%8lD088akRwlP>-st<#E}d#WZ}dZG;(WJxqaOj+Q#NlD zWzb#bUHSNheAd|Ycfj?8v8xF?WIorAKZd8>l3N&SXspnb49|{Eu<{?q z7aEf=$3B{e;mdP!bi$8G#K#&xV~ou>3-$LU2*#Wpu+Dw6j7}I)q+>UHs)pTrW2dXm z+1Pn?20uga(@3Z0m~Rj1R9YDa@7p~!Tywi4hq8CH2tRRt+^RU|$5zs#CdTW2aOJ~P z9Lw*joOBcEikEaRo?G{MpH%)3#mS9x8Re#@P=XCCp2N9Qt($^A=^+rNa|&h{ZZrCu_8@lb1*etS1t`|4WS zC9x*|Z$ZAz#U4XmvW~%AK3jQ%eg#;6ZTAdbTeEekJK#kZ9bAXww~kDYP1VjjZ`cp9 zt1N$No@IV`!-fqHOXyF#(Re+0Q=XlODL>tr;)A{pA91$NTl0r?K@WC?_U9`8))L!0 ziHCm8_K5eNz>dHJS~9QnWPM`simympNh*QX`n_>DMf%31DbOpv@8SH9%HQJn?X!G1 z^4IV&{tkzBsW=`H~iii5L6wi@qd>dT;njJn0_^HI*`c?Pj+ib1n zrR?y%0)G)#w8PEN$_^jRua&355bv?TQn}b+lY2smkBA0n<377QwD_&WzVF-!p5mm> zJ{NlR8HM`chk=j#>)m*4qPnn_Y+QNa8h@_c>O@A1|EfS+#5E+1^l|l+;T}ME zdQ1n`qQqr%Cj|M@Dbc9T8BYtiGM+Ulj~_SuhWMA!os`m5nne@Ke!vp4PYyg~^78(D zvwX_xi{wD+k?Pu05>!}8&c=zL>>%$qvPp(47*cOKYW5~ z9!1es`A#Mzu;~dI~+T{9`PYV5BOcswf*&|a~f19zi=7%|M zvz2_y;LC!4SLvYj!B+&BqYQBM7nY%!lWs}W(+bv{Or-mL)wiWbRJkC;UooNo-^=1i zS8HEir#35RA3olibFgr=mbQ)6>zO&0Hlp~b&(6SRY;klUUGq>nb)Roo6zW;rz0=hL z$-=Z!?-u8Wv@x%bKXk<4_cS;#?E%srgH2I<-TF{}RcA)rWRsRShPQH}Ylykh5;&<~ zpFvrlo(}H93^NtUkiCgk_N0yQWGlyWV--vD0`YH3#=ASJ+;tV=o~;47&3JBY@pdZf ziezGBbky%@QyMky;U2bD!8*CTNRy9>pVHY8rPGa9daIkOE@67{<*~&0oqIU(W;trJ zE^g7L4q|EBth61>Y`DI+@TYk*Tbq#$7u;-kmG{_&U&yy?t?ab%%Z6VBTu%{KwBcRQ z%7%CIt2~z+v*EqGr*esf$-RQ|(EL}t#H*IB zL|wiJr*(=xaQV8fGc6Yb*Yj-JKDS4po?E*(>LAKz-68S==-0yc@+8~mGT>y5%*~DL z?;Y2bQ_fSU%583P7XJ_0gLwtIK(L@9Jn5dL%dh;p7Ih4 zll#4J<~gokmqDxgr8UgS`R)iE!i058FNtg)f}?C5H23GuOOgP4!z?df z8|Y)W>HV~-}x z26}5RE&ewJ`WP-fyE)MBog7=32sS}_`Kdr3!$p5fpr5E|Sdi)Q7Xp0@SA4z_=;!4b zG{{$d{YIcSxZ3qe;BMbR)~LAt`<1}sHhnFY@SNfv|Lk0M-|cRH)<)WWPQANlH@{(T zU?jb~4J+S++z5x5>}TQXd+ZP^2@+Lpcis%;UiwJrO3PkD)j$vwPef6QZ`T}_y>7qNcP z5lY*Z7%uvCfqp?7_<}7K{VBj@KV!J)*9UrhA}reZA<=IL^f6rY8)JIc82R>2Jm_!Mm&XFv6YYPwTRKvHF2ZZS+YlSyD^?25`dg194zaH3 z`|HPlZ-``80l|my%<8`3&Auxx~WcKC@&@@dRk4m(r)H+Vn0AoU_jdfVTwr@N{jj z+^CukJ_($36HgZoCcSt%u+k!M_N=ktnc!pHP}ypY{aL{EL_WY-a%5zGH_O)65wy=x zYaLocQyFD`$eNPp5Qg&Tx%xej?I#@@P{`h|@z$}qXpii`#K>%oxsFk;ka64B+*()7uv+&Ic9$hGxB+ zPQ94-Sf^gXx9N@OUc{et>ZSbZDdLJc^)hIsQ!nRN`6W4~Q?KMbl}jv4ZrRrOUNEZIkvum4VX(uMNoAhNF@znR5kX62)w_(tb-UMC4oPuuyXm`7L61$jPCEu6)vDaj0Y<*(KiZmi2++w;=byIn3( z+-6Wrd2kgSLzTbUM^u`>>@FGTY4g+j?lsHTn?k-`z&YuR7tgZp;@&NIavdDjje5HD zV6YUN$@*xJrSj?-@#R(CSE+6rnVTG;GsbP{yZn6BP!XmyN!G_Dm%fVi$=1?Oc7K%5 z8ve|Vi|!NrX}{bj`PCy^Ex6h0PxBtz>i^-}?6L97R(~e&7jYC4{XsppmU;`cvelpE z*Wzoo`t!h2xx~Wc>O4?>AL^%|U4h&vSKOTY=YSV;$B&J^04{Iqv}f*%!1aVZb9Xzx z?X3D~&i~ESEb|dg*R?j&c-_CI^ zr+f7vuQ!)6rd3^9D@N>%%}*Lk>tc2&%3#heF_-CvkD)GJ-Ko5rZJ(%(UWpeaR~H3a zoy-n!&}Whhz76Hlqwv-vy9)(eWcf^8s`$LF@EgD@jA}>s$YgYmO}LG9xWF0WBK)}l zFS+8*%RWEj=ai!k*Lj;F-c2zsFk0F>V!7<1a~D?z-eb_qt$054{)`egwm6Ei`D#=) zeTl2Y-CRV$svovQH9dT7qQ321qA&O-+Dz8r7A8Yj3&fNCf_BEfx|=-o?ihSJgkPCV z+PVBXyx)(TRK6a?3!iy9Q$M&(My}JjT5#w1sy$nr?v$g5F?s&zQoCm(h0N8qmPzO1 z@!wsNc=@W+-z2U!UedeSlW+4L+mr9`Z8k%6-{Md9{Hk0e z$I9i`yr*)Bg~=@&$Nmc1vXrVEegiHp2j!E>;kUr`WaV)8^GUwxWItF=<-`h_EBR_4!JSaw)W~Q}URL&KY0=FC3cm_`Zvmb0Yuws9JycCO(G{(!{2AUBa9e5% z-aC}L;yt?~>M!7FuEL%tAKqVqY5XdA9W|V2<>I0-Y#Nt{K;bE_8p~2=HE}n@?j7%J zCd5bhjl!pLTc;gW$cw*$*VvYG5Hp-f8x7rF=Ra4AecB5jGHHOi=hj^+z+*e0`ImcQ z2O5Fv33J{#PPeT-66JNf+}1k#v7=*VH@y?PUEGg=>w#JQIE=94I-&2w`O_Ruex4@A z*}RGAc8trP>(agWw)$eSRhPnLjwQG( zT&qh*BSUrR7=BfkB**H~O5Rhs#KPphw`7gy2xx6CodYGaOgq$Ke`m|Ux1bZ6vsqxc z$xMQqgSiKA)dS77#Bj;8xg6#&G=br|($e+i;A}o;Mh6(8I{=Rar+OfHd7St*hB$EJ znme{4dE&7(pBOHB&Fd)6L?Oi5*KhG`O2etgiLWE&%hr9xvo+<(;46T40gwHG9|f!r z81>8fa<+620-I-Vp8AyPKOGBQSuIgJeQ$7a{Zt*(eZt29*AweD*6@R{HDR)@y(0VZi)9tR`~Z7x-2BATD+(t`hS?S~x3#aei^=%T^20LcmLHZm zcT*iN0pHGjP`-bp^&NIBT5IzAW@bcI6MosDn{(k)9tyvV9f{sANOR@>QGRe%ERH9A zj`-83S^Y!F@nP4W8T!MeiqAxPW=M3$3S?)CIH9k6X~e(Xi7p;>0sNoyMfrbc*q65C zdImc|m*0Y| zFgmws&(BY+0p1LpuEumN=&xYM0MmWpeUtmxKDrW+uDuHdnB~>U%B!f~sqY8!r#3b| zA0W83T@T_tZo5w9+uAPUSKIYq;ChO{-{{kN6vS&|Wzt-jCZ zPi4FLIG3cv_5-vuF~`ZD^E5FK5(V9NB^Pch&3zI9qkoh^%bD&*8SZ$nCn;!0C z65aRj9|l}QsLd?H%ujfP+Vy_}zA~bp5Bm_#2d?o)N)JM9ejD)m((}650X)`4>4ENc z>jbXHkIQqMC3-5ZiRrGyE_T7|NRq=L9JclRUBcr%IisuWLC4=;z zv~81N$?jP<-j;v972JL+&l(+(-CIo zlERB~p6e6qZG`o>s2{Px&Q%P~L=IeiTGx`UjTx`=@2Y*=nkUr!<(81g%CU2kR$Xop z4*7Z?VZ&|JEdZ!?OQC!{F5mYaflL;N29p-bs9By^FN}Oa5WRsG@nwIM| z#(R-MuP+AqIH@jNBw3MN(03PqWozRx&c_#xOBl z^frE3i1xRM-o`F5T=W}b`L0vq+b;3g*u{kraIzDF;EJUzzQ%@a;9^@L9npTZ?ZEXc zv0v?wI`aBh7AE&|q0O*)aJ2!KL2EiUuN_#S zZ}KSMEyP7S7sEwwIyXAQCUfkV=oUg~oyFIi0g6VedkY+t1z91ATcP;!H^w`xojDl|&G;b?h~Ex*|KHcPsNNc#q5c zO1`aJMTa*XH^#WLRwt;&3wUzNG!SeeiAp2{T_Cbw*keFj>W$5DDTmR9|I z47fOtl|PzeXOpyhd|O`N_8A<>Q~s2i9a%Yc3&)$Ex|3!9fKk$u# zK89ZfTc@!o1OOYn~a-xc`hgFjlu_eQ`h zPS2IRgR097&3ZT6@qFH6+wlUv%|3|kdHl(CypUf#MO@K#ya-y^ju-Q*v`CKGj+gSD z$|V*ix2#=z3AAM?RlD{waB=x5pVY3s9Jror?f75Ir?0VJHg1>n{Yqr2U0RS~;!z$7 zZh81>@Npi#hHuL!<5wR3dx%>RSIoozfL3|l4E)JdSIzsVqtR4FIjAVUj?n% zU;H9)ZrJEoxoRi7clRg&!i7w@Ul+^Y7~#rH{NJWa`4 z2~$r|URG8`Ty{@!87|)k$--+${ygf#vpDJuhVA{k2ezmvuPJ#~h@WUllNF3 zZ{S<}jRav~N*~`7_=~tKjn*G{FSOFf|KeBrC^@E&|IK?UmsptGH@V}mMlLf%D%+K0CQSHED)`Kip{*8^9-V7|7X z2_r2Nx^a!*8m9nv4m9Xvxb?%g0pAFGR_A6ym~RJWeS(?koi*C`T8w`Ocy(?5OYBm73X5q+lCnA?Spja zLxdOCb$#E+pXz$PuEaPyPbR$=-1PnhdbHfueC?%uy8HJ$LYbWwki$a=)>->JU+PzymVi9 zuH>D(l7ryl6I{A4_*itGo67zZ;9S|qSs(g7p8^+`zsgecyPpQGr-NC((D$k1UaBn3 z-+v1>3y(l78)+w~pYIf`DdCQADnSfi110`v<|g;Bxs~pv&Bd-rS{D~4{QT^Nu1!xW zp9%4j^yZ|$uYI_^tE$b~+SVC-XP=%7ErH1N?RqN9@&mpcPww`*7u#F;;QJnbsDEm2 zMfW+v*FNjdhj^GjwC_SIo~K+6zM1s!C!JFJlkpvvd@=AzUj;XP{W9=aU%$e)>7?;X zU%#4$>uq?3E9&dlpq0LUonPszXiZh^+1ktR_)A(b8ZtdY4;N3l~?otll_xKjDSTD7&P3IfG4O~y~ zA*}GiRUY>0%UJy%>5=>xF&dh=k}VJVZsAKhIJ>`hx;N~DF!*6fCl{h>ixk(NPwjW~ zr=pz8lCIhwR#8m{zZ>Ep$(&gn;H+6Ur$F#j?OeCJ^9nk?SdQ@VyD`LXQ9`r^&@s7- zQMqAO@GtR&efJ znjPeP%{;y}g)kW_lb+hH5tmHoNW$Q&f_E~KpTZ?)HFDY)=jLkDqx=0LhCkDSZdbk^ zfW^)6CKRzhrWM^oVZ^neSH}SB^I(A#&S6|5ZRmXlF_^tkBxMCgq1+=PTzvNeO7OmB>Ujs{d ziG|7CQ_?2<2wH0s;&a141>QpZ;h4-vk~j2A;we@3k(8|kX+fD2G;C_;#;bUhIS0)2;`hW$Wn3=LrFdxi%ITTC z)Adug^}tNt|4JTuCOy!*>A@d)kM-bBd|O$I?hpJ)5B|)ro+7TO2Y-Q9dhl0%r3aE@ zdhmDNQ@O;#?auV~@BqJO(s=J#;-q-SMVp_%twW|DsKe0x_vL+YR=4lXdn%V$nB2Kw<71zp_k=dQ7BGpOoxJD-@+lc#YOz9|_=VcP##A&c%C z!Vrf$_cqYW$;sBC!L4-0tL?rcq?#0UspB%!5x&d zy^9NBFcfS8aPFa;^}Q7jlOJ5yAKK^jUf=2mwWIiWMossCs$a8GaP1TcHbLR60=8vp z|LjEA!=YrZPNoAWgaNE2neHChw|P?Y1FAo=6URq+vQBnlOM4$zm<$Yc4eIie9Kff& zy#5ULcwh6@Y}S9n>FmS(2~YOH{20jYG3&lPzDukLFNr$WdzCA z?%W;9L){Vll#Whl8HQS7WhnT{grPy8Qy-rC<~9e#G^@G$Sm!EZSPN$^-Jm3D_o-vr z>EiTAd3j1QyT|;qtABDNb@BmGUan7uw{{Gx;nr0`_Uh~586o|l4yE_;$`5ZSCd*qcF~=-5kWJEc>%L&QCQ`P&tU|ui}>!`d!0JWZ>~-pP@kS$Erx&p+`~hsNUzfTa(D zV?W2Y2j6RgwE)9*j#t?dKZ&0{gWVe#hlHqvnU0J0IN&neSJtrLq3i{}4{&w}&$0OB z`Xqv(593hv%`u*xkNSDS-BdC#Jobd(+BjHwIdp*HT$t zav%0q@ViKTDe^QWXP3y2_v2=1Vn1#PZS03Wradpv+Wi<7k9f@`qi;;k5AlJ(yq8jW;{n2r@eDYS&hl^3!JEuxL1;!!yXjVjr%N_Kb52!!Z5x4X3$&4 z0d;zNQI76IK`--k-8s6C2A#~)^=5ReAHl~)~T z9$TjxgjW6bp&+a4oGfie60*rUuf)Iq26)t0-@=*^jZEtTmr!e-{dC|8CcxDlaqu&N zuk>&oInubv!OsG|%ER$R;lOU5{~X|&??H|x$Wwnn4+Gxf;r+F71>HNYD+2W>*x=&08JyIsg=rVE;W{3YRUsIJU?@Z(%XT>V=lGh^6S3?xSnwSE#(?Y1!Qf;k7s?`t^Px?4?vsK z)2++ld%JZxy&E^gfK1LK33K^@tp8u|W7aPn)_jJaudPr;9u?xLxNg!Ir7QJX=0eIo zeK?x)F2+&&DEtI|n2B?Xt@E7lSqg(RH)a`DoDaHs-mG`4|0BG|^?xVdR>wtmIe)7E zqx|YA;)?Zu3|iIy8o%m4Nshu0?=Id`xx~WcmfgKK4((Fu^7_}1Djm((C7SS#P%L4NtTmfMQhphPe2DlTH$&s;>^x5=0ZG8EqrFz+ROQJJaVr0>Uo zSDz}sH#ElO_lCx}8D6^9MXp=DIxI39cEXOq@w{2P)XM0tw{r@20s}G>RVjLQi z{iIKiwaub0(lsQH&FEY{SzUS@@VG8Lo^SE1Ewy}5U3x;`FXD=I=>W8Y`y*ob0&ul;yI9xOUzegwbCOTy30>mq)1$dJ^#Jj_xj7@zA{A zL13}1(b%P#Hs~q9_3Y`^m^J1aiaxw8IK-Zfj%celRa7=B26=wzz|#mXuABOPI)AF0 z`F+$e&h}BG-%f_4ci|asu0Zssq_8tn*!mQ^c{}#zVb>t;1c_?&{#caOV!PKL^=F|H$TX z*N7?Es?BFEUv);C8))2Gjrsx=K3@^Z$M>ys9Hwmuz5Rp3ZI?I?xCBxLCM3%1!Z6=e z?*DRhXaBBgw+NP%&7}7KxO`B2*n1Nwyg%M1;`FL0PVNpO&KJ^y9bmz?eUNQBef?W{ zTqm;xPOO$#N7f!`IrJUqYvqD)O{s;A(m9|{m+JUyg3gxruk*8UWK+rfoaFpRkW;=M zo$f}iGnZvhrA_i)CwcT`WcT!LcJB?m$9C@;zRk9Y?)Ci1?!A#;Jw+Uu-|TTV_I(qy zvU_jl*TOctcO9@)F0nAV@&^&yJ=w8qp)E_3Z?_s7-U2?hWws{$R^WPad#~?yUQKTH zd8M?f->2`lAyaM3#SeF)T|NqK`S=d-aX!A2Z_6v=S3bTg#I1-c=Ht7eRX+YFzsg6+ zv3z_Fuv9LwFuB`8KE`W*Z-*AUps}*Q>Xx=Z`FjKK>Hw$cafUlhw>ThOJMms{ao(z( z(EjWH0YaREt$+-n4Ov3=Z-iFI8bIp|2aEYhcoc|8tik)={ zZ(OvD%_3J9O*3|FjMpM_R+>vQ~C-do-J0ldY(uE>C+eVb}3!{XK3F&dwxA{(rtTD+pcV6uMO^%9LV)I#Iqt{ zR*oT+X!PCezq_?CD45m(S8}_|Rn8%o?^{XMswLL_@@sk;`?i#<{jFo|k0m6!KAFr@ zl1aDekqaWz_^nSy@o2iZd)n6NiO&Xl=LXcg+)=39S3>>~9A(MKvTIvd0LHTc!$d`rs2qqbXcs~6t@AJ>a-@@=|r{Hhn<3h^l7iuK~#(5ha1hhNnT$+3Fz zJz%L^#Vg1yYjeI1PHj%_UQL)XwHx&CyTGgd%G5BQ$|iEBzl{yw2N&z1?6KOMAB1p1 zo0I1r%FEk?JuRO*bfY3SCCwnJ7Q3Zg3L{y{haVA#*f#6?$NZ^$Y>vfjT8676?+oiA zwhkuU)!&J%A|n;zl>9WLSLH3ZmG^DD$L0NVzO77+U*-Laz+c1_%lntms=R;2 zucgz<`!~Q+xx~WcJ}K8%lfAkXTAN#m_mKVscnf;qW`cvA`WY~iu6YQz2m9B2FO~nM z8^47n)(w@f_GJGKxSr_Fng6Hqy@m3K%U9pGBU^sae#)G=9xLAr*N_~=TDTr7-_OF= z#T>|W7yG{=PgC;85a%K;^GQ_1Wo1{yH7558@hIXd$-L~uj~i6nd^`KU@UG-* zpjNxm+QB~n)B2W;<)w#z0wz7wE_*J0cJ1t+fwef;Zp|1t*k6E22m9Gw&xRle`ztV+ z+Ag}DYD3xSnZng}4{_&RiV3>>H+a;Bt0A^{{T9G^t%*Mm*Ukdev6l%B-oDEsK-dnSH{nyeG73-<>zGP#5k6Oj7}Ui}Mr8SB)|64J^$* zSC<#+`ZG{lTsDd^+3a`cl@eod8blE$tdN-FaCpz|`InjvdZ( zZRQ%_Ex-w*4t^4F6}=W;H_y%Z(+}dtlxVbt%G&?xM6m!`3aVl_)n+aEkM$Lhrlk;G3n=+jC zR=Dx}Lx6VxC*7U<2u|1Pyo|CQo>;pD5J>sDuoeu>*2wZ83 z=}!l~!^`f*ExNiKT&LvIdnUNcz^S}-A=tp^1UoGK`Rj*)lfUzD?2)h=8_olkx54+t z2LBsyJOCb+(Q7xX!loZS~UlRcAYZ z>nY-jb+!{))!EJbTD+`%-3ly~ODs(8r6uF3R%lhPcCqGb{(RJ)ZUOGbO1XUSb+oae z3O+7Z^^Y`$z7V*cTdCaPOm$v@UvAAomA^YfzpZ?|W^$qr-v#QUtwlb2e$Y#L)ReQq z*pJ;g%{saH2)^?|*_aX746HRF#WSgNg?K8i&bPI{)hxK3=6pwgwR6B0a<~Mo9+BzS zgD@o02dz&hg}u(|=Q5?+(Hi#F+DFFUOFX2X)=n#JeZb=OLt*p)Q~&Pb5O3+oGH5eg zaZH!tGW{vzv-V4RD<0F^ZG;u;?RLIRH%+$mc1IK^wL=*$3)kA3OQ4nBUdpfZRc#n<%BDJDVK-7^>m|coUG~Y^u7Z8p_~HLBxK3yuq zG0C6~NPqNh`ZLaZtUtT>HvJJ@jX&wn1iyNUxT5|{LM#2bf?o^U^k)iKDwkN8-1BmF zPxkFfXzNp__N}pDH}HIU%g@p@a6Q=`w=^S`%$KLre^$PfkNdO*i1TFa-Qjekf46dZ z4B@Gq%gZI>_1h=wzfHz`kYRI1FJsyKdZ~1&!wz+)Y_if=1t3s*Yu*fd<A>Uol@5s3bl?fVQeI+V za<3?{A$y>e4e{Q|d@o0Rx_!W9M>_Yh`+@dF`to>S>ZPz5dN-~H21n*-F@udb04~-U z+w1Z~;Ck$gVxHS|b?O9Ca)ei2=GE=Boo%{SwKmr}JByX5`?fN#JjCmqm7kSa{A=YW z+JnULh~%*3DIu=P&kZeJ_iQ}#xf9t#1ir|}9o~V@bWF7GUsKeTEUc#FnSm#5^Q4#I zuNX#S^6V&XW5`y$K+oLx>A9uxYDk_Jc#85G65E?qhU+>`CFbNeE6%3JFG60d$1e`y zs=c$cNsnI=ghVjVl^(w=$a)ZigH#qFo2*O2xa-MIw(o~OmG>_YcF)M3N&H;Y z&ItYUX8`{S@JOe(w*}m@zXy+sK^9Js;c;z^QN8&+)ze z8VQ6k#S6gQ8gO_Ecc-CLcU}nmHsIPr7Q;pVt3W@%l$-Yb82#@8eGC`<9|C>0&KP1C z(xb5c5_p%Qk(@gUaysT_WD#I-~Tj3Vbn6_Uh&EMHb==>$krGcxZw&;MM>qyr@OwMZvSM|AkUqiYpr^EJ! z4i!M&X3B2;hh&9*h~BO4zK-{}?!KOH)qT}Z(Y=;G)!jGntEY%7*4=BMRo#6fzZSN_ z5bv9TrE-ad$u0AR@g`^sNpj`e*l;blxU7^%>Wf?lTu*M_(Ou?I`52|TW3a2AtNhqr zNKt1WS-!rN@RYCC9<*`Qg8n}Py|qtT54CmC@-Ui`_XHmGWfZpQ(SPwC>(Tr8HeIneN{{|K@E37KJ$gU1 z(xVUXD?O4N)1wdZp2{T_CijG}=lmz6#n!Ff4(;`PEly89W|3QMeSJSZ5&WIN$7-_+ z6Txl>b^|cC|Jxr*cXLhe1pYqY+B!0idn>m?JHm_agTn8eXIsJox9+mJJHo#k{7v9B zk1&F}K_*q4+#7)3oWcV`u)FUC_o)<@&6Np$OA6QCS3k$}LEw>+x;3sFfyMPidagU+ zKMY*Yhx(jN%T#*_J^wSdFW3*)x43oOm+vxU2=@`>X`bh!L9WWT9+%BGTmS2$l#%|l z?@4+W?`6tl9+rGO$dt|rZaVi#;IYnqif_{^9X^*YuU zQhGu*SWenMd?ewg(co_pW3d zJ}^<6nqp$AHpT6!YVzs<-WHa(b@im0i>%{4Gqa;#BHq$3(;Iz%nLp{2o#lz`rt~GA z2g>Lhldpz6D3g`%-^P45VY~Gd`7%8z;*Y>^Xg{l2+xnpb_E&vf6x(M&ZczyN!L*3v?$&IrlTSKc4ean$!-E=EYrHmAz0K(@M>}rAYNuVX0m4 zuzEU+kMdM)gpE6Jgjgrf=oBZl6&hEN?s?U$7jHkB1K(`iG4Ef_ZU`^)Dt>nG;Hk3SN2tPI z4_@KVOizr=Pt@Nvpzt>Y{xbY;z;6tA?lqvgPs@`hSH||$a4^DQAAf%Tx6qxda9CLF zCZ1+j~%kq8e7LZ{=e~7n<|sn2s3>psY>4 zgYe?|s_%dB7q`h)r(#_GTyBiZ*Yg->^}I~xi%;@tFT>fqR2k0Nd(}mSWp(kez4dkR zaK6Q_`et!bT|5G~o+7ST7neb+x_A$MRTm}4>f({WQn|#!DxxYa$ml8Wb|62euz^SbM>^O~s&waeAb2540GybhPsNRH~Cmy_KyEMBX3GwjV9 z3H=1oyL#s8Om;7_=vB{rSQ)$md{cnWFYKSH(GoFRaIG)Ca72x7Jsrq#cb@C|Sdai%4Yd=*d?^gXP zpU38STi?(i$7$N#R=&E=tX|%WFxBoY(GF)bQkaG8BjbNE>5uERzK=oX5v0S;k=cBP z{Q1N_eKOigvNELI>RpWc(I$lPl;QH{=rg|Jnf@4;Z>wXR)$?L_S^vBYXKi&EZbPn( zkHf1q`}E1K2yS-eMDiqV<6HQaY}pm#mt9#CJv+>cAML{NZPl^7A0QqVFZwgP>et>I*g;@^6Vl*}@4)$bcO1B32M)9(vhV+z6LFwojn(Q7Or_~yl_shCH&R|j0* z2-7n`*8PCLHo&c`uQ(kK{2Ji05iwl!*9LmOStlEVi0AsilgBCich>Q_gD%b88SehzGzL(b200+D&=kKDfPXOX#Bjy$ra<3an_e_}#qH)mAHzlesX(th;~p38 z&G6+Vo?8M>jFW9!2QD%OS|uYbjSVLQkL{Z5(kkrQ1A*%a^Fx^#Sz>+dN${a970+e= zhcki$mvp!FcI6!`_FPbaaKyRbb5UAx!KQk*lRbDe^v4gqXm8te21ff`j&XI9(bb&W zJC`&Qvj>r$oD3J3=!Mg$P4j5_-h8UQyJn`ndkXe&AI{wJs>4r(Eq9w+@-D;v|2aR)=X6-V2>XGmJ370z#ruF9 zAZuq%BkpRabbhoruVgd(bcdOht)(5(ayU}m9*+%@iNTWH)w|i-4)&G z{K@Waq<7RLz#7AxBLJlXs zb>P(2?&L~Zwg%5k;pEr$?~3=7z*~kF|N6i`Hi=hJ=RDr`hs3)f@aA#i)40ZkTbp1f z!Av+Kd3+*1jcpX)ojIKNG`ilo)|9r!9YJZxog7q{fT}@ppW5I;FksZ*~xvisWu;o z!nhFJ<$))U6W>_O*Y5&zaTDJ}%opJ<0ykxRGxH%dUtV3{W{oe06W>C{=Ou=G7vH{& zuMVetzdG=-ke2ROP+1)aJTYAK2Lt`w;?Di8QW+Q46i7ymT{{w_KC zP4(^C0)K{A{I4(YyXDWNh8O=WfqyUdtBvUu`P5MT5$_iQZyqPUuLM4AAjhEQ+zI5oL`t6_v1E&_k+Nf$BFOOBH!TLq|QqExZYOeP4Uu?Uq$>EF@rlf zHsW}tTfd8VW1PbML*UcG%=pyI-W^f?{3Y<^apJop$9GA@M|0%tv+)^DeA=TV`#dr_ zTAQlPjW83Prcry8WY=Sy`f&a5<$E9+KMewp`)()GO13Y#?vgIY^r?@ti9X&C{Cc+W z8_on|U79ehn*p*uPRl92uT;L**~PSPVs2#K`ql0n2$NIwz)apHgdg{r^nEFRWqqa? zXMHC1>jbyH$fJ0V`y!9#+xi>EufE7Ia6Ls_u`hBtwCanD@T)@U(n#bpzr^$ zI_Fm1r3ZM=cYo7!Z=G}M)Tyddr}ir5{cgb1Qk3~W4xFF=%n$CPtN_l(JIgJa^pdwx zpv@1R=bndu{vM6{V&|3)aCNHD&a5Pzl&~WaaR*Z;g)~4 zy+)p>U>O#_Ri9?@?d#KJaI4Ocu8tq|sew12Brd5>bD*U@&Ew7VBp=nMz4#9KLJH-Z z*1uZ-t@iJtv0@$4lGz8muOr&O+YdOOX#Xz8AzaiKg=>24l|B>mI@!lA^%i>j2X~cl z7*jFlUy+FZS~CpLKR^h@ULytv*$Y1fB*Pcv&ec|XOIz4Yq{1_pXdJ9~?zVjh?2aJLQ414zP< zVrF0e?R&5W2C^aUxI4t(*KgZB8ZPfU#3DvN?aUH=j$N`Hqjal-{_3~|8rTUY-gYf8 zQWgu}=IXqsl=M%5+-q%`nEf`(5tl2yxSW*|7wj2JMrH`HK|cNeAwTa7Xb+mpzeeO| zd8GVTdGc>gli!@&m=XoRnJ0R-0@Dq>tU9j8ppuU0{X)zua|WhBUAp7k%NVR(@{D`( z5RL59J=t(iBlN`S2uykIyuxrOT^fe+={-*!6c0Cc;yA}JpLzdkn8U~qhMPsWS9{^& z{7r<58=i2_Y7feHPcgTvR2apEK%22?7>3I|MvUw2*#CePN0Iy6m?o{>nVNLB1!hxK zjsmhiMZK53){_I}+}IX-ps5G~5t2ZJZfx1IqmBn(TbIaphBnTAACbNLkd7Ub4l>S} zvoyqhTxY`WtfFZ;G={^g_3q7Q88|GzUHD|u@_GZ~>LP1D8fNUcZTYhS&jvURBUcz2 z>K`<@X9~E8A0N6khUT33V6ug7Yt9A{w(;sfEHu9S&PsgEcZ;KGS$6lKDffM>jP!pSJxo265EGBJa&WU{$|dHD1aF&+jI(b(6wUuf;?+8{XeYs{xn zhiw{}x~OXb!!1|_hrEu~HMm)#TB*!7#b<+_>G2eQEy2(MEIykVI?a|#hJ|wxEez{E zHT-1?JHx@2D{Qlatx(t&2W!K*vb!q{tlF!n1R>wU0?r!kEc0Fn4QpjEIz3*g=ci|s z+|{Y8g3j3xEc!s1S7XQjoRWL+!vpO6!18Bv${u%fdblH;{lR@$7-PaRKb7G~hrD zwX|pWGCxGpw+k21SGcu0CC(2GLTqOPiyAQ3GmJDaaeE`CvH~~M}8f|<*E%Fgb}&_Zll0)=?m1T9Fgy2;sz_@=72`Y zWAZwc@Ex2ZHkeT6O@wz<7b*tq;<=gd&g$$`IZA&P;khBxuw+`T#o20G2`kjbXX`ks zTH1vS^Af^$l(88U0(ogT9>R@4VS98cgi|1USIHXa-%XzWRRepUEHcq(OE403Z-dR| z87#hDY)R3JEh&1jB}Ff`r0B(#CVH{O*9tG~sTW3u6usE8gkEe}LNB&7(F?+x>BW{N zda#g-Jk*wREVwlvWT3s35Wg^H~Mn6|8r|3JlBH68AOll%VT^)!c8t) z@sT!dbR6XcI1dc7T;r#qO?L{y$soVp5DBN$lke&QdPF{~|MYs4X9DB6@A>ln@X#NO zEhd33f8KqA>CvYi= zf${#9%FFx9)evyy%%!$`9$~o z@MAumWORsWnK=sO-L!=^;Jp!WrhOZ}9eqpi0f`gym2l1158>O-*AK(3d8huFuOAWr zNnA2tKMGpr>&NhBzLJmT>&NjO@`V)2m*YS2e0@J?nXlZVNu~rKdRO-C8oA0N&4cJN|QG_LG3~kuxd0FvHAQGS9A+esugEHs;G} zjLZ9NGmh)y-uiJl;v#Gd;a=6meYk65_u=yH>h&pSZ+Ga~+puePKVXpkw8V+=+8Ffp z4tM2?Lj!UeXT)jsPR})s$KlU7FKTr#Rw?o}IixfBXOZ=v_4scB|6D(o`gQeRP`CiM zbVQt%zt(MW{!9;?TSfNad82os6M}Qc?GfV$Q|q?Rdtt84B9N{^ez0>#S7Ar74@dgM z05;s+P4dQu%WG(BxYEYfsggI?l{SR=K|5T<`sxAQZ0kFD2qW#<%=FGF+%3yAS%x(E zf+yelj1i~MmoMatJn1Upw6gKeIr3UyCIw@={WePc{$bLr4i>t3hA#cAeV9ojGuF-U zp&HpQdEs{iy}8I?0}-bUzpqK!Y%pPs@8h6~_Io95Y%5yoYQok8)6$Bzcj;1&uXu8- zg>DS&$aVJQIN`)(a4tv@-VJdw0}bNi*ZB(8Bm_JwC=0${^Y~&-x(vU` zGrdh_X7cj=z2VhhIyD-B(LZh1HxQO@gX#Vzezd{yHDNw3z9!7a#n+tsIGs;b8}8$D zjXP|(*@OMz6P>O1>HbgBhqj(@we>&1w{Poz2)EjE^-o*>Bk`ZaA@O5%_>VzLTmKWh zHNDi<{|vB@FQibuKZd^f_snp8!M8xGbFwuI{En8{6}0Olz71Rlw1V@paol%++Xx)z za`$?Ez6&^~L+Qtde-H3e1wJ>6OQt8LO&^sqd>^Xe@Y z=hrFJy_J{;{srKCPQ#jFnct7-87dU+8HvECdo0Vzws>@ZCM%;UZ*R8h?5_}}ud{Uj z8ow2gL-SAd%i*#?d|!scxjoo=t}XXpn?2aDKYBh9-$}m9gS#XRlDKT}Pv|h8Bo6nd znE7mXw#EZM$1sz$+2HP`VPpa=i`rK5Kf4Q~2p`%BY` z<>&9>KZ$ecuWjIefR^RwpLnzUkdKz1d+;6dg%ry7Ln-?=e*;>UA9iKuw@)|b=DX^3 z9Q(>S9_lvn9f}_+PuP`iwtNxCGK5QfF}5`&M-$<$;yv^ASt*0R1r4(UZ86==ZPv{E z4sezyz*&dZ^j?+U1J1GpxG>@%3C?22s1@b;1Mr)H=br1`b7Q!`(T;TycL=z%fYW`{ zyuKYBLF4a_z-^^JGX_@J&yg?{NY7#Y6KJ-9hHJGLY869oL*>1d?Kpdb^_Yf{7a9z` zhW9+uFRJ;7U(^)ku_>F5e*wM+c<$Yn6PHGcNF%m8{{>vMMB4fPe*^B@29|B^z5Wm2 zd_K9s*oH`1PAl8G&I9Cl+*}Li>Yzf|%zlF~|FF(uxc|IDU#YjV4~HId5rCbrLnWDx zfb~Gy=p3dEW5Ud*Xx&d(YcN*z+b6%en0@D2?9;dBU9e5kfik+_Iw^|c*1Utd|5aZS?$0O#YaX}ZsOvAYBDTf{my z@JiNerIFsDQV!P&4;L`M%|daYYOBI(t_Oi{6OZF4>s79vqkA2GX>Cp)r}Z55t_`yKxOkh>$NBnBxaxZczI}Z^ z9&XiX^-q1@063o{E~)P)fR_5c5pU)T`KZ31i0_auq)@(JNNF#w2d(P+7!TW)dg{S| zcR&`ihR=gP1n`Z3vz<6WyCLLCx6y!q@Tmoj?$CAwh zX?hyyA~7?0){;2`a6dh5{c>Vk^weK3|U%b^aer#7?(uyM1E$q;JC z;{eVUB|ePPM(Qa~x5mu9ne>S`t&U8j#z*GnJ9`GYJI~x)8XW24q1mPFBYkF|rNlGf zcR_#cZ2i(?P8ZLU_@}o4ARP9U+D1UW*foF#Kw+@2Yj9+!djJc}mPETSdL@j5GNxtM ztWM0#V^oo8M>o#Gug-~k1JbD@m~2Q(*Nmxs8F#d7#GD$|?ioLHtYii8DBN21)j#dRPQdvjaY?&y0cdF#cHvFC zKt5_0F2Z-n7g8wSwD#{1Xth0nC3@kWtYN@AAPehvg|lwC5O7mpM^etVe=i2kw-ws{ zeLUcNy!LO@caywms_#QM*Syp@f_0N9U-tf7y_Vf7MsvL8aS1ZfrZDY3Q?%b_2CXSJ zYUeO^;OFwW;jO2g6O2A?BR{uo+_Y&M5LV~NV>kJU&Tw3V?lJtBub;zN;(Rn;LmXiK zxKhL)^3C`628{Ql`C}bKxa!)JCx`l(rW~=b*cPL|G#u|*O2aLcJ_D87@YYQ>f%uIS z>f9zt#CXpjtdJ-4R^xs45^3Jmz-3$^SL=%NtvBI&&Juiac}E2+&qB`Xj`O~(3Gbz3 zW1J&xRze<(mzjBD6>oGasPwjm!2_FTRRX*^Wq&+r}5CPn^IQxjAO~B9uviNS8Z6t9glSJ{rw%Ze3CL|f~=$=adEjKIunz{ z$HiswamV3)Hz!Lr_!2C?$^z9fIL&Kq?`vMrFY|!1#reF{ON*$EM$17oj3|!0DVq&H zic^19cOrceqstE}N7GZ|@Jg4L?LXb=?7*u5xAmYc3$KAYEk9l>{(YSCe*Z?MoYU3! z!man=Xk#>4x7)%4@cAJi_)%AULO%&&yVr4^qHVJuh!sKBD3=PnDDxz39ol> zkSkTLOmK(S-qUnbnbpo{IG>boKGh@~O-rT!j7P6!i1i}ZJMfoGr$LB?kFW{Y|_sdA;sAaJ*x53R{(%-V+%V9Wneb&{mRa?;>rL0N% zmf)*GujQ8X>9pD4>nXf1M?R+0w*=o5`eeA-;7-Y74VQV)tSo;g4A1Q#SD9;AuA=@s>Gfk#n2)_-`=@p=5eCU^LSmTdz;t%mk`d<i1BD%$K{ODV?B6CZ*?mRH^XbiJDJXoUfUKvf9i13PiwG3 z!Z;o2%CQ9Xqi;W5k3YfTHIAfn`n)PQO!%Dweun`^efD`MU!PY}uET;=!Y7H#1}+_K zx*QH#rpt1??~i_@r^(9TNC}&Luv^E_X1dDh`~!ev+}UsAJ3Sqi1xE>w`ye9Ky@$e0-8vrc^f71* zSYx&APHwgs=p5|q#r%8%v@M*IKLLE$FH;*DkH<#flj*lCco^V()Q0+TQ9a~a^Ciin zEjUSdsQpnM@qU$U)8iaaq1XDurw{WhHNTe!j}X7AW9nD^Q9jD+Y;SAu$XFby!>#Ap zHiO2?f2YOq(ZYi`>Zao#?Qbhi>)~fX_xbodZ8~IvQL|4!4VMk_548SNU(P`I)R)b8 zr}5e@<0hI1s*CBis3rIxiI3)i#-C-5zsw1?4ESN$I4uwUSNv*N41>RIu{_iKeoPa3 zJ@1-fyYy@c9vjkIJG>Qc#{C?;<6&ZjK}veG1lvL$whgQ@UV*U~KTaxRS4eNe?36Hb zc&n~yc~BcoK5<?7vkT?fgEGS%YtJrr+LbD zS_gE3>EY9Bxx;=A^AM+VGX$*g=6qDQnO>~F_3gJs7;l%}%Y!{0-zd)Y8#Il`kL8#$ zL}{}@P55XU&%jNZI^HUm>aD)jP9*s)4=xM&S-YfRr-$DX%!TyUE;S^4EJdNtwO6~G zE!a!gVu1S!qHS)KN99u+aT^wT?}Hz@{k*YxxhmKX9G^46Z#CZPzuDX8r|}`J%a_%` z<-$|-LuI)cccW1Tx}Du?39b-&#`R^O(Rs^*fHSUfK2HYR=VRm25-fUrKEK29xl;IO zS$nGZkIJ11t`h$m9`Tg*PVh>mT}$wEp;sLveL8R4Uo5oTqnfm9-8*^)bEOh)__iP0 zLYsCi{4os}{xk9I(mC2DiQ?QmnZ}v;WE?WV^&(di*AhJb5r_~TZMUnA@x4ucjB}Fui4;5D&0asG?()-<53PH$U+TZEqJ!?uLOxwPMVwB5(Y{y+BZ zm!|SL?lTU?QQzvq3%Vbn{O5^99hLdqLZgAL7+B$8*T)635x7~S zVE8s7a9Lp>e&!=ME)uX|?~TCi6u*XlIdJx_%Y1I9@Ofeg<8BSCtHOFdNX&gz!4<$^ z_aAm}xHu5T{Txd3B)GBf1;@A&WcK(52LVGo?ddl;oEI+eMf$B^bId|*d=9%7?D^L% z!IhRi0l&)f1}BIsY4|ju<+6_c#-!P2evR-|7-hd6utIHNrhoUP2x!iv=M9FAyGmW! z-x$JNx<5CBxpaMA2#cmE=ZWl2Rm_A*JYNvPaM9Y>9tLL8^Mz5k4N&6sqA1P;%y_&w z3RfjC{9Xba(z&lv#?~R6n!}aY^m9|_N6BrzybSQc3RYrWUQvYM!!j{4JB|Yh4G*&> zpL}k%{JZv8)`s@w3NzcAEMI|PQ_KOJZB;cG`WHAB+?{UZ5;u;^sLYQ|bye*aDa%8` z8pg57HZ)0>S0FsK)p>?nsZ4s@ zVr5CiNql?Dv$_|oB@q1`ov!TT_9?2c;UjW|v|J}AdYz!LD`y1GJbDY^JpRhZM9Z2rWt0?fPp$}@yqsJPMYzahfs{!2h)fZ9L?(wp zxGllkA!~kMzTPvyI9YcO+=*`)P{ z=oi^(FJHBJ{9(XoJ{8J5`6yu44w0n|oA8eVUf4fYT^O$z1g$P*|Ad3vqAzh!KRn{6 zF$e02uhwC;@p9K$|uBPrU!rf{1Otl1G!Z!;s z&sNto{R;85$!di}NI%Lbe!wDPgFulFZi$LdDM826uh zumW`FNbKB23gU2_59!Iw>%HSZ`13aaHBR2-S@!l46}_x zfVLmX$pEjv(DYme80>!tqgj^d$g6vRbopof?N1_7Cu=ISu1cf)7QqzQZ_dBEG?$6FeKs z%5a+F*=d%EOIn={IMSOkgmC7=7DvzRrXg>sS4mHJkG8MQbo4m!uQ5F~XT$vz^~&CEwM))NXp<8&J*X{(^UfI9%~PGO^CQrC9!e1-Wz zMiW}e(+?pR!^t~-on1K-6jI6N`F4wA+tVE5Mp?Tp?7T{&hI~XV)&RN0@m!08>e5;> zdBS8jvh-QJ+0P|J#xLa<0tiaT>3?vKj=8bi z%1s!Kypuc3F%Ch0mHAHGNyN(&O`XBGkj?jFb!Wa~yE& zr&lmKOWFop6;yy@Uqg|pVVa8+oxEKY>=%r|%th%inio~zr~~*-nrcIIb{25Pdk7~S zYkflfSP=R%EYQT|0AP?0o0z8O=Z5RH4=S=hkvQA=uy`%sfFrJenPxo9tjqVOg#41Y zrvZoh6$j{=l~g?;IlS-i1@ zMI5Y%1N}og`f`h-0WFw1*wnN|lh3b=JM2Kh6a?ob!iqS~IVt z^9HveOqE0Zyp3|i!rCNZrQy_{ksosCdVe#P9FZd%e69#acqqpJ#y(Y!+bPGQftz{5 zcf+0Zp9$UrIG;3}?uXDh2F|~53^z%e4c_0Bk3GAAVdxy!2SCew_+S&6{CyD|zfDi~ ztcmX_i!P2I6@JmQ%>*A4*>p_(d~c4Pyloz2f{zQG%6SLel=Bn9m*d4w7B^mevz%ki zd^6+4wk9%V>P_&QGj6k2%D~zVQY2yk|M*p9N&9TLb)OLG?7qPCJju2%z`t*Ieh7c$M;TnY{7mjwV=M--+O@pYMe*(||Ftq@DPF60U(6`}70g)9lDk z0k?L7#ZeOm^m6CEx|uSd90mr`Qh@4`Mq&8YG?ipf8<9y^XLD4Sj16I^cXOa^a;!SznQEo%WhEsR#c`4Gpsbr*g%m_5s&0=2QkYnm#p&D(6S z!sEmG!SQkX5gCT!tUtH!lDhaXq>Jj}D#l~ct(9WhuLewI*oXLQn>Ctm%Y(y37G2*! zze?ZMj&yg918nzi+R5?Fts*Mg;9_=~{Jz@+$4+5QHct#8DO$o!8OJggi9 z|F015)+h)EQ#U$1POKU$H^w=DBLqyVd*DB%kB6>2Y&YrDpG|A+MFbpBU~4;B4BMp{bejtR2&6_u)8p$se~q%7zsg%UWZ@ z@L?J1O0zoi7|_T2^sM*Rqs}}QIDNFvv=I)s|BBPw0gOCbYVWX}(#5#-%etk*zgYaX0>F<|ieHr5L9jPx-#vIO-F`h%tbI!Pah-X^yOd_6Bf;&7) zQ#&zBBl>n6!V9GnyM!> z&uT{wCyq^HzFt(J2kT2hc1WSbd+1fPuR4+~ftx0gvlat{dsaakq-x<19N18J;?dQxXpjA8k zSgT{1M*tSrC+bBT&PqEKIDMk})I20DVofPTFP3WO7HU&Etzimn#O>+TqaYvkO51p> zm)Y0jT4wDZQWr?~X#7@XTZ2s!CvAh!59w969Bno@U1*ayUyp2i=`_$XtTW`j8SjKY z;N$uih6jtFveDm$^E|oZ{-ATtpR+Z4W44CtRklEmTqFUljXx9cgE0i_i~k`#?r+3J zv8J9oi*Ag^+OyePGXD#ATwj=%ZLmLQ1E-JL?r6}X(Gc&0E?}|%m(Yf`Uz}0fzkLZi zh8rxgn$X<&9**AlFu(V;R2{-|wB(p5dyZCkO4QPIPcLpEZX7Ubte+BVTlYK;X+|CP z^>OMPr#r-N!*5kK8+1zgs$PY-6#Z~Gryn=R^n-N~_21M*`CNZv8uNqYsyPGiUue*_ z!EQCi%qk)SV;gcUV7q5#jhpSp^{mIbW@d4duxTT9LB^cMRO+!DU+62P zjQynAX|KZeUj~3<`@Jq@WeD!#oN*dkI}A4`ND0yPT?*^r4c@ZmYt-@y?_Z(a-U%4` z6=|?MZoM#rV}dkcMR=Gc<4R@izQ~#@o4e>t5iTrBpXSvg%#U&3fR+d1#vu#sMMY#v;2>zc42S+uVts$)?QqT?%QxX# zzAr^sTE5lK9?B65i@HpIX*l&~*PKGE>WzcwOdz|tqPb*(^zLaAmj;E_LKPltrOcOIkq7&EB z9-n~BIf0oLg1{#MKNvySGBE|XKUOjgw?9@=gu!K3qS^?93VEQ&2U)XPO(J^_pQIEp-!U5p)(Kf1Z z4;y&u_S=TE1v6p`w2agJMDSzze>T4PByfPm%YWz(<<9rV^8y{t`D6JfT+9C=!qoDw zex5=(VqvlT(_a!79p8R8+I1{9x_3=^nz&&P?p2azj9V1v&ScT~si%RK<@4#3QEcX6 zVl$(DGr`p!UxuF^_iTF`{QGtMGvSZ2MB|qUu1n!(f8P(| zh9+S=N5as!z1-XP@6tLGJXh#6yc^+Wc+V5QX6#q>2RW;D>TIz$OeBjB_%aZ`bQhW#1p z<4X|-E#uT1x^Kddw&sqrZS2mGF(%G)V29!iZsaSo;mCg7OF)Y|!e^$<`U$&!?`436 zp&{*gwtWlwTQ>u)&t}`6a%4^9TY&ER^3nYY@S%METp?u-arlngLWhg`JN|@pf3$`4 zqqgw12vg-yKetehSXi_b^p}QHe@1?ChCSp%8xzNAIZfjH`NOzBH%FNC=jPs$xa1t5 zORs2JM&p;9>vM5;;i+x94e7;vdK=!9A}%XrW^y!YEMd{~CM(yX5QfWbxUIh`x}AaMF< zJtvc6I#wx8za_i$cxC4-H;yh~G5TmO{Fa)jYl(5Tp-KZA5JMmE9fJrD)@>hw+-kEq zKSTFN@mmEe)P9DI5z8rUlEX#q9mkxS;b^~_;b^~zlMPaUilQh{r2Fe z;ZDeey6!W=D~WUR8as=*sn3FzcVB!CZ%qe=LBDqb=46iXMc>rNX&uy%F{uw58Qk6W zTRA3M*o%!-LsJX$nD4~CPPPe{F55VM+leXNy}U)p`eB;n0UzHtjLBoHv-jZL20l<; zzzhIw&BqW{v4*V~QugnFd$^+aEUpMX4!1Wy6%gNBhlhG26o!000l3*`BS_0{Rq#ni zZ??3s&G>o1;_77SS7gZlU;=5{!I>`rr?yn*yGUOuVg9UKE$y9{=d68n(YcA&(U~uT zj!%4ynq`1@Ietm-$Dp0kW7|v#DVmjmdmodMnFbw`x{q@W*iIYvVfpQs`lZ5@wXM3W zOxL!C=W8$JmwQCRhOu#YEn=kQQuBP;&(?Fj)$MUu(m#`j7l@miC^;|SoMLV49LqP6 zS88u)Q|SH{eyg&sjPiak&eLZuWv<(P)VDzs;R-n8lSP~PJHY9)N%G$p00z)^hVm>m z$An!=D6?j+NIye=v=`q)n0`Fy{y+TK=8msZ2yqZH(&mOOaX8n$xv%RKzK`&7DxIX$ z4*)ypfM$H=hk(V)4&%;s3O@o)ADveYS&oK`!niLrzhh>nOp?i$_+onf1mXDUMfXqf zOG~d1my%u%=hCZ@GM5%#*J0+@FrUMDG#p4`+6zBJ_!t(%u2u*wHuUF!ajeh+t?l{+ zVDa>0IxI)}{Sr8Rx&u2uroKm&kE8?Z7Pfb2zX4yr z&igIgTCauvp=-aB@RK;FYg*^s1zOg5zsH+-LOxpO9Re)m3n`TEDAM*Y)XTrbdQ0Bj z`)dhrpiwc~p|SO_(pxc;3T7|(AAm<`GXU9nYIN{!z=M}l0SJ(8iP2y;Ar?TXY&KW4}@t`B` zD1A%tZ=t6ylaK0h@I)so+cyRWSbSW7<8Ur~C##7^1n0{Bhh*G^e$5!&j%t0k%$qlc zWIkO}P;BHsAX}KK0{bUm2OZGZhkF2HUrueqf5go*7uasfA`a*ih5ervxc&7(D9EzQy0~7GqY`qvK|E6(m;e45`!}Jwn_evw$MmwKy6X@S}ZSg*Trh&gHS%sMVllyWnuVNzXn>$P3@9zX@I* zPGwfx_5kp5JYw=dZ+x7#=a*VDb_Dq4?ll3ejvNVEUnkn(_S)nby3uC7*BpbsWsU-^ zZ$k+?8nC!dQ8&0|Yz=Vws7~E`NN6eFn>3zow4DXLSfp-b+y8u;`({5#?Gy8m?zNC7 ztzYSIE`OnGW{!6`_%p9rZ#ue6uukHZ#6@_t(~s)wL*PecB46SjYGiWrj~ebi^d*wK zGr{pq!*%UGd#~r!XwmwQt=qz0`PpaVn(dxap?6?-S1I4KV;EmO=BChe__o9lz#(5g zhO`1T=mO;C!~9@;{qlJt-1Nip6{aQ1=Sg0iqBxh9T0Tz(E!z+e$D3i0kCwAX02cB^ zsz>;uocTB{XUAgQJKOqQ52nz$kIsn=&Q zc4o%d9|-tagkzv-9w${`Lo~Ku_tod8agu?w?H&XgzrTDO+^)ae60C>Yobh0q8{}@w z@Ph###M-gF+R`y7+b`(=4t0PuQJkL*fHSN#aaea~*v;@KSXt80rtTr$%9KWO_n~&w z4jVy}u1t*As^DS7N4)2&lcuL{=YmcF-f12EtjJLAgC3AJ=v2Vsc8PTNrEmX8(D8}e zFxHF51ZQR+C3yDjw+68?lrk*Z_k!^Y#o0+Ja@l%IxXjt{*jN`l&ye;d?AJMJvY`b*&^Zf*NWpvd9$|rF@WXh>@L^v-<(%KeSIw8zP>W; z*cUlRc=&x0-}|V~OzOa;`U3viRvlOIVP3D|&{E^MUjIRcS7H#aKJG*uq^)M^&kg6f z{2{IjKeowo5?9Ti5Ct<(V&Vew>X8QU(l|<^53S?Rhx+yy~Yy9%u=l%3MVb{#&kuLtiXp`Vl ze-wa=tkX6~TMujp4)uVSF-90;t9K-D_NWxIoKMbI=}yqd1hRx(OyK=vV(d7@xuA*L zQR>xd^e@f>PM=qZ{qcmo7rnA=v0r*^v1Ryf$B$zey~11DPT!C<)3hl*UBA##=c2f% z&MD5y>&8fu{+7n+nH02PltXRU2;}f>*eKju4nlcRMs|AgvL10bC$F}PE&wfU*se5Q z@T+Bt_KkehzFiFZkS`>Rgb5w?aoT2j3CaS;WUj@S40Zim;79#0qfMk^E`)y)`Or?d zZ^Wd`L{EiNW0Oyl7CPn-(@JPzQuNy7|Ob3=stIftW za}nTNAMcugwro8faKFxAJ@N#=;^mEX$KXB+!GRoZG|!C;7SY2vzkjGSdU}Z$VWh&h$-VWvA@|Bf)WxYhyN7#w zddj;iRWqYCcRCKBk3p2rIQd+~`aILlZ!LQh`1Z@*B-~o|NLRs+_0tsIe3Cd>C=~*wx!%)0sX(ya5vuhQohhNvZKU>NyxHhD5N&@mT{hi9LzUd%Bz9T7si5YKChK zj%kW>{qwZ&UN+T?r_+_BKb+^W*7~E4GL2M64DEHW)^z4v6e>7R9grX_WB5pX_9 zoC{ZV^eLdFj$Vnk<`Ki7->U!%`9cciyIlIlH=6j-4y_C3Kuf1xqp^LVhQqkfz%jT5 z;CSUz6xW5b3}=e=3|Q-bHl!IXH>7<;-h1Jnb+7d=IQ4GqqxHW(q$$qKR)-JRGaT0i z`{4fy;LxSa;gD=OLvmfPAMiyBr@#^10pOsj^fQ2?H)lemgh#(uTRa2`u_nI6U1xDB zNJzl=Tn_vV7T;Z|&f23$BWLBU3!Vs?=UE!cwj|w)LOGIT4DSl?x(PHm!xx9F^E`E% zFHZve71nPbPK!44Bu@pbXcw_C0ondKU2V3A?$3+*al^M)*!jz`~oqf3)Vf!|P?rZSl9rCw%b6A9HIeI3({c?02+*(%DKg-dx z0Oym$CCkzEpk+CFHr^~pMvXE0{#nOD~Ww;s5KM$PoyY5#8kEF}@x zKFZt(oS!F5SN0j7D`ET;?J?xZ{YqD^QN0W@unM{%6CC;mzZrl>J+e|E=91wOF z#>ZN*;vcKFW~=1`Mvn-8KEhv}1>Br9X?hf$Q>&iA{!$+0P&n)I0d-Pc>>GrNMnwTy$G_T5Sus>ht?rD+A&8|kI-_g6l_fIUYNIMI`Y0T ztdPpS*o#wZ;DTbMt+FCmQ%B#@37uW!y^3jf`kY@J?(7Oi%*)1|_0mn?ujT1w_@@8# zGL4HM`}+HGJ;g%bus#2NsMA~znSiQ1FBg8Nh~BX+fEr+L3Fp3R-VwGei)feqnWk})~kcU^D`_~JUIps&1ldXhDx)b9+B z^T>mhiAH6P=NzvKUI*A_2a|fy%7(5k)~aD-Ui{w*+O2?1R_05XTd7XV(ca`k+&00X zaRD=BWh6W=a5e`p$$-H@8zmwY(sFIGN?F5^SmON18T8yM-vh0dJjE%6}jl+gNc(zA`o z^m2PpEpN69DTfbdeCCB7^O)w`bW{0AyohIeko*)sGT38eV|ra7xUPjc**=sF4@Uj^F2MQh!8jf2SI^go=dkvssa-7e4h|NEiWe4S z^PVw_aiFtV??#xkvn)q<=A!nC?)L)EzSN6PFrtOF#>e?(pKvYvAAn!K?0*n$E&J-9 zW&cBf^GV{8W&gvVW!e7--YT<}{f_|_@`V)2_n@?i&TeNYR`=fr+SPDz9MiT6ZFzY= z;3ONwndNghKh(^sX+eV?uclAjuvx;(oiw4ef2oV>D8wZ4)uzAeS%;y z%kbP|+K&0Wro3&Ahi=Niy!|YBT;=L1x<7{>^|1$W=A(6=kJI{%brIpJk6*yIua94Z zTXjzTQy;$sxbjAt1rC?g$1j7H`uG*RRc6)4uK^bNg%ry7Qqf1hF8VxZSr^eJ)#^JN zWiubUF1Qo$4!~)16iyxdD&VnHM4i-<`8wdf?lJwTd*1+@&vhur(smEiTe?G`Tho6h z&KzJK9xJ-H!EorR;y@wOT<6#hqMrS>@Fp7V!r{&VC`ntv zIEG1C$?uucuCe^ObNxO2gF^$IP(9uP={w;IWq|3vAM2l}E4qH`1XRqFcLU0c>IiAR z2U%BO)y@Bj%t>5w{Kfgp1gEmX$CKvo#>r;5mY_auanwojQ=R+?0^)VRkG_U#s~Wpd2<7=NEvC0a(ebVgiSqTKJr`h@%Q-l z^YIUGYd(_hF8r8}hw$c;#3l3bZqPCx|A;s9k$f~C|BUaDFQibu?DNIPdjAC4rcpEX zVN2#Opz+h1X~!|&zXHz3j`=p{a&KvuUJtMz*E_JIyMMTdH9@uq=iEqjQ?~yO8CEXh z{&UEbtV_TH&6|PZ1%;mN{e!)o!`kBUKra9Od2hUi2Rn1;_4bbp6$+#1T^eRFn96mJ z@M6C`8?-Hd2O7OuuV4KCw%?u}&r+_xudk3B#`>wD;lYvIFnYX6n99b+DASC3^B>rJ zzaFJK3q0%5@5Jnxk2`*jIqz(pk9)`xxJ~A)nsk3UPpS6P@pSs1#ASl_?Xx7S-h z%ett4AMa-36-Krl-wHVEBiz4bc9yX|S_T;FBh)VnHvRSGfU`cro{!q3_+J6odP{4; z(${MPyaVu&+H82gA9<4pleRcFAaD#8il4)PV{t;C!gZAew+gsZf#cnPxL310hF14* zT^qnQE~`PaNoa=a=IErbuYLq@n?syqPnjM7+*!c+eQLtC0ya23Ic4wZSr;4y*fzjq z9CK(4247`A8n`@g#W`~6pYY+`9=yL%xNM+QAP6+^^4A z|2zowSqI>J+W*J2gQGr2qMT?;j|kd~{?k@odb-u&4d6lBdZx6CKW5sivm-T(A+bNU z3<}vAOiy#{i0gXQo<#^EZ)Cu6?V2AmAIZv!34u7!DAHzqV&z++7?3$>UDIL_3H>^W1?gWQbX z_4RgR8on?nW9aH)9F}Oe4fpr=baf75nFW%guUDN;{!PK}HyJ4DeHR9C#Aa0GU z@ajZv-R5mk?2tA^I{s&qKXf=fk4*2_vL2d0fOV2~l)-~AeoW`BA}7B;u-)btzt0i4 z)~y>)f$hidv4B4gKk9xP(vWgI20yMz--b6I?T3ujvG8mdg1(Pd-%bAYqXri~XwSl!w43f2V$(5wNCuKTv$t<66VxFr3pxZJxA?vBpa?HuaN^ti-tX;kn zu+{gyyu@esmsI+*#YViuoE2G}?Z=5I)iN&2#a+ylhwIE+gDE2r-5VfXTX0^5=WtL5 zT7tIhE+aGLzF%_2%e75}SaCMM`>6x>7N^&YGfvgn3EXgr)g2WM;F;|_$Xk{*jK^dz z^5WEX-_t%Gr~gV>J8p?QVjg55@8dmrF^(Rw!EvEHg@~j6Yc@;!H#}be?M~hrVf1MM zF6_R;3T)?Y3&t?J%!^s?HgyGcs^rDze&~KYK9Pc*FfdW<{n4^Rw@aQdKDq{}J~21n zSQsspr%=xT4c8$(8*MD$5nBkw@V z7lv}CMXnCpUQX{fmWsWdI|@C;q2c^s=T6(1LG7Oc)wc2&!eoDDi8gm9_Au(ehHZ0u z5am-LAGF=ItxNX=e(Y!KTGcdMe0_@VFFq&e<8)3ijb}$}9gXiVzQ)GkT)UZlXu`Ek zUcfMyY^gS*G zoa0&K>%+;H<5))S`dm2fL^%e8e#(QBe%Pbe`FNFwV^|D>etaDLT`c})%kxt{j$vIQ z{^B_L8&`j9S)iWNu%^_H2Pb`1>A41AtX}o~%&MOlj{azOjDFZvO<_3u#m}4vCq4db zx|Ol0$&+hQ=%+mR9uTA08~S=}cXh#>Ex#_P0)Dm7`*6}<7t&8)l@iYswe&ZH^bXE^ zf1c3elr033~-#MoRGDc;g&kW@N#$X_kLWW&t?A z&q*73BKn+r0p}xYnK^{z`%bly>2p9PWHU@92KEdY)ri2<#_mVBzKx~(0DiQw@%4c| zE^dE)oZ4U7Ji^uHJqh2w%{vIU+BNl0oA+eE`6O{ko3{vB+PtUWO`AtPYV)3o?~pH~ zP`-abo$k+nQdceq?RtdC@@QHqI0Q+TyAl6H;5&dfI^P&G`gH|hw0rb3Cos~{=8>*i z$1DVQBZzL1o_3G)aUA{8_R-%2JL6rjqh>7_*3kn;`$vC1j=FXwa49*C^4OBO3OHZa zs4uIaYfl55&$G;$pcLO$+Y7ei(}W%2b@oI{{8-?*E^9(l3r#m@piZwcjgswFGLu$2``ecbnFtS z;AZ^u*U&h6ob@d9NnS1;lQ_4&hWST+ntwNgpPzp(hg zLCgGm72eE0(rW&_2C&dCq)@)siw*I|GG7eZ)d&lBQlWuv>xY*D#^Tb)Zjac3n*dt_ z7|t_7Q^wN046wC;4egmWYk66=UkzBXP+OSMg@!v}6YT!z%xi)3b%AA@XWZNZI3KGE zDZa6KFwSus%IgzS%U)?{*AS*2N}WBOgT19(XAcJRbLW-%yUxWTgAyj8Q0VWC1l*-e z-U``PF4{D{WUtjX&3n4v0KC5ro_SBW=KY(1_w)YEaBJSHf9CyL0Oym$CG-BRpk?0Q zhBxz`d^GRh4p_(+QYhb-q~!e@LCd@^)Oc(s#(47w&}^F?!?<<>2g8l+;dHX(KWV8G zDCga9X#a?X;H6JAn7~fPFZw<$EXKd}JMI8i$cIzSM;?Q+1(e7WHAp zJMPKg?2GSod3-y<_1hD4zZ*Z=j*rLsP(CicZ@}TQ!HdUiT&NF(t3JFR-@ZP40B+55 z^-q2HAmDtGxTHRO2(;9P593XJARpC-kK#Mz3n`TEl_~9s_keai!epIY>Z|Nyq0{_- zFK``#bN8353*HAf+Y@H84!S}c@DacwNiB83#{l>9oq5K&i#q`4!}DRVhSSfa)I8%j zD#sk`_{L0mPUffo0zohy7|t6K-xkc_B&>>=N2GhTb@$Q}d2rovdoVk9`LG@1abp={ zV^f6nmQ6cb;cGE3Ia8jDjb%*ReR!4e1g;|(%S}yJ$FXz4gvY%&8-uDD=3?4%{&Xd> z^b?W>K%*^&F^}O>n90%c?ymLIkh$@wwhY-w2Bf z{^S6*I7H?Bp2$0z8eeV6YB$QAzi$p#2^WK=<28)$GmNXKx0!Z+YdQHLzWs9YBe=CJ zknRWgv7G!EZ$3#}vYh+`v@9n-#hdv-K3YzGj_;5!q)@)+#>xrx{%4@Qm)M*B*)Krn zmjR|D+w;E!oKLhppPo)`L2^2t>6o6+#S40S^8LNoyi&F+n_~d0BTR>1LmuD8(fu3z zXybJ3lleoq=Fji&?dQ*3aBCi@f9B8c0q2v%CG+PGpk@9X!dvCi{P`nbAzw(LeDy5k zpP9CYZEOD)v~NO~#$GM##vnV613-D8EhFwW!Ob1O?j9Z$037r6Zs1~x1pC*L`4ixN zK0XA}Ju($b&^Yfqh_Ve>!aBH5af9B^sfb&V>lKJ^>&@w;&gE#Y&d^A5ZPr})^a8oXx zsib^IW95x`_7BjkN0{Ytt+VZUX90Ma`X`bK9OG@tWP$VZjOoh#>n(uu@%FDrecK8s z0%N*1X)|*iPYdQ28HWqqnjgy$rk@{lFUODh5ubPPaa#76*6gSIxW|o{Xfzp9F{y&W z&toFYaR+JwjJ$EU%DIwqF50|W6@J^b$E)E^ljCr}`6O}K;NiLExbq9maGAhwJ2B3x zqetP}*U_UzCied|ZK$JbJei`nq>df~TI%SrcvDBoM|E^9zC*r{Lirv{*+;wrwA4|y zo$9rjI<}ARo2uAz2B^brz;^&oo0Nt>40trj4Su{n#y$R~?R5m;9B-t*>1b{mdv+x7 zrvg7_?tKmS>>I!Bz-%u7JR^Fo+5-J!oIj{bT=f8&)9EB2gz2SUF|JpB)c{&!a< z>PRRJ-Q#gV$RnMGd@hdh@j?sZe@To_oaO=GGcGhZX#!I`xbjBMZ+swdw&cpl^cHK& z9t5~=%V>)p2wQd>;C#-vdxh_lE&A*Ewv4kq{X_I2H^4vJ)2B$A^udN_xzQ*eKyw;f zNzG}WdfG-E3&`$1G=cC@WU>#D@F~OL!A6V|mj;K2i=nSha@kly$FNcEI)H;DN~fXT zx^Hx}N$KOoCWYABG!-EhR5zx_crsTyTy0wiWc6(@-N)lc8~n05W8iFrKS zMX(w6Y6~1{f*~EFqbHD$#dXyeYU3ETax}GUXs%e-YC@mup~6TbaCIt^~kBhoz@KjzWtc=Ji( zl6iCnXqiWw@z$_4kIn=vC*9RgyWYHx*vm|-w)7w-pBd%HQ}26=iu8<|Hr|tX{`R4 z{@VcOlf)&{zZ0}f|1P|l{^XPF$*SX})&Z)3moe#LFll0IPDOW>)$II1Pl&fLD`CNnZljW>~(5G!GsMFfN zCU(57yseeWhmR}y}-ie<-*QI67;W9ydJ(`b;_X~YoykF?!=BeO#bpDoW z7y0`(lshRyOYnF}rz9?EOZ;%umgpW@o@4d>)G)F^xoH?J!BZY#<)s~X>=j7IMXn*p z9F+x_a*xArQnqYR5uUVHluPZ^B))xnH6{Mp_EPz2ucpO6c}Hgb+}NLbEuH3K(9m|7`U>^b+$>6;v<0649PO9wJL<5-_C|eXq*0YHN}y3& zhQsHk%L2ayaJ6GTd^g~1%Jb1?a~&960xY;2>??%Mh-%b@{D&KZkE$@8{uG z-6mZFKkEGg-h7g{q~7lZE%kmM-qd^YQN2Ha?~pH~P`+vB4DSbRT1?sIy&O0{eVI;d z^F9%9KG8O>mn5z)-~nAa-P3Pv$r61?uD_deM}O!tx;WVJJP4V5J5TqM@#C4G$FPFL zLwiKH=F3y??dQvtaBJGDf9A_m0q2v%CG+Jf&@x}1hBxztd^BI4f$xwnq)@&W#`++v zYZpOFd&Kpp<7Otx$y^P*pJz;Cj;&q;I3I6pHNn9ajX2n*ae5gk z4Gi|@Fhyt1o8s9X*ja~VDJf8Jv1`L1$I3;XS(M?i3}%dD1KzApIH$}tYV&w=joPzF zi!{7m{G{*E#aWLFl@j&{VP?;LYj`(^U-IGkl?yOk$iEuG|=Bu%MdixOeRaS@E zz=Q4=fT!Otpnejr`uQT@Pg!Id*m2$$!>u}~{;8iY5!sTsq<+2>wA9a=@MfBj55u6} zn*j^?LJH-pfB|y?z;R#ld=g9)}|~WQ_ss$;$!v zb(4K)>gFo|=kqyi$bh}}eUA7p=Bb{u#=HxHg=!9$8PChvsDxqP3t{HKRL;?=4trp^6u>YR&SPQhYoWw(O`X_8miDunVHV7 zMRI53RuV&QYc^Tzx!>e*MXL{i|v82Dcg6r6|fG#*alD-={AOR{S$gN1!=YIG&W`7 z)T_4uZpXgD)JDIgC373#zFsk(xE}9qfb+>86Sf1we93$dR%=7ndfM9qu&wX6H@8RR(YqcD1W$?z%<~;SR z{j~7j($rr|a9dMcCWxOSb<@C z$(9Gg+XX&_3$9sDu-<<+;A;eKc9RSIJ%FzjxPOK!;p>&Z-P~sQych5ez-?7H~cvh0dYg34M)(pD5K*f6q)n4;Gg=?>g5t z+?g9Lj^f%3d;FKFN)k}D6L%tP@=I?6b8o2}wqfRYxN3)Ikfec~j9(O<)K?tF7O8LO z{xa}9TX7}6`DpobI9G02#t7Fk_BHtR%h=c9)^eo&S;oErxbkM--QkjD?35cfrWe2==PZ-(!&^fye#@86vGlpy5 z`moLe=fQ?BhLJ_`d|$$#7o1~Wp3HUP2=xKGhkH8*j23!s z_%!X2A0jO3AJhG2w2}O_3Ee*ip7m6`zVUJKHN_5>4emf6j}P^TaMh!qgRiegzkply zNc~ffehE0ABrd5(zXC1w=+}5_d{mEq3s}e(QYhc+Q~F##0j=87YNa+gFKw5f0^R{x zXm3ij=z8Lx0Y{rU%>#U3D`&sFvTQa``jjv~Y&;ial+yyuv zSwqY*&U7xevzCfu9;e%tV&~j}+SuSM*7BBXwMw;XVPXO$0;|!};HoQsfK1d69k*No zdwIf1=s&eO8$y~x_|d-HEpbr$;&3?o4}SS1aV^0oxUd-yb%uUaXa0h3UuXUbx9WxR zrq2A$3zxRX;gUM@chFL2{((1jhP0|P|H60Z7g8wSr;E;<$PTL1k$(g&^M43uBxxP~ zC%{;rVrsWCz1NPX{~0jWr8{t@YGrOdH@_b@cZ4vZ>cN)2At1+ zGz?IGrRL#Md3&ZgA7?RZx!7IhrOuHHu&t!GtG_20PJo~hQXd8fk#37N?P_`ZJqo#k zrhCXzRn?6YrJ`MUEesDjNZsJK>c%pB`?|3lZq*Iawcy3$ps=Yhx0xfcJM-s`4B<8uIkPqfLk=A}H?{nrKF9gF zL)ZXT7%did4)hNW7cRh`so7I88%I-fr-5x;`>3Je?y;;#z{7tgB4J?P!Y21_iWP=XLJK7n_tafGt z;HNCIeAuzL6X2#CtYvuSn2u(c#ODQH!$LG4M|rvhS9UijnSKIsJ%X$6!yPO-LnLYT zVBiOUpT=BXW4_C*Rn+?aA;1j-*Ql8Ja~l)b3d-|P;4UyY-q~(Z3cna|9s^YycW~yx zC4f(1`okre<#jx8uZLZ~!pk?_%ns2X^%^-(q$DaYXrfY1qwrRs}0p3qr zw#zu4eJ0?1yt$V9z25s>xP!n?W4g}*U)pP355zQTLpVMzZj&9(rC*xAxSeNo zQ-{b$b*LM#kT0ZAzQ?B6;Qs|Jb%?e$es;;(z;ysedltt%1~}Scf8D`Wz-Wibt2~A! z0dw{&INFWJ0;je(jynf9+G6_i&uDoZ;A)3`IO%DFExnb1VUS+!udFdQww3hTLV8@0 zHGO$_J~jQQ-L2Q6IL487SI=o-7~24&y~Vx}4D8|bOR=+r)6O<3w3mVsTiOX6?X0O! zs?(@zvoOhtOMWQxG~ z<)3q;$D;h73pk&hyG*}~efXGfYh0s1SXabj5ImB7C~WsP)2#VIU$KyPhXL4A0GcB$ zPwI6KWLmk{Z2Z#Q&CKJ;28#p3{ewJSKyPezP^|;{mgH9)p2DurT6wx!-~w|Fu%RQG z1UmT!$nPp!29H0%%K8wrwU#3t--Go_8}K&2Ry*!62zs?0^m{&jD}v?05Z-)}INS|? zi9wmViGI|sjN;q3D?8y<+o8N^S1#~)w}6$yCGE;C(9*74h&R)pv}#u_#&_r!QYhcc zWqiRO+Z+b%YJ?@}7$%{%Jw||U2fn|?@o{@!InOZXIMhYJr6ju1-NyqL*IkZtJ^^q( zGR_%>cVF_c$zDh5|KI{A&v44KPLMi)(}7D6wqNJbUB-`fUc7$taq<3(kBiq&K2GZ= z)-!~wK1|@-*M~{CRUgzp^I35Lip@!OwXe~X*PdR z4(jTn_>bf0?<(;}J?_Mb`L!MnFj+mI->b!M8lLiB=lMSmXYt{>?jbG()$+!4y}{!V zr=hLi0~*s#afa2{`5C}{J5L+E0d~FyIG4kir){4&fVI(_qe!+*ia6GH9*amT z<4myLN^L=AF6U6?H^qUY8Kato9Jb!K<0`*8-__m3U4|d+e?#QeG0e-`gMhzudYt2$ zLVrBs+l+p%(6cUJxLOzN$G2Y>9DrNxy~@YB;BxVw#3k#3CxVuB!4-J3E+8MR3l8Et zFC%n z2wO{7nb%9(v0}p36E+itbr6RAtfb@leXF1fS4w)p3+m$%5A`_%8zkk!ma{=gi}-ya zlo4a!<_u4!%LcgHgYkV_9y)-rFpVGKYXq)mpK;AYE5g6Z3t#RQ;oab7FuAXnpH_zS z{eC=&xP%ex!Ce&Ecfpq_&rb*cm5VGRetwRlGQ*&MZ5#(W+-=rbLH)B=d$Qm>Z60+} zGMBpHxR+f2AWt<+z!*;Y+@{X7$X;sgsD%?FQMk%`E#-v)XSwIMmiz1Q?U(y!!L4PR zbkD?(<^FoS`6O}4a{p}5vfST*H_JWwXt}=;-yvT}p?tffPoV4TXzQN?+9t6zW%aqh z`(>5s#rdS?0nR5npA=0OHz5~=H&6G{NMBEXXTFs0=_%z4T_Zd6^4U~4`Fufi<0LkG z(6bq<%$ieBsME7pqpKEe7#qaO7!xM^BYPYiMuvkT<|rHD?l9*S6!uTgiw`O1_gqRp zgo_U;*LRi)r*+I%xtD@GUSQH@q{dxQgc5eaIO+10-3z*W)Y4vS_8kvS&l(BtKE(S4 z55xU}F9eU_KoY?ya{Q?Dg~a6|3%Df1rke49ZkEYWA8?lb;sW-@qnn zEUxqEcpM+Jr+>oSZOSxjMc&;E8B=BZ|CnYh=f8t6%%60dYDbu-%hmcMY^v|l{Cy>4 z^ZUhgzY4#!ezA|!elcwu;cDAni*Mhy-2%7TFZKWbu=XbKbyZdW_f1lul!_G)E1-t9 zAR=mkf{3UY+g!+GhPEIY(&V-Yq)Euo0a2qOqN1XrqT;NNiWAO?hy%`|qN4IR52)zl z1fuddzTe;8d!4h-a0`$B_k415&RNsmXRWp8NqO7bfa@yaih0}Hp;g}Y4(|G9$+5ic zojfOUiG|61Q!Z~)UHi?@TKiUoBil*4ag?_JZze9TJr%)4zYe(CJFeGJ6MC_?WQoVx zwlPk5=r!PCUCUop&v_T{IPa9rG?)0@z;#7)i971qYz_TZT3@JkiN@GfZtGd~gfkxO zpKYCktoUAJOJ~>WzEr9FEBO2x=xKfJj>p{vTLvs1ci%&0Z#nw~+Qc{IU8);%ez^7n zWM>j>=i$@90=@`*pf*3VI7bshw7Z~P1^*bQk{PetOVB|)pX6~)8S*92}m4B30Ri|A)vWp-?!ww=8M>Cy#mCdW^J8;V6ypP6%IgI^z#D*`zHom&3P5t_QCWe|2V3$7^cn! zI{|C1Z0}Y@R&6%?sqrI`KGtb|AQd*I6!fuO+*W@OZVcc{@M-y#>JD-Kq4$p=OZi8B z9(syvsysyQv&feCGzjjPspO@@{#H$yUDesqmde zTruDIG_=ZhJ`-dOoRY><<9;UVbs?{b+fUcQqxRFL+Jc6(RhlQZQvUIA@VI@9cjF+} z13%2es~r?1+GD`ZMf(J})!?eryJjvRohYxl5m;3fwo#VKxV)*U;j_Tvd`9(iVvuQVXG~J5;lFE0dqw)D%9jIu z5tr(}h|BI9t?662(r|6u?irIpF3sph5Th zXxL-x2jEl}5#N~Wp7!++!H)}Y6@5F{Rg^g&jzYdAnI{DNc2-YsWb^8&y}sTf-1-RT z22ord;`ug2xXq(;lT5mEd6dFDEy9I^k6gV-IA!08r^2)Pg~g>M;L^DI?SO?BZ$|-d zo%>sput|WOKy8)@7``s%!|FF0cO-+xWmCN=E<+hSW4a!leCO5- z-kpK$DS|yEWt^nUPIX}5=a!Ok~CAPXY z;4bphWE1!Y1DsRym>8j<0L^Yo_4ZN2a~4^c0g>=tA8`5xi6uKoaGwe|7Qrk`j*U*a zv5M#$KO69Anq@ZG=-7nYnlSR8F9y1uoCh^IEfb`1yD5Y7CNMv^IfD!8kL2Ex!8^0N zxGR0#8gOG%9BvfF`3C_$H97B7ikqC6rrV$7@s>PNEXMIaE#O@~vbZqg z_H~K;?TmoeS%S`v5w0cRG_IbrlY^IR%^MCYi5FB24gG3wWBXk&m2Pz&leUK6G9I?-Fr>9}jr%gK2pv zJ5FS9zSK6~oXX(R@=JWP0T;@cL>CJI?(??PkM;z(=G;xy$o+9=3+Lj1voyOkvgc9` zcXoukB;e#H3`bATvjOT(@M<&uoH)AvDHi0aTO_R~G&TGJT-=U0mD=vMI(uH1ZiMZD zuKh4V`{S3$)AcLvVZWSAsA0BR6cOKksJs4G~bXzylOElES zf{Q_#LeU$sas4BYu4dakdjA75w0F#z7rF>!_A5F20qI;cYxAT$%PMz-@YU}sxV3ry z1Uzo@+{L@KYm8rQo<9fvBCgox`3tma^Zb>&+B}kDZJz%HmdGU*CU>r+FXWHVuH;kc z3u&8VoQ}Q_=ihe%UzNg>es}rk-QcQKPL-WwdxV5b`F~Tx-@wH_s zz&%_Lcn`id*f~&b?LMpX>_OVe^od39X5W7jrhKj3U){1fR(#Lax;ZnhGMs%k8UL0H zDz|2Dy;q*$+r}FY*B5E+k>49l8{5QvD=BSbr4b%oMLCU?yLQ&YrFNH3NuK%C{>Y1c z>Hyx&Z!BE-)bc1?^{u41RJQf490;v^Y6W-slxWSTRsu_SiG|61b%{?kKr5eWt5HoH z>0e}6&E@G$z~xgLC#NUpCpTG-g^H}X# zR_SUR7#{2z8L150llU}dR_xQU(Oz{C7Y4Q?AQH$MWwS#SHvTGq(X;u>{dtc4<#683 zUqp8pKl#f8xa%t7ivF@1TKUTZxm(!gFGm7Pi5-JTG{gmXv@A-Ha!Yl zY*Xn;W7-b_t}8pH9jPQ8(2jtnr-oGrAD8OpA;^-w^bKwwmngmK{b=wi6V|VDK_+Q9 z#bx_I1vkB~gE!XuF}#~@jbC~{7Pzh=uBi8iLMy!=$KB#=dOsdmB9~a0+_E{wYoJv+ z9jq<*ElSXoM#8nOQt5Inc%@hH9aMf6G%a7_NwV3)z!i7H@#*m4;9{Fu8E^t{U7-vp z?4?70X91?PQD^*Al||dcfl21+n|P#`M-raWg7tszdK7l#gKi`}O3%xQi)bFjPivUg zhxjS&2yQk!iRajcC-ZK0GJe@`L*OssiZ(n2TG{Ya?iN?G;c37Uxx~Wco>P+7o(QdM z=;wlIpGYaf730oMj|Ly>#gN>`sAgmQj+U}z)?{l@_?$K?vsU+tsfKpkHm#iq=>ir4)%EroL zob_+Z=7O8e+jx#`-p;$()%a!e4&b_qxT4KFp_R=ya+l2|$86rkb0U{mnB4!$<(EpA zEzllCm>T<@SlFq(cU+yV6?ijn_3y@T(JSi`z1lJHx+3wA6*`_6r!>9^TtVfo9m5(J zaIyc`n8umFbw%Ul_u7UNM|*!zxmhd=*#pPT+!ziIsqK3RQ+{-* z4Jfzs6FYhzUw|;K_xQ?icB+d8`ySttgC%oj66wV14(*$#cFG~jJS&`_JGUV2issPt z5!aj$7n-f6_fALO;Jnp1uhjbp^2+kc6c>Mg!y#%*Xg;le+QU=&QhA!vH&wQUI2LimeYR7+ z;+SKMvo)~R=2F;kn=7Sltn3Kk%NGPUUzh|Q`@;FWo4t)+zHmVle|>L?i*>R8A@YGK zXm#JoUA`b%^Mx5;2`{lQxyOg~q`!9Q&i9|52W>xL(eW`zkN4OFy&StHbt<{XkAfcp zKd?C6$1WH;o_pH*AcflsPUF%6@5+TS;O7Ewr|)oPCyO_!&}pHA&0QD=f1da*-06?f z4eRj*9|zt)L30gyL#hm_ftvu=M*o#RHFS7xGK%Arj>5SKm((*LHRMtK#A7q!ZxxfUnMH)#D~XO--?doY#}$esM(C zGr5D#JHNNI#eWHWM{WD);?zP`SdgK(kd>IO2Wl5C(n*S4y!MzV%Sm3$u#!B5cUel? zH9GH2V_{tm&IhuI8R<1`=I!cd)9_WRN}9?k@zc zYx)e=XP4s~&WZB*;vu0tT0?&uR;#h6-5tA-M=QQ@KFAYhndTPtSKEiQ>@&{XM|Tv; zNQ4xMNWr2K60Vj=U^XtAdq!O7=%21wTo(VsxJXDLG7h-U*d*tb9&x6N%g)-usGA2T z|65jJqbA1CtiN%2Wv_czT$|9_?kKKqAK81Ux7{Ur6KtO`rEPy~u;I~bU0k1yC(K$|n z3h`V6W?5y3AsH%iEDIgoIqURIwU7Et&*=FxbDL{(^OLxQ)4Sj+Dm|?JD8g4(?0i|( zjmA4UpnFn#jL2T%J2=5t6QtIzu&%iAsgZ6tYt~OePEVSxYIb1XfOdAShw{Fxxm%UO zzE>j~`}^#;T6^^LDi@wc*ejOm^+}Rk+J^@Q`v#JhQ~H|9ct()1?>?h!wcF|!F%*fe zo%~G6BcoF}sb?!EpUrbzPF}*hm6M`-7C)7f&*84Ch%1(pmqM#@^10ll56Q7|@_9Tb za*2h>ZNsx4)&W!7 zdTNGA0%5%P6~L`s9m7R`LZII@!+vR@UL*STL3Rum{f0olZFI_QaH{x;{g9DqZEeFtLw&u<>e#|R^NOd2{_M8|8Im`=*~=^Ud-BfSp03W; zj?Mvp)_3w|e*d;0YoIjWP6nX5I5ujq#$*X5?evUJGpS;ZbYvq|C0LXH4#_7Uwe+F) zYxt>e@y{2aBraPcAiXsQ{n=eG{fhhtRNjRgUA8xd`Z0UR2h{e7`HQ^!SKbqNmHreb zOMln$9H+nc@os6%;;!`f{=i?v71Q4bpjG<&Aa~hJaxDFQnCC<;u`s#T#}&`fekZi* z*JNDMY~j`r%J<(5PSwY-x{JDWt8YPswD(@{hk<|MVr_1(Z%Bkw9em&QhrsX4o>qo@ z1iCoQ$Zxd&=0}0+3Tt2Y;TiYNZ@$~+{l@yK z#HF^9U2avFOR|xlL;gu*7I~OQAHtIFC>-;h&j62o=f=RVcCy7szVq3@Z@!b_()if; z1&$s(VUP4#Rxy_x6Orr+S*>?XRe z^OH@#$z4|wSG4K3pp{K;;cj7@O}_&ykxML0Zdo7Mx1qKAUh+w&U2w4tq$Bl_ z-3nY+wyu|Q*V9q?xJG-=NdL_4+T4hGp-0%{AO}eG`#r*yt@OQGU#jQ2W!6CJmTGVR zu%9twFR82_23e-MWt;Ei+Ay{26y9-K zi`K>R;M$yDkw%_xxD!&`;NmuqmM zpTvI4W#E>P3^S2YJ4oNE`W8FK(RHR7WR*KKu5cUSmx>8(Z{ay3$IXRlVr}j(c(;qb z{!CElBJ(ail>6^U#}?M>kF<67ae_|t0!OI7{VM3i_Qm&cXU*cQ77lvb-R|Nt!AU%9 zC<076qz_~NU%NPGQOL5&Zq_4m)=Tg!!IoE8=QU3~FvR!o4^}#w z*iHM&>4hp-HrEjYI zA%tDTrS$>j_2RL-{!Vz54_o>FC*CbTH`&VT?}}urY)^5;y#CM7DzE!I2Cr%+F<>dxCWH74871@*KY5 zY33Lir^k8$2mQ$^TNRrun zzZ1R9rJE@Xs&c``F=XF=BGYUr+JEpafB07jtB7l;*x5L7+iaRVY9&fiT8rzDsm%Q< z4TP;L&nMn}@ii?uwmNg_XoJy9%CuEC0YTI9(pR()@`U}6p>MagjJ{oAUd+CUT3@?A zxa-!H>0yHt1WCtwezA@e+0ii7<^Ts`4c}md_dtfHQX0?-med& z&a?`+uFxNl;T+BgO6_?D<5yOn)U(;-(50+R4&&YQF1kZ_mrd@^T~`rTw8`O1-X;&= zu5=_hmd890SR$8LnB3EYed0N1tD&{yepIiNzND8UfX8}Kxu?41k-&9@^d8O(a-7Mr zL3%?gb=GH+7<%aKpl4Y<9-Ui#Cq)*N>hwWNK8@%bf6?OgEB&Y}(ECHctH18Ql^JrC z;cP$MGF<))msDm`fF*8WB~@u^%gzIZ*c z_*5<#UyKu<$|d8A*BXmY<&yEmxRb%15%IDp`99vWj$)cX2^pva-(A*(Hm= zoNlr-((fhEWc6b-e(kw*d|6#NodNsnl5=H{qxE{WQdi}W_^%55 zd7SvJ4t!;6e8u|)@bZ%~y!81N@X~`?{`vLD(&gI&e;NK1@b4<+@8w_#@8_pNb8V@N zltywsSSlyk_1BG;N!CY8Wo79k@A^`CT4kx#l4;yNRVpt_CwZSOm8bQI>=ie&xWm?? zD~?|*m06^f+?z_}wh_q-l5f7bR9;FWKe#2x;R6e6vgHT21{q~|`N0nYe|`<2d{BPy z6Y%n*GQ9Y218;s5uY(ou?GbN`Q@np0@x|-R73V)jd@)XZcLhFKGhVwczPkfo9w)wk z1it*5bMaA(x^K+m#J3EbzR%;*_2}ZWb7RoJ!$I`C)k;@2AJh~Fu}^34`-`qsdk;H009ET2nj@>N^^ z9C#dD^ji0-k$AJ~o3nWFYmIXnZt6?owKdK@+!QB1t#eNK(mIIvY^}5BOL4NB);gzr z=)j|087{joflt3Rix>YT8Gfe=FCp^1%Q7;GG?H_9Mvm8u7nJ(o6&X228p*jbBS$() zzgORLRYpb@FFjtJ;ZN6?OOJ2J@TNG0`<4tJdh+N*k8jWLX7S>GSBBr|$V-Uycx^^T zkw$Vpn33akN$&G4sd{H4b)W_VMa_-@MZ zp(l?{>XbKUc(Zu%-;&{XI`R^N9u@wr85uj@OYFj@g6*)zdO*!aK-N*fqp)>_m$#C7qv_K zd7Su`fm6N_@82Sx<$))Li+*LGACLCa5&fz_AHzj|SfJ1Evm>6>fhUg>-%)|DZ2uVX zHV57^y!hAU`K>t;x3}{$ax{{2LS9a^2aV#fJ})D}i+@9&KMMb}Ja52>?~K5=dxBmr zHDE#=TVb{YzC2ET(-HUbhe!Mi zdHx75{yl+zY<_--=3P?9xj68}aM3RreYCHS!nwrgBe>|bGR~*P$z-0Q=r1>V_Bk?L ziT;W}zuh0ymE^5g2KpHOXy~s3K3`iX?Co^tQd@|Gp2(KDJ0PRR0|s@B1(MaoY$}SNoF2h;y;>GbNK)w$KN= zhCXVI)vtA28(sU*-j`Q=TTp$we0pOiGVNMbNq5&jbwj+@{;3-z*T(BK2K~cR7~ea_ zufNhgoj0^!WfL;%%unyzXamzD_K0NCoBAxP@U7riKDXR`w=0<3>E`_!6ZapV1*Y=O zk~}(ZtZ!ED-Tc(|Z2imXn-$#pW_x*7zbSCHziA)O*8gh!>YMEcuB(VE_RT(V$@k3; zaMyQAj`htB@tnvd7AALB$v8s~v`1A!dB>u7cf?u9tAuL~I5x{#9G_|D7}I&TXT>16 zGVRHqhrz}EEZu9*l+D0(U5*n4pUbLwAG$AJL)+CoI6Sa%M0-z!C;620v31GYUA9=p zdJ?n6IRUP8Z~$t(nK`F+9i@2=Y(d=Jx2eCgS0_Vc-zD4D!fLKCIp{27?{sO*k50KI zt$zN8aLd4@Yr)bru)-~O`zG%kWk`Q|NB^kXOHlKAnuyPnmn=4#Gr$27nrJi9+uFmH z`3$qMH%t+xc$Lrbst&ToOQ%cw#UX48+#%?!GPYA&7l#XR=TS zbSFj*XCdx`D7D?xlKFb$sy|)e?RYqOja*c7y!2bcv-W$E4VLpPx@q_hz*A?q>oOkE z8ecu03zx(p8#TBv%_ruUvOclEyV>2slus-I*Hy$7ePY*=_le!y0)b!WXZbA`y+^WWt(RZPMnYEeTiS$*ldi8%TB?~pPtQgoX1?kyZMaq%b%VDTvriS z^ruUgygxmcyT#f3>3P5sxx~WcPM4IO&xBTGr|O_81ms5Q`+FAfX5i{SGPvr0mjTb~ z&DT$x8lDd>_9NLre)Iz1x}q{O(t0Q`Bgj42P$v#%Z5Tn!hA&*o+EDK=;#X$F7#G`6 zaI@h{c#duOQr^u@#xEPb47jc$u4uz6m%I&M&RsT?9JApoc~0aK3zKVm=i9s)+3Lm6 znhiOoXS=l*t^nR#@ivU%qF)DGHeX=hST<32?Fi8y7w8Qxo4*3Mvw5Uvv-wrv@;28T zi&p{H7410^bBA?IsU^+ks?RKJ^}PCjRAr>SuXT8+tIB!1L)9Uz0L=p64E5x{o}IP1 z-mhLNw|R^+o6BY@S7Ka#PDPB%!U`8gFa&gN98+!5S-?9IeA_OZ9{ZhmC^^0Bu9 z*Hy$7eeA!MypO$&yL?P?%*WmVERjnrOzxVJGqqm}t@)U(vwIz|=1Qn{hxK@(GvAul zt|_4&E?V=g82);7vq%H-ww{D^^H!sBv4;RxCVHf z&Q(Xy`P%OUu4~KLNqZ>e^r<{~R~olA_|cAQY@7T;ZSd!=!FMa8+jI`1%KJuM-@W9B z+`p#E$RImdbuw3<9Kart2>(9H`yTcW$d(lmMDbCYcrW3^<-OjoFH<8=H%-Yu;fztZuCfa@yais|^nOFkWcguBJr((%WDC31;{$$cd2Q}T22-UqFv z;|VHoo$Q~XGZvM8-Vd(1;{76z6W=;;@_)8=aMM|h$I^8S7rmwHIK3+jOV=@6^p>s{ z*@(krTY5H_=qw$Nv7-TfTM2DT#mC*?^5>62@BBHkyU&xF8mnfhBT@ z#b%N-82PY)0 zPP+M8*@}pff-$C;Gk-(NugDtfVDPv)XLZtcvL$XEotvxeo$Bm#O{yXoDd=BzzIh3I z^DFO@R8z}k`-8-4H+3)e3$R!pgw`~36e?wdHQO>`<4=(mE=}B|ee*j#UpR-=Z zy>C6KpFn!=MINovMkg%!=e&Gt$Bg>rv^7#~o&#*u9lAGUKczVNhV<}bn;1=lb1{r-$+=~;P_cz(i9W#!Mg>yixxHyi$f=h%k7|`4n+CzTxW7o0DM(;z_zFsncdqb9{y+15@ z`)YoC(Wge(#ar3J$WUurcc(vbSY5bf;8f-vL8ff;flbIKZJW>N{ZHWKGqzuM87^H% z<$W#Y%deG)aT_0s0l4Icf}0=Sy_EIC|K;6$&G_Yqe*>BmWA1HF(!WsBu&Pg?x^{UK<^jgFZvhd&(P*-FYd$w{(<54A-@PG2Sb9(qZ$c& z#S;6qmdesZOhe{WVeH$E&p28o7i_9d~7@EOXbhOz;$`s zl}kw0;FsvD+=k>0oQFKvIW*GWH&_jsPyuE(TtysYLw)~5%|DmdBQ$o^Gk{xk4z+i6 zRNL6)-4AHxfT=AHjbu;l^s>u+Wn`egeWbm+O1BcZ=TPUsMn7s%22SN49^{vozg`cU z&_l;Sb#v!Pf9n9FUdYyI7fv5#IMd7OIPT{X_bAVt;{6El$}_h-+L=&(xk_;J*Q3D4 z{`w%^%_ogt{`z3xx{A1>zdi(7`D-(G*-LWFU)KOjogE9iW4OO2m=0VlaN6;2dNAd?R zsm)f7Nd4hh;t|_P?+@iCJK0)4*-3D-)5CaeM(6=bR4w7PMYu1QJWvr%2iiZJQ7?Tg}6HJdhoHWq-)vgMBuuD zt;$t;54u*FX>&E$F^2Bxh2-$?fzjP=7iz;VuXIk27qGscX)Wo+_~eL62C{~ zrSYy#aqXOr+{O`+ZVbxWXU!F@e(KwPPHk?6t@o#lcMWpamF%&oyk~#Rb#l;w^l+T* zZ#dLFIMQKT8){~W9lf4~D}N~O<060Ts&49P@9P~JXl2_PmpNu2;*~#~Lij6|>b2K= z>lk~tQVq`bm&pqvsL6Y@3Y0xnv-k;PC6M6 ze0f|exC!H%+3oT_eRCV|DdUOYqMr@)V>5Kcg)l_F5a?sLd|^+Z-#y2cxq)6fy*SXv z@OI!!z&qFLo|+G%@{>9pY&Zu%3g54E zKM>@U*L$q~zj3lQr9HHhtiKK-l{+N4mnd&(Sfyvn%Qo{I=Ve=XxBN>Td;Cdsk9>|CA`xx~WcmbICl1Z|xUbM==egO7bhI#ZkJDZq7Q+f4sA zooOEEA;>s@pZfLn9p@oeHZE^dQMPw)-ZaoR+)oQ)pxW+RK3Py|k8MGg#^s9jTV!pl zcGC{g*=(+okiMoe#)FJ<-*u_1x^qYH5gX8mAV_jPw_S4Z4cS)ZzutH7Q{5n6{>M10 zH^`?1H=jD6=h&w%;NASj_~lbmz;zXIMW5OUt$b>lyKEsj=2NpgCvu5}$+h`dasS~2 zv??D}4zfMr4po>fKbr*C3{GWdj8ncf1FoRakY`;8F7`v&L-T0nfa{9p(L~x0`BDUt zJ<5H{g*-SmH#wUo`6A5hxj?wFJ@vlGugsn?&g^M^5aaT7wiuVMv&Fc49WlmP9Z~)x zxcSe;Jjed?G~Ufej9>oqbl|#*xT60&16ujd5_kEJ{ckVumOvlFC8s06Ro~dFZqCrZc@a3(r4%-c-sk4R z*-1|Yt~!*$j^T={)uZA%slu>2l);tOo(a6@-F{xfv%$q_P3h%O(%L1!b^ZAfNj>0R zrI&q-1NYN8t23beKyY}oGD*B8_)Uq;kXN)MIm`*Pz4R3i#7i{A?rza{y)pZ|Y3?`2`WFvQ39$5YEvcO-&71QjM&??QooV(Jj8AnJ=g!xp3)ii1aChUmrrq<@sc&rQZ*SAVhqZBblb$EpWC2JC zb==o0>`PMr()%0useHnTw-Bzx0m$Ky%AdZ9{$wMX#z<;{U+e@Kj3J~_t(80SWaoK zo_h`O*oUls@lN2n>@3K8qyO@L`~Lo(5jIujxWQIdelSV9ml*{mz|@BCCT#gnd3`1H zi*;9fJ9~$F+Byf4uCf%A%6e~*RmZQCHaaGEC2bv-%u+xq=Y5hB`IX+^&#$cB6XWvr zo*0*}_ry4>_sAawH-G#H&#^y#ly~zv&W%GU5BmVLR)1kn&>hpE9`Hfn&BR4zcMSg!a3wpH_0uz3)cSX0oF4{m^%#RI zAG{uT&OpwGZvdY6VU10G61c8t{!VJzQ1qq%Z|ia&_G3?d8#gkn#V}F-z$Ql4OMt1r ze44Q3!*(vv8W$6vOx1sU{ASf9bT~J2F}wWv!i|{b#t>(bGq*pSp!TT7#J4UQ&m7jf55 z{-t_|=)S;D>uk(SJ_H!x^Ds374qDoS@vP8&6)kj$CA0UMQjmVc*Rs2dF8w)v%aTcbjxq8dc%mp>2{W6^9u?a4@ ztF^QL%;Fp;o+dEHR2JsKiJF6CA=)$5_H`D|ah3L&@me_c!_CI?XG#gTzOvatHcswY zoDFA934U6obI&Y?e1?%8M|0-lPDp$lMbm!wcDBcw1=k?RBb44IkIkbLl*dG1U8`Br4=+3Lp+Ifi{h z`TaL=OFQEIF7G;5;(H+uN;`sE+W7(SIPLr}@GE^7ztYZ+0>7oJ6jw|;KZaIm=O^41 zZ_!%X`5CZ;msprw8|#hxM7|HL%7l1M)lY%BeB8}X3}vs)O$&9~pFxdb$R-0}{Lrs?ogcBW2KnVj4_A7bS2@M35$~7xBfRCnljEFjsQuFvPr;TcopJse2fmFPR=C}r`mX-D$z7ZqzJreq-}d!& z`nJ}^g$eo!CdWt+Gt(UI;^dvMMr|0E!nH%bOSi`#t+ZU-$uyt&8B#3d-Sj6Uyg2l3X57Ww)-?~*w$02e^vr8bgxOYWnmIsnCy{ovlCiQfraYOU6|alG z^~uJpWgIo|op<=Tf0f4HM&EE4>lMPhxs9#W?%{z>zDC{tgYn$CJj#EA?ED0^jV?*^ z1ik+r`Ko)qYOVXYB)>>;X_{7kA-LricfcFx7kBb*d4lmPzxY%5h9WMNZDWjgL96`Y z&)hA}mS6l8SR$8Lm|W{ajoZ_IfHt>WxgkgntCCvX&XqwZ3Ua+vz>=^Wxl;VmG(@ zFVN68KIpM-@|v6fbT{xgFR?YP{|j7KC~vcz!&ymKgSp&w`qMQpiHc!gci%v3$C<-} zLp`pM<12_ojAThiefYew16=Z6Rp^0yk zk9>TM52NxdA4Yk*iZFV6hBh-PNoj1T+V6wO!7T2L`;=8YtAnh}oy^nK**VltL22iA z$TycE%Y1XcAh%rCBSZZo?W`ehYi&P^*{7SU1AVb|IfB@dr%AsD1i9sXa_-xG zL2h3i-jLw<4-EX}{U!OCF!DV=Z-{z9@MD`#l;TYGL6RM%Z@sVNcL4U&_>eBE52QHk ziqGhh4h1(I-k0Y%eXru((y;L>ecunbt|BfC*V6YP&?GBBOm+GCv=W0r>&dLsWHqw^7w*>z@N-`oJ())w>mGw`=IP0H~4+(BQ)Xa12Lr3#& zeq#Lcp*6sD6>&u$S_`dwXdQQbx8#@)9m{hfmsptGvh_g^7A;|_-(YOQ_Zd6{STiv7 zF&IpAN+O=FZ~J!2clnoSsm=yk4_E)fF~D=$cIC%Ifye%$@!(%reKwf*doekPx~t}@?AR)&!*>F;>Lm)~eDzv?a8bBNg*?%W%_ zFY>l5cQ%e-%X4Sw$S+q`vS;nA0mi-xv=@C{M}7C4CFSbB>etmgwi5{7F1OcA&)_E4 zEy7)KR3A}X|FXTp4Yo|@WQBds4YnMZ?{uV{I)HbaUv)UmG8p|AzKfdRsc^s!WzXWgz;l^7=dWZV#uGYhuCZ0&XZL z$ODlO%B1y#9j95npUAJQUKitjEa&A?nxnp4iE#^2nIO2O=Tmr&)AOmkTbea~rRPTj z*Hy$7)AMQ2Dm_1jyZljdEImJ#=R_{CFu8V~(AU-|6rUbXf>!BSX%{o^)Ci^0>B+#G zf%~?jtLOPsQUc!w@cLZwF}|pC;*6zWrMAn~*nLyxnc}gqsh<#G;ZTz%v(t+dwx>QyOZobvQ zbL?B4yqo_RzkF*Wa9u@Q(YH21E8ptkF5i+I^Q|*^PUI2`le-N)YmIZ)yBI@Wxo zyS1&eTUA=u?#;nlf}MH^f5lS0_QFWtAe-UHd2ExdEC4AX59$wcq~i-Gz3r_(Y7O7F zmP8bvQ6-uIc+?*?$X%E0seCBKVH5gMbQN)_t?{EnFmYubnMFF*HU#pxRHSMQ&9G(}I7L&qGx8xK&FGq9x(!yZB_=Il?!;(zE&1 z0?)BuE%I)@Bf5Eh@~d6kbro?%zuFD0{Av$(3)}qaB4CMJVqtPm4|#yqXH>t~3vKS} zTv_r|;IThRFY>30f$Q@Al;d@d@qYHHHCgVM-%P({F_L0!#?)^mY z$30wht-3-=#E!mQbdA`a*A4tLJJ@O8xG~&ulH4w-Ki5xo;0) z%VvU`&8`6++w7gZn_Y}wHhWj#FXD}H`sbk{%nUf?>;5Ct({=NsFjuKU!dulIqE^{+OI+B@$Dt}BeYmP&BvBo+j> zBzgWaWUN@KaMrpnztj)P?mXl4mbf~L-j`KoGw;hQyWIO4;z1q0@k1dV;$%PJ{vK@s z#(zS&L-n&tVILINx33PJA?9r`=a8v1epi9so*Yy%r1Ou2c=m>P{{PjlCSBrUjUS7? z!R=kz)jH6zrFEdQtFP}YV#vM+t{bfgCWh4e%G;4vlg&*{E(Loz`qq!@TQ8BXHMnQ< z?N0!YeftL9&40ynJwN&OC%Nk?;)=fgDQM-}pXP31n{VF;ERliudR^`(Vr0L z^EmOX4}9Bm`$vjzL*R>XD#yM7uFUG{FZvd^*!Sc!2jP3S0N3?GH@~EeJ4{*0I8saE zGdDG(>m{%6w@>+JwLR1h@cHOAb%kpU`)rMW^me*>yU$a%v7S%p4muv`^&$^Zow5yTzB^bHU750eiSKxv%LxR`iEeysQJA+K!ADaM(vn*YbR{FY<5$}FIdEM?Trq9j2CdS@FSsjhNRFkA zUja+x5(|_2o|3iJ--q@n!j$i8txb1&GNK z6rZ0!(;wv2qmdqmf}AjRF@%}ZVXnx&TZ629(MjI9L7w~|jk_Nom2J)oa`JfPX}<*T za-{+HQIU@|HQWv^&ePNfuKiwr4O~~W-)qe6GqecOQn!vac=jOMxsJ584zVuvY$m`_ zU8@Y2K_x@!>VF7Z`Qh=zrC8@Aoo{vn0=aaew5+zIXud=5H3Rd~tacZWCdoxb!=0?BhUa<%=u0%RZtt zUt9?+;UyL(_h%)(*Z{43(Va(;RzUgIF_$dko}ysioSVc^;K&W-lh#={^( z=blMhv$_l#jgjSsS^U;=H>_&^D38ISc@ML4o{+$9aa&p z(oCH(U3DK;rzud~G-qpbB!JYv50RY6r}cg)Kh@Lnb+H(iU!N4?u3qa@lK6Fu%h%yz zT)qw$N$?iuTgEKk#PYswdI$k=eWEaB#|M#FNK80Gzdf z;=S`%16O@bJTd%%z^(1Gi`gm~3s>Fc2;i!xi9UvlUUf9ZYa&Ol`kCls_>s`J1p3h_ zKc7S2+!1IECOXx*B-h$=qEj79G7Tm=)u}``#eOp!G2r4WTGgXO8^cAfdXwmP&Fyq^ z(e-_zS3SvnUj!HZd4Ya>?{r4~c%aY2CjvabhFx}=3b-)}WzLFE_V$sTWW>|1ATlZ zs_5Sp=wrCzb8Vn!&nP!<%;NLGKyPrB8%IO$TkA>2>gEZp1s<0b%A+4nS+NeduD7xG zPw1z<$2_|J7+C0=awDW+3@igm^Y~*4S9!ehKs{R?cpT4h9{4ccEuRzJL-{EWJf6F* zBCePRJ{(%*fhTZR9w<4M2R@SLL@u!~xn*NukAPN%Smu*LAKs(D#rm}|u=T)orDI@O zZZ}St0eKyj_uW}9V(aXzP0voJIYhuz&nFSS=~>UF=M6l^dOn4B)1~N6<|jR$%3W6x zSJd;Pp_QIb<1Rf*j_LVyo)fvm!sM3e`7zLzeW}_4j|CU&S$a}m=^4OvW&27amFz=L z<^Ejlnwekdm>iv&+0j*-Vy%#BEIClB=f@Mi^!#Av2r<^|=C7)uSwx4vbw%nP(b%nNEUeR@RUtZT_1Bmvs zIyn-6^(TI>vOEOKxjJh%;jUQnx>${U^jx0ysQ0pNrhS0^#?JoM?oOKit_qw7rasXZ zWXs3Z?|I&KeW5lzJ29E_qPf5E8FFi(SY271(g}2K$|dEkzOe~YJ`s6#HCIMDy1S!E zb7Z%9h`zCoembgy?H%2l{NN2sNZ86V2BhCG7{1|5;!tc0xRR!CR^xGPiwg@g)1d(r zD)%KA)BCXGl3px5=zTN4vcA|Dm#_cFxP1LT#$CPEYpyK3eEmP>%h&&7obAD>bSt=} z+o$jxr`r+UEo~aV((QS`bro^NbUO;I((N|xO1F|@>2{pwL@u!~xyP3D({6$GD8h90 z%xLe+t-zasyLx60zAnIRUn12%BuH)r}B;2Q#c z3>UrC-$OrQdth_*L-Cyv_{#840^btC%kN2fF1U`so5v~KuE3XXvnb5&z?a8~uRrin zA6r;t&874to}s`K!$oiPeWoE%pEqb=J zbw1B=+PZ*uOFyEU+wp;g+N=B~6QIhM9&c~0aK3zJ(m&N~Bb>6Zq* zUkEfs1Wv_5Ei8*Ok`yv-Fg@3|pfMO;yTmq9E2J&(KeCpo6S7XVA- z5(|@Cwl?|_XjMmKAB%z7_P%L0x_2`a3z8NBkb=Y!Y2`eNYV5I28V zdcPcatatUvYcG-)0@oGRM#r3PJAIQQU6E*?Q zDSI7EoxhQ=o0s`M5$RZUeBrO)r?n_A3GtKt1ULJ=jOW;XSMqK)GJe_b<$=G5E86cB z(8_+V00&s*8taL z^?NdptXlV>Yt5M~);--0-6KpKp!%9V%f9;N*Am`}rFwnQBV8RML!314cal~8Hw#E@ z{Q4lLJP&kQP^WxI&{V<;pj6fyB`c(F`G?-$#7}kJeBCw1UA?8f_oZpR{MHK8A z%$b9lkG+@hV|(iTT7I%;zD*J1@@iH8(d^q=dXmH&L4yZlGA=0Bg{IpHN1Cij~q{_{R)Q~ycl zUc4W8GjZ_#lfpj$d>wGLYurjXSLZsi@eAKh~BLl2=pHYu6By#8(jW* zJ#gorIbX0b>KnkvJ}MtufscL?xULhAPkb~l!DkscsC=w^9ZIz|-RP!{Ul^XH*e+QEl=Su{0X4RhL6@A?9` zW^gPjFW|(dG&EP!38X1nd|w176)IiW9C^XN1YGGz@OZBMSAd6f^u$F5e6~+!;~~7- z{XVQLiR9h{UhV&B<_7h$gPM&yeHHi_j!(fEF+%|JO2KqEpUbc*MZf)=E*A_~wl4i@b4tHQq z5tydC|0WJfzw(2(w)yAsdXT=Z)9pL$V&xuFIX{pb>Kx^~BYSpEjrhT`;q)19SBLsh z5(mHT^~bzh8j;)|@>5y&6Yjc{Mg+Gs@-v>}H1c!aEsYqz(#UOrzlbZQkzYWoH1bRC z(v9R;8o8b4L@u!~xdWkmiTkgA3a#q4n>aW^%Cr4kq*0sex>W^-t;85YPsn{8q+2gl_73aTt{~f=wKGPUy^#<8TaI?=Jd5-OK2k&MB z1@F4b>W{w%mz4iuouBfBKLBrrM`?X5 zz-6;P1NY^#wp~uN>Dual1sB`S>W_B=*A>+tGkUk$Uo26!C{N?o^W!E&Gk@9b=auwv z#Za^7-w0p!lwI^}cKHX-v0eVjyXjtZf9EH={ENG;BCcqce?u#~Xi!~tksPy2Bd|m+ zu`s!1eOwLDmVRmI<7xsQ>sq?f_}nt!y0U#-u~yPPt{7^%x^J7;mA-X3a`e7GGUL9H zBCe_OR>pL6Nyp+b9Ulm9tYb@8P0*Tb>G+@!Z_{y#E9!V9w9@f?xJ$>PH67mlyCyppaY%IK z&7s6)#ZtZTH*B-)Mz9u>5Ye(~($R!pg_nMM+ z)&romd{(F8k4-N40 zwQeKBy&S1JFxc8X(#xT$ZmO?(oyx#zSPu&_%lr79He20d`o#qfP)^pR`u1cA#?r;Z zC6}M23%#GfPw67>`!UYiLPb8x-?N>WoL5~_amlwQRR4GsxOL#H4J6+_1z25c z1pj_CG_ilnrrN{rG~l}KPo5LzUzJ!c_;?9MHr;o9BL&-54w(*?EB^D;PY>cKATC0ylALZJ2 z?cidaTV13BxUOtnB<4=4Z4uDxY2UimHrz?qp+zeKrn=rp98A}GHeGk|9P7HuyXjMO zoA^oBXL8q7#1(aY7PQiJH+Sh;a!l8~JSTFAg~=_`bq};9ALVr22d+%l{lIl)bsecB z^~ngB>gkv{;=GjZIezW^=ws!l{Xx>bDcReJaP)0MxPnU9^%*GUq#w2(l=F}6lB@>&?})Ur){h}InbJH(YlOg zUAgR$eZ=!$J?<0Gj~|z+FQ>7xEf=oQ>R$Fu<2m{Zmw8*%qu(CrZI4mWuOWILM&}k* zF`WG>6FEMeA$4!~&QJLAwq-wuv%Fs98?v4J!E_{j?}WD)m&VF;kZH8~hI+KKIa-Bt z_5;f0&IMYt`9J6*uCEi;&F1KhR(!>HH&u28`Xa7)mSLI(()>ep9KkJbx(Ip4qch-c zAGD|PF4;{)+xV3?T^xm*#ig>X&+}=}DsOr^cT2MhLvojZC31;{$=w|0HO2ioXG5zt zQ#+H}7wF-eyI^tF9qz!qO_kf{fLGfo#;aw+Hd9de`s=yS9G1{nKJIZ(0k>K>7G)

j&KdO#Q1qOfALq{FA`duiDQpGHkD<)t>JAF95FoR0rQQHM4DW%E70ApCLK(gJb01 zN$Dk>&46nGr#>>j^TyEVj;f!xbs@M8j}x$iox9W->SWG?>+(3kKsgeJTLjk)PTvyj zGe0!r&%{-jyTMbfc6bLJnlUoRzX!bLQ@J%;TBSWIXuIu(zS0~GHx*d8VQNFCQHFj&+(^h%aO;7XrRl2YF zvdSgMm5)D1_a*=Q^I7h^TmEp zmvNW=L~D7(%Yh}l#KPo$rlimJdC)447>w3YJRcY;C%uKPmXM||2d=!J)vXxuY59e~ zlm`su=IXr&xYGaN;=J}UaDFOSGcfi`WG`1gZ{kW|Vc$-+H_$;GV>43&9OdBhpQeUa zfRFuAZApzGz7n{u&`;_2?#xNB4N|jU@0;awfEfeq?djgUQKvPrn3?8i9s;-Pmw6T8 z%U{de)0!dWmW*(Wf#raW)(=0@v-#0$d5-<)b-bG&iSBBC@}t*t*Hy$7 z{pbzQ%8%a2U4A4v=0|VlIgv{&Ozy^9pNaC5H$l6PuXcUTZ-FMZrF5r$(6<8DmCg?< z*N>kkR*sYI9*Mk4`QAYsD|eO|lSl6Z`rfw@w(O|qzo=f#yX9Ng(@*+Uert%^H@I8A zBD!}#r*pEd32`stnD20`zACLxZ62#9r?K+xAV)Tre6#s`fyXw#mUpwO#X~lKUlb4J z9VxD8^Y=q5n}2}2eYe^CL%oWrpk z`9__wrdGF);^eleno2>po+S@TedS|>C;uqVJ2)v!6Y3<3d~DBNO+&~+6c6e9F(j(zDfyqhmsxbmeNqj2R* zDX!>CpM_Sw^f~VOHqn|deSznMmsptGOH0b38=!UNkjt#mUhtJq0uR2_wWYVil_Q@5 zCjU_#OfJNR38UI8M?Um__qm`O%kv>k599TJ0WuqP*Y3^?Ft3 zwTsUltK0hS$1E`QtFI8g{L1XC_nY|12l8{DVq83iDY)7B>paJHzL|Hkv+>K$-vF+w zh%4Ipo6yS6-{LMiOODz3+dL<7iG|61U9Ox^UG}Tcs$QVJ^4U2i!G${d*MK(zSN~!R z7yY_G&wM$}k;j%tRz$Bhf#?k```-e*%mT9icfiH=m;KbA{$1d@qW<)(sX|v{7U=C) zzL!RIaArH}8RiF~`5r&*Yw~^Wx{A2Q z%AYoRoRwSOKLuMY^X1lli)B2^DnAPHlt(BW^PQjY9Q)2sc{l&C_{evD7Wj*}qVN11 zTKUdx+~qrxW4`lCo)fvm!sOmil1KaiTICUBugYmnt1eIYA-IrFxJ{6C!l0&)Sw13s z$TPI9cY>BL{TQ6;u&wiZr^jeKE-*|ejUyHh!PkOt%O(|N0H#%D-e^J)3=h%X4hs-|=oX6y5*u zlYM{BT~`rTwC^9Fm3{xnUG|k6v+tceCvu5}$!*K!4btr$(AN1{mw*2We5_;XOZCUQ zfa^-@k43%sx?>S;`g#?6)2~2|zE^ESz5j)G<-z%R$T805A(!#x^X{0>^6oOe{5WjP zmmiCYaq-$a!OiCX;yYrS|2urA%68+I%`4B57E_z2xT4J)pq0%Vxy$CFHJdL3mhch_ zllzpCd3k>&E><4Q*R=6UZQRoA-Qb#ukMj6D?tj6p1E+Gt&2$g_Reu9+H@N^Y);dLXqFR(%B2HCSXTBJeSMx~m4gD0`F<*|q0-c@n3sjsP&r0@!F6!! zLtCp%W=#b{DPQW>MZU&LV{1LW#>%yOJWjqZ-KG(n1^(~TP>G&bQ61l{} z+u!)<@~VeGdhvd}LE?fhAg_uEMJP<#6E2KY+V$>EH}ZU!C=FT@7CO z2$SRrc$JM02Ji9#uL+m_n}NmYU;Q7eNdHFz*R^>6B>j6XpYGkW()$|di~S`d9Xd5q z|1D2gi#+*vc^kT8OKn@*9NYQS(vAL$Fq3tRWRbt9UZQ97?T7Ll`}T3XoBxXLSbp;D zhjG_c#1(z}cxdI@59co5mK^i#NAR4;B^D;PY>f8=Xp3JYziw)HB)HfH(vj*Uj{>eM zjPc%U9hJ8!ZG@STicu>9lJWQmh?c3R>RV4FeABa@P0uIu9P4=l@1{%9oy1RiK83rk zBCe?CQ=yffAI;suHa$NESR$8LnA|cwp9XE&mrBp4gNyYnJxR}x1+FXTncP4%$VesW zSb7BXdMfv4m&&4wqD?=JL8+b}NBD8QQSXoESJrlqaaR9RIuP9K)5>#fpElmj2F5S@ zv;)^w#1-w+0j=!Q$zAr59J9|Ro)fvm!sObypI=*}P<$Ts1Zb_UHpWReT5X`btp#{9 zRH_5TaM3GIRUK_&uC{$@l!3RF7`y1>PLARDTkRRyjqYQx6{ z3oZBOq%*OZ`G3=gUAoE!KQr|&+? z$LTuu3bZqtILT_NcxL9@?3fM>qsMuiv?bc3(J$vDBxlp>eMQ9`cP^?Em2Qk~WePtj zh98{5Pd2ze1Bk727~2-V<_K}#xn7;TX7|1=d1o3C_{rqG#l3HzS`Z|}q1D00w>c>R z=J_~--2u~ci8y~~OiPs%_KQhpt14rAB}(r>jyCvkad{bmt*UIJ<3$u+hW3YAMGi83 zK?<8AQvo(kW-p-QmF|I!&drUwzGKPX?s&IR(MoxnmpMB3!J@gJe|I0O_e1=9qOU{4 zd;F~}9u}11`&aO^bPL_OdRb?^J%^Lrn=w@wrk9DJV zAO15P`^#dGFJXMne)Xma-~43-_7RO_)!5q-b zTJW$CIS*Sjc|LM?sNe1+vf~kSW*7TP?WVfExpko0+NdEx+^d9U5(NA>4hfJDWTSv1*ZCcI`NVI%@1BZ$(YG8UZ3g% z7XBIhRQFrru1o1jaI@93c#duLY~IZt#xGl468MX_qOG0-t!#BEciBpE%vP82oX8~> zCfDkIaee)n(5k*ZIzC=eo$tB4muX4q>v`Z}n@Pv2`#m4HuCQ;m8dq6$?nB4>XkT^i z+?LF%vlUAj7*=xm;^l-Nx3Bd6LVjiKs~8uzuLL)HUBPo~ub1#{HZgwL>!rYT6>&v- zy$o8}>q_pjm*kkeUcqxBmsptGXXVB})Q)-)wAQ||J(FJyteJSIZ56}T1=#G=BBzS7 zne&dCv+>KJcQ(#w)Av=p5?pL!*+=8wR{_@*t+&W>`+lPgO!l!pVx6sZ3!Qt}JhZ9u zYUD~EuhD&}-n99fwjXgV^~%25I%YngOm-|3^`8Jo$v1UW!y?4fPapB8E>v5`InBH_$S~u``t|EistnaZv_#x|lt25t z*k1b2&pwyGye)ip`PjPmm$vFqTem-A4QKIhM9AeC?+E;A%aJVeXH)2eHg_(CfAF@^ zdU)wrHlfC{EpD^@1K_gC+*r>H^J+QqMs$K525igBT;?3#bGqAi_FCEG66FUC ztMqL7@%wp>^WzWjZh5Zg-p5b*@dvr@1|?xmmNM0TvriSw8Lkhl^t&6E;~q$+2M0MCvu5}$vwZM zT)Y8Vm5V9^r!}D-pHg`#cyoa73j4FFp7UAY8P$+a$zGoa9@|Sg)}C2k0In;{C61L^ zSI2kJSYELtJv1D$AH15sV?VWb^|L&^QrWNaWx|jSzM?yPdVbt4?xYE;fA&0_GJ&!{ zx>fyC_^(2*`sdfU>r(m=-0XHU@YrtO;N5Iv{Ic6O1Ah@$wA;6!mECUPZt*m`eFs<~ zmsptG?ZIxX-HN5R&)1>VI30bD%%o%2a89BgZ=aeZ-)d)3h^CjjH5#(nx1p_S8GCPS z$IQYc-5w{qcHeh_$2Qa4OVvwn1+L4du{U)AxW;0Echu&`<|f^S)_yEkIN24P zc7fL%cQ+33L*PoM0iLn%&%sswLZi&yGD?@Xfy>)iXZHL8xUSIl$aAv|gIm~?$Wyr` ze|^IsHeRY!=1R-3k)eUs-oe&(xARbM-%xd9wY}B7=;*8dzH0B#NbA6+;T|fEROcC{@(xco>&jpP`M`HJR|9x+Nbj1_rT<{-8wNPlo5Xb=6rQ@S5j{L5t#f``4U-D z&*&aMcla;BtNq$zetv;vVztqozTNa!;IV(I+|ZcQ-N1DP|IBi-!)h!^wyiU7+_kA^ zM|1nc52g_Fi@y<`)uHrkw)qFov2FgzyXjwaf9EIL{ENG;BCcqge?u$VR4ye<{7`Zf zhIku+C31;{$t~;CYk=1GIi%m?ZPV1y1TNOA^rQOIGT^!_Z&#l~#O+(75ybQ(|A^~7 zdfy*e%G<9GdAs~taMRs#@UiX=LLKVx_d~AqYwdouTh|ayTxSu@A^bEq?9dPo=}h&R6xUd}Yo}r; z-)dMTxY^@yo@0AFfOpfm@yi~oBiXcb64?he7VYssXl0KhxXYI%$9(xHo)fvm!sI@s zr2IS#TG^(5aVj~B>i)o#5A`q3Pe@Oy%Nz+TQD3NgJ_uNBE9qZ#&j$n7b;3F~SI3lI zs{e1bdHw4fe$&VEl62$ip9c_$R~{4WfxM%UYkC)7Gw)g>xh8~XHWZ(1SWe$mSr_Pw zvWoSkG@ORYr=EdOF4~v}WH& z0!w&_g~_!tB~E*5p_P4owZhkRjsYh7_OXi5r@JF7#{yG1(@}G$g1NTHLxHKB(Sj87 zgGT_&y@7tM za=If<(&<`2cv;fpNyH`2PxXE>Keb1$eW;J8t0w?6`<}vcY~NFPH~SjD?E7fox{A1> zeNTf{_I(U@iK6~A4*xeD_n*r*E&1pI$l+9x62D?v0ZgsuFwHN-(S5Zr9g4m`F& z2k)k5H5& z8}iOGfyXvb{Yy4D3%IUO&SgZF?E!3al+`xR@0p@^t>^4ProOLN_oYguJWY-CFq@^7 zBP0eo2m6KxIOo=SnadGrn(7a76~=~hd>ASV4npPktLba}wZ1aKI+TS|H%y*PQca(c zRA;=|c`^G6>O ziemq}Xv^10;}!crrv5QTeB>X>Tl8$UtnnP%ay##4FVT(jlPz~}*Hy$7Z8-t0Y&pqY zwv-&REgPFYAKHCF) z?CcmG==K{6q_3&oXNbp&rMmOl+WUG3`xw;P*hepg#t%BTk~@?@k?8tDE)4Rd*Iyp% zZ7Q26&Fg(0yvp+%sZZ)E;?n)^DuHtp#?vvLXz031)0q**Z zp9Vhm8Lc~0-TmpnbwzvSx@}rB5<&U<`hxIX6a^rBX z@369R=AMaCpIRcG@~Quiy?23+^Qi8IXLn^;iA}5oI~ZbuV%%U7CpeDd8r5-hw-oCZ zX=NuNuvtkfX=7d6}c_x0pWaH}q8cI}SnW#Jd3Z^+0X% zw*$^cZSqJ+IT0hI#Qcl5Uoz>Tz1@SEJtIS7!#Evzuq!h>(zma#zk5$N#>|)URh@Vz z_@GWuE~~rjcl^3Bo#EwqVa{|8=Vm=%s3-3xZD$+tTl4rHeEWI)UbrH&{;o0=QMFlXCKxfcvtgTqxTI0q5h{n}Hmh zi5|Eqm-xA)KG+5{sXLWcP( z{MdGW9B)3X&j{DN_$0ply!acqRo)t&dGWU{e63$?Ui=+!nHQhJn|VPxnirqOcR&|h zDBZaF>=VFs^;tXiSRTyv4Gid*+~32`my;dSOC|mRa6g|YZ;mm125>&EKJz48D{r+U zu0tDf{YE?gPkGY5{v7BqO>*{+)E)M$9Oi+Bd-egG{{cMB2jV^gH^YC?@xgo`T=U_} zfcyFI6&IfNhlXc9eAR{5d2c7T#Cg6O+c4c{IEuDn6nlg@GiwfIda3H;JPjKr~ zut?vBX<7Og@IYFW$<;5y+vVf89sD6@U%x@@>-o{j!Z_#7Wxd#UfYTr~aJDirBlnmJ zoOVT%oM?g>M;=Uxu`t@-k79s%wdtATL?pmNQ&VNR+lPJ)vR@=UgH17(kPGvH%gdIU##@|*&OfjYu=FLV|ca8i=PKckEG;k?C@%U-Nq4xLT@o0B(!8SH-; z=hiyK_*G1C%l0mzw0o({o^D2pWS^sFB z(4E3BZv58w)A3v87vY*;jrjKSYbD&8CmNpl)dV=7TEE)-ItjSUuaog+evyvm*J^wR zbiswveN&Zf#r|poaHC_ic5ZG3;4R=K9GkUp;%@?+W4ajQ;MHa_M@Rh44qxH4-Btk} zBYm;oo&-NX-Z zT1Q>pZ5n18?D+Yq2*bP>D%d?)18BDG9OxP5$?#)-px@br?qxb#LQWza^W>@U;~9>9 z1zbElksBJn2KA&RF$)q>CZ7fzKX2HV|)G)hXg^#Ey0h=4#I*9r5m?iV-s*`fBNe+eh08-fraZe&IQbu zChPn20P}T=c}U$lA8YTJ#zG^*6-15Mh{~+a0f(pP^sE=$h49zc4?v4tgJG*5W11PDh_QLE5Slt$_PF z@q2KqPACu5iCrFl)QQk9(8S+@^2OqCUes7cj2zkn`?cJ#`6SeO&ZG6Kl`V$Q4o}*tx!T z`1v}dZAS;-eB2t3n$Tl41Vepb-KzR<#~%A#s#Cvs>s&|2U~>22{Dtnp{=U&P*S0QU zd>;oJ+=xxwgLEh_FXj0AVt95k`@sC2Ng`czGhOV%Z$Mq3wl!(+M?Z!S@fyq(prd$SK>twU z0uFg29>dXAc%F-o{w#fWLSdChl}}WjI12z_YGjDeFaAbJTC8=NHPs;%oh) zxU65aj@z*e{;Qb=r_k|4GwEr)md7{i9IY3xfjchV1Az0aC&b0ayNhBkpyMQB6K!M|=+h<&!w1tHJP5bSop=@es7HtJ<`d_qI;MGj7`V*q zBY4-~BWA^?9x#5t3^2~?@rx@1$`9+2lbjxqKFe+B7wQQ8Sl`C^F>bzI`|8xgJpzO9V9OeW)90D^$eDz)GJM94hO)Oc(SM1_SYdyR4-+2(Yz3Fj1{Kc z1&Zu{ncoM@0Y-A!i5b#3b=^vH6mZFWx%okEu^0Fs0Ny@1Ig*>Qcyy2CW^-B0bu-+e zhSQ46>U-h_z^irp#el`>HtUloLAP&&KOgG$>gp6#DYWV$<)wMf{Gt0L_^rgZ%9eUc zxa#T6`1bYm58+nb((u&NTL9-%>le~iJ$)%~X;0mXH}!#ZR3C1`cR&|hC|w;(X%+pm z{kxlhOM5C>5N#jsW$=rZNXh5K%K`Ug&9cq0_E!MT$BpquNye0I9XID1X8zbFuq{Pu z%_~7m({=Kq{eBK`_^oZ^xo2R{KJZ?HAH!PvBxPO;cbzesv2w07i2Z3(d3UzsSYI^= zIqk+MZzm6kZ<(~XV6U3kHr1QgJ6dWtF})AD_1^sEK5|V1?WQ}3k9-v#Q1_{<4g!yM zgw_xAe-nPJSKf>_pIX0^xngI1zteVEKgK6~B0iNd<;!}3GFH08c^iK0quhlzALUQ+ z71!tQ9S(QUoj*Fn!>v$$n_->sJ2P-(oaLPEdHBel&VDL0POgxavbWH;)wwdSAEmxrnQU#X zW^dmmn*vZ31T3HnE|hNE{>Zli*UeXTFqOrEOp2ggIm6ruKPCz7lk*$N zam1c}Z-F07Z~FBiKO_+0?*v@-o_XiYz8kO&z{RN65p1|DaD5eZ;RArzlz!JXeF%Pj zeaZTS`y)RLI3KqLy}Is*sZMO&r1|BS!|L+w`)T>E4Od%dgyEt(K)C9_pW)lrfsewi z`K;lo1Ap$)SL;`+1NQ@$I`9{GYdxeo@RxuEbiswvjnjcY0d74VxEFr)bl^|n7pDVn z2fSJb?gK1N2Oa>tMhCXpHuFLF#p%Gu0AE4}>b5B(t`7YqnR9g?zx_J&TKH7gq1RT` zp^rfzVU1|(7q%~Pb?8q5co^bD>(EbuN52mJ4BbH;dWe;1rm|aPWU#7GA%0Mg zehIMZdh{z2Hmpa#3U_rq`Zd6UdNi{iXHnXE^sii=P_i}kXux8mD$VS7b*Z+Slr!bX zC$wu)=C46p#|93=pFiTV%~3p#4SWK4p*@f=2`H!5xwHX7T&$&VxTM4RBi7v-mMLJL zMdQ?Q1-9w@5zmelG?-6=4$Iy@@V!Vsd)KOl32~F=v%uK_f0i}+Gj5LK9PfAJTtCj$ z=JSqsrk^&B2h+BuS&#@WHJ z{90T0rF(E`4FG9a6+Av?c3W#JEexK>Gv+?pF1g^6OCp$UA&oZBY-`)w-aFip+27v2 zr|n8-FXA2+@Wndv6q8!_ReV#vEr#cG+jYBEA7%2GHq?c?I?!G4%#f=0xy~u|BP?)J-=4bQ= z-Z>XU@qXd(R5rha`)uet(?K1eEJWAA7iF*C(R!=N{95Rw*0GIc7!-7rd!!eil*fZe z6WvTJ<*^rxsXU-s=CMNP*0E*!vmT`8^3DsbvneCe;T|`>H6Cj0ikm|`>VoE_mQ9;K z4Q3_qRHukXn#3h7wn6O6o#f#VMm+wAQyR56tAL~VNF2h2AJAhuo+SR^n7O)b{hl!Q z2)$5l%?*@W=w1&u^KJ4%n{V`6i8VUpbt}p*{W_kmd5RI2-^KThq5Vns>EMC(=YJp^ zpEFVavM==%!1tH3^VobVYq!WhTi#Ej-A|g6lk4HHPlKy_NAq*@vsmeaV~Kb5_6?4v z+Xt~*Fw=6*7F#!a{@vFuWM_GxO0E<|-QBXgwN)eD=RVpl+0^L;M&&i;(Qj*mdExte z#A{G(lVtz1k9fXoZ~9T6^E8dZbk9P;-Mz-OWS2ja@ZnPaAWtWL>=?&yl2Fp8MbaPc z0?AJAHe(TIo3we9tFBEmre`)gT^6~XA#}>-eC#^`-Np@YH<$@^ab2!u+06aRF;Y$V(647|ZkEot)E{?Szpz zo}CEJdZYd~n-Pq)ci}Jq8%Hm~t~IjcG|P)WI^6+Bq`Mb>>rGF-z*CT{uTqqFpN=$c zKl<7@b>kM4B?=}I4C56^W);z8=MFYmXj9n z;OfZcC#|*ZA>kVxT+1=*uxA3sa*QelPtt6HTk9XK2Tp~|6pt|G$l1WFvp%A87&oZs zy139`^O}5YCLcF2-qgBhZGgrpNZ;^XKtd5-ve`5-A-W2nL^hviohf;6 zx#$GPW3Z$G<$!#lK2C0tunbS#$b_sQ3qptGi@b20iM*hXCv}s$S^xO{O>lq5@prz& zacDAoB$FKB57NLK+W0J!=Ws6szs-Ox%;pPIMJvzkfNdaMNwAgWDCTyb zo&XF3khDQr23I1z7kTMzNmg*xMRpQcB!qfJiywXL+JdvgExC<%K#=J!hHJ zwwQJcZ5IBBZ|#?qc`osQ-|FzStSWwpn>4!|?!^w5;r6&TQpcM)kI%7DmK*MUx&*kS zVdcKUw85?O%EV!Q5ug4H%eUgMG>xXi#o6iNq#tb`rj_<4dH6oxi(x%NdiS9($~2M( zhG}OIl;k~*pEl2}^^b-l4;qd%817OR4nv}zJGJifh>K~!5WD09zkPgZ0=@981FP#j zmOH|0<<(#=L%eD?s=Qbyl1GN)Tjb}`N%u;$Sfi8|WRvE5(aPYIweZAqCe9O}OjuWk z?$o+(tg~s^?8?tPJei)8;U0`_D`f1~j-`~c`AQjWZ#h3*$W6ACXNo0^uZ&%?$@6a8 z<3=wY3(f>)o-r)_IG#)zE7vd((^Bpedt~fV(72JHk z0B_=N#kY@tl5K>7GQzd={E;8xS0eZ+lXdj9FF;)45kI7xFcSeEiPNa7Op{NyI*mDp zuX?C5sUN1nOjpIBxGEdEL!MG5@9@blWgYq@%nB!mT0dwibdAqJHxBqiaoh1b(#deq zD%uH-&(Upjn^P$v3^OTqaszc0@xA~W^Tl!m#&TAinu@?Ee;#h(CQW4gJA-uKxGN|b z$L>~{tKrUF8-CBqJ;AHYIN%ewHaLql2E?0$TlaF)JthA0?*8aiW(Mv|XL0^WhHFMw znQP#l!n_CTSH+*hJ#y+6d|oW)@DBjLQj}|rf;2Fkg9joY%<_zDAe~qUn??9saZ2K5 zm_o6Vp_}FIDW*9&2bex?tk5f1%P)6gSAY=9HR>|7x7O}qpAWgRugC5bk#>%@YlFd= z;gBKQ$s%}YGIFvi&Wg4+&%DRi8D>)^jjY#$Ad96<85mNfY{!vGuAI5xxn}G*2yL!C zORf9CCd(t+^4*cPyU@vmJg)s$QlThWd$7?fqEoU+j zOzC|^S;n~d^6_rn z8jEbp?R@Hu2=9lnd?n2P0GyBbq5OyRtZhlZqbQFY=ePm59?z(|Qs%{g9rb}yf1YGs z62+B8V74x;^_%43=@KrLxQXF12XhlxE!5@Ul;;YQOx_GXeO#UB#~dq9)_ z3BC>R>U5J=+%}thIsEiVxE!d*t6$$g59z(3zAj=-M1CTZFIHP|TaIVtwd^(+MGAtq z?TNSg0-e6)xICcCgHu(jTD247!;&~IFSi|!7fWY+Vd{x+6A(ErKd-IN4{w@>RKQ9G zy8%nG7$jgpSMC$LsTjMeP}E$cdFtOjNOWOV~0k7}lhIxoFz<;5&xw(kTdZ zk9FazP<~i;Q5VX$t~aXffL%xi{u2i`utcf!pl&hHOlFVyq9bqT+hFX8vfCH!8qgx~E;_`QA!zc()7_vR)1 z?p(s}?MwK*a|yo@i~;ds{=5=$_w(moxH$&GH^-9x6mR0)$M+(?t)28|aL47{uB59bN7A_Z}QJNjB?ZQmxthHKfg8&I2#Urd{lPCt;I{2 zzjk;!Hp%f0_VwfGrpzZCzVe{>wX~DwZyYZDNG~jVp-^gf$|3{Iqd=i0P}vPnmxJZ9eoPPRQ?4e$jMR*D)_fZ-Y;5e4z}O zw`}j!hSj*g09dsRtA5h{fv#`gM&nMJ30LN7f0M+WkoCO8#ridwui$tT{o#h?YuEo$=ix4o zyD_ZS(A~$?z;^uV5W-|SWl&$nvtCR8LEV#_GH-!9(kz~Mql>=OO7m9GIr>Biq0QB? zxnRJ_!InD?cPG>5+W;>7+W>cMF2=~PMw@tj^HV%aMBRBhflv3_;h!&C_nLL5nvcP) zYZZ56E#4aJoc$DFlqA=>{=NOijEbCvZ9dKL(}g02qlDgP;LeO-qD02vQikOf7P1?& zOPSBAf4Mkk$LUh$a}I|f<%{KeK9`d@Tk`pNx)&-kjZ60_~pY`4eXsMoO^``-y5x*pIX3;&BW*yGDk3p!PJs)t>$qzWp}$pW$XXXPGD7 zH}T{8iGRVHkJj(3Q)q|P;wH_v9WLt-R1xN1;U>NB;LSRXacZ4L8jR<=`1y4j@dzhx zjN|+G4)_80%1=%Fpy$^~93S<=vEJcx1N!#7U!CQKYi6kv|AueBtb7k{&F>c8{49B% zF#pqoQxB*wOb7I3=z!p)5|0Ass3QjbOZ))tY8|1Sjd8i;58uw%&7JA^<> z0OfbG{t0PRjX$xk)qr(8|1S6pBje=1h4S~??Q2oaY|DH()BT_LQO?>|RXK-#p`6)A zCS1$(&++Y->0iKI8y;(e0q65Hlv8#}e+oC>Kf{~l_E#?4LwE=A!Y2%8>xs}W{X~sD{02;Z5h&x@*Jg^Flt+BUCnt$(xx1v zaU{(e@Xv>SwAmSlqzSM{Ifgro->ykyINye5c>YL>^+kw}`(t9_5giAfACK}^&4Z?; zejG{j6c-2E9qRE~xcOd>x2|XS;I+7i5bfTzrjd`cZJ!8pPsp}qyPSmF=NHClu3`Gw?mJ!)!Z1y3ZOul7 zRWSZ)+Xl1J!txlB4Q$Di0E4B7866w$WVrK%O!i=0i zVZ8G$Uh2qG;YPgf%oj&@xDe148pDNv2E%M1UCts&Jf|7T7RAEOOi@Y5*J+|7-1CBUG>7K0g(H^V(?nNjW@1O6BV_TJ|0w!qL5N!zb%etahpnOr zUFs6|lw~d#AQZ~tGOt?%7fK^*D^U9awh1sT9OR4b+-3)3;UJ7<155fTBNmQ;f7-3u zFCyO4fwvtnTVSkh`vB@H*tP>lM2jqp^>7n%aw=ac+ck&@sr#{}a@dElj%|jN9irIE zgslb4AqtH2)>AXwSw6I>3EKdAK8#^oNKb&47s57?o(E$)vKjPj_s!xFwgvPeFvNlT zS^6BJ?fU_?o%CGakG%Wt++nl^>Y2i*eyO=a4fBpGC*te)7eEu|lOBm1OxWauB zhqb|o7qP*>7u=|sBQ{zvmRUV^xg4AAiHsl84t+LwasyM3YjFX`LeBvW9SeP2MBLci zd7v|aT^qC+*iO@pc1xBSs%>>Xaj+DSOWKLE9qvj#C*Qw|@6u#w1MY-d+cV<+9^6xT zz4tL?cEMf1vNW{#tk=!Oa39J~;*vnNyGgT~;b|sFeV#Ck+qbjXKCoP%y}^idrNo#C zW7$G`lg{S=1TAUPpo?g4aL@AW#Ej5SB`CM$v?G@Qk56?w!u2B0L_5;v{2zw#u{|=5 z^tf^(XhAUOe%$(ci8T?f%7;{*;F^dSLdWInIBOzcNX2%yVxo%0TjrVwL?de=V#qF? zf;Nm8x3xh}g1X+dhphLtJ?zG}-yZhB&AN^CHu1XfPSz~dI`qF}C**@;NhbO>io$=UZ^G5m7RuA&i z$rrD>vZtTw4fTUGE<;|0G!n*dzpMRrc{)+;w|fb{wk7;JmhkIZ!cWgyi%Y{-pl5vI z{Ip$;^W(nSdf|L~qdM*VOYrHhMX3&_YaQZvsa~tVuw1LaH%odJZ|3DV-;4aVYab@y zj-xjz;li~FBXG0Kj=Fcc>OJP%``mlKdtdI}SGf0;?)^OXzRJCy@7^zP?~Hq2?cO=O zYx#_hKSt#hwWp(g(K+m>U+o-r-tlmaUy4081b5M!qaLQ)%~8`{qdPN10OfS5nG$@r`f``G>8PiaB=M*5eW--> znb!U?GjLDM^3rc>Zytb~<0*DbD`jTk=G?GzC+6Vx?LUl{CJKP@skY77r#=_9S<(3u zXQywQJ^maB?6c)HBG!hWY_(6#Z?z#x`1WmxGTbb$tTTvrEq?4%SMcT&=f^sV5BrWN zR%QWihChgR4L;!7UuM0=__a^E6@HBK2!4K_lz4<|TlPYH2fQIA5#CTReLrmnbl#V` zr}Mst@a^l{VYt1yTXP-Un&19B@bw_w(H3rMGqIy)qXa zZ$HmPG5dKiCVWDBj{Y!)$6GuecO8dE+0?bfMzxE0nkMwsm*e>-$m6XsJig51amUg; zZr^d7JxAMjSRU0@d0&pW;?F`Bea-Y_Co%<`YJlA>`WfjD{t?2{7PR*g zndI|M6~gk*?X@W`RM6@L{chePWX58E0o@z0e+8wT!=2tE`~({s#1%ti%fVuPvg)5~ zFV>K4^`pKVk7I&)Dr0D`mb~B@CiY&a*LZoOdx?e?Dzg1Y-i|>0Jx%qvURoY{&-fmZ zt+jbx2R<}OI4hx&n=az?Nb4u<9WULqQ>kJj5mtSMDD58$w+F3T^pJ+0SgLs8DSM9{ zV;-%=EbV$s^`T9X-j!~SngOZ=k4um3&+jEb*yKBo@-<*)Y;7YP`6;UVs7FYKu_PjE1f=?%~S)9|b5_=ilbn1cKeQh z6E}}r+P@tGWA0{do{tn_M(VrReMKQ|YwLWrg7wh_Gv+>O2_Y>@v_~N=GZub39#{_F zgS4=WaK4V;T6W%xZv#OQ=zBqfPqp35d|!or>YqA) z&LOz+=5bb=@4o#7@!`x6dse}p37x5YZgx`a6Wj`y{HUYN_?=B2(q5*1GC#%cfu8A_ zuvdca3y?Re2lT%mzg0=x60oBo z5Oo{&F-UxwK`vvUn|z^OgZ-v!U{Z+(Nvo>gLiuyQ^v5JTB^1a%j3LGjj6aXw)+qLR zwzAz5I5y`yU8%MGy}v@7T5kER<@T@f?U&n+!>w{8-oyB@+33M=iIX1TM?% z-{4(?54h$D^OXN%J^SNOM}8#+GL!n9GDqfkjyd5C=Ex+^jp^~)tIvWD(Jr1RCYsgS$`i*d z>HXV-@3sIT;AM%nB|ydzT1q$wM_u?l;#D2xx9aE@@a^m97vWaDBHknTQAfXoH=j5^ z)fd&#F9Vl4`W3uu@B#OAlyRtzejVRIoZv7LCv?>J(>Nc9(b3O=P9R6fpY6t10ShDp z7~74n0d_P5ihlkhVAc9byn6a+{f@7n-vA9h)%wXiJqhi`KRJI-KSR!9^3?AKCs0R< z8!}?fQZ`3n|C#uHs2u{w1bz-C;4XItckQ-%J)GM=`M?Eg%j~Z@{y@*{j_BOKAWhUc z)d9Ny6+hqRr>#S{>f?9t?d#*e!Cey``uJVI`Na9@n*Xz7`&c;r0qMq=fV?rnAY*p_ z6ZB4A#LvwOJz6K;9|ZB*J?!6uo4Wpe_x>T?Jokd-AGtl4J2Vy8xH!jRXg*f}KWGxHX@3kFQb(L{PGLTm>oGxa|91BkY!N@PykkCS-m$;IJbDbjXx=3y z?hNp*>>15IEj=%;9<5(2LF?&m z&64sZXU&0lJzBqZw6n$MlAN;oAK`50KVlF1=CQ zq-nYZf$=bY)velk0rtz%}cBx>mf=B!L%Q5AI;WTJT1b0#3M&yU{c_w_U^CXjX_@*KaqPM!Mae z)>FajO1O2M8`rI!1b4W;9j98;-CdXr=RR>px8h9L{O0%!^>i24NdrVT^P!Cz!qrYl zw~pa-n9TlC5y!^4eY%8Gm%2EP1DlXzBZ}J#jgq#)g=hQJPny&yk!32e2Ju$gF4Vnx zwu|*UzU|Tsx_qi_7up!-!FD;-`E&jC@Z)T`!qb(O-%hp0w(rt%O15PVVF7w@wv{*{ z_Q{jMx3+PtQ|MlcpMU1q>8}5}4sf3+<4&Nzc{1GS!{1G@-*NwEob0O+lqA5wt6~Y&K_fY^g9zUzfG@+1EI6_ zKv?1JH1Jq29O3*4-&l{V>w{P?6R!30GZANi2VS*5plR3$f2Ls*-sC5WAJV0t#wqFW z;-nwT68&u&6XrUX4vlBCi|1J`o@m;_cusa}k{dxw$FE2ir7sw#q95F-s_mU?BdBL} zGNF2oV;)qh?-C-fadRBZCx0%3Jo(L)~IIYIqUFeFut0xa!I<>@h!3b_C(Xn6mBZ9BPxP>7I3xB;uyHnSJ-)S zW)b-{0M9u)-2rL%Q4Kx3+;J>SHtXk0q!a=M#t0R zPUiQA=&_ITyoKHVB?cDK78g*`_YKs^92?w77XE*9w*kx7MUY=O?(Nbp?R-l7^xlJ$ zFh98ixcao5;JpX8NZY7+pj6^STALTukaFb83i4du-Bz85dfA1v>AeFszwF%>l*P^( zSs*4S3;Mx2Gt{M&S>O0vxG@eKbN53vw1W!$ zXE?@#bLo+OwxbvGjW+xpXp=a`kT9J?1APPSd%80{{q1{3GkyI-gZ)>?d|9&E@4{^z zed&?z%f|Xfx^dT~9iyxXpXu-G7-=7|G;l9Sl>TTM_igMMY#-}I6VQ@pT5APcs8WA{o z8_9Ha_jjkeyE0@c)89R~C*A9Kvi|$h?H&Eyd)kL17*=+J?diUK-I??i!`fEceCGC=ijO1TLRu;ZvJMz`S8?3A>yk}%+ATu^N&^`$L=n|RX z-f_y(`gclthDOs6;s^xcbfU%Msk=RWX(rt}Hn=w<38vgkgUG7CeRNc0sxq_iVdOd0 zk@;cgYSAr_x!OyhyY3S8a%ZvBJ6RfBn9G&&IQJIEkmH!^{o9xFmb(9ZjFWL(llBsy z(e}(0x$Va|>>G%FDLg zD61-;t%1MCs;j?Adwbxo;jOIbw=?jQut7R@1#k`Hxbo<>1vnBmk|y%qWn9=%T=Z)N z7^Jt?_j7V!-t|jfrgNn^Tua0(bn($|*bFR`D`M~le5MTuPv&{Gk*qOnB!L#~&L^PboW>8^lk}$4`QOw?`j)$J5;%nf6Yp zz!k0|h zikvq>2n~k9H)#9qx%7Qe-j@|uLFI!!3EBWyyB&vj?&!{Q9XWN-p55Q2w?p%msrd!x z*MbmD2G;=ZEffzG_9I+)H`P4+PBKHYxzWnPcwgaQ5o>;!ALJELCHH!~Vn03ur{%I5 zJ1R3)4S{5Eet+D0u9}R9$(vBF15U2-_mI@kT6TVO9AF5vbsS*W#S>?jQLcmV$NgZX z+`)Wt0cV2{b{Sx3Pu(qEk4bvb5+p|e*9WqyR=m3D?QnU^u}73XTP?XVM_AGfWDn=( z7UrB6dEj{l4W?s(w~1?hk%zR$1IoqNU|;7@S9b=MO5flfa1aGpdB5AmFI{@meRv`_ zZ?7rCa#6-*bvS_A!s+;hdc zl6HxZ=Xpq79+NJlsGgTi2m1+Dk3ke|2h){x>C!#~t5DvFM865=r}v_8U9~a2*}~*( zuB004bbV5Il)L(7kMQb4q)qQ4%)xItcM)n?r!0->E^z!GV^#gRgE^TSWqBJHT0Qw$ z6bXsO#Xkjj6Ra`nFw6S1@FRpE+sp~;aQqqyY3lmB(3xOA#kPFv40R=sxT*V`-zCp% ze~cL`n_n>YXF4E{kMZ&l@;4Wd@jI}WCY9+#G6E#!rSPMTnie3LXdjSspm?vvZ zx^%?m2F7l;tGJU(%*4CNda2ERr6=ngq5@V9Y=2LDAz6da!r&iqUlUKqlRXPRCfpiCCda9HU}d`9oJf z;{G!3NsYFJLsL^YFoEGzM&PTf)0OKI;%@TVA?2y;@$}7x%$}}3X%9Qv)1AFwD&nRr z7%qvld}b6(xu?k+9pd8ExVu6xU6u?*u)_a>@UsEE{P!YsUv8HMMqkoBaDx3#`jUo z3#%>|lg>{Z=;URNP~ff{4%^~F@u1H@9vecOfrZ&hettF&qs8je5s`Ht3vFp(z7ps< z;cLw(CX#b=0(AOEcnj#w<*vjc=Z<{V*$lLkwwS)T?6hl+z>VrG{m%FOSgc(9Kg4~8 zTg_m_#xzna;yy7=+s-8HF4(yf2ht_1!A9cHUG&Pqu4HHF$b6;PeRv+c6e4A$EvY>A zMP$*H?9Y~_bHm_s0Ox?fsI&2%+ksXmIg-O|@~GaniGE&(v`!`mE2vK=aU-Pk(#cy3 z(le9vpnYZA8TWXbMYw_NHN}!%ckB7h(=U&6m8<-YJqu%Pq|4g7SnA1TD+?tIMW{SJ z67Y9H0J|@MT_~^@g6I1s?W42koQN#12kgOQJDW4~Ct(=0mnLQ~Av8hqE+2YvPv$3+ zHWwhzJT?NL57Wh&-ylCelN?<@uz_s(fW$>PJd)fy*@eYh)6=<9cY()d*)a+7@#Uno zL)h&t&gPI2R_EyV^<)<=`lQ;5?gr`kX0o$5H;fIu!^n1IlAquIio7eUrl3q6M4kuQ z?`Tusznioc(a_ZJ%n{tNlbvODTRD>FN0X!3saywiZGbzng7p13DSFmloSueBVBsut zKTEh2=*MinSZVnr{sxd5G;%op;5TodNJTC33O|VyRA4^{WMROVjl4m`!yDMugAh6uQ{MT(}qbQUXEqojJTIJ zQI==J(0-4x&wgw6JNu8ffLHc|>Wm{s`(!AQQGhLzq;spIGZN1;yYW&*!#3>f#$3a2 zJBK-8=8b~r628nI(!b5oKN+h)HbTa<x|W4s-=6NqyGwwbPSDfc4eS_7+l7IEw4=fYaGr0T4`<97RUgnP8DV_ z=K^!p_4G$&ubtXh3Cz%BC&i{j1DxwVoSPVukuhg;l19>W;B?t(XM$MUgYc9Atr8pg zS!oyS`0T&}3P@ll5{5Z1+N>Q|RHCB|Qa@b-epj3RNwt$-4tF!kq1a|AWVkJ6FD$;?EbSB?cWZmvw%)k~M7BEnUaelWWnO`_ zZbzR!H-Xs#mAIojh`Z^pIh-#EVDPc@iQ6x_FjSa5GKytGxk=l;Guy0PK%C)N91*-?V&q;w**rQ<>&Vfige}we^IN{}<UFl7@*{OiuYvKQ^go?FX z&drUZD#K=b)G!0C{v!?J`rufGki}R{JV6&HX*M|g_F9sG{xl`sP=}1AxWeyfuufc^ z?3pchx<ZH)`*48zVRLLF?5jOU z0I>FF@B7bpSb;2(sC8kt8)Y3b026WLF`UCZtomI(G~&Fqj>Q~ZZ@qAsqjP@IaBlz)%|-^v zgLysLj2sic!%H*HRgaprOk`x@45>nXQ}!|TctrNJ)!qc!w5j9I1qtT{5KUyBz#rG1 zf!ye3d8Zt|40oNm9>G3>Eqme>66E#FEZ8*q7gSJMaJKMR>k*S zsi;5tN0D^FXpXqs;9tkCU)J3HL%36fI`gf)NEGaWbbegw9m;WoZ}YjC7Ohv`f;?+6 zofz3IRJ842n9Xi3aAbbM4Woqi$`)g1gwWo>w6JxNk|hss2F~o9(B%@wLG9ffs`oq5w}ss|G&OXnkejTsW4yL~m+35*Ec#-$~a9IdyRD z0Q2!d!4VZ2#w=jaemoq)(+Z~?KS{W!LXtI(-aEj{ry3>S95ZY|ZN9w|eh;slp2Y|- zn(B!ezh81U{AN~7&uXq|ni=2MJ@__9i|}s(?kwY=ohJNWLwHbzz6+QiAMqXq%;o%u z&Z`mrW5V4k6V;J_UnOJEq6JpjZJKBo{A?AqBR}DK0d^OJ?xK8E2su+ z_-F4!eX*u%e0mhhj8cM050Me|VDp+@j3G&RmH~3odN+93vZfEK14~#ZSztP`+AJ)i zvulvoqv#2U#be>5HNOTrB1#&L^S1zA0WHKnjEy2eKZfvyHSAMJ+J_2hw*-z+IlUsz zLGV}Z$z$b8*uNtD(3-wUD8JM1Vqo8qkHc%E99^h%D4Xkj*$m@)7cV`Fz8{unX*kll zam{{Qu!K>EAsL2t9R{1`_drfJuL-Mq4M#ic)y%J;KWsBo_3HLDeRJrnl#869DS|Gl zWSyH~oOi70D|;B2o(N_CmNkR4-?*Y9sN?Qh6SZeav8K!c(SgeTGVAtO2O)}Jj5Wa&jXR)i^hRJ!iqpL4i6cKJTUSv_G}Zw~i# z>`ejdhHI#3Yqn$E57WYRD!LZv1EAN4v%oZ;un&OiA2PXdJ7z(-;`|#2I~I=TK?f>mB@XNtz!!Md$L5d~9(3n5&re*R#;C#bB6& z{iV!=tQ}Ilq~9j&W<8WIOlGF+ni`F7v%)7iqV?FZGsS*Pm=AgR+GaAB4h&~H#(K<8 zcpj*R#c0Q&(fo9f_6D6;qu;Mx^tX7@Ac9Xvz9K?Ig*Ag9;OYt#f38!&bIpbxEi~uUCujOIAQMd zXhT+Y`aakzF@P0v$FkFdUOc#6OxH(ctU`ryYT&IKw1B)k17GvGiTqT4A~RzbaIr7P zK1afQ)Z+tdWW2S0SaXE^9opxkywGZ3y=N%*2BYNc`H`e|zelfbpAY$ZXCytfb{OOH z)-OfI4XkbkVQe2P6Y}+V)>c}52xyAEqI&Rvm!{!xO_hxo)&%N8GZINp*f+N6u(h?0 zSv&rFx5uor!v26@ofY#a37J0V#ovr^Qrft-k{P7g`jhCo#Q3#ymXF%CbCws!pN_Og zbSJv5Pxa;@kEhkPFD&Mp>k$7WTIQD{4_Jx|7*0K6d*ixBBxH0SBJqs|qMAVP{ZyR%9 zK2?u7*l~k|`MAe3<~zd0d&g#T94lbDmRm0Md=s{}{Bhn<*N1ZU=5G*}xYuKd_A_MAuN72OR6R~gRRadEnvaFV=^!*eh4 zYJ-~rEBSIcYmTwZ0+jrWCll1KC@@pA+~#jT+GO0tmhZ)+uoe7^$L09T=RlL=FKVAK zZl;wyecq+f^50+{ac;ZjHet?yTqrl|pD+)>gKqWzCG60r!S2Brl8l=uZKbbaSDF>( zE1<1Bke=f5Tk$BhuK`bKa;=EsRnu$$&42W0`nc6J{|R{Ua>GJ3^gnP&@0fl;$}$G? zErg-|&R|UDoJc)cM1#p1%$8@y1skALDij6Gc#t{Ce?fSCUe`lR_?m*&l& zdA_q#DSza`#0)Iw=>-fhySj?-2EwH)1_^rdXfpZ!iTorxs1Z4>HhJ{X=CW)ow7*CB zHJkDF@o_ZMRdLX7t@>5P!?dqAvxp`L6xdc91g-&WK3#-9Gxi!!uxFEZb{KUE>udxz z;nuhP8)UFW@tnO(*!vxfQ)MjU-vexWBExiMxOSXtc%FoO|32XQT$R9L+u7m-ODEe~ zj39YVNF6ex+*=TU=|MTFGwv7(7)xhkLuk{X*8&}~wguCOeZLiJ^;j6?3OffD7qr%E zdtggdCUJy~fL(qvJnEvU`N?q34Qu*2m4}XmVC$pZ634$ zhCG<_VGO&;WDw_ES^J?3i+nlcfReAoL%#61Tby!c*Uu4eEARrKUNEL-=6((q%H!bBgZ8*$W*x=md;L+W1IzJjJ(f}`NMc$t+d$P@Z!B4@k)=8 zR(0o0Ht*_!A0SWfK-+9fveeT7t)C?_=;T1U8GELy#__8}2F5@w96M!7ZoDkeNAlDV z!ngUdYYO4P*b~#YI+>X`e0YSD>`0nTH}j@BnGt2`D$WW2Y;T@}I_igB9kn*8tqj@* z*YdQXJ&5+9P@A|sXM7Dj32S0De*j}dYXw*RW~sI(v@v*}m)HZ41D_;p z47xW~xl`hsFp5vP(Qdo=h{dOSCESk{&}M?lPr;vUJ8{o~;3mypXV0knYv)e*MOy-$eSs-0Ya=Kq|o#!=QvBnE!ZarZx=QwZuzpyM_Tc z>=Ux>6ZHotr4=gV78hWuUL}FsV9*`16T~71@|gl$pN1sj+*2wp%u9sw1rDVRWjnPI zzeTj6@pe`Hu#Jw-MbNq~!Y4aYj1MihD_0LGN~9reLWep zSq@4ros=6+;sf8JJ^|l^H-zwjZ^D}d9-aGV8Cq?ant2(yrA$^Ku4XguxDV5}+DqSB z>KC+I@L-BEt z&ozQ?<)!Do5XSUKI)qr#YyymK#_QM9X9KSJVrhX1v;oz!r2P3)*-)0xW>{dK<7i-? zliW8(IvN+p`?kQXa#r5RM~IU$=escEn_+n7n;l20t_SnjrU>I{%)TLQX%{YVJg^?z zhHvtU2YxF~W8ZBh%Da9iRz7x2=LKv&;1;_XWTR^*h~L1Q?RX@j2U}t0^RQZieM}77 zWMHEmpa~g{H}DLr)dIJ6&vx*$2{+druFTOC6#L~Ofi2iIhpz70+GWh|xHxo6*9 z<19ohisSK<5|;69H4Bxgood3NW^{h!eY=?)pD4R2O2cYq&# z+DyERA9ZDTBl3AAka@m@>ctme$Le>Wd&tX`_P^$Q(=X6o z2_3lDh1>1Ik;Y>;DUGIPmQ~{M%vJieJ3Q4jrkP_Wd{fu#I7-TN0?*fP!a12l{)xvo z^}E}}-{a^;$0cTq=rGM>XYIKzq=9*odCUU}O!s8=BCI~k+3TZm*!`8`dF*Bi=2-iL zR^<@)>9U`3Humx)F~xN$;FyOgE?~rg=;`3IP1-GA9;B=CuyJ7h9l~o_TnXc0ey5e^ zAmCazsQt%s>C@ACQ^T{)ybR%VOo{&dQKqyhUyrpNipz1TQO1G1OS`yy+HvEA`+!IN zp`Mc_1}wxLQTN!BtovH$|L#V*?KyVB2Y3kMPnzes_^)#Dlb3fq!=~F$19_>JhK!?e zwWC4$XOTDPCdcsV(IGz}FDuN1qca)M3D;nO*s)f(|47p9&P8EcLO1t`&T+jn=ile- zd?a~j!g^hAC!^FKgr968D_;dpI;%~%in-h=m%j&o&A#7gbYJt@>UGX;5u`46RzBAo zU8}tG`r{1&-qLHDTd?kT;sC7esr+G?TyS+M)3Qm|D!0$FBh9(_z<#7Z&MdO?>2^Un zSHsk-nckvnsAy@~8KyuU!TKtlkC&ykwm(Q2Z#T7TO$pzD`5C)xBiswR({$q$ATdmZ z{sMGkmx-V6;Ch5MGurKDWNflsJJ--(9{4{h+pI&!9SN~9Z7mvW` z>D!a(!jW#B*c)=ih1)XQ%$PlJtS&;E8&k7)={0zD@vzfjt=k{&vbxSU>+Azg*JlG= zN0~vI`Dh=MZniUYvs@NET-IUq)3Ye9t@2|%^i-5tzw9xLUl;jhuj2SwaCEeN_$Ask zwsZWcZD`|eFo#^2!(QCP_j$gq#xG$$yv3&Hde85D*el?NJL>rzM%5cLVx|tV4g#wb_fZ4zj74=jijHytRML{ukCwTo;V` zIz1!24R9UxW%+&y8k9wW+1(eko!Abte|tGWW`XT*+)9RGAgB&kp z{BnSmi<@^Ep-(tt2eGZ~oJ1VAcyZW1_7F~{G*jBj-^<~PTu z*hbdvBj5W{Yt>KO{08n6St1(B+aYg zR{hvw3H6*o7V!5X?Pvqi`I|0DuIb!?5`au%DG-|I~viz56_v(z_n{?C32hy^lg}3R8N27KU9Qy)z-7lhBp? zDBze^$&gE&MLme!j_m=@ZiiPXJtXv)h9OK6s zP!O@~*bb?HFKxGvoNMa=mRpvkhk#FA{VTo~`EAR0AKI_5TqVq3JG_rq;c>o0@mQ~X z68>5ba32@-P5oIm{?^g?J4Z+TP~D54Umg)O(ym#zwf&iAe>WAS{TWC5vyL{?^>bG~ zHC>li@%spH$ph)}VOyy-260tam=52*=WOGbBy4KkweX`q^+)4rb@6EZ_*KERyzhoz zRBlQ0b@J?FPk-{HVZY&cBuzeQKXH$jpJzXOmJP=@^WvXfIHrN_m!qB4GrFe6+2%&i zsz^tiZPpfa^Vn7|rPY>l{%z1kUnF04YnYk-)oOpotSQ1e7L1JzO^sv^1>>6xvli!J zqK}&^rHkq%^y!EFx`AI#Eq*sHLjMh+KUQAn?4m#CPrJM&*z-8z1rP1{je)-(-1?LL zCWDD9oOT25Fu zTS@aH(gbb7Ep4l##{gGczRA~PfRQijwt5)qskPlhcfzo2sog?*g=Ng9+1Kv|^HZT~ z<7L}V+g#Jncz+HU%7)l!YFqu1u*J}JQ2M_TS}Ko}`L%P?U*&No%2^{^glRb19qgl# zKgMnGfpu#b2h&Y|<<0Mlo6RT+;vH;l498DS_}rehVp zsaw6S{+-7+-7Dc%*-;KEi;9yY-M;Kj0Ugl?`14`CrTNOX=g&cuX+ITs%*%M2J9ByG za9VbsVO8vy?`mta_S%y@-q$+b5uKdHq2m--1%TOpZ2on!B(FS+cA6m9ZeN4^Y7#uI ztGD|c$P;CHI_Tk4H{+Rs3kbD-z2mE=5U_PtsD>b*5zcmnQO2&-)%&qQGu|0j7$hS3H- z)1`swqXzLFJo>Z#t#v1jy+%b_9irf!fA-c!LxbHGTW;MkS$lbwwo8^f#cM1>MPfD8SIyd9; zWpC|Fn`W(#bu5-Tp=skcOU171J_;?*c-=>3l zqVZdu!CiA69s02@Wc|r_eL6kBqipu@y%@&LFpM`YOrHyLsSBg^*K4nttGD zxmX%^g&72HoGhx-Fbq6DO)G8=^@g~Vv9>o>_i&m@RhVa>;nBK)d@=2$$#2#L`+%>y z=<^-Mn=+R>npOuAhHF#(Fr=yZZRw`W^AIL3jf!XaZ7|Ol+BUyQhxW41U&h6){Jskc z%yx+3Sto3lx-PVNu*3!PtNy&}kznrw!|;Axt<&jlGIO#{LdUKq5uZNXr-5Zta$q}F zBVmPS)NSjLkQao*I7za(1s|{j-Sb#5b}|jx{E=^_(bgv^GXt2)lm0F6ug19saLq@> z327wFY?VK8eE$O6+J}hxCCt3Tr94gu;Eq1d{J{PgteZG>-72#Hp0KO0fb7jdEiKwU?B?K;rc`zF~w()~jGc%MAS4EV6Ei1-1fZ3X>k zp9SHn{AkOEezvV6&DV>~kTCnDFK+wMvi1mk@jlh>U~C`jNh|hzodoI*j%h8(fo_EH z4#MlfXCzq;{`-I*jd}?FQNZ_L3!BI#E%y#4{(v+x2XnaJXts;XwGlt%iLsvKBK-8h z`1Wz-srCZPAZ0>(z_#&8a|38yiZpYtHd;6A?Hugfm(C3B1|pJ<`)Zv|sjh z<6bJo9UH_zmUw{2ZQkDQ8$mn3!Vxj)u~D;sdldv(UZ+owZM2!Lp)p**g$`Tj2zBHo zpijF*ZKj*xrac@@W6InNc>Fp}Aq&>qdGQUSkZ;5wI(SPJ{g>9Ee=Fe11N$fZRr7G0 zheO%d=0(c90ywm3=i$E*Kjg?UwVm0P(8j0T9Hrf0UggpD@xpvgnb!bE=XY)1bM2bl zZ$fv2DU9>X619ohKg2q>gIT?!3hrhzDQ@mB1Ut#sfu=s|v42H2(&0blXZIkYryhBt zI4tLX3>tnOGL84ac-J(xOZb#|1MpOj6^H4w{z>yj_-nt5VTr>zRFySxDN~L|ycxKf zUrLL3#IgP2lzFQcpP!%nW`F5zRq?UUviqs=@x9%Pk9b$$p7iSY-s#cPu`=d0`#~xT zh9Up&0fw74o-+F}^pI|j@6+7^ zx8B8Ic?!bIILw9UpEj7e@r7BTE@SoY2d!pPnnp)T_P1$2>jQx6v(*H2>hh(17w)TJ zT3Ktcuks<#A&<--$!D3zZE7YSA3L@aj@4**%YV|`i}2ddr@TpnKh`J2;V+bJqqz_G zng@!@vghM*zWt-X(=j%mF7=MMK7Btd$Jp-oc+xniKg6qztI<3VgI^twreURNG!Fv* zY>fY5PD*r)aVS3f*^Ebj8jiKXLkQ=mU3p>{#beqZ2A-Bl<=>|t;;t|s_jvc^r0I;x zrqO&dhIhuHyu^oVGJlJ3x|UVr(J+3Rl{b!Pe+pq<610)H@er3t;yOoZ2NMSF;qH-6 z9E-rZ)1HL_7;n^cZ74=#(wY5zUASCQ{4u7?mMy@?ib!5!(cRfMDl{AEmKzf-y_Iy! zk zjr$;bGgo$x3_14-y1V-J=zWombbIMsDdBmwrR5uUe)THfXM^vP9N(V--<>!*-`&@t zpWxokE$F<}6{u%uk6GIUGWg#pck+O(jE0%C4++toGq2hU=d=;Lagjkz`+i;00;Y@83uFy3}tav05)61#oh8Rgf}Xj zAg7Zn9n3Bh79ye-*f*W=VSYY+0cpaWE_$zueo8*kX5_rd7lC68BC=O}OI^=8twCVn z9=&;BVSN@a&J-N#?`qkvUzW4L5hVE~p+$OZE3oukM%=Qq_KX%YRt*6o(k|(mHtGx8 z0M#FmIrgR#$OB*Alz+9nnFn$54)Vd1x8{K_Tj~(=!G}@aTAshQ40(TjnewLHa6Ebc zToCMF8&JhA2?M^+`RiaiOTys#A(PJ!k+T^1+1#d%(k{>GPB#N?_b8wVcZN@ zbCtLQw_S3@AHh$hAz%-xA z=&J5OBrNU@L|ZPyJtABmjC@OdU*sr+pffdm{w{=t4c0gnlAG*#)5=)H*>*{HUt5)U zkVkgENIT@gcxlTrkM+m4H`JSz=27s#{=g6TUZkJ3)fhI4i}eT&_s0Ql*q@~VuR2Ow zgFg+=xY?`v3Bsw4Do$L#>OX*|v}hynS551uz_}rE-q^&r>H_Tv%*A7Ko;$G5=_%pp zTg~Hitpk;!TelAw_7Bac^A&7B3fGsQ&voc>&%GAzD?Iml`pXLUFw6$xRKZ$^CkuDE zUL`zdU=wj;;F|%*sX(*A;oDxETj=MV!$q5Wt2s0}Q#^z-;Uvm5r3g?*2PBSxFnd~c|um*e1cL{7rO0de7xNQRO<~gR)&q3BFe~$dn2WJS- znn{lh^SH77P+Q-L)&u#W{fS%Lx+vCTTzBwG(4jv5itokHj%D6`5EUEWtox$%-wN|z zz*n8&8gAmT-lDGa&3$<0WtMh=Z_rjAUW7F~Azs3y9A1ONlkx(3?C&JjS{mOD=6q2H zi(k0Lrp=9$alO2jCyrm~njKqbC(X&APule3WBW>}b(~Kp&%;cb<#JEd%*54_JC$fADc5B3qEYW(E>jH5~0`_@W zdtnX2HW+NW!#NJ@J0{5{VEQa)pB3AYQxS$~YC)Rf$AowiJrBw#o3Y>%j3I3d|6~`Q z>wYX8gyPP`uFTfra_t6&Q z+c}`YwBy10JiqP4K^d-IqP&wPJY$OP6!sGpc$AK-yR%nQo;X(uVR&vdWSiUq+WI^V zYfNT~*$Qf_QFkIu6~OWozkeQV>wu^G0(QOgsh1TG^X@s|k22Oa?|ir^Tef*y@g2&# z!CXLGgrU3`M#l#(gq!1O+J9$w{b`#>dTiOY1NVWTz8FQ92|Y$vH=w_q>26PN?T7qq zT``KT?w-K`=SE*Sv!^@VulVRI(>aDQJX`?niWZ>>h&GL1Ws9_+@g!D$NOqBAtjf!0)Oh>$5D4^y`<&#D%mrfY^Lt|^+hM#?I?ty z+_5$YFxB;!AP%0vrg=m>x+(b{;OUs(>w#CT+p5>}!Ge?5syYwH!c@?dcwdt^KZtqvV+5wvB{X`kTz zmvYDu%q_B z_3;04J!JhdYz7v}mCl(QIwI6t>So%z|8WGm`4s5psHdBk*XU+M$;Ki&SEHTmXQ=Iq zy;s=xp=}x4VYXxZY1?FNV$_m|U+obeFKidFeiJyMJ8AB6=YUxncK@f2+h}`9TKq{H zinqo~7<;ohY=^7EMe!TW3xKb4LUH(E+EFar2uvHe&4rE6d44TV35qH_o;_ zq<3l1%`?|IPQtxKpqZRQ{Q4Yc|3(JKBWG~k)Haz^ZEfAgd6xKjVK(BvT^M!K7NC7r zMBKE&;^+8>2XMy={s9~9$3d4yE0_5a&Ot9#yfew>K?~=niS@wpbuHW&x1PzDdE3Zr zb|S~yE5bPgoVCwAVkLK7le8u5*RIFh@%)h<9EdNwGNjM60&*&Oa>81|a;B3vn6Q17 zC~@#_6v8wzU6k>k+@KPsoe@n}ojZf7sG%cT1+g;3{$cQ?`;-pi+uF3Lb%*f1(MDS} z$6knVu4hgj20rInO4%brQ&kw$l_b(}1UUL&9J-35c80BGRKVaCc^I!NpreOTa8`#Y z_1v1y7b0#==k@qzI?s>jy}f8s?WfV#7qRdct+{`z0fPE+8JsrI0 zck1bnLFen_Sv11BJTR|rMI5SgFLUvA)T4`I_2qu7Nb0JAHhrZ1a*y^a9PPU0BUDJ? zH*|*dUg^<$m816^r&qVY%|7FFegZqtaD9%;x0echeB9ldD0QH1GcdkjGgx4^0S|f> zNKSQ(a$ju}Y{A`mI(NWzeajm2EpGSm_It{1JxqOBq8_B#o?hkakyt**bwb!#3n~9)D}4ye(g6_KDuzoRq`` z|GImF8zt<;2(7K%z1}UwW4^1c1{c&45}bw+k?hgx9+#gZJm)enUOm*K*+G z#XLRHdor5W8S}@GkpX;m@U9t{j zxxEANX`S#!e6tQ3bh>0^SX<603!d$&f*KmX21hDeeR&gTplpRTFL+~KW0gqq&0gAg zS7booaprY=o!H&WLq9PiD|>F_8VU%l8V0F}&GuH8=DPCJVkR|}I;_kozqcX0%I_{m z>!_38os!;pId)g;1;|Z~c6J3ybdvQ*lNrI0=0#k|Ts)9>YeC+Q@M!ZiQo$uno@+Yj zm1CSY#&X=1o5vui(*=%izC+@df`Ix+aO7$Z1RnEUl!e;dHqU3WN>QA4$ue^A5iL zNX-{>U3(;%W60<5qnQ44eP7&~5%aU-7IQzB@?4k8zT}!Lt3~!zMy~VV#^IkmW`7&H zTk=7Vm;_UP#M}fO zmh1P9((_p@_g#`%BWu2ocJ;D;izkvtdd_L<-I7LG<;gD+(LUl-RGe&VDRB?a)J-(b$8fz&jB{&N!;r^eg7!xqD|Vauqpk!dG{+n{M?W`gC3es z!;S~_4Lfq{dFUVXJghu@kLh50Vjc*r(m2O)++%uF`Qh<8WY9~)2d9Qq9K+7X$vN20 zCzKryk0+I-@j7@zAT2md#s|Lz>DUUB}aE&VyJ zsDIN|6lQPP$6vCJzq#wa^!z`&&OuHcv|V$@-_^++mXQb@a^wh^FzY%YBdJqv9N`75 zcu6G@>(}rt=Xa7b60bWilvo%)q;76boyTtkEJ{9m%1Ay_@|!yGg38c&^W*coc@uBz zlYI0MzeMA)YLvaB%>B32w~fLv%HCBLzpR+m%$g*h_lQg7c~5!zuUsM*gonX1a&$aD zPb9{U7&2q_EMM(BH1cZdot!9}*>BC-xyqJi_49qQ z+Qq%MWMQ&h{$$yFzZacTRv=k6CqAy0Ew5m*%p0`6Q!M0LACYCU^t>_F%u!Z2S+;Ju zhhGc)xOB2zk!0D7r4-$WY4gL5k+_xR_zR2@x!xJbg~}lqrDgu`4>Etul9|q}j|u2XIu6yJC-HMu+e7P8-=P||(U-&| zeI4_wKAAgneEaPm?D+lvMRsQD17nA=DJK^VP828;BlR0{V*lT){r6e>pR)G<%i8~v zwf`e)|7X_zFZ+l|*qx4Ra53VVI63lWj?Ta#aQ&ycup^rfx%#DJ9=L>zeB>UkUDQP^ z{z-oDH>WO7;?`VzJGd^ML&aa2ESw6`8TJ*j4?Q6#TUJI!BF&4#)unlOxVqf2I#_1z z7$000-@zMynOXJ~$+E9#*1lNQzIfKYgnj5g5IgV0MV$N{t}eGv2lvbE)4_FV+YTo) z?Qh!dQd#zu&f1sB+Lz7Rm$Of|J-AKOMNHB%qR-)TTyn%GZ%3r^Q5@#vq>B0#*%>^} zUncljD7m&s-3!hrlyfgQqj0X{BDs!><~lBx>$rHX;}W@!OU7|3cU7W0a5|9t8HqZ| zAv=X2sK*0bh~=#xL%%v(Eh?ds9qe90|0t4Kc2kv*<&{N{a}hb;XDt%;(8+Ke5$ zaGg&a9o#OfIJdmiz0L#VrHXRt9KOO^a|g;w7Uh;Ra?x_;rtQeKEvq=ke$P8{$~h4(~BPc{mt%Dk5uA7c3a zyOQqimQ)tcBx6o)l2ukdcUiZTyx@Jh-BxAMw?eM6Zu-VLF*ue;EYJGQkBmfR=YDS- z15)eAD#`OjzC~v4qSXC-^HWw?udFzRoN75`*)faq>gn=$YL~pZkkVTtS)Phhw5yps zUzr_~D65q$o0E-yl+{j_t&gQ#E}SzGb(PQZ%NFszb!qMDIiI^?q(`T#y%Us|;pN8bcycY9x9H-~$#*Q<0Cd-q*HIwN)JyxS# zBU`L#n%KwR;p)=4FgeF$SUYMPd7znn%z2?B_naDXTi6bsQ)ABi$2xOfPF>EN7xJS# zb7#u7Hjd*wX*Vy^cE|nHc-cF0WFm`Cq0c*_$?pIP4mVeq#w|703MN`A%i(^(L@VdH zxnJ5H_tvShZ0;K~8EuuNIUW3scoh=YcFN*F}ilXmkmZTHECi!Yh!_{MmQ^_=e_Oa6Lm#Jf8=*-(m6 z#ImQd-0|+^{NQ-^PL&-H@4m`%$2($JSiJiwkH3hw`|$r5!^2 zlbpB@AU_@VI8MiXkmJmqIdLECJRRF;H_%p8>ml~>7j>~Vi@M~Wah$&1PhTUnR1w>u zZSy3CXZ1UvE&LDHcH}?m%t&0CwI+yu5wC1}9H;F$ROW%}zXSbn;hMEJOy5I`YmpfH zu@4=G%Ja@wmW{!ApF>Uza~}H%_UU)Q%2>Pp*A>~}W#mmv%9fFlyhaIqY2AnF^nHF= z?b8_kvwe9I(+<-%+8-)6Phv(^+r!nRuMg7q#p3!Q{jTus1N&7pGD0|4_W2Gk>nc$u|CRr1vuIVzMhE0OH-*w_gU>*DxcqPW8BhMv^H%^ z@+tP3MD$D6515x-#msf_HdoRyGD^!n!CAR0D}~IPn>72tx-pxU&0euI%b(~oBGo5} zNNNr&oEViV8e~h=ol5^<6WhsRR*y0O+-JR;|r0np^KFv1BPvtA&x z-W!VgaVZ=|&s)20_42HBX|D2k43jM@>=*N_-zm?ovZl_Hn3$@I!sHU!?1yp4;j-;>Yta>sg%OB!GCb7-ux zY#8fCZ_@P8F*D28tS{4#H~NzNJ+wT1y_ns{MXOikm(NMPQF$N^5v$d1_-3P*%bzjx z7DP5k((ZsBF58RJJWli!S*yswegm5ZVW*z56!*Vh8R18qy$JFf58lxYX_ zY16v*qP4@_DaoZfxH4k-(oMn5Y@MVYShjH1`g!TZnH_-x?CdvZ&AQw&hOZbj7Zv-s zdP%+NpG$r}8E@s9MOpplM+{Su(k5?Wf%EiSUn^G5wK9{>$Hpe+=UJ#O{pU-^|Ic-D z^8WwsO9scvEGSxi=D?hd6|9u#WRw)PapGkBhNq%X`3f! z%@Wr}AwT!EQOI1ClzCvgD9_xP(!EA~Zr!=>ZN}O*TZa3!@%xeScf9MLSRXCdH;q~P zzDcY-+(}Cg?^p+|(8fFP5%8=ptO(xbO{`R&^W-FAm^ZOn*`hW5lb;KV^R>C;H_5tx zvo2TJlxeB!*MhEn)+I(XV&wajbx{nRkH5p!rLPy#*Sp)a4L)qQkC=vz+%XNgJ8g%%-u=fq>%^S8 z1Fv_ZJacEtw%v~7JZU#C({>;3en#*zeZ3p={SN(dkc)U0OzcvY`}+0>=hh3^_wu66 zk*Tr+u5XW0mYY`*v$&sewDR~%-OtFSZG6sg#O(0*t5(ihly$!M7;&Z#>v-cg>pGiBSEj^jM(2d~q9TzHuK8{v=dK#51>+4n~aC02VuH@@E^ zb-$xnuKOLQXrIP8HRlyfoTe-{A5M3EFdxoHl^wu`vy|oLL&UcTKAf#Q{(=wQF+6O1 zJ8Nsi$dtMNl0!Uo=RP&)4=TV6b6CXVTsqR+h~qRj_BzhonZu3qou}g+?as3WH!iS` zzr)p~pB1IKaG|ztg(NPr&(^&&)%Ox*Avg7x^Xx3zg)O-`6YVau9gZ{qScfw?bq8`L z$}_X+P_N=!T}vfR80E(C9`QXYS)`(y`Okh=4oLyjCSRMaocg*Z-g;abO;J9D`3 zZ|CWFN4slm!G-JW}Pka|n zyptI32)VQ3Tf0*4EjBta#oJ}67m1Q&J&wM9PPTP#c1N2?!JE|fE``r&LUA}DMi>znb+t*q? zCqEdNT1$PUJR8HTwNvi0+F4~^Yd3qI@1ICsC;EaK=gZ@kQ*sTTH}Spm)w4FtNSDPp zj`!Gn{%qNdxvtz@heX*A+WCx;vQ*PpAO5H;$E@H-M&f5>*>+{!TlrPlj94Ki-+v1G z3n%`FvbfMl`ZQy1>OHK&i38iJOkJ14;;?;k8f5tscqPB$Fh_27n;FaItzEccE?FrY zlAat=8-A3{_>-LYJNUc3gR5n5^`R_oJYvo4eY3P9iSgNosl0Od?^gFdSLe>NXU$Do z>Q$%lImbQK=^8oV5jxWOD2~(l=rPBcJ9BvSxbt+*iFS|LA|E|rAAg6dOTUkhoSU?H zQrlRkJY|1Kd*$gdm9{H$XR6(^+Gp!z;Q>1FD0f|awl@CaoxgZ~wmFG$Jm1Zec$%CX z5K`;QXOwNvRVZ#5&nY{QUwJd4-HaJ?eWUe^c%N^^oTV$)tV8%{pQ`ivpRcD}KR@|F z`2!mzc~dsyKV-z;!SRmx#oF}wtomcwT+DOg|0{m|^-CPGE=l&AF=P3PT7&U2-0 z+HSDL=b&=tn!JhqS@Ki!QbyvTzB%uOr{6tKzfYZ`Ctu>rq@IjYtH?{+|FyErgY5q% zOMdtg_Wd_`o@4(RS@zV5YW3f#Pe0p9*98wl%Ma=feiyx$@3{KscdiR2e$prXj4tpB zJJML>;NbTvlXj&)|DQTe>TB8OU{o~m8=2|v<2sy- z=$G!B)2~qCkN=}z=s8@!zy6PY=|0gv^rb#aU}d%^^*b8zo~=(skJ!2*SHFIJXY?8x4U%>FQ+0!e4(&I<*LM3XNWtXyVuk&A*qZE_{2IxuyT}vT z9$aLA#rJaLE#FIA>gXqI-`V~DfBzpKaGbU6LroHiQRQ5#csKNy4X#Ul7iB*m_PcCZ zB5~$a-$iEI;{oGvfvDQUy~Qf#0&Q+zpGZ7mdud%F(aH~CUbez}if)2l<9k$Y8IVZy zB;(JKiNu#B6N!0)<@SO;Nzo~hxMGcWf#@1Z{;ADC$UN$~W&SMLFKBa3S@$cE}ru!|njq)IVHF@pWaI+5)ze4Vi?#8-# zew+TA*xtB55^YVs$DX*K&RwhBNAuedFS2orq0?q5yZBbSkM)l775Y4}IFYDZkG>L# z#Pe)?mfy>2ku@Wc7;69JEWa<|^AYXo{lWf(W_;Fvrt&_BJC_ePR)SOeL}D@>Kj^n~ zn&;_x5{Yx_%1LmmRLnI`Q}ZuOzUbw5L!7@!#)=k>`E(L2FPTU0Dq|s2-(l_ru_NRh z-!_qW!1o)p9SGN&UQ1@@+(F_2^M8?Fv8VOEIIR(j-{A7I^1Ilzh)p|S*@usN>F%WM zaYM|@@aa@tpUR2Ebuhos%(!@i&)~p%9-G_Io7pgtSQz%g~2J>?3vU+L1{71jF?!T(@q4 z5Btt!_p^Lx0oQeWKck56Iu!pZi>!6Y?K2^fI4xmrjdpzbhK@}9d3UBeRZtN}2bYDT&onrNGGUNLiis4KJ{OB_{k$8VSp5R3t z{?=RvD>mH7mV9E?fbM(wno-pIAQi~9Wo)Md4=(E_CSrE0@%7mh*M#EnR6$ta;Bxh| z`8%*M{x>#umYVa$p&PyHU_D1XE;pX)bxkDh7PG;9V4&Z7usWR$D|#dnU25Te8T?@1 z<9L!GPHk4g2^StG?-T7uYG0E6KgzTD z(l$f+es-+vBKCZ$(;<r<#f3Umjbu5ZHtVXy4}Utb_84huA4{{$FKV* z8W$zV6Ys4f6N$HBIJYLerigQEpZ6#KqS|7CW9N|l5S^PFBod!*5{KBUAA_TRib?AN zVm*o-{2Np&kyrx9Re8Mc&;APHe=`in;qWnd*&p|A*n&g)Oqs*kcKqkl8{$!>r929o zyi2?X#l|Mv)oqq5#G@>m2Jow4NA{FbPT%wF4(=YO{3`za8{XB~x()YlGp)HcuZwJm#|)pm~9Uk;PU;6IJ; z=i=SE8majAmOGE&;|@5zj$5dcxRUIBbp8(xPl}^2%t~z5=8wX16CA1-|5f?WRGTlA z?XJV;o~b!`_0I{_3#$5(X!>sB{uQl zCUL7J=0}NrKbRk-{~y{tQvlZLKE~BEm*UFER4w`-bTwJ)sw$K;(t&uIFJ zR5h=Pd5w}VWA8LN{u~T1_S{D2+s(wgm|QkN9od7I<3n|GI{q)9^JV>?#huoh@pKV< zaLJc&C9a11Fn(Ok-!t2Y6I-t1XPNC{tIvsis0F)fRU8k&N%3ljGc&eXuZ-psJYT@E zU38s`JGAS8HQe-Q~u{9TWLK9LMpeatHcgUsc^T>s({7x3WIV*|$=>)-=FFaxUrtbH2Vq z$4B#Ve3hJ1N}Tw60=yPhRzK8fe(%}A|9u>)D&IZJuS;OPf1LSZhxHndH}%o7ELy=T17~esNc0 zb_gD3;`EML@@GqP%rN6?63iFNgJkw@Y+lvp5;EUf0S9q80#BY5uf4s+1+Iym<_xxv zXUnIsDrLKyzNOvpdNo=0owO}8)fgnVi~f7r{PjZIV$;iFH=RB0m0j6KA2D2?$2jD} z?b#QM2M3Hd`D{>0C5?7x}~ zMfEw6PnF^S8$3?yXl&xcg`IGoj6XJ+li~T*XxwRIt%rw4(*3Rd&~4UCHD1TOjU*jpb+QC`{Hcz)T_Y5^Q$@ok8 zqp&GZ8J~K}WBi?O9NuL-O=yrvj2J*(NnB*xSz>+fV4NazkN8~1uM?K0?5P%9gxLx3 ziR+ri-NcnGzYoGE*sM{0ia^BY`m32MPT})U$|sT4N*upxjI*1}ckDW1lsQfuij|;`Wi6c4?I5eXwpXqv2d>@m>}N6hfUZ*Y>|r#ss`bC~_+WIbogWmN zZ){IE--zcgD(hGnm$f}dOuiAvf&6`d&dF^5eKRg(h`aK0E4{76=Hyy(=~!{^ zL;hm+wZVxl<{>`(kKXb8e*(spabOoLJK^wG{JBv34%&Z=&p(m(5L}*XK|kNlht)ZA z;nY~ZrN1a!R?WaCZA!KiyKyjq^WEC6ERMfqzYUibbe;{zJ_W=|+*k3f63+L*`JMb- zsQimbV$jL>E+_vQ&)1V%YOw1Bx}U(gfy1mp`BbSQZi>eSGW*x`nR7mr)P8prSdh5@ z9&6e6As@TypTLRU@VEm93**(#edQ{6)xpc7rW^ZZj1$-#Sw!r%iAj4r72oka$Z`B1 z`#pulUR?X|eHMH_$KxKbYRBg?#>t!PJ73*CdMad^U-KA~?E94d-|+H|x-b{hMa|_7 zxHaI@8d!FO)8`}QI&Zo%@~5)D|ooAnYqt-ck+hg zz<6;TCI;VcF(+%gfZj2D%3Dv)Q}z{oAJN~ZH~;ACNr(T$Ie5FS1YF>8sr^;(c^M{? z*N_3j<@&W^(~_w$%42N^=X&tGrWdRyS<~Tm!O7y&7cTTK#+hHqZ#2!g*Qc(s>!V#s z9J1XbM#oY-g}=A);Zi)#2gi|Oa5J4d10%TINZ0rg#wK6;6mk8q5FSm;Yizp$=3R}2 z(_s3Pn4F<~Rq=Y4Z4Kb@?GW=oZEMx>&hcS;AGvZk-qnzE=zjq2t*4~c<7@f-^9mf@ zY7FtWZHAo9j*e_A-Hl(cU02%LkH3}KxT~;r8ySOI$W834%l0pD=0=!*Dqb_Sy#Y50 z;7Ehz`j?gC*mE-5uQishSjUbT#t!*Mm4X#Jwy^OPva9ZpTif89{{6=(V@F$l-!6We zwXd9CPT6GL+!{Y|YH%eng~P+uk?~#~ z`pL{||2k|>P&Rv&@v^|UtSsk~`72z%V0UZrJ&J8d!1$KY=2-iGPc~=HCaaZeeVE4e z>r8$W?QXr!zH8ahx+EOu85_gM7l&`OYunJ=1+PpPeniHlOUxZ?I2!JMZN~?AZmuc6 z>(>O{9r^Jlo4z%!?ptBJkHI^#Zq+xRKHo34E`UolT)TIX@nHK--)T5F8b>aIQ@S9o_fCuV4dXkiRdgFU*&BVAfzP|H&(^O;=;`J{Z)& z?@4fafY0sejDa+GqIqw%d|TN3CI>7l&L{Xyug*?5b>!!0VH4x=M7GXh!{uZiN!R=M@O*FU{zf>${9A3E#WSCnHCrP_+LZ1>FYMxe)Fy40 zw@LBjQFeD~%YJ%4Gp@Fc!<|m@#s;x3?Y4sl2kQqB&as>-jww20gU7S3KUp{~zV6=(-YqFXBd9 z*bU_S(RIbI1-p8(xd85$=ZARI8gA_HwY)L8neNgZwZ*l^l%2L!j5}M~RFJpDr8T=B zY)p3^c@WnJWEem6Y=*^C_|dtzbqT!h?GHz>>cFPwRvSly*r`vWe&WWKC)hA+wtT1l z9gKy9ORt;K&AiTg!(hn;2_i*x7M$vL=hi z#4hCV;~5-%6}AsKZ^o|U)Ze7+A%4$XZcWFh7z?L%fCv1mPiIS2>%5x$H};OirQiAb z1zg7CcJpqjxJ4ek5SCxAv;HOLK71HSZ`}8}Tx?HkfQx*aJsyVQ`88X2i|tff8S&fK z6dskWJJ-_zLqEEiIC-2rE;cRUyPyh~79T_3Gr0dW9Cwkmz!+)_^T=KAuP}c2_KG+(gkw>DpA3igi_Lj3-md+5 zn^O6uIr&>~=LG#{v-L0f+tT|ipNsWjFYNvtX8j>Pf40J9@%~Y}OnCkVgX`4&D1Ld^ z)e*ZTe1Y+`$}T8mgW20~Jif2-)s=nhsWTDR;8Lco>mmC8Gflq@`oVU$zMqND z+vNXX|0u5Ajsvs#^58PZZ2AUX<=MBUiab=0ukiSaPea)~6UX}VqbvWXz^XVOhr{G; zefH9EX~H~J+L*|1&Jx!IJI|?ugUy}m^KK8@X!AuLzEw(H|2CZ5 zp|Y}1;8VRq>Kb8}^UBruJzZOVF6shz=kxheccXc%Bp$%yMS2Q!bYDcj{xG>@A-ucG zDX{G7_{{m{K5d(1zyzM>PqwZUk59^)FUkA3FdnqWA$`{1)kZjcL+0sQo%8Qmas7b& zcYEts9S_;uh`oc@T6>l;y9f^}8Z&HZ$M5d2El2kQjg1%WKjddAn4d((hegDEi<~nN z|LeOBnPfcU*Ij&EvR3@3I3H}h8dn3fyIAZ-tJ}%Oul0Rl9>3vvJU#z`tgli%Fw~)Pxzcu*X8-BatzBcSn7?b+`tnR1fcml6ZUF00?FD9?% zc0Q9ab~O&pG$z%LH8xiFlP}@1WTjXT@|W#g$HC{vVfG$BSMYt{P?&dz1)DxGc6J$C ztA}eZw_IP&eSrS>ID$-Nv&DB6{_Gtuw}@?f_6;l#fA}OEKevs1ww~2eZkuiXXWv;c z><5S2=cfF9cv7lu5qf^*XA`!6NAG?%tQu*(P!}G!y9bV6>w6(Q-Wz1D<8x7ZR*X>JHlxJv$>s9UFyj+H-y0=YHzSV^zN;)TT={W@l&!JVFh+1E){yh* z+pph}4aOrK{c!o~dh~U(rs!%-$o7)?;X!8HYr3TveyyTwlW{}m7y3QfT)xuh$EL<1 z`J){d3GdOUeAAgt>>jof}fNJU9oIt>xRH)?NJC!RB*qFR^icZ)2>T*sYhB8!LzX zUjvMj&5p@%+!l@nAeV z|DMS14suZw9Grkth2?6t^q8R!SyRZkNt;e=ugC7Dqva`aIa0juq|=MSi6?Nd#Z>u6 z`?!8-G8>opRl7LZ%4!)eN5J#JUO1=kH$!km?Bd@1H9g$R6vIy&z-lI5G;~d*|9rCJ zdEICHt)Xn7vAD0UoanqNocfVfQ+$uXiP2&oBt5S_EdX<~bSf^N*#szp+l{dCouY2}?2gki9=uH-5x;JX|jvpzSigZ={>u z56?5+__nvKoCNCxKOSM@N%X9og@?w)1@sPO?-?8T-dr5$f0(?p#H5kfUsOVF(taS{ zADfAfxN{DB8}MO)wr#ZCw@DnkTZh};9B&NaL(S>tqtZAkM(fznjqQ#2+DvTP;Mo7N zxb(UDX*=LsM>{y(ti1IY>#g%AO+U-gD3WJ#^o}{_(Jyscbs` zTZ={gZpIV)j_2<HxyD9gdg{@Cu{L+AuR1C9u1`OFy$TOcg+(p??JJBs z;_l)!E-@X>#S7B6=j^o7jMEJj)U!KFfFG^IC_|d0kIy0Y2B_LyN_>a`MbF zbJ=)#6_47niTK1PeO!07bDcoX-6hB!ml{8d^{ooewVmZ0a=(Jlk;-P1v1+xoCtPmh z??d_x*YC*M@+-g2)W0@+?<0SN`hLdbJ8b-!jxFSjuE7rNu}WY@s4@&mo+9#nedKb*r*J--C; z7(NvhlcoCih0h@8HLHmqOxm+)StVntlN=db=i|1Cc(K(ws4NUC!rO5XSlr_LJ8k0m z^1vnR7pK$e$p82_uo}L@rXO5);o1iK%S*{|T;1*nSesSF&vu+}jk? zpKYJ((~@uT?$L`NFGye9^POgYs+i=3S6r*#!oM}-y#}8`_77`&F?)XES3DcsT3asT zTj3RW2G=?>*hq~jsY#G_-x&F% zta%wX<9Y4xL)n89+qUve+mGlkQ_ff*`=$K)sQWK}V?N&`K2zZ~Slr(kZiD&7aJ$V| zx!YKHlMnB#O|5k+@pVQ=*Bbgh1Dg(T{-q~QD}RiwD;C3up7numUu!nL7cGwurM0V+;N48=8_`TA8g!3-v9cW7nH~S_dUkkz3kk_r%pBCFXr3X(;OcPXDDY! z*KYU;zp`w25uf6o%*}b^pq1jJ?%|qp9+`E-@V*Vkrap1~G#2jf53t@MZwc8?6rz{^ zd$n6h=T7ow<3Sr(#$31+M~>lhtko;x|U<`{<`qxm(CJ?Dts$znZ; zuI2EY1CJkI822atv&DGE#Sz2shO8%-v74PQwZ;p6#WRY%t?-qth31N7X}O1ekJOe6 z*;1O^(VbHBe>_kBoo%nOeOV)%#f2I8xeuN%lQ)L0Gsx^u&gF1v2HV}_Ht7O;ddCmM z@y539Vkd^{#bO&wb~I1f)K#n^ug}ltUI|V;%f}hcFL%CW3S6ten9LX_rTEkXZ;prG z|Hi|B{K~d?e{EJZKCPCohp=}6zn%Z6?W5`kk$InZwVGJmY+w9yZ)`o>BOHMmC1KJRow1?S6lY2=ELTOc+LM- z>}&+16Zze8I85Q%udg|zE8MEfw`Bamj?Z9z71_6y;A2f|a(Lw#gFAGe*p5#)F@2k{ z$FFDkI zdM|2XEj-EGqy6tK?$d+6yn=X4B2ZaJh^z!H3iFyFhQ_T>qNR|D@|ie$P`r z25#f{{;K+4V0|Zh?%>OPWPinmJxgrb#=Xp)6ksIT3%3;#bqIxC!gExKLZnst&*< zz85wg3gG5PRdJKPI;GgawlOoUlj^&s=JOA*DG}T$Z>-{9y!SB^-`-(U^Qp#SKQ{4U zvN(1m|1q*Ip!eUl8hCe6EAxGAxkI}TarQEDuf>VAYh9Cx`Gq*L99E6QF0MN^+dhNW zK)6R9SSbcyZ;?NgHOh<6+MQd=combg>3w7bKCvru#1**u^L*=K?S7-{ezwQ+=LgH+ zsW!i%N%M{H9%|g-#jRr2p*zg^63+F}N$@%&e>wxq0URc}O z+Ss`ghRYns+G{F1YLvyNDb@mPKZDNw#^B;c`q8nQj$^dh$){ra4(9J=+H922-7rzPU?A3ir50XumAON_QSepy_`EHu{Zy7vgzm+|hMlI#+r#`Ud7*OLwF4`JW4 z72IIH3*RR5v9|b5C#y*f>r=K@g<~`LyhQJDY}wDxB{=ik9Qjkb+hG>(pIxH7>uCJ3 zkL%;F3emgHJi+h!Y`=)yCdO1;550gd71$TK_c~+g#j5hi3bA76db0DaHMYejul9@a zu|50ZKF}W>tW&z+mgA@^Ge+*Q^%H~d`L$PUzMJJfpgz^{ZDW7OaJt-hc~zTPWX3xc zg(e!a?7FQh+}JyKt~z>4v#~4AcUO0enA}u_Y(5=bhK;4ogW~qi6xZPT-EZp%!%y1C zY2wt`KHg_u4wu`=d38FO)%7W7o*rS$D*vOWxllYNRO0VS>saxLd%<@Wl@kWb{qQ}r zZOXQlu$ZL$dA1yjKQGuez+u~r)cUsr*%NT)vZ=7CYTnkjc5~wuHc!K}OA%v?-Wl|r z!T<6DJi8HxQTRDTJQu@bFzl`rhcfIbgKx#v2~T1Vy`9B7K06TCVV99P2L{LB+NuU} zls5OR#*-y-WfNn!rg5^ySX}FzjUycQ=354STtQCFLhkj5%_ZzzqW#}|d8)8=Ah~f} z^duY$H*|f`7k4_!Efe|9u2S&2u^c?{>o2h!u+2Q#BgL!s@ZWEHAwxTTkK*e)E6jb) z2Q;&uVaKQHuNdl{<0dg{`zXC>8#q(VLv>T5Djo1M1Z*l8wKE(STKR7=V zj^CDm6F+{??sJ@d9S?8qCWV|2!I z-Ptwd0db1=p&DcwD{$UxjJ9WA8Qay)e}L^vRm5vBJK@?C{?Fn3^~#sDf+b(O+G=)| zo5|0|kG8Nqexqx>#jq%${}S^q-&%B+|GMEmTb4WiivGDc)<^vJ)3;FnBlSO#&&y`8 zm;P_zT$)Xbdx_;ze(>izT&%%|BVhV6Kduqi?aSmpI%1tWjGT5AY;0V%NSaB4ybGHabYD|X?t$l#@ISW`UHRpFHaxdUZh}qcGPp}esd4)7HDdZz zU*kl-hA?~yuVT$~X>sF&-}jNzn(cdLyVrs(C{U0tXFW9<`f=@s5 zdR`pi`^)^EgKJgzcpeVFxC7^BrsjjP@V|oGeQ-Dr{_EMZ8CNFIdoq7(kza^S7mUGw zK0af7Jq52lyx1H%{h<7*FGCCw2{}YrG6}9l)=+#@%BJUyrBzDt2749$y-nqZXPM#Nvhyso3u? zr!8Mg!{Fh9a@QbhN`4G*ywCCPJ@`rg4du1lju-ii9WrD6eYF_%(XPBU=fmOWYStWV zFWS($hyAVCx0*joSK}rgKEaM(flvm>`YbA1u+U~`fN0py5Nj%|P1SW4y zfek+fvu|P-TrOd}4Q7*AH8EcH!Ep+{>{|zuA!L%jj%_RY$~CQx7uS5oQCtg4qGlE`$oPu&BJE+#OFI2m&FH| ze!IpP8LIt6_2TdioG!q*i}j29Y~RDA2|M1juSHMftbfDs@-5cPqpd;f8T0+=c3fRq zAM)dQ`_ejm=kvgkax?CH#jbUQU<{Xc`Sd&eL&fe+Z#-2tsIl=WPTO#3 zPen0+(Im0>_i*^pyQ2giO@=+0Z^CC5`@f^}{XXpDcQH2II|&DI=~?nN81r9=$=F#b z%;MU)I(;X1Fvl2M$Kd*2Vgn)M48mu|K;7zr}V0 z%wDJal3MQf;Myn{eAdr;rT{;;@QdB?S-vZAe>b}yD@y)c_Otmkdfp{F?qLss`=34e zyAn5X;0rN7nGGZOv7OBsIP?u);vR9`!pijRrTiqeuWco_&X6z3*xpF|JDSsGyS8j* ztSLWD?1t-qjk-tKyA;pziOpPnZ)9IQA8yU>*V%j*%#N|eJ9}Mm^io^>s^%pA_ayTI zcE8U4Kj0tF-j9LBwz2%KLT*WNx~87Re~Ew9;eFE_n3DVJK-kwOk3Z%0=`dM5$Qg{U z|LzNGe#bkNP4K5DJkGUc()SY|hx6-2+&Hp_9LWBf%J+(O$3bGS#yAzj4~Nk+4Tj`g z+gKYI#I@@SY$&)uzQvvRJV-o0in;C2{$jCJ|FX)a%N6Pd!J#0%OUeCk9DD||PmJ%{ zLRMjTm86E(%Q z7vA%+cVBsm@7Kcp!Ore08Y3~c&k&<7a#(&g#`A&Q>}x76JK%G?@^6~Dzazgq)<&Lj zd_imeJ0A-3_?*aX+Wf+Y%iv#29N#2kE8D8-e-=zmZ(!YN43reVim>d#=lJYQE#o0R zD{u^d-WHqJ@bIoW>PN9J_yEV}`8A%trDAh@Cwa?$A&hpGksCI;?ozg`J^AJEV12^G zX>Q$)C*;RFZ!eXwj%>+37>u=_xXoMv&$fAOndUC_7qjzR9Q;84GVr_vCTGB=65IPO zlgHT8f$yIeG6#$?hc;AR%y?;MzEQWNk@%509d{e^HIH$-sDgOHrxJOs7T{N7YkK{M z;o{e1_JLI?vDnhjJUHK&gxN4Yl!51mvvAJ7=yF`<&p2^;E$ndoG#?(MA3! z_t!PQ&$ISo%LbTz$o7kH?QxtPIaPUa^Z67u)s|ZwKLztqaGlozzT#MT7~G8E_sEHN zH{KA>I@9H)ny{cJ-gSO~FO{ppZw9`x{ZYL9mj34ATvYpfe5}Za%u;aIZYM6r`)9is z!{7PfCNLNeKkX_PwQgvbx=-*c-(Tm~TTGZgg=}_I94hyb`T9cFdE2ai@c6Xya$A0N z@cd}Fb;@X5U~kDv@`Bj>4)2-pT^2SivlhUq)5W7J-oM>PpOMzsv*G8wbuS#~jnDKg zf`2@lUM_|u$!W^&c<1scoV&C(jA3&ZyPsvpUcNrb_eIV->-Stw;~VA+lrMLDk}L&Utu!X{7HQ=5Z5ubJ?e+Etxqf1JKwd&JsKQ6hRuIg=Bt=2V{?;|a@1Iy?dsYv zFZtTPr|oxR;ACtzoW<5v?6U7rk3O-E=R&7cGxy^DV7|rtIEyc5!ShJ`xsL2(GuTyx z4ESwdDQ@KMV8^Lq^b&vWgjrws{zlJ8u`5X4T=+f?zoXey6(;%D$r}UZDSj5w_b7eK z!L(2nFoZ*Xvb}gM5*Pih z!0Dstj_1_H*|?jGDWk}rV{ND`?i+u??|AOqn~o~vEEkvam0h_7mN1TI@3(1R8gGY* za|J$p2D=GMVA}>4mWqcyeR{!e6>f=hK^zi>w-?90KW$XuA>QJ1M= zB5r4~tA0f>QWv>w=LE+kAVn-)|AKIedE-?jPgq7adY-ye9S)wC_(=9s1*a zwRqpE7(P{m!x#LHYlI(Rb>DR3eh$2Az(BwE;PWW1d{CBsbidEvyT$6bD)235T|s7l zn8!WnS!|Ab#FOy&WOC!a?CK5jvK;YaQ5&x?I~6#qJ{Vw&sP6 zxGZINZ`k&o2y6Y$a(ohh&(wY&JMQG?IzGN7jz_`grlIm0+a4$5j{5kYki)czXMc_D zN5UySKXHw?ow?aq(t|SL3D_~4?pz{%aot)pC zHcw7b-)k1mj<6ozDreHS$#|;R8NN96CtH@V`K57mDSub2?}1a?3;Atoic1&c(hcfw zhU-yeK2aJ+9k1hmJjaS>U+*|ByqzE2@OGqeKG@ubr_YhqN32eS_inZ{8)FPIjf^Fv6lY6=6e_|;rqV_;FEH=`@QZ)n;yvDdaX+549o!#i*})7q|@ST~VRwYjf?>moc^SV>)NKCrJSyPp#1 zO>)wx>8=Cld>>v-Rl?}Rq^h{Lan-}{X1JqJ$4-v&PR$LlZY?$XqHo6bR{#hy+75}%VxnO|TNpPBi- zqL`7pkd7A%yAEMn(R$WxWZ%rE@nZ5TyuYIJjZVhGMqGl)*>v8+mN#pO{V4gWE1ah2 zqklX%k2O+!Z%?!G#<2X6-*E@A`yWhhH{MQyZ^IQh1HTu-K6QK88@Tm`@e}yoq__2N zUojP}#jK0drz9QpFpP`oCipSFJ#GXE?yKE=0_wmrqSk=VrjgUiL~OfrZ{zSr7} zKhLv!DE#)q=OS{Lo>->;e@DQPZ9TME+mYSm*Kj-nKEJ?awV=i|{x^IaKT~cT0yi-pLfRx8`fk;dWz7*-MI0kilmK7USwqzd6SfwKGf(-3Aa!r&Tm-iJ%P^Hp%RIfVUBR}_nSVxrC4rLAr98@up{ z>xE31JtQ8_0> z-ea#taM}4d2D1G&xUIF#i;`?w(^!ukOK(#ytDu^SD>g+jp|H zM^iTA+oNoludD@ok1b@aG(&7V8b{>k(f$iKU&g0PtMQ#b@jVyCJ@tQxwm*B+;+$4W6-QCIGQ$W7J$<E8jGFFb%X4C+4E;+g+@1qSG0cU23^*SkK;E*_vaTxo(g-2q&Kt_lJ5I zKib_z_Ok7GukHu_P9AP9;?p=X^Het{!SLAj>c#hWocl|gSIZi694NuI$8fJLy`^xX zk#-mHH8I867^OkVU-%A{A8+yx?`o}vG`}z3{zU8%_Ccg3gG!Nn9 zhsI#LI(#b5PJVqt=N9}J0*h{JTS&%mW9BYA{Zu^SUhoadt}be>pD3@e=T`ET4zOnE z>{<~PB$UMjcX z^h@Ng~_&rWvW=a9bQNZyO{;Uh+6$qKvgnFnM0huHW#dmrV;|BQvDWURuk zney=W${ym+^Rww|# z?s6k}mx@c=f4;w(oD1h?#v3EB=seSUc?h|<7@r}G@6dUaPrIk^iw(PBa;|=lksbGA zN=*|7c*py|7dK-QPBo@KzC&x@Xt@OsCoDCml@-?>d?+aZ*P+WS3A*XJ)SyBEo?m15o?@{&nk|A;RHD4V{3fR&vrUD!Mh6^j^$6>v+EDfA^dB>uNMlzS-+NW zoB*q-#m$@b&1*g7O!e!v+lTip>dHYg%)OiOLEV%-bXGQoY(LQz-zl+@|1~zjORRph zZ^_U6wtF0Jqhl9dt(+;3!T2n^Xt4@zgXJq2$FuJ1jjIK=dKqNGpmBaO;BW@HH`B4H z72b;ZH*Mvs=KO`n`^L&`Lyd>gc&Xnl{FyqOT_wzMXSlZi$i7b z>DejfY8~GflRndNpG~jU73)&wvL?no{?FuBFSZry3G=1$1wZ!dcNy8`JHeIBEwqbw z6dJ)Q=GVLFithyc-ubU$^kzZWS9i>gWsCUSR{rdUE4G>9{2r{@u1@9d-TL3ohpp@x zj=MwIyQ3XE^tp0@H6PnGO+2pbYFt@oY)oK(W#ear_9wvhF>*UM;!_{&A_eW@<4^=CDZ2N&}h9`*4mK0{uZ zt{LiH=fg;KFDO5ujXW?{9wPrneq7huHO+i;?o7NYXKeH9nkD2rZl!&L+NpK$(tPGW zex3@fxmBzIH^Hce_~29(HeCeQmbLJh->vEV-*P#H8ShubBeLQ<1@3@({XDQ-i*Mvy z2J@$soehh)Rv%b8wf^{1Ot#_a6Lco%p9`Ol*!qL>xnl52N%wfk><90rJ@A)~Oyz&~ zG-tIprz(4g?~k(U<5gl~|ERv>aBn@mSCCm5PTw>$uIXj^Qq00#hT_z*zIG}^J2A?Jw0H3GrQksM?53%z^(#(ehE)& zuwzB0F^&gQ*NPkb;yu+naOB-dav97%$5ZMPZSoq!g<(bCncDo+%Q?GSPBB)si_cQz z(RM!`6`*Ty5jfHH#7wqz5UW{YS4&>PmEZVOvO66xs9oL|$nSb*p}cCWuca(J)aV`EU*}kBoaZO+2iExz%zNu(Tug6U?>*H7C zmlN3#&-p$!E~=5gkL+n|ig%a3X3NE;VGfg*Yw(v1yX)g7+40>>yV!6BUm6rpR?Yb7 z%Xaa&2?rxz$GZ#NGUP~pSJQVRtX|#9-(unbtK-O8qyJy*IYPS?^xiG@4=r{50QavO zY6rJGCFE-H`W-jBE5CwGdHC35rL})!V~C7Vup2oH_r!NB+se~7m+ueR-(c)bcU*)W ztH}OPY!(iYC;O>m_wLpyS;Jxb3f?Y)e|#o`Ah7{i;HDOJ7bc+4~g9)>x_MIsz1-z8)ZJDq zzwo0}Nn=gLK{ck4!#% zhm-kckPENh#q9k>@+~`_T43GP+&F;6-+f_|Fke@cM;o#O){WrQ4h|3FN?);m4HiTB zaVejskCgA>aWlEEG!wtAVp~;Ql*e}#{Ro@$n;PR{_iF>=MA@BqQ<>cf99!A}|BZ*A zaVD>LXW+;^{C|oqm%{P&#>N1xIkTBKJJ?%?(DqASp5$iPJqvG zWaaA#f+aYk?$HkHm51UQFy6yzOHam1Ij#qO^P!};JS-Ob!Irlse4O7PH`RuDIre-_ z-le$0<;2|;qR6WpLK!o)O|S-1-3yQ^<<% z8_LJOan9o&`d4%55s%O5>qbs|*JNYud$H{k@q1YRdhD(T-}c7Z$7Atj6TMB<8B@oz z`&(E%4~yR96easX{+zd*-C|mCg83J3E8@rBbj5l$Kb{ol|ATD5NZTI#+e5~g^^9RS zen!UYD?FbR!+1a7^Zw=!Tp3~P)>3vcJJ-Re?JT*LPhYUHiuk<>*K#=VM}{0q)|2*k zsejtoyJ#aD%`-FDkZ&+w@n%;WIkY`_`o_BoGy1?-`)ZqwpLuN2{vNnb)@N>AzQc5p zc(TK{=@%xhw>on7&{(ETtPfCG7}!BE@x;5en6JUqrc z1nZdZw@t@u?e1dt$@nv8K77~~pKFQF+k61;_};Sz$XQBm8TJl=&8PHrsg6&4f0&<* z*z{8YYXvsO=dLTkY|lu!8UK$SLJuG7z%HJ%oxe>Eq2sM$bg}uD+IU9qlVa6-9iP?Z zXY0t-<_%>NJG(}v^A`AAX{lGv{dC=||KNhS zto>R1>`=$}p?4bJj@Sa*2G-8nY-;51=;riWBYl6Jikb})@^1wrUSWfQQ zd|Ih}^)l8H+ODsn9qiwSQGAwTa|`3BBP{svG~ezd|7>IF41UG?J~wSLSMgzsxLiI0 zt~1!%PEM;J&)`OD@_u9MgKV5%RW1?xfiNoo<4HAb>WY?n zRyNvz3!r1Kd%&g*6k&+eySdoq1-EpXF%{NmH4bYDi-%6@Ve*~dCxZ9h}p^zzVbyqehty47M#R=PIGHYxOZK}PWJuV`N!fK z*Ho9YyNo`gM!7G@pF(7xC}yXRgB5$Kid!SN?|^4{@!P3STlN1Fqd(`T)=<~-^>cEo zip6`{{{f@Xu#0u+1^jtwjrAxE;<@F!Z)jfDR z`?GPD^IJMux5D77d~9v?J@vD430_Q5Vz-Kz@RJR80EytBK*XeVNc;|uNbxp+z9-kK$!|~!FR&n3>3i3~3 zPw!>cY3erPdE2Eh6VtD8FFpq!-_Q0He}Bf`Pv;sN{Qa4YS2lrDFY5z%%wfx$17XFM zd+6H@+eekfeUZbFbs?x5`mu z9Nz|Sac&qnorcQAtK=;DpND-t@oCc9HCKHy@%mzReldt`xWs|bTfw7RiH8ZoyT*cSZ9>b_V?jrj***S(LtQ= z)2^!cy~FlW?eNwZdZeLTi1XJ^BNNs?itEUh<~7({DQ2Z+8yDi+(wKUlO|AKKK40gt zaTPy`@aK23|JB{vP@ksT!u7%4q`kQaD z9>$lIwpFX;nNh~F7+*#H%IR`_6}T>kb2EK6$h-FO46oxrYjb{Gv2UacqTIvIUuq_RFFtfkWanjc&WG(LIA1pjcS^&0 zD!=)E0sZl;DAC0lfu9o>yN+N(V|<x8W%adM`AV8(0S~V2}O->B^fSC+Ig<+b?Dt z$1rL3r|B2Z555>lm-3mg*+KqZ`+9uZfoFe=Rae(K zL%T1RS!=_5Pch?L|5Nx*%CClN3BFxH_MPf$Iv%yf7^i=Qc*p08N|rZ{@U5rwleKxO z5uEawpG(N`rIZiE`#P>!#N_&Uaut8#vox{RIBuBSz>dXqzRTv_oA}$obt^wgHN(B> z>}UITBjG0AJ4W*l{_)#E+r{EFzSNDJ(M_zn;sGvJV^4g}byFvO)`&6Ru7dd|K>u5O zLfm&Pv=c&f9d*4_!LJ!~3RoHKQ!Ct!*eBoi0{4$za8|GM-V${Z9HBiwy zC9cLD#RBhmx;%~RNO|qeDgEpvTo;)Q(?5*)i2eGoxrZjc8_0Uj<>+eXxD{s5^~PyfDgDN-ei8_9G@?adNr*Xc{D|X z55RLOdk@N^eqS2K)qhL)7TZucza!7^x#|3+@E_;A`gw()7sXMDenS1VEUU)MyUpJ@ zFnSAph~=H20o#^()Q`@GfUe zLw54!=^cx#CoT02K99>i+aR$wY-uR_4_4quw3=VYhTpv1e>~47FXW8@gb3T)%ouA9b zUy=4n&V~D3!+re2<$QGu`$ltC(@6mwTG7Sy_QuHRWpRh=rb%!L?@_~N5$*8s%(KNlK`!C9-oK`gt7__xHROWNTMP6Vyluqe z?kxCWo+_))&=@bkO*;WLswun+f6q#09z)^B9< zmWq0XdDY74$9z3F0}oMp6nyW7{}=EId-)=MzoYYVv(+Qa!~NHXXz1bBewscr$c)Hu4k4 zebd!jL+fUYJ!U)W1fMs=;);e3sp*^af#vf2BZbD{{Ly6n!s{EvHOAkYN%FExW>3w-hYp18Y~n8#MROxG}AltCNwVf!o&uT^)0#5PWD18{IF zO!tX1!r#YdsZlWZPgi!!`{4!apk?PBk!l> zyrR0g6ZdrSB^R@=M&9Iq7~Z-yQim`P-&q*oczd>QR1< z`c?1S;B#|Jd!-oo%6;Bg9Q4y)YN%WO{>XuEp*3ouzC*8xYfG<>+$_IqC$S5MUGV)=w3V)(eT zy85JtaBq1-x&92NkHr)2$IYba^TWhFoQ-OHi{X3r-ydTwgxTz&a*I=M^!Jk(=9kxB zXr-Eb_tVq&EpSAqLsnQX6ZI#)>%w8Aglnmtits<&P3>0^dnNDJj2V|jANt7^^zl1? zW5ltlvg^C`LotB@boA5uhF3Nin4%hJ+@|-N5MdrlUgfm{ZF0zl~GyJw! z8jVbr^Jh5v7lyAIJ3XPaKi6$;4+6^-bbp=L9-9CIf48RNcRY^B_rbQ7-f_;CR}b=9 z?{Tx9`>_}@R?ESh1$>k@Zlf5(^`3;KbkElf>|Wrvyhj1N&a0p817QUJ@Y!omaTLq_ zck!)*Z>D@6gMVXM4&Ny{Hw3=9G$ZeDUFdmw8f$*|oV7Q6jyV>tWt^BnzjS$ZPaNQG z_FUY;?4i!^VLK*WebGU<&;Bhrh2OaEZG7i8bTm}Ym`KBpwd$|l@bQxzdgEd{KjC`# zX)$%i*$-a#g>UGOp+m<9M{Qpmt2m*I(GovQ}jAH$Ix+vnhW{$ zgUt^34`U}E=2xY8PsjFlxFpN1D3cu+++=+FwT_8*=nB0Rme3NZ7L4& z9qL7keBbE#Te&|VmlZg9P~O)%wyBQwBg1)lhTr=*C!a&`d_s+d|0Pv{z1DOTv^|HG z(`(sl!|u!!wIimomF*WCd%X)jtE-(u&lXYbc|>t!YNJBa3SeL39v(|C4WIN|potS5;t?0p7^=TH;2=1iRbC zeYw|vi#2Pu804^Wh&4bgnKZE@qV)5Jt^8k>M>}x7osB%4)$XaMRnaGlU;&3LFt31Y8dz67ynn`sqreB6K56o5>SiJ7}Y#dbtW$XJh5h=X$yAYpxc{ssWspqxFA! zS?~B;T&M^0wL(1Gr{YWPu2o0jGv6zh(jh$3=;x5*;ePWeZSDP9(z5d%=>2_qh>nyS z9>RNzE%o37zsvAeU7f|_WWO3r$N%2$`08LU8SOfSd~+A#QjYh^<**ztsi7w5s;~SW z5#y#7^xul6_<3uL_gTho@b`7>52m+2=fYqxA24s8q?Y8kpU)2}+T+SQcA4C8_Des0 z;8X>l$zps}4b72TD!!VTKUH4!M$vW|@jF%(U&CnVDfXMo|3&8-cEytz2AUVHCFZlc zu#0DWOr61BJ6du6N6)?BHC&Ai??ZFF=?LeQ^@YCk?W@;%e=ole{StFe<8q0ygPeQYxD;}G-eIkpjoFVR~izG{o5tT}hEHzwo+ z&-(mbDVH(5t>NmStoUc)?6pDmhi&K)XOVOoKC|yMSMQu-eW`{UxU7(GM{&Odo0D*9 zngdVR{?gMPriXfvb3b!W)YpIH{4jmqCdUWFaJQUC8uv7tx8pdhOD$+EQ~Wc;9KP%F zlILdhxdK+Ta2?6^MRQixro-y^hxyGV_=I(|@u$U-BG#numVf8wvJ=bP#8A?I4< zxgIcvCR*uT@Eb3W%jqCo+kKqh@vXfcXAe{f=eYTS?Va-a0Jb||bN4{L)xl@-%Y$=& zwen1=y)VAU&%zt6E+`TsyU{RzU>PloalSG47pimkS5YfZ;_S7l`U-yj=6_3b{YT7a z;jx?TM{w29*dLtFo}q`}=qN7%e6QvdTh2XB9v|C#a2<$DkPX2brl_`)6{ zQ4P+lYOhY8O^Wq`M0>gx`t@jW^4ZP&zdPxp@?RK*PkHQu`Ig$&;vhFpge`FTEZV*6(>ifA~6=j8})$o2{dHx{c!JHhu-17ABVAWIJ*$m6W|4(md=&HVblP& z_)a%xmoZua=c_@90rwbfz9P537SRNDmEuN3S z;L^(YEwCQo<5TCSi?@uPF=w`3gyT?~TUX<-tv-@k`uNM-OT@Yn=a=&z!SCP3H-q;` zxNmIWT7t($e4pe$yqEo4J`3fT0nbxneFxqzupNH8WrX-T!uY|K_AF)XgVNNn+&+P8 zxVJhc=vZA$V(VF4zS~%xF2#{pADnE@4~y{rt){tC#WAy~{Xz;&^0|8mT+BHerQg71 zJMO|YspIOkc^^8@l0V-!_m-zP*3Z!Yn(*g*bU8H$gQ~FnS4=;#Go*{$o6*E7`Q=-a z9j__QdFG8bZYC_Bj>HGQ|H|!6`s$a9gGqX=V^7s6kIx#gxvrI%jgRiw^>Ert8_@8|ox*NtHlzK?QV9)I}zLQOTo$7i$|L2IKk;hV0m#P@J_`Z2a;Cp9SU zmy5k$k>cIiu*QA)iE^lIQ2G6jj{wvlS>&YEnqpQ+%3qEiX zzT5O3y}VG_qpM!RX80atl?b&7munL6uV&Kay+*uSN9b+v`3S!^;ovKCzTmqd>`(KT z&|W{q=W*D+yTo%N^@58vF!?5ro^f%KjgxFI>Ihr8g!=)Pdj4IFoW@OA{?4%78s2T^ z>mklXi|blBl%t>D#e9{=EzY+$u8DlYZ&kE}&)j%A@<_u&_Uu$4HAWxX_-*L9 z4vc%xGG`>d)yVOI>QPSf@plZ7sl82A(Iw zJ2QrEhFJ6EUyYqYSlnaYBC!mC+ems#^g36rk0r|kzPGYHixxKV^X6*34OctrSm)VE zq1zo%Vq<58xPPUE6^^|D*B1O;w@z@dt*o(fj5f9zj<)o)UeotPnEusVpNrJragcz=QR02UylbY|v%vc|F?6T@ zeluL}Ve^6R zPr>i~&Yi>6=lF@nY51PtH~c)6ReHT(4UWS1Nk+}}oT>NIR2MnlnTun&zS&>=qv)>y zzwPu!xaGq#UJOh5o|{BZHA=7FRF~85;{HZXe@BSl{Npf<=W<_?*J%r!2V%s5~=$@r}u)p9sk{-&4GqZ=9 zWp^X)_VKgd>wAoAje~HH{^Est7+b?D+qrFKv%z~& zs?73Usi~fghhJ$kyVzWDJ~fY@@%p8FisUuM*zg|qx(Mey@2txP>K|Votc< zwbyFc!frpizgD85iEPpFJlNbLr>5!bra9*CzwuDHp1lkKgnRU#k=K0)Yb@Tya9G_= z|BHr2p?>3B*HpDjOA~A2!2IsHdVE8*f#YYZ$OndDuNm&u`_tUsV#|l!1U8D`eNA_| z#aoTuG?u|`3pK{?o#vgwTiE|RCC?9Ogb_L|IJ4eNSq@zC5j z+B#$0;Mx4aeTQ70WV>4toYdWPHMF@6-1z>upZ6v(NaO1xk2ZZAhvh<84`ws6nfjFX z<`5@8mv%B!}zZC^%OoI%~H?uJu0piG&Pj{IWP$K?)?pu!T9RT_GbFamv<#G zeFFE-aMq0NjjP~VN#Ek5>T24ZArE#s!D_sGkBz5$d4=m5Z{ak2KklHo{*iNiF?=yt zpN+JiV5?##+s1c{q7{Cgrk8;o^+EXkSynB;bSGb(ydJ;6UI9)gJfFuw_`S|wr_dX% zyb7}co{#o5zJmU%uHNM1RX84m!&T0wW!oPtlIU{l7vJIf_b>buNItTW*v8VN*jnIz zvmD#d6dvIE2fo9yB?cUK-dd!2ESF{J2yNcV-X%zp&L`zLVJf3!dTLh)pH5 z!e&ZCYsfI`#ze6udrvFASB%{TzfZ+Dr48(y8%ERJD|!ErW^HAA7$48$YfW>tftSYc zxnwcjvDrmVH__*0b}z$E6*ci84sXb@-=+6w=yMNf^w+sv7h zFaHT@&bZTJ2^y>-zweBl2foVmZ&| zd9mHlLO+P2yR!0Ur&C39jZGG7dLeFW;|gb?f7ES@UoqT+o@>neUJmD0!koRf=4Zz8 zKSe!7SkrKN5*{z`SH3=8SC{tCCO9a;;hc2ql6W5EtCcy!N71pm4)+viEL5{_{4Pme zv^5Fd>*e(kK6>!?Zx?$4afRznd+=Npj=%GH$z1C&J5}Y?YN%f2T=*O*wLmSwF_Z2$ zH^ce3()R_|je(DtgJx5k=%tR&5^t#KH^kOTj&s=ACZ^rE{G*#k&?LX(GVE<}@l1-` zCfSQjw#Vi7gt1>tkc;Q}&h_H+b$0XS&@dmPo_V7jG zT*F3nF~_o94mVHZp+Q&rq?MO&{bC(@!O4PY_DY%d&3tv2>&@(ib?y{>B^mROdMXRo z>9D&E=QUe9-jn7+zA)Qa(;j0mY~(tivOcy*KT5TiYoI1u(k|?VRkAnWV**|pO;hys3xvD@H|oCoS0%O=zYeo z!|8ar))eo};t$ux`@{SL{%(NrEuG-Y$DQ!Ie71f4V*1Ll-&!ILShb1}A6`<|X+>g- zt7>hASGYFv6CD45SwyjQaVZ>V^#~n@`>DQW`(}?hxCnjxK7PV)Xk3;ghTdX_U34=V zg-fkTddWyybbjP`ns)39cA~xhO00+JX0donV0jXkvthVYe&@tgXkNf1Ia1#f>q#+& z^`rqj>f`OK82*B9w3x!Z15c#VsPU`$+*?!5Fu4PF=gnyECzPRz~BD`C{j-`_PTLooWX$BLSI zgP1eTdrK}GVYpdb%bLO(9``qtzr35)u-@~zlTJofRc|@=A6=~TaQbgKeLX=Q{6^!v zwHR~R-4LtJ*?EM_02-gIlL#X+Zg|HoPzW2VhZ1lY{CD2e+OLOhUXJ`Y&2s7KfgI&e}#Ib z>n+ZYZzA79>oVN7&4!z};^d#^{LQpHxTXE0apAtD%<6n)S!0Iked2r+w=D+Hl=#NM z`gZwEk^iG|51+$thV6Se{!HxO`#ap@9NshL(n0v{-)@+EEyr2niC<*xLrDQ`zQoqs zDf$#`JqYtd^R3J6?E}P_g#S=GU%=>Y_Li7ebD3PHvxTzSCmRDvy_zs~0}n z!D=9T$MGM2tM_OnoH>6jdmqz7Q30%G%Be%?HH(~C>RIfQa6YaVZfPM`PJ7_FZU{Z_ zv9X$3@%PhB`Gw0cc0zCbC6ymzUls34d7gmbU^qqa_g-b|K#8^5{6D=uBaXdd3%`|> zgVS`Jw1`ue^m8qq-()xZrp+JX47z#9yzm>!DaM^-vqn#^C(~j_^VK zr2{cdo?v~WlgrD}yS&183Qob`Dlsmnq|1}$SDKyhv zFXS`S=HPWW#O+MDUchhQy1Qd5TH-`q{oBJl{2f;tmw4Tdt;?&(o3CC|#nM;bz|-`> z-jk`n&M@r+heC00nTKz2K9gm=lzY`^Im;^#+jQxxB^d5c=!!m|0(%HWn{?ig*>Reqo zUe`#D%hZP4%ko)>({TS#_>Iw5#W5WJCB41ot6F=Q@R#b`J096$xfO1A;0+_`J4+-*DY0+)tAszscg>#K%c-^&F?qMd-nFkO|)} z#T&j$6n+b^EPQJ;P>1{tpz90bOoUBC`TYiyRs8LAuFYEe7vtZJrZGNZ$$2p znpU7mJSX9?BE58w)8-Dwms1~beUQy5@cSy(djfbCvCnjw+===ndx!8^xxD?Tc>kO& zU$)cW`>tanU_N6!zU6mgvV8{)h0h+B%BcjF;rc~w+6a1`1=H}qp|0@=zd^shKE1&H zUYLFlm&W+qTup!Byw7O4iFGb~j*D$I-?z24PIUI(t2@6D_Ap)Slj(gTjK|=nF%Bp4 z@rd|V;P{MVuVupA;}$+^sfFLH*F=Axf!5*IW;xOzP4#4A& z;B&DtIDSFzo$T*VVA;Eqx}fhZD{u2rVVkaf_rE2K9Pz0vhbB(>I`~X>b;J6{o%h)9UtQ> z+#_8A=N2&91;_9mt7ABvCYIZce-S_H%d4{qYOJSz&t7-);>2}*ZTo@#_9sbf!}&$| zJ>JIqh5_nd-rL2qrGx(E@4M*XA@=GR-`n%oa^6QLBk|Rdwi4hI!Ef8)@`3SSb@vx7 zgx@~=11F!+!;A%VtlsW4C#SJ^PzX6xw zyBuZK^6mII`U#)Kbk#4qvGWPP8*uVTYjM@JCYlp|yX8X|bTC(#Wm4#{g1N~!{BfOl z#rUN7%BZt&4|HqseyR>mioYIvPtw%)F!+*Irp;F`bJa<@{T~e#8Mg**WyL>mWNA5%a@b`jzC&I6fe9ooG0pE{iu;ckoT=c921AMHj=Y4|MvyBV)WL&__E6c4j zat*)F`fMsa47Zlar?wco$Y;NJ3!PsQqvpDbLxNB8H)V*PPrp^gl?)aguV5<{5^=vsnIZv(kJBEQhwpOP55o?1h03(EsDR7WA!q62|a2v-1dzx z)xagW`YQ~>dxmyw48Y@cZPkWYVrcVH_+;{x!{^?rrSHcE;bF%_{jruDyiRLouf$&~ zyoJwW8}s!58=unRjbeX*k9P|6f&`p9zX%rLJ5{%*;2#Ff<@FmI>zm+53|+HmdWPCD zXYN2b;`;rS?7?we5e#OkH~xOBBp<%Qck;sZt}kFXxQypP_{CLPADpp&j-MM=SkpXz z$KDA1ybG7d#qc;gWg_Hi?Cs<9HIHS0Q=ZK+Ab^Vh5ZmQ?n{RH|Qi)WaI-?98&o^P06pZf*!x@-Y0 z(!$;v#!oM`+Y$CV#2M~iya^sBPrY%%ocsvi6B6Y-@Kk; z-^KR8QM8{dNAtS1)Z4~5zf{j{LVI!yzd!O5Zo_>NON{xsx%Ew~bJ=-srg^K>6^z&S z*N?>4rYVlu=mVoSE1sWAur|fPuz)^u%@OO4LOr{k9Q)#5Y(2Z+Z4vF%RwsG- zn(+zj|K!+d@y_Ra6ihdXBYfAsZ8!PgD6^~{BA0D&N@ep-vHW2EPjmGd*v{j>OLc2v zJ}ku(?s*%`=0{1i%+}lTJU!JuTRpu3w_c6R_xjo1>JfH1;<%lU8gd>e_V7LUl6mTB zr5dQHb>TR7joS43Ix&@%&s)S66RB?L{C;CMPtt4k>f>T~-?G>8^DrSi!rUb8Xmd!GAssK84Xse0HvbZ~2yWF5DX%-n%?RS8s}cJ-ja# z!A%Zd%j+IEJ}mCH#G6C=;kShz!F^;6`=*gJngKh<&%rQgaRpoDs?hXkv8UqF`C;N2 zSW_+5xAyWkNbHTW#A*J$iT3d@janxU=O3MD9qtETdA`cW#Z|DB+fwl+C*X87Jx>)s ztde1MgV>(o`>E#k7I}IMZ5+nep*FNB=UbNQyMxtpE^Y965&pl*Z6A`q=X0h&Pt1SC_#C5B2;d|PXW|)^^pF!(Ci*F#C z7x=vv7UBDKuaD91*!$P{X1I@mU2U(sE%v@Z4CUoo43F@8<{Q`vJ?OYtUWR)%A76K2 zZ?d|DT@LI=z_~VjJJ84Wh59QTE|jGK^TX$KDP!#^*4m?1Py=)HI{D6$*V0y{>rovT zzXOjfId6wqsDWF(-Xiw!d4E{{UZjy3^7@Uv%ku3JY2yDshn=m?b8sQ2k^1I&@eW8R zV*$6Hs82(E#V5Dy4z#gEep%i((^B|MZmakT@isJF9Tn24d9ee%KOAAL9IB?|JsmzT zbT?0)FEr9u;&3j{@IN79)o_1#{lwk^uV=wwr1+PV*SkEw#@6A9>SdH(&gRnoG`T|k z3oqf)%k{Q`V`pzW|@KAcEGv!a5akl z!goyCRG~$&?yh9*lII-$hBVY$=&qvJ+VfRENlx?lMoB|+A^m}q&2Lg_W~8H zV<~hn1P9gBO+{K7CI_0C53g{&Wdncv&0pV^cAPup`N&)vXo7FKPcNq~#66SF!)K-m z>-5vEe6G;PVDO<_U!9B_ab=I!yZOJLy?e!4vlg9;J$z3g{BMM=Vj1amxc_yjx_Yoo z={5F;N62M5ZOLbkc>&{cdQiAld86KO8-H!#dLD_==B)tN5C-(*zF}#Is|To*2&-JBj#sqJ!7Yh3`|nIF>fx z_Yxj{@w|#Y%6n|b!=MGFd);B;oy%tUeXF|g3;$zdv^-)wmWk(LA`Faa!d_e0hR-X) z^@DKV$U<=q?xdauhbb-{yK>773U7p%x1B? z=J+J@uQ2yIxu>!71YW-B3u8EJ&#`{+`$e8LLmr1b?)N$hR^huDBO~?R?rP5bOYwMe zl3oGR`cXK}grOYXD3s$W`V-gVL--q6`q_DLXZuPyWbm8fd;G=Pu8eJAW0eHD%N>54}YL3}M5P9J#anL+Df4&U7ipIf!#_f=T@Wo|clJyKThkZbr}*sF31 z->V4M=^qvAzqREA+k80AW~W%qb>J`D>leOnndtA-KGuO2@b&k9#oN`q31VFb+hiDg z(^!4uW{>l!u)UR**URICoI){y zlW^@V&)IzKFK>(-+Vi)6hHEKB_H^PNlSL0={u9=sX6{Gv4@){zeZx3Y0N@ciK)cAB>H+9b_HzS(?qRS*Y}s}mo!q)76<+5L+s&q zE?2|$Hrk&Q;k9FL((2f$`o{{rJ;7Q%t8~r3OJ3{8iWSdEJ@nA|Wi)u2p}o26N1LCV zWZkY;`rfrJ|G&X9Xe8VD%6$C9c3ZZ;Q%gIC!om3$m}%e2-eIZF@7VlCZvEwbjX7=2 zy{jQD4S}I}!uQ5EBpPqt*Au;`;QwX*!e`ajiZ$GuwhmX1N6J;K$K)SyuEb_Wnt3>m z!_l#oj^ilY+n%_P#^v;$<9X&kBd!B-DH%Xp$@T#3Jy3z>3SApvcRF7QOVlXMPKNU% z@H@fAv37d+YFdWrAL4s|yxO42nmAcJPMmVzC#E0y3F}E8=gN<<_Tps$yX$GW>u~G1 zTpKpfUwY{Y71fY9?xc$k#Xg;W!o5!qtIZ}o^-?)4H8$)Win@rA-!2xch1~* zX*paIN{~}zD(<37`5w`qM&-3(1ijMdCK%k9hzy#lgoj*l)rRd$unX7U&X-BB9;+5Br_$iyC2Z%90ABSR$W+&YH5UvmX$DFV~`HKBN;gn~7g1@`Vb+_1_694K& z@R|f){xa~KgNM(ut$BFb2=ACeV-~R4#$JHkq+WVR3u`+Jj??~^Ys`a51O8I@IVO%S zVpx~L4_t1>OZeP3>}yjdz)FnM<=B{wuulICxAk~>7dKh#ztL5%HSZC;gnJApz%<-r z^S4-EsP1p}cJ;R3kaOH@9C$sAjn~=uU4G&B;1 z&D4jJ<@xh4>!*A;#wN$dK>ndDasC(+cd7lGvb$aG%K(ItbrAc%4o%>)YoP z>VY)!IZ2$RiOXq~oBx0R7TyD$@<)IEo*rNNo;Eg}fBt&otY158N^5iR+6$J?Pp0E) zv?9;2hp52U@5A+Vf47iVDh#?TQHvdLCBAFmHzbW+^B=5jO@~!dKi3iP{;2$};pa1U zF32g`;|ueCq?s?(#x9t370W4ePncV6t{!OomSxtInsm@yUbqVPhmNa(pDY{?RP!FA z@pmnI;rile&y(==btT6tvx$eMFuU3##QA|(!u<(_8FGeCSN`_PXW2;k7UFn?bweD@ zVR=IA-;{Xo4wsp&XaGOq`w!uM=Gk&TE0*wEta}z(0|Fj6xC0(f^rnfH?9Zl8@fA0) zXP&Rm4bmgz)u4jw2c7Ms#1`%?y`{RI0_UkP7{O+`9LhDKL-{T@E=CO1@%?2Hop^o3 zu_H6RhxdG$IIo$+FAVZ=)~ccR9&)Lf3xDy1`}3Enn_v0v%l7_6+H~%fT8^0?eor=h zhIp4_EyU7zF}=p(S`B=GtCyTyu%_f$g8; z>;vl2Iqke7wu*4up*@o zVSiP49itcH^sOfR@D=JY8O~u(^&?yc(a^j6OlnKpi|}6qcg1Rcfg0xX$voO)zflza z#I+UY;WN2E3MW=*EIc$t!Z-W9L{+l{N4=3*+!!>Psp}ASK#XPNe8jvJnR*u< z!h4?ZTf+_6c?|YX_mhZs3pPLb zyPI+A#XnR$ugax2tfq;3e-b=s;2t{rR6VpeHq=fz`22(WD_}jjGEIrA89&GHKL%E3 z@&1Xt!u8WrW5q~w*|6%#_F>rHF2=WtNAV*P1}FU<*b;G$b0!L zdExBamG(UH%A5#KV?Rn$M|2XtcimJj-w(HE7^ohN=~F<@?B1higzxJvZ)3gVuR#Ox z!Eg!eM)`ZXJi_k~9>Uq-jssGr+Xz2{)B>lB}D4dC0ncbre-@2jb< z*;lm=(8(o^h5O7B=h8jjXJY86ntb7V+Pp{ARQl$#m z6Gl5p@-=#GzeK*~O;Znduz6fAudkxBF|K#9|440diS2!P|96COZD9|O+i3A0H9oPS zHKeJ}?CM$Iq-wW12An`Y<tbHmT-;0S)5Y0!mc3P>+G(t}R8VK~de)eu0*y*tARAbF)4e!t&&f#e|EOv@1>}&59_Z(V2CAUkvn+u0o!>uRuT7;7; zJvTRIdI3Gc`R|VK#9MdgK3HUb1;Z!d+)%vVtg@y%9zH{9I*K0oxDNhZHK{}{1Qon6x-yxTk{9lCqDV!JL`9Xevp{JRP?Mq>{5)N16YR^jj0#@OBF&p`< zI2SkOywgfe7Y3S@LL7tJmQwhw~JnrN0VxzNoN{{<415g&_;ZG&t$V$&OhSlYq|bUo*Qw# zq!-P}uOof@D7P>4gxN5ABa4l8))P3t1jotF_wjmHPdpnx#+cS(SusjoO|o}_$E7gZ zDBo~j)nqY!0`J%GkvT$r^v4yP!*>AN@gF0W-R$=>wtZPWN6gLS-e<7A`9O6qwk+7h z!RjB!6JeD)lpT6HF6VAI*ywR_34O>phQC<8?-FMW+}HE-T!ud2^=dIrgzpJh)RoII zc!%#mh3j^M$Cbtv{!c-}930ZV(+P(;;*-3hpv47UFU#5qmf%r47 zKmYf#T@f~Ca5QSLeSQaVcenqKDBTDBWqeH-w1s&;T*cDMbN$6lV;eH9m*T%cF16;t zC&7M%zju3yYdL?-#b41nrDoom1uvRBAg6nWh*@l#jSb&3s4bom++bB zo%~$^^FCteKo1Wm>MxbyqW-=uQTt-~2@ki5`!9Y9Z>h*m80+Um4e@nhw*3iLXeGF%(+4#o%zRp!wdr#8O5@WlS!+|`)=eS>p zxjCFC4S~B@D>_#b=D*T-{akx+d?yW38%tf|$IqhjFqGSL_}=Nc6}-P{2J?P&#&3TZ z=dvB{t9*MLJ@I?O+;C5GRT|hj60XKJmgh^J)0gQ#Vtl89_X3^t=xFxf(@9LbN13Yz zv%L<#X_sn#0?xwyd4(|8jrU&WR7;m5J)aQkU(59v{Du33Tk_vi&$w>_ZBMqh;d=&7 zFNN<%##DgOGjiSumv`|u2M0Og57#G;^Vi0_o^kftc)7v3h?U}GXNbSQ7E`$1bg&Bz z;c;w7Shcn8*44wTB`rl)*tAnLcCt<*p<^t_pvkaazVU%*}E^od))c*msfZXd!di#I<8Z& zbsARB){;YG9Os!2lYsv{=7Qt@?{6F>uVt`}qM`T94c|dHI@Mm)`J3U|2iD=foNz6- ze|`NMMi0=yH0Kh>TNl{;Aze+vDEyC;iSVkyPWL9}!J?JFHyb+ww@YwVClj7x4fmz& zFmEwkCCdLX_|2E&vwVl&#BNy`XX9X;s&?e^F>RiOcWz0k{yQ)CzPFOzwpd*B9LLWW z{B|^_k(l0Q@2Gh*nyQ(3rLlL1Bep!W1F$rh|j;oRw(}#jyK0|I;_LB+!=fiE!J0Q^&7rlhsD}~9yRqHc2>~(ez^~H z?CC0c$P|4M?%{sAF5PI#oL|}5lSQwNWvSutdFLTx{tJs*#_X(t+eCdq4*&oDrj>ne z4s6*zHA=6CdAQH}Qu?|8*XxFQuOXKuc-zs8Z*_2Sw*KciPp;vA`Gk9M!uMm2HL%|> zr=qzJ!FjLovs3NUrrUqQVzGIj@KIyA{Caq=9Y;&!XeM6V>9pQnEcDpU+@u-mY#!Z4 z;Zoc?#JQv_zi@vG_u(`9)^d4j5xw!fU#|$)aW0>XL*w3O_b*sXfWuGbY+>_APkTKHCFe5#IM-){o6;&Q&X2 zKa=HnWmEX!V=}GZV*WdF9nRO%>TG-5D2_Mj;|we_i|kFN)73D?+OWOY-X;R(^4*QI zi&bdd-?RBo$k2D_tDhL#@!w#%I#m-}#Q6cgt80|j&6$Dn;cpk46C4Y_J@g=~Cd+kv zbNvpdr_B8u{)OiKi2DqjHf<)}9@Zmxok_tf{e`t8eBWXW-!IE&yK$ZS&=ah$a%_}% zC%~mH%)|GpD`vsIa~YtO?iX&Nw~dp;VBYast}7VdNIv1a#|z;6ftGjp&XjGN#Nwg(1z9|ec#5%weE+61pF=(Sk96U8?{o-gBUNG8ARUEWPE zmfI~bn+?z5^mTtDuRG}ztMr^vG$hXvIH_79p9%IjFdWrY4LP2|Pk8SXS3!J^U51yl ziT<7hA`{ zYcy_QeyS=4R1>d8y0jZH&5u#RuXK`4WO0+kEu~^Op z0Iw&#UI+8hV(AyDU+{CeagUoH?i*^s&lBvI#Z`FUb3F|_CHFtzxx?5a4IH0mU7@Ws zzV4nvH?(oHUXdrBi)FP{h5X`N+V7Rw=+zlFo8d1_C7t<1j^K9l$fpU*!A%kZA#KzA|2e6*Z4 zWvU~5gnKO4dmZ*58Db5e({(cct%=s633_$5HL#cZqN9j7c3~0rS`G4HBZuLs);YOu z7Eg2^{b7#d@LRy&_56l=__O$YWB@M9=^^;2*P5=Xu)*GqazDoY4{5lhwO7r(mIj{V zJ1d;8rN=fCOGEtXCky!Km8gHgYTIh>W7+MT3u8Li?0nCVr+MLCp$mM>gHO1Z^$^>) z6HpID5u_vKIbgNul-Wi@m4vys3iquCBFB%_of$zx zyfHBBC9lKsd>K#gv%QzU@c-cQD&uYq4bHHCZwpJY{yjvkHNXjO!|%I|a_+d?Pu8)% zc#h)Z_3_^S$l*&iA9UrIz78L^`unk@(*0D}dv15UGCQ}* zCF~UsbW@j(|GU)n5O%ZiHv`Y%GnlYm_Yl)ixew^6c44?)OzHj}RMsADE*tDbI{sWE z_0i1!u`zpac|gA@yNHe(s#kyCScD^bc^)oz;4c}r;resB*cvz&l?r1R+_c<#Jigz^ z*S{*#);zJxxjR4Mx^NzyZ-{r?{2cj(?=TOC|6Xw&^vF>Y-#FHScFV%M$pSn@c`sp3 z#oFqkz+3@H$*x~(ab9(4*AGHRa^1IN6rl%R> z*t*f;rI$E9xw56+R~2rsWxmWiG#$Q&_D2>Sh#>(NZ;P)J?1rkR%ZlhU z(wc?W;&J>M7xt;aM)?07;kS_1((RP7w4RA$=UTAYT3la`(#QCoC%-qv@v39t+TFvj zJT9;5>T7C*zvXeaV8VC!R(M^B?_9CWG=32bcbh+UExjke1V5Yb^bkDmc0PWDwUY0$ zHECIX{ovDh1+C+4yI5Xath4c9^ ze;khy9jrt0d#?n(iRuS#|CRGS3+Y%+w^rawPB*EGk8Z73Aa5RCx#4&hd<94>L7yk=vFJb33_5FS)y$n8u^8Yqh-)T>8 zu+K`j&dYCu{NG{w;BvXb^>(_vw;}B~c0`=vK8{$L4gY_19b9`iVyA&Mnyqk6^b&b} zNWWpPwUn0jnSV?S%jEjJJi>QSmdPtc3{SVF3wdsY%O?w9D$cO>-^fla-28{n!5Qji zx|m=##`9r0o_6jEaa@tFH^Y7t+w=H(ysjE4D#h$W{AE?AyxU^7BHnvW|ue$h0(n;}LrKO&#_S2u? z(X$Rc#o)`a#cgrQ_KPj#2(S0$v@wN!F+E;JzJuwFKI-GEA|As1)jjELE4vTCqbgj& zcP$q1AMR03jo1I3zlv6tiMx=Nd&~RDX)t9!{C~$y{jE>NT#K_GM$tICH;AhyUEIKL z8jiZ*aV~7T#?dfb8do*Nh(W zg5}j|`ZIq&il?2q;a;I*N!AzVO5oY57%ngvKaO^@X+``Aa0~Z9UuyiY0s6W)#_;n2 zKPQHmFNe21_Q5Qk-|&5w4g7@r2)|StZ^`>5@t&*&w>9#nryQJbgWqsHs2NOCQ>};H z;g$~vc?>cBaz39_H=AIyC#SSlAI#LptGRaA2}j0!%6@zmy_yCeG=J?<8jY~liG7Z| zo`=hq6V(!K|2G|X#dxNTU*LHS{zu4Zs{HEo(qqltZ(fZ-<~SZxWc+x3X&~%3HyQUN zjB3}`ix3v}uovYrijT+BJ@=t?>7^@%FjK z_k!2KvU;Q3Pl;hG-tTh!QQEpjtRwV~k&W~+vA?v0f4Hn>Bg(nw^VAa#7tUb^-nYT( zRb#*Kd{1XK)y4@vvn%UEo=-N_OD602)vbHO^f}simCxeEcv~m#!Pegy`l{G7;8$Tj zoTtGg#Dtfw{Kn4GC*V{Ye?Q~mBtIX@ryQ=rZ)Jt=!i0OoYU88hN;;fCqx7)an3MQh zFW%a9?A37gs(QX}sB>bNu!aqK2*2ew2nXTbfS<&0%=m2f%Bzio;%><1Hhwb~(Z~w= zW~&Npuc3!G_nwct!{b^UhX3g>PySO%>?3kA$+eVhu^#D^2-Y18;HKVg5IlEts_1rx3B^psf79%MY6^pXrQw2ZW#$T!?~urSm9LH=pZpD#~`j)i+f zZ%f7xu3t%0i}I_*=S1hWHZxEBWv6(L4$pws^X7gJk6q&bM1H4?{d=fhALiieZMN>@ zGgdBR)NT#&)D>s=&7m_r)GK@8e#J!RZ!0H8m|QU$haKRWO~=j;fX5lJu7K@6x-Z1d z$$al?m*Bt)qSJcntJWibJaMovq_ab~ePg|RFt)n&Vr|{TR9CyGYVt}|| z*3Gy-MTg34aJcq+;Un}c6Tu!rbU7Q|53l)s{ z6@QPEE!~T5z+YuCzF>U#zUde8+RWZ&`A_ZzpGx{$2Uz*Lq>uW@#sxk62!|WRcs-5h z!nwS$R~R!JuEXWhy|49qx<1YSAh-^Vw3hRgR0;V1lV`@=Zw-(Fu4!>m~K)k9xnGtInw_!K)gmX@ls)p(`#+;e}igxcO* zLC-ZN?C)pf>G2uX9p}P(nY-n)z7|bP<)foIm&;1Ji-K+VUl+;CXihxgp1xfz_086_ z=eYuITEVa)u0NH}d47&I#W&k8=jbtfT_&IN2{^)c_`ZKznmAWL&+Jw(?t=Qeo!y(+ z2;W;{arU2R5PE5;V$`Yr-xJWoiC2R;TqoW?J)Lpe~0U);d&e#QA7BR7j?K z+&qT+Lz(tV?Dw7NoLtUKI`liTCwUEzF} zq1H5b7t3Lfzr*MB#WZ$b63jgkozRw z!yxpcp_8m1)g7nbGBOb@Tv(nAvcK`EBNY3crZhXh z6y^!^Qd7O$CC0Um6~x-V%{5PM({Nr4^M~a3mDjgV&~wx6A=tWNzF6>nlUT!V%kN?9 z=}xd``xxx17OP$S=F)cwTP;0~PSG2B>s#V|2M@m`tASy3#&)J0pKJ9qZ(CzE0N1(lErRL9LH0v!^4^puM_zB*__Go)&=v2c|Dika-(U^m|s?kN1c2rukbr7P2rFfQQ9Y;SPo-2 z92f%I3f{K?BHi;zIYr5-cZT4R>X zcdTjT!u~RT2Aey=oN&KPw)hsqqltKC_wybU#^dl%Q>@p@ zBSySGCYG*khj5cT0+%>G$<|Zl#gk7{>^v-%N#)ddQ#teXTnz2@G6?VL5e9)+@{zBggUdbnP6qC#P*}_s+IP!TAaG{5niG8@Jt@w|dEq?eH6@L5tVO z>yCLa8!FdY_FA;}rhHeZw>5m1W1~S7j_6|BeETrA2KhUD_rI{F-nrO5N&ewCbGFOn zE*QRQ%m`XbUae-uyMB^=5ZkB46?hvfm!&jUowgdM+dIUW!%w>`y~6xQ)mg3H^hk53 zjX#5w!8kqM)%h0 zNj`Jf{0v5);^-y3enfB4^st}Ja9>n^InAc0!|SZGCG5(1F&|;>nt&@To?>HbS^VUC z?@&iy<*%n0BKVoa?gGa?5=)63e}dcg2x|~Kt=GU49`o?=GyR6&5DELf1lUzu>-{vW z@0%zF{)$O)OLODdT-^rd;v7AaE@1SN_&yLrhB<#m>T`*3hS7b_oiXo~F?0pbitNss z$sV8KcZORHSL+L{smZj9$Fd#72DizuN$Npga$9T6Vb6WlQ)~H$J@=FB-#o}UJhjH} z4gCMUivE_V*Eqv#%6YNgO?TYgFG=5?`c+kNg;t2OKXAa?q?IzXqQs=%D>w!MT zu`yHbuT`Z-W4`5MAO6C9z=z;-G245bhH#?Y_*`pS191$XSN?yQM|;lgkmrVeI59rT z`O}ltT$*)6?rqoM0$1UFvhW*yo4S==O9|iO+$X-r28t1mS#T}~!}O-s{=u#ncpZKx zGTg(p83xngpYPZ-ygVS5g^Nqq!KGdFS$?LqQcG*#0h{|r)7K<86{#6{B>DUEwt6fq z8q-~Js`z0Mu78L7NN&e_CYvwP%`5SxYi}yw&*R~k+-lKZycmw+>I9s=XX{g3X4aqu z`K^}QBV$X~_&xj{g-iH6GkgyDLnWGTV!U~`@iCR1z3>j7nVm6i9Bi71C4Bz$guKK3 zNFT?*1y4Wsr7O53!l{+oT3i7hwe>|kAbhvzEj(RrZuC?bd6e++g6C^tS`wk()7TR@ z4ZoARB;9j&`Ha`|s_PGR)nhYz&4fBTvSS!a_zx(T7v=Y82{UJQV??&9N_Oj_Od?zW~Gjm=o_f!M7 z(@s0FtYu?_@jun#U*3%x@+XGyx$zenrM2^KoM+q|U!qQu{mSFU@&^elB)Z|9B0xn>|`gaEZj@Z(<4ef*z&ya36EHr)5I0KiT+2`csm9 zEPGFlP?xY61;ZG5h0o#pt${TxB4^{?{Jd0tR??|F@99qew7*7v6Y9`ApN|bM-2?R! z%M<3UGw(tXOxUk1pDD0OFR|}{eIkC3((REf@A>|Zz58&ls(QW#P6#c8KuG8<0YVME zcM^K&C7}ceA=JxXoAW_CDvHd#Oe*Y}}QjC*rb~bB~V}KRqRP#s{8Cv(*O&`Lo1>zi{0>OKg9L zeVeAe!iv5ngnT`RSty=!Od0X_9YxJ!urzB=k? zF3flem_OjR1zTyjz89|L_}$n>Z6%Af7XIMgG(tZ8UKghRaCd>@)AGj9*lPpuGnt+K z?z_pwlhO3Y*ChF@<#=~B6rSy!C->nw+zePc@*nCvA5T?r7rwuCQx(UI3*VtO)Yxfo z+$T3X<$q5pdt=ked{A97!#k$VM#m02beoJ%aIDTq~8fEKEe2344hJ8hN2KysC_QPSsJiR84 zhUhDNZhOsCeXqbeikrIf)k|K7;rFl{UZ9r*d8j(WT1cyxnRAUgDoGEm#Zg5(%W7E* z>0*`Foc504XK@X>g#SPzeE?5K%&q44{qTnO@Gq^11AP4?o?eMGi`&D~>AXA4-Sm}V z-k)x(N8u^Fk5N)w1^j+1mRHrm!bP+!PY=R6Mckcna|^y#(Dcb>MfWND<%q}FkHlM& z2Br?y=kOWUh$-@tiL(wp*v0o0a}PT{xilLzR|mFR;cq{JcG|&PmKNEr2;b#63*QBk zh@qqXhe~+O#bf z8RF>6=Bvic73=T;{Ihep81})PiGzUgyq~ZpJP6C_RCzW2zOH%)|3epAgG-vXtZ3~T zi|6~Rt4VhEi*q+F!u|PTFioFrZNgs_x%r6y*@NU(yx~3iFXg!j{?-`#hdvd)hy7Ax zo73AXaAx6uX3%n;_1~CX^4{L~muT`Sd3kvx-A}>`-*t>%Z|qNy(M;T|_INW_L z8AHdYL+97QxR1Tk{NFxb4)F5H1o$$G>T41H{#Yg7G#uV5|COzTVKg&DkHbYVn3fKe zgFgC(JcjSP*v#%jt!V?6l)#Jm8^`hs>#sA^SNWoS+bJBju1EiJzo0G7#k>{I;l9gW z^)S$}3b+R$AO#ODR)zjN$Mxcku0xkmO;Fph%l zscNvp(E}d~>24~1_u}UQPJgJOe>zsy{P$pNwS?~Z%<3Rkb~+Y^0nY~(%i)Tmy~y*p zzC(QLJYb$**H$~uSN+oQ_tk{4}R{%!@IN>?$7^=w7RmV|1N7|9`U8LK z)o6IO_r~F{H{ef=uf^T00{okkPa6^Px^1RCIlPPFT~mp%rSTojJF(0?GrWiAjRw?G zzc}wNA1~nLOlA4yXADgQ&FmA)V>C2FZdVu+o_nfL5l=XpQO5O$e24d!x*79x5=`{a zECrYI@ardh{-z`D!hR|2$?nxBKB9+3a`ne3>pmNw(A^5U_&i-*%EPVVKLbMq-Y)Rd zdzN*BpRCf>CfJvZzzr?@jk9a3>QiFhyx2TADmSMOaqMPeDgS+N9gpK1asPt+Y-RWB zhSr6te#hkj@ioSO8jRt+yz!0=Ehb-8;OhfFzCJWJ*7*uze~ryFF}ANuCv03$qcODD zB&Fzn<^%HaB`o3I`0DCnR|l7gt*O6fr}72Y4zW)&=LjAuIJY>_`XC4I^V7dV(enk1 z*{>lN{mn}$$G_a}n1=68a#rXXTu#^HA(6i)y)K>Y6<=#`kb|q~xP5rITEI~|=hN{v zkA9zY{O$xjQ7*zggT>?IE0&L??ixg!hcf z(Aq%!=Y#A=V)PL8GODNZV_}0Q z*WXXd_b@qKAirnesxJ?lXreqmw!*g7*zkFfmyN#zuB#i%3!8cB|Iu7~bFqFwgUu`G zr||qPzoB=WGk=!+JmL5j#$vSKm$4 z7xDLeXWGM89^XUpa=X7bn!9a0e!-rA^V&EM-|PPGGJJ^Zwc5^2vKL*d{}wmL&sFAa zsxQyx4K$_~9lh8_KaF>t6Y2oRM>^nJE+hIFI|nWtjKFnxuJ5PD_Fwt(3sbJK>Eb)o z!``Hv9;+@+*Ogx}PGu|fkw?kWSk=IX0*TA6OHz)K{&#runkmhO_Dm2iD3hu0=LXWr*xyKS5`9^W0Edqj?}z*m1U zY=n0tKgDb6XDQ-<<53tNAE;)#8|(MsY~7OKUYt1@G-}#^&qdepduBhrs?eC+R)>2> zq4$t*-aZ#z@q{&SPsO7949nTtMQcyc;At_Z@%1a7Hsa?(3u|>%TE^E4d_C>lA@Q7< zPsenf*pzk_TI*?|kk-QYellCEa}q2`=jREo+Tgha#oIq)l>KKa#MBnhm(K&99+#VK2LV=x0u5B2yAR-e_33ga=xYc z`}yi97cb*(BkYU#IY*xrXd%2$6s~JmI9}56@J#-{;=L}!AEREDiVJ58arZhRII`V1kEICeOBf6y8gKJ(7 z`e~>4j2DAAhRf?J*#5!)LUj-=jwoxF$KN(*C~gZ9@l@WLCnxXV@WLq9LB>qsYeg+boF`5Ix~xk!4-E~@zmoQ37*1)UF0I)yzg)t-iPSH)=m7JGw(yO1_<9-i$!Xl!_YHoV{Pd|P!`*}6`9;aS+qavFoT{^Rsx`FO;< zF6?aTuBWM$Hn7CYUmf{f|0DSd&yi%d!U_B@!Z~J=arDTi6 zuEKqW_vIpo{o-ZSzI^@0{$I4Ve<54A`vSI(k@Sntrfe*xpZDapIllf(79Z}0h%MYx zehR*D@A+ALREc0~rQTNC{sPxu%SpiUC~VPe$MF3)ZXRSmwUhNtKCh#jD`+>|o4dNc zyy5wLhJ5lDo|&sD2TA?)K5?FhrMkFww$WqM)|6>L9A!x zw!bmq`GMu|9EbaAcsjsWys>q$mg_1pg&wdCcdz0i++!==L*2>AZ}Rp$9LczuWB!hs z_VTdq;lDth4#Ia2tws)@mx(miQ+$rcvop^4%h=wHj}OG0C2!%o8p4MDF}&P?i<5E{ zhx^OLzImQp()?;#8~|JRw>~~eQQyuFkcaCd=_S!#lC7`#58vl=c|X|Ya9S_AVe46c zkHzVEZYow#*LC<3%kzu%7CAWC!g>JnJ~rR)qjrsL&QB*=y;s~da9k7iD*V0A{w?g~ zJ9pnmy*(RdJkN8yFJ8BKEh#s%GhxEr3}dFs&sWLfHg1=A_OZ9DzWWFKzw6j_c)W?7 z@O@jiSJGeQrF|5wi0cO2l#Mm70X^kg|HYLYXU+AR*@b@66E1S{{J*=y$hqJM?y6cG;{XqWH%isqu3)uf#e#XMovV`?btWQL% zk!5C$iM~F9c?BP7 z3#`G84Vp=-^!a)-eR+s}E#`Y+S~cIbBRu`Y_5#0Mvi0Z5;uviYsvgeCTUwT$19zk8 zxHNX4c;2e3X7Cu-MlB@4B}XyFUKICV1M$UY-Ogglr8_uZ!e2>a#^L0H(s+jVWqwLm zQO`r=8y7L{^`Clh#*1H$Pl`37mY&G&@(4K{Wv`CkC&szgFrT`~F+`{$O@WNlnVsY!9Kar~wn`gHEc=GKpf#`o8UU>aPJZ<@@4ey9#`Ni~DcY;LcgrFC36cu>xZ+ zlh?us^TyyuK33smFI(Z6)Tt$1cgfvG@%3i!d$EP@-wU4$4A-zf8JmHl@ZQHPbHis{ zXNdJ#@$V7WqB^c$^@mBg&cjE%*Wb;pWzNhVdj1U8E@G^Wqoa|ygLgO%!o7tL0jvzu zEB$cbcz0Y+8KgfsmN`Mr=wY-uKjEkKNc!tweV6y=%-aNGHFnM}u`b}OQmT05{403E zXYayyCd_pFDOfJ)gMYdT_qD@w89i|QNj?1^zmw%DtHAHDrp=W9y2jz}o9g_-egUp( znbxR8{S;Sy-ifA) zLyyPH#xFZ}hr3U2ep2mcN_p=r4=) z##;1=m+(2B@Lh_#2eSu57A_mY|9MxM8X@j@nm2ciSRPMe6UJ!%Kj7~**uynn;sW(F z-kJr|VO$Ny$ulM7v3D`XV8GjUG2CkWC_cjTpLdPMtK78h=Dr^d-9S%4KWFFryCXYr z#^%SW@K{rWT-&X@meF=fM;%g*`P zwAn{*2>4;CuNLlPD?FDoL|-UqjX!b3Pxb>t*bfY(!KeZHg;seyGtGK=+fA@&* z^H_b{{F3JN#_#WZbimhFVti);-l|wTX(mbzOR|*?(_OeIsH9JdWexr#<*6r*%JF+X z#r0TE>x?{p56|7pX{Lqz%KKB!A9QXNj&|VxP5GN7&V}O7Gk=2=4yW0QQC_RjJ6&`X z=TkWPOJ4po?}u4*Va^KrZ0gvXiMVX6hHAjY{-ZsLuH^^8cY@s!3)S!n{K8!&QVokC zSL~CFeWfY<~g?k&u^5pPIR%);smDaqOnfa&2D8xz;fCk>5)mrl?^th3|XF5bqAY zp7Zw)$GiZ{m26@BMl}roUgI%kVv~hcn@s&gWozC%!J_ zzmV-JBkTu^J6G0Pj-xWh4$fhZo~|DxKe(7CpM&H+Ti!;A|CWk08^adgjr@JU@rZVK z!|BX)x@b@L`1&Qy>teX&{_s$H8-K^k$rir<`@SUjlX2CGk7F~fnR4?S4hPTCi~3u4 zXlr+pdlR+A=;t^1!+X*Ra(3q`JwP5h;o-iy)`JytMUQX6U1PGIG*KOx`$aSBXB)ck znpsH4>f+sQ^oEx~@)n-E$mC~46S@|6N3nh_zPWtd(ozlMGCVI_4W44={?VQN4)h}5 z@8Yt(v2!ZWqGREnZn)Q6KvMjGrY{OKw7ycZZKr@lzUFB!AIKubPPhw{r z?Dg<8jPFhGd@8mST%`4ck?y}xlbQYwpA(!`%SX@M@S267y!9Ysnm$QBJ}G5Q!S{;UY_k*Yd0kc4+CIkpgPQib@U>XU zo*djJ_V8ZB7Iv#vSNm`@P=^o0AF0;Xv2&saE%IF#U*X?j9verG{$9~Z-4CO~k@%GN zf^0ZwbbxWg`2HEke>HTCRYUG@89t+%inA8tevXDm(r0+KaWf1Lc@5teU(eWo)W^s9 zv?^DzO=z{Ne6SUs1v+ouEIFG9=W6&LH0M>EC$sx7{=Q-}yNbOLT>ZrGBpWSK)GZD! z!+*I_MLc#C>>=*U@VUsC zv)$D)UwOto!hXPTUXBa#5!Tc(#+Q?WNce)5_E%6V3*eflPMljIhb8fUxw&CoOTtYW z4*RZF8~yQ&|7fu%&~P*7!+Y@+@&Do=80r=6FYjHVAHWk^PJMQ!c^DqfqO};g6Pqc; zzDtq^KieI*>FB<-A>(7h!MHL9ga-vfOocd?OH7c+J7hhw1hKZ0?ev;a0XI;&d13W*cMxI$o2e4l&)&}BViJxwGd0*UP*xT6B zUdOobe84q03Gd6#nk)y&>W9WQ!tw-6;j?LlVhZ>Fc1OWiogUb{N`Fbgecxd?TB_E^ z>L;}FDtuSe(<5hO3NwS*}-!zf(V&lBW;x8i|)Va1CSb((25&VH!5b(hVsM~R4X9tYR3mtMzxgf@D93HO5f z=zlagM!ve@a?D`(n$bt0_~bLr@8jy~(c;Zwx2wOOfcvEk{j{4NQeZx;nK0ZW?|bC6 zMFo8lj?K83g_nWw$Bnc*_0$j7JRnkS#PtJ^QlA3H?zR#?kf4=dWm~kMQ*jJmItc55PB}v;K~Q z1yj{4A1}$lhoh~d^0i^UUT6F`xeec~8YL$Y5%$mKO~%!T+B78AAMy1>SLe+M_jwoK zW;iYeu(<}N#q?Uzx$y7PCS~Z=X>wD|9!DNFvJ;+TA2rss4z8Y!G&UC3em{bT5(#o- zep|6zZ_YAxvvQ0c9Y=d|TOYpCunp*<&fxs8fj&H5k8wV%=V_DSoF?{mMRR|KZ#F){ zcTWQYWtR+t}EN<^=vHSXSbTHDu=Jg z!Qm)e!P}poMtp~Te>$#e($>HH|FBpN@K=yR6L5D?M<3(9oIE$CvC;+lE55d}KT%$H zu-$XIx}%r-+3PXHI+Sj&2Wtjx`lI?DEZ`Mef}_cDw6&p1LnlI?no|NF%Dix^K;q6O!}zH4x0{dclh ztJuei^K2t|!}~LAJjd=;G??Q2fmpwbt8&kx`$+4W+0(!@v1HNux6x&dCACQAS z_`IVxz2iR)cc0JH^VmO~Xz#hmxE`>3&6Uq&=fm@sbNI*|?wOZ)avxh?#bn9K1Dv|_;XzBGG_(Ow$MP><6fVvSD15+<3AX4!kGGa zoPn$F=`mb$ZKtX2;@Kqbb9g==t{d5Xkli(M@L>rUX(xQA+4qib6=OwQ#l*v@?>=Vy zCvuVqPx!3C-T1$^y*eLVw1?}^#d=BCqx$kORlO}Wr@#F&JK_3%0X-ZOJNLy#Hl%f9 z9)qW*b6fCG5kFtxXJ$QG71y`&+AxVNaoi!kgLpXx-_>xQ7GwAf>@pnR7-bIx%ULmB zy`ZQjx73i^@vbN3^ESBOs7m9`$7SmC5p>Ge5(~zjwj%7CVRV z@iea645G_AFq=DMwta#8yb5QJNqUAkg-xsp3-Jy24mJzL{1dz3eb6O*hHLX~c;A4x zb+BILbq)S6g`)Rk~+}dQ#dbxvmAaOUn<{O_Uguc zDQ_Ffh$l&3b1bp8xYbg_bh)F0t^)3Zhi`DQXu3F8>ub0>&F+nDaB1GhIH|{0G!6^X ziZpcp)S~wwPWt<4c}m3BGWa)Evqp@u)|&T~*TVXK7w7nCusRplrRZMAS7N*r{;T-! z*0<>WqaJv_Lwtr8o8^CDzy3^DJ<0ih@x67W`f~2_M3~vzfa|j+BGu_K!XEl`63Iv8S1V^ImF5+*50*RTy#{%fwS5j_UFAPqaFeiyKnp zjTWb5+F#4TlX8{QA09r+b>kC;9K2K=XYcMc>?!}4uh-=k^|Ri_zl4JvIN!x<*+n!E zBW|&VUVC4L^&0lCI>VHw|FQ8Ayy4$k*~52jc1png{t|jIFR?n`bL4!kS{h-G#AdxZ zdUjcRl7{fg!y;Vm?BH+n!*iVdaX283M&3!d|JK^A*y?GSVJG zKI*XlNF`jtTrCMlj@|2Ad$|sK-!}%?@5sxGVtyrF-+}RUKMQH+JkHmP`lhn#OQI;;8>&fS!ELb}7gU7G^en#z7>Mjm`Pxi6yC5tOZf1#ba_&(fH z|6%_}n%pbKYyH&4;lpW;;co6KH6X6=EYgcGy+S9$>7!9^*KV*(k>~pI@GYG2%kAyN z(GEwk#^2Fck70Y3;}yj80&dd9R~~nH^8Pbyjra)vrpJ_G?&~(9DctRCZ9Npri#UB! zzHW-cqq>S<`#Kzj=dn9A(--8lKQ7);8?D9sMj7_-{43vK|9`lO@tyQ4=l_b(yX2}h zp2Fv>qq>QMeqUUHw@%VJSI=2o_ z;r{odGxWg);^iw-Z6x9UO?jDKjmFLS7O$ytUcQT5 zpq-`a0LPU|;{qQynVT)w(<`faJU-OjT0v9q-~m-d&&J8yeei{!ciH%u&9Z)?4I{%6APsp`=>&NkL8!m z7oE$QEngkY!T+A>Y-ZuHDqa^kHbU=_?*uUqgXcMa@1%)EjwP~rKhB@WPwU~XC&ZbD z@3s6M@2&2dx_;p2aJ0Q3yEot|+|zwd{3BZ9ODv;HtM_zcn&AbX&(EO^zu%VV2c8&ZkJwy6#AkROq)+ZhRC_#-6QjgQsDeY{4cdgLm(-3zduf3d~3txBq z)Qc5IwwjQycf5WD!{Wh3_ed^TXq}V)+BEUKaersfA;-@`Z(W^e>z;j_I3G1eRp~}>mx0t(A_KWT{%aeGrqrke{O6WxjP2?{_*x^i}f?y zFB9(*9qo}j=_fGs6LWFgT;zXl{i5s4%5w3r9E81T*n@`qLKE4)$()Y3y^VfS*g26y zn{)N8B=v%mV`6D6Cs)$h=Tq$6=pk8bxorKJ1p}^5;Xd4#S!M3HWPY32zl_%Zs_LC` zb|FQN97)5S^&%YH$j>9)Vd3*Hulv|L6ltv%XLv@YioEU5boP2RVY?H~W>Iu& zZuqW~eUsEH-{D!?!?WajfIWMm9w7dE;Jb8G(eE8#{$aKrF18(fhW$ZbSi-a1an;N?6o;HhI=S`pywnAS&2>XTAuF;m@2RD0-+tH2=LhZoTKt95=FC*mV z?s#izJ!?IzWjgSU&&|W>GRt+Y*RT#8^!umm^)>$a@$8PXrZm>y@Kux62j%M9wOmgw z^aI;Q`dUg4JB)cT(e=PsH3i2P<*kW}oyX^`xV%)X2l=m4++M4@-{m+9zt8$R-S|Fu z`?HLmBBzt_aamK>%<$F2W4JFlmqxxzlW)1JB5!Gh{K!+TxVM=*ALe0g*rSc0i}0TA z{R!|Cs1g3>@tKPE@SO0E-PFHh4a6JXH_4^VXXW=KjMd}h)4XZ0RP3c6;_y2@^KFy!~O5c3)T8W^Z!y8SD@-~=O-+|-FJUSmE*RAZyXl}t!y-{r8do9A}&044Hcl?Lv zd>6I0&Mn1H2Wy9UAQfvbpYz~&f3$p06^~;>U=Q~X183*ty;Bu?bv02S4}0-Q^zQg^q z$DE&*p{C~31)S&m$_Ku$WM?SMUyJ2M_3=Dhr@d~#Tlg%<1A4&7vV5^q4ZkI`)EU3g zt8lxV4(Kl2^FIgUr{XRz&dIo_A&&4ly50%u54SJFxXHZ!a%*_8@5CNHKmH_K^YO8j zjz4fLyhmSU2CmuY3DaOX3(q%%_YE(?@f;iT^NX$zo*!Y&uB3h%;aI!{v~?#P?BcU2 z?Dw)izNy@a_vVf`Yi6yI!&lYsrGs!&RU9kqDQF;(zW(%D0iHEtxpy8e*}FjhWB9n* z@#Zzn6-O1kUGRHu1vz4OC!X(;s|UpquD@@U$ExyHKm=dF+yQSfG|&NO`8azZE0r+owwjyZgv{et%r5f+{QTU$=)M4{R(e&<(o37Q%z3im$-45=7c{FLx3HHPtf4e1?sVlo;Vl| z=cg{Qhipiza#2AnGvz%iMt@UR=fxeq$Djwld(-7O8txHn^`!$mtRHDjh5uvvKP|Q) z3Ffl>GCb?6S%>8_>?t0Bxw+gV;w5O~EIta^%Z`^99E_H)a6c~mn*y=U)qwo~J}-I= z-%T@*|M09~`0PQelCu?`6zXM*f`P)6jo?TwvHa^r!c((J#i7-3g z1TV>IyBtgX7`7`du^>p7n~BujEE*qJi}bhCA_*KnuJ0?$lZj z3vuVUPb03omcld5T7j$KV%(Cd=h4MpS_sbog?sY5{rxf9C)l|o-!&Y4Box9^MQ-O< zf7z|Xet2J`FRn|LRkyea*GjhrUb5_yC&(Rt=V2~`hw%B`B=LUi+z1%L=OdcqW2+oL zfRC!ntQRr3l#e%Q=QHtEk<*7AZ){#(C$+W;cimmD$UzsrdX{l*kfQErXf+Hg>*JEo z_3Xqt-bO8d%J;Qur1W@eC=P}#))!$flS}8uN0}G?U6AIriuTuEIR5ZJ>%H-%%&$0_ z)^R@3@on<+0$<^~BEN;JRXbevfent+#c)zv58)#l_7(lD8T^LlYh&Bct9gxZ8Qa!* zxhhwH-%Px$G(SntuVNo9@5$_?$>%V>|ApaqIq52fo6Y%wtgd;*eW~f>Cw$ktgw!(X%8TfrVQqS{uc-HM)OZTBWs{wva zIQCLg^Kd%Wm|}2;&jtSX-fCre!ov=)b)5QlzB=XOe42fa<0bH!GejTo_v=-PFwPKv zEAd>+!884Y`=MXV#j#j-Ri~q>UZY%pB#2vn)^x&QFY6jjhG$&K)AO%4E|%dFCoT0{JzIe@!t08&V}y{uTb7=V|yiip{;YN?ct%*Yv9;r++q0- z|K?F<3a!CxK;1VyXI$ z-;YjleI||;d>jsfQfvS>gTfVCO(Q{KnOBY%80O73dfIz2@)T@^YS? zJLG#y5-s5DkEO0H;QXo(&tf`A=eOXf>;UzxM{LV0dWPjd7H*9{fTsrLmz!lj!{_+! zuIPL6OR*J6zTN zk+Z6NeBs!xX^x32dzrPgo^_k88m;7Ex!x&n2iZBLPDYm2Z`fWVzEZdg?`<>t-{*Ks z$Z;R_{t>&S#D13;Ti~Uq_{K%5L-zC7>ot)MtLjto9-cF-58wO#4tv9EjT_frZrVGK zhdH>)uk2o)ao4b)=&W{`?-^XV`(`0WE3ioeg#UDP) zAHjE(1zzD8H$lG4xxY}K!egZKAJww|7606PJxNa9kgxEpT8CbG416(S&QoWr;YoJ> zKEa=XHQM>x=>2P)J)USk&DIe(!d|J;ZeUK>@X7r46O`J_CI zWp6#qH`8Lf;y4%YrUvZF_jRy-I!!#C;>+h_ zNvyaWJA#LBO&^|P>qv*;-=iAVlg{YxI{qIM(+u(*F6vsNQ`8-d z*E!Y*2ltl4pBlZI{bX@e#l;EOQ~hj~&tE56d)4MoW7vkP5-#qP%ST4(A92?B9J+w- zC4R$o^*?H$7Tg~=c1A9b%gw53?1}9U93=StPQ2Zii!(T$i>Hxlv@_fq(p9ajR$qJ^ z#rMnO^*6S{y{JFU3C|p5jMf{Qsw*1!G1~q?JnJjz+w^l4y^fTR&HipC?kmMt%kS6X z>`^uFp7GPII9qm$C70eYL=5ct0|oE^adKA$%N_uXW}O zY=jfMybjxEa8HIWrft!+PzU@J82bUvJ|D$59v0#=+&k?p*4yCvh`+M!^*S+R!T8uX zy>@~gD6WEjc$qKH%kU}3@4~umsT#>~eY#2x@wfxFsFAef+!|aB#{XJe1`fk_tXx)A zOg-&+hsZ;cHDEgJG#76fxcROeCAa>5Q!L?`=qK0>?{i%g)7CnU$LKY3I2Vue*nU{t z;a=ttTKfUszs0tHcG10xFP-~At-Xw=OZ1aeu{0LL>J>1+xi+t8@7aPD%HSdNknrB> zRjbt~u0vgy)qBEym8b~k>FnW2G|^2>u)9hw-jnmIXeUc97s}UEWA05e7uGQ~*_%tl zeei&{EAW$`1`=s*jlAd4)2;G&6!wRgs0FWE`s!IYS=^f~aff>}FXOrsetO|9e1+cjG5WZ*m>fsC{-lkcyTc;JOT@D!!`|QA z0y#KSOT75|NgU(xbIAD-IPb;h+9B2mJ& zbA+5dfRFr!MRD(}F7A5xg5#K2w~dDr#)6tf>*Jo%)-w58K~p1W{uees7yCwhRAVRH z$GO}2*Tk982TW2b|&gv2JSbHJFaFbqyQg-s_JY)iMqj7pGk~Cc_){ znzj9e&k2O@!ATJ-lf@?Cayz`|o5&abUMMd|c&^Ci{yF~6rStZFm$So@@h9FSTuxVu zA9l5_vvY~Of7t`ZMzlfyzt^H8x>(;6}huB4$^YAL*@*8uKFIXhj!I>GMl zOzRjs``L|ieiW>g_z&Odd!`E;?6qj1p0lhQcsURIj>YuG#us!I)6P0n!u~2>k2G!p zeoB{uNiI)~lWR8C;q4paUx`;|c-SKckH||OzV_pMqIh=V@gln&h%OnHCtKV5(?PKX zIQREoa@cCRns#h=x_xV^{RNIcl-DJO-BO!w3gxh&9*4KrSE;++`Wu@c^tB#}cT0?X z%T4%BwDQsB;{Sel!{_(4k`ss#=7K!lwh%{r zxAyvKhTKlE=FP)Xf?A(yZ!|%k9X|*2XLCE9x!mlQMBqd=`HF48`+Kn1?MDySn)fN4?Y3@LYEI=;5_Ky@l_F*@&wj{r+X7 zx$0}7T=X@!e4d^H(+BFdB@F3e3)jl+#C2O6>nT2NH+MXKAI8UBYClN zxW846Z*Hc~RDz?e-_6@lPW)khzO`ww9?{djQasx_!fi}#Ki4BTLXN(`bE|%E;-Xoi z^Wr!!C-=kowAfqKkw-Yws=zT42chS{m;rD2F4`FSn3Dp#@x9~dkgfLkzPHfzMRVM? z=8K)*)Oyfw$63Y@#y?B+r!{>JSxW}AI?4M<`3EORO^GHYBi!F_+&Ti^2gA$nVp7uo&|kJ?v^FPl_i%j{Mf}_K+X2-Ctl-6(OKaP z_b$bLo!`S}j-p%B5j@|}+dPk+D4G$QgC#LAd&h3`( zGB|#R{i-eXR^wh_`>47L-@Wst-?uiFgR*MC?^k!XpTfZ{_^Jy37Fr9>UjI%DpRX_m zjzjVm?gd2~6OXIs#Cjhe;aRsE;0^bqvv7a6n46YX%XGXNKOO1r<0*KTzvtTP(T(I6 zj%p3%h~3xmvV#`hu15zo`75bz@Ebml7|H)1&GZNMSB|qj;5pp$h!g8#dn;d`R^q&e|+gU?l&Pi8$Y~4YRA2@bd4Yf@ZFY#T6 z7UJvD6U>|P<*qa>C);<5w_XSO>}ySoEV@p9PtInF=Og@@6()2>TBDd(i-nF>T z7%88|3>|K7*NxufZM`@LvsIVP`xh0hDRp27{ow<8`o6z?#Y{YpG9Uk0Q{)ZaOW6zi zmuKm=huB`?{{!6IBBs7{o`AQ@@mdGh;rnmCFHY0)aH;%+_3|cj!acUOI7x1;4&Z9h z#`V-H{Q~ar8M$5l-onRk<@Gbz?#IJDUP#*sdkyz5E2^6%?c`H@7hyaK>x=aKJpF`c(mxbSw*_=m#eR*J zrr^1}xWav<#p1sr(cY+>eg#7nIeUDJ9OUbn;{Lk29Idu)M~N$qUvammy>S2II(DwW z!E!!IigPmV55f8k4tKGgH^lnbiPl@;gUvL&jVYxc$=mgPaA980ih2TUkBY4)y*}TS z&3^RG)+br^IkX(sz4|5PxxV_9%L=$_NJp{keE?5CzP_W0i`n*SDMkCHWcVJ0b8Ai4 z(K!1^9KY%f?bzIhyE1h8hJ1wkRAgQJT*Oc_7yKiQae@wrX>C15_n{}*&z z8He}ub}e63ufa)UF}>;hmBy#C*@>RR`*Zi0l(#vJt(WsT`9 zUh`rb>c6S#k*{!XQ%(%tuh;_sO{aaqc zcVUL_sQ71`J~&gII9>qf>mB4%TuI&4lR9YU=f$D+4q~bS-^YB0?^_H1u4wq&|6K9? zERI0~^>s0aYu^K6n8s#P!dq3mDcWcauv_D^9d`Z2){L&-%5>u6a_6qz)%k2)F z{lnh7v{@s`HHo-t!~58Dm|+R^vOm*x`x3ojjQ$v*XNfUm8sB*9>)7LLoppYlS`W|P z?B;XrXnlg#*3_}Sd3{-)j>CDIn0{eDhwsU;a#&5R$bDXGdEqBqhrBE4t#A;&v-(e% z7nl>BU{9!Cr!;mgnGd6w?n|^+n4rJQPk3Lk_)5pr<_^cg_i9DM816Z~!FPCHqJa_9l>HP<#))GOe-p*kPn|T!Yb0!k<#kaB z`%#*Cfxm6)Gkl&So6RN_^fDZW??Dag^2KcRi|>wN-8Dr$;o@UBBj5?&|8lT0?V20z z(|y+iR}J(Y`Q2sydA6^DZF@tSf$!(m;;yZ)ss9Db%ho8%e<3v9V-}kn#EnRe=offdrZ1{ebrGE0Ae@nav zVS5OV;rsO()8hBWmV`f5Jjwok67EmN>H{mRm(Kl4H<@fc0eiTwa+kb@do{V@{erFV zou$zAlO)VzB+Jzt)Fk{qHl^mh2vl4d$%~Y3{pSFO&mxQHPs0F<>k6tB^aBr zHB;;h-Dlu$r+Ft~i8nUXT2739?bzCt?BceBm`CC;8qTn1de6Aq_}|M`HU0+jeL$X` zr=KqzuUHlxa?ybvZiOLs1x?H08n)KU%N9Bf-y5+2XB+4z+uXe`FpB3_e9ekAECEj4(k*#FP~=bAzz1RD_j$QE52iN`WK8(@mU4_N#6W7jh`g=J&Nc`!=ahIxAr`l`5S9u;yIJT#;cyUyZ-vwi>BeXCrTOHsksvS+L zhX?s;mSoRT7uR?g*wX#H7GlU_Pu)!sONWWDjM7Jw9XBT2qX?hlnM7+f=_FEY;d#+c zX><$Yt;MV<^1sTQNOqnIHHC**Id7REpQZI6Ifxb85BQ4d0t+tw5M#^$I!mV$an??x z%LE#kgfChO*K6Uk6nTqa!_AlxwzzV0gr80P42`#+@5`>g!}qigo}hQZUeJ{8V~gG| zEH0?CtgY6ZoH}Hp4T3 z;qz)&-S zbussHulZuiRe$Fi8cSny+KFwlo&rxwPdRRaPxc>Mq@LB@Q9qZ#nS=lD&3l`VLGl}( z?OXs?_}u6z@r3&xy=E2lt&8TrC_nonX`F^$HgC6M;j;*L7&G1P;n~fD&L@nv4@swE zJ}&8_*7-?n#HSqp*vfieAD&FF?1lSQ;kq$?o_!gr0H{T{EfqxaQBV#U*LCbe=*?c zf*f>M?Ru-2bzMwb9E;2s3_hL)w(%8FZ(1P6cUqr(&hR@S9qV4eAv_H?JS-G1E*K6W#8X-14 z;C6rSbAG>Lzw*(ECO&RYV*tO7&+z%RX5I1F#vDG{c2VzgxgCe$dk((G+o${tUZ_^p z&l>Rz!+9I$!*`Q(8L8&j58p-d2yQN6`%dxg&lZnZR<5Fpm9$h%55xVtu=Ua5vQ{*kq&&TGhU^jleH8Wn#@x2*O zR~4$ox?*B@ zw-%RAi!#ASGXFMK~(4SX+^lVj{8@Y%n$o>i9C8mR@bUe3owx-6VRyZnBb zp+}aZ%bM2zS~NjR#iRAYf%fygtu^A9?)Q%a_xzo4Y&9I=-q!J080yG1Y+s3cJ3q5w zSBp0Vbx%+)he^{iEn;bRb-;eO;#OKDi_LFfC@yid*c zsHXZBz7lBjQ~0unsV%W4b*1eJ)>LtZ&-c`TuaVduYEbNd|NW1F|1t1C2L8vu{}}im z1OFc~aLm4`xjoQ`!R|fSQ-^0cI%eB{+5d&_!t7~pwa`AQvAtDsd)kWjej}V)FvXtL z{-vA!VVhY+_efq(v{$hg`O5xgyZzffd!|?HGd{KV=(xf@xt~2(6W7e_HT1K_-}@@N z?qTcgw)S>$_F(ptJ?xbpus;g-oErN3t1j+Iw0Hl*u_4`D+p(8p|2ELi)%IeABV5;r zV``ye5%zR!Z(QlR-(K#NecuwVvun6kv~Nmu?ua-B**{IRAKJl3scNn(?6=0Xw7;Hj zk2l^PR$RXsmuAmbXzbtiR!Lc|8N|~BSKk`9e33m}Df_nt_QJ*`=D9Yoe+%z3%xdL& z#@_2nc26bQd*LJ#CuQ;Zo_*_c?4&t1XPEQGd|)ruU)-13>vdXY4?6_k_JemhR~DYM zs;>R6Y2Rlb*j{`W>=Q5VV6SM*lXCVdOyPOz@bB%d8tyt7 zU(M^f-+;#>_Nse2xrP->_$wCYkYq0Ck}s^=H|%NrSJ`1?K zyHjy;#$I?JU)%cH&rdGe*YCyQH!Eq9|84RRK0Do9j>3D(;k%ND$IuK+^YiV&>0_mfo|-(x;jwrx*Gjn9Q^B=Sr2ERn(@ zyuQYLfZOo?#{PC{ik)z8uV;$uv~jNM@K;AJN8{yZSPROyj^Q(WcT}~B{K@qP39jM9 z{|*fn41gW}!A)H!$U&=Wt_Pgo!}guxJRPv(qZ0omaC@?+>u=>h5hr+@L$6PE>e{4UP5w)nzl!Pdpo5}d=tH50Bu^08&8_XYT9&wo!jd=Jj1 zw3$PXxA1ulKKgfqxld7y`OdF3=K!2T>1aD{Dz_?nk2itOm-xI?>=9z^6XSlP{MTRN zJt=&Sh4nh~^7^{3T@%mj_k=kyApE(Nmy-$g^ zk}=Ua;)ipu{LZhfC-VCpJU=yZ8;ieFc)N?eb$G2+(sj4rJNDGGX)&^;ej(m7@)=W4 zZ!q>BdANt2w2F9fK21C)y0~|M!^;}*r+-{RlW*hxhkUs+<`&6)%JBp6EP{VPtGj4DQ(V(Jsu91JW+yy@I!ZkIaTvaz=2JeGN8orljnQa$ zf49vz`c#WEaC1g2H^F5uy160|_K7rN+~7X0xxI$xK!%FDL<{la_s%TGVR#>Znez62 zfx4lKe7?7)(mVg}!ntpix-6s5uo*J~A242F?j^CV>+y1^z4{W<_qeI$_mOh*X$^fI z-te5*2t0pAC)?yGX%OAvr%Q@8Kt6Wie1jUkPMj0iIxxh2c=$#yrft8c%Foj%cZzY& z{leBebF7niAI#29`Z`QEXBOkmm|S(7BmSf^Fwo(ngNxn|2>(u6c)zo+F+mIAee)qz z`6#J>)9P}^kKm*8WP0=SHC{gwZ@3pcyrs2EypxvVv7Y|p@3F9l=L^E~e>ch9PxA3; zD*yPYiMQ&7YOsnp{gkc=`&2n!BzE|}P!FZ)n1 z05P_Z*YNMjTxISwcw6!R7N3=tz#{gyoL>i5_{?2+Elt-Q-=%jEI$?H{u$?Xu=l!ob@@Lr+}_FD4g8Mb_i|%j z#`WnDYTejeItkDG)ptCqIz3J>W~A7RAHPc95zlktThv9rixa2ZpD1o!lk1LM`RB6~ zEU!$&%WU<-=h%w&rFlj7t;2J+kNf>sHvTm}m5;&k)_0svuS?g%%%OwhW7M`74*GqK zT!v@tkHYeBH5`gRjt;wt)(%I{&J8^5rIcu4sfj_k^{9e2k`@eWm1;&14!+7h5JiYb~&r^SP){ z50Kv!aZGJnl*=$cqTwId^ds#gSPdA$PS~;3)O#}4RQ$E@`zk;9D z#)Qu^wuWzAlwQf+rQK+O=1;7&pGlyvX7ZZu8U*fE9dW@=Yx!M(-(|*6!o{^6)Jqfl zxqN*Tw(xv!_}s(`<@NeL;=^wPeEdPnVI8g1OUEexrVytbhd5;t;+DnD&tPEP3)YLi~qxTI{pY`pRV7Qy@VfEB18wccLSQnas zDLhwoPHyjj<&g3B<83Othn&B?22P#NRHwfsx`y%dV;h{Quke|ISUjAO%h8Kyu#)!> z#8#H3N7ms_?hmt^h?J-x)89#~b@Lbq+e8x?4-kkL`i{^4n_^ZS|umv4{7czh`%*e1+$>lgtm#P5!n7 z9=y+$``^`BcrW5AI9?m7pWvf!k?Ta zPIKQ9V*;$ti}_kMX2Aa>--n&+ikB&L_6A>GioHCLUKZobn6|K9$;W7MoygTwdeSvt zKTObU)v7W`~ zV{*7|BJJR3;%I)vwG?;9_}(w~^UUpri;$nYVXlg^+NJbJuVvt_HVEH{_|DwjW5s07 z$rf_X_O~=ubGF)%qiDQ$AI2X(_P}&p{*q`XYZ@D?oTGsS^8Qy}eUWAo#CUueUik>0 z9UeqKHE6yvjYPp0{@ttF*}E-*zb0PAI$Vw_z;#(oy@BmcaCYgz9^K9sV+V87I@ssx zC4J@XVYYYS@N8GwuBtB?pCHaTFy^WG(;*(VFOkouVHzUNvvM}6m){pz3&!CF@7czM z=Y-PO9KlD!=IW!Y>q+?vpY!{j{n;7nmR?#0I}7D6$$A3I`)r1PZ(vd_J!*utQr)x= z!`<@o3J&u9-pKgyS=mFlxdgsYqu)-pu2;8rnrD5)Pn$@6e?AQ2Za{Az((ns%SBfsf zvsCXnpBD6r<9&{YXHDjm#El*izBlC+zTd&sS-NNd&qkQ{EWxqZ-)X2<;U*V`aK9#e z*WHFT_Au(94F8*qzbK9lV*VYLatU~#*>ringiddV>s+k<%I{6|cY>d9@Uk8Eg?;d{ z5*~5Qmdmh*2=8}>`&y&2VH3~uUiYz^D}eAh{Lj?JwfOm~l71+@O5#g~rwl&ouoXVf z`K-MCq!w>*{+4QT@_!`V2Y6J~(+2R+1ED2AAOS+?5CQ>04Fp0BC831g69S?44xuP0 zD56-ffD{WB;4gv=6&1yTy6EJ)Gscg&;vZ1&!BX5M+{ojK?3-d$jPQ%vFe zwu5Q2=`?Gx^I>oL$9y`Zk;RqhyM?*NULH=XY`waa_StQhf@?m*{S14>e_1}m9;=7r zajRT+;V5mf+|og7$4}1lV7IGy!{^?i52lG>+)T9($Afr}!R7TdXlle9+=SmG_#F@X zad6jidltF>u&q8T?+f@2dzCcDkI&*;e&g9*7pZ>7t24fC8*3kwEU(7Ch0Aacz!0&A z_fm6d=DC5cN#uNx=NNY1^!&P5Lro;%r37wo<|D;(_$|DHeEbM+agSMSG&6p~N^Ach zoYMX?USCsI{iVo<+=u%XI*fynHjhdv=w*Y%b+JeR`zfr@lky=Z?jt`&aj7p)Cj{e6-DCR3~lIG8PO;oowo#6}x9 zy1?^DEqd)^J*`I1#Db$4y_q;5O$J7GU~H$FzFg>c`^*3?`nIOL!thc- zQO>p+AFgA+<11>C8)fY2dU}pn%C}ZG{q%Y< z+>OH&@tiR~{5#h|`0sZ@i>-2<*^a(&klKJ2)b4C}r}UsLFz}I39%&MB8KKRmd2&L{?t+roG&)^Hqu#m zpLCH}*O-?)-Sr5J_0{58IKq8IkHX#^XFrSc6m4!=YCXV5E&L9Wx8LzML%yS7yW4Y0 zCz$z-f+<{MZQwJ`>mS(+y?3lU?x3TO)mQl4>3toH$9ERH`J>sRiHBC;v6p^^zwmvL z1o`fQ|Gy&b*YVM5HB5u)d>;ES<;(M&wsL^CbjS8Kv@R_!y4P!?@!>l93+KYUCqJg^ z2gRI|$M7APKj3;q-gl>{9r3Tn#l-@BMC`+o_~qvlzDL29I7{60^<9*89q#|@>-_>) z?&%^omGw&Y_RX|z%Jnb!+bs4aV*lLh_G~>X2gA&-Cf;uo&BxU$eh=Ygo_ND|vcAFh zT6ym;=8m2V&H1COH5V5RDco!Bbc#N;sC7AvbNTDdvYY zA(jw-_Y_x0@^iMDoQWy?9?C(sqL!=g z75MY~A>3!-c%}s|a9O}lFSeCSMA^F5Dlwi?AKP*DwfJ5Y_pOt0iJ#vZTASkWWbmWx zh2P`YT29@;x4ep)rKtznTSMTkC-x|B7v8qRFdkI{AmTz85 z9E<5Jy$n)=lhn((xq1oPkB?EaG?79l;k~a*75J#ASJBd5Ij##wxo+^|uLZvE5&LiQ zKZpGc@m7L8?D=-oz=`<6d*}Q5StEcbuqIW)zHgU~g9QINAhWNYjzl)D^i}eF}`<4C99wl(_oL(`! z4J^HBTx_?O#FyF}0c$yNtfrCh@38*`%P;Ia$Y0wbcp7b;#NQAYT6gyTHXd3zx8C0+ z<#LByPo$qwb@2>a_-^UL_*}P~X5}G#$1Q0*e1&YVS5>^-x~pe-OBiY2I=|@Hm&WZ_ zMoV~_0OJ`p!*8I3&!EDd_JKGUC&EW(KY4va>!NGN?R5U3@lm*1B)+?n+2L=yxWf0T zuf|g`ehzqSHow1dZR90FoUf$gnRbrJ;XL`shX3>^eS?PooK0)&J}<7CGuh_z7;X#M zobT8iI#@Q(-ZKUNw6JlYI+okpr_u@SWeufM+?SW5r#**zY1_)fR=o5vKdBS$X(s$u zSPf&}r{(%=p(i5F`R@JjnM@(*0?>Ew+L{EGiq&pn-wacpiT-5Jvr=PhviIy|w){1~SWVYojZ z4tZ-1V>cT4W~shDjYiF1A+HB<_AeYWSKv9p`iJ*hd#D+_j4oBQw|$1q|G~JQmdmQ! zhdhqcWvtgt{GC_LK7svr<@7Gt&#^OGoKwX=rK0{Rj??(BjoTBn*+G65Wc%CkZT!r@ z%VoSxZ$pd5wT1ap*q@tkkB+;W`R|9DUC~~%`xKwycNx0T?d!8~YwoNvv|LFpE34C) z#wO`0{10X`d>*|`zBBO{uAyGS$JSo@S`C_!&+z-R;eOF4%rE5gI>!$3S+@lYwe?DK zIxIJi-_?XmH_Qi|2XK~R2u1Gwds%oud^Iq|e%~3}<-6_^+x$Zq#9nJ-p6PgukWgxpy8_WFj=lwis2JHhwr>h$}mfu9?uKKi^ICcoWw^9exA`Uv&_E-hCd4F zz`TyQE#HM*c)n>P&Sd>ZY;zWf*K;o%)x%Brj(v0d)P(Dzm_CDd%`p97hI)a&ncRgv z$X9SC;kHLh*VXgncfM;Koc&|&SX$k>jQ%^icB!q#o6@LxRd7==6`!6ji*O;7s2>gjQo@qGhV;z zA`X6Qz<&EL7s z>ca846Xaqv+c=-?xo>;N=qafg4NPPMuiaq?_kY~RPoKVcYOW8kb3+Al67bm5K24mz z)T2wU4~^xER>D4NmmI8EW!;D69`W2%T`l2ashkE*8akfDZ)x1r=40;?yx_7M3}Z&w z->%k&XyQF_^`eD*IV{nNf9HRaua)BHRLCA*HyU?iRrz4=+X&Z;_z9oYT%eD9e!rUK z7=4D{AlRB{?_vJkavbhosHuLg#!+^4vQ z_!|D_*$CIQBTM23zW2;uFTQId#cNz14L$IjrsB zvzF9dS;FTfrZ;s`$B&lzeT)==K@QvsHzaoc4; z(cXNwyvD&aPF*&{*!<{p4CaX?kdG^MuB}}SA8G8k>6X3!iv4dVM8b9d&Ml zxEH|`?hpKgtxsF2FTQ`0mzT>s4_Dtd*0Gv;4E_#_{|WJ4#Ygx|F}z27t><4lxbBkI z>M+h;&6j!MKF&AsUdNn@OWCE#^EhdRqf^GmvH#z1Prws3%CS`W!hNL{dIb(|7JCVC z2mP<|I^0`ug8lFra=7=R7_R=Fr_R`HEBCiI#Ty@s@coE319z=A7VRxV4=kT$-4WmG{b_lk zo`Ih)n&?~f6Mn~gv{)*R5UY4988;2r(d_Iq?oK#Li05fs_Jp@>S$hI}bT{s5db$=D zTWYIWyxjrQMdzkh)!*cL}tuU_=roj&QJT{b%~ z?T2lo_%@5F4{p-bTu(S|j#t0(b;0pG+@4!RYkY@$x39!s*yA^CWgb7juEM2!G-ETa zw+9>H_a-f+z_rzD&Ud*~Z*tbr-)Ps+@bb7Mxqa?ayQ96!(h4{%Mx z#cF=S{R{2K%UeZj#C-e77L3 zZ^cuMY}aAt%6;{9Pkmskzr(&T{JU%K z&TyXZHu(6+_#<8AM{H%~_kA`~arcCtJ>7F>#}kLDhyLCV9H`dhwoE<_*}0^aFX1q} zchiQ?nlPUl;8-s;<=jb{Xxj)`xR@f&k6?VTwH_%4q4$K(?1f@QM!+O_gNmN}I?w-Q?-j@RO5DeU|4@tV9nSO;zx z3K|#XIMet!G1e|I4W@&KU@D1=ww-YU`$>LV!~TKC<7_s{aJ}r@&C~P_ISTh4Z>F); ziSh;ai51r9n#R)51#`o{Df@tPQFM2*Z_%}HxjeBB5sMhg@c9HhV?3|I!G@voY~C9y zX}+X9(@^-%^dLE!Cill_=63v@z-@gwY)w~r?0+n8;q$qf&Mm=VWjVVh0e8iV_VUTN z3!ncF#Lb(=X2Gznf_fP%ruN=*s-%wjI3S(`abDHN+7J77S~wt{dH71kWf@pj&y)Aj z@~YlW_&dC3FrKc$J*<&xXemvH&!W5IJ$(LIPkjH*feY5~e#0=jt;fzR+PQ0?wYaPC z9bGe&E7EUlBXz{ygW`MN+@J6i?l0-Y=U3uhlRgn=@9v-gi8FRy3rgdX$H5 zaumK3KZ2%?MySW|nqD(Ju%_d@q4?jN>3A7- zohh)yErx$S{CKHS!X8;3?!;eBaoof1DRV9w`^pe&o!mY{FWcFuFYjl?(M2xa#!I;8 zD{!fog9g{S_AzZ5{5b9zBltqGK5D!C4PFPLtE! z`1xguy1-2?4B>k&uZS;;Zu9tP)`C9TTMuxwR4z|ez^fb|g*DtKI+UL*+T6i+4LRKq zjVpfMoX$S}!~1GC;yzrz&5ySx(N7=wI5tZS>1FR0h(kp!i%ni% zX%!CoYl1j0RAqY-{A@iun8q5i*BeGPbf+=l-@p0_H;>C_FEKA= z>oMb3w4wuXy#ver@P+&0&KVo_|NG$nk)J3UNrQhbuEXz9tQ>DIL%&Vu($Q?|h}w7; zhVVY=tuVdh++J~Yl7nJ3=+nFoUBrvm8Hr+Y?0hCZjEkVLdN2-IT68V*ES)rEYcLE| z>3W9q-*%*3^WTOkGD(ch@x#vuuXoAopN@rl4=WCUSKQ%#gY8Y!jhdN|g9jMbuydPQ z8i$*0Vv1gFKV7b9Px-fV=`g*6iyCa45bHEH?o3m=(e@ws{s9-yitl0hnB0JNU`XI= zEsbtV`McRl+@|~dCqwU``}1;e9L@)Du^qPw^YkdTvSA3nKQ%FEQY{^1vys@p zm*=Z+x7zsMr;3@T`qNw-dl|-WGVe1O!)HLBrHVs*Pqwg@tfsvb`w;U(U;b%H(K@w_ zt&jL$M^_U|(W7|6zt=Px*2LoW6>@mH{xTp}UGZN9&n;-9zt;!(eRHVZ%KkcI7uCh# zOm(_Uzh-BvF}L8bp}+s>hAVc$z0DQX)6ew0e71e?5Z8kJjIAT@;!l^`*W~PYoc<{0 zUXyU6?o#D=276DGckK@ED7=O5c!bXxKZ|kByn7?@iI?$Wslfi;Rk&9VC8F#p#2xNk zyM^zk;OsVv&HnnhymY8ZOU3LV`1+3D0+^nV|BrC6PHbP`W%~;JH1#(uzx2W9BL2*Y z=s?p|#O~bf8TP~Q9Az_^HU?Lvc`^M1?`u=#FTr~cauD8!5ARdeYboY|MSZ6fOdC4M zFD@1g)?>1)Gh(XKQ*PDYEb+XTieI=k(c)L)3D?pa_`a`)_{4L%o7iD1&^y9Cbj1?Y z-BO&YtLZRh(a{{e=S^7OpwlhlZZ%dOY4tTa*@L%8^Si)3Sk0Xu4&O-q7$@b-Y06%> z-VEPe?MY9c8`lB%OK}jsXBc|*TI0j#S)u-N%)bDC89uhxqE}d-!sUMFLf?6Ov~{nw z@eS-plIQ}*v&A01%QJ}mc=1)tP@6dYWLY)l&*@~kMRFvb^To2=gm!n>B=RpEotMv8u&Ig!MI7du328MudQc}(c31;VOQ}L z6s@V_jEkAzTBg4E>ABP(y`v>P_2Mtq^`7Tn;2laY-#I=?jN!hSwfz550(Y<-8?TSa zd#$qKq@S|1&@+p6@c(LQd2uX!&!>^`cfor1Lj8!H@STYrbaXH7mJiV%a1#Cv%bRK8 z?P_W^6TkWT=>lB9yPM4feIa9}-r7(sxT?6=8Z%G*wqk3V<7%fIE-LUnbe44xr=z|8 zVJZIEK3ynw^TYSi7Q)@QjeRk@iGB53IlrTmzw!DY?w-U=n?~x4#<$4hY52lD#CIFt z9hYTry+NK^@Uf8p@Hyap&aE7PL-~3=S6*&KT`!}OT@D~f%X z-Z4>b`r+HT4aPOc_qO`_XK`FMV{@)Jx>?h4)>tisdqHEf>T`3kA`cYD?Fcq=|l$3E72m~ z=fu;@n0@qp<0N?GC%kWZlfT1#&tdOyQ?7iJ)raYQ3!7Kq8w_aE62|@#w5|r>ajS-cVQiCvv@nx_)X*0^HBS58W>N@4>wWk^tG4&Z&R#O z;%;mFrF0sWm-%9w-n?jy9*C!FdE}S@!WX0 zyqmWc|IJ&72XEW(U5vec`TC*r-B-I_n23)=Ix#=&8-Fq<6P`!py##Jv5aY}AzjZmE zxOly_K7rTNX>{-J{li?Zi)AgHCy6(__ZPnRb!}~Zz_>YbIuJMO+5Q+8-$(05{62?^ z^D}YP%l=r+_P|ATb=|2%QLn35#~uKmz0_!b`uV#R&CQV4j{MW%dgsD#Cf>=;alD1! zSh$7;N|m&?pr;`b*2LL*gj_W>=Np{;-WAW?XhD2O;SawV@eYgyU99yu*)Hb2_}X04 zUO~K@*nh#CgY~=z!EW)fbi&r2)#?z=@ZNtLy8acHn_yZlw&LP=i8dCBpoj#I;(UBBY@_W8IkE5F9=!b8{} z?v2xza8L(#5BIbe;`3?v`||sedAIW2iQl&7hI<)bOxKTbb+WcKm5l*nzY#aNiPl;% z1k7#Z;$!-ns7ChFUXsT@{N9JF<^FDO%%iicCG3Rve@n6dBcGj;)j*0~sIF3J;FYRs z8mFgm_%b~mm%jlq-kRXo^oWu<;>jqwrmir8#@U}BmO~!lJA&c8#Z-NyTpzUv+tqN6 zYGD6YgPyXjQI%<`FC9CVY;2vS@&o65_D`7;Z%ln0=g7$>n1*>o;ibECU;F!3xeV*< z?!Z@5_0fqhdCrYwkKLiTUDU)r5Z_;o^f#H-=w_YJ=8 zo#ef17_V&&FYjXM}mB&ta|xp%4B=%+Wf&>PJQd*dW}8lwhI_p~P9?V#~jnfp1u z!uMUa(Q5ddzEW>>q27Bs*QgSGIN$Y(*mL|HdTa9(eP^he;p;iPov!ct z1xLS4VVC{is?ol=hq~dpJDX$mOgVa|FC1_ekCm%pdXeXU$Ix0;e96zJxpLp!T(%qH zb$7bD3Gq)**ZwYyvF^aR7Z<;p-%c(zbaaiu{x$p#FJYY%!$q;4!)+>l78)PEKNS9* zjtgq!Mq_Vc}x;bpJ;;WfRcHCFCB%%xR%|C3hF!W?h@t7B-62Eu!FKj*2h#`ec@ z^N_r}xKe+o&6s7@ANpD>zOgj%1f5=K{O4l(uu)OnhtKo>o}?d`^CMnI(dymu_q^QK zD3JF|dj@eaXlS!?RRFTR!XGr*j!m0a7&>1{Cm>|7mr--gr8a&Q5bQTU02wMr8` zzA63TDU0v^;vFTn8`<80+u6(QOYtG3h$ol8W?VTKDx3d;dEtADvz+@3f8jgDw+>?y z$Iqydzq;vxaP~K62Rz}vf}0)x7>9p~_d+3GUDVNJJ-C&=VqT6Id-?m+1oeZzTiDy7 zUxd#BT06E}Jg3AGe&aZ0k^MRD`mz!B)v3;hYr6{oO_KX|bJQkIBI%-f9U4rr*MsSO zyiSnrf8Te!0dQ!<60-M;oQzu zv{{vg@majDT*DFGFUp>0pYK@M!-x0jTDO;@()P0KXR_OSn!UN#x#B)mn@+Q>W94X3 zewVX%KfZIs*BZ8D*puP?hK_%SBiyq*yr&r1J|gz{j*Z4s>s)<~orm}zf}>~g7~UVs z94N;ftZgIoC$X)=M}9l;$YUx$f70%2o$Z_CrPOHqE13QVM_wD66K^Fxjuq;EFo(}g zX2QE&>{sA9e5ZY<{4}G{X2x8Atu>C9(asDu!oRi9O`NZ_bY48w+N-tV_E>m&6&G2~ zXVTGI^jX5WSz@m+8`dF3*W2Mg(k%tfL#?_zJGyV)+$wxLhjTc5mhJFfO~fGoXQ>VP=s#3#isfoChtKLW*$Uq!n2}_Ck5tEw zhkfVoa&sM?e>S%|4Sxprt^zu)W=&aI#7$aP^_lPb6{p!a+u4|o#I`s^UleaL9)7AU zN4Os#AAygcrG(DM)NwcGd+qO+6(_CaN<;ZI{B~e z+*IQ(inFu0^3vGi_m+XQ(^`(@XOPEDYGtXqNv}lfW7UTkddJF@$9Lt8r;AQ=?G@y( z;R5*=+skx&v5tJh@&zBCv=O^Jh3_L};P~P8_M|PWH7n?uHlCg(20q6(z&rmjJ!pRr ze9muRJGryI!p1O=7f7U$}YBs zv3bb6@Ehtq#MrBuJue%XIJkGZ{C6^^yS%{Bb2z;C|DW6+m_uK9{VhfPIA2^GH^bdF z(Ov|PSIOyk{#&rI#n`lt^1|2W?esLc?c7K|rOi9o+8AR!^g6t!ToZSX(CgK(oG~|* ze!i2(EqI?RhIM(aSCWeI@h@J&J%CNS@++1XuIr^ni3(_VDp9pVxbRM|0Qzc-c{wj^J;RsdvZXZxD{mIo{N<95tlAX2|b( zKH_PpeluEu?I>(J*jmfhdqZ&yclZqMF&vGoVebt09(g-uPBl3?Eq5=etDos%!fcxE zEoSFymG*v}+^xmu&|-L%i?jWFWPwiyuRDG zP_yB4ya70UE8X5vtT|%di}RIi-{V-rsd|9e^H+*bY!A{!_*^ht2ZztzC6Qvx96D)VH6{3A{JLrqwsY19Nzcc%6G>JMQhJBIOt8&;kWtg;4s{qS)&T> zaW$r=-c(z!8DPA}?BaTlvGvB<8>G;g@!!C4wH&<(Te#QtJu#J`y<&2|roNmmqb2do z!~3N=@`;DC{2!9HK4s~!yEVeOVR#Gg1K)s$;=ROA0|UjGC-zy<<}4KlY|r(;EgU0h zvaERx*a`QLH!v@(_kYm(IQHww;cx5>fwzjB{a+LQEc1P+1v5(?+DexRpM~#f;o-Y-nSC4#M?y6V(om=i{dt zoP*-+mrK!*{EQUq`&eAM?|23(qq&8h$(QU%ua`lf*2!?u(zc#=zP& zRv*J(clz8{$$m*JQ*i#J9PBD|t&-_I4>{j9fUXj}uBea1=)X1L#>*M=n(*-=-{CX$ zQ*>LWvs!>Vub}8!WCcD$e?2Sbp^n47DRsmhzBgNotrIit`)axF5c@>=*$?}cdHgRH zV_kmPenTvk#2D_A+lq(A^iWP*!_>fV{B84mp8x17a#2iNcqq&EyB>q+y^=8<#e5&% z;U1)LpTu9dxK7UFXQ`)-`i66dO%#|CG?$ zR^UmFPQh0a&dZDBAYh>9vt{&hcm|6G$yfNybhUY_JaYK@ zs6CA*StrY?0XXK>XLr7OY-K;!AOHAG9V#!zMDcTndN_>VKiCVX%m;Je06GIEf-6sadpKPG{3F4{J{UXIKz4t zers%bJ9`ASpA+MB^NP=~*5L4dKEivIgYv~i*Sn0bSg5zL*S?^i^XZ{g$lIk z*yhRJ!@xmx;~vF*u`<@M3Hl40=W)HQEKN?Q1$bWdcR~-nC4x@6>I3o}IjiV>-Lz@) zj?*vYVRt>YV6MjA1~~~iAA#HVtLv|FSsBNb&Ancn?>PPd`xkL`H(PPT^(J_~G5=2>r z@%mPIOn@mZ&AwYre5#)6=E+?yE#R<~yxzCKn&kOdl=Yil!~4@uRH6a6pTc2t`K+*# z7Q`67S5a18a@Ec0F8WkCS~E8MHq3kKY<4C+c^&S3Igw0z9#5flsuVFc!^{hu4JKlI2n^q`O6e1QG! z{p`1l9d3S(G2x!qADhwrJlBS_l04Gi^clXReHP#0_lb6mfgKm&+A-X#bG5wx(q2z8 z_ng=toI`hYJ(uxdKip#-&vvh}wBM4JX|DBh`8EHi^43GRp5!y^@lt15H^ub&3NcE` zqin9vkl$E3^7ps$^E>W`(&O{n|3(AtORJS()_1(!#nvzI z-_yogroKk<*+kqU#dVpU!uw^PWa2~4bDHS&qi~jO-R5h2H(c>I!o0t6oi3is&Go$` zYnE|M<*p}QMi#mTz|CDA^(VpwTLztuqrHddu=hCcTgvY`Wn6?;xi>nz5Uw6^^v-j~GqwHz07e8XsaHRD&-*MsHitlF9u#Xbx- zu#qkoAG4pu-yM!s7H8~0`=(|3b#Hrp_CBYviZl|w7rqz&RgCFCQ!Vj3vATZ6#wM|K zpG2E{M&WI$oIefUx*qloc)Clju2{`xE9)da4y&y*{{CL9BdWnZLoJ!Rk&Y_Y)qjmS zWBe=h5$<{Vq?UTXRTJ^7rpfyFnkmnl;aLms8UBZ{8A;=d`468H=kIGdI?Pss<#GkjL*~`z>rQya&ZS5FIrN|C33_Tn^=SZ{%VyeA>`WVs? zXSnO!SFW4d3((s(e#+tCWyhzOw|imHbc3J4X}5lu^i#4rZIiQ6@I%Z zd_O5ZQNNJme8;oK8E?)Nw6z!KzxImKXDZHmVd9bM#3NN1Nx|icyP6okK#+! zo4CsqvwqC6<}{N>$Nu#?+`B#=hSaXE3n%j%qjsHtp}by?w{OH)8&~tv^c=B0-JN#j z{u$4Q;7FK3BRI_MVE_662lO)=qK7`TGE0*RfdxPuGs8A@RLVH#;J6BNvHs6>rRCIeA(v;oi}j z;oK@*#_IWe$KbRhn`<4r%Ijanb{*T_RHGkbviZ$3X1*Mz$j=v!Rc5QfV44tbxc4od z%@J@9o~Z^s!oS;*l!w>K)>g5%qR-k(XceztEVC~5hJS(c;(e|>z0utw+=hM4OYr8? z)U*W8Ltq<0|M&>^IfwUF!uK>_NL>$BOhU}@Ud7Ih$Y;o5J?N2)W?f# z=XKLx#PL@$J;A!NCf~3NTt@d?fKdNbb9_vsZ4;MC-w|yq8>6FED2^ zZM-~+e=%3d#Mf}zX78+Vd(5lE=NgYg?CpbV!V0~LR@SJeoU-;P=2lv4UBKsSayL_q z-#Fib?;7;7A>DgjJv`*Cu~?slUz#G$8ke6frb+75`7^!XU?-lPjri&8*n>EkW_}&7 z_rv}wZU)Ht^SFJ(qdZ%W6lV`tFPi(rO8W|ZDqN#HA4Ny7c2PsWifgekHyD2%?$*F} zV;Ox=e6NjG)A;{LuAXba4vbS^c`}Pm_`FgKkHN6Hl{p1++1>R-oPA(3{ebNj@K?rH zOriba2-gedPs2?W_QU5s;hy20P4zyx>{k;0cGi!!>ZpnO<)$L27F_5MNlKFh?R z^Wh$YYjF4|ZqGKb28*+++*RzQ&&1o0;pt1h!h0am71d}zF~aaG9>aGWQ{ev$)*or$ zVL3hT^+#~ba;`57?dj`x@#ex6eqZum^LyZW;7EB9XE}an!Jq5gRsLRDMT|Z523Tiw z)XQ+a5D$%DXgAokr9981m$Ef!r97@^b|n8B;TgbB2Rs(%|6Oy>NX`7I>Z`sUNefkJ zJAALKBzt9OEXQ-W$G0SZ-MYXfu50quo7dsmqgK!*8xP9e5VfNqtmzom9s9!`>p;$~fM1l-jInpVmoT;v|*t>fP+IcGP#JMhjySekvw#F-NxQduuO&!xt=mR&% zS-nIyTIof&=vLFZQwXbg)_a_lpLMXm0(bZfV6xYr7kG~dXXEe}?zfAUyB~(zx9}Uj zOL`+LyVy+`ZQthjJ>y(Ei1%K{p2bo4tp8@mpOUu;Db|}Y>V}U-<~{D*3*wliN8AF_ zdkfTk3%RQ&zZ1nZldh(!C;cwG9~-W>b~^V2zlG+6dx8dt>s2^!E6FC?yYYOvI8BwX zKW?vIcZYA5@nXGFEG^|V9!Fo}s=Js6)i=L19g8`97L^V|`0clheEnTMcW0`9I5W(- zBxhmYl-mxr=Jtg&)5^Fcx(Ge$uCeN`s=jVa4LHK*X-mag(fL!cIDnxVZa(e^hulZX z(6HGLaT*N3&0JN7=h} ziTL5{)rrPv=Mej~_yp6~XP zaV`Fa(~2}b0lx*X{ey?Hp6?h2k8$DNwC9XD*bQF(e#6a2j{iQWXm2t~KGIgne@lHH z4}bDI0dL{Ebn$R^UTHs5NSAVTTs+~o2y5YVTUWg|T^(0+oZSR=c8e<$Uz?q~>``|i zJtkT6XIL-B<3^mD%>8LN{o$hLYI(rzH|CY9hbP#ghv-4wBEP`A#S= zSF`op_U7;%+lSu-wGLb78rItsxfais`ZPaN{}aOs+M8cm4YQw^t=7uf53ySwrv)&M z;HRQm2;U#;D9&#k+Xv6oI(lCtSZVG9IZrTutoeWA_*xw04z*_R-Hz{Y&wd=eJX=an z!||mUJUcdzF0QW1e=Rx9DB9njuWf(A=Mmh0gx@CYmm6h_=kOiH2l}Z2n7iP(1svhK z=}+;$c^oaz<3oI7V12^5Uz0qKfGbPPQ*motDY(M-=?-_Wj}iA;c&Zu~zK47L0QIIO zrpR;9RrNM{7QfZh*<8mC;^mCGoGZq0V%RQc$GuK={8?ij%)?(HAMjp-r)r)b?}INK zd@aUXr?B0ec5!=KKmDO5or?1-cEUZyvAt=j2hGB=1TQ1ysi&HoEmwnJ{J`8*Y>a^Y zWzPpD$glVw>S%p1wxt~Z)r$W?dKhhOm~Rif0*+NP53vtYJ3pI$(BI$S;Yzq(6k`Xu`@B-o`#*!(nbX)g^BPCnFVkO& z_`VW%3V)qFBJp}ae!||bO`LJ%yoVu{w>@W@H#g{EtZ~lmlH(WEj7jeaT4%cnry_!SjTp`}!>^}lmSC8=TwuH~~zv}OKrge^wFY@)(Sbb%oy#+mo z@3kItE>{kwm%^ERd~M#kr8pm{KGW&N_%fcG@w04{7}+j~vm4ocL(X1sK9=2Em#AyC zR5{VQ&hMS-?-oAxh^3PA`R2^4?%Fz@jn?vk>l?=C-H|xv^DnvES<=2oUbo5L&$JM9 zQGbX$;Nq_y)`L#)bk|Gddp|w>m}Bo_-ep{e-_}|nS8MU|a1@NAt!;9@f<7MR`$sW9 ztS0X>@5AwWGGF=pcWU81mFf0e#)f;-clo=+aJnhMAD?dy#xsnq_=s>md``SENw31y z+1d64p0A##?~8knvFqUu-zN*7%_iXON_YzR{I#QfF<#2RyB+>{{=VeczN?=5T3Ai%g52aGU~(Jrc3M@>(Bx%zhqu7{AAJ0t@yhQ|NHsf z$?su2RgMu4-&gda-PZP)4e8Liab7PUhFcu&SDT~7^A4^q;_hL2tAvZ!;ksp3(f;&d zS}35SLY$&eUgZx0c4PaOkk>x!;qOX*zwe3{k4obC zzPf#gSk4R;10BCB?nQKSVmYm3sl{yT9Bw}n--S537uQ<(9>jKLY2357s;_k?2X}SV zwK%52yj9%qrsA3X1;!Mk+3K_z-UoiUqTJ&-gBJF-#h;kBB*2f4tGlT&W29Wp;% zEDa~<4Kx|{$Qv3Lo7%(+$!d2EM!_)_B8sja`r!$gm^#vG!P zuKc~`+;=@)OGK%4ddQ@~J8*H0yxyJ1kNA^diO~y=!uW@nhVZ=&|HpCt7i=Bi3HN&( zSX|`4$_hOl578s^$nG>MzURgAWqEysHrBK8Z$}t#F&ii0{q^*6*3rr|3(ru;8_NIG z$@pVq1no|0q2J-VxcqM{RKGO1cP6dZgr5%5tI@T&7Z4WW%@SYu-OkU<&w{TU`-gB| zva`H&kqeLHC320|+VCyxO-p$HDbYOs?y8`6#knO`jWm~E+_n|}HF8$KM#oC(9{*k0 zERLJ1V(vWB+6dzhW7KktUPA|IeOyDBvr6smoa-}%4E?_p%`{e&}15#u>E z_;WGbE_D6E?z4FBN)zE;tUYpFA9w2u^*HCk_Y&vevsg*GkmqhW)_3P_GIp0ZC*Y>T zD*eN_De5sX%X3e?66P`Z`a>S`9E<8L|M)msolktk86U1IqP?DgzgXiY<8T^n9Ihx1 zdHF;xucm=}Q}lA&OcGzBxfRXJmY)^!x-C*qbUqQryQbR5O%~uh8kL9bi`m230|M5_DA-*_#jiSL7ILwv9{Vl{7 z?fuV%9_$>;#jknKiep!{_p#>F3as(HU^Ayc4OGrlkH!y@_i=FDh2OW}Syx()=cqk% z+L#;e3F%5}3HW}#pLk)vgJx1`Vh>;8cPOubp_rVPVkf*mSALe9i*J4h^Xc~#KCa3s zs=tkL8oo;zKGPqDv%yW&nLHh@M4$L8vCMh=-ihCz;HZj^<#6V=)1$>uEY@{!ZT-#I z?bGxPHde^fAGPeO&5derK7P95D#hzFeEp2eWjOlL-%ZAgue!Q7{{{JZ*dtpGgc0$G zao?4dd%1dAJa5xb!)EpX_2o-W!uz?K>$yIa&u}k(xF4b?K3Bk4TI_H6dxyt*c0TH) zPvUU78m$fEk15thY~enP=Zo3j88Zmh@H+v$#}>V(7~cEe ziG$N>BYgIB%A@ZnSl~TE1INX<4tLkX@-h2$;JQVw8?YJlQNz5Z@%AgQh5PivdwVn4 zY^G=JRc9sXEnA#d(bc>aaPxbiFU?kSOl;vkqgpV1SgaKGvqF%OWJf8_U>t~8iu?_ATGHCvw8&x%q%tzm4(PF3siA{sLH zQJjSP5$kz>k2>b+P>=hU7v$7&ou;^HH*VtCOE$XgS87lCOBQe*5k2wlsp1t>zwO zBlN}$`rQy;g!>P%?{32XTzZFPE?b*ne#rT^2Fl?uJqZ^N$it`dky;7{V>ZaeY&e&T z>u+P;7^?@c`_*vxy)HjMJ;4*T-1VGsKk6~X<)j&Ghs9nOXRRC`!Db1X>lsOtL&PYa z+ZS7xY4F|7^n}a7a{n7UQ!}kIE3BV#vIzIb3axFia>UP{rPYDlUEzGV9!YWToO56E z)0gdvqy0e-=lM^qYF(F$wz6u**N@OPYb_!+;zO1c>SgLH^4WRruy{N!`Occo<|%jgz5B9 z<0EjETeQE}%ucw!<9oSoNHfJt=|}QWP2D$w`G~xKu~eT*(t8)F=~%Ty%auA=uf(56 zr)$;rMd!n3dwp;@7k69n*5BBt;3?1M4QzzZ;*&F_iO0VQET0Oj%Q`F0s@*RcC+U&>b zEt3fJjRJec=4woA|H|jGdFr-z(R!Cos};l(KL33RKbPeEB23rtF|r2DI#v#!;Xb_6 zZS^U0PqO)GhQIm$3umWt;mDJ_ensyItV_4|!AG@xJaso;E)oi@2j+zDJFbCoKxJ#` za5W^S>*XeiChPJ!AQ6vzbjE-0`g#ez%HS~$?)UIAX`-G>FHv#gh!>l4AJ#U<-vi34 z54qbi%6mop_fEE7g=tR}H3DY}P2CSei!SisXNTZkHvSDhH?jX(8yu<4Kh;kX&SpFQ zawYv;{=z-^M~!dc*kke+#x7^`p!~ljp1VrZY)=n=mtpHC_+J*+Z_BK2a$6hU#~n)$ zTV;ROXREKd?=E0dZia|GP9E~qX!u+&e0DuUjNyKn(~Z<4?rV!{fSe@J^cZui!LpCv z@LMgl_peL#j(rtyL!eN{{EPx7L3coPn`m~ zUZEb-^p)v!YRm|E4)=(ByUdzs?9bv1>*N@?)5^1rhwvTX=kfaHQ1v~_-ijtZhiQOZ z{T(3}u#ZXifMK0_f0I@QRKpkhq0WZ#wU?cI`RPZ?X~XoK@%mCU?Jd>6@v{M^x$5={ znt2C?Idb=@Id{YRlltlf|06T>lag$e(F@FdPo56+^}a6NzQ|CQW7SX!3}X5TmT<4> z171(XQ3E!^JytVRb?jfUhIQb&K5|w;ZHc8U&iV|o zzQJ+W>+nACZSqtwNFHH5+0S|N{(l#-~VV}?{lfG8b`v`kA z8l2U|yq0O?eMXSSFFypfBY<=465pw!A zT`b`v{QGQw(r!K*9pqtcf7fmD*#alw-s+Y3oFzTN? zPwbBy8}55sM8{he$}zw3!{oovy2baue5c}p#3CBOx}C4aiE<;R7xD1<6l<-#T$rb3 zC!?;rK0$M(aZ^`5uA!sLDb`$g+AeaPk%0&EkD5P}|FBj~Z&UQ1bL%K;jrrm8&G0!( zNjz3IKYYIa)Fiz?eDCm|&tIGv?&z#W)XR->e)mxQ%HI>sJt|Mn^L5_iM;y%;$0~Rd ztI@nT>&;bXS=L7O+Te4Se24oVKjxkO`U+=K9 z0LB9RT-z4!Y}diX4)F{T&)L%IgT0-`9q>G;q~1$IdGgbsy8N@#iypp|^OqLbW8pU3 z=QW1E#d!FtrS+7S{;1{pLC$K{lo!YMiMu1bcgg8$TCNJiTFGfrQQfvOABLcVHL%yk z$L+=CSnQqoo9);ud=G`8N_l$)m=@t~EStGK=~#WQkFoz+f=AE2JPwHc9l5Kqh(5$Q z-ns3#37>O?`<3r;4mA;fB)Q%l?irT&Nwh^XmrB@MHD#a1ZiRg?(I<*k!zHcsl)sC#vA#Y#Y&3y$A{^5*9jArxTaQn`(Ex7)jY}15 zRuk`&%vUeC2){?OHxWnU zu1l~~X6v{1G~S3!Id3n=tN1*C=PVdc)8;0=PqGy?0)AMwiZfh$O=tU-8Tgmec^R%# zaq^SLd^W=GOb$ZGoWO%)4>@&jWPeFoTEX@9 zh59hteUlb@uE+bW?CxxdS3bji-M{P6_f54%&2deV zCZDr$5>G=V?fGz-li@lEHy>o_Z>7{`YuG%(`~Klx;$mV5-~Bkr?*FR5H^z0TT!(A2 zHT;ekZw+-k4j)@<$T?r(zNY>9$Yr`r@2Wq-e?qKAyj(#~tFE2tz43{fz(9Y=qC)590l1IC|l| zs<}`4yR0!!H!wz=?=^LeY5wPq^%s96UUKkqIFAN!@=RMb0`pN^_nNQI!xHWpnL!tK z$n_aH=?Kqru(z74PeeK%i{k-eZAXu*Xrq)pLw|jtgL5#K8%}?V)X`{h=88QX9=RF_ z+i&9B#^-3f{Ee3-^4SdMkHMEv0uI>1K6nuQeL3CUxEG&vH%4v~;LVkT$Hd)_t!#XU zeMk)&Y%TsnY}bclA)eyAo-Pk*{5&G&Z}A=Oqsf-97wX78-mivnF{~ry{bz9;HSWdL z_z_2&JicMLy`MEvJ%{i1?Zwa7k*){4en;%@!*dl}_jjS?X5yP+FRIVnk*tT~bc=j6 zs3bmIJu^zIa5v!VGMm*MufWe)@m(*b#7t`){PVN)+v(P7^Vgd*p5JR6ze}7y;pbnu z8O%qgp{^kdyq8`mrk-@nZcQ=%UfQ|@$B$|&YZ<)^gq^*QX=WhoRn)@g_4t@XQytmI zfA#`>P7EEV(93e#fZ?h7Y&rj|d4I>j2Jfbt_Wv>LsN;XS%M;EfJAQmDy^HCO9I?pN z5cZ~deFJ_ju>T`&!u^mvqw$u4vj%#Nb2o`+yRl8%(|8iT=Ha>`j_K@PewV?~Wr+2_ z`EBstKuh7@h8>2tx5YPITy4etCCxN0re^V2HA7vplZn6Z`B%8st-I8|!rbuNT>Eg7 zI^OyYR~@*Q^E15$KXlNT9>UrdpGrRq?Jpu|8^5D)y(by(YU!bw>Ts|UvlTX;5 zaW3pL*7t|iBeAmjsHXPeTF3AGgY=*|eB&S|T}{`*Ge4u)f57u^RcYIcIkV_l4n~x> zHn9=z8U1b`PSj3jmUZ6z6*xPP2_x>KXs18F3)J7UY^{>B`S|;v;~k32D{h9->?W_L z!yNw2*){lhv8VSZUhdW?~kk32kXp~+Tsbvm)RedAlEJRr^a*)d%WlH9rgPBbY-XB(4zZJ z-lNSAx~gZnc(a!*$A|A&XyJ8|v zcrJM)CZg*c+BqHb-+c<@BdYxOTft)!tNi!7(zPQsg~iO_hibJwLju zO2oA|{QXFkh-{jPJXIwkp6+V66C>Pdu2FiQ++-ecudcO0jY7tvj z2mY%?^jM>xzE&;b9nT$3Rg2hnh4nQeHe&Ua*2=`#i2iHkBO^8vB%%yS zM3RJ1Daw$dQpTi+`&p;A_j&K{ckjRVx%atFeXPCLp4NBmdGEE>&Jo3ox7;l`+~9=t z=ZKDmFlElD??lsS1iR3rFn!Kwyl_B5&ggq#wxpcVsmUf;D4Zf)TXIIrrkdZeoKd%F z;#1~|Vq{Z#QZVjcVP8GNrN6svXU+!4R`WV6{|et_zi@o2d@OC$t%`fbC|y**@ilE+ zy6CEKOOtd_;(gMQkS@w;KZ%mkC6_bJx-eZd+ddO*Nf))NCSAwVMYla5wB&suj7uMl zinpHQ(?`v!n_oiuD7J?Fr1a5JVXcMfqn0(p?@u4)w6A78mOeTq%oAmZM%Q-j5SJmj zU7xh^8KPr#Y_|y+qNKX^(WDGfx_aifFhlb5gNFwM$W}cGDa7KrMF~E{w8(SV;Q5WO~R_k6kQjljms20 z)714!e5R>L_54X)Ow>~fVsVf~5=E|GMaVY!^6c&kdFL8@} ziFYg%&Pe$C8e?IS`{moBu%eUemc?(8hV1s2V~%ygthSmdHpw}0DWY;YEiXPrbY8eV zAw{$}m+dSmMO5^5^IMc6dRw@{%hv{uxf711h|UVW__!iQ45A#_JdMOo)lL z3r~-UiB1Z;E{utC#6^xjF}4-cAB#!8-kV|z*dF@x#YU;~**vSqCZF%iC&Wfe_0LR- zjZ)+f$FJCEKnSHe<5NYs3WeiOs%U|5)2LKY z*}~4*3sXh!3Xg0_6+KbJbBJT9qC7<-*_t|9BaDwro!pK|t@zX~RLv(Lb+lSII4N~h zqPXpDVd^MF3BO}&>S(1f_E_quSxM*DC{6PB%d*9#iPn~KT#QeX{CqDqAx)IMjN?mE znrN@E;lec0Ea&%H+tNh$mkarqCORcd>%SMvn=W74sE%{c!uYgNs*2(h(ngzwu}Nv8 zgi6-uqO?&u`+fYDv^V$v#C+*EvugS?K>o#1TJa&KT z&Nl0)RKsq)d(`jUxldH8cl%z6{hd7fbu862v3;k+ejR%D>DVKRF_vvJ3UjdICjU85 zL7$h4k|Rn#Cd@6xtzqOl zqI6k98bW*u9GSyd$$$TKSepMBRwzp42$Yoa?=k=Rw_V*<^=n0~l7oMinIdbdFz@K^ z<)_wNEGeWoW!4zUO|Lt%w1gRjddq1E%S{_*8Kxsmlu}HH_XOtyf~FCIbgVVR%fGShHuhjy)1P)v!ML^bYGH z#K(sCKK=h49pX|&iH-XVXfd#F-#+~YsB9MEQX8*N?*WN}2Q*6TJ@D^krjdpr{RbrW zGIqCrR(JJ&iS6Zcm?mwM*gUas&-NYvHIExnVyoUgdiNRBJ33!7N|W6dlhP$cl+|ym zIaR;oo^)vt_&Ljcc{5*`#r;`Yr1> zY5Y&#i*M5WKcfHs{V5~yjhnRmj{(W~5)$m)Oy2RCP)~b5LD8sHYDIC6&x7k$F9shkm zzF>+QH!L%XNeTm8OI%BlEUn!pB{&-VXyAFJ7_e`3G?TZ4y_y0mpE-s@(QKM*?eZRzO$!D-=l>@+))+wTsv)sF9OB*ipqe6#W zzdAU(ZStTnCMw{hyDD=SkRsYLP?YX?$B3>e9eGn3X54VjEN;An)2>x5Yp2nZn87O7 z-xGu<#fSbwrVC++3l{z>eva;I>C7{&d9!em@iLl^VvB4E>6{}S#mzIc z#SrSX$8$+{y!jS4pDV`SE^Tdvhs1?4&;yL~u>PjHr&#tS{Z)Kks`dS+AnsJ5+kI0ka!joaS=2=9z&$wqyQ!mU{e@4@I z#1S15&M;jZZKXGx>9*@`X&zII7iV~RaRWG~ziDx4m5zh@JsOE}8F!!lF^1(5mtg)| z#1+vU%9k9`f0C-kU1(mbm}1x}u9+rmFD=D|dZ7))9nrm;@Vi4Eg|_6w{6am_?cy4W zJ0ct-j5W;Vb(B&68RN7S)}yJoW!6CvzhR#KkoJ>-{#fyybcgqV;XOo{S0pS>sM~m& zec~1dw%PT?gggn`{4&#a z71m>??sLLe_q4PnpFUr4&`6Ctg!VLrk$gzY#fPMYOSSnqv}|FH11aRzhH z@WGt1{40iCvy2%f|IUlb;a0+5L)RHrLv)YvinB->7V|P8J+H8oR|)I>HJ0-_D+uL1 zR`MpRSj}6kVJ+c3@jHZa^Xu8bMnZehn|P1Syw4W4@&Vh}&WG&aBX;sJyZD6Ne99j7 zvX9T$&jAkdIbZN4hxm%GIm{8h;aiS!jN_c(J5KUFKX8iEgnE)c@iS-mg;3AnEay1S z1uhbfSHE$Y-?_pc{K-|qvGy;nbAxaT7wV9tB!*a0k(xAwV`n--ovRFFBomp*LO34Z zLinE0ZDb={n={kR5!)PCjNApRk)x*~4D;@frI$z(GFe3%=wKU-31EIl?!5%TbPToD+Pfl*ABADpC{5z@{Y~ z=?P^AGm?qSWFafJa4WZwjqKzglsnHwDEAx6Z{;SmS8^wJk(W5~k)OLMKtT#om?9LV z7@;ghxIQaENlHEMhS)vxHYz%Bw8nHJ0-_D|myIyvZt7^A>AZ%iFxeI@Ys+ zjl9by-eWWGvxTjEz&5t?Av^epoqWtLK4CYXvWLCw<1_YifP;L_7ktSfzT#^RbA)gB zmZKcwI4AgylYGw)oZ>V;@)JLEhF|!Vvz+5R7r4kJe&aH~bA>HNAl?d1WRS0Fr@1rXBQ;pEJNIcc4K}~8= zn>y5`9`$KJD7)2=MuhqaO$hfT&1g;wTGEQvgfb)#(}qWQl(vNWw2#w{1lrSqj&vfC z&UB$G-RMpadeV#D^r0_L(2xEMU?5L2h`|hDC{Hnr;f!D;NsQuYMl*)7jAJ|#n8+k1 zGli*4V>&ZnapA~&ohU)yugdh<0a;^fQ2k#F)y=(S6IrcEaNqn^ExYdgO$9= zDpvCrYgo(Myu&)yvw@Ag%O>7qGw-v7t$e^Xw(}u7_=uf+%q~7*H=nYHz3k&N_H%%P ze9jkq$sxYtYYuaSZ}^s@9OF1A_>Pl&&kvm9G(YkaKXZm(_?5Gq<2)C*$R&Q`GQV?$ zKlqcYT;ngUbA!k|TMAMVLoBICO&ZdYj`U<8+?Qt}Gg-*WE!@g&WFtE{$Vs@@yq!D9 zO&&s9J$I3pIP#I7yD30H3Q?FM6eWC{7qu$) zQ;i3Rr#dyLNiAwqhq~0GJ`H$~aPQxU#x$WR&1g;wTGEQvJVdxBZo?xyN?RV|aoUkU zdpgjOP9)NqE_9_E-RVJ3deNIc^yLZq(Vqbf~@1DTXne5sV~>Q9R9P#xRy~ zjAsH9nZ#tKFqLUcX9mykEYC5MS)LyvA}~ zX9aJtk~dk!YTjZEYk8Y@SjT!cu#tD!#CvS!eYUWb57@?bK4b?Uv6GM4#V73MQ}(cz zeSF4#4sejq`GPMw#8-UHVUF+(-*S{=9Onezagy)(fm593M}FdG&hQJra+Y(P=K>eG z#BW^YcdqaUe{z*;{Ka){5P3F}f|SG%ODa;6hP0$3JsHSICNh(StlYw_g!+Bq8E1BK zkdyFS>UQoRH+i^|yU0r%`N+@R6rdo5C`=KGQjB{jP6Qd0Zl$=|We!(VZUjq!+#ELwN4?1pVmG00#0TgBZ*ZhVm5Q+2C+SFp?xj z@ie0u!&t^Ko(W835|f$2RHiYV89c+YJjYCCF`MU^!(3kAMdtAm^I5<`7O|L@S;8wU zn={kR5!)PCjNA zpRk)x*~4D;@frI$z(GFe3%=wKU-31EIl?!5%TbPToD+P@%3R8rl6yqL>Q-YF|B0M7x zb@t0rj!>7a0u`x5WvXy5_feJmsm24uQ=J;rq!zWQLtW}op9X|-%;C9wsN>j}CN!lP z&1pe+?-AN=YRyB0_Z@8r?G1!BNZJyD)Zy*R6ZE4$0|@p1o@5Y%8NyJWB9w_A&Im@5#3-I-G-DXcIL0%9iG+3*Co_eq zOk+AT2z51|@2&)Cla z!aKWAAMy*nANLYs#_aEjCX$WQ#t8Ghkc z&T@|PT;L*?_>If_&K3UPPp)!}zqrl~BJUqlkdhc;NkwYX5XwNMBeeCOfsAA#wC9+G ztlYw_+(tIClY^Y(;&$#JH{n~ecXAhbi6bBRxtjtMq!5KELQ#ql+Sn^j30hK$(v+br zSnGn&(a zlC+{V5AiTQ6^rAO?=*tuIqdx-}$de3W zFhdy1Qw(D`BN#~%qj;LpjA1O}7|#SIGKtAdVJg#@&J3R6S)OAivzX2E%waAs@FMeg ziTNyGA&Xed%Pip)mhvjgc#Y+}&I;aOC2z8d)x5e8>(yVkaN7i%;0ir|e-b`}mCg9N-|I^95gWh_CpX!yMrozU3&#IL-;a<0Rkn z1E)C6kNm{XoZ%OK1e@AW~K-1u2OkmQh$~2}kgJ*b_=a|VX zX7fCAn9B>i$UI(RJ_}gLA{O&9OL&E)yvj0OV>z$0f;U*no2+6rZ?T58yv;kTV?7(# z$h&OfJvQ?`TiD76Y-2kgvV)J<$;a&C6L#|{d)Ui9K4U)zILPOG!IvE3E57D1NBD+s zIm$7PbAsngNqcGRAz1&At zLRHObJU~3vsXQ z3ACpJ9qB|Oo#{eXy3w5;^rRQP=|f+hpdbAifMU$ilMG@oLm0|a3}ZMW7)cVNc$(3S zVJzbq&jcniiOEc1D$|(G44&axo?|Ann9cLdVJ|rna_>BD=;2@v#1z&QAulSn79N`HNA zl?dN9s=~d5wr;9&KjC{k4-ijvYEY9}gf;`~P?vhtrvagYVM7|xm?ktOv|rww7PO=l zsvSfR@i1+8ghy%1V?0hf5@=5cI?{E(VIT>2C z*v57~WCtIylaJZOC+y}^_OO?Ie8zqbaFEaWf-gD5SJX{sTcSPP^DMC?-aSz2Q zK}kwcnlhB79ObD%MJiF5D%{I`RONoE@c{8urv{;|u3FTl4t1$VeH!o}p)Kr2G^Pnn zX-0Ee(2`cP<{=)Y4Uh0BZF!8x3EzZFpgkSvNGB5MOcz3(sBUzp2R-RUZ~74GTs%QP z`ZIumJjozJeT*Rt9owg{^$RHn#I2JNSs5e9SIBVK<+$hrR6MGxl?UgM7{xe90lc;%g3bgm3tk zqa5QnC-{z&e9sS@;xs?<6F+l?U-*@?oZ~zfxX2}b<1)WYQI+@)TaRt(vU_prU^}HMsr%wl2)|lAs(g;kMJm=Zqs8tPCF84PX{{Ei9|Zng|2j? zJ3Z)0FM895zC1xc`ZIumJjoyiGlZdpHpYfAoDqy9iBUYwXvQ#>ag1jI6Pd(hrZAOh zOlJnq@GQ?UlUdB>dFC*e7kH6*yu^GKu#iP8=4F=f3QKvFWxU36US|bwu#z`f#cJMS z4QqLucUZ@IHn5R**~EKn=6$xXl@Hj)c0ObWAF-2<*~KU9=2P~tmwkN3ehzSu&-sEc zImB0d&0&u44c~Hz0Xi77h(}I??qBRfkFl~5*M`_DrJWe|jXio<^(uqVm z(}k{dqdPt5NiTZShrWb%!oxQY`ZIumJjoyiGlZc$#W035f{`RKil-UP7{)S=@l0SM zlbFmDrZSD`%-|WGsZeQHu5f;c#qAz&la}w0o&NlhwR`ZcJeX1_=Mej${zNzkI&f8 z0S@vxU+^V|_=>MN%n`ofTaI#!If_ z&K3UPPp)!}zqrl~qEycNq$GyWW^O7{6TYXAmUN^i1L0d0naE5QvT_TzavRymP7ZRC zi`%(_+~na-?jkR7QSEtJV-+t(U>MQr5Vj>K}%ZEnumCpHax#X1nR`MpRSj}6kVJ&a-4(nLY1~&38n|P1Syw4W4@&Vh}&WG&a zBX;sJyZD6Ne99j7vX9T$&jAkdIbZN4hxm%GIm{8h;aiS!jN_c(J5KUFKX8iE{K!xI z%o%>+SI%;d^IYH}m-vm#{LU5r;7_h{jla0g4Z@3$7(#mpq5ZAU?$$r;YlXJ7(vyLV zgm$k&8&_Ef?Lpl_Xsao-&6JJMCQ=S^656J?ojb@)9`58W@)Acr@^d!@C`cg+Q-op^ z<>ueb9Qgks2TIu1OHzu`l%Xu)8=avIlL}O%5|ydKz1&A=XXJjWar5tH4&2Ovn>lbZ k2X5xT%^bLy12=QvW)9rUftxvSGY4+wz|9=^zc&Z|2SaSpA^-pY diff --git a/node_modules/node-notifier/vendor/notifu/notifu64.exe b/node_modules/node-notifier/vendor/notifu/notifu64.exe deleted file mode 100755 index 32e80cc655dd684ea085630d67eb2fc1c6964d8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323584 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
b4z-U? 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 A7XSbN diff --git a/node_modules/node-notifier/vendor/notifu/notifu64.pdb b/node_modules/node-notifier/vendor/notifu/notifu64.pdb deleted file mode 100644 index 3cd468f6d04eea6bf086477174d7c80cad1d0b6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4279296 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 z%0D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 z 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