From 05075eef6151ee5bd226ba7e488e2d291b95a404 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 31 Mar 2021 22:25:33 -0400 Subject: [PATCH] update --- .babelrc | 10 + .eslintrc.js | 65 + .github/stale.yml | 17 + .gitignore | 16 + .travis.yml | 21 + LICENSE.md | 21 + examples/bach_846.mid | Bin 0 -> 12599 bytes examples/load.html | 66 + index.html | 200 + package-lock.json | 17408 ++++++++++++++++ package.json | 91 + scripts/increment_version.js | 28 + src/BinarySearch.ts | 51 + src/ControlChange.ts | 124 + src/ControlChanges.ts | 38 + src/Encode.ts | 210 + src/Header.ts | 293 + src/Instrument.ts | 96 + src/InstrumentMaps.ts | 161 + src/Midi.ts | 212 + src/Note.ts | 244 + src/PitchBend.ts | 64 + src/Track.ts | 319 + src/midi-file.d.ts | 114 + test/Compare.ts | 55 + test/Header.ts | 241 + test/Midi.ts | 111 + test/Note.ts | 155 + test/Track.ts | 309 + test/midi/230_bpm_multitrack.mid | Bin 0 -> 25926 bytes test/midi/bach/LICENSE | 10 + test/midi/bach/bach_846.json | 14367 +++++++++++++ test/midi/bach/bach_846.mid | Bin 0 -> 12599 bytes test/midi/bach/bach_846.mid.txt | 1290 ++ test/midi/bach/bach_847.mid | Bin 0 -> 15797 bytes test/midi/bach/bach_847.mid.txt | 1850 ++ test/midi/bach/bach_850.mid | Bin 0 -> 12625 bytes test/midi/bach/bach_850.mid.txt | 1509 ++ test/midi/bach/bach_format0.mid | Bin 0 -> 3642 bytes test/midi/bach/bach_format0.mid.txt | Bin 0 -> 6517 bytes test/midi/beat.mid | Bin 0 -> 2432 bytes test/midi/beethoven/LICENSE | 4 + test/midi/beethoven/symphony_7_2.mid | Bin 0 -> 52865 bytes test/midi/beethoven/symphony_7_2.mid.txt | 6094 ++++++ .../beethoven/symphony_7_2_singletrack.mid | Bin 0 -> 49573 bytes .../symphony_7_2_singletrack.mid.txt | 6094 ++++++ test/midi/debussy/LICENSE | 10 + test/midi/debussy/childrens_corner_1.mid | Bin 0 -> 13743 bytes test/midi/debussy/childrens_corner_1.mid.txt | 1112 + test/midi/debussy/childrens_corner_2.mid | Bin 0 -> 8040 bytes test/midi/debussy/childrens_corner_2.mid.txt | 712 + test/midi/debussy/childrens_corner_3.mid | Bin 0 -> 12824 bytes test/midi/debussy/childrens_corner_3.mid.txt | 1243 ++ test/midi/debussy/childrens_corner_4.mid | Bin 0 -> 14114 bytes test/midi/debussy/childrens_corner_4.mid.txt | 1391 ++ test/midi/debussy/childrens_corner_5.mid | Bin 0 -> 12867 bytes test/midi/debussy/childrens_corner_5.mid.txt | 1309 ++ test/midi/debussy/claire_de_lune.mid | Bin 0 -> 17112 bytes test/midi/debussy/claire_de_lune.mid.txt | 1493 ++ test/midi/debussy/menuet.mid | Bin 0 -> 22043 bytes test/midi/debussy/menuet.mid.txt | 2313 ++ test/midi/debussy/passepied.mid | Bin 0 -> 23067 bytes test/midi/debussy/passepied.mid.txt | 2146 ++ test/midi/debussy/prelude.mid | Bin 0 -> 18972 bytes test/midi/debussy/prelude.mid.txt | 1741 ++ test/midi/joplin/TheEntertainer.mid | Bin 0 -> 16698 bytes test/midi/joplin/TheEntertainer.mid.txt | 2618 +++ test/midi/parse_midi.py | 29 + test/midi/pitchBendTest.mid | Bin 0 -> 483 bytes test/midi/tchaikovsky_seasons.mid | Bin 0 -> 13560 bytes test/toJSON.ts | 120 + tsconfig.json | 33 + webpack.config.js | 27 + 73 files changed, 68255 insertions(+) create mode 100644 .babelrc create mode 100644 .eslintrc.js create mode 100644 .github/stale.yml create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 LICENSE.md create mode 100644 examples/bach_846.mid create mode 100644 examples/load.html create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 scripts/increment_version.js create mode 100644 src/BinarySearch.ts create mode 100644 src/ControlChange.ts create mode 100644 src/ControlChanges.ts create mode 100644 src/Encode.ts create mode 100644 src/Header.ts create mode 100644 src/Instrument.ts create mode 100644 src/InstrumentMaps.ts create mode 100644 src/Midi.ts create mode 100644 src/Note.ts create mode 100644 src/PitchBend.ts create mode 100644 src/Track.ts create mode 100644 src/midi-file.d.ts create mode 100644 test/Compare.ts create mode 100644 test/Header.ts create mode 100644 test/Midi.ts create mode 100644 test/Note.ts create mode 100644 test/Track.ts create mode 100644 test/midi/230_bpm_multitrack.mid create mode 100644 test/midi/bach/LICENSE create mode 100644 test/midi/bach/bach_846.json create mode 100644 test/midi/bach/bach_846.mid create mode 100644 test/midi/bach/bach_846.mid.txt create mode 100644 test/midi/bach/bach_847.mid create mode 100644 test/midi/bach/bach_847.mid.txt create mode 100644 test/midi/bach/bach_850.mid create mode 100644 test/midi/bach/bach_850.mid.txt create mode 100644 test/midi/bach/bach_format0.mid create mode 100644 test/midi/bach/bach_format0.mid.txt create mode 100644 test/midi/beat.mid create mode 100644 test/midi/beethoven/LICENSE create mode 100644 test/midi/beethoven/symphony_7_2.mid create mode 100644 test/midi/beethoven/symphony_7_2.mid.txt create mode 100644 test/midi/beethoven/symphony_7_2_singletrack.mid create mode 100644 test/midi/beethoven/symphony_7_2_singletrack.mid.txt create mode 100644 test/midi/debussy/LICENSE create mode 100644 test/midi/debussy/childrens_corner_1.mid create mode 100644 test/midi/debussy/childrens_corner_1.mid.txt create mode 100644 test/midi/debussy/childrens_corner_2.mid create mode 100644 test/midi/debussy/childrens_corner_2.mid.txt create mode 100644 test/midi/debussy/childrens_corner_3.mid create mode 100644 test/midi/debussy/childrens_corner_3.mid.txt create mode 100644 test/midi/debussy/childrens_corner_4.mid create mode 100644 test/midi/debussy/childrens_corner_4.mid.txt create mode 100644 test/midi/debussy/childrens_corner_5.mid create mode 100644 test/midi/debussy/childrens_corner_5.mid.txt create mode 100644 test/midi/debussy/claire_de_lune.mid create mode 100644 test/midi/debussy/claire_de_lune.mid.txt create mode 100644 test/midi/debussy/menuet.mid create mode 100644 test/midi/debussy/menuet.mid.txt create mode 100644 test/midi/debussy/passepied.mid create mode 100644 test/midi/debussy/passepied.mid.txt create mode 100644 test/midi/debussy/prelude.mid create mode 100644 test/midi/debussy/prelude.mid.txt create mode 100644 test/midi/joplin/TheEntertainer.mid create mode 100644 test/midi/joplin/TheEntertainer.mid.txt create mode 100644 test/midi/parse_midi.py create mode 100644 test/midi/pitchBendTest.mid create mode 100644 test/midi/tchaikovsky_seasons.mid create mode 100644 test/toJSON.ts create mode 100644 tsconfig.json create mode 100644 webpack.config.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..eea2de4 --- /dev/null +++ b/.babelrc @@ -0,0 +1,10 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "modules": "umd" + } + ] + ] +} \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..3b8976b --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,65 @@ +module.exports = { + "parser": '@typescript-eslint/parser', + "plugins": [ + '@typescript-eslint', + ], + "extends": ["plugin:@typescript-eslint/recommended"], + "rules": { + "dot-location" : [ "error", "property" ], + "linebreak-style": [ "error", "unix" ], + "eqeqeq" : [ "error" ], + "curly" : [ "error", "all" ], + "dot-notation" : [ "error" ], + "no-throw-literal" : [ "error" ], + "no-useless-call" : [ "error" ], + "no-unmodified-loop-condition": [ "error" ], + "quote-props" : [ "error", "as-needed" ], + "quotes": [ "error","double" ], + "no-shadow" : "error", + "no-console": ["error", { "allow": ["warn"] }], + "@typescript-eslint/no-object-literal-type-assertion" : "off", + "@typescript-eslint/no-unused-vars": "off", + "sort-imports": ["error", { + "ignoreCase": true, + "ignoreDeclarationSort": true, + "ignoreMemberSort": false, + "memberSyntaxSortOrder": ["none", "all", "multiple", "single"] + }], + "no-lonely-if" : [ "error" ], + "semi": [ "error", "always" ], + "no-cond-assign" : ["error", "always"], + "indent": "off", + "no-var": "error", + "prefer-arrow-callback": "error", + "@typescript-eslint/indent": [ "error", "tab", { "SwitchCase": 1 } ], + "@typescript-eslint/explicit-member-accessibility": "off", + "@typescript-eslint/explicit-function-return-type" : "off", + "no-multi-spaces" : [ "error" ], + "array-bracket-spacing" : [ "error" , "never" ], + "block-spacing": [ "error", "always" ], + "func-call-spacing" : [ "error", "never" ], + "key-spacing" : [ "error", {"beforeColon" : false, "afterColon" : true} ], + "brace-style": [ "error", "1tbs" ], + "space-in-parens": [ "error", "never" ], + "eol-last": [ "error", "always" ], + "@typescript-eslint/no-explicit-any" : "off", + "@typescript-eslint/no-use-before-define" : "off", + "@typescript-eslint/array-type" : "off", + "spaced-comment": [ "error", "always", { + "line": { "exceptions": ["-"] }, + "block" : { "balanced" : true }, + }], + "lines-between-class-members": "off", + "no-multiple-empty-lines": [ "error", { "max": 1, "maxEOF": 1, "maxBOF": 0} ], + "no-unneeded-ternary": [ "error" ], + "object-curly-spacing": [ "error" , "always" ], + "space-unary-ops": [ "error" , { "words" : true, "nonwords" : false } ], + "block-spacing" : ["error", "always"], + "keyword-spacing" : ["error", { "before": true }], + "space-before-function-paren": ["error", {"anonymous": "never", "named": "never", "asyncArrow": "always"}], + "comma-spacing": ["error", { "before": false, "after": true }], + "arrow-spacing": ["error", { "before": true, "after": true }], + "space-before-blocks": ["error", { "functions": "always", "keywords": "always", "classes": "always" }] + } + }; + \ No newline at end of file diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000..dc90e5a --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,17 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - security +# Label to use when marking an issue as stale +staleLabel: wontfix +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3add248 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +node_modules + +test/index.js +coverage/** +.nyc_output/** + +TODO.txt +**.js.map +.DS_Store +build +dist +coverage.lcov +index.d.ts +out/ +.vscode +docs \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..125853e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,21 @@ +sudo: false +dist: trusty +language: node_js +node_js: "10" +script: + - npm test + - npm run lint +after_success: + - npm run codecov +before_deploy: + - npm run increment + - npm run build +deploy: + - provider: npm + skip_cleanup: true + email: yotammann@gmail.com + api_key: $NPM_TOKEN + on: + repo: Tonejs/Midi + # don't publish on cron or PRs + condition: $TRAVIS_EVENT_TYPE != cron && $TRAVIS_EVENT_TYPE != pull_request diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..c015913 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +[The MIT License](http://opensource.org/licenses/MIT) + +Copyright © 2016 Yotam Mann + +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. \ No newline at end of file diff --git a/examples/bach_846.mid b/examples/bach_846.mid new file mode 100644 index 0000000000000000000000000000000000000000..e279b06060142adefa25200612dc6a268bff3dbb GIT binary patch literal 12599 zcmb_jYiu0Xb-wgVu1HaGysBM9rPq$*N|cve4tI8*J3G6}Sz=u{UO0AJAcYa2fPvIND*_~ZlZi@sUaOa-+?z!iD=P@&v$q{ABv%+Lx5-y{>NDIzBf4 zbo!YKi_7bc^Q(=urN-KNBmJ4>`7h%tJ(13&Ppr*1mNyobHqNIvRuGb@@7t@cd&#x@ZuPqQ{#2y+Ma%@7}Gjn0>JZ#=rIp?O0(V-Dz$jD|5x|RCe z>cTv{BAw=tL-HKU$L2R0Yi@ef&E?b6ODh}ejTOjG-FDk8_ui>){N61f?8e-!eUEwS z#vS`ktPu^3owFoL&qQ+Pa!8}8wijhCWA8P(-TT%L7}a}Cr0E$Rdw=>vzWb;D$iq*6 zxV0*489Z^l1N79DBuFpq)1bcYeMHmO-)2p{*VxwHZ@i(Wa(DgRj=NnpKIVOd2faW4 zu1NJ=%-Jegib@=OqR71*F_x9wUwH>m=vwDiwXw?gjM%&m z17dNDkBg_0K}yfaeEnTE|G*b^X?5TFyQ0ig@okx>XFB%QQ#dc;cngd2CXg7TTn^8E8;Do_i9KGfz9v&U)D*p1<&#kU92uwAX=@ z6-Pw;jFag5(w@-qco*Q@Sn2o0(Gev5}wpX1?Q`QG8) z|Df677rsryZy$Q@C9n76G-#Yoj|(!-VO^BsvAJOszp?6WqWtt4c5h#D7#<#kmm;*^0IT+J^#s6 zApn1zg*BQBbPzJ)(7}I;!@<*^)wGl?J@l9RFH@I1^v^R}X&V2l!XtFbSUN7_lb@II zl}TRyhuk&q`dVJJd~buKnC{RkX)1h>ruUBiKHK}i^KURq_y7A>&{}RAUs`GWLg7BQ znqeg$0Q;}08~67pddti_U1mW)Po7EE-FI zaxBS-b%ZS2QCX>~&r}qbCskkBV978`hQVMLC`f>^4AP+>WW{9?ibVWud3hF*O>j4B zM6+#Bz@QR?65P!iVjUqvI|`Mm_)Jc5xvu&`gC)Z(AqKlZK?0OzkhX3Q@>f?E*ioQV z*(bj0tS&HEGRzXOt^>r@X;79y3F`ur7E5B){N{KrVxZlOW-a zkfF&;aj8xC%M;*kh$XCUA`?w?gIop;Cqbf)km5%&QN)jGGEq7}oG2Q!CsD+Yk{y-c zTEf{;n~@)LSNACg{2`XGv-J!oN(abg&~OqY>L^hhBXX1ye92xe zsXiyel0m|k24Q0t$Vz~YGw8Ue+k^bo)mcVlDdm}w2U}R3m0`&sOT@Yk5L>4~#~GBc zPLSekXfKDVPmn%48xA5LwpKepRszJ%hFTpV-QmaucLtFVnuK(ZvE(RAjw-^ zNsw?y>YQOFKB3Mz#*(DE4iKwz29uzKxo7`MeQshyb%aa?EwBlhjBGH->N-GH0>qIGv~_KDzqZI) zCS{p#b9(!f@YWDZGAyCWg$qfL%b?*Ts9hC;^lZ+@ggP(7lB7BfN~nuLZFP>#5%>=`kxfZZkN{tC*LbVox5Ju=C!m_N_@&Or zOP#*fa+~CGt)HQc4=j2-mJBjNULN?7)KfQ9#en2b()5Ob2RL4A<2T*gPsMM#`{hk{ zx$(vI#EWjYiFe(ereBCc=TaT(;iezZq{c6$T2lIrE1^0YZXRp~{-rvsAXq8FL|`KE zN_PS_6>dHl!_ZN@P8ju=0>Ms)o4?uo*i9?@0DGJ^4TF|#V-Y4DwiWIGY$Dt|)(qf+ zwk?P-so@5@7n`?wCEUF8V{P*aeOTm%n?}=zHn>SHpekZQMB)^PkaMI>!w__*69$RF zuyL}@fi{xhCx|c+7erz?EkZo&QXM;@IiYGX5tx=Z(VUQfR_5*f`GQ|LlBqWS55syWZ z;HnNAyc1y3Uy|ss8P+kGb`TTBH$P3_|2qAN+T0*od`8@(qD9&{+a zTy0sn0rnrnj~gW>oG9pH{fO9C?#!wlLP+*N|6$ns;?qPE^z=08o~g3tb`kR3`6ese z9>u*xfBl!ZzutjU%=z?)dRwV)?pwhj!o?Tq7~u=*&xiMI_Pks%(fsjwn#U(Cnmf*! z@C2y)+l%Pdla7yuUw3?5*PN|0HIxlF zovx{Y3V(9bt}n|0Ld~J)OP#;Lr7px zs<4!fBwXH9G}@$HzSS%F?M1jHkExQyk0uMxSS8nDnTGQBn_O!Hy~`oHymOX5^S-%n zQ@vb=5o9UO#K_~2X_&5VFXACNTlQh!blJ!CRC(*nluFH2w^ru>54X-ts?;oSK+IKe zbO1Cy(UD&Cc%3Q=dVG5kcODsw9_d1rE{A|Ig;OA#IB}Sh;^h!pW{Nv!nITr`u}Wqx z84P_b9B~Ay4xK90T@IDYtdZp6DHcV-#aMnTH>P|Y@ky5**WneW^Q2`gAB|D|(6x@K zeY&m&%6aN`2fcPw_#wzMA2Xh*95*s)Vr$q91&Qc~N%&YksN*pUgVez;7 zNe%l@1-7bQIl(ddf97%>sZSwAUQtLr327)H^*N+Iht!uKjd4gh7LyQBT+0&IGRHOK zAQU+W1zA#&ED-c(G5ajVmxZ$eFA#k1^^{NfFG(`%lj7NMfKtdBpcJxjJuuDI&9bF) zmD6)-V8X|dgFdE{Ra0Sx^jI097sN5WR5Ft|mcDKO&W= ze{_RH{j;&jl&e`>=zJn4@+prU5_b#a&|HC8W9O#%Wm7Pd9+$L^{tikI9YZ380j5`A zN=2pW2t8M+ZVNI4xmYlcVH`P9mL^f>gpxYO9SS-I3i`MNee&Wd5Hwe1i>e&QF^*$} zt*-L*7+p_R*t&7*5K+bUsdqX)Q7664<9@~mrBeYfE^a>z-F1stl#V*(`V@(GB$vN`0%Nqi?OEQ+?G(DDgHJprhmcGDLP$+e7of z>v_c`gG;VYuj?+g*RK|2ptl&?J;gQKvq zTG+uOKvm!`5~GTNXu*((*UcLlEK4*pd6DUi7qz|F62F2>U`J}O7^r#3b72ChK|%~9 z#DLsv`H*~YbA;rrMq(oo z4f0fmA(EbAje5XLBCCnzQ{d!Tza06>v$%osN?5}GBMb6>g=_n>Z($2 z@~`0Hx97iJ-504>Ed138zRny}F#4Q_@Zyu$hkw)#9UoEf9Us>o{PR=_EtiTBZSjnQ zt^*uJjXSGuqYpl!0x@;_J;-a><3!OKgWj& zj^pFn2K{zSl*)s)yh?e%wT$#UGDfz59zr`{Pu7Z7nt?!UnII8cvX1{P;)p0moCCsv zwUByHB!nSNw$Aw26GH46f<+<|vjDx;!E=H?FDFOCLQReEx_d7EgarLr!#L+M#`a|b#75E@`Js|C5MA9N`PG( z@ne63n+BAQa~+qGB%hBEM+=4{t=TRVju0&GH2C_0+7PeZD=rF}=Q^PotCh z$Y8Kp0*)F&z>j@y4so&VP+_oLx+ZlTEYumyu?o-ou?bnQk56m^3>kE0#3^TjeH?^X zHekxMeO%`d!kn&J2mF9e17SB*$^w{ummU2Z#;#8^=>G@nx0T-0Z1%($HPS2OO}oA-uH%>uG-UIqv!KM`YdZq* z!&Wq`R0c_rQ7HrY0F>S-j~OKlQ|hqGu21LbA{l|fBZz`t<8nRc&_LjY{F*}dAl)q` zWx3;UZxW1U@$VbB$-V@dz{_!z2@bL{$b}3UxU~ukv*3mD#P!Jy*C*4Fhr=qB!&+qY!n^7+w5}VPu$Y!MRUYi}Z*x=#l_ZJEqI^#hfsorhD2%UNJou-eE~Q1}ai}*Jd`^w`AhkoOo75E?E&g z8q7z7N*zTi9#wb4?4DOUpFr|(LUy(b9p2N!M(3dAy+nuOY>|`Oq3287;XoZ~RLs;0 zJW4$6iNn@$r^qJCB0EY^FieVw?jYnj_=i4Nob}(L)8tm^EBs@C{Dsjm`a^#g|4qPu zMW23%{*hp#!T(2)K0p8Dg|&y<|4I=5)&?iUdi8zn|1F@u-cLXNZ0mmuekuQ2&|359 zc+I_w>+AU4_3$&#JTtUPf8LZizqGJ4w9rVHcV7(tM0H_led)pq{&yh$7XgC(4>ZA1 AJpcdz literal 0 HcmV?d00001 diff --git a/examples/load.html b/examples/load.html new file mode 100644 index 0000000..589222d --- /dev/null +++ b/examples/load.html @@ -0,0 +1,66 @@ + + + + Tonejs Midi + + + + + + + + + +
Load and play Bach's Prelude in C
+
Loading...
+ Loading... +
+ + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..5bbf903 --- /dev/null +++ b/index.html @@ -0,0 +1,200 @@ + + + + Tonejs Midi + + + + + + + + +
+ Parse a MIDI file into a Tone.js-friendly JSON format. +
+
+
+ Drop a midi file here +
+ +
+
+ +
+ +
+ + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a5277a4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,17408 @@ +{ + "name": "@tonejs/midi", + "version": "2.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@tonejs/midi", + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "array-flatten": "^2.1.2", + "midi-file": "^1.1.2" + }, + "devDependencies": { + "@babel/core": "^7.2.2", + "@babel/polyfill": "^7.2.5", + "@babel/preset-env": "^7.3.1", + "@babel/register": "^7.9.0", + "@types/chai": "^4.1.7", + "@types/mocha": "^8.0.1", + "@types/node": "^11.9.3", + "@typescript-eslint/eslint-plugin": "^2.6.0", + "@typescript-eslint/parser": "^2.6.0", + "chai": "^4.2.0", + "codecov": "^3.2.0", + "eslint": "^6.6.0", + "glob": "^7.1.3", + "http-server": "^0.12.3", + "mocha": "^8.1.0", + "node-fetch": "^2.3.0", + "nyc": "^14.1.1", + "semver": "^5.6.0", + "source-map-support": "^0.5.12", + "ts-loader": "^5.4.5", + "ts-node": "^8.1.0", + "typedoc": "^0.15.0", + "typescript": "^3.7.2", + "webpack": "^4.44.1", + "webpack-cli": "^3.3.12" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.0.0" + } + }, + "node_modules/@babel/core": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz", + "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.2.2", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.2.2", + "@babel/types": "^7.2.2", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/@babel/generator": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.2.tgz", + "integrity": "sha512-f3QCuPppXxtZOEm5GWPra/uYUjmNQlu9pbAD8D/9jze4pTY83rTtB1igTBSwvkeNlC5gR24zFFkz+2WHLFQhqQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "node_modules/@babel/generator/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-call-delegate": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", + "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", + "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", + "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", + "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.2.2", + "@babel/types": "^7.2.2", + "lodash": "^4.17.10" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "node_modules/@babel/helper-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz", + "integrity": "sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.2.3", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", + "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.5", + "@babel/types": "^7.3.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.2.tgz", + "integrity": "sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz", + "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", + "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz", + "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz", + "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.10" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz", + "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", + "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", + "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", + "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", + "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz", + "integrity": "sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", + "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz", + "integrity": "sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==", + "dev": true, + "dependencies": { + "@babel/helper-call-delegate": "^7.1.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", + "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.13.3" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", + "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", + "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + } + }, + "node_modules/@babel/polyfill": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.2.5.tgz", + "integrity": "sha512-8Y/t3MWThtMLYr0YNC/Q76tqN1w30+b0uQMeFUYauG2UGTR19zyUtFrAzT23zNtBxPp+LbE5E/nwV/q/r3y6ug==", + "dev": true, + "dependencies": { + "core-js": "^2.5.7", + "regenerator-runtime": "^0.12.0" + } + }, + "node_modules/@babel/polyfill/node_modules/regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", + "dev": true + }, + "node_modules/@babel/preset-env": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.1.tgz", + "integrity": "sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + } + }, + "node_modules/@babel/register": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", + "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, + "node_modules/@babel/register/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/register/node_modules/source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "node_modules/@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.2.tgz", + "integrity": "sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/types/node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/chai": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz", + "integrity": "sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==", + "dev": true + }, + "node_modules/@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz", + "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.1.tgz", + "integrity": "sha512-TBZ6YdX7IZz4U9/mBoB8zCMRN1vXw8QdihRcZxD3I0Cv/r8XF8RggZ8WiXFws4aj5atzRR5hJrYer7g8nXwpnQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.9.3.tgz", + "integrity": "sha512-DMiqG51GwES/c4ScBY0u5bDlH44+oY8AeYHjY1SGCWidD7h08o1dfHue/TGK7REmif2KiJzaUskO+Q0eaeZ2fQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.6.0.tgz", + "integrity": "sha512-iCcXREU4RciLmLniwKLRPCOFVXrkF7z27XuHq5DrykpREv/mz6ztKAyLg2fdkM0hQC7659p5ZF5uStH7uzAJ/w==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "2.6.0", + "eslint-utils": "^1.4.2", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^2.0.1", + "tsutils": "^3.17.1" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.6.0.tgz", + "integrity": "sha512-34BAFpNOwHXeqT+AvdalLxOvcPYnCxA5JGmBAFL64RGMdP0u65rXjii7l/nwpgk5aLEE1LaqF+SsCU0/Cb64xA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.6.0", + "eslint-scope": "^5.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + } + }, + "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.6.0.tgz", + "integrity": "sha512-AvLejMmkcjRTJ2KD72v565W4slSrrzUIzkReu1JN34b8JnsEsxx7S9Xx/qXEuMQas0mkdUfETr0j3zOhq2DIqQ==", + "dev": true, + "dependencies": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.6.0", + "@typescript-eslint/typescript-estree": "2.6.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.0.tgz", + "integrity": "sha512-A3lSBVIdj2Gp0lFEL6in2eSPqJ33uAc3Ko+Y4brhjkxzjbzLnwBH22CwsW2sCo+iwogfIyvb56/AJri15H0u5Q==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "glob": "^7.1.4", + "is-glob": "^4.0.1", + "lodash.unescape": "4.0.1", + "semver": "^6.3.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", + "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", + "dev": true + }, + "node_modules/agent-base": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", + "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "node_modules/ajv/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz", + "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==", + "dev": true, + "dependencies": { + "type-fest": "^0.5.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "dependencies": { + "default-require-extensions": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/arg": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", + "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "dev": true, + "engines": { + "node": ">=0.6.10" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", + "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/backbone": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.4.0.tgz", + "integrity": "sha512-RLmDrRXkVdouTg38jcgHhyQ/2zjg7a8E6sz2zxfz21Hh17xDJYUHBZimVIt5fUyS8vbfpeSmTL3gUjTEvUV3qQ==", + "dev": true, + "dependencies": { + "underscore": ">=1.8.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "node_modules/basic-auth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", + "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-rsa/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/browserify-sign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", + "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30000929", + "electron-to-chromium": "^1.3.103", + "node-releases": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caching-transform": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", + "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", + "dev": true, + "dependencies": { + "hasha": "^3.0.0", + "make-dir": "^2.0.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/caching-transform/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/caching-transform/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30000936", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000936.tgz", + "integrity": "sha512-orX4IdpbFhdNO7bTBhSbahp1EBpqzBc+qrvTRVUFfZgA4zta7TdM6PN5ZxkEUgDnz36m+PfWGcdX7AVfFWItJw==", + "dev": true + }, + "node_modules/chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/chokidar/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/codecov": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.7.1.tgz", + "integrity": "sha512-JHWxyPTkMLLJn9SmKJnwAnvY09kg2Os2+Ux+GG7LwZ9g8gzDDISpIN5wAsH1UBaafA/yGcd3KofMaorE8qd6Lw==", + "dev": true, + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.3", + "js-yaml": "3.13.1", + "teeny-request": "6.0.1", + "urlgrey": "0.4.4" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz", + "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/cp-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", + "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "make-dir": "^2.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^4.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cp-file/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cp-file/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "dev": true, + "dependencies": { + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecstatic": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", + "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==", + "dev": true, + "dependencies": { + "he": "^1.1.1", + "mime": "^1.6.0", + "minimist": "^1.1.0", + "url-join": "^2.0.5" + }, + "bin": { + "ecstatic": "lib/ecstatic.js" + } + }, + "node_modules/ecstatic/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.113", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", + "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/elliptic/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-get-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", + "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", + "dev": true, + "dependencies": { + "es-abstract": "^1.17.4", + "has-symbols": "^1.0.1", + "is-arguments": "^1.0.4", + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + } + }, + "node_modules/es-get-iterator/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.6.0.tgz", + "integrity": "sha512-PpEBq7b6qY/qrOmpYQ/jTMDYfuQMELR4g4WI1M/NaSDDD/bdcMb+dj4Hgks7p41kW2caXsPsEZAEAyAgjVVC0g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + } + }, + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint/node_modules/glob-parent/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint/node_modules/v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, + "node_modules/espree": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", + "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "dev": true, + "dependencies": { + "acorn": "^7.1.0", + "acorn-jsx": "^5.1.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "dependencies": { + "estraverse": "^4.0.0" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "dependencies": { + "estraverse": "^4.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "node_modules/figures": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "dependencies": { + "flat-cache": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "dependencies": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat/node_modules/is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz", + "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "dependencies": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "node_modules/foreground-child/node_modules/cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "node_modules/foreground-child/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/foreground-child/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-extra/node_modules/graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-modules/node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasha": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", + "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", + "dev": true, + "dependencies": { + "is-stream": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "9.16.2", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.16.2.tgz", + "integrity": "sha512-feMUrVLZvjy0oC7FVJQcSQRqbBq9kwqnYE4+Kj9ZjbHh3g+BisiPgF49NyQbVLNdrL/qqZr3Ca9yOKwgn2i/tw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.1.tgz", + "integrity": "sha512-hNX23TjWwD3q56HpWjUHOKj1+4KKlnjv9PcmBUYKVpga+2cnb9nDx/B1o0yO4n+RZXZdiNxzx6B24C9aNMTkkQ==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/http-server": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz", + "integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==", + "dev": true, + "dependencies": { + "basic-auth": "^1.0.3", + "colors": "^1.4.0", + "corser": "^2.0.1", + "ecstatic": "^3.3.2", + "http-proxy": "^1.18.0", + "minimist": "^1.2.5", + "opener": "^1.5.1", + "portfinder": "^1.0.25", + "secure-compare": "3.0.1", + "union": "~0.5.0" + }, + "bin": { + "hs": "bin/http-server", + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/http-server/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/http-server/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "dev": true, + "dependencies": { + "agent-base": "5", + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/https-proxy-agent/node_modules/agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/import-fresh": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/inquirer": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz", + "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/inquirer/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", + "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", + "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", + "dev": true + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-set": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", + "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", + "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "dev": true, + "dependencies": { + "append-transform": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "dev": true, + "dependencies": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", + "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.6.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.4.4" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/parser": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", + "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/template": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", + "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/traverse": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", + "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.3", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.6.3", + "@babel/types": "^7.6.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.0.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/types": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-report/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/istanbul-lib-source-maps/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", + "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/iterate-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", + "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", + "dev": true + }, + "node_modules/iterate-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", + "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", + "dev": true, + "dependencies": { + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" + } + }, + "node_modules/jquery": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.0.tgz", + "integrity": "sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==", + "dev": true + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/loader-utils/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "node_modules/lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lunr": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz", + "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==", + "dev": true + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/midi-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/midi-file/-/midi-file-1.1.2.tgz", + "integrity": "sha512-VQNzirfADDFXTymgPJv2VfLylCq14spRNFhpA6u7dLqPMbw1BqGf5u9B0k7z++8X1RMs57pyn+G4kzhyIatlyw==" + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mocha": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.0.tgz", + "integrity": "sha512-sI0gaI1I/jPVu3KFpnveWGadfe3JNBAENqgTUPgLZAUppu725zS2mrVztzAgIR8DUscuS4doEBTx9LATC+HSeA==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.3.1", + "debug": "3.2.6", + "diff": "4.0.2", + "escape-string-regexp": "1.0.5", + "find-up": "4.1.0", + "glob": "7.1.6", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "ms": "2.1.2", + "object.assign": "4.1.0", + "promise.allsettled": "1.0.2", + "serialize-javascript": "4.0.0", + "strip-json-comments": "3.0.1", + "supports-color": "7.1.0", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.0.0", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.1" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/mocha/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, + "node_modules/nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", + "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", + "dev": true, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-releases": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.7.tgz", + "integrity": "sha512-bKdrwaqJUPHqlCzDD7so/R+Nk0jGv9a11ZhLrD9f6i947qGLrGAhU3OxRENa19QQmwzGy/g6zCDEuLGDO8HPvA==", + "dev": true, + "dependencies": { + "semver": "^5.3.0" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", + "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "caching-transform": "^3.0.2", + "convert-source-map": "^1.6.0", + "cp-file": "^6.2.0", + "find-cache-dir": "^2.1.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.5", + "istanbul-lib-hook": "^2.0.7", + "istanbul-lib-instrument": "^3.3.0", + "istanbul-lib-report": "^2.0.8", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^2.2.4", + "js-yaml": "^3.13.1", + "make-dir": "^2.1.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.3", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.2.3", + "uuid": "^3.3.2", + "yargs": "^13.2.2", + "yargs-parser": "^13.0.0" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/nyc/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/nyc/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/nyc/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "4.0.0", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", + "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "dependencies": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise.allsettled": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", + "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", + "dev": true, + "dependencies": { + "array.prototype.map": "^1.0.1", + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "iterate-value": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.0.7" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", + "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-transform": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", + "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", + "dev": true, + "dependencies": { + "private": "^0.1.6" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true, + "engines": { + "node": ">=6.5.0" + } + }, + "node_modules/regexpu-core": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", + "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true, + "optional": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "dependencies": { + "is-promise": "^2.1.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", + "dev": true + }, + "node_modules/semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shelljs": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "dependencies": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", + "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "node_modules/spawn-wrap": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", + "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", + "dev": true, + "dependencies": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dev": true, + "dependencies": { + "stubs": "^3.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "dev": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "dependencies": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/table/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/table/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tapable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/teeny-request": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-6.0.1.tgz", + "integrity": "sha512-TAK0c9a00ELOqLrZ49cFxvPVogMUFaWY8dUsQc/0CuQPGF+BOxOQzXfE413BAk2kLomwNplvdtMpeaeGWmoc2g==", + "dev": true, + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^4.0.0", + "node-fetch": "^2.2.0", + "stream-events": "^1.0.5", + "uuid": "^3.3.2" + } + }, + "node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "dev": true, + "dependencies": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/test-exclude/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-loader": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.4.5.tgz", + "integrity": "sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw==", + "dev": true, + "dependencies": { + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^3.1.4", + "semver": "^5.0.1" + }, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/ts-node": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.1.0.tgz", + "integrity": "sha512-34jpuOrxDuf+O6iW1JpgTRDFynUZ1iEqtYruBqh35gICNjN8x+LpVcPAcwzLPi9VU6mdA3ym+x233nZmZp445A==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", + "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedoc": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.15.0.tgz", + "integrity": "sha512-NOtfq5Tis4EFt+J2ozhVq9RCeUnfEYMFKoU6nCXCXUULJz1UQynOM+yH3TkfZCPLzigbqB0tQYGVlktUWweKlw==", + "dev": true, + "dependencies": { + "@types/minimatch": "3.0.3", + "fs-extra": "^8.1.0", + "handlebars": "^4.1.2", + "highlight.js": "^9.15.8", + "lodash": "^4.17.15", + "marked": "^0.7.0", + "minimatch": "^3.0.0", + "progress": "^2.0.3", + "shelljs": "^0.8.3", + "typedoc-default-themes": "^0.6.0", + "typescript": "3.5.x" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/typedoc-default-themes": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.6.0.tgz", + "integrity": "sha512-MdTROOojxod78CEv22rIA69o7crMPLnVZPefuDLt/WepXqJwgiSu8Xxq+H36x0Jj3YGc7lOglI2vPJ2GhoOybw==", + "dev": true, + "dependencies": { + "backbone": "^1.4.0", + "jquery": "^3.4.1", + "lunr": "^2.3.6", + "underscore": "^1.9.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/typedoc/node_modules/typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typescript": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", + "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.1.tgz", + "integrity": "sha512-W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw==", + "dev": true, + "optional": true, + "dependencies": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-js/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", + "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", + "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "dependencies": { + "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-join": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", + "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", + "dev": true + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/urlgrey": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", + "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.0" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + }, + "engines": { + "node": "<8.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchpack/node_modules/chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "engines": { + "node": ">= 8.10.0" + } + }, + "node_modules/watchpack/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchpack/node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/watchpack/node_modules/readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/watchpack/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/webpack": { + "version": "4.44.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", + "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/webpack-cli": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", + "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.1", + "findup-sync": "^3.0.0", + "global-modules": "^2.0.0", + "import-local": "^2.0.0", + "interpret": "^1.4.0", + "loader-utils": "^1.4.0", + "supports-color": "^6.1.0", + "v8-compile-cache": "^2.1.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/webpack-cli/node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-cli/node_modules/enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/webpack-cli/node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/webpack-cli/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-cli/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack-cli/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack/node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/webpack/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/workerpool": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", + "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-unparser": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz", + "integrity": "sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "decamelize": "^1.2.0", + "flat": "^4.1.0", + "is-plain-obj": "^1.1.0", + "yargs": "^14.2.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/yargs-unparser/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/yargs": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", + "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" + } + }, + "node_modules/yargs-unparser/node_modules/yargs-parser": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", + "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz", + "integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==", + "dev": true, + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz", + "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.2.2", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.2.2", + "@babel/types": "^7.2.2", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.2.tgz", + "integrity": "sha512-f3QCuPppXxtZOEm5GWPra/uYUjmNQlu9pbAD8D/9jze4pTY83rTtB1igTBSwvkeNlC5gR24zFFkz+2WHLFQhqQ==", + "dev": true, + "requires": { + "@babel/types": "^7.3.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-call-delegate": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", + "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + } + } + }, + "@babel/helper-define-map": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", + "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", + "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", + "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.2.2", + "@babel/types": "^7.2.2", + "lodash": "^4.17.10" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz", + "integrity": "sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.2.3", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + } + }, + "@babel/helpers": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", + "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==", + "dev": true, + "requires": { + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.5", + "@babel/types": "^7.3.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.2.tgz", + "integrity": "sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz", + "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", + "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.2.0" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz", + "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz", + "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.10" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz", + "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", + "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", + "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", + "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", + "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz", + "integrity": "sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", + "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz", + "integrity": "sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.1.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", + "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", + "dev": true, + "requires": { + "regenerator-transform": "^0.13.3" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", + "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", + "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + } + }, + "@babel/polyfill": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.2.5.tgz", + "integrity": "sha512-8Y/t3MWThtMLYr0YNC/Q76tqN1w30+b0uQMeFUYauG2UGTR19zyUtFrAzT23zNtBxPp+LbE5E/nwV/q/r3y6ug==", + "dev": true, + "requires": { + "core-js": "^2.5.7", + "regenerator-runtime": "^0.12.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", + "dev": true + } + } + }, + "@babel/preset-env": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.1.tgz", + "integrity": "sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + } + }, + "@babel/register": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", + "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "@babel/traverse": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.2.tgz", + "integrity": "sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/chai": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz", + "integrity": "sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==", + "dev": true + }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz", + "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/mocha": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.1.tgz", + "integrity": "sha512-TBZ6YdX7IZz4U9/mBoB8zCMRN1vXw8QdihRcZxD3I0Cv/r8XF8RggZ8WiXFws4aj5atzRR5hJrYer7g8nXwpnQ==", + "dev": true + }, + "@types/node": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.9.3.tgz", + "integrity": "sha512-DMiqG51GwES/c4ScBY0u5bDlH44+oY8AeYHjY1SGCWidD7h08o1dfHue/TGK7REmif2KiJzaUskO+Q0eaeZ2fQ==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.6.0.tgz", + "integrity": "sha512-iCcXREU4RciLmLniwKLRPCOFVXrkF7z27XuHq5DrykpREv/mz6ztKAyLg2fdkM0hQC7659p5ZF5uStH7uzAJ/w==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "2.6.0", + "eslint-utils": "^1.4.2", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^2.0.1", + "tsutils": "^3.17.1" + }, + "dependencies": { + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.6.0.tgz", + "integrity": "sha512-34BAFpNOwHXeqT+AvdalLxOvcPYnCxA5JGmBAFL64RGMdP0u65rXjii7l/nwpgk5aLEE1LaqF+SsCU0/Cb64xA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.6.0", + "eslint-scope": "^5.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.6.0.tgz", + "integrity": "sha512-AvLejMmkcjRTJ2KD72v565W4slSrrzUIzkReu1JN34b8JnsEsxx7S9Xx/qXEuMQas0mkdUfETr0j3zOhq2DIqQ==", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.6.0", + "@typescript-eslint/typescript-estree": "2.6.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.0.tgz", + "integrity": "sha512-A3lSBVIdj2Gp0lFEL6in2eSPqJ33uAc3Ko+Y4brhjkxzjbzLnwBH22CwsW2sCo+iwogfIyvb56/AJri15H0u5Q==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "glob": "^7.1.4", + "is-glob": "^4.0.1", + "lodash.unescape": "4.0.1", + "semver": "^6.3.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "dev": true + }, + "acorn-jsx": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", + "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", + "dev": true + }, + "agent-base": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", + "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", + "dev": true, + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + } + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.2.1.tgz", + "integrity": "sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==", + "dev": true, + "requires": { + "type-fest": "^0.5.2" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "arg": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", + "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", + "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.4" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "backbone": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.4.0.tgz", + "integrity": "sha512-RLmDrRXkVdouTg38jcgHhyQ/2zjg7a8E6sz2zxfz21Hh17xDJYUHBZimVIt5fUyS8vbfpeSmTL3gUjTEvUV3qQ==", + "dev": true, + "requires": { + "underscore": ">=1.8.3" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "basic-auth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", + "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "browserify-sign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", + "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000929", + "electron-to-chromium": "^1.3.103", + "node-releases": "^1.1.3" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caching-transform": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", + "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", + "dev": true, + "requires": { + "hasha": "^3.0.0", + "make-dir": "^2.0.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.4.2" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000936", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000936.tgz", + "integrity": "sha512-orX4IdpbFhdNO7bTBhSbahp1EBpqzBc+qrvTRVUFfZgA4zta7TdM6PN5ZxkEUgDnz36m+PfWGcdX7AVfFWItJw==", + "dev": true + }, + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "codecov": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.7.1.tgz", + "integrity": "sha512-JHWxyPTkMLLJn9SmKJnwAnvY09kg2Os2+Ux+GG7LwZ9g8gzDDISpIN5wAsH1UBaafA/yGcd3KofMaorE8qd6Lw==", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.3", + "js-yaml": "3.13.1", + "teeny-request": "6.0.1", + "urlgrey": "0.4.4" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz", + "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", + "dev": true + }, + "cp-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", + "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^2.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^4.0.1", + "safe-buffer": "^5.0.1" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "dev": true, + "requires": { + "strip-bom": "^3.0.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecstatic": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", + "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==", + "dev": true, + "requires": { + "he": "^1.1.1", + "mime": "^1.6.0", + "minimist": "^1.1.0", + "url-join": "^2.0.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "electron-to-chromium": { + "version": "1.3.113", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", + "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "es-get-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", + "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", + "dev": true, + "requires": { + "es-abstract": "^1.17.4", + "has-symbols": "^1.0.1", + "is-arguments": "^1.0.4", + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.6.0.tgz", + "integrity": "sha512-PpEBq7b6qY/qrOmpYQ/jTMDYfuQMELR4g4WI1M/NaSDDD/bdcMb+dj4Hgks7p41kW2caXsPsEZAEAyAgjVVC0g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + }, + "dependencies": { + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", + "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "dev": true, + "requires": { + "acorn": "^7.1.0", + "acorn-jsx": "^5.1.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + } + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz", + "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + } + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + }, + "dependencies": { + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + } + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasha": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", + "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", + "dev": true, + "requires": { + "is-stream": "^1.0.1" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "highlight.js": { + "version": "9.16.2", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.16.2.tgz", + "integrity": "sha512-feMUrVLZvjy0oC7FVJQcSQRqbBq9kwqnYE4+Kj9ZjbHh3g+BisiPgF49NyQbVLNdrL/qqZr3Ca9yOKwgn2i/tw==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "html-escaper": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.1.tgz", + "integrity": "sha512-hNX23TjWwD3q56HpWjUHOKj1+4KKlnjv9PcmBUYKVpga+2cnb9nDx/B1o0yO4n+RZXZdiNxzx6B24C9aNMTkkQ==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "http-server": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz", + "integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==", + "dev": true, + "requires": { + "basic-auth": "^1.0.3", + "colors": "^1.4.0", + "corser": "^2.0.1", + "ecstatic": "^3.3.2", + "http-proxy": "^1.18.0", + "minimist": "^1.2.5", + "opener": "^1.5.1", + "portfinder": "^1.0.25", + "secure-compare": "3.0.1", + "union": "~0.5.0" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "dev": true, + "requires": { + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz", + "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", + "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", + "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-set": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", + "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", + "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "dev": true, + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "dev": true, + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", + "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", + "dev": true, + "requires": { + "@babel/types": "^7.6.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/parser": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", + "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", + "dev": true + }, + "@babel/template": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", + "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.0" + } + }, + "@babel/traverse": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", + "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.3", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.6.3", + "@babel/types": "^7.6.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + } + } + }, + "@babel/types": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", + "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0" + } + }, + "iterate-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", + "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", + "dev": true + }, + "iterate-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", + "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", + "dev": true, + "requires": { + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" + } + }, + "jquery": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.0.tgz", + "integrity": "sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==", + "dev": true + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", + "dev": true + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "lunr": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz", + "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "midi-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/midi-file/-/midi-file-1.1.2.tgz", + "integrity": "sha512-VQNzirfADDFXTymgPJv2VfLylCq14spRNFhpA6u7dLqPMbw1BqGf5u9B0k7z++8X1RMs57pyn+G4kzhyIatlyw==" + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "mocha": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.0.tgz", + "integrity": "sha512-sI0gaI1I/jPVu3KFpnveWGadfe3JNBAENqgTUPgLZAUppu725zS2mrVztzAgIR8DUscuS4doEBTx9LATC+HSeA==", + "dev": true, + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.3.1", + "debug": "3.2.6", + "diff": "4.0.2", + "escape-string-regexp": "1.0.5", + "find-up": "4.1.0", + "glob": "7.1.6", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "ms": "2.1.2", + "object.assign": "4.1.0", + "promise.allsettled": "1.0.2", + "serialize-javascript": "4.0.0", + "strip-json-comments": "3.0.1", + "supports-color": "7.1.0", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.0.0", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, + "nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", + "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-releases": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.7.tgz", + "integrity": "sha512-bKdrwaqJUPHqlCzDD7so/R+Nk0jGv9a11ZhLrD9f6i947qGLrGAhU3OxRENa19QQmwzGy/g6zCDEuLGDO8HPvA==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "nyc": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", + "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "caching-transform": "^3.0.2", + "convert-source-map": "^1.6.0", + "cp-file": "^6.2.0", + "find-cache-dir": "^2.1.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.5", + "istanbul-lib-hook": "^2.0.7", + "istanbul-lib-instrument": "^3.3.0", + "istanbul-lib-report": "^2.0.8", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^2.2.4", + "js-yaml": "^3.13.1", + "make-dir": "^2.1.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.3", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.2.3", + "uuid": "^3.3.2", + "yargs": "^13.2.2", + "yargs-parser": "^13.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + } + } + }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "dev": true + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "package-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", + "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise.allsettled": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", + "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", + "dev": true, + "requires": { + "array.prototype.map": "^1.0.1", + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "iterate-value": "^1.0.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.7" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", + "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-transform": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", + "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "regexpu-core": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", + "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true, + "optional": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + } + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", + "dev": true + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shelljs": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", + "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spawn-wrap": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", + "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", + "dev": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tapable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", + "dev": true + }, + "teeny-request": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-6.0.1.tgz", + "integrity": "sha512-TAK0c9a00ELOqLrZ49cFxvPVogMUFaWY8dUsQc/0CuQPGF+BOxOQzXfE413BAk2kLomwNplvdtMpeaeGWmoc2g==", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^4.0.0", + "node-fetch": "^2.2.0", + "stream-events": "^1.0.5", + "uuid": "^3.3.2" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "dev": true, + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + }, + "dependencies": { + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "ts-loader": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.4.5.tgz", + "integrity": "sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^3.1.4", + "semver": "^5.0.1" + } + }, + "ts-node": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.1.0.tgz", + "integrity": "sha512-34jpuOrxDuf+O6iW1JpgTRDFynUZ1iEqtYruBqh35gICNjN8x+LpVcPAcwzLPi9VU6mdA3ym+x233nZmZp445A==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + } + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", + "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedoc": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.15.0.tgz", + "integrity": "sha512-NOtfq5Tis4EFt+J2ozhVq9RCeUnfEYMFKoU6nCXCXUULJz1UQynOM+yH3TkfZCPLzigbqB0tQYGVlktUWweKlw==", + "dev": true, + "requires": { + "@types/minimatch": "3.0.3", + "fs-extra": "^8.1.0", + "handlebars": "^4.1.2", + "highlight.js": "^9.15.8", + "lodash": "^4.17.15", + "marked": "^0.7.0", + "minimatch": "^3.0.0", + "progress": "^2.0.3", + "shelljs": "^0.8.3", + "typedoc-default-themes": "^0.6.0", + "typescript": "3.5.x" + }, + "dependencies": { + "typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true + } + } + }, + "typedoc-default-themes": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.6.0.tgz", + "integrity": "sha512-MdTROOojxod78CEv22rIA69o7crMPLnVZPefuDLt/WepXqJwgiSu8Xxq+H36x0Jj3YGc7lOglI2vPJ2GhoOybw==", + "dev": true, + "requires": { + "backbone": "^1.4.0", + "jquery": "^3.4.1", + "lunr": "^2.3.6", + "underscore": "^1.9.1" + } + }, + "typescript": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", + "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", + "dev": true + }, + "uglify-js": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.1.tgz", + "integrity": "sha512-W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", + "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", + "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", + "dev": true + }, + "union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "requires": { + "qs": "^6.4.0" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-join": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", + "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", + "dev": true + }, + "urlgrey": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", + "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "webpack": { + "version": "4.44.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", + "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + } + } + }, + "webpack-cli": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", + "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.1", + "findup-sync": "^3.0.0", + "global-modules": "^2.0.0", + "import-local": "^2.0.0", + "interpret": "^1.4.0", + "loader-utils": "^1.4.0", + "supports-color": "^6.1.0", + "v8-compile-cache": "^2.1.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "workerpool": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", + "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz", + "integrity": "sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "decamelize": "^1.2.0", + "flat": "^4.1.0", + "is-plain-obj": "^1.1.0", + "yargs": "^14.2.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "yargs": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", + "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" + } + }, + "yargs-parser": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", + "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz", + "integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d48e216 --- /dev/null +++ b/package.json @@ -0,0 +1,91 @@ +{ + "name": "@tonejs/midi", + "version": "2.0.0", + "description": "Convert binary midi into JSON", + "main": "build/Midi.js", + "module": "dist/Midi.js", + "jsnext:main": "dist/Midi.js", + "types": "dist/Midi.d.ts", + "scripts": { + "build": "tsc && webpack -p --mode=production", + "codecov": "nyc report --reporter=text-lcov > coverage.lcov && codecov", + "docs": "typedoc", + "increment": "node scripts/increment_version.js", + "lint": "eslint --ext ts ./src", + "lint:fix": "npm run lint -- --fix", + "watch": "webpack -w --mode=development", + "test": "nyc mocha --timeout=10000 --require ts-node/register ./test/*.ts" + }, + "files": [ + "build", + "dist", + "src", + "LICENSE.md", + "README.md" + ], + "repository": { + "type": "git", + "url": "https://github.com/Tonejs/Midi.git" + }, + "author": "Yotam Mann", + "license": "MIT", + "bugs": { + "url": "https://github.com/Tonejs/Midi/issues" + }, + "homepage": "https://tonejs.github.com/Midi/", + "devDependencies": { + "@babel/core": "^7.2.2", + "@babel/polyfill": "^7.2.5", + "@babel/preset-env": "^7.3.1", + "@babel/register": "^7.9.0", + "@types/chai": "^4.1.7", + "@types/mocha": "^8.0.1", + "@types/node": "^11.9.3", + "@typescript-eslint/eslint-plugin": "^2.6.0", + "@typescript-eslint/parser": "^2.6.0", + "chai": "^4.2.0", + "codecov": "^3.2.0", + "eslint": "^6.6.0", + "glob": "^7.1.3", + "http-server": "^0.12.3", + "mocha": "^8.1.0", + "node-fetch": "^2.3.0", + "nyc": "^14.1.1", + "semver": "^5.6.0", + "source-map-support": "^0.5.12", + "ts-loader": "^5.4.5", + "ts-node": "^8.1.0", + "typedoc": "^0.15.0", + "typescript": "^3.7.2", + "webpack": "^4.44.1", + "webpack-cli": "^3.3.12" + }, + "dependencies": { + "array-flatten": "^2.1.2", + "midi-file": "^1.1.2" + }, + "nyc": { + "include": [ + "src/**/*.ts" + ], + "extension": [ + ".ts" + ], + "require": [ + "ts-node/register" + ], + "reporter": [ + "lcov", + "html" + ], + "sourceMap": true, + "instrument": true + }, + "prettier": { + "trailingComma": "es5", + "tabWidth": 4, + "semi": true, + "useTabs": true, + "singleQuote": false + } +} diff --git a/scripts/increment_version.js b/scripts/increment_version.js new file mode 100644 index 0000000..f9b74bf --- /dev/null +++ b/scripts/increment_version.js @@ -0,0 +1,28 @@ +const fs = require('fs') +const semver = require('semver') +const { resolve } = require('path') +const child_process = require('child_process') + +const masterVersion = child_process.execSync('npm show @tonejs/midi version').toString() + +let version = masterVersion.split('.') +//increment the patch +version[2] = parseInt(version[2]) + 1 +//put it back in semver +version = version.join('.') + +//write it to the package.json +const packageFile = resolve(__dirname, '../package.json') +const packageObj = JSON.parse(fs.readFileSync(packageFile, 'utf-8')) + +//if the package version if the latest, go with that one +if (semver.gt(packageObj.version, version)){ + version = packageObj.version +} + +console.log(`incrementing to version ${version}`) +packageObj.version = version +//only if it's travis, update the package.json +if (process.env.TRAVIS){ + fs.writeFileSync(packageFile, JSON.stringify(packageObj, undefined, ' ')) +} diff --git a/src/BinarySearch.ts b/src/BinarySearch.ts new file mode 100644 index 0000000..931c143 --- /dev/null +++ b/src/BinarySearch.ts @@ -0,0 +1,51 @@ +/** + * Return the index of the element at or before the given property + * @hidden + */ +export function search(array: any[], value: any, prop= "ticks"): number { + let beginning = 0; + const len = array.length; + let end = len; + if (len > 0 && array[len - 1][prop] <= value) { + return len - 1; + } + while (beginning < end) { + // calculate the midpoint for roughly equal partition + let midPoint = Math.floor(beginning + (end - beginning) / 2); + const event = array[midPoint]; + const nextEvent = array[midPoint + 1]; + if (event[prop] === value) { + // choose the last one that has the same value + for (let i = midPoint; i < array.length; i++) { + const testEvent = array[i]; + if (testEvent[prop] === value) { + midPoint = i; + } + } + return midPoint; + } else if (event[prop] < value && nextEvent[prop] > value) { + return midPoint; + } else if (event[prop] > value) { + // search lower + end = midPoint; + } else if (event[prop] < value) { + // search upper + beginning = midPoint + 1; + } + } + return -1; +} + +/** + * Does a binary search to insert the note + * in the correct spot in the array + * @hidden + */ +export function insert(array: any[], event: object, prop = "ticks"): void { + if (array.length) { + const index = search(array, event[prop], prop); + array.splice(index + 1, 0, event); + } else { + array.push(event); + } +} diff --git a/src/ControlChange.ts b/src/ControlChange.ts new file mode 100644 index 0000000..9752974 --- /dev/null +++ b/src/ControlChange.ts @@ -0,0 +1,124 @@ +import { Header } from "./Header"; +import { MidiControllerEvent } from "midi-file"; + +/** + * @hidden + */ +export type ControlChangeName = "modulationWheel" | "breath" | "footController" | "portamentoTime" | "volume" | "balance" | "pan" | "sustain" | "portamentoTime" | "sostenuto" | "softPedal" | "legatoFootswitch" | "portamentoControl"; + +interface ControlChangeMap { + [key: number]: ControlChangeName; +} +/** + * A map of values to control change names + * @hidden + */ +export const controlChangeNames: ControlChangeMap = { + 1: "modulationWheel", + 2: "breath", + 4: "footController", + 5: "portamentoTime", + 7: "volume", + 8: "balance", + 10: "pan", + 64: "sustain", + 65: "portamentoTime", + 66: "sostenuto", + 67: "softPedal", + 68: "legatoFootswitch", + 84: "portamentoControl", +}; + +/** + * swap the keys and values + * @hidden + */ +export const controlChangeIds = Object.keys(controlChangeNames).reduce((obj, key) => { + obj[controlChangeNames[key]] = key; + return obj; +}, {}); + +const privateHeaderMap = new WeakMap(); +const privateCCNumberMap = new WeakMap(); + +/** + * Represents a control change event + */ +export class ControlChange implements ControlChangeInterface { + + /** + * The number value of the event + */ + value: number; + + /** + * The tick time of the event + */ + ticks: number; + + /** + * @param event + * @param header + */ + constructor(event: Partial, header: Header) { + privateHeaderMap.set(this, header); + privateCCNumberMap.set(this, event.controllerType); + + this.ticks = event.absoluteTime; + this.value = event.value; + } + + /** + * The controller number + */ + get number(): number { + return privateCCNumberMap.get(this); + } + + /** + * return the common name of the control number if it exists + */ + get name(): ControlChangeName { + if (controlChangeNames[this.number]) { + return controlChangeNames[this.number]; + } else { + return null; + } + } + + /** + * The time of the event in seconds + */ + get time(): number { + const header = privateHeaderMap.get(this); + return header.ticksToSeconds(this.ticks); + } + + set time(t: number) { + const header = privateHeaderMap.get(this); + this.ticks = header.secondsToTicks(t); + } + + toJSON(): ControlChangeJSON { + return { + number: this.number, + ticks: this.ticks, + time: this.time, + value: this.value, + }; + } +} + +export interface ControlChangeJSON { + number: number; + ticks: number; + time: number; + value: number; +} + +export interface ControlChangeInterface { + number: number; + ticks: number; + time: number; + value: number; +} diff --git a/src/ControlChanges.ts b/src/ControlChanges.ts new file mode 100644 index 0000000..1c5bcfe --- /dev/null +++ b/src/ControlChanges.ts @@ -0,0 +1,38 @@ +import { controlChangeIds } from "./ControlChange"; +import { ControlChange, ControlChangeJSON } from "./ControlChange"; + +export interface ControlChanges { + [key: string]: ControlChange[]; + [key: number]: ControlChange[]; +} + +export interface ControlChangesJSON { + [key: string]: ControlChangeJSON[]; + [key: number]: ControlChangeJSON[]; +} + +/** + * Automatically creates an alias for named control values using Proxies + * @hidden + */ +export function createControlChanges(): ControlChanges { + return new Proxy({}, { + // tslint:disable-next-line: typedef + get(target, handler) { + if (target[handler]) { + return target[handler]; + } else if (controlChangeIds.hasOwnProperty(handler)) { + return target[controlChangeIds[handler]]; + } + }, + // tslint:disable-next-line: typedef + set(target, handler, value) { + if (controlChangeIds.hasOwnProperty(handler)) { + target[controlChangeIds[handler]] = value; + } else { + target[handler] = value; + } + return true; + }, + }); +} diff --git a/src/Encode.ts b/src/Encode.ts new file mode 100644 index 0000000..02f5cf0 --- /dev/null +++ b/src/Encode.ts @@ -0,0 +1,210 @@ +import { MidiPitchBendEvent, writeMidi } from "midi-file"; +import { MidiControllerEvent, MidiData, MidiEndOfTrackEvent, + MidiInstrumentEvent, MidiKeySignatureEvent, MidiNoteOffEvent, + MidiNoteOnEvent, MidiTempoEvent, MidiTextEvent, MidiTimeSignatureEvent, MidiTrackNameEvent } from "midi-file"; +import { ControlChange } from "./ControlChange"; +import { PitchBend } from "./PitchBend"; +import { KeySignatureEvent, keySignatureKeys, MetaEvent, TempoEvent, TimeSignatureEvent } from "./Header"; +import { Midi } from "./Midi"; +import { Note } from "./Note"; +import { Track } from "./Track"; +import flatten from "array-flatten"; + +function encodeNote(note: Note, channel: number): [MidiNoteOnEvent, MidiNoteOffEvent] { + return [{ + absoluteTime: note.ticks, + channel, + deltaTime: 0, + noteNumber: note.midi, + type: "noteOn", + velocity: Math.floor(note.velocity * 127), + }, + { + absoluteTime: note.ticks + note.durationTicks, + channel, + deltaTime: 0, + noteNumber: note.midi, + type: "noteOff", + velocity: Math.floor(note.noteOffVelocity * 127), + }]; +} + +function encodeNotes(track: Track): Array { + return flatten(track.notes.map(note => encodeNote(note, track.channel))) as unknown as Array; +} + +function encodeControlChange(cc: ControlChange, channel: number): MidiControllerEvent { + return { + absoluteTime: cc.ticks, + channel, + controllerType: cc.number, + deltaTime: 0, + type: "controller", + value: Math.floor(cc.value * 127), + }; +} + +function encodeControlChanges(track: Track): MidiControllerEvent[] { + const controlChanges: MidiControllerEvent[] = []; + for (let i = 0; i < 127; i++) { + if (track.controlChanges.hasOwnProperty(i)) { + track.controlChanges[i].forEach((cc: ControlChange) => { + controlChanges.push(encodeControlChange(cc, track.channel)); + }); + } + } + return controlChanges; +} + +function encodePitchBend(pb: PitchBend, channel: number): MidiPitchBendEvent { + return { + absoluteTime: pb.ticks, + channel, + deltaTime: 0, + type: "pitchBend", + value: pb.value, + }; +} + +function encodePitchBends(track: Track): MidiPitchBendEvent[] { + const pitchBends: MidiPitchBendEvent[] = []; + track.pitchBends.forEach((pb: PitchBend) => { + pitchBends.push(encodePitchBend(pb, track.channel)); + }); + return pitchBends; +} + +function encodeInstrument(track: Track): MidiInstrumentEvent { + return { + absoluteTime: 0, + channel: track.channel, + deltaTime: 0, + programNumber: track.instrument.number, + type: "programChange", + }; +} + +function encodeTrackName(name: string): MidiTrackNameEvent { + return { + absoluteTime: 0, + deltaTime: 0, + meta: true, + text: name, + type: "trackName", + }; +} + +function encodeTempo(tempo: TempoEvent): MidiTempoEvent { + return { + absoluteTime: tempo.ticks, + deltaTime: 0, + meta: true, + microsecondsPerBeat: Math.floor(60000000 / tempo.bpm), + type: "setTempo", + }; +} + +function encodeTimeSignature(timeSig: TimeSignatureEvent): MidiTimeSignatureEvent { + return { + absoluteTime: timeSig.ticks, + deltaTime: 0, + denominator: timeSig.timeSignature[1], + meta: true, + metronome: 24, + numerator: timeSig.timeSignature[0], + thirtyseconds: 8, + type: "timeSignature", + }; +} + +// function encodeMeta(event: ) + +function encodeKeySignature(keySig: KeySignatureEvent): MidiKeySignatureEvent { + const keyIndex = keySignatureKeys.indexOf(keySig.key); + return { + absoluteTime: keySig.ticks, + deltaTime: 0, + key: keyIndex + 7, + meta: true, + scale: keySig.scale === "major" ? 0 : 1, + type: "keySignature", + }; +} + +function encodeText(textEvent: MetaEvent): MidiTextEvent { + return { + absoluteTime: textEvent.ticks, + deltaTime: 0, + meta: true, + text: textEvent.text, + type: textEvent.type, + } as MidiTextEvent; +} + +/** + * Convert the midi object to an array + */ +export function encode(midi: Midi): Uint8Array { + const midiData: MidiData = { + header: { + format: 1, + numTracks: midi.tracks.length + 1, + ticksPerBeat: midi.header.ppq, + }, + tracks: [ + [ + // the name data + { + absoluteTime: 0, + deltaTime: 0, + meta: true, + text: midi.header.name, + type: "trackName", + } as MidiTrackNameEvent, + ...midi.header.keySignatures.map(keySig => encodeKeySignature(keySig)), + // and all the meta events (cloned for safety) + ...midi.header.meta.map(e => encodeText(e)), + // the first track is all the tempo data + ...midi.header.tempos.map(tempo => encodeTempo(tempo)), + // and the time signature data + ...midi.header.timeSignatures.map(timeSig => encodeTimeSignature(timeSig)), + ], + // the remaining tracks + ...midi.tracks.map(track => { + return [ + // add the name + encodeTrackName(track.name), + // the instrument + encodeInstrument(track), + // add the notes + ...encodeNotes(track), + // and the control changes + ...encodeControlChanges(track), + // and the pitch bends + ...encodePitchBends(track) + ]; + }), + ], + }; + + // sort and set deltaTime of all of the tracks + midiData.tracks = midiData.tracks.map(track => { + track = track.sort((a, b) => a.absoluteTime - b.absoluteTime); + let lastTime = 0; + track.forEach(note => { + note.deltaTime = note.absoluteTime - lastTime; + lastTime = note.absoluteTime; + delete note.absoluteTime; + }); + // end of track + track.push({ + deltaTime: 0, + meta: true, + type: "endOfTrack", + } as MidiEndOfTrackEvent); + return track; + }); + + // return midiData + return new Uint8Array(writeMidi(midiData)); +} diff --git a/src/Header.ts b/src/Header.ts new file mode 100644 index 0000000..725c22b --- /dev/null +++ b/src/Header.ts @@ -0,0 +1,293 @@ +import { MidiData } from "midi-file"; +import { search } from "./BinarySearch"; + +const privatePPQMap = new WeakMap(); + +export interface TempoEvent { + ticks: number; + bpm: number; + time?: number; +} + +export interface TimeSignatureEvent { + ticks: number; + timeSignature: number[]; + measures?: number; +} + +export interface MetaEvent { + text: string; + type: string; + ticks: number; +} + +export interface KeySignatureEvent { + ticks: number; + key: string; + scale: string; +} + +/** + * @hidden + */ +export const keySignatureKeys = [ + "Cb", + "Gb", + "Db", + "Ab", + "Eb", + "Bb", + "F", + "C", + "G", + "D", + "A", + "E", + "B", + "F#", + "C#", +]; + +/** The parsed midi file header */ +export class Header { + /** + * The array of all the tempo events + */ + tempos: TempoEvent[] = []; + + /** + * The time signatures + */ + timeSignatures: TimeSignatureEvent[] = []; + + /** + * The time signatures + */ + keySignatures: KeySignatureEvent[] = []; + + /** + * Additional meta events + */ + meta: MetaEvent[] = []; + + /** + * The name of the midi file + */ + name = ""; + + constructor(midiData?: MidiData) { + // look through all the tracks for tempo changes + + privatePPQMap.set(this, 480); + + if (midiData) { + privatePPQMap.set(this, midiData.header.ticksPerBeat); + // check time signature and tempo events from all of the tracks + midiData.tracks.forEach((track) => + track.forEach((event) => { + if (event.meta) { + if (event.type === "timeSignature") { + this.timeSignatures.push({ + ticks: event.absoluteTime, + timeSignature: [ + event.numerator, + event.denominator, + ], + }); + } else if (event.type === "setTempo") { + this.tempos.push({ + bpm: 60000000 / event.microsecondsPerBeat, + ticks: event.absoluteTime, + }); + } else if (event.type === "keySignature") { + this.keySignatures.push({ + key: keySignatureKeys[event.key + 7], + scale: event.scale === 0 ? "major" : "minor", + ticks: event.absoluteTime, + }); + } + } + }) + ); + // check the first track for other relevant data + midiData.tracks[0].forEach((event) => { + if (event.meta) { + if (event.type === "trackName") { + this.name = event.text; + } else if ( + event.type === "text" || + event.type === "cuePoint" || + event.type === "marker" || + event.type === "lyrics" + ) { + this.meta.push({ + text: event.text, + ticks: event.absoluteTime, + type: event.type, + }); + } + } + }); + this.update(); + } + } + + /** + * This must be invoked after any changes are made to the tempo array + * or the timeSignature array for the updated values to be reflected. + */ + update(): void { + let currentTime = 0; + let lastEventBeats = 0; + // make sure it's sorted + this.tempos.sort((a, b) => a.ticks - b.ticks); + this.tempos.forEach((event, index) => { + const lastBPM = + index > 0 ? this.tempos[index - 1].bpm : this.tempos[0].bpm; + const beats = event.ticks / this.ppq - lastEventBeats; + const elapsedSeconds = (60 / lastBPM) * beats; + event.time = elapsedSeconds + currentTime; + currentTime = event.time; + lastEventBeats += beats; + }); + this.timeSignatures.sort((a, b) => a.ticks - b.ticks); + this.timeSignatures.forEach((event, index) => { + const lastEvent = + index > 0 + ? this.timeSignatures[index - 1] + : this.timeSignatures[0]; + const elapsedBeats = (event.ticks - lastEvent.ticks) / this.ppq; + const elapsedMeasures = + elapsedBeats / + lastEvent.timeSignature[0] / + (lastEvent.timeSignature[1] / 4); + lastEvent.measures = lastEvent.measures || 0; + event.measures = elapsedMeasures + lastEvent.measures; + }); + } + + /** + * Convert ticks into seconds based on the tempo changes + */ + ticksToSeconds(ticks: number): number { + // find the relevant position + const index = search(this.tempos, ticks); + if (index !== -1) { + const tempo = this.tempos[index]; + const tempoTime = tempo.time; + const elapsedBeats = (ticks - tempo.ticks) / this.ppq; + return tempoTime + (60 / tempo.bpm) * elapsedBeats; + } else { + // assume 120 + const beats = ticks / this.ppq; + return (60 / 120) * beats; + } + } + + /** + * Convert ticks into measures based off of the time signatures + */ + ticksToMeasures(ticks: number): number { + const index = search(this.timeSignatures, ticks); + if (index !== -1) { + const timeSigEvent = this.timeSignatures[index]; + const elapsedBeats = (ticks - timeSigEvent.ticks) / this.ppq; + return ( + timeSigEvent.measures + + elapsedBeats / + (timeSigEvent.timeSignature[0] / + timeSigEvent.timeSignature[1]) / + 4 + ); + } else { + return ticks / this.ppq / 4; + } + } + + /** + * The number of ticks per quarter note + */ + get ppq(): number { + return privatePPQMap.get(this); + } + + /** + * Convert seconds to ticks based on the tempo events + */ + secondsToTicks(seconds: number): number { + // find the relevant position + const index = search(this.tempos, seconds, "time"); + if (index !== -1) { + const tempo = this.tempos[index]; + const tempoTime = tempo.time; + const elapsedTime = seconds - tempoTime; + const elapsedBeats = elapsedTime / (60 / tempo.bpm); + return Math.round(tempo.ticks + elapsedBeats * this.ppq); + } else { + // assume 120 + const beats = seconds / (60 / 120); + return Math.round(beats * this.ppq); + } + } + + /** + * Convert the header into an object. + */ + toJSON(): HeaderJSON { + return { + keySignatures: this.keySignatures, + meta: this.meta, + name: this.name, + ppq: this.ppq, + tempos: this.tempos.map((t) => { + return { + bpm: t.bpm, + ticks: t.ticks, + }; + }), + timeSignatures: this.timeSignatures, + }; + } + + /** + * parse a header json object. + */ + fromJSON(json: HeaderJSON): void { + this.name = json.name; + // clone all the attributes + this.tempos = json.tempos.map((t) => Object.assign({}, t)); + this.timeSignatures = json.timeSignatures.map((t) => + Object.assign({}, t) + ); + this.keySignatures = json.keySignatures.map((t) => + Object.assign({}, t) + ); + this.meta = json.meta.map((t) => Object.assign({}, t)); + privatePPQMap.set(this, json.ppq); + this.update(); + } + + /** + * Update the tempo of the midi to a single tempo. Will remove and replace + * any other tempos currently set and update all of the event timing. + * @param bpm The tempo in beats per second + */ + setTempo(bpm: number): void { + this.tempos = [ + { + bpm, + ticks: 0, + }, + ]; + this.update(); + } +} + +export interface HeaderJSON { + name: string; + ppq: number; + meta: MetaEvent[]; + tempos: TempoEvent[]; + timeSignatures: TimeSignatureEvent[]; + keySignatures: KeySignatureEvent[]; +} diff --git a/src/Instrument.ts b/src/Instrument.ts new file mode 100644 index 0000000..1c90fc5 --- /dev/null +++ b/src/Instrument.ts @@ -0,0 +1,96 @@ +import { MidiInstrumentEvent, MidiTrackData } from "midi-file"; +import { DrumKitByPatchID, instrumentByPatchID, InstrumentFamilyByID } from "./InstrumentMaps"; +import { Track } from "./Track"; + +/** + * @hidden + */ +const privateTrackMap = new WeakMap(); + +/** + * Describes the midi instrument of a track + */ +export class Instrument { + + /** + * The instrument number + */ + number = 0; + + /** + * @param trackData + * @param track + */ + constructor(trackData: MidiTrackData, track: Track) { + + privateTrackMap.set(this, track); + this.number = 0; + if (trackData) { + const programChange = trackData.find(e => e.type === "programChange") as MidiInstrumentEvent; + if (programChange) { + this.number = programChange.programNumber; + } + } + } + + /** + * The common name of the instrument + */ + get name(): string { + if (this.percussion) { + return DrumKitByPatchID[this.number]; + } else { + return instrumentByPatchID[this.number]; + } + } + + set name(n: string) { + const patchNumber = instrumentByPatchID.indexOf(n); + if (patchNumber !== -1) { + this.number = patchNumber; + } + } + + /** + * The instrument family, e.g. "piano". + */ + get family(): string { + if (this.percussion) { + return "drums"; + } else { + return InstrumentFamilyByID[Math.floor(this.number / 8)]; + } + } + + /** + * If the instrument is a percussion instrument + */ + get percussion(): boolean { + const track = privateTrackMap.get(this); + return track.channel === 9; + } + + /** + * Convert it to JSON form + */ + toJSON(): InstrumentJSON { + return { + family: this.family, + name: this.name, + number: this.number, + }; + } + + /** + * Convert from JSON form + */ + fromJSON(json: InstrumentJSON): void { + this.number = json.number; + } +} + +export interface InstrumentJSON { + number: number; + name: string; + family: string; +} diff --git a/src/InstrumentMaps.ts b/src/InstrumentMaps.ts new file mode 100644 index 0000000..f0e45f6 --- /dev/null +++ b/src/InstrumentMaps.ts @@ -0,0 +1,161 @@ +export const instrumentByPatchID = [ + "acoustic grand piano", + "bright acoustic piano", + "electric grand piano", + "honky-tonk piano", + "electric piano 1", + "electric piano 2", + "harpsichord", + "clavi", + "celesta", + "glockenspiel", + "music box", + "vibraphone", + "marimba", + "xylophone", + "tubular bells", + "dulcimer", + "drawbar organ", + "percussive organ", + "rock organ", + "church organ", + "reed organ", + "accordion", + "harmonica", + "tango accordion", + "acoustic guitar (nylon)", + "acoustic guitar (steel)", + "electric guitar (jazz)", + "electric guitar (clean)", + "electric guitar (muted)", + "overdriven guitar", + "distortion guitar", + "guitar harmonics", + "acoustic bass", + "electric bass (finger)", + "electric bass (pick)", + "fretless bass", + "slap bass 1", + "slap bass 2", + "synth bass 1", + "synth bass 2", + "violin", + "viola", + "cello", + "contrabass", + "tremolo strings", + "pizzicato strings", + "orchestral harp", + "timpani", + "string ensemble 1", + "string ensemble 2", + "synthstrings 1", + "synthstrings 2", + "choir aahs", + "voice oohs", + "synth voice", + "orchestra hit", + "trumpet", + "trombone", + "tuba", + "muted trumpet", + "french horn", + "brass section", + "synthbrass 1", + "synthbrass 2", + "soprano sax", + "alto sax", + "tenor sax", + "baritone sax", + "oboe", + "english horn", + "bassoon", + "clarinet", + "piccolo", + "flute", + "recorder", + "pan flute", + "blown bottle", + "shakuhachi", + "whistle", + "ocarina", + "lead 1 (square)", + "lead 2 (sawtooth)", + "lead 3 (calliope)", + "lead 4 (chiff)", + "lead 5 (charang)", + "lead 6 (voice)", + "lead 7 (fifths)", + "lead 8 (bass + lead)", + "pad 1 (new age)", + "pad 2 (warm)", + "pad 3 (polysynth)", + "pad 4 (choir)", + "pad 5 (bowed)", + "pad 6 (metallic)", + "pad 7 (halo)", + "pad 8 (sweep)", + "fx 1 (rain)", + "fx 2 (soundtrack)", + "fx 3 (crystal)", + "fx 4 (atmosphere)", + "fx 5 (brightness)", + "fx 6 (goblins)", + "fx 7 (echoes)", + "fx 8 (sci-fi)", + "sitar", + "banjo", + "shamisen", + "koto", + "kalimba", + "bag pipe", + "fiddle", + "shanai", + "tinkle bell", + "agogo", + "steel drums", + "woodblock", + "taiko drum", + "melodic tom", + "synth drum", + "reverse cymbal", + "guitar fret noise", + "breath noise", + "seashore", + "bird tweet", + "telephone ring", + "helicopter", + "applause", + "gunshot", +]; + +export const InstrumentFamilyByID = [ + "piano", + "chromatic percussion", + "organ", + "guitar", + "bass", + "strings", + "ensemble", + "brass", + "reed", + "pipe", + "synth lead", + "synth pad", + "synth effects", + "world", + "percussive", + "sound effects", +]; + +export const DrumKitByPatchID = { + 0: "standard kit", + 8: "room kit", + 16: "power kit", + 24: "electronic kit", + 25: "tr-808 kit", + 32: "jazz kit", + 40: "brush kit", + 48: "orchestra kit", + 56: "sound fx kit", +}; diff --git a/src/Midi.ts b/src/Midi.ts new file mode 100644 index 0000000..c1627c7 --- /dev/null +++ b/src/Midi.ts @@ -0,0 +1,212 @@ +import { MidiChannelEvent, MidiTrackData, parseMidi } from "midi-file"; +import { encode } from "./Encode"; +import { Header, HeaderJSON } from "./Header"; +import { Track, TrackJSON } from "./Track"; + +/** + * The main midi parsing class + */ +export class Midi { + + /** + * Download and parse the MIDI file. Returns a promise + * which resolves to the generated midi file + * @param url The url to fetch + */ + static async fromUrl(url: string): Promise { + const response = await fetch(url); + if (response.ok) { + const arrayBuffer = await response.arrayBuffer(); + return new Midi(arrayBuffer); + } else { + throw new Error(`could not load ${url}`); + } + } + splitLog: number[]; + /** + * The header information, includes things like tempo and meta events. + */ + header: Header; + + /** + * The midi tracks. + */ + tracks: Track[]; + + /** + * Parse the midi data + */ + constructor(midiArray?: (ArrayLike | ArrayBuffer)) { + + // parse the midi data if there is any + let midiData = null; + if (midiArray) { + if (midiArray instanceof ArrayBuffer) { + midiArray = new Uint8Array(midiArray); + } + midiData = parseMidi(midiArray); + + // add the absolute times to each of the tracks + midiData.tracks.forEach(track => { + let currentTicks = 0; + track.forEach(event => { + currentTicks += event.deltaTime; + event.absoluteTime = currentTicks; + //console.log(currentTicks); + }); + }); + + // ensure at most one instrument per track + + var tracks = midiData.tracks; + const newTracks = []; + var splitLogs = []; + for (let i = 0; i < tracks.length; i++) { + const defaultTrack = newTracks.length; + // a map from [program, channel] tuples to new track numbers + const trackMap = new Map(); + // a map from channel numbers to current program numbers + const currentProgram = Array(16).fill(0) as Array; + if(typeof splitLogs[i] =="undefined"){ + splitLogs[i] = []; + } + for (const event of tracks[i]) { + let targetTrack = defaultTrack; + + // If the event has a channel, we need to find that channel's current + // program number and the appropriate track for this [program, channel] + // pair. + const channel = (event as MidiChannelEvent).channel; + if (channel !== undefined) { + if (event.type === "programChange") { + currentProgram[channel] = event.programNumber; + } + const program = currentProgram[channel]; + const trackKey = `${program} ${channel}`; + if (trackMap.has(trackKey)) { + targetTrack = trackMap.get(trackKey); + } else { + targetTrack = defaultTrack + trackMap.size; + trackMap.set(trackKey, targetTrack); + } + } + + if (!newTracks[targetTrack]) { + newTracks.push([]); + } + if(!splitLogs[i].includes(targetTrack)){ + splitLogs[i].push(targetTrack); + } + newTracks[targetTrack].push(event); + } + } + midiData.tracks = newTracks; + this.splitLog = splitLogs + } + + this.header = new Header(midiData); + this.tracks = []; + + // parse the midi data + if (midiArray) { + // format 0, everything is on the same track + this.tracks = midiData.tracks.map(trackData => new Track(trackData, this.header)); + + // if it's format 1 and there are no notes on the first track, remove it + if (midiData.header.format === 1 && this.tracks[0].duration === 0) { + this.tracks.shift(); + } + } + } + + /** + * The name of the midi file, taken from the first track + */ + get name(): string { + return this.header.name; + } + set name(n) { + this.header.name = n; + } + + /** + * The total length of the file in seconds + */ + get duration(): number { + // get the max of the last note of all the tracks + const durations = this.tracks.map(t => t.duration); + return Math.max(...durations); + } + + /** + * The total length of the file in ticks + */ + get durationTicks(): number { + // get the max of the last note of all the tracks + const durationTicks = this.tracks.map(t => t.durationTicks); + return Math.max(...durationTicks); + } + + /** + * Add a track to the midi file + */ + addTrack(): Track { + const track = new Track(undefined, this.header); + this.tracks.push(track); + return track; + } + + /** + * Encode the midi as a Uint8Array. + */ + toArray(): Uint8Array { + return encode(this); + } + + /** + * Convert the midi object to JSON. + */ + toJSON(): MidiJSON { + return { + header: this.header.toJSON(), + tracks: this.tracks.map(track => track.toJSON()), + splitLog: this.splitLog, + }; + } + + /** + * Parse a JSON representation of the object. Will overwrite the current + * tracks and header. + */ + fromJSON(json: MidiJSON): void { + this.header = new Header(); + this.header.fromJSON(json.header); + this.tracks = json.tracks.map(trackJSON => { + const track = new Track(undefined, this.header); + track.fromJSON(trackJSON); + return track; + }); + } + + /** + * Clone the entire object midi object + */ + clone(): Midi { + const midi = new Midi(); + midi.fromJSON(this.toJSON()); + return midi; + } +} + +/** + * The MIDI data in JSON format + */ +export interface MidiJSON { + header: HeaderJSON; + tracks: TrackJSON[]; + splitLog: number[]; +} + +export { TrackJSON, Track } from "./Track"; +export { HeaderJSON, Header } from "./Header"; + diff --git a/src/Note.ts b/src/Note.ts new file mode 100644 index 0000000..e424456 --- /dev/null +++ b/src/Note.ts @@ -0,0 +1,244 @@ +import { MidiNoteEvent } from "midi-file"; +import { Header } from "./Header"; + +/** + * Convert a midi note into a pitch + */ +function midiToPitch(midi: number): string { + const octave = Math.floor(midi / 12) - 1; + return midiToPitchClass(midi) + octave.toString(); +} + +/** + * Convert a midi note to a pitch class (just the pitch no octave) + */ +function midiToPitchClass(midi: number): string { + const scaleIndexToNote = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]; + const note = midi % 12; + return scaleIndexToNote[note]; +} + +/** + * Convert a pitch class to a MIDI note + */ +function pitchClassToMidi(pitch: string): number { + const scaleIndexToNote = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]; + return scaleIndexToNote.indexOf(pitch); +} + +/** + * Convert a pitch to a midi number + */ +// tslint:disable-next-line: only-arrow-functions typedef +const pitchToMidi: (note: string) => number = (function() { + const regexp = /^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i; + const noteToScaleIndex = { + // tslint:disable-next-line: object-literal-sort-keys + cbb: -2, cb: -1, c: 0, "c#": 1, cx: 2, + dbb: 0, db: 1, d: 2, "d#": 3, dx: 4, + ebb: 2, eb: 3, e: 4, "e#": 5, ex: 6, + fbb: 3, fb: 4, f: 5, "f#": 6, fx: 7, + gbb: 5, gb: 6, g: 7, "g#": 8, gx: 9, + abb: 7, ab: 8, a: 9, "a#": 10, ax: 11, + bbb: 9, bb: 10, b: 11, "b#": 12, bx: 13, + }; + return (note) => { + const split = regexp.exec(note); + const pitch = split[1]; + const octave = split[2]; + const index = noteToScaleIndex[pitch.toLowerCase()]; + return index + (parseInt(octave, 10) + 1) * 12; + }; +}()); + +const privateHeaderMap = new WeakMap(); + +/** + * A Note consists of a noteOn and noteOff event + */ +export class Note implements NoteInterface { + + /** + * The notes midi value + */ + midi: number; + + /** + * The normalized velocity (0-1) + */ + velocity: number; + + /** + * The velocity of the note off + */ + noteOffVelocity: number; + + /** + * The start time in ticks + */ + ticks: number; + + /** + * The duration in ticks + */ + durationTicks: number; + + constructor(noteOn: NoteOnEvent, noteOff: NoteOffEvent, header: Header) { + + privateHeaderMap.set(this, header); + + this.midi = noteOn.midi; + + this.velocity = noteOn.velocity; + + this.noteOffVelocity = noteOff.velocity; + + this.ticks = noteOn.ticks; + + this.durationTicks = noteOff.ticks - noteOn.ticks; + } + + /** + * The note name and octave in scientific pitch notation, e.g. "C4" + */ + get name(): string { + return midiToPitch(this.midi); + } + + set name(n: string) { + this.midi = pitchToMidi(n); + } + + /** + * The notes octave number + */ + get octave(): number { + return Math.floor(this.midi / 12) - 1; + } + + set octave(o: number) { + const diff = o - this.octave; + this.midi += diff * 12; + } + + /** + * The pitch class name. e.g. "A" + */ + get pitch(): string { + return midiToPitchClass(this.midi); + } + + set pitch(p: string) { + this.midi = 12 * (this.octave + 1) + pitchClassToMidi(p); + } + + /** + * The duration of the segment in seconds + */ + get duration(): number { + const header = privateHeaderMap.get(this); + return header.ticksToSeconds(this.ticks + this.durationTicks) - header.ticksToSeconds(this.ticks); + } + + set duration(d: number) { + const header = privateHeaderMap.get(this); + const noteEndTicks = header.secondsToTicks(this.time + d); + this.durationTicks = noteEndTicks - this.ticks; + } + + /** + * The time of the event in seconds + */ + get time(): number { + const header = privateHeaderMap.get(this); + return header.ticksToSeconds(this.ticks); + } + + set time(t: number) { + const header = privateHeaderMap.get(this); + this.ticks = header.secondsToTicks(t); + } + + /** + * The number of measures (and partial measures) to this beat. + * Takes into account time signature changes + * @readonly + */ + get bars(): number { + const header = privateHeaderMap.get(this); + return header.ticksToMeasures(this.ticks); + } + + toJSON(): NoteJSON { + return { + duration: this.duration, + durationTicks: this.durationTicks, + midi: this.midi, + name: this.name, + ticks: this.ticks, + time: this.time, + velocity: this.velocity, + }; + } +} + +export interface NoteJSON { + time: number; + midi: number; + name: string; + velocity: number; + duration: number; + ticks: number; + durationTicks: number; +} + +export interface NoteOnEvent { + ticks: number; + velocity: number; + midi: number; +} + +export interface NoteOffEvent { + ticks: number; + velocity: number; +} + +export interface NoteInterface { + time: number; + ticks: number; + duration: number; + durationTicks: number; + midi: number; + pitch: string; + octave: number; + name: string; + noteOffVelocity: number; + velocity: number; +} + +type PitchDescription = { + name: string; +} | { + pitch: string; + octave: number; +} | { + midi: number; +} + +type VelocityDescription = { + velocity?: number; + noteOffVelocity?: number; +} + +type TimeDescription = { + time: number; + duration?: number; +} | { + ticks: number; + durationTicks?: number; +} + +/** + * @hidden + */ +export type NoteConstructorInterface = PitchDescription & VelocityDescription & TimeDescription diff --git a/src/PitchBend.ts b/src/PitchBend.ts new file mode 100644 index 0000000..3b4759e --- /dev/null +++ b/src/PitchBend.ts @@ -0,0 +1,64 @@ +import { Header } from "./Header"; +import { MidiPitchBendEvent } from "midi-file"; + +const privateHeaderMap = new WeakMap(); + +/** + * Represents a pitch bend event + */ +export class PitchBend implements PitchBendInterface { + + /** + * The pitch value from... + */ + value: number; + + /** + * The tick time of the event + */ + ticks: number; + + /** + * @param event + * @param header + */ + constructor(event: Partial, header: Header) { + privateHeaderMap.set(this, header); + + this.ticks = event.absoluteTime; + this.value = event.value; + } + + /** + * The time of the event in seconds + */ + get time(): number { + const header = privateHeaderMap.get(this); + return header.ticksToSeconds(this.ticks); + } + + set time(t: number) { + const header = privateHeaderMap.get(this); + this.ticks = header.secondsToTicks(t); + } + + toJSON(): PitchBendJSON { + return { + ticks: this.ticks, + time: this.time, + value: this.value, + }; + } +} + +export interface PitchBendJSON { + ticks: number; + time: number; + value: number; +} + +export interface PitchBendInterface { + ticks: number; + time: number; + value: number; +} diff --git a/src/Track.ts b/src/Track.ts new file mode 100644 index 0000000..bb0309e --- /dev/null +++ b/src/Track.ts @@ -0,0 +1,319 @@ +import { + MidiControllerEvent, + MidiEndOfTrackEvent, + MidiNoteOffEvent, + MidiNoteOnEvent, + MidiPitchBendEvent, + MidiTrackData, + MidiTrackNameEvent, +} from "midi-file"; +import { insert } from "./BinarySearch"; +import { ControlChange, ControlChangeInterface } from "./ControlChange"; +import { ControlChangesJSON, createControlChanges } from "./ControlChanges"; +import { PitchBend, PitchBendInterface, PitchBendJSON } from "./PitchBend"; + +import { Header } from "./Header"; +import { Instrument, InstrumentJSON } from "./Instrument"; +import { Note, NoteConstructorInterface, NoteJSON } from "./Note"; + +const privateHeaderMap = new WeakMap(); + +/** + * A Track is a collection of notes and controlChanges + */ +export class Track { + /** + * The name of the track + */ + name = ""; + + /** + * The instrument associated with the track + */ + instrument: Instrument; + + /** + * The track's note events + */ + notes: Note[] = []; + + /** + * The channel number of the track. Applies this channel + * to all events associated with the channel + */ + channel: number; + + /** + * The control change events + */ + controlChanges = createControlChanges(); + + /** + * The end of track event (if it exists) in ticks + */ + endOfTrackTicks?: number; + + /** + * The pitch bend events + */ + pitchBends: PitchBend[] = []; + + constructor(trackData: MidiTrackData, header: Header) { + privateHeaderMap.set(this, header); + + if (trackData) { + const nameEvent = trackData.find( + (e) => e.type === "trackName" + ) as MidiTrackNameEvent; + this.name = nameEvent ? nameEvent.text : ""; + } + + this.instrument = new Instrument(trackData, this); + + // defaults to 0 + this.channel = 0; + + if (trackData) { + const noteOns = trackData.filter( + (event) => event.type === "noteOn" + ) as MidiNoteOnEvent[]; + const noteOffs = trackData.filter( + (event) => event.type === "noteOff" + ) as MidiNoteOffEvent[]; + while (noteOns.length) { + const currentNote = noteOns.shift(); + // set the channel based on the note + this.channel = currentNote.channel; + // find the corresponding note off + const offIndex = noteOffs.findIndex( + (note) => + note.noteNumber === currentNote.noteNumber && + note.absoluteTime >= currentNote.absoluteTime + ); + if (offIndex !== -1) { + // once it's got the note off, add it + const noteOff = noteOffs.splice(offIndex, 1)[0]; + this.addNote({ + durationTicks: + noteOff.absoluteTime - currentNote.absoluteTime, + midi: currentNote.noteNumber, + noteOffVelocity: noteOff.velocity / 127, + ticks: currentNote.absoluteTime, + velocity: currentNote.velocity / 127, + }); + } + } + + const controlChanges = trackData.filter( + (event) => event.type === "controller" + ) as MidiControllerEvent[]; + controlChanges.forEach((event) => { + this.addCC({ + number: event.controllerType, + ticks: event.absoluteTime, + value: event.value / 127, + }); + }); + + const pitchBends = trackData.filter( + (event) => event.type === "pitchBend" + ) as MidiPitchBendEvent[]; + pitchBends.forEach((event) => { + this.addPitchBend({ + ticks: event.absoluteTime, + // scale the value between -2^13 to 2^13 to -2 to 2 + value: event.value / Math.pow(2, 13), + }); + }); + + const endOfTrackEvent: + | MidiEndOfTrackEvent + | undefined = trackData.find( + (event): event is MidiEndOfTrackEvent => + event.type === "endOfTrack" + ); + + this.endOfTrackTicks = + endOfTrackEvent !== undefined + ? endOfTrackEvent.absoluteTime + : undefined; + } + } + + /** + * Add a note to the notes array + * @param props The note properties to add + */ + addNote(props: NoteConstructorInterface): this { + const header = privateHeaderMap.get(this); + const note = new Note( + { + midi: 0, + ticks: 0, + velocity: 1, + }, + { + ticks: 0, + velocity: 0, + }, + header + ); + Object.assign(note, props); + insert(this.notes, note, "ticks"); + return this; + } + + /** + * Add a control change to the track + * @param props + */ + addCC( + props: + | Omit + | Omit + ): this { + const header = privateHeaderMap.get(this); + const cc = new ControlChange( + { + controllerType: props.number, + }, + header + ); + delete props.number; + Object.assign(cc, props); + if (!Array.isArray(this.controlChanges[cc.number])) { + this.controlChanges[cc.number] = []; + } + insert(this.controlChanges[cc.number], cc, "ticks"); + return this; + } + + /** + * Add a control change to the track + */ + addPitchBend( + props: + | Omit + | Omit + ): this { + const header = privateHeaderMap.get(this); + const pb = new PitchBend({}, header); + Object.assign(pb, props); + insert(this.pitchBends, pb, "ticks"); + return this; + } + + /** + * The end time of the last event in the track + */ + get duration(): number { + if (!this.notes.length) { + return 0; + } + + let maxDuration = + this.notes[this.notes.length - 1].time + + this.notes[this.notes.length - 1].duration; + for (let i = 0; i < this.notes.length - 1; i++) { + const duration = this.notes[i].time + this.notes[i].duration; + if (maxDuration < duration) { + maxDuration = duration; + } + } + + return maxDuration; + } + + /** + * The end time of the last event in the track in ticks + */ + get durationTicks(): number { + if (!this.notes.length) { + return 0; + } + + let maxDuration = + this.notes[this.notes.length - 1].ticks + + this.notes[this.notes.length - 1].durationTicks; + for (let i = 0; i < this.notes.length - 1; i++) { + const duration = this.notes[i].ticks + this.notes[i].durationTicks; + if (maxDuration < duration) { + maxDuration = duration; + } + } + + return maxDuration; + } + + /** + * Assign the json values to this track + */ + fromJSON(json: TrackJSON): void { + this.name = json.name; + this.channel = json.channel; + this.instrument = new Instrument(undefined, this); + this.instrument.fromJSON(json.instrument); + if (json.endOfTrackTicks !== undefined) { + this.endOfTrackTicks = json.endOfTrackTicks; + } + for (const number in json.controlChanges) { + if (json.controlChanges[number]) { + json.controlChanges[number].forEach((cc) => { + this.addCC({ + number: cc.number, + ticks: cc.ticks, + value: cc.value, + }); + }); + } + } + json.notes.forEach((n) => { + this.addNote({ + durationTicks: n.durationTicks, + midi: n.midi, + ticks: n.ticks, + velocity: n.velocity, + }); + }); + } + + /** + * Convert the track into a JSON format + */ + toJSON(): TrackJSON { + // convert all the CCs to JSON + const controlChanges = {}; + for (let i = 0; i < 127; i++) { + if (this.controlChanges.hasOwnProperty(i)) { + controlChanges[i] = this.controlChanges[i].map((c) => + c.toJSON() + ); + } + } + + const json: TrackJSON = { + channel: this.channel, + controlChanges, + pitchBends: this.pitchBends.map((pb) => pb.toJSON()), + instrument: this.instrument.toJSON(), + name: this.name, + notes: this.notes.map((n) => n.toJSON()), + }; + + if (this.endOfTrackTicks !== undefined) { + json.endOfTrackTicks = this.endOfTrackTicks; + } + + return json; + } +} + +export interface TrackJSON { + name: string; + notes: NoteJSON[]; + channel: number; + instrument: InstrumentJSON; + controlChanges: ControlChangesJSON; + pitchBends: PitchBendJSON[]; + endOfTrackTicks?: number; +} diff --git a/src/midi-file.d.ts b/src/midi-file.d.ts new file mode 100644 index 0000000..859af95 --- /dev/null +++ b/src/midi-file.d.ts @@ -0,0 +1,114 @@ +declare module "midi-file" { + + // //////////////////////////////////////////////////////// + // THE EVENT TYPES + // //////////////////////////////////////////////////////// + + export interface MidiEvent { + type: string; + deltaTime: number; + absoluteTime: number; + } + + export interface MidiChannelEvent extends MidiEvent { + channel: number; + meta?: false; + } + + export interface MidiNoteEvent extends MidiChannelEvent { + type: string; + velocity: number; + noteNumber: number; + running?: boolean; + } + + export interface MidiNoteOnEvent extends MidiNoteEvent { + type: "noteOn"; + } + + export interface MidiNoteOffEvent extends MidiNoteEvent { + type: "noteOff"; + } + + export interface MidiControllerEvent extends MidiChannelEvent { + type: "controller"; + controllerType: number; + value: number; + } + + export interface MidiInstrumentEvent extends MidiChannelEvent { + type: "programChange"; + programNumber: number; + } + + // //////////////////////////////////////////////////////// + // META EVENTS + // //////////////////////////////////////////////////////// + + export interface MidiMetaEvent extends MidiEvent { + meta: true; + type: string; + } + + export interface MidiTimeSignatureEvent extends MidiMetaEvent { + type: "timeSignature"; + numerator: number; + denominator: number; + thirtyseconds: number; + metronome: number; + } + + export interface MidiTempoEvent extends MidiMetaEvent { + type: "setTempo"; + microsecondsPerBeat: number; + } + + export interface MidiTrackNameEvent extends MidiMetaEvent { + type: "trackName"; + text: string; + } + + export interface MidiEndOfTrackEvent extends MidiMetaEvent { + type: "endOfTrack"; + } + + export interface MidiCopyrightEvent extends MidiMetaEvent { + type: "copyrightNotice"; + text: string; + } + + export interface MidiTextEvent extends MidiMetaEvent { + type: "text" | "marker" | "lyrics" | "cuePoint"; + text: string; + } + + export interface MidiKeySignatureEvent extends MidiMetaEvent { + type: "keySignature"; + key: number; + scale: number; + } + + export interface MidiPitchBendEvent extends MidiChannelEvent { + type: "pitchBend"; + value: number; + } + + export type MidiTrackEvent = MidiTimeSignatureEvent | MidiTempoEvent | MidiTrackNameEvent | MidiEndOfTrackEvent | MidiNoteOnEvent | MidiNoteOffEvent | MidiControllerEvent | MidiPitchBendEvent | MidiInstrumentEvent | MidiKeySignatureEvent | MidiTextEvent; + + export type MidiTrackData = MidiTrackEvent[]; + + export interface MidiData { + header: { + format: number; + ticksPerBeat: number; + numTracks: number; + }; + tracks: MidiTrackData[]; + } + + // ////////////////////////////////////////////////////// + // EXPORTED METHODS + // ////////////////////////////////////////////////////// + export function parseMidi(midiArray: ArrayLike | ArrayBuffer): MidiData; + export function writeMidi(midiData: MidiData): ArrayBuffer; +} diff --git a/test/Compare.ts b/test/Compare.ts new file mode 100644 index 0000000..ee0914f --- /dev/null +++ b/test/Compare.ts @@ -0,0 +1,55 @@ +import { expect } from "chai"; +import { readFileSync } from "fs"; +import { basename, resolve } from "path"; +import { Midi } from "../src/Midi"; +// eslint-disable-next-line @typescript-eslint/no-var-requires +const glob = require("glob"); + +function parseGroundTruth(path) { + const textData = readFileSync(`${path}.txt`).toString(); + const tracks = textData.split(/track .*\n/gm) + .map(track => track.split("\n") + .map(row => row.split("\t")) + .map(([note, start, end]) => [parseInt(note), parseFloat(start), parseFloat(end)])); + // push off the first one + tracks.shift(); + // parse the note values + tracks.forEach(track => track.pop()); + return tracks; +} + +describe("matches pre-parsed midi", async () => { + + const midiFiles = glob.sync(resolve(__dirname, "./midi/*/*.mid")); + midiFiles.forEach(file => { + it(`parsed ${basename(file)} correctly`, () => { + const midi = new Midi(readFileSync(file)); + const truth = parseGroundTruth(file); + + midi.tracks.slice(0, truth.length).forEach((track) => { + let misses = 0; + const noteLimit = 30; + // const truthTrack = truth[trackIndex].slice(0, noteLimit) + track.notes.slice(0, noteLimit).forEach(note => { + // eslint-disable-next-line @typescript-eslint/ban-ts-ignore + // @ts-ignore + const match = truth.find(truthTrack => { + truthTrack = truthTrack.slice(0, noteLimit + 10); + const trackMatch = truthTrack.find(([mid, start, end]) => { + const sameMidi = mid === note.midi; + const sameTime = Math.abs(start - note.time) < 0.1; + const sameDuration = Math.abs(end - (note.time + note.duration)) < 0.1; + return sameMidi && sameTime && sameDuration; + }); + return trackMatch; + }); + if (!match) { + misses++; + } + + }); + expect(misses).to.equal(0); + }); + }); + }); +}); diff --git a/test/Header.ts b/test/Header.ts new file mode 100644 index 0000000..c422532 --- /dev/null +++ b/test/Header.ts @@ -0,0 +1,241 @@ +import { expect } from "chai"; +import { readFileSync } from "fs"; +import { resolve } from "path"; +import { Midi } from "../src/Midi"; + +context("Header", () => { + describe("empty midi file", () => { + const midi = new Midi(); + + it("has defaults", () => { + expect(midi.header.ppq).to.equal(480); + expect(midi.header.tempos).to.have.length(0); + expect(midi.header.timeSignatures).to.have.length(0); + }); + }); + + describe("parses beethoven Symphony 7", () => { + const midi = new Midi( + readFileSync( + resolve(__dirname, "./midi/beethoven/symphony_7_2.mid") + ) + ); + + it("parsed the PPQ", () => { + expect(midi.header.ppq).to.equal(256); + }); + + it("parsed the tempo", () => { + expect(midi.header.tempos).to.have.length(4); + expect(midi.header.tempos[0]).to.have.property("bpm"); + expect(midi.header.tempos[0].bpm).to.be.closeTo(72, 0.001); + expect(midi.header.tempos[1].bpm).to.be.closeTo(72, 0.001); + expect(midi.header.tempos[2].bpm).to.be.closeTo(62, 0.001); + expect(midi.header.tempos[3].bpm).to.be.closeTo(54, 0.001); + }); + + it("parsed the time signatures", () => { + expect(midi.header.timeSignatures).to.have.length(1); + expect(midi.header.timeSignatures[0].timeSignature).to.deep.equal([ + 2, + 4, + ]); + }); + + it("can set the tempo with setTempo", () => { + const firstNoteTicks = midi.tracks[0].notes[0].ticks; + const firstNoteTime = midi.tracks[0].notes[0].time; + expect(midi.header.tempos).to.have.length(4); + midi.header.setTempo(80); + expect(midi.header.tempos).to.have.length(1); + expect(midi.header.tempos[0].bpm).to.equal(80); + expect(firstNoteTicks).to.equal(midi.tracks[0].notes[0].ticks); + expect(firstNoteTime).to.not.equal(midi.tracks[0].notes[0].time); + }); + }); + + describe("parses debussy claire de lune", () => { + const midi = new Midi( + readFileSync( + resolve(__dirname, "./midi/debussy/claire_de_lune.mid") + ) + ); + + it("parsed the PPQ", () => { + expect(midi.header.ppq).to.equal(480); + }); + + it("parsed the tempo", () => { + expect(midi.header.tempos).to.have.length(733); + expect(midi.header.tempos[0]).to.have.property("bpm"); + expect(midi.header.tempos[0]).to.have.property("ticks"); + expect(midi.header.tempos[0]).to.have.property("time"); + expect(midi.header.tempos[0].bpm).to.be.closeTo(100, 0.001); + expect(midi.header.tempos[0].ticks).to.be.closeTo(0, 0.001); + expect(midi.header.tempos[0].time).to.be.closeTo(0, 0.001); + + expect(midi.header.tempos[10]).to.have.property("bpm"); + expect(midi.header.tempos[10]).to.have.property("ticks"); + expect(midi.header.tempos[10]).to.have.property("time"); + expect(midi.header.tempos[10].bpm).to.be.closeTo(67, 0.001); + expect(midi.header.tempos[10].ticks).to.be.closeTo(5040, 0.001); + expect(midi.header.tempos[10].time).to.be.closeTo(9.369, 0.001); + }); + + it("parsed the time signatures", () => { + expect(midi.header.timeSignatures).to.have.length(1); + expect(midi.header.timeSignatures[0].timeSignature).to.deep.equal([ + 9, + 8, + ]); + }); + }); + + describe("can get a tempo on a track which isn't the first track", () => { + const midi = new Midi( + readFileSync(resolve(__dirname, "./midi/230_bpm_multitrack.mid")) + ); + + it("parsed the PPQ", () => { + expect(midi.header.ppq).to.equal(96); + }); + + it("parsed the tempo", () => { + expect(midi.header.tempos).to.have.length(1); + expect(midi.header.tempos[0].bpm).to.be.closeTo(230, 0.01); + }); + }); + + describe("Tempo", () => { + const midi = new Midi(); + + it("defaults to 120", () => { + const track = midi.addTrack(); + track.addNote({ + time: 0, + midi: 20, + duration: 1, + }); + track.addNote({ + time: 1, + midi: 30, + duration: 1, + }); + + expect(track.notes[0].ticks).to.equal(0); + expect(track.notes[0].durationTicks).to.equal(960); + + expect(track.notes[1].ticks).to.equal(960); + expect(track.notes[1].durationTicks).to.equal(960); + }); + + it("can change the tempo and updates time and duration of all of the notes", () => { + midi.header.tempos.push({ + bpm: 60, + ticks: 0, + }); + midi.header.update(); + + const track = midi.tracks[0]; + expect(track.notes[0].ticks).to.equal(0); + expect(track.notes[0].time).to.equal(0); + expect(track.notes[0].duration).to.equal(2); + + expect(track.notes[1].ticks).to.equal(960); + expect(track.notes[1].time).to.equal(2); + expect(track.notes[1].duration).to.equal(2); + }); + + it("can have multiple tempos scheduled", () => { + midi.header.tempos.push({ + bpm: 120, + ticks: 960, + }); + expect(midi.header.tempos).to.have.length(2); + midi.header.update(); + + const track = midi.tracks[0]; + expect(track.notes[0].ticks).to.equal(0); + expect(track.notes[0].time).to.equal(0); + expect(track.notes[0].duration).to.equal(2); + + expect(track.notes[1].ticks).to.equal(960); + expect(track.notes[1].time).to.equal(2); + expect(track.notes[1].duration).to.equal(1); + }); + }); + + describe("Time Signature", () => { + const midi = new Midi(); + + it("defaults to [4, 4]", () => { + const track = midi.addTrack(); + track.addNote({ + time: 0, + midi: 20, + }); + track.addNote({ + time: 2, + midi: 30, + }); + track.addNote({ + time: 3, + midi: 40, + }); + + expect(track.notes[0].bars).to.equal(0); + expect(track.notes[1].bars).to.equal(1); + expect(track.notes[2].bars).to.equal(1.5); + }); + + it("uses the current time signature", () => { + const track = midi.addTrack(); + midi.header.timeSignatures.push({ + ticks: 0, + timeSignature: [5, 4], + }); + midi.header.update(); + track.addNote({ + time: 0, + midi: 20, + }); + track.addNote({ + time: 2, + midi: 30, + }); + track.addNote({ + time: 2.5, + midi: 40, + }); + + expect(track.notes[0].bars).to.equal(0); + expect(track.notes[1].bars).to.equal(0.8); + expect(track.notes[2].bars).to.equal(1); + }); + + it("can have multiple schedule time signatures", () => { + const track = midi.addTrack(); + midi.header.timeSignatures.push({ + ticks: midi.header.ppq * 10, + timeSignature: [4, 4], + }); + midi.header.update(); + track.addNote({ + time: 0, + midi: 20, + }); + track.addNote({ + time: 5, + midi: 30, + }); + track.addNote({ + time: 7, + midi: 40, + }); + + expect(track.notes[0].bars).to.equal(0); + expect(track.notes[1].bars).to.equal(2); + expect(track.notes[2].bars).to.equal(3); + }); + }); +}); diff --git a/test/Midi.ts b/test/Midi.ts new file mode 100644 index 0000000..5855458 --- /dev/null +++ b/test/Midi.ts @@ -0,0 +1,111 @@ +import { expect } from "chai"; +import { readFileSync } from "fs"; +import { resolve } from "path"; +import { Midi } from "../src/Midi"; +// add fetch to the window so that the fetch function could work +// eslint-disable-next-line @typescript-eslint/no-var-requires +const fetch = require("node-fetch"); +// eslint-disable-next-line @typescript-eslint/ban-ts-ignore +// @ts-ignore +global.fetch = fetch; +import { createServer } from "http-server"; + +context("Midi", () => { + + describe("empty constructor", () => { + + it("has the correct number of tracks", () => { + const midi = new Midi(); + expect(midi.tracks.length).to.equal(0); + }); + + it("can get/set name", () => { + const midi = new Midi(); + expect(midi.name).to.equal(""); + + midi.name = "test"; + expect(midi.name).to.equal("test"); + }); + + it("can add a track", () => { + const midi = new Midi(); + expect(midi.tracks).to.have.length(0); + + const track = midi.addTrack(); + expect(midi.tracks).to.have.length(1); + + expect(track.notes).to.have.length(0); + + // add note to the empty track + track.addNote({ + midi: 44, + time: 0 + }); + expect(track.notes).to.have.length(1); + }); + }); + + describe("from a file", () => { + + it("has a duration", () => { + const midi = new Midi(readFileSync(resolve(__dirname, "./midi/debussy/childrens_corner_1.mid"))); + expect(midi.duration).to.be.closeTo(143, 0.5); + }); + + it("has a duration in ticks", () => { + const midi = new Midi(readFileSync(resolve(__dirname, "./midi/debussy/childrens_corner_1.mid"))); + expect(midi.durationTicks).to.equal(144240); + }); + }); + + describe("from a url", () => { + + let server = null; + before(done => { + server = createServer({ + root: resolve(__dirname, "./midi"), + }); + server.listen(9999, () => done()); + }); + + after(() => { + server.close(); + }); + + it("can use static fromUrl method", async () => { + const url = "http://localhost:9999/bach/bach_847.mid"; + const midi = await Midi.fromUrl(url); + expect(midi.name).to.include("Das wohltemperierte Klavier I - Praeludium und Fuge 2 in c-Moll BWV 847"); + }); + + it("throws an error when theres no file", async () => { + const url = "http://localhost:9999/bach/nope.mid"; + let threwError = false; + try { + await Midi.fromUrl(url); + } catch (e) { + threwError = true; + } + expect(threwError).to.be.true; + + }); + }); + + context("clone", () => { + + it("can clone a midi file", () => { + const midi = new Midi(readFileSync(resolve(__dirname, "./midi/bach/bach_846.mid"))); + const clone = midi.clone(); + expect(midi.toJSON()).to.deep.equal(clone.toJSON()); + }); + + it("changes to the clone dont change the original", () => { + const original = new Midi(readFileSync(resolve(__dirname, "./midi/bach/bach_846.mid"))); + const clone = original.clone(); + // change the clone + clone.tracks[0].notes[0].ticks = 111; + // shouldnt affect the original + expect(original.tracks[0].notes[0].ticks).to.not.equal(111); + }); + }); +}); diff --git a/test/Note.ts b/test/Note.ts new file mode 100644 index 0000000..1375232 --- /dev/null +++ b/test/Note.ts @@ -0,0 +1,155 @@ +import { expect } from "chai"; +import { readFileSync } from "fs"; +import { resolve } from "path"; +import { Midi } from "../src/Midi"; + +context("Note", () => { + + describe("getters for bach 846", () => { + + const midi = new Midi(readFileSync(resolve(__dirname, "./midi/bach/bach_846.mid"))); + + it("has midi", () => { + expect(midi.tracks[0].notes[0].midi).is.a("number"); + expect(midi.tracks[0].notes[0].midi).equals(67); + + expect(midi.tracks[0].notes[1].midi).is.a("number"); + expect(midi.tracks[0].notes[1].midi).equals(72); + }); + + it("has ticks", () => { + expect(midi.tracks[0].notes[0].ticks).is.a("number"); + expect(midi.tracks[0].notes[0].ticks).equals(241); + + expect(midi.tracks[0].notes[1].ticks).is.a("number"); + expect(midi.tracks[0].notes[1].ticks).equals(361); + }); + + it("has durationTicks", () => { + expect(midi.tracks[0].notes[0].durationTicks).is.a("number"); + expect(midi.tracks[0].notes[0].durationTicks).equals(120); + + expect(midi.tracks[0].notes[1].durationTicks).is.a("number"); + expect(midi.tracks[0].notes[1].durationTicks).equals(120); + }); + + it("has name", () => { + expect(midi.tracks[0].notes[0].name).is.a("string"); + expect(midi.tracks[0].notes[0].name).equals("G4"); + + expect(midi.tracks[0].notes[1].name).is.a("string"); + expect(midi.tracks[0].notes[1].name).equals("C5"); + }); + + it("has pitch", () => { + expect(midi.tracks[0].notes[0].pitch).is.a("string"); + expect(midi.tracks[0].notes[0].pitch).equals("G"); + + expect(midi.tracks[0].notes[1].pitch).is.a("string"); + expect(midi.tracks[0].notes[1].pitch).equals("C"); + }); + + it("has time", () => { + expect(midi.tracks[0].notes[0].time).is.a("number"); + expect(midi.tracks[0].notes[0].time).is.closeTo(0.407, 0.0001); + + expect(midi.tracks[0].notes[1].time).is.a("number"); + expect(midi.tracks[0].notes[1].time).is.closeTo(0.6097, 0.0001); + }); + + it("has duration", () => { + expect(midi.tracks[0].notes[0].duration).is.a("number"); + expect(midi.tracks[0].notes[0].duration).is.closeTo(0.2026, 0.001); + + expect(midi.tracks[0].notes[1].duration).is.a("number"); + expect(midi.tracks[0].notes[1].duration).is.closeTo(0.2026, 0.001); + }); + + it("has velocity", () => { + expect(midi.tracks[0].notes[0].velocity).is.a("number"); + expect(midi.tracks[0].notes[0].velocity).is.closeTo(0.4409, 0.001); + + expect(midi.tracks[0].notes[1].velocity).is.a("number"); + expect(midi.tracks[0].notes[1].velocity).is.closeTo(0.4724, 0.001); + }); + + it("velocity is between 0-1", () => { + midi.tracks[0].notes.forEach(note => { + expect(note.velocity).is.within(0, 1); + }); + }); + + it("has noteOffVelocity", () => { + expect(midi.tracks[0].notes[0].noteOffVelocity).is.a("number"); + expect(midi.tracks[0].notes[0].noteOffVelocity).equals(0); + + expect(midi.tracks[0].notes[1].noteOffVelocity).is.a("number"); + expect(midi.tracks[0].notes[1].noteOffVelocity).equals(0); + }); + }); + + describe("setters for bach 847", () => { + + const midi = new Midi(readFileSync(resolve(__dirname, "./midi/bach/bach_847.mid"))); + + it("set ticks/time", () => { + const note = midi.tracks[0].notes[0]; + expect(note.ticks).is.a("number"); + expect(note.ticks).equals(3); + expect(note.time).to.be.closeTo(0.00301, 0.0001); + + note.ticks = 10; + expect(note.ticks).equals(10); + expect(note.time).to.be.closeTo(0.010204, 0.001); + + note.time = 0.00301; + expect(note.ticks).equals(3); + expect(note.time).to.be.closeTo(0.00301, 0.0001); + }); + + it("set duration/durationTicks", () => { + const note = midi.tracks[0].notes[0]; + expect(note.durationTicks).is.a("number"); + expect(note.durationTicks).equals(140); + expect(note.duration).closeTo(0.1361, 0.001); + + note.durationTicks = 200; + expect(note.durationTicks).equals(200); + expect(note.duration).closeTo(0.1925, 0.001); + + note.duration = 0.1361; + expect(note.durationTicks).equals(140); + }); + + it("set midi/name", () => { + const note = midi.tracks[0].notes[0]; + expect(note.name).equals("C5"); + expect(note.midi).equals(72); + + note.midi = 60; + expect(note.name).equals("C4"); + expect(note.midi).equals(60); + + note.name = "C5"; + expect(note.midi).equals(72); + }); + + it("set pitch/octave", () => { + const note = midi.tracks[0].notes[0]; + expect(note.name).equals("C5"); + + note.octave -= 1; + expect(note.name).equals("C4"); + expect(note.midi).equals(60); + expect(note.octave).equals(4); + + note.pitch = "D"; + expect(note.name).equals("D4"); + expect(note.octave).equals(4); + expect(note.midi).equals(62); + + note.name = "C5"; + }); + }); + +}); diff --git a/test/Track.ts b/test/Track.ts new file mode 100644 index 0000000..0b37301 --- /dev/null +++ b/test/Track.ts @@ -0,0 +1,309 @@ +import { expect } from "chai"; +import { readFileSync } from "fs"; +import { resolve } from "path"; +import { Midi } from "../src/Midi"; + +context("Track", () => { + describe("getters for beethoven symphony 7", () => { + const midi = new Midi( + readFileSync( + resolve(__dirname, "./midi/beethoven/symphony_7_2.mid") + ) + ); + + it("has the correct number of tracks", () => { + expect(midi.tracks.length).to.equal(17); + }); + + it("tracks have correct names", () => { + expect(midi.tracks[0].name).to.equal("2 Flutes"); + expect(midi.tracks[1].name).to.equal("2 Oboes"); + expect(midi.tracks[2].name).to.equal("2 Clarinets in A"); + expect(midi.tracks[3].name).to.equal("2 Bassoons"); + }); + + it("has instruments", () => { + expect(midi.tracks[0].instrument.name).to.equal("flute"); + expect(midi.tracks[1].instrument.name).to.equal("oboe"); + }); + + it("has instruments description", () => { + expect(midi.tracks[0].instrument.name).to.equal("flute"); + expect(midi.tracks[0].instrument.number).to.equal(73); + expect(midi.tracks[1].instrument.name).to.equal("oboe"); + }); + + it("can set instrument", () => { + midi.tracks[0].instrument.name = "acoustic grand piano"; + expect(midi.tracks[0].instrument.name).to.equal( + "acoustic grand piano" + ); + expect(midi.tracks[0].instrument.number).to.equal(0); + midi.tracks[0].instrument.number = 73; + expect(midi.tracks[0].instrument.name).to.equal("flute"); + }); + + it("can get the instrument family", () => { + expect(midi.tracks[0].instrument.family).to.equal("pipe"); + }); + + it("can get the set percussion", () => { + midi.tracks[0].channel = 9; + expect(midi.tracks[0].instrument.family).to.equal("drums"); + midi.tracks[0].instrument.number = 0; + expect(midi.tracks[0].instrument.name).to.equal("standard kit"); + midi.tracks[0].instrument.number = 73; + midi.tracks[0].channel = 0; + expect(midi.tracks[0].instrument.family).to.equal("pipe"); + }); + + it("tracks have notes", () => { + midi.tracks.forEach((track) => { + expect(track.notes).to.be.an("array"); + }); + expect(midi.tracks[0].notes).to.have.length(404); + expect(midi.tracks[1].notes).to.have.length(420); + }); + + it("parses midi drum beat", () => { + const drumMidi = new Midi( + readFileSync(resolve(__dirname, "./midi/beat.mid")) + ); + expect(drumMidi.tracks.length).to.equal(1); + expect(drumMidi.tracks[0].channel).to.equal(9); + }); + + it("sets the endOfTrackTicks", () => { + expect(midi.tracks[0].endOfTrackTicks).to.equal(135058); + expect(midi.tracks[1].endOfTrackTicks).to.equal(141953); + }); + }); + + describe("single-track beethoven symphony 7", () => { + const midi = new Midi( + readFileSync( + resolve( + __dirname, + "./midi/beethoven/symphony_7_2_singletrack.mid" + ) + ) + ); + + it("has the correct number of tracks", () => { + expect(midi.tracks.length).to.equal(17); + }); + }); + + describe("control changes on debussy claire de lune", () => { + const midi = new Midi( + readFileSync( + resolve(__dirname, "./midi/debussy/claire_de_lune.mid") + ) + ); + + it("tracks have control changes", () => { + midi.tracks.forEach((track) => { + expect(track.controlChanges).to.be.an("object"); + }); + expect(midi.tracks[1].controlChanges).to.include.keys([ + 10, + 64, + 7, + 91, + ]); + expect(midi.tracks[1].controlChanges[64]).to.have.length(326); + }); + + it("get control change attributes", () => { + expect(midi.tracks[1].controlChanges[64]).to.have.length(326); + const pedals = midi.tracks[1].controlChanges[64]; + expect(pedals[0]).has.property("ticks"); + expect(pedals[0]).has.property("time"); + expect(pedals[0]).has.property("name"); + expect(pedals[0]).has.property("number"); + expect(pedals[0]).has.property("value"); + + expect(midi.tracks[1].controlChanges[91]).to.have.length(1); + expect(midi.tracks[1].controlChanges[91][0]).to.have.property( + "name" + ); + expect(midi.tracks[1].controlChanges[91][0].name).to.equal(null); + }); + + it("get/set control change attributes", () => { + expect(midi.tracks[1].controlChanges[64]).to.have.length(326); + const pedals = midi.tracks[1].controlChanges[64]; + expect(pedals[2].ticks).equals(5132); + expect(pedals[2].value).equals(1); + expect(pedals[2].time).to.be.closeTo(9.541, 0.001); + + pedals[2].value = 0.5; + expect(pedals[2].value).equals(0.5); + + pedals[2].ticks = 5000; + expect(pedals[2].ticks).equals(5000); + expect(pedals[2].time).to.be.closeTo(9.303, 0.001); + + pedals[2].time = 9.541; + expect(pedals[2].time).to.be.closeTo(9.541, 0.001); + expect(pedals[2].ticks).to.equal(5132); + + expect(pedals[2].name).equals("sustain"); + }); + }); + + describe("getter for bach in format 0", () => { + const midi = new Midi( + readFileSync(resolve(__dirname, "./midi/bach/bach_format0.mid")) + ); + + it("has 1 track", () => { + expect(midi.tracks.length).to.equal(1); + }); + + it("tracks have correct names", () => { + expect(midi.tracks[0].name).to.include("Piano right"); + }); + + it("track has notes", () => { + expect(midi.tracks[0].notes).to.have.length(415); + }); + }); + + describe("Non-standard Format 1", () => { + const midi = new Midi( + readFileSync(resolve(__dirname, "./midi/joplin/TheEntertainer.mid")) + ); + + it("has 2 track", () => { + expect(midi.tracks.length).to.equal(2); + }); + + it("tracks have notes", () => { + expect(midi.tracks[0].notes).to.have.length(1387); + expect(midi.tracks[1].notes).to.have.length(1229); + }); + }); + + describe("Tchaikovsky symphony", () => { + const midi = new Midi( + readFileSync(resolve(__dirname, "./midi/tchaikovsky_seasons.mid")) + ); + + it("doesn't have negative durations", () => { + midi.tracks.forEach((track) => { + track.notes.forEach((note) => { + expect(note.duration).to.be.gte(0); + }); + }); + }); + }); + + describe("can add note to beethoven symphony 7", () => { + const midi = new Midi( + readFileSync( + resolve(__dirname, "./midi/beethoven/symphony_7_2.mid") + ) + ); + + it("can add a note", () => { + const firstTrack = midi.tracks[0]; + expect(firstTrack.notes).to.have.length(404); + + firstTrack.addNote({ + midi: 60, + time: 200, + velocity: 0.4, + duration: 0.5, + }); + + expect(firstTrack.notes).to.have.length(405); + + // was inserted in the right place + const note = firstTrack.notes.find( + (n) => n.velocity === 0.4 && n.midi === 60 + ); + expect(note.duration).to.be.closeTo(0.5, 0.01); + expect(note.time).to.be.closeTo(200, 0.01); + expect(note.ticks).to.be.equal(61440); + + // search the array to make sure that it's ordered + let lastTick = 0; + firstTrack.notes.forEach((n) => { + expect(n.ticks).at.least(lastTick); + lastTick = n.ticks; + }); + }); + + it("can add a note to the end of the array", () => { + const secondTrack = midi.tracks[1]; + expect(secondTrack.notes).to.have.length(420); + + const lastNote = secondTrack.notes[secondTrack.notes.length - 1]; + + const addedNote = Object.assign({}, lastNote); + addedNote.ticks = lastNote.ticks + 100; + secondTrack.addNote(addedNote); + + // incremented the length + expect(secondTrack.notes).to.have.length(421); + + // the previously last note is second to last + expect( + secondTrack.notes[secondTrack.notes.length - 2].ticks + ).to.equal(lastNote.ticks); + // has new last note + expect( + secondTrack.notes[secondTrack.notes.length - 1].ticks + ).to.equal(lastNote.ticks + 100); + }); + }); + + describe("add CC values", () => { + const midi = new Midi(); + + it("can add values", () => { + const track = midi.addTrack(); + track.addCC({ + number: 64, + value: 0, + time: 10, + }); + + expect(track.controlChanges.sustain).to.have.length(1); + expect(track.controlChanges[64]).to.have.length(1); + + // alias to the same array + expect(track.controlChanges[64][0]).to.have.property("value"); + expect(track.controlChanges[64][0].value).to.equal(0); + track.controlChanges[64][0].value = 0.5; + expect(track.controlChanges.sustain[0].value).to.equal(0.5); + // remove all sustain events + track.controlChanges.sustain = null; + expect(track.controlChanges[64]).is.not.ok; + }); + }); + + describe("PitchBend", () => { + it("can add values", () => { + const midi = new Midi(); + const track = midi.addTrack(); + track.addPitchBend({ + value: 0, + time: 1, + }); + expect(track.pitchBends).to.have.length(1); + }); + + it("can parse values from midi file", () => { + const midi = new Midi( + readFileSync(resolve(__dirname, "./midi/pitchBendTest.mid")) + ); + expect(midi.tracks[0].pitchBends[0].value).to.equal(0); + expect(midi.tracks[0].pitchBends[0].time).to.equal(0); + + expect(midi.tracks[0].pitchBends[25].ticks).to.equal(480); + expect(midi.tracks[0].pitchBends[25].value).to.be.closeTo(1, 0.01); + }); + }); +}); diff --git a/test/midi/230_bpm_multitrack.mid b/test/midi/230_bpm_multitrack.mid new file mode 100644 index 0000000000000000000000000000000000000000..68c40ac01ff40586eb29bc152acd4e3246ded85f GIT binary patch literal 25926 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 literal 0 HcmV?d00001 diff --git a/test/midi/bach/LICENSE b/test/midi/bach/LICENSE new file mode 100644 index 0000000..954f989 --- /dev/null +++ b/test/midi/bach/LICENSE @@ -0,0 +1,10 @@ +Creative Commons License +The MIDI, audio(MP3, OGG) and video files of Bernd Krueger are licensed under the cc-by-sa Germany License. +This means, that you can use and adapt the files, as long as you attribute to the copyright holder + +Name: Bernd Krueger +Source: http://www.piano-midi.de + +The distribution or public playback of the files is only allowed under identical license conditions. + +The scores are open source. \ No newline at end of file diff --git a/test/midi/bach/bach_846.json b/test/midi/bach/bach_846.json new file mode 100644 index 0000000..d0f7795 --- /dev/null +++ b/test/midi/bach/bach_846.json @@ -0,0 +1,14367 @@ +{ + "header": { + "keySignatures": [ + { + "key": "C", + "scale": "major", + "ticks": 0 + } + ], + "meta": [ + { + "text": "Copyright © 1996 Bernd Krueger.", + "ticks": 0, + "type": "copyrightNotice" + }, + { + "text": "Johann Sebastian Bach", + "ticks": 0, + "type": "text" + }, + { + "text": "Fertiggestellt am 29.10.97\n", + "ticks": 0, + "type": "text" + }, + { + "text": "Pan's auf Standard am 18.1.98\n", + "ticks": 0, + "type": "text" + }, + { + "text": "Normierung: 23.12.2002\n", + "ticks": 0, + "type": "text" + }, + { + "text": "Update am 25.9.2004\n", + "ticks": 0, + "type": "text" + }, + { + "text": "Dauer: 3:46 Minuten\n", + "ticks": 0, + "type": "text" + }, + { + "text": "Prelude", + "ticks": 0, + "type": "marker" + }, + { + "text": "Fugue", + "ticks": 67200, + "type": "marker" + }, + { + "text": "Fine", + "ticks": 119040, + "type": "marker" + } + ], + "name": "Das wohltemperierte Klavier I - Praeludium und Fuge 1 in C-Dur BWV 846", + "ppq": 480, + "tempos": [ + { + "bpm": 73.99998273333736, + "ticks": 0 + }, + { + "bpm": 75.49999874166669, + "ticks": 480 + }, + { + "bpm": 73.99998273333736, + "ticks": 600 + }, + { + "bpm": 75, + "ticks": 1560 + }, + { + "bpm": 73.99998273333736, + "ticks": 1920 + }, + { + "bpm": 75.99996960001216, + "ticks": 2280 + }, + { + "bpm": 77.99997660000702, + "ticks": 2400 + }, + { + "bpm": 75.99996960001216, + "ticks": 2520 + }, + { + "bpm": 75.49999874166669, + "ticks": 2880 + }, + { + "bpm": 76.99997818333952, + "ticks": 3240 + }, + { + "bpm": 78.9999657666815, + "ticks": 3360 + }, + { + "bpm": 76.99997818333952, + "ticks": 3480 + }, + { + "bpm": 73.99998273333736, + "ticks": 3720 + }, + { + "bpm": 74.5000117958352, + "ticks": 3840 + }, + { + "bpm": 76.99997818333952, + "ticks": 4200 + }, + { + "bpm": 80, + "ticks": 4320 + }, + { + "bpm": 76.99997818333952, + "ticks": 4440 + }, + { + "bpm": 76.99997818333952, + "ticks": 4680 + }, + { + "bpm": 74.5000117958352, + "ticks": 4800 + }, + { + "bpm": 75.99996960001216, + "ticks": 5160 + }, + { + "bpm": 77.99997660000702, + "ticks": 5280 + }, + { + "bpm": 75.99996960001216, + "ticks": 5400 + }, + { + "bpm": 72.50001812500453, + "ticks": 5640 + }, + { + "bpm": 75.99996960001216, + "ticks": 5760 + }, + { + "bpm": 78.50002158750594, + "ticks": 6240 + }, + { + "bpm": 75.99996960001216, + "ticks": 6360 + }, + { + "bpm": 73.4999577375243, + "ticks": 6600 + }, + { + "bpm": 75.99996960001216, + "ticks": 6720 + }, + { + "bpm": 77.99997660000702, + "ticks": 7200 + }, + { + "bpm": 75.99996960001216, + "ticks": 7320 + }, + { + "bpm": 73.99998273333736, + "ticks": 7680 + }, + { + "bpm": 75.99996960001216, + "ticks": 8040 + }, + { + "bpm": 77.99997660000702, + "ticks": 8160 + }, + { + "bpm": 76.49997322500937, + "ticks": 8280 + }, + { + "bpm": 73.99998273333736, + "ticks": 8640 + }, + { + "bpm": 76.49997322500937, + "ticks": 9000 + }, + { + "bpm": 77.99997660000702, + "ticks": 9120 + }, + { + "bpm": 76.49997322500937, + "ticks": 9240 + }, + { + "bpm": 74.5000117958352, + "ticks": 9480 + }, + { + "bpm": 76.49997322500937, + "ticks": 9600 + }, + { + "bpm": 78.50002158750594, + "ticks": 10080 + }, + { + "bpm": 76.99997818333952, + "ticks": 10200 + }, + { + "bpm": 74.5000117958352, + "ticks": 10560 + }, + { + "bpm": 76.99997818333952, + "ticks": 11040 + }, + { + "bpm": 72.50001812500453, + "ticks": 11400 + }, + { + "bpm": 75, + "ticks": 11520 + }, + { + "bpm": 76.99997818333952, + "ticks": 11880 + }, + { + "bpm": 77.99997660000702, + "ticks": 12000 + }, + { + "bpm": 76.99997818333952, + "ticks": 12120 + }, + { + "bpm": 73.99998273333736, + "ticks": 12360 + }, + { + "bpm": 75, + "ticks": 12480 + }, + { + "bpm": 77.49995479169304, + "ticks": 12840 + }, + { + "bpm": 72.50001812500453, + "ticks": 13320 + }, + { + "bpm": 74.5000117958352, + "ticks": 13440 + }, + { + "bpm": 77.49995479169304, + "ticks": 13920 + }, + { + "bpm": 73.99998273333736, + "ticks": 14280 + }, + { + "bpm": 76.49997322500937, + "ticks": 14400 + }, + { + "bpm": 77.49995479169304, + "ticks": 14880 + }, + { + "bpm": 72.50001812500453, + "ticks": 15240 + }, + { + "bpm": 75.99996960001216, + "ticks": 15360 + }, + { + "bpm": 73.99998273333736, + "ticks": 15960 + }, + { + "bpm": 75.49999874166669, + "ticks": 16320 + }, + { + "bpm": 73.4999577375243, + "ticks": 16920 + }, + { + "bpm": 68.50003196668159, + "ticks": 17160 + }, + { + "bpm": 73.4999577375243, + "ticks": 17280 + }, + { + "bpm": 75, + "ticks": 17640 + }, + { + "bpm": 73.4999577375243, + "ticks": 18240 + }, + { + "bpm": 75.49999874166669, + "ticks": 18600 + }, + { + "bpm": 72.50001812500453, + "ticks": 19080 + }, + { + "bpm": 75.49999874166669, + "ticks": 19200 + }, + { + "bpm": 76.49997322500937, + "ticks": 19680 + }, + { + "bpm": 75.49999874166669, + "ticks": 20160 + }, + { + "bpm": 76.99997818333952, + "ticks": 20640 + }, + { + "bpm": 73.99998273333736, + "ticks": 21020 + }, + { + "bpm": 75.49999874166669, + "ticks": 21120 + }, + { + "bpm": 76.99997818333952, + "ticks": 21600 + }, + { + "bpm": 72.50001812500453, + "ticks": 21960 + }, + { + "bpm": 75.49999874166669, + "ticks": 22080 + }, + { + "bpm": 76.49997322500937, + "ticks": 22580 + }, + { + "bpm": 72.99998296667064, + "ticks": 22920 + }, + { + "bpm": 72.00002880001152, + "ticks": 23040 + }, + { + "bpm": 75.49999874166669, + "ticks": 23160 + }, + { + "bpm": 76.49997322500937, + "ticks": 23520 + }, + { + "bpm": 75.49999874166669, + "ticks": 24000 + }, + { + "bpm": 76.49997322500937, + "ticks": 24480 + }, + { + "bpm": 72.00002880001152, + "ticks": 24840 + }, + { + "bpm": 75, + "ticks": 24960 + }, + { + "bpm": 76.49997322500937, + "ticks": 25440 + }, + { + "bpm": 75, + "ticks": 25920 + }, + { + "bpm": 76.49997322500937, + "ticks": 26400 + }, + { + "bpm": 72.99998296667064, + "ticks": 26760 + }, + { + "bpm": 75, + "ticks": 26880 + }, + { + "bpm": 75.49999874166669, + "ticks": 27240 + }, + { + "bpm": 77.49995479169304, + "ticks": 27360 + }, + { + "bpm": 75.49999874166669, + "ticks": 27840 + }, + { + "bpm": 76.99997818333952, + "ticks": 28320 + }, + { + "bpm": 71.00003550001774, + "ticks": 28680 + }, + { + "bpm": 74.5000117958352, + "ticks": 28800 + }, + { + "bpm": 76.49997322500937, + "ticks": 29280 + }, + { + "bpm": 74.5000117958352, + "ticks": 29760 + }, + { + "bpm": 75.99996960001216, + "ticks": 30240 + }, + { + "bpm": 70.49998590000283, + "ticks": 30600 + }, + { + "bpm": 74.5000117958352, + "ticks": 30720 + }, + { + "bpm": 75.99996960001216, + "ticks": 31200 + }, + { + "bpm": 71.00003550001774, + "ticks": 31560 + }, + { + "bpm": 74.5000117958352, + "ticks": 31680 + }, + { + "bpm": 75.49999874166669, + "ticks": 32160 + }, + { + "bpm": 70.49998590000283, + "ticks": 32520 + }, + { + "bpm": 74.5000117958352, + "ticks": 32640 + }, + { + "bpm": 74.5000117958352, + "ticks": 33600 + }, + { + "bpm": 72.50001812500453, + "ticks": 34560 + }, + { + "bpm": 74.5000117958352, + "ticks": 34920 + }, + { + "bpm": 72.99998296667064, + "ticks": 35520 + }, + { + "bpm": 75, + "ticks": 35880 + }, + { + "bpm": 75, + "ticks": 36480 + }, + { + "bpm": 76.99997818333952, + "ticks": 36960 + }, + { + "bpm": 75.49999874166669, + "ticks": 37080 + }, + { + "bpm": 75, + "ticks": 37440 + }, + { + "bpm": 76.99997818333952, + "ticks": 37920 + }, + { + "bpm": 75, + "ticks": 38040 + }, + { + "bpm": 68.50003196668159, + "ticks": 38280 + }, + { + "bpm": 75, + "ticks": 38400 + }, + { + "bpm": 76.49997322500937, + "ticks": 38880 + }, + { + "bpm": 75, + "ticks": 39360 + }, + { + "bpm": 75.99996960001216, + "ticks": 39840 + }, + { + "bpm": 69.50002837917826, + "ticks": 40200 + }, + { + "bpm": 73.4999577375243, + "ticks": 40320 + }, + { + "bpm": 74.5000117958352, + "ticks": 40800 + }, + { + "bpm": 73.4999577375243, + "ticks": 41280 + }, + { + "bpm": 75, + "ticks": 41760 + }, + { + "bpm": 64, + "ticks": 42120 + }, + { + "bpm": 75.99996960001216, + "ticks": 42240 + }, + { + "bpm": 77.99997660000702, + "ticks": 42840 + }, + { + "bpm": 72.99998296667064, + "ticks": 43080 + }, + { + "bpm": 75.99996960001216, + "ticks": 43200 + }, + { + "bpm": 77.49995479169304, + "ticks": 43800 + }, + { + "bpm": 73.4999577375243, + "ticks": 44040 + }, + { + "bpm": 73.4999577375243, + "ticks": 44160 + }, + { + "bpm": 75.99996960001216, + "ticks": 44520 + }, + { + "bpm": 73.99998273333736, + "ticks": 45120 + }, + { + "bpm": 75.99996960001216, + "ticks": 45480 + }, + { + "bpm": 72.00002880001152, + "ticks": 45960 + }, + { + "bpm": 74.5000117958352, + "ticks": 46080 + }, + { + "bpm": 75.99996960001216, + "ticks": 46560 + }, + { + "bpm": 74.5000117958352, + "ticks": 47040 + }, + { + "bpm": 76.49997322500937, + "ticks": 47520 + }, + { + "bpm": 75.99996960001216, + "ticks": 48000 + }, + { + "bpm": 77.99997660000702, + "ticks": 48480 + }, + { + "bpm": 73.4999577375243, + "ticks": 48840 + }, + { + "bpm": 73.99998273333736, + "ticks": 48960 + }, + { + "bpm": 75.49999874166669, + "ticks": 49080 + }, + { + "bpm": 77.99997660000702, + "ticks": 49440 + }, + { + "bpm": 76.99997818333952, + "ticks": 49680 + }, + { + "bpm": 73.4999577375243, + "ticks": 49800 + }, + { + "bpm": 75.49999874166669, + "ticks": 49920 + }, + { + "bpm": 76.99997818333952, + "ticks": 50400 + }, + { + "bpm": 75.49999874166669, + "ticks": 50880 + }, + { + "bpm": 76.99997818333952, + "ticks": 51360 + }, + { + "bpm": 72.99998296667064, + "ticks": 51720 + }, + { + "bpm": 75.49999874166669, + "ticks": 51840 + }, + { + "bpm": 73.4999577375243, + "ticks": 52440 + }, + { + "bpm": 75.49999874166669, + "ticks": 52800 + }, + { + "bpm": 72.99998296667064, + "ticks": 53400 + }, + { + "bpm": 69.00001725000432, + "ticks": 53640 + }, + { + "bpm": 69.99998833333528, + "ticks": 53760 + }, + { + "bpm": 75, + "ticks": 54120 + }, + { + "bpm": 75, + "ticks": 54360 + }, + { + "bpm": 71.49998629583595, + "ticks": 54720 + }, + { + "bpm": 75, + "ticks": 55080 + }, + { + "bpm": 69.99998833333528, + "ticks": 55560 + }, + { + "bpm": 75, + "ticks": 55680 + }, + { + "bpm": 76.49997322500937, + "ticks": 56280 + }, + { + "bpm": 75, + "ticks": 56640 + }, + { + "bpm": 76.49997322500937, + "ticks": 57240 + }, + { + "bpm": 70.49998590000283, + "ticks": 57600 + }, + { + "bpm": 75, + "ticks": 57720 + }, + { + "bpm": 71.49998629583595, + "ticks": 58560 + }, + { + "bpm": 74.5000117958352, + "ticks": 58680 + }, + { + "bpm": 73.4999577375243, + "ticks": 59520 + }, + { + "bpm": 74.5000117958352, + "ticks": 60000 + }, + { + "bpm": 70.49998590000283, + "ticks": 60360 + }, + { + "bpm": 73.4999577375243, + "ticks": 60480 + }, + { + "bpm": 74.5000117958352, + "ticks": 60960 + }, + { + "bpm": 71.49998629583595, + "ticks": 61320 + }, + { + "bpm": 73.4999577375243, + "ticks": 61440 + }, + { + "bpm": 75.49999874166669, + "ticks": 61800 + }, + { + "bpm": 73.4999577375243, + "ticks": 62020 + }, + { + "bpm": 75.99996960001216, + "ticks": 62400 + }, + { + "bpm": 73.4999577375243, + "ticks": 62520 + }, + { + "bpm": 71.00003550001774, + "ticks": 62880 + }, + { + "bpm": 66.49997340001065, + "ticks": 63120 + }, + { + "bpm": 59.50002132084097, + "ticks": 63240 + }, + { + "bpm": 71.00003550001774, + "ticks": 63360 + }, + { + "bpm": 63.49999259166753, + "ticks": 64320 + }, + { + "bpm": 54.500021345841695, + "ticks": 64800 + }, + { + "bpm": 54.00000540000054, + "ticks": 64820 + }, + { + "bpm": 53.50001560417122, + "ticks": 64840 + }, + { + "bpm": 52.50000656250082, + "ticks": 64860 + }, + { + "bpm": 52.000006933334255, + "ticks": 64880 + }, + { + "bpm": 50.99998215000625, + "ticks": 64900 + }, + { + "bpm": 50.499992004167936, + "ticks": 64920 + }, + { + "bpm": 50, + "ticks": 64940 + }, + { + "bpm": 48.9999918333347, + "ticks": 64960 + }, + { + "bpm": 48.50001576250512, + "ticks": 64980 + }, + { + "bpm": 47.499996041666996, + "ticks": 65000 + }, + { + "bpm": 46.99999060000188, + "ticks": 65020 + }, + { + "bpm": 46.49998488750491, + "ticks": 65040 + }, + { + "bpm": 45.50001099583599, + "ticks": 65060 + }, + { + "bpm": 45.000011250002814, + "ticks": 65080 + }, + { + "bpm": 44.000011733336464, + "ticks": 65100 + }, + { + "bpm": 43.500010875002715, + "ticks": 65120 + }, + { + "bpm": 42.499991145835175, + "ticks": 65140 + }, + { + "bpm": 31.49999842500008, + "ticks": 65160 + }, + { + "bpm": 62.41002554650379, + "ticks": 67200 + }, + { + "bpm": 62.5, + "ticks": 68160 + }, + { + "bpm": 67.00002903334591, + "ticks": 68520 + }, + { + "bpm": 62.99999685000016, + "ticks": 68640 + }, + { + "bpm": 61.49998462500384, + "ticks": 69120 + }, + { + "bpm": 63.49999259166753, + "ticks": 69360 + }, + { + "bpm": 61.49998462500384, + "ticks": 70200 + }, + { + "bpm": 63.49999259166753, + "ticks": 70320 + }, + { + "bpm": 61.49998462500384, + "ticks": 70800 + }, + { + "bpm": 63.49999259166753, + "ticks": 71040 + }, + { + "bpm": 67.00002903334591, + "ticks": 71400 + }, + { + "bpm": 63.49999259166753, + "ticks": 71520 + }, + { + "bpm": 61.99999586666694, + "ticks": 72000 + }, + { + "bpm": 64, + "ticks": 72240 + }, + { + "bpm": 62.5, + "ticks": 72960 + }, + { + "bpm": 63.49999259166753, + "ticks": 73200 + }, + { + "bpm": 64, + "ticks": 73440 + }, + { + "bpm": 61.49998462500384, + "ticks": 74160 + }, + { + "bpm": 67.49999156250105, + "ticks": 74280 + }, + { + "bpm": 64, + "ticks": 74400 + }, + { + "bpm": 61.49998462500384, + "ticks": 74880 + }, + { + "bpm": 64, + "ticks": 75120 + }, + { + "bpm": 61.99999586666694, + "ticks": 76080 + }, + { + "bpm": 64, + "ticks": 76320 + }, + { + "bpm": 68.50003196668159, + "ticks": 77160 + }, + { + "bpm": 63.49999259166753, + "ticks": 77280 + }, + { + "bpm": 61.99999586666694, + "ticks": 77760 + }, + { + "bpm": 63.49999259166753, + "ticks": 78000 + }, + { + "bpm": 66.49997340001065, + "ticks": 78480 + }, + { + "bpm": 63.49999259166753, + "ticks": 78720 + }, + { + "bpm": 61.99999586666694, + "ticks": 79440 + }, + { + "bpm": 63.49999259166753, + "ticks": 79680 + }, + { + "bpm": 67.00002903334591, + "ticks": 80040 + }, + { + "bpm": 64, + "ticks": 80160 + }, + { + "bpm": 61.99999586666694, + "ticks": 80660 + }, + { + "bpm": 63.49999259166753, + "ticks": 80880 + }, + { + "bpm": 63.49999259166753, + "ticks": 81120 + }, + { + "bpm": 65.99999340000066, + "ticks": 81360 + }, + { + "bpm": 61.49998462500384, + "ticks": 81600 + }, + { + "bpm": 63.49999259166753, + "ticks": 81840 + }, + { + "bpm": 65.99999340000066, + "ticks": 82320 + }, + { + "bpm": 61.99999586666694, + "ticks": 82440 + }, + { + "bpm": 63.49999259166753, + "ticks": 82560 + }, + { + "bpm": 67.00002903334591, + "ticks": 83880 + }, + { + "bpm": 63.49999259166753, + "ticks": 84000 + }, + { + "bpm": 64, + "ticks": 84360 + }, + { + "bpm": 61.49998462500384, + "ticks": 84480 + }, + { + "bpm": 64, + "ticks": 84720 + }, + { + "bpm": 66.49997340001065, + "ticks": 84960 + }, + { + "bpm": 65.99999340000066, + "ticks": 85060 + }, + { + "bpm": 65.49996670418359, + "ticks": 85160 + }, + { + "bpm": 64.99999458333379, + "ticks": 85260 + }, + { + "bpm": 64.49996936251455, + "ticks": 85360 + }, + { + "bpm": 65.99999340000066, + "ticks": 85440 + }, + { + "bpm": 65.49996670418359, + "ticks": 85560 + }, + { + "bpm": 64.99999458333379, + "ticks": 85680 + }, + { + "bpm": 64.49996936251455, + "ticks": 85800 + }, + { + "bpm": 64, + "ticks": 85920 + }, + { + "bpm": 62.5, + "ticks": 86160 + }, + { + "bpm": 64, + "ticks": 86400 + }, + { + "bpm": 67.00002903334591, + "ticks": 86760 + }, + { + "bpm": 64, + "ticks": 86880 + }, + { + "bpm": 67.49999156250105, + "ticks": 87240 + }, + { + "bpm": 64, + "ticks": 87360 + }, + { + "bpm": 61.49998462500384, + "ticks": 87840 + }, + { + "bpm": 64, + "ticks": 88080 + }, + { + "bpm": 61.99999586666694, + "ticks": 88560 + }, + { + "bpm": 63.49999259166753, + "ticks": 88800 + }, + { + "bpm": 67.00002903334591, + "ticks": 89640 + }, + { + "bpm": 64, + "ticks": 89760 + }, + { + "bpm": 61.49998462500384, + "ticks": 90240 + }, + { + "bpm": 64, + "ticks": 90480 + }, + { + "bpm": 60.44000322346684, + "ticks": 91440 + }, + { + "bpm": 56.9900153493108, + "ticks": 91680 + }, + { + "bpm": 62.41002554650379, + "ticks": 92160 + }, + { + "bpm": 59.50002132084097, + "ticks": 92880 + }, + { + "bpm": 62.5, + "ticks": 93120 + }, + { + "bpm": 65.99999340000066, + "ticks": 93480 + }, + { + "bpm": 62.99999685000016, + "ticks": 93600 + }, + { + "bpm": 61.49998462500384, + "ticks": 94080 + }, + { + "bpm": 62.99999685000016, + "ticks": 94320 + }, + { + "bpm": 64.99999458333379, + "ticks": 94680 + }, + { + "bpm": 61.49998462500384, + "ticks": 94920 + }, + { + "bpm": 62.99999685000016, + "ticks": 95040 + }, + { + "bpm": 60.99997255001235, + "ticks": 95760 + }, + { + "bpm": 62.99999685000016, + "ticks": 96000 + }, + { + "bpm": 65.99999340000066, + "ticks": 96360 + }, + { + "bpm": 61.49998462500384, + "ticks": 96480 + }, + { + "bpm": 62.99999685000016, + "ticks": 96720 + }, + { + "bpm": 60, + "ticks": 97320 + }, + { + "bpm": 62.99999685000016, + "ticks": 97440 + }, + { + "bpm": 65.49996670418359, + "ticks": 97800 + }, + { + "bpm": 61.49998462500384, + "ticks": 97920 + }, + { + "bpm": 62.99999685000016, + "ticks": 98160 + }, + { + "bpm": 65.99999340000066, + "ticks": 99120 + }, + { + "bpm": 62.99999685000016, + "ticks": 99360 + }, + { + "bpm": 60.99997255001235, + "ticks": 99840 + }, + { + "bpm": 60.99997255001235, + "ticks": 100080 + }, + { + "bpm": 62.99999685000016, + "ticks": 100320 + }, + { + "bpm": 65.49996670418359, + "ticks": 100560 + }, + { + "bpm": 62.99999685000016, + "ticks": 100800 + }, + { + "bpm": 62.99999685000016, + "ticks": 101280 + }, + { + "bpm": 60.49997176667984, + "ticks": 101520 + }, + { + "bpm": 62.99999685000016, + "ticks": 101760 + }, + { + "bpm": 60.49997176667984, + "ticks": 102120 + }, + { + "bpm": 62.5, + "ticks": 103200 + }, + { + "bpm": 62.5, + "ticks": 103680 + }, + { + "bpm": 57.999986466669824, + "ticks": 104280 + }, + { + "bpm": 61.99999586666694, + "ticks": 104400 + }, + { + "bpm": 64, + "ticks": 104880 + }, + { + "bpm": 62.5, + "ticks": 105120 + }, + { + "bpm": 59.50002132084097, + "ticks": 105960 + }, + { + "bpm": 62.5, + "ticks": 106080 + }, + { + "bpm": 59.50002132084097, + "ticks": 106560 + }, + { + "bpm": 62.99999685000016, + "ticks": 106800 + }, + { + "bpm": 65.49996670418359, + "ticks": 107760 + }, + { + "bpm": 62.99999685000016, + "ticks": 108000 + }, + { + "bpm": 60.99997255001235, + "ticks": 108240 + }, + { + "bpm": 62.5, + "ticks": 109200 + }, + { + "bpm": 61.49998462500384, + "ticks": 109440 + }, + { + "bpm": 59.45998442148408, + "ticks": 110400 + }, + { + "bpm": 53.55999925016001, + "ticks": 110640 + }, + { + "bpm": 56.9900153493108, + "ticks": 111360 + }, + { + "bpm": 60, + "ticks": 112560 + }, + { + "bpm": 53.50001560417122, + "ticks": 112680 + }, + { + "bpm": 56.99997720000912, + "ticks": 112800 + }, + { + "bpm": 59.50002132084097, + "ticks": 113520 + }, + { + "bpm": 54.00000540000054, + "ticks": 113640 + }, + { + "bpm": 56.99997720000912, + "ticks": 113760 + }, + { + "bpm": 55.03001887529648, + "ticks": 114360 + }, + { + "bpm": 54.540000545400005, + "ticks": 115360 + }, + { + "bpm": 54.050012476544545, + "ticks": 115520 + }, + { + "bpm": 53.55999925016001, + "ticks": 115680 + }, + { + "bpm": 53.06001529897108, + "ticks": 115840 + }, + { + "bpm": 52.570016690980296, + "ticks": 116000 + }, + { + "bpm": 52.0799879174428, + "ticks": 116160 + }, + { + "bpm": 55.50000416250031, + "ticks": 116280 + }, + { + "bpm": 52.000006933334255, + "ticks": 116400 + }, + { + "bpm": 54.500021345841695, + "ticks": 117000 + }, + { + "bpm": 52.000006933334255, + "ticks": 117120 + }, + { + "bpm": 45.210000452100005, + "ticks": 117600 + }, + { + "bpm": 37.82999578195547, + "ticks": 117720 + }, + { + "bpm": 26.520005144880997, + "ticks": 117960 + }, + { + "bpm": 27.00000270000027, + "ticks": 119040 + }, + { + "bpm": 62.41002554650379, + "ticks": 134400 + } + ], + "timeSignatures": [ + { + "ticks": 0, + "timeSignature": [ + 4, + 4 + ], + "measures": 0 + } + ] + }, + "tracks": [ + { + "channel": 0, + "controlChanges": { + "7": [ + { + "number": 7, + "ticks": 0, + "time": 0, + "value": 0.7874015748031497 + } + ], + "10": [ + { + "number": 10, + "ticks": 0, + "time": 0, + "value": 0.5039370078740157 + } + ], + "91": [ + { + "number": 91, + "ticks": 0, + "time": 0, + "value": 1 + }, + { + "number": 91, + "ticks": 1920, + "time": 3.2311085, + "value": 1 + }, + { + "number": 91, + "ticks": 3840, + "time": 6.394017, + "value": 1 + }, + { + "number": 91, + "ticks": 5760, + "time": 9.560101249999997, + "value": 1 + }, + { + "number": 91, + "ticks": 7680, + "time": 12.713363999999997, + "value": 1 + }, + { + "number": 91, + "ticks": 9600, + "time": 15.889377749999996, + "value": 1 + }, + { + "number": 91, + "ticks": 11520, + "time": 19.045871499999997, + "value": 1 + }, + { + "number": 91, + "ticks": 13440, + "time": 22.206388250000003, + "value": 1 + }, + { + "number": 91, + "ticks": 15360, + "time": 25.3669615, + "value": 1 + }, + { + "number": 91, + "ticks": 17280, + "time": 28.58243125, + "value": 1 + }, + { + "number": 91, + "ticks": 19200, + "time": 31.80852025, + "value": 1 + }, + { + "number": 91, + "ticks": 21120, + "time": 34.96804050000001, + "value": 1 + }, + { + "number": 91, + "ticks": 23040, + "time": 38.14290458333334, + "value": 1 + }, + { + "number": 91, + "ticks": 24960, + "time": 41.32284908333335, + "value": 1 + }, + { + "number": 91, + "ticks": 26880, + "time": 44.500878083333355, + "value": 1 + }, + { + "number": 91, + "ticks": 28800, + "time": 47.664132833333355, + "value": 1 + }, + { + "number": 91, + "ticks": 30720, + "time": 50.86405633333336, + "value": 1 + }, + { + "number": 91, + "ticks": 32640, + "time": 54.08695983333336, + "value": 1 + }, + { + "number": 91, + "ticks": 34560, + "time": 57.308435833333355, + "value": 1 + }, + { + "number": 91, + "ticks": 36480, + "time": 60.552275083333356, + "value": 1 + }, + { + "number": 91, + "ticks": 38400, + "time": 63.75689008333335, + "value": 1 + }, + { + "number": 91, + "ticks": 40320, + "time": 66.94913683333336, + "value": 1 + }, + { + "number": 91, + "ticks": 42240, + "time": 70.22153483333335, + "value": 1 + }, + { + "number": 91, + "ticks": 44160, + "time": 73.37649358333333, + "value": 1 + }, + { + "number": 91, + "ticks": 46080, + "time": 76.58149683333332, + "value": 1 + }, + { + "number": 91, + "ticks": 48000, + "time": 79.76602283333331, + "value": 1 + }, + { + "number": 91, + "ticks": 49920, + "time": 82.91873358333329, + "value": 1 + }, + { + "number": 91, + "ticks": 51840, + "time": 86.0772538333333, + "value": 1 + }, + { + "number": 91, + "ticks": 53760, + "time": 89.3046043333333, + "value": 1 + }, + { + "number": 91, + "ticks": 55680, + "time": 92.59111808333331, + "value": 1 + }, + { + "number": 91, + "ticks": 57600, + "time": 95.7675890833333, + "value": 1 + }, + { + "number": 91, + "ticks": 59520, + "time": 98.99954108333331, + "value": 1 + } + ] + }, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "Piano right", + "notes": [ + { + "duration": 0.20270275, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 241, + "time": 0.40709468958333334, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.20266918958333335, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 361, + "time": 0.6097974395833333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17880795000000005, + "durationTicks": 108, + "midi": 76, + "name": "E5", + "ticks": 481, + "time": 0.8124666291666667, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.20270275000000004, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 601, + "time": 1.0111756895833333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20270275000000004, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 721, + "time": 1.2138784395833333, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.20270274999999982, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 841, + "time": 1.4165811895833333, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.20270274999999982, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 1201, + "time": 2.0246894395833337, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.20270274999999982, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 1321, + "time": 2.2273921895833335, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.18243247500000015, + "durationTicks": 108, + "midi": 76, + "name": "E5", + "ticks": 1441, + "time": 2.4300949395833333, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.20000000000000018, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 1561, + "time": 2.6327751666666663, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20000000000000018, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 1681, + "time": 2.8327751666666665, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.20002252291666656, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 1801, + "time": 3.0327751666666667, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.20265829791666645, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 2161, + "time": 3.6382031895833333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.1973263270833332, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 2281, + "time": 3.8408614875, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17307697499999986, + "durationTicks": 108, + "midi": 77, + "name": "F5", + "ticks": 2401, + "time": 4.038187814583333, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.1973684999999996, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 2521, + "time": 4.230537737500001, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.1973684999999996, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 2641, + "time": 4.4279062375, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19737939166666685, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 2761, + "time": 4.6252747375, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19864324791666643, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 3121, + "time": 5.220005129166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.19476415208333364, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 3241, + "time": 5.418648377083333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1708861500000003, + "durationTicks": 108, + "midi": 77, + "name": "F5", + "ticks": 3361, + "time": 5.613412529166666, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.19480525000000082, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 3481, + "time": 5.803327127083333, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.19487106249999986, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 3601, + "time": 5.9981323770833335, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.2026914125000001, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 3721, + "time": 6.193003439583333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20128777499999995, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 4081, + "time": 6.798379352083333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19474437291666735, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 4201, + "time": 6.999667127083333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1687499999999993, + "durationTicks": 108, + "midi": 77, + "name": "F5", + "ticks": 4321, + "time": 7.1944115, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.19480524999999993, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 4441, + "time": 7.381972377083333, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.19480524999999993, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 4561, + "time": 7.576777627083333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.1948597250000006, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 4681, + "time": 7.771582877083333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.2013091354166665, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 5041, + "time": 8.369127102083333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.1973263270833332, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 5161, + "time": 8.5704362375, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17307697500000074, + "durationTicks": 108, + "midi": 77, + "name": "F5", + "ticks": 5281, + "time": 8.767762564583332, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.1973684999999996, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 5401, + "time": 8.960112487499998, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.19744790000000023, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 5521, + "time": 9.157480987499998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20681709999999853, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 5641, + "time": 9.354928887499998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.1973684999999996, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 6001, + "time": 9.956482987499998, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19731611875000077, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 6121, + "time": 10.153851487499997, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.17197447499999896, + "durationTicks": 108, + "midi": 76, + "name": "E5", + "ticks": 6241, + "time": 10.351167606249998, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1973684999999996, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 6361, + "time": 10.542302737499996, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19742444375000012, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 6481, + "time": 10.739671237499996, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.20402580624999977, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 6601, + "time": 10.937095681249996, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1973684999999996, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 6961, + "time": 11.535858487499997, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.1973263270833332, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 7081, + "time": 11.733226987499997, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.17307697500000074, + "durationTicks": 108, + "midi": 76, + "name": "E5", + "ticks": 7201, + "time": 11.93055331458333, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.1973684999999996, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 7321, + "time": 12.122903237499996, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.1973685000000014, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 7441, + "time": 12.320271737499995, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.19741295208333298, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 7561, + "time": 12.517640237499997, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.2026582979166669, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 7921, + "time": 13.12045868958333, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.1973263270833332, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 8041, + "time": 13.323116987499997, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.17307697500000074, + "durationTicks": 108, + "midi": 81, + "name": "A5", + "ticks": 8161, + "time": 13.52044331458333, + "velocity": 0.5511811023622047 + }, + { + "duration": 0.1960785000000005, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 8281, + "time": 13.712782487499997, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 8401, + "time": 13.908860987499997, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.19613370208333336, + "durationTicks": 120, + "midi": 81, + "name": "A5", + "ticks": 8521, + "time": 14.104939487499996, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.2026475479166674, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 8881, + "time": 14.70647868958333, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.19604707708333358, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 9001, + "time": 14.909126237499997, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.17307697500000074, + "durationTicks": 108, + "midi": 81, + "name": "A5", + "ticks": 9121, + "time": 15.10517331458333, + "velocity": 0.5354330708661418 + }, + { + "duration": 0.1960785000000005, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 9241, + "time": 15.297512487499997, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.19612236458333143, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 9361, + "time": 15.493590987499998, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.201298385416667, + "durationTicks": 120, + "midi": 81, + "name": "A5", + "ticks": 9481, + "time": 15.689713352083329, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.19607850000000226, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 9841, + "time": 16.283168737499995, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19603686874999937, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 9961, + "time": 16.479247237499997, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17197447499999896, + "durationTicks": 108, + "midi": 74, + "name": "D5", + "ticks": 10081, + "time": 16.675284106249997, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.19480524999999815, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 10201, + "time": 16.86639787708333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.1948052500000017, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 10321, + "time": 17.061203127083328, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1948597250000006, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 10441, + "time": 17.25600837708333, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.20134224999999972, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 10801, + "time": 17.85355260208333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.20128777500000083, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 10921, + "time": 18.05489485208333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1753247249999994, + "durationTicks": 108, + "midi": 74, + "name": "D5", + "ticks": 11041, + "time": 18.25618262708333, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.1948052500000017, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 11161, + "time": 18.450987877083328, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19490601041666622, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 11281, + "time": 18.64579312708333, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.20683902916666597, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 11401, + "time": 18.840699137499996, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.19995671041666796, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 11761, + "time": 19.447538166666664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.19478443750000096, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 11881, + "time": 19.647494877083332, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.17307697500000074, + "durationTicks": 108, + "midi": 79, + "name": "G5", + "ticks": 12001, + "time": 19.842279314583333, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.19480524999999815, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 12121, + "time": 20.034607877083335, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.19487106250000252, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 12241, + "time": 20.229413127083333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20268022708333078, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 12361, + "time": 20.424284189583336, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19994623750000073, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 12721, + "time": 21.02696441666667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.19354849999999857, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 12841, + "time": 21.22691065416667, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.17419365000000298, + "durationTicks": 108, + "midi": 79, + "name": "G5", + "ticks": 12961, + "time": 21.420459154166668, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.19354849999999857, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 13081, + "time": 21.61400765416667, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.19365973333333386, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 13201, + "time": 21.80755615416667, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20685021458333352, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 13321, + "time": 22.001215887500003, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20134224999999972, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 13681, + "time": 22.610750602083336, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.2012773020833336, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 13801, + "time": 22.812092852083335, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17419364999999942, + "durationTicks": 108, + "midi": 72, + "name": "C5", + "ticks": 13921, + "time": 23.01337015416667, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.19354850000000212, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 14041, + "time": 23.206918654166667, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.1936247854166666, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 14161, + "time": 23.40046715416667, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.20264754791666562, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 14281, + "time": 23.594091939583336, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 14641, + "time": 24.188896487500003, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19605741666666532, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 14761, + "time": 24.3849749875, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17419364999999942, + "durationTicks": 108, + "midi": 72, + "name": "C5", + "ticks": 14881, + "time": 24.581032404166667, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.19354850000000212, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 15001, + "time": 24.774580904166665, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.1936597333333303, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 15121, + "time": 24.968129404166667, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.20681710000000209, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 15241, + "time": 25.161789137499998, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.1973684999999996, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 15601, + "time": 25.7633432375, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.1973684999999996, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 15721, + "time": 25.9607117375, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1776316499999986, + "durationTicks": 108, + "midi": 72, + "name": "C5", + "ticks": 15841, + "time": 26.1580802375, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.20270275000000026, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 15961, + "time": 26.35549318958333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.2027027499999967, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 16081, + "time": 26.55819593958333, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.2026691895833359, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 16201, + "time": 26.76089868958333, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 16561, + "time": 27.360918879166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 16681, + "time": 27.559594379166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1788079499999995, + "durationTicks": 108, + "midi": 72, + "name": "C5", + "ticks": 16801, + "time": 27.758269879166665, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 16921, + "time": 27.95699043125, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20420588541666618, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 17041, + "time": 28.16107218125, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.218853864583334, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 17161, + "time": 28.365278066666665, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.20404773541666543, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 17521, + "time": 28.99229543125, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 17641, + "time": 29.196343166666665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17999999999999972, + "durationTicks": 108, + "midi": 72, + "name": "C5", + "ticks": 17761, + "time": 29.396343166666668, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.1999999999999993, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 17881, + "time": 29.596343166666667, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.1999999999999993, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 18001, + "time": 29.796343166666666, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.20003401458333414, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 18121, + "time": 29.996343166666666, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.204036697916667, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 18481, + "time": 30.60454068125, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 18601, + "time": 30.808577379166667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1788079499999995, + "durationTicks": 108, + "midi": 72, + "name": "C5", + "ticks": 18721, + "time": 31.007252879166668, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 18841, + "time": 31.205928379166668, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19874400833333183, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 18961, + "time": 31.404603879166668, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.20682799166666754, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 19081, + "time": 31.6033478875, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 19441, + "time": 32.207526879166664, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19865385833333704, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 19561, + "time": 32.406202379166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17647064999999884, + "durationTicks": 108, + "midi": 71, + "name": "B4", + "ticks": 19681, + "time": 32.6048562375, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 19801, + "time": 32.8009347375, + "velocity": 0.36220472440944884 + }, + { + "duration": 0.19607850000000582, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 19921, + "time": 32.9970132375, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.1961001416666619, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 20041, + "time": 33.193091737500005, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 20401, + "time": 33.78654287916667, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19864324791667087, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 20521, + "time": 33.98521837916667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17532472500000296, + "durationTicks": 108, + "midi": 71, + "name": "B4", + "ticks": 20641, + "time": 34.18386162708334, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.1948052499999946, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 20761, + "time": 34.37866687708334, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1948052500000017, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 20881, + "time": 34.573472127083335, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.2014187520833346, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 21001, + "time": 34.768277377083336, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 21361, + "time": 35.36704712916667, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19864324791667087, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 21481, + "time": 35.56572262916667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17532472500000296, + "durationTicks": 108, + "midi": 73, + "name": "C#5", + "ticks": 21601, + "time": 35.76436587708334, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1948052499999946, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 21721, + "time": 35.959171127083344, + "velocity": 0.36220472440944884 + }, + { + "duration": 0.19490601041666622, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 21841, + "time": 36.15397637708334, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.206827991666664, + "durationTicks": 120, + "midi": 73, + "name": "C#5", + "ticks": 21961, + "time": 36.348882387500005, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 22321, + "time": 36.95306137916667, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 22441, + "time": 37.15173687916667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17688184166666332, + "durationTicks": 108, + "midi": 73, + "name": "C#5", + "ticks": 22561, + "time": 37.35041237916667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 22681, + "time": 37.54690207083333, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1961568416666708, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 22801, + "time": 37.74298057083333, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20550328125000306, + "durationTicks": 120, + "midi": 73, + "name": "C#5", + "ticks": 22921, + "time": 37.9391374125, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 23281, + "time": 38.551568962500006, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19865385833333704, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 23401, + "time": 38.75024446250001, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17647064999999884, + "durationTicks": 108, + "midi": 74, + "name": "D5", + "ticks": 23521, + "time": 38.948898320833344, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 23641, + "time": 39.14497682083334, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19607850000000582, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 23761, + "time": 39.34105532083334, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1961001416666619, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 23881, + "time": 39.53713382083335, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 24241, + "time": 40.13058496250001, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19865385833333704, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 24361, + "time": 40.32926046250001, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17647064999999884, + "durationTicks": 108, + "midi": 74, + "name": "D5", + "ticks": 24481, + "time": 40.52791432083335, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 24601, + "time": 40.723992820833345, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19618062291667115, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 24721, + "time": 40.920071320833344, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.2082638062500024, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 24841, + "time": 41.116251943750015, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 25201, + "time": 41.724515750000016, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19996732083333058, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 25321, + "time": 41.92451575000002, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17647064999999884, + "durationTicks": 108, + "midi": 71, + "name": "B4", + "ticks": 25441, + "time": 42.12448307083335, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 25561, + "time": 42.32056157083335, + "velocity": 0.36220472440944884 + }, + { + "duration": 0.19607850000000582, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 25681, + "time": 42.51664007083335, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19611117916666387, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 25801, + "time": 42.71271857083335, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 26161, + "time": 43.308829750000015, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19996732083333058, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 26281, + "time": 43.50882975000002, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17647064999999884, + "durationTicks": 108, + "midi": 71, + "name": "B4", + "ticks": 26401, + "time": 43.70879707083335, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 26521, + "time": 43.90487557083335, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1961568416666708, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 26641, + "time": 44.100954070833346, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20543383750000288, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 26761, + "time": 44.29711091250002, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19998896250000087, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 27121, + "time": 44.90254475000002, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.1986327750000072, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 27241, + "time": 45.10253371250002, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17419364999999942, + "durationTicks": 108, + "midi": 72, + "name": "C5", + "ticks": 27361, + "time": 45.301166487500026, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.19354849999999857, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 27481, + "time": 45.494714987500025, + "velocity": 0.36220472440944884 + }, + { + "duration": 0.19354849999999857, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 27601, + "time": 45.68826348750002, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.1935912249999987, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 27721, + "time": 45.88181198750002, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 28081, + "time": 46.47275421250002, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19864324791667087, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 28201, + "time": 46.67142971250002, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17532472500000296, + "durationTicks": 108, + "midi": 72, + "name": "C5", + "ticks": 28321, + "time": 46.87007296041669, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.1948052499999946, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 28441, + "time": 47.064878210416694, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1949424354166709, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 28561, + "time": 47.25968346041669, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.21118478958332787, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 28681, + "time": 47.45462589583336, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 29041, + "time": 48.06849518541669, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20129838541666345, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 29161, + "time": 48.26983743541669, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.17647064999999884, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 29281, + "time": 48.471135820833354, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 29401, + "time": 48.66721432083335, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19607850000000582, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 29521, + "time": 48.86329282083335, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.19612236458333143, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 29641, + "time": 49.05937132083336, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 30001, + "time": 49.65817818541669, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20130913541666473, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 30121, + "time": 49.85952043541669, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.17763165000000214, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 30241, + "time": 50.060829570833356, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.19736850000000317, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 30361, + "time": 50.25819807083335, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19749681249999895, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 30481, + "time": 50.455566570833355, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.21267080208333766, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 30601, + "time": 50.653063383333354, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 30961, + "time": 51.26841868541669, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20130913541666473, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 31081, + "time": 51.469760935416694, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.17763165000000214, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 31201, + "time": 51.67107007083336, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19736850000000317, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 31321, + "time": 51.868438570833355, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.1974843250000049, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 31441, + "time": 52.06580707083336, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.21118478958332787, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 31561, + "time": 52.26329139583336, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 31921, + "time": 52.87716068541669, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20132002708332664, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 32041, + "time": 53.078502935416694, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.1788079500000066, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 32161, + "time": 53.27982296250002, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 32281, + "time": 53.47849846250002, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.1987929208333341, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 32401, + "time": 53.67717396250002, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.21267080208333766, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 32521, + "time": 53.875966883333355, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 32881, + "time": 54.49132218541669, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 33001, + "time": 54.692664435416695, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.18120802500000366, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 33121, + "time": 54.89400668541669, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 33241, + "time": 55.095348935416695, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 33361, + "time": 55.29669118541669, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 33481, + "time": 55.498033435416694, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 33841, + "time": 56.10206018541669, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 33961, + "time": 56.30340243541669, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.18120802500000366, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 34081, + "time": 56.50474468541669, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 34201, + "time": 56.70608693541669, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 34321, + "time": 56.90742918541669, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.2013885354166618, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 34441, + "time": 57.10877143541669, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.20685021458333352, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 34801, + "time": 57.72395297083335, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 34921, + "time": 57.930803185416686, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.18120802499999655, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 35041, + "time": 58.13214543541669, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.20134225000000328, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 35161, + "time": 58.333487685416685, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 35281, + "time": 58.53482993541669, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20137672708333554, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 35401, + "time": 58.736172185416684, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20543383750000288, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 35761, + "time": 59.34850791250002, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 35881, + "time": 59.55394175000002, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.17999999999999972, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 36001, + "time": 59.753941750000024, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 36121, + "time": 59.95394175000002, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 36241, + "time": 60.15394175000002, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.19999999999999574, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 36361, + "time": 60.353941750000025, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 36721, + "time": 60.95394175000002, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1999567104166644, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 36841, + "time": 61.15394175000002, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.17532472500000296, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 36961, + "time": 61.35389846041669, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 37081, + "time": 61.54873596250002, + "velocity": 0.3228346456692913 + }, + { + "duration": 0.19867550000000023, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 37201, + "time": 61.74741146250002, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.1986865375000022, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 37321, + "time": 61.94608696250002, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 37681, + "time": 62.54477350000002, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1999567104166644, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 37801, + "time": 62.74477350000002, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.17532472500000296, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 37921, + "time": 62.94473021041669, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 38041, + "time": 63.13957875000002, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20015815000000003, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 38161, + "time": 63.33957875000002, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.2188198499999956, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 38281, + "time": 63.53973690000002, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 38641, + "time": 64.15855675000002, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.19996732083333768, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 38761, + "time": 64.35855675000002, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.17647064999999884, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 38881, + "time": 64.55852407083336, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 39001, + "time": 64.75460257083336, + "velocity": 0.3228346456692913 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 39121, + "time": 64.95068107083335, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.19611117916666387, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 39241, + "time": 65.14675957083335, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 39601, + "time": 65.74287075000002, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.19997807083332475, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 39721, + "time": 65.94287075000003, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.17763164999999503, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 39841, + "time": 66.14284882083335, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.19736849999999606, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 39961, + "time": 66.34021732083335, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.1975223229166687, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 40081, + "time": 66.53758582083334, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.2157293708333441, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 40201, + "time": 66.73510814375001, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 40561, + "time": 67.35900101458336, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.204058920833333, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 40681, + "time": 67.56308276458336, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.18120802500000366, + "durationTicks": 108, + "midi": 63, + "name": "D#4", + "ticks": 40801, + "time": 67.76714168541669, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.20134225000001038, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 40921, + "time": 67.96848393541669, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 41041, + "time": 68.1698261854167, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20136507916666346, + "durationTicks": 120, + "midi": 63, + "name": "D#4", + "ticks": 41161, + "time": 68.37116843541669, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 41521, + "time": 68.98069701458336, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20404773541666543, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 41641, + "time": 69.18477876458336, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.18000000000000682, + "durationTicks": 108, + "midi": 63, + "name": "D#4", + "ticks": 41761, + "time": 69.38882650000002, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 41881, + "time": 69.58882650000002, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20028645833332348, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 42001, + "time": 69.78882650000003, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.23406661250000127, + "durationTicks": 120, + "midi": 63, + "name": "D#4", + "ticks": 42121, + "time": 69.98911295833335, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.19736850000001027, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 42481, + "time": 70.61791657083334, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.19736849999999606, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 42601, + "time": 70.81528507083335, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.17763164999999503, + "durationTicks": 108, + "midi": 62, + "name": "D4", + "ticks": 42721, + "time": 71.01265357083335, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19230774999999767, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 42841, + "time": 71.20997989791668, + "velocity": 0.3228346456692913 + }, + { + "duration": 0.192417514583326, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 42961, + "time": 71.40228764791668, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.2054119083333319, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 43081, + "time": 71.5947051625, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.19736850000001027, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 43441, + "time": 72.19485407083333, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.19736849999999606, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 43561, + "time": 72.39222257083334, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.17763164999999503, + "durationTicks": 108, + "midi": 62, + "name": "D4", + "ticks": 43681, + "time": 72.58959107083334, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.19354850000000567, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 43801, + "time": 72.7869277375, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.19363627708332842, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 43921, + "time": 72.9804762375, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 44041, + "time": 73.17411251458333, + "velocity": 0.31496062992125984 + }, + { + "duration": 0.20402580625000155, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 44401, + "time": 73.78635776458333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19736849999999606, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 44521, + "time": 73.99038357083333, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.17763165000000924, + "durationTicks": 108, + "midi": 62, + "name": "D4", + "ticks": 44641, + "time": 74.18775207083333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19736850000001027, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 44761, + "time": 74.38512057083332, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19736849999999606, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 44881, + "time": 74.58248907083333, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.19741295208332588, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 45001, + "time": 74.77985757083333, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20265829791667045, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 45361, + "time": 75.38267602291666, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19736849999999606, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 45481, + "time": 75.58533432083333, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.17763165000000924, + "durationTicks": 108, + "midi": 62, + "name": "D4", + "ticks": 45601, + "time": 75.78270282083332, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.19736850000001027, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 45721, + "time": 75.98007132083332, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19745987291666722, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 45841, + "time": 76.17743982083333, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.20827499166665575, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 45961, + "time": 76.37489969375, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 46321, + "time": 76.98585918541666, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20130913541666473, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 46441, + "time": 77.18720143541665, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.17763164999999503, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 46561, + "time": 77.38851057083332, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19736849999999606, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 46681, + "time": 77.58587907083331, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19736850000001027, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 46801, + "time": 77.78324757083331, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.1974016145833275, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 46921, + "time": 77.98061607083332, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 47281, + "time": 78.58070218541665, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20129838541666345, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 47401, + "time": 78.78204443541665, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.17647064999999884, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 47521, + "time": 78.98334282083331, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 47641, + "time": 79.17942132083331, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 47761, + "time": 79.37549982083331, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.19608925, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 47881, + "time": 79.57157832083331, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.19736850000001027, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 48241, + "time": 80.1624045708333, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19732632708333142, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 48361, + "time": 80.35977307083331, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17307697500000074, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 48481, + "time": 80.55709939791664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.19230774999999767, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 48601, + "time": 80.74940714791664, + "velocity": 0.36220472440944884 + }, + { + "duration": 0.19240586666666104, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 48721, + "time": 80.94171489791664, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20407025833333137, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 48841, + "time": 81.1341207645833, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19867549999999312, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 49201, + "time": 81.73953571249997, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19862243541666658, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 49321, + "time": 81.93821121249997, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17307697500000074, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 49441, + "time": 82.13683364791663, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.19232856249999486, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 49561, + "time": 82.32914139791663, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.1948825541666679, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 49681, + "time": 82.52146996041662, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20403669791666346, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 49801, + "time": 82.71635251458329, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19867550000000733, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 50161, + "time": 83.31774021249996, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19864324791666377, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 50281, + "time": 83.51641571249996, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17532472499999585, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 50401, + "time": 83.71505896041663, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1948052500000017, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 50521, + "time": 83.90986421041663, + "velocity": 0.36220472440944884 + }, + { + "duration": 0.1948052500000017, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 50641, + "time": 84.10466946041663, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19483750208333106, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 50761, + "time": 84.29947471041663, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19867550000000733, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 51121, + "time": 84.89166321249996, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19864324791666377, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 51241, + "time": 85.09033871249997, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.17532472499999585, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 51361, + "time": 85.28898196041663, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.1948052500000017, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 51481, + "time": 85.48378721041664, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.19489420208333286, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 51601, + "time": 85.67859246041664, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.2054227999999938, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 51721, + "time": 85.87348666249997, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.19867550000000733, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 52081, + "time": 86.47626046249997, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19867549999999312, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 52201, + "time": 86.67493596249997, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1788079500000066, + "durationTicks": 108, + "midi": 66, + "name": "F#4", + "ticks": 52321, + "time": 86.87361146249997, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 52441, + "time": 87.0723320145833, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 52561, + "time": 87.2764137645833, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.20403669791666346, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 52681, + "time": 87.4804955145833, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.19867550000000733, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 53041, + "time": 88.08188321249996, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.19867549999999312, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 53161, + "time": 88.28055871249997, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1788079500000066, + "durationTicks": 108, + "midi": 66, + "name": "F#4", + "ticks": 53281, + "time": 88.47923421249996, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.2054794999999956, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 53401, + "time": 88.67796641249996, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20557876458335045, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 53521, + "time": 88.88344591249995, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.21736537083333474, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 53641, + "time": 89.0890246770833, + "velocity": 0.3779527559055118 + }, + { + "duration": 0.21416670208333244, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 54001, + "time": 89.73496154791664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 54121, + "time": 89.94912824999997, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.1799999999999926, + "durationTicks": 108, + "midi": 67, + "name": "G4", + "ticks": 54241, + "time": 90.14912824999998, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 54361, + "time": 90.34912824999998, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 54481, + "time": 90.54912824999998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20008158541665466, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 54601, + "time": 90.74912824999998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20970866458333148, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 54961, + "time": 91.36879033541665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 55081, + "time": 91.57849899999998, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.1799999999999926, + "durationTicks": 108, + "midi": 67, + "name": "G4", + "ticks": 55201, + "time": 91.77849899999998, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 55321, + "time": 91.97849899999999, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.20011904791665813, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 55441, + "time": 92.17849899999999, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.21416670208333244, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 55561, + "time": 92.37861804791665, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 55921, + "time": 92.99278474999998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19999999999998863, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 56041, + "time": 93.19278474999999, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.18000000000000682, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 56161, + "time": 93.39278474999998, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 56281, + "time": 93.59275207083331, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 56401, + "time": 93.78883057083331, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.19611117916666387, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 56521, + "time": 93.98490907083331, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 56881, + "time": 94.58102024999998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19999999999998863, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 57001, + "time": 94.78102024999998, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.18000000000000682, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 57121, + "time": 94.98102024999997, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 57241, + "time": 95.18098757083331, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.1960784999999987, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 57361, + "time": 95.37706607083331, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.19621756249999578, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 57481, + "time": 95.5731445708333, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 57841, + "time": 96.18202174999998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 57961, + "time": 96.38202174999998, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.1799999999999926, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 58081, + "time": 96.58202174999998, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 58201, + "time": 96.78202174999997, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20000000000000284, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 58321, + "time": 96.98202174999997, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20008158541666887, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 58441, + "time": 97.18202174999998, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.20134225000001038, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 58801, + "time": 97.79316543541664, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 58921, + "time": 97.99450768541665, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.18120802500000366, + "durationTicks": 108, + "midi": 65, + "name": "F4", + "ticks": 59041, + "time": 98.19584993541665, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.20134224999999617, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 59161, + "time": 98.39719218541664, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20134225000001038, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 59281, + "time": 98.59853443541664, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.20136507916666346, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 59401, + "time": 98.79987668541665, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 59761, + "time": 99.40940526458331, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.204058920833333, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 59881, + "time": 99.61348701458331, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.18120802500000366, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 60001, + "time": 99.81754593541665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.20134225000001038, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 60121, + "time": 100.01888818541664, + "velocity": 0.36220472440944884 + }, + { + "duration": 0.20143744791666052, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 60241, + "time": 100.22023043541665, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.21269363125000496, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 60361, + "time": 100.42166788333331, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 60721, + "time": 101.04252501458332, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.204058920833333, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 60841, + "time": 101.24660676458332, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.18120802500000366, + "durationTicks": 108, + "midi": 64, + "name": "E4", + "ticks": 60961, + "time": 101.45066568541665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.20134225000001038, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 61081, + "time": 101.65200793541665, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.20141264999999464, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 61201, + "time": 101.85335018541666, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20974267916666633, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 61321, + "time": 102.05476283541665, + "velocity": 0.3543307086614173 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 61680, + "time": 102.67096833333332, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.19867549999999312, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 61800, + "time": 102.87505008333332, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19957654166668704, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 61920, + "time": 103.07372558333331, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 62040, + "time": 103.273302125, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 62160, + "time": 103.477383875, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.20408174999998607, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 62280, + "time": 103.681465625, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.19736849999999606, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 62400, + "time": 103.88554737499999, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 62520, + "time": 104.08291587499998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 62640, + "time": 104.28699762499998, + "velocity": 0.3700787401574803 + }, + { + "duration": 0.20408175000000028, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 62760, + "time": 104.49107937499998, + "velocity": 0.36220472440944884 + }, + { + "duration": 0.21126750000000527, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 62880, + "time": 104.69516112499998, + "velocity": 0.36220472440944884 + }, + { + "duration": 0.21126749999999106, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 63000, + "time": 104.90642862499999, + "velocity": 0.33070866141732286 + }, + { + "duration": 0.22556400000000565, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 63120, + "time": 105.11769612499998, + "velocity": 0.33858267716535434 + }, + { + "duration": 0.25210074999999676, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 63240, + "time": 105.34326012499999, + "velocity": 0.2992125984251969 + }, + { + "duration": 0.21126750000000527, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 63600, + "time": 106.01789587499998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.21126750000000527, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 63720, + "time": 106.22916337499998, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.21126749999999106, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 63840, + "time": 106.44043087499999, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.21126750000000527, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 63960, + "time": 106.65169837499998, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.21126749999999106, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 64080, + "time": 106.86296587499999, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.21126750000000527, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 64200, + "time": 107.07423337499998, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 64320, + "time": 107.28550087499998, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 64440, + "time": 107.52172137499998, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 64560, + "time": 107.75794187499999, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 64680, + "time": 107.99416237499999, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.2836123749999899, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 64800, + "time": 108.23038287499999, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.30789483333332157, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 64920, + "time": 108.51399524999998, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.3373770000000036, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 65040, + "time": 108.8218900833333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 65160, + "time": 109.1592670833333, + "velocity": 0.3937007874015748 + }, + { + "duration": 5.714286000000001, + "durationTicks": 1440, + "midi": 72, + "name": "C5", + "ticks": 65281, + "time": 109.63942583749997, + "velocity": 0.3937007874015748 + }, + { + "duration": 5.714286000000001, + "durationTicks": 1440, + "midi": 67, + "name": "G4", + "ticks": 65281, + "time": 109.63942583749997, + "velocity": 0.3937007874015748 + }, + { + "duration": 5.714286000000001, + "durationTicks": 1440, + "midi": 64, + "name": "E4", + "ticks": 65281, + "time": 109.63942583749997, + "velocity": 0.3937007874015748 + } + ] + }, + { + "channel": 0, + "controlChanges": { + "7": [ + { + "number": 7, + "ticks": 0, + "time": 0, + "value": 0.7874015748031497 + } + ], + "10": [ + { + "number": 10, + "ticks": 0, + "time": 0, + "value": 0.5039370078740157 + } + ], + "64": [ + { + "number": 64, + "ticks": 0, + "time": 0, + "value": 1 + }, + { + "number": 64, + "ticks": 1930, + "time": 3.2480003958333334, + "value": 0 + }, + { + "number": 64, + "ticks": 2026, + "time": 3.4101625958333335, + "value": 1 + }, + { + "number": 64, + "ticks": 3849, + "time": 6.4091176687499996, + "value": 0 + }, + { + "number": 64, + "ticks": 3925, + "time": 6.536634427083333, + "value": 1 + }, + { + "number": 64, + "ticks": 5769, + "time": 9.574903887499998, + "value": 0 + }, + { + "number": 64, + "ticks": 5859, + "time": 9.722930262499997, + "value": 1 + }, + { + "number": 64, + "ticks": 7688, + "time": 12.726877516666663, + "value": 0 + }, + { + "number": 64, + "ticks": 7786, + "time": 12.89241809583333, + "value": 1 + }, + { + "number": 64, + "ticks": 9607, + "time": 15.900815662499996, + "value": 0 + }, + { + "number": 64, + "ticks": 9680, + "time": 16.020096749999997, + "value": 1 + }, + { + "number": 64, + "ticks": 11520, + "time": 19.045871499999997, + "value": 0 + }, + { + "number": 64, + "ticks": 11633, + "time": 19.23420483333333, + "value": 1 + }, + { + "number": 64, + "ticks": 13453, + "time": 22.228200327083336, + "value": 0 + }, + { + "number": 64, + "ticks": 13511, + "time": 22.32551574791667, + "value": 1 + }, + { + "number": 64, + "ticks": 15370, + "time": 25.383408874999997, + "value": 0 + }, + { + "number": 64, + "ticks": 15473, + "time": 25.5528168375, + "value": 1 + }, + { + "number": 64, + "ticks": 17290, + "time": 28.5994380625, + "value": 0 + }, + { + "number": 64, + "ticks": 17360, + "time": 28.71848575, + "value": 1 + }, + { + "number": 64, + "ticks": 19209, + "time": 31.8234209125, + "value": 0 + }, + { + "number": 64, + "ticks": 19299, + "time": 31.9724275375, + "value": 1 + }, + { + "number": 64, + "ticks": 21127, + "time": 34.97962990416667, + "value": 0 + }, + { + "number": 64, + "ticks": 21211, + "time": 35.11870275416668, + "value": 1 + }, + { + "number": 64, + "ticks": 23053, + "time": 38.165474018750004, + "value": 0 + }, + { + "number": 64, + "ticks": 23181, + "time": 38.38600604583334, + "value": 1 + }, + { + "number": 64, + "ticks": 24969, + "time": 41.33784908333335, + "value": 0 + }, + { + "number": 64, + "ticks": 25101, + "time": 41.55784908333335, + "value": 1 + }, + { + "number": 64, + "ticks": 26894, + "time": 44.52421141666669, + "value": 0 + }, + { + "number": 64, + "ticks": 27028, + "time": 44.747544750000024, + "value": 1 + }, + { + "number": 64, + "ticks": 28810, + "time": 47.68091135416669, + "value": 0 + }, + { + "number": 64, + "ticks": 28976, + "time": 47.95943480000002, + "value": 1 + }, + { + "number": 64, + "ticks": 30727, + "time": 50.875801297916695, + "value": 0 + }, + { + "number": 64, + "ticks": 30840, + "time": 51.06539858333336, + "value": 1 + }, + { + "number": 64, + "ticks": 32651, + "time": 54.10541620625003, + "value": 0 + }, + { + "number": 64, + "ticks": 32739, + "time": 54.25306718958336, + "value": 1 + }, + { + "number": 64, + "ticks": 34570, + "time": 57.32567720833335, + "value": 0 + }, + { + "number": 64, + "ticks": 34680, + "time": 57.515332333333355, + "value": 1 + }, + { + "number": 64, + "ticks": 36490, + "time": 60.56894175000002, + "value": 0 + }, + { + "number": 64, + "ticks": 36571, + "time": 60.70394175000002, + "value": 1 + }, + { + "number": 64, + "ticks": 38409, + "time": 63.77189008333335, + "value": 0 + }, + { + "number": 64, + "ticks": 38527, + "time": 63.96855675000002, + "value": 1 + }, + { + "number": 64, + "ticks": 40332, + "time": 66.96954500833336, + "value": 0 + }, + { + "number": 64, + "ticks": 40411, + "time": 67.10389882708336, + "value": 1 + }, + { + "number": 64, + "ticks": 42247, + "time": 70.23304799583335, + "value": 0 + }, + { + "number": 64, + "ticks": 42360, + "time": 70.41890333333335, + "value": 1 + }, + { + "number": 64, + "ticks": 44167, + "time": 73.38839835208333, + "value": 0 + }, + { + "number": 64, + "ticks": 44294, + "time": 73.60438487083333, + "value": 1 + }, + { + "number": 64, + "ticks": 46091, + "time": 76.59995320624998, + "value": 0 + }, + { + "number": 64, + "ticks": 46221, + "time": 76.81807397708332, + "value": 1 + }, + { + "number": 64, + "ticks": 48014, + "time": 79.78904915833331, + "value": 0 + }, + { + "number": 64, + "ticks": 48162, + "time": 80.03247030833332, + "value": 1 + }, + { + "number": 64, + "ticks": 49927, + "time": 82.93032298749996, + "value": 0 + }, + { + "number": 64, + "ticks": 49998, + "time": 83.04787265833329, + "value": 1 + }, + { + "number": 64, + "ticks": 51846, + "time": 86.0871876083333, + "value": 0 + }, + { + "number": 64, + "ticks": 51937, + "time": 86.23784986249997, + "value": 1 + }, + { + "number": 64, + "ticks": 53774, + "time": 89.32960433749997, + "value": 0 + }, + { + "number": 64, + "ticks": 53915, + "time": 89.58139009374997, + "value": 1 + }, + { + "number": 64, + "ticks": 55688, + "time": 92.60445141666665, + "value": 0 + }, + { + "number": 64, + "ticks": 55765, + "time": 92.73278474999998, + "value": 1 + }, + { + "number": 64, + "ticks": 57611, + "time": 95.7870926333333, + "value": 0 + }, + { + "number": 64, + "ticks": 57734, + "time": 96.00368841666663, + "value": 1 + }, + { + "number": 64, + "ticks": 59530, + "time": 99.01654789583331, + "value": 0 + }, + { + "number": 64, + "ticks": 59600, + "time": 99.13559558333331, + "value": 1 + }, + { + "number": 64, + "ticks": 61450, + "time": 102.27981164583332, + "value": 0 + }, + { + "number": 64, + "ticks": 61546, + "time": 102.44307704583332, + "value": 1 + }, + { + "number": 64, + "ticks": 63370, + "time": 105.61296649999998, + "value": 0 + }, + { + "number": 64, + "ticks": 63501, + "time": 105.84360018749999, + "value": 1 + }, + { + "number": 64, + "ticks": 65280, + "time": 109.6354575833333, + "value": 0 + }, + { + "number": 64, + "ticks": 65600, + "time": 110.90529891666664, + "value": 1 + }, + { + "number": 64, + "ticks": 67028, + "time": 116.57196586666663, + "value": 0 + } + ], + "91": [ + { + "number": 91, + "ticks": 0, + "time": 0, + "value": 1 + }, + { + "number": 91, + "ticks": 1920, + "time": 3.2311085, + "value": 1 + }, + { + "number": 91, + "ticks": 3840, + "time": 6.394017, + "value": 1 + }, + { + "number": 91, + "ticks": 5760, + "time": 9.560101249999997, + "value": 1 + }, + { + "number": 91, + "ticks": 7680, + "time": 12.713363999999997, + "value": 1 + }, + { + "number": 91, + "ticks": 9600, + "time": 15.889377749999996, + "value": 1 + }, + { + "number": 91, + "ticks": 11520, + "time": 19.045871499999997, + "value": 1 + }, + { + "number": 91, + "ticks": 13440, + "time": 22.206388250000003, + "value": 1 + }, + { + "number": 91, + "ticks": 15360, + "time": 25.3669615, + "value": 1 + }, + { + "number": 91, + "ticks": 17280, + "time": 28.58243125, + "value": 1 + }, + { + "number": 91, + "ticks": 19200, + "time": 31.80852025, + "value": 1 + }, + { + "number": 91, + "ticks": 21120, + "time": 34.96804050000001, + "value": 1 + }, + { + "number": 91, + "ticks": 23040, + "time": 38.14290458333334, + "value": 1 + }, + { + "number": 91, + "ticks": 24960, + "time": 41.32284908333335, + "value": 1 + }, + { + "number": 91, + "ticks": 26880, + "time": 44.500878083333355, + "value": 1 + }, + { + "number": 91, + "ticks": 28800, + "time": 47.664132833333355, + "value": 1 + }, + { + "number": 91, + "ticks": 30720, + "time": 50.86405633333336, + "value": 1 + }, + { + "number": 91, + "ticks": 32640, + "time": 54.08695983333336, + "value": 1 + }, + { + "number": 91, + "ticks": 34560, + "time": 57.308435833333355, + "value": 1 + }, + { + "number": 91, + "ticks": 36480, + "time": 60.552275083333356, + "value": 1 + }, + { + "number": 91, + "ticks": 38400, + "time": 63.75689008333335, + "value": 1 + }, + { + "number": 91, + "ticks": 40320, + "time": 66.94913683333336, + "value": 1 + }, + { + "number": 91, + "ticks": 42240, + "time": 70.22153483333335, + "value": 1 + }, + { + "number": 91, + "ticks": 44160, + "time": 73.37649358333333, + "value": 1 + }, + { + "number": 91, + "ticks": 46080, + "time": 76.58149683333332, + "value": 1 + }, + { + "number": 91, + "ticks": 48000, + "time": 79.76602283333331, + "value": 1 + }, + { + "number": 91, + "ticks": 49920, + "time": 82.91873358333329, + "value": 1 + }, + { + "number": 91, + "ticks": 51840, + "time": 86.0772538333333, + "value": 1 + }, + { + "number": 91, + "ticks": 53760, + "time": 89.3046043333333, + "value": 1 + }, + { + "number": 91, + "ticks": 55680, + "time": 92.59111808333331, + "value": 1 + }, + { + "number": 91, + "ticks": 57600, + "time": 95.7675890833333, + "value": 1 + }, + { + "number": 91, + "ticks": 59520, + "time": 98.99954108333331, + "value": 1 + } + ] + }, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "Piano left", + "notes": [ + { + "duration": 1.6175947499999999, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 1, + "time": 0.0016891895833333335, + "velocity": 0.48031496062992124 + }, + { + "duration": 1.4148919999999998, + "durationTicks": 840, + "midi": 64, + "name": "E4", + "ticks": 121, + "time": 0.20439193958333335, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.61351375, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 961, + "time": 1.6192839395833332, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.4108109999999998, + "durationTicks": 840, + "midi": 64, + "name": "E4", + "ticks": 1081, + "time": 1.8219866895833334, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.5898564395833334, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 1921, + "time": 3.2327976895833332, + "velocity": 0.5118110236220472 + }, + { + "duration": 1.3871536895833332, + "durationTicks": 840, + "midi": 62, + "name": "D4", + "ticks": 2041, + "time": 3.4355004395833335, + "velocity": 0.47244094488188976 + }, + { + "duration": 1.5730407229166667, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 2881, + "time": 4.822654129166667, + "velocity": 0.5118110236220472 + }, + { + "duration": 1.3743652229166665, + "durationTicks": 840, + "midi": 62, + "name": "D4", + "ticks": 3001, + "time": 5.021329629166667, + "velocity": 0.47244094488188976 + }, + { + "duration": 1.5707477499999998, + "durationTicks": 960, + "midi": 59, + "name": "B3", + "ticks": 3841, + "time": 6.395694852083333, + "velocity": 0.5118110236220472 + }, + { + "duration": 1.3694055, + "durationTicks": 840, + "midi": 62, + "name": "D4", + "ticks": 3961, + "time": 6.597037102083333, + "velocity": 0.47244094488188976 + }, + { + "duration": 1.5953033854166634, + "durationTicks": 960, + "midi": 59, + "name": "B3", + "ticks": 4801, + "time": 7.966442602083333, + "velocity": 0.5118110236220472 + }, + { + "duration": 1.3939611354166637, + "durationTicks": 840, + "midi": 62, + "name": "D4", + "ticks": 4921, + "time": 8.167784852083333, + "velocity": 0.47244094488188976 + }, + { + "duration": 1.5793754999999994, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 5761, + "time": 9.561745987499997, + "velocity": 0.48031496062992124 + }, + { + "duration": 1.3820069999999998, + "durationTicks": 840, + "midi": 64, + "name": "E4", + "ticks": 5881, + "time": 9.759114487499996, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.5739317020833337, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 6721, + "time": 11.141121487499996, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.376563202083334, + "durationTicks": 840, + "midi": 64, + "name": "E4", + "ticks": 6841, + "time": 11.338489987499996, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.5860199999999995, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 7681, + "time": 12.71505318958333, + "velocity": 0.5275590551181102 + }, + { + "duration": 1.3833172499999993, + "durationTicks": 840, + "midi": 64, + "name": "E4", + "ticks": 7801, + "time": 12.91775593958333, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.5899385479166668, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 8641, + "time": 14.30107318958333, + "velocity": 0.5354330708661418 + }, + { + "duration": 1.3872357979166665, + "durationTicks": 840, + "midi": 64, + "name": "E4", + "ticks": 8761, + "time": 14.50377593958333, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.559856364583334, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 9601, + "time": 15.891011737499996, + "velocity": 0.48031496062992124 + }, + { + "duration": 1.3637778645833336, + "durationTicks": 840, + "midi": 62, + "name": "D4", + "ticks": 9721, + "time": 16.087090237499996, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.596670064583332, + "durationTicks": 960, + "midi": 60, + "name": "C4", + "ticks": 10561, + "time": 17.45086810208333, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.3953278145833323, + "durationTicks": 840, + "midi": 62, + "name": "D4", + "ticks": 10681, + "time": 17.65221035208333, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.5794262500000045, + "durationTicks": 960, + "midi": 59, + "name": "B3", + "ticks": 11521, + "time": 19.047538166666662, + "velocity": 0.5118110236220472 + }, + { + "duration": 1.3794262500000016, + "durationTicks": 840, + "midi": 62, + "name": "D4", + "ticks": 11641, + "time": 19.247538166666665, + "velocity": 0.47244094488188976 + }, + { + "duration": 1.5811016854166695, + "durationTicks": 960, + "midi": 59, + "name": "B3", + "ticks": 12481, + "time": 20.626964416666667, + "velocity": 0.5118110236220472 + }, + { + "duration": 1.3811016854166667, + "durationTicks": 840, + "midi": 62, + "name": "D4", + "ticks": 12601, + "time": 20.82696441666667, + "velocity": 0.47244094488188976 + }, + { + "duration": 1.5886733854166657, + "durationTicks": 960, + "midi": 59, + "name": "B3", + "ticks": 13441, + "time": 22.208066102083336, + "velocity": 0.48031496062992124 + }, + { + "duration": 1.387331135416666, + "durationTicks": 840, + "midi": 60, + "name": "C4", + "ticks": 13561, + "time": 22.409408352083336, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.571866749999998, + "durationTicks": 960, + "midi": 59, + "name": "B3", + "ticks": 14401, + "time": 23.796739487500002, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.3757882499999994, + "durationTicks": 840, + "midi": 60, + "name": "C4", + "ticks": 14521, + "time": 23.9928179875, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.5949616416666643, + "durationTicks": 960, + "midi": 57, + "name": "A3", + "ticks": 15361, + "time": 25.3686062375, + "velocity": 0.48031496062992124 + }, + { + "duration": 1.3975931416666647, + "durationTicks": 840, + "midi": 60, + "name": "C4", + "ticks": 15481, + "time": 25.5659747375, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.6205640520833349, + "durationTicks": 960, + "midi": 57, + "name": "A3", + "ticks": 16321, + "time": 26.963567879166664, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.4218885520833346, + "durationTicks": 840, + "midi": 60, + "name": "C4", + "ticks": 16441, + "time": 27.162243379166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.6122452500000009, + "durationTicks": 960, + "midi": 50, + "name": "D3", + "ticks": 17281, + "time": 28.58413193125, + "velocity": 0.48031496062992124 + }, + { + "duration": 1.4081635000000006, + "durationTicks": 840, + "midi": 57, + "name": "A3", + "ticks": 17401, + "time": 28.78821368125, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.6137986979166676, + "durationTicks": 960, + "midi": 50, + "name": "D3", + "ticks": 18241, + "time": 30.19637718125, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.4097169479166674, + "durationTicks": 840, + "midi": 57, + "name": "A3", + "ticks": 18361, + "time": 30.40045893125, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.5790159999999993, + "durationTicks": 960, + "midi": 55, + "name": "G3", + "ticks": 19201, + "time": 31.810175879166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.3803405000000026, + "durationTicks": 840, + "midi": 59, + "name": "B3", + "ticks": 19321, + "time": 32.008851379166664, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.5805042500000042, + "durationTicks": 960, + "midi": 55, + "name": "G3", + "ticks": 20161, + "time": 33.38919187916667, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.381828750000004, + "durationTicks": 840, + "midi": 59, + "name": "B3", + "ticks": 20281, + "time": 33.58786737916667, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.586014249999998, + "durationTicks": 960, + "midi": 55, + "name": "G3", + "ticks": 21121, + "time": 34.96969612916667, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.3873387499999978, + "durationTicks": 840, + "midi": 58, + "name": "A#3", + "ticks": 21241, + "time": 35.16837162916667, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.5889303145833367, + "durationTicks": 960, + "midi": 55, + "name": "G3", + "ticks": 22081, + "time": 36.55571037916667, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.3902548145833364, + "durationTicks": 840, + "midi": 58, + "name": "A#3", + "ticks": 22201, + "time": 36.75438587916667, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.588593268750003, + "durationTicks": 960, + "midi": 53, + "name": "F3", + "ticks": 23041, + "time": 38.144640693750006, + "velocity": 0.48031496062992124 + }, + { + "duration": 1.3803405000000026, + "durationTicks": 840, + "midi": 57, + "name": "A3", + "ticks": 23161, + "time": 38.352893462500006, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.5912817875000087, + "durationTicks": 960, + "midi": 53, + "name": "F3", + "ticks": 24001, + "time": 39.73323396250001, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.3926062875000085, + "durationTicks": 840, + "midi": 57, + "name": "A3", + "ticks": 24121, + "time": 39.93190946250001, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.5843139999999991, + "durationTicks": 960, + "midi": 53, + "name": "F3", + "ticks": 24961, + "time": 41.32451575000002, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.3843139999999963, + "durationTicks": 840, + "midi": 56, + "name": "G#3", + "ticks": 25081, + "time": 41.52451575000002, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.593715000000003, + "durationTicks": 960, + "midi": 53, + "name": "F3", + "ticks": 25921, + "time": 42.90882975000002, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.3937150000000003, + "durationTicks": 840, + "midi": 56, + "name": "G#3", + "ticks": 26041, + "time": 43.10882975000002, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.572858462500001, + "durationTicks": 960, + "midi": 52, + "name": "E3", + "ticks": 26881, + "time": 44.50254475000002, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.3728584624999982, + "durationTicks": 840, + "midi": 55, + "name": "G3", + "ticks": 27001, + "time": 44.70254475000002, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.5904074729166666, + "durationTicks": 960, + "midi": 52, + "name": "E3", + "ticks": 27841, + "time": 46.07540321250002, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.3917319729166664, + "durationTicks": 840, + "midi": 55, + "name": "G3", + "ticks": 27961, + "time": 46.27407871250002, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.5896830000000008, + "durationTicks": 960, + "midi": 52, + "name": "E3", + "ticks": 28801, + "time": 47.66581068541669, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.3883407499999976, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 28921, + "time": 47.86715293541669, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6102405000000033, + "durationTicks": 960, + "midi": 52, + "name": "E3", + "ticks": 29761, + "time": 49.25549368541669, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.40889825, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 29881, + "time": 49.45683593541669, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6087419999999995, + "durationTicks": 960, + "midi": 50, + "name": "D3", + "ticks": 30721, + "time": 50.86573418541669, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.4073997499999962, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 30841, + "time": 51.067076435416695, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6141615000000016, + "durationTicks": 960, + "midi": 50, + "name": "D3", + "ticks": 31681, + "time": 52.47447618541669, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.4128192499999983, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 31801, + "time": 52.675818435416694, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6107379999999978, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 32641, + "time": 54.08863768541669, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.4093957499999945, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 32761, + "time": 54.289979935416696, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6107842854166634, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 33601, + "time": 55.69937568541669, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.4094420354166601, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 33721, + "time": 55.900717935416694, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6273889416666663, + "durationTicks": 960, + "midi": 48, + "name": "C3", + "ticks": 34561, + "time": 57.310159970833354, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.420492441666667, + "durationTicks": 840, + "midi": 52, + "name": "E3", + "ticks": 34681, + "time": 57.51705647083335, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6163928375000012, + "durationTicks": 960, + "midi": 48, + "name": "C3", + "ticks": 35521, + "time": 58.93754891250002, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.4109133374999985, + "durationTicks": 840, + "midi": 52, + "name": "E3", + "ticks": 35641, + "time": 59.14302841250002, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.5908317499999995, + "durationTicks": 960, + "midi": 48, + "name": "C3", + "ticks": 36481, + "time": 60.55394175000002, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.3908317499999967, + "durationTicks": 840, + "midi": 55, + "name": "G3", + "ticks": 36601, + "time": 60.753941750000024, + "velocity": 0.3779527559055118 + }, + { + "duration": 1.6137832499999973, + "durationTicks": 960, + "midi": 48, + "name": "C3", + "ticks": 37441, + "time": 62.14477350000002, + "velocity": 0.4094488188976378 + }, + { + "duration": 1.4137832499999945, + "durationTicks": 840, + "midi": 55, + "name": "G3", + "ticks": 37561, + "time": 62.344773500000024, + "velocity": 0.3779527559055118 + }, + { + "duration": 1.5843139999999991, + "durationTicks": 960, + "midi": 41, + "name": "F2", + "ticks": 38401, + "time": 63.75855675000002, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.3843139999999963, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 38521, + "time": 63.95855675000002, + "velocity": 0.3779527559055118 + }, + { + "duration": 1.6079667645833382, + "durationTicks": 960, + "midi": 41, + "name": "F2", + "ticks": 39361, + "time": 65.34287075000002, + "velocity": 0.4094488188976378 + }, + { + "duration": 1.4079667645833354, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 39481, + "time": 65.54287075000002, + "velocity": 0.3779527559055118 + }, + { + "duration": 1.621696, + "durationTicks": 960, + "midi": 42, + "name": "F#2", + "ticks": 40321, + "time": 66.95083751458336, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.4176142499999997, + "durationTicks": 840, + "midi": 48, + "name": "C3", + "ticks": 40441, + "time": 67.15491926458336, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6506460562499967, + "durationTicks": 960, + "midi": 42, + "name": "F#2", + "ticks": 41281, + "time": 68.57253351458336, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.4465643062499964, + "durationTicks": 840, + "midi": 48, + "name": "C3", + "ticks": 41401, + "time": 68.77661526458336, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.5769374999999854, + "durationTicks": 960, + "midi": 44, + "name": "G#2", + "ticks": 42241, + "time": 70.22317957083335, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.3795689999999894, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 42361, + "time": 70.42054807083335, + "velocity": 0.3779527559055118 + }, + { + "duration": 1.5780771937499907, + "durationTicks": 960, + "midi": 44, + "name": "G#2", + "ticks": 43201, + "time": 71.80011707083334, + "velocity": 0.4094488188976378 + }, + { + "duration": 1.3807086937499946, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 43321, + "time": 71.99748557083333, + "velocity": 0.3779527559055118 + }, + { + "duration": 1.5990762583333265, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 44161, + "time": 73.37819426458333, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.3949945083333262, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 44281, + "time": 73.58227601458333, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6059041624999963, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 45121, + "time": 74.97727052291665, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.403201412499996, + "durationTicks": 840, + "midi": 53, + "name": "F3", + "ticks": 45241, + "time": 75.17997327291665, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.5948429999999973, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 46081, + "time": 76.58317468541665, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.3935007500000012, + "durationTicks": 840, + "midi": 52, + "name": "E3", + "ticks": 46201, + "time": 76.78451693541665, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.5896498854166623, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 47041, + "time": 78.17801768541665, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.3883076354166661, + "durationTicks": 840, + "midi": 52, + "name": "E3", + "ticks": 47161, + "time": 78.37935993541664, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.5705234520833216, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 48001, + "time": 79.76766757083331, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.3731549520833255, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 48121, + "time": 79.9650360708333, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.5821981895833233, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 48961, + "time": 81.33819102291663, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.379528999999991, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 49081, + "time": 81.54086021249996, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.5739230000000077, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 49921, + "time": 82.92038921249996, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.3752475000000004, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 50041, + "time": 83.11906471249996, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.5845972500000016, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 50881, + "time": 84.49431221249996, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.3859217499999943, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 51001, + "time": 84.69298771249997, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.6056227499999949, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 51841, + "time": 86.07890946249996, + "velocity": 0.48031496062992124 + }, + { + "duration": 1.4069472499999875, + "durationTicks": 840, + "midi": 51, + "name": "D#3", + "ticks": 51961, + "time": 86.27758496249997, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.6218578354166766, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 52801, + "time": 87.68453221249996, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.4231823354166693, + "durationTicks": 840, + "midi": 51, + "name": "D#3", + "ticks": 52921, + "time": 87.88320771249997, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.6428197875000023, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 53761, + "time": 89.30639004791664, + "velocity": 0.5118110236220472 + }, + { + "duration": 1.4285340375000004, + "durationTicks": 840, + "midi": 52, + "name": "E3", + "ticks": 53881, + "time": 89.52067579791664, + "velocity": 0.47244094488188976 + }, + { + "duration": 1.6435749145833398, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 54721, + "time": 90.94920983541664, + "velocity": 0.5118110236220472 + }, + { + "duration": 1.4337846645833423, + "durationTicks": 840, + "midi": 52, + "name": "E3", + "ticks": 54841, + "time": 91.15900008541664, + "velocity": 0.47244094488188976 + }, + { + "duration": 1.5882354999999961, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 55681, + "time": 92.59278474999998, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.3882354999999933, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 55801, + "time": 92.79278474999998, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.588341883333328, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 56641, + "time": 94.18102024999997, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.3883418833333252, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 56761, + "time": 94.38102024999998, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6127412020833418, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 57601, + "time": 95.7693621333333, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.4000815854166717, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 57721, + "time": 95.98202174999997, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.619138429166668, + "durationTicks": 960, + "midi": 43, + "name": "G2", + "ticks": 58561, + "time": 97.38210333541664, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.409418579166669, + "durationTicks": 840, + "midi": 50, + "name": "D3", + "ticks": 58681, + "time": 97.59182318541664, + "velocity": 0.4015748031496063 + }, + { + "duration": 1.6331197500000059, + "durationTicks": 960, + "midi": 36, + "name": "C2", + "ticks": 59521, + "time": 99.00124176458331, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.4290380000000056, + "durationTicks": 840, + "midi": 48, + "name": "C3", + "ticks": 59641, + "time": 99.20532351458331, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.6301440000000014, + "durationTicks": 960, + "midi": 36, + "name": "C2", + "ticks": 60481, + "time": 100.63436151458332, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.426062250000001, + "durationTicks": 840, + "midi": 48, + "name": "C3", + "ticks": 60601, + "time": 100.83844326458332, + "velocity": 0.4330708661417323 + }, + { + "duration": 3.332615922916659, + "durationTicks": 1920, + "midi": 36, + "name": "C2", + "ticks": 61441, + "time": 102.26450551458332, + "velocity": 0.4330708661417323 + }, + { + "duration": 3.128474291666663, + "durationTicks": 1800, + "midi": 48, + "name": "C3", + "ticks": 61560, + "time": 102.46688658333332, + "velocity": 0.4015748031496063 + }, + { + "duration": 4.042304399999992, + "durationTicks": 1920, + "midi": 36, + "name": "C2", + "ticks": 63361, + "time": 105.59712143749998, + "velocity": 0.4330708661417323 + }, + { + "duration": 3.8288292083333175, + "durationTicks": 1800, + "midi": 50, + "name": "D3", + "ticks": 63480, + "time": 105.80662837499999, + "velocity": 0.4015748031496063 + }, + { + "duration": 5.714286000000001, + "durationTicks": 1440, + "midi": 36, + "name": "C2", + "ticks": 65281, + "time": 109.63942583749997, + "velocity": 0.41732283464566927 + }, + { + "duration": 5.714286000000001, + "durationTicks": 1440, + "midi": 48, + "name": "C3", + "ticks": 65281, + "time": 109.63942583749997, + "velocity": 0.41732283464566927 + } + ] + }, + { + "channel": 0, + "controlChanges": { + "7": [ + { + "number": 7, + "ticks": 0, + "time": 0, + "value": 0.8661417322834646 + }, + { + "number": 7, + "ticks": 70319, + "time": 123.45675356249997, + "value": 1 + }, + { + "number": 7, + "ticks": 73200, + "time": 129.1390180833333, + "value": 0.8661417322834646 + }, + { + "number": 7, + "ticks": 78960, + "time": 140.4248168333333, + "value": 1 + }, + { + "number": 7, + "ticks": 83520, + "time": 149.39730950000003, + "value": 0.8661417322834646 + }, + { + "number": 7, + "ticks": 95280, + "time": 172.66893854166668, + "value": 1 + }, + { + "number": 7, + "ticks": 98400, + "time": 178.89025179166666, + "value": 0.8661417322834646 + }, + { + "number": 7, + "ticks": 113040, + "time": 208.87614029166664, + "value": 1 + } + ], + "10": [ + { + "number": 10, + "ticks": 0, + "time": 0, + "value": 0.5039370078740157 + } + ], + "91": [ + { + "number": 91, + "ticks": 67200, + "time": 117.2545055833333, + "value": 1 + } + ], + "93": [ + { + "number": 93, + "ticks": 67200, + "time": 117.2545055833333, + "value": 0 + } + ] + }, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "Fuga 1", + "notes": [ + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 70320, + "time": 123.45878608333331, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 70560, + "time": 123.93122708333331, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.4878049999999945, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 70800, + "time": 124.40366808333332, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7086615000000052, + "durationTicks": 360, + "midi": 72, + "name": "C5", + "ticks": 71040, + "time": 124.89147308333331, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 74, + "name": "D5", + "ticks": 71400, + "time": 125.60013458333331, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 72, + "name": "C5", + "ticks": 71460, + "time": 125.71207483333332, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4330709166666651, + "durationTicks": 220, + "midi": 71, + "name": "B4", + "ticks": 71520, + "time": 125.82401508333332, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 71760, + "time": 126.29645608333333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.44354841666667255, + "durationTicks": 220, + "midi": 69, + "name": "A4", + "ticks": 72000, + "time": 126.76889708333333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.703125, + "durationTicks": 360, + "midi": 74, + "name": "D5", + "ticks": 72240, + "time": 127.25276808333332, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.2343749999999858, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 72600, + "time": 127.95589308333332, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 72720, + "time": 128.1902680833333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 72840, + "time": 128.4246430833333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.18000000000000682, + "durationTicks": 90, + "midi": 71, + "name": "B4", + "ticks": 72960, + "time": 128.6590180833333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.23999999999998067, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 73080, + "time": 128.89901808333332, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 73200, + "time": 129.1390180833333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 73320, + "time": 129.3752385833333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 73440, + "time": 129.6114590833333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 73560, + "time": 129.8458340833333, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 73680, + "time": 130.0802090833333, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 73800, + "time": 130.3145840833333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 73920, + "time": 130.5489590833333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 74040, + "time": 130.7833340833333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.24390249999999014, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 74160, + "time": 131.0177090833333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.2222222499999873, + "durationTicks": 120, + "midi": 78, + "name": "F#5", + "ticks": 74280, + "time": 131.2616115833333, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 79, + "name": "G5", + "ticks": 74400, + "time": 131.48383383333328, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 74640, + "time": 131.95258383333328, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 72, + "name": "C5", + "ticks": 74880, + "time": 132.42133383333328, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 75120, + "time": 132.9091388333333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 75360, + "time": 133.3778888333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 75480, + "time": 133.6122638333333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 75600, + "time": 133.8466388333333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 75720, + "time": 134.0810138333333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.710685500000011, + "durationTicks": 360, + "midi": 67, + "name": "G4", + "ticks": 75840, + "time": 134.3153888333333, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.24193549999998254, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 76200, + "time": 135.0260743333333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 76320, + "time": 135.26800983333328, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 76440, + "time": 135.50238483333328, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 76560, + "time": 135.73675983333328, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 76680, + "time": 135.97113483333328, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 76800, + "time": 136.20550983333328, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 76920, + "time": 136.43988483333328, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 77040, + "time": 136.67425983333328, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.2189779999999928, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 77160, + "time": 136.90863483333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.9011940000000038, + "durationTicks": 960, + "midi": 72, + "name": "C5", + "ticks": 77280, + "time": 137.12761283333327, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.9235690000000147, + "durationTicks": 480, + "midi": 71, + "name": "B4", + "ticks": 78240, + "time": 139.02880683333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 72, + "name": "C5", + "ticks": 78960, + "time": 140.4248168333333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 79200, + "time": 140.8972578333333, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.4838709999999935, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 79440, + "time": 141.3696988333333, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.7086615000000052, + "durationTicks": 360, + "midi": 77, + "name": "F5", + "ticks": 79680, + "time": 141.8535698333333, + "velocity": 0.5433070866141733 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 79, + "name": "G5", + "ticks": 80040, + "time": 142.5622313333333, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 77, + "name": "F5", + "ticks": 80100, + "time": 142.6741715833333, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.4296875, + "durationTicks": 220, + "midi": 76, + "name": "E5", + "ticks": 80160, + "time": 142.7861118333333, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 81, + "name": "A5", + "ticks": 80400, + "time": 143.2548618333333, + "velocity": 0.5433070866141733 + }, + { + "duration": 0.4422883333333232, + "durationTicks": 220, + "midi": 74, + "name": "D5", + "ticks": 80640, + "time": 143.7236118333333, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.7086615000000052, + "durationTicks": 360, + "midi": 79, + "name": "G5", + "ticks": 80880, + "time": 144.20622275, + "velocity": 0.5433070866141733 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 81, + "name": "A5", + "ticks": 81240, + "time": 144.91488425, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.22727274999999736, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 81360, + "time": 145.15110475, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.22727274999999736, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 81480, + "time": 145.3783775, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 76, + "name": "E5", + "ticks": 81600, + "time": 145.60565025, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.7086615000000052, + "durationTicks": 360, + "midi": 81, + "name": "A5", + "ticks": 81840, + "time": 146.09345525, + "velocity": 0.5511811023622047 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 83, + "name": "B5", + "ticks": 82200, + "time": 146.80211675, + "velocity": 0.5354330708661418 + }, + { + "duration": 0.22727274999999736, + "durationTicks": 120, + "midi": 81, + "name": "A5", + "ticks": 82320, + "time": 147.03833725, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.24193550000001096, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 82440, + "time": 147.26561, + "velocity": 0.5196850393700787 + }, + { + "duration": 1.8897640000000138, + "durationTicks": 960, + "midi": 77, + "name": "F5", + "ticks": 82560, + "time": 147.50754550000002, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.7086614999999767, + "durationTicks": 360, + "midi": 76, + "name": "E5", + "ticks": 83520, + "time": 149.39730950000003, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.22388050000000703, + "durationTicks": 120, + "midi": 78, + "name": "F#5", + "ticks": 83880, + "time": 150.105971, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.8995915000000139, + "durationTicks": 960, + "midi": 79, + "name": "G5", + "ticks": 84000, + "time": 150.32985150000002, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.9155502916666478, + "durationTicks": 480, + "midi": 78, + "name": "F#5", + "ticks": 84960, + "time": 152.22944300000003, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.22727274999999736, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 85440, + "time": 153.14499329166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.22900774999999385, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 85560, + "time": 153.37226604166668, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.2307692500000087, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 85680, + "time": 153.60127379166667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23255825000001096, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 85800, + "time": 153.83204304166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 85920, + "time": 154.0646012916667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 86040, + "time": 154.2989762916667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 86160, + "time": 154.5333512916667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23999999999998067, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 86280, + "time": 154.7733512916667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 86400, + "time": 155.01335129166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 86520, + "time": 155.24772629166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 86640, + "time": 155.48210129166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.22388050000000703, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 86760, + "time": 155.71647629166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 87480, + "time": 157.10007904166667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 87720, + "time": 157.56882904166667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.36585375000001363, + "durationTicks": 180, + "midi": 68, + "name": "G#4", + "ticks": 87840, + "time": 157.80320404166667, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 88080, + "time": 158.29100904166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 88320, + "time": 158.75975904166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24193550000001096, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 88560, + "time": 159.22850904166668, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.24193549999998254, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 88680, + "time": 159.4704445416667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 88800, + "time": 159.71238004166668, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 68, + "name": "G#4", + "ticks": 88920, + "time": 159.94860054166668, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 89040, + "time": 160.18482104166668, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 89160, + "time": 160.42104154166668, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.17716537499998708, + "durationTicks": 90, + "midi": 72, + "name": "C5", + "ticks": 89280, + "time": 160.65726204166668, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 89400, + "time": 160.89348254166669, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 89520, + "time": 161.1297030416667, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.22388050000000703, + "durationTicks": 120, + "midi": 68, + "name": "G#4", + "ticks": 89640, + "time": 161.3659235416667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 89760, + "time": 161.5898040416667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 90000, + "time": 162.0585540416667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 90120, + "time": 162.2929290416667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 72, + "name": "C5", + "ticks": 90240, + "time": 162.5273040416667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 77, + "name": "F5", + "ticks": 90480, + "time": 163.0151090416667, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 90720, + "time": 163.4838590416667, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.9375, + "durationTicks": 480, + "midi": 74, + "name": "D5", + "ticks": 90960, + "time": 163.9526090416667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24817999999999074, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 91440, + "time": 164.8901090416667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24818000000001916, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 91560, + "time": 165.1382890416667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.09870150000000422, + "durationTicks": 45, + "midi": 71, + "name": "B4", + "ticks": 91680, + "time": 165.38646904166671, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.09870150000000422, + "durationTicks": 45, + "midi": 72, + "name": "C5", + "ticks": 91725, + "time": 165.48517054166672, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.5922089999999969, + "durationTicks": 270, + "midi": 71, + "name": "B4", + "ticks": 91770, + "time": 165.58387204166672, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.26320400000000177, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 92040, + "time": 166.17608104166672, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.9613840000000096, + "durationTicks": 480, + "midi": 69, + "name": "A4", + "ticks": 92160, + "time": 166.43928504166672, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 95280, + "time": 172.66893854166668, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 95520, + "time": 173.14512904166668, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.49180350000000317, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 95760, + "time": 173.62131954166668, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7142857499999877, + "durationTicks": 360, + "midi": 72, + "name": "C5", + "ticks": 96000, + "time": 174.11312304166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11363637499999868, + "durationTicks": 60, + "midi": 74, + "name": "D5", + "ticks": 96360, + "time": 174.82740879166667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.11363637499999868, + "durationTicks": 60, + "midi": 72, + "name": "C5", + "ticks": 96420, + "time": 174.94104516666667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 71, + "name": "B4", + "ticks": 96480, + "time": 175.05468154166667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 72, + "name": "C5", + "ticks": 96720, + "time": 175.54248654166668, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 96960, + "time": 176.01867704166668, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.48809524999998644, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 97200, + "time": 176.49486754166668, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.7142857499999877, + "durationTicks": 360, + "midi": 77, + "name": "F5", + "ticks": 97440, + "time": 176.98296279166667, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.11450387499999692, + "durationTicks": 60, + "midi": 79, + "name": "G5", + "ticks": 97800, + "time": 177.69724854166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11450387499999692, + "durationTicks": 60, + "midi": 77, + "name": "F5", + "ticks": 97860, + "time": 177.81175241666665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 76, + "name": "E5", + "ticks": 97920, + "time": 177.92625629166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 81, + "name": "A5", + "ticks": 98160, + "time": 178.41406129166666, + "velocity": 0.5354330708661418 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 74, + "name": "D5", + "ticks": 98400, + "time": 178.89025179166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.7142857499999877, + "durationTicks": 360, + "midi": 79, + "name": "G5", + "ticks": 98640, + "time": 179.36644229166666, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 81, + "name": "A5", + "ticks": 99000, + "time": 180.08072804166665, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.22727274999999736, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 99120, + "time": 180.31882329166666, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.22727274999999736, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 99240, + "time": 180.54609604166666, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 76, + "name": "E5", + "ticks": 99360, + "time": 180.77336879166666, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 81, + "name": "A5", + "ticks": 99600, + "time": 181.24955929166666, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.45081987500000764, + "durationTicks": 220, + "midi": 74, + "name": "D5", + "ticks": 99840, + "time": 181.72574979166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.49180350000000317, + "durationTicks": 240, + "midi": 82, + "name": "A#5", + "ticks": 100080, + "time": 182.21755329166666, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 81, + "name": "A5", + "ticks": 100320, + "time": 182.70935679166666, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.22900774999999385, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 100560, + "time": 183.18554729166667, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.22900774999999385, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 100680, + "time": 183.41455504166666, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 100800, + "time": 183.64356279166665, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 100920, + "time": 183.88165804166664, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 101040, + "time": 184.11975329166665, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 101160, + "time": 184.35784854166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 101280, + "time": 184.59594379166666, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 101400, + "time": 184.83403904166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.06198349999999664, + "durationTicks": 30, + "midi": 79, + "name": "G5", + "ticks": 101520, + "time": 185.07213429166666, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.06198349999999664, + "durationTicks": 30, + "midi": 81, + "name": "A5", + "ticks": 101550, + "time": 185.13411779166665, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.06198349999999664, + "durationTicks": 30, + "midi": 79, + "name": "G5", + "ticks": 101580, + "time": 185.19610129166665, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.1239670000000217, + "durationTicks": 60, + "midi": 77, + "name": "F5", + "ticks": 101640, + "time": 185.32006829166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.12396699999999328, + "durationTicks": 60, + "midi": 79, + "name": "G5", + "ticks": 101700, + "time": 185.44403529166667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.17857143750001114, + "durationTicks": 90, + "midi": 81, + "name": "A5", + "ticks": 101760, + "time": 185.56800229166666, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 73, + "name": "C#5", + "ticks": 101880, + "time": 185.80609754166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 102000, + "time": 186.04419279166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24793399999998655, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 102120, + "time": 186.28228804166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.09297525000002338, + "durationTicks": 45, + "midi": 76, + "name": "E5", + "ticks": 102240, + "time": 186.53022204166663, + "velocity": 0.5039370078740157 + }, + { + "duration": 0.09297524999999496, + "durationTicks": 45, + "midi": 77, + "name": "F5", + "ticks": 102285, + "time": 186.62319729166666, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.5578514999999982, + "durationTicks": 270, + "midi": 76, + "name": "E5", + "ticks": 102330, + "time": 186.71617254166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24793399999998655, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 102600, + "time": 187.27402404166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.49586800000000153, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 102720, + "time": 187.52195804166664, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.4800000000000182, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 105360, + "time": 192.84880679166662, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.47999999999998977, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 105600, + "time": 193.32880679166664, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.49210075000002007, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 105840, + "time": 193.80880679166663, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7199999999999989, + "durationTicks": 360, + "midi": 72, + "name": "C5", + "ticks": 106080, + "time": 194.30090754166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.12000000000000455, + "durationTicks": 60, + "midi": 74, + "name": "D5", + "ticks": 106440, + "time": 195.02090754166665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.12000000000000455, + "durationTicks": 60, + "midi": 72, + "name": "C5", + "ticks": 106500, + "time": 195.14090754166665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.46218470833332503, + "durationTicks": 220, + "midi": 71, + "name": "B4", + "ticks": 106560, + "time": 195.26090754166665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 106800, + "time": 195.76510904166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 69, + "name": "A4", + "ticks": 107040, + "time": 196.24129954166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.7142857499999877, + "durationTicks": 360, + "midi": 74, + "name": "D5", + "ticks": 107280, + "time": 196.71749004166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 107640, + "time": 197.43177579166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.22900774999999385, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 107760, + "time": 197.66987104166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.22900774999999385, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 107880, + "time": 197.89887879166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 108000, + "time": 198.12788654166664, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 108120, + "time": 198.36598179166663, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.24590175000000158, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 108240, + "time": 198.60407704166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.24590175000000158, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 108360, + "time": 198.84997879166664, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.24590175000000158, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 108480, + "time": 199.09588054166665, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.24590175000000158, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 108600, + "time": 199.34178229166665, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.24590175000000158, + "durationTicks": 120, + "midi": 81, + "name": "A5", + "ticks": 108720, + "time": 199.58768404166665, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.24590175000000158, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 108840, + "time": 199.83358579166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24590175000000158, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 108960, + "time": 200.07948754166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24590175000000158, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 109080, + "time": 200.32538929166665, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 109200, + "time": 200.57129104166665, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.23999999999998067, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 109320, + "time": 200.81129104166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.975609999999989, + "durationTicks": 480, + "midi": 71, + "name": "B4", + "ticks": 109440, + "time": 201.05129104166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4878050000000087, + "durationTicks": 240, + "midi": 72, + "name": "C5", + "ticks": 109920, + "time": 202.02690104166663, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4878050000000087, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 110160, + "time": 202.51470604166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46249591666665424, + "durationTicks": 220, + "midi": 67, + "name": "G4", + "ticks": 110400, + "time": 203.00251104166665, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.120238999999998, + "durationTicks": 480, + "midi": 72, + "name": "C5", + "ticks": 110640, + "time": 203.50705204166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.5601195000000132, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 111120, + "time": 204.62729104166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.052816000000007, + "durationTicks": 480, + "midi": 72, + "name": "C5", + "ticks": 111360, + "time": 205.18741054166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.5264080000000035, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 111840, + "time": 206.24022654166666, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.5264079999999751, + "durationTicks": 240, + "midi": 70, + "name": "A#4", + "ticks": 112080, + "time": 206.76663454166666, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.5264080000000035, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 112320, + "time": 207.29304254166664, + "velocity": 0.5196850393700787 + }, + { + "duration": 1.0566897500000039, + "durationTicks": 480, + "midi": 74, + "name": "D5", + "ticks": 112560, + "time": 207.81945054166664, + "velocity": 0.5669291338582677 + }, + { + "duration": 0.52631599999998, + "durationTicks": 240, + "midi": 72, + "name": "C5", + "ticks": 113040, + "time": 208.87614029166664, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.5263160000000084, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 113280, + "time": 209.40245629166662, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.5298785000000237, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 113520, + "time": 209.92877229166663, + "velocity": 0.5511811023622047 + }, + { + "duration": 1.3157899999999927, + "durationTicks": 600, + "midi": 77, + "name": "F5", + "ticks": 113760, + "time": 210.45865079166666, + "velocity": 0.5826771653543307 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 81, + "name": "A5", + "ticks": 114360, + "time": 211.77444079166665, + "velocity": 0.5433070866141733 + }, + { + "duration": 0.2725784999999803, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 114480, + "time": 212.04701929166666, + "velocity": 0.5433070866141733 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 114600, + "time": 212.31959779166664, + "velocity": 0.5354330708661418 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 114720, + "time": 212.59217629166665, + "velocity": 0.5275590551181102 + }, + { + "duration": 0.2725784999999803, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 114840, + "time": 212.86475479166666, + "velocity": 0.5433070866141733 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 114960, + "time": 213.13733329166664, + "velocity": 0.5354330708661418 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 115080, + "time": 213.40991179166664, + "velocity": 0.5275590551181102 + }, + { + "duration": 2.230958666666652, + "durationTicks": 960, + "midi": 72, + "name": "C5", + "ticks": 115200, + "time": 213.68249029166665, + "velocity": 0.5511811023622047 + }, + { + "duration": 0.13513512500000502, + "durationTicks": 60, + "midi": 67, + "name": "G4", + "ticks": 116280, + "time": 216.2014674583333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.13513512500000502, + "durationTicks": 60, + "midi": 69, + "name": "A4", + "ticks": 116340, + "time": 216.3366025833333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.28846150000001103, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 116400, + "time": 216.4717377083333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.2884614999999826, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 116520, + "time": 216.76019920833332, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.28846150000001103, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 116640, + "time": 217.0486607083333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.2884614999999826, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 116760, + "time": 217.3371222083333, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.7079214999999976, + "durationTicks": 300, + "midi": 77, + "name": "F5", + "ticks": 116880, + "time": 217.6255837083333, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.14423075000001973, + "durationTicks": 60, + "midi": 72, + "name": "C5", + "ticks": 117180, + "time": 218.3335052083333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.1442307499999913, + "durationTicks": 60, + "midi": 74, + "name": "D5", + "ticks": 117240, + "time": 218.4777359583333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.1442307499999913, + "durationTicks": 60, + "midi": 76, + "name": "E5", + "ticks": 117300, + "time": 218.6219667083333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.28846150000001103, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 117360, + "time": 218.7661974583333, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.2884614999999826, + "durationTicks": 120, + "midi": 79, + "name": "G5", + "ticks": 117480, + "time": 219.0546589583333, + "velocity": 0.4881889763779528 + }, + { + "duration": 1.1248065000000054, + "durationTicks": 360, + "midi": 81, + "name": "A5", + "ticks": 117600, + "time": 219.3431204583333, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.5656107499999905, + "durationTicks": 120, + "midi": 83, + "name": "B5", + "ticks": 117960, + "time": 220.4679269583333, + "velocity": 0.5039370078740157 + }, + { + "duration": 4.524886000000009, + "durationTicks": 960, + "midi": 79, + "name": "G5", + "ticks": 118080, + "time": 221.03353770833328, + "velocity": 0.4094488188976378 + }, + { + "duration": 4.524886000000009, + "durationTicks": 960, + "midi": 84, + "name": "C6", + "ticks": 118080, + "time": 221.03353770833328, + "velocity": 0.4409448818897638 + } + ] + }, + { + "channel": 0, + "controlChanges": { + "7": [ + { + "number": 7, + "ticks": 0, + "time": 0, + "value": 0.8661417322834646 + }, + { + "number": 7, + "ticks": 67440, + "time": 117.7351975833333, + "value": 1 + }, + { + "number": 7, + "ticks": 70440, + "time": 123.69500658333331, + "value": 0.8661417322834646 + }, + { + "number": 7, + "ticks": 82800, + "time": 147.97998650000002, + "value": 1 + }, + { + "number": 7, + "ticks": 86160, + "time": 154.5333512916667, + "value": 0.8661417322834646 + }, + { + "number": 7, + "ticks": 92400, + "time": 166.91997704166673, + "value": 1 + }, + { + "number": 7, + "ticks": 95280, + "time": 172.66893854166668, + "value": 0.8661417322834646 + } + ], + "10": [ + { + "number": 10, + "ticks": 0, + "time": 0, + "value": 0.5039370078740157 + } + ], + "91": [ + { + "number": 91, + "ticks": 67200, + "time": 117.2545055833333, + "value": 1 + } + ], + "93": [ + { + "number": 93, + "ticks": 67200, + "time": 117.2545055833333, + "value": 0 + } + ] + }, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "Fuga 2", + "notes": [ + { + "duration": 0.48069199999999057, + "durationTicks": 240, + "midi": 60, + "name": "C4", + "ticks": 67440, + "time": 117.7351975833333, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.4806920000000048, + "durationTicks": 240, + "midi": 62, + "name": "D4", + "ticks": 67680, + "time": 118.2158895833333, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.4806920000000048, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 67920, + "time": 118.6965815833333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.7199999999999989, + "durationTicks": 360, + "midi": 65, + "name": "F4", + "ticks": 68160, + "time": 119.1772735833333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 67, + "name": "G4", + "ticks": 68520, + "time": 119.8972735833333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 65, + "name": "F4", + "ticks": 68580, + "time": 120.0092138333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4365079583333369, + "durationTicks": 220, + "midi": 64, + "name": "E4", + "ticks": 68640, + "time": 120.12115408333331, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 68880, + "time": 120.59734458333331, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.44715458333332947, + "durationTicks": 220, + "midi": 62, + "name": "D4", + "ticks": 69120, + "time": 121.07353508333331, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.7086615000000052, + "durationTicks": 360, + "midi": 67, + "name": "G4", + "ticks": 69360, + "time": 121.5613400833333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 69720, + "time": 122.27000158333331, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.2362204999999875, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 69840, + "time": 122.50622208333331, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 69960, + "time": 122.7424425833333, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 70080, + "time": 122.9786630833333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24390250000000435, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 70200, + "time": 123.2148835833333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 70320, + "time": 123.45878608333331, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 70440, + "time": 123.69500658333331, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 70560, + "time": 123.93122708333331, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 70680, + "time": 124.16744758333331, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.24390250000000435, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 70800, + "time": 124.40366808333332, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.24390249999999014, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 70920, + "time": 124.64757058333332, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 71040, + "time": 124.89147308333331, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.46010100000000875, + "durationTicks": 240, + "midi": 66, + "name": "F#4", + "ticks": 71280, + "time": 125.36391408333331, + "velocity": 0.4409448818897638 + }, + { + "duration": 1.4287530000000004, + "durationTicks": 720, + "midi": 67, + "name": "G4", + "ticks": 71520, + "time": 125.82401508333332, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 72240, + "time": 127.25276808333332, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 72360, + "time": 127.48714308333332, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4296874999999858, + "durationTicks": 220, + "midi": 66, + "name": "F#4", + "ticks": 72480, + "time": 127.72151808333332, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 62, + "name": "D4", + "ticks": 72720, + "time": 128.1902680833333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.47999999999998977, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 72960, + "time": 128.6590180833333, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 65, + "name": "F4", + "ticks": 73200, + "time": 129.1390180833333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 73440, + "time": 129.6114590833333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 62, + "name": "D4", + "ticks": 73680, + "time": 130.0802090833333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 60, + "name": "C4", + "ticks": 73920, + "time": 130.5489590833333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.9565550000000087, + "durationTicks": 480, + "midi": 67, + "name": "G4", + "ticks": 74640, + "time": 131.95258383333328, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 75120, + "time": 132.9091388333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 75240, + "time": 133.1435138333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.171875, + "durationTicks": 600, + "midi": 65, + "name": "F4", + "ticks": 75360, + "time": 133.3778888333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 75960, + "time": 134.5497638333333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4838709999999935, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 76080, + "time": 134.7841388333333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.9375, + "durationTicks": 480, + "midi": 62, + "name": "D4", + "ticks": 76320, + "time": 135.26800983333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 60, + "name": "C4", + "ticks": 76800, + "time": 136.20550983333328, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4533529999999928, + "durationTicks": 240, + "midi": 65, + "name": "F4", + "ticks": 77040, + "time": 136.67425983333328, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 77400, + "time": 137.36383333333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 77520, + "time": 137.60005383333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 77640, + "time": 137.83627433333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.44354841666665834, + "durationTicks": 220, + "midi": 65, + "name": "F4", + "ticks": 77760, + "time": 138.07249483333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 62, + "name": "D4", + "ticks": 78000, + "time": 138.55636583333327, + "velocity": 0.4409448818897638 + }, + { + "duration": 1.8684510000000216, + "durationTicks": 960, + "midi": 67, + "name": "G4", + "ticks": 78240, + "time": 139.02880683333328, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 82800, + "time": 147.97998650000002, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 83040, + "time": 148.45242750000003, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 83280, + "time": 148.92486850000003, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.7086614999999767, + "durationTicks": 360, + "midi": 72, + "name": "C5", + "ticks": 83520, + "time": 149.39730950000003, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 74, + "name": "D5", + "ticks": 83880, + "time": 150.105971, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 72, + "name": "C5", + "ticks": 83940, + "time": 150.21791125000001, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4330709166666793, + "durationTicks": 220, + "midi": 71, + "name": "B4", + "ticks": 84000, + "time": 150.32985150000002, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4705955000000017, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 84240, + "time": 150.80229250000002, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 69, + "name": "A4", + "ticks": 84480, + "time": 151.27288800000002, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.6945987916666638, + "durationTicks": 360, + "midi": 74, + "name": "D5", + "ticks": 84720, + "time": 151.76069300000003, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.22785108333332005, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 85080, + "time": 152.4552917916667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.22988849999998706, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 85200, + "time": 152.68314287500002, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23196191666667687, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 85320, + "time": 152.913031375, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.4562804999999912, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 85440, + "time": 153.14499329166668, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.47999999999998977, + "durationTicks": 240, + "midi": 62, + "name": "D4", + "ticks": 86160, + "time": 154.5333512916667, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 86400, + "time": 155.01335129166668, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.45825550000000703, + "durationTicks": 240, + "midi": 66, + "name": "F#4", + "ticks": 86640, + "time": 155.48210129166668, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.703125, + "durationTicks": 360, + "midi": 67, + "name": "G4", + "ticks": 86880, + "time": 155.9403567916667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11111112500000786, + "durationTicks": 60, + "midi": 69, + "name": "A4", + "ticks": 87240, + "time": 156.6434817916667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.11111112499997944, + "durationTicks": 60, + "midi": 67, + "name": "G4", + "ticks": 87300, + "time": 156.7545929166667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4296875, + "durationTicks": 220, + "midi": 66, + "name": "F#4", + "ticks": 87360, + "time": 156.86570404166667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 87600, + "time": 157.33445404166667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 64, + "name": "E4", + "ticks": 87840, + "time": 157.80320404166667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.703125, + "durationTicks": 360, + "midi": 69, + "name": "A4", + "ticks": 88080, + "time": 158.29100904166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 88440, + "time": 158.99413404166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24193550000001096, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 88560, + "time": 159.22850904166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24193549999998254, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 88680, + "time": 159.4704445416667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 66, + "name": "F#4", + "ticks": 88800, + "time": 159.71238004166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 65, + "name": "F4", + "ticks": 89040, + "time": 160.18482104166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 89280, + "time": 160.65726204166668, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.6944760000000088, + "durationTicks": 360, + "midi": 62, + "name": "D4", + "ticks": 89520, + "time": 161.1297030416667, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 89880, + "time": 161.8241790416667, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 90000, + "time": 162.0585540416667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 68, + "name": "G#4", + "ticks": 90120, + "time": 162.2929290416667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.24390249999999014, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 90240, + "time": 162.5273040416667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.24390250000001856, + "durationTicks": 120, + "midi": 68, + "name": "G#4", + "ticks": 90360, + "time": 162.7712065416667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 90480, + "time": 163.0151090416667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 90600, + "time": 163.2494840416667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 68, + "name": "G#4", + "ticks": 90720, + "time": 163.4838590416667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 90840, + "time": 163.7182340416667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 68, + "name": "G#4", + "ticks": 90960, + "time": 163.9526090416667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 91080, + "time": 164.1869840416667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 91200, + "time": 164.4213590416667, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.4806920000000048, + "durationTicks": 240, + "midi": 60, + "name": "C4", + "ticks": 92400, + "time": 166.91997704166673, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.48069199999997636, + "durationTicks": 240, + "midi": 62, + "name": "D4", + "ticks": 92640, + "time": 167.40066904166673, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.5042014999999935, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 92880, + "time": 167.8813610416667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7199999999999989, + "durationTicks": 360, + "midi": 65, + "name": "F4", + "ticks": 93120, + "time": 168.3855625416667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11363637499999868, + "durationTicks": 60, + "midi": 67, + "name": "G4", + "ticks": 93480, + "time": 169.1055625416667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.11363637499999868, + "durationTicks": 60, + "midi": 65, + "name": "F4", + "ticks": 93540, + "time": 169.2191989166667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 64, + "name": "E4", + "ticks": 93600, + "time": 169.3328352916667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 93840, + "time": 169.8090257916667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 62, + "name": "D4", + "ticks": 94080, + "time": 170.2852162916667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.7142857499999877, + "durationTicks": 360, + "midi": 67, + "name": "G4", + "ticks": 94320, + "time": 170.7730212916667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.2307692500000087, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 94680, + "time": 171.4873070416667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23076924999998027, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 94800, + "time": 171.7180762916667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.24390249999999014, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 94920, + "time": 171.94884554166669, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 64, + "name": "E4", + "ticks": 95040, + "time": 172.19274804166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 95280, + "time": 172.66893854166668, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 66, + "name": "F#4", + "ticks": 95520, + "time": 173.14512904166668, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.848946374999997, + "durationTicks": 420, + "midi": 67, + "name": "G4", + "ticks": 95760, + "time": 173.62131954166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4653679999999838, + "durationTicks": 240, + "midi": 66, + "name": "F#4", + "ticks": 96240, + "time": 174.58931354166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4878050000000087, + "durationTicks": 240, + "midi": 68, + "name": "G#4", + "ticks": 96480, + "time": 175.05468154166667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.9523810000000026, + "durationTicks": 480, + "midi": 69, + "name": "A4", + "ticks": 96720, + "time": 175.54248654166668, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.48809524999998644, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 97200, + "time": 176.49486754166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 97440, + "time": 176.98296279166667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4671029999999803, + "durationTicks": 240, + "midi": 71, + "name": "B4", + "ticks": 97680, + "time": 177.45915329166667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.7259002499999951, + "durationTicks": 360, + "midi": 72, + "name": "C5", + "ticks": 97920, + "time": 177.92625629166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11904762500000743, + "durationTicks": 60, + "midi": 74, + "name": "D5", + "ticks": 98280, + "time": 178.65215654166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.11904762500000743, + "durationTicks": 60, + "midi": 72, + "name": "C5", + "ticks": 98340, + "time": 178.77120416666665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 71, + "name": "B4", + "ticks": 98400, + "time": 178.89025179166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 98640, + "time": 179.36644229166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 69, + "name": "A4", + "ticks": 98880, + "time": 179.84263279166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.6926407499999812, + "durationTicks": 360, + "midi": 74, + "name": "D5", + "ticks": 99120, + "time": 180.31882329166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 76, + "name": "E5", + "ticks": 99480, + "time": 181.01146404166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 99600, + "time": 181.24955929166666, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 99720, + "time": 181.48765454166664, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.45081987500000764, + "durationTicks": 220, + "midi": 71, + "name": "B4", + "ticks": 99840, + "time": 181.72574979166666, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.49180350000000317, + "durationTicks": 240, + "midi": 79, + "name": "G5", + "ticks": 100080, + "time": 182.21755329166666, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 73, + "name": "C#5", + "ticks": 100320, + "time": 182.70935679166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4580154999999877, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 100560, + "time": 183.18554729166667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 76, + "name": "E5", + "ticks": 100800, + "time": 183.64356279166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 73, + "name": "C#5", + "ticks": 101040, + "time": 184.11975329166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 101280, + "time": 184.59594379166666, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.49586800000000153, + "durationTicks": 240, + "midi": 76, + "name": "E5", + "ticks": 101520, + "time": 185.07213429166666, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 101760, + "time": 185.56800229166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.49586800000000153, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 102480, + "time": 187.02609004166663, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.49586800000000153, + "durationTicks": 240, + "midi": 66, + "name": "F#4", + "ticks": 102720, + "time": 187.52195804166664, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.49586800000000153, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 102960, + "time": 188.01782604166664, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7199999999999989, + "durationTicks": 360, + "midi": 69, + "name": "A4", + "ticks": 103200, + "time": 188.51369404166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.12000000000000455, + "durationTicks": 60, + "midi": 71, + "name": "B4", + "ticks": 103560, + "time": 189.23369404166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.12000000000000455, + "durationTicks": 60, + "midi": 69, + "name": "A4", + "ticks": 103620, + "time": 189.35369404166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4399999999999977, + "durationTicks": 220, + "midi": 67, + "name": "G4", + "ticks": 103680, + "time": 189.47369404166665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4800000000000182, + "durationTicks": 240, + "midi": 72, + "name": "C5", + "ticks": 103920, + "time": 189.95369404166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23599999999999, + "durationTicks": 118, + "midi": 66, + "name": "F#4", + "ticks": 104160, + "time": 190.43369404166666, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7258065000000045, + "durationTicks": 360, + "midi": 71, + "name": "B4", + "ticks": 104400, + "time": 190.93231479166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24193549999998254, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 104760, + "time": 191.65812129166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 71, + "name": "B4", + "ticks": 104880, + "time": 191.90005679166663, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 105000, + "time": 192.13443179166663, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 105120, + "time": 192.36880679166663, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23999999999998067, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 105240, + "time": 192.60880679166664, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 105360, + "time": 192.84880679166662, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 105480, + "time": 193.08880679166663, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.9721007500000098, + "durationTicks": 480, + "midi": 64, + "name": "E4", + "ticks": 105600, + "time": 193.32880679166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.212100750000019, + "durationTicks": 600, + "midi": 62, + "name": "D4", + "ticks": 106080, + "time": 194.30090754166665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.25210074999998255, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 106680, + "time": 195.51300829166667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 106800, + "time": 195.76510904166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 106920, + "time": 196.00320429166663, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 107040, + "time": 196.24129954166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 107160, + "time": 196.47939479166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 107280, + "time": 196.71749004166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 107400, + "time": 196.95558529166664, + "velocity": 0.4409448818897638 + }, + { + "duration": 1.1723012499999754, + "durationTicks": 600, + "midi": 67, + "name": "G4", + "ticks": 107520, + "time": 197.19368054166665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 108120, + "time": 198.36598179166663, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.49180350000000317, + "durationTicks": 240, + "midi": 70, + "name": "A#4", + "ticks": 108240, + "time": 198.60407704166664, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.9836070000000063, + "durationTicks": 480, + "midi": 72, + "name": "C5", + "ticks": 108480, + "time": 199.09588054166665, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.4508198749999792, + "durationTicks": 220, + "midi": 74, + "name": "D5", + "ticks": 108960, + "time": 200.07948754166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.47999999999998977, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 109200, + "time": 200.57129104166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.4634149999999977, + "durationTicks": 720, + "midi": 67, + "name": "G4", + "ticks": 109440, + "time": 201.05129104166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.9923459999999977, + "durationTicks": 480, + "midi": 65, + "name": "F4", + "ticks": 110160, + "time": 202.51470604166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.5601195000000132, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 110640, + "time": 203.50705204166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.120238999999998, + "durationTicks": 480, + "midi": 62, + "name": "D4", + "ticks": 110880, + "time": 204.06717154166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4825406666666652, + "durationTicks": 220, + "midi": 64, + "name": "E4", + "ticks": 111360, + "time": 205.18741054166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 1.052816000000007, + "durationTicks": 480, + "midi": 69, + "name": "A4", + "ticks": 111600, + "time": 205.71381854166665, + "velocity": 0.5354330708661418 + }, + { + "duration": 1.0528159999999787, + "durationTicks": 480, + "midi": 67, + "name": "G4", + "ticks": 112080, + "time": 206.76663454166666, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.5303737499999954, + "durationTicks": 240, + "midi": 65, + "name": "F4", + "ticks": 112560, + "time": 207.81945054166664, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.5263160000000084, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 112800, + "time": 208.34982429166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.52631599999998, + "durationTicks": 240, + "midi": 69, + "name": "A4", + "ticks": 113040, + "time": 208.87614029166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.7784167500000194, + "durationTicks": 360, + "midi": 70, + "name": "A#4", + "ticks": 113280, + "time": 209.40245629166662, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.13888887499999214, + "durationTicks": 60, + "midi": 72, + "name": "C5", + "ticks": 113640, + "time": 210.18087304166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.13888887500002056, + "durationTicks": 60, + "midi": 70, + "name": "A#4", + "ticks": 113700, + "time": 210.31976191666664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4824563333333458, + "durationTicks": 220, + "midi": 69, + "name": "A4", + "ticks": 113760, + "time": 210.45865079166666, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.52631599999998, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 114000, + "time": 210.98496679166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.490306750000002, + "durationTicks": 220, + "midi": 67, + "name": "G4", + "ticks": 114240, + "time": 211.51128279166664, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.8177354999999977, + "durationTicks": 360, + "midi": 72, + "name": "C5", + "ticks": 114480, + "time": 212.04701929166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.2725784999999803, + "durationTicks": 120, + "midi": 74, + "name": "D5", + "ticks": 114840, + "time": 212.86475479166666, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 72, + "name": "C5", + "ticks": 114960, + "time": 213.13733329166664, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 70, + "name": "A#4", + "ticks": 115080, + "time": 213.40991179166664, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 115200, + "time": 213.68249029166665, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.274211166666646, + "durationTicks": 120, + "midi": 70, + "name": "A#4", + "ticks": 115320, + "time": 213.95506879166666, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.27585858333333135, + "durationTicks": 120, + "midi": 69, + "name": "A4", + "ticks": 115440, + "time": 214.2292799583333, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.27752075000000787, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 115560, + "time": 214.50513854166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.2800597499999924, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 115680, + "time": 214.78265929166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.28181908333334604, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 115800, + "time": 215.06271904166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.2835770833333129, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 115920, + "time": 215.34453812499999, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.2853337500000066, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 116040, + "time": 215.6281152083333, + "velocity": 0.4645669291338583 + }, + { + "duration": 2.000596250000001, + "durationTicks": 840, + "midi": 62, + "name": "D4", + "ticks": 116160, + "time": 215.9134489583333, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.2752292499999953, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 117000, + "time": 217.9140452083333, + "velocity": 0.44881889763779526 + }, + { + "duration": 1.1538459999999873, + "durationTicks": 480, + "midi": 69, + "name": "A4", + "ticks": 117120, + "time": 218.1892744583333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.39651075000000446, + "durationTicks": 120, + "midi": 77, + "name": "F5", + "ticks": 117720, + "time": 219.67490545833328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.962121499999995, + "durationTicks": 240, + "midi": 74, + "name": "D5", + "ticks": 117840, + "time": 220.0714162083333, + "velocity": 0.44881889763779526 + }, + { + "duration": 4.524886000000009, + "durationTicks": 960, + "midi": 76, + "name": "E5", + "ticks": 118080, + "time": 221.03353770833328, + "velocity": 0.3779527559055118 + } + ] + }, + { + "channel": 0, + "controlChanges": { + "7": [ + { + "number": 7, + "ticks": 0, + "time": 0, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 73200, + "time": 129.1390180833333, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 76080, + "time": 134.7841388333333, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 88560, + "time": 159.22850904166668, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 95280, + "time": 172.66893854166668, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 102000, + "time": 186.04419279166666, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 105720, + "time": 193.56880679166662, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 106800, + "time": 195.76510904166665, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 109920, + "time": 202.02690104166663, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 111600, + "time": 205.71381854166665, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 113040, + "time": 208.87614029166664, + "value": 0.7874015748031497 + } + ], + "10": [ + { + "number": 10, + "ticks": 0, + "time": 0, + "value": 0.5039370078740157 + } + ], + "91": [ + { + "number": 91, + "ticks": 67200, + "time": 117.2545055833333, + "value": 1 + } + ], + "93": [ + { + "number": 93, + "ticks": 67200, + "time": 117.2545055833333, + "value": 0 + } + ] + }, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "Fuga 3", + "notes": [ + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 55, + "name": "G3", + "ticks": 73200, + "time": 129.1390180833333, + "velocity": 0.3937007874015748 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 73440, + "time": 129.6114590833333, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 59, + "name": "B3", + "ticks": 73680, + "time": 130.0802090833333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7126524999999901, + "durationTicks": 360, + "midi": 60, + "name": "C4", + "ticks": 73920, + "time": 130.5489590833333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11111112500000786, + "durationTicks": 60, + "midi": 62, + "name": "D4", + "ticks": 74280, + "time": 131.2616115833333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.11111112499997944, + "durationTicks": 60, + "midi": 60, + "name": "C4", + "ticks": 74340, + "time": 131.3727227083333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4296875, + "durationTicks": 220, + "midi": 59, + "name": "B3", + "ticks": 74400, + "time": 131.48383383333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 74640, + "time": 131.95258383333328, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 57, + "name": "A3", + "ticks": 74880, + "time": 132.42133383333328, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.703125, + "durationTicks": 360, + "midi": 62, + "name": "D4", + "ticks": 75120, + "time": 132.9091388333333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 75480, + "time": 133.6122638333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 75600, + "time": 133.8466388333333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 75720, + "time": 134.0810138333333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4296875, + "durationTicks": 220, + "midi": 59, + "name": "B3", + "ticks": 75840, + "time": 134.3153888333333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.9526209999999935, + "durationTicks": 480, + "midi": 60, + "name": "C4", + "ticks": 76080, + "time": 134.7841388333333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 58, + "name": "A#3", + "ticks": 76560, + "time": 135.73675983333328, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4296875, + "durationTicks": 220, + "midi": 57, + "name": "A3", + "ticks": 76800, + "time": 136.20550983333328, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4533529999999928, + "durationTicks": 240, + "midi": 62, + "name": "D4", + "ticks": 77040, + "time": 136.67425983333328, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4330709166666793, + "durationTicks": 220, + "midi": 55, + "name": "G3", + "ticks": 77280, + "time": 137.12761283333327, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 60, + "name": "C4", + "ticks": 77520, + "time": 137.60005383333328, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24193549999998254, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 77880, + "time": 138.3144303333333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 78000, + "time": 138.55636583333327, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 78120, + "time": 138.79258633333328, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.9235690000000147, + "durationTicks": 480, + "midi": 62, + "name": "D4", + "ticks": 78240, + "time": 139.02880683333328, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.9448820000000069, + "durationTicks": 480, + "midi": 55, + "name": "G3", + "ticks": 78720, + "time": 139.9523758333333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4838709999999935, + "durationTicks": 240, + "midi": 55, + "name": "G3", + "ticks": 79440, + "time": 141.3696988333333, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 79680, + "time": 141.8535698333333, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.46010100000000875, + "durationTicks": 240, + "midi": 59, + "name": "B3", + "ticks": 79920, + "time": 142.3260108333333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.703125, + "durationTicks": 360, + "midi": 60, + "name": "C4", + "ticks": 80160, + "time": 142.7861118333333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1171875, + "durationTicks": 60, + "midi": 62, + "name": "D4", + "ticks": 80520, + "time": 143.4892368333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.1171875, + "durationTicks": 60, + "midi": 60, + "name": "C4", + "ticks": 80580, + "time": 143.6064243333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4422883333333232, + "durationTicks": 220, + "midi": 59, + "name": "B3", + "ticks": 80640, + "time": 143.7236118333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 80880, + "time": 144.20622275, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4330709166666793, + "durationTicks": 220, + "midi": 57, + "name": "A3", + "ticks": 81120, + "time": 144.67866375, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.6984479999999849, + "durationTicks": 360, + "midi": 62, + "name": "D4", + "ticks": 81360, + "time": 145.15110475, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24390250000001856, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 81720, + "time": 145.84955275, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 81840, + "time": 146.09345525, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 81960, + "time": 146.32967575, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 59, + "name": "B3", + "ticks": 82080, + "time": 146.56589625, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.4140902500000152, + "durationTicks": 720, + "midi": 64, + "name": "E4", + "ticks": 82320, + "time": 147.03833725, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.9448820000000069, + "durationTicks": 480, + "midi": 62, + "name": "D4", + "ticks": 83040, + "time": 148.45242750000003, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 83640, + "time": 149.63353, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 83760, + "time": 149.8697505, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.16791037499999106, + "durationTicks": 90, + "midi": 57, + "name": "A3", + "ticks": 83880, + "time": 150.105971, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 84000, + "time": 150.32985150000002, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 84120, + "time": 150.56607200000002, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 84240, + "time": 150.80229250000002, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 84360, + "time": 151.03851300000002, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.1829268749999926, + "durationTicks": 90, + "midi": 60, + "name": "C4", + "ticks": 84480, + "time": 151.27288800000002, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24390250000001856, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 84600, + "time": 151.5167905, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 84720, + "time": 151.76069300000003, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 84840, + "time": 151.99506800000003, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.22584879166666383, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 84960, + "time": 152.22944300000003, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.22785108333332005, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 85080, + "time": 152.4552917916667, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.22988849999998706, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 85200, + "time": 152.68314287500002, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23196191666667687, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 85320, + "time": 152.913031375, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.9196080000000109, + "durationTicks": 480, + "midi": 55, + "name": "G3", + "ticks": 85440, + "time": 153.14499329166668, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4838709999999935, + "durationTicks": 240, + "midi": 52, + "name": "E3", + "ticks": 88560, + "time": 159.22850904166668, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 54, + "name": "F#3", + "ticks": 88800, + "time": 159.71238004166668, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 56, + "name": "G#3", + "ticks": 89040, + "time": 160.18482104166668, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.7086615000000052, + "durationTicks": 360, + "midi": 57, + "name": "A3", + "ticks": 89280, + "time": 160.65726204166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 59, + "name": "B3", + "ticks": 89640, + "time": 161.3659235416667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 57, + "name": "A3", + "ticks": 89700, + "time": 161.4778637916667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4296875, + "durationTicks": 220, + "midi": 56, + "name": "G#3", + "ticks": 89760, + "time": 161.5898040416667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 60, + "name": "C4", + "ticks": 90000, + "time": 162.0585540416667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 54, + "name": "F#3", + "ticks": 90240, + "time": 162.5273040416667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.703125, + "durationTicks": 360, + "midi": 59, + "name": "B3", + "ticks": 90480, + "time": 163.0151090416667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 90840, + "time": 163.7182340416667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 90960, + "time": 163.9526090416667, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 91080, + "time": 164.1869840416667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4296875, + "durationTicks": 220, + "midi": 56, + "name": "G#3", + "ticks": 91200, + "time": 164.4213590416667, + "velocity": 0.4409448818897638 + }, + { + "duration": 1.0227680000000134, + "durationTicks": 480, + "midi": 57, + "name": "A3", + "ticks": 91440, + "time": 164.8901090416667, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.5264080000000035, + "durationTicks": 240, + "midi": 56, + "name": "G#3", + "ticks": 91920, + "time": 165.91287704166672, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.9613840000000096, + "durationTicks": 480, + "midi": 57, + "name": "A3", + "ticks": 92160, + "time": 166.43928504166672, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.5042014999999935, + "durationTicks": 240, + "midi": 55, + "name": "G3", + "ticks": 92880, + "time": 167.8813610416667, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.47999999999998977, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 93120, + "time": 168.3855625416667, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.46727275000000645, + "durationTicks": 240, + "midi": 59, + "name": "B3", + "ticks": 93360, + "time": 168.8655625416667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.7142857499999877, + "durationTicks": 360, + "midi": 60, + "name": "C4", + "ticks": 93600, + "time": 169.3328352916667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11904762500000743, + "durationTicks": 60, + "midi": 62, + "name": "D4", + "ticks": 93960, + "time": 170.04712104166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.11904762500000743, + "durationTicks": 60, + "midi": 60, + "name": "C4", + "ticks": 94020, + "time": 170.1661686666667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4471545833333437, + "durationTicks": 220, + "midi": 59, + "name": "B3", + "ticks": 94080, + "time": 170.2852162916667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 94320, + "time": 170.7730212916667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.43040295833333175, + "durationTicks": 220, + "midi": 57, + "name": "A3", + "ticks": 94560, + "time": 171.2492117916667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.9508622499999717, + "durationTicks": 480, + "midi": 62, + "name": "D4", + "ticks": 94800, + "time": 171.7180762916667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 55, + "name": "G3", + "ticks": 95280, + "time": 172.66893854166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.9679940000000045, + "durationTicks": 480, + "midi": 62, + "name": "D4", + "ticks": 95520, + "time": 173.14512904166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 60, + "name": "C4", + "ticks": 96000, + "time": 174.11312304166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4653679999999838, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 96240, + "time": 174.58931354166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.96399550000001, + "durationTicks": 480, + "midi": 64, + "name": "E4", + "ticks": 96480, + "time": 175.05468154166667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 62, + "name": "D4", + "ticks": 96960, + "time": 176.01867704166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 98160, + "time": 178.41406129166666, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 59, + "name": "B3", + "ticks": 98400, + "time": 178.89025179166666, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 61, + "name": "C#4", + "ticks": 98640, + "time": 179.36644229166666, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7034632499999987, + "durationTicks": 360, + "midi": 62, + "name": "D4", + "ticks": 98880, + "time": 179.84263279166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11363637499999868, + "durationTicks": 60, + "midi": 64, + "name": "E4", + "ticks": 99240, + "time": 180.54609604166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.11363637499999868, + "durationTicks": 60, + "midi": 62, + "name": "D4", + "ticks": 99300, + "time": 180.65973241666666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 60, + "name": "C4", + "ticks": 99360, + "time": 180.77336879166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 65, + "name": "F4", + "ticks": 99600, + "time": 181.24955929166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.45081987500000764, + "durationTicks": 220, + "midi": 59, + "name": "B3", + "ticks": 99840, + "time": 181.72574979166666, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.7298987499999896, + "durationTicks": 360, + "midi": 64, + "name": "E4", + "ticks": 100080, + "time": 182.21755329166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 100440, + "time": 182.94745204166665, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.22900774999999385, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 100560, + "time": 183.18554729166667, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.22900774999999385, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 100680, + "time": 183.41455504166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 61, + "name": "C#4", + "ticks": 100800, + "time": 183.64356279166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.486029249999973, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 102000, + "time": 186.04419279166666, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.49586800000000153, + "durationTicks": 240, + "midi": 59, + "name": "B3", + "ticks": 102240, + "time": 186.53022204166663, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.49586800000000153, + "durationTicks": 240, + "midi": 61, + "name": "C#4", + "ticks": 102480, + "time": 187.02609004166663, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7438020000000165, + "durationTicks": 360, + "midi": 62, + "name": "D4", + "ticks": 102720, + "time": 187.52195804166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.12396699999999328, + "durationTicks": 60, + "midi": 64, + "name": "E4", + "ticks": 103080, + "time": 188.26576004166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.12396699999999328, + "durationTicks": 60, + "midi": 62, + "name": "D4", + "ticks": 103140, + "time": 188.38972704166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4399999999999977, + "durationTicks": 220, + "midi": 60, + "name": "C4", + "ticks": 103200, + "time": 188.51369404166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4800000000000182, + "durationTicks": 240, + "midi": 66, + "name": "F#4", + "ticks": 103440, + "time": 188.99369404166663, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4399999999999977, + "durationTicks": 220, + "midi": 59, + "name": "B3", + "ticks": 103680, + "time": 189.47369404166665, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.7199999999999989, + "durationTicks": 360, + "midi": 64, + "name": "E4", + "ticks": 103920, + "time": 189.95369404166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.25862075000000573, + "durationTicks": 120, + "midi": 66, + "name": "F#4", + "ticks": 104280, + "time": 190.67369404166664, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.24193550000001096, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 104400, + "time": 190.93231479166664, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.24193549999998254, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 104520, + "time": 191.17425029166665, + "velocity": 0.4881889763779528 + }, + { + "duration": 2.152620999999982, + "durationTicks": 1080, + "midi": 60, + "name": "C4", + "ticks": 104640, + "time": 191.41618579166663, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 105720, + "time": 193.56880679166662, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 105840, + "time": 193.80880679166663, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.252100750000011, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 105960, + "time": 194.04880679166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 106080, + "time": 194.30090754166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23999999999998067, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 106200, + "time": 194.54090754166666, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.18000000000000682, + "durationTicks": 90, + "midi": 57, + "name": "A3", + "ticks": 106320, + "time": 194.78090754166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 54, + "name": "F#3", + "ticks": 106440, + "time": 195.02090754166665, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.46218470833332503, + "durationTicks": 220, + "midi": 55, + "name": "G3", + "ticks": 106560, + "time": 195.26090754166665, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 59, + "name": "B3", + "ticks": 106800, + "time": 195.76510904166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 60, + "name": "C4", + "ticks": 107040, + "time": 196.24129954166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 62, + "name": "D4", + "ticks": 107280, + "time": 196.71749004166665, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.7051982499999951, + "durationTicks": 360, + "midi": 64, + "name": "E4", + "ticks": 107520, + "time": 197.19368054166665, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.11450387499999692, + "durationTicks": 60, + "midi": 65, + "name": "F4", + "ticks": 107880, + "time": 197.89887879166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11450387499999692, + "durationTicks": 60, + "midi": 64, + "name": "E4", + "ticks": 107940, + "time": 198.01338266666664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 62, + "name": "D4", + "ticks": 108000, + "time": 198.12788654166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.49180350000000317, + "durationTicks": 240, + "midi": 67, + "name": "G4", + "ticks": 108240, + "time": 198.60407704166664, + "velocity": 0.5118110236220472 + }, + { + "duration": 0.45081987500000764, + "durationTicks": 220, + "midi": 60, + "name": "C4", + "ticks": 108480, + "time": 199.09588054166665, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.7377052500000048, + "durationTicks": 360, + "midi": 65, + "name": "F4", + "ticks": 108720, + "time": 199.58768404166665, + "velocity": 0.5196850393700787 + }, + { + "duration": 0.24590175000000158, + "durationTicks": 120, + "midi": 67, + "name": "G4", + "ticks": 109080, + "time": 200.32538929166665, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 65, + "name": "F4", + "ticks": 109200, + "time": 200.57129104166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23999999999998067, + "durationTicks": 120, + "midi": 64, + "name": "E4", + "ticks": 109320, + "time": 200.81129104166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.975609999999989, + "durationTicks": 480, + "midi": 62, + "name": "D4", + "ticks": 109440, + "time": 201.05129104166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4878050000000087, + "durationTicks": 240, + "midi": 64, + "name": "E4", + "ticks": 109920, + "time": 202.02690104166663, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.9923459999999977, + "durationTicks": 480, + "midi": 62, + "name": "D4", + "ticks": 110160, + "time": 202.51470604166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.5601195000000132, + "durationTicks": 240, + "midi": 55, + "name": "G3", + "ticks": 110640, + "time": 203.50705204166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 1.6027796666666632, + "durationTicks": 700, + "midi": 55, + "name": "G3", + "ticks": 110880, + "time": 204.06717154166665, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.5264080000000035, + "durationTicks": 240, + "midi": 48, + "name": "C3", + "ticks": 111600, + "time": 205.71381854166665, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.5264080000000035, + "durationTicks": 240, + "midi": 50, + "name": "D3", + "ticks": 111840, + "time": 206.24022654166666, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.5264079999999751, + "durationTicks": 240, + "midi": 52, + "name": "E3", + "ticks": 112080, + "time": 206.76663454166666, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7764080000000035, + "durationTicks": 360, + "midi": 53, + "name": "F3", + "ticks": 112320, + "time": 207.29304254166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.14018687500001192, + "durationTicks": 60, + "midi": 55, + "name": "G3", + "ticks": 112680, + "time": 208.06945054166664, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.1401868749999835, + "durationTicks": 60, + "midi": 53, + "name": "F3", + "ticks": 112740, + "time": 208.20963741666665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4824563333333458, + "durationTicks": 220, + "midi": 52, + "name": "E3", + "ticks": 112800, + "time": 208.34982429166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.52631599999998, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 113040, + "time": 208.87614029166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4824563333333458, + "durationTicks": 220, + "midi": 50, + "name": "D3", + "ticks": 113280, + "time": 209.40245629166662, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7930365000000279, + "durationTicks": 360, + "midi": 55, + "name": "G3", + "ticks": 113520, + "time": 209.92877229166663, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.2631580000000042, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 113880, + "time": 210.72180879166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.2631580000000042, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 114000, + "time": 210.98496679166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.2631579999999758, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 114120, + "time": 211.24812479166667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.19736850000001027, + "durationTicks": 90, + "midi": 52, + "name": "E3", + "ticks": 114240, + "time": 211.51128279166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 114360, + "time": 211.77444079166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.2725784999999803, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 114480, + "time": 212.04701929166666, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 114600, + "time": 212.31959779166664, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 114720, + "time": 212.59217629166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.2725784999999803, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 114840, + "time": 212.86475479166666, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.20443387500000654, + "durationTicks": 90, + "midi": 58, + "name": "A#3", + "ticks": 114960, + "time": 213.13733329166664, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.2725785000000087, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 115080, + "time": 213.40991179166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.20443387500000654, + "durationTicks": 90, + "midi": 57, + "name": "A3", + "ticks": 115200, + "time": 213.68249029166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.274211166666646, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 115320, + "time": 213.95506879166666, + "velocity": 0.49606299212598426 + }, + { + "duration": 0.27585858333333135, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 115440, + "time": 214.2292799583333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.27752075000000787, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 115560, + "time": 214.50513854166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.2800597499999924, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 115680, + "time": 214.78265929166665, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.28181908333334604, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 115800, + "time": 215.06271904166664, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.21224364583329702, + "durationTicks": 90, + "midi": 60, + "name": "C4", + "ticks": 115920, + "time": 215.34453812499999, + "velocity": 0.4881889763779528 + }, + { + "duration": 0.2853337500000066, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 116040, + "time": 215.6281152083333, + "velocity": 0.4566929133858268 + }, + { + "duration": 2.2758254999999963, + "durationTicks": 960, + "midi": 59, + "name": "B3", + "ticks": 116160, + "time": 215.9134489583333, + "velocity": 0.4881889763779528 + }, + { + "duration": 7.369149249999992, + "durationTicks": 1920, + "midi": 60, + "name": "C4", + "ticks": 117120, + "time": 218.1892744583333, + "velocity": 0.47244094488188976 + } + ] + }, + { + "channel": 0, + "controlChanges": { + "7": [ + { + "number": 7, + "ticks": 0, + "time": 0, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 76080, + "time": 134.7841388333333, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 78960, + "time": 140.4248168333333, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 85680, + "time": 153.60127379166667, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 89040, + "time": 160.18482104166668, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 94320, + "time": 170.7730212916667, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 98399, + "time": 178.8882676645833, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 99360, + "time": 180.77336879166666, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 102000, + "time": 186.04419279166666, + "value": 0.7874015748031497 + }, + { + "number": 7, + "ticks": 104879, + "time": 191.89804066249997, + "value": 0.9448818897637795 + }, + { + "number": 7, + "ticks": 108480, + "time": 199.09588054166665, + "value": 0.7874015748031497 + } + ], + "10": [ + { + "number": 10, + "ticks": 0, + "time": 0, + "value": 0.5039370078740157 + } + ], + "91": [ + { + "number": 91, + "ticks": 67200, + "time": 117.2545055833333, + "value": 1 + } + ], + "93": [ + { + "number": 93, + "ticks": 67200, + "time": 117.2545055833333, + "value": 0 + } + ] + }, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "Fuga 4", + "notes": [ + { + "duration": 0.4838709999999935, + "durationTicks": 240, + "midi": 48, + "name": "C3", + "ticks": 76080, + "time": 134.7841388333333, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 50, + "name": "D3", + "ticks": 76320, + "time": 135.26800983333328, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 52, + "name": "E3", + "ticks": 76560, + "time": 135.73675983333328, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.703125, + "durationTicks": 360, + "midi": 53, + "name": "F3", + "ticks": 76800, + "time": 136.20550983333328, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.1094889999999964, + "durationTicks": 60, + "midi": 55, + "name": "G3", + "ticks": 77160, + "time": 136.90863483333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.1094889999999964, + "durationTicks": 60, + "midi": 53, + "name": "F3", + "ticks": 77220, + "time": 137.01812383333328, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4330709166666793, + "durationTicks": 220, + "midi": 52, + "name": "E3", + "ticks": 77280, + "time": 137.12761283333327, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 77520, + "time": 137.60005383333328, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.44354841666665834, + "durationTicks": 220, + "midi": 50, + "name": "D3", + "ticks": 77760, + "time": 138.07249483333328, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7086615000000052, + "durationTicks": 360, + "midi": 55, + "name": "G3", + "ticks": 78000, + "time": 138.55636583333327, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 78360, + "time": 139.26502733333328, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.22556399999999144, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 78480, + "time": 139.50124783333328, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.22556400000001986, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 78600, + "time": 139.72681183333327, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.17716537499998708, + "durationTicks": 90, + "midi": 52, + "name": "E3", + "ticks": 78720, + "time": 139.9523758333333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 78840, + "time": 140.1885963333333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 78960, + "time": 140.4248168333333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 79080, + "time": 140.6610373333333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.17716537499998708, + "durationTicks": 90, + "midi": 48, + "name": "C3", + "ticks": 79200, + "time": 140.8972578333333, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 79320, + "time": 141.1334783333333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.24193550000001096, + "durationTicks": 120, + "midi": 48, + "name": "C3", + "ticks": 79440, + "time": 141.3696988333333, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.24193549999998254, + "durationTicks": 120, + "midi": 47, + "name": "B2", + "ticks": 79560, + "time": 141.6116343333333, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.4330709166666793, + "durationTicks": 220, + "midi": 45, + "name": "A2", + "ticks": 79680, + "time": 141.8535698333333, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.46010100000000875, + "durationTicks": 240, + "midi": 50, + "name": "D3", + "ticks": 79920, + "time": 142.3260108333333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 80160, + "time": 142.7861118333333, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 54, + "name": "F#3", + "ticks": 80400, + "time": 143.2548618333333, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.2406754166666758, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 80640, + "time": 143.7236118333333, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24193550000001096, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 80760, + "time": 143.96428724999998, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 80880, + "time": 144.20622275, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 81000, + "time": 144.44244325, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 49, + "name": "C#3", + "ticks": 81120, + "time": 144.67866375, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4545454999999947, + "durationTicks": 240, + "midi": 50, + "name": "D3", + "ticks": 81360, + "time": 145.15110475, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.9602460000000121, + "durationTicks": 480, + "midi": 57, + "name": "A3", + "ticks": 81600, + "time": 145.60565025, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.9416492500000118, + "durationTicks": 480, + "midi": 52, + "name": "E3", + "ticks": 82080, + "time": 146.56589625, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 82560, + "time": 147.50754550000002, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 82680, + "time": 147.74376600000002, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 82800, + "time": 147.97998650000002, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 62, + "name": "D4", + "ticks": 82920, + "time": 148.21620700000003, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 60, + "name": "C4", + "ticks": 83040, + "time": 148.45242750000003, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 59, + "name": "B3", + "ticks": 83160, + "time": 148.68864800000003, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 83280, + "time": 148.92486850000003, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23622050000000172, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 83400, + "time": 149.16108900000003, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.472440999999975, + "durationTicks": 240, + "midi": 60, + "name": "C4", + "ticks": 83520, + "time": 149.39730950000003, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.46332750000001965, + "durationTicks": 240, + "midi": 43, + "name": "G2", + "ticks": 85680, + "time": 153.60127379166667, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 45, + "name": "A2", + "ticks": 85920, + "time": 154.0646012916667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.47999999999998977, + "durationTicks": 240, + "midi": 47, + "name": "B2", + "ticks": 86160, + "time": 154.5333512916667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.703125, + "durationTicks": 360, + "midi": 48, + "name": "C3", + "ticks": 86400, + "time": 155.01335129166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 50, + "name": "D3", + "ticks": 86760, + "time": 155.71647629166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.11194025000000352, + "durationTicks": 60, + "midi": 48, + "name": "C3", + "ticks": 86820, + "time": 155.82841654166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4296875, + "durationTicks": 220, + "midi": 47, + "name": "B2", + "ticks": 86880, + "time": 155.9403567916667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4565972499999873, + "durationTicks": 240, + "midi": 52, + "name": "E3", + "ticks": 87120, + "time": 156.4091067916667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4296875, + "durationTicks": 220, + "midi": 45, + "name": "A2", + "ticks": 87360, + "time": 156.86570404166667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7126524999999901, + "durationTicks": 360, + "midi": 50, + "name": "D3", + "ticks": 87600, + "time": 157.33445404166667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24390250000001856, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 87960, + "time": 158.04710654166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 88080, + "time": 158.29100904166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.234375, + "durationTicks": 120, + "midi": 48, + "name": "C3", + "ticks": 88200, + "time": 158.52538404166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 47, + "name": "B2", + "ticks": 88320, + "time": 158.75975904166668, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 50, + "name": "D3", + "ticks": 89040, + "time": 160.18482104166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.47244100000000344, + "durationTicks": 240, + "midi": 48, + "name": "C3", + "ticks": 89280, + "time": 160.65726204166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.9288510000000088, + "durationTicks": 480, + "midi": 53, + "name": "F3", + "ticks": 89520, + "time": 161.1297030416667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.9565550000000087, + "durationTicks": 480, + "midi": 52, + "name": "E3", + "ticks": 90000, + "time": 162.0585540416667, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.9375, + "durationTicks": 480, + "midi": 50, + "name": "D3", + "ticks": 90480, + "time": 163.0151090416667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 52, + "name": "E3", + "ticks": 90960, + "time": 163.9526090416667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 53, + "name": "F3", + "ticks": 91200, + "time": 164.4213590416667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24817999999999074, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 91440, + "time": 164.8901090416667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.24818000000001916, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 91560, + "time": 165.1382890416667, + "velocity": 0.4330708661417323 + }, + { + "duration": 1.052816000000007, + "durationTicks": 480, + "midi": 52, + "name": "E3", + "ticks": 91680, + "time": 165.38646904166671, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.9613840000000096, + "durationTicks": 480, + "midi": 45, + "name": "A2", + "ticks": 92160, + "time": 166.43928504166672, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 43, + "name": "G2", + "ticks": 94320, + "time": 170.7730212916667, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.46886449999999513, + "durationTicks": 240, + "midi": 45, + "name": "A2", + "ticks": 94560, + "time": 171.2492117916667, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.4746717499999704, + "durationTicks": 240, + "midi": 47, + "name": "B2", + "ticks": 94800, + "time": 171.7180762916667, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7142857499999877, + "durationTicks": 360, + "midi": 48, + "name": "C3", + "ticks": 95040, + "time": 172.19274804166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.11904762500000743, + "durationTicks": 60, + "midi": 50, + "name": "D3", + "ticks": 95400, + "time": 172.90703379166666, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.11904762500000743, + "durationTicks": 60, + "midi": 48, + "name": "C3", + "ticks": 95460, + "time": 173.02608141666667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 47, + "name": "B2", + "ticks": 95520, + "time": 173.14512904166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.49180350000000317, + "durationTicks": 240, + "midi": 52, + "name": "E3", + "ticks": 95760, + "time": 173.62131954166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 45, + "name": "A2", + "ticks": 96000, + "time": 174.11312304166668, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.7092704999999739, + "durationTicks": 360, + "midi": 50, + "name": "D3", + "ticks": 96240, + "time": 174.58931354166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24390250000001856, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 96600, + "time": 175.29858404166666, + "velocity": 0.48031496062992124 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 96720, + "time": 175.54248654166668, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 48, + "name": "C3", + "ticks": 96840, + "time": 175.78058179166666, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 47, + "name": "B2", + "ticks": 96960, + "time": 176.01867704166668, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.48809524999998644, + "durationTicks": 240, + "midi": 46, + "name": "A#2", + "ticks": 97200, + "time": 176.49486754166668, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 45, + "name": "A2", + "ticks": 97440, + "time": 176.98296279166667, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4671029999999803, + "durationTicks": 240, + "midi": 43, + "name": "G2", + "ticks": 97680, + "time": 177.45915329166667, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.36585375000001363, + "durationTicks": 180, + "midi": 45, + "name": "A2", + "ticks": 97920, + "time": 177.92625629166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 54, + "name": "F#3", + "ticks": 98160, + "time": 178.41406129166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 55, + "name": "G3", + "ticks": 98400, + "time": 178.89025179166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 52, + "name": "E3", + "ticks": 98640, + "time": 179.36644229166666, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.8928572083333393, + "durationTicks": 460, + "midi": 50, + "name": "D3", + "ticks": 98880, + "time": 179.84263279166666, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 52, + "name": "E3", + "ticks": 99360, + "time": 180.77336879166666, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.4761905000000013, + "durationTicks": 240, + "midi": 53, + "name": "F3", + "ticks": 99600, + "time": 181.24955929166666, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.7377052500000048, + "durationTicks": 360, + "midi": 55, + "name": "G3", + "ticks": 99840, + "time": 181.72574979166666, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.12295087499998658, + "durationTicks": 60, + "midi": 57, + "name": "A3", + "ticks": 100200, + "time": 182.46345504166666, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.122950875000015, + "durationTicks": 60, + "midi": 55, + "name": "G3", + "ticks": 100260, + "time": 182.58640591666665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 53, + "name": "F3", + "ticks": 100320, + "time": 182.70935679166666, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.4580154999999877, + "durationTicks": 240, + "midi": 58, + "name": "A#3", + "ticks": 100560, + "time": 183.18554729166667, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4365079583333227, + "durationTicks": 220, + "midi": 52, + "name": "E3", + "ticks": 100800, + "time": 183.64356279166665, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.7142857499999877, + "durationTicks": 360, + "midi": 57, + "name": "A3", + "ticks": 101040, + "time": 184.11975329166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 58, + "name": "A#3", + "ticks": 101400, + "time": 184.83403904166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24793399999998655, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 101520, + "time": 185.07213429166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24793400000001498, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 101640, + "time": 185.32006829166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.23809524999998644, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 101760, + "time": 185.56800229166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.23809525000001486, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 101880, + "time": 185.80609754166665, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.17857143750001114, + "durationTicks": 90, + "midi": 53, + "name": "F3", + "ticks": 102000, + "time": 186.04419279166666, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24793399999998655, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 102120, + "time": 186.28228804166665, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.49586800000000153, + "durationTicks": 240, + "midi": 55, + "name": "G3", + "ticks": 102240, + "time": 186.53022204166663, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.49586800000000153, + "durationTicks": 240, + "midi": 57, + "name": "A3", + "ticks": 102480, + "time": 187.02609004166663, + "velocity": 0.4645669291338583 + }, + { + "duration": 2.19173600000002, + "durationTicks": 1080, + "midi": 50, + "name": "D3", + "ticks": 102720, + "time": 187.52195804166664, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23999999999998067, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 103800, + "time": 189.71369404166666, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 103920, + "time": 189.95369404166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 48, + "name": "C3", + "ticks": 104040, + "time": 190.19369404166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.23999999999998067, + "durationTicks": 120, + "midi": 47, + "name": "B2", + "ticks": 104160, + "time": 190.43369404166666, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.25862075000000573, + "durationTicks": 120, + "midi": 45, + "name": "A2", + "ticks": 104280, + "time": 190.67369404166664, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.24193550000001096, + "durationTicks": 120, + "midi": 43, + "name": "G2", + "ticks": 104400, + "time": 190.93231479166664, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.24193549999998254, + "durationTicks": 120, + "midi": 42, + "name": "F#2", + "ticks": 104520, + "time": 191.17425029166665, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.44354841666668676, + "durationTicks": 220, + "midi": 40, + "name": "E2", + "ticks": 104640, + "time": 191.41618579166663, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.46875, + "durationTicks": 240, + "midi": 52, + "name": "E3", + "ticks": 104880, + "time": 191.90005679166663, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.47999999999998977, + "durationTicks": 240, + "midi": 54, + "name": "F#3", + "ticks": 105120, + "time": 192.36880679166663, + "velocity": 0.4251968503937008 + }, + { + "duration": 0.960000000000008, + "durationTicks": 480, + "midi": 55, + "name": "G3", + "ticks": 105360, + "time": 192.84880679166662, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.2400000000000091, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 105840, + "time": 193.80880679166663, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.252100750000011, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 105960, + "time": 194.04880679166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.4399999999999977, + "durationTicks": 220, + "midi": 54, + "name": "F#3", + "ticks": 106080, + "time": 194.30090754166665, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.4800000000000182, + "durationTicks": 240, + "midi": 50, + "name": "D3", + "ticks": 106320, + "time": 194.78090754166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 3.834972999999991, + "durationTicks": 1920, + "midi": 55, + "name": "G3", + "ticks": 106560, + "time": 195.26090754166665, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.9836070000000063, + "durationTicks": 480, + "midi": 57, + "name": "A3", + "ticks": 108480, + "time": 199.09588054166665, + "velocity": 0.4094488188976378 + }, + { + "duration": 0.49180350000000317, + "durationTicks": 240, + "midi": 59, + "name": "B3", + "ticks": 108960, + "time": 200.07948754166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.47999999999998977, + "durationTicks": 240, + "midi": 60, + "name": "C4", + "ticks": 109200, + "time": 200.57129104166665, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.1829268749999926, + "durationTicks": 90, + "midi": 53, + "name": "F3", + "ticks": 109440, + "time": 201.05129104166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24390250000001856, + "durationTicks": 120, + "midi": 57, + "name": "A3", + "ticks": 109560, + "time": 201.29519354166663, + "velocity": 0.47244094488188976 + }, + { + "duration": 0.24390249999999014, + "durationTicks": 120, + "midi": 55, + "name": "G3", + "ticks": 109680, + "time": 201.53909604166665, + "velocity": 0.4645669291338583 + }, + { + "duration": 0.24390249999999014, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 109800, + "time": 201.78299854166664, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.24390250000001856, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 109920, + "time": 202.02690104166663, + "velocity": 0.44881889763779526 + }, + { + "duration": 0.24390249999999014, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 110040, + "time": 202.27080354166665, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.24390249999999014, + "durationTicks": 120, + "midi": 48, + "name": "C3", + "ticks": 110160, + "time": 202.51470604166664, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.24390250000001856, + "durationTicks": 120, + "midi": 47, + "name": "B2", + "ticks": 110280, + "time": 202.75860854166663, + "velocity": 0.4330708661417323 + }, + { + "duration": 0.2522705000000087, + "durationTicks": 120, + "midi": 48, + "name": "C3", + "ticks": 110400, + "time": 203.00251104166665, + "velocity": 0.4015748031496063 + }, + { + "duration": 0.2522704999999803, + "durationTicks": 120, + "midi": 50, + "name": "D3", + "ticks": 110520, + "time": 203.25478154166666, + "velocity": 0.41732283464566927 + }, + { + "duration": 0.2800597499999924, + "durationTicks": 120, + "midi": 52, + "name": "E3", + "ticks": 110640, + "time": 203.50705204166664, + "velocity": 0.4409448818897638 + }, + { + "duration": 0.2800597500000208, + "durationTicks": 120, + "midi": 53, + "name": "F3", + "ticks": 110760, + "time": 203.78711179166663, + "velocity": 0.4566929133858268 + }, + { + "duration": 0.5601195000000132, + "durationTicks": 240, + "midi": 43, + "name": "G2", + "ticks": 111120, + "time": 204.62729104166664, + "velocity": 0.44881889763779526 + }, + { + "duration": 20.371013166666643, + "durationTicks": 7680, + "midi": 48, + "name": "C3", + "ticks": 111360, + "time": 205.18741054166665, + "velocity": 0.47244094488188976 + } + ] + }, + { + "channel": 0, + "controlChanges": {}, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "Bach: Prelude & Fugue in C major, BWV 846", + "notes": [] + }, + { + "channel": 0, + "controlChanges": {}, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "Copyright 2004 by Bernd Krüger.", + "notes": [] + }, + { + "channel": 0, + "controlChanges": {}, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "http://www.piano-midi.de", + "notes": [] + }, + { + "channel": 0, + "controlChanges": {}, + "pitchBends": [], + "instrument": { + "family": "piano", + "name": "acoustic grand piano", + "number": 0 + }, + "name": "Edition: 25.9.2004", + "notes": [] + } + ] +} \ No newline at end of file diff --git a/test/midi/bach/bach_846.mid b/test/midi/bach/bach_846.mid new file mode 100644 index 0000000000000000000000000000000000000000..e279b06060142adefa25200612dc6a268bff3dbb GIT binary patch literal 12599 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 AJpcdz literal 0 HcmV?d00001 diff --git a/test/midi/bach/bach_846.mid.txt b/test/midi/bach/bach_846.mid.txt new file mode 100644 index 0000000..188d074 --- /dev/null +++ b/test/midi/bach/bach_846.mid.txt @@ -0,0 +1,1290 @@ +track Piano right +67 0.4070946895833334 0.6097974395833334 +72 0.6097974395833334 0.8124666291666667 +76 0.8124666291666667 0.9912745791666667 +67 1.0111756895833335 1.2138784395833335 +72 1.2138784395833335 1.4165811895833336 +76 1.4165811895833336 1.6192839395833336 +67 2.0246894395833337 2.2273921895833335 +72 2.2273921895833335 2.4300949395833333 +76 2.4300949395833333 2.612527414583334 +67 2.6327751666666668 2.832775166666667 +72 2.832775166666667 3.032775166666667 +76 3.032775166666667 3.2327976895833337 +69 3.6382031895833338 3.8408614875000002 +74 3.8408614875000002 4.038187814583333 +77 4.038187814583333 4.211264789583333 +69 4.230537737500001 4.4279062375 +74 4.4279062375 4.6252747375 +77 4.6252747375 4.822654129166667 +69 5.220005129166666 5.418648377083333 +74 5.418648377083333 5.613412529166666 +77 5.613412529166666 5.784298679166667 +69 5.803327127083333 5.998132377083333 +74 5.998132377083333 6.193003439583333 +77 6.193003439583333 6.395694852083333 +67 6.798379352083333 6.999667127083333 +74 6.999667127083333 7.1944115 +77 7.1944115 7.3631614999999995 +67 7.381972377083333 7.576777627083333 +74 7.576777627083333 7.771582877083333 +77 7.771582877083333 7.966442602083333 +67 8.369127102083333 8.5704362375 +74 8.5704362375 8.767762564583332 +77 8.767762564583332 8.940839539583333 +67 8.960112487499998 9.157480987499998 +74 9.157480987499998 9.354928887499998 +77 9.354928887499998 9.561745987499997 +67 9.956482987499998 10.153851487499997 +72 10.153851487499997 10.351167606249998 +76 10.351167606249998 10.523142081249997 +67 10.542302737499996 10.739671237499998 +72 10.739671237499998 10.937095681249996 +76 10.937095681249996 11.141121487499996 +67 11.535858487499997 11.733226987499997 +72 11.733226987499997 11.93055331458333 +76 11.93055331458333 12.10363028958333 +67 12.122903237499996 12.320271737499997 +72 12.320271737499997 12.517640237499997 +76 12.517640237499997 12.71505318958333 +69 13.12045868958333 13.323116987499997 +76 13.323116987499997 13.52044331458333 +81 13.52044331458333 13.693520289583331 +69 13.712782487499997 13.908860987499997 +76 13.908860987499997 14.104939487499996 +81 14.104939487499996 14.30107318958333 +69 14.70647868958333 14.909126237499997 +76 14.909126237499997 15.10517331458333 +81 15.10517331458333 15.278250289583331 +69 15.297512487499997 15.493590987499998 +76 15.493590987499998 15.689713352083329 +81 15.689713352083329 15.891011737499996 +66 16.283168737499995 16.479247237499997 +69 16.479247237499997 16.675284106249997 +74 16.675284106249997 16.847258581249996 +66 16.86639787708333 17.061203127083328 +69 17.061203127083328 17.25600837708333 +74 17.25600837708333 17.45086810208333 +66 17.85355260208333 18.05489485208333 +69 18.05489485208333 18.25618262708333 +74 18.25618262708333 18.43150735208333 +66 18.450987877083328 18.64579312708333 +69 18.64579312708333 18.840699137499996 +74 18.840699137499996 19.047538166666662 +67 19.447538166666664 19.647494877083332 +74 19.647494877083332 19.842279314583333 +79 19.842279314583333 20.015356289583334 +67 20.034607877083335 20.229413127083333 +74 20.229413127083333 20.424284189583336 +79 20.424284189583336 20.626964416666667 +67 21.02696441666667 21.22691065416667 +74 21.22691065416667 21.420459154166668 +79 21.420459154166668 21.59465280416667 +67 21.61400765416667 21.80755615416667 +74 21.80755615416667 22.001215887500003 +79 22.001215887500003 22.208066102083336 +64 22.610750602083336 22.812092852083335 +67 22.812092852083335 23.01337015416667 +72 23.01337015416667 23.18756380416667 +64 23.206918654166667 23.40046715416667 +67 23.40046715416667 23.594091939583336 +72 23.594091939583336 23.796739487500002 +64 24.188896487500003 24.3849749875 +67 24.3849749875 24.581032404166667 +72 24.581032404166667 24.755226054166666 +64 24.774580904166665 24.968129404166667 +67 24.968129404166667 25.161789137499998 +72 25.161789137499998 25.3686062375 +64 25.7633432375 25.9607117375 +67 25.9607117375 26.1580802375 +72 26.1580802375 26.335711887499997 +64 26.355493189583335 26.558195939583335 +67 26.558195939583335 26.760898689583335 +72 26.760898689583335 26.963567879166668 +64 27.360918879166668 27.55959437916667 +67 27.55959437916667 27.75826987916667 +72 27.75826987916667 27.937077829166668 +64 27.956990431250002 28.161072181250002 +67 28.161072181250002 28.36527806666667 +72 28.36527806666667 28.584131931250003 +62 28.992295431250003 29.19634316666667 +66 29.19634316666667 29.39634316666667 +72 29.39634316666667 29.57634316666667 +62 29.59634316666667 29.79634316666667 +66 29.79634316666667 29.99634316666667 +72 29.99634316666667 30.196377181250003 +62 30.604540681250004 30.80857737916667 +66 30.80857737916667 31.00725287916667 +72 31.00725287916667 31.18606082916667 +62 31.20592837916667 31.40460387916667 +66 31.40460387916667 31.603347887500004 +72 31.603347887500004 31.81017587916667 +62 32.20752687916667 32.40620237916667 +67 32.40620237916667 32.6048562375 +71 32.6048562375 32.7813268875 +62 32.8009347375 32.9970132375 +67 32.9970132375 33.193091737500005 +71 33.193091737500005 33.38919187916667 +62 33.78654287916667 33.98521837916667 +67 33.98521837916667 34.18386162708334 +71 34.18386162708334 34.35918635208334 +62 34.37866687708334 34.573472127083335 +67 34.573472127083335 34.768277377083336 +71 34.768277377083336 34.96969612916667 +64 35.36704712916667 35.56572262916667 +67 35.56572262916667 35.76436587708334 +73 35.76436587708334 35.939690602083346 +64 35.959171127083344 36.15397637708334 +67 36.15397637708334 36.348882387500005 +73 36.348882387500005 36.55571037916667 +64 36.95306137916667 37.15173687916667 +67 37.15173687916667 37.35041237916667 +73 37.35041237916667 37.52729422083334 +64 37.54690207083334 37.74298057083334 +67 37.74298057083334 37.93913741250001 +73 37.93913741250001 38.14464069375001 +62 38.55156896250001 38.750244462500014 +69 38.750244462500014 38.94889832083335 +74 38.94889832083335 39.12536897083335 +62 39.14497682083335 39.34105532083335 +69 39.34105532083335 39.537133820833354 +74 39.537133820833354 39.733233962500016 +62 40.130584962500016 40.32926046250002 +69 40.32926046250002 40.527914320833354 +74 40.527914320833354 40.70438497083335 +62 40.72399282083335 40.92007132083335 +69 40.92007132083335 41.11625194375002 +74 41.11625194375002 41.324515750000025 +62 41.72451575000002 41.924515750000026 +65 41.924515750000026 42.12448307083336 +71 42.12448307083336 42.300953720833355 +62 42.320561570833355 42.516640070833354 +65 42.516640070833354 42.71271857083336 +71 42.71271857083336 42.908829750000024 +62 43.30882975000002 43.508829750000025 +65 43.508829750000025 43.708797070833356 +71 43.708797070833356 43.885267720833355 +62 43.904875570833354 44.10095407083335 +65 44.10095407083335 44.297110912500024 +71 44.297110912500024 44.50254475000003 +60 44.902544750000025 45.102533712500026 +67 45.102533712500026 45.30116648750003 +72 45.30116648750003 45.47536013750003 +60 45.49471498750003 45.68826348750003 +67 45.68826348750003 45.88181198750003 +72 45.88181198750003 46.07540321250003 +60 46.47275421250003 46.67142971250003 +67 46.67142971250003 46.8700729604167 +72 46.8700729604167 47.0453976854167 +60 47.0648782104167 47.259683460416696 +67 47.259683460416696 47.45462589583337 +72 47.45462589583337 47.665810685416695 +57 48.068495185416694 48.2698374354167 +60 48.2698374354167 48.47113582083336 +65 48.47113582083336 48.64760647083336 +57 48.66721432083336 48.86329282083336 +60 48.86329282083336 49.059371320833364 +65 49.059371320833364 49.255493685416695 +57 49.658178185416695 49.8595204354167 +60 49.8595204354167 50.06082957083336 +65 50.06082957083336 50.238461220833365 +57 50.25819807083336 50.45556657083336 +60 50.45556657083336 50.65306338333336 +65 50.65306338333336 50.8657341854167 +57 51.2684186854167 51.4697609354167 +60 51.4697609354167 51.671070070833366 +65 51.671070070833366 51.84870172083337 +57 51.86843857083336 52.065807070833365 +60 52.065807070833365 52.26329139583337 +65 52.26329139583337 52.4744761854167 +57 52.8771606854167 53.0785029354167 +60 53.0785029354167 53.27982296250003 +65 53.27982296250003 53.458630912500034 +57 53.47849846250003 53.67717396250003 +60 53.67717396250003 53.87596688333336 +65 53.87596688333336 54.0886376854167 +55 54.4913221854167 54.6926644354167 +59 54.6926644354167 54.8940066854167 +65 54.8940066854167 55.0752147104167 +55 55.0953489354167 55.2966911854167 +59 55.2966911854167 55.4980334354167 +65 55.4980334354167 55.6993756854167 +55 56.1020601854167 56.3034024354167 +59 56.3034024354167 56.504744685416696 +65 56.504744685416696 56.6859527104167 +55 56.7060869354167 56.9074291854167 +59 56.9074291854167 57.1087714354167 +65 57.1087714354167 57.31015997083337 +55 57.723952970833366 57.9308031854167 +60 57.9308031854167 58.1321454354167 +64 58.1321454354167 58.3133534604167 +55 58.3334876854167 58.5348299354167 +60 58.5348299354167 58.7361721854167 +64 58.7361721854167 58.937548912500034 +55 59.34850791250003 59.553941750000035 +60 59.553941750000035 59.75394175000004 +64 59.75394175000004 59.93394175000004 +55 59.953941750000034 60.15394175000004 +60 60.15394175000004 60.35394175000004 +64 60.35394175000004 60.553941750000035 +58 60.953941750000034 61.15394175000004 +60 61.15394175000004 61.3538984604167 +64 61.3538984604167 61.529223185416704 +58 61.54873596250003 61.74741146250003 +60 61.74741146250003 61.94608696250003 +64 61.94608696250003 62.144773500000035 +58 62.54477350000003 62.744773500000036 +60 62.744773500000036 62.9447302104167 +64 62.9447302104167 63.120054935416704 +58 63.139578750000034 63.33957875000004 +60 63.33957875000004 63.53973690000004 +64 63.53973690000004 63.75855675000003 +57 64.15855675000003 64.35855675000003 +60 64.35855675000003 64.55852407083337 +64 64.55852407083337 64.73499472083337 +57 64.75460257083337 64.95068107083337 +60 64.95068107083337 65.14675957083337 +64 65.14675957083337 65.34287075000003 +57 65.74287075000004 65.94287075000004 +60 65.94287075000004 66.14284882083336 +64 66.14284882083336 66.32048047083336 +57 66.34021732083336 66.53758582083336 +60 66.53758582083336 66.73510814375003 +64 66.73510814375003 66.95083751458337 +57 67.35900101458337 67.56308276458337 +60 67.56308276458337 67.7671416854167 +63 67.7671416854167 67.94834971041671 +57 67.9684839354167 68.16982618541671 +60 68.16982618541671 68.3711684354167 +63 68.3711684354167 68.57253351458337 +57 68.98069701458337 69.18477876458337 +60 69.18477876458337 69.38882650000004 +63 69.38882650000004 69.56882650000004 +57 69.58882650000004 69.78882650000004 +60 69.78882650000004 69.98911295833337 +63 69.98911295833337 70.22317957083337 +59 70.61791657083336 70.81528507083337 +60 70.81528507083337 71.01265357083336 +62 71.01265357083336 71.19028522083336 +59 71.2099798979167 71.4022876479167 +60 71.4022876479167 71.59470516250002 +62 71.59470516250002 71.80011707083335 +59 72.19485407083334 72.39222257083335 +60 72.39222257083335 72.58959107083335 +62 72.58959107083335 72.76722272083335 +59 72.78692773750001 72.98047623750001 +60 72.98047623750001 73.17411251458334 +62 73.17411251458334 73.37819426458334 +55 73.78635776458334 73.99038357083334 +59 73.99038357083334 74.18775207083334 +62 74.18775207083334 74.36538372083335 +55 74.38512057083334 74.58248907083335 +59 74.58248907083335 74.77985757083334 +62 74.77985757083334 74.97727052291667 +55 75.38267602291667 75.58533432083334 +59 75.58533432083334 75.78270282083334 +62 75.78270282083334 75.96033447083335 +55 75.98007132083333 76.17743982083334 +59 76.17743982083334 76.37489969375001 +62 76.37489969375001 76.58317468541667 +55 76.98585918541667 77.18720143541667 +60 77.18720143541667 77.38851057083333 +64 77.38851057083333 77.56614222083333 +55 77.58587907083333 77.78324757083332 +60 77.78324757083332 77.98061607083334 +64 77.98061607083334 78.17801768541666 +55 78.58070218541667 78.78204443541667 +60 78.78204443541667 78.98334282083333 +64 78.98334282083333 79.15981347083333 +55 79.17942132083333 79.37549982083333 +60 79.37549982083333 79.57157832083332 +64 79.57157832083332 79.76766757083332 +55 80.16240457083332 80.35977307083333 +60 80.35977307083333 80.55709939791666 +65 80.55709939791666 80.73017637291666 +55 80.74940714791666 80.94171489791665 +60 80.94171489791665 81.13412076458332 +65 81.13412076458332 81.33819102291665 +55 81.73953571249999 81.93821121249998 +60 81.93821121249998 82.13683364791665 +65 82.13683364791665 82.30991062291665 +55 82.32914139791664 82.52146996041664 +60 82.52146996041664 82.7163525145833 +65 82.7163525145833 82.92038921249997 +55 83.31774021249997 83.51641571249998 +59 83.51641571249998 83.71505896041664 +65 83.71505896041664 83.89038368541664 +55 83.90986421041664 84.10466946041664 +59 84.10466946041664 84.29947471041665 +65 84.29947471041665 84.49431221249998 +55 84.89166321249998 85.09033871249999 +59 85.09033871249999 85.28898196041665 +65 85.28898196041665 85.46430668541664 +55 85.48378721041665 85.67859246041665 +59 85.67859246041665 85.87348666249999 +65 85.87348666249999 86.07890946249998 +57 86.47626046249998 86.67493596249999 +60 86.67493596249999 86.87361146249998 +66 86.87361146249998 87.05241941249999 +57 87.07233201458331 87.27641376458331 +60 87.27641376458331 87.48049551458331 +66 87.48049551458331 87.68453221249997 +57 88.08188321249997 88.28055871249998 +60 88.28055871249998 88.47923421249997 +66 88.47923421249997 88.65804216249998 +57 88.67796641249997 88.88344591249997 +60 88.88344591249997 89.08902467708332 +66 89.08902467708332 89.30639004791665 +55 89.73496154791665 89.94912824999999 +60 89.94912824999999 90.14912824999999 +67 90.14912824999999 90.32912824999998 +55 90.34912824999999 90.54912825 +60 90.54912825 90.74912824999998 +67 90.74912824999998 90.94920983541665 +55 91.36879033541666 91.578499 +60 91.578499 91.778499 +67 91.778499 91.95849899999999 +55 91.978499 92.178499 +60 92.178499 92.37861804791666 +67 92.37861804791666 92.59278474999999 +55 92.99278475 93.19278475 +60 93.19278475 93.39278474999999 +65 93.39278474999999 93.57278475 +55 93.59275207083333 93.78883057083333 +60 93.78883057083333 93.98490907083333 +65 93.98490907083333 94.18102024999999 +55 94.58102025 94.78102025 +60 94.78102025 94.98102024999999 +65 94.98102024999999 95.16102024999999 +55 95.18098757083332 95.37706607083332 +60 95.37706607083332 95.57314457083332 +65 95.57314457083332 95.76936213333332 +55 96.18202174999999 96.38202174999999 +59 96.38202174999999 96.58202175 +65 96.58202175 96.76202174999999 +55 96.78202174999998 96.98202174999999 +59 96.98202174999999 97.18202174999999 +65 97.18202174999999 97.38210333541666 +55 97.79316543541665 97.99450768541666 +59 97.99450768541666 98.19584993541666 +65 98.19584993541666 98.37705796041666 +55 98.39719218541666 98.59853443541665 +59 98.59853443541665 98.79987668541666 +65 98.79987668541666 99.00124176458333 +55 99.40940526458333 99.61348701458333 +58 99.61348701458333 99.81754593541666 +64 99.81754593541666 99.99875396041666 +55 100.01888818541666 100.22023043541667 +58 100.22023043541667 100.42166788333333 +64 100.42166788333333 100.63436151458333 +55 101.04252501458333 101.24660676458333 +58 101.24660676458333 101.45066568541667 +64 101.45066568541667 101.63187371041667 +55 101.65200793541666 101.85335018541667 +58 101.85335018541667 102.05476283541667 +64 102.05476283541667 102.26450551458333 +53 102.67096833333333 102.87505008333333 +57 102.87505008333333 103.07372558333333 +60 103.07372558333333 103.273302125 +65 103.273302125 103.477383875 +60 103.477383875 103.681465625 +57 103.681465625 103.885547375 +60 103.885547375 104.082915875 +57 104.082915875 104.286997625 +53 104.286997625 104.491079375 +57 104.491079375 104.695161125 +53 104.695161125 104.906428625 +50 104.906428625 105.117696125 +53 105.117696125 105.343260125 +50 105.343260125 105.595360875 +67 106.017895875 106.229163375 +71 106.229163375 106.440430875 +74 106.440430875 106.651698375 +77 106.651698375 106.862965875 +74 106.862965875 107.07423337499999 +71 107.07423337499999 107.285500875 +74 107.285500875 107.521721375 +71 107.521721375 107.757941875 +67 107.757941875 107.994162375 +71 107.994162375 108.230382875 +62 108.230382875 108.51399525000001 +65 108.51399525000001 108.82189008333333 +64 108.82189008333333 109.15926708333335 +62 109.15926708333335 109.63545758333335 +64 109.63942583750001 115.35371183750001 +67 109.63942583750001 115.35371183750001 +72 109.63942583750001 115.35371183750001 +track Piano left +64 0.20439193958333335 1.6192839395833336 +60 0.0016891895833333335 1.6192839395833336 +64 1.8219866895833334 3.2327976895833337 +60 1.6192839395833336 3.2327976895833337 +62 3.4355004395833335 4.822654129166667 +60 3.2327976895833337 4.822654129166667 +62 5.021329629166667 6.395694852083333 +60 4.822654129166667 6.395694852083333 +62 6.597037102083333 7.966442602083333 +59 6.395694852083333 7.966442602083333 +62 8.167784852083333 9.561745987499997 +59 7.966442602083333 9.561745987499997 +64 9.759114487499996 11.141121487499996 +60 9.561745987499997 11.141121487499996 +64 11.338489987499997 12.71505318958333 +60 11.141121487499996 12.71505318958333 +64 12.91775593958333 14.30107318958333 +60 12.71505318958333 14.30107318958333 +64 14.50377593958333 15.891011737499996 +60 14.30107318958333 15.891011737499996 +62 16.087090237499996 17.45086810208333 +60 15.891011737499996 17.45086810208333 +62 17.65221035208333 19.047538166666662 +60 17.45086810208333 19.047538166666662 +62 19.247538166666665 20.626964416666667 +59 19.047538166666662 20.626964416666667 +62 20.82696441666667 22.208066102083336 +59 20.626964416666667 22.208066102083336 +60 22.409408352083336 23.796739487500002 +59 22.208066102083336 23.796739487500002 +60 23.9928179875 25.3686062375 +59 23.796739487500002 25.3686062375 +60 25.5659747375 26.963567879166668 +57 25.3686062375 26.963567879166668 +60 27.162243379166668 28.584131931250003 +57 26.963567879166668 28.584131931250003 +57 28.788213681250003 30.196377181250003 +50 28.584131931250003 30.196377181250003 +57 30.400458931250004 31.81017587916667 +50 30.196377181250003 31.81017587916667 +59 32.00885137916667 33.38919187916667 +55 31.81017587916667 33.38919187916667 +59 33.58786737916667 34.96969612916667 +55 33.38919187916667 34.96969612916667 +58 35.16837162916667 36.55571037916667 +55 34.96969612916667 36.55571037916667 +58 36.75438587916667 38.14464069375001 +55 36.55571037916667 38.14464069375001 +57 38.35289346250001 39.733233962500016 +53 38.14464069375001 39.733233962500016 +57 39.931909462500016 41.324515750000025 +53 39.733233962500016 41.324515750000025 +56 41.52451575000003 42.908829750000024 +53 41.324515750000025 42.908829750000024 +56 43.10882975000003 44.50254475000003 +53 42.908829750000024 44.50254475000003 +55 44.70254475000003 46.07540321250003 +52 44.50254475000003 46.07540321250003 +55 46.27407871250003 47.665810685416695 +52 46.07540321250003 47.665810685416695 +53 47.8671529354167 49.255493685416695 +52 47.665810685416695 49.255493685416695 +53 49.4568359354167 50.8657341854167 +52 49.255493685416695 50.8657341854167 +53 51.0670764354167 52.4744761854167 +50 50.8657341854167 52.4744761854167 +53 52.6758184354167 54.0886376854167 +50 52.4744761854167 54.0886376854167 +50 54.2899799354167 55.6993756854167 +43 54.0886376854167 55.6993756854167 +50 55.9007179354167 57.31015997083337 +43 55.6993756854167 57.31015997083337 +52 57.51705647083337 58.937548912500034 +48 57.31015997083337 58.937548912500034 +52 59.14302841250004 60.553941750000035 +48 58.937548912500034 60.553941750000035 +55 60.75394175000004 62.144773500000035 +48 60.553941750000035 62.144773500000035 +55 62.34477350000004 63.75855675000003 +48 62.144773500000035 63.75855675000003 +53 63.958556750000035 65.34287075000003 +41 63.75855675000003 65.34287075000003 +53 65.54287075000003 66.95083751458337 +41 65.34287075000003 66.95083751458337 +48 67.15491926458337 68.57253351458337 +42 66.95083751458337 68.57253351458337 +48 68.77661526458337 70.22317957083337 +42 68.57253351458337 70.22317957083337 +53 70.42054807083336 71.80011707083335 +44 70.22317957083337 71.80011707083335 +53 71.99748557083335 73.37819426458334 +44 71.80011707083335 73.37819426458334 +53 73.58227601458334 74.97727052291667 +43 73.37819426458334 74.97727052291667 +53 75.17997327291667 76.58317468541667 +43 74.97727052291667 76.58317468541667 +52 76.78451693541666 78.17801768541666 +43 76.58317468541667 78.17801768541666 +52 78.37935993541666 79.76766757083332 +43 78.17801768541666 79.76766757083332 +50 79.96503607083332 81.33819102291665 +43 79.76766757083332 81.33819102291665 +50 81.54086021249998 82.92038921249997 +43 81.33819102291665 82.92038921249997 +50 83.11906471249998 84.49431221249998 +43 82.92038921249997 84.49431221249998 +50 84.69298771249998 86.07890946249998 +43 84.49431221249998 86.07890946249998 +51 86.27758496249999 87.68453221249997 +43 86.07890946249998 87.68453221249997 +51 87.88320771249998 89.30639004791665 +43 87.68453221249997 89.30639004791665 +52 89.52067579791665 90.94920983541665 +43 89.30639004791665 90.94920983541665 +52 91.15900008541665 92.59278474999999 +43 90.94920983541665 92.59278474999999 +50 92.79278475 94.18102024999999 +43 92.59278474999999 94.18102024999999 +50 94.38102024999999 95.76936213333332 +43 94.18102024999999 95.76936213333332 +50 95.98202174999999 97.38210333541666 +43 95.76936213333332 97.38210333541666 +50 97.59182318541666 99.00124176458333 +43 97.38210333541666 99.00124176458333 +48 99.20532351458333 100.63436151458333 +36 99.00124176458333 100.63436151458333 +48 100.83844326458333 102.26450551458333 +36 100.63436151458333 102.26450551458333 +48 102.46688658333333 105.595360875 +36 102.26450551458333 105.5971214375 +50 105.806628375 109.63545758333335 +36 105.5971214375 109.63942583750001 +48 109.63942583750001 115.35371183750001 +36 109.63942583750001 115.35371183750001 +track Fuga 1 +67 123.45878608333337 123.93122708333337 +69 123.93122708333337 124.40366808333337 +71 124.40366808333337 124.89147308333337 +72 124.89147308333337 125.60013458333337 +74 125.60013458333337 125.71207483333338 +72 125.71207483333338 125.82401508333338 +71 125.82401508333338 126.25708600000004 +76 126.29645608333338 126.76889708333339 +69 126.76889708333339 127.21244550000006 +74 127.25276808333338 127.95589308333338 +76 127.95589308333338 128.19026808333336 +74 128.19026808333336 128.42464308333336 +72 128.42464308333336 128.65901808333336 +71 128.65901808333336 128.83901808333337 +67 128.89901808333337 129.13901808333335 +69 129.13901808333335 129.37523858333336 +71 129.37523858333336 129.61145908333336 +72 129.61145908333336 129.84583408333336 +71 129.84583408333336 130.08020908333336 +72 130.08020908333336 130.31458408333336 +74 130.31458408333336 130.54895908333336 +76 130.54895908333336 130.78333408333336 +74 130.78333408333336 131.01770908333336 +76 131.01770908333336 131.26161158333335 +78 131.26161158333335 131.48383383333334 +79 131.48383383333334 131.95258383333334 +71 131.95258383333334 132.42133383333334 +72 132.42133383333334 132.86848841666668 +69 132.90913883333334 133.37788883333334 +74 133.37788883333334 133.61226383333334 +72 133.61226383333334 133.84663883333334 +71 133.84663883333334 134.08101383333334 +69 134.08101383333334 134.31538883333334 +67 134.31538883333334 135.02607433333336 +67 135.02607433333336 135.26800983333334 +65 135.26800983333334 135.50238483333334 +64 135.50238483333334 135.73675983333334 +65 135.73675983333334 135.97113483333334 +67 135.97113483333334 136.20550983333334 +69 136.20550983333334 136.43988483333334 +67 136.43988483333334 136.67425983333334 +69 136.67425983333334 136.90863483333334 +71 136.90863483333334 137.12761283333333 +72 137.12761283333333 139.02880683333333 +71 139.02880683333333 139.95237583333335 +72 140.42481683333335 140.89725783333336 +74 140.89725783333336 141.36969883333336 +76 141.36969883333336 141.85356983333335 +77 141.85356983333335 142.56223133333336 +79 142.56223133333336 142.67417158333336 +77 142.67417158333336 142.78611183333336 +76 142.78611183333336 143.21579933333336 +81 143.25486183333336 143.72361183333336 +74 143.72361183333336 144.1659001666667 +79 144.20622275000002 144.91488425000003 +81 144.91488425000003 145.15110475000003 +79 145.15110475000003 145.37837750000003 +77 145.37837750000003 145.60565025000002 +76 145.60565025000002 146.05280483333337 +81 146.09345525000003 146.80211675000004 +83 146.80211675000004 147.03833725000004 +81 147.03833725000004 147.26561000000004 +79 147.26561000000004 147.50754550000005 +77 147.50754550000005 149.39730950000006 +76 149.39730950000006 150.10597100000004 +78 150.10597100000004 150.32985150000005 +79 150.32985150000005 152.22944300000006 +78 152.22944300000006 153.14499329166674 +79 153.14499329166674 153.37226604166673 +77 153.37226604166673 153.60127379166673 +76 153.60127379166673 153.83204304166674 +74 153.83204304166674 154.06460129166675 +72 154.06460129166675 154.29897629166675 +74 154.29897629166675 154.53335129166675 +72 154.53335129166675 154.77335129166676 +71 154.77335129166676 155.01335129166674 +69 155.01335129166674 155.24772629166674 +72 155.24772629166674 155.48210129166674 +71 155.48210129166674 155.71647629166674 +69 155.71647629166674 155.94035679166674 +72 157.10007904166673 157.33445404166673 +69 157.56882904166673 157.80320404166673 +68 157.80320404166673 158.16905779166675 +76 158.29100904166674 158.75975904166674 +74 158.75975904166674 159.22850904166674 +72 159.22850904166674 159.47044454166675 +71 159.47044454166675 159.71238004166673 +69 159.71238004166673 159.94860054166674 +68 159.94860054166674 160.18482104166674 +69 160.18482104166674 160.42104154166674 +71 160.42104154166674 160.65726204166674 +72 160.65726204166674 160.83442741666673 +66 160.89348254166674 161.12970304166674 +69 161.12970304166674 161.36592354166675 +68 161.36592354166675 161.58980404166675 +71 161.58980404166675 162.05855404166675 +69 162.05855404166675 162.29292904166675 +71 162.29292904166675 162.52730404166675 +72 162.52730404166675 162.9744586250001 +77 163.01510904166676 163.48385904166676 +76 163.48385904166676 163.95260904166676 +74 163.95260904166676 164.89010904166676 +72 164.89010904166676 165.13828904166675 +71 165.13828904166675 165.38646904166677 +71 165.38646904166677 165.48517054166678 +72 165.48517054166678 165.58387204166678 +71 165.58387204166678 166.17608104166678 +69 166.17608104166678 166.43928504166678 +69 166.43928504166678 167.4006690416668 +67 172.66893854166673 173.14512904166673 +69 173.14512904166673 173.62131954166674 +71 173.62131954166674 174.11312304166674 +72 174.11312304166674 174.82740879166673 +74 174.82740879166673 174.94104516666673 +72 174.94104516666673 175.05468154166672 +71 175.05468154166672 175.50183612500007 +72 175.54248654166673 176.01867704166673 +74 176.01867704166673 176.49486754166674 +76 176.49486754166674 176.98296279166672 +77 176.98296279166672 177.6972485416667 +79 177.6972485416667 177.8117524166667 +77 177.8117524166667 177.9262562916667 +76 177.9262562916667 178.37341087500005 +81 178.4140612916667 178.8902517916667 +74 178.8902517916667 179.32675975000004 +79 179.36644229166671 180.0807280416667 +81 180.0807280416667 180.31882329166672 +79 180.31882329166672 180.54609604166671 +77 180.54609604166671 180.7733687916667 +76 180.7733687916667 181.20987675000003 +81 181.2495592916667 181.72574979166671 +74 181.72574979166671 182.17656966666672 +82 182.21755329166672 182.70935679166672 +81 182.70935679166672 183.18554729166672 +79 183.18554729166672 183.41455504166672 +77 183.41455504166672 183.6435627916667 +79 183.6435627916667 183.8816580416667 +77 183.8816580416667 184.1197532916667 +79 184.1197532916667 184.3578485416667 +76 184.3578485416667 184.5959437916667 +77 184.5959437916667 184.8340390416667 +79 184.8340390416667 185.0721342916667 +79 185.0721342916667 185.1341177916667 +81 185.1341177916667 185.1961012916667 +79 185.1961012916667 185.2580847916667 +77 185.3200682916667 185.44403529166672 +79 185.44403529166672 185.56800229166672 +81 185.56800229166672 185.74657372916673 +73 185.8060975416667 186.04419279166672 +74 186.04419279166672 186.2822880416667 +79 186.2822880416667 186.5302220416667 +76 186.5302220416667 186.6231972916667 +77 186.6231972916667 186.7161725416667 +76 186.7161725416667 187.2740240416667 +74 187.2740240416667 187.5219580416667 +74 187.5219580416667 188.0178260416667 +67 192.84880679166668 193.3288067916667 +69 193.3288067916667 193.80880679166668 +71 193.80880679166668 194.3009075416667 +72 194.3009075416667 195.0209075416667 +74 195.0209075416667 195.1409075416667 +72 195.1409075416667 195.2609075416667 +71 195.2609075416667 195.72309225000004 +76 195.7651090416667 196.2412995416667 +69 196.2412995416667 196.67780750000003 +74 196.7174900416667 197.4317757916667 +76 197.4317757916667 197.6698710416667 +74 197.6698710416667 197.8988787916667 +72 197.8988787916667 198.1278865416667 +71 198.1278865416667 198.36598179166668 +72 198.36598179166668 198.6040770416667 +74 198.6040770416667 198.8499787916667 +76 198.8499787916667 199.0958805416667 +77 199.0958805416667 199.3417822916667 +79 199.3417822916667 199.5876840416667 +81 199.5876840416667 199.8335857916667 +79 199.8335857916667 200.0794875416667 +77 200.0794875416667 200.3253892916667 +76 200.3253892916667 200.5712910416667 +74 200.5712910416667 200.81129104166672 +72 200.81129104166672 201.0512910416667 +71 201.0512910416667 202.0269010416667 +72 202.0269010416667 202.5147060416667 +74 202.5147060416667 203.0025110416667 +67 203.0025110416667 203.46500695833336 +72 203.5070520416667 204.6272910416667 +71 204.6272910416667 205.1874105416667 +72 205.1874105416667 206.24022654166671 +71 206.24022654166671 206.76663454166672 +70 206.76663454166672 207.2930425416667 +69 207.2930425416667 207.8194505416667 +74 207.8194505416667 208.8761402916667 +72 208.8761402916667 209.40245629166668 +74 209.40245629166668 209.9287722916667 +76 209.9287722916667 210.4586507916667 +77 210.4586507916667 211.7744407916667 +81 211.7744407916667 212.04701929166671 +79 212.04701929166671 212.3195977916667 +77 212.3195977916667 212.5921762916667 +76 212.5921762916667 212.8647547916667 +77 212.8647547916667 213.1373332916667 +76 213.1373332916667 213.4099117916667 +74 213.4099117916667 213.6824902916667 +72 213.6824902916667 215.9134489583334 +67 216.20146745833338 216.3366025833334 +69 216.3366025833334 216.4717377083334 +71 216.4717377083334 216.7601992083334 +72 216.7601992083334 217.0486607083334 +74 217.0486607083334 217.3371222083334 +76 217.3371222083334 217.62558370833338 +77 217.62558370833338 218.33350520833338 +72 218.33350520833338 218.4777359583334 +74 218.4777359583334 218.6219667083334 +76 218.6219667083334 218.76619745833338 +77 218.76619745833338 219.0546589583334 +79 219.0546589583334 219.34312045833337 +81 219.34312045833337 220.46792695833338 +83 220.46792695833338 221.03353770833337 +84 221.03353770833337 225.55842370833338 +79 221.03353770833337 225.55842370833338 +track Fuga 2 +60 117.73519758333336 118.21588958333335 +62 118.21588958333335 118.69658158333336 +64 118.69658158333336 119.17727358333336 +65 119.17727358333336 119.89727358333336 +67 119.89727358333336 120.00921383333336 +65 120.00921383333336 120.12115408333337 +64 120.12115408333337 120.5576620416667 +69 120.59734458333337 121.07353508333337 +62 121.07353508333337 121.5206896666667 +67 121.56134008333336 122.27000158333337 +69 122.27000158333337 122.50622208333337 +67 122.50622208333337 122.74244258333336 +65 122.74244258333336 122.97866308333336 +64 122.97866308333336 123.21488358333336 +65 123.21488358333336 123.45878608333337 +64 123.45878608333337 123.69500658333337 +62 123.69500658333337 123.93122708333337 +60 123.93122708333337 124.16744758333337 +62 124.16744758333337 124.40366808333337 +60 124.40366808333337 124.64757058333338 +59 124.64757058333338 124.89147308333337 +57 124.89147308333337 125.36391408333337 +66 125.36391408333337 125.82401508333338 +67 125.82401508333338 127.25276808333338 +66 127.25276808333338 127.48714308333338 +64 127.48714308333338 127.72151808333338 +66 127.72151808333338 128.15120558333336 +62 128.19026808333336 128.65901808333336 +67 128.65901808333336 129.13901808333335 +65 129.13901808333335 129.61145908333336 +64 129.61145908333336 130.08020908333336 +62 130.08020908333336 130.54895908333336 +60 130.54895908333336 131.01770908333336 +67 131.95258383333334 132.90913883333334 +65 132.90913883333334 133.14351383333334 +64 133.14351383333334 133.37788883333334 +65 133.37788883333334 134.54976383333334 +65 134.54976383333334 134.78413883333334 +64 134.78413883333334 135.26800983333334 +62 135.26800983333334 136.20550983333334 +60 136.20550983333334 136.67425983333334 +65 136.67425983333334 137.12761283333333 +67 137.36383333333333 137.60005383333333 +65 137.60005383333333 137.83627433333334 +64 137.83627433333334 138.07249483333334 +65 138.07249483333334 138.51604325 +62 138.55636583333333 139.02880683333333 +67 139.02880683333333 140.89725783333336 +67 147.97998650000005 148.45242750000006 +69 148.45242750000006 148.92486850000006 +71 148.92486850000006 149.39730950000006 +72 149.39730950000006 150.10597100000004 +74 150.10597100000004 150.21791125000004 +72 150.21791125000004 150.32985150000005 +71 150.32985150000005 150.76292241666673 +76 150.80229250000005 151.27288800000005 +69 151.27288800000005 151.7200425833334 +74 151.76069300000006 152.45529179166672 +76 152.45529179166672 152.68314287500007 +74 152.68314287500007 152.91303137500006 +72 152.91303137500006 153.14499329166674 +71 153.14499329166674 153.60127379166673 +62 154.53335129166675 155.01335129166674 +64 155.01335129166674 155.48210129166674 +66 155.48210129166674 155.94035679166674 +67 155.94035679166674 156.64348179166674 +69 156.64348179166674 156.75459291666675 +67 156.75459291666675 156.86570404166673 +66 156.86570404166673 157.29539154166673 +71 157.33445404166673 157.80320404166673 +64 157.80320404166673 158.25035862500008 +69 158.29100904166674 158.99413404166674 +71 158.99413404166674 159.22850904166674 +69 159.22850904166674 159.47044454166675 +67 159.47044454166675 159.71238004166673 +66 159.71238004166673 160.18482104166674 +65 160.18482104166674 160.65726204166674 +64 160.65726204166674 161.12970304166674 +62 161.12970304166674 161.82417904166675 +64 161.82417904166675 162.05855404166675 +66 162.05855404166675 162.29292904166675 +68 162.29292904166675 162.52730404166675 +69 162.52730404166675 162.77120654166674 +68 162.77120654166674 163.01510904166676 +69 163.01510904166676 163.24948404166676 +71 163.24948404166676 163.48385904166676 +68 163.48385904166676 163.71823404166676 +66 163.71823404166676 163.95260904166676 +68 163.95260904166676 164.18698404166676 +69 164.18698404166676 164.42135904166676 +71 164.42135904166676 164.89010904166676 +60 166.91997704166678 167.4006690416668 +62 167.4006690416668 167.88136104166676 +64 167.88136104166676 168.38556254166676 +65 168.38556254166676 169.10556254166676 +67 169.10556254166676 169.21919891666676 +65 169.21919891666676 169.33283529166675 +64 169.33283529166675 169.76934325000008 +69 169.80902579166676 170.28521629166676 +62 170.28521629166676 170.7323708750001 +67 170.77302129166677 171.48730704166675 +69 171.48730704166675 171.71807629166676 +67 171.71807629166676 171.94884554166674 +65 171.94884554166674 172.19274804166673 +64 172.19274804166673 172.62925600000005 +64 172.66893854166673 173.14512904166673 +66 173.14512904166673 173.62131954166674 +67 173.62131954166674 174.47026591666673 +66 174.58931354166674 175.05468154166672 +68 175.05468154166672 175.54248654166673 +69 175.54248654166673 176.49486754166674 +67 176.49486754166674 176.98296279166672 +69 176.98296279166672 177.45915329166672 +71 177.45915329166672 177.9262562916667 +72 177.9262562916667 178.6521565416667 +74 178.6521565416667 178.7712041666667 +72 178.7712041666667 178.8902517916667 +71 178.8902517916667 179.32675975000004 +76 179.36644229166671 179.84263279166672 +69 179.84263279166672 180.27914075000004 +74 180.31882329166672 181.0114640416667 +76 181.0114640416667 181.2495592916667 +74 181.2495592916667 181.4876545416667 +72 181.4876545416667 181.72574979166671 +71 181.72574979166671 182.17656966666672 +79 182.21755329166672 182.70935679166672 +73 182.70935679166672 183.18554729166672 +74 183.18554729166672 183.6435627916667 +76 183.6435627916667 184.08007075000003 +73 184.1197532916667 184.5959437916667 +74 184.5959437916667 185.0721342916667 +76 185.0721342916667 185.56800229166672 +69 185.56800229166672 186.04419279166672 +64 187.0260900416667 187.5219580416667 +66 187.5219580416667 188.0178260416667 +67 188.0178260416667 188.5136940416667 +69 188.5136940416667 189.2336940416667 +71 189.2336940416667 189.3536940416667 +69 189.3536940416667 189.4736940416667 +67 189.4736940416667 189.9136940416667 +72 189.9536940416667 190.43369404166668 +66 190.43369404166668 190.6696940416667 +71 190.9323147916667 191.6581212916667 +72 191.6581212916667 191.90005679166669 +71 191.90005679166669 192.13443179166669 +69 192.13443179166669 192.36880679166669 +67 192.36880679166669 192.6088067916667 +66 192.6088067916667 192.84880679166668 +64 192.84880679166668 193.08880679166668 +62 193.08880679166668 193.3288067916667 +64 193.3288067916667 194.3009075416667 +62 194.3009075416667 195.51300829166672 +69 195.51300829166672 195.7651090416667 +67 195.7651090416667 196.0032042916667 +65 196.0032042916667 196.2412995416667 +64 196.2412995416667 196.4793947916667 +67 196.4793947916667 196.7174900416667 +65 196.7174900416667 196.9555852916667 +69 196.9555852916667 197.1936805416667 +67 197.1936805416667 198.36598179166668 +69 198.36598179166668 198.6040770416667 +70 198.6040770416667 199.0958805416667 +72 199.0958805416667 200.0794875416667 +74 200.0794875416667 200.5303074166667 +67 200.5712910416667 201.0512910416667 +67 201.0512910416667 202.5147060416667 +65 202.5147060416667 203.5070520416667 +64 203.5070520416667 204.0671715416667 +62 204.0671715416667 205.1874105416667 +64 205.1874105416667 205.66995120833337 +69 205.7138185416667 206.76663454166672 +67 206.76663454166672 207.8194505416667 +65 207.8194505416667 208.3498242916667 +67 208.3498242916667 208.8761402916667 +69 208.8761402916667 209.40245629166668 +70 209.40245629166668 210.1808730416667 +72 210.1808730416667 210.3197619166667 +70 210.3197619166667 210.4586507916667 +69 210.4586507916667 210.94110712500006 +74 210.98496679166672 211.5112827916667 +67 211.5112827916667 212.0015895416667 +72 212.04701929166671 212.8647547916667 +74 212.8647547916667 213.1373332916667 +72 213.1373332916667 213.4099117916667 +70 213.4099117916667 213.6824902916667 +69 213.6824902916667 213.95506879166672 +70 213.95506879166672 214.22927995833336 +69 214.22927995833336 214.50513854166672 +67 214.50513854166672 214.7826592916667 +65 214.7826592916667 215.0627190416667 +67 215.0627190416667 215.34453812500004 +65 215.34453812500004 215.62811520833338 +64 215.62811520833338 215.9134489583334 +62 215.9134489583334 217.9140452083334 +67 217.9140452083334 218.1892744583334 +69 218.1892744583334 219.34312045833337 +77 219.67490545833337 220.07141620833337 +74 220.07141620833337 221.03353770833337 +76 221.03353770833337 225.55842370833338 +track Fuga 3 +55 129.13901808333335 129.61145908333336 +57 129.61145908333336 130.08020908333336 +59 130.08020908333336 130.54895908333336 +60 130.54895908333336 131.26161158333335 +62 131.26161158333335 131.37272270833336 +60 131.37272270833336 131.48383383333334 +59 131.48383383333334 131.91352133333334 +64 131.95258383333334 132.42133383333334 +57 132.42133383333334 132.86848841666668 +62 132.90913883333334 133.61226383333334 +64 133.61226383333334 133.84663883333334 +62 133.84663883333334 134.08101383333334 +60 134.08101383333334 134.31538883333334 +59 134.31538883333334 134.74507633333334 +60 134.78413883333334 135.73675983333334 +58 135.73675983333334 136.20550983333334 +57 136.20550983333334 136.63519733333334 +62 136.67425983333334 137.12761283333333 +55 137.12761283333333 137.56068375 +60 137.60005383333333 138.07249483333334 +57 138.31443033333335 138.55636583333333 +59 138.55636583333333 138.79258633333333 +60 138.79258633333333 139.02880683333333 +62 139.02880683333333 139.95237583333335 +55 139.95237583333335 140.89725783333336 +55 141.36969883333336 141.85356983333335 +57 141.85356983333335 142.32601083333336 +59 142.32601083333336 142.78611183333336 +60 142.78611183333336 143.48923683333336 +62 143.48923683333336 143.60642433333336 +60 143.60642433333336 143.72361183333336 +59 143.72361183333336 144.1659001666667 +64 144.20622275000002 144.67866375000003 +57 144.67866375000003 145.11173466666668 +62 145.15110475000003 145.84955275000002 +64 145.84955275000002 146.09345525000003 +62 146.09345525000003 146.32967575000004 +60 146.32967575000004 146.56589625000004 +59 146.56589625000004 147.03833725000004 +64 147.03833725000004 148.45242750000006 +62 148.45242750000006 149.39730950000006 +59 149.63353000000004 149.86975050000004 +60 149.86975050000004 150.10597100000004 +57 150.10597100000004 150.27388137500003 +64 150.32985150000005 150.56607200000005 +62 150.56607200000005 150.80229250000005 +60 150.80229250000005 151.03851300000005 +59 151.03851300000005 151.27288800000005 +60 151.27288800000005 151.45581487500004 +57 151.51679050000004 151.76069300000006 +59 151.76069300000006 151.99506800000006 +60 151.99506800000006 152.22944300000006 +62 152.22944300000006 152.45529179166672 +60 152.45529179166672 152.68314287500007 +59 152.68314287500007 152.91303137500006 +57 152.91303137500006 153.14499329166674 +55 153.14499329166674 154.06460129166675 +52 159.22850904166674 159.71238004166673 +54 159.71238004166673 160.18482104166674 +56 160.18482104166674 160.65726204166674 +57 160.65726204166674 161.36592354166675 +59 161.36592354166675 161.47786379166675 +57 161.47786379166675 161.58980404166675 +56 161.58980404166675 162.01949154166675 +60 162.05855404166675 162.52730404166675 +54 162.52730404166675 162.9744586250001 +59 163.01510904166676 163.71823404166676 +60 163.71823404166676 163.95260904166676 +59 163.95260904166676 164.18698404166676 +57 164.18698404166676 164.42135904166676 +56 164.42135904166676 164.85104654166676 +57 164.89010904166676 165.91287704166677 +56 165.91287704166677 166.43928504166678 +57 166.43928504166678 167.4006690416668 +55 167.88136104166676 168.38556254166676 +57 168.38556254166676 168.86556254166675 +59 168.86556254166675 169.33283529166675 +60 169.33283529166675 170.04712104166674 +62 170.04712104166674 170.16616866666675 +60 170.16616866666675 170.28521629166676 +59 170.28521629166676 170.7323708750001 +64 170.77302129166677 171.24921179166677 +57 171.24921179166677 171.6796147500001 +62 171.71807629166676 172.66893854166673 +55 172.66893854166673 173.14512904166673 +62 173.14512904166673 174.11312304166674 +60 174.11312304166674 174.54963100000006 +57 174.58931354166674 175.05468154166672 +64 175.05468154166672 176.01867704166673 +62 176.01867704166673 176.49486754166674 +57 178.4140612916667 178.8902517916667 +59 178.8902517916667 179.36644229166671 +61 179.36644229166671 179.84263279166672 +62 179.84263279166672 180.54609604166671 +64 180.54609604166671 180.6597324166667 +62 180.6597324166667 180.7733687916667 +60 180.7733687916667 181.20987675000003 +65 181.2495592916667 181.72574979166671 +59 181.72574979166671 182.17656966666672 +64 182.21755329166672 182.9474520416667 +65 182.9474520416667 183.18554729166672 +64 183.18554729166672 183.41455504166672 +62 183.41455504166672 183.6435627916667 +61 183.6435627916667 184.1197532916667 +57 186.04419279166672 186.5302220416667 +59 186.5302220416667 187.0260900416667 +61 187.0260900416667 187.5219580416667 +62 187.5219580416667 188.2657600416667 +64 188.2657600416667 188.3897270416667 +62 188.3897270416667 188.5136940416667 +60 188.5136940416667 188.9536940416667 +66 188.99369404166669 189.4736940416667 +59 189.4736940416667 189.9136940416667 +64 189.9536940416667 190.6736940416667 +66 190.6736940416667 190.9323147916667 +64 190.9323147916667 191.1742502916667 +62 191.1742502916667 191.4161857916667 +60 191.4161857916667 193.56880679166667 +62 193.56880679166667 193.80880679166668 +60 193.80880679166668 194.0488067916667 +59 194.0488067916667 194.3009075416667 +57 194.3009075416667 194.5409075416667 +55 194.5409075416667 194.7809075416667 +57 194.7809075416667 194.9609075416667 +54 195.0209075416667 195.2609075416667 +55 195.2609075416667 195.72309225000004 +59 195.7651090416667 196.2412995416667 +60 196.2412995416667 196.7174900416667 +62 196.7174900416667 197.1936805416667 +64 197.1936805416667 197.8988787916667 +65 197.8988787916667 198.0133826666667 +64 198.0133826666667 198.1278865416667 +62 198.1278865416667 198.56439450000002 +67 198.6040770416667 199.0958805416667 +60 199.0958805416667 199.5467004166667 +65 199.5876840416667 200.3253892916667 +67 200.3253892916667 200.5712910416667 +65 200.5712910416667 200.81129104166672 +64 200.81129104166672 201.0512910416667 +62 201.0512910416667 202.0269010416667 +64 202.0269010416667 202.5147060416667 +62 202.5147060416667 203.5070520416667 +55 203.5070520416667 204.0671715416667 +55 204.0671715416667 205.66995120833337 +48 205.7138185416667 206.24022654166671 +50 206.24022654166671 206.76663454166672 +52 206.76663454166672 207.2930425416667 +53 207.2930425416667 208.0694505416667 +55 208.0694505416667 208.2096374166667 +53 208.2096374166667 208.3498242916667 +52 208.3498242916667 208.83228062500004 +57 208.8761402916667 209.40245629166668 +50 209.40245629166668 209.88491262500003 +55 209.9287722916667 210.72180879166672 +57 210.72180879166672 210.98496679166672 +55 210.98496679166672 211.24812479166673 +53 211.24812479166673 211.5112827916667 +52 211.5112827916667 211.7086512916667 +50 211.7744407916667 212.04701929166671 +52 212.04701929166671 212.3195977916667 +53 212.3195977916667 212.5921762916667 +55 212.5921762916667 212.8647547916667 +57 212.8647547916667 213.1373332916667 +58 213.1373332916667 213.3417671666667 +55 213.4099117916667 213.6824902916667 +57 213.6824902916667 213.88692416666672 +52 213.95506879166672 214.22927995833336 +53 214.22927995833336 214.50513854166672 +55 214.50513854166672 214.7826592916667 +57 214.7826592916667 215.0627190416667 +59 215.0627190416667 215.34453812500004 +60 215.34453812500004 215.55678177083337 +57 215.62811520833338 215.9134489583334 +59 215.9134489583334 218.1892744583334 +60 218.1892744583334 225.55842370833338 +track Fuga 4 +48 134.78413883333334 135.26800983333334 +50 135.26800983333334 135.73675983333334 +52 135.73675983333334 136.20550983333334 +53 136.20550983333334 136.90863483333334 +55 136.90863483333334 137.01812383333333 +53 137.01812383333333 137.12761283333333 +52 137.12761283333333 137.56068375 +57 137.60005383333333 138.07249483333334 +50 138.07249483333334 138.51604325 +55 138.55636583333333 139.26502733333334 +57 139.26502733333334 139.50124783333334 +55 139.50124783333334 139.72681183333333 +53 139.72681183333333 139.95237583333335 +52 139.95237583333335 140.12954120833334 +53 140.18859633333335 140.42481683333335 +52 140.42481683333335 140.66103733333335 +50 140.66103733333335 140.89725783333336 +48 140.89725783333336 141.07442320833334 +50 141.13347833333336 141.36969883333336 +48 141.36969883333336 141.61163433333337 +47 141.61163433333337 141.85356983333335 +45 141.85356983333335 142.28664075000003 +50 142.32601083333336 142.78611183333336 +57 142.78611183333336 143.25486183333336 +54 143.25486183333336 143.72361183333336 +55 143.72361183333336 143.96428725000004 +57 143.96428725000004 144.20622275000002 +58 144.20622275000002 144.44244325000003 +55 144.44244325000003 144.67866375000003 +49 144.67866375000003 145.15110475000003 +50 145.15110475000003 145.60565025000002 +57 145.60565025000002 146.56589625000004 +52 146.56589625000004 147.50754550000005 +57 147.50754550000005 147.74376600000005 +59 147.74376600000005 147.97998650000005 +60 147.97998650000005 148.21620700000005 +62 148.21620700000005 148.45242750000006 +60 148.45242750000006 148.68864800000006 +59 148.68864800000006 148.92486850000006 +57 148.92486850000006 149.16108900000006 +55 149.16108900000006 149.39730950000006 +60 149.39730950000006 149.86975050000004 +43 153.60127379166673 154.06460129166675 +45 154.06460129166675 154.53335129166675 +47 154.53335129166675 155.01335129166674 +48 155.01335129166674 155.71647629166674 +50 155.71647629166674 155.82841654166674 +48 155.82841654166674 155.94035679166674 +47 155.94035679166674 156.37004429166674 +52 156.40910679166674 156.86570404166673 +45 156.86570404166673 157.29539154166673 +50 157.33445404166673 158.04710654166672 +52 158.04710654166672 158.29100904166674 +50 158.29100904166674 158.52538404166674 +48 158.52538404166674 158.75975904166674 +47 158.75975904166674 159.22850904166674 +50 160.18482104166674 160.65726204166674 +48 160.65726204166674 161.12970304166674 +53 161.12970304166674 162.05855404166675 +52 162.05855404166675 163.01510904166676 +50 163.01510904166676 163.95260904166676 +52 163.95260904166676 164.42135904166676 +53 164.42135904166676 164.89010904166676 +52 164.89010904166676 165.13828904166675 +50 165.13828904166675 165.38646904166677 +52 165.38646904166677 166.43928504166678 +45 166.43928504166678 167.4006690416668 +43 170.77302129166677 171.24921179166677 +45 171.24921179166677 171.71807629166676 +47 171.71807629166676 172.19274804166673 +48 172.19274804166673 172.90703379166672 +50 172.90703379166672 173.02608141666673 +48 173.02608141666673 173.14512904166673 +47 173.14512904166673 173.58163700000006 +52 173.62131954166674 174.11312304166674 +45 174.11312304166674 174.54963100000006 +50 174.58931354166674 175.29858404166671 +52 175.29858404166671 175.54248654166673 +50 175.54248654166673 175.78058179166672 +48 175.78058179166672 176.01867704166673 +47 176.01867704166673 176.45518500000006 +46 176.49486754166674 176.98296279166672 +45 176.98296279166672 177.45915329166672 +43 177.45915329166672 177.9262562916667 +45 177.9262562916667 178.29211004166672 +54 178.4140612916667 178.8902517916667 +55 178.8902517916667 179.36644229166671 +52 179.36644229166671 179.84263279166672 +50 179.84263279166672 180.73549000000006 +52 180.7733687916667 181.2495592916667 +53 181.2495592916667 181.72574979166671 +55 181.72574979166671 182.46345504166672 +57 182.46345504166672 182.5864059166667 +55 182.5864059166667 182.70935679166672 +53 182.70935679166672 183.14586475000004 +58 183.18554729166672 183.6435627916667 +52 183.6435627916667 184.08007075000003 +57 184.1197532916667 184.8340390416667 +58 184.8340390416667 185.0721342916667 +57 185.0721342916667 185.3200682916667 +55 185.3200682916667 185.56800229166672 +53 185.56800229166672 185.8060975416667 +52 185.8060975416667 186.04419279166672 +53 186.04419279166672 186.22276422916673 +50 186.2822880416667 186.5302220416667 +55 186.5302220416667 187.0260900416667 +57 187.0260900416667 187.5219580416667 +50 187.5219580416667 189.71369404166668 +52 189.71369404166668 189.9536940416667 +50 189.9536940416667 190.1936940416667 +48 190.1936940416667 190.43369404166668 +47 190.43369404166668 190.6736940416667 +45 190.6736940416667 190.9323147916667 +43 190.9323147916667 191.1742502916667 +42 191.1742502916667 191.4161857916667 +40 191.4161857916667 191.85973420833338 +52 191.90005679166669 192.36880679166669 +54 192.36880679166669 192.84880679166668 +55 192.84880679166668 193.80880679166668 +57 193.80880679166668 194.0488067916667 +55 194.0488067916667 194.3009075416667 +54 194.3009075416667 194.7409075416667 +50 194.7809075416667 195.2609075416667 +55 195.2609075416667 199.0958805416667 +57 199.0958805416667 200.0794875416667 +59 200.0794875416667 200.5712910416667 +60 200.5712910416667 201.0512910416667 +53 201.0512910416667 201.2342179166667 +57 201.2951935416667 201.5390960416667 +55 201.5390960416667 201.7829985416667 +53 201.7829985416667 202.0269010416667 +52 202.0269010416667 202.2708035416667 +50 202.2708035416667 202.5147060416667 +48 202.5147060416667 202.7586085416667 +47 202.7586085416667 203.0025110416667 +48 203.0025110416667 203.25478154166672 +50 203.25478154166672 203.5070520416667 +52 203.5070520416667 203.7871117916667 +53 203.7871117916667 204.0671715416667 +43 204.6272910416667 205.1874105416667 +48 205.1874105416667 225.55842370833338 diff --git a/test/midi/bach/bach_847.mid b/test/midi/bach/bach_847.mid new file mode 100644 index 0000000000000000000000000000000000000000..70b438479639b7c68742d41a5be9ca776b6f7bf8 GIT binary patch literal 15797 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%0Aahz(>0#1a{?$$qTJ*%f)e&jdN_wC>ourz zNJKN?agTBE?FGzLU@i_Nk2g5SmjJ|@dUA(MdnDhjKtk}5(wtU}ELY-u>}@cZ8|>I+ zjAI*gMJWD7iVjqT4WcXG=EI8&_eI`Ol2Y0XYD6TUgTkP`K=+2Ya*;d5#Y3GUO174^ zlWO89;{bEyWKv<+)`LMEkmG1(;?I+CYO|{Qd3?jPtk+@)wOWj0oW6l^tU@2>H?ta> zND1z)>q2!cWF)?DBAhi$y3@{gtPJdFe2z3mMaQsFNk1R(W6DKzJ^JQUK zHRe@~iPL)2rnEQd1J23hUxaWTwQZk7ZaGHHma6Oov!#r0gOGd02e>6OPZ6E^%xnj?Keb!S;pbP?A-fG8DLyBFF|61TNHgOXQM`DJno* zr~=*n8=e?1mU%D80GN&BL8DmQzlDbZtMsT%ZPvvkVdIkL-bE?~_adXk#bAL}v=+BE z8`?IwLA%glD|R;7Z~XNHB$r8Iq8Q+~ReLMTi+D!XJhuer(Aeh079)80c)JLul2Z<% zf4uF0UzBYR>mP4>l}Bw4nfBm6h3nBy0r*SB0!=~!LC_TShB);R>JD5^Fn}VtREEj8 zh!5DUh~K%;rs!>igatUEB3Y8OGdz(&p^7g}p$=M;Iu1h?+;L%qfGYtq9B@`du!1`X z`vJ$$F+7VPbzCxGy9@=;!-v2Sp0WQKI2?#fQ5Ci-6GP6f3VZe7lXg~EXWwwKHyCj6 zJ;?DN9=#zc&)ksSlMh|i7BQ)~1$>2d1>;yleZ!C*5^bNKPWm1Ka?b6h7oIMF8gaZxMny z#2lLi=>TN3Sdn`cDBUX5342Tt_*uD^gT3C=v*-wfmAQWlV6DLZ3aF?UQWYO*A8kLM zh38PEPbPzCGPqbq9!R|<2Wg7U3MI&>Q0mPZ^}(D;4l1-EdLPq+dJ|d&F*9$*dHBe8 zq2v(A6tY{yxq^fDQ?ceD`bX`h0`XwQh*yMIE5>VZ#^&t0%%Rf59mKa{(lmZ@K*@J_ z+T&>gSE!YTJHX;YR@3z3?L6+6c_gbuz@4}DZxJyN_&Fh7MX;{|oMosGDIq0R0xIY% z=@k2Un~7w{P(SZu94~1kmzXgQLMf6Ta-207OM~g8Gu267oG&odi%j(*6VhZt8eBvM zThJ-0ti~2Jj+U+EES48p&RJSE*s{Tvb@otWs;{$Ui!EDh`ET@XmHo_Ghb)_iEE{ZD zr`TWBtyhJm>Cag%vTw|wHG>kkqEoh(G$a@3FI^xXR}@Zgo)cW4-EtadkmFWO@>G*v zGakClajZYL8}Uv^jMsEni}8I9tgSWKatq^l34IY;E?23Rvl~3U!P8qbokMlQ#!{8D z_}uCowUzjMog!bVlkdwLkJ?0z8iQS9NXn1e=MEJW=)-Pt=_Jiz$z?aP7sc6&UvtmG z>qAXn6w;=Do_=F&;1WJ$2lOjufARY6jhnZZKlmMU`q$lJIbHqA2S044 zUk)#JA3Xc3=7TkVFI}^+v$uE4TwA+;|NiPN`s47G>%0Bk)&8MB9~ZBr%CqJE?%wXr O8~ELF`txMEb^SlZZTkrT literal 0 HcmV?d00001 diff --git a/test/midi/bach/bach_847.mid.txt b/test/midi/bach/bach_847.mid.txt new file mode 100644 index 0000000..bd729c6 --- /dev/null +++ b/test/midi/bach/bach_847.mid.txt @@ -0,0 +1,1850 @@ +track Piano right +72 0.003061225 0.13923205 +63 0.11855535 0.25013435 +62 0.23039749999999998 0.36302074999999995 +63 0.34317949999999997 0.4818348333333333 +60 0.465168175 0.6015721041666666 +63 0.5817607916666667 0.7138362083333334 +62 0.6949682916666666 0.8281143750000001 +63 0.8053456041666667 0.9243444375000001 +72 0.9283729375 1.0683295708333334 +63 1.0486666583333333 1.1797527416666667 +62 1.1600898291666666 1.2919410125000002 +63 1.2705766708333335 1.4068719416666668 +60 1.386298975 1.5220785625000002 +63 1.503930716666667 1.6299923125000002 +62 1.6138052500000002 1.7420442083333336 +63 1.7199204375000001 1.841637729166667 +68 1.841637729166667 1.9796988750000002 +65 1.9655479375000002 2.0976233541666667 +64 2.07592525 2.208588 +65 2.1872459583333335 2.3235807875 +60 2.303918725 2.4408917999999997 +65 2.422005995833333 2.5536738 +64 2.5367565 2.6693797499999996 +65 2.6505305624999997 2.769570252083333 +68 2.769570252083333 2.9066582375 +65 2.8876468208333335 3.0207267375 +64 3.001715320833333 3.1359176 +65 3.1129321083333332 3.252622925 +60 3.2362767874999996 3.3704365999999997 +65 3.3506997499999995 3.4822787499999994 +64 3.4634817499999997 3.596425041666666 +65 3.5743840499999995 3.6952153708333326 +71 3.6982157520833328 3.8349312937499995 +65 3.817207420833333 3.947804379166666 +63 3.929147670833333 4.060875795833333 +65 4.0402065020833335 4.1775247874999994 +62 4.156348247916666 4.290507254166667 +65 4.2755259875 4.406612070833334 +63 4.3869491583333335 4.518920375 +65 4.5003656875 4.6175879250000005 +71 4.6175879250000005 4.754736070833334 +65 4.734136829166667 4.8652229125 +63 4.8436873416666675 4.975776625000001 +65 4.957919500000001 5.096422250000001 +62 5.075974937500001 5.211555650000001 +65 5.196518050000001 5.328097050000001 +63 5.305540650000001 5.438415727083335 +65 5.421278629166668 5.542322300000001 +72 5.543368325000001 5.686970941666669 +67 5.668520775000002 5.797671941666668 +65 5.779221775000002 5.909616187500002 +67 5.888131812500002 6.025259100000002 +63 6.004342750000002 6.141721875000002 +67 6.122868733333335 6.247851475000002 +65 6.230114643750002 6.355945187500002 +67 6.340320187500002 6.4575780000000025 +72 6.452624875000002 6.591244650000003 +67 6.5745780000000025 6.7042075000000025 +65 6.683837150000002 6.815092687500003 +67 6.7988325208333364 6.9406636166666695 +63 6.91671872916667 7.055064287500003 +67 7.03628121666667 7.166342550000003 +65 7.152901675000003 7.28200209791667 +67 7.2568444416666695 7.38326789791667 +75 7.38326789791667 7.531002520833337 +68 7.514021395833337 7.646096812500003 +67 7.6281722916666705 7.761760208333337 +68 7.7425294375000036 7.883677758333337 +63 7.862926783333338 8.000126741666671 +68 7.979527500000004 8.110613583333338 +67 8.090950670833337 8.22355544791667 +68 8.206279020833337 8.327705825000004 +75 8.32571379166667 8.464103708333337 +68 8.44523579166667 8.577311208333336 +67 8.56127347916667 8.694288589583337 +68 8.673619295833337 8.811500158333336 +63 8.787792537500003 8.92506667916667 +68 8.909267410416671 9.03937903541667 +67 9.019862291666671 9.151629458333339 +68 9.133410833333338 9.254868333333338 +74 9.253856187500006 9.39929734166667 +66 9.380847175000005 9.509998341666671 +64 9.490625666666672 9.621487958333336 +66 9.599481650000005 9.740294416666671 +62 9.721286352083338 9.859504577083337 +66 9.84229441666667 9.968847291666671 +64 9.952775879166671 10.07961729166667 +66 10.05910947916667 10.17632041666667 +74 10.17832041666667 10.312985100000002 +66 10.293683650000004 10.422359983333337 +64 10.40213941666667 10.531813250000003 +66 10.511514300000004 10.647123258333336 +62 10.629681408333335 10.764082341666668 +66 10.744991416666668 10.87226425 +64 10.852264233333335 10.98117341666667 +66 10.96517341666667 11.085265466666668 +74 11.084219441666669 11.227927166666667 +67 11.206604366666667 11.335069916666667 +66 11.321333666666668 11.4515688 +67 11.426644916666667 11.566332916666669 +62 11.551854166666669 11.685928100000002 +67 11.666626650000003 11.795302983333336 +66 11.774163300000001 11.904077206250001 +67 11.885376416666668 12.003486666666669 +74 12.001518162500002 12.13721826666667 +67 12.123431516666669 12.252107850000002 +66 12.232806400000003 12.362579983333335 +67 12.339423933333336 12.474983016666668 +62 12.460448141666669 12.594355860416668 +67 12.575605879166668 12.700605754166668 +66 12.681855772916668 12.809275022916669 +67 12.787212810416667 12.908065352083335 +72 12.908065352083335 13.046037685416668 +64 13.030859129166668 13.155859004166668 +62 13.136216166666667 13.262738750000002 +64 13.241573204166668 13.37728496666667 +60 13.360618308333336 13.496729341666668 +64 13.479136766666668 13.608766266666668 +62 13.588395916666668 13.71903816666667 +64 13.698580991666669 13.81571785416667 +72 13.81765595416667 13.95123949166667 +64 13.933903733333334 14.061640900000002 +62 14.043392733333334 14.172374733333335 +64 14.152994900000001 14.288571416666668 +60 14.267335916666669 14.401480916666669 +64 14.38123541666667 14.50953941666667 +62 14.49305591666667 14.623026250000002 +64 14.60595796666667 14.72666067291667 +72 14.721419883333336 14.86934331666667 +65 14.853660675000004 14.98281184166667 +64 14.964361675000003 15.094488991666669 +65 15.07414016666667 15.209799000000004 +60 15.188481183333336 15.32324226666667 +65 15.309455516666668 15.438131850000001 +64 15.419749516666668 15.550378550000001 +65 15.528290183333334 15.648772183333335 +72 15.647768166666669 15.786768666666669 +65 15.768250166666668 15.897879666666668 +64 15.879361166666667 16.01000341666667 +65 15.993401854166668 16.13012060416667 +60 16.10668310416667 16.241995181250005 +65 16.22484716666667 16.351200958333337 +64 16.332247889583336 16.46100098541667 +65 16.444540085416673 16.56814317291667 +70 16.563881610416672 16.711683883333336 +65 16.696058900000004 16.824735233333335 +63 16.805433783333335 16.93515749166667 +65 16.913889550000004 17.04935687916667 +62 17.03301074166667 17.167071408333335 +65 17.14928115416667 17.280367237500002 +63 17.25883166666667 17.39064641666667 +65 17.372163929166668 17.488895429166668 +70 17.490840954166668 17.62627071666667 +65 17.60270864166667 17.73435346666667 +63 17.72025571666667 17.852418916666668 +65 17.83118341666667 17.966240454166666 +62 17.944117666666667 18.078223704166668 +65 18.062365502083335 18.19296246041667 +63 18.172440081250002 18.303724008333337 +65 18.288220141666667 18.404756722916666 +70 18.40264701875 18.547691160416665 +67 18.529103785416666 18.659215410416664 +65 18.638769297916667 18.769777604166666 +67 18.754152604166666 18.890959425 +63 18.866457291666666 19.00278605416667 +67 18.984096633333333 19.11431030416667 +65 19.099440404166668 19.23059029166667 +67 19.20817654791667 19.32531685416667 +70 19.32922310416667 19.46583171666667 +67 19.44250435416667 19.57485431666667 +65 19.55699716666667 19.689310416666668 +67 19.667899466666668 19.80427434166667 +63 19.78888974166667 19.92302786666667 +67 19.90517071666667 20.03674971666667 +65 20.01701286666667 20.150003533333333 +67 20.128919183333334 20.249474752083334 +68 20.2505523375 20.398153529166667 +67 20.37662983125 20.506889672916667 +65 20.487372929166668 20.618402966666668 +67 20.598897179166666 20.736049966666666 +63 20.716442133333334 20.852967216666666 +67 20.837929616666667 20.969508616666666 +65 20.951651466666668 21.084162924999998 +67 21.060674066666667 21.178280524999998 +68 21.177300133333333 21.31448144166667 +67 21.2983217375 21.431401654166667 +65 21.409538525000002 21.54308629166667 +67 21.523607025 21.66000334166667 +63 21.64269566666667 21.77606579166667 +67 21.75987872916667 21.88577810416667 +65 21.86779247916667 21.99654140416667 +67 21.97493647291667 22.098260287500004 +68 22.09515564166667 22.241219608333335 +62 22.224855958333336 22.35212879166667 +60 22.33303786666667 22.461520445833333 +62 22.444983483333335 22.581087275 +58 22.558796695833333 22.693447708333334 +62 22.676048458333334 22.804253458333335 +60 22.785022708333333 22.914239300000002 +62 22.89679745 23.013087849999998 +68 23.013087849999998 23.149417370833334 +62 23.1306907875 23.261776870833334 +60 23.2402413 23.371983183333334 +62 23.355446220833333 23.491712770833335 +58 23.474134645833335 23.60961015 +62 23.590237475000002 23.71938864166667 +60 23.701860983333333 23.833457002083335 +62 23.80887195 23.932222402083337 +67 23.933251208333335 24.080456625000004 +58 24.06093349791667 24.19023511666667 +56 24.175474983333334 24.306593943750006 +58 24.283408458333337 24.423984041666667 +63 24.407317383333336 24.54316289166667 +58 24.520062425000003 24.648861308333338 +56 24.633236325000002 24.763444520833335 +58 24.740772975000002 24.859674583333337 +67 24.861658708333337 24.99841754166667 +58 24.982962983333337 25.11023581666667 +56 25.087508525 25.216064758333335 +58 25.201358883333334 25.338882145833335 +63 25.315084316666667 25.452384950000003 +58 25.434120145833337 25.561475950000002 +56 25.54602139166667 25.67547162916667 +58 25.653294208333335 25.774261958333334 +65 25.773253893750002 25.9210361125 +60 25.9050218875 26.029576970833332 +58 26.0117833875 26.13808322083333 +60 26.117655208333332 26.25369170833333 +57 26.234386708333332 26.36901370833333 +60 26.351156558333333 26.48273555833333 +58 26.463938558333332 26.59628852083333 +60 26.57871039583333 26.69589789583333 +65 26.69492133333333 26.83060182083333 +60 26.81108507708333 26.941196702083328 +58 26.92353869583333 27.05443970833333 +60 27.03416945833333 27.16930445833333 +57 27.14903420833333 27.283520916666667 +60 27.263898958333332 27.394528331249997 +58 27.378670129166665 27.511661375 +60 27.489786374999998 27.614865785416665 +65 27.61710793958333 27.769336208333332 +62 27.74715288125 27.875563208333332 +60 27.85724820833333 27.98653644583333 +62 27.96902672083333 28.10513428333333 +59 28.086723441666667 28.221663699999997 +62 28.202000787499998 28.33308687083333 +60 28.31342395833333 28.446359583333333 +62 28.42578345833333 28.54924020833333 +65 28.54718259583333 28.689363608333334 +62 28.674548808333334 28.804178308333334 +60 28.784733883333335 28.91526778333333 +62 28.89588795 29.03146820833333 +59 29.01312845833333 29.14681214583333 +62 29.12882652083333 29.254725895833328 +60 29.233143145833328 29.361450508333327 +62 29.343888516666663 29.46790941458333 +65 29.47008332708333 29.618474899999995 +62 29.600024733333328 29.729175899999994 +60 29.708880716666663 29.83900803333333 +62 29.820597191666664 29.956256024999995 +59 29.933000224999997 30.067945845833332 +62 30.05307594583333 30.18318757083333 +60 30.16552956458333 30.296992966666664 +62 30.27333633958333 30.391854566666666 +65 30.39381927083333 30.52976705833333 +62 30.50905364583333 30.64066935833333 +60 30.62187235833333 30.754294997916663 +62 30.73371450833333 30.87135150833333 +59 30.85664563333333 30.99296800833333 +62 30.974171008333332 31.10575000833333 +60 31.08601315833333 31.219364441666663 +62 31.19503575833333 31.31732364166666 +63 31.318344049999997 31.46663395833333 +60 31.44707020416666 31.57560820833333 +59 31.557293208333327 31.68632238333333 +60 31.66997624583333 31.80506850208333 +55 31.786367712499995 31.922730024999996 +60 31.903428574999996 32.03210490833333 +59 32.01280345833333 32.143422666666666 +60 32.12309745833333 32.245048708333336 +63 32.244032447916666 32.38483346666667 +60 32.36749770833334 32.49523487500001 +59 32.47789911666667 32.60674595833334 +60 32.58465089166667 32.71968020833334 +55 32.70134045833334 32.835859581250006 +60 32.82000137916667 32.950598337500004 +59 32.92914312291667 33.06132515625001 +60 33.04404872916667 33.166095116666675 +53 33.167158945833336 33.31201703333334 +63 33.29428653333334 33.41840003333334 +62 33.39978300833334 33.52736010833334 +63 33.50507330000001 33.64109598333334 +65 33.625285716666674 33.76211598333334 +63 33.73892200833334 33.86820444166668 +62 33.84975427500001 33.98001682916667 +63 33.96426879583334 34.08237904583334 +53 34.08139479375001 34.21803753541668 +63 34.199450160416674 34.32956178541667 +62 34.31283314791667 34.44403022916667 +63 34.41971055416668 34.55633491666667 +65 34.54168647916667 34.677399506250005 +63 34.65687712708334 34.78747408541667 +62 34.766951706250005 34.899291993750005 +63 34.87795912083334 35.000726362500004 +54 35.00386724375001 35.15273286041667 +60 35.13268808958334 35.25923105625 +59 35.241180514583334 35.36977405 +60 35.35344751666667 35.49565272916667 +63 35.47382735416667 35.61111354166667 +60 35.59279854166667 35.72100354166667 +59 35.69994129166667 35.83003014166667 +60 35.81166279166667 35.93411179166667 +54 35.93411179166667 36.07437804166668 +60 36.056063041666675 36.18426804166668 +59 36.16778454166668 36.29724381666667 +60 36.276815804166674 36.413002554166674 +63 36.392574541666676 36.52742200000001 +60 36.51111763750001 36.63792934583334 +59 36.618907589583344 36.74830247291668 +60 36.72772634791667 36.85122266875001 +63 36.850154291666676 36.996809708333345 +60 36.97622278750001 37.10566569166668 +59 37.09090555833335 37.221245916666675 +60 37.19791652500001 37.334665579166675 +55 37.31793329375001 37.454431966666675 +60 37.43782681666668 37.566977983333345 +59 37.545760291666674 37.67614633333334 +60 37.65842979583334 37.77654782500001 +63 37.774571541666674 37.91173591666668 +60 37.893148541666676 38.023260166666674 +59 38.00653152916668 38.13768141666667 +60 38.11717360416667 38.254300891666674 +55 38.23338454166667 38.37149391666668 +60 38.35569464791668 38.485806272916676 +59 38.46536016041668 38.597383616666676 +60 38.575025672916674 38.69738363333334 +66 38.69840404166668 38.84560945833334 +60 38.82501337083335 38.95446544166668 +59 38.939705308333345 39.07004566666667 +60 39.05149097916667 39.18820972916667 +57 39.16672535416667 39.302599204166675 +60 39.28098316666667 39.412149716666676 +59 39.394359462500006 39.52696423958334 +60 39.50578263333334 39.627574020833336 +66 39.630583104166675 39.765747110416676 +60 39.744840916666675 39.871342779166675 +59 39.857804872916674 39.985774079166674 +60 39.966318829166674 40.102505579166674 +57 40.08110480416667 40.216380285416676 +60 40.198722279166674 40.32883390416667 +59 40.31117589791667 40.443286031250004 +60 40.418053304166676 40.53983077083333 +67 40.53983077083333 40.685709854166674 +60 40.67132135416667 40.797220729166675 +59 40.778335822916674 40.905778304166674 +60 40.884451010416676 41.02056427916668 +62 41.00013626666667 41.13511765416668 +60 41.11784052916668 41.244719202083346 +59 41.228414839583344 41.357721172916676 +60 41.336204791666674 41.45907191666668 +67 41.45805150833334 41.597312408333345 +60 41.58003966666668 41.707312500000015 +59 41.69003975833335 41.819391022916676 +60 41.80023779583335 41.94050723333334 +62 41.92112740000001 42.05591452916667 +60 42.036397785416675 42.16650941041667 +59 42.14792203541668 42.279771979166675 +60 42.260541208333336 42.381950700000004 +68 42.38293884166667 42.51923488541667 +60 42.49657513333334 42.62265222916667 +59 42.60736444791667 42.734727741666674 +60 42.714378916666675 42.850578250000005 +62 42.829688925000006 42.96783792291668 +60 42.94818788333334 43.078432804166674 +59 43.064492272916674 43.195601954166676 +60 43.17136967916668 43.28801439166667 +68 43.289959916666675 43.42598925000001 +60 43.40852603333334 43.53720236666667 +59 43.5169818 43.64689570625001 +60 43.62917916875001 43.76705614166667 +62 43.74532091458334 43.88247474166668 +60 43.86389402500001 43.99358574166668 +59 43.974141316666675 44.10539685416668 +60 44.08913668750001 44.21124840000001 +53 44.580431416666684 44.714531000000015 +56 44.69537391666668 44.82947350000002 +53 44.81031641666669 44.94441600000002 +52 44.925258916666685 45.059358500000016 +53 45.04020141666668 45.174301000000014 +59 45.15514391666668 45.28924350000002 +53 45.270086416666686 45.404560166666684 +62 45.385028916666684 45.521747666666684 +59 45.502216416666684 45.638935166666684 +56 45.619403916666684 45.756122666666684 +53 45.736591416666684 45.873310166666684 +52 45.853778916666684 45.990497666666684 +53 45.970966416666684 46.088153916666684 +55 46.45124991666668 46.585349500000014 +60 46.56619241666668 46.70029200000002 +55 46.681134916666686 46.81523450000002 +54 46.796077416666684 46.930177000000015 +55 46.91101991666668 47.04511950000001 +63 47.02596241666668 47.16006200000002 +60 47.140904916666685 47.27530266666668 +67 47.25584741666668 47.39203416666668 +63 47.37257891666668 47.50876566666668 +60 47.48931041666668 47.62549716666668 +56 47.60604191666668 47.74222866666668 +55 47.72277341666668 47.858960166666684 +56 47.839504916666684 47.956236416666684 +60 48.30653987500001 48.44012758333335 +63 48.42104362500002 48.55463133333335 +60 48.535547375000014 48.66913508333335 +59 48.65005112500002 48.78363883333335 +60 48.764554875000016 48.898142583333346 +66 48.87905862500001 49.01264633333335 +60 48.99356237500002 49.12715008333335 +69 49.108066125000015 49.24165383333335 +66 49.22256987500002 49.35615758333335 +63 49.337073625000016 49.47066133333335 +60 49.451577375000014 49.58516508333335 +59 49.56608112500002 49.69966883333335 +60 49.680584875000015 49.79508862500001 +74 49.892491125000014 50.00612737500001 +72 49.989893625000015 50.103529875000014 +74 50.087296125000016 50.200521416666675 +75 50.18469862500001 50.29545816666668 +72 50.27963537500001 50.39039491666668 +71 50.37457212500001 50.485331666666674 +72 50.46950887500001 50.58026841666668 +69 50.56444562500001 50.67520516666668 +72 50.65938237500001 50.770141916666674 +71 50.75431912500001 50.865078666666676 +72 50.84925587500001 50.95976895833335 +74 50.944192625000014 51.05322695833335 +71 51.03765062500001 51.146684958333346 +69 51.13110862500001 51.24112291666668 +71 51.224566625000016 51.32390437500001 +67 51.32390437500001 51.44073716666668 +71 51.424914375000014 51.53567391666668 +69 51.51985112500002 51.63061066666668 +71 51.61478787500001 51.72525258333335 +72 51.709724625000014 51.81842033333335 +69 51.80289237500001 51.91158808333335 +67 51.89606012500001 52.00475583333335 +69 51.98922787500001 52.08514166666668 +66 52.08514166666668 52.195901208333346 +69 52.18007841666668 52.29083795833335 +67 52.27501516666668 52.385774708333344 +69 52.36995191666668 52.48046500000002 +71 52.46488866666668 52.573923000000015 +67 52.55834666666668 52.66738100000001 +66 52.65180466666668 52.76192933333335 +67 52.74526266666668 52.845262666666684 +62 52.845262666666684 52.964841791666686 +79 52.94906891666668 53.059479041666684 +77 53.04370616666668 53.15411629166668 +79 53.138343416666686 53.24855700000002 +80 53.232980666666684 53.34201500000002 +77 53.32643866666668 53.435473000000016 +75 53.41989666666668 53.52948370833335 +77 53.513354666666686 53.61012891666669 +74 53.61012891666669 53.72053904166669 +77 53.70476616666669 53.81517629166669 +75 53.79940341666669 53.909813541666686 +77 53.89404066666669 54.00430291666669 +79 53.98867791666669 54.09805291666669 +75 54.08242791666669 54.19180291666669 +74 54.17617791666669 54.286484208333356 +75 54.26992791666669 54.369265666666685 +72 54.369265666666685 54.48498891666669 +75 54.469265666666686 54.579328416666684 +74 54.56360516666668 54.67366791666669 +75 54.65794466666669 54.76786050000002 +77 54.75228416666668 54.86131850000002 +74 54.84574216666668 54.954776500000015 +72 54.93920016666668 55.04878720833335 +74 55.032658166666685 55.12943241666669 +71 55.12943241666669 55.23984254166669 +74 55.224069666666686 55.33447979166669 +72 55.31870691666669 55.429117041666686 +74 55.41334416666669 55.52355775000002 +75 55.50798141666669 55.61701575000002 +72 55.601439416666686 55.71047375000002 +71 55.694897416666684 55.805022083333355 +72 55.78835541666669 55.88835541666669 +67 55.88835541666669 56.00607604166669 +72 55.99005041666669 56.10222979166669 +71 56.08620416666669 56.19838354166669 +72 56.18235791666669 56.29443525000002 +68 56.27851166666669 56.389976750000024 +77 56.37405316666669 56.48551825000002 +75 56.46959466666669 56.58136991666669 +77 56.56513616666669 56.66253866666669 +67 56.66253866666669 56.77471804166669 +75 56.75869241666669 56.870871791666694 +74 56.85484616666669 56.96702554166669 +75 56.95099991666669 57.06307725000002 +65 57.04715366666669 57.158618750000024 +74 57.14269516666669 57.25416025000002 +72 57.23823666666669 57.35011804166669 +74 57.33377816666669 57.43181741666669 +63 57.43181741666669 57.54619654166669 +72 57.52985666666669 57.64423579166669 +71 57.62789591666669 57.74227504166669 +72 57.72593516666669 57.84031429166669 +68 57.82397441666669 57.93835354166669 +65 57.92201366666669 58.03639279166669 +63 58.02005291666669 58.13443204166669 +65 58.11809216666669 58.21613141666669 +67 58.21613141666669 58.33723870833336 +63 58.31993766666669 58.44104495833336 +62 58.423743916666695 58.544851208333355 +63 58.52755016666669 58.64980658333336 +65 58.63135641666669 58.76050758333336 +62 58.74205741666669 58.871208583333356 +60 58.85275841666669 58.981909583333355 +62 58.963459416666694 59.07416041666669 +64 59.320062041666695 60.303668541666696 +60 59.25858663541669 60.54957016666669 +60 60.303668541666696 60.54957016666669 +62 60.54957016666669 60.79547179166669 +64 60.79547179166669 61.041373416666694 +65 61.041373416666694 61.164324229166695 +67 61.164324229166695 61.287275041666696 +68 61.287275041666696 61.4102258541667 +70 61.4102258541667 61.53317666666669 +72 61.53317666666669 61.65612747916669 +70 61.65612747916669 61.77907829166669 +68 61.77907829166669 61.902029104166694 +67 61.902029104166694 62.024979916666695 +65 62.024979916666695 62.51678316666669 +67 62.51678316666669 62.76268479166669 +64 62.76268479166669 63.008586416666695 +65 63.25448804166669 63.33645525000003 +64 63.33645525000003 63.41842245833336 +65 63.41842245833336 64.2380945416667 +67 64.2380945416667 64.4839961666667 +65 64.4839961666667 64.72989779166669 +64 64.72989779166669 64.97579941666669 +60 63.19301263541669 64.97579941666669 +65 64.97579941666669 65.22170104166669 +67 65.22170104166669 65.46760266666669 +68 65.46760266666669 65.7135042916667 +67 65.7135042916667 65.9594059166667 +65 65.9594059166667 66.08235672916669 +63 66.08235672916669 66.2053075416667 +62 66.2053075416667 66.32825835416669 +63 66.32825835416669 66.4512091666667 +65 66.4512091666667 66.5741599791667 +62 66.5741599791667 66.69711079166669 +63 66.69711079166669 66.8200616041667 +65 66.8200616041667 66.94301241666669 +59 66.94301241666669 67.2852179166667 +50 67.2852179166667 67.41708000000001 +53 67.39928641666668 67.52384150000002 +56 67.50604791666669 67.63060300000002 +55 67.61280941666668 67.73736450000001 +53 67.71957091666668 67.84412600000002 +59 67.82633241666669 67.95088750000002 +53 67.93309391666668 68.05764900000001 +62 68.03985541666668 68.16441050000002 +53 68.14661691666669 68.27098404166668 +59 68.25337841666668 68.37661779166667 +56 68.35901216666667 68.48225154166668 +55 68.46464591666668 68.58846150000001 +53 68.57027966666668 68.67937066666668 +52 68.67937066666668 68.8135067916667 +61 68.79564966666669 68.92064954166669 +58 68.90279241666668 69.02779229166669 +55 69.0099351666667 69.1346817916667 +60 69.1169512916667 69.2410647916667 +56 69.2233342916667 69.3474477916667 +53 69.3297172916667 69.45415083333336 +56 69.43610029166669 69.5622606666667 +55 69.5444035416667 69.6694034166667 +58 69.65154629166669 69.7761715416667 +55 69.7586890416667 69.88183220833336 +52 69.8635840416667 69.99166041666669 +56 69.9730730416667 70.1024544166667 +53 70.0845972916667 70.20922254166669 +50 70.19174004166669 70.31488320833336 +53 70.29663504166669 70.42437220833335 +52 70.40612404166669 70.5334701666667 +55 70.5156130416667 70.64023829166669 +52 70.62275579166669 70.74596579166669 +48 70.72765079166669 70.85539791666669 +53 70.83754079166668 70.96254066666668 +50 70.94468354166668 71.06924787500002 +47 71.05182629166669 71.17460395833335 +50 71.15635579166668 71.26584479166668 +50 71.59725229166669 71.72270045833335 +52 71.70477929166668 71.83022745833335 +55 71.81230629166669 71.93775445833336 +58 71.91983329166669 72.04528145833335 +55 72.02736029166668 72.15320229166669 +56 72.13488729166669 72.26309229166668 +60 72.24477729166668 72.37389804166669 +65 72.35466729166669 72.48928254166668 +62 72.47005179166669 72.60698800000002 +65 72.58543629166668 72.73629825000002 +68 72.71474654166668 72.86775345833335 +72 72.84405679166669 73.00993345833335 +71 72.98623679166668 73.15573920833336 +72 73.1284167916667 73.32265433333336 +67 73.29235129166669 73.50728212500003 +65 73.4741695416667 73.75221012500002 +62 73.67284504166669 74.24903554166669 +64 74.14903554166669 75.94903554166669 +track Piano left +48 0.003061225 0.13923205 +55 0.12043504999999999 0.25201405 +53 0.23227719999999996 0.36500487499999995 +55 0.345163625 0.48379561666666665 +51 0.4632073916666667 0.5996853125 +55 0.579874 0.7119494166666667 +53 0.6959116875 0.8291064375 +55 0.8053456041666667 0.9243444375000001 +48 0.9283729375 1.0683295708333334 +55 1.0457818541666666 1.1769437541666667 +53 1.1582171708333333 1.2899954875000001 +55 1.2724857625000001 1.4088327250000001 +51 1.391185675 1.52657496875 +55 1.503930716666667 1.6299923125000002 +53 1.6120066875 1.7400116875000002 +55 1.7227352604166668 1.8446623125000001 +48 1.8436702500000002 1.981585666666667 +56 1.9607336250000003 2.092906375 +55 2.074981854166667 2.2076152375 +56 2.1920510375 2.3285020479166665 +53 2.3048914875 2.44183165 +56 2.422005995833333 2.5536738 +55 2.5348767999999997 2.6673956249999997 +56 2.6525146874999996 2.77153875625 +48 2.7666018749999997 2.903806525 +56 2.884727745833333 3.017875025 +55 2.998863608333333 3.13290555 +56 3.1148332499999998 3.254546 +53 3.2381998624999997 3.3723162999999996 +56 3.3506997499999995 3.4822787499999994 +55 3.4634817499999997 3.596425041666666 +56 3.5792879437499994 3.7001842562499996 +48 3.7001842562499996 3.836796964583333 +56 3.816274585416666 3.9468715437499995 +55 3.9300805062499995 4.061860047916666 +56 4.041190754166666 4.178486325 +53 4.1573325 4.291443583333334 +56 4.2717554625 4.402866754166666 +55 4.383203841666667 4.515014125 +56 4.4984125625 4.615611641666667 +48 4.6175879250000005 4.754736070833334 +56 4.733200500000001 4.8642865833333335 +55 4.844623670833334 4.976768687500001 +56 4.958911562500001 5.097395012500001 +53 5.075974937500001 5.211555650000001 +56 5.195578200000001 5.327157200000001 +55 5.309300050000001 5.442447985416668 +56 5.419262500000001 5.540230250000001 +48 5.543368325000001 5.686970941666669 +51 5.663661200000002 5.7930594000000015 +50 5.779221775000002 5.909616187500002 +51 5.888131812500002 6.025259100000002 +55 6.006334783333335 6.143507587500002 +51 6.124757606250002 6.249624525000002 +50 6.229221787500002 6.354968625000002 +51 6.336503975000002 6.453601437500002 +48 6.454578000000002 6.593096500000002 +51 6.572578000000003 6.702355650000002 +50 6.685689000000003 6.817125208333336 +51 6.794948150000002 6.936679550000004 +55 6.91974726666667 7.057862793750004 +51 7.041071756250004 7.17082284166667 +50 7.14834782916667 7.276727837500003 +51 7.2598502041666695 7.386468670833337 +48 7.38539571041667 7.532889312500004 +60 7.51496479166667 7.647040208333337 +58 7.6281722916666705 7.761760208333337 +60 7.740505145833337 7.881701475000004 +56 7.862926783333338 8.000126741666671 +60 7.97755121666667 8.108740925000005 +58 8.093759658333337 8.22660422916667 +60 8.206279020833337 8.327705825000004 +48 8.327705825000004 8.465990500000004 +60 8.443243758333336 8.57542441666667 +58 8.56127347916667 8.694288589583337 +60 8.672635043750002 8.81051201666667 +56 8.791737325000003 8.92878415416667 +60 8.906361758333338 9.036590929166671 +58 9.02079166041667 9.152641604166671 +60 9.134422979166672 9.255880479166672 +48 9.250819750000005 9.396529816666671 +57 9.378856289583338 9.508153325000004 +55 9.488780650000004 9.61947182916667 +57 9.604350860416671 9.74529441666667 +54 9.72329441666667 9.86131617291667 +57 9.84129441666667 9.96795443541667 +55 9.95366873541667 10.08059385416667 +57 10.05813291666667 10.17532041666667 +48 10.17732041666667 10.312065983333337 +57 10.29088016666667 10.419602633333335 +55 10.400301183333337 10.52987526666667 +57 10.511514300000004 10.647123258333336 +54 10.629681408333335 10.764082341666668 +57 10.747718691666668 10.874991525000002 +55 10.852264233333335 10.98117341666667 +57 10.966173416666669 11.086311491666669 +46 11.083173416666668 11.227011416666667 +58 11.206604366666667 11.335069916666667 +57 11.320417916666667 11.450564783333334 +58 11.427560666666666 11.567298166666669 +55 11.551854166666669 11.685928100000002 +58 11.666626650000003 11.795302983333336 +57 11.777839766666668 11.908014214583336 +58 11.884457300000003 12.002502414583335 +46 12.003486666666669 12.139056500000002 +58 12.118721041666669 12.24751226666667 +57 12.232806400000003 12.362579983333335 +58 12.339423933333336 12.474983016666668 +55 12.457541166666669 12.591677291666668 +58 12.572851175000002 12.697927185416667 +57 12.683641485416668 12.811291152083335 +58 12.786319954166668 12.907057287500002 +46 12.908065352083335 13.046037685416668 +55 13.028073416666668 13.153180435416667 +53 13.135323310416668 13.261769758333335 +55 13.241573204166668 13.37728496666667 +52 13.360618308333336 13.496729341666668 +55 13.480062691666669 13.609692191666669 +53 13.591173691666668 13.72196785416667 +55 13.698580991666669 13.81571785416667 +46 13.81861749166667 13.952151900000002 +55 13.932991325000001 14.06072849166667 +53 14.042480325000001 14.171405741666668 +55 14.153963891666669 14.289536666666669 +52 14.267335916666669 14.401480916666669 +55 14.38591316666667 14.51411816666667 +53 14.49397166666667 14.62403026666667 +55 14.60111441666667 14.721419883333336 +44 14.724505502083337 14.87211084166667 +56 14.853660675000004 14.98281184166667 +55 14.96343916666667 15.093520000000003 +56 15.07704714166667 15.212705975000002 +53 15.191388158333336 15.32599961666667 +56 15.307617283333336 15.436293616666669 +55 15.417911283333336 15.548370516666669 +56 15.526367050000003 15.646764150000001 +44 15.647768166666669 15.786768666666669 +56 15.768250166666668 15.897879666666668 +55 15.877509316666668 16.00805029166667 +56 15.992425291666668 16.12914404166667 +53 16.10668310416667 16.241995181250005 +56 16.22289404166667 16.34939590416667 +55 16.33315041666667 16.462029791666673 +56 16.442482472916673 16.565988002083337 +44 16.56285280416667 16.71076476666667 +50 16.693143081250003 16.821977883333336 +48 16.802676433333335 16.93225051666667 +50 16.915777658333337 17.051279954166667 +53 17.031087666666668 17.165198750000002 +50 17.147408495833336 17.27849457916667 +48 17.260704325000003 17.39259194166667 +50 17.37119116666667 17.48792266666667 +44 17.48986819166667 17.62533086666667 +50 17.60465416666667 17.73623316666667 +48 17.72025571666667 17.852418916666668 +50 17.83118341666667 17.966240454166666 +53 17.945082916666667 18.079156539583334 +50 18.064231172916667 18.194828131250002 +48 18.176171422916667 18.307599975000002 +50 18.28531316666667 18.401592166666667 +43 18.404756722916666 18.549549897916666 +51 18.527119564583334 18.657356672916666 +50 18.642486772916666 18.773683854166666 +51 18.752199479166666 18.888998641666667 +55 18.868410416666666 19.004644791666667 +51 18.98698678541667 19.117098410416666 +50 19.099440404166668 19.23059029166667 +51 19.207247179166668 19.32434029166667 +43 19.32531685416667 19.46203560416667 +51 19.44250435416667 19.57485431666667 +50 19.55699716666667 19.689310416666668 +51 19.672708854166668 19.809082029166667 +55 19.78888974166667 19.92302786666667 +51 19.90423086666667 20.035809866666668 +50 20.01795271666667 20.151007550000003 +51 20.127915166666668 20.248397166666667 +48 20.248397166666667 20.396294791666666 +51 20.380495522916668 20.510607147916666 +50 20.48830229791667 20.619383358333334 +51 20.600755916666667 20.73801075 +56 20.719383308333335 20.855786766666668 +51 20.836049916666667 20.967628916666666 +50 20.950711616666666 21.083182533333332 +51 21.0635747 21.181229420833333 +48 21.181229420833333 21.318283725 +51 21.299272308333336 21.432352225000002 +50 21.409538525000002 21.54308629166667 +51 21.524557595833336 21.66096487916667 +56 21.64171910416667 21.77516651041667 +51 21.75987872916667 21.88577810416667 +50 21.86869176041667 21.99757021041667 +51 21.97390766666667 22.097196458333336 +50 22.098260287500004 22.243946883333336 +53 22.222728300000004 22.350310608333338 +51 22.336674233333337 22.465411495833333 +53 22.44212886666667 22.578180300000003 +56 22.560738450000002 22.695279208333332 +53 22.676964208333334 22.805169208333332 +51 22.785938458333334 22.915208291666666 +53 22.89776644166667 23.014068241666667 +50 23.010169475 23.146608383333334 +53 23.127793675 23.258967883333334 +51 23.2402413 23.371983183333334 +53 23.3526008 23.488783083333335 +56 23.471204958333335 23.606842625000002 +53 23.587415895833335 23.71662111666667 +51 23.700938475 23.832428195833337 +53 23.80794944166667 23.931193595833335 +51 23.933251208333335 24.080456625000004 +55 24.0598605375 24.189312608333335 +53 24.174552475000002 24.30558587916667 +55 24.285424587500003 24.425944825000002 +56 24.403368143750004 24.539486425000003 +55 24.52386144166667 24.652537775000003 +53 24.633236325000002 24.763444520833335 +55 24.743603270833336 24.862646850000004 +51 24.862646850000004 24.999326633333336 +55 24.978259425000005 25.105690358333334 +53 25.090235800000002 25.219005933333335 +55 25.196599525000003 25.333921833333335 +56 25.319040895833336 25.45602131666667 +55 25.435112208333337 25.56238504166667 +53 25.546930483333337 25.676479693750004 +55 25.6553103375 25.7764264625 +51 25.775344210416666 25.922815470833335 +57 25.905911566666667 26.03046665 +55 26.012673066666668 26.139055983333332 +57 26.117655208333332 26.232441183333332 +53 26.234386708333332 26.36901370833333 +57 26.34828620833333 26.47991600833333 +55 26.46487840833333 26.59726508333333 +57 26.57484085833333 26.69199164583333 +51 26.69101508333333 26.82688434583333 +57 26.80917914583333 26.93933796458333 +55 26.92353869583333 27.05443970833333 +57 27.03227483958333 27.14613845833333 +53 27.14806895833333 27.282588081249997 +57 27.264864208333332 27.395461166666667 +55 27.3749387875 27.507494708333333 +57 27.488744708333332 27.613744708333332 +50 27.614865785416665 27.76750470833333 +53 27.749189708333333 27.87739470833333 +51 27.859995458333334 27.989454733333332 +53 27.968053958333332 28.104165291666664 +56 28.084785458333332 28.219791041666664 +53 28.20387344583333 28.334959529166664 +51 28.31623294583333 28.44944600208333 +53 28.426812264583333 28.550269014583332 +50 28.552326627083332 28.693993233333334 +53 28.670639345833333 28.80047460833333 +51 28.784733883333335 28.91526778333333 +53 28.89782593333333 29.03339870833333 +56 29.01119795833333 29.14501358333333 +53 29.12606270833333 29.25202805208333 +51 29.234042427083327 29.36248356666666 +53 29.34105689583333 29.46475634166666 +48 29.46790941458333 29.616629883333328 +53 29.59725720833333 29.726408374999995 +52 29.706113191666663 29.83610105833333 +53 29.816814191666662 29.95238005833333 +56 29.934938208333328 30.06980458333333 +53 30.054005314583332 30.18411693958333 +52 30.16552956458333 30.296992966666664 +53 30.27426570833333 30.39284270833333 +48 30.39479583333333 30.53070690833333 +53 30.51097005833333 30.64254905833333 +52 30.62469190833333 30.757247754166663 +53 30.73854696458333 30.87625346666666 +56 30.854684849999995 30.99108830833333 +53 30.972291308333332 31.10387030833333 +52 31.08225375833333 31.215282808333328 +53 31.198956274999997 31.321528962499997 +48 31.31936445833333 31.46754970833333 +51 31.45015045833333 31.578355458333327 +50 31.56004045833333 31.689206995833327 +51 31.66997624583333 31.80506850208333 +53 31.786367712499995 31.922730024999996 +51 31.904347691666665 32.033024024999996 +50 32.01280345833333 32.143422666666666 +51 32.121259224999996 32.2430161875 +46 32.244032447916666 32.38483346666667 +51 32.36749770833334 32.49523487500001 +50 32.47607430000001 32.60481545833334 +51 32.58840620833334 32.72354120833334 +53 32.70230570833334 32.83679241666667 +51 32.82093421458334 32.95153117291667 +50 32.9282102875 33.06030889583334 +51 33.04404872916667 33.166095116666675 +44 33.16503128750001 33.310243983333336 +48 33.29428653333334 33.41840003333334 +47 33.39712343333334 33.52445313333334 +48 33.50701128333334 33.64307226666667 +50 33.625285716666674 33.76211598333334 +48 33.74274330833334 33.871894475000005 +47 33.854366816666676 33.98493808958334 +48 33.96137778333334 34.07942628958334 +44 34.08336329791667 34.21989627291667 +48 34.200379529166675 34.33049115416667 +47 34.31283314791667 34.44403022916667 +48 34.42449897916667 34.56121772916667 +50 34.54168647916667 34.677399506250005 +48 34.65687712708334 34.78747408541667 +47 34.766951706250005 34.899291993750005 +48 34.88084938125 35.00386724375001 +45 35.001750952083334 35.15092780625 +51 35.13268808958334 35.25923105625 +50 35.243888095833334 35.372835275 +51 35.35242710833333 35.49466066666667 +48 35.47181488333333 35.60928204166667 +51 35.59371429166667 35.72191929166667 +50 35.70177279166667 35.83207095833334 +51 35.80983129166667 35.932070975 +45 35.936144312500005 36.07620954166668 +51 36.058810291666674 36.187015291666675 +50 36.164121541666674 36.29335276666667 +51 36.27492729166668 36.41105702916668 +48 36.393547304166674 36.528327797916674 +51 36.509306041666676 36.63611775000001 +50 36.61981338750001 36.749331279166675 +51 36.72579174375001 36.84912548541667 +43 36.85229104583334 36.99865472500001 +51 36.98112706666668 37.11027823333335 +50 37.08721552500001 37.217339666666675 +51 37.200738104166675 37.33761833541667 +53 37.318917545833344 37.45535447500001 +51 37.43407503958334 37.56328795000001 +50 37.54391527500001 37.67417782916667 +51 37.65553878333334 37.77358728958334 +43 37.77654782500001 37.91359465416667 +51 37.89593664791668 38.026048272916675 +50 38.00560216041668 38.13670485416667 +51 38.11619704166667 38.253304875000005 +53 38.235376575000004 38.37335265416667 +51 38.35191052500001 38.482088797916674 +50 38.46536016041668 38.597383616666676 +51 38.575025672916674 38.69738363333334 +43 38.69738363333334 38.84468695000001 +51 38.82992681666668 38.959077983333344 +50 38.93693778333334 39.06711597916667 +51 39.04671627500001 39.18332691666667 +48 39.16770191666667 39.30353553333334 +51 39.28098316666667 39.412149716666676 +50 39.393423133333336 39.52594797916667 +51 39.50578263333334 39.627574020833336 +43 39.629606541666675 39.76484458333334 +51 39.74769656875001 39.874050360416675 +50 39.855097291666674 39.98285579166667 +51 39.96340054166667 40.09958729166667 +48 40.08013204166667 40.215450916666676 +51 40.19491801666667 40.32511642916667 +50 40.309317160416676 40.44125351041667 +51 40.4219445625 40.54399095000001 +43 40.54186329166667 40.687508416666674 +51 40.67042207291667 40.796321447916675 +50 40.78013438541667 40.90772382916668 +51 40.886323054166674 41.022509804166674 +53 41.003054554166674 41.137835047916674 +51 41.11686776666667 41.24381340416667 +50 41.22750904166668 41.35669658333334 +51 41.33529899375001 41.45805150833334 +43 41.45907191666668 41.598221500000015 +51 41.58276694166668 41.71003977500001 +50 41.68913066666668 41.818382958333345 +51 41.79640348333334 41.93663126666667 +53 41.92015840833334 42.05498516041668 +51 42.037327154166675 42.16743877916667 +50 42.14885140416668 42.280784125000004 +51 42.26155335416667 42.38293884166667 +43 42.38293884166667 42.51923488541667 +51 42.497563275000005 42.623551510416675 +50 42.60916301041667 42.73666572500001 +51 42.71534790833334 42.851574266666674 +53 42.832649950000004 42.970626029166674 +51 42.95203865416668 43.082150279166676 +50 43.06356290416668 43.19462919166667 +51 43.176146704166676 43.29290109166667 +43 43.29290109166667 43.428746600000004 +51 43.410364266666676 43.53904060000001 +50 43.51882003333334 43.64886421041667 +51 43.62819491666667 43.766068000000004 +53 43.744336662500004 43.88154881666667 +51 43.864882166666675 43.994511666666675 +50 43.97784501666668 44.10946189583334 +51 44.08710416666668 44.20905541666668 +43 44.20905541666668 44.361295583333344 +47 44.34063441666668 44.483906416666684 +50 44.46460141666668 44.59958850000002 +43 46.088153916666684 46.232796458333354 +48 46.212635166666686 46.35321075000002 +51 46.333602916666685 46.470407000000016 +43 47.956236416666684 48.09513404166668 +45 48.07552620833335 48.21112008333335 +54 48.192036125000016 48.325623833333346 +43 49.79508862500001 51.424914375000014 +62 51.424914375000014 51.53567391666668 +60 51.51985112500002 51.63061066666668 +62 51.61478787500001 51.72525258333335 +63 51.709724625000014 51.81842033333335 +60 51.80289237500001 51.91158808333335 +59 51.89606012500001 52.00475583333335 +60 51.98922787500001 52.08514166666668 +57 52.08514166666668 52.195901208333346 +60 52.18007841666668 52.29083795833335 +59 52.27501516666668 52.385774708333344 +60 52.36995191666668 52.48046500000002 +62 52.46488866666668 52.573923000000015 +59 52.55834666666668 52.66738100000001 +57 52.65180466666668 52.76192933333335 +59 52.74526266666668 52.845262666666684 +55 52.845262666666684 52.964841791666686 +59 52.94906891666668 53.059479041666684 +57 53.04370616666668 53.15411629166668 +59 53.138343416666686 53.24855700000002 +60 53.232980666666684 53.34201500000002 +56 53.32643866666668 53.435473000000016 +55 53.41989666666668 53.52948370833335 +56 53.513354666666686 53.61012891666669 +53 53.61012891666669 53.72053904166669 +57 53.70476616666669 53.81517629166669 +55 53.79940341666669 53.909813541666686 +57 53.89404066666669 54.00430291666669 +59 53.98867791666669 54.09805291666669 +55 54.08242791666669 54.19180291666669 +53 54.17617791666669 54.286484208333356 +55 54.26992791666669 54.369265666666685 +51 54.369265666666685 54.48498891666669 +67 54.469265666666686 54.579328416666684 +65 54.56360516666668 54.67366791666669 +67 54.65794466666669 54.76786050000002 +68 54.75228416666668 54.86131850000002 +65 54.84574216666668 54.954776500000015 +63 54.93920016666668 55.04878720833335 +65 55.032658166666685 55.12943241666669 +62 55.12943241666669 55.23984254166669 +65 55.224069666666686 55.33447979166669 +63 55.31870691666669 55.429117041666686 +65 55.41334416666669 55.52355775000002 +67 55.50798141666669 55.61701575000002 +63 55.601439416666686 55.71047375000002 +62 55.694897416666684 55.805022083333355 +63 55.78835541666669 55.88835541666669 +60 55.88835541666669 56.00607604166669 +63 55.99005041666669 56.10222979166669 +62 56.08620416666669 56.19838354166669 +63 56.18235791666669 56.29443525000002 +65 56.27851166666669 56.389976750000024 +62 56.37405316666669 56.48551825000002 +60 56.46959466666669 56.58136991666669 +62 56.56513616666669 56.66253866666669 +63 56.66253866666669 56.77471804166669 +60 56.75869241666669 56.870871791666694 +59 56.85484616666669 56.96702554166669 +60 56.95099991666669 57.06307725000002 +62 57.04715366666669 57.158618750000024 +59 57.14269516666669 57.25416025000002 +57 57.23823666666669 57.35011804166669 +59 57.33377816666669 57.43181741666669 +60 57.43181741666669 57.54619654166669 +63 57.52985666666669 57.64423579166669 +62 57.62789591666669 57.74227504166669 +63 57.72593516666669 57.84031429166669 +53 57.82397441666669 57.93835354166669 +62 57.92201366666669 58.03639279166669 +60 58.02005291666669 58.13443204166669 +62 58.11809216666669 58.21613141666669 +51 58.21613141666669 58.33723870833336 +60 58.31993766666669 58.44104495833336 +59 58.423743916666695 58.544851208333355 +60 58.52755016666669 58.64980658333336 +50 58.63135641666669 58.76050758333336 +59 58.74205741666669 58.871208583333356 +57 58.85275841666669 58.981909583333355 +59 58.963459416666694 59.07416041666669 +58 59.197111229166694 61.041373416666694 +55 59.13563582291669 61.041373416666694 +48 59.07416041666669 61.041373416666694 +56 63.131537229166696 64.97579941666669 +53 63.07006182291669 64.97579941666669 +48 63.008586416666695 64.97579941666669 +36 67.05708091666669 67.19016083333335 +47 67.1711494166667 68.67937066666668 +43 71.37778504166668 71.50764645833335 +48 71.48972529166669 75.94903554166669 +36 71.26584479166668 75.94903554166669 +track Fuga 1 +79 84.88704454166668 85.09379854166669 +78 85.09379854166669 85.30055254166669 +79 85.30055254166669 85.5073065416667 +72 85.71406054166668 86.12756854166669 +75 86.12756854166669 86.3343225416667 +79 86.54107654166668 86.74783054166669 +78 86.74783054166669 86.95458454166669 +79 86.95458454166669 87.1613385416667 +81 87.36809254166668 87.78160054166669 +74 87.78160054166669 87.9883545416667 +79 88.19510854166668 88.40186254166669 +78 88.40186254166669 88.60861654166669 +79 88.60861654166669 88.8153705416667 +81 89.02212454166668 89.43563254166669 +72 89.43563254166669 89.65016354166669 +74 89.65016354166669 89.8646945416667 +75 89.8646945416667 90.70726454166669 +74 90.70726454166669 90.91401854166669 +72 90.91401854166669 91.1207725416667 +70 91.1207725416667 91.3275265416667 +75 91.53428054166669 91.74103454166669 +74 91.74103454166669 91.9477885416667 +75 91.9477885416667 92.1545425416667 +67 92.36129654166669 92.7748045416667 +68 92.7748045416667 92.9815585416667 +77 93.18831254166669 93.3950665416667 +75 93.3950665416667 93.6018205416667 +77 93.6018205416667 93.8085745416667 +69 94.01532854166669 94.4288365416667 +70 94.4288365416667 94.6355905416667 +79 94.84234454166669 95.0490985416667 +77 95.0490985416667 95.2558525416667 +79 95.2558525416667 95.4626065416667 +71 95.66936054166669 96.0828685416667 +72 96.0828685416667 96.2896225416667 +74 96.49637654166669 96.7031305416667 +75 96.7031305416667 96.9098845416667 +77 96.9098845416667 98.15040854166669 +75 98.15040854166669 98.3571625416667 +74 98.3571625416667 98.5639165416667 +72 98.5639165416667 98.7706705416667 +70 98.7706705416667 98.9774245416667 +68 98.9774245416667 99.19334504166669 +67 99.19334504166669 99.4092655416667 +65 99.4092655416667 99.6160195416667 +80 99.82277354166669 100.2362815416667 +79 100.2362815416667 100.64978954166669 +77 100.64978954166669 101.0632975416667 +75 101.0632975416667 101.2700515416667 +74 101.47680554166669 101.8903135416667 +75 101.8903135416667 102.3038215416667 +77 102.3038215416667 102.7173295416667 +71 102.7173295416667 102.9318605416667 +72 103.1463915416667 103.5754535416667 +74 103.5754535416667 103.9889615416667 +71 103.9889615416667 104.4024695416667 +72 104.4024695416667 104.8159775416667 +79 104.8159775416667 105.0227315416667 +78 105.0227315416667 105.2294855416667 +79 105.2294855416667 105.43623954166671 +74 105.6429935416667 106.06672254166669 +75 106.06672254166669 106.9039595416667 +76 107.3174675416667 107.7465295416667 +77 107.7465295416667 107.9610605416667 +77 108.1755915416667 108.38234554166671 +76 108.38234554166671 108.5890995416667 +77 108.5890995416667 108.7958535416667 +72 109.0026075416667 109.4161155416667 +74 109.4161155416667 110.2431315416667 +74 110.6566395416667 111.08570154166671 +75 111.08570154166671 111.3002325416667 +75 111.51476354166671 111.72151754166671 +74 111.72151754166671 111.9282715416667 +75 111.9282715416667 112.1350255416667 +70 112.34177954166671 112.7552875416667 +72 112.7552875416667 112.96204154166671 +75 113.16879554166671 113.3793810416667 +74 113.3793810416667 113.58996654166671 +75 113.58996654166671 113.8005520416667 +77 114.01113754166671 114.43230854166671 +70 114.43230854166671 114.64289404166671 +75 114.85347954166672 115.06406504166671 +74 115.06406504166671 115.27465054166672 +75 115.27465054166672 115.6958215416667 +77 115.6958215416667 116.01169979166671 +68 116.1169925416667 116.3315235416667 +70 116.3315235416667 116.5460545416667 +72 116.5460545416667 117.39376004166671 +70 117.39376004166671 117.60308179166671 +68 117.60308179166671 117.81240354166671 +67 117.81240354166671 117.9170644166667 +63 118.02172529166671 118.23104704166671 +65 118.23104704166671 118.43780104166672 +67 118.43780104166672 118.6445550416667 +68 118.6445550416667 118.85130904166671 +70 118.85130904166671 119.05806304166671 +72 119.05806304166671 119.26481704166672 +74 119.26481704166672 119.4715710416667 +75 119.4715710416667 119.67832504166671 +74 119.67832504166671 119.88507904166671 +72 119.88507904166671 120.09183304166672 +74 120.09183304166672 120.2985870416667 +75 120.2985870416667 120.50534104166671 +77 120.50534104166671 120.71209504166671 +79 120.71209504166671 120.91884904166672 +81 120.91884904166672 121.12560304166671 +82 121.12560304166671 121.22898004166672 +65 121.33235704166671 121.53911104166671 +67 121.53911104166671 121.74586504166672 +68 121.74586504166672 121.95261904166671 +70 121.95261904166671 122.15937304166671 +72 122.15937304166671 122.36612704166672 +74 122.36612704166672 122.57288104166672 +76 122.57288104166672 122.77963504166671 +77 122.77963504166671 122.98638904166671 +75 122.98638904166671 123.19314304166672 +74 123.19314304166672 123.39989704166672 +75 123.39989704166672 123.60665104166671 +77 123.60665104166671 123.81340504166671 +79 123.81340504166671 124.02015904166672 +81 124.02015904166672 124.22691304166672 +83 124.22691304166672 124.43366704166671 +84 124.43366704166671 124.64042104166671 +83 124.84717504166672 125.05392904166672 +81 125.05392904166672 125.26068304166671 +79 125.26068304166671 125.46743704166671 +77 125.46743704166671 125.67419104166672 +75 125.67419104166672 125.8809450416667 +74 125.8809450416667 126.08769904166671 +72 126.08769904166671 126.29445304166671 +75 126.50120704166672 126.92764604166672 +74 126.92764604166672 127.35408504166672 +72 127.35408504166672 127.78052404166672 +70 127.78052404166672 127.99374354166672 +69 128.2069630416667 128.63340204166673 +70 128.63340204166673 129.05984104166672 +72 129.05984104166672 129.3796702916667 +66 129.48628004166673 129.92106254166674 +67 129.92106254166674 130.35584504166673 +69 130.35584504166673 130.78749954166673 +66 130.78749954166673 131.21656154166672 +67 131.21656154166672 131.43109254166674 +74 131.64562354166674 131.85237754166673 +72 131.85237754166673 132.05913154166674 +74 132.05913154166674 132.47263954166672 +76 133.31498154166673 133.52173554166671 +74 133.52173554166671 133.72848954166673 +76 133.72848954166673 134.1419975416667 +78 134.99487554166672 135.2016295416667 +76 135.2016295416667 135.40838354166672 +78 135.40838354166672 135.8218915416667 +67 136.6642335416667 136.8709875416667 +65 136.8709875416667 137.0777415416667 +67 137.0777415416667 137.2844955416667 +69 138.3285365416667 138.53529054166668 +67 138.53529054166668 138.7420445416667 +69 138.7420445416667 138.9487985416667 +71 139.9825685416667 140.18932254166668 +69 140.18932254166668 140.3960765416667 +71 140.3960765416667 140.6028305416667 +72 141.65704254166667 141.86379654166666 +71 141.86379654166666 142.07055054166668 +72 142.07055054166668 142.27730454166667 +67 142.48405854166666 142.89756654166666 +68 142.89756654166666 143.10432054166668 +72 143.31107454166667 143.51782854166666 +71 143.51782854166666 143.72458254166668 +72 143.72458254166668 143.93133654166667 +74 144.13809054166666 144.56452954166664 +67 144.56452954166664 144.77774904166665 +72 144.99096854166666 145.19772254166665 +71 145.19772254166665 145.40447654166667 +72 145.40447654166667 145.61123054166666 +74 145.81798454166665 146.02473854166666 +65 146.23149254166665 146.44207804166666 +67 146.44207804166666 146.65266354166664 +68 146.65266354166664 147.48734254166666 +67 147.48734254166666 147.69409654166665 +65 147.69409654166665 147.90085054166664 +63 147.90085054166664 148.10760454166666 +72 148.31435854166665 148.52111254166667 +71 148.52111254166667 148.72786654166666 +72 148.72786654166666 148.94108604166667 +67 149.15430554166664 149.56781354166665 +68 149.56781354166665 150.39482954166664 +69 150.80833754166665 151.22184554166665 +70 151.22184554166665 151.42859954166664 +70 151.63535354166663 151.84210754166665 +69 151.84210754166665 152.04886154166664 +70 152.04886154166664 152.26208104166665 +65 152.47530054166663 152.88880854166663 +67 152.88880854166663 153.71582454166662 +67 154.12933254166663 154.9563485416666 +68 154.9563485416666 155.16310254166663 +70 155.16310254166663 155.36985654166662 +72 155.36985654166662 155.57661054166664 +71 155.57661054166664 155.78336454166663 +72 155.78336454166663 155.99011854166662 +68 155.99011854166662 156.19687254166664 +65 156.19687254166664 158.26441254166662 +74 158.26441254166662 158.47116654166663 +72 158.47116654166663 158.67792054166662 +74 158.67792054166662 158.88467454166664 +65 159.09142854166663 159.52049054166662 +63 159.52049054166662 159.7272445416666 +75 159.93399854166663 160.14075254166661 +74 160.14075254166661 160.3475065416666 +75 160.3475065416666 160.55426054166662 +67 160.7610145416666 161.17452254166662 +65 161.17452254166662 161.3812765416666 +77 161.58803054166663 161.79478454166662 +75 161.79478454166662 162.0015385416666 +77 162.0015385416666 162.20829254166662 +68 162.4150465416666 162.82855454166662 +67 162.82855454166662 162.93193154166661 +77 163.0353085416666 163.24206254166663 +75 163.24206254166663 163.44881654166662 +74 163.44881654166662 163.6555705416666 +72 163.6555705416666 163.86232454166662 +71 163.86232454166662 164.0690785416666 +69 164.0690785416666 164.27583254166663 +67 164.27583254166663 164.48258654166662 +72 164.48258654166662 164.70124554166662 +77 164.91990454166663 165.35722254166663 +75 165.35722254166663 165.7945405416666 +74 165.7945405416666 166.2318585416666 +68 166.69922104166662 167.15109654166662 +67 167.15109654166662 167.62480554166663 +65 167.62480554166663 168.09851454166662 +67 168.09851454166662 168.34751854166663 +65 168.59652254166662 168.8530642916666 +63 168.8530642916666 169.1096060416666 +65 169.1096060416666 169.3661477916666 +62 169.6226895416666 170.1774230416666 +68 170.1774230416666 170.7866840416666 +67 170.7866840416666 171.3959450416666 +69 172.0052060416666 172.6144670416666 +71 172.6144670416666 173.2237280416666 +72 173.2237280416666 173.8329890416666 +65 173.8329890416666 174.14895220833327 +63 174.14895220833327 174.4749697916666 +62 174.4749697916666 174.81172274999992 +60 174.81172274999992 175.24375049999992 +72 175.83187049999992 176.09632749999992 +71 176.09632749999992 176.3607844999999 +72 176.3607844999999 176.60271999999992 +67 176.8446554999999 177.3285264999999 +68 177.3285264999999 177.5704619999999 +72 177.81239749999992 178.0596774999999 +71 178.0596774999999 178.30695749999992 +72 178.30695749999992 178.80151749999993 +74 178.80151749999993 179.2960774999999 +67 179.2960774999999 179.54335749999993 +72 179.79063749999992 180.04521999999992 +71 180.04521999999992 180.2998024999999 +72 180.2998024999999 180.82464499999992 +74 180.82464499999992 181.30575062499992 +65 181.3535334999999 181.6694559999999 +67 181.6694559999999 181.9853784999999 +68 181.9853784999999 183.29806249999993 +67 183.29806249999993 183.73009024999993 +65 183.73009024999993 184.39943424999993 +64 184.39943424999993 189.75418624999992 +track Fuga 2 +72 78.23754354166668 78.44429754166669 +71 78.44429754166669 78.65105154166669 +72 78.65105154166669 78.85780554166669 +67 79.06455954166668 79.49099854166668 +68 79.49099854166668 79.69775254166669 +72 79.90450654166668 80.11126054166668 +71 80.11126054166668 80.31801454166668 +72 80.31801454166668 80.52476854166669 +74 80.73152254166668 81.14503054166669 +67 81.14503054166669 81.35178454166669 +72 81.55853854166668 81.76529254166668 +71 81.76529254166668 81.97204654166669 +72 81.97204654166669 82.17880054166669 +74 82.38555454166668 82.59230854166668 +65 82.79906254166669 83.01092704166669 +67 83.01092704166669 83.22279154166668 +68 83.22279154166668 84.06002854166668 +67 84.06002854166668 84.26678254166669 +65 84.26678254166669 84.47353654166669 +63 84.47353654166669 84.57691354166668 +72 84.6802905416667 84.88704454166668 +71 84.88704454166668 85.09379854166669 +68 85.09379854166669 85.30055254166669 +67 85.30055254166669 85.5073065416667 +65 85.5073065416667 85.71406054166668 +63 85.71406054166668 85.92081454166669 +62 85.92081454166669 86.12756854166669 +60 86.12756854166669 86.3343225416667 +75 86.54107654166668 86.95458454166669 +74 86.95458454166669 87.36809254166668 +72 87.36809254166668 87.78160054166669 +70 87.78160054166669 87.9883545416667 +69 88.19510854166668 88.60861654166669 +70 88.60861654166669 89.02212454166668 +72 89.02212454166668 89.43218664166669 +66 89.43563254166669 89.8646945416667 +67 89.8646945416667 90.2937565416667 +69 90.2937565416667 90.70726454166669 +66 90.70726454166669 91.1207725416667 +67 91.1207725416667 91.9477885416667 +60 92.1545425416667 92.36129654166669 +62 92.36129654166669 92.5680505416667 +63 92.5680505416667 92.7748045416667 +65 92.7748045416667 92.9815585416667 +67 92.9815585416667 93.18831254166669 +68 93.18831254166669 93.8085745416667 +62 93.8085745416667 94.01532854166669 +63 94.01532854166669 94.2220825416667 +65 94.2220825416667 94.4288365416667 +67 94.4288365416667 94.6355905416667 +69 94.6355905416667 94.84234454166669 +70 94.84234454166669 95.4626065416667 +63 95.4626065416667 95.66936054166669 +65 95.66936054166669 95.8761145416667 +67 95.8761145416667 96.0828685416667 +68 96.0828685416667 96.2896225416667 +67 96.2896225416667 96.49637654166669 +65 96.49637654166669 96.7031305416667 +63 96.7031305416667 96.9098845416667 +62 96.9098845416667 97.1166385416667 +72 97.32339254166669 97.5301465416667 +71 97.5301465416667 97.7369005416667 +72 97.7369005416667 97.94365454166669 +77 99.82277354166669 100.2362815416667 +75 100.2362815416667 100.64978954166669 +74 100.64978954166669 101.0632975416667 +68 101.47680554166669 101.8903135416667 +67 101.8903135416667 102.3038215416667 +65 102.3038215416667 102.7173295416667 +67 102.7173295416667 102.9318605416667 +65 103.1463915416667 103.3609225416667 +63 103.3609225416667 103.5754535416667 +65 103.5754535416667 103.78220754166671 +62 103.9889615416667 104.4024695416667 +67 104.4024695416667 105.2294855416667 +71 105.6429935416667 106.06672254166669 +72 106.06672254166669 106.2785870416667 +72 106.4904515416667 106.6972055416667 +71 106.6972055416667 106.9039595416667 +72 106.9039595416667 107.1107135416667 +67 107.3174675416667 107.7465295416667 +68 107.7465295416667 108.5890995416667 +69 109.0026075416667 109.4161155416667 +70 109.4161155416667 109.6228695416667 +70 109.8296235416667 110.03637754166671 +69 110.03637754166671 110.2431315416667 +70 110.2431315416667 110.4498855416667 +65 110.6566395416667 111.08570154166671 +67 111.08570154166671 111.9282715416667 +67 112.34177954166671 112.7552875416667 +68 112.7552875416667 112.96204154166671 +68 113.16879554166671 113.58996654166671 +67 113.58996654166671 114.01113754166671 +65 114.01113754166671 114.43230854166671 +56 114.85347954166672 115.27465054166672 +58 115.27465054166672 115.6958215416667 +60 115.6958215416667 116.01169979166671 +56 116.5460545416667 116.7605855416667 +55 116.7605855416667 116.97511654166671 +56 116.97511654166671 117.18443829166671 +53 117.39376004166671 117.81240354166671 +58 117.81240354166671 118.02172529166671 +60 118.23104704166671 118.6445550416667 +58 118.6445550416667 119.05806304166671 +56 119.05806304166671 119.4715710416667 +58 119.4715710416667 119.67832504166671 +55 119.88507904166671 120.2985870416667 +53 120.2985870416667 120.71209504166671 +51 120.71209504166671 121.12560304166671 +53 121.12560304166671 121.33235704166671 +61 121.53911104166671 121.95261904166671 +60 121.95261904166671 122.36612704166672 +58 122.36612704166672 122.77963504166671 +60 122.77963504166671 122.98638904166671 +56 123.19314304166672 123.60665104166671 +55 123.60665104166671 124.02015904166672 +53 124.02015904166672 124.43366704166671 +55 124.43366704166671 124.64042104166671 +67 124.84717504166672 125.05392904166672 +66 125.05392904166672 125.26068304166671 +67 125.26068304166671 125.46743704166671 +60 125.67419104166672 126.08769904166671 +63 126.08769904166671 126.29445304166671 +67 126.50120704166672 126.71442654166671 +66 126.71442654166671 126.92764604166672 +67 126.92764604166672 127.35408504166672 +69 127.35408504166672 127.78052404166672 +62 127.78052404166672 127.99374354166672 +67 128.2069630416667 128.42018254166672 +66 128.42018254166672 128.63340204166673 +67 128.63340204166673 129.05984104166672 +69 129.05984104166672 129.3796702916667 +60 129.48628004166673 129.70367129166672 +62 129.70367129166672 129.92106254166674 +63 129.92106254166674 130.78749954166673 +62 130.78749954166673 131.00203054166673 +60 131.00203054166673 131.21656154166672 +58 131.21656154166672 131.43109254166674 +62 132.26588554166673 132.47263954166672 +64 132.47263954166672 132.68322504166673 +66 132.68322504166673 132.8938105416667 +67 132.8938105416667 133.10439604166672 +69 133.10439604166672 133.31498154166673 +70 133.31498154166673 133.93524354166672 +64 133.93524354166672 134.1419975416667 +65 134.1419975416667 134.35521704166672 +67 134.35521704166672 134.5684365416667 +69 134.5684365416667 134.7816560416667 +70 134.7816560416667 134.99487554166672 +72 134.99487554166672 135.6151375416667 +66 135.6151375416667 135.8218915416667 +67 135.8218915416667 136.0324770416667 +69 136.0324770416667 136.2430625416667 +70 136.2430625416667 136.6642335416667 +63 136.6642335416667 136.8709875416667 +62 136.8709875416667 137.0777415416667 +63 137.0777415416667 137.2844955416667 +55 137.4912495416667 137.70057129166668 +56 137.9098930416667 138.11921479166668 +65 138.3285365416667 138.53529054166668 +63 138.53529054166668 138.7420445416667 +65 138.7420445416667 138.9487985416667 +57 139.15555254166668 139.3623065416667 +58 139.5690605416667 139.7758145416667 +67 139.9825685416667 140.18932254166668 +65 140.18932254166668 140.3960765416667 +67 140.3960765416667 140.6028305416667 +59 140.80958454166668 141.02144904166667 +60 141.2333135416667 141.33924579166668 +65 141.44517804166668 141.65704254166667 +63 141.65704254166667 141.86379654166666 +62 141.86379654166666 142.07055054166668 +60 142.07055054166668 142.27730454166667 +58 142.27730454166667 142.48405854166666 +56 142.48405854166666 142.69081254166667 +55 142.69081254166667 142.89756654166666 +53 142.89756654166666 143.10432054166668 +68 143.31107454166667 143.72458254166668 +67 143.72458254166668 144.13809054166666 +65 144.13809054166666 144.56452954166664 +63 144.56452954166664 144.77774904166665 +62 144.99096854166666 145.40447654166667 +63 145.40447654166667 145.81798454166665 +65 145.81798454166665 146.22804664166665 +59 146.23149254166665 146.44207804166666 +60 146.65266354166664 147.07383454166666 +62 147.07383454166666 147.48734254166666 +59 147.48734254166666 147.90085054166664 +60 147.90085054166664 148.72786654166666 +64 149.15430554166664 149.56781354166665 +65 149.56781354166665 149.77456754166664 +65 149.98132154166663 150.18807554166665 +64 150.18807554166665 150.39482954166664 +65 150.39482954166664 150.60158354166666 +60 150.80833754166665 151.22184554166665 +62 151.22184554166665 152.04886154166664 +62 152.47530054166663 152.88880854166663 +63 152.88880854166663 153.09556254166662 +63 153.3023165416666 153.50907054166663 +62 153.50907054166663 153.71582454166662 +63 153.71582454166662 153.92257854166664 +58 154.12933254166663 154.54284054166664 +60 154.54284054166664 156.61038054166661 +62 156.61038054166661 156.81713454166663 +63 156.81713454166663 157.02388854166662 +65 157.02388854166662 157.23064254166664 +63 157.23064254166664 157.43739654166663 +65 157.43739654166663 157.64415054166662 +62 157.64415054166662 157.85090454166664 +59 157.85090454166664 158.05765854166663 +59 159.09142854166663 159.52049054166662 +60 159.52049054166662 159.7272445416666 +63 160.7610145416666 161.17452254166662 +62 161.17452254166662 161.3812765416666 +65 162.4150465416666 163.24206254166663 +65 164.0690785416666 164.48258654166662 +63 164.48258654166662 164.70124554166662 +68 164.91990454166663 165.35722254166663 +67 165.35722254166663 165.7945405416666 +65 165.7945405416666 166.2318585416666 +63 166.2318585416666 166.4655397916666 +62 166.69922104166662 167.15109654166662 +63 167.15109654166662 167.62480554166663 +59 168.09851454166662 168.34751854166663 +60 168.59652254166662 169.1096060416666 +62 169.1096060416666 169.3661477916666 +59 169.6226895416666 170.1774230416666 +59 170.1774230416666 170.7866840416666 +60 170.7866840416666 171.3959450416666 +60 172.0052060416666 172.6144670416666 +65 172.6144670416666 172.9190975416666 +62 172.9190975416666 173.2237280416666 +63 173.2237280416666 173.5283585416666 +60 173.5283585416666 174.4749697916666 +59 174.4749697916666 175.24375049999992 +60 175.24375049999992 175.83187049999992 +64 176.8446554999999 177.3285264999999 +65 177.3285264999999 177.5704619999999 +65 178.80151749999993 179.2960774999999 +68 178.80151749999993 179.2960774999999 +71 178.80151749999993 179.2960774999999 +65 179.2960774999999 179.54335749999993 +63 179.79063749999992 180.04521999999992 +62 180.04521999999992 180.2998024999999 +63 180.2998024999999 180.82464499999992 +65 180.82464499999992 181.30575062499992 +68 180.82464499999992 181.30575062499992 +62 181.3535334999999 181.9853784999999 +59 181.3535334999999 181.9853784999999 +62 182.62901699999992 183.29806249999993 +59 182.62901699999992 183.29806249999993 +60 184.39943424999993 189.75418624999992 +55 184.39943424999993 189.75418624999992 +track Fuga 3 +60 98.15040854166669 98.3571625416667 +59 98.3571625416667 98.5639165416667 +60 98.5639165416667 98.7706705416667 +55 98.9774245416667 99.4092655416667 +56 99.4092655416667 99.6160195416667 +60 99.82277354166669 100.0295275416667 +59 100.0295275416667 100.2362815416667 +60 100.2362815416667 100.4430355416667 +62 100.64978954166669 101.0632975416667 +55 101.0632975416667 101.2700515416667 +60 101.47680554166669 101.6835595416667 +59 101.6835595416667 101.8903135416667 +60 101.8903135416667 102.0970675416667 +62 102.3038215416667 102.5105755416667 +53 102.7173295416667 102.9318605416667 +55 102.9318605416667 103.1463915416667 +56 103.1463915416667 103.9889615416667 +55 103.9889615416667 104.1957155416667 +53 104.1957155416667 104.4024695416667 +51 104.4024695416667 104.5058465416667 +60 104.60922354166671 104.8159775416667 +59 104.8159775416667 105.0227315416667 +57 105.0227315416667 105.2294855416667 +55 105.2294855416667 105.43623954166671 +53 105.43623954166671 105.6429935416667 +51 105.6429935416667 105.8548580416667 +50 105.8548580416667 106.06672254166669 +48 106.06672254166669 106.2785870416667 +50 106.2785870416667 106.4904515416667 +51 106.4904515416667 106.6972055416667 +50 106.6972055416667 106.9039595416667 +48 106.9039595416667 107.1107135416667 +46 107.1107135416667 107.3174675416667 +44 107.3174675416667 107.5319985416667 +43 107.5319985416667 107.7465295416667 +41 107.7465295416667 107.8537950416667 +58 107.9610605416667 108.1755915416667 +56 108.1755915416667 108.38234554166671 +55 108.38234554166671 108.5890995416667 +53 108.5890995416667 108.7958535416667 +51 108.7958535416667 109.0026075416667 +50 109.0026075416667 109.20936154166671 +48 109.20936154166671 109.4161155416667 +46 109.4161155416667 109.6228695416667 +48 109.6228695416667 109.8296235416667 +50 109.8296235416667 110.03637754166671 +48 110.03637754166671 110.2431315416667 +46 110.2431315416667 110.4498855416667 +44 110.4498855416667 110.6566395416667 +43 110.6566395416667 110.8711705416667 +41 110.8711705416667 111.08570154166671 +39 111.08570154166671 111.1929670416667 +56 111.3002325416667 111.51476354166671 +55 111.51476354166671 111.72151754166671 +53 111.72151754166671 111.9282715416667 +51 111.9282715416667 112.1350255416667 +49 112.1350255416667 112.34177954166671 +48 112.34177954166671 112.54853354166671 +46 112.54853354166671 112.7552875416667 +44 112.7552875416667 112.96204154166671 +60 113.16879554166671 113.58996654166671 +58 113.58996654166671 114.01113754166671 +56 114.01113754166671 114.43230854166671 +55 114.43230854166671 114.64289404166671 +53 114.85347954166672 115.27465054166672 +55 115.27465054166672 115.6958215416667 +56 115.6958215416667 116.01169979166671 +50 116.1169925416667 116.5460545416667 +51 116.5460545416667 116.97511654166671 +53 116.97511654166671 117.39376004166671 +50 117.39376004166671 117.81240354166671 +51 117.81240354166671 118.02172529166671 +56 118.23104704166671 118.6445550416667 +55 118.6445550416667 119.05806304166671 +53 119.05806304166671 119.4715710416667 +55 119.4715710416667 119.67832504166671 +53 119.88507904166671 120.2985870416667 +50 120.2985870416667 120.71209504166671 +48 120.71209504166671 121.12560304166671 +50 121.12560304166671 121.33235704166671 +58 121.53911104166671 121.95261904166671 +56 121.95261904166671 122.36612704166672 +55 122.36612704166672 122.77963504166671 +56 122.77963504166671 122.98638904166671 +53 123.19314304166672 123.60665104166671 +51 123.60665104166671 124.02015904166672 +50 124.02015904166672 124.43366704166671 +51 124.43366704166671 124.64042104166671 +48 126.50120704166672 126.92764604166672 +46 126.92764604166672 127.35408504166672 +45 127.35408504166672 127.78052404166672 +51 128.2069630416667 128.63340204166673 +50 128.63340204166673 129.05984104166672 +48 129.05984104166672 129.3796702916667 +50 129.48628004166673 129.92106254166674 +48 129.92106254166674 130.13845379166673 +46 130.13845379166673 130.35584504166673 +48 130.35584504166673 130.78749954166673 +50 130.78749954166673 131.21656154166672 +43 131.21656154166672 131.43109254166674 +58 131.64562354166674 131.85237754166673 +57 131.85237754166673 132.05913154166674 +58 132.05913154166674 132.26588554166673 +50 132.47263954166672 132.68322504166673 +51 132.8938105416667 133.10439604166672 +60 133.31498154166673 133.52173554166671 +59 133.52173554166671 133.72848954166673 +60 133.72848954166673 133.93524354166672 +52 134.1419975416667 134.35521704166672 +53 134.5684365416667 134.7816560416667 +62 134.99487554166672 135.2016295416667 +60 135.2016295416667 135.40838354166672 +62 135.40838354166672 135.6151375416667 +54 135.8218915416667 136.0324770416667 +55 136.2430625416667 136.4536480416667 +43 137.2844955416667 137.4912495416667 +45 137.4912495416667 137.70057129166668 +47 137.70057129166668 137.9098930416667 +48 137.9098930416667 138.11921479166668 +50 138.11921479166668 138.3285365416667 +51 138.3285365416667 138.9487985416667 +45 138.9487985416667 139.15555254166668 +46 139.15555254166668 139.3623065416667 +48 139.3623065416667 139.5690605416667 +50 139.5690605416667 139.7758145416667 +51 139.7758145416667 139.9825685416667 +53 139.9825685416667 140.6028305416667 +47 140.6028305416667 140.80958454166668 +48 140.80958454166668 141.02144904166667 +50 141.02144904166667 141.2333135416667 +51 141.2333135416667 141.44517804166668 +52 142.48405854166666 142.89756654166666 +56 142.89756654166666 143.10432054166668 +41 143.31107454166667 143.72458254166668 +39 143.72458254166668 144.13809054166666 +38 144.13809054166666 144.56452954166664 +44 144.99096854166666 145.40447654166667 +43 145.40447654166667 145.81798454166665 +41 145.81798454166665 146.23149254166665 +43 146.23149254166665 146.44207804166666 +41 146.65266354166664 146.86324904166665 +39 146.86324904166665 147.07383454166666 +41 147.07383454166666 147.28058854166665 +43 147.48734254166666 147.69409654166665 +48 147.90085054166664 148.10760454166666 +50 148.10760454166666 148.31435854166665 +51 148.31435854166665 148.52111254166667 +50 148.52111254166667 148.72786654166666 +48 148.72786654166666 148.94108604166667 +46 148.94108604166667 149.15430554166664 +44 149.15430554166664 149.36105954166663 +43 149.36105954166663 149.56781354166665 +41 149.56781354166665 149.67119054166665 +58 149.77456754166664 149.98132154166663 +56 149.98132154166663 150.18807554166665 +55 150.18807554166665 150.39482954166664 +53 150.39482954166664 150.60158354166666 +51 150.60158354166666 150.80833754166665 +50 150.80833754166665 151.01509154166664 +48 151.01509154166664 151.22184554166665 +46 151.22184554166665 151.42859954166664 +48 151.42859954166664 151.63535354166663 +50 151.63535354166663 151.84210754166665 +48 151.84210754166665 152.04886154166664 +46 152.04886154166664 152.26208104166665 +44 152.26208104166665 152.47530054166663 +43 152.47530054166663 152.68205454166662 +41 152.68205454166662 152.88880854166663 +39 152.88880854166663 152.99218554166663 +56 153.09556254166662 153.3023165416666 +55 153.3023165416666 153.50907054166663 +53 153.50907054166663 153.71582454166662 +51 153.71582454166662 153.92257854166664 +50 153.92257854166664 154.12933254166663 +48 154.12933254166663 154.33608654166662 +46 154.33608654166662 154.54284054166664 +44 154.54284054166664 154.74959454166662 +46 154.74959454166662 154.9563485416666 +48 154.9563485416666 155.16310254166663 +46 155.16310254166663 155.36985654166662 +44 155.36985654166662 155.57661054166664 +43 155.57661054166664 155.78336454166663 +41 155.78336454166663 155.99011854166662 +39 155.99011854166662 156.19687254166664 +38 156.19687254166664 156.30024954166663 +55 156.40362654166663 156.61038054166661 +53 156.61038054166661 156.81713454166663 +51 156.81713454166663 157.02388854166662 +50 157.02388854166662 157.23064254166664 +48 157.23064254166664 157.43739654166663 +47 157.43739654166663 157.64415054166662 +45 157.64415054166662 157.85090454166664 +43 157.85090454166664 158.67792054166662 +43 159.7272445416666 159.93399854166663 +45 159.93399854166663 160.14075254166661 +47 160.14075254166661 160.3475065416666 +48 160.3475065416666 160.55426054166662 +50 160.55426054166662 160.7610145416666 +51 160.7610145416666 160.96776854166663 +53 160.96776854166663 161.17452254166662 +55 161.17452254166662 161.3812765416666 +53 161.3812765416666 161.58803054166663 +56 161.58803054166663 161.79478454166662 +55 161.79478454166662 162.0015385416666 +53 162.0015385416666 162.20829254166662 +51 162.20829254166662 162.4150465416666 +50 162.4150465416666 162.62180054166663 +48 162.62180054166663 162.82855454166662 +47 162.82855454166662 163.0353085416666 +48 163.24206254166663 163.44881654166662 +47 163.44881654166662 163.6555705416666 +48 163.6555705416666 163.86232454166662 +43 164.0690785416666 164.48258654166662 +44 164.48258654166662 164.70124554166662 +48 164.91990454166663 165.13856354166663 +47 165.13856354166663 165.35722254166663 +48 165.35722254166663 165.57588154166663 +50 165.7945405416666 166.2318585416666 +43 166.2318585416666 166.4655397916666 +48 166.69922104166662 166.92515879166663 +47 166.92515879166663 167.15109654166662 +48 167.15109654166662 167.3879510416666 +50 167.62480554166663 167.86166004166662 +41 168.09851454166662 168.34751854166663 +43 168.34751854166663 168.59652254166662 +44 168.59652254166662 169.6226895416666 +43 169.6226895416666 169.9000562916666 +41 169.9000562916666 170.1774230416666 +39 170.1774230416666 171.3959450416666 +51 172.0052060416666 172.6144670416666 +50 172.6144670416666 173.2237280416666 +48 173.2237280416666 173.8329890416666 +55 173.8329890416666 174.4749697916666 +43 174.4749697916666 175.24375049999992 +36 175.24375049999992 189.75418624999992 +48 175.24375049999992 189.75418624999992 diff --git a/test/midi/bach/bach_850.mid b/test/midi/bach/bach_850.mid new file mode 100644 index 0000000000000000000000000000000000000000..8a9ec88c1f7b0d76bf4311bae6e15ed2c8cd988e GIT binary patch literal 12625 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 literal 0 HcmV?d00001 diff --git a/test/midi/bach/bach_format0.mid.txt b/test/midi/bach/bach_format0.mid.txt new file mode 100644 index 0000000000000000000000000000000000000000..f3efe8619706c7ffb55ba2512956a7467e262cf2 GIT binary patch literal 6517 zcmYkAOK#*w5Cy$0onlTfX#ShG@D&DL*aHJLF!251c<*JhYoYwHD!N2&G8| zfBXICkAMFC_Uq@LfBpB{*LjWC_w^ub*YS0&DTp+u5?|-*)m7h})&zKgjx(*>=WB+6!9s=YSMUCh0iF2)h& zA?DFc7qn)QC_hYUuMP7M^Ju1vafW${d4{>BAi_MA`1&xZy;e*ug?WalwYr~In3tGW zGhNV{NuvBPsl7JLOU$d8F2-BTo5Z?zm}d&&@%3Jm_-dw>ius16??RcN_mbD@oOhVF zn0GT>(0Uz-^24O|+Awc1?`FCf%S+HxnUzG_a#y9qadu~gMtg(U%z*Qqx=_@SvqNWI zEEUURRkYIb^2%btw^<*xyuo})Wq$0kRp!U9#eyNN4I}zj0YFzuoQ9W^WrRMzH<;g| zaZ$%D)x5*!w`?r8ZN%osHwNL$IGTwc=a|*~uywS)Kk(z-V(~by%_G)tt5h1pU!4`2 z?+re`#Pe@08^{v#y~F3Xge@9_EUFU##OvH9_rLHP2QX5z)l-b^8SgxB>23%{3SHs8+`xcuQ%xYkH4wLYJXX7 ze~CUn%i}L8eECZ=@#8PEdjHs8TA!a2#otZ-9@ijqexmuWs+4?pmDLnK8+3kV;(G(< zrxl-{N2;;OUoE%4#OB9e23akCX(oRBWmbIqOWXYTyUAbi?Ju$U@s~mPdj8T({Cv)3 zR(wByX`5f4b>*-4`LtX9^6kc7Quy+hX5zkT??{MC1y=kF$e#kar2K7agW5Wf7SnfURSS)Jeh()Rh| z?_U0rIX|)ZsWdQOSxxi#^C{0?Qur=3EqJZS&*r zUjCBBfBa3Q0sPHbVdBSMX2rL^wB~yU)!55lviOg`sWb>*{?bhR_{*&L_LsK#@pres z_aKX3&)-*7O7K@_h30#M-apKW@6XS)=6i?FZ+}^Ce~JC`jlT@Sm%lUiDbW@s||7{H2-r@t0Zg z?JsSgKmP9am%a9v*!L&?GJwD9ve!)f{JqPCxOl!V(`2O2p_S#=!^W!gr@Z~Sf z#E-wsif?~un;(A<`^&!>>@TtSsWgV~%MKqtSM>fNh3`VG`M#j@ANJQ-s~>+;X%N2r zrJ4Bgms#=cFKzSV?_q!0Yk!G4KR@48O5yAIOEdA~FSBQZj{7`+Q;oy^a>4!*o1f<| zgYe}q&BTwt%!+S+Y5V-~_pra$AnX1-{-)9Z{^_jHd~fjmZ-2R{^OwKg;rnlYS#E!c z{qv2#48oVcG!sAmGOPPCOeAn=Pygl_YR-G z{5|Y1vCkiW8H6u?X(oRBWmbIqOWXYTdz8Oqo#yd3l?L#A!C~UZUltVK{?eN7#Xf)e zd)QxMpFjRG2w(ovO#JxEtoZhqw)ye*EPu(IpIGnDR2rDCtmea4lO6C8hMxBivG}RR zS^ko>I{s>TK0lMfm%lUh#E-ws#PekE57}u_4(n)-_!nXgDif1e!i+wg8y<>;Fjy{lu8MB zF6*q3mrwht#_2zP*-chh*sZIsl+^RucAMy*y{}Vg+?Ugq)Bf>FPow{lKh6JfRaj&I literal 0 HcmV?d00001 diff --git a/test/midi/beat.mid b/test/midi/beat.mid new file mode 100644 index 0000000000000000000000000000000000000000..8a211311cd849447766acbc03fb9c72399a5f6f6 GIT binary patch literal 2432 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

MO=!GUE)#s$6u)*8Sg4TUfp81m7i1S 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

0DS`xU_bw9pQNl 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 literal 0 HcmV?d00001 diff --git a/test/midi/debussy/childrens_corner_1.mid.txt b/test/midi/debussy/childrens_corner_1.mid.txt new file mode 100644 index 0000000..2dedbf9 --- /dev/null +++ b/test/midi/debussy/childrens_corner_1.mid.txt @@ -0,0 +1,1112 @@ +track Piano right +55 0.12211000000000001 0.2530595479166667 +60 0.2530595479166667 0.38348304791666665 +62 0.38348304791666665 0.5139065479166667 +64 0.5139065479166667 0.6442371625 +55 0.6442371625 0.7716944770833334 +60 0.7716944770833334 0.8970872249999999 +64 0.8970872249999999 1.0204183583333333 +62 1.0204183583333333 1.1423596083333334 +53 1.1423596083333334 1.2643008583333333 +60 1.2643008583333333 1.3862421083333332 +62 1.3862421083333332 1.5081833583333333 +65 1.5081833583333333 1.6286556083333332 +57 1.6286556083333332 1.7491278583333334 +59 1.7491278583333334 1.8696001083333333 +65 1.8696001083333333 1.9900723583333333 +64 1.9900723583333333 2.1081733583333335 +55 2.1081733583333335 2.2262743583333333 +60 2.2262743583333333 2.344375358333333 +64 2.344375358333333 2.4624763583333333 +67 2.4624763583333333 2.579654608333333 +59 2.579654608333333 2.6968328583333334 +60 2.6968328583333334 2.8140111083333332 +67 2.8140111083333332 2.9311893583333335 +65 2.9311893583333335 3.0483676083333333 +57 3.0483676083333333 3.1655458583333336 +60 3.1655458583333336 3.2827241083333334 +65 3.2827241083333334 3.4082366083333335 +69 3.4082366083333335 3.535950260416667 +59 3.535950260416667 3.6660558375 +65 3.6660558375 3.798741425 +69 3.798741425 3.934106754166666 +67 3.934106754166666 4.051138754166666 +60 4.051138754166666 4.168170754166666 +64 4.168170754166666 4.285202754166666 +67 4.285202754166666 4.420131254166666 +72 4.420131254166666 4.600030379166666 +64 4.540064004166666 4.659996754166666 +67 4.659996754166666 4.779929504166666 +72 4.779929504166666 4.899862254166666 +74 4.899862254166666 5.077391004166666 +64 5.018214754166666 5.136567254166666 +67 5.136567254166666 5.254919754166666 +74 5.254919754166666 5.373272254166666 +72 5.373272254166666 5.550801004166666 +64 5.491624754166666 5.609977254166666 +67 5.609977254166666 5.7283297541666665 +72 5.7283297541666665 5.846682254166666 +71 5.846682254166666 6.024211004166666 +64 5.965034754166666 6.0833872541666665 +67 6.0833872541666665 6.201739754166666 +71 6.201739754166666 6.320092254166666 +69 6.320092254166666 6.497621004166666 +64 6.438444754166666 6.556797254166666 +67 6.556797254166666 6.675149754166666 +69 6.675149754166666 6.7979295041666665 +67 6.7979295041666665 6.975556504166667 +60 6.916347504166667 7.034765504166667 +64 7.034765504166667 7.153183504166666 +67 7.153183504166666 7.271601504166666 +65 7.271601504166666 7.449228504166666 +60 7.390019504166666 7.508437504166666 +64 7.508437504166666 7.626855504166667 +65 7.626855504166667 7.745273504166667 +59 7.862764004166666 7.980254504166667 +64 7.745273504166667 8.087954129166667 +60 7.980254504166667 8.097745004166667 +64 8.097745004166667 8.215235504166667 +57 8.332726004166666 8.450216504166667 +62 8.215235504166667 8.557916129166667 +60 8.450216504166667 8.567707004166667 +62 8.567707004166667 8.696828004166667 +59 8.815180504166667 8.933533004166668 +67 8.696828004166667 9.042022795833333 +64 8.933533004166668 9.051885504166666 +67 9.051885504166666 9.189498435416667 +60 9.319541706249998 9.4527685875 +69 9.189498435416667 9.577696977083333 +64 9.4527685875 9.589094810416666 +69 9.589094810416666 9.747540060416666 +57 9.886984060416665 10.004474560416666 +64 9.747540060416666 10.11183776875 +60 10.004474560416666 10.121598060416666 +64 10.121598060416666 10.238721560416666 +57 10.355845060416666 10.472968560416666 +62 10.238721560416666 10.58033176875 +60 10.472968560416666 10.590092060416666 +62 10.590092060416666 10.707215560416666 +55 10.826623310416666 10.946031060416665 +60 10.707215560416666 11.055488164583332 +57 10.946031060416665 11.065438810416666 +60 11.065438810416666 11.184846560416666 +53 11.306402560416666 11.427958560416666 +59 11.184846560416666 11.53938489375 +55 11.427958560416666 11.549514560416666 +59 11.549514560416666 11.671070560416666 +52 19.661765520833317 19.780118020833317 +56 19.780118020833317 19.907409270833316 +56 20.147274770833317 20.267207520833317 +59 20.267207520833317 20.39509577083332 +59 20.63496127083332 20.75489402083332 +64 20.75489402083332 20.88339577083332 +64 21.12587310624999 21.249499545833324 +68 21.249499545833324 21.411067795833322 +69 23.449924545833323 23.565745795833323 +65 23.565745795833323 23.681567045833322 +62 23.681567045833322 23.797388295833322 +65 23.913209545833322 24.02903079583332 +62 24.02903079583332 24.14485204583332 +59 24.14485204583332 24.264259795833322 +69 24.383667545833323 24.499488795833322 +65 24.499488795833322 24.615310045833322 +62 24.615310045833322 24.731131295833322 +65 24.84695254583332 24.96277379583332 +62 24.96277379583332 25.07859504583332 +59 25.07859504583332 25.19852779583332 +72 25.32889454583332 25.447247045833322 +69 25.447247045833322 25.56159379583332 +65 25.56159379583332 25.67594054583332 +69 25.790287295833323 25.904634045833323 +65 25.904634045833323 26.018980795833322 +62 26.018980795833322 26.135803295833323 +65 26.255211045833324 26.369557795833323 +62 26.369557795833323 26.483904545833322 +59 26.483904545833322 26.598251295833325 +62 26.712598045833325 26.826944795833324 +59 26.826944795833324 26.941291545833323 +55 26.941291545833323 27.069179795833325 +69 27.189112545833325 27.304933795833325 +65 27.304933795833325 27.420755045833324 +62 27.420755045833324 27.536576295833324 +65 27.652397545833324 27.768218795833324 +62 27.768218795833324 27.884040045833324 +59 27.884040045833324 28.003447795833324 +69 28.122855545833325 28.238676795833324 +65 28.238676795833324 28.354498045833324 +62 28.354498045833324 28.470319295833324 +65 28.586140545833324 28.701961795833324 +62 28.701961795833324 28.817783045833323 +59 28.817783045833323 28.950327045833323 +72 29.080693795833323 29.200101545833324 +69 29.200101545833324 29.316924045833325 +65 29.316924045833325 29.433746545833323 +69 29.550569045833324 29.667391545833322 +65 29.667391545833322 29.784214045833323 +62 29.784214045833323 29.903621795833324 +65 30.019937045833323 30.135758295833323 +62 30.135758295833323 30.251579545833323 +59 30.251579545833323 30.367400795833323 +62 30.483222045833323 30.599043295833322 +59 30.599043295833322 30.714864545833322 +55 30.714864545833322 30.834797295833322 +59 30.954730045833323 31.070551295833322 +56 31.070551295833322 31.186372545833322 +52 31.186372545833322 31.302193795833322 +61 31.41801504583332 31.53383629583332 +58 31.53383629583332 31.64965754583332 +54 31.64965754583332 31.76906529583332 +59 31.888998045833322 32.00481929583332 +56 32.00481929583332 32.120640545833325 +52 32.120640545833325 32.23646179583332 +61 32.352283045833325 32.46810429583332 +58 32.46810429583332 32.583925545833324 +54 32.583925545833324 32.703333295833325 +59 32.82326604583332 32.939087295833325 +56 32.939087295833325 33.05490854583332 +52 33.05490854583332 33.170729795833324 +59 33.28655104583332 33.402372295833324 +56 33.402372295833324 33.51819354583332 +52 33.51819354583332 33.63501604583332 +59 33.75133129583332 33.86715254583332 +56 33.86715254583332 33.98297379583332 +52 33.98297379583332 34.09879504583332 +59 34.214616295833316 34.33043754583332 +56 34.33043754583332 34.446258795833316 +52 34.446258795833316 34.56566654583332 +57 34.68559929583331 34.80142054583332 +53 34.80142054583332 34.91724179583331 +50 34.91724179583331 35.033063045833316 +60 35.14888429583331 35.264705545833316 +56 35.264705545833316 35.38052679583331 +53 35.38052679583331 35.49993454583331 +57 35.61986729583331 35.73568854583331 +53 35.73568854583331 35.85150979583331 +50 35.85150979583331 35.96733104583331 +60 36.08315229583331 36.19897354583331 +56 36.19897354583331 36.31479479583331 +53 36.31479479583331 36.43420254583331 +57 36.554135295833305 36.66995654583331 +53 36.66995654583331 36.785777795833305 +50 36.785777795833305 36.90159904583331 +57 37.017420295833304 37.13324154583331 +53 37.13324154583331 37.249062795833304 +50 37.249062795833304 37.3658852958333 +57 37.4822005458333 37.598021795833304 +53 37.598021795833304 37.7138430458333 +50 37.7138430458333 37.829664295833304 +57 37.9454855458333 38.0613067958333 +53 38.0613067958333 38.1771280458333 +50 38.1771280458333 38.2965357958333 +59 38.4164685458333 38.5322897958333 +56 38.5322897958333 38.648111045833296 +50 38.648111045833296 38.7639322958333 +59 38.8817272958333 38.9995222958333 +56 38.9995222958333 39.1173172958333 +50 39.1173172958333 39.2509237958333 +59 39.3821917958333 39.5117590458333 +56 39.5117590458333 39.640216795833304 +50 39.640216795833304 39.76832856666664 +59 39.8978824333333 40.03816512499997 +56 40.03816512499997 40.19012294374997 +50 40.19012294374997 40.40358519374997 +55 40.55025569374997 40.705262443749966 +60 40.705262443749966 40.8399744208333 +62 40.8399744208333 40.97362640624996 +64 40.97362640624996 41.1061473833333 +55 41.1061473833333 41.23709701874997 +60 41.23709701874997 41.36400668749996 +64 41.36400668749996 41.48668278749996 +62 41.48668278749996 41.609291787499956 +53 41.609291787499956 41.73190078749996 +60 41.73190078749996 41.85450978749996 +62 41.85450978749996 41.97711878749996 +65 41.97711878749996 42.09759103749996 +57 42.09759103749996 42.21806328749996 +59 42.21806328749996 42.33853553749996 +65 42.33853553749996 42.459007787499964 +64 42.459007787499964 42.577360287499964 +55 42.577360287499964 42.695712787499964 +60 42.695712787499964 42.814065287499965 +64 42.814065287499965 42.932417787499965 +67 42.932417787499965 43.050770287499965 +59 43.050770287499965 43.169122787499965 +60 43.169122787499965 43.287475287499966 +67 43.287475287499966 43.405827787499966 +66 43.405827787499966 43.524180287499966 +57 43.524180287499966 43.64253278749997 +62 43.64253278749997 43.76088528749997 +66 43.76088528749997 43.886397787499966 +69 43.886397787499966 44.00475028749997 +60 44.00475028749997 44.12310278749997 +66 44.12310278749997 44.24145528749997 +69 44.24145528749997 44.35980778749997 +67 44.35980778749997 44.47816028749997 +62 44.47816028749997 44.59651278749997 +67 44.59651278749997 44.71486528749997 +71 44.71486528749997 44.84979378749997 +71 44.969726537499966 45.08965928749997 +76 44.84979378749997 45.08965928749997 +67 45.08965928749997 45.20669128749997 +62 45.20669128749997 45.32326853749997 +64 45.44030053749997 45.55733253749997 +67 45.55733253749997 45.67436453749997 +69 45.67436453749997 45.80749678749997 +69 45.92638403749997 46.04527128749997 +78 45.80749678749997 46.04527128749997 +67 46.04527128749997 46.16139728749997 +64 46.16139728749997 46.277523287499974 +62 46.395875787499975 46.514228287499975 +67 46.514228287499975 46.632580787499975 +71 46.632580787499975 46.75688678749997 +71 46.87681953749997 46.99675228749997 +76 46.75688678749997 46.99675228749997 +67 46.99675228749997 47.113784287499975 +62 47.113784287499975 47.230361537499974 +64 47.347393537499975 47.46442553749997 +67 47.46442553749997 47.58145753749997 +70 47.58145753749997 47.714589787499975 +70 47.833477037499975 47.952364287499975 +78 47.714589787499975 47.952364287499975 +67 47.952364287499975 48.068490287499976 +64 48.068490287499976 48.18461628749998 +64 48.30296878749998 48.42132128749998 +67 48.42132128749998 48.53967378749998 +74 48.53967378749998 48.663979787499976 +74 48.78391253749997 48.903845287499976 +67 48.903845287499976 49.02087728749998 +64 49.02087728749998 49.13745453749998 +78 48.663979787499976 49.13745453749998 +64 49.25448653749998 49.37151853749997 +67 49.37151853749997 49.488550537499975 +73 49.488550537499975 49.62168278749998 +73 49.74057003749998 49.85945728749998 +67 49.85945728749998 49.97558328749998 +64 49.97558328749998 50.09170928749998 +78 49.62168278749998 50.09170928749998 +64 50.21006178749998 50.32841428749998 +67 50.32841428749998 50.44676678749998 +72 50.44676678749998 50.57107278749998 +72 50.68856328749998 50.80605378749998 +67 50.80605378749998 50.92308578749998 +79 50.57107278749998 50.92308578749998 +64 50.92308578749998 51.03966303749998 +72 51.15669503749998 51.273727037499974 +67 51.273727037499974 51.390759037499976 +78 51.03966303749998 51.390759037499976 +64 51.390759037499976 51.507336287499975 +72 51.62391353749997 51.74049078749997 +67 51.74049078749997 51.85706803749998 +76 51.507336287499975 51.85706803749998 +64 51.85706803749998 51.98086103749998 +64 52.09921353749998 52.21756603749998 +67 52.21756603749998 52.33591853749998 +72 52.33591853749998 52.456236287499976 +72 52.57372678749998 52.691217287499974 +74 52.456236287499976 52.691217287499974 +67 52.691217287499974 52.808249287499976 +64 52.808249287499976 52.93626828749998 +76 52.691217287499974 52.93626828749998 +72 53.05330028749998 53.170332287499974 +67 53.170332287499974 53.287364287499976 +64 53.287364287499976 53.520518787499974 +72 53.520518787499974 53.63709603749997 +67 53.63709603749997 53.75367328749998 +64 53.75367328749998 53.87746628749998 +78 52.93626828749998 53.87746628749998 +64 53.99581878749998 54.11417128749998 +67 54.11417128749998 54.23252378749998 +71 54.23252378749998 54.35284153749998 +71 54.47881778749998 54.60479403749998 +74 54.35284153749998 54.60479403749998 +67 54.60479403749998 54.73687128749998 +64 54.73687128749998 54.87314828749998 +76 54.60479403749998 54.87314828749998 +71 54.99018028749998 55.107212287499976 +67 55.107212287499976 55.22424428749998 +64 55.22424428749998 55.457398787499976 +71 55.457398787499976 55.573976037499975 +67 55.573976037499975 55.69055328749998 +64 55.69055328749998 55.81434628749998 +78 54.87314828749998 55.81434628749998 +64 55.93269878749998 56.05105128749998 +67 56.05105128749998 56.16940378749998 +70 56.16940378749998 56.29370978749998 +70 56.41120028749998 56.528690787499976 +67 56.528690787499976 56.64572278749998 +74 56.29370978749998 56.64572278749998 +64 56.64572278749998 56.762300037499976 +70 56.87933203749998 56.99636403749997 +67 56.99636403749997 57.113396037499975 +76 56.762300037499976 57.113396037499975 +64 57.113396037499975 57.22997328749997 +70 57.34655053749997 57.46312778749997 +67 57.46312778749997 57.57970503749998 +72 57.22997328749997 57.57970503749998 +64 57.57970503749998 57.71309328333331 +74 57.71309328333331 57.82658353333331 +70 57.82658353333331 57.940325199999975 +69 57.940325199999975 58.054307968749974 +67 58.054307968749974 58.168663468749976 +65 58.168663468749976 58.28332521874997 +64 58.28332521874997 58.398301968749976 +62 58.398301968749976 58.51353596874998 +60 58.51353596874998 58.629206814583306 +62 58.629206814583306 58.74512759583331 +58 58.74512759583331 58.861298720833304 +57 58.861298720833304 58.9778759708333 +55 58.9778759708333 59.09482459999997 +58 60.187848131249964 60.32966538124996 +55 60.32966538124996 60.47491563124996 +58 60.47491563124996 60.62016588124996 +62 60.04603088124996 60.62016588124996 +58 60.75935113124996 60.89853638124996 +55 60.89853638124996 61.03772163124996 +58 61.03772163124996 61.17690688124996 +64 60.62016588124996 61.17690688124996 +58 61.317455799999955 61.461942149999956 +55 61.461942149999956 61.610812327083295 +58 61.610812327083295 61.79203732708329 +60 61.17690688124996 61.79203732708329 +53 62.095159327083294 62.39828132708329 +58 62.39828132708329 62.70140332708329 +60 62.70140332708329 63.00452532708329 +65 63.29168932708329 63.59328782708329 +62 63.00452532708329 63.59328782708329 +70 63.59328782708329 63.89488632708329 +72 63.89488632708329 64.1964848270833 +74 64.1964848270833 64.7822453270833 +60 65.3794383270833 65.66387932708331 +63 66.56116232708331 71.5222653270833 +54 65.66387932708331 71.5222653270833 +58 65.9639693270833 71.5222653270833 +60 66.26256582708331 71.5222653270833 +51 71.79681482708331 72.04834482708331 +56 72.04834482708331 72.29171282708332 +58 72.29171282708332 72.5350808270833 +60 72.5350808270833 72.77844882708331 +51 72.77844882708331 73.02181682708331 +56 73.02181682708331 73.26518482708332 +60 73.26518482708332 73.53239782708332 +58 73.53239782708332 73.77576582708332 +51 73.77576582708332 74.03378582708332 +54 74.03378582708332 74.27422832708332 +58 74.27422832708332 74.51467082708332 +61 74.51467082708332 74.75511332708332 +51 74.75511332708332 74.99555582708332 +54 74.99555582708332 75.23599832708332 +61 75.23599832708332 75.49181832708332 +51 75.76636782708333 76.01789782708333 +56 76.01789782708333 76.26126582708334 +58 76.26126582708334 76.50463382708332 +60 76.50463382708332 76.74800182708333 +51 76.74800182708333 76.99136982708333 +56 76.99136982708333 77.23473782708334 +60 77.23473782708334 77.50195082708333 +58 77.50195082708333 77.74531882708334 +51 77.74531882708334 78.00333882708334 +54 78.00333882708334 78.24378132708334 +58 78.24378132708334 78.48422382708334 +61 78.48422382708334 78.72466632708334 +51 78.72466632708334 78.96510882708334 +54 78.96510882708334 79.20555132708334 +61 79.20555132708334 79.46137132708334 +54 79.73592082708335 79.98745082708335 +60 79.98745082708335 80.23081882708335 +61 80.23081882708335 80.47418682708334 +63 80.47418682708334 80.71177282708334 +54 80.71177282708334 80.94935882708334 +60 80.94935882708334 81.18694482708334 +63 81.18694482708334 81.42453082708334 +61 81.42453082708334 81.65482182708334 +54 81.65482182708334 81.88511282708335 +58 81.88511282708335 82.11540382708334 +61 82.11540382708334 82.34569482708335 +65 82.34569482708335 82.57598582708334 +54 82.57598582708334 82.80627682708335 +58 82.80627682708335 83.03656782708335 +65 83.03656782708335 83.53319132708334 +54 83.53319132708334 83.77410182708334 +60 83.77410182708334 84.00439282708335 +61 84.00439282708335 84.23468382708334 +63 84.23468382708334 84.46497482708334 +54 84.46497482708334 84.69526582708335 +60 84.69526582708335 84.92555682708334 +63 84.92555682708334 85.16696682708334 +61 85.16696682708334 85.39903932708334 +54 85.39903932708334 85.63111182708334 +58 85.63111182708334 85.86318432708335 +61 85.86318432708335 86.10648210833335 +65 86.10648210833335 86.36064193333337 +54 86.36064193333337 86.63659780625004 +58 86.63659780625004 86.92357683750002 +65 86.92357683750002 87.22246600833336 +55 87.33937950833335 87.4667767979167 +60 87.4667767979167 87.5917872979167 +62 87.5917872979167 87.7167977979167 +64 87.7167977979167 87.84165616250003 +55 87.84165616250003 87.9653128416667 +60 87.9653128416667 88.08655928333337 +64 88.08655928333337 88.20538443333338 +62 88.20538443333338 88.32260032916672 +53 88.32260032916672 88.43979707916671 +60 88.43979707916671 88.55699382916671 +62 88.55699382916671 88.67419057916672 +65 88.67419057916672 88.78953957916671 +57 88.78953957916671 88.90488857916672 +59 88.90488857916672 89.02023757916672 +65 89.02023757916672 89.13558657916671 +64 89.13558657916671 89.24890532916672 +55 89.24890532916672 89.36222407916671 +60 89.36222407916671 89.47554282916671 +64 89.47554282916671 89.58886157916672 +67 89.58886157916672 89.70218032916671 +59 89.70218032916671 89.81549907916671 +60 89.81549907916671 89.92881782916672 +67 89.92881782916672 90.04213657916671 +65 90.04213657916671 90.15545532916671 +57 90.15545532916671 90.26877407916672 +60 90.26877407916672 90.38209282916671 +65 90.38209282916671 90.5022658291667 +69 90.5022658291667 90.6210588291667 +59 90.6210588291667 90.7398518291667 +65 90.7398518291667 90.8586448291667 +69 90.8586448291667 90.9774378291667 +67 90.9774378291667 91.0908423291667 +60 91.0908423291667 91.2042468291667 +64 91.2042468291667 91.31765132916671 +67 91.31765132916671 91.44683907916671 +72 91.44683907916671 91.6190814541667 +64 91.56166732916671 91.67649557916671 +67 91.67649557916671 91.79132382916671 +72 91.79132382916671 91.9061520791667 +74 91.9061520791667 92.0761302041667 +64 92.0194708291667 92.1327895791667 +67 92.1327895791667 92.2461083291667 +74 92.2461083291667 92.35942707916671 +72 92.35942707916671 92.52940520416671 +64 92.4727458291667 92.5860645791667 +67 92.5860645791667 92.69938332916671 +72 92.69938332916671 92.8127020791667 +71 92.8127020791667 92.9826802041667 +64 92.9260208291667 93.03933957916671 +67 93.03933957916671 93.1526583291667 +71 93.1526583291667 93.2659770791667 +69 93.2659770791667 93.4359552041667 +64 93.37929582916671 93.4926145791667 +67 93.4926145791667 93.6059333291667 +69 93.6059333291667 93.71925207916671 +67 93.71925207916671 93.88923020416671 +60 93.8325708291667 93.9458895791667 +64 93.9458895791667 94.05920832916671 +67 94.05920832916671 94.1725270791667 +65 94.1725270791667 94.3425052041667 +60 94.2858458291667 94.39916457916671 +64 94.39916457916671 94.5124833291667 +65 94.5124833291667 94.6258020791667 +57 94.7396195791667 94.85343707916671 +64 94.6258020791667 94.95776978750004 +60 94.85343707916671 94.9672545791667 +64 94.9672545791667 95.0810720791667 +57 95.1948895791667 95.30870707916671 +62 95.0810720791667 95.41303978750004 +60 95.30870707916671 95.4225245791667 +62 95.4225245791667 95.54615432916671 +59 95.65947307916672 95.7727918291667 +67 95.54615432916671 95.87666735000005 +64 95.7727918291667 95.88611057916671 +67 95.88611057916671 96.01950307916671 +60 96.14529687291672 96.27541212708337 +69 96.01950307916671 96.39951932291672 +64 96.27541212708337 96.41104330625005 +69 96.41104330625005 96.55274302083338 +57 96.68175302083337 96.81076302083338 +64 96.55274302083338 96.91471714583338 +60 96.81076302083338 96.92416752083338 +64 96.92416752083338 97.03757202083338 +57 97.15097652083338 97.26438102083338 +62 97.03757202083338 97.36833514583337 +60 97.26438102083338 97.37778552083337 +62 97.37778552083337 97.49119002083337 +55 97.60551927083337 97.71984852083337 +60 97.49119002083337 97.82465033333337 +57 97.71984852083337 97.83417777083338 +60 97.83417777083338 97.94850702083338 +53 98.06489427083338 98.18128152083338 +59 97.94850702083338 98.28796983333338 +55 98.18128152083338 98.29766877083337 +59 98.29766877083337 98.41405602083337 +52 106.06479382500004 106.17811257500004 +56 106.17811257500004 106.29998457500004 +56 106.52964107500004 106.64446932500005 +60 106.64446932500005 106.76691832500005 +60 106.99657482500005 107.11140307500006 +64 107.11140307500006 107.23443457500005 +64 107.46448364791672 107.58013256250005 +68 107.58013256250005 107.69807556250005 +64 107.92829556250005 108.04340556250006 +68 108.04340556250006 108.16086831250006 +68 108.39052481250006 108.50535306250006 +72 108.50535306250006 108.62780206250007 +72 108.85745856250007 108.97228681250007 +76 108.97228681250007 109.09531831250007 +76 109.32536738541674 109.44161955000006 +80 109.44161955000006 109.56153330000005 +79 109.79101380000004 109.90198505000005 +84 109.90198505000005 110.01295630000004 +79 110.23867280000005 110.35153105000005 +84 110.35153105000005 110.46438930000004 +79 110.68512380000004 110.79549105000004 +86 110.79549105000004 110.90585830000003 +79 111.12659280000004 111.23696005000004 +84 111.23696005000004 111.36487005000004 +84 111.64582917500003 111.76787792500002 +89 111.76787792500002 111.88399466458337 +84 112.1102827416667 112.2222591604167 +87 112.2222591604167 112.33337158333336 +80 112.55449658333336 112.66505908333336 +86 112.66505908333336 112.77562158333336 +80 112.99674658333336 113.10730908333336 +84 113.10730908333336 113.23521908333336 +79 113.46568708333336 113.57790383333337 +86 113.57790383333337 113.69012058333337 +79 113.91475768750003 114.02673410625003 +84 114.02673410625003 114.1378465291667 +76 114.3589715291667 114.4695340291667 +83 114.4695340291667 114.5800965291667 +76 114.8012215291667 114.9117840291667 +81 114.9117840291667 115.0223465291667 +72 115.2375390291667 115.3459127791667 +79 115.3459127791667 115.4542865291667 +72 115.6738057916667 115.7848035916667 +77 115.7848035916667 115.89591601458336 +68 116.11704101458336 116.22760351458336 +76 116.22760351458336 116.33816601458336 +68 116.55929101458337 116.66985351458337 +74 116.66985351458337 116.81167076458337 +67 117.02920376458337 117.13797026458337 +74 117.13797026458337 117.25103276458337 +67 117.47297526458337 117.58394651458337 +72 117.58394651458337 117.69310876458337 +67 117.91143326458338 118.02059551458338 +74 118.02059551458338 118.12975776458337 +67 118.34808226458337 118.45724451458338 +72 118.45724451458338 118.57073476458338 +72 118.79433176458338 118.90613026458338 +77 118.90147199375005 119.01327049375004 +72 119.23987126458337 119.35084251458338 +75 119.35084251458338 119.46181376458337 +68 119.67778076458337 119.78576426458336 +74 119.78576426458336 119.89374776458337 +68 120.10971476458337 120.21769826458336 +72 120.21769826458336 120.34190126458336 +67 120.56182626458336 120.67178876458335 +74 120.67178876458335 120.78175126458336 +67 120.99849876458336 121.10687251458336 +72 121.10687251458336 121.21524626458336 +64 121.42567196250003 121.53404571250003 +71 121.54036751458337 121.64874126458336 +64 121.85916696250003 121.96754071250002 +69 121.97386251458336 122.08909651458336 +60 122.31064601458336 122.42142076458336 +67 122.42142076458336 122.53219551458336 +60 122.75131751458336 122.86087851458336 +65 122.86087851458336 122.97043951458336 +56 123.18956151458336 123.29912251458336 +64 123.29912251458336 123.40868351458336 +56 123.62780551458336 123.73736651458336 +62 123.73736651458336 123.85260051458336 +52 123.96136701458336 124.07013351458336 +55 124.07013351458336 124.17890001458336 +62 124.17890001458336 124.28766651458336 +52 124.39863776458337 124.50960901458336 +55 124.50960901458336 124.62058026458337 +60 124.62058026458337 124.73581426458337 +53 124.84458076458337 124.95334726458337 +57 124.95334726458337 125.06211376458337 +62 125.06211376458337 125.17088026458337 +53 125.28267876458338 125.39447726458337 +57 125.39447726458337 125.50627576458338 +60 125.50627576458338 125.61807426458337 +64 125.72782776458337 125.83758126458336 +67 125.83758126458336 125.94733476458337 +74 125.94733476458337 126.05708826458337 +64 126.16805951458338 126.27903076458337 +67 126.27903076458337 126.39000201458337 +72 126.39000201458337 126.50523601458337 +65 126.61539251458338 126.72554901458338 +69 126.72554901458338 126.83570551458338 +74 126.83570551458338 126.94586201458337 +65 127.05766051458338 127.16945901458337 +69 127.16945901458337 127.28125751458337 +72 127.28125751458337 127.39305601458337 +76 127.50122651458337 127.60939701458337 +72 127.60939701458337 127.71756751458337 +64 127.71756751458337 127.82573801458337 +76 127.93589451458337 128.04605101458336 +64 128.15620751458337 128.26636401458336 +71 128.04605101458336 128.26636401458336 +76 128.37453451458336 128.48270501458336 +72 128.48270501458336 128.59087551458336 +64 128.59087551458336 128.69904601458336 +76 128.80800226458337 128.91695851458337 +64 129.02591476458335 129.13487101458335 +71 128.91695851458337 129.13487101458335 +76 129.24304151458335 129.35121201458335 +72 129.35121201458335 129.45938251458335 +64 129.45938251458335 129.56755301458335 +79 129.67456601458335 129.78157901458334 +75 129.78157901458334 129.88859201458337 +67 129.88859201458337 129.99560501458336 +82 130.10093476458337 130.20626451458335 +78 130.20626451458335 130.31159426458336 +70 130.31159426458336 130.41692401458337 +83 130.52225376458335 130.62758351458336 +79 130.62758351458336 130.73291326458337 +71 130.73291326458337 130.84859151458338 +76 130.95676201458338 131.06493251458338 +72 131.06493251458338 131.17310301458338 +64 131.17310301458338 131.28127351458338 +76 131.39143001458336 131.50158651458338 +64 131.61174301458337 131.72189951458338 +71 131.50158651458338 131.72189951458338 +76 131.83007001458338 131.93824051458338 +72 131.93824051458338 132.04641101458338 +64 132.04641101458338 132.15458151458338 +76 132.2635377645834 132.3724940145834 +64 132.48145026458337 132.59040651458338 +71 132.3724940145834 132.59040651458338 +76 132.69857701458338 132.80674751458338 +72 132.80674751458338 132.91491801458338 +64 132.91491801458338 133.02308851458338 +79 133.13010151458337 133.23711451458337 +75 133.23711451458337 133.3441275145834 +67 133.3441275145834 133.4511405145834 +82 133.5568412645834 133.66254201458338 +78 133.66254201458338 133.7682427645834 +70 133.7682427645834 133.87394351458337 +83 133.97964426458338 134.0853450145834 +79 134.0853450145834 134.19104576458338 +71 134.19104576458338 134.30672401458338 +88 134.41076776458337 134.51481151458339 +84 134.51481151458339 134.61885526458337 +76 134.61885526458337 134.7228990145834 +88 134.82694276458338 134.93098651458337 +84 134.93098651458337 135.03503026458338 +76 135.03503026458338 135.13907401458337 +76 135.2431177645834 135.34716151458338 +72 135.34716151458338 135.4512052645834 +64 135.4512052645834 135.55524901458338 +76 135.65929276458337 135.7633365145834 +72 135.7633365145834 135.86738026458337 +64 135.86738026458337 135.9714240145834 +64 136.07642002291672 136.18057244791672 +60 136.18057244791672 136.28440648958338 +52 136.28440648958338 136.38792711458336 +64 136.49113315833335 136.59402640208336 +60 136.59402640208336 136.69661167708335 +52 136.69661167708335 136.79888217708336 +64 136.90081096875002 137.00243762916668 +60 137.00243762916668 137.10376117291665 +52 137.10376117291665 137.20509191041666 +64 137.30783695833333 137.41205108958331 +60 137.41205108958331 137.5175845520833 +52 137.5175845520833 137.77678630208328 +48 137.77678630208328 140.3269003020833 +52 137.77678630208328 140.3269003020833 +50 140.3269003020833 141.2817823020833 +47 140.3269003020833 141.2817823020833 +48 141.2817823020833 141.52050280208329 +52 141.2817823020833 141.52050280208329 +36 143.19154630208328 143.43026680208328 +track Piano left +36 0.0 0.061055000000000005 +48 0.061055000000000005 4.420131254166666 +59 4.899862254166666 5.373272254166666 +57 5.373272254166666 5.846682254166666 +59 5.846682254166666 6.320092254166666 +60 4.420131254166666 6.320092254166666 +60 6.320092254166666 6.7979295041666665 +59 6.7979295041666665 7.271601504166666 +57 7.271601504166666 7.745273504166667 +55 7.745273504166667 8.215235504166667 +53 8.215235504166667 8.696828004166667 +52 8.696828004166667 9.189498435416667 +57 9.189498435416667 9.747540060416666 +55 9.747540060416666 10.238721560416666 +53 10.238721560416666 10.707215560416666 +52 10.707215560416666 11.184846560416666 +50 11.184846560416666 11.671070560416666 +48 11.805999060416667 11.927005810416667 +50 11.927005810416667 12.048012560416668 +52 12.048012560416668 12.169019310416667 +53 12.169019310416667 12.288720789583333 +57 12.288720789583333 12.409532662499998 +60 12.409532662499998 12.531485141666666 +62 12.531485141666666 12.653811660416665 +64 12.653811660416665 12.775367660416665 +62 12.775367660416665 12.896383564583331 +60 12.896383564583331 13.017100793749998 +57 13.017100793749998 13.137519093749997 +53 13.137519093749997 13.257451843749998 +52 13.257451843749998 13.377384593749998 +50 13.377384593749998 13.497317343749998 +48 13.497317343749998 13.617250093749997 +41 11.671070560416666 13.617250093749997 +48 13.756345093749996 13.876277843749996 +50 13.876277843749996 13.996210593749996 +52 13.996210593749996 14.115730449999996 +53 14.115730449999996 14.233609002083327 +57 14.233609002083327 14.35311704791666 +60 14.35311704791666 14.474301845833324 +62 14.474301845833324 14.597207812499992 +64 14.597207812499992 14.71933690624999 +62 14.71933690624999 14.840705245833323 +60 14.840705245833323 14.96142247499999 +59 14.96142247499999 15.081494595833323 +57 15.081494595833323 15.200932970833325 +52 15.200932970833325 15.320340720833324 +50 15.320340720833324 15.439748470833324 +48 15.439748470833324 15.559156220833325 +41 13.617250093749997 15.559156220833325 +48 15.695445470833326 15.815378220833326 +50 15.815378220833326 15.935310970833326 +52 15.935310970833326 16.055243720833325 +53 16.055243720833325 16.17448642916666 +56 16.17448642916666 16.29410417916666 +60 16.29410417916666 16.414508408333322 +62 16.414508408333322 16.53577605208332 +64 16.53577605208332 16.657119087499986 +62 16.657119087499986 16.777375537499985 +60 16.777375537499985 16.896910162499985 +56 16.896910162499985 17.016317912499986 +53 17.016317912499986 17.135725662499983 +52 17.135725662499983 17.255133412499983 +50 17.255133412499983 17.374541162499984 +48 17.374541162499984 17.493948912499985 +41 15.559156220833325 17.493948912499985 +48 17.631626662499986 17.751559412499986 +50 17.751559412499986 17.871492162499987 +52 17.871492162499987 17.990751243749987 +53 17.990751243749987 18.10863401458332 +56 18.10863401458332 18.227689218749987 +60 18.227689218749987 18.348030006249985 +62 18.348030006249985 18.46958723333332 +64 18.46958723333332 18.591531033333318 +62 18.591531033333318 18.712540487499986 +60 18.712540487499986 18.832604462499983 +58 18.832604462499983 18.95165052083332 +56 18.95165052083332 19.07000302083332 +52 19.07000302083332 19.18835552083332 +50 19.18835552083332 19.30670802083332 +48 19.30670802083332 19.425060520833316 +41 17.493948912499985 19.425060520833316 +40 19.425060520833316 19.543413020833317 +47 19.543413020833317 19.661765520833317 +47 19.907409270833316 20.027342020833316 +52 20.027342020833316 20.147274770833317 +52 20.39509577083332 20.51502852083332 +56 20.51502852083332 20.63496127083332 +56 20.88339577083332 21.003889547916657 +59 21.003889547916657 21.12587310624999 +64 21.411067795833322 23.329991795833322 +64 23.329991795833322 23.419941358333322 +64 23.797388295833322 23.884254233333323 +64 24.264259795833322 24.35381560833332 +64 24.731131295833322 24.817997233333323 +67 25.19852779583332 25.29630285833332 +64 25.67594054583332 25.76170060833332 +60 26.135803295833323 26.225359108333322 +57 26.598251295833325 26.684011358333326 +64 27.069179795833325 27.159129358333324 +64 27.536576295833324 27.623442233333325 +64 28.003447795833324 28.093003608333323 +64 28.470319295833324 28.557185233333325 +67 28.950327045833323 29.04810210833332 +64 29.433746545833323 29.521363420833325 +60 29.903621795833324 29.990858233333324 +57 30.367400795833323 30.454266733333323 +53 30.834797295833322 30.92474685833332 +55 31.302193795833322 31.389059733333323 +53 31.76906529583332 31.85901485833332 +55 32.23646179583332 32.32332773333332 +53 32.703333295833325 32.79328285833333 +53 33.170729795833324 33.257595733333325 +53 33.63501604583332 33.72225248333332 +53 34.09879504583332 34.18566098333332 +52 34.56566654583332 34.65561610833332 +55 35.033063045833316 35.11992898333332 +52 35.49993454583331 35.589884108333315 +55 35.96733104583331 36.05419698333331 +52 36.43420254583331 36.52415210833331 +52 36.90159904583331 36.98846498333331 +52 37.3658852958333 37.453121733333305 +52 37.829664295833304 37.916530233333305 +52 38.2965357958333 38.3864853583333 +52 38.7639322958333 38.8522785458333 +52 39.2509237958333 39.3493747958333 +52 39.76832856666664 39.864460304166634 +36 40.40358519374997 40.47692044374997 +48 40.47692044374997 42.932417787499965 +45 42.932417787499965 43.405827787499966 +50 43.405827787499966 43.886397787499966 +47 43.886397787499966 44.35980778749997 +61 45.32326853749997 45.41104253749997 +52 44.35980778749997 46.277523287499974 +52 46.277523287499974 47.230361537499974 +61 47.230361537499974 47.31813553749998 +59 48.18461628749998 49.13745453749998 +58 49.13745453749998 50.09170928749998 +57 50.09170928749998 51.98086103749998 +58 51.98086103749998 53.87746628749998 +59 53.87746628749998 55.81434628749998 +60 55.81434628749998 57.71309328333331 +53 59.09482459999997 59.212032358333296 +52 59.212032358333296 59.3295228583333 +50 59.3295228583333 59.44744817291664 +48 59.44744817291664 59.56554791041663 +46 59.56554791041663 59.6840798083333 +45 59.6840798083333 59.803639479166634 +43 59.803639479166634 59.92432517291663 +41 59.92432517291663 60.04603088124996 +40 60.04603088124996 60.62016588124996 +38 60.62016588124996 61.17690688124996 +36 61.17690688124996 61.79203732708329 +53 64.4836488270833 64.7822453270833 +58 64.7822453270833 65.0808418270833 +62 65.0808418270833 65.3794383270833 +34 61.79203732708329 66.56116232708331 +34 66.56116232708331 67.7555483270833 +39 67.7555483270833 68.3326383270833 +34 68.3326383270833 69.5057353270833 +39 69.5057353270833 70.6977493270833 +34 70.6977493270833 71.5222653270833 +66 74.03378582708332 74.99555582708332 +70 74.03378582708332 74.99555582708332 +65 74.99555582708332 75.49181832708332 +68 74.99555582708332 75.49181832708332 +32 71.53828071458331 75.50783371458333 +66 76.50463382708332 77.50195082708333 +63 76.50463382708332 77.50195082708333 +66 78.00333882708334 78.96510882708334 +70 78.00333882708334 78.96510882708334 +65 78.96510882708334 79.46137132708334 +68 78.96510882708334 79.46137132708334 +32 75.50783371458333 79.47738671458335 +68 83.30378082708334 85.16696682708334 +51 85.16696682708334 86.10648210833335 +44 86.10648210833335 87.22246600833336 +32 79.47738671458335 87.23610591666669 +31 87.22246600833336 90.9774378291667 +36 90.9774378291667 91.44683907916671 +43 87.22246600833336 91.44683907916671 +59 91.9061520791667 92.35942707916671 +57 92.35942707916671 92.8127020791667 +59 92.8127020791667 93.2659770791667 +60 91.44683907916671 93.2659770791667 +60 93.2659770791667 93.71925207916671 +59 93.71925207916671 94.1725270791667 +57 94.1725270791667 94.6258020791667 +55 94.6258020791667 95.0810720791667 +53 95.0810720791667 95.54615432916671 +52 95.54615432916671 96.01950307916671 +57 96.01950307916671 96.55274302083338 +55 96.55274302083338 97.03757202083338 +53 97.03757202083338 97.49119002083337 +52 97.49119002083337 97.94850702083338 +50 97.94850702083338 98.41405602083337 +48 98.54324377083337 98.65910077083338 +50 98.65910077083338 98.77495777083337 +52 98.77495777083337 98.89081477083337 +53 98.89081477083337 99.00542353541671 +57 99.00542353541671 99.12109593750004 +60 99.12109593750004 99.23786088750005 +62 99.23786088750005 99.3549854104167 +64 99.3549854104167 99.4713726604167 +62 99.4713726604167 99.58723849791672 +60 99.58723849791672 99.70282033125005 +57 99.70282033125005 99.81811725625005 +53 99.81811725625005 99.93294550625005 +52 99.93294550625005 100.04777375625005 +50 100.04777375625005 100.16260200625004 +48 100.16260200625004 100.27743025625004 +41 98.41405602083337 100.27743025625004 +48 100.41060975625004 100.52543800625004 +50 100.52543800625004 100.64026625625004 +52 100.64026625625004 100.75469962291672 +53 100.75469962291672 100.86756260000006 +57 100.86756260000006 100.9819855104167 +60 100.9819855104167 101.09801533333336 +62 101.09801533333336 101.21569369375003 +64 101.21569369375003 101.3326263979167 +62 101.3326263979167 101.44883247916668 +60 101.44883247916668 101.56441431250002 +59 101.56441431250002 101.67937708958334 +57 101.67937708958334 101.79373544791667 +52 101.79373544791667 101.90806469791667 +50 101.90806469791667 102.02239394791667 +48 102.02239394791667 102.13672319791667 +41 100.27743025625004 102.13672319791667 +48 102.26721469791667 102.38204294791667 +50 102.38204294791667 102.49687119791668 +52 102.49687119791668 102.61169944791668 +53 102.61169944791668 102.72586676458334 +56 102.72586676458334 102.84039561458336 +60 102.84039561458336 102.95567803333336 +62 102.95567803333336 103.07178690208336 +64 103.07178690208336 103.1879660979167 +62 103.1879660979167 103.30310679791671 +60 103.30310679791671 103.41755663958337 +56 103.41755663958337 103.53188588958336 +53 103.53188588958336 103.64621513958338 +52 103.64621513958338 103.76054438958337 +50 103.76054438958337 103.87487363958337 +48 103.87487363958337 103.98920288958337 +41 102.13672319791667 103.98920288958337 +48 104.12102463958337 104.23585288958337 +50 104.23585288958337 104.35068113958337 +52 104.35068113958337 104.46486510625004 +53 104.46486510625004 104.57773153958338 +56 104.57773153958338 104.69172179375003 +60 104.69172179375003 104.80694218333338 +62 104.80694218333338 104.92332840000005 +64 104.92332840000005 105.04008402500004 +62 105.04008402500004 105.1559451041667 +60 105.1559451041667 105.27090047083337 +58 105.27090047083337 105.38488132500004 +56 105.38488132500004 105.49820007500004 +52 105.49820007500004 105.61151882500005 +50 105.61151882500005 105.72483757500004 +48 105.72483757500004 105.83815632500004 +41 103.98920288958337 105.83815632500004 +40 105.83815632500004 105.95147507500005 +48 105.95147507500005 106.06479382500004 +48 106.29998457500004 106.41481282500004 +52 106.41481282500004 106.52964107500004 +52 106.76691832500005 106.88174657500005 +56 106.88174657500005 106.99657482500005 +56 107.23443457500005 107.34944414791673 +60 107.34944414791673 107.46448364791672 +56 107.69807556250005 107.81318556250005 +60 107.81318556250005 107.92829556250005 +60 108.16086831250006 108.27569656250006 +64 108.27569656250006 108.39052481250006 +64 108.62780206250007 108.74263031250007 +68 108.74263031250007 108.85745856250007 +68 109.09531831250007 109.21032788541675 +72 109.21032788541675 109.32536738541674 +76 109.67627355000005 109.79101380000004 +72 109.56153330000005 110.01295630000004 +76 110.12581455000004 110.23867280000005 +72 110.01295630000004 110.46438930000004 +76 110.57475655000003 110.68512380000004 +74 110.46438930000004 110.90585830000003 +76 111.01622555000003 111.12659280000004 +72 110.90585830000003 111.36487005000004 +80 111.50668730000004 111.64582917500003 +77 111.36487005000004 111.88399466458337 +80 111.99756637500002 112.1102827416667 +75 111.88399466458337 112.33337158333336 +75 112.44393408333336 112.55449658333336 +74 112.33337158333336 112.77562158333336 +75 112.88618408333336 112.99674658333336 +72 112.77562158333336 113.23521908333336 +76 113.35045308333336 113.46568708333336 +74 113.23521908333336 113.69012058333337 +76 113.80233733333337 113.91475768750003 +72 113.69012058333337 114.1378465291667 +72 114.2484090291667 114.3589715291667 +71 114.1378465291667 114.5800965291667 +72 114.6906590291667 114.8012215291667 +69 114.5800965291667 115.0223465291667 +69 115.1299427791667 115.2375390291667 +67 115.0223465291667 115.4542865291667 +69 115.56266027916669 115.6738057916667 +65 115.4542865291667 115.89591601458336 +65 116.00647851458336 116.11704101458336 +64 115.89591601458336 116.33816601458336 +65 116.44872851458337 116.55929101458337 +62 116.33816601458336 116.81167076458337 +64 116.92043726458337 117.02920376458337 +62 116.81167076458337 117.25103276458337 +64 117.36200401458338 117.47297526458337 +60 117.25103276458337 117.69310876458337 +64 117.80227101458337 117.91143326458338 +62 117.69310876458337 118.12975776458337 +64 118.23892001458337 118.34808226458337 +60 118.12975776458337 118.57073476458338 +68 118.68253326458338 118.79433176458338 +65 118.57073476458338 119.01792876458337 +68 119.12890001458338 119.23987126458337 +63 119.01792876458337 119.46181376458337 +63 119.56979726458337 119.67778076458337 +62 119.46181376458337 119.89374776458337 +63 120.00173126458337 120.10971476458337 +60 119.89374776458337 120.34190126458336 +64 120.45186376458335 120.56182626458336 +62 120.34190126458336 120.78175126458336 +64 120.89012501458336 120.99849876458336 +60 120.78175126458336 121.21524626458336 +60 121.32362001458337 121.43199376458337 +59 121.21524626458336 121.64874126458336 +60 121.75711501458336 121.86548876458336 +57 121.64874126458336 122.08909651458336 +57 122.19987126458336 122.31064601458336 +55 122.08909651458336 122.53219551458336 +57 122.64175651458336 122.75131751458336 +53 122.53219551458336 122.97043951458336 +53 123.08000051458336 123.18956151458336 +52 122.97043951458336 123.40868351458336 +53 123.51824451458336 123.62780551458336 +50 123.40868351458336 123.85260051458336 +50 123.85260051458336 124.28766651458336 +48 124.28766651458336 124.73581426458337 +50 124.73581426458337 125.17088026458337 +48 125.17088026458337 125.61807426458337 +41 124.73581426458337 125.61807426458337 +62 125.61807426458337 126.05708826458337 +60 126.05708826458337 126.50523601458337 +62 126.50523601458337 126.94586201458337 +60 126.94586201458337 127.39305601458337 +53 126.50523601458337 127.39305601458337 +67 127.39305601458337 127.82573801458337 +69 127.82573801458337 128.04605101458336 +60 127.39305601458337 128.26636401458336 +67 128.26636401458336 128.69904601458336 +69 128.69904601458336 128.91695851458337 +60 128.26636401458336 129.13487101458335 +67 129.13487101458335 129.56755301458335 +60 129.13487101458335 129.56755301458335 +70 129.56755301458335 129.99560501458336 +63 129.56755301458335 129.99560501458336 +66 129.99560501458336 130.41692401458337 +73 129.99560501458336 130.41692401458337 +74 130.41692401458337 130.84859151458338 +67 130.41692401458337 130.84859151458338 +67 130.84859151458338 131.28127351458338 +69 131.28127351458338 131.50158651458338 +60 130.84859151458338 131.72189951458338 +67 131.72189951458338 132.15458151458338 +69 132.15458151458338 132.3724940145834 +60 131.72189951458338 132.59040651458338 +67 132.59040651458338 133.02308851458338 +60 132.59040651458338 133.02308851458338 +70 133.02308851458338 133.4511405145834 +63 133.02308851458338 133.4511405145834 +66 133.4511405145834 133.87394351458337 +73 133.4511405145834 133.87394351458337 +74 133.87394351458337 134.30672401458338 +67 133.87394351458337 134.30672401458338 +72 134.7228990145834 135.13907401458337 +79 134.30672401458338 135.13907401458337 +60 135.55524901458338 135.9714240145834 +67 135.13907401458337 135.9714240145834 +55 135.9714240145834 136.38792711458336 +48 136.38792711458336 136.79888217708336 +43 136.79888217708336 137.20509191041666 +36 137.20509191041666 137.77678630208328 +45 137.77678630208328 141.2817823020833 +41 137.77678630208328 141.2817823020833 +36 141.2817823020833 141.52050280208329 +43 141.2817823020833 141.52050280208329 +24 143.19055163333329 143.42927213333328 diff --git a/test/midi/debussy/childrens_corner_2.mid b/test/midi/debussy/childrens_corner_2.mid new file mode 100644 index 0000000000000000000000000000000000000000..f1c31b5853f6ba4203190316dd67069f8f6e459d GIT binary patch literal 8040 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 literal 0 HcmV?d00001 diff --git a/test/midi/debussy/childrens_corner_2.mid.txt b/test/midi/debussy/childrens_corner_2.mid.txt new file mode 100644 index 0000000..d02d958 --- /dev/null +++ b/test/midi/debussy/childrens_corner_2.mid.txt @@ -0,0 +1,712 @@ +track Piano right +55 8.287847000000001 8.444636000000001 +53 8.287847000000001 8.444636000000001 +55 8.601425 8.758214 +53 8.601425 8.758214 +43 11.423627 11.580416000000001 +41 11.423627 11.580416000000001 +67 21.847819500000004 22.006264750000003 +65 21.847819500000004 22.006264750000003 +79 20.580257500000002 23.1153815 +67 22.164710000000003 23.749162500000004 +65 22.164710000000003 23.749162500000004 +67 23.749162500000004 26.2679805 +65 23.749162500000004 26.2679805 +63 25.6505055 28.1693235 +67 26.2679805 28.7899915 +65 26.2679805 28.7899915 +61 28.1693235 30.6913345 +67 28.7899915 31.3120025 +65 28.7899915 31.3120025 +63 30.6913345 31.9525495 +63 31.9525495 33.2268415 +67 31.3120025 33.8572925 +65 31.3120025 33.8572925 +67 33.8572925 35.813950500000004 +65 33.8572925 35.813950500000004 +61 33.2268415 35.813950500000004 +43 36.4614095 36.62327425 +41 36.4614095 36.62327425 +43 36.785139 36.94700375 +41 36.785139 36.94700375 +43 39.7272665 39.8927015 +41 39.7272665 39.8927015 +43 45.4455905 45.64123425 +41 45.4455905 45.64123425 +65 47.4099655 48.0828375 +67 47.4099655 48.0828375 +62 48.0828375 48.755709499999995 +60 48.0828375 48.755709499999995 +67 48.755709499999995 49.375736499999995 +65 48.755709499999995 49.375736499999995 +62 49.375736499999995 50.04785449999999 +60 49.375736499999995 50.04785449999999 +65 50.04785449999999 50.7199725 +67 50.04785449999999 50.7199725 +62 50.7199725 51.392090499999995 +60 50.7199725 51.392090499999995 +67 51.392090499999995 52.01859149999999 +65 51.392090499999995 52.01859149999999 +62 52.01859149999999 52.69070949999999 +60 52.01859149999999 52.69070949999999 +65 52.69070949999999 53.33844749999999 +62 53.33844749999999 54.63392349999999 +65 54.63392349999999 54.93341449999999 +67 54.93341449999999 55.23290549999999 +60 55.23290549999999 55.543239499999984 +62 55.543239499999984 55.90568949999999 +65 55.90568949999999 57.20060749999999 +62 57.20060749999999 57.51418549999999 +60 57.51418549999999 57.80163199999999 +60 57.82776349999999 58.12996949999999 +62 58.12996949999999 58.43326699999999 +62 58.460839499999985 59.087995499999984 +60 59.087995499999984 59.725141499999985 +65 59.725141499999985 60.39725949999998 +72 62.257340499999984 62.55833399999998 +69 62.55833399999998 62.859327499999985 +62 60.39725949999998 62.859327499999985 +67 62.859327499999985 63.16032099999998 +65 63.16032099999998 63.508066499999984 +67 63.508066499999984 64.76237849999998 +69 64.76237849999998 65.06953549999999 +72 65.06953549999999 65.3831135 +62 62.859327499999985 65.3831135 +60 62.859327499999985 65.3831135 +67 65.3831135 66.0202595 +74 66.0202595 66.6441545 +72 66.6441545 67.2847015 +69 67.2847015 67.9356725 +62 65.3831135 67.9356725 +60 65.3831135 67.9356725 +67 67.9356725 68.23045499999999 +65 68.23045499999999 68.54207849999999 +67 68.54207849999999 69.19304949999999 +69 69.19304949999999 69.82683049999999 +72 69.82683049999999 70.55260749999998 +62 67.9356725 70.55260749999998 +60 67.9356725 70.55260749999998 +67 70.55260749999998 73.05466449999997 +62 70.55260749999998 73.05466449999997 +60 70.55260749999998 73.05466449999997 +46 73.68777649999997 73.83589549999996 +44 73.68777649999997 73.83589549999996 +46 73.98401449999997 74.91403349999997 +44 73.98401449999997 74.91403349999997 +46 74.91403349999997 75.07247874999997 +44 74.91403349999997 75.07247874999997 +44 77.07386640416665 77.63739240416665 +46 77.07386640416665 77.63739240416665 +56 77.63739240416665 77.97919490416665 +58 77.63739240416665 77.97919490416665 +46 78.61297590416665 78.75565640416664 +44 78.61297590416665 78.75565640416664 +46 78.89833690416664 79.81747890416665 +44 78.89833690416664 79.81747890416665 +46 79.81747890416665 79.97592415416665 +44 79.81747890416665 79.97592415416665 +46 81.08475701041665 81.23456226041665 +48 81.08475701041665 81.23456226041665 +60 81.68448201041666 81.83274726041665 +58 81.68448201041666 81.83274726041665 +66 83.49625301041667 83.63956051041667 +61 83.49625301041667 83.63956051041667 +58 83.49625301041667 83.63956051041667 +66 83.78286801041666 83.93473601041666 +61 83.78286801041666 83.93473601041666 +58 83.78286801041666 83.93473601041666 +56 84.08660401041666 84.66536401041667 +60 84.08660401041666 84.66536401041667 +65 84.08660401041666 84.66536401041667 +56 84.66536401041667 85.24412401041667 +60 84.66536401041667 85.24412401041667 +65 84.66536401041667 85.24412401041667 +63 85.83426901041668 85.97689526041668 +58 85.83426901041668 85.97689526041668 +54 85.83426901041668 85.97689526041668 +63 86.11952151041667 86.26214776041668 +58 86.11952151041667 86.26214776041668 +54 86.11952151041667 86.26214776041668 +53 86.40477401041667 87.02544201041667 +56 86.40477401041667 87.02544201041667 +61 86.40477401041667 87.02544201041667 +62 87.02544201041667 87.60700601041667 +59 87.02544201041667 87.60700601041667 +70 87.02544201041667 87.60700601041667 +65 87.02544201041667 87.60700601041667 +66 88.18857001041667 88.32477276041666 +61 88.18857001041667 88.32477276041666 +58 88.18857001041667 88.32477276041666 +66 88.46097551041667 88.59717826041667 +61 88.46097551041667 88.59717826041667 +58 88.46097551041667 88.59717826041667 +56 88.73338101041666 88.86481001041666 +60 88.73338101041666 88.86481001041666 +65 88.73338101041666 88.86481001041666 +65 88.99623901041666 89.13244176041665 +60 88.99623901041666 89.13244176041665 +56 88.99623901041666 89.13244176041665 +56 89.26864451041666 89.41059576041667 +60 89.26864451041666 89.41059576041667 +65 89.26864451041666 89.41059576041667 +65 89.55254701041666 89.69936126041667 +60 89.55254701041666 89.69936126041667 +56 89.55254701041666 89.69936126041667 +63 90.43632051041666 90.57894676041667 +58 90.43632051041666 90.57894676041667 +54 90.43632051041666 90.57894676041667 +63 90.72157301041666 90.86419926041667 +58 90.72157301041666 90.86419926041667 +54 90.72157301041666 90.86419926041667 +54 91.00682551041666 91.61184751041667 +58 91.00682551041666 91.61184751041667 +61 91.00682551041666 91.61184751041667 +56 91.61184751041667 92.19341151041667 +63 91.61184751041667 92.19341151041667 +53 91.61184751041667 92.19341151041667 +58 92.19341151041667 95.13609751041666 +55 92.19341151041667 95.13609751041666 +52 92.19341151041667 95.13609751041666 +51 96.91041051041667 97.90568251041667 +49 97.90568251041667 98.90095451041667 +55 96.91041051041667 98.90095451041667 +51 98.90095451041667 99.39859051041667 +51 99.39859051041667 99.89622651041667 +49 99.89622651041667 100.89176976875 +55 98.90095451041667 100.89176976875 +55 100.89176976875 102.82269447291667 +63 100.89176976875 102.82269447291667 +67 100.89176976875 102.82269447291667 +61 102.82269447291667 104.75524206458331 +69 102.82269447291667 104.75524206458331 +73 102.82269447291667 104.75524206458331 +51 104.75524206458331 105.75466006458332 +49 105.75466006458332 106.73889312916664 +55 104.75524206458331 106.73889312916664 +51 106.73889312916664 107.24075675624998 +51 107.24075675624998 107.74255475624997 +49 107.74255475624997 108.73473783333331 +55 106.73889312916664 108.73473783333331 +71 108.73473783333331 111.60917757291662 +83 108.73473783333331 111.60917757291662 +79 108.73473783333331 111.60917757291662 +59 112.52990242083328 113.01490042083329 +55 112.52990242083328 113.01490042083329 +55 113.01490042083329 113.13467992083329 +59 113.01490042083329 113.13467992083329 +55 113.25445942083329 113.37423892083329 +59 113.25445942083329 113.37423892083329 +54 113.49401842083329 113.61724192083328 +58 113.49401842083329 113.61724192083328 +54 113.74046542083329 113.86072517083329 +58 113.74046542083329 113.86072517083329 +54 113.9809849208333 114.10124467083328 +58 113.9809849208333 114.10124467083328 +54 114.22150442083328 114.34176417083329 +58 114.22150442083328 114.34176417083329 +57 114.46202392083329 114.9470219208333 +53 114.46202392083329 114.9470219208333 +57 114.9470219208333 115.0668014208333 +53 114.95301089583329 115.0727903958333 +53 115.1865809208333 115.3063604208333 +57 115.1865809208333 115.3063604208333 +52 115.4261399208333 115.9131064208333 +56 115.4261399208333 115.9131064208333 +56 115.9131064208333 116.3941454208333 +60 115.9131064208333 116.3941454208333 +59 116.3941454208333 116.8750079208333 +55 116.3941454208333 116.8750079208333 +57 116.8750079208333 117.3458549208333 +64 116.8750079208333 117.3458549208333 +67 117.3458549208333 117.8277254208333 +59 117.3458549208333 117.8277254208333 +64 117.8277254208333 118.29857242083331 +57 117.8277254208333 118.29857242083331 +59 118.29857242083331 118.78036192083331 +55 118.29857242083331 118.78036192083331 +52 118.78036192083331 119.25306292083332 +57 118.78036192083331 119.25306292083332 +55 119.25306292083332 120.70193092083332 +59 119.25306292083332 120.70193092083332 +52 120.70193092083332 121.17277792083333 +57 120.70193092083332 121.17277792083333 +55 121.17277792083333 121.64455192083332 +59 121.17277792083333 121.64455192083332 +57 121.64455192083332 122.11539892083333 +64 121.64455192083332 122.11539892083333 +55 122.11539892083333 123.06988942083333 +59 122.11539892083333 123.06988942083333 +57 123.06988942083333 123.54863642083333 +52 123.06988942083333 123.54863642083333 +55 123.54863642083333 124.07198792083332 +59 123.54863642083333 124.07198792083332 +61 124.07198792083332 124.54225131666665 +58 124.07198792083332 125.94296992083333 +49 126.18310442083333 126.42323892083334 +58 126.42323892083334 126.65958942083334 +61 126.42323892083334 126.65958942083334 +49 126.65958942083334 127.35419992083334 +49 127.35419992083334 127.58332992083334 +49 128.06850242083334 128.30863692083332 +58 128.30863692083332 128.5449874208333 +61 128.30863692083332 128.5449874208333 +49 128.5449874208333 128.78133792083332 +49 129.01046792083332 129.12503292083332 +49 129.46872792083332 129.59124692083333 +49 129.95390042083332 130.1940349208333 +58 130.1940349208333 130.4303854208333 +61 130.1940349208333 130.4303854208333 +49 130.4303854208333 131.1510329208333 +49 131.1510329208333 131.4199224208333 +63 131.7273939208333 132.24494792083328 +63 132.24494792083328 132.3710724208333 +63 132.4971969208333 132.6233214208333 +58 131.7273939208333 132.7494459208333 +51 131.7273939208333 132.7494459208333 +61 132.7494459208333 132.8704819208333 +61 132.9915179208333 133.1125539208333 +61 133.23358992083328 133.35462592083329 +61 133.4756619208333 133.6012584208333 +58 132.7494459208333 133.7268549208333 +53 132.7494459208333 133.7268549208333 +60 133.7268549208333 134.2356309208333 +54 133.7268549208333 134.2356309208333 +60 134.2356309208333 134.3596696708333 +60 134.4837084208333 134.6077471708333 +55 134.2356309208333 134.7317859208333 +58 133.7268549208333 134.7317859208333 +66 135.2671659208333 135.8464839208333 +59 134.7317859208333 135.8464839208333 +56 134.7317859208333 135.8464839208333 +70 136.8512559208333 137.09729892083328 +70 137.09729892083328 137.3433419208333 +58 135.8464839208333 138.85897661874998 +58 138.8641819208333 139.1082234208333 +58 139.1082234208333 139.35226492083328 +51 135.8464839208333 139.8924369208333 +63 135.8464839208333 139.8924369208333 +70 140.9275449208333 141.1808589208333 +70 141.1808589208333 141.4341729208333 +58 139.8924369208333 143.05529166041663 +58 143.0610219208333 143.3492894208333 +58 143.3492894208333 143.6375569208333 +51 139.8924369208333 144.2653689208333 +63 139.8924369208333 144.2653689208333 +77 144.2653689208333 144.8783019208333 +70 144.2653689208333 144.8783019208333 +70 144.8783019208333 145.0315351708333 +70 145.1847684208333 145.3380016708333 +69 145.4912349208333 145.6444681708333 +69 145.7977014208333 145.9509346708333 +74 144.8783019208333 146.1041679208333 +69 146.1041679208333 146.2458644208333 +77 146.1041679208333 146.3875609208333 +69 146.3875609208333 146.52925742083332 +79 146.3875609208333 146.6709539208333 +72 146.6709539208333 146.9646109208333 +74 146.9646109208333 147.28352242083332 +67 146.6709539208333 147.28352242083332 +67 147.28352242083332 147.4366931708333 +67 147.58986392083332 147.7430346708333 +65 147.89620542083333 148.50888842083333 +77 147.28352242083332 148.50888842083333 +72 148.80559492083333 149.07757587916666 +74 148.50888842083333 149.10230142083333 +72 149.10230142083333 149.39900792083333 +74 149.39900792083333 149.68600433749998 +70 149.10230142083333 149.71209492083332 +70 149.71209492083332 149.86044817083334 +70 150.00880142083332 150.15715467083334 +74 149.71209492083332 150.30550792083332 +69 150.30550792083332 150.45623142083332 +69 150.60695492083332 150.75767842083332 +72 150.30550792083332 150.9084019208333 +69 150.9084019208333 151.05675517083333 +69 151.2051084208333 151.35346167083333 +77 150.9084019208333 151.5018149208333 +67 151.5018149208333 152.0952279208333 +67 152.0952279208333 152.24358117083332 +67 152.3919344208333 152.54028767083332 +65 152.6886409208333 153.2820539208333 +72 153.2820539208333 153.5668729208333 +69 153.5668729208333 153.8516919208333 +62 153.2820539208333 153.8516919208333 +74 151.5018149208333 153.8516919208333 +67 153.8516919208333 154.1365109208333 +65 154.1365109208333 154.4478759208333 +67 154.4478759208333 155.6347019208333 +69 155.6347019208333 155.9253434208333 +72 155.9253434208333 156.22204992083329 +60 153.8516919208333 156.22204992083329 +62 153.8516919208333 156.22204992083329 +67 156.22204992083329 156.83385792083328 +74 156.83385792083328 157.42423492083327 +72 157.42423492083327 158.03035692083327 +69 158.03035692083327 158.64630992083326 +60 156.22204992083329 158.64630992083326 +62 156.22204992083329 158.64630992083326 +67 158.64630992083326 158.94149842083326 +65 158.94149842083326 159.23668692083325 +67 159.23668692083325 159.85263992083324 +69 159.85263992083324 160.45233992083325 +72 160.45233992083325 161.16603092083326 +60 158.64630992083326 161.16603092083326 +62 158.64630992083326 161.16603092083326 +67 161.16603092083326 165.7535419208333 +65 165.7535419208333 166.0545354208333 +62 161.16603092083326 166.0545354208333 +60 161.16603092083326 166.0545354208333 +62 166.0545354208333 170.41064942083335 +67 166.0545354208333 170.41064942083335 +60 166.0545354208333 170.41064942083335 +50 171.03519442083336 173.53337442083335 +48 171.03519442083336 173.53337442083335 +50 173.53337442083335 176.03155442083334 +48 173.53337442083335 176.03155442083334 +50 176.03155442083334 181.02791442083335 +48 176.03155442083334 181.02791442083335 +75 182.27700442083335 183.52609442083335 +73 184.77518442083334 186.02427442083336 +55 181.02791442083335 188.52245442083336 +53 181.02791442083335 188.52245442083336 +track Piano left +41 0.0 0.647738 +38 0.647738 1.943214 +41 1.943214 2.242705 +43 2.242705 2.542196 +36 2.542196 2.8525300000000002 +38 2.8525300000000002 3.2027110000000003 +41 3.2027110000000003 4.497629 +38 4.497629 4.811207 +36 4.811207 5.0986535 +36 5.124785 5.438363 +38 5.438363 5.7416605 +38 5.769233 6.396389 +36 6.396389 7.0335350000000005 +41 7.0335350000000005 7.660691000000001 +38 7.660691000000001 12.050783000000001 +36 12.050783000000001 12.351776500000001 +33 12.351776500000001 12.65277 +31 12.65277 12.9537635 +29 12.9537635 13.282819000000002 +31 13.282819000000002 14.537131000000002 +33 14.537131000000002 14.844288000000002 +36 14.844288000000002 15.168017500000003 +31 15.168017500000003 15.805163500000003 +38 15.805163500000003 16.429058500000004 +36 16.429058500000004 17.069605500000005 +33 17.069605500000005 17.731345500000003 +31 17.731345500000003 18.043293000000002 +29 18.043293000000002 18.355240500000004 +31 18.355240500000004 19.006211500000003 +33 19.006211500000003 19.719054500000002 +36 19.719054500000002 20.580257500000002 +53 21.847819500000004 22.006264750000003 +55 21.847819500000004 22.006264750000003 +53 22.164710000000003 23.749162500000004 +55 22.164710000000003 23.749162500000004 +31 20.580257500000002 25.6505055 +55 23.749162500000004 26.2679805 +53 23.749162500000004 26.2679805 +55 26.2679805 28.7899915 +53 26.2679805 28.7899915 +55 28.7899915 31.3120025 +53 28.7899915 31.3120025 +55 31.3120025 33.8572925 +53 31.3120025 33.8572925 +55 33.8572925 35.813950500000004 +53 33.8572925 35.813950500000004 +39 35.813950500000004 38.4037865 +37 38.4037865 42.3742265 +34 42.3742265 43.8804405 +30 43.8804405 45.4455905 +31 45.4455905 45.64123425 +29 45.4455905 45.64123425 +55 47.4099655 48.0828375 +53 47.4099655 48.0828375 +48 48.0828375 48.755709499999995 +50 48.0828375 48.755709499999995 +41 48.755709499999995 49.375736499999995 +34 49.375736499999995 50.04785449999999 +55 50.04785449999999 50.7199725 +53 50.04785449999999 50.7199725 +48 50.7199725 51.392090499999995 +50 50.7199725 51.392090499999995 +41 51.392090499999995 52.01859149999999 +34 52.01859149999999 52.69070949999999 +55 52.69070949999999 53.33844749999999 +53 52.69070949999999 53.33844749999999 +48 53.33844749999999 53.98618549999999 +50 53.33844749999999 53.98618549999999 +41 53.98618549999999 54.63392349999999 +34 54.63392349999999 55.23290549999999 +55 55.23290549999999 55.90568949999999 +53 55.23290549999999 55.90568949999999 +48 55.90568949999999 56.553148499999985 +50 55.90568949999999 56.553148499999985 +41 56.553148499999985 57.20060749999999 +34 57.20060749999999 57.82776349999999 +55 57.82776349999999 58.460839499999985 +53 57.82776349999999 58.460839499999985 +48 58.460839499999985 59.087995499999984 +50 58.460839499999985 59.087995499999984 +41 59.087995499999984 59.725141499999985 +34 59.725141499999985 60.39725949999998 +55 60.39725949999998 61.01728649999998 +53 60.39725949999998 61.01728649999998 +48 61.01728649999998 61.63731349999998 +50 61.01728649999998 61.63731349999998 +41 61.63731349999998 62.257340499999984 +34 62.257340499999984 62.859327499999985 +53 62.859327499999985 63.508066499999984 +55 62.859327499999985 63.508066499999984 +48 63.508066499999984 64.13522249999998 +50 63.508066499999984 64.13522249999998 +41 64.13522249999998 64.76237849999998 +34 64.76237849999998 65.3831135 +53 65.3831135 66.0202595 +55 65.3831135 66.0202595 +48 66.0202595 66.6441545 +50 66.0202595 66.6441545 +41 66.6441545 67.2847015 +34 67.2847015 67.9356725 +55 67.9356725 68.54207849999999 +53 67.9356725 68.54207849999999 +50 68.54207849999999 69.19304949999999 +48 68.54207849999999 69.19304949999999 +41 69.19304949999999 69.82683049999999 +34 69.82683049999999 70.55260749999998 +55 70.55260749999998 71.18638849999998 +53 70.55260749999998 71.18638849999998 +50 71.18638849999998 71.82016949999998 +48 71.18638849999998 71.82016949999998 +41 71.82016949999998 72.42155249999998 +34 72.42155249999998 73.05466449999997 +43 74.28025249999997 74.91403349999997 +32 73.05466449999997 75.54781449999997 +41 76.18131160624998 76.33241460624998 +41 76.48351760624998 76.63462060624998 +39 76.78615190416664 77.36158090416664 +48 77.36158090416664 77.63739240416665 +32 75.54781449999997 77.97919490416665 +43 79.18369790416665 79.81747890416665 +41 80.45125990416665 81.08475701041665 +32 77.97919490416665 82.27754301041666 +32 82.27754301041666 82.91468901041667 +44 82.91468901041667 83.49625301041667 +46 83.49625301041667 84.08660401041666 +44 84.08660401041666 84.66536401041667 +32 84.66536401041667 85.24412401041667 +44 85.24412401041667 85.83426901041668 +46 85.83426901041668 86.40477401041667 +44 86.40477401041667 87.02544201041667 +32 87.02544201041667 87.60700601041667 +44 87.60700601041667 88.18857001041667 +46 88.18857001041667 88.73338101041666 +44 88.73338101041666 89.26864451041666 +32 89.26864451041666 89.84617551041666 +44 89.84617551041666 90.43632051041666 +46 90.43632051041666 91.00682551041666 +44 91.00682551041666 91.61184751041667 +32 91.61184751041667 92.19341151041667 +44 92.19341151041667 92.78941851041667 +46 92.78941851041667 93.37098251041667 +44 93.37098251041667 93.95254651041667 +32 93.95254651041667 94.55453351041666 +44 94.55453351041666 95.13609751041666 +46 95.13609751041666 95.71766151041666 +44 95.71766151041666 96.29922551041666 +34 96.29922551041666 96.60481801041666 +33 96.91041051041667 97.03481951041667 +45 97.15922851041667 97.28363751041667 +35 97.40804651041667 97.53245551041667 +47 97.65686451041667 97.78127351041667 +33 97.90568251041667 98.03009151041667 +45 98.15450051041667 98.27890951041667 +35 98.40331851041667 98.52772751041667 +47 98.65213651041667 98.77654551041667 +33 98.90095451041667 99.02536351041667 +45 99.14977251041667 99.27418151041667 +35 99.39859051041667 99.52299951041667 +47 99.64740851041667 99.77181751041667 +33 99.89622651041667 100.02063551041667 +45 100.14504451041667 100.26945351041667 +35 100.39386251041667 100.51827151041667 +47 100.64268051041667 100.76708951041667 +33 100.89176976875 101.01708435416667 +45 101.14177407291668 101.26584485416667 +35 101.38927329583332 101.51202405625 +47 101.63417514999999 101.75573234166667 +37 101.87667284583333 101.99696270833333 +49 102.11667660416666 102.23581996875 +39 102.35437085416666 102.47229656041667 +51 102.58966868541667 102.70649231458333 +41 102.82269447291667 102.93760122708333 +53 103.05303868541667 103.16901174791666 +39 103.28552531458332 103.40249318541666 +51 103.52003765416666 103.63820335208334 +37 103.75693026875 103.87612890416666 +49 103.99589850833334 104.11627285208333 +35 104.23729874166666 104.35881484999999 +47 104.48092450624999 104.61845075624998 +33 104.75524206458331 104.88016931458331 +45 105.00509656458333 105.13002381458332 +35 105.25495106458332 105.37987831458332 +47 105.50480556458332 105.62973281458332 +33 105.75466006458332 105.87958731458332 +45 106.00451456458332 106.12944181458332 +35 106.25436906458332 106.37521006458331 +47 106.49605106458331 106.61689206458331 +33 106.73889312916664 106.86440825624997 +45 106.98985775624998 107.11530725624998 +35 107.24075675624998 107.36620625624998 +47 107.49165575624997 107.61710525624997 +33 107.74255475624997 107.86800425624998 +45 107.99345375624998 108.11890325624998 +35 108.24435275624998 108.36422800624999 +47 108.48410325624998 108.60948975624999 +33 108.73473783333331 108.85918211041664 +45 108.98335564166665 109.10701737083332 +35 109.23027253333332 109.35302329374998 +47 109.47537328749998 109.59722627916665 +37 109.71861502916664 109.83958383958331 +49 109.96006683333331 110.08016409583331 +39 110.19978249166664 110.31902060624998 +51 110.43778668958332 110.55617774166664 +41 110.67410344791664 110.79168594791663 +53 110.90924167291664 111.02636517291663 +43 111.14346210208329 111.2601301020833 +55 111.37677173541663 111.49298773541662 +45 111.60917757291662 111.72494507291663 +57 111.84068661458329 111.95600911458328 +47 112.07130586041662 112.18618686041661 +59 112.30104229583327 112.41548504583328 +49 112.52990242083328 112.65262192083328 +61 112.77534142083329 113.25445942083329 +49 113.49401842083329 113.61724192083328 +61 113.74046542083329 114.22150442083328 +49 114.46202392083329 114.58474342083329 +61 114.7074629208333 115.1865809208333 +49 115.4261399208333 115.54936342083329 +61 115.6725869208333 116.15362592083329 +49 116.3941454208333 116.5168649208333 +61 116.6395844208333 117.11043142083331 +61 117.3458549208333 117.4690784208333 +49 117.59230192083331 118.06314892083331 +49 118.29857242083331 118.42129192083331 +61 118.54401142083331 119.01671242083331 +61 119.25306292083332 119.37628642083331 +49 119.49950992083332 119.98054892083331 +49 120.22106842083332 120.34378792083332 +61 120.46650742083332 120.93735442083333 +49 121.17277792083333 122.11539892083333 +49 122.11539892083333 122.23811842083333 +61 122.36083792083333 122.83353892083333 +49 123.06988942083333 124.07198792083332 +49 124.31212242083332 124.43218967083332 +61 124.55225692083333 124.66814967083333 +49 124.78404242083333 124.89993517083333 +49 125.01582792083333 125.13172067083333 +49 125.24761342083333 125.36350617083333 +61 125.47939892083333 125.59529167083333 +49 125.71118442083333 125.82707717083333 +42 124.07198792083332 125.94296992083333 +42 125.94296992083333 126.42323892083334 +42 126.42323892083334 126.54141417083333 +42 126.65958942083334 126.77776467083334 +41 126.89593992083334 127.01050492083334 +41 127.12506992083334 127.23963492083334 +41 127.35419992083334 127.46876492083334 +41 127.58332992083334 127.70584892083333 +40 127.82836792083333 128.30863692083332 +40 128.30863692083332 128.42681217083333 +40 128.5449874208333 128.66316267083332 +39 128.78133792083332 129.23959792083332 +46 129.23959792083332 129.7137659208333 +42 129.7137659208333 130.1940349208333 +42 130.1940349208333 130.3122101708333 +42 130.4303854208333 130.5485606708333 +41 130.6667359208333 130.7813009208333 +41 130.8958659208333 131.0234494208333 +41 131.1510329208333 131.2854776708333 +41 131.4199224208333 131.5736581708333 +46 131.7273939208333 132.24494792083328 +39 132.24494792083328 132.7494459208333 +46 132.7494459208333 133.23358992083328 +39 133.23358992083328 133.7268549208333 +46 133.7268549208333 134.2356309208333 +39 134.2356309208333 134.7317859208333 +46 134.7317859208333 135.2671659208333 +39 135.2671659208333 135.8464839208333 +46 135.8464839208333 136.3488699208333 +39 136.3488699208333 136.8512559208333 +46 136.8512559208333 137.3433419208333 +39 137.3433419208333 137.8647639208333 +37 137.8647639208333 138.3644729208333 +39 138.3644729208333 138.8641819208333 +34 138.8641819208333 139.35226492083328 +39 139.35226492083328 139.8924369208333 +46 139.8924369208333 140.40999092083328 +39 140.40999092083328 140.9275449208333 +46 140.9275449208333 141.4341729208333 +39 141.4341729208333 141.9608119208333 +37 141.9608119208333 142.5109169208333 +39 142.5109169208333 143.0610219208333 +35 143.0610219208333 143.6375569208333 +39 143.6375569208333 144.2653689208333 +41 144.2653689208333 148.50888842083333 +34 144.2653689208333 148.50888842083333 +34 149.10230142083333 153.2820539208333 +41 148.50888842083333 153.2820539208333 +41 153.2820539208333 153.8516919208333 +53 153.8516919208333 154.4478759208333 +55 153.8516919208333 154.4478759208333 +48 154.4478759208333 155.0412889208333 +50 154.4478759208333 155.0412889208333 +41 155.0412889208333 155.6347019208333 +34 155.6347019208333 156.22204992083329 +53 156.22204992083329 156.83385792083328 +55 156.22204992083329 156.83385792083328 +48 156.83385792083328 157.42423492083327 +50 156.83385792083328 157.42423492083327 +41 157.42423492083327 158.03035692083327 +34 158.03035692083327 158.64630992083326 +55 158.64630992083326 159.23668692083325 +53 158.64630992083326 159.23668692083325 +50 159.23668692083325 159.85263992083324 +48 159.23668692083325 159.85263992083324 +34 160.45233992083325 161.79360742083327 +34 161.79360742083327 161.94350242083325 +34 162.09339742083327 162.24329242083326 +33 162.39318742083327 162.54932367083327 +33 162.70545992083328 162.86159617083328 +33 163.01773242083328 163.16990842083328 +33 163.32208442083328 163.47426042083328 +32 163.62643642083327 164.2351404208333 +32 164.2351404208333 164.3873164208333 +32 164.53949242083328 164.69166842083328 +31 164.83750375416662 165.4462077541666 +38 165.4525484208333 166.0545354208333 +41 159.85263992083324 166.0545354208333 +34 166.69898342083331 166.85039142083332 +34 167.00179942083332 167.15320742083333 +33 167.30461542083333 167.46075167083333 +33 167.61688792083334 167.77302417083334 +33 167.92916042083334 168.08594942083334 +33 168.24273842083335 168.39952742083335 +32 168.55631642083335 169.17442742083335 +32 169.17442742083335 169.32895517083335 +32 169.48348292083335 169.94706617083335 +41 166.0545354208333 170.41064942083335 +31 170.41064942083335 171.03519442083336 +30 171.65973942083335 171.97201192083335 +29 172.28428442083336 172.90882942083334 +38 172.90882942083334 173.53337442083335 +30 174.15791942083334 174.47019192083334 +29 174.78246442083335 175.40700942083336 +38 175.40700942083336 176.03155442083334 +30 177.28064442083334 178.52973442083336 +29 178.52973442083336 179.77882442083336 +26 179.77882442083336 181.02791442083335 +22 181.02791442083335 188.52245442083336 +22 188.52245442083336 188.83472692083336 diff --git a/test/midi/debussy/childrens_corner_3.mid b/test/midi/debussy/childrens_corner_3.mid new file mode 100644 index 0000000000000000000000000000000000000000..f0205fa50d381b28430aaed45cdfab368765036e GIT binary patch literal 12824 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 literal 0 HcmV?d00001 diff --git a/test/midi/debussy/childrens_corner_3.mid.txt b/test/midi/debussy/childrens_corner_3.mid.txt new file mode 100644 index 0000000..20d78f8 --- /dev/null +++ b/test/midi/debussy/childrens_corner_3.mid.txt @@ -0,0 +1,1243 @@ +track Piano right +71 0.22510699999999997 0.3376605 +64 0.22510699999999997 0.3376605 +71 0.675321 0.7878744999999999 +64 0.675321 0.7878744999999999 +71 1.125535 1.2380885 +64 1.125535 1.2380885 +71 1.5733354999999998 1.6843893499999998 +64 1.5733354999999998 1.6843893499999998 +71 2.01542915 2.1250225 +64 2.01542915 2.1250225 +71 2.4519708999999996 2.5608478999999997 +64 2.4519708999999996 2.5608478999999997 +64 2.6697249 2.7782084 +71 2.8866918999999998 2.9951754 +64 2.8866918999999998 2.9951754 +71 3.3152693999999996 3.4210746499999996 +64 3.3152693999999996 3.4210746499999996 +71 3.7454273999999996 3.8547011499999995 +64 3.7454273999999996 3.8547011499999995 +64 3.9639748999999997 4.074455899999999 +71 4.184936899999999 4.2954178999999995 +64 4.184936899999999 4.2954178999999995 +71 4.6268609 4.7373419 +64 4.6268609 4.7373419 +71 5.0640079 5.1721004 +64 5.0640079 5.1721004 +71 5.498740399999999 5.60801415 +64 5.498740399999999 5.60801415 +71 5.935835399999999 6.045109149999999 +64 5.935835399999999 6.045109149999999 +71 6.3794899 6.4920434 +64 6.3794899 6.4920434 +64 6.6045969 6.7130804 +71 6.8215639 6.930047399999999 +64 6.8215639 6.930047399999999 +71 7.2554979 7.3639814 +64 7.2554979 7.3639814 +71 7.6894319 7.7979154 +64 7.6894319 7.7979154 +64 8.124946399999999 8.343493899999999 +71 8.124946399999999 8.343493899999999 +64 8.5620414 8.7805889 +71 8.5620414 8.7805889 +64 8.9991364 9.11384165 +71 8.9991364 9.11384165 +59 9.2285469 9.33822015 +64 9.4478934 9.55756665 +71 9.4478934 9.55756665 +71 9.886586399999999 9.996259649999999 +64 9.886586399999999 9.996259649999999 +71 10.3252794 10.43495265 +64 10.3252794 10.43495265 +70 10.92431815 10.9785599 +75 10.9785599 11.08436515 +75 11.348878275 11.4017809 +80 11.4017809 11.51105465 +68 11.784239025 11.8388759 +70 12.6674834 12.7227239 +73 11.8388759 12.7227239 +75 12.7227239 12.8308164 +63 12.88486265 12.9389089 +68 12.9389089 13.0470014 +68 13.10104765 13.1550939 +73 13.1550939 13.2635774 +70 13.53478615 13.589027900000001 +75 13.589027900000001 13.694833150000001 +75 13.959346275000001 14.012248900000001 +80 14.012248900000001 14.121522650000001 +68 14.394707025 14.4493439 +73 14.4493439 15.333191900000001 +68 15.333191900000001 15.6574694 +63 15.277951400000001 15.6574694 +66 15.766152525 16.107656775000002 +61 15.71151565 16.107656775000002 +68 16.221491525 17.092554525 +63 16.16457415 17.092554525 +59 17.092554525 17.202227775 +66 17.311901025 17.421574275 +71 17.311901025 17.421574275 +71 17.750594025 17.860267275 +66 17.750594025 17.860267275 +59 17.750594025 17.860267275 +71 18.189287025000002 18.298960275 +66 18.189287025000002 18.298960275 +59 18.189287025000002 18.298960275 +71 18.627980025 18.737653275 +66 18.627980025 18.737653275 +59 18.627980025 18.737653275 +66 19.064293525 19.172777025 +61 19.064293525 19.172777025 +71 19.064293525 19.172777025 +71 19.498227525 19.612495775 +66 19.498227525 19.612495775 +64 19.498227525 19.612495775 +71 19.943731025 20.052214525 +66 19.943731025 20.052214525 +63 19.943731025 20.052214525 +66 20.377665025000002 20.486148525 +63 20.377665025000002 20.486148525 +71 20.377665025000002 20.486148525 +71 20.811599025 20.925003525 +66 20.811599025 20.925003525 +62 20.811599025 20.925003525 +71 21.255375025 21.363858524999998 +66 21.255375025 21.363858524999998 +61 21.255375025 21.363858524999998 +71 21.689309025 21.797792525 +66 21.689309025 21.797792525 +61 21.689309025 21.797792525 +71 22.123243025 22.231726525 +66 22.123243025 22.231726525 +61 22.123243025 22.231726525 +71 22.557177024999998 22.665660525 +66 22.557177024999998 22.665660525 +61 22.557177024999998 22.665660525 +71 22.986503525 23.092683275 +66 22.986503525 23.092683275 +63 22.986503525 23.092683275 +71 23.416617024999997 23.525494024999997 +66 23.416617024999997 23.525494024999997 +71 23.851338024999997 23.959821524999995 +68 23.851338024999997 23.959821524999995 +68 24.285272024999998 24.393755524999996 +71 24.285272024999998 24.393755524999996 +71 24.719206025 24.832610525 +68 24.719206025 24.832610525 +71 25.159128524999996 25.265685275 +68 25.159128524999996 25.265685275 +63 25.159128524999996 25.265685275 +71 25.588427024999998 25.696519525 +68 25.588427024999998 25.696519525 +63 25.588427024999998 25.696519525 +71 26.020797025 26.128889524999998 +68 26.020797025 26.128889524999998 +63 26.020797025 26.128889524999998 +71 26.450095525 26.556652275 +68 26.450095525 26.556652275 +65 26.450095525 26.556652275 +71 26.879394025 26.987486525 +68 26.879394025 26.987486525 +65 26.879394025 26.987486525 +71 27.311764025000002 27.425168525000004 +68 27.311764025000002 27.425168525000004 +65 27.311764025000002 27.425168525000004 +71 27.751686525 27.858243275000003 +68 27.751686525 27.858243275000003 +63 27.751686525 27.858243275000003 +71 28.180209025000003 28.287913525000004 +68 28.180209025000003 28.287913525000004 +63 28.180209025000003 28.287913525000004 +71 28.611027025000002 28.722742275 +68 28.611027025000002 28.722742275 +63 28.611027025000002 28.722742275 +71 29.049866525000002 29.157571025000003 +68 29.049866525000002 29.157571025000003 +65 29.049866525000002 29.157571025000003 +71 29.483823025 29.593096775 +68 29.483823025 29.593096775 +65 29.483823025 29.593096775 +71 29.924149025 30.042942025 +68 29.924149025 30.042942025 +65 29.924149025 30.042942025 +68 30.374848524999997 30.481405275 +71 30.374848524999997 30.481405275 +71 30.804147025 30.912239525 +68 30.804147025 30.912239525 +71 31.236517024999998 31.348232274999997 +68 31.236517024999998 31.348232274999997 +71 31.676914524999997 31.785398024999996 +68 31.676914524999997 31.785398024999996 +68 32.110848524999994 32.219332025 +71 32.110848524999994 32.219332025 +68 32.544782524999995 32.65326602499999 +71 32.544782524999995 32.65326602499999 +68 32.974863025 33.078834775 +71 32.974863025 33.078834775 +71 33.398991525 33.507084025 +68 33.398991525 33.507084025 +71 33.831361525 33.943076775 +68 33.831361525 33.943076775 +71 34.271759024999994 34.383891774999995 +68 34.271759024999994 34.383891774999995 +68 34.713778524999995 34.822655524999995 +71 34.713778524999995 34.822655524999995 +68 35.149286524999994 35.267146274999995 +71 35.149286524999994 35.267146274999995 +71 35.609271525 35.718148525 +71 36.052132525 36.164686024999995 +71 36.50234652499999 36.62552952499999 +71 36.989155024999995 37.11387452499999 +71 37.480979024999996 37.602171524999996 +71 37.965749025 38.098176025 +64 38.230603025 38.472988025 +59 38.164389525000004 38.472988025 +71 38.472988025 38.715373025 +80 38.715373025 38.947445525 +75 38.715373025 38.947445525 +68 38.947445525 39.179518025 +75 38.947445525 39.179518025 +85 39.179518025 39.411590525 +80 39.179518025 39.411590525 +80 39.411590525 39.643663024999995 +75 39.411590525 39.643663024999995 +73 39.643663024999995 39.814415149999995 +73 39.87133252499999 40.209077525 +66 39.87133252499999 40.209077525 +66 40.319153025 40.484266274999996 +73 40.319153025 40.484266274999996 +78 39.643663024999995 40.539304025 +80 40.539304025 40.759455024999994 +75 40.539304025 40.759455024999994 +73 40.759455024999994 40.993336525 +68 40.759455024999994 40.993336525 +73 40.993336525 41.220145525 +78 40.993336525 41.220145525 +73 41.220145525 41.446954524999995 +66 41.220145525 41.446954524999995 +75 41.446954524999995 41.669556025 +80 41.446954524999995 41.669556025 +75 41.669556025 41.892157524999995 +68 41.669556025 41.892157524999995 +85 41.892157524999995 42.111504024999995 +80 41.892157524999995 42.111504024999995 +75 42.111504024999995 42.350034525 +80 42.111504024999995 42.350034525 +73 42.350034525 42.5195004 +66 42.575989025 42.914920775 +73 42.575989025 42.914920775 +66 43.027898025 43.366829775 +73 43.027898025 43.366829775 +66 43.479807025 43.6492729 +73 43.479807025 43.6492729 +78 42.350034525 43.705761525 +75 43.705761525 43.929192025 +68 43.929192025 44.152622525 +75 43.929192025 44.152622525 +80 43.705761525 44.152622525 +73 44.152622525 44.376053025 +66 44.376053025 44.599483525 +73 44.376053025 44.599483525 +78 44.152622525 44.599483525 +75 44.599483525 44.822914025 +68 44.822914025 45.058633525000005 +75 44.822914025 45.058633525000005 +80 44.599483525 45.058633525000005 +73 45.058633525000005 45.736497025000006 +75 45.736497025000006 45.962451525000006 +73 45.962451525000006 46.42693652500001 +68 45.058633525000005 46.42693652500001 +64 45.058633525000005 46.42693652500001 +75 46.42693652500001 47.102257525000006 +73 47.102257525000006 47.32736452500001 +75 47.32736452500001 47.79100202500001 +67 46.42693652500001 47.79100202500001 +64 46.42693652500001 47.79100202500001 +73 47.79100202500001 48.47142902500001 +75 48.47142902500001 48.69823802500001 +73 48.69823802500001 49.163577525000015 +71 47.79100202500001 49.163577525000015 +64 47.79100202500001 49.163577525000015 +75 49.163577525000015 49.84400452500002 +73 49.84400452500002 50.07081352500001 +75 50.07081352500001 50.53710502500002 +70 49.163577525000015 50.53710502500002 +64 49.163577525000015 50.53710502500002 +59 50.764774525000014 50.99244402500002 +64 50.764774525000014 50.99244402500002 +68 50.764774525000014 50.99244402500002 +59 51.21259502500002 51.44924402500002 +64 51.21259502500002 51.44924402500002 +68 51.21259502500002 51.44924402500002 +59 51.67691352500002 51.90458302500002 +64 51.67691352500002 51.90458302500002 +68 51.67691352500002 51.90458302500002 +59 52.13225252500002 52.35992202500002 +64 52.13225252500002 52.35992202500002 +67 52.13225252500002 52.35992202500002 +59 52.58007302500002 52.81765902500002 +64 52.58007302500002 52.81765902500002 +67 52.58007302500002 52.81765902500002 +59 53.045328525000016 53.27299802500002 +64 53.045328525000016 53.27299802500002 +67 53.045328525000016 53.27299802500002 +59 53.50066752500002 53.728337025000016 +64 53.50066752500002 53.728337025000016 +66 53.50066752500002 53.728337025000016 +59 53.949299025000016 54.18688502500002 +64 53.949299025000016 54.18688502500002 +66 53.949299025000016 54.18688502500002 +59 54.414554525000014 54.64222402500002 +64 54.414554525000014 54.64222402500002 +66 54.414554525000014 54.64222402500002 +58 54.88170652500002 55.12118902500002 +64 54.88170652500002 55.12118902500002 +66 54.88170652500002 55.12118902500002 +58 55.35416252500002 55.58713602500002 +64 55.35416252500002 55.58713602500002 +66 55.35416252500002 55.58713602500002 +58 55.83866602500002 56.08788401250002 +64 55.83866602500002 56.08788401250002 +66 55.83866602500002 56.08788401250002 +59 56.08788401250002 56.31274908125002 +66 56.31274908125002 56.42480876875002 +71 56.31274908125002 56.42480876875002 +71 56.75914676875002 56.87003601875002 +59 56.75914676875002 56.87003601875002 +66 56.75914676875002 56.87003601875002 +66 57.20101331250002 57.31108881250002 +71 57.20101331250002 57.31108881250002 +59 57.20101331250002 57.31108881250002 +71 57.64131531250002 57.75139081250002 +66 57.64131531250002 57.75139081250002 +59 57.64131531250002 57.75139081250002 +71 58.07843331250002 58.18691681250002 +66 58.07843331250002 58.18691681250002 +59 58.07843331250002 58.18691681250002 +71 58.51236731250002 58.62663556250002 +66 58.51236731250002 58.62663556250002 +59 58.51236731250002 58.62663556250002 +66 58.966010812500016 59.07856431250001 +71 58.966010812500016 59.07856431250001 +71 59.40966531250002 59.522218812500014 +66 59.40966531250002 59.522218812500014 +66 59.85987931250002 59.97243281250002 +71 59.85987931250002 59.97243281250002 +71 60.310093312500015 60.42264681250002 +66 60.310093312500015 60.42264681250002 +71 60.747559812500015 60.85373956250002 +66 60.747559812500015 60.85373956250002 +66 61.17767331250002 61.30239281250002 +71 61.17767331250002 61.30239281250002 +67 61.65221931250002 61.76310856250002 +71 61.65221931250002 61.76310856250002 +71 62.09577631250002 62.20666556250002 +67 62.09577631250002 62.20666556250002 +67 62.54266181250002 62.65521531250002 +71 62.54266181250002 62.65521531250002 +71 62.99287581250002 63.10542931250002 +67 62.99287581250002 63.10542931250002 +71 63.43034231250002 63.53652206250002 +67 63.43034231250002 63.53652206250002 +67 63.86045581250002 63.97694256250002 +71 63.86045581250002 63.97694256250002 +66 64.31853631250002 64.43108981250002 +71 64.31853631250002 64.43108981250002 +71 64.76219081250002 64.87474431250003 +66 64.76219081250002 64.87474431250003 +66 65.21240481250003 65.32495831250003 +71 65.21240481250003 65.32495831250003 +71 65.66261881250003 65.77517231250002 +66 65.66261881250003 65.77517231250002 +71 66.10008531250003 66.20626506250002 +66 66.10008531250003 66.20626506250002 +66 66.53019881250002 66.65491831250002 +71 66.53019881250002 66.65491831250002 +69 67.00474481250001 67.1156340625 +71 67.00474481250001 67.1156340625 +71 67.4483018125 67.5591910625 +69 67.4483018125 67.5591910625 +67 67.8951873125 68.0077408125 +71 67.8951873125 68.0077408125 +71 68.3454013125 68.4579548125 +67 68.3454013125 68.4579548125 +71 68.78286781250002 68.88904756250001 +65 68.78286781250002 68.88904756250001 +65 69.2129813125 69.32946806250001 +67 69.2129813125 69.32946806250001 +65 69.6710618125 69.7836153125 +67 69.6710618125 69.7836153125 +67 70.11471631250001 70.22726981250001 +65 70.11471631250001 70.22726981250001 +65 70.56493031250001 70.67748381250001 +67 70.56493031250001 70.67748381250001 +69 71.01514431250001 71.1276978125 +64 71.01514431250001 71.1276978125 +64 71.45261081250001 71.55879056250001 +69 71.45261081250001 71.55879056250001 +69 71.8827243125 72.0074438125 +64 71.8827243125 72.0074438125 +65 72.35727031249999 72.4698238125 +67 72.35727031249999 72.4698238125 +67 72.8009248125 72.9134783125 +65 72.8009248125 72.9134783125 +65 73.2511388125 73.3636923125 +67 73.2511388125 73.3636923125 +64 73.7013528125 73.8139063125 +69 73.7013528125 73.8139063125 +65 74.1388193125 74.2449990625 +69 74.1388193125 74.2449990625 +69 74.5689328125 74.69365231249999 +67 74.5689328125 74.69365231249999 +68 75.04347881249998 75.15603231249999 +70 75.04347881249998 75.15603231249999 +70 75.48713331249999 75.5996868125 +68 75.48713331249999 75.5996868125 +68 75.9373473125 76.0499008125 +70 75.9373473125 76.0499008125 +72 76.3875613125 76.50011481249999 +67 76.3875613125 76.50011481249999 +67 76.8250278125 76.93120756249999 +72 76.8250278125 76.93120756249999 +72 77.25514131249999 77.37986081249998 +67 77.25514131249999 77.37986081249998 +68 77.72968731249998 77.84224081249998 +70 77.72968731249998 77.84224081249998 +70 78.17334181249998 78.28589531249999 +68 78.17334181249998 78.28589531249999 +68 78.62355581249999 78.73610931249999 +70 78.62355581249999 78.73610931249999 +67 79.07376981249999 79.18632331249998 +72 79.07376981249999 79.18632331249998 +68 79.51123631249999 79.61741606249998 +72 79.51123631249999 79.61741606249998 +72 79.94134981249998 80.06606931249998 +70 79.94134981249998 80.06606931249998 +72 80.64612781249997 80.75826056249997 +75 80.87039331249997 80.98006656249997 +74 81.08973981249997 81.19941306249997 +72 81.30908631249997 81.41875956249997 +70 81.52843281249997 81.63891381249996 +68 81.74939481249997 81.85987581249996 +67 81.97035681249997 82.08165756249997 +65 82.19295831249997 82.30425906249997 +63 82.41555981249998 82.52686056249998 +62 82.63816131249997 82.75935381249998 +60 82.88054631249997 83.10481181249997 +63 83.10481181249997 83.32907731249998 +67 83.32907731249998 83.44422281249997 +63 83.32907731249998 83.44422281249997 +67 83.78965931249998 83.90480481249998 +63 83.78965931249998 83.90480481249998 +60 84.26430981249997 84.49548781249997 +63 84.49548781249997 84.74185381249997 +67 84.74185381249997 84.87428081249998 +63 84.74185381249997 84.87428081249998 +67 85.27156181249997 85.40112906249996 +62 85.27156181249997 85.40112906249996 +63 91.10178781249996 91.2605667708333 +60 91.10178781249996 91.2605667708333 +63 91.98751331249997 92.09758881249996 +60 91.93247556249997 92.09758881249996 +70 91.54721131249997 92.42781531249997 +66 91.31954181249996 92.42781531249997 +65 92.42781531249997 92.5865942708333 +62 92.42781531249997 92.5865942708333 +65 93.31354081249998 93.42361631249997 +62 93.25850306249998 93.42361631249997 +72 92.87323881249998 93.75384281249998 +68 92.64556931249997 93.75384281249998 +66 93.97159681249998 94.18935081249998 +70 94.18935081249998 94.40710481249998 +63 93.75384281249998 94.40710481249998 +60 93.75384281249998 94.40710481249998 +66 94.62251381249997 94.83338031249997 +70 94.83338031249997 95.06018931249997 +63 94.40710481249998 95.06018931249997 +60 94.40710481249998 95.06018931249997 +65 95.06018931249997 95.21503478124997 +62 95.06018931249997 95.21503478124997 +72 95.49030281249998 95.60037831249997 +68 95.27254881249998 95.60037831249997 +72 95.94525081249998 96.05532631249997 +62 95.85720193749998 96.05532631249997 +65 95.88655156249997 96.05532631249997 +68 95.91590118749998 96.05532631249997 +72 97.26393981249997 97.70424181249997 +62 96.82264781249998 97.70424181249997 +65 96.82264781249998 97.70424181249997 +68 97.03883281249998 97.70424181249997 +74 98.58262881249996 99.03219031249996 +64 98.14133681249997 99.03219031249996 +67 98.14133681249997 99.03219031249996 +70 98.35752181249997 99.03219031249996 +68 99.25073781249996 99.46928531249996 +72 99.46928531249996 99.68469431249996 +65 99.03219031249996 99.68469431249996 +62 99.03219031249996 99.68469431249996 +68 99.89630481249996 100.10791531249996 +72 100.10791531249996 100.33472431249996 +65 99.68469431249996 100.33472431249996 +62 99.68469431249996 100.33472431249996 +67 100.33472431249996 100.49350327083329 +64 100.33472431249996 100.49350327083329 +74 100.76478846249996 100.87480403749996 +70 100.55247831249996 100.88030781249995 +74 101.22518031249996 101.33525581249995 +64 101.13713143749996 101.33525581249995 +67 101.16648106249995 101.33525581249995 +70 101.19583068749996 101.33525581249995 +67 101.66548231249996 101.82426127083329 +64 101.66548231249996 101.82426127083329 +74 102.09554646249997 102.20257998749996 +70 101.88323631249996 102.20792681249996 +77 102.52873631249996 102.64567706249996 +70 102.52873631249996 102.64567706249996 +67 102.52873631249996 102.64567706249996 +80 102.99649931249996 103.10267906249996 +73 102.96726412499996 103.10267906249996 +70 102.93802893749996 103.10267906249996 +70 104.51078181249996 104.72932931249996 +74 104.72932931249996 104.94473831249995 +67 104.29223431249996 104.94473831249995 +64 104.29223431249996 104.94473831249995 +70 104.94473831249995 105.15560481249994 +73 105.15560481249994 105.36647131249995 +77 105.36647131249995 105.53593718749995 +67 104.94473831249995 105.59242581249995 +80 105.59242581249995 105.69860556249995 +73 105.56418149999995 105.69860556249995 +70 105.53593718749995 105.69860556249995 +80 106.88757456249995 106.99375431249995 +73 106.86064843749995 106.99375431249995 +70 106.83372231249994 106.99375431249995 +80 108.18272331249995 108.28890306249994 +73 108.15579718749994 108.28890306249994 +70 108.12887106249994 108.28890306249994 +80 110.45569931249995 110.69710931249995 +85 110.69710931249995 110.93851931249995 +73 110.93851931249995 111.05235406249994 +73 111.39385831249994 111.50769306249995 +78 110.93851931249995 111.84919731249995 +73 111.84919731249995 111.96008656249995 +80 111.84919731249995 112.07097581249995 +85 112.07097581249995 112.29275431249995 +73 112.29275431249995 112.40658906249995 +78 112.29275431249995 112.40658906249995 +73 112.74809331249995 112.86022606249995 +80 112.74809331249995 112.86022606249995 +73 113.19662431249995 113.31002881249995 +73 113.65024231249996 113.76195756249996 +73 114.09710331249995 114.20758431249995 +73 114.53902731249995 114.65074256249996 +78 113.65024231249996 114.98588831249995 +80 114.98588831249995 115.09556156249995 +72 114.98588831249995 115.09556156249995 +78 115.42458131249995 115.53841606249995 +73 115.42458131249995 115.53841606249995 +80 115.87992031249995 115.99640706249996 +74 115.87992031249995 115.99640706249996 +68 116.34586731249995 116.45927181249995 +68 116.79948531249995 116.91288981249994 +68 117.25310331249995 117.36650781249995 +73 116.34586731249995 117.70672131249995 +75 117.70672131249995 117.82231031249995 +67 117.70672131249995 117.82231031249995 +73 118.16907731249995 118.29226031249995 +68 118.16907731249995 118.29226031249995 +75 118.66180931249995 118.79081931249995 +69 118.66180931249995 118.79081931249995 +68 119.17784931249996 119.28873856249996 +64 119.16709847916663 119.28873856249996 +61 119.15634764583329 119.28873856249996 +68 119.62140631249996 119.73229556249996 +64 119.61216554166663 119.73229556249996 +61 119.6029247708333 119.73229556249996 +68 120.06496331249996 120.17585256249995 +64 120.05572254166663 120.17585256249995 +61 120.0464817708333 120.17585256249995 +68 120.50852031249995 120.61982106249995 +64 120.49927954166662 120.61982106249995 +61 120.4900387708333 120.61982106249995 +68 120.95372331249996 121.06627681249996 +64 120.94444824999995 121.06627681249996 +61 120.93517318749996 121.06627681249996 +68 121.40393731249996 121.51777206249996 +64 121.39455785416662 121.51777206249996 +61 121.3851783958333 121.51777206249996 +68 121.85927631249996 121.97760081249996 +63 121.84979008333329 121.97760081249996 +61 121.84030385416663 121.97760081249996 +68 122.33257431249996 122.45677731249995 +63 122.32271393749996 122.45677731249995 +61 122.31285356249995 122.45677731249995 +68 122.82938631249996 122.95951556249996 +63 122.81903606249996 122.95951556249996 +61 122.80868581249996 122.95951556249996 +59 123.34990331249996 123.46330781249996 +57 123.32821510416663 123.46330781249996 +59 123.80352131249997 123.91692581249995 +57 123.78462056249997 123.91692581249995 +59 124.25713931249996 124.37054381249996 +57 124.23823856249996 124.37054381249996 +61 124.71075731249996 124.82416181249997 +59 124.70130693749996 124.82416181249997 +56 124.69185656249996 124.82416181249997 +61 125.16437531249996 125.27777981249996 +59 125.15492493749996 125.27777981249996 +56 125.14547456249996 125.27777981249996 +61 125.61799331249996 125.73139781249996 +59 125.60854293749996 125.73139781249996 +56 125.59909256249996 125.73139781249996 +61 126.08145131249996 126.19442856249997 +59 126.07159093749996 126.19442856249997 +56 126.06173056249996 126.19442856249997 +61 126.53336031249997 126.64633756249997 +59 126.52394554166663 126.64633756249997 +56 126.5145307708333 126.64633756249997 +61 126.98526931249997 127.09824656249997 +59 126.97585454166664 127.09824656249997 +56 126.9664397708333 127.09824656249997 +62 127.44787281249997 127.56042631249997 +58 127.43801243749996 127.56042631249997 +55 127.42815206249996 127.56042631249997 +62 127.89808681249997 128.01064031249996 +58 127.88870735416663 128.01064031249996 +55 127.8793278958333 128.01064031249996 +55 128.78658720624995 129.00513470624995 +57 129.00513470624995 129.24654470624995 +58 129.24654470624995 129.37023570624996 +60 129.74130870624995 129.86499970624996 +61 130.23435828958327 130.34776278958327 +59 130.22490791458327 130.34776278958327 +56 130.21545753958327 130.34776278958327 +61 130.68797628958328 130.80138078958328 +59 130.67852591458328 130.80138078958328 +56 130.66907553958328 130.80138078958328 +61 131.14159428958328 131.25499878958328 +59 131.13214391458328 131.25499878958328 +56 131.12269353958328 131.25499878958328 +61 131.60505228958326 131.71802953958326 +59 131.59519191458327 131.71802953958326 +56 131.58533153958325 131.71802953958326 +61 132.05696128958326 132.16993853958326 +59 132.04754651874993 132.16993853958326 +56 132.0381317479166 132.16993853958326 +61 132.50887028958326 132.62184753958326 +59 132.49945551874993 132.62184753958326 +56 132.4900407479166 132.62184753958326 +62 132.97147378958326 133.08402728958325 +58 132.96161341458327 133.08402728958325 +55 132.95175303958325 133.08402728958325 +62 133.42168778958325 133.53424128958326 +58 133.41230833124993 133.53424128958326 +55 133.4029288729166 133.53424128958326 +55 134.31018818333322 134.52873568333322 +57 134.52873568333322 134.77014568333323 +58 134.77014568333323 134.89383668333323 +60 135.26490968333323 135.38860068333324 +67 137.1523469708332 137.3708944708332 +69 137.3708944708332 137.6123044708332 +70 137.6123044708332 137.73599547083322 +72 138.1070684708332 138.23075947083322 +79 139.9945057583332 140.2130532583332 +81 140.2130532583332 140.4544632583332 +82 140.4544632583332 140.5829210083332 +83 140.9682942583332 141.2146602583332 +78 140.9522370395832 141.2146602583332 +75 140.9361798208332 141.2146602583332 +71 140.9308274145832 141.2249255083332 +63 143.1896916333332 143.24335125833323 +68 143.24335125833323 143.34915650833324 +68 143.61366963333325 143.66657225833325 +73 143.66657225833325 143.77584600833325 +61 144.04903038333325 144.10366725833325 +66 144.10366725833325 145.39480125833325 +70 145.77041863333324 145.82407825833326 +75 145.82407825833326 145.92988350833326 +75 146.19439663333327 146.24729925833327 +80 146.24729925833327 146.35657300833327 +68 146.62975738333327 146.68439425833327 +73 146.68439425833327 147.97552825833327 +63 148.35114563333326 148.40480525833328 +68 148.40480525833328 148.5106105083333 +68 148.7751236333333 148.8280262583333 +73 148.8280262583333 148.9345830083333 +61 149.2009748833333 149.2542532583333 +66 149.2542532583333 149.3615725083333 +70 149.6298706333333 149.68353025833332 +75 149.68353025833332 149.78786350833332 +75 150.04869663333332 150.10086325833333 +80 150.10086325833333 150.21013700833333 +68 150.48332138333333 150.53795825833333 +73 150.53795825833333 150.64527750833332 +63 150.91357563333332 150.96723525833335 +68 150.96723525833335 151.07304050833335 +68 151.33755363333336 151.39045625833336 +73 151.39045625833336 151.49701300833337 +61 151.76340488333335 151.81668325833337 +66 151.81668325833337 151.92400250833336 +70 152.19230063333336 152.24596025833338 +75 152.24596025833338 152.35029350833338 +75 152.61112663333338 152.6632932583334 +80 152.6632932583334 152.7725670083334 +68 153.1003882583334 153.3119987583334 +73 153.1003882583334 153.3119987583334 +71 153.3119987583334 153.5236092583334 +64 153.3119987583334 153.5236092583334 +68 153.5236092583334 153.7337372583334 +63 153.5236092583334 153.7337372583334 +71 153.7337372583334 153.9438652583334 +64 153.7337372583334 153.9438652583334 +73 153.9438652583334 154.1539932583334 +68 153.9438652583334 154.1539932583334 +71 154.1539932583334 154.3641212583334 +64 154.1539932583334 154.3641212583334 +63 154.3641212583334 154.5749877583334 +68 154.3641212583334 154.5749877583334 +71 154.5749877583334 154.7858542583334 +64 154.5749877583334 154.7858542583334 +73 154.7858542583334 154.9967207583334 +68 154.7858542583334 154.9967207583334 +71 154.9967207583334 155.2075872583334 +64 154.9967207583334 155.2075872583334 +68 155.2075872583334 155.4237722583334 +63 155.2075872583334 155.4237722583334 +71 155.4237722583334 155.6691307583334 +64 155.4237722583334 155.6691307583334 +68 155.6691307583334 155.88609775833342 +73 155.6691307583334 155.88609775833342 +71 155.88609775833342 156.1030647583334 +64 155.88609775833342 156.1030647583334 +68 156.1030647583334 156.3139312583334 +63 156.1030647583334 156.3139312583334 +71 156.3139312583334 156.5247977583334 +64 156.3139312583334 156.5247977583334 +73 156.5247977583334 156.7356642583334 +68 156.5247977583334 156.7356642583334 +71 156.7356642583334 156.9465307583334 +64 156.7356642583334 156.9465307583334 +63 156.9465307583334 157.1544742583334 +68 156.9465307583334 157.1544742583334 +71 157.1544742583334 157.3624177583334 +64 157.1544742583334 157.3624177583334 +73 157.3624177583334 157.57328425833342 +68 157.3624177583334 157.57328425833342 +71 157.57328425833342 157.7841507583334 +64 157.57328425833342 157.7841507583334 +68 157.7841507583334 157.9950172583334 +63 157.7841507583334 157.9950172583334 +71 157.9950172583334 158.2058837583334 +64 157.9950172583334 158.2058837583334 +63 158.2058837583334 158.4167502583334 +68 158.2058837583334 158.4167502583334 +71 159.4710827583334 159.68194925833342 +68 159.4710827583334 159.68194925833342 +63 159.4710827583334 159.68194925833342 +64 161.15801475833342 161.36740975833342 +68 161.36740975833342 161.57680475833342 +76 161.57680475833342 161.78403025833342 +80 161.78403025833342 162.00829575833342 +88 162.00829575833342 162.21769075833342 +100 163.26466575833342 163.47406075833342 +track Piano left +64 0.0 0.11255349999999999 +64 0.45021399999999995 0.5627675 +64 0.9004279999999999 1.0129815 +64 1.350642 1.4618689499999997 +64 1.7951153 1.9054341 +64 2.2342169 2.3430938999999995 +63 3.04941715 3.1036588999999997 +68 3.1036588999999997 3.2094641499999996 +68 3.4739772749999998 3.5268798999999995 +73 3.5268798999999995 3.6361536499999993 +61 3.9093380249999994 3.9639748999999997 +63 4.7925824 4.8478229 +66 3.9639748999999997 4.8478229 +68 4.8478229 4.955915399999999 +68 5.009961649999999 5.0640079 +73 5.0640079 5.1721004 +61 5.22614665 5.280192899999999 +66 5.280192899999999 5.389466649999999 +63 5.662651025 5.7172879 +68 5.7172879 5.8265616499999995 +56 6.099746025 6.1543829 +61 6.1543829 6.2669364 +66 6.6045969 7.906398899999999 +61 6.5483201499999995 7.906398899999999 +68 7.906398899999999 9.2285469 +63 7.85215715 9.2285469 +40 9.2285469 9.6672399 +64 9.6672399 9.77691315 +64 10.105932899999999 10.21560615 +64 10.5446259 10.6531094 +71 10.7615929 10.8700764 +64 10.7615929 10.8700764 +71 11.190170400000001 11.29597565 +64 11.190170400000001 11.29597565 +71 11.6203284 11.72960215 +64 11.6203284 11.72960215 +71 12.0598379 12.1703189 +64 12.0598379 12.1703189 +71 12.5017619 12.6122429 +64 12.5017619 12.6122429 +71 12.9389089 13.0470014 +64 12.9389089 13.0470014 +71 13.372060900000001 13.480544400000001 +64 13.372060900000001 13.480544400000001 +71 13.800638400000002 13.906443650000002 +64 13.800638400000002 13.906443650000002 +71 14.230796400000001 14.34007015 +64 14.230796400000001 14.34007015 +71 14.6703059 14.7807869 +64 14.6703059 14.7807869 +71 15.1122299 15.222710900000001 +64 15.1122299 15.222710900000001 +71 15.5493769 15.6574694 +64 15.5493769 15.6574694 +71 15.993822025 16.107656775000002 +64 15.993822025 16.107656775000002 +71 16.440838025 16.550511275 +64 16.440838025 16.550511275 +71 16.876369525 16.984462025000003 +64 16.876369525 16.984462025000003 +54 17.092554525 17.311901025 +47 17.038508275 17.4032954 +59 17.531247525 17.640920775 +59 17.969940525000002 18.079613775000002 +59 18.408633525 18.627980025 +61 18.847326525 19.064293525 +64 19.281260525 19.498227525 +63 19.726764025 19.889489275000003 +62 20.594632025000003 20.757357275 +61 21.038408025 21.201133275 +61 21.472342025 21.635067274999997 +61 21.906276025 22.069001274999998 +61 22.340210024999998 22.502935275 +63 22.774144025 22.93341365 +66 23.198863024999998 23.362178524999997 +56 21.038408025 23.634371024999997 +65 23.634371024999997 24.502239024999998 +64 24.502239024999998 24.719206025 +63 24.946015024999998 25.10585015 +61 25.804612024999997 26.020797025 +65 26.236982025 26.39681715 +61 26.663209025 26.879394025 +65 27.095579025 27.257717775 +56 24.946015024999998 27.538573025 +63 27.538573025 27.698408150000002 +61 28.395618025 28.611027025000002 +65 28.834457525 28.996014275 +61 29.265275525 29.483823025 +65 29.702370525 29.8687044 +56 27.538573025 30.161735025 +68 30.161735025 31.020332025 +67 31.020332025 31.459947524999997 +66 31.459947524999997 32.327815525 +65 32.327815525 32.761749525 +75 33.182806525 33.398991525 +68 32.761749525 33.615176524999995 +67 33.615176524999995 34.054792025 +80 34.496024524999996 34.713778524999995 +66 34.054792025 34.931532524999994 +65 34.931532524999994 35.385006024999996 +74 35.827025524999996 36.052132525 +68 35.385006024999996 36.277239525 +67 36.277239525 36.748712524999995 +75 37.238594025 37.480979024999996 +66 36.748712524999995 37.723364024999995 +65 37.723364024999995 38.230603025 +52 38.230603025 38.472988025 +40 38.230603025 38.472988025 +71 38.715373025 38.889427399999995 +64 38.715373025 38.889427399999995 +71 38.947445525 39.295554275 +64 38.947445525 39.295554275 +71 39.411590525 39.5856449 +64 39.411590525 39.5856449 +63 38.715373025 39.643663024999995 +69 39.643663024999995 39.814415149999995 +64 39.643663024999995 39.814415149999995 +69 39.87133252499999 40.209077525 +64 39.87133252499999 40.209077525 +69 40.319153025 40.484266274999996 +64 40.319153025 40.484266274999996 +61 39.643663024999995 40.539304025 +63 40.539304025 40.993336525 +71 40.539304025 40.993336525 +64 40.539304025 40.993336525 +61 40.993336525 41.446954524999995 +69 40.993336525 41.446954524999995 +64 40.993336525 41.446954524999995 +71 41.446954524999995 41.61390564999999 +64 41.446954524999995 41.61390564999999 +71 41.669556025 42.001830774999995 +64 41.669556025 42.001830774999995 +71 42.111504024999995 42.29040189999999 +64 42.111504024999995 42.29040189999999 +63 41.446954524999995 42.350034525 +69 42.350034525 42.5195004 +64 42.350034525 42.5195004 +69 42.575989025 42.914920775 +64 42.575989025 42.914920775 +69 43.027898025 43.366829775 +64 43.027898025 43.366829775 +69 43.479807025 43.6492729 +64 43.479807025 43.6492729 +61 42.350034525 43.705761525 +63 43.705761525 44.152622525 +71 43.705761525 44.152622525 +64 43.705761525 44.152622525 +61 44.152622525 44.599483525 +69 44.152622525 44.599483525 +64 44.152622525 44.599483525 +63 44.599483525 45.058633525000005 +71 44.599483525 45.058633525000005 +64 44.599483525 45.058633525000005 +61 45.058633525000005 45.26199257500001 +61 45.284588025000005 45.691306125000004 +61 45.736497025000006 46.143215125000005 +59 45.058633525000005 46.42693652500001 +61 46.188406025000006 46.60702212500001 +61 46.65204352500001 47.05723612500001 +61 47.102257525000006 47.50745012500001 +58 46.42693652500001 47.64788372500001 +61 47.55247152500001 47.97244922500001 +61 48.017811025000015 48.42606722500001 +61 48.47142902500001 48.87968522500001 +56 47.79100202500001 49.163577525000015 +61 48.92504702500001 49.345024725000016 +61 49.39038652500002 49.798642725000015 +61 49.84400452500002 50.25226072500001 +55 49.163577525000015 50.53710502500002 +61 50.297622525000016 50.99244402500002 +63 50.99244402500002 51.157557275000016 +61 51.21259502500002 51.39008177500002 +63 51.44924402500002 51.90458302500002 +61 51.90458302500002 52.35992202500002 +63 52.35992202500002 52.525035275000015 +61 52.58007302500002 52.75826252500002 +63 52.81765902500002 53.27299802500002 +54 50.53710502500002 53.27299802500002 +61 53.27299802500002 53.728337025000016 +63 53.728337025000016 53.89405852500001 +61 53.949299025000016 54.12748852500002 +63 54.18688502500002 54.64222402500002 +61 54.64222402500002 55.12118902500002 +54 53.27299802500002 55.12118902500002 +51 55.12118902500002 55.58713602500002 +49 55.58713602500002 56.08788401250002 +47 56.08788401250002 56.31274908125002 +59 56.536524018750015 56.64791803125002 +59 56.980608875000016 57.090937812500016 +59 57.42116431250002 57.53123981250002 +59 57.86146631250002 57.96994981250002 +59 58.29540031250002 58.40388381250002 +61 58.740903812500015 59.40966531250002 +62 59.40966531250002 59.63477231250002 +64 59.63477231250002 60.084986312500014 +61 60.084986312500014 60.53520031250002 +62 60.53520031250002 60.95991931250002 +64 60.95991931250002 61.42711231250002 +59 58.740903812500015 61.42711231250002 +65 61.42711231250002 62.31755481250002 +64 62.31755481250002 63.21798281250002 +62 63.21798281250002 64.09342931250002 +59 61.42711231250002 64.09342931250002 +61 64.09342931250002 64.76219081250002 +62 64.76219081250002 64.98729781250002 +64 64.98729781250002 65.43751181250002 +61 65.43751181250002 65.88772581250002 +62 65.88772581250002 66.31244481250002 +64 66.31244481250002 66.77963781250001 +59 64.09342931250002 66.77963781250001 +65 66.77963781250001 67.6700803125 +64 67.6700803125 68.57050831250001 +62 68.57050831250001 69.4459548125 +55 66.77963781250001 69.4459548125 +62 69.4459548125 70.11471631250001 +64 70.11471631250001 70.3398233125 +62 70.3398233125 70.7900373125 +61 70.7900373125 72.1321633125 +58 69.4459548125 72.1321633125 +62 72.1321633125 72.8009248125 +64 72.8009248125 73.0260318125 +62 73.0260318125 73.4762458125 +61 73.4762458125 73.9264598125 +62 73.9264598125 74.3511788125 +64 74.3511788125 74.81837181249999 +57 74.3511788125 74.81837181249999 +58 72.1321633125 74.81837181249999 +65 74.81837181249999 75.48713331249999 +67 75.48713331249999 75.71224031249999 +65 75.71224031249999 76.16245431249999 +64 76.16245431249999 77.50458031249998 +61 74.81837181249999 77.50458031249998 +65 77.50458031249998 78.17334181249998 +67 78.17334181249998 78.39844881249998 +65 78.39844881249998 78.84866281249998 +64 78.84866281249998 79.29887681249998 +65 79.29887681249998 79.72359581249998 +67 79.72359581249998 80.19078881249997 +60 79.72359581249998 80.19078881249997 +61 77.50458031249998 80.19078881249997 +65 80.19078881249997 80.30462356249997 +68 80.41845831249998 80.53229306249997 +60 83.32907731249998 83.44422281249997 +62 83.78965931249998 83.90480481249998 +58 83.78965931249998 83.90480481249998 +60 84.74185381249997 84.87428081249998 +56 84.74185381249997 84.87428081249998 +58 85.27156181249997 85.40112906249996 +55 85.27156181249997 85.40112906249996 +58 87.58733381249996 87.69781481249996 +56 87.53147618749996 87.69781481249996 +58 88.02925781249996 88.13973881249996 +56 87.97401731249997 88.13973881249996 +58 88.47118181249996 88.58166281249996 +56 88.41594131249997 88.58166281249996 +58 88.91310581249996 89.02237956249996 +56 88.85786531249997 89.02237956249996 +58 89.35020081249996 89.45947456249996 +56 89.29556393749996 89.45947456249996 +58 89.78729581249996 89.89656956249996 +56 89.73265893749996 89.89656956249996 +58 90.22439081249996 90.33366456249996 +56 90.16975393749996 90.33366456249996 +58 90.66148581249996 90.77156131249995 +56 90.60684893749996 90.77156131249995 +58 91.10178781249996 91.21066481249997 +56 91.10178781249996 91.21066481249997 +58 91.54721131249997 91.65728681249996 +56 91.54721131249997 91.65728681249996 +58 91.98751331249997 92.09758881249996 +56 91.93247556249997 92.09758881249996 +58 92.42781531249997 92.53669231249998 +56 92.42781531249997 92.53669231249998 +58 92.87323881249998 92.98331431249997 +56 92.87323881249998 92.98331431249997 +58 93.31354081249998 93.42361631249997 +56 93.25850306249998 93.42361631249997 +58 93.75384281249998 93.86271981249999 +56 93.75384281249998 93.86271981249999 +58 94.18935081249998 94.29822781249999 +56 94.18935081249998 94.29822781249999 +58 94.62251381249997 94.72794706249998 +56 94.62251381249997 94.72794706249998 +58 95.06018931249997 95.16636906249997 +56 95.06018931249997 95.16636906249997 +58 95.49030281249998 95.60037831249997 +56 95.49030281249998 95.60037831249997 +58 95.94525081249998 96.05532631249997 +56 95.88655156249997 96.05532631249997 +60 96.38555281249998 96.49482656249998 +58 96.38555281249998 96.49482656249998 +60 96.82264781249998 96.93074031249998 +58 96.82264781249998 96.93074031249998 +60 97.26393981249997 97.37401531249996 +58 97.26393981249997 97.37401531249996 +60 97.70424181249997 97.81351556249997 +58 97.70424181249997 97.81351556249997 +60 98.14133681249997 98.24942931249997 +58 98.14133681249997 98.24942931249997 +58 98.58262881249996 98.69270431249996 +60 98.58262881249996 98.69270431249996 +60 99.03219031249996 99.14146406249996 +58 99.03219031249996 99.14146406249996 +60 99.46928531249996 99.57698981249996 +58 99.46928531249996 99.57698981249996 +58 99.89630481249996 100.00211006249995 +60 99.89630481249996 100.00211006249995 +60 100.33472431249996 100.44360131249996 +58 100.33472431249996 100.44360131249996 +60 100.76751038749995 100.87755592499995 +58 100.77023231249996 100.88030781249995 +60 101.22518031249996 101.33525581249995 +58 101.16648106249995 101.33525581249995 +60 102.09826838749996 102.20525339999996 +58 102.10099031249996 102.20792681249996 +63 102.52873631249996 102.64567706249996 +61 102.52873631249996 102.64567706249996 +66 102.99649931249996 103.10267906249996 +63 102.93802893749996 103.10267906249996 +61 103.42121831249996 103.53009531249997 +54 103.85672631249996 103.96560331249997 +58 104.72932931249996 104.83703381249995 +60 104.72932931249996 104.83703381249995 +61 105.15560481249994 105.26103806249995 +63 105.15560481249994 105.26103806249995 +66 105.59242581249995 105.69860556249995 +63 105.53593718749995 105.69860556249995 +61 106.01714481249995 106.12602181249996 +54 106.45265281249995 106.56152981249996 +66 106.88757456249995 106.99375431249995 +63 106.83372231249994 106.99375431249995 +61 107.31229356249995 107.42117056249995 +54 107.74780156249994 107.85667856249995 +66 108.18272331249995 108.28890306249994 +63 108.12887106249994 108.28890306249994 +61 108.60744231249994 108.71631931249995 +54 109.04295031249994 109.15182731249995 +64 109.50211431249994 109.61681956249994 +61 109.96093531249994 110.08462631249994 +54 110.45569931249995 110.57640431249995 +69 110.93851931249995 111.05235406249994 +66 110.90834306249994 111.05235406249994 +64 110.87816681249994 111.05235406249994 +69 111.39385831249994 111.50769306249995 +66 111.36539962499995 111.50769306249995 +64 111.33694093749995 111.50769306249995 +69 111.84919731249995 111.96008656249995 +66 111.82073862499995 111.96008656249995 +64 111.79227993749996 111.96008656249995 +69 112.29275431249995 112.40658906249995 +66 112.26503199999995 112.40658906249995 +64 112.23730968749996 112.40658906249995 +69 112.74809331249995 112.86022606249995 +66 112.71963462499996 112.86022606249995 +64 112.69117593749995 112.86022606249995 +69 113.19662431249995 113.31002881249995 +66 113.16859112499995 113.31002881249995 +64 113.14055793749995 113.31002881249995 +69 113.65024231249996 113.76195756249996 +66 113.65024231249996 113.76195756249996 +64 113.65024231249996 113.76195756249996 +69 114.09710331249995 114.20758431249995 +66 114.09710331249995 114.20758431249995 +64 114.09710331249995 114.20758431249995 +69 114.53902731249995 114.65074256249996 +66 114.53902731249995 114.65074256249996 +64 114.53902731249995 114.65074256249996 +69 114.98588831249995 115.09556156249995 +66 114.98588831249995 115.09556156249995 +63 114.98588831249995 115.09556156249995 +69 115.42458131249995 115.53841606249995 +66 115.42458131249995 115.53841606249995 +61 115.42458131249995 115.53841606249995 +69 115.87992031249995 115.99640706249996 +66 115.87992031249995 115.99640706249996 +60 115.87992031249995 115.99640706249996 +65 116.34586731249995 116.45927181249995 +61 116.34586731249995 116.45927181249995 +59 116.34586731249995 116.45927181249995 +65 116.79948531249995 116.91288981249994 +61 116.79948531249995 116.91288981249994 +59 116.79948531249995 116.91288981249994 +65 117.25310331249995 117.36650781249995 +61 117.25310331249995 117.36650781249995 +59 117.25310331249995 117.36650781249995 +64 117.70672131249995 117.82231031249995 +61 117.70672131249995 117.82231031249995 +58 117.70672131249995 117.82231031249995 +64 118.16907731249995 118.29226031249995 +61 118.16907731249995 118.29226031249995 +56 118.16907731249995 118.29226031249995 +64 118.66180931249995 118.79081931249995 +61 118.66180931249995 118.79081931249995 +55 118.66180931249995 118.79081931249995 +58 119.14559681249996 119.28873856249996 +54 119.13484597916663 119.28873856249996 +58 119.59368399999995 119.73229556249996 +54 119.58444322916662 119.73229556249996 +58 120.03724099999995 120.17585256249995 +54 120.02800022916662 120.17585256249995 +58 120.48079799999996 120.61982106249995 +54 120.47155722916662 120.61982106249995 +58 120.92589812499996 121.06627681249996 +54 120.91662306249995 121.06627681249996 +58 121.37579893749997 121.51777206249996 +54 121.36641947916662 121.51777206249996 +57 121.83081762499997 121.97760081249996 +54 121.8213313958333 121.97760081249996 +57 122.30299318749996 122.45677731249995 +54 122.29313281249996 122.45677731249995 +57 122.79833556249996 122.95951556249996 +54 122.78798531249996 122.95951556249996 +47 123.34990331249996 125.84480231249997 +49 125.84480231249997 126.08145131249996 +51 126.08145131249996 127.21122381249997 +49 127.21122381249997 127.44787281249997 +40 124.71075731249996 127.44787281249997 +48 127.44787281249997 128.12287946874997 +50 128.12287946874997 128.34575091874996 +52 128.34575091874996 128.56697876249996 +54 128.56697876249996 128.78658720624995 +40 127.44787281249997 128.78658720624995 +47 130.23435828958327 131.36840328958326 +49 131.36840328958326 131.60505228958326 +51 131.60505228958326 132.73482478958326 +49 132.73482478958326 132.97147378958326 +40 130.23435828958327 132.97147378958326 +48 132.97147378958326 133.64648044583325 +50 133.64648044583325 133.86935189583323 +52 133.86935189583323 134.09057973958323 +54 134.09057973958323 134.31018818333322 +40 132.97147378958326 134.31018818333322 +60 136.25443768333324 136.48297418333323 +62 136.48297418333323 136.71151068333324 +64 136.71151068333324 136.93273852708322 +66 136.93273852708322 137.1523469708332 +72 139.09659647083322 139.3251329708332 +74 139.3251329708332 139.55366947083323 +76 139.55366947083323 139.7748973145832 +78 139.7748973145832 139.9945057583332 +59 140.9682942583332 141.2146602583332 +66 140.9682942583332 141.2146602583332 +69 140.9682942583332 141.2146602583332 +64 141.9537582583332 142.16536875833322 +71 142.16536875833322 142.37697925833322 +64 142.37697925833322 142.59552675833322 +71 142.59552675833322 142.81407425833322 +64 142.81407425833322 143.02871275833323 +71 143.02871275833323 143.24335125833323 +64 143.24335125833323 143.45496175833324 +71 143.45496175833324 143.66657225833325 +64 143.66657225833325 143.88511975833325 +71 143.88511975833325 144.10366725833325 +64 144.10366725833325 144.31907625833324 +71 144.31907625833324 144.53448525833323 +64 144.53448525833323 144.74609575833324 +71 144.74609575833324 144.95770625833325 +64 144.95770625833325 145.17625375833325 +71 145.17625375833325 145.39480125833325 +64 145.39480125833325 145.60943975833325 +71 145.60943975833325 145.82407825833326 +64 145.82407825833326 146.03568875833327 +71 146.03568875833327 146.24729925833327 +64 146.24729925833327 146.46584675833327 +71 146.46584675833327 146.68439425833327 +64 146.68439425833327 146.89980325833326 +71 146.89980325833326 147.11521225833326 +64 147.11521225833326 147.32682275833326 +71 147.32682275833326 147.53843325833327 +64 147.53843325833327 147.75698075833327 +71 147.75698075833327 147.97552825833327 +64 147.97552825833327 148.19016675833328 +71 148.19016675833328 148.40480525833328 +64 148.40480525833328 148.6164157583333 +71 148.6164157583333 148.8280262583333 +64 148.8280262583333 149.0411397583333 +71 149.0411397583333 149.2542532583333 +64 149.2542532583333 149.4688917583333 +71 149.4688917583333 149.68353025833332 +64 149.68353025833332 149.8921967583333 +71 149.8921967583333 150.10086325833333 +64 150.10086325833333 150.31941075833333 +71 150.31941075833333 150.53795825833333 +64 150.53795825833333 150.75259675833334 +71 150.75259675833334 150.96723525833335 +64 150.96723525833335 151.17884575833335 +71 151.17884575833335 151.39045625833336 +64 151.39045625833336 151.60356975833335 +71 151.60356975833335 151.81668325833337 +64 151.81668325833337 152.03132175833338 +71 152.03132175833338 152.24596025833338 +64 152.24596025833338 152.45462675833338 +71 152.45462675833338 152.6632932583334 +64 152.6632932583334 152.8818407583334 +71 152.8818407583334 153.1003882583334 +59 159.4710827583334 159.68194925833342 +56 159.4710827583334 159.68194925833342 +52 160.7362817583334 160.9471482583334 +59 160.9471482583334 161.15801475833342 diff --git a/test/midi/debussy/childrens_corner_4.mid b/test/midi/debussy/childrens_corner_4.mid new file mode 100644 index 0000000000000000000000000000000000000000..91d0a19da456c751a6671be00bed288cd7cb1a12 GIT binary patch literal 14114 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 W1NGVXuWMUvb+~j!?O+d*^#1|>mE@uT literal 0 HcmV?d00001 diff --git a/test/midi/debussy/childrens_corner_4.mid.txt b/test/midi/debussy/childrens_corner_4.mid.txt new file mode 100644 index 0000000..e9c5c2d --- /dev/null +++ b/test/midi/debussy/childrens_corner_4.mid.txt @@ -0,0 +1,1391 @@ +track Piano right +76 0.0 0.12462600000000001 +77 0.24925200000000003 0.37387800000000004 +79 0.49850400000000006 0.6231300000000001 +81 0.7477560000000001 0.8723820000000001 +76 0.9970080000000001 1.121634 +77 1.2462600000000001 1.370886 +79 1.4955120000000002 1.620138 +81 1.7447640000000002 1.86939 +76 2.118642 2.2121115000000002 +77 2.36514975 2.4565610625 +79 2.60891325 2.7003245625 +81 2.85267675 2.9440880625 +76 3.0991845000000002 3.192654 +77 3.34524825 3.4363265624999997 +79 3.58812375 3.6792020625 +81 3.8421405 3.94157475 +76 4.0993455 4.192815 +77 4.34540925 4.4364875625 +79 4.588284750000001 4.6793630625 +81 4.83116025 4.9222385625000005 +76 5.077224 5.1706935000000005 +77 5.322399750000001 5.4128120625000005 +79 5.5634992500000005 5.6539115625 +81 5.80459875 5.8950110625 +76 6.04838225 6.140807562500001 +77 6.294849750000001 6.385928062500001 +79 6.537725250000001 6.628803562500001 +81 6.7806007500000005 6.871679062500001 +76 7.024367750000001 7.1161146875000005 +77 7.268134750000001 7.3592130625 +79 7.511010250000001 7.6020885625000005 +81 7.75388575 7.844964062500001 +76 7.99715575 8.0885299375 +77 8.24042575 8.3318370625 +79 8.48418925 8.5756005625 +81 8.72795275 8.8193640625 +76 8.9697195 9.05963325 +77 9.21059175 9.3013321875 +79 9.45256625 9.5433066875 +81 9.69454075 9.7852811875 +76 9.937360250000001 10.0287344375 +77 10.18063025 10.2717085625 +79 10.42350575 10.514584062499999 +81 10.66638125 10.7574595625 +76 10.91014825 11.0018951875 +77 11.153464750000001 11.2442051875 +79 11.39543925 11.4861796875 +81 11.645904250000001 11.7430125625 +76 11.897711250000002 11.989458187500002 +77 12.141027750000003 12.231768187500002 +79 12.380479750000001 12.469328312500002 +81 12.619795250000003 12.710433312500003 +74 12.862083750000002 12.953162062500002 +76 13.104959250000002 13.196037562500003 +77 13.346512250000002 13.436598687500002 +79 13.588459750000002 13.679833937500002 +76 13.830841750000001 13.921254062500001 +77 14.07194125 14.162353562500002 +79 14.312175 14.401938000000001 +81 14.551114750000002 14.6405565625 +74 14.79048575 14.8805721875 +76 15.030716250000001 15.120802687500001 +77 15.27094675 15.3610331875 +79 15.514752999999999 15.60752125 +76 15.75855925 15.8486456875 +77 15.99878975 16.0888761875 +74 16.23902025 16.3291066875 +76 16.47925075 16.5693371875 +72 16.71877375 16.8083295625 +74 16.957589249999998 17.045741624999998 +70 17.192662249999998 17.280814624999998 +72 17.431185999999997 17.5219264375 +76 17.67185725 17.76162025 +77 17.911225249999998 18.00098825 +74 18.15059325 18.240356249999998 +76 18.38996125 18.47972425 +72 18.6319745 18.7237214375 +74 18.876632999999998 18.9683799375 +76 19.124056 19.2178763125 +77 19.383534249999997 19.484322624999997 +77 19.639356499999995 19.760794249999996 +76 19.879202749999997 19.997611249999995 +77 20.116019749999996 20.234428249999997 +76 20.355865999999995 20.477303749999997 +77 20.596134499999998 20.71496525 +76 20.833795999999996 20.952626749999997 +77 21.071457499999998 21.19028825 +76 21.309118999999995 21.427949749999996 +77 21.549387499999995 21.670825249999996 +76 21.789233749999998 21.907642249999995 +77 22.026050749999996 22.144459249999997 +76 22.265896999999995 22.387334749999997 +77 22.506165499999998 22.62499625 +76 22.743826999999996 22.862657749999997 +77 22.981488499999998 23.10031925 +76 23.21915 23.337980749999996 +77 23.459418499999995 23.580856249999997 +76 23.699264749999998 23.817673249999995 +77 23.936081749999996 24.054490249999997 +76 24.175927999999995 24.297365749999997 +77 24.416196499999998 24.53502725 +76 24.653857999999996 24.772688749999997 +77 24.891519499999998 25.01035025 +76 25.129180999999996 25.248011749999996 +75 25.369449499999995 25.490887249999997 +77 25.609295749999998 25.727704249999995 +75 25.846112749999996 25.964521249999997 +77 26.088212249999998 26.2368155 +71 26.356636925 26.47595699375 +73 26.5958027125 26.7161678 +71 26.83722295 26.9586607 +73 27.08517895 27.23310795 +75 27.3545457 27.47598345 +77 27.594391950000002 27.71280045 +75 27.83120895 27.94961745 +77 28.073308450000003 28.221911700000003 +71 28.341733125000005 28.461053193750004 +73 28.580898912500004 28.701264000000005 +71 28.822319150000006 28.943756900000004 +73 29.070767900000003 29.218043400000003 +68 29.33948115 29.460918900000003 +70 29.579327400000004 29.6977359 +68 29.816144400000002 29.934552900000003 +70 30.055990650000002 30.177428400000004 +68 30.296259150000004 30.415089900000005 +70 30.531948650000004 30.648807400000006 +68 30.765666150000005 30.882524900000003 +70 30.999383650000006 31.116242400000004 +68 31.237680150000003 31.359117900000005 +70 31.477526400000006 31.595934900000003 +68 31.714343400000004 31.832751900000005 +70 31.956442900000006 32.10504615000001 +68 32.224867575000005 32.34418764375001 +70 32.46403336250001 32.58439845000001 +68 32.70545360000001 32.82689135000002 +70 32.94832910000002 33.069766850000015 +68 33.19120460000001 33.31264235000002 +70 33.43105085000002 33.54945935000002 +68 33.66786785000002 33.786276350000016 +70 33.90468485000002 34.02309335000002 +68 34.142914775000015 34.26223484375002 +70 34.38208056250002 34.50244565000002 +68 34.62350080000002 34.74493855000003 +70 34.87194955000003 35.01922505000003 +68 35.14066280000003 35.26210055000003 +70 35.38050905000003 35.49891755000003 +68 35.61732605000003 35.735734550000025 +70 35.859425550000026 36.00802880000003 +68 36.127850225000024 36.24717029375003 +70 36.36701601250003 36.48738110000003 +68 36.60843625000003 36.72987400000004 +70 36.856392250000034 37.00432125000003 +68 37.12575900000003 37.24719675000003 +70 37.36560525000003 37.48401375000003 +68 37.60242225000003 37.720830750000026 +70 37.84452175000003 37.99312500000003 +68 38.112946425000025 38.23226649375003 +70 38.35211221250003 38.47247730000003 +68 38.59353245000003 38.71497020000004 +70 38.84198120000004 39.005184450000044 +68 39.12662220000004 39.24805995000004 +70 39.36646845000004 39.48487695000004 +68 39.603285450000044 39.72169395000004 +70 39.84538495000004 39.99398820000004 +68 40.11380962500004 40.233129693750044 +70 40.352975412500044 40.47334050000004 +68 40.594395650000045 40.71583340000005 +70 40.842844400000054 41.001373150000056 +66 41.122810900000054 41.24424865000005 +68 41.362657150000054 41.481065650000055 +66 41.599474150000056 41.71788265000005 +68 41.83932040000005 41.960758150000046 +78 41.001373150000056 41.960758150000046 +66 42.07958890000005 42.19841965000005 +68 42.31725040000005 42.43608115000005 +66 42.55491190000004 42.673742650000044 +68 42.792573400000045 42.911404150000045 +74 41.960758150000046 42.911404150000045 +66 43.032841900000044 43.15427965000004 +68 43.27268815000004 43.391096650000044 +66 43.509505150000045 43.62791365000004 +68 43.74935140000004 43.870789150000036 +66 43.98961990000004 44.10845065000004 +68 44.22728140000004 44.36474465000004 +76 42.911404150000045 44.36474465000004 +66 44.48320940000004 44.60167415000004 +68 44.720138900000045 44.83860365000004 +76 44.36474465000004 44.83860365000004 +66 44.96004140000004 45.081479150000035 +68 45.199887650000036 45.31829615000004 +78 44.83860365000004 45.31829615000004 +66 45.43670465000004 45.55511315000003 +68 45.67655090000003 45.79798865000003 +78 45.31829615000004 45.79798865000003 +66 45.91681940000003 46.03565015000003 +68 46.15448090000003 46.27331165000003 +74 45.79798865000003 46.27331165000003 +66 46.392142400000026 46.51097315000003 +68 46.62980390000003 46.76664015000003 +74 46.27331165000003 46.76664015000003 +66 46.88807790000003 47.009515650000026 +68 47.12792415000003 47.24633265000003 +66 47.36474115000003 47.48314965000002 +68 47.60458740000002 47.72602515000002 +66 47.84485590000002 47.96368665000002 +68 48.08251740000002 48.20134815000002 +66 48.320178900000016 48.43900965000002 +68 48.55784040000002 48.67667115000002 +76 46.76664015000003 48.67667115000002 +66 48.79810890000002 48.919546650000015 +68 49.037955150000016 49.15636365000002 +66 49.27477215000002 49.39318065000001 +68 49.51461840000001 49.63605615000001 +76 48.67667115000002 49.63605615000001 +66 49.75488690000001 49.87371765000001 +68 49.99254840000001 50.11137915000001 +66 50.230209900000006 50.349040650000006 +68 50.46787140000001 50.58670215000001 +72 49.63605615000001 50.58670215000001 +65 50.708139900000006 50.829577650000004 +67 50.947986150000006 51.06639465000001 +65 51.18480315000001 51.30321165 +67 51.4246494 51.54608715 +65 51.6649179 51.78374865 +67 51.9025794 52.02141015 +74 50.58670215000001 52.02141015 +65 52.140240899999995 52.259071649999996 +67 52.377902399999996 52.49673315 +74 52.02141015 52.49673315 +66 52.618170899999996 52.739608649999994 +68 52.858017149999995 52.976425649999996 +76 52.49673315 52.976425649999996 +66 53.09483415 53.21324264999999 +68 53.33468039999999 53.45611814999999 +76 52.976425649999996 53.45611814999999 +66 53.57494889999999 53.69377964999999 +68 53.81261039999999 53.93144114999999 +72 53.45611814999999 53.93144114999999 +66 54.050271899999984 54.169102649999985 +68 54.287933399999986 54.40676414999999 +72 53.93144114999999 54.40676414999999 +65 54.528201899999985 54.64963964999998 +67 54.768048149999984 54.886456649999985 +65 55.004865149999986 55.12327364999998 +67 55.24471139999998 55.36614914999998 +65 55.48497989999998 55.60381064999998 +67 55.72264139999998 55.84147214999998 +65 55.960302899999974 56.079133649999974 +67 56.197964399999975 56.316795149999976 +74 54.40676414999999 56.316795149999976 +64 56.441421149999975 56.53489064999997 +65 56.68748489999997 56.778563212499975 +67 56.93036039999998 57.02143871249997 +69 57.17323589999997 57.264314212499976 +62 57.41929964999997 57.51276914999997 +64 57.66447539999997 57.75488771249997 +65 57.90557489999997 57.99598721249997 +67 58.14667439999997 58.23708671249997 +64 58.39185014999997 58.485319649999965 +65 58.637913899999965 58.72899221249997 +67 58.88078939999997 58.971867712499964 +69 59.123664899999966 59.21474321249997 +62 59.36972864999996 59.46319814999996 +64 59.614904399999965 59.705316712499965 +65 59.85600389999996 59.94641621249996 +67 60.097103399999966 60.187515712499966 +62 60.34181514999996 60.43493664999996 +63 60.58652689999996 60.67693921249996 +65 60.82762639999996 60.91803871249996 +67 61.06872589999996 61.15913821249996 +62 61.30982539999996 61.40023771249996 +63 61.550924899999956 61.641337212499955 +65 61.79202439999996 61.88243671249996 +67 62.03673614999995 62.13020564999995 +60 60.21765314999996 62.16136214999995 +62 62.28552414999995 62.37864564999995 +63 62.53023589999995 62.62064821249995 +65 62.77133539999995 62.86174771249995 +67 63.012434899999946 63.10284721249995 +62 63.25353439999995 63.34394671249995 +63 63.49463389999995 63.58504621249995 +65 63.73573339999995 63.82614571249995 +67 63.980445149999944 64.07391464999995 +60 62.16136214999995 64.10507114999994 +82 64.60171914999994 64.72588114999995 +82 64.76726848333328 64.89143048333328 +82 64.93281781666661 65.05697981666661 +82 65.09836714999994 65.22252914999994 +82 65.26391648333328 65.38807848333327 +82 65.4294658166666 65.5536278166666 +82 65.59501514999994 65.71917714999995 +82 65.76056448333328 65.88666673333329 +82 65.92999431666662 66.05997706666662 +82 66.10330464999996 66.35162864999995 +81 66.35162864999995 66.59995264999995 +79 66.59995264999995 67.59324864999995 +82 67.59324864999995 67.7587979833333 +81 67.7587979833333 67.92822781666663 +79 67.92822781666663 68.10153814999997 +79 68.10153814999997 68.59818614999996 +77 68.59818614999996 68.7637354833333 +76 68.7637354833333 68.93669781666664 +74 68.93669781666664 69.11707314999997 +73 69.11707314999997 69.30613277499997 +70 69.36915264999996 70.13327714999997 +77 70.62992514999996 70.79547448333331 +76 70.79547448333331 70.96843681666664 +74 70.96843681666664 71.14881214999997 +73 71.14881214999997 71.33787177499997 +70 71.40089164999996 71.65297114999997 +77 71.65297114999997 71.82102414999997 +76 71.82102414999997 71.99170581666664 +74 71.99170581666664 72.12314427499996 +85 72.21125514999996 72.46821464999995 +82 72.46821464999995 72.72517414999996 +73 72.12314427499996 74.16541452499996 +76 72.15251456666662 74.18691064999996 +78 72.18188485833329 74.20840677499996 +73 74.28582214999996 74.54278164999995 +66 74.26001702499995 74.7783278583333 +61 74.20840677499996 74.79974114999996 +64 74.23421189999996 74.79974114999996 +70 74.54278164999995 74.79974114999996 +58 75.83155514999996 75.96053189999996 +60 75.96053189999996 76.08950864999996 +58 76.08950864999996 76.21848539999996 +60 76.21848539999996 76.34746214999996 +58 76.34746214999996 76.47594189999995 +60 76.47594189999995 76.60442164999995 +58 76.60442164999995 76.72858364999995 +60 76.72858364999995 76.85274564999995 +58 76.85274564999995 76.98073189999995 +60 76.98073189999995 77.10871814999994 +58 77.10871814999994 77.23288014999994 +60 77.23288014999994 77.35704214999994 +58 77.35704214999994 77.48453889999995 +60 77.48453889999995 77.61203564999994 +58 77.61203564999994 77.73953239999994 +60 77.73953239999994 77.86702914999994 +58 77.86702914999994 77.99306889999994 +60 77.99306889999994 78.11910864999993 +58 78.11910864999993 78.24514839999993 +60 78.24514839999993 78.37118814999994 +58 78.37118814999994 78.50016489999994 +60 78.50016489999994 78.62914164999994 +58 78.62914164999994 78.75811839999994 +60 78.75811839999994 78.88709514999994 +58 78.88709514999994 79.01607189999994 +61 79.01607189999994 79.14504864999994 +58 79.14504864999994 79.27156689999994 +61 79.27156689999994 79.39808514999993 +70 79.65112164999994 79.77763989999994 +73 79.77763989999994 79.90415814999993 +58 80.15719464999994 80.28371289999994 +61 80.28371289999994 80.41023114999993 +58 80.41023114999993 80.53871089999993 +60 80.53871089999993 80.66719064999992 +58 80.66719064999992 80.79135264999992 +60 80.79135264999992 80.91551464999992 +58 80.91551464999992 81.04350089999993 +60 81.04350089999993 81.17148714999992 +58 81.17148714999992 81.29564914999992 +60 81.29564914999992 81.41981114999992 +58 81.41981114999992 81.54730789999992 +60 81.54730789999992 81.67480464999991 +58 81.67480464999991 81.80230139999992 +60 81.80230139999992 81.92979814999991 +58 81.92979814999991 82.05583789999991 +60 82.05583789999991 82.1818776499999 +58 82.1818776499999 82.30791739999991 +60 82.30791739999991 82.43395714999991 +58 82.43395714999991 82.56293389999992 +60 82.56293389999992 82.69191064999991 +58 82.69191064999991 82.82088739999992 +60 82.82088739999992 82.94986414999991 +58 82.94986414999991 83.07884089999992 +61 83.07884089999992 83.20781764999991 +58 83.20781764999991 83.33433589999991 +61 83.33433589999991 83.4608541499999 +70 83.71389064999991 83.84040889999991 +73 83.84040889999991 83.9669271499999 +70 83.9669271499999 84.09344539999991 +73 84.09344539999991 84.21996364999991 +82 84.9696481499999 85.09381014999991 +82 85.13519748333324 85.25935948333324 +82 85.30074681666657 85.42490881666657 +82 85.4662961499999 85.5904581499999 +82 85.63184548333324 85.75600748333324 +82 85.79739481666657 85.92155681666657 +82 85.9629441499999 86.08710614999991 +82 86.12849348333324 86.25459573333325 +82 86.29792331666658 86.42790606666658 +82 86.47123364999992 86.71955764999991 +81 86.71955764999991 86.96788164999991 +79 86.96788164999991 87.96117764999991 +82 87.96117764999991 88.12672698333326 +81 88.12672698333326 88.2961568166666 +79 88.2961568166666 88.46946714999993 +79 88.46946714999993 88.96611514999992 +77 88.96611514999992 89.13166448333327 +76 89.13166448333327 89.3046268166666 +74 89.3046268166666 89.48500214999993 +73 89.48500214999993 89.67406177499993 +70 89.73708164999992 90.50120614999993 +77 91.00536514999993 91.17341814999993 +76 91.17341814999993 91.34763231666659 +74 91.34763231666659 91.52800764999992 +68 91.00536514999993 91.52800764999992 +73 91.52800764999992 91.72072727499992 +70 91.78496714999991 91.97768677499992 +67 91.52800764999992 92.04192664999992 +77 92.04192664999992 92.21323298333326 +76 92.21323298333326 92.38944131666658 +74 92.38944131666658 92.58006764999992 +68 92.04192664999992 92.58006764999992 +73 92.58006764999992 92.77736677499992 +70 92.84313314999991 93.04043227499992 +67 92.58006764999992 93.10619864999993 +77 93.10619864999993 93.28474156666658 +76 93.28474156666658 93.47278223333325 +74 93.47278223333325 93.67462314999992 +68 93.10619864999993 93.67462314999992 +73 93.67462314999992 93.79685264999992 +70 93.67462314999992 93.79685264999992 +66 93.79685264999992 93.91908214999992 +73 94.66941489999991 94.7911581499999 +70 94.66941489999991 94.7911581499999 +65 94.7911581499999 94.91290139999991 +73 95.65956139999992 95.78179089999992 +70 95.65956139999992 95.78179089999992 +63 95.78179089999992 95.87346302499992 +73 97.63100564999992 97.75323514999992 +70 97.63100564999992 97.75323514999992 +66 97.75323514999992 97.87546464999993 +73 98.62579739999991 98.7475406499999 +70 98.62579739999991 98.7475406499999 +65 98.7475406499999 98.86928389999991 +73 99.61594389999992 99.73817339999992 +70 99.61594389999992 99.73817339999992 +63 99.73817339999992 99.82984552499993 +63 100.59724164999992 100.68854908749992 +62 100.71898489999991 100.81029233749992 +66 100.84072814999992 100.93203558749991 +65 100.96247139999991 101.05377883749992 +63 101.08421464999992 101.17552208749991 +65 101.20595789999992 101.29726533749992 +66 101.32770114999991 101.41692321249991 +67 101.4466638999999 101.54657514999991 +63 101.57987889999991 101.67083214999991 +62 101.7011498999999 101.79210314999992 +66 101.82242089999991 101.91337414999991 +65 101.9436918999999 102.03464514999992 +63 102.06496289999991 102.15591614999991 +65 102.1862338999999 102.27718714999992 +66 102.30750489999991 102.39604577499992 +67 102.42555939999991 102.52420896249991 +66 102.55709214999992 102.64839958749992 +65 102.67883539999991 102.77014283749992 +70 102.80057864999992 102.89188608749991 +69 102.92232189999991 103.01362933749992 +66 103.04406514999992 103.13537258749992 +68 103.16580839999992 103.25711583749992 +70 103.28755164999991 103.37677371249991 +71 103.4065143999999 103.50642564999991 +66 103.53972939999991 103.63068264999991 +65 103.6610003999999 103.75195364999992 +70 103.78227139999991 103.87322464999991 +69 103.9035423999999 103.99449564999992 +66 104.02481339999991 104.11576664999991 +69 104.1460843999999 104.23703764999992 +70 104.26735539999991 104.35589627499992 +71 104.38540989999991 104.48405946249991 +70 104.51694264999992 104.60825008749993 +69 104.63868589999991 104.72999333749992 +73 104.76042914999992 104.85173658749991 +72 104.88217239999992 104.97347983749992 +70 105.00391564999993 105.09522308749992 +71 105.12565889999992 105.21696633749993 +73 105.24740214999991 105.33662421249991 +74 105.36636489999991 105.46627614999991 +70 105.49957989999992 105.59053314999991 +69 105.62085089999991 105.71180414999992 +73 105.74212189999992 105.83307514999991 +72 105.86339289999991 105.95434614999992 +70 105.98466389999992 106.07561714999991 +71 106.10593489999991 106.19688814999992 +73 106.22720589999992 106.31574677499992 +74 106.34526039999992 106.44390996249992 +70 106.47679314999992 106.59950264999992 +71 106.59950264999992 106.71983964999993 +73 106.71983964999993 106.84017664999992 +74 106.84017664999992 106.96051364999992 +70 106.96051364999992 107.08085064999992 +71 107.08085064999992 107.20118764999992 +73 107.20118764999992 107.32152464999992 +74 107.32152464999992 107.44186164999992 +70 107.44186164999992 107.56219864999991 +71 107.56219864999991 107.68253564999992 +73 107.68253564999992 107.80287264999993 +74 107.80287264999993 107.92320964999992 +70 107.92320964999992 108.04354664999993 +71 108.04354664999993 108.16388364999992 +73 108.16388364999992 108.28422064999992 +74 108.28422064999992 108.41575339999993 +76 108.53032714999993 108.61625746249993 +77 108.76588814999992 108.85662858749993 +79 109.00570614999992 109.09482921249992 +81 109.24422089999993 109.33398389999992 +74 109.48534264999992 109.57642096249992 +76 109.72821814999992 109.81929646249992 +77 109.96977114999991 110.05985758749992 +79 110.21451239999992 110.30798189999992 +76 110.4596881499999 110.55010046249991 +77 110.70078764999991 110.79119996249992 +79 110.94102139999991 111.0307843999999 +81 111.1799611499999 111.26940296249991 +74 111.4193321499999 111.50941858749991 +76 111.6595626499999 111.7496490874999 +77 111.89979314999991 111.9898795874999 +79 112.1435993999999 112.2363676499999 +76 112.3874056499999 112.47749208749991 +77 112.6276361499999 112.7177225874999 +74 112.86786664999991 112.9579530874999 +76 113.1080971499999 113.19818358749991 +72 113.3457488999999 113.43459746249991 +74 113.58083614999991 113.6683030249999 +70 113.81408114999991 113.90154802499991 +72 114.0516908999999 114.1424313374999 +76 114.2923621499999 114.3821251499999 +77 114.5317301499999 114.62149314999989 +74 114.7710981499999 114.86086114999989 +76 115.0104661499999 115.10022914999989 +72 115.2524793999999 115.34422633749989 +74 115.4971378999999 115.58888483749989 +76 115.7445608999999 115.8383812124999 +77 116.00015739999989 116.09803446249988 +77 116.25209789999988 116.37353564999988 +76 116.49194414999988 116.61035264999988 +77 116.72876114999988 116.84716964999988 +76 116.96860739999988 117.09004514999988 +77 117.20887589999988 117.32770664999988 +76 117.44653739999988 117.56536814999988 +77 117.68419889999988 117.80302964999989 +76 117.92186039999989 118.04069114999989 +77 118.16212889999989 118.28356664999988 +76 118.40197514999988 118.52038364999989 +77 118.63879214999989 118.75720064999989 +76 118.87863839999989 119.00007614999988 +77 119.11890689999989 119.23773764999989 +76 119.35656839999989 119.47539914999989 +77 119.59422989999989 119.71306064999989 +76 119.83189139999989 119.95072214999989 +77 120.07215989999989 120.19359764999989 +76 120.31200614999989 120.43041464999989 +77 120.54882314999989 120.66723164999989 +76 120.78866939999989 120.91010714999989 +77 121.02893789999989 121.14776864999989 +76 121.26659939999989 121.38543014999989 +77 121.50426089999989 121.62309164999989 +76 121.7419223999999 121.8607531499999 +77 121.98219089999989 122.10362864999989 +76 122.22203714999989 122.3404456499999 +77 122.4588541499999 122.5772626499999 +76 122.70095364999989 122.84955689999988 +75 122.96937832499988 123.08869839374988 +73 123.20854411249988 123.32890919999988 +75 123.44996434999989 123.57140209999989 +73 123.69792034999989 123.8458493499999 +72 123.9672870999999 124.08872484999989 +70 124.20713334999989 124.3255418499999 +72 124.4439503499999 124.5623588499999 +70 124.68604984999989 124.83465309999988 +69 124.95447452499988 125.07379459374988 +67 125.19364031249988 125.31400539999989 +69 125.43506054999989 125.55649829999989 +67 125.68350929999988 125.83078479999989 +63 125.95222254999989 126.07366029999989 +63 126.19206879999989 126.31047729999989 +63 126.42888579999989 126.54729429999989 +63 126.66873204999989 126.79016979999989 +63 126.90942554999988 127.02868129999989 +63 127.14793704999988 127.26719279999989 +64 127.38907454999989 127.51095629999989 +64 127.63283804999989 127.75471979999989 +82 129.8868838687499 130.0066251187499 +81 130.0066251187499 130.1263663687499 +82 130.1263663687499 130.2500573687499 +78 130.3737483687499 130.4974393687499 +82 130.4974393687499 130.6206223687499 +81 130.6206223687499 130.7433016187499 +82 130.7433016187499 130.86598086874992 +84 130.86598086874992 131.4749168687499 +85 131.4749168687499 131.5961093687499 +86 131.5961093687499 131.9718293687499 +87 131.9718293687499 132.09706936874989 +88 132.09706936874989 132.96552136874988 +89 132.96552136874988 133.0907613687499 +90 133.0907613687499 133.4794631187499 +92 133.4794631187499 133.6442801187499 +93 133.6442801187499 133.7689061187499 +94 133.7689061187499 133.89108586874988 +93 133.89108586874988 134.01665086874988 +94 134.01665086874988 134.13883061874986 +93 134.13883061874986 134.26299261874988 +94 134.26299261874988 134.38487436874988 +93 134.38487436874988 134.50856536874988 +94 134.50856536874988 134.62878661874987 +93 134.62878661874987 134.75388036874986 +95 134.75388036874986 134.87410161874985 +93 134.87410161874985 134.99826361874986 +95 134.99826361874986 135.11925086874987 +93 135.11925086874987 135.24243386874988 +95 135.24243386874988 135.36265511874987 +93 135.36265511874987 135.48433911874986 +95 135.48433911874986 135.60711886874986 +93 135.60711886874986 135.73035261874986 +94 135.73035261874986 135.85003661874987 +93 135.85003661874987 135.97281636874987 +94 135.97281636874987 136.09336611874988 +93 136.09336611874988 136.2170571187499 +94 136.2170571187499 136.3367411187499 +93 136.3367411187499 136.4559968687499 +94 136.4559968687499 136.5787766187499 +93 136.5787766187499 136.70246761874992 +95 136.70246761874992 136.82258286874992 +93 136.82258286874992 136.94491211874993 +95 136.94491211874993 137.06502736874992 +93 137.06502736874992 137.18735661874993 +95 137.18735661874993 137.30747186874993 +93 137.30747186874993 137.43070561874993 +95 137.43070561874993 137.55393936874992 +93 137.55393936874992 137.67405461874992 +94 137.67405461874992 137.79373861874993 +93 137.79373861874993 137.91606786874993 +95 137.91606786874993 138.03839711874994 +93 138.03839711874994 138.15808111874995 +94 138.15808111874995 138.27606136874994 +93 138.27606136874994 138.39884111874994 +95 138.39884111874994 138.51682136874993 +93 138.51682136874993 138.63960111874994 +94 138.63960111874994 138.75928511874994 +93 138.75928511874994 138.88116686874994 +95 138.88116686874994 139.00042261874995 +93 139.00042261874995 139.12458461874996 +94 139.12458461874996 139.24646636874996 +93 139.24646636874996 139.36879561874997 +95 139.36879561874997 139.49202936874997 +93 139.49202936874997 139.61257911874998 +94 139.61257911874998 139.73356636875 +93 139.73356636875 139.85725736875 +95 139.85725736875 139.97780711875 +93 139.97780711875 140.10013636875001 +94 140.10013636875001 140.22025161875 +93 140.22025161875 140.34258086875002 +95 140.34258086875002 140.46226486875003 +93 140.46226486875003 140.58504461875003 +94 140.58504461875003 140.70559436875004 +93 140.70559436875004 140.82975636875005 +95 140.82975636875005 140.95299011875005 +93 140.95299011875005 141.07442786875006 +94 141.07442786875006 141.19952161875005 +93 141.19952161875005 141.32095936875007 +95 141.32095936875007 141.45734786875008 +105 141.6408417437501 143.41461586875008 +98 141.57967711875008 143.41461586875008 +93 141.51851249375008 143.41461586875008 +track Piano left +64 1.9940160000000002 2.0874855 +65 2.243268 2.3346793125 +67 2.4870315 2.5784428125 +69 2.730795 2.8222063125 +64 2.9745585 3.068028 +65 3.2238105 3.3148888125 +67 3.4666859999999997 3.5577643125 +69 3.7095615 3.80899575 +64 3.9747195 4.068189 +65 4.2239715 4.3150498125 +67 4.4668470000000005 4.5579253125 +69 4.7097225 4.8008008125 +64 4.952598 5.0460675 +65 5.20185 5.2922623125 +67 5.4429495 5.5333618125 +69 5.684049 5.774461312500001 +70 3.9747195 5.925148500000001 +64 5.925148500000001 6.0175738125 +65 6.171616 6.264041312500001 +67 6.416287500000001 6.507365812500001 +69 6.659163000000001 6.750241312500001 +64 6.902038500000001 6.993785437500001 +65 7.1466970000000005 7.2377753125 +67 7.389572500000001 7.4806508125 +69 7.632448 7.723526312500001 +72 5.925148500000001 7.8753235 +64 7.8753235 7.9666976875 +65 8.118988 8.2100663125 +67 8.3623075 8.4537188125 +69 8.606071 8.6974823125 +64 8.8498345 8.93974825 +65 9.0896045 9.1803449375 +67 9.331579 9.4223194375 +69 9.5735535 9.6642939375 +70 7.8753235 9.815528 +64 9.815528 9.9069021875 +65 10.0591925 10.1502708125 +67 10.302068 10.3931463125 +69 10.5449435 10.6360218125 +64 10.787819 10.8795659375 +65 11.0324775 11.1232179375 +67 11.274452 11.365192437500001 +69 11.516426500000001 11.613534812500001 +73 9.815528 11.775382000000002 +74 11.775382000000002 11.867128937500002 +72 12.020040500000002 12.110780937500001 +70 12.262015000000002 12.350863562500003 +69 12.498944500000002 12.589582562500002 +72 12.740646000000002 12.831724312500002 +70 12.983521500000002 13.074599812500002 +69 13.226397000000002 13.316483437500002 +67 13.466627500000001 13.558001687500001 +62 11.775382000000002 13.710292 +74 13.710292 13.8007043125 +72 13.951391500000001 14.041803812500001 +70 14.192491 14.282254 +69 14.431859000000001 14.521300812500002 +72 14.6703705 14.7604569375 +70 14.910601 15.0006874375 +69 15.1508315 15.2409179375 +67 15.391062 15.48383025 +62 13.710292 15.638444 +69 15.638444 15.7285304375 +72 15.878674499999999 15.968760937499999 +70 16.118904999999998 16.2089914375 +67 16.3591355 16.4492219375 +69 16.599366 16.6889218125 +65 16.8381815 16.9277373125 +67 17.075125749999998 17.163278124999998 +64 17.310198749999998 17.400939187499997 +62 15.638444 17.55217325 +69 17.55217325 17.64193625 +72 17.791541249999998 17.88130425 +70 18.03090925 18.12067225 +67 18.27027725 18.36004025 +69 18.50964525 18.6013921875 +65 18.75430375 18.8460506875 +69 18.998962249999998 19.0927825625 +74 19.249149749999997 19.349938124999998 +62 17.55217325 19.517918749999996 +73 19.517918749999996 19.639356499999995 +81 19.760794249999996 19.879202749999997 +73 19.997611249999995 20.116019749999996 +81 20.234428249999997 20.355865999999995 +73 20.477303749999997 20.596134499999998 +79 20.71496525 20.833795999999996 +73 20.952626749999997 21.071457499999998 +79 21.19028825 21.309118999999995 +73 21.427949749999996 21.549387499999995 +82 21.670825249999996 21.789233749999998 +73 21.907642249999995 22.026050749999996 +82 22.144459249999997 22.265896999999995 +73 22.387334749999997 22.506165499999998 +82 22.62499625 22.743826999999996 +73 22.862657749999997 22.981488499999998 +82 23.10031925 23.21915 +70 21.427949749999996 23.337980749999996 +73 23.337980749999996 23.459418499999995 +81 23.580856249999997 23.699264749999998 +73 23.817673249999995 23.936081749999996 +81 24.054490249999997 24.175927999999995 +73 24.297365749999997 24.416196499999998 +79 24.53502725 24.653857999999996 +73 24.772688749999997 24.891519499999998 +79 25.01035025 25.129180999999996 +73 25.248011749999996 25.369449499999995 +82 25.490887249999997 25.609295749999998 +73 25.727704249999995 25.846112749999996 +82 25.964521249999997 26.088212249999998 +70 25.248011749999996 26.2368155 +66 25.248011749999996 26.2368155 +70 26.2368155 26.356636925 +78 26.47595699375 26.5958027125 +70 26.7161678 26.83722295 +78 26.9586607 27.08517895 +66 26.2368155 27.23310795 +63 26.2368155 27.23310795 +73 27.23310795 27.3545457 +82 27.47598345 27.594391950000002 +73 27.71280045 27.83120895 +82 27.94961745 28.073308450000003 +70 27.23310795 28.221911700000003 +66 27.23310795 28.221911700000003 +70 28.221911700000003 28.341733125000005 +78 28.461053193750004 28.580898912500004 +70 28.701264000000005 28.822319150000006 +78 28.943756900000004 29.070767900000003 +66 28.221911700000003 29.218043400000003 +63 28.221911700000003 29.218043400000003 +66 29.218043400000003 29.33948115 +75 29.460918900000003 29.579327400000004 +66 29.6977359 29.816144400000002 +75 29.934552900000003 30.055990650000002 +66 30.177428400000004 30.296259150000004 +75 30.415089900000005 30.531948650000004 +66 30.648807400000006 30.765666150000005 +75 30.882524900000003 30.999383650000006 +63 29.218043400000003 31.116242400000004 +59 29.218043400000003 31.116242400000004 +66 31.116242400000004 31.237680150000003 +75 31.359117900000005 31.477526400000006 +66 31.595934900000003 31.714343400000004 +75 31.832751900000005 31.956442900000006 +63 31.116242400000004 32.10504615000001 +66 32.10504615000001 32.224867575000005 +75 32.34418764375001 32.46403336250001 +66 32.58439845000001 32.70545360000001 +75 32.82689135000002 32.94832910000002 +63 32.10504615000001 33.069766850000015 +61 32.10504615000001 33.069766850000015 +66 33.069766850000015 33.19120460000001 +75 33.31264235000002 33.43105085000002 +66 33.54945935000002 33.66786785000002 +75 33.786276350000016 33.90468485000002 +66 34.02309335000002 34.142914775000015 +75 34.26223484375002 34.38208056250002 +66 34.50244565000002 34.62350080000002 +75 34.74493855000003 34.87194955000003 +63 33.069766850000015 35.01922505000003 +59 33.069766850000015 35.01922505000003 +66 35.01922505000003 35.14066280000003 +75 35.26210055000003 35.38050905000003 +66 35.49891755000003 35.61732605000003 +75 35.735734550000025 35.859425550000026 +63 35.01922505000003 36.00802880000003 +66 36.00802880000003 36.127850225000024 +75 36.24717029375003 36.36701601250003 +66 36.48738110000003 36.60843625000003 +75 36.72987400000004 36.856392250000034 +63 36.00802880000003 37.00432125000003 +61 36.00802880000003 37.00432125000003 +66 37.00432125000003 37.12575900000003 +75 37.24719675000003 37.36560525000003 +66 37.48401375000003 37.60242225000003 +75 37.720830750000026 37.84452175000003 +63 37.00432125000003 37.99312500000003 +60 37.00432125000003 37.99312500000003 +66 37.99312500000003 38.112946425000025 +77 38.23226649375003 38.35211221250003 +63 37.99312500000003 38.47247730000003 +61 37.99312500000003 38.47247730000003 +66 38.47247730000003 38.59353245000003 +77 38.71497020000004 38.84198120000004 +58 38.47247730000003 39.005184450000044 +66 39.005184450000044 39.12662220000004 +75 39.24805995000004 39.36646845000004 +66 39.48487695000004 39.603285450000044 +75 39.72169395000004 39.84538495000004 +63 39.005184450000044 39.99398820000004 +60 39.005184450000044 39.99398820000004 +66 39.99398820000004 40.11380962500004 +77 40.233129693750044 40.352975412500044 +63 39.99398820000004 40.47334050000004 +61 39.99398820000004 40.47334050000004 +66 40.47334050000004 40.594395650000045 +77 40.71583340000005 40.842844400000054 +58 40.47334050000004 41.001373150000056 +60 41.001373150000056 41.122810900000054 +62 41.24424865000005 41.362657150000054 +54 41.001373150000056 41.481065650000055 +60 41.481065650000055 41.599474150000056 +62 41.71788265000005 41.83932040000005 +60 41.960758150000046 42.07958890000005 +62 42.19841965000005 42.31725040000005 +50 41.960758150000046 42.43608115000005 +60 42.43608115000005 42.55491190000004 +62 42.673742650000044 42.792573400000045 +60 42.911404150000045 43.032841900000044 +62 43.15427965000004 43.27268815000004 +52 42.911404150000045 43.391096650000044 +60 43.391096650000044 43.509505150000045 +62 43.62791365000004 43.74935140000004 +60 43.870789150000036 43.98961990000004 +62 44.10845065000004 44.22728140000004 +60 44.36474465000004 44.48320940000004 +62 44.60167415000004 44.720138900000045 +52 44.36474465000004 44.83860365000004 +60 44.83860365000004 44.96004140000004 +62 45.081479150000035 45.199887650000036 +54 44.83860365000004 45.31829615000004 +60 45.31829615000004 45.43670465000004 +62 45.55511315000003 45.67655090000003 +60 45.79798865000003 45.91681940000003 +62 46.03565015000003 46.15448090000003 +50 45.79798865000003 46.27331165000003 +60 46.27331165000003 46.392142400000026 +62 46.51097315000003 46.62980390000003 +60 46.76664015000003 46.88807790000003 +62 47.009515650000026 47.12792415000003 +52 46.76664015000003 47.24633265000003 +60 47.24633265000003 47.36474115000003 +62 47.48314965000002 47.60458740000002 +60 47.72602515000002 47.84485590000002 +62 47.96368665000002 48.08251740000002 +60 48.20134815000002 48.320178900000016 +62 48.43900965000002 48.55784040000002 +60 48.67667115000002 48.79810890000002 +62 48.919546650000015 49.037955150000016 +52 48.67667115000002 49.15636365000002 +60 49.15636365000002 49.27477215000002 +62 49.39318065000001 49.51461840000001 +60 49.63605615000001 49.75488690000001 +62 49.87371765000001 49.99254840000001 +48 49.63605615000001 50.11137915000001 +60 50.11137915000001 50.230209900000006 +62 50.349040650000006 50.46787140000001 +58 50.58670215000001 50.708139900000006 +60 50.829577650000004 50.947986150000006 +50 50.58670215000001 51.06639465000001 +58 51.06639465000001 51.18480315000001 +60 51.30321165 51.4246494 +58 51.54608715 51.6649179 +60 51.78374865 51.9025794 +58 52.02141015 52.140240899999995 +60 52.259071649999996 52.377902399999996 +50 52.02141015 52.49673315 +60 52.49673315 52.618170899999996 +62 52.739608649999994 52.858017149999995 +52 52.49673315 52.976425649999996 +60 52.976425649999996 53.09483415 +62 53.21324264999999 53.33468039999999 +60 53.45611814999999 53.57494889999999 +62 53.69377964999999 53.81261039999999 +48 53.45611814999999 53.93144114999999 +60 53.93144114999999 54.050271899999984 +62 54.169102649999985 54.287933399999986 +58 54.40676414999999 54.528201899999985 +60 54.64963964999998 54.768048149999984 +58 54.886456649999985 55.004865149999986 +60 55.12327364999998 55.24471139999998 +58 55.36614914999998 55.48497989999998 +60 55.60381064999998 55.72264139999998 +58 55.84147214999998 55.960302899999974 +60 56.079133649999974 56.197964399999975 +50 54.40676414999999 56.316795149999976 +62 56.316795149999976 56.410264649999974 +60 56.566047149999974 56.65712546249998 +58 56.80892264999997 56.90000096249997 +57 57.051798149999975 57.14287646249998 +60 57.29467364999997 57.38814314999997 +58 57.54392564999997 57.63433796249997 +57 57.78502514999997 57.87543746249997 +55 58.02612464999997 58.11653696249997 +50 56.316795149999976 58.26722414999997 +62 58.26722414999997 58.360693649999966 +60 58.51647614999997 58.60755446249997 +58 58.759351649999964 58.850429962499966 +57 59.00222714999997 59.09330546249997 +60 59.245102649999964 59.33857214999996 +58 59.49435464999996 59.58476696249996 +57 59.73545414999996 59.82586646249996 +55 59.976553649999964 60.066965962499964 +50 58.26722414999997 60.21765314999996 +55 60.21765314999996 60.34181514999996 +48 60.46597714999996 60.58652689999996 +43 60.707076649999955 60.82762639999996 +36 60.94817614999996 61.06872589999996 +43 61.189275649999956 61.30982539999996 +48 61.43037514999996 61.550924899999956 +57 61.67147464999996 61.79202439999996 +53 61.912574149999955 62.03673614999995 +55 62.16136214999995 62.28552414999995 +48 62.40968614999995 62.53023589999995 +43 62.650785649999946 62.77133539999995 +36 62.89188514999995 63.012434899999946 +43 63.13298464999995 63.25353439999995 +48 63.37408414999995 63.49463389999995 +57 63.61518364999995 63.73573339999995 +53 63.856283149999946 63.980445149999944 +62 64.10507114999994 64.19819264999994 +60 64.22923314999994 64.35339514999994 +63 64.35339514999994 64.44651664999995 +60 64.47755714999994 64.60171914999994 +65 64.60171914999994 64.69484064999995 +60 64.72588114999995 64.85004314999995 +67 64.85004314999995 64.94316464999994 +60 64.97420514999995 65.09836714999994 +62 65.09836714999994 65.19148864999994 +60 65.22252914999994 65.34669114999994 +63 65.34669114999994 65.43981264999995 +60 65.47085314999994 65.59501514999994 +65 65.59501514999994 65.68813664999995 +60 65.71917714999995 65.84333914999995 +67 65.84333914999995 65.94082621249994 +60 65.97332189999995 66.10330464999996 +62 66.10330464999996 66.19642614999995 +60 66.22746664999995 66.35162864999995 +63 66.35162864999995 66.44475014999996 +60 66.47579064999995 66.59995264999995 +65 66.59995264999995 66.69307414999996 +60 66.72411464999996 66.84827664999996 +67 66.84827664999996 66.94139814999996 +60 66.97243864999996 67.09660064999996 +62 67.09660064999996 67.18972214999995 +60 67.22076264999995 67.34492464999995 +63 67.34492464999995 67.43804614999996 +60 67.46908664999995 67.59324864999995 +65 67.59324864999995 67.68637014999996 +60 67.71741064999996 67.84157264999996 +67 67.84157264999996 67.93905971249995 +60 67.97155539999996 68.10153814999997 +62 68.10153814999997 68.19465964999996 +60 68.22570014999997 68.34986214999996 +63 68.34986214999996 68.44298364999997 +60 68.47402414999996 68.59818614999996 +65 68.59818614999996 68.69130764999997 +60 68.72234814999997 68.84651014999997 +67 68.84651014999997 68.94797127499997 +60 68.98179164999998 69.11707314999997 +67 69.11707314999997 69.21160296249997 +58 69.24311289999997 69.36915264999996 +67 69.36915264999996 69.46368246249996 +58 69.49519239999997 69.62123214999997 +67 69.62123214999997 69.71576196249997 +58 69.74727189999997 69.87331164999996 +67 69.87331164999996 69.97079871249996 +58 70.00329439999996 70.13327714999997 +67 70.13327714999997 70.22639864999996 +58 70.25743914999997 70.38160114999997 +67 70.38160114999997 70.47472264999998 +58 70.50576314999996 70.62992514999996 +58 70.75408714999998 70.87824914999997 +65 70.62992514999996 70.87824914999997 +65 70.87824914999997 70.97971027499997 +58 71.01353064999998 71.14881214999997 +58 71.27485189999997 71.40089164999996 +64 71.14881214999997 71.40089164999996 +64 71.40089164999996 71.49542146249996 +58 71.52693139999997 71.65297114999997 +58 71.77901089999997 71.90505064999996 +65 71.65297114999997 71.90505064999996 +65 71.90505064999996 72.00253771249996 +58 72.03503339999996 72.12314427499996 +58 72.21125514999996 72.33973489999995 +60 72.33973489999995 72.46821464999995 +58 72.46821464999995 72.59669439999996 +60 72.59669439999996 72.72517414999996 +58 72.72517414999996 72.85415089999996 +60 72.85415089999996 72.98312764999996 +58 72.98312764999996 73.11210439999996 +60 73.11210439999996 73.24108114999996 +58 73.24108114999996 73.37005789999996 +60 73.37005789999996 73.49903464999996 +58 73.49903464999996 73.62801139999996 +60 73.62801139999996 73.75698814999996 +58 73.75698814999996 73.88596489999996 +60 73.88596489999996 74.01494164999995 +58 74.01494164999995 74.14391839999996 +60 74.14391839999996 74.28582214999996 +66 72.21125514999996 74.28582214999996 +64 72.16719971249996 74.28582214999996 +61 72.12314427499996 74.28582214999996 +58 74.28582214999996 74.41430189999996 +60 74.41430189999996 74.54278164999995 +58 74.54278164999995 74.67126139999996 +60 74.67126139999996 74.79974114999996 +58 74.79974114999996 74.92871789999997 +60 74.92871789999997 75.05769464999996 +58 75.05769464999996 75.18667139999997 +60 75.18667139999997 75.31564814999996 +58 75.31564814999996 75.44462489999997 +60 75.44462489999997 75.57360164999996 +58 75.57360164999996 75.70257839999996 +60 75.70257839999996 75.83155514999996 +46 76.60442164999995 76.72858364999995 +45 76.72858364999995 76.85274564999995 +46 76.85274564999995 76.98073189999995 +42 77.10871814999994 77.23288014999994 +46 77.23288014999994 77.35704214999994 +45 77.35704214999994 77.48453889999995 +46 77.48453889999995 77.61203564999994 +48 77.61203564999994 78.24514839999993 +49 78.24514839999993 78.37118814999994 +50 78.37118814999994 78.75811839999994 +51 78.75811839999994 78.88709514999994 +58 79.37383581874994 79.50035406874994 +61 79.52460339999993 79.65112164999994 +58 79.90415814999993 80.03067639999993 +61 80.03067639999993 80.15719464999994 +52 78.88709514999994 80.41023114999993 +46 80.66719064999992 80.79135264999992 +45 80.79135264999992 80.91551464999992 +46 80.91551464999992 81.04350089999993 +42 81.17148714999992 81.29564914999992 +46 81.29564914999992 81.41981114999992 +45 81.41981114999992 81.54730789999992 +46 81.54730789999992 81.67480464999991 +48 81.67480464999991 82.30791739999991 +49 82.30791739999991 82.43395714999991 +51 82.43395714999991 82.82088739999992 +53 82.82088739999992 82.94986414999991 +58 83.43660481874991 83.56312306874992 +61 83.58737239999991 83.71389064999991 +70 84.21996364999991 84.34648189999992 +73 84.34648189999992 84.4730001499999 +54 82.94986414999991 84.4730001499999 +73 84.5971621499999 84.7213241499999 +70 84.4730001499999 84.7213241499999 +73 84.8454861499999 84.9696481499999 +70 84.7213241499999 84.9696481499999 +70 84.9696481499999 85.09381014999991 +73 85.09381014999991 85.21797214999991 +70 85.21797214999991 85.34213414999991 +73 85.34213414999991 85.4662961499999 +68 84.9696481499999 85.4662961499999 +70 85.4662961499999 85.5904581499999 +73 85.5904581499999 85.7146201499999 +70 85.7146201499999 85.8387821499999 +73 85.8387821499999 85.9629441499999 +66 85.4662961499999 85.9629441499999 +70 85.9629441499999 86.08710614999991 +73 86.08710614999991 86.21126814999991 +70 86.21126814999991 86.3412508999999 +73 86.3412508999999 86.47123364999992 +65 85.9629441499999 86.47123364999992 +70 86.47123364999992 86.59539564999992 +73 86.59539564999992 86.71955764999991 +70 86.71955764999991 86.84371964999991 +73 86.84371964999991 86.96788164999991 +70 86.96788164999991 87.09204364999992 +73 87.09204364999992 87.21620564999992 +70 87.21620564999992 87.34036764999992 +73 87.34036764999992 87.46452964999992 +64 86.47123364999992 87.46452964999992 +70 87.46452964999992 87.58869164999992 +73 87.58869164999992 87.71285364999991 +70 87.71285364999991 87.83701564999991 +73 87.83701564999991 87.96117764999991 +70 87.96117764999991 88.08533964999992 +73 88.08533964999992 88.20950164999992 +70 88.20950164999992 88.33948439999992 +73 88.33948439999992 88.46946714999993 +65 87.46452964999992 88.46946714999993 +73 88.59362914999993 88.71779114999993 +70 88.46946714999993 88.71779114999993 +73 88.84195314999992 88.96611514999992 +70 88.71779114999993 88.96611514999992 +70 89.09027714999993 89.21443914999993 +67 88.96611514999992 89.21443914999993 +70 89.34972064999994 89.48500214999993 +67 89.21443914999993 89.48500214999993 +67 89.61104189999993 89.73708164999992 +64 89.48500214999993 89.73708164999992 +67 89.86312139999993 89.98916114999993 +64 89.73708164999992 89.98916114999993 +65 90.11520089999993 90.24124064999992 +61 89.98916114999993 90.24124064999992 +61 90.24124064999992 90.37122339999992 +65 90.37122339999992 90.50120614999993 +61 90.62724589999993 90.75328564999992 +58 90.50120614999993 90.75328564999992 +61 90.87932539999993 91.00536514999993 +58 90.75328564999992 91.00536514999993 +59 91.00536514999993 91.13140489999994 +62 91.13140489999994 91.25744464999993 +59 91.25744464999993 91.39272614999993 +62 91.39272614999993 91.52800764999992 +58 91.52800764999992 91.65648739999992 +63 91.65648739999992 91.78496714999991 +58 91.78496714999991 91.91344689999993 +63 91.91344689999993 92.04192664999992 +51 91.00536514999993 92.04192664999992 +59 92.04192664999992 92.13828646249992 +62 92.17040639999992 92.29888614999992 +59 92.29888614999992 92.43471889999992 +62 92.43471889999992 92.58006764999992 +58 92.58006764999992 92.71160039999992 +63 92.71160039999992 92.84313314999991 +58 92.84313314999991 92.97466589999992 +63 92.97466589999992 93.10619864999993 +51 92.04192664999992 93.10619864999993 +59 93.10619864999993 93.20484821249993 +62 93.23773139999992 93.37876189999992 +64 93.37876189999992 93.51979239999991 +65 93.51979239999991 93.67462314999992 +61 93.67462314999992 93.79685264999992 +54 93.67462314999992 93.79685264999992 +63 93.91908214999992 93.98019689999991 +63 94.04131164999991 94.10242639999991 +63 94.16354114999992 94.22465589999992 +63 94.28577064999992 94.34688539999992 +63 94.40800014999992 94.46911489999992 +63 94.53022964999991 94.59982227499991 +58 94.66941489999991 94.7911581499999 +61 94.66941489999991 94.7911581499999 +63 94.91290139999991 94.9737730249999 +63 95.0346446499999 95.09551627499991 +63 95.15638789999991 95.2172595249999 +63 95.27813114999991 95.33900277499991 +63 95.3998743999999 95.4607460249999 +63 95.52161764999991 95.59058952499991 +61 95.65956139999992 95.78179089999992 +55 95.65956139999992 95.78179089999992 +63 95.90402039999992 95.96513514999991 +63 96.02624989999991 96.08736464999991 +63 96.14847939999991 96.20959414999992 +63 96.27070889999992 96.33182364999992 +63 96.39293839999992 96.45405314999992 +63 96.51516789999991 96.5780135249999 +63 96.64085914999991 96.70173077499992 +63 96.7626023999999 96.82347402499991 +63 96.88434564999991 96.9452172749999 +63 97.00608889999991 97.06696052499991 +63 97.12783214999992 97.18870377499991 +63 97.24957539999991 97.31044702499992 +63 97.3713186499999 97.43219027499991 +63 97.49306189999992 97.56203377499992 +61 97.63100564999992 97.75323514999992 +54 97.63100564999992 97.75323514999992 +63 97.87546464999993 97.93657939999991 +63 97.99769414999992 98.05880889999992 +63 98.11992364999992 98.18103839999992 +63 98.24215314999992 98.30326789999992 +63 98.36438264999992 98.42549739999993 +63 98.48661214999991 98.55620477499991 +58 98.62579739999991 98.7475406499999 +61 98.62579739999991 98.7475406499999 +63 98.86928389999991 98.9301555249999 +63 98.99102714999991 99.05189877499991 +63 99.11277039999992 99.17364202499991 +63 99.23451364999991 99.29538527499992 +63 99.3562568999999 99.41712852499991 +63 99.47800014999991 99.54697202499992 +61 99.61594389999992 99.73817339999992 +55 99.61594389999992 99.73817339999992 +63 99.86040289999993 99.92151764999991 +63 99.98263239999991 100.04374714999992 +63 100.10486189999992 100.16597664999992 +63 100.22709139999992 100.28820614999992 +63 100.34932089999992 100.41043564999993 +63 100.47155039999991 100.53439602499991 +74 108.41575339999993 108.50168371249993 +72 108.64490089999993 108.73564133749993 +70 108.88687539999992 108.97599846249992 +69 109.12453689999992 109.21429989999993 +72 109.36390489999992 109.45498321249993 +70 109.60678039999992 109.69785871249992 +69 109.84965589999992 109.93974233749992 +67 110.08988639999991 110.18335589999991 +62 108.41575339999993 110.33913839999991 +74 110.33913839999991 110.42955071249992 +72 110.58023789999991 110.67065021249991 +70 110.8213373999999 110.91110039999991 +69 111.0607053999999 111.1501472124999 +72 111.2992168999999 111.38930333749991 +70 111.5394473999999 111.6295338374999 +69 111.77967789999991 111.8697643374999 +67 112.0199083999999 112.11267664999991 +62 110.33913839999991 112.26729039999991 +69 112.26729039999991 112.35737683749991 +72 112.5075208999999 112.59760733749991 +70 112.74775139999991 112.8378378374999 +67 112.98798189999991 113.07806833749991 +69 113.2282123999999 113.31636477499991 +65 113.4642136499999 113.55168052499991 +67 113.6974586499999 113.7849255249999 +64 113.9307036499999 114.0214440874999 +62 112.26729039999991 114.1726781499999 +69 114.1726781499999 114.2624411499999 +72 114.4120461499999 114.5018091499999 +70 114.6514141499999 114.7411771499999 +67 114.8907821499999 114.9805451499999 +69 115.13015014999989 115.2218970874999 +65 115.37480864999989 115.4665555874999 +69 115.61946714999989 115.71328746249989 +74 115.86965464999989 115.96753171249989 +62 114.1726781499999 116.13066014999988 +73 116.13066014999988 116.25209789999988 +81 116.37353564999988 116.49194414999988 +73 116.61035264999988 116.72876114999988 +81 116.84716964999988 116.96860739999988 +73 117.09004514999988 117.20887589999988 +79 117.32770664999988 117.44653739999988 +73 117.56536814999988 117.68419889999988 +79 117.80302964999989 117.92186039999989 +73 118.04069114999989 118.16212889999989 +82 118.28356664999988 118.40197514999988 +73 118.52038364999989 118.63879214999989 +82 118.75720064999989 118.87863839999989 +73 119.00007614999988 119.11890689999989 +82 119.23773764999989 119.35656839999989 +73 119.47539914999989 119.59422989999989 +82 119.71306064999989 119.83189139999989 +70 118.04069114999989 119.95072214999989 +73 119.95072214999989 120.07215989999989 +81 120.19359764999989 120.31200614999989 +73 120.43041464999989 120.54882314999989 +81 120.66723164999989 120.78866939999989 +73 120.91010714999989 121.02893789999989 +79 121.14776864999989 121.26659939999989 +73 121.38543014999989 121.50426089999989 +79 121.62309164999989 121.7419223999999 +73 121.8607531499999 121.98219089999989 +82 122.10362864999989 122.22203714999989 +73 122.3404456499999 122.4588541499999 +82 122.5772626499999 122.70095364999989 +70 121.8607531499999 122.84955689999988 +70 122.84955689999988 122.96937832499988 +79 123.08869839374988 123.20854411249988 +70 123.32890919999988 123.44996434999989 +79 123.57140209999989 123.69792034999989 +67 122.84955689999988 123.8458493499999 +67 123.8458493499999 123.9672870999999 +76 124.08872484999989 124.20713334999989 +67 124.3255418499999 124.4439503499999 +76 124.5623588499999 124.68604984999989 +64 123.8458493499999 124.83465309999988 +64 124.83465309999988 124.95447452499988 +73 125.07379459374988 125.19364031249988 +64 125.31400539999989 125.43506054999989 +73 125.55649829999989 125.68350929999988 +61 124.83465309999988 125.83078479999989 +61 126.07366029999989 126.19206879999989 +61 126.31047729999989 126.42888579999989 +61 126.54729429999989 126.66873204999989 +69 126.79016979999989 126.90942554999988 +61 127.02868129999989 127.14793704999988 +67 127.26719279999989 127.38907454999989 +61 127.51095629999989 127.63283804999989 +55 125.83078479999989 127.75471979999989 +61 127.75471979999989 127.87439317083323 +55 127.87439317083323 127.99407717083322 +61 127.99407717083322 128.11333648958322 +55 128.11333648958322 128.23259223958323 +61 128.23259223958323 128.3514265312499 +55 128.3514265312499 128.4702572812499 +61 128.4702572812499 128.58866929999988 +55 128.58866929999988 128.7070777999999 +61 128.7070777999999 128.82506161874988 +55 128.82506161874988 128.9430418687499 +61 128.9430418687499 129.0610221187499 +55 129.0610221187499 129.1790023687499 +61 129.1790023687499 129.2969826187499 +55 129.2969826187499 129.41496286874988 +61 129.41496286874988 129.5329431187499 +55 129.5329431187499 129.6214283062499 +54 129.6509233687499 129.7689036187499 +61 129.7689036187499 129.8868838687499 +54 129.8868838687499 130.0066251187499 +61 130.0066251187499 130.1263663687499 +54 130.1263663687499 130.2500573687499 +61 130.2500573687499 130.3737483687499 +54 130.3737483687499 130.4974393687499 +61 130.4974393687499 130.6206223687499 +54 130.6206223687499 130.7433016187499 +61 130.7433016187499 130.86598086874992 +54 130.86598086874992 130.98866011874992 +61 130.98866011874992 131.1113393687499 +54 131.1113393687499 131.2325318687499 +61 131.2325318687499 131.3537243687499 +54 131.3537243687499 131.4749168687499 +61 131.4749168687499 131.5961093687499 +54 131.5961093687499 131.72134936874988 +61 131.72134936874988 131.8465893687499 +54 131.8465893687499 131.9718293687499 +61 131.9718293687499 132.09706936874989 +66 132.09706936874989 132.2223093687499 +73 132.2223093687499 132.3475493687499 +66 132.3475493687499 132.4707323687499 +73 132.4707323687499 132.5939153687499 +66 132.5939153687499 132.84028136874988 +64 134.62878661874987 134.87410161874985 +65 134.87410161874985 135.11925086874987 +67 135.11925086874987 135.36265511874987 +69 135.36265511874987 135.60711886874986 +62 134.62878661874987 135.60711886874986 +76 136.5787766187499 136.82258286874992 +77 136.82258286874992 137.06502736874992 +79 137.06502736874992 137.30747186874993 +81 137.30747186874993 137.55393936874992 +74 136.5787766187499 137.55393936874992 +74 138.03839711874994 138.27606136874994 +81 138.03839711874994 138.27606136874994 +86 138.51682136874993 138.75928511874994 +81 139.00042261874995 139.24646636874996 +74 139.00042261874995 139.24646636874996 +86 139.49202936874997 139.73356636875 +74 139.97780711875 140.22025161875 +81 139.97780711875 140.22025161875 +86 140.46226486875003 140.70559436875004 +81 140.95299011875005 141.19952161875005 +74 140.95299011875005 141.19952161875005 +86 141.45734786875008 143.41461586875008 diff --git a/test/midi/debussy/childrens_corner_5.mid b/test/midi/debussy/childrens_corner_5.mid new file mode 100644 index 0000000000000000000000000000000000000000..0e67177a72738fb2800af90822c7c609d0ddd33c GIT binary patch literal 12867 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 Ru63_wNTqRa{1U`R{|_M!SRMcX literal 0 HcmV?d00001 diff --git a/test/midi/debussy/childrens_corner_5.mid.txt b/test/midi/debussy/childrens_corner_5.mid.txt new file mode 100644 index 0000000..b2ce2f8 --- /dev/null +++ b/test/midi/debussy/childrens_corner_5.mid.txt @@ -0,0 +1,1309 @@ +track Piano right +82 0.0 0.13293149999999998 +80 0.13293149999999998 0.26586299999999996 +82 0.3987945 0.5317259999999999 +77 0.5317259999999999 0.6716512499999999 +82 0.8115764999999999 0.911275125 +80 1.0774394999999999 1.2103709999999999 +77 1.2103709999999999 1.3433024999999998 +75 1.4820114999999998 1.6207204999999998 +71 1.6207204999999998 2.1502415 +68 2.2826217499999997 2.41231225 +65 2.41231225 2.5420027499999995 +63 2.5420027499999995 2.6716932499999997 +59 2.6716932499999997 3.2012142499999996 +56 3.3335945 3.46381425 +53 3.46381425 3.5940339999999997 +51 3.5940339999999997 3.72425375 +47 3.72425375 4.0028827499999995 +50 4.0028827499999995 4.26546475 +55 4.0028827499999995 4.26546475 +58 5.57945925 5.6783341875 +51 5.57945925 5.6783341875 +51 6.11172625 6.1695565000000006 +58 6.11172625 6.1695565000000006 +51 6.22738675 6.285217 +58 6.22738675 6.285217 +58 6.606713750000001 6.705588687500001 +51 6.606713750000001 6.705588687500001 +58 7.13404675 7.232921687500001 +51 7.13404675 7.232921687500001 +51 7.667521750000001 7.725129875 +58 7.667521750000001 7.725129875 +51 7.782738 7.840346125000001 +58 7.782738 7.840346125000001 +58 8.162714750000001 8.2619999375 +51 8.162714750000001 8.2619999375 +58 8.69223575 8.791520937500001 +51 8.69223575 8.791520937500001 +58 9.22175675 9.324449562500002 +51 9.22175675 9.324449562500002 +70 9.495604250000001 9.623732750000002 +68 9.623732750000002 9.751861250000001 +63 9.751861250000001 9.884241500000002 +59 9.751861250000001 9.884241500000002 +70 9.884241500000002 10.01662175 +65 10.01662175 10.149002000000001 +70 10.281382250000002 10.380667437500001 +63 10.281382250000002 10.4137625 +59 10.281382250000002 10.4137625 +68 10.546142750000001 10.674271250000002 +65 10.674271250000002 10.802399750000001 +59 10.802399750000001 10.9012746875 +63 10.934233 11.06606625 +59 11.06606625 11.20358 +63 11.34109375 11.407010375 +59 11.34109375 11.407010375 +58 11.60476025 11.7078955625 +58 11.742274 11.87978775 +60 12.01327525 12.14676275 +58 12.14676275 12.278596 +70 12.41042925 12.5163016875 +63 12.3774709375 12.5163016875 +58 12.69275575 13.78346575 +58 13.78346575 13.91159425 +56 13.91159425 14.03972275 +58 14.172103 14.304483249999999 +60 14.304483249999999 14.4368635 +56 14.56924375 14.6723790625 +58 14.84427125 14.972399750000001 +56 14.972399750000001 15.10052825 +58 15.2329085 15.36528875 +59 15.36528875 15.497669 +56 15.63004925 15.7331845625 +58 15.905076750000001 16.03320525 +56 16.03320525 16.16133375 +53 16.293714 16.3929991875 +51 16.426094250000002 16.5584745 +50 16.69085475 16.823235 +48 16.95561525 17.09137425 +43 17.22713325 17.366447750000003 +48 17.50576225 17.64819875 +50 17.79063525 17.93307175 +70 18.07550825 18.203636749999998 +68 18.203636749999998 18.33176525 +63 18.33176525 18.4641455 +59 18.33176525 18.4641455 +70 18.4641455 18.59652575 +65 18.59652575 18.728906 +70 18.86128625 18.9605714375 +63 18.86128625 18.9936665 +59 18.86128625 18.9936665 +68 19.12604675 19.25417525 +65 19.25417525 19.382303750000002 +59 19.382303750000002 19.4811786875 +63 19.514137 19.64597025 +59 19.64597025 19.783484 +63 19.92099775 19.986914375 +59 19.92099775 19.986914375 +58 20.18466425 20.287799562500002 +58 20.322178 20.45969175 +60 20.593179250000002 20.72666675 +58 20.72666675 20.8585 +70 20.99033325 21.0962056875 +63 20.9573749375 21.0962056875 +58 21.27265975 22.36336975 +58 22.36336975 22.459466125 +58 22.49149825 22.619626750000002 +60 22.752007000000003 22.884387250000003 +58 22.884387250000003 23.0167675 +61 23.14914775 23.252283062500002 +63 23.42417525 23.520271625 +65 23.680432250000003 23.779717437500004 +63 23.945192750000004 24.0444779375 +66 24.20995325 24.309238437500003 +65 24.474713750000003 24.577849062500004 +65 24.612227500000003 24.749741250000003 +67 24.883228750000004 25.01671625 +65 25.01671625 25.2474244375 +74 25.28038275 25.3862551875 +67 25.2474244375 25.3862551875 +62 25.56270925 26.15082925 +70 25.56270925 26.15082925 +94 26.15082925 26.444889250000003 +82 26.15082925 26.444889250000003 +63 26.73894925 26.86707775 +60 26.73894925 26.86707775 +65 26.86707775 27.127586500000003 +62 26.86707775 27.127586500000003 +67 27.127586500000003 27.259966750000004 +63 27.127586500000003 27.259966750000004 +65 27.259966750000004 27.3592519375 +62 27.259966750000004 27.3592519375 +63 27.52472725 27.631362250000002 +60 27.52472725 27.631362250000002 +82 28.38879725 28.678652250000003 +94 28.38879725 28.678652250000003 +62 27.80908725 28.968507250000002 +65 27.80908725 28.968507250000002 +63 28.968507250000002 29.09663575 +60 28.968507250000002 29.09663575 +65 29.09663575 29.357144500000004 +62 29.09663575 29.357144500000004 +67 29.357144500000004 29.489524750000005 +63 29.357144500000004 29.489524750000005 +65 29.489524750000005 29.621905 +62 29.489524750000005 29.621905 +63 29.754285250000002 29.858936500000002 +60 29.754285250000002 29.858936500000002 +62 30.033355250000003 30.169719000000004 +65 30.033355250000003 30.169719000000004 +63 30.30608275 30.583860750000003 +60 30.30608275 30.583860750000003 +65 30.583860750000003 30.850527250000003 +62 30.583860750000003 30.850527250000003 +72 30.850527250000003 30.983860500000002 +70 30.850527250000003 30.983860500000002 +67 30.850527250000003 30.983860500000002 +63 31.117193750000002 33.257469750000006 +60 31.117193750000002 33.257469750000006 +56 31.117193750000002 33.257469750000006 +63 33.257469750000006 34.34237125000001 +60 33.257469750000006 34.34237125000001 +55 33.257469750000006 34.34237125000001 +46 34.47049975000001 34.598628250000004 +48 34.598628250000004 34.73437475000001 +50 34.73437475000001 34.870121250000004 +48 34.870121250000004 35.015048750000005 +46 35.15997625000001 35.272476250000004 +63 35.459976250000004 35.58810475000001 +60 35.459976250000004 35.58810475000001 +65 35.58810475000001 35.8486135 +62 35.58810475000001 35.8486135 +67 35.8486135 35.98099375 +63 35.8486135 35.98099375 +65 35.98099375 36.080278937500005 +62 35.98099375 36.080278937500005 +63 36.245754250000005 36.35238925 +60 36.245754250000005 36.35238925 +82 37.10982425 37.399679250000005 +94 37.10982425 37.399679250000005 +62 36.530114250000004 37.68953425 +65 36.530114250000004 37.68953425 +63 37.68953425 37.817662750000004 +60 37.68953425 37.817662750000004 +65 37.817662750000004 38.078171499999996 +62 37.817662750000004 38.078171499999996 +67 38.078171499999996 38.21055175 +63 38.078171499999996 38.21055175 +65 38.21055175 38.342932 +62 38.21055175 38.342932 +63 38.47531225 38.579963500000005 +60 38.47531225 38.579963500000005 +62 38.75438225 38.890746 +65 38.75438225 38.890746 +63 39.02710975 39.30488775 +60 39.02710975 39.30488775 +65 39.30488775 39.57155425 +62 39.30488775 39.57155425 +72 39.57155425 39.7048875 +70 39.57155425 39.7048875 +67 39.57155425 39.7048875 +82 39.83822075 39.971152249999996 +80 39.971152249999996 40.10408375 +82 40.23701525 40.36994675 +77 40.36994675 40.509871999999994 +82 40.64979725 40.749495875 +80 40.91566025 41.04859175 +77 41.04859175 41.18152325 +75 39.83822075 41.458941249999995 +75 41.32023225 41.458941249999995 +71 39.83822075 41.458941249999995 +71 41.458941249999995 41.98846225 +68 42.120842499999995 42.25106225 +65 42.25106225 42.38128199999999 +63 42.38128199999999 42.511501749999994 +59 42.511501749999994 42.65081624999999 +50 42.790130749999996 43.05271275 +55 42.790130749999996 43.05271275 +58 43.31637925 43.4152541875 +51 43.31637925 43.4152541875 +58 43.843712249999996 43.9545496875 +51 43.843712249999996 43.9545496875 +58 45.45557725 45.5544521875 +51 45.45557725 45.5544521875 +58 45.982910249999996 46.0937476875 +51 45.982910249999996 46.0937476875 +58 47.59477525 47.6936501875 +51 47.59477525 47.6936501875 +58 48.12210825 48.2329456875 +51 48.12210825 48.2329456875 +57 49.6711995 49.73816375 +58 49.73816375 49.805127999999996 +61 49.73816375 49.805127999999996 +57 50.2069135 50.27387775 +58 50.27387775 50.340842 +61 50.27387775 50.340842 +55 50.7426275 50.809591749999996 +59 50.809591749999996 50.875671 +56 50.809591749999996 50.875671 +56 51.26787412499999 51.33252924999999 +57 51.33252924999999 51.397184374999995 +60 51.33252924999999 51.397184374999995 +65 51.33252924999999 51.397184374999995 +57 51.792042499999994 51.85900674999999 +58 51.85900674999999 51.92597099999999 +61 51.85900674999999 51.92597099999999 +57 52.32775649999999 52.39472074999999 +58 52.39472074999999 52.461684999999996 +61 52.39472074999999 52.461684999999996 +55 52.86347049999999 52.93043474999999 +59 52.93043474999999 52.99651399999999 +56 52.93043474999999 52.99651399999999 +56 53.388717124999985 53.45337224999999 +57 53.45337224999999 53.51802737499999 +60 53.45337224999999 53.51802737499999 +65 53.45337224999999 53.51802737499999 +57 53.91288549999999 53.979849749999985 +58 53.979849749999985 54.04681399999998 +61 53.979849749999985 54.04681399999998 +57 55.26760512499998 55.33226024999998 +61 55.33226024999998 55.396915374999985 +58 55.33226024999998 55.396915374999985 +48 57.40894154791665 57.47672416666665 +51 57.47672416666665 57.54537990416665 +47 57.47672416666665 57.54537990416665 +57 58.24681227916665 58.313776529166645 +58 58.313776529166645 58.38074077916664 +61 58.313776529166645 58.38074077916664 +57 58.782526279166646 58.849490529166644 +58 58.849490529166644 58.91645477916665 +61 58.849490529166644 58.91645477916665 +55 59.318240279166645 59.38520452916664 +59 59.38520452916664 59.451283779166644 +56 59.38520452916664 59.451283779166644 +56 59.84348690416664 59.90814202916664 +57 59.90814202916664 59.97279715416664 +60 59.90814202916664 59.97279715416664 +65 59.90814202916664 59.97279715416664 +57 60.36765527916664 60.43461952916664 +58 60.43461952916664 60.50158377916664 +61 60.43461952916664 60.50158377916664 +57 60.90336927916664 60.97033352916664 +58 60.97033352916664 61.03729777916664 +61 60.97033352916664 61.03729777916664 +55 61.43908327916664 61.506047529166636 +59 61.506047529166636 61.57212677916664 +56 61.506047529166636 61.57212677916664 +56 61.96432990416663 62.028985029166634 +57 62.028985029166634 62.093640154166636 +60 62.028985029166634 62.093640154166636 +65 62.028985029166634 62.093640154166636 +57 62.488498279166635 62.55546252916663 +58 62.55546252916663 62.62242677916663 +61 62.55546252916663 62.62242677916663 +65 65.65670802916662 66.82512652916662 +57 65.00805902916663 66.82512652916662 +58 66.82512652916662 67.30131702916663 +64 66.82512652916662 67.30131702916663 +74 67.62495165416662 67.69173702916663 +75 67.69173702916663 67.75781627916663 +71 67.69173702916663 67.75781627916663 +72 67.88997477916664 67.95605402916664 +73 67.95605402916664 68.02070915416664 +71 67.95605402916664 68.02070915416664 +74 68.15001940416664 68.21467452916664 +71 68.21467452916664 68.27932965416663 +75 68.21467452916664 68.27932965416663 +59 67.30131702916663 68.47329502916664 +63 67.30131702916663 68.47329502916664 +74 68.66726040416664 68.73404577916664 +75 68.73404577916664 68.80012502916664 +71 68.73404577916664 68.80012502916664 +72 68.93228352916664 68.99836277916664 +73 68.99836277916664 69.06301790416664 +71 68.99836277916664 69.06301790416664 +74 69.19232815416665 69.25698327916665 +71 69.25698327916665 69.32163840416663 +75 69.25698327916665 69.32163840416663 +65 70.68149377916664 71.84991227916665 +64 71.84991227916665 72.32610277916665 +57 70.03284477916664 72.32610277916665 +74 72.64973740416664 72.71652277916665 +75 72.71652277916665 72.78260202916665 +70 72.71652277916665 72.78260202916665 +72 72.91476052916666 72.98083977916666 +73 72.98083977916666 73.04549490416666 +70 72.98083977916666 73.04549490416666 +74 73.17480515416666 73.23946027916666 +70 73.23946027916666 73.30411540416665 +75 73.23946027916666 73.30411540416665 +58 72.32610277916665 73.49808077916666 +63 72.32610277916665 73.49808077916666 +74 73.69204615416666 73.75883152916666 +75 73.75883152916666 73.82491077916666 +70 73.75883152916666 73.82491077916666 +72 73.95706927916666 74.02314852916666 +73 74.02314852916666 74.08780365416666 +70 74.02314852916666 74.08780365416666 +74 74.21711390416667 74.28176902916667 +70 74.28176902916667 74.34642415416666 +75 74.28176902916667 74.34642415416666 +69 75.05763052916666 75.70627952916666 +77 75.70627952916666 76.07437752916667 +80 76.07437752916667 76.87469802916667 +78 76.87469802916667 77.35088852916667 +75 77.35088852916667 77.48031052916667 +70 77.35088852916667 77.60973252916666 +78 77.48031052916667 77.73915452916667 +77 77.73915452916667 77.87817202916666 +68 77.60973252916666 77.87817202916666 +66 77.87817202916666 78.13701602916666 +65 78.13701602916666 78.40511252916666 +73 77.87817202916666 78.40511252916666 +68 78.40511252916666 78.54285352916666 +63 78.40511252916666 78.68059452916665 +71 78.54285352916666 78.82999702916665 +70 78.82999702916665 79.00667552916664 +61 78.68059452916665 79.00667552916664 +61 79.00667552916664 79.69417502916664 +58 79.32787452916665 80.06047552916665 +59 79.00667552916664 80.75110052916665 +57 80.42677602916665 81.83568002916665 +65 81.07542502916665 82.24384352916665 +64 82.24384352916665 82.72003402916665 +58 81.83568002916665 82.72003402916665 +74 83.04366865416665 83.11045402916666 +75 83.11045402916666 83.17653327916666 +71 83.11045402916666 83.17653327916666 +72 83.30869177916667 83.37477102916667 +73 83.37477102916667 83.43942615416667 +71 83.37477102916667 83.43942615416667 +74 83.56873640416667 83.63339152916667 +71 83.63339152916667 83.69804665416666 +75 83.63339152916667 83.69804665416666 +59 82.72003402916665 83.89201202916666 +63 82.72003402916665 83.89201202916666 +65 85.08482202916667 86.25324052916667 +64 86.25324052916667 86.72943102916668 +57 84.43617302916667 86.72943102916668 +74 87.05306565416667 87.11985102916668 +75 87.11985102916668 87.18593027916668 +70 87.11985102916668 87.18593027916668 +72 87.31808877916669 87.38416802916669 +73 87.38416802916669 87.44882315416669 +70 87.38416802916669 87.44882315416669 +74 87.57813340416669 87.6427885291667 +70 87.6427885291667 87.70744365416668 +75 87.6427885291667 87.70744365416668 +58 86.72943102916668 87.90140902916669 +63 86.72943102916668 87.90140902916669 +73 88.41865002916668 89.06729902916669 +81 89.06729902916669 89.4353970291667 +83 89.4353970291667 90.23571752916669 +82 90.23571752916669 90.7119080291667 +77 90.7119080291667 90.8413300291667 +70 90.7119080291667 90.97075202916669 +80 90.8413300291667 91.1001740291667 +78 91.1001740291667 91.23919152916669 +68 90.97075202916669 91.23919152916669 +66 91.23919152916669 91.49803552916669 +65 91.49803552916669 91.76613202916668 +75 91.23919152916669 91.76613202916668 +70 91.76613202916668 91.89759577916668 +73 91.89759577916668 92.17178077916668 +71 92.17178077916668 92.31450202916669 +65 92.31450202916669 92.70546652916669 +66 92.70546652916669 92.88839327916668 +70 95.52810877916669 95.66027902916669 +68 95.66027902916669 95.93427652916668 +70 95.93427652916668 96.20827402916669 +70 96.61328727916668 96.74430302916669 +68 96.74430302916669 97.01582102916669 +70 97.01582102916669 97.31732852916669 +63 92.88839327916668 97.31732852916669 +59 92.88839327916668 97.31732852916669 +54 92.88839327916668 97.31732852916669 +54 97.31732852916669 98.4136935291667 +70 98.82468977916669 98.95923102916669 +68 98.95923102916669 99.24497252916669 +70 99.24497252916669 99.53071402916669 +70 99.95932627916669 100.12509052916668 +68 100.12509052916668 100.4822885291667 +70 100.4822885291667 100.8416130291667 +53 98.4136935291667 100.8416130291667 +61 97.31732852916669 100.8416130291667 +59 97.31732852916669 100.8416130291667 +70 100.8416130291667 100.9789882791667 +68 100.9789882791667 101.11636352916669 +70 101.2537387791667 101.3911140291667 +65 101.3911140291667 101.53718477916671 +70 101.6832555291667 101.7867609666667 +68 101.9592700291667 102.1046330291667 +65 102.1046330291667 102.24999602916671 +63 102.3953590291667 102.5407220291667 +59 102.5407220291667 102.7008245291667 +63 102.8609270291667 102.97550077916671 +58 103.16645702916671 103.26959234166671 +58 103.3039707791667 103.4414845291667 +60 103.5749720291667 103.7084595291667 +58 103.7084595291667 103.8402927791667 +70 103.9721260291667 104.0779984666667 +63 103.9391677166667 104.0779984666667 +58 104.2544525291667 105.3451625291667 +58 105.3451625291667 105.4732910291667 +56 105.4732910291667 105.6014195291667 +58 105.7337997791667 105.8661800291667 +60 105.8661800291667 105.9654652166667 +56 106.13094052916671 106.23407584166671 +58 106.4059680291667 106.5340965291667 +56 106.5340965291667 106.6622250291667 +58 106.7946052791667 106.9269855291667 +59 106.9269855291667 107.0262707166667 +56 107.19174602916671 107.29488134166671 +58 107.4667735291667 107.5949020291667 +56 107.5949020291667 107.7230305291667 +53 107.8554107791667 107.9546959666667 +51 107.9877910291667 108.12017127916671 +50 108.25255152916671 108.3849317791667 +48 108.5173120291667 108.6530710291667 +43 108.7888300291667 108.9281445291667 +48 109.0674590291667 109.2098955291667 +50 109.3523320291667 109.4947685291667 +70 109.6372050291667 109.7653335291667 +68 109.7653335291667 109.8934620291667 +59 109.8934620291667 110.0258422791667 +63 109.8934620291667 110.0258422791667 +70 110.0258422791667 110.1582225291667 +65 110.1582225291667 110.2906027791667 +70 110.4229830291667 110.5222682166667 +63 110.4229830291667 110.5553632791667 +59 110.4229830291667 110.5553632791667 +68 110.6877435291667 110.8158720291667 +65 110.8158720291667 110.9440005291667 +59 110.9440005291667 111.0428754666667 +63 111.0758337791667 111.2076670291667 +59 111.2076670291667 111.3451807791667 +59 111.4826945291667 111.5486111541667 +63 111.4826945291667 111.5486111541667 +58 111.74636102916669 111.8494963416667 +58 111.88387477916669 112.02138852916669 +60 112.15487602916669 112.28836352916669 +58 112.28836352916669 112.42019677916669 +70 112.55203002916669 112.65790246666668 +63 112.51907171666669 112.65790246666668 +58 112.83435652916668 113.92506652916668 +58 113.92506652916668 114.02116290416669 +58 114.05319502916669 114.18132352916669 +60 114.31370377916669 114.44608402916668 +58 114.44608402916668 114.54536921666669 +61 114.71084452916669 114.8139798416667 +63 114.98587202916669 115.08196840416669 +65 115.24212902916669 115.34141421666669 +63 115.50688952916668 115.60617471666669 +66 115.7716500291667 115.8709352166667 +65 116.03641052916669 116.13954584166669 +65 116.17392427916668 116.31143802916668 +67 116.44492552916668 116.57841302916668 +65 116.57841302916668 116.80912121666668 +74 116.84207952916668 116.94795196666668 +67 116.80912121666668 116.94795196666668 +70 117.12440602916668 117.71252602916668 +62 117.12440602916668 117.71252602916668 +82 117.71252602916668 118.00658602916668 +94 117.71252602916668 118.00658602916668 +60 118.30064602916667 118.42877452916667 +63 118.30064602916667 118.42877452916667 +65 118.42877452916667 118.68928327916667 +62 118.42877452916667 118.68928327916667 +63 118.68928327916667 118.82166352916667 +67 118.68928327916667 118.82166352916667 +65 118.82166352916667 118.92094871666667 +62 118.82166352916667 118.92094871666667 +63 119.08642402916668 119.19305902916668 +60 119.08642402916668 119.19305902916668 +82 119.95049402916669 120.24034902916668 +94 119.95049402916669 120.24034902916668 +62 119.37078402916669 120.53020402916668 +65 119.37078402916669 120.53020402916668 +63 120.53020402916668 120.65833252916669 +60 120.53020402916668 120.65833252916669 +62 120.65833252916669 120.91884127916668 +65 120.65833252916669 120.91884127916668 +63 120.91884127916668 121.05122152916668 +67 120.91884127916668 121.05122152916668 +62 121.05122152916668 121.15050671666668 +65 121.05122152916668 121.15050671666668 +63 121.31598202916669 121.4206332791667 +60 121.31598202916669 121.4206332791667 +62 121.5950520291667 121.7314157791667 +65 121.5950520291667 121.7314157791667 +63 121.8677795291667 122.1455575291667 +60 121.8677795291667 122.1455575291667 +65 122.1455575291667 122.4122240291667 +62 122.1455575291667 122.4122240291667 +67 122.4122240291667 122.5455572791667 +72 122.4122240291667 122.5455572791667 +70 122.4122240291667 122.5455572791667 +64 122.6926160291667 123.76275402916671 +61 122.6926160291667 123.76275402916671 +57 122.6926160291667 123.76275402916671 +65 123.76275402916671 124.83289202916673 +60 123.76275402916671 124.83289202916673 +56 123.76275402916671 124.83289202916673 +53 124.83289202916673 125.91779352916673 +48 126.17405052916673 126.30979702916673 +50 126.30979702916673 126.44554352916674 +48 126.44554352916674 126.59047102916674 +55 124.83289202916673 127.20940702916674 +58 124.83289202916673 127.20940702916674 +51 125.91779352916673 127.20940702916674 +63 127.20940702916674 127.33753552916674 +60 127.20940702916674 127.33753552916674 +65 127.33753552916674 127.59804427916674 +62 127.33753552916674 127.59804427916674 +63 127.59804427916674 127.73042452916674 +67 127.59804427916674 127.73042452916674 +62 127.73042452916674 127.82970971666674 +65 127.73042452916674 127.82970971666674 +60 127.99518502916675 128.10182002916676 +63 127.99518502916675 128.10182002916676 +82 128.88518952916672 129.1750445291667 +94 128.88518952916672 129.1750445291667 +65 128.27954502916674 129.46489952916673 +62 128.27954502916674 129.46489952916673 +63 129.46489952916673 129.59302802916673 +60 129.46489952916673 129.59302802916673 +65 129.59302802916673 129.85353677916675 +62 129.59302802916673 129.85353677916675 +63 129.85353677916675 129.98591702916673 +67 129.85353677916675 129.98591702916673 +62 129.98591702916673 130.08520221666674 +65 129.98591702916673 130.08520221666674 +60 130.25067752916672 130.3553287791667 +63 130.25067752916672 130.3553287791667 +65 130.5297475291667 130.6661112791667 +62 130.5297475291667 130.6661112791667 +60 130.80247502916671 131.08025302916673 +63 130.80247502916671 131.08025302916673 +62 131.08025302916673 131.34691952916674 +65 131.08025302916673 131.34691952916674 +72 131.34691952916674 131.48025277916673 +67 131.34691952916674 131.48025277916673 +70 131.34691952916674 131.48025277916673 +82 131.61358602916673 131.74651752916674 +80 131.74651752916674 131.87944902916672 +82 132.01238052916673 132.14531202916672 +77 132.14531202916672 132.28523727916672 +82 132.42516252916673 132.52486115416673 +80 132.69102552916672 132.82395702916673 +77 132.82395702916673 132.95688852916672 +75 131.61358602916673 133.23430652916673 +75 133.09559752916672 133.23430652916673 +71 131.61358602916673 133.23430652916673 +71 133.23430652916673 133.76382752916672 +68 133.89620777916673 134.02642752916674 +65 134.02642752916674 134.15664727916672 +63 134.15664727916672 134.28686702916673 +59 134.28686702916673 134.42618152916674 +50 134.56549602916672 134.82807802916673 +55 134.56549602916672 134.82807802916673 +51 135.09174452916673 135.19061946666673 +58 135.09174452916673 135.19061946666673 +51 135.61907752916673 135.72991496666674 +58 135.61907752916673 135.72991496666674 +58 137.23094252916673 137.32981746666673 +51 137.23094252916673 137.32981746666673 +58 137.75827552916672 137.86911296666673 +51 137.75827552916672 137.86911296666673 +51 139.41381752916675 139.52096046666674 +58 139.41381752916675 139.52096046666674 +51 139.98524652916674 140.10182690416676 +58 139.98524652916674 140.10182690416676 +47 140.88905512916674 141.20088312916675 +46 141.20088312916675 141.2792972750001 +44 141.27222332500008 141.34954053541676 +43 141.34254361041675 141.41905726041676 +41 141.41215689791676 141.4890725125001 +51 141.4818810250001 141.76954052500008 +51 142.63251902500008 142.95935202500007 +track Piano left +70 0.0 0.13293149999999998 +68 0.13293149999999998 0.26586299999999996 +70 0.3987945 0.5317259999999999 +65 0.5317259999999999 0.6716512499999999 +70 0.8115764999999999 0.911275125 +68 1.0774394999999999 1.2103709999999999 +65 1.2103709999999999 1.3433024999999998 +63 1.4820114999999998 1.6207204999999998 +59 1.6207204999999998 2.1502415 +56 2.2826217499999997 2.41231225 +53 2.41231225 2.5420027499999995 +51 2.5420027499999995 2.6716932499999997 +47 2.6716932499999997 3.2012142499999996 +44 3.3335945 3.46381425 +41 3.46381425 3.5940339999999997 +39 3.5940339999999997 3.72425375 +35 3.72425375 4.0028827499999995 +34 4.0028827499999995 4.26546475 +46 4.0028827499999995 4.26546475 +46 5.31579275 5.4146676875 +39 5.31579275 5.4146676875 +53 5.57945925 5.6783341875 +55 5.57945925 5.6783341875 +46 5.8431257500000005 5.943850937500001 +39 5.8431257500000005 5.943850937500001 +53 6.11172625 6.198471625 +55 6.11172625 6.198471625 +46 6.343047250000001 6.4419221875 +39 6.343047250000001 6.4419221875 +53 6.606713750000001 6.705588687500001 +55 6.606713750000001 6.705588687500001 +46 6.87038025 6.969255187500001 +39 6.87038025 6.969255187500001 +53 7.13404675 7.232921687500001 +55 7.13404675 7.232921687500001 +46 7.397713250000001 7.498891437500001 +39 7.397713250000001 7.498891437500001 +53 7.667521750000001 7.7539339375 +55 7.667521750000001 7.7539339375 +46 7.897954250000001 7.9972394375 +39 7.897954250000001 7.9972394375 +53 8.162714750000001 8.2619999375 +55 8.162714750000001 8.2619999375 +46 8.42747525 8.5267604375 +39 8.42747525 8.5267604375 +53 8.69223575 8.791520937500001 +55 8.69223575 8.791520937500001 +46 8.956996250000001 9.056281437500001 +39 8.956996250000001 9.056281437500001 +53 9.22175675 9.324449562500002 +55 9.22175675 9.324449562500002 +46 9.495604250000001 9.591700625000001 +39 9.495604250000001 9.591700625000001 +53 9.751861250000001 9.8511464375 +56 9.751861250000001 9.8511464375 +46 10.01662175 10.115906937500002 +39 10.01662175 10.115906937500002 +53 10.281382250000002 10.380667437500001 +56 10.281382250000002 10.380667437500001 +46 10.546142750000001 10.642239125000001 +39 10.546142750000001 10.642239125000001 +53 10.802399750000001 10.9012746875 +56 10.802399750000001 10.9012746875 +46 11.06606625 11.1692015625 +39 11.06606625 11.1692015625 +53 11.34109375 11.4399686875 +56 11.34109375 11.4399686875 +46 11.60476025 11.7078955625 +39 11.60476025 11.7078955625 +53 11.87978775 11.979903375000001 +55 11.87978775 11.979903375000001 +39 12.14676275 12.2456376875 +46 12.14676275 12.2456376875 +55 12.41042925 12.5163016875 +53 12.41042925 12.5163016875 +39 12.69275575 12.7950098125 +46 12.69275575 12.7950098125 +55 12.96543325 13.0676873125 +53 12.96543325 13.0676873125 +39 13.23811075 13.3403648125 +46 13.23811075 13.3403648125 +55 13.51078825 13.6130423125 +53 13.51078825 13.6130423125 +46 13.78346575 13.879562125 +39 13.78346575 13.879562125 +51 14.03972275 14.139007937499999 +53 14.03972275 14.139007937499999 +46 14.304483249999999 14.4037684375 +39 14.304483249999999 14.4037684375 +51 14.56924375 14.6723790625 +53 14.56924375 14.6723790625 +46 14.84427125 14.940367625 +39 14.84427125 14.940367625 +51 15.10052825 15.1998134375 +53 15.10052825 15.1998134375 +46 15.36528875 15.4645739375 +39 15.36528875 15.4645739375 +51 15.63004925 15.7331845625 +53 15.63004925 15.7331845625 +46 15.905076750000001 16.03320525 +44 16.03320525 16.16133375 +41 16.293714 16.3929991875 +39 16.426094250000002 16.5584745 +38 16.69085475 16.823235 +36 16.95561525 17.09137425 +31 17.22713325 17.366447750000003 +36 17.50576225 17.64819875 +38 17.79063525 17.93307175 +46 18.07550825 18.171604624999997 +39 18.07550825 18.171604624999997 +53 18.33176525 18.4310504375 +56 18.33176525 18.4310504375 +46 18.59652575 18.6958109375 +39 18.59652575 18.6958109375 +53 18.86128625 18.9605714375 +56 18.86128625 18.9605714375 +46 19.12604675 19.222143125 +39 19.12604675 19.222143125 +53 19.382303750000002 19.4811786875 +56 19.382303750000002 19.4811786875 +46 19.64597025 19.749105562500002 +39 19.64597025 19.749105562500002 +53 19.92099775 20.0198726875 +56 19.92099775 20.0198726875 +46 20.18466425 20.287799562500002 +39 20.18466425 20.287799562500002 +53 20.45969175 20.559807375000002 +55 20.45969175 20.559807375000002 +39 20.72666675 20.8255416875 +46 20.72666675 20.8255416875 +55 20.99033325 21.0962056875 +53 20.99033325 21.0962056875 +39 21.27265975 21.374913812499997 +46 21.27265975 21.374913812499997 +55 21.54533725 21.647591312499998 +53 21.54533725 21.647591312499998 +39 21.81801475 21.920268812499998 +46 21.81801475 21.920268812499998 +55 22.09069225 22.1929463125 +53 22.09069225 22.1929463125 +49 22.36336975 22.459466125 +42 22.36336975 22.459466125 +49 22.619626750000002 22.685816875 +54 22.619626750000002 22.718911937500003 +56 22.619626750000002 22.718911937500003 +49 22.884387250000003 22.9836724375 +42 22.884387250000003 22.9836724375 +49 23.14914775 23.217904625 +54 23.14914775 23.252283062500002 +57 23.14914775 23.252283062500002 +42 23.42417525 23.520271625 +49 23.42417525 23.520271625 +49 23.680432250000003 23.746622375 +58 23.680432250000003 23.779717437500004 +54 23.680432250000003 23.779717437500004 +42 23.945192750000004 24.0444779375 +49 23.945192750000004 24.0444779375 +49 24.20995325 24.276143375000004 +59 24.20995325 24.309238437500003 +54 24.20995325 24.309238437500003 +61 24.749741250000003 24.849856875000004 +64 24.749741250000003 24.883228750000004 +63 25.01671625 25.28038275 +60 25.01671625 25.28038275 +53 25.28038275 25.350964375 +57 25.28038275 25.3862551875 +63 25.28038275 25.3862551875 +46 25.56270925 25.85676925 +58 25.56270925 25.85676925 +53 25.56270925 25.85676925 +46 26.15082925 26.444889250000003 +34 26.15082925 26.444889250000003 +58 26.73894925 26.835045625 +56 26.73894925 26.835045625 +68 26.995206250000003 27.094491437500004 +70 26.995206250000003 27.094491437500004 +58 27.259966750000004 27.3592519375 +56 27.259966750000004 27.3592519375 +68 27.52472725 27.631362250000002 +70 27.52472725 27.631362250000002 +58 27.80908725 27.917782875 +56 27.80908725 27.917782875 +68 28.09894225 28.207637875 +70 28.09894225 28.207637875 +58 28.38879725 28.497492875000002 +56 28.38879725 28.497492875000002 +68 28.678652250000003 28.787347875000002 +70 28.678652250000003 28.787347875000002 +58 28.968507250000002 29.064603625 +55 28.968507250000002 29.064603625 +70 29.224764250000003 29.324049437500005 +58 29.489524750000005 29.588809937500002 +55 29.489524750000005 29.588809937500002 +70 29.754285250000002 29.858936500000002 +58 30.033355250000003 30.169719000000004 +55 30.033355250000003 30.169719000000004 +70 30.30608275 30.410249500000003 +58 30.583860750000003 30.850527250000003 +55 30.583860750000003 30.850527250000003 +63 30.850527250000003 30.950527187500004 +46 31.117193750000002 31.24532225 +48 31.24532225 31.373450750000003 +50 31.505831000000004 31.638211250000005 +48 31.638211250000005 31.770591500000002 +46 31.902971750000003 32.00960675 +46 32.187331750000006 32.31546025000001 +48 32.31546025000001 32.44358875 +50 32.575969 32.708349250000005 +48 32.708349250000005 32.8407295 +46 32.973109750000006 33.07974475 +46 33.257469750000006 33.386225 +48 33.386225 33.51498025000001 +50 33.64950950000001 33.78403875000001 +48 33.78403875000001 33.92102500000001 +46 34.05801125000001 34.164646250000004 +34 34.47049975000001 34.598628250000004 +36 34.598628250000004 34.73437475000001 +38 34.73437475000001 34.870121250000004 +36 34.870121250000004 35.015048750000005 +34 35.15997625000001 35.272476250000004 +22 35.15997625000001 35.272476250000004 +58 35.459976250000004 35.556072625000006 +56 35.459976250000004 35.556072625000006 +68 35.71623325 35.8155184375 +70 35.71623325 35.8155184375 +58 35.98099375 36.080278937500005 +56 35.98099375 36.080278937500005 +68 36.245754250000005 36.35238925 +70 36.245754250000005 36.35238925 +58 36.530114250000004 36.63880987500001 +56 36.530114250000004 36.63880987500001 +68 36.81996925000001 36.928664875 +70 36.81996925000001 36.928664875 +58 37.10982425 37.218519875000005 +56 37.10982425 37.218519875000005 +68 37.399679250000005 37.508374875 +70 37.399679250000005 37.508374875 +58 37.68953425 37.785630625 +55 37.68953425 37.785630625 +70 37.94579125 38.0450764375 +67 37.94579125 38.0450764375 +58 38.21055175 38.3098369375 +55 38.21055175 38.3098369375 +70 38.47531225 38.579963500000005 +67 38.47531225 38.579963500000005 +58 38.75438225 38.890746 +55 38.75438225 38.890746 +70 39.02710975 39.1312765 +67 39.02710975 39.1312765 +58 39.30488775 39.57155425 +55 39.30488775 39.57155425 +63 39.57155425 39.6715541875 +70 39.83822075 39.971152249999996 +68 39.971152249999996 40.10408375 +70 40.23701525 40.36994675 +65 40.36994675 40.509871999999994 +70 40.64979725 40.749495875 +68 40.91566025 41.04859175 +65 41.04859175 41.18152325 +63 39.83822075 41.458941249999995 +63 41.32023225 41.458941249999995 +59 39.83822075 41.458941249999995 +59 41.458941249999995 41.98846225 +56 42.120842499999995 42.25106225 +53 42.25106225 42.38128199999999 +51 42.38128199999999 42.511501749999994 +47 42.511501749999994 42.65081624999999 +34 42.790130749999996 43.05271275 +46 42.790130749999996 43.05271275 +53 43.31637925 43.4152541875 +55 43.31637925 43.4152541875 +46 43.58004575 43.678920687499996 +39 43.58004575 43.678920687499996 +53 43.843712249999996 43.9545496875 +55 43.843712249999996 43.9545496875 +46 44.139278749999995 44.66559475 +39 44.139278749999995 44.66559475 +53 45.45557725 45.5544521875 +55 45.45557725 45.5544521875 +46 45.71924375 45.8181186875 +39 45.71924375 45.8181186875 +53 45.982910249999996 46.0937476875 +55 45.982910249999996 46.0937476875 +46 46.278476749999996 46.80479275 +39 46.278476749999996 46.80479275 +53 47.59477525 47.6936501875 +55 47.59477525 47.6936501875 +46 47.85844175 47.9573166875 +39 47.85844175 47.9573166875 +53 48.12210825 48.2329456875 +55 48.12210825 48.2329456875 +39 48.417674749999996 48.94399075 +41 48.94399075 49.47030675 +42 49.47030675 49.60423525 +42 50.00602075 50.13994925 +42 50.541734749999996 50.67566325 +42 51.073908749999994 51.203219 +51 51.52649462499999 51.59114974999999 +49 49.47030675 51.59114974999999 +42 51.59114974999999 51.725078249999996 +42 52.12686374999999 52.260792249999994 +42 52.66257774999999 52.79650624999999 +42 53.19475174999999 53.32406199999999 +49 51.59114974999999 53.711992749999986 +42 53.979849749999985 54.11377824999999 +41 54.247706749999985 54.38284199999998 +39 54.51797724999999 54.658822249999986 +37 54.799667249999985 55.073639749999984 +49 53.711992749999986 55.84950124999998 +42 56.11735824999998 56.251286749999984 +41 56.38521524999998 56.52035049999998 +39 56.65548574999998 56.79633074999998 +37 56.93717574999998 57.07416199999998 +35 57.21114824999998 57.342105324999984 +34 57.47672416666665 57.61418727916665 +32 57.75180202916665 57.89886077916665 +42 58.045919529166646 58.17984802916665 +42 58.581633529166645 58.71556202916665 +42 59.11734752916664 59.25127602916665 +42 59.64952152916664 59.778831779166644 +51 60.10210740416664 60.16676252916664 +49 58.045919529166646 60.16676252916664 +42 60.16676252916664 60.30069102916664 +42 60.70247652916664 60.83640502916664 +42 61.23819052916664 61.37211902916664 +42 61.770364529166635 61.89967477916664 +49 60.16676252916664 62.28760552916663 +42 62.55546252916663 62.689391029166636 +41 62.82331952916663 62.95845477916663 +39 63.093590029166634 63.23443502916663 +37 63.37528002916663 63.64925252916663 +49 62.28760552916663 64.68373452916663 +39 64.68373452916663 65.00805902916663 +41 65.00805902916663 65.33238352916663 +42 65.33238352916663 65.65670802916662 +45 65.65670802916662 66.02480602916663 +46 66.02480602916663 66.41696302916662 +47 66.41696302916662 66.82512652916662 +48 66.82512652916662 67.30131702916663 +65 67.69173702916663 67.75781627916663 +56 67.69173702916663 67.75781627916663 +59 67.69173702916663 67.75781627916663 +65 67.95605402916664 68.02070915416664 +56 67.95605402916664 68.02070915416664 +59 67.95605402916664 68.02070915416664 +65 68.21467452916664 68.27932965416663 +59 68.21467452916664 68.27932965416663 +56 68.21467452916664 68.27932965416663 +44 67.30131702916663 68.47329502916664 +49 67.30131702916663 68.47329502916664 +65 68.73404577916664 68.80012502916664 +59 68.73404577916664 68.80012502916664 +56 68.73404577916664 68.80012502916664 +65 68.99836277916664 69.06301790416664 +59 68.99836277916664 69.06301790416664 +56 68.99836277916664 69.06301790416664 +65 69.25698327916665 69.32163840416663 +56 69.25698327916665 69.32163840416663 +59 69.25698327916665 69.32163840416663 +66 72.71652277916665 72.78260202916665 +58 72.71652277916665 72.78260202916665 +61 72.71652277916665 72.78260202916665 +66 72.98083977916666 73.04549490416666 +58 72.98083977916666 73.04549490416666 +61 72.98083977916666 73.04549490416666 +66 73.23946027916666 73.30411540416665 +61 73.23946027916666 73.30411540416665 +58 73.23946027916666 73.30411540416665 +42 72.32610277916665 73.49808077916666 +49 70.68149377916664 73.49808077916666 +66 73.75883152916666 73.82491077916666 +61 73.75883152916666 73.82491077916666 +58 73.75883152916666 73.82491077916666 +66 74.02314852916666 74.08780365416666 +61 74.02314852916666 74.08780365416666 +58 74.02314852916666 74.08780365416666 +66 74.28176902916667 74.34642415416666 +58 74.28176902916667 74.34642415416666 +61 74.28176902916667 74.34642415416666 +57 75.05763052916666 75.70627952916666 +65 75.70627952916666 76.07437752916667 +68 76.07437752916667 76.87469802916667 +66 76.87469802916667 77.35088852916667 +65 77.60973252916666 77.87817202916666 +63 77.87817202916666 78.13701602916666 +61 78.13701602916666 78.40511252916666 +49 77.35088852916667 78.40511252916666 +56 77.60973252916666 78.40511252916666 +59 77.60973252916666 78.40511252916666 +54 78.40511252916666 78.68059452916665 +53 78.68059452916665 79.00667552916664 +51 79.00667552916664 79.32787452916665 +59 78.40511252916666 79.32787452916665 +49 79.32787452916665 80.06047552916665 +49 80.06047552916665 80.75110052916665 +42 79.69417502916664 81.07542502916665 +49 80.75110052916665 81.44352302916666 +49 81.44352302916666 82.72003402916665 +43 81.07542502916665 82.72003402916665 +66 83.11045402916666 83.17653327916666 +56 83.11045402916666 83.17653327916666 +59 83.11045402916666 83.17653327916666 +65 83.37477102916667 83.43942615416667 +56 83.37477102916667 83.43942615416667 +59 83.37477102916667 83.43942615416667 +63 83.63339152916667 83.69804665416666 +59 83.63339152916667 83.69804665416666 +56 83.63339152916667 83.69804665416666 +44 82.72003402916665 83.89201202916666 +49 82.72003402916665 83.89201202916666 +54 84.15063252916667 84.43617302916667 +53 84.43617302916667 84.76049752916667 +51 84.76049752916667 85.84507702916667 +48 85.84507702916667 86.72943102916668 +66 87.11985102916668 87.18593027916668 +58 87.11985102916668 87.18593027916668 +61 87.11985102916668 87.18593027916668 +65 87.38416802916669 87.44882315416669 +58 87.38416802916669 87.44882315416669 +61 87.38416802916669 87.44882315416669 +63 87.6427885291667 87.70744365416668 +61 87.6427885291667 87.70744365416668 +58 87.6427885291667 87.70744365416668 +42 86.72943102916668 87.90140902916669 +49 86.72943102916668 87.90140902916669 +61 88.41865002916668 89.06729902916669 +69 89.06729902916669 89.4353970291667 +71 89.4353970291667 90.23571752916669 +70 90.23571752916669 90.7119080291667 +54 90.97075202916669 91.76613202916668 +63 90.97075202916669 91.76613202916668 +47 90.7119080291667 91.76613202916668 +59 90.97075202916669 91.76613202916668 +56 90.97075202916669 91.76613202916668 +63 91.76613202916668 92.02905952916669 +61 92.02905952916669 92.31450202916669 +59 92.31450202916669 92.48826402916669 +58 92.48826402916669 92.6620260291667 +56 92.6620260291667 92.88839327916668 +46 92.88839327916668 93.01985702916667 +49 93.01985702916667 93.29404202916668 +47 93.29404202916668 93.43676327916668 +37 93.43676327916668 94.14464702916669 +39 94.14464702916669 94.41864452916668 +41 94.41864452916668 94.57017502916669 +39 94.57017502916669 94.8454295291667 +37 94.8454295291667 97.31732852916669 +46 97.31732852916669 97.44879227916668 +49 97.44879227916668 97.72297727916668 +47 97.72297727916668 97.86569852916669 +37 97.86569852916669 98.0026972791667 +39 98.0026972791667 98.27669477916669 +41 98.27669477916669 98.4136935291667 +39 98.4136935291667 98.68769102916669 +37 98.6796994354167 100.83113273125002 +46 103.16645702916671 103.26959234166671 +39 103.16645702916671 103.26959234166671 +53 103.4414845291667 103.5416001541667 +55 103.4414845291667 103.5416001541667 +39 103.7084595291667 103.8073344666667 +46 103.7084595291667 103.8073344666667 +55 103.9721260291667 104.0779984666667 +53 103.9721260291667 104.0779984666667 +39 104.2544525291667 104.3567065916667 +46 104.2544525291667 104.3567065916667 +55 104.5271300291667 104.6293840916667 +53 104.5271300291667 104.6293840916667 +39 104.7998075291667 104.9020615916667 +46 104.7998075291667 104.9020615916667 +55 105.0724850291667 105.1747390916667 +53 105.0724850291667 105.1747390916667 +46 105.3451625291667 105.4412589041667 +39 105.3451625291667 105.4412589041667 +51 105.6014195291667 105.7007047166667 +53 105.6014195291667 105.7007047166667 +46 105.8661800291667 105.9654652166667 +39 105.8661800291667 105.9654652166667 +51 106.13094052916671 106.23407584166671 +53 106.13094052916671 106.23407584166671 +46 106.4059680291667 106.5020644041667 +39 106.4059680291667 106.5020644041667 +51 106.6622250291667 106.76151021666671 +53 106.6622250291667 106.76151021666671 +46 106.9269855291667 107.0262707166667 +39 106.9269855291667 107.0262707166667 +51 107.19174602916671 107.29488134166671 +53 107.19174602916671 107.29488134166671 +46 107.4667735291667 107.5949020291667 +44 107.5949020291667 107.7230305291667 +41 107.8554107791667 107.9546959666667 +39 107.9877910291667 108.12017127916671 +38 108.25255152916671 108.3849317791667 +36 108.5173120291667 108.6530710291667 +31 108.7888300291667 108.9281445291667 +36 109.0674590291667 109.2098955291667 +38 109.3523320291667 109.4947685291667 +46 109.6372050291667 109.7333014041667 +39 109.6372050291667 109.7333014041667 +53 109.8934620291667 109.9927472166667 +56 109.8934620291667 109.9927472166667 +46 110.1582225291667 110.2575077166667 +39 110.1582225291667 110.2575077166667 +53 110.4229830291667 110.5222682166667 +56 110.4229830291667 110.5222682166667 +46 110.6877435291667 110.7838399041667 +39 110.6877435291667 110.7838399041667 +53 110.9440005291667 111.0428754666667 +56 110.9440005291667 111.0428754666667 +46 111.2076670291667 111.3108023416667 +39 111.2076670291667 111.3108023416667 +53 111.4826945291667 111.5486111541667 +56 111.4826945291667 111.5486111541667 +46 111.74636102916669 111.8494963416667 +39 111.74636102916669 111.8494963416667 +53 112.02138852916669 112.12150415416669 +55 112.02138852916669 112.12150415416669 +39 112.28836352916669 112.38723846666669 +46 112.28836352916669 112.38723846666669 +55 112.55203002916669 112.65790246666668 +53 112.55203002916669 112.65790246666668 +39 112.83435652916668 112.93661059166668 +46 112.83435652916668 112.93661059166668 +55 113.10703402916668 113.20928809166668 +53 113.10703402916668 113.20928809166668 +39 113.37971152916668 113.48196559166668 +46 113.37971152916668 113.48196559166668 +55 113.65238902916668 113.75464309166668 +53 113.65238902916668 113.75464309166668 +49 113.92506652916668 114.02116290416669 +42 113.92506652916668 114.02116290416669 +49 114.18132352916669 114.2475136541667 +54 114.18132352916669 114.28060871666669 +56 114.18132352916669 114.28060871666669 +49 114.44608402916668 114.54536921666669 +42 114.44608402916668 114.54536921666669 +49 114.71084452916669 114.7796014041667 +54 114.71084452916669 114.8139798416667 +57 114.71084452916669 114.8139798416667 +42 114.98587202916669 115.08196840416669 +49 114.98587202916669 115.08196840416669 +49 115.24212902916669 115.3083191541667 +58 115.24212902916669 115.34141421666669 +54 115.24212902916669 115.34141421666669 +42 115.50688952916668 115.60617471666669 +49 115.50688952916668 115.60617471666669 +49 115.7716500291667 115.83784015416668 +59 115.7716500291667 115.8709352166667 +54 115.7716500291667 115.8709352166667 +61 116.31143802916668 116.41155365416668 +64 116.31143802916668 116.44492552916668 +63 116.57841302916668 116.84207952916668 +60 116.57841302916668 116.84207952916668 +53 116.84207952916668 116.91266115416668 +57 116.84207952916668 116.94795196666668 +63 116.84207952916668 116.94795196666668 +46 117.12440602916668 117.41846602916668 +58 117.12440602916668 117.41846602916668 +53 117.12440602916668 117.41846602916668 +46 117.71252602916668 118.00658602916668 +34 117.71252602916668 118.00658602916668 +58 118.30064602916667 118.39674240416667 +56 118.30064602916667 118.39674240416667 +68 118.55690302916668 118.65618821666668 +70 118.55690302916668 118.65618821666668 +58 118.82166352916667 118.92094871666667 +56 118.82166352916667 118.92094871666667 +68 119.08642402916668 119.19305902916668 +70 119.08642402916668 119.19305902916668 +58 119.37078402916669 119.47947965416668 +56 119.37078402916669 119.47947965416668 +68 119.66063902916669 119.76933465416668 +70 119.66063902916669 119.76933465416668 +58 119.95049402916669 120.05918965416669 +56 119.95049402916669 120.05918965416669 +68 120.24034902916668 120.34904465416669 +70 120.24034902916668 120.34904465416669 +58 120.53020402916668 120.62630040416668 +55 120.53020402916668 120.62630040416668 +70 120.78646102916669 120.88574621666669 +58 121.05122152916668 121.15050671666668 +55 121.05122152916668 121.15050671666668 +70 121.31598202916669 121.4206332791667 +58 121.5950520291667 121.7314157791667 +55 121.5950520291667 121.7314157791667 +70 121.8677795291667 121.9719462791667 +58 122.1455575291667 122.4122240291667 +55 122.1455575291667 122.4122240291667 +63 122.4122240291667 122.5122239666667 +47 122.6926160291667 122.8207445291667 +49 122.8207445291667 122.9488730291667 +51 123.0812532791667 123.2136335291667 +49 123.2136335291667 123.34601377916671 +47 123.47839402916671 123.5850290291667 +46 123.76275402916671 123.89088252916672 +48 123.89088252916672 124.01901102916672 +50 124.15139127916672 124.28377152916671 +48 124.28377152916671 124.41615177916673 +46 124.54853202916672 124.65516702916672 +46 124.83289202916673 124.96164727916673 +48 124.96164727916673 125.09040252916672 +50 125.22493177916672 125.35946102916672 +48 125.35946102916672 125.49644727916673 +46 125.63343352916672 125.74006852916672 +34 126.04592202916673 126.17405052916673 +46 126.04592202916673 126.17405052916673 +36 126.17405052916673 126.30979702916673 +38 126.30979702916673 126.44554352916674 +36 126.44554352916674 126.59047102916674 +34 126.73539852916674 126.91315171666675 +22 126.73539852916674 126.91315171666675 +58 127.20940702916674 127.30550340416674 +56 127.20940702916674 127.30550340416674 +68 127.46566402916675 127.56494921666675 +70 127.46566402916675 127.56494921666675 +58 127.73042452916674 127.82970971666674 +56 127.73042452916674 127.82970971666674 +68 127.99518502916675 128.10182002916676 +70 127.99518502916675 128.10182002916676 +58 128.27954502916674 128.38824065416674 +56 128.27954502916674 128.38824065416674 +68 128.56940002916673 128.68782109166673 +70 128.56940002916673 128.68782109166673 +58 128.88518952916672 128.99388515416672 +56 128.88518952916672 128.99388515416672 +68 129.1750445291667 129.28374015416674 +70 129.1750445291667 129.28374015416674 +58 129.46489952916673 129.56099590416673 +55 129.46489952916673 129.56099590416673 +70 129.72115652916673 129.82044171666672 +67 129.72115652916673 129.82044171666672 +58 129.98591702916673 130.08520221666674 +55 129.98591702916673 130.08520221666674 +70 130.25067752916672 130.3553287791667 +67 130.25067752916672 130.3553287791667 +58 130.5297475291667 130.6661112791667 +55 130.5297475291667 130.6661112791667 +70 130.80247502916671 130.9066417791667 +67 130.80247502916671 130.9066417791667 +58 131.08025302916673 131.34691952916674 +55 131.08025302916673 131.34691952916674 +63 131.34691952916674 131.4469194666667 +70 131.61358602916673 131.74651752916674 +68 131.74651752916674 131.87944902916672 +70 132.01238052916673 132.14531202916672 +65 132.14531202916672 132.28523727916672 +70 132.42516252916673 132.52486115416673 +68 132.69102552916672 132.82395702916673 +65 132.82395702916673 132.95688852916672 +63 131.61358602916673 133.23430652916673 +63 133.09559752916672 133.23430652916673 +59 131.61358602916673 133.23430652916673 +59 133.23430652916673 133.76382752916672 +56 133.89620777916673 134.02642752916674 +53 134.02642752916674 134.15664727916672 +51 134.15664727916672 134.28686702916673 +47 134.28686702916673 134.42618152916674 +34 134.56549602916672 134.82807802916673 +46 134.56549602916672 134.82807802916673 +53 135.09174452916673 135.19061946666673 +55 135.09174452916673 135.19061946666673 +46 135.35541102916673 135.45428596666673 +39 135.35541102916673 135.45428596666673 +53 135.61907752916673 135.72991496666674 +55 135.61907752916673 135.72991496666674 +46 135.91464402916674 136.44096002916675 +39 135.91464402916674 136.44096002916675 +53 137.23094252916673 137.32981746666673 +55 137.23094252916673 137.32981746666673 +46 137.49460902916672 137.59348396666672 +39 137.49460902916672 137.59348396666672 +53 137.75827552916672 137.86911296666673 +55 137.75827552916672 137.86911296666673 +46 138.05384202916673 138.58015802916674 +39 138.05384202916673 138.58015802916674 +53 139.41381752916675 139.52096046666674 +55 139.41381752916675 139.52096046666674 +46 139.69953202916673 139.80667496666675 +39 139.69953202916673 139.80667496666675 +53 139.98524652916674 140.10182690416676 +55 139.98524652916674 140.10182690416676 +35 140.88905512916674 141.20088312916675 +34 141.20088312916675 141.2792972750001 +32 141.27222332500008 141.34954053541676 +31 141.34254361041675 141.41905726041676 +29 141.41215689791676 141.4890725125001 +39 141.4818810250001 141.76954052500008 +27 141.4818810250001 141.76954052500008 +39 142.63251902500008 142.95935202500007 +27 142.63251902500008 142.95935202500007 diff --git a/test/midi/debussy/claire_de_lune.mid b/test/midi/debussy/claire_de_lune.mid new file mode 100644 index 0000000000000000000000000000000000000000..e05e04d544e50b0bf59fce50e74847b367f5ac8b GIT binary patch literal 17112 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 literal 0 HcmV?d00001 diff --git a/test/midi/debussy/claire_de_lune.mid.txt b/test/midi/debussy/claire_de_lune.mid.txt new file mode 100644 index 0000000..acd60e8 --- /dev/null +++ b/test/midi/debussy/claire_de_lune.mid.txt @@ -0,0 +1,1493 @@ +track Piano right +77 1.2375 3.015278 +80 1.2375 3.015278 +73 3.015278 4.7595705 +77 3.015278 4.7595705 +75 4.7595705 5.1543075 +72 4.7595705 5.1543075 +77 5.1543075 5.585961999999999 +73 5.1543075 5.585961999999999 +72 5.585961999999999 8.5559545 +75 5.585961999999999 8.5559545 +70 8.5559545 8.9697475 +73 8.5559545 8.9697475 +72 8.9697475 9.3697475 +75 8.9697475 9.3697475 +73 9.3697475 10.041389 +77 10.041389 11.34440575 +73 11.34440575 12.411468000000001 +70 9.3697475 12.411468000000001 +68 12.411468000000001 12.8141525 +72 12.411468000000001 12.8141525 +73 12.8141525 13.230819 +70 12.8141525 13.230819 +68 13.230819 16.188564 +72 13.230819 16.188564 +70 16.188564 16.601207583333334 +72 16.601207583333334 17.001207583333333 +70 17.001207583333333 17.409371083333333 +75 17.409371083333333 17.789118083333335 +70 17.789118083333335 18.183855083333334 +66 15.766029 18.183855083333334 +68 18.183855083333334 18.573465583333334 +70 18.573465583333334 18.955631083333333 +66 18.183855083333334 19.342728083333334 +68 18.955631083333333 19.745412583333334 +66 19.745412583333334 20.132509583333334 +68 20.132509583333334 20.507509583333334 +66 20.507509583333334 21.683980583333334 +63 19.342728083333334 21.683980583333334 +63 21.683980583333334 22.860451583333333 +65 21.683980583333334 23.27424458333333 +65 23.27424458333333 23.679650083333332 +66 23.679650083333332 24.077001083333332 +65 24.077001083333332 24.485164583333333 +70 24.485164583333333 24.872261583333334 +65 24.872261583333334 25.264418583333335 +61 22.860451583333333 25.264418583333335 +63 25.264418583333335 25.649034083333333 +65 25.649034083333333 26.041191083333334 +63 26.041191083333334 26.825505083333333 +61 26.825505083333333 27.215115583333333 +63 27.215115583333333 27.604726083333333 +61 27.604726083333333 28.773557583333332 +58 26.433348083333332 28.773557583333332 +60 28.773557583333332 30.423613083333333 +56 28.773557583333332 30.423613083333333 +53 30.868057583333332 31.260214583333333 +56 30.868057583333332 31.260214583333333 +77 31.815770083333334 33.149103583333336 +80 31.815770083333334 33.149103583333336 +77 33.149103583333336 34.89339608333333 +73 33.149103583333336 34.89339608333333 +75 34.89339608333333 35.28813308333333 +77 35.28813308333333 35.71978758333333 +70 34.89339608333333 38.20869358333333 +66 34.89339608333333 38.20869358333333 +75 35.71978758333333 38.643476083333326 +61 38.643476083333326 39.057269083333324 +73 38.643476083333326 39.057269083333324 +63 39.057269083333324 39.526019083333324 +75 39.057269083333324 39.526019083333324 +68 38.643476083333326 39.526019083333324 +80 39.526019083333324 40.79362408333333 +73 39.526019083333324 40.79362408333333 +68 39.526019083333324 40.79362408333333 +65 40.79362408333333 42.06122908333332 +73 40.79362408333333 42.06122908333332 +77 40.79362408333333 42.47218808333332 +75 42.47218808333332 42.86692508333332 +77 42.86692508333332 43.29857958333332 +75 43.29857958333332 44.566184583333325 +70 42.47218808333332 45.83378958333332 +66 42.47218808333332 45.83378958333332 +73 44.566184583333325 46.26857208333332 +61 46.26857208333332 46.682365083333316 +73 46.26857208333332 46.682365083333316 +75 46.682365083333316 47.15480608333332 +63 46.682365083333316 47.15480608333332 +68 46.26857208333332 47.15480608333332 +82 47.15480608333332 47.85248083333332 +70 47.15480608333332 47.85248083333332 +68 47.85248083333332 49.14137658333332 +80 47.85248083333332 49.14137658333332 +77 47.15480608333332 49.77517908333332 +77 49.14137658333332 49.77517908333332 +65 49.14137658333332 50.18613808333332 +75 50.18613808333332 50.56588508333332 +77 50.56588508333332 50.97684408333332 +75 50.97684408333332 51.69112983333332 +73 51.69112983333332 53.063785083333315 +70 50.18613808333332 54.21413483333332 +70 53.063785083333315 54.21413483333332 +65 50.18613808333332 54.21413483333332 +75 55.900282583333315 56.282399583333316 +87 55.900282583333315 56.282399583333316 +82 54.85791458333332 56.282399583333316 +82 55.900282583333315 56.282399583333316 +75 56.282399583333316 56.63267349999998 +82 56.282399583333316 56.63267349999998 +87 56.282399583333316 56.63267349999998 +77 54.85791458333332 56.66451658333332 +89 54.85791458333332 56.66451658333332 +82 56.66451658333332 57.05930558333332 +87 56.66451658333332 57.05930558333332 +75 56.66451658333332 57.05930558333332 +85 57.05930558333332 57.44142258333332 +73 57.05930558333332 57.44142258333332 +82 57.05930558333332 57.44142258333332 +82 57.44142258333332 57.791696499999986 +85 57.44142258333332 57.791696499999986 +73 57.44142258333332 57.791696499999986 +82 57.82353958333332 58.218328583333324 +73 57.82353958333332 58.218328583333324 +85 57.82353958333332 58.218328583333324 +84 58.218328583333324 58.600445583333325 +82 58.218328583333324 58.600445583333325 +78 58.218328583333324 58.600445583333325 +72 58.218328583333324 58.600445583333325 +78 58.600445583333325 58.95071949999999 +72 58.600445583333325 58.95071949999999 +82 58.600445583333325 58.95071949999999 +84 58.600445583333325 58.95071949999999 +78 58.982562583333326 59.58505983333333 +84 58.982562583333326 59.58505983333333 +72 58.982562583333326 59.58505983333333 +82 58.982562583333326 59.58505983333333 +85 59.58505983333333 60.26306308333333 +73 59.58505983333333 60.26306308333333 +82 59.58505983333333 60.26306308333333 +78 60.26306308333333 61.65730516041666 +82 60.26306308333333 61.65730516041666 +70 60.26306308333333 61.65730516041666 +82 62.30108491041666 63.716123910416655 +82 63.34345291041666 63.716123910416655 +78 63.34345291041666 63.716123910416655 +90 63.34345291041666 63.716123910416655 +82 63.716123910416655 64.05773899375 +89 62.30108491041666 64.05773899375 +89 63.716123910416655 64.05773899375 +77 62.30108491041666 64.05773899375 +77 63.716123910416655 64.05773899375 +82 64.08879491041665 64.43689632708332 +75 64.08879491041665 64.43689632708332 +87 64.08879491041665 64.43689632708332 +82 64.46854191041665 64.83891241041665 +89 64.46854191041665 64.83891241041665 +77 64.46854191041665 64.83891241041665 +75 64.83891241041665 65.20701041041666 +87 64.83891241041665 65.20701041041666 +82 64.83891241041665 65.20701041041666 +73 65.20701041041666 65.56415336874998 +82 65.20701041041666 65.56415336874998 +85 65.20701041041666 65.56415336874998 +87 65.59662091041666 65.97873791041665 +75 65.59662091041666 65.97873791041665 +82 65.59662091041666 65.97873791041665 +85 65.97873791041665 66.32901182708332 +82 65.97873791041665 66.32901182708332 +73 65.97873791041665 66.32901182708332 +84 66.36085491041666 66.91013047291666 +72 66.36085491041666 66.91013047291666 +82 66.36085491041666 66.91013047291666 +87 66.91013047291666 66.96335216041666 +82 66.96335216041666 67.64135541041666 +73 66.96335216041666 67.64135541041666 +85 66.96335216041666 67.64135541041666 +82 67.64135541041666 69.51399316041666 +78 67.64135541041666 69.51399316041666 +70 67.64135541041666 69.51399316041666 +66 69.51399316041666 70.03176991041667 +78 69.51399316041666 70.03176991041667 +68 70.03176991041667 70.54882716041668 +80 70.03176991041667 70.54882716041668 +75 70.03176991041667 70.54882716041668 +84 70.54882716041668 71.08212891041667 +72 70.54882716041668 71.08212891041667 +78 71.08212891041667 71.62851066041667 +82 71.08212891041667 71.62851066041667 +70 71.08212891041667 71.62851066041667 +78 71.62851066041667 72.17521 +66 71.62851066041667 72.17521 +72 72.54131778958335 72.87651328958334 +75 72.54131778958335 72.87651328958334 +66 72.54131778958335 72.87651328958334 +78 72.54131778958335 72.87651328958334 +78 72.87651328958334 73.18901333125001 +75 72.87651328958334 73.18901333125001 +66 72.87651328958334 73.18901333125001 +72 72.87651328958334 73.20260028958334 +72 73.20260028958334 73.53227078958335 +75 73.20260028958334 73.53227078958335 +78 73.20260028958334 73.53227078958335 +66 73.20260028958334 73.53227078958335 +66 73.53227078958335 73.82638833125002 +72 73.53227078958335 73.82638833125002 +75 73.53227078958335 73.82638833125002 +78 73.53227078958335 73.82638833125002 +75 73.85312628958334 74.19700528958334 +80 73.85312628958334 74.19700528958334 +72 73.85312628958334 74.19700528958334 +68 73.85312628958334 74.19700528958334 +75 74.19700528958334 75.22864228958335 +66 74.19700528958334 75.22864228958335 +78 74.19700528958334 75.22864228958335 +72 74.19700528958334 75.22864228958335 +78 75.75684278958335 76.26359978958334 +66 75.75684278958335 76.26359978958334 +80 76.26359978958334 76.76710728958334 +68 76.26359978958334 76.76710728958334 +73 75.75684278958335 76.76710728958334 +73 76.76710728958334 77.28139278958334 +85 76.76710728958334 77.28139278958334 +82 77.28139278958334 77.81615178958333 +70 77.28139278958334 77.81615178958333 +66 77.81615178958333 78.35091078958334 +78 77.28139278958334 78.35091078958334 +78 77.81615178958333 78.35091078958334 +78 78.69773178958334 79.02286478958334 +70 78.69773178958334 79.02286478958334 +66 78.69773178958334 79.02286478958334 +75 78.69773178958334 79.02286478958334 +78 79.02286478958334 79.32904174791668 +66 79.02286478958334 79.32904174791668 +75 79.02286478958334 79.32904174791668 +70 79.02286478958334 79.34235378958334 +75 79.34235378958334 79.66748678958334 +70 79.34235378958334 79.66748678958334 +78 79.34235378958334 79.66748678958334 +66 79.34235378958334 79.66748678958334 +78 79.66748678958334 79.96019587291667 +66 79.66748678958334 79.96019587291667 +70 79.66748678958334 79.96019587291667 +75 79.66748678958334 79.96019587291667 +77 79.98680578958333 80.32170178958333 +72 79.98680578958333 80.32170178958333 +68 79.98680578958333 80.32170178958333 +80 79.98680578958333 80.32170178958333 +66 80.32170178958333 81.32638978958333 +70 80.32170178958333 81.32638978958333 +75 80.32170178958333 81.32638978958333 +78 80.32170178958333 81.32638978958333 +66 81.85459028958333 82.36134728958332 +78 81.85459028958333 82.36134728958332 +80 82.36134728958332 82.86196553958331 +73 81.85459028958333 82.86196553958331 +70 81.85459028958333 82.86196553958331 +68 82.36134728958332 82.86196553958331 +75 82.86196553958331 83.36758328958331 +87 82.86196553958331 83.36758328958331 +85 83.36758328958331 83.9023422895833 +73 83.36758328958331 83.9023422895833 +82 83.36758328958331 84.43710128958331 +82 83.9023422895833 84.43710128958331 +78 83.36758328958331 84.43710128958331 +70 83.9023422895833 84.43710128958331 +78 84.78392228958332 85.10905528958331 +70 84.78392228958332 85.10905528958331 +82 84.78392228958332 85.10905528958331 +78 85.10905528958331 85.41523224791665 +82 85.10905528958331 85.41523224791665 +70 85.10905528958331 85.42854428958331 +78 85.42854428958331 85.75367728958331 +70 85.42854428958331 85.75367728958331 +82 85.42854428958331 85.75367728958331 +78 85.75367728958331 86.04638637291664 +82 85.75367728958331 86.04638637291664 +70 85.75367728958331 86.04638637291664 +84 86.0729962895833 86.4078922895833 +72 86.0729962895833 86.4078922895833 +80 86.0729962895833 86.4078922895833 +82 86.4078922895833 86.7258115395833 +70 86.4078922895833 86.7258115395833 +78 86.4078922895833 86.7258115395833 +85 86.75471328958331 87.0880467895833 +73 86.75471328958331 87.0880467895833 +82 86.75471328958331 87.0880467895833 +82 87.0880467895833 87.2614572895833 +75 87.0880467895833 87.2614572895833 +87 87.0880467895833 87.2614572895833 +92 87.5418310395833 89.3353095395833 +85 87.49510208124997 89.3353095395833 +80 87.44837312291664 89.3353095395833 +92 89.6156832895833 90.4631407895833 +85 89.5736272270833 90.4631407895833 +80 89.53390761249997 90.4631407895833 +92 90.7756407895833 92.5594255395833 +85 90.7287657895833 92.5594255395833 +80 90.68449495624998 92.5594255395833 +80 93.10464170624996 94.36287620624996 +75 93.00047503958329 94.36287620624996 +68 92.90243583124996 94.36287620624996 +65 94.36287620624996 96.43539895624995 +68 94.36287620624996 96.43539895624995 +71 96.43539895624995 97.12904095624995 +73 97.12904095624995 97.52529220624996 +68 96.43539895624995 97.52529220624996 +65 97.52529220624996 99.36808674791662 +68 97.52529220624996 99.56031945624996 +71 99.56031945624996 100.21249345624996 +68 99.56031945624996 100.21249345624996 +68 100.21249345624996 100.53164245624995 +73 100.53164245624995 101.16656345624996 +65 100.53164245624995 101.16656345624996 +68 101.16656345624996 101.4817255395833 +75 101.16656345624996 101.4817255395833 +73 101.4817255395833 102.4095610395833 +77 101.4817255395833 102.4095610395833 +73 102.4095610395833 103.0478590395833 +65 102.4095610395833 103.0478590395833 +77 103.0478590395833 103.3800312895833 +73 103.0478590395833 103.3800312895833 +75 103.3800312895833 103.6912022895833 +79 103.3800312895833 103.6912022895833 +73 103.6912022895833 103.9977937895833 +77 103.6912022895833 103.9977937895833 +70 103.9977937895833 104.30451853958328 +73 103.9977937895833 104.30451853958328 +67 104.30451853958328 104.61097976041661 +65 104.61097976041661 104.91741476041662 +61 104.91741476041662 105.23020676041662 +73 104.30451853958328 105.23020676041662 +70 104.30451853958328 105.23020676041662 +61 105.23020676041662 105.69018617708328 +58 105.69018617708328 106.1664657604166 +70 106.1664657604166 107.9560055104166 +72 107.9560055104166 108.55926451041661 +68 108.56877538124995 108.73181888124995 +65 108.71279713958327 108.87584063958327 +77 108.55926451041661 108.88535151041661 +70 108.9057319479166 110.68157644791663 +72 110.68157644791663 111.26664097916662 +68 111.27615184999996 111.43919534999996 +65 111.42017360833329 111.58224852499997 +77 111.26664097916662 111.59091188541663 +70 112.75329104166663 112.89821854166662 +66 112.60836354166662 112.89821854166662 +78 111.57234754166663 112.89821854166662 +66 113.04314604166663 113.18807354166663 +70 113.18807354166663 113.33300104166662 +77 112.89821854166662 113.33300104166662 +66 113.47792854166663 113.62285604166662 +70 113.62285604166662 113.76778354166663 +74 113.33300104166662 113.76778354166663 +66 113.90862854166663 114.04947354166663 +70 114.04947354166663 114.19031854166663 +75 113.76778354166663 114.19031854166663 +82 114.19031854166663 114.88867499999996 +80 115.88595504166663 116.62156432291663 +77 116.7930713333333 118.54641774999999 +80 116.7930713333333 118.54641774999999 +83 118.54641774999999 119.11405074999999 +80 118.54641774999999 119.11405074999999 +85 119.11405074999999 119.42655074999999 +80 119.42655074999999 121.14876799999999 +77 119.42655074999999 121.14876799999999 +80 121.14876799999999 121.68448199999999 +83 121.14876799999999 121.68448199999999 +80 121.68448199999999 121.94239099999999 +73 122.33540374999998 122.46640799999999 +76 122.5868125 122.70721699999999 +80 122.46640799999999 122.70721699999999 +85 121.94239099999999 122.70721699999999 +76 123.08081599999998 123.20534899999998 +80 123.32377624999998 123.44220349999999 +85 123.20534899999998 123.44220349999999 +88 122.70721699999999 123.44220349999999 +80 123.81419675 123.9381945 +83 124.051402 124.1845105 +88 123.9381945 124.1845105 +92 123.44220349999999 124.1845105 +80 124.55650375 124.6805015 +85 124.6805015 124.80449925 +81 124.80449925 124.92849700000001 +92 124.1845105 124.92849700000001 +78 125.30049025 125.424488 +85 125.424488 125.54848575 +81 125.54848575 125.6724835 +78 126.04447675 126.1684745 +85 126.1684745 126.29247225 +81 126.29247225 126.42221858333335 +90 124.92849700000001 126.42221858333335 +78 126.79258883333334 126.91604558333334 +85 126.91604558333334 127.03950233333335 +81 127.03950233333335 127.16295908333335 +78 127.53332933333334 127.65678608333334 +85 127.65678608333334 127.78024283333335 +81 127.78024283333335 127.90369958333333 +90 126.42221858333335 127.90369958333333 +93 127.90369958333333 128.40790158333334 +85 128.53948058333333 128.67105958333335 +97 128.40790158333334 128.67105958333335 +66 129.04142983333335 129.16488658333336 +73 129.16488658333336 129.28834333333336 +69 129.28834333333336 129.41180008333333 +66 129.78217033333334 129.90562708333334 +73 129.90562708333334 130.02908383333335 +69 130.02908383333335 130.15254058333335 +78 128.67105958333335 130.15254058333335 +81 130.15254058333335 130.65674258333334 +76 130.65674258333334 130.79435733333335 +81 130.79435733333335 130.93197208333333 +85 130.65674258333334 130.93197208333333 +85 130.93197208333333 131.21234608333333 +88 130.93197208333333 131.21234608333333 +83 131.21234608333333 131.49272008333332 +87 131.21234608333333 131.49272008333332 +81 131.49272008333332 131.76794958333332 +85 131.49272008333332 131.76794958333332 +83 131.76794958333332 132.20912583333333 +80 131.76794958333332 132.20912583333333 +81 132.20912583333333 132.9066435833333 +78 132.20912583333333 132.9066435833333 +76 132.9066435833333 133.18187308333333 +80 132.9066435833333 133.18187308333333 +75 133.18187308333333 133.45710258333332 +78 133.18187308333333 133.45710258333332 +76 133.45710258333332 133.73879258333332 +73 133.45710258333332 133.73879258333332 +71 133.73879258333332 134.02048258333332 +75 133.73879258333332 134.02048258333332 +73 134.02048258333332 134.29826058333333 +69 134.02048258333332 134.29826058333333 +68 134.29826058333333 134.59676808333333 +71 134.29826058333333 134.59676808333333 +69 134.59676808333333 134.89527558333333 +66 134.59676808333333 134.89527558333333 +64 134.89527558333333 135.45341558333334 +68 134.89527558333333 135.45341558333334 +63 135.45341558333334 135.74327058333333 +66 135.45341558333334 135.74327058333333 +64 135.74327058333333 136.04630108333333 +61 135.74327058333333 136.04630108333333 +57 135.17434558333332 136.04630108333333 +54 136.04630108333333 136.72045808333334 +56 136.72045808333334 137.04654508333334 +58 137.04654508333334 137.64956008333334 +61 136.04630108333333 137.94658958333335 +61 137.64956008333334 137.94658958333335 +63 136.04630108333333 137.94658958333335 +63 137.94658958333335 138.54658958333334 +66 137.94658958333335 138.54658958333334 +70 138.54658958333334 138.86405008333335 +60 137.94658958333335 138.86405008333335 +63 138.54658958333334 138.86405008333335 +66 138.54658958333334 138.86405008333335 +54 138.86405008333335 139.51622408333336 +56 139.51622408333336 139.83537308333337 +58 139.83537308333337 140.43537308333336 +61 138.86405008333335 140.73240258333337 +61 140.43537308333336 140.73240258333337 +63 138.86405008333335 140.73240258333337 +63 140.73240258333337 141.33240258333336 +66 140.73240258333337 141.33240258333336 +63 141.33240258333336 141.63852508333335 +60 140.73240258333337 141.63852508333335 +61 141.63852508333335 141.91913737500002 +66 141.33240258333336 141.91913737500002 +70 141.33240258333336 141.91913737500002 +72 141.94464758333336 142.23733058333337 +77 141.94464758333336 142.23733058333337 +68 141.94464758333336 142.23733058333337 +66 142.23733058333337 142.53001358333336 +75 142.23733058333337 142.53001358333336 +70 142.23733058333337 142.53001358333336 +61 142.53001358333336 142.82852108333336 +58 142.82852108333336 143.12263858333336 +61 143.12263858333336 143.41390058333334 +70 142.53001358333336 143.41390058333334 +66 142.53001358333336 143.41390058333334 +58 143.41390058333334 143.70801808333334 +60 143.70801808333334 143.99928008333333 +63 143.99928008333333 144.28774158333334 +66 143.41390058333334 144.28774158333334 +68 143.41390058333334 144.28774158333334 +61 144.28774158333334 144.55473175 +70 144.28774158333334 144.55473175 +66 144.28774158333334 144.55473175 +72 144.57900358333333 144.86885858333332 +77 144.57900358333333 144.86885858333332 +68 144.57900358333333 144.86885858333332 +70 144.86885858333332 145.15871358333334 +75 144.86885858333332 145.15871358333334 +66 144.86885858333332 145.15871358333334 +61 145.15871358333334 145.46022108333335 +58 145.46022108333335 145.75433858333335 +61 145.75433858333335 146.04560058333334 +70 145.15871358333334 146.04560058333334 +66 145.15871358333334 146.04560058333334 +58 146.04560058333334 146.34560058333335 +60 146.34560058333335 146.63971808333335 +63 146.63971808333335 146.95697908333335 +66 146.04560058333334 146.95697908333335 +68 146.04560058333334 146.95697908333335 +63 147.11161833333335 147.26625758333336 +66 147.26625758333336 147.42089683333336 +70 147.42089683333336 147.57566962500002 +66 147.57566962500002 147.72566962500002 +63 147.72566962500002 147.87566962500003 +63 148.02873087500004 148.18179212500002 +66 148.18179212500002 148.33485337500002 +70 148.33485337500002 148.48791462500003 +66 148.48791462500003 148.63642937500003 +63 148.63642937500003 148.78494412500004 +75 146.95697908333335 148.78494412500004 +78 148.78494412500004 149.40994412500004 +72 149.40994412500004 149.57568987500005 +75 149.57568987500005 149.74143562500004 +82 149.40994412500004 149.74143562500004 +63 149.89850362500005 150.05557162500003 +66 150.05557162500003 150.21263962500004 +70 150.21263962500004 150.36943637500002 +66 150.36943637500002 150.52407562500002 +63 150.52407562500002 150.67871487500003 +63 150.84087712500002 151.00303937500001 +66 151.00303937500001 151.16520162500004 +70 151.16520162500004 151.32736387500003 +66 151.32736387500003 151.50077437500002 +63 151.50077437500002 151.67418487500004 +75 149.74143562500004 151.67418487500004 +78 151.67418487500004 152.34834187500005 +72 152.34834187500005 152.54834187500003 +75 152.54834187500003 152.74834187500005 +82 152.34834187500005 152.74834187500005 +75 153.22409479166672 153.3799400416667 +78 153.3799400416667 153.53511345833337 +82 153.53511345833337 153.6896205416667 +75 154.1593267916667 154.3139660416667 +78 154.3139660416667 154.4686052916667 +84 154.4686052916667 154.6232445416667 +75 155.09236462500004 155.24861604166668 +78 155.24861604166668 155.40623520833336 +82 155.40623520833336 155.56538758333338 +75 156.05384083333337 156.21426858333336 +78 156.21426858333336 156.37469633333336 +81 156.37469633333336 156.5351240833334 +87 152.74834187500005 156.5351240833334 +75 157.0323613333334 157.19810708333338 +78 157.19810708333338 157.3638528333334 +83 157.3638528333334 157.52959858333338 +85 156.5351240833334 157.52959858333338 +75 158.06534416666668 158.255636 +78 158.255636 158.45238204166668 +81 158.45238204166668 158.7226522916667 +87 157.52959858333338 158.7226522916667 +92 160.03034674999998 161.36368025 +89 160.03034674999998 161.36368025 +89 161.36368025 163.09956504166664 +87 163.09956504166664 163.48173054166665 +84 163.09956504166664 163.48173054166665 +85 163.48173054166665 163.87414737499998 +89 163.48173054166665 163.87414737499998 +84 163.87414737499998 166.79971179166665 +87 163.87414737499998 166.79971179166665 +85 166.79971179166665 167.17707029166667 +82 166.79971179166665 167.17707029166667 +87 167.17707029166667 167.56565529166667 +84 167.17707029166667 167.56565529166667 +82 167.56565529166667 168.23729679166667 +85 167.56565529166667 168.23729679166667 +85 168.23729679166667 169.54031354166668 +89 168.23729679166667 169.54031354166668 +82 169.54031354166668 170.58120995833335 +85 169.54031354166668 170.58120995833335 +80 170.58120995833335 170.94930795833335 +84 170.58120995833335 170.94930795833335 +85 170.94930795833335 171.33175562500003 +82 170.94930795833335 171.33175562500003 +80 171.33175562500003 173.86696562500003 +84 171.33175562500003 173.86696562500003 +82 174.24980083333335 174.62286000000003 +78 174.24980083333335 174.62286000000003 +80 174.62286000000003 175.00364283333337 +84 174.62286000000003 175.00364283333337 +82 175.00364283333337 175.41180633333337 +87 175.41180633333337 175.79155333333338 +82 175.79155333333338 176.16912995833343 +78 175.00364283333337 176.16912995833343 +80 176.16912995833343 176.55374545833342 +82 176.55374545833342 176.92641645833342 +80 176.92641645833342 177.68793387500014 +77 176.16912995833343 177.68793387500014 +75 177.68793387500014 178.05157037500015 +78 177.68793387500014 178.05157037500015 +77 178.05157037500015 178.42657037500015 +80 178.05157037500015 178.42657037500015 +75 178.42657037500015 179.60304137500015 +78 178.42657037500015 179.60304137500015 +69 179.60304137500015 180.77951237500017 +77 179.60304137500015 181.16729695833348 +73 181.16729695833348 181.5446554583335 +77 181.16729695833348 181.5446554583335 +78 181.5446554583335 181.92340975000016 +75 181.5446554583335 181.92340975000016 +77 181.92340975000016 182.33157325000016 +82 182.33157325000016 182.71867025000017 +77 182.71867025000017 183.10650075000018 +73 181.92340975000016 183.10650075000018 +75 183.10650075000018 183.4701372500002 +77 183.4701372500002 183.8405077500002 +73 183.10650075000018 184.2326647500002 +75 183.8405077500002 184.60653891666686 +70 184.60653891666686 184.97257945833354 +73 184.60653891666686 184.97257945833354 +72 184.97257945833354 185.35002262500024 +75 184.97257945833354 185.35002262500024 +70 185.35002262500024 186.55807612500024 +73 185.35002262500024 186.55807612500024 +68 186.55807612500024 188.31904312500023 +72 186.55807612500024 188.31904312500023 +56 188.79074112500024 189.20694512500023 +53 188.79074112500024 189.20694512500023 +77 189.82550162500024 191.27711462500025 +80 189.82550162500024 191.27711462500025 +77 191.27711462500025 193.13061112500026 +73 191.27711462500025 193.13061112500026 +75 193.13061112500026 193.54954712500026 +77 193.54954712500026 194.00770212500026 +66 193.13061112500026 196.64925712500028 +70 193.13061112500026 196.64925712500028 +75 194.00770212500026 197.11072462500027 +73 197.11072462500027 197.54989912500028 +61 197.11072462500027 197.54989912500028 +63 197.54989912500028 198.04741162500028 +75 197.54989912500028 198.04741162500028 +68 197.11072462500027 198.04741162500028 +77 198.04741162500028 199.39270312500028 +80 198.04741162500028 199.39270312500028 +68 198.04741162500028 199.39270312500028 +65 199.39270312500028 200.73799462500028 +73 199.39270312500028 200.73799462500028 +77 199.39270312500028 201.17416812500028 +75 201.17416812500028 201.59310412500028 +77 201.59310412500028 202.05125912500029 +75 202.05125912500029 203.3965506250003 +73 203.3965506250003 204.8251221250003 +70 201.17416812500028 204.8251221250003 +65 201.17416812500028 204.8251221250003 +61 205.30899312500028 205.7814341250003 +63 205.7814341250003 206.38143412500028 +56 205.30899312500028 206.38143412500028 +61 206.38143412500028 207.7767836250003 +70 206.38143412500028 207.7767836250003 +65 206.38143412500028 207.7767836250003 +65 207.7767836250003 209.17213312500027 +61 207.7767836250003 209.17213312500027 +56 207.7767836250003 209.17213312500027 +66 209.66393662500028 210.13637762500028 +68 210.13637762500028 210.73043712500026 +61 209.66393662500028 210.73043712500026 +58 209.66393662500028 210.73043712500026 +73 210.73043712500026 212.14776012500027 +70 210.73043712500026 212.14776012500027 +66 210.73043712500026 212.14776012500027 +66 212.14776012500027 213.56508312500026 +61 212.14776012500027 213.56508312500026 +70 212.14776012500027 213.56508312500026 +70 214.05688662500026 214.52932762500026 +72 214.52932762500026 215.12338712500025 +66 214.05688662500026 215.12338712500025 +60 214.05688662500026 215.12338712500025 +68 215.12338712500025 216.68860412500024 +77 215.12338712500025 216.68860412500024 +72 215.12338712500025 216.68860412500024 +66 216.68860412500024 218.32496762500023 +68 216.68860412500024 218.32496762500023 +60 216.68860412500024 218.32496762500023 +56 219.30196220833355 219.51936104166688 +61 219.51936104166688 219.7318879166669 +56 220.3820087500002 220.5860967500002 +60 220.5860967500002 220.78610266666686 +65 220.78610266666686 220.98197729166688 +56 221.8177926666669 222.01581466666687 +61 222.01581466666687 222.21104708333354 +56 222.8493237500002 223.04932966666686 +60 223.04932966666686 223.2502426250002 +65 223.2502426250002 223.4864631250002 +71 223.4864631250002 224.82215320833353 +68 223.4864631250002 224.82215320833353 +64 224.82215320833353 226.21750270833354 +73 224.82215320833353 226.21750270833354 +68 227.14925933333353 227.36153645833355 +73 227.36153645833355 227.56844941666685 +68 228.21857025000017 228.42265825000015 +72 228.42265825000015 228.62266416666682 +77 228.62266416666682 228.81853879166684 +68 229.65435416666685 229.85237616666683 +73 229.85237616666683 230.0476085833335 +68 230.68588525000015 230.88589116666682 +72 230.88589116666682 231.08680412500016 +77 231.08680412500016 231.32302462500016 +83 231.32302462500016 232.6587147083335 +85 232.6587147083335 234.0540642083335 +80 231.32302462500016 234.0540642083335 +83 234.0540642083335 235.38975429166683 +85 235.38975429166683 236.78510379166684 +88 236.78510379166684 238.21367529166685 +80 234.0540642083335 238.21367529166685 +92 238.21367529166685 244.04012660000024 +89 238.21367529166685 244.04012660000024 +89 243.88387660000024 244.04012660000024 +92 244.04012660000024 247.67648960000022 +80 243.57137660000024 247.67648960000022 +85 243.72762660000024 247.67648960000022 +track Piano left +68 0.3 4.3486115 +65 0.3 4.3486115 +66 4.3486115 8.121172 +69 4.3486115 8.121172 +68 8.121172 11.9918875 +65 8.121172 11.9918875 +66 11.9918875 15.75898675 +63 11.9918875 15.766029 +61 15.766029 18.183855083333334 +63 15.766029 18.183855083333334 +63 18.183855083333334 19.339502275 +60 18.183855083333334 19.342728083333334 +61 19.342728083333334 21.683980583333334 +58 19.342728083333334 21.683980583333334 +60 21.683980583333334 22.860451583333333 +57 21.683980583333334 22.860451583333333 +56 22.860451583333333 25.264418583333335 +58 22.860451583333333 26.430080108333332 +54 25.264418583333335 26.433348083333332 +56 26.433348083333332 27.601479329166665 +53 26.433348083333332 28.773557583333332 +51 28.773557583333332 29.48784333333333 +54 28.773557583333332 30.423613083333333 +37 30.423613083333333 30.868057583333332 +44 29.48784333333333 30.868057583333332 +68 31.260214583333333 34.48243708333333 +65 31.260214583333333 34.48243708333333 +49 34.48243708333333 36.97581658333333 +49 34.89339608333333 36.97581658333333 +42 34.48243708333333 36.97581658333333 +54 34.89339608333333 38.20869358333333 +58 34.89339608333333 38.20869358333333 +61 34.89339608333333 38.20869358333333 +56 38.643476083333326 39.526019083333324 +53 38.643476083333326 39.526019083333324 +65 39.526019083333324 40.79010295833332 +41 38.20869358333333 40.79362408333333 +49 38.20869358333333 40.79362408333333 +61 39.526019083333324 40.79362408333333 +61 40.79362408333333 42.06122908333332 +56 40.79362408333333 42.06122908333332 +49 42.06122908333332 44.566184583333325 +49 42.47218808333332 44.566184583333325 +42 42.06122908333332 44.566184583333325 +54 42.47218808333332 45.83378958333332 +58 42.47218808333332 45.83378958333332 +61 42.47218808333332 45.83378958333332 +59 46.26857208333332 47.15480608333332 +53 46.26857208333332 47.15480608333332 +59 47.15480608333332 48.93010908333332 +61 47.15480608333332 48.93010908333332 +65 47.15480608333332 48.93010908333332 +44 45.83378958333332 49.77517908333332 +63 50.18613808333332 51.69112983333332 +46 49.77517908333332 52.381966833333315 +58 50.18613808333332 54.21413483333332 +53 50.18613808333332 54.21413483333332 +61 51.69112983333332 54.21413483333332 +70 54.85791458333332 56.282399583333316 +70 55.900282583333315 56.282399583333316 +66 54.85791458333332 56.282399583333316 +66 55.900282583333315 56.282399583333316 +63 55.900282583333315 56.282399583333316 +70 56.282399583333316 56.63267349999998 +66 56.282399583333316 56.63267349999998 +63 56.282399583333316 56.63267349999998 +65 54.85791458333332 56.66451658333332 +27 54.21413483333332 56.66451658333332 +39 54.21413483333332 56.66451658333332 +70 56.66451658333332 57.05930558333332 +66 56.66451658333332 57.05930558333332 +63 56.66451658333332 57.05930558333332 +70 57.05930558333332 57.44142258333332 +66 57.05930558333332 57.44142258333332 +61 57.05930558333332 57.44142258333332 +70 57.44142258333332 57.791696499999986 +66 57.44142258333332 57.791696499999986 +61 57.44142258333332 57.791696499999986 +70 57.82353958333332 58.218328583333324 +66 57.82353958333332 58.218328583333324 +61 57.82353958333332 58.218328583333324 +70 58.218328583333324 58.600445583333325 +66 58.218328583333324 58.600445583333325 +60 58.218328583333324 58.600445583333325 +70 58.600445583333325 58.95071949999999 +66 58.600445583333325 58.95071949999999 +60 58.600445583333325 58.95071949999999 +70 58.982562583333326 59.58505983333333 +66 58.982562583333326 59.58505983333333 +60 58.982562583333326 59.58505983333333 +70 59.58505983333333 60.26306308333333 +66 59.58505983333333 60.26306308333333 +61 59.58505983333333 60.26306308333333 +66 60.26306308333333 61.65730516041666 +61 60.26306308333333 61.65730516041666 +58 60.26306308333333 61.65730516041666 +70 62.30108491041666 63.716123910416655 +70 63.34345291041666 63.716123910416655 +75 63.34345291041666 63.716123910416655 +66 62.30108491041666 63.716123910416655 +66 63.34345291041666 63.716123910416655 +66 63.716123910416655 64.05773899375 +70 63.716123910416655 64.05773899375 +65 62.30108491041666 64.05773899375 +65 63.716123910416655 64.05773899375 +27 61.65730516041666 64.08879491041665 +39 61.65730516041666 64.08879491041665 +46 61.65730516041666 64.08879491041665 +70 64.08879491041665 64.43689632708332 +66 64.08879491041665 64.43689632708332 +63 64.08879491041665 64.43689632708332 +70 64.46854191041665 64.83891241041665 +66 64.46854191041665 64.83891241041665 +65 64.46854191041665 64.83891241041665 +70 64.83891241041665 65.20701041041666 +66 64.83891241041665 65.20701041041666 +63 64.83891241041665 65.20701041041666 +70 65.20701041041666 65.56415336874998 +66 65.20701041041666 65.56415336874998 +61 65.20701041041666 65.56415336874998 +70 65.59662091041666 65.97873791041665 +66 65.59662091041666 65.97873791041665 +63 65.59662091041666 65.97873791041665 +70 65.97873791041665 66.32901182708332 +66 65.97873791041665 66.32901182708332 +61 65.97873791041665 66.32901182708332 +70 66.36085491041666 66.96335216041666 +66 66.36085491041666 66.96335216041666 +60 66.36085491041666 66.96335216041666 +70 66.96335216041666 67.64135541041666 +66 66.96335216041666 67.64135541041666 +61 66.96335216041666 67.64135541041666 +66 67.64135541041666 68.96361491041667 +63 67.64135541041666 68.96361491041667 +58 67.64135541041666 68.96361491041667 +54 69.51399316041666 70.03176991041667 +56 70.03176991041667 70.54882716041668 +60 70.03176991041667 71.08212891041667 +60 70.54882716041668 71.08212891041667 +32 68.96361491041667 71.08212891041667 +44 68.96361491041667 71.08212891041667 +63 70.03176991041667 71.08212891041667 +58 71.08212891041667 71.62851066041667 +54 71.62851066041667 72.17521 +63 71.08212891041667 72.17521 +66 71.08212891041667 72.17521 +54 72.54131778958335 72.87651328958334 +63 72.54131778958335 72.87651328958334 +60 72.54131778958335 72.87651328958334 +54 72.87651328958334 73.18901333125001 +63 72.87651328958334 73.18901333125001 +60 72.87651328958334 73.18901333125001 +54 73.20260028958334 73.53227078958335 +63 73.20260028958334 73.53227078958335 +60 73.20260028958334 73.53227078958335 +54 73.53227078958335 73.82638833125002 +63 73.53227078958335 73.82638833125002 +60 73.53227078958335 73.82638833125002 +63 73.85312628958334 74.19700528958334 +56 73.85312628958334 74.19700528958334 +33 72.17521 74.19700528958334 +45 72.17521 74.19700528958334 +60 73.85312628958334 74.19700528958334 +63 74.19700528958334 75.22864228958335 +60 74.19700528958334 75.22864228958335 +54 74.19700528958334 75.22864228958335 +54 75.75684278958335 76.26359978958334 +56 76.26359978958334 76.76710728958334 +58 75.75684278958335 76.76710728958334 +61 75.75684278958335 76.76710728958334 +61 76.76710728958334 77.28139278958334 +46 75.22864228958335 77.28139278958334 +34 75.22864228958335 77.28139278958334 +58 77.28139278958334 77.81615178958333 +54 77.81615178958333 78.35091078958334 +61 77.28139278958334 78.35091078958334 +66 77.28139278958334 78.35091078958334 +54 78.69773178958334 79.02286478958334 +63 78.69773178958334 79.02286478958334 +58 78.69773178958334 79.02286478958334 +54 79.02286478958334 79.32904174791668 +63 79.02286478958334 79.32904174791668 +58 79.02286478958334 79.32904174791668 +54 79.34235378958334 79.66748678958334 +63 79.34235378958334 79.66748678958334 +58 79.34235378958334 79.66748678958334 +54 79.66748678958334 79.96019587291667 +63 79.66748678958334 79.96019587291667 +58 79.66748678958334 79.96019587291667 +65 79.98680578958333 80.32170178958333 +56 79.98680578958333 80.32170178958333 +36 78.35091078958334 80.32170178958333 +48 78.35091078958334 80.32170178958333 +60 79.98680578958333 80.32170178958333 +63 80.32170178958333 81.32638978958333 +58 80.32170178958333 81.32638978958333 +54 80.32170178958333 81.32638978958333 +54 81.85459028958333 82.36134728958332 +56 82.36134728958332 82.86196553958331 +58 81.85459028958333 82.86196553958331 +61 81.85459028958333 82.86196553958331 +63 82.86196553958331 83.36758328958331 +49 81.32638978958333 83.36758328958331 +37 81.32638978958333 83.36758328958331 +61 83.36758328958331 83.9023422895833 +58 83.9023422895833 84.43710128958331 +66 83.36758328958331 84.43710128958331 +70 83.36758328958331 84.43710128958331 +54 84.78392228958332 85.10905528958331 +63 84.78392228958332 85.10905528958331 +58 84.78392228958332 85.10905528958331 +54 85.10905528958331 85.41523224791665 +63 85.10905528958331 85.41523224791665 +58 85.10905528958331 85.41523224791665 +54 85.42854428958331 85.75367728958331 +63 85.42854428958331 85.75367728958331 +58 85.42854428958331 85.75367728958331 +54 85.75367728958331 86.04638637291664 +63 85.75367728958331 86.04638637291664 +58 85.75367728958331 86.04638637291664 +65 86.0729962895833 86.4078922895833 +56 86.0729962895833 86.4078922895833 +39 84.43710128958331 86.4078922895833 +51 84.43710128958331 86.4078922895833 +60 86.0729962895833 86.4078922895833 +54 86.4078922895833 86.7258115395833 +58 86.4078922895833 86.7258115395833 +63 86.4078922895833 86.7258115395833 +70 86.75471328958331 87.0880467895833 +66 86.75471328958331 87.0880467895833 +61 86.75471328958331 87.0880467895833 +70 87.0880467895833 87.2614572895833 +66 87.0880467895833 87.2614572895833 +63 87.0880467895833 87.2614572895833 +77 87.4016441645833 89.3353095395833 +65 87.2614572895833 89.3353095395833 +68 87.30818624791664 89.3353095395833 +73 87.35491520624997 89.3353095395833 +76 89.49418799791664 90.4631407895833 +70 89.41474876874997 90.4631407895833 +64 89.3353095395833 90.4631407895833 +68 89.37502915416664 90.4631407895833 +73 89.4544683833333 90.4631407895833 +75 90.64022412291663 92.5594255395833 +68 90.55168245624998 92.5594255395833 +63 90.4631407895833 92.5594255395833 +66 90.50741162291663 92.5594255395833 +73 90.5959532895833 92.5594255395833 +72 92.80984324791663 94.36287620624996 +56 92.5594255395833 94.36287620624996 +63 92.63879062291663 94.36287620624996 +66 92.72212395624996 94.36287620624996 +44 94.53430470624997 94.70573320624996 +49 94.70573320624996 94.87716170624996 +37 94.36287620624996 94.87716170624996 +53 94.87716170624996 95.04859020624997 +56 95.04859020624997 95.22001870624996 +61 95.22001870624996 95.40074170624996 +48 95.57217020624996 95.74359870624995 +53 95.74359870624995 95.91502720624996 +41 95.40074170624996 95.91502720624996 +56 95.91502720624996 96.08645570624996 +60 96.08645570624996 96.25788420624995 +65 96.25788420624995 96.43539895624995 +52 96.60880945624996 96.78221995624996 +56 96.78221995624996 96.95563045624995 +44 96.43539895624995 96.95563045624995 +59 96.95563045624995 97.12904095624995 +64 97.12904095624995 97.32258945624996 +68 97.32258945624996 97.5219138270833 +44 97.69672070624996 97.86814920624995 +49 97.86814920624995 98.03957770624996 +37 97.52529220624996 98.03957770624996 +53 98.03957770624996 98.21100620624996 +56 98.21100620624996 98.38243470624995 +61 98.38243470624995 98.56207545624996 +48 98.72600995624995 98.88994445624996 +53 98.88994445624996 99.05387895624996 +41 98.56207545624996 99.05387895624996 +56 99.05387895624996 99.21781345624996 +60 99.21781345624996 99.38174795624995 +65 99.38174795624995 99.56031945624996 +52 99.72336295624996 99.88640645624996 +56 99.88640645624996 100.04944995624996 +44 99.56031945624996 100.04944995624996 +59 100.04944995624996 100.21249345624996 +64 100.37206795624996 100.53164245624995 +37 100.53164245624995 100.69037270624996 +44 100.69037270624996 100.84910295624995 +49 100.84910295624995 101.00783320624996 +53 101.00783320624996 101.16656345624996 +56 101.16656345624996 101.32278895624997 +61 101.32278895624997 101.4817255395833 +65 101.4817255395833 101.6363647895833 +68 101.6363647895833 101.7910040395833 +65 101.7910040395833 101.94564328958329 +61 101.94564328958329 102.10028253958329 +56 102.10028253958329 102.25492178958329 +53 102.25492178958329 102.4095610395833 +56 102.4095610395833 102.5691355395833 +53 102.5691355395833 102.72871003958329 +49 102.72871003958329 102.8882845395833 +44 102.8882845395833 103.0478590395833 +49 103.0478590395833 103.2089935395833 +44 103.2089935395833 103.3800312895833 +39 103.3800312895833 103.5356167895833 +46 103.5356167895833 103.6912022895833 +51 103.6912022895833 103.8444980395833 +55 103.8444980395833 103.9977937895833 +58 103.9977937895833 104.14670678958329 +63 104.14670678958329 104.30451853958328 +63 104.45776226041662 104.61097976041661 +58 104.61097976041661 104.76419726041661 +55 104.76419726041661 104.91741476041662 +51 104.91741476041662 105.07063226041662 +46 105.07063226041662 105.23020676041662 +39 105.23020676041662 105.38262051041661 +46 105.38262051041661 105.53594342708328 +51 105.53594342708328 105.69018617708328 +55 105.69018617708328 105.84535959374995 +51 105.84535959374995 106.00147467708327 +46 106.00147467708327 106.1664657604166 +51 106.3142490104166 106.4620322604166 +54 106.4620322604166 106.6098155104166 +58 106.6098155104166 106.7575987604166 +60 106.7575987604166 106.9053820104166 +66 106.9053820104166 107.0600212604166 +44 106.1664657604166 107.0600212604166 +49 107.20780451041661 107.35558776041661 +54 107.35558776041661 107.5033710104166 +58 107.5033710104166 107.6511542604166 +61 107.6511542604166 107.79893751041661 +66 107.79893751041661 107.9560055104166 +42 107.0600212604166 107.9560055104166 +48 108.1037887604166 108.25157201041661 +53 108.25157201041661 108.40541826041661 +56 108.40541826041661 108.55926451041661 +60 108.55926451041661 108.88535151041661 +41 107.9560055104166 108.88535151041661 +51 109.05351519791661 109.20129844791661 +54 109.20129844791661 109.3490816979166 +58 109.3490816979166 109.4968649479166 +60 109.4968649479166 109.64464819791661 +66 109.64464819791661 109.79928744791661 +44 108.9057319479166 109.79928744791661 +49 109.94680166666662 110.09243266666662 +54 110.09243266666662 110.23806366666662 +58 110.23806366666662 110.38369466666661 +61 110.38369466666661 110.53006119791662 +66 110.53006119791662 110.68157644791663 +42 109.79928744791661 110.68157644791663 +48 110.82935969791663 110.97678597916662 +53 110.97678597916662 111.12171347916662 +56 111.12171347916662 111.26664097916662 +60 111.26664097916662 111.59091188541663 +41 110.68157644791663 111.59091188541663 +46 111.72086229166663 111.86937704166662 +51 111.86937704166662 112.01789179166663 +54 112.01789179166663 112.16640654166663 +58 112.16640654166663 112.31492129166664 +63 112.31492129166664 112.46343604166663 +39 111.57234754166663 112.46343604166663 +66 112.46343604166663 112.60594808333329 +65 112.89821854166662 113.33300104166662 +62 113.33300104166662 113.76778354166663 +63 113.76778354166663 114.19031854166663 +66 114.33116354166663 114.47200854166663 +70 114.47200854166663 114.61285354166664 +62 114.19031854166663 114.61285354166664 +70 114.61285354166664 114.75369854166664 +78 114.75369854166664 114.89454354166664 +66 115.17623354166663 115.31707854166663 +70 115.31707854166663 115.45792354166663 +63 115.03538854166663 115.45792354166663 +70 115.45792354166663 115.59876854166663 +78 115.59876854166663 115.73961354166663 +82 114.89454354166664 115.73961354166663 +82 115.73961354166663 115.88595504166663 +60 115.88595504166663 116.02995691666663 +64 116.02995691666663 116.17582591666664 +68 116.17582591666664 116.32361149999997 +56 115.88595504166663 116.32361149999997 +72 116.32361149999997 116.47336399999998 +76 116.47336399999998 116.6281780833333 +80 116.6281780833333 116.79024647499996 +56 116.95045174999996 117.10057862499997 +61 117.10057862499997 117.24921779166664 +65 117.24921779166664 117.39615820833332 +68 117.39615820833332 117.54167312499999 +73 117.54167312499999 117.68578999999998 +49 116.7930713333333 117.68578999999998 +56 117.68578999999998 117.82864724999999 +60 117.82864724999999 117.97150449999998 +65 117.97150449999998 118.11436174999999 +68 118.11436174999999 118.25721899999998 +72 118.25721899999998 118.40007624999998 +77 118.40007624999998 118.54641774999999 +53 117.68578999999998 118.54641774999999 +59 118.54641774999999 118.68530675 +64 118.68530675 118.82419574999999 +68 118.82419574999999 118.96912324999998 +71 118.96912324999998 119.11405074999999 +76 119.11405074999999 119.27030074999999 +80 119.27030074999999 119.42394658333332 +56 118.54641774999999 119.42655074999999 +56 119.57009149999999 119.71363224999999 +61 119.71363224999999 119.85717299999999 +65 119.85717299999999 120.00071374999999 +68 120.00071374999999 120.14425449999999 +73 120.14425449999999 120.28814024999998 +49 119.42655074999999 120.28814024999998 +56 120.28814024999998 120.43099749999999 +60 120.43099749999999 120.57385474999998 +65 120.57385474999998 120.71671199999999 +68 120.71671199999999 120.85956924999998 +72 120.85956924999998 121.00242649999998 +77 121.00242649999998 121.14876799999999 +53 120.28814024999998 121.14876799999999 +59 121.14876799999999 121.28269649999999 +64 121.28269649999999 121.416625 +68 121.416625 121.55055349999999 +71 121.55055349999999 121.68448199999999 +80 121.68448199999999 121.8134365 +76 121.8134365 121.94239099999999 +56 121.14876799999999 121.94239099999999 +61 121.94239099999999 122.07339524999999 +64 122.07339524999999 122.20439949999998 +68 122.20439949999998 122.33540374999998 +59 121.94239099999999 122.33540374999998 +71 122.33540374999998 122.70721699999999 +64 122.70721699999999 122.83174999999999 +68 122.83174999999999 122.95628299999998 +71 122.95628299999998 123.08081599999998 +61 122.70721699999999 123.08081599999998 +73 123.08081599999998 123.44220349999999 +68 123.44220349999999 123.56620124999999 +71 123.56620124999999 123.69019899999999 +73 123.69019899999999 123.81419675 +64 123.44220349999999 123.81419675 +76 123.81419675 124.1845105 +69 124.30850825 124.432506 +73 124.432506 124.55650375 +68 124.1845105 124.55650375 +69 125.05249475000001 125.1764925 +73 125.1764925 125.30049025 +66 124.92849700000001 125.30049025 +66 125.6724835 125.79648125 +69 125.79648125 125.920479 +73 125.920479 126.04447675 +65 125.6724835 126.04447675 +66 126.54567533333334 126.66913208333334 +69 126.66913208333334 126.79258883333334 +64 126.42221858333335 126.79258883333334 +66 127.16295908333335 127.28641583333334 +69 127.28641583333334 127.40987258333334 +73 127.40987258333334 127.53332933333334 +63 127.16295908333335 127.53332933333334 +64 127.90369958333333 128.02975008333334 +69 128.02975008333334 128.15580058333333 +73 128.15580058333333 128.28185108333332 +61 127.90369958333333 128.28185108333332 +76 128.28185108333332 128.40790158333334 +63 128.79451633333335 128.91797308333335 +66 128.91797308333335 129.04142983333335 +59 128.67105958333335 129.04142983333335 +61 129.53525683333334 129.65871358333334 +64 129.65871358333334 129.78217033333334 +57 129.41180008333333 129.78217033333334 +61 130.27859108333334 130.40464158333336 +64 130.40464158333336 130.53069208333335 +56 130.15254058333335 130.53069208333335 +69 130.53069208333335 130.65674258333334 +61 131.07215908333333 131.21234608333333 +64 131.21234608333333 131.35253308333333 +66 131.35253308333333 131.49272008333332 +69 131.49272008333332 131.63033483333334 +73 131.63033483333334 131.76794958333332 +76 131.76794958333332 131.91500833333333 +78 131.91500833333333 132.06206708333332 +76 132.06206708333332 132.20912583333333 +73 132.20912583333333 132.35618458333332 +69 132.35618458333332 132.49379933333333 +66 132.49379933333333 132.6314140833333 +64 132.6314140833333 132.76902883333332 +66 132.76902883333332 132.9066435833333 +64 132.9066435833333 133.04425833333332 +61 133.04425833333332 133.18187308333333 +57 133.18187308333333 133.3194878333333 +54 130.93197208333333 133.45710258333332 +54 133.3194878333333 133.45710258333332 +42 133.45710258333332 133.59794758333334 +49 133.59794758333334 133.73879258333332 +52 133.73879258333332 133.87963758333333 +54 133.87963758333333 134.02048258333332 +57 134.02048258333332 134.15937158333332 +61 134.15937158333332 134.29826058333333 +64 134.29826058333333 134.44751433333334 +61 134.44751433333334 134.59676808333333 +57 134.59676808333333 134.74602183333334 +54 134.74602183333334 134.89527558333333 +52 134.89527558333333 135.03481058333332 +49 135.03481058333332 135.17434558333332 +42 135.17434558333332 135.31388058333334 +49 135.31388058333334 135.45341558333334 +42 135.45341558333334 135.59834308333333 +49 135.59834308333333 135.74327058333333 +42 135.74327058333333 135.89478583333332 +49 135.89478583333332 136.04630108333333 +44 136.04630108333333 136.21484033333334 +51 136.21484033333334 136.38337958333332 +44 136.38337958333332 136.55191883333333 +51 136.55191883333333 136.72045808333334 +44 136.72045808333334 136.88350158333333 +51 136.88350158333333 137.04654508333334 +44 137.04654508333334 137.19729883333335 +51 137.19729883333335 137.34805258333336 +44 137.34805258333336 137.49880633333333 +51 137.49880633333333 137.64956008333334 +44 137.64956008333334 137.79807483333335 +51 137.79807483333335 137.94658958333335 +44 137.94658958333335 138.09658958333335 +51 138.09658958333335 138.24658958333336 +44 138.24658958333336 138.39658958333334 +51 138.39658958333334 138.54658958333334 +44 138.54658958333334 138.70531983333333 +51 138.70531983333333 138.86405008333335 +44 138.86405008333335 139.02709358333334 +51 139.02709358333334 139.19013708333335 +44 139.19013708333335 139.35318058333334 +51 139.35318058333334 139.51622408333336 +44 139.51622408333336 139.67579858333335 +51 139.67579858333335 139.83537308333337 +44 139.83537308333337 139.98537308333337 +51 139.98537308333337 140.13537308333338 +44 140.13537308333338 140.28537308333335 +51 140.28537308333335 140.43537308333336 +44 140.43537308333336 140.58388783333336 +51 140.58388783333336 140.73240258333337 +44 140.73240258333337 140.88240258333337 +51 140.88240258333337 141.03240258333338 +44 141.03240258333338 141.18240258333336 +51 141.18240258333336 141.33240258333336 +44 141.33240258333336 141.48546383333337 +51 141.48546383333337 141.63852508333335 +44 141.63852508333335 141.79158633333336 +39 141.79158633333336 141.94464758333336 +44 141.94464758333336 142.09098908333337 +51 142.09098908333337 142.23733058333337 +44 142.23733058333337 142.38367208333335 +51 142.38367208333335 142.53001358333336 +56 142.53001358333336 142.67926733333337 +51 142.67926733333337 142.82852108333336 +56 142.82852108333336 142.97557983333337 +63 142.97557983333337 143.12263858333336 +56 143.12263858333336 143.26826958333336 +51 143.26826958333336 143.41390058333334 +56 143.41390058333334 143.56095933333336 +51 143.56095933333336 143.70801808333334 +44 143.70801808333334 143.85364908333335 +51 143.85364908333335 143.99928008333333 +44 143.99928008333333 144.14351083333332 +39 144.14351083333332 144.28774158333334 +44 144.28774158333334 144.43337258333335 +39 144.43337258333335 144.57900358333333 +44 144.57900358333333 144.72393108333333 +51 144.72393108333333 144.86885858333332 +44 144.86885858333332 145.01378608333334 +51 145.01378608333334 145.15871358333334 +56 145.15871358333334 145.30946733333334 +51 145.30946733333334 145.46022108333335 +56 145.46022108333335 145.60727983333337 +63 145.60727983333337 145.75433858333335 +56 145.75433858333335 145.89996958333336 +51 145.89996958333336 146.04560058333334 +56 146.04560058333334 146.19560058333334 +51 146.19560058333334 146.34560058333335 +56 146.34560058333335 146.49265933333336 +51 146.49265933333336 146.63971808333335 +56 146.63971808333335 146.79123333333334 +51 146.79123333333334 146.95697908333335 +54 146.95697908333335 147.57566962500002 +56 147.57566962500002 147.87566962500003 +58 147.87566962500003 148.48791462500003 +61 146.95697908333335 148.78494412500004 +61 148.48791462500003 148.78494412500004 +63 148.94119412500004 149.09744412500004 +66 149.09744412500004 149.25369412500004 +70 149.25369412500004 149.40994412500004 +60 148.78494412500004 149.74143562500004 +54 149.74143562500004 150.36943637500002 +56 150.36943637500002 150.67871487500003 +58 150.67871487500003 151.32736387500003 +61 149.74143562500004 151.67418487500004 +61 151.32736387500003 151.67418487500004 +63 151.84272412500005 152.01126337500003 +66 152.01126337500003 152.17980262500004 +70 152.17980262500004 152.34834187500005 +60 151.67418487500004 152.74834187500005 +70 152.91050412500005 153.06757212500005 +73 153.06757212500005 153.22409479166672 +66 152.74834187500005 153.8500482916667 +66 153.6896205416667 153.8500482916667 +70 153.8500482916667 154.0046875416667 +73 154.0046875416667 154.1593267916667 +66 154.6232445416667 154.7828190416667 +70 154.7828190416667 154.9374582916667 +73 154.9374582916667 155.09236462500004 +69 155.73298533333337 155.89341308333337 +73 155.89341308333337 156.05384083333337 +66 155.56538758333338 156.7008698333334 +66 156.5351240833334 156.7008698333334 +69 156.7008698333334 156.86661558333338 +73 156.86661558333338 157.0323613333334 +66 157.52959858333338 157.70268829166668 +69 157.70268829166668 157.88109416666668 +73 157.88109416666668 158.06534416666668 +68 158.96992562500003 159.18788691666668 +72 159.18788691666668 159.38788691666667 +77 159.38788691666667 159.57896966666667 +80 159.57896966666667 159.763151 +84 159.763151 160.03034674999998 +65 158.7226522916667 161.36368025 +65 161.36368025 162.69701374999997 +69 162.90087499999996 163.09956504166664 +72 163.09956504166664 163.29064779166663 +75 163.29064779166663 163.48173054166665 +77 163.48173054166665 163.67611962499998 +81 163.67611962499998 163.87414737499998 +65 162.69701374999997 165.14175237499998 +65 165.14175237499998 166.40935737499998 +68 166.60739087499996 166.79971179166665 +70 166.79971179166665 166.98839104166666 +73 166.98839104166666 167.17707029166667 +77 167.17707029166667 167.36999841666668 +80 167.36999841666668 167.56565529166667 +65 166.40935737499998 168.89283179166668 +65 168.89283179166668 170.18779529166667 +66 170.3882605833333 170.58120995833335 +68 170.58120995833335 170.76525895833333 +72 170.76525895833333 170.94930795833335 +75 170.94930795833335 171.13819375000003 +78 171.13819375000003 171.33175562500003 +63 170.18779529166667 172.59936062500003 +63 172.59936062500003 173.86696562500003 +63 174.06051945833335 174.24980083333335 +66 174.24980083333335 174.43613633333337 +70 174.43613633333337 174.62286000000003 +73 174.62286000000003 174.8117407916667 +75 174.8117407916667 175.00364283333337 +61 173.86696562500003 176.16912995833343 +72 176.16912995833343 177.31351345833343 +68 176.07875975000007 177.31351345833343 +60 175.79155333333338 177.31351345833343 +63 175.89002820833338 177.31351345833343 +65 175.98577900000006 177.31351345833343 +54 177.50461683333347 177.68793387500014 +58 177.68793387500014 177.86975212500013 +60 177.86975212500013 178.05157037500015 +63 178.05157037500015 178.23907037500015 +66 178.23907037500015 178.42657037500015 +70 178.42657037500015 179.60304137500015 +48 177.31351345833343 179.60304137500015 +53 179.60304137500015 180.77951237500017 +60 179.60304137500015 180.77951237500017 +63 179.60304137500015 180.77951237500017 +58 180.97559645833348 181.16729695833348 +61 181.16729695833348 181.3559762083335 +65 181.3559762083335 181.5446554583335 +68 181.5446554583335 181.73333470833347 +70 181.73333470833347 181.92340975000016 +56 180.77951237500017 183.10650075000018 +63 183.10650075000018 184.2326647500002 +61 183.0115615000002 184.2326647500002 +58 182.91540500000016 184.2326647500002 +54 182.81779016666684 184.2326647500002 +56 184.4213490000002 184.60653891666686 +58 184.60653891666686 184.78946566666687 +61 184.78946566666687 184.97257945833354 +65 184.97257945833354 185.15892687500022 +68 185.15892687500022 185.35002262500024 +53 184.2326647500002 186.55807612500024 +51 186.55807612500024 187.30187812500023 +60 186.55807612500024 188.31904312500023 +54 186.55807612500024 188.31904312500023 +37 188.31904312500023 191.27711462500025 +44 187.30187812500023 191.27711462500025 +68 189.20694512500023 192.69443762500026 +65 189.20694512500023 192.69443762500026 +59 189.82550162500024 192.69443762500026 +49 192.69443762500026 195.34073662500026 +49 193.13061112500026 195.34073662500026 +42 192.69443762500026 195.34073662500026 +54 193.13061112500026 196.64925712500028 +58 193.13061112500026 196.64925712500028 +61 193.13061112500026 196.64925712500028 +56 197.11072462500027 198.04741162500028 +53 197.11072462500027 198.04741162500028 +65 198.04741162500028 199.38896620416693 +61 198.04741162500028 199.39270312500028 +44 196.64925712500028 199.39270312500028 +61 199.39270312500028 200.73799462500028 +59 198.04741162500028 200.73799462500028 +63 201.17416812500028 203.3965506250003 +46 200.73799462500028 203.3965506250003 +61 203.3965506250003 204.8251221250003 +58 201.17416812500028 204.8251221250003 +53 201.17416812500028 204.8251221250003 +41 204.8251221250003 209.17213312500027 +51 210.73043712500026 212.14776012500027 +39 209.17213312500027 212.14776012500027 +63 212.14776012500027 213.56508312500026 +51 214.29310712500026 215.12338712500025 +80 215.12338712500025 216.68860412500024 +44 213.56508312500026 216.68860412500024 +56 216.68860412500024 218.32496762500023 +44 218.61622987500022 218.85245037500022 +49 218.85245037500022 219.07973187500022 +53 219.07973187500022 219.30196220833355 +37 218.32496762500023 219.7318879166669 +48 219.9608956666669 220.17366875000022 +53 220.17366875000022 220.3820087500002 +41 219.7318879166669 220.98197729166688 +44 221.20754129166687 221.4137292916669 +49 221.4137292916669 221.6171215416669 +53 221.6171215416669 221.8177926666669 +37 220.98197729166688 222.21104708333354 +48 222.43831983333354 222.64569854166686 +53 222.64569854166686 222.8493237500002 +41 222.21104708333354 223.4864631250002 +52 223.7103436250002 223.91677108333354 +56 223.91677108333354 224.12656808333355 +59 224.12656808333355 224.33984420833355 +64 224.33984420833355 224.57421920833355 +66 224.57421920833355 224.82215320833353 +68 224.82215320833353 226.21750270833354 +44 223.4864631250002 226.21750270833354 +56 226.47612345833355 226.70661270833352 +61 226.70661270833352 226.9310670000002 +65 226.9310670000002 227.14925933333353 +49 226.21750270833354 227.56844941666685 +60 227.79745716666685 228.01023025000018 +65 228.01023025000018 228.21857025000017 +53 227.56844941666685 228.81853879166684 +56 229.04410279166683 229.25029079166686 +61 229.25029079166686 229.45368304166686 +65 229.45368304166686 229.65435416666685 +49 228.81853879166684 230.0476085833335 +60 230.2748813333335 230.48226004166682 +65 230.48226004166682 230.68588525000015 +53 230.0476085833335 231.32302462500016 +59 231.54690512500017 231.7533325833335 +64 231.7533325833335 231.9631295833335 +68 231.9631295833335 232.1764057083335 +71 232.1764057083335 232.4107807083335 +76 232.4107807083335 234.0540642083335 +56 231.32302462500016 234.0540642083335 +59 234.2779447083335 234.48437216666684 +64 234.48437216666684 234.69416916666685 +68 234.69416916666685 234.90744529166685 +71 234.90744529166685 235.14182029166685 +76 235.14182029166685 236.78510379166684 +56 234.0540642083335 236.78510379166684 +44 236.78510379166684 238.21367529166685 +44 238.47916204166685 238.74464879166683 +49 238.74464879166683 239.01013554166684 +53 239.01013554166684 239.27562229166685 +56 239.27562229166685 239.54110904166686 +61 239.54110904166686 239.80659579166684 +65 239.80659579166684 240.36215129166683 +68 240.36215129166683 240.91770679166683 +73 240.91770679166683 241.47326229166683 +37 238.21367529166685 241.47326229166683 +77 241.47326229166683 242.03493254166688 +80 242.03493254166688 242.61516829166686 +85 242.61516829166686 243.1070055000002 +77 243.41512660000024 247.67648960000022 +61 243.1070055000002 247.67648960000022 +68 243.1915960166669 247.67648960000022 +73 243.28740921250022 247.67648960000022 diff --git a/test/midi/debussy/menuet.mid b/test/midi/debussy/menuet.mid new file mode 100644 index 0000000000000000000000000000000000000000..4e43b82c96ddf200f814248d5f571c5a1028560f GIT binary patch literal 22043 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 literal 0 HcmV?d00001 diff --git a/test/midi/debussy/menuet.mid.txt b/test/midi/debussy/menuet.mid.txt new file mode 100644 index 0000000..c672304 --- /dev/null +++ b/test/midi/debussy/menuet.mid.txt @@ -0,0 +1,2313 @@ +track Piano right +65 0.2080445 0.2590371875 +59 0.2080445 0.2590371875 +62 0.60956575 0.6629921875 +69 0.60956575 0.6629921875 +59 0.8232715 0.9921675416666667 +59 1.0259467500000001 1.126631375 +60 1.126631375 1.227316 +59 1.227316 1.423651 +65 1.227316 1.423651 +69 1.227316 1.423651 +57 1.423651 1.5872635 +59 1.641801 1.7203295625000001 +60 2.06062 2.2219796875 +69 2.06062 2.2219796875 +65 2.06062 2.2219796875 +59 2.4909125000000003 2.6989570000000005 +60 2.6989570000000005 2.9029277500000004 +62 2.9029277500000004 3.0029677500000003 +64 3.10300775 3.2030477500000005 +69 2.9029277500000004 3.3030877500000004 +72 2.9029277500000004 3.3030877500000004 +66 3.3030877500000004 3.4018630000000005 +66 3.5006382500000006 3.564872583333334 +67 3.564872583333334 3.629106916666667 +66 3.629106916666667 3.6933412500000005 +64 3.6933412500000005 3.8934212500000003 +62 3.8934212500000003 4.10283075 +69 3.6933412500000005 4.10283075 +72 3.6933412500000005 4.10283075 +60 4.10283075 4.277338666666667 +62 4.31224025 4.486748166666667 +64 4.52164975 4.905567166666667 +69 4.52164975 4.905567166666667 +72 4.52164975 4.905567166666667 +64 4.94046875 5.14851325 +66 5.14851325 5.352484 +68 5.352484 5.449433375 +69 5.546382749999999 5.653235625 +59 5.352484 5.760088499999999 +66 5.760088499999999 5.931180791666666 +66 5.965399249999999 6.067384624999999 +68 6.067384624999999 6.169369999999999 +62 6.169369999999999 6.369449999999999 +66 6.169369999999999 6.369449999999999 +64 6.369449999999999 6.533062499999999 +60 6.369449999999999 6.533062499999999 +62 6.587599999999998 6.7942684999999985 +66 6.587599999999998 6.7942684999999985 +69 7.000936999999999 7.216083249999999 +66 7.000936999999999 7.216083249999999 +62 7.000936999999999 7.216083249999999 +64 7.431229499999999 7.644935249999999 +68 7.431229499999999 7.644935249999999 +69 7.644935249999999 7.8450152499999986 +66 7.644935249999999 7.8450152499999986 +68 7.8450152499999986 8.44245070833333 +64 7.8450152499999986 8.44245070833333 +69 8.477587749999998 8.678956999999999 +66 8.477587749999998 8.678956999999999 +71 8.678956999999999 9.271250166666665 +68 8.678956999999999 9.271250166666665 +72 9.305924249999999 9.506004249999998 +69 9.305924249999999 9.506004249999998 +68 9.506004249999998 9.948460499999998 +64 9.506004249999998 9.948460499999998 +79 9.948460499999998 10.155128999999997 +76 9.948460499999998 10.155128999999997 +77 10.155128999999997 10.255813624999996 +74 10.155128999999997 10.255813624999996 +79 10.255813624999996 10.356498249999998 +76 10.255813624999996 10.356498249999998 +77 10.356498249999998 10.563166749999997 +74 10.356498249999998 10.563166749999997 +76 10.563166749999997 10.767137499999997 +72 10.563166749999997 10.767137499999997 +70 10.767137499999997 10.973805999999996 +74 10.767137499999997 10.973805999999996 +72 10.973805999999996 11.186060249999997 +69 10.973805999999996 11.186060249999997 +74 11.186060249999997 11.806065749999997 +70 11.186060249999997 11.806065749999997 +72 11.806065749999997 11.906750374999996 +69 11.806065749999997 11.906750374999996 +74 11.906750374999996 12.007434999999997 +70 11.906750374999996 12.007434999999997 +69 12.007434999999997 12.214103499999997 +72 12.007434999999997 12.214103499999997 +67 12.214103499999997 12.420771999999998 +70 12.214103499999997 12.420771999999998 +69 12.420771999999998 12.628816499999997 +65 12.420771999999998 12.628816499999997 +67 12.628816499999997 12.841070749999998 +64 12.628816499999997 12.841070749999998 +69 12.841070749999998 13.222485666666666 +65 12.841070749999998 13.222485666666666 +79 13.257159749999998 13.459834999999998 +76 13.257159749999998 13.459834999999998 +77 13.459834999999998 13.559238624999999 +74 13.459834999999998 13.559238624999999 +79 13.559238624999999 13.658642249999998 +76 13.559238624999999 13.658642249999998 +77 13.658642249999998 13.865310749999997 +74 13.658642249999998 13.865310749999997 +76 13.865310749999997 14.066679999999998 +72 13.865310749999997 14.066679999999998 +69 13.257159749999998 14.066679999999998 +74 14.066679999999998 14.273348499999997 +70 14.066679999999998 14.273348499999997 +72 14.273348499999997 14.484170749999997 +69 14.273348499999997 14.484170749999997 +65 14.066679999999998 14.894792249999997 +74 14.484170749999997 15.100102999999997 +70 14.484170749999997 15.100102999999997 +72 15.100102999999997 15.200787624999997 +69 15.100102999999997 15.200787624999997 +74 15.200787624999997 15.301472249999998 +70 15.200787624999997 15.301472249999998 +69 15.301472249999998 15.508140749999997 +72 15.301472249999998 15.508140749999997 +67 15.508140749999997 15.714809249999998 +70 15.508140749999997 15.714809249999998 +64 14.894792249999997 15.714809249999998 +69 15.714809249999998 15.925749999999999 +65 15.714809249999998 15.925749999999999 +67 15.925749999999999 16.140957999999998 +64 15.925749999999999 16.140957999999998 +69 16.140957999999998 16.7588535 +67 16.7588535 16.96979425 +65 16.140957999999998 17.177983 +64 17.177983 17.38085025 +69 16.96979425 17.587689750000003 +67 17.587689750000003 17.790557000000003 +69 17.790557000000003 18.403131000000005 +71 18.403131000000005 18.611319750000007 +74 18.611319750000007 18.814187000000008 +71 18.814187000000008 19.012024000000007 +69 19.012024000000007 19.214891250000008 +71 19.214891250000008 19.41775850000001 +64 19.41775850000001 19.620625750000006 +67 19.620625750000006 19.828814500000007 +62 17.38085025 19.828814500000007 +69 19.828814500000007 20.034322000000007 +67 20.034322000000007 20.239829500000006 +69 20.239829500000006 20.848508500000005 +71 20.848508500000005 21.055348000000006 +74 21.055348000000006 21.258215250000006 +71 21.258215250000006 21.454833500000007 +69 21.454833500000007 21.657700750000007 +71 21.657700750000007 21.860568000000008 +69 21.860568000000008 22.063435250000005 +65 22.063435250000005 22.271624000000006 +62 19.828814500000007 22.271624000000006 +57 23.297005233333337 23.372954035416672 +59 23.49880981666667 23.57432328541667 +60 22.271624000000006 23.774779316666674 +60 23.699749316666672 23.774779316666674 +62 23.899829316666672 23.97438203541667 +64 22.271624000000006 24.173189285416672 +64 24.098636566666674 24.173189285416672 +66 24.29744381666667 24.37199653541667 +68 24.495832150000005 24.573848837500005 +57 25.744099150000004 25.822115837500004 +59 25.951248775000003 26.028749462500002 +60 26.15837594166667 26.23667700416667 +62 24.703876650000005 26.446911410416668 +62 26.3677934 26.446911410416668 +64 24.703876650000005 26.65970997291667 +64 26.57957031666667 26.65970997291667 +66 26.793996316666668 26.874986889583337 +68 27.01088956666667 27.10292159791667 +57 27.2522729 27.304284025 +59 27.4603174 27.5103374 +60 27.6603974 27.709785025000002 +69 27.6603974 27.709785025000002 +65 27.6603974 27.709785025000002 +62 27.8579479 27.9113743375 +59 28.07165365 28.241629274999998 +59 28.275624399999998 28.375028025 +60 28.375028025 28.47443165 +59 28.47443165 28.66713465 +65 28.47443165 28.66713465 +69 28.47443165 28.66713465 +57 28.66713465 28.826325337500002 +59 28.879388900000002 28.95539211875 +60 29.284739400000003 29.338525962500004 +69 29.284739400000003 29.338525962500004 +65 29.284739400000003 29.338525962500004 +59 29.715031900000003 29.921700400000002 +60 29.921700400000002 30.12306965 +62 30.12306965 30.2218449 +64 30.32062015 30.419395400000003 +69 30.12306965 30.518170650000002 +72 30.12306965 30.518170650000002 +66 30.518170650000002 30.6169459 +66 30.71572115 30.780354066666668 +67 30.780354066666668 30.844986983333335 +66 30.844986983333335 30.9096199 +64 30.9096199 31.107170399999998 +62 31.107170399999998 31.311141149999997 +69 30.9096199 31.311141149999997 +72 30.9096199 31.311141149999997 +60 31.311141149999997 31.480037191666664 +62 31.513816399999996 31.682712441666663 +69 31.71649165 32.13531065 +72 31.71649165 32.13531065 +64 31.71649165 32.13531065 +69 32.13531065 32.187321775 +71 32.34335515 32.393375150000004 +72 32.54343515 32.592822775 +62 32.54343515 32.592822775 +65 32.54343515 32.592822775 +74 32.74098565 32.7944120875 +71 32.9546914 33.124667025 +71 33.158662150000005 33.258065775000006 +72 33.258065775000006 33.35746940000001 +71 33.35746940000001 33.55017240000001 +65 33.35746940000001 33.55017240000001 +62 33.35746940000001 33.55017240000001 +69 33.55017240000001 33.70936308750001 +71 33.76242665000001 33.83842986875001 +72 34.167777150000006 34.22156371250001 +62 34.167777150000006 34.22156371250001 +65 34.167777150000006 34.22156371250001 +71 34.59806965000001 34.804738150000006 +72 34.804738150000006 35.006107400000005 +74 35.006107400000005 35.10488265000001 +76 35.2036579 35.302433150000006 +69 35.006107400000005 35.4012084 +72 35.006107400000005 35.4012084 +78 35.4012084 35.499983650000004 +78 35.59875890000001 35.66260773333334 +79 35.66260773333334 35.72645656666668 +78 35.72645656666668 35.79030540000001 +76 35.79030540000001 35.99038540000001 +74 35.99038540000001 36.19979490000001 +72 36.19979490000001 36.40376565000001 +74 36.40376565000001 36.617471400000014 +72 37.03629040000001 37.23765965000001 +69 37.03629040000001 37.23765965000001 +74 37.23765965000001 37.442970400000014 +76 36.617471400000014 37.442970400000014 +76 37.442970400000014 37.81691677500002 +71 37.442970400000014 37.81691677500002 +67 37.442970400000014 37.81691677500002 +69 37.850911900000014 38.05358715000001 +71 38.05358715000001 38.26440940000001 +66 37.850911900000014 38.26440940000001 +68 38.26440940000001 38.67774640000001 +65 38.26440940000001 38.67774640000001 +72 38.26440940000001 39.06687919166668 +67 38.67774640000001 39.10225490000001 +64 38.67774640000001 39.10225490000001 +66 39.10225490000001 39.51559190000001 +63 39.10225490000001 39.51559190000001 +62 39.51559190000001 39.92892890000001 +65 39.51559190000001 39.92892890000001 +68 39.10225490000001 39.92892890000001 +61 39.92892890000001 40.35802948333335 +60 40.35802948333335 40.52063381666668 +59 40.79408819166668 40.95948537916668 +58 41.237307358333354 41.425781045833354 +62 41.237307358333354 41.425781045833354 +64 39.92892890000001 42.327102858333355 +69 42.83461585833336 42.91008882708336 +64 42.83461585833336 42.91008882708336 +60 42.83461585833336 42.91008882708336 +64 43.03587710833336 43.10908113958336 +62 43.03587710833336 43.10908113958336 +59 43.03587710833336 43.10908113958336 +64 43.23108785833336 43.28639757083336 +62 43.23108785833336 43.28639757083336 +59 43.23108785833336 43.28639757083336 +69 43.42629860833336 43.500841389583364 +64 43.42629860833336 43.500841389583364 +60 43.42629860833336 43.500841389583364 +69 43.62507935833336 43.69962213958336 +64 43.62507935833336 43.69962213958336 +60 43.62507935833336 43.69962213958336 +62 43.82386010833336 43.89661910833336 +59 43.82386010833336 43.89661910833336 +64 43.82386010833336 43.89661910833336 +62 44.01788410833336 44.0738641166667 +64 44.01788410833336 44.0738641166667 +59 44.01788410833336 44.0738641166667 +69 44.21546060833336 44.29235735833336 +64 44.21546060833336 44.29235735833336 +60 44.21546060833336 44.29235735833336 +71 44.42051860833336 44.48232777500003 +67 44.42051860833336 44.48232777500003 +62 44.42051860833336 44.48232777500003 +69 44.85678165000002 45.25029392083336 +81 44.85678165000002 45.25029392083336 +69 45.26740315000002 45.34220365000002 +64 45.26740315000002 45.34220365000002 +60 45.26740315000002 45.34220365000002 +64 45.466871150000024 45.538263462500026 +62 45.466871150000024 45.538263462500026 +59 45.466871150000024 45.538263462500026 +64 45.65725065000002 45.71119150833336 +62 45.65725065000002 45.71119150833336 +59 45.65725065000002 45.71119150833336 +69 45.84763015000002 45.921507212500025 +64 45.84763015000002 45.921507212500025 +60 45.84763015000002 45.921507212500025 +60 46.044635650000025 46.11851271250002 +69 46.044635650000025 46.11851271250002 +64 46.044635650000025 46.11851271250002 +64 46.24164115000002 46.312601181250024 +59 46.24164115000002 46.312601181250024 +62 46.24164115000002 46.312601181250024 +62 46.430867900000024 46.487739275000024 +64 46.430867900000024 46.487739275000024 +59 46.430867900000024 46.487739275000024 +69 46.63159040000002 46.71030580625002 +64 46.63159040000002 46.71030580625002 +60 46.63159040000002 46.71030580625002 +71 46.84149815000002 46.90374187916669 +67 46.84149815000002 46.90374187916669 +62 46.84149815000002 46.90374187916669 +72 47.280865650000024 47.67698027500003 +84 47.280865650000024 47.67698027500003 +72 47.69420265000002 47.768794837500025 +67 47.69420265000002 47.768794837500025 +64 47.69420265000002 47.768794837500025 +67 47.89311515000002 47.96450746250002 +65 47.89311515000002 47.96450746250002 +62 47.89311515000002 47.96450746250002 +67 48.08349465000002 48.137435508333354 +65 48.08349465000002 48.137435508333354 +62 48.08349465000002 48.137435508333354 +67 48.27387415000002 48.34754805625002 +64 48.27387415000002 48.34754805625002 +72 48.27387415000002 48.34754805625002 +72 48.47033790000002 48.54401180625002 +67 48.47033790000002 48.54401180625002 +64 48.47033790000002 48.54401180625002 +67 48.66680165000002 48.73776168125002 +65 48.66680165000002 48.73776168125002 +62 48.66680165000002 48.73776168125002 +65 48.85602840000002 48.913098391666686 +67 48.85602840000002 48.913098391666686 +62 48.85602840000002 48.913098391666686 +72 49.05745190000002 49.13593658750002 +67 49.05745190000002 49.13593658750002 +64 49.05745190000002 49.13593658750002 +74 49.266744400000015 49.32847281666668 +70 49.266744400000015 49.32847281666668 +65 49.266744400000015 49.32847281666668 +72 49.702474400000014 50.09598667083335 +84 49.702474400000014 50.09598667083335 +72 50.11309590000001 50.18677946250001 +67 50.11309590000001 50.18677946250001 +64 50.11309590000001 50.18677946250001 +67 50.30958540000001 50.38105936875001 +65 50.30958540000001 50.38105936875001 +62 50.30958540000001 50.38105936875001 +62 50.50018265000001 50.55418520416668 +65 50.50018265000001 50.55418520416668 +67 50.50018265000001 50.55418520416668 +72 50.69077990000001 50.76355774375001 +67 50.69077990000001 50.76355774375001 +64 50.69077990000001 50.76355774375001 +72 50.88485415000001 50.95763199375001 +67 50.88485415000001 50.95763199375001 +64 50.88485415000001 50.95763199375001 +67 51.07892840000001 51.15040236875001 +65 51.07892840000001 51.15040236875001 +62 51.07892840000001 51.15040236875001 +65 51.26952565000001 51.32589920833335 +67 51.26952565000001 51.32589920833335 +62 51.26952565000001 51.32589920833335 +72 51.46849115000001 51.54758286875001 +67 51.46849115000001 51.54758286875001 +64 51.46849115000001 51.54758286875001 +74 51.679402400000015 52.12496890000001 +70 51.679402400000015 52.12496890000001 +65 51.679402400000015 52.12496890000001 +75 52.12496890000001 52.346451125000016 +74 52.346451125000016 52.557273375000015 +75 52.557273375000015 53.18432062500002 +74 53.18432062500002 53.38699587500002 +75 53.38699587500002 54.009902875000016 +74 54.009902875000016 54.211272125000015 +70 52.12496890000001 54.630091125000014 +75 54.211272125000015 54.839500625000014 +74 54.839500625000014 55.04347137500002 +75 55.04347137500002 55.244840625000016 +79 55.244840625000016 55.455662875000016 +67 55.455662875000016 55.65963362500002 +69 55.65963362500002 55.863604375000016 +67 55.863604375000016 56.06757512500002 +64 56.06757512500002 56.271545875000015 +67 56.271545875000015 56.47685662500002 +69 56.47685662500002 56.68082737500002 +67 56.68082737500002 56.88479812500002 +64 56.88479812500002 57.06048333333335 +74 55.455662875000016 57.06048333333335 +74 57.09562037500002 57.30502987500002 +72 57.30502987500002 57.51034062500002 +74 57.51034062500002 58.13038937500002 +72 58.13038937500002 58.33306462500002 +74 58.33306462500002 58.95182887500002 +72 58.95182887500002 59.15319812500002 +69 57.09562037500002 59.572017125000016 +74 59.15319812500002 59.778685625000016 +72 59.778685625000016 59.980054875000015 +74 59.980054875000015 60.188099375000014 +77 60.188099375000014 60.40180512500002 +70 59.572017125000016 60.40180512500002 +65 60.40180512500002 60.60577587500002 +63 60.60577587500002 60.80974662500002 +62 60.80974662500002 61.01371737500002 +63 61.01371737500002 61.217688125000016 +65 61.217688125000016 61.42165887500002 +63 61.42165887500002 61.625629625000016 +62 61.625629625000016 61.82960037500002 +63 61.82960037500002 62.23754187500002 +62 62.23754187500002 62.441512625000016 +60 62.441512625000016 62.64548337500002 +70 60.40180512500002 62.849454125000015 +63 62.64548337500002 63.061678125000014 +62 63.061678125000014 63.26707312500002 +60 63.26707312500002 63.47511762500002 +63 63.47511762500002 63.67919937500002 +69 62.849454125000015 63.714100958333354 +60 63.67919937500002 63.88860887500002 +58 63.88860887500002 64.09139387500002 +57 64.09139387500002 64.29417887500001 +67 63.67919937500002 64.53186545833336 +60 64.29417887500001 64.70637337500003 +58 64.70637337500003 64.90915837500003 +57 64.90915837500003 65.11194337500002 +60 65.11194337500002 65.31472837500003 +58 65.31472837500003 65.52012337500003 +62 65.52012337500003 65.71548687500002 +65 64.49696387500002 65.71548687500002 +65 65.71548687500002 65.91945762500002 +62 65.91945762500002 66.12342837500003 +67 65.71548687500002 66.15659808333336 +67 66.12342837500003 66.15659808333336 +65 66.32244662500003 66.51431162500003 +70 66.12342837500003 66.54832525000003 +70 66.51431162500003 66.54832525000003 +67 66.71839337500003 66.92247512500003 +74 66.51431162500003 66.92247512500003 +63 66.92247512500003 67.12644587500003 +62 67.12644587500003 67.32652587500003 +60 67.32652587500003 67.52660587500003 +70 66.92247512500003 67.76158745833337 +63 67.52660587500003 67.93609537500004 +62 67.93609537500004 68.13877062500003 +60 68.13877062500003 68.34681512500003 +63 68.34681512500003 68.54949037500003 +69 67.72668587500003 68.58439195833337 +60 68.54949037500003 68.75889987500004 +58 68.75889987500004 68.96168487500005 +57 68.96168487500005 69.16446987500004 +67 68.54949037500003 69.40215645833338 +60 69.16446987500004 69.57666437500005 +58 69.57666437500005 69.77674437500005 +57 69.77674437500005 69.97941962500005 +60 69.97941962500005 70.18209487500005 +58 70.18209487500005 70.38748987500004 +62 70.38748987500004 70.58285337500004 +65 69.36725487500004 70.58285337500004 +65 70.58285337500004 70.78552862500004 +62 70.78552862500004 70.98820387500004 +67 70.58285337500004 71.02137358333337 +67 70.98820387500004 71.02137358333337 +65 71.18722212500003 71.37908712500004 +70 70.98820387500004 71.41243379166671 +70 71.37908712500004 71.41243379166671 +67 71.57916712500004 71.77924712500004 +74 71.37908712500004 71.81259379166671 +70 71.77924712500004 71.97932712500004 +67 71.97932712500004 72.17940712500004 +76 71.77924712500004 72.21192533333337 +72 72.17940712500004 72.37451637500004 +69 72.37451637500004 72.56962562500004 +77 72.17940712500004 72.56962562500004 +70 72.56962562500004 72.76473487500004 +67 72.76473487500004 72.95984412500005 +70 72.95984412500005 73.15495337500003 +67 73.15495337500003 73.35006262500004 +74 72.56962562500004 73.35006262500004 +70 73.35006262500004 73.55273787500003 +67 73.55273787500003 73.75541312500003 +72 73.35006262500004 73.78940825000004 +70 73.75541312500003 73.95938387500003 +67 73.95938387500003 74.16335462500004 +74 73.75541312500003 74.19691616666671 +74 74.16335462500004 74.19691616666671 +70 74.36472387500004 74.56609312500004 +79 74.16335462500004 74.56609312500004 +76 74.56609312500004 74.77006387500003 +72 74.77006387500003 74.97403462500004 +81 74.56609312500004 74.97403462500004 +76 74.97403462500004 75.17284187500005 +72 75.17284187500005 75.37164912500005 +81 74.97403462500004 75.37164912500005 +72 75.37164912500005 75.57045637500005 +69 75.57045637500005 75.76926362500005 +76 75.37164912500005 75.76926362500005 +72 75.76926362500005 75.96807087500004 +69 75.96807087500004 76.16687812500004 +72 76.16687812500004 76.37084887500004 +69 76.37084887500004 76.57481962500005 +76 75.76926362500005 76.57481962500005 +70 76.57481962500005 76.77489962500005 +67 76.77489962500005 76.97497962500005 +76 76.57481962500005 77.00749783333337 +72 76.97497962500005 77.17008887500005 +69 77.17008887500005 77.36519812500005 +77 76.97497962500005 77.36519812500005 +70 77.36519812500005 77.56030737500005 +67 77.56030737500005 77.75541662500005 +70 77.75541662500005 77.95052587500004 +67 77.95052587500004 78.14563512500004 +74 77.36519812500005 78.14563512500004 +70 78.14563512500004 78.34831037500004 +67 78.34831037500004 78.55098562500004 +72 78.14563512500004 78.58412016666671 +70 78.55098562500004 78.74979287500004 +67 78.74979287500004 78.94860012500004 +74 78.55098562500004 78.98159470833338 +74 78.94860012500004 78.98159470833338 +70 79.14656762500005 79.34453512500004 +79 78.94860012500004 79.34453512500004 +76 79.34453512500004 79.54622937500004 +72 79.54622937500004 79.74792362500004 +81 79.34453512500004 79.74792362500004 +76 79.74792362500004 79.94467062500004 +72 79.94467062500004 80.14141762500005 +81 79.74792362500004 80.14141762500005 +72 80.14141762500005 80.33119487500005 +69 80.33119487500005 80.52097212500004 +76 80.14141762500005 80.52097212500004 +72 80.52097212500004 80.72139962500005 +69 80.72139962500005 80.92182712500005 +76 80.52097212500004 80.92182712500005 +77 80.92182712500005 81.11048262500005 +74 81.11048262500005 81.29913812500006 +82 80.92182712500005 81.29913812500006 +77 81.29913812500006 81.49588512500006 +74 81.49588512500006 81.69263212500006 +82 81.29913812500006 81.69263212500006 +79 81.69263212500006 81.88128762500006 +76 81.88128762500006 82.06994312500007 +84 81.69263212500006 82.06994312500007 +79 82.06994312500007 82.26548487500007 +76 82.26548487500007 82.46102662500006 +84 82.06994312500007 82.46102662500006 +76 82.46102662500006 82.65000847291672 +72 82.65000847291672 82.83699422291672 +81 82.46102662500006 82.83699422291672 +76 82.83699422291672 83.02397997291672 +72 83.02397997291672 83.21096572291673 +81 82.83699422291672 83.21096572291673 +81 83.21096572291673 83.39795147291672 +76 83.39795147291672 83.58493722291672 +84 83.21096572291673 83.58493722291672 +82 83.58493722291672 83.77192297291673 +76 83.77192297291673 83.95890872291672 +86 83.58493722291672 83.95890872291672 +82 83.95890872291672 84.15161172291671 +77 84.15161172291671 84.34431472291672 +86 83.95890872291672 84.34431472291672 +86 84.34431472291672 84.53130047291673 +82 84.34431472291672 84.53130047291673 +74 84.53130047291673 84.71828622291672 +86 84.71828622291672 84.90527197291672 +82 84.71828622291672 84.90527197291672 +74 84.90527197291672 85.09225772291673 +86 85.09225772291673 85.27924347291672 +82 85.09225772291673 85.27924347291672 +72 85.27924347291672 85.46622922291672 +86 85.46622922291672 85.64991772291673 +82 85.46622922291672 85.64991772291673 +74 85.64991772291673 85.83360622291673 +86 85.83360622291673 86.02398572291673 +82 85.83360622291673 86.02398572291673 +79 86.02398572291673 86.21436522291673 +86 86.21436522291673 86.39700247291672 +82 86.21436522291673 86.39700247291672 +81 86.39700247291672 86.57963972291672 +86 86.57963972291672 86.76772747291672 +82 86.57963972291672 86.76772747291672 +81 86.76772747291672 86.95581522291673 +86 86.95581522291673 87.14971397291673 +82 86.95581522291673 87.14971397291673 +76 87.14971397291673 87.34361272291673 +86 87.34361272291673 87.53751147291672 +82 87.34361272291673 87.53751147291672 +76 87.53751147291672 87.73141022291672 +86 87.73141022291672 87.92530897291672 +82 87.73141022291672 87.92530897291672 +76 87.92530897291672 88.11920772291673 +82 88.11920772291673 88.31928772291673 +76 88.31928772291673 88.51936772291673 +86 88.11920772291673 88.51936772291673 +82 88.51936772291673 88.72467847291672 +77 88.72467847291672 88.92998922291673 +86 88.51936772291673 88.92998922291673 +86 88.92998922291673 89.12753972291674 +82 88.92998922291673 89.12753972291674 +74 89.12753972291674 89.32509022291673 +86 89.32509022291673 89.52264072291673 +82 89.32509022291673 89.52264072291673 +74 89.52264072291673 89.72019122291672 +86 89.72019122291672 89.92416197291672 +82 89.72019122291672 89.92416197291672 +72 89.92416197291672 90.12813272291673 +86 90.12813272291673 90.34477047291674 +82 90.12813272291673 90.34477047291674 +74 90.34477047291674 90.52530193125007 +88 90.56140822291673 90.75178772291673 +83 90.56140822291673 90.75178772291673 +76 90.75178772291673 90.93656222291673 +76 90.93656222291673 91.12133672291674 +71 90.93656222291673 91.12133672291674 +64 91.12133672291674 91.30611122291673 +69 91.30611122291673 91.49649072291673 +76 91.30611122291673 91.49649072291673 +64 91.49649072291673 91.68236422291673 +64 91.68236422291673 91.86823772291673 +57 91.68236422291673 91.86823772291673 +52 91.86823772291673 92.05411122291673 +64 92.05411122291673 92.24449072291674 +59 92.05411122291673 92.24449072291674 +52 92.24449072291674 92.43036422291674 +64 92.43036422291674 92.61623772291674 +59 92.43036422291674 92.61623772291674 +52 92.61623772291674 92.80211122291674 +64 92.80211122291674 92.98798472291674 +60 92.80211122291674 92.98798472291674 +52 92.98798472291674 93.17385822291673 +64 93.17385822291673 93.35973172291673 +60 93.17385822291673 93.35973172291673 +52 93.35973172291673 93.54560522291673 +62 93.54560522291673 93.73483197291674 +64 93.54560522291673 93.73483197291674 +52 93.73483197291674 93.92405872291674 +64 93.92405872291674 94.11795747291674 +60 93.92405872291674 94.11795747291674 +52 94.11795747291674 94.31185622291675 +65 94.31185622291675 94.72519322291674 +69 94.72519322291674 95.16760572291675 +62 94.31185622291675 95.16760572291675 +59 94.31185622291675 95.16760572291675 +88 95.16760572291675 95.35798522291675 +83 95.16760572291675 95.35798522291675 +76 95.35798522291675 95.54275972291676 +76 95.54275972291676 95.72753422291676 +71 95.54275972291676 95.72753422291676 +64 95.72753422291676 95.91230872291675 +76 95.91230872291675 96.10268822291675 +69 95.91230872291675 96.10268822291675 +64 96.10268822291675 96.28856172291675 +57 96.28856172291675 96.47443522291675 +64 96.28856172291675 96.47443522291675 +52 96.47443522291675 96.66030872291675 +64 96.66030872291675 96.85068822291676 +59 96.66030872291675 96.85068822291676 +52 96.85068822291676 97.03656172291676 +64 97.03656172291676 97.22243522291676 +59 97.03656172291676 97.22243522291676 +52 97.22243522291676 97.40830872291676 +64 97.40830872291676 97.59418222291676 +60 97.40830872291676 97.59418222291676 +52 97.59418222291676 97.78005572291676 +64 97.78005572291676 97.97160222291676 +60 97.78005572291676 97.97160222291676 +52 97.97160222291676 98.16314872291676 +64 98.16314872291676 98.36711947291676 +62 98.16314872291676 98.36711947291676 +52 98.36711947291676 98.57109022291677 +62 98.57109022291677 98.78924022291676 +64 98.57109022291677 98.78924022291676 +52 98.78924022291676 99.00739022291677 +64 99.00739022291677 99.25089672291676 +52 99.25089672291676 99.49440322291677 +64 99.49440322291677 99.80241147291677 +52 99.80241147291677 100.05907097291677 +69 100.05907097291677 100.11006366041677 +64 100.06586999791678 100.11686268541678 +60 100.06586999791678 100.11686268541678 +71 100.26304172291677 100.31242934791676 +72 100.46059222291677 100.50906691041678 +74 100.65449097291678 100.70719653541677 +71 100.86531322291678 101.03528884791679 +71 101.06928397291678 101.16868759791677 +72 101.16868759791677 101.26809122291678 +71 101.26809122291678 101.46079422291677 +69 101.46079422291677 101.61998491041678 +71 101.67304847291678 101.74905169166678 +64 101.67304847291678 101.82505491041678 +60 101.67304847291678 101.82505491041678 +72 102.07839897291677 102.23975866041677 +71 102.50869147291677 102.71535997291677 +72 102.71535997291677 102.91672922291677 +60 102.50869147291677 102.91672922291677 +64 102.50869147291677 102.91672922291677 +74 102.91672922291677 103.01550447291677 +76 103.11427972291678 103.21305497291677 +78 103.31183022291677 103.41060547291677 +78 103.50938072291677 103.57322955625011 +79 103.57322955625011 103.63707838958344 +78 103.63707838958344 103.70092722291677 +76 103.70092722291677 103.90100722291677 +74 103.90100722291677 104.11041672291678 +72 104.11041672291678 104.32705447291679 +74 104.32705447291679 104.55306022291678 +76 104.55306022291678 105.00507172291678 +81 105.00507172291678 105.05606441041678 +83 105.20904247291678 105.25721822291678 +84 105.40174547291677 105.44876741041678 +86 105.58983322291677 105.64253878541676 +83 105.80065547291677 105.97063109791678 +83 106.00462622291677 106.10097772291677 +84 106.10097772291677 106.19732922291676 +83 106.19732922291676 106.38541697291676 +81 106.38541697291676 106.54460766041676 +83 106.59767122291676 106.67367444166676 +84 107.00302172291676 107.16438141041675 +74 105.00507172291678 107.43331422291675 +83 107.43331422291675 107.63998272291676 +84 107.63998272291676 107.84135197291675 +86 107.84135197291675 107.94012722291676 +88 108.03890247291676 108.13767772291675 +90 108.23645297291675 108.33522822291675 +90 108.43400347291676 108.4978523062501 +91 108.4978523062501 108.56170113958342 +90 108.56170113958342 108.62554997291676 +88 108.62554997291676 108.82562997291676 +86 108.82562997291676 109.03503947291676 +84 109.03503947291676 109.25167722291677 +86 109.25167722291677 109.47768297291677 +74 107.43331422291675 109.92969447291676 +88 109.47768297291677 110.13236972291676 +86 110.13236972291676 110.23053722291677 +83 109.92969447291676 110.42687222291676 +83 110.32870472291677 110.42687222291676 +81 110.52503972291676 110.62320722291676 +79 109.92969447291676 110.72137472291676 +74 109.92969447291676 110.72137472291676 +83 110.72137472291676 110.82205934791676 +79 110.92274397291676 111.01969334791676 +76 111.11664272291677 111.21359209791676 +74 111.31054147291677 111.41319684791677 +72 111.51585222291676 111.93194122291676 +69 111.93194122291676 112.37750772291676 +67 111.51585222291676 112.37750772291676 +76 111.51585222291676 112.58018297291676 +74 112.58018297291676 112.67835047291676 +71 112.37750772291676 112.87468547291675 +71 112.77651797291676 112.87468547291675 +69 112.97285297291675 113.07102047291676 +62 112.37750772291676 113.16918797291676 +67 112.37750772291676 113.16918797291676 +71 113.16918797291676 113.26987259791676 +67 113.37055722291676 113.46750659791675 +64 113.56445597291676 113.66140534791676 +62 113.75835472291676 113.86168897291677 +60 113.96502322291677 114.40132322291677 +57 114.40132322291677 114.87368972291678 +64 113.96502322291677 115.08173422291678 +66 115.08173422291678 115.28570497291678 +67 115.28570497291678 115.38147822291677 +69 115.47725147291678 115.57923684791677 +64 115.68122222291677 115.8490299312501 +64 115.88259147291677 115.98199509791677 +66 115.98199509791677 116.08078238958343 +64 116.08078238958343 116.27468113958344 +62 116.27468113958344 116.42668757708344 +64 116.47735638958343 116.60652420208343 +67 116.89069338958343 117.01340276458343 +55 114.87368972291678 117.28336338958343 +67 117.28336338958343 117.40921917083342 +62 117.28336338958343 117.40921917083342 +71 117.28336338958343 117.40921917083342 +69 117.68610188958343 117.81195767083342 +64 117.68610188958343 117.81195767083342 +60 117.68610188958343 117.81195767083342 +81 119.69979438958343 119.89673626458342 +79 119.89673626458342 119.99371063958343 +77 119.99371063958343 120.09068501458343 +76 120.09068501458343 120.18765938958343 +74 120.18765938958343 120.28463376458342 +72 120.28463376458342 120.38160813958342 +71 120.38160813958342 120.47858251458342 +69 119.69979438958343 120.47858251458342 +69 120.47858251458342 121.47797366041677 +72 121.46181126458343 121.62343522291677 +71 121.65576001458344 121.87458699375011 +74 121.85832576458344 122.0209380562501 +72 122.05346051458343 122.27100999375011 +76 122.25474876458344 122.4173610562501 +74 122.44988351458343 122.66743299375011 +77 122.65117176458344 122.8137840562501 +76 122.84630651458343 123.06670357708344 +72 123.05013851458344 123.26548432708344 +71 123.24891926458344 123.46426507708344 +67 123.44770001458343 123.64648076458344 +65 122.05346051458343 123.64648076458344 +62 123.64648076458344 124.07609576458344 +65 123.64648076458344 124.07609576458344 +67 124.07609576458344 124.45455601458345 +64 124.07609576458344 124.45455601458345 +81 124.50862176458344 124.70556363958343 +79 124.70556363958343 124.80253801458343 +77 124.80253801458343 124.89951238958344 +76 124.89951238958344 124.99648676458344 +74 124.99648676458344 125.09346113958343 +72 125.09346113958343 125.19043551458343 +71 125.19043551458343 125.28740988958343 +69 124.50862176458344 125.28740988958343 +69 125.28740988958343 126.28433828541677 +72 126.26817588958343 126.42979984791677 +71 126.46212463958344 126.6783628687501 +74 126.66220463958344 126.8237869312501 +72 126.85610338958344 127.07365286875012 +76 127.05739163958344 127.2200039312501 +74 127.25252638958344 127.47007586875011 +77 127.45381463958344 127.6164269312501 +76 127.64894938958344 127.86934645208345 +72 127.85278138958344 128.06812720208345 +71 128.05156213958344 128.26690795208344 +67 128.25034288958344 128.44912363958343 +65 126.85610338958344 128.44912363958343 +62 128.44912363958343 128.87873863958345 +65 128.44912363958343 128.87873863958345 +65 128.87873863958345 129.26584957708346 +69 128.87873863958345 129.26584957708346 +79 129.32115113958343 129.51809301458343 +77 129.51809301458343 129.61506738958343 +75 129.61506738958343 129.71204176458343 +74 129.71204176458343 129.80901613958343 +72 129.80901613958343 129.90599051458344 +70 129.90599051458344 130.00296488958344 +69 130.00296488958344 130.09993926458344 +67 129.32115113958343 130.09993926458344 +67 130.09993926458344 131.0993304104168 +70 131.08316801458346 131.2447919729168 +69 131.27711676458347 131.49594374375013 +72 131.47968251458346 131.64229480625013 +70 131.67481726458345 131.89236674375013 +74 131.87610551458346 132.03871780625013 +72 132.07124026458345 132.28878974375013 +75 132.27252851458346 132.43514080625013 +74 132.46766326458345 132.68806032708346 +70 132.67149526458346 132.88684107708346 +69 132.87027601458345 133.08562182708346 +65 133.06905676458345 133.26783751458345 +63 131.67481726458345 133.26783751458345 +63 133.26783751458345 133.69745251458346 +60 133.26783751458345 133.69745251458346 +62 133.69745251458346 134.07591276458345 +65 133.69745251458346 134.07591276458345 +79 134.12997851458346 134.32692038958345 +77 134.32692038958345 134.42327188958345 +75 134.42327188958345 134.51962338958344 +74 134.51962338958344 134.61597488958344 +72 134.61597488958344 134.71232638958344 +70 134.71232638958344 134.80867788958344 +69 134.80867788958344 134.90502938958346 +67 134.12997851458346 134.90502938958346 +67 134.90502938958346 135.90068328541682 +70 135.88452088958348 136.04614484791682 +69 136.0784696395835 136.29729661875015 +72 136.28103538958348 136.44364768125016 +70 136.47617013958347 136.69371961875015 +74 136.67745838958348 136.84007068125015 +72 136.87259313958347 137.09014261875015 +75 137.07388138958348 137.23649368125015 +74 137.26901613958347 137.48941320208348 +70 137.47284813958348 137.68819395208348 +69 137.67162888958347 137.88697470208348 +65 137.87040963958347 138.06919038958347 +63 136.47617013958347 138.06919038958347 +63 138.06919038958347 138.49880538958348 +60 138.06919038958347 138.49880538958348 +63 138.49880538958348 138.8177237645835 +67 138.49880538958348 138.8177237645835 +62 138.92037913958347 139.51680088958346 +66 138.92037913958347 139.51680088958346 +67 139.51680088958346 139.67180226458348 +63 139.51680088958346 139.67180226458348 +60 139.51680088958346 139.67180226458348 +62 139.72346938958347 140.31989113958346 +66 139.72346938958347 140.31989113958346 +67 140.31989113958346 140.46441838958347 +63 140.31989113958346 140.46441838958347 +60 140.31989113958346 140.46441838958347 +66 140.51259413958346 140.91020863958346 +62 140.51259413958346 140.91020863958346 +69 140.91020863958346 141.32354563958347 +63 140.91020863958346 141.32354563958347 +60 140.91020863958346 141.32354563958347 +67 141.32354563958347 141.73688263958346 +62 141.32354563958347 141.73688263958346 +58 141.32354563958347 141.73688263958346 +66 141.73688263958346 141.93696263958347 +62 141.73688263958346 141.93696263958347 +57 141.73688263958346 141.93696263958347 +67 141.93696263958347 142.13704263958346 +64 142.13704263958346 142.93736263958345 +62 142.13704263958346 143.14267338958345 +61 143.14267338958345 143.34275338958346 +59 143.34275338958346 143.55079788958346 +61 143.55079788958346 143.75884238958346 +55 142.13704263958346 143.75884238958346 +62 143.75884238958346 144.16158088958346 +57 143.75884238958346 144.16158088958346 +66 143.75884238958346 144.16158088958346 +69 144.16158088958346 144.55179938958346 +60 144.16158088958346 144.55179938958346 +72 144.55179938958346 145.36271888958348 +66 144.55179938958346 145.36271888958348 +64 144.55179938958346 145.36271888958348 +71 145.36271888958348 145.77880788958348 +67 145.36271888958348 145.77880788958348 +62 145.36271888958348 145.77880788958348 +74 145.77880788958348 146.19695551458346 +71 145.77880788958348 146.19695551458346 +66 145.77880788958348 146.19695551458346 +78 146.19695551458346 147.01819851458347 +69 146.19695551458346 147.01819851458347 +71 146.19695551458346 147.01819851458347 +76 147.01819851458347 147.42354901458347 +67 147.01819851458347 147.42354901458347 +66 147.42354901458347 147.81621901458348 +74 147.42354901458347 147.81621901458348 +71 147.01819851458347 147.81621901458348 +64 147.81621901458348 148.0270412645835 +62 148.0270412645835 148.23101201458348 +71 147.81621901458348 148.23101201458348 +67 147.81621901458348 148.23101201458348 +61 148.23101201458348 148.4406923479168 +59 148.4406923479168 148.6446630979168 +67 148.23101201458348 148.6446630979168 +64 148.23101201458348 148.6446630979168 +62 148.6446630979168 149.2410848479168 +66 148.6446630979168 149.2410848479168 +67 149.2410848479168 149.3960862229168 +63 149.2410848479168 149.3960862229168 +60 149.2410848479168 149.3960862229168 +62 149.4477533479168 150.0441750979168 +66 149.4477533479168 150.0441750979168 +67 150.0441750979168 150.1887023479168 +63 150.0441750979168 150.1887023479168 +60 150.0441750979168 150.1887023479168 +66 150.2368780979168 150.6344925979168 +62 150.2368780979168 150.6344925979168 +69 150.6344925979168 151.0478295979168 +63 150.6344925979168 151.0478295979168 +60 150.6344925979168 151.0478295979168 +59 151.0478295979168 151.4611665979168 +67 151.0478295979168 151.4611665979168 +62 151.0478295979168 151.4611665979168 +66 151.4611665979168 151.6612465979168 +57 151.4611665979168 151.6612465979168 +62 151.4611665979168 151.6612465979168 +67 151.6612465979168 151.8613265979168 +64 151.8613265979168 152.23026553541678 +55 151.8613265979168 152.23026553541678 +62 151.8613265979168 152.23026553541678 +71 152.2829710979168 152.6909125979168 +67 152.2829710979168 152.6909125979168 +64 152.2829710979168 152.6909125979168 +69 152.6909125979168 153.0962630979168 +66 152.6909125979168 153.0962630979168 +61 152.6909125979168 153.0962630979168 +67 153.0962630979168 153.50688459791678 +64 153.0962630979168 153.50688459791678 +59 153.0962630979168 153.50688459791678 +66 153.50688459791678 153.86617841041678 +58 153.50688459791678 153.86617841041678 +61 153.50688459791678 153.86617841041678 +74 153.9175060979168 154.3202445979168 +71 153.9175060979168 154.3202445979168 +66 153.9175060979168 154.3202445979168 +73 154.3202445979168 154.72214405625013 +67 154.3202445979168 154.72214405625013 +64 154.3202445979168 154.72214405625013 +71 154.72214405625013 155.1148140562501 +62 154.72214405625013 155.1148140562501 +66 154.72214405625013 155.1148140562501 +69 155.1148140562501 155.5175525562501 +81 155.5175525562501 155.8447775562501 +67 155.1148140562501 155.9538525562501 +64 155.1148140562501 155.9538525562501 +78 155.9538525562501 156.5502743062501 +74 155.9538525562501 156.5502743062501 +79 156.5502743062501 156.64662580625009 +75 156.5502743062501 156.64662580625009 +74 156.74297730625008 157.33939905625007 +78 156.74297730625008 157.33939905625007 +79 157.33939905625007 157.43575055625007 +75 157.33939905625007 157.43575055625007 +78 157.53210205625007 157.87781543125007 +74 157.53210205625007 157.87781543125007 +81 155.9538525562501 157.87781543125007 +81 157.92720305625008 158.33255355625008 +75 157.92720305625008 158.33255355625008 +72 157.92720305625008 158.33255355625008 +79 158.33255355625008 158.73790405625007 +74 158.33255355625008 158.73790405625007 +70 158.33255355625008 158.73790405625007 +69 158.73790405625007 158.9379840562501 +74 158.73790405625007 158.9379840562501 +78 158.73790405625007 158.9379840562501 +79 158.9379840562501 159.13806405625007 +76 159.13806405625007 159.93838405625007 +67 159.13806405625007 159.93838405625007 +74 159.13806405625007 159.93838405625007 +70 159.93838405625007 160.75962705625008 +76 159.93838405625007 160.75962705625008 +79 159.93838405625007 160.75962705625008 +74 160.75962705625008 161.16236555625008 +78 160.75962705625008 161.16236555625008 +81 161.16236555625008 161.57845455625008 +69 160.75962705625008 161.57845455625008 +84 161.57845455625008 162.38393155625008 +78 161.57845455625008 162.38393155625008 +72 161.57845455625008 162.38393155625008 +71 162.38393155625008 162.80002055625008 +74 162.80002055625008 163.23632055625006 +78 163.23632055625006 164.08533755625007 +76 164.08533755625007 164.49068805625006 +74 164.49068805625006 164.93005555625007 +67 162.38393155625008 164.93005555625007 +71 164.93005555625007 165.39887905625008 +67 164.93005555625007 165.39887905625008 +67 165.39887905625008 165.9055500562501 +64 165.39887905625008 165.9055500562501 +66 165.9055500562501 166.82270105625008 +59 165.9055500562501 166.82270105625008 +62 165.9055500562501 166.82270105625008 +64 166.82270105625008 167.25900105625007 +61 166.82270105625008 167.25900105625007 +56 166.82270105625008 167.25900105625007 +62 167.25900105625007 167.68064555625008 +59 167.25900105625007 167.68064555625008 +54 167.25900105625007 167.68064555625008 +61 167.68064555625008 168.1109380562501 +59 167.68064555625008 168.1109380562501 +53 167.68064555625008 168.1109380562501 +61 168.1109380562501 168.5136765562501 +68 168.1109380562501 168.9164150562501 +66 168.9164150562501 169.04568088958342 +68 169.04568088958342 169.17494672291676 +69 169.17494672291676 169.3042125562501 +66 169.3042125562501 169.7203015562501 +64 169.7203015562501 170.5206215562501 +66 170.5206215562501 170.8995138062501 +62 168.5136765562501 170.9339585562501 +59 168.1109380562501 170.9339585562501 +74 170.9339585562501 171.7552015562501 +78 170.9339585562501 171.7552015562501 +76 171.7552015562501 172.1712905562501 +73 171.7552015562501 172.1712905562501 +71 172.1712905562501 172.5766410562501 +74 172.1712905562501 172.5766410562501 +68 170.9339585562501 172.5766410562501 +73 172.5766410562501 172.99546005625012 +71 172.5766410562501 172.99546005625012 +68 172.5766410562501 172.99546005625012 +73 172.99546005625012 173.42873555625013 +80 172.99546005625012 173.83935705625012 +78 173.83935705625012 174.24997855625014 +80 174.24997855625014 174.67448705625014 +81 174.67448705625014 175.11689955625013 +78 175.11689955625013 175.62771155625012 +80 175.62771155625012 177.0556030562501 +74 173.42873555625013 177.0556030562501 +71 172.99546005625012 177.0556030562501 +55 177.0556030562501 177.96491809791678 +58 177.0556030562501 177.96491809791678 +51 177.0556030562501 177.96491809791678 +82 178.11544159791677 179.03937159791678 +70 177.96819034791676 179.03937159791678 +75 178.01727409791678 179.03937159791678 +79 178.06635784791678 179.03937159791678 +58 179.03937159791678 180.9222695062501 +55 179.03937159791678 180.9222695062501 +51 179.03937159791678 180.9222695062501 +82 181.07372488958345 182.00453488958345 +70 180.92556201458345 182.00453488958345 +75 180.97494963958346 182.00453488958345 +79 181.02433726458344 182.00453488958345 +58 182.00453488958345 183.13931563958343 +60 183.13931563958343 183.33686613958344 +55 182.00453488958345 183.33686613958344 +51 182.00453488958345 183.33686613958344 +62 183.33686613958344 183.53076488958342 +63 183.53076488958342 183.74158713958343 +60 183.74158713958343 183.91156276458344 +60 183.94555788958343 184.04496151458343 +62 184.04496151458343 184.1443651395834 +60 184.1443651395834 184.28889238958342 +58 184.3370681395834 184.4962588270834 +60 184.5493223895834 184.6006500770834 +63 184.9599438895834 185.0137304520834 +62 185.3902363895834 185.5942071395834 +63 185.5942071395834 185.7917576395834 +65 185.7917576395834 185.9856563895834 +67 185.9856563895834 186.1964786395834 +62 186.1964786395834 186.3664542645834 +62 186.4004493895834 186.4998530145834 +63 186.4998530145834 186.5992566395834 +62 186.5992566395834 186.7437838895834 +60 186.79195963958338 186.95115032708338 +58 187.00421388958338 187.2108823895834 +60 187.2108823895834 187.4175508895834 +62 187.4175508895834 187.8478433895834 +63 187.8478433895834 188.0518141395834 +65 188.0518141395834 188.2493646395834 +67 188.2493646395834 188.4432633895834 +68 188.4432633895834 188.6540856395834 +61 187.8478433895834 188.6540856395834 +65 188.6540856395834 188.8240612645834 +65 188.8580563895834 188.9574600145834 +67 188.9574600145834 189.05686363958338 +65 189.05686363958338 189.2013908895834 +63 189.24956663958338 189.40875732708338 +65 189.46182088958338 189.5128135770834 +68 189.86976238958337 189.92318882708338 +67 190.29717388958338 190.50114463958337 +68 190.50114463958337 190.69869513958338 +70 190.69869513958338 190.89259388958337 +72 190.89259388958337 191.10341613958337 +67 191.10341613958337 191.27339176458338 +65 191.30738688958337 191.40679051458338 +67 191.3736559729167 191.43992505625005 +65 191.43992505625005 191.50619413958336 +61 190.29717388958338 191.50619413958336 +63 191.50619413958336 191.65072138958337 +61 191.69889713958335 191.85595426458335 +63 191.90830663958334 192.11227738958334 +65 192.11227738958334 192.31624813958334 +67 192.31624813958334 192.74654063958334 +67 192.74654063958334 192.94869688958335 +68 192.94869688958335 193.14451938958334 +70 193.14451938958334 193.33670388958333 +72 193.33670388958333 193.54067463958333 +67 193.54067463958333 193.70913818124998 +65 193.74283088958333 193.84135951458333 +67 193.80851663958333 193.87420238958333 +65 193.87420238958333 193.93988813958333 +61 192.74654063958334 193.93988813958333 +63 193.93988813958333 194.08314545208333 +61 194.13089788958334 194.28352307708334 +63 194.33439813958333 194.53447813958334 +65 194.53447813958334 194.73455813958333 +67 194.73455813958333 195.14789513958334 +68 195.14789513958334 195.34766499583333 +69 195.34766499583333 195.54143849583332 +71 195.54143849583332 195.73162499583333 +73 195.73162499583333 195.93302124583332 +68 195.93302124583332 196.0956122875 +66 196.12813049583332 196.22563437083332 +68 196.19313307916664 196.2581356625 +66 196.2581356625 196.32313824583332 +61 195.14789513958334 196.32313824583332 +64 196.32313824583332 196.4649152458333 +63 196.5121742458333 196.66031743333332 +64 196.7096984958333 196.9047062458333 +66 196.9047062458333 197.0997139958333 +68 197.0997139958333 197.6971644958333 +69 197.6971644958333 197.88624799583332 +71 197.88624799583332 198.0775989958333 +73 198.0775989958333 198.26554524583332 +68 198.26554524583332 198.45924349583333 +69 198.45924349583333 198.64497899583333 +62 197.4998739958333 198.64497899583333 +71 198.64497899583333 198.83406249583334 +73 198.83406249583334 199.01979799583333 +74 199.01979799583333 199.21114899583333 +76 199.21114899583333 199.39580974583333 +78 199.39580974583333 199.58375599583334 +80 199.58375599583334 199.76700099583334 +73 199.95718749583335 200.13463924583334 +74 200.13463924583334 200.31614949583334 +81 199.76700099583334 200.31614949583334 +81 200.31614949583334 200.49343349583333 +71 200.67809424583334 200.85653824583335 +74 200.85653824583335 201.03908674583334 +80 200.49343349583333 201.03908674583334 +80 201.03908674583334 201.21553649583333 +71 201.39808499583333 201.57721307916668 +74 201.57721307916668 201.75976157916668 +78 201.21553649583333 201.75976157916668 +78 201.75976157916668 201.93524132916667 +69 202.11675157916667 202.2951955791667 +73 202.2951955791667 202.47363957916667 +76 201.93524132916667 202.47363957916667 +73 202.65208357916669 202.83463207916668 +69 202.83463207916668 203.01718057916668 +76 202.47363957916667 203.01718057916668 +73 203.01718057916668 203.1956245791667 +69 203.1956245791667 203.37406857916667 +78 203.01718057916668 203.37406857916667 +78 203.37406857916667 203.55557882916668 +73 203.55557882916668 203.73708907916668 +81 203.37406857916667 203.73708907916668 +81 203.73708907916668 203.92282457916667 +78 203.92282457916667 204.11008391250002 +85 203.73708907916668 204.11008391250002 +73 204.29720391458335 204.47699541458334 +74 204.47699541458334 204.66409791458335 +81 204.11008391250002 204.66409791458335 +81 204.66409791458335 204.84371716458335 +71 205.02972916458336 205.21053916458337 +74 205.21053916458337 205.39764166458338 +80 204.84371716458335 205.39764166458338 +80 205.39764166458338 205.57642591458338 +71 205.7624379145834 205.9439390395834 +74 205.9439390395834 206.1288957895834 +78 205.57642591458338 206.1288957895834 +78 206.1288957895834 206.3066840395834 +69 206.4937865395834 206.6745965395834 +73 206.6745965395834 206.8584877895834 +76 206.3066840395834 206.8584877895834 +73 207.0423790395834 207.2273357895834 +69 207.2273357895834 207.4122925395834 +76 206.8584877895834 207.4122925395834 +73 207.4122925395834 207.5931025395834 +69 207.5931025395834 207.7739125395834 +78 207.4122925395834 207.7739125395834 +78 207.7739125395834 207.95780378958338 +73 207.95780378958338 208.1416950395834 +81 207.7739125395834 208.1416950395834 +81 208.1416950395834 208.3277070395834 +78 208.3277070395834 208.4873495395834 +85 208.1416950395834 208.4873495395834 +64 208.5192780395834 208.70529003958342 +66 208.70529003958342 208.89130203958342 +76 208.5192780395834 208.89130203958342 +73 208.5192780395834 208.89130203958342 +69 208.89130203958342 209.07211203958343 +73 208.89130203958342 209.2227870395834 +66 209.07211203958343 209.23785453958342 +69 209.2529220395834 209.4347402895834 +66 209.4347402895834 209.61655853958342 +69 209.61655853958342 209.79837678958341 +73 209.2529220395834 209.94989199791675 +66 209.79837678958341 209.96504351875006 +66 209.9801950395834 210.1662070395834 +62 210.1662070395834 210.35221903958342 +69 209.9801950395834 210.35221903958342 +69 210.35221903958342 210.53100328958342 +62 210.53100328958342 210.70978753958343 +73 210.35221903958342 210.70978753958343 +68 210.70978753958343 210.89160578958342 +62 210.89160578958342 211.07342403958344 +71 210.70978753958343 211.07342403958344 +71 211.07342403958344 211.25121228958344 +68 211.07342403958344 211.25121228958344 +69 211.25121228958344 211.42900053958346 +65 211.25121228958344 211.42900053958346 +68 211.42900053958346 211.61183828958346 +62 211.61183828958346 211.7939870916668 +68 211.7939870916668 211.9724735916668 +62 211.9724735916668 212.1509600916668 +71 211.42900053958346 212.1509600916668 +62 212.3357345916668 212.5205090916668 +68 212.1509600916668 212.5205090916668 +68 212.5205090916668 212.6999993416668 +62 212.6999993416668 212.8794895916668 +71 212.5205090916668 212.8794895916668 +64 212.8794895916668 213.0631780916668 +66 213.0631780916668 213.24686659166682 +76 212.8794895916668 213.24686659166682 +73 212.8794895916668 213.24686659166682 +69 213.24686659166682 213.42767659166682 +73 213.24686659166682 213.5783515916668 +66 213.42767659166682 213.59341909166682 +69 213.6084865916668 213.7903048416668 +66 213.7903048416668 213.97212309166682 +69 213.97212309166682 214.1539413416668 +73 213.6084865916668 214.30545655000014 +66 214.1539413416668 214.32060807083346 +66 214.3357595916668 214.5217715916668 +62 214.5217715916668 214.7077835916668 +69 214.3357595916668 214.7077835916668 +69 214.7077835916668 214.88656784166682 +62 214.88656784166682 215.06535209166682 +73 214.7077835916668 215.06535209166682 +71 215.06535209166682 215.24083184166682 +66 215.24083184166682 215.4163115916668 +71 215.4163115916668 215.59179134166683 +66 215.59179134166683 215.76727109166683 +71 215.76727109166683 215.94275084166682 +66 215.94275084166682 216.11823059166682 +71 216.11823059166682 216.29371034166684 +66 216.29371034166684 216.46919009166683 +74 215.06535209166682 216.46919009166683 +66 216.46919009166683 216.65076609166684 +62 216.65076609166684 216.83234209166685 +71 216.46919009166683 216.83234209166685 +71 216.83234209166685 217.01711659166685 +66 217.01711659166685 217.17109534166684 +74 216.83234209166685 217.17109534166684 +74 217.20189109166685 217.38138134166684 +71 217.38138134166684 217.56087159166685 +78 217.20189109166685 217.56087159166685 +66 217.56087159166685 217.73635134166685 +74 217.56087159166685 217.88258446666686 +71 217.73635134166685 217.89720777916685 +71 218.09132134166683 218.27081159166684 +66 218.27081159166684 218.45030184166683 +74 217.91183109166684 218.59987705000017 +71 218.45030184166683 218.6148345708335 +73 218.62979209166684 218.81566559166686 +71 218.81566559166686 219.00153909166684 +76 218.62979209166684 219.00153909166684 +74 219.00153909166684 219.18032334166685 +71 219.18032334166685 219.35910759166686 +78 219.00153909166684 219.35910759166686 +77 219.35910759166686 219.53789184166683 +80 219.35910759166686 219.71667609166684 +80 219.71667609166684 219.89119609166684 +77 219.71667609166684 219.89119609166684 +78 219.89119609166684 220.06571609166684 +75 219.89119609166684 220.06571609166684 +71 219.53789184166683 220.06571609166684 +77 220.06571609166684 220.24318884166684 +71 220.24318884166684 220.39108280000016 +80 220.06571609166684 220.39108280000016 +73 220.42066159166686 220.60329884166686 +71 220.60329884166686 220.78593609166685 +77 220.42066159166686 220.78593609166685 +75 220.78593609166685 220.96857334166685 +71 220.96857334166685 221.15121059166685 +78 220.78593609166685 221.15121059166685 +77 221.15121059166685 221.32969709166684 +71 221.32969709166684 221.50818359166686 +80 221.15121059166685 221.50818359166686 +78 221.50818359166686 221.68767384166685 +73 221.68767384166685 221.86716409166687 +81 221.50818359166686 221.86716409166687 +73 221.86716409166687 222.04264384166686 +78 221.86716409166687 222.19308321666685 +69 222.04264384166686 222.20812715416685 +73 222.22317109166687 222.40266134166686 +69 222.40266134166686 222.58215159166687 +73 222.58215159166687 222.76164184166686 +78 222.22317109166687 222.9112170500002 +69 222.76164184166686 222.92617457083352 +78 222.94113209166687 223.1270055916669 +73 223.1270055916669 223.31287909166687 +81 222.94113209166687 223.31287909166687 +81 223.31287909166687 223.50798834166687 +78 223.50798834166687 223.70309759166688 +85 223.31287909166687 223.70309759166688 +81 223.70309759166688 223.8889710916669 +78 223.70309759166688 223.8889710916669 +74 223.8889710916669 224.07484459166687 +81 224.07484459166687 224.25433484166686 +78 224.07484459166687 224.25433484166686 +74 224.25433484166686 224.43382509166688 +81 224.43382509166688 224.61331534166686 +78 224.43382509166688 224.61331534166686 +74 224.61331534166686 224.79280559166688 +78 224.79280559166688 224.97229584166686 +81 224.79280559166688 224.97229584166686 +74 224.97229584166686 225.15178609166688 +78 225.15178609166688 225.33127634166686 +81 225.15178609166688 225.33127634166686 +74 225.33127634166686 225.51076659166688 +81 225.51076659166688 225.69445509166687 +78 225.51076659166688 225.69445509166687 +74 225.69445509166687 225.87814359166688 +81 225.87814359166688 226.05763384166687 +78 225.87814359166688 226.05763384166687 +74 226.05763384166687 226.23712409166689 +81 226.23712409166689 226.41661434166687 +78 226.23712409166689 226.41661434166687 +74 226.41661434166687 226.5961045916669 +86 223.70309759166688 226.5961045916669 +86 226.5961045916669 226.7766318416669 +81 226.5961045916669 226.7766318416669 +76 226.7766318416669 226.95715909166688 +86 226.95715909166688 227.1376863416669 +81 226.95715909166688 227.1376863416669 +76 227.1376863416669 227.31821359166688 +88 226.5961045916669 227.31821359166688 +86 227.31821359166688 227.50190209166686 +81 227.31821359166688 227.50190209166686 +78 227.50190209166686 227.68559059166688 +81 227.68559059166688 227.86927909166687 +86 227.68559059166688 227.86927909166687 +78 227.86927909166687 228.05296759166689 +90 227.31821359166688 228.05296759166689 +86 228.05296759166689 228.23995334166688 +81 228.05296759166689 228.23995334166688 +78 228.23995334166688 228.4269390916669 +86 228.4269390916669 228.6074663416669 +81 228.4269390916669 228.6074663416669 +78 228.6074663416669 228.7879935916669 +86 228.7879935916669 228.9685208416669 +81 228.7879935916669 228.9685208416669 +78 228.9685208416669 229.14904809166688 +86 229.14904809166688 229.3295753416669 +81 229.14904809166688 229.3295753416669 +78 229.3295753416669 229.5101025916669 +86 229.5101025916669 229.6906298416669 +81 229.5101025916669 229.6906298416669 +78 229.6906298416669 229.8711570916669 +86 229.8711570916669 230.0603838416669 +81 229.8711570916669 230.0603838416669 +78 230.0603838416669 230.2496105916669 +81 230.2496105916669 230.4322478416669 +86 230.2496105916669 230.4322478416669 +78 230.4322478416669 230.6148850916669 +81 230.6148850916669 230.7975223416669 +86 230.6148850916669 230.7975223416669 +78 230.7975223416669 230.9801595916669 +90 228.05296759166689 230.9801595916669 +81 230.9801595916669 231.1627968416669 +78 230.9801595916669 231.1627968416669 +74 231.1627968416669 231.3454340916669 +81 231.3454340916669 231.5280713416669 +78 231.3454340916669 231.5280713416669 +74 231.5280713416669 231.7107085916669 +86 230.9801595916669 231.7107085916669 +86 231.7107085916669 231.8933458416669 +83 231.7107085916669 231.8933458416669 +78 231.8933458416669 232.0759830916669 +86 232.0759830916669 232.2586203416669 +83 232.0759830916669 232.2586203416669 +78 232.2586203416669 232.4787875916669 +90 231.7107085916669 232.4787875916669 +81 232.4787875916669 232.6149367791669 +88 232.4787875916669 232.6149367791669 +93 232.4787875916669 232.6149367791669 +69 232.8418520916669 233.0046125916669 +64 232.8418520916669 233.0046125916669 +62 233.0046125916669 233.1830990916669 +64 233.1830990916669 233.2290212166669 +69 233.1830990916669 233.2290212166669 +69 233.5504760916669 233.6423203416669 +64 233.5504760916669 233.6423203416669 +71 234.2789075916669 234.3691712166669 +79 234.2789075916669 234.3691712166669 +83 234.2789075916669 234.3691712166669 +72 234.6399620916669 234.7323493416669 +79 234.6399620916669 234.7323493416669 +84 234.6399620916669 234.7323493416669 +72 235.0095110916669 235.17227159166688 +67 235.0095110916669 235.17227159166688 +65 235.17227159166688 235.35075809166688 +72 235.35075809166688 235.39668021666688 +67 235.35075809166688 235.39668021666688 +72 235.71813509166688 235.8099793416669 +67 235.71813509166688 235.8099793416669 +71 236.4444925916669 236.5342377166669 +79 236.4444925916669 236.5342377166669 +83 236.4444925916669 236.5342377166669 +69 236.8034730916669 236.8958603416669 +76 236.8034730916669 236.8958603416669 +81 236.8034730916669 236.8958603416669 +69 237.1730220916669 237.33578259166688 +64 237.1730220916669 237.33578259166688 +64 237.33578259166688 237.51426909166688 +69 237.51426909166688 237.56019121666688 +64 237.51426909166688 237.56019121666688 +69 237.88164609166688 237.9734903416669 +64 237.88164609166688 237.9734903416669 +71 238.61007759166688 238.70034121666689 +79 238.61007759166688 238.70034121666689 +83 238.61007759166688 238.70034121666689 +72 238.97113209166687 239.06351934166688 +79 238.97113209166687 239.06351934166688 +84 238.97113209166687 239.06351934166688 +72 239.34068109166688 239.50344159166687 +67 239.34068109166688 239.50344159166687 +65 239.50344159166687 239.68192809166686 +72 239.68192809166686 239.72785021666687 +67 239.68192809166686 239.72785021666687 +72 240.04930509166687 240.14114934166687 +67 240.04930509166687 240.14114934166687 +71 240.79065359166688 240.8919912166669 +79 240.79065359166688 240.8919912166669 +83 240.79065359166688 240.8919912166669 +83 241.19600409166688 241.2929534666669 +79 241.19600409166688 241.2929534666669 +71 241.19600409166688 241.2929534666669 +64 243.6033650916669 244.4962618416669 +65 244.4962618416669 244.5679155916669 +67 244.5679155916669 244.63980188333355 +69 244.63980188333355 244.7119207166669 +71 244.7119207166669 244.78403955000022 +72 244.78403955000022 244.8566295500002 +74 244.8566295500002 244.92921955000023 +76 244.92921955000023 245.00205359166688 +77 245.00205359166688 245.07513167500022 +79 245.07513167500022 245.14820975833356 +81 245.14820975833356 245.2217608416669 +83 245.2217608416669 245.29531192500022 +84 245.29531192500022 245.36895517500025 +86 245.36895517500025 245.44295342500024 +88 245.44295342500024 245.51801821666692 +89 245.51801821666692 245.5941690916669 +91 245.5941690916669 245.6711632583336 +93 245.6711632583336 245.74901563333358 +95 245.74901563333358 245.82804317500023 +96 245.82804317500023 245.9082818416669 +98 245.9082818416669 245.98913688333357 +100 245.98913688333357 246.07126692500023 +101 246.07126692500023 246.15469892500022 +103 246.15469892500022 246.23948917500022 +105 246.23948917500022 246.64753388958354 +57 248.68724138958353 248.89121213958353 +track Piano left +57 0.0 0.052011125 +50 0.0 0.052011125 +53 0.41201525 0.461402875 +60 0.41201525 0.461402875 +50 0.8232715 1.0259467500000001 +50 1.641801 1.7203295625000001 +45 2.4909125000000003 2.9029277500000004 +38 3.3030877500000004 3.6933412500000005 +45 4.10283075 4.52164975 +40 4.94046875 5.352484 +52 5.760088499999999 6.169369999999999 +57 6.169369999999999 6.587599999999998 +40 6.587599999999998 6.7942684999999985 +59 7.431229499999999 8.058720999999998 +60 8.058720999999998 8.266765499999998 +59 8.266765499999998 8.89121125 +60 8.89121125 9.097879749999999 +62 9.097879749999999 9.714048749999998 +64 9.714048749999998 9.948460499999998 +52 7.431229499999999 9.948460499999998 +53 9.948460499999998 10.767137499999997 +60 9.948460499999998 10.767137499999997 +69 9.948460499999998 10.767137499999997 +55 10.767137499999997 11.599397249999997 +62 10.767137499999997 11.599397249999997 +65 10.767137499999997 11.599397249999997 +64 11.599397249999997 12.420771999999998 +55 11.599397249999997 12.420771999999998 +48 11.599397249999997 12.420771999999998 +60 12.420771999999998 12.841070749999998 +57 12.420771999999998 12.841070749999998 +53 12.420771999999998 12.841070749999998 +62 12.841070749999998 13.222485666666666 +57 12.841070749999998 13.222485666666666 +50 12.841070749999998 13.222485666666666 +48 13.257159749999998 14.066679999999998 +57 13.257159749999998 14.066679999999998 +41 13.257159749999998 14.066679999999998 +50 14.066679999999998 14.894792249999997 +58 14.066679999999998 14.894792249999997 +43 14.066679999999998 14.894792249999997 +60 14.894792249999997 15.714809249999998 +55 14.894792249999997 15.714809249999998 +48 14.894792249999997 15.714809249999998 +60 15.714809249999998 16.34914675 +53 15.714809249999998 16.34914675 +52 16.34914675 16.552014 +50 16.552014 17.177983 +48 17.177983 17.38085025 +53 16.552014 17.38085025 +47 17.38085025 17.997396500000004 +45 17.997396500000004 18.200263750000005 +43 18.200263750000005 18.814187000000008 +45 18.814187000000008 19.012024000000007 +53 17.38085025 19.41775850000001 +55 19.41775850000001 19.620625750000006 +52 19.620625750000006 19.828814500000007 +47 19.012024000000007 19.828814500000007 +47 19.828814500000007 20.445337000000006 +45 20.445337000000006 20.646922750000005 +43 20.646922750000005 21.258215250000006 +45 21.258215250000006 21.454833500000007 +53 19.828814500000007 22.063435250000005 +55 22.063435250000005 22.271624000000006 +47 21.454833500000007 22.271624000000006 +56 22.271624000000006 22.47839773333334 +54 22.47839773333334 22.68370848333334 +52 22.68370848333334 22.88901923333334 +54 22.88901923333334 23.09432998333334 +56 23.09432998333334 23.297005233333337 +48 22.271624000000006 24.703876650000005 +56 24.703876650000005 24.911921150000005 +54 24.911921150000005 25.119965650000005 +52 25.119965650000005 25.328010150000004 +54 25.328010150000004 25.536054650000004 +56 25.536054650000004 25.744099150000004 +47 24.703876650000005 27.2522729 +38 27.2522729 27.304284025 +53 27.6603974 27.709785025000002 +45 27.6603974 27.709785025000002 +38 28.07165365 28.275624399999998 +45 28.47443165 28.5226074 +53 28.47443165 28.5226074 +38 28.879388900000002 28.95539211875 +45 29.284739400000003 29.338525962500004 +53 29.284739400000003 29.338525962500004 +38 29.715031900000003 29.766699025000005 +45 30.12306965 30.172457275000003 +54 30.12306965 30.172457275000003 +38 30.518170650000002 30.71572115 +45 30.9096199 30.959007525 +54 30.9096199 30.959007525 +38 31.311141149999997 31.513816399999996 +45 31.71649165 31.768844025 +54 31.71649165 31.768844025 +38 32.13531065 32.187321775 +53 32.54343515 32.592822775 +45 32.54343515 32.592822775 +38 32.9546914 33.158662150000005 +45 33.35746940000001 33.405645150000005 +53 33.35746940000001 33.405645150000005 +38 33.76242665000001 33.83842986875001 +45 34.167777150000006 34.22156371250001 +53 34.167777150000006 34.22156371250001 +38 34.59806965000001 34.64973677500001 +62 35.006107400000005 35.10488265000001 +64 35.2036579 35.302433150000006 +66 35.4012084 35.499983650000004 +66 35.59875890000001 35.66260773333334 +67 35.66260773333334 35.72645656666668 +66 35.72645656666668 35.79030540000001 +64 35.79030540000001 35.99038540000001 +62 35.99038540000001 36.19979490000001 +60 36.19979490000001 36.40376565000001 +62 36.40376565000001 36.617471400000014 +60 37.03629040000001 37.23765965000001 +57 37.03629040000001 37.23765965000001 +62 37.23765965000001 37.442970400000014 +64 36.617471400000014 37.442970400000014 +64 37.442970400000014 37.81691677500002 +59 37.442970400000014 37.81691677500002 +55 37.442970400000014 37.81691677500002 +57 37.850911900000014 38.05358715000001 +59 38.05358715000001 38.26440940000001 +54 37.850911900000014 38.26440940000001 +56 38.26440940000001 38.67774640000001 +53 38.26440940000001 38.67774640000001 +60 38.26440940000001 39.06687919166668 +55 38.67774640000001 39.10225490000001 +52 38.67774640000001 39.10225490000001 +54 39.10225490000001 39.51559190000001 +51 39.10225490000001 39.51559190000001 +53 39.51559190000001 39.92892890000001 +50 39.51559190000001 39.92892890000001 +56 39.10225490000001 39.92892890000001 +49 39.92892890000001 40.35802948333335 +48 40.35802948333335 40.52063381666668 +47 40.79408819166668 40.95948537916668 +50 41.237307358333354 41.425781045833354 +46 41.237307358333354 41.425781045833354 +40 41.739903858333356 41.960103483333356 +52 39.92892890000001 42.327102858333355 +33 42.327102858333355 42.784141400000024 +57 42.83461585833336 42.91008882708336 +52 43.03587710833336 43.10908113958336 +52 43.23108785833336 43.28639757083336 +57 43.42629860833336 43.500841389583364 +57 43.62507935833336 43.69962213958336 +52 43.82386010833336 43.89661910833336 +52 44.01788410833336 44.0738641166667 +45 44.21546060833336 44.29235735833336 +40 44.42051860833336 44.48232777500003 +33 44.85678165000002 45.25029392083336 +57 45.26740315000002 45.34220365000002 +52 45.466871150000024 45.538263462500026 +52 45.65725065000002 45.71119150833336 +57 45.84763015000002 45.921507212500025 +57 46.044635650000025 46.11851271250002 +52 46.24164115000002 46.312601181250024 +52 46.430867900000024 46.487739275000024 +45 46.63159040000002 46.71030580625002 +43 46.84149815000002 46.90374187916669 +36 47.280865650000024 47.67698027500003 +60 47.69420265000002 47.768794837500025 +55 47.89311515000002 47.96450746250002 +55 48.08349465000002 48.137435508333354 +60 48.27387415000002 48.34754805625002 +60 48.47033790000002 48.54401180625002 +55 48.66680165000002 48.73776168125002 +55 48.85602840000002 48.913098391666686 +48 49.05745190000002 49.13593658750002 +43 49.266744400000015 49.32847281666668 +36 49.702474400000014 50.09598667083335 +60 50.11309590000001 50.18677946250001 +55 50.30958540000001 50.38105936875001 +55 50.50018265000001 50.55418520416668 +60 50.69077990000001 50.76355774375001 +60 50.88485415000001 50.95763199375001 +55 51.07892840000001 51.15040236875001 +55 51.26952565000001 51.32589920833335 +60 51.46849115000001 51.54758286875001 +58 51.679402400000015 52.12496890000001 +63 52.12496890000001 52.768095625000015 +67 52.12496890000001 52.768095625000015 +65 52.768095625000015 52.97206637500002 +58 52.768095625000015 52.97206637500002 +67 52.97206637500002 53.59781812500002 +63 52.97206637500002 53.59781812500002 +69 53.59781812500002 53.800493375000016 +65 53.59781812500002 53.800493375000016 +67 53.800493375000016 54.420681625000014 +63 53.800493375000016 54.420681625000014 +58 54.420681625000014 54.630091125000014 +65 54.420681625000014 54.630091125000014 +67 54.630091125000014 55.455662875000016 +57 54.630091125000014 55.455662875000016 +57 55.455662875000016 57.06048333333335 +50 55.455662875000016 57.06048333333335 +62 57.09562037500002 57.71700912500002 +65 57.09562037500002 57.71700912500002 +64 57.71700912500002 57.92097987500002 +57 57.71700912500002 57.92097987500002 +65 57.92097987500002 58.54110912500002 +62 57.92097987500002 58.54110912500002 +67 58.54110912500002 58.74378437500002 +64 58.54110912500002 58.74378437500002 +65 58.74378437500002 59.36260762500002 +62 58.74378437500002 59.36260762500002 +57 59.36260762500002 59.572017125000016 +64 59.36260762500002 59.572017125000016 +65 59.572017125000016 60.40180512500002 +55 59.572017125000016 60.40180512500002 +48 60.40180512500002 62.033571125000016 +55 60.40180512500002 62.849454125000015 +53 62.849454125000015 63.714100958333354 +51 63.67919937500002 64.53186545833336 +50 64.49696387500002 65.71548687500002 +53 65.71548687500002 66.15659808333336 +55 66.12342837500003 66.54832525000003 +58 66.51431162500003 66.92247512500003 +41 62.033571125000016 66.92247512500003 +53 67.72668587500003 68.58439195833337 +51 68.54949037500003 69.40215645833338 +50 69.36725487500004 70.58285337500004 +53 70.58285337500004 71.02137358333337 +55 70.98820387500004 71.41243379166671 +58 71.37908712500004 71.77924712500004 +41 66.92247512500003 71.77924712500004 +65 72.17940712500004 72.56962562500004 +60 72.17940712500004 72.56962562500004 +57 72.17940712500004 72.56962562500004 +43 71.77924712500004 72.95984412500005 +41 72.95984412500005 73.35006262500004 +55 72.56962562500004 73.35006262500004 +62 72.56962562500004 73.35006262500004 +58 72.56962562500004 73.35006262500004 +40 73.35006262500004 73.75541312500003 +38 73.75541312500003 74.16335462500004 +60 74.56609312500004 74.97403462500004 +64 74.56609312500004 74.97403462500004 +69 74.56609312500004 74.97403462500004 +69 74.97403462500004 75.37164912500005 +64 74.97403462500004 75.37164912500005 +60 74.97403462500004 75.37164912500005 +60 75.37164912500005 75.76926362500005 +57 75.37164912500005 75.76926362500005 +64 75.37164912500005 75.76926362500005 +64 75.76926362500005 76.57481962500005 +36 74.16335462500004 76.57481962500005 +57 75.76926362500005 76.57481962500005 +60 75.76926362500005 76.57481962500005 +65 76.97497962500005 77.36519812500005 +60 76.97497962500005 77.36519812500005 +57 76.97497962500005 77.36519812500005 +43 76.57481962500005 77.75541662500005 +41 77.75541662500005 78.14563512500004 +55 77.36519812500005 78.14563512500004 +62 77.36519812500005 78.14563512500004 +58 77.36519812500005 78.14563512500004 +40 78.14563512500004 78.55098562500004 +38 78.55098562500004 78.94860012500004 +60 79.34453512500004 79.74792362500004 +64 79.34453512500004 79.74792362500004 +69 79.34453512500004 79.74792362500004 +69 79.74792362500004 80.14141762500005 +64 79.74792362500004 80.14141762500005 +60 79.74792362500004 80.14141762500005 +60 80.14141762500005 80.52097212500004 +57 80.14141762500005 80.52097212500004 +64 80.14141762500005 80.52097212500004 +64 80.52097212500004 80.92182712500005 +60 80.52097212500004 80.92182712500005 +57 80.52097212500004 80.92182712500005 +65 80.92182712500005 81.29913812500006 +62 80.92182712500005 81.29913812500006 +70 80.92182712500005 81.29913812500006 +70 81.29913812500006 81.69263212500006 +65 81.29913812500006 81.69263212500006 +62 81.29913812500006 81.69263212500006 +72 81.69263212500006 82.06994312500007 +67 81.69263212500006 82.06994312500007 +64 81.69263212500006 82.06994312500007 +72 82.06994312500007 82.46102662500006 +67 82.06994312500007 82.46102662500006 +64 82.06994312500007 82.46102662500006 +69 82.46102662500006 82.83699422291672 +64 82.46102662500006 82.83699422291672 +60 82.46102662500006 82.83699422291672 +69 82.83699422291672 83.21096572291673 +64 82.83699422291672 83.21096572291673 +60 82.83699422291672 83.21096572291673 +72 83.21096572291673 83.58493722291672 +36 78.94860012500004 83.58493722291672 +64 83.21096572291673 83.58493722291672 +69 83.21096572291673 83.58493722291672 +65 83.95890872291672 84.34431472291672 +62 84.34431472291672 85.09225772291673 +60 85.09225772291673 85.46622922291672 +62 85.46622922291672 85.83360622291673 +55 84.34431472291672 85.83360622291673 +34 83.58493722291672 85.83360622291673 +41 83.58493722291672 85.83360622291673 +58 84.34431472291672 85.83360622291673 +67 85.83360622291673 86.21436522291673 +69 86.21436522291673 86.57963972291672 +69 86.57963972291672 86.95581522291673 +64 86.95581522291673 87.34361272291673 +64 87.34361272291673 88.11920772291673 +62 85.83360622291673 88.11920772291673 +58 85.83360622291673 88.11920772291673 +65 88.51936772291673 88.92998922291673 +62 88.92998922291673 89.72019122291672 +60 89.72019122291672 90.12813272291673 +62 90.12813272291673 90.52530193125007 +53 88.92998922291673 90.56140822291673 +34 88.11920772291673 90.56140822291673 +41 88.11920772291673 90.56140822291673 +58 88.92998922291673 90.56140822291673 +40 90.56140822291673 91.30611122291673 +28 90.56140822291673 91.30611122291673 +41 91.30611122291673 92.05411122291673 +29 91.30611122291673 92.05411122291673 +43 92.05411122291673 92.80211122291674 +31 92.05411122291673 92.80211122291674 +45 92.80211122291674 93.54560522291673 +33 92.80211122291674 93.54560522291673 +47 93.54560522291673 93.92405872291674 +35 93.54560522291673 93.92405872291674 +45 93.92405872291674 94.31185622291675 +33 93.92405872291674 94.31185622291675 +43 94.31185622291675 94.72519322291674 +31 94.31185622291675 94.72519322291674 +41 94.72519322291674 95.16760572291675 +29 94.72519322291674 95.16760572291675 +40 95.16760572291675 95.91230872291675 +28 95.16760572291675 95.91230872291675 +41 95.91230872291675 96.66030872291675 +29 95.91230872291675 96.66030872291675 +43 96.66030872291675 97.40830872291676 +31 96.66030872291675 97.40830872291676 +45 97.40830872291676 98.16314872291676 +33 97.40830872291676 98.16314872291676 +35 98.16314872291676 99.00739022291677 +47 98.16314872291676 99.00739022291677 +48 99.00739022291677 100.05907097291677 +36 99.00739022291677 100.05907097291677 +54 100.05907097291677 100.11006366041677 +38 99.95641559791677 100.11006366041677 +45 100.00774328541678 100.11006366041677 +54 101.67304847291678 101.87572372291677 +45 101.61998491041678 101.87572372291677 +38 101.56692134791678 101.87572372291677 +54 102.50869147291677 102.56035859791676 +45 102.45490491041677 102.56035859791676 +38 102.40111834791678 102.56035859791676 +69 103.31183022291677 103.36121784791678 +62 104.11041672291678 104.16457616041679 +65 105.00507172291678 107.43331422291675 +66 107.43331422291675 108.23645297291675 +69 108.23645297291675 109.03503947291676 +62 105.00507172291678 109.03503947291676 +60 105.00507172291678 109.03503947291676 +50 109.03503947291676 109.25167722291677 +62 109.87319303541676 110.27962097291676 +71 109.92969447291676 110.32870472291677 +55 109.81669159791677 110.32870472291677 +55 111.51585222291676 112.37750772291676 +48 111.51585222291676 112.37750772291676 +64 111.51585222291676 112.37750772291676 +59 112.37750772291676 112.77651797291676 +43 112.26611609791676 112.77651797291676 +50 112.32181191041676 112.77651797291676 +45 113.96502322291677 114.40132322291677 +42 114.40132322291677 114.87368972291678 +48 113.96502322291677 116.47735638958343 +47 116.47735638958343 117.28336338958343 +40 114.87368972291678 117.28336338958343 +45 117.28336338958343 117.68610188958343 +33 117.28336338958343 117.68610188958343 +57 118.08884038958342 118.21469617083343 +52 118.49157888958342 118.61743467083343 +45 118.89431738958343 119.04534432708343 +43 119.29705588958343 119.44808282708343 +67 120.67613301458343 120.77310738958343 +65 120.77310738958343 120.87008176458343 +64 120.87008176458343 120.96705613958343 +62 120.96705613958343 121.06403051458342 +60 121.06403051458342 121.16100488958342 +59 121.16100488958342 121.25797926458343 +57 121.25797926458343 121.65576001458344 +55 121.65576001458344 122.05346051458343 +41 119.69979438958343 122.05346051458343 +29 119.69979438958343 122.05346051458343 +57 122.05346051458343 122.44988351458343 +59 122.44988351458343 122.84630651458343 +60 122.84630651458343 123.24891926458344 +62 123.24891926458344 123.64648076458344 +59 123.64648076458344 124.07609576458344 +57 124.07609576458344 124.29235876458344 +55 124.29235876458344 124.50862176458344 +67 125.48496038958343 125.58193476458344 +65 125.58193476458344 125.67890913958344 +64 125.67890913958344 125.77588351458344 +62 125.77588351458344 125.87285788958343 +60 125.87285788958343 125.96983226458343 +59 125.96983226458343 126.06680663958343 +57 126.06680663958343 126.46212463958344 +55 126.46212463958344 126.85610338958344 +41 124.50862176458344 126.85610338958344 +29 124.50862176458344 126.85610338958344 +57 126.85610338958344 127.25252638958344 +59 127.25252638958344 127.64894938958344 +60 127.64894938958344 128.05156213958344 +62 128.05156213958344 128.44912363958343 +57 128.44912363958343 128.87873863958345 +55 128.87873863958345 129.09994488958344 +53 129.09994488958344 129.32115113958343 +65 130.29748976458345 130.39446413958345 +63 130.39446413958345 130.49143851458345 +62 130.49143851458345 130.58841288958345 +60 130.58841288958345 130.68538726458345 +58 130.68538726458345 130.78236163958346 +57 130.78236163958346 130.87933601458346 +55 130.87933601458346 131.27711676458347 +53 131.27711676458347 131.67481726458345 +39 129.32115113958343 131.67481726458345 +27 129.32115113958343 131.67481726458345 +55 131.67481726458345 132.07124026458345 +57 132.07124026458345 132.46766326458345 +58 132.46766326458345 132.87027601458345 +60 132.87027601458345 133.26783751458345 +57 133.26783751458345 133.69745251458346 +55 133.69745251458346 133.91371551458346 +53 133.91371551458346 134.12997851458346 +65 135.10257988958347 135.19893138958346 +63 135.19893138958346 135.29528288958346 +62 135.29528288958346 135.39163438958346 +60 135.39163438958346 135.48798588958346 +58 135.48798588958346 135.58433738958345 +57 135.58433738958345 135.68068888958348 +55 135.68068888958348 136.0784696395835 +53 136.0784696395835 136.47617013958347 +39 134.12997851458346 136.47617013958347 +27 134.12997851458346 136.47617013958347 +55 136.47617013958347 136.87259313958347 +57 136.87259313958347 137.26901613958347 +58 137.26901613958347 137.67162888958347 +60 137.67162888958347 138.06919038958347 +57 138.06919038958347 138.49880538958348 +58 138.49880538958348 138.71506838958348 +60 138.71506838958348 138.92037913958347 +57 138.92037913958347 139.51680088958346 +50 138.92037913958347 139.51680088958346 +45 139.51680088958346 139.67180226458348 +57 139.72346938958347 140.31989113958346 +50 139.72346938958347 140.31989113958346 +45 140.31989113958346 140.51259413958346 +57 140.51259413958346 140.91020863958346 +50 140.51259413958346 140.91020863958346 +42 140.91020863958346 141.32354563958347 +43 141.32354563958347 141.73688263958346 +45 141.73688263958346 142.13704263958346 +46 142.13704263958346 142.93736263958345 +45 142.93736263958345 143.75884238958346 +50 143.75884238958346 145.25659176458348 +59 145.36271888958348 146.08476401458347 +50 145.30965532708348 146.08476401458347 +43 145.25659176458348 146.08476401458347 +47 146.19695551458346 147.81621901458348 +55 146.14085976458347 147.81621901458348 +40 146.08476401458347 147.81621901458348 +45 147.81621901458348 148.6446630979168 +57 148.6446630979168 149.2410848479168 +50 148.6446630979168 149.2410848479168 +45 149.2410848479168 149.3960862229168 +57 149.4477533479168 150.0441750979168 +50 149.4477533479168 150.0441750979168 +45 150.0441750979168 150.2368780979168 +57 150.2368780979168 150.6344925979168 +50 150.2368780979168 150.6344925979168 +42 150.6344925979168 151.0478295979168 +43 151.0478295979168 151.4611665979168 +45 151.4611665979168 151.8613265979168 +47 151.8613265979168 152.23026553541678 +49 152.2829710979168 152.6909125979168 +50 152.6909125979168 153.0962630979168 +52 153.0962630979168 153.50688459791678 +54 153.50688459791678 153.86617841041678 +55 153.9175060979168 154.3202445979168 +57 154.3202445979168 154.72214405625013 +59 154.72214405625013 155.1148140562501 +61 155.1148140562501 155.9538525562501 +69 155.9538525562501 156.0532561812501 +62 155.9538525562501 156.0532561812501 +57 156.3514670562501 156.4508706812501 +50 156.74297730625008 156.8423809312501 +57 157.1405918062501 157.2399954312501 +62 157.53210205625007 157.63087730625006 +54 157.92720305625008 158.33255355625008 +69 157.92720305625008 158.33255355625008 +63 157.92720305625008 158.33255355625008 +60 157.92720305625008 158.33255355625008 +55 158.33255355625008 158.73790405625007 +67 158.33255355625008 158.73790405625007 +62 158.33255355625008 158.73790405625007 +58 158.33255355625008 158.73790405625007 +57 158.73790405625007 159.13806405625007 +62 158.73790405625007 159.13806405625007 +66 158.73790405625007 159.13806405625007 +58 159.13806405625007 159.93838405625007 +62 159.13806405625007 159.93838405625007 +64 159.13806405625007 159.93838405625007 +61 159.93838405625007 160.75962705625008 +64 159.93838405625007 160.75962705625008 +67 159.93838405625007 160.75962705625008 +57 161.57845455625008 162.38393155625008 +62 160.75962705625008 162.38393155625008 +66 160.75962705625008 162.38393155625008 +55 162.38393155625008 163.23632055625006 +59 162.38393155625008 164.93005555625007 +61 164.93005555625007 165.9055500562501 +45 163.23632055625006 165.9055500562501 +52 163.23632055625006 165.9055500562501 +44 165.9055500562501 166.82270105625008 +45 166.82270105625008 167.25900105625007 +47 167.25900105625007 167.68064555625008 +49 167.68064555625008 168.1109380562501 +51 168.1109380562501 168.3123073062501 +53 168.3123073062501 168.5136765562501 +54 168.5136765562501 169.3042125562501 +56 169.3042125562501 170.1204615562501 +57 170.1204615562501 170.8995138062501 +59 170.9339585562501 171.7552015562501 +61 171.7552015562501 172.1712905562501 +62 172.1712905562501 172.5766410562501 +64 172.5766410562501 172.99546005625012 +65 172.99546005625012 173.42873555625013 +66 173.42873555625013 177.0556030562501 +46 177.0556030562501 177.96819034791676 +34 177.0556030562501 177.96819034791676 +67 178.11544159791677 179.0258976187501 +63 178.06635784791678 179.03167218125012 +58 178.01727409791678 179.03552188958344 +55 177.96819034791676 179.03552188958344 +34 180.02881759791677 180.92556201458345 +46 179.03937159791678 180.92556201458345 +67 181.07372488958345 181.99871732708345 +63 181.02433726458344 181.99871732708345 +58 180.97494963958346 182.00065651458345 +55 180.92556201458345 182.00065651458345 +34 182.93534488958343 183.33686613958344 +46 182.00453488958345 183.33686613958344 +55 183.74158713958343 184.1443651395834 +51 183.74158713958343 184.1443651395834 +75 184.5493223895834 184.65197776458342 +72 184.5493223895834 184.65197776458342 +67 184.5493223895834 184.65197776458342 +34 185.3902363895834 185.7917576395834 +46 185.3902363895834 185.7917576395834 +55 186.1964786395834 186.5992566395834 +50 186.1964786395834 186.5992566395834 +58 186.1964786395834 186.5992566395834 +74 187.00421388958338 187.10754813958337 +70 187.00421388958338 187.10754813958337 +67 187.00421388958338 187.10754813958337 +55 187.8478433895834 188.6540856395834 +56 188.6540856395834 189.46182088958338 +73 189.46182088958338 189.5128135770834 +77 189.46182088958338 189.5128135770834 +68 189.46182088958338 189.5128135770834 +46 187.8478433895834 190.29717388958338 +51 190.29717388958338 191.10341613958337 +46 190.29717388958338 191.10341613958337 +73 191.10341613958337 191.50619413958336 +75 191.10341613958337 191.50619413958336 +46 192.74654063958334 193.54067463958333 +51 191.90830663958334 193.54067463958333 +73 193.54067463958333 193.93988813958333 +75 193.54067463958333 193.93988813958333 +51 194.33439813958333 195.14789513958334 +42 195.14789513958334 195.93302124583332 +52 195.14789513958334 195.93302124583332 +73 195.93302124583332 196.32313824583332 +76 195.93302124583332 196.32313824583332 +40 197.4998739958333 197.88624799583332 +52 196.7096984958333 197.88624799583332 +76 198.26554524583332 198.64497899583333 +74 198.26554524583332 198.64497899583333 +40 199.58375599583334 199.76700099583334 +52 199.01979799583333 199.76700099583334 +69 199.76700099583334 200.49343349583333 +61 199.76700099583334 200.49343349583333 +62 199.76700099583334 200.49343349583333 +59 200.49343349583333 201.21553649583333 +62 200.49343349583333 201.21553649583333 +68 200.49343349583333 201.21553649583333 +56 201.21553649583333 201.93524132916667 +62 201.21553649583333 201.93524132916667 +66 201.21553649583333 201.93524132916667 +57 201.93524132916667 203.01718057916668 +64 201.93524132916667 203.01718057916668 +61 201.93524132916667 203.01718057916668 +66 203.01718057916668 203.37406857916667 +61 203.01718057916668 203.37406857916667 +57 203.01718057916668 203.37406857916667 +69 203.37406857916667 203.73708907916668 +66 203.37406857916667 203.73708907916668 +61 203.37406857916667 203.73708907916668 +73 203.73708907916668 204.11008391250002 +40 202.65208357916669 204.11008391250002 +66 203.73708907916668 204.11008391250002 +69 203.73708907916668 204.11008391250002 +69 204.11008391250002 204.84371716458335 +61 204.11008391250002 204.84371716458335 +62 204.11008391250002 204.84371716458335 +59 204.84371716458335 205.57642591458338 +62 204.84371716458335 205.57642591458338 +68 204.84371716458335 205.57642591458338 +56 205.57642591458338 206.3066840395834 +62 205.57642591458338 206.3066840395834 +66 205.57642591458338 206.3066840395834 +57 206.3066840395834 207.4122925395834 +64 206.3066840395834 207.4122925395834 +61 206.3066840395834 207.4122925395834 +54 207.4122925395834 207.7739125395834 +57 207.7739125395834 208.1416950395834 +61 208.1416950395834 208.4873495395834 +40 207.0423790395834 208.4873495395834 +61 208.89130203958342 209.2529220395834 +61 209.2529220395834 209.9801950395834 +54 209.2529220395834 209.9801950395834 +57 209.2529220395834 209.9801950395834 +45 208.5192780395834 210.70978753958343 +45 209.9801950395834 210.70978753958343 +38 208.5192780395834 210.70978753958343 +59 211.07342403958344 211.25121228958344 +56 211.07342403958344 211.25121228958344 +57 211.25121228958344 211.42900053958346 +32 210.70978753958343 211.42900053958346 +44 210.70978753958343 211.42900053958346 +53 211.25121228958344 211.42900053958346 +59 211.42900053958346 212.1509600916668 +56 211.42900053958346 212.1509600916668 +50 211.42900053958346 212.1509600916668 +44 212.1509600916668 212.8794895916668 +61 213.24686659166682 213.6084865916668 +45 212.8794895916668 213.6084865916668 +38 212.8794895916668 213.6084865916668 +61 213.6084865916668 214.3357595916668 +57 213.6084865916668 214.3357595916668 +54 213.6084865916668 214.3357595916668 +45 214.3357595916668 215.06535209166682 +47 215.06535209166682 215.76727109166683 +35 215.06535209166682 215.76727109166683 +62 215.76727109166683 216.46919009166683 +59 215.76727109166683 216.46919009166683 +54 215.76727109166683 216.46919009166683 +33 216.46919009166683 217.20189109166685 +45 216.46919009166683 217.20189109166685 +62 217.56087159166685 217.91183109166684 +44 217.20189109166685 217.91183109166684 +32 217.20189109166685 217.91183109166684 +62 217.91183109166684 218.62979209166684 +61 218.62979209166684 219.00153909166684 +64 218.62979209166684 219.00153909166684 +66 219.00153909166684 219.35910759166686 +56 217.91183109166684 219.35910759166686 +59 217.91183109166684 219.35910759166686 +62 219.00153909166684 219.35910759166686 +68 219.71667609166684 219.89119609166684 +65 219.71667609166684 219.89119609166684 +66 219.89119609166684 220.06571609166684 +37 219.35910759166686 220.06571609166684 +49 219.35910759166686 220.06571609166684 +63 219.89119609166684 220.06571609166684 +68 220.06571609166684 220.39108280000016 +65 220.06571609166684 220.39108280000016 +65 220.42066159166686 220.78593609166685 +61 220.42066159166686 220.78593609166685 +66 220.78593609166685 221.15121059166685 +63 220.78593609166685 221.15121059166685 +68 221.15121059166685 221.50818359166686 +65 221.15121059166685 221.50818359166686 +59 220.06571609166684 221.50818359166686 +66 221.86716409166687 222.22317109166687 +49 221.50818359166686 222.22317109166687 +42 221.50818359166686 222.22317109166687 +66 222.22317109166687 222.94113209166687 +61 222.22317109166687 222.94113209166687 +57 222.22317109166687 222.94113209166687 +61 222.94113209166687 223.70309759166688 +57 222.94113209166687 223.70309759166688 +54 222.94113209166687 223.70309759166688 +57 224.07484459166687 224.43382509166688 +50 224.07484459166687 224.43382509166688 +54 224.07484459166687 224.43382509166688 +62 224.43382509166688 225.15178609166688 +54 224.43382509166688 225.15178609166688 +57 224.43382509166688 225.15178609166688 +57 225.15178609166688 225.51076659166688 +66 225.15178609166688 225.51076659166688 +62 225.15178609166688 225.51076659166688 +62 225.51076659166688 225.87814359166688 +69 225.51076659166688 225.87814359166688 +38 223.70309759166688 225.87814359166688 +45 223.70309759166688 225.87814359166688 +66 225.51076659166688 225.87814359166688 +69 225.87814359166688 228.05296759166689 +66 225.87814359166688 228.05296759166689 +62 225.87814359166688 228.05296759166689 +54 228.4269390916669 228.7879935916669 +50 228.4269390916669 228.7879935916669 +57 228.4269390916669 228.7879935916669 +62 228.7879935916669 229.5101025916669 +54 228.7879935916669 229.5101025916669 +57 228.7879935916669 229.5101025916669 +57 229.5101025916669 229.8711570916669 +66 229.5101025916669 229.8711570916669 +62 229.5101025916669 229.8711570916669 +62 229.8711570916669 230.2496105916669 +69 229.8711570916669 230.2496105916669 +35 228.05296759166689 230.2496105916669 +47 228.05296759166689 230.2496105916669 +66 229.8711570916669 230.2496105916669 +62 230.2496105916669 230.9801595916669 +66 230.2496105916669 230.9801595916669 +69 230.2496105916669 230.9801595916669 +59 231.7107085916669 231.8933458416669 +71 231.7107085916669 231.8933458416669 +66 231.7107085916669 231.8933458416669 +62 231.7107085916669 231.8933458416669 +45 232.4787875916669 232.6149367791669 +40 232.4787875916669 232.6149367791669 +33 232.4787875916669 232.6149367791669 +57 232.8418520916669 233.0046125916669 +60 232.8418520916669 233.0046125916669 +59 233.0046125916669 233.1830990916669 +52 233.0046125916669 233.1830990916669 +57 233.1830990916669 233.2290212166669 +60 233.1830990916669 233.2290212166669 +57 233.5504760916669 233.6423203416669 +60 233.5504760916669 233.6423203416669 +55 234.2789075916669 234.3691712166669 +50 234.2789075916669 234.3691712166669 +43 234.2789075916669 234.3691712166669 +48 234.6399620916669 234.7323493416669 +43 234.6399620916669 234.7323493416669 +36 234.6399620916669 234.7323493416669 +60 235.0095110916669 235.17227159166688 +64 235.0095110916669 235.17227159166688 +62 235.17227159166688 235.35075809166688 +55 235.17227159166688 235.35075809166688 +64 235.35075809166688 235.39668021666688 +60 235.35075809166688 235.39668021666688 +64 235.71813509166688 235.8099793416669 +60 235.71813509166688 235.8099793416669 +55 236.4444925916669 236.5342377166669 +50 236.4444925916669 236.5342377166669 +43 236.4444925916669 236.5342377166669 +57 236.8034730916669 236.8958603416669 +52 236.8034730916669 236.8958603416669 +45 236.8034730916669 236.8958603416669 +60 237.1730220916669 237.33578259166688 +57 237.1730220916669 237.33578259166688 +59 237.33578259166688 237.51426909166688 +52 237.33578259166688 237.51426909166688 +57 237.51426909166688 237.56019121666688 +60 237.51426909166688 237.56019121666688 +57 237.88164609166688 237.9734903416669 +60 237.88164609166688 237.9734903416669 +55 238.61007759166688 238.70034121666689 +50 238.61007759166688 238.70034121666689 +43 238.61007759166688 238.70034121666689 +48 238.97113209166687 239.06351934166688 +43 238.97113209166687 239.06351934166688 +36 238.97113209166687 239.06351934166688 +60 239.34068109166688 239.50344159166687 +64 239.34068109166688 239.50344159166687 +62 239.50344159166687 239.68192809166686 +55 239.50344159166687 239.68192809166686 +64 239.68192809166686 239.72785021666687 +60 239.68192809166686 239.72785021666687 +64 240.04930509166687 240.14114934166687 +60 240.04930509166687 240.14114934166687 +52 240.79065359166688 240.8919912166669 +59 240.79065359166688 240.8919912166669 +64 240.79065359166688 240.8919912166669 +64 241.19600409166688 241.2929534666669 +59 241.19600409166688 241.2929534666669 +52 241.19600409166688 241.2929534666669 +40 241.9715990916669 242.37954059166688 +52 242.7874820916669 243.1954235916669 +36 244.4246080916669 244.8566295500002 +35 245.29531192500022 245.74901563333358 +33 246.23948917500022 246.64753388958354 +45 248.68724138958353 248.89121213958353 +33 248.68724138958353 248.89121213958353 diff --git a/test/midi/debussy/passepied.mid b/test/midi/debussy/passepied.mid new file mode 100644 index 0000000000000000000000000000000000000000..81813f8a62191b79ab925f1a7332215de02e03d8 GIT binary patch literal 23067 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

    yDo)wW$S`@D7 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 literal 0 HcmV?d00001 diff --git a/test/midi/debussy/prelude.mid.txt b/test/midi/debussy/prelude.mid.txt new file mode 100644 index 0000000..0269d45 --- /dev/null +++ b/test/midi/debussy/prelude.mid.txt @@ -0,0 +1,1741 @@ +track Piano right +79 1.3487844999999998 3.1786217500000005 +81 3.1786217500000005 3.3301370000000006 +82 3.3301370000000006 3.4816522500000002 +81 3.4816522500000002 3.6265797500000003 +74 1.3487844999999998 3.6265797500000003 +70 1.3487844999999998 3.6265797500000003 +67 1.3487844999999998 3.6265797500000003 +79 3.6265797500000003 3.7661147500000003 +81 3.7661147500000003 3.90125 +79 3.90125 4.03638525 +77 4.03638525 4.171520500000001 +74 4.171520500000001 4.309135250000001 +77 4.309135250000001 4.443664500000001 +74 4.443664500000001 4.5781937500000005 +72 4.5781937500000005 4.712723 +70 4.712723 4.8503377500000004 +67 4.8503377500000004 4.984867 +62 4.984867 5.11939625 +64 5.11939625 5.2539255 +67 5.2539255 5.3961055 +65 5.3961055 5.54033625 +67 5.54033625 5.6831935 +69 5.6831935 5.8247029999999995 +60 5.2539255 6.401625999999999 +67 5.8247029999999995 6.54585675 +65 6.54585675 6.688036749999999 +67 6.688036749999999 6.831577499999999 +69 6.831577499999999 6.971764499999999 +72 6.971764499999999 7.115305249999999 +69 7.115305249999999 7.256814749999998 +67 7.256814749999998 7.398324249999999 +65 7.398324249999999 7.537213249999999 +62 6.401625999999999 7.537213249999999 +67 7.537213249999999 7.683554749999999 +65 7.683554749999999 7.832069499999999 +67 7.832069499999999 7.9784109999999995 +69 7.9784109999999995 8.12126825 +64 7.537213249999999 8.71532725 +67 8.12126825 8.863842 +65 8.863842 9.0101835 +67 9.0101835 9.156525 +69 9.156525 9.29938225 +74 9.29938225 9.4516665 +69 9.4516665 9.60092025 +67 9.60092025 9.750174 +62 8.71532725 9.89942775 +65 9.750174 10.0491035 +70 10.0491035 10.20510975 +74 10.20510975 10.3568395 +77 10.3568395 10.52212875 +62 9.89942775 10.52212875 +74 10.52212875 11.15257575 +81 10.52212875 11.47866275 +79 11.47866275 11.79781175 +77 11.79781175 12.11031175 +79 12.11031175 12.590844564583332 +77 12.590844564583332 12.753006814583332 +76 12.753006814583332 12.910901564583332 +79 12.910901564583332 13.06879631458333 +72 11.15257575 13.411653314583331 +70 13.411653314583331 13.572943564583332 +69 13.572943564583332 13.731673814583331 +77 13.06879631458333 14.05776081458333 +76 14.05776081458333 14.396743814583331 +65 14.396743814583331 14.743564814583332 +74 14.396743814583331 14.743564814583332 +64 14.743564814583332 15.090385814583332 +72 14.743564814583332 15.090385814583332 +70 13.731673814583331 15.090385814583332 +79 16.43917031458333 18.26900756458333 +81 18.26900756458333 18.42052281458333 +82 18.42052281458333 18.57203806458333 +81 18.57203806458333 18.716965564583333 +67 16.43917031458333 18.716965564583333 +70 16.43917031458333 18.716965564583333 +74 16.43917031458333 18.716965564583333 +79 18.716965564583333 18.85650056458333 +81 18.85650056458333 18.991635814583333 +79 18.991635814583333 19.12677106458333 +77 19.12677106458333 19.26190631458333 +74 19.26190631458333 19.399521064583332 +77 19.399521064583332 19.534050314583332 +74 19.534050314583332 19.668579564583332 +72 19.668579564583332 19.803108814583332 +70 19.803108814583332 19.940723564583333 +67 19.940723564583333 20.075252814583333 +62 20.075252814583333 20.209782064583333 +64 20.209782064583333 20.344311314583333 +67 20.344311314583333 20.49065281458333 +65 20.49065281458333 20.635580314583333 +67 20.635580314583333 20.77981106458333 +69 20.77981106458333 20.92266831458333 +67 20.92266831458333 21.64382206458333 +65 21.64382206458333 21.78533156458333 +67 21.78533156458333 21.92887231458333 +69 21.92887231458333 22.07038181458333 +72 22.07038181458333 22.21461256458333 +69 22.21461256458333 22.35679256458333 +67 22.35679256458333 22.49897256458333 +65 22.49897256458333 22.63915956458333 +67 22.63915956458333 22.78550106458333 +65 22.78550106458333 22.93401581458333 +67 22.93401581458333 23.080357314583328 +69 23.080357314583328 23.22528481458333 +67 23.22528481458333 23.96785856458333 +65 23.96785856458333 24.11420006458333 +67 24.11420006458333 24.26054156458333 +69 24.26054156458333 24.40339881458333 +74 24.40339881458333 24.55568306458333 +69 24.55568306458333 24.70493681458333 +67 24.70493681458333 24.85419056458333 +65 24.85419056458333 25.00344431458333 +63 23.81934381458333 25.00344431458333 +77 25.70798981458333 26.73526281458333 +74 25.70798981458333 26.73526281458333 +76 26.73526281458333 26.88232156458333 +72 26.73526281458333 26.88232156458333 +77 26.88232156458333 27.029380314583328 +74 26.88232156458333 27.029380314583328 +76 27.029380314583328 27.32938031458333 +72 27.029380314583328 27.32938031458333 +70 27.32938031458333 27.476439064583328 +74 27.32938031458333 27.476439064583328 +72 27.476439064583328 27.623497814583327 +76 27.476439064583328 27.623497814583327 +70 27.623497814583327 27.91148786666666 +74 27.623497814583327 27.91148786666666 +67 27.91761531458333 28.18627206458333 +72 27.91761531458333 28.18627206458333 +67 28.21612281458333 28.48975468958333 +72 28.21612281458333 28.48975468958333 +70 28.51463031458333 28.82075281458333 +74 28.51463031458333 28.82075281458333 +76 28.82075281458333 29.11412021041666 +69 28.82075281458333 29.11412021041666 +72 28.82075281458333 29.11412021041666 +70 29.12687531458333 29.40812531458333 +79 29.12687531458333 29.40812531458333 +74 29.12687531458333 29.40812531458333 +70 29.43937531458333 29.75683581458333 +79 29.43937531458333 29.75683581458333 +74 29.43937531458333 29.75683581458333 +81 29.75683581458333 30.07941631458333 +73 29.75683581458333 30.07941631458333 +69 29.75683581458333 30.07941631458333 +77 30.79392981458333 31.82120281458333 +74 30.79392981458333 31.82120281458333 +76 31.82120281458333 31.96826156458333 +72 31.82120281458333 31.96826156458333 +77 31.96826156458333 32.11532031458333 +74 31.96826156458333 32.11532031458333 +76 32.11532031458333 32.415320314583326 +72 32.11532031458333 32.415320314583326 +74 32.415320314583326 32.562379064583325 +70 32.415320314583326 32.562379064583325 +76 32.562379064583325 32.709437814583325 +72 32.562379064583325 32.709437814583325 +70 32.709437814583325 32.99742786666666 +74 32.709437814583325 32.99742786666666 +67 33.00355531458332 33.27628276458332 +72 33.00355531458332 33.27628276458332 +67 33.30658581458332 33.58436377291666 +72 33.30658581458332 33.58436377291666 +70 33.60961631458332 33.92211631458332 +74 33.60961631458332 33.92211631458332 +76 33.92211631458332 34.221595481249985 +69 33.92211631458332 34.221595481249985 +72 33.92211631458332 34.221595481249985 +74 34.23461631458332 34.52969841458332 +70 34.23461631458332 34.52969841458332 +79 34.23461631458332 34.52969841458332 +70 34.56248531458332 34.89956381458332 +74 34.56248531458332 34.89956381458332 +79 34.56248531458332 34.89956381458332 +81 34.89956381458332 35.291720814583314 +73 34.89956381458332 35.291720814583314 +69 34.89956381458332 35.291720814583314 +84 35.697126314583315 36.02861781458331 +82 36.02861781458331 36.18651256458331 +81 36.18651256458331 36.344407314583314 +77 35.697126314583315 36.66873181458332 +74 35.697126314583315 36.66873181458332 +79 36.344407314583314 36.829159564583314 +77 36.829159564583314 36.98705431458331 +79 36.98705431458331 37.14169356458331 +81 37.14169356458331 37.29633281458331 +76 37.29633281458331 37.61891331458331 +74 37.61891331458331 37.94858381458331 +70 37.29633281458331 37.94858381458331 +72 38.29144081458331 38.61752781458331 +70 38.61752781458331 38.77542256458331 +69 38.77542256458331 38.93331731458331 +65 37.94858381458331 38.93331731458331 +67 38.93331731458331 39.09121206458331 +65 39.09121206458331 39.249106814583314 +67 39.249106814583314 39.402953064583315 +69 39.402953064583315 39.54499848124998 +62 38.93331731458331 39.57340756458331 +64 39.57340756458331 39.86752510624998 +62 39.89426306458331 40.193176147916645 +65 40.220350064583315 40.49208923124998 +58 39.57340756458331 40.546437064583316 +57 40.87252406458332 41.04593456458332 +52 40.87252406458332 41.04593456458332 +60 40.87252406458332 41.04593456458332 +53 41.219345064583315 41.39275556458332 +50 41.219345064583315 41.39275556458332 +57 41.219345064583315 41.39275556458332 +52 41.566166064583314 41.73957656458332 +60 41.566166064583314 41.73957656458332 +55 41.566166064583314 41.73957656458332 +60 42.23213606458332 42.338519064583316 +62 42.338519064583316 42.44490206458332 +60 42.44490206458332 42.55128506458332 +57 42.23213606458332 42.55128506458332 +57 42.55128506458332 42.865421064583316 +53 42.55128506458332 42.865421064583316 +60 42.865421064583316 43.17955706458332 +55 42.865421064583316 43.17955706458332 +58 43.17955706458332 43.51854006458332 +62 43.17955706458332 43.51854006458332 +60 43.51854006458332 43.86941706458332 +65 43.51854006458332 43.86941706458332 +67 43.86941706458332 44.92204806458332 +67 44.92204806458332 45.04326023124999 +69 45.04326023124999 45.164472397916654 +67 45.164472397916654 45.28568456458332 +62 43.86941706458332 45.28568456458332 +65 45.28568456458332 45.67278156458332 +64 45.67278156458332 46.089448064583316 +62 45.28568456458332 46.089448064583316 +62 46.089448064583316 46.90577506458332 +58 46.089448064583316 46.90577506458332 +57 46.90577506458332 47.305775064583315 +60 46.90577506458332 47.305775064583315 +55 47.305775064583315 47.753536064583315 +58 47.305775064583315 47.753536064583315 +60 47.753536064583315 48.17552196458332 +65 46.089448064583316 48.604600064583316 +57 47.753536064583315 49.61758156458332 +88 49.61758156458332 50.06534256458332 +83 50.06534256458332 50.96086456458332 +81 50.96086456458332 51.70160556458332 +76 49.61758156458332 52.07197606458332 +76 51.70160556458332 52.07197606458332 +71 52.07197606458332 52.16288518958332 +69 52.16288518958332 52.25379431458332 +71 52.25379431458332 52.34470343958332 +74 52.34470343958332 52.435612564583316 +65 52.07197606458332 52.435612564583316 +88 52.799249064583314 53.247010064583314 +83 53.247010064583314 54.057821064583315 +81 54.057821064583315 54.798562064583315 +76 52.799249064583314 55.168932564583315 +76 54.798562064583315 55.168932564583315 +71 55.168932564583315 55.53256906458331 +65 55.168932564583315 55.89620556458331 +69 55.53256906458331 55.98674960624998 +71 55.98674960624998 56.07840002291665 +69 56.07840002291665 56.17118435624998 +67 56.17118435624998 56.26513089791665 +64 56.26513089791665 57.05482589791665 +60 56.26513089791665 57.05482589791665 +62 57.05482589791665 57.86212489791665 +64 57.86212489791665 58.23479589791665 +65 58.23479589791665 58.59624189791665 +69 58.59624189791665 58.94880610624998 +57 57.05482589791665 58.98085739791665 +64 58.98085739791665 59.37168589791665 +62 59.37168589791665 59.55240889791665 +64 59.55240889791665 59.72784739791665 +62 59.72784739791665 60.064774481249984 +59 58.98085739791665 60.52298839791665 +64 60.13215989791665 60.913816897916654 +62 60.913816897916654 61.12071339791665 +64 61.12071339791665 61.333479397916655 +62 61.333479397916655 61.737226064583325 +57 60.52298839791665 61.817975397916655 +55 61.817975397916655 62.37317564791665 +64 61.817975397916655 62.37317564791665 +59 61.817975397916655 62.37317564791665 +88 62.37317564791665 62.82093664791665 +83 62.82093664791665 63.71645864791665 +81 63.71645864791665 64.45719964791665 +76 62.37317564791665 64.82757014791666 +76 64.45719964791665 64.82757014791666 +71 64.82757014791666 64.91847927291666 +69 64.91847927291666 65.00938839791667 +71 65.00938839791667 65.10029752291666 +74 65.10029752291666 65.19120664791666 +65 64.82757014791666 65.19120664791666 +88 65.59937014791666 66.04713114791666 +83 66.04713114791666 66.85794214791666 +81 66.85794214791666 67.26334764791666 +76 65.59937014791666 67.26334764791666 +93 67.26334764791666 67.71110864791666 +88 67.71110864791666 68.52191964791666 +86 68.52191964791666 68.92732514791666 +81 67.26334764791666 68.92732514791666 +74 68.92732514791666 69.06200681458333 +76 69.02822302291666 69.16451360625 +79 69.13026702291666 69.26844077291666 +71 68.92732514791666 69.33861706458333 +81 69.23371856458333 69.36986706458333 +86 69.33861706458333 70.08861706458333 +88 70.08861706458333 70.47323256458333 +69 70.47323256458333 70.60975298125 +72 70.57550639791666 70.71368014791666 +74 70.67895793958333 70.81906768958333 +67 70.47323256458333 70.89024298125 +76 70.78385643958333 70.92188856458333 +81 70.89024298125 71.45986348125 +79 71.45986348125 71.65341198125 +81 71.65341198125 71.84696048125 +84 71.84696048125 72.04050898125 +74 72.04050898125 72.17702939791667 +76 72.14278281458333 72.28095656458333 +77 72.24623435625 72.38634410625001 +71 72.04050898125 72.45751939791667 +81 72.35113285625 72.48876939791667 +86 72.45751939791667 73.20751939791667 +88 73.20751939791667 73.59967639791667 +69 73.59967639791667 73.73619681458334 +72 73.70195023125 73.84012398125 +74 73.80540177291667 73.94551152291668 +67 73.59967639791667 74.01668681458334 +76 73.91030027291667 74.04833239791667 +81 74.01668681458334 74.58630731458334 +83 74.58630731458334 74.78238581458334 +81 74.78238581458334 74.97846431458333 +79 74.97846431458333 75.17454281458333 +61 75.17454281458333 75.30152823125 +63 75.26968110625 75.39809568958333 +66 75.36583760625 75.49592273124999 +59 75.17454281458333 75.56193006458332 +69 75.46324298124999 75.59298598125 +73 75.56193006458332 76.30727206458332 +75 76.30727206458332 76.69942906458331 +61 76.69942906458331 76.82561331458332 +63 76.79396773124998 76.92156302291666 +64 76.88951173124998 77.01875618958333 +59 76.69942906458331 77.08433068958333 +66 76.98628864791665 77.11638198124999 +68 77.08433068958333 77.66125393958332 +71 77.66125393958332 77.84875393958332 +68 77.84875393958332 78.03625393958332 +71 78.03625393958332 78.22375393958332 +61 78.22375393958332 78.35073935624999 +63 78.31889223124999 78.44730681458331 +66 78.41504873124998 78.54513385624998 +59 78.22375393958332 78.61114118958331 +69 78.51245410624998 78.64319248124997 +73 78.61114118958331 79.1880644395833 +75 79.1880644395833 79.3791471895833 +73 79.3791471895833 79.5702299395833 +75 79.5702299395833 79.7613126895833 +73 79.7613126895833 79.88749693958331 +75 79.85585135624997 79.98344664791665 +76 79.95139535624998 80.08063981458332 +71 79.7613126895833 80.14621431458332 +78 80.04817227291664 80.17847239791665 +80 80.14621431458332 80.72938981458331 +83 80.72938981458331 80.93486931458331 +80 80.93486931458331 81.15069656458331 +83 81.15069656458331 81.39069656458331 +86 81.39069656458331 81.8318730645833 +84 81.8318730645833 82.04400156458331 +83 82.04400156458331 82.24534381458331 +77 81.39069656458331 82.24534381458331 +81 82.24534381458331 82.4316793145833 +79 82.4316793145833 82.6180148145833 +81 82.6180148145833 82.7987378145833 +83 82.7987378145833 82.9432465645833 +74 82.24534381458331 82.97214831458331 +76 82.97214831458331 83.1550750645833 +77 83.1550750645833 83.33800181458331 +71 82.97214831458331 83.33800181458331 +79 83.33800181458331 83.5144723145833 +81 83.5144723145833 83.65571523124997 +74 83.68396381458331 83.86360456458331 +76 83.86360456458331 84.0432453145833 +69 83.33800181458331 84.0432453145833 +77 84.0432453145833 84.2166558145833 +79 84.2166558145833 84.35710518958331 +72 84.3851950645833 84.5670133145833 +74 84.5670133145833 84.7488315645833 +67 84.0432453145833 84.7488315645833 +76 84.7488315645833 84.9202600645833 +77 84.9202600645833 85.0887993145833 +65 84.7488315645833 85.4546528145833 +67 85.4546528145833 85.8273238145833 +71 85.0887993145833 85.97976277291663 +72 86.01025056458329 86.1931773145833 +69 85.8273238145833 86.1931773145833 +74 86.1931773145833 86.3686158145833 +76 86.3686158145833 86.54405431458329 +67 86.1931773145833 86.54405431458329 +65 86.54405431458329 86.98201031458329 +64 86.98201031458329 87.46981531458329 +69 86.54405431458329 87.93856531458329 +71 87.93856531458329 88.12261431458329 +69 88.12261431458329 88.30666331458329 +68 88.30666331458329 88.49071231458329 +69 88.49071231458329 88.6747613145833 +66 88.6747613145833 88.85123181458329 +68 88.85123181458329 89.0277023145833 +69 89.0277023145833 89.3714523145833 +71 89.4027023145833 89.58562906458329 +69 89.58562906458329 89.7685558145833 +66 89.7685558145833 90.15317131458329 +68 90.15317131458329 90.5531713145833 +63 87.46981531458329 90.5531713145833 +64 90.5531713145833 90.89478639791663 +66 90.92584231458329 91.10335706458329 +64 91.10335706458329 91.28087181458329 +60 91.28087181458329 91.4583865645833 +62 91.4583865645833 91.6317970645833 +64 91.6317970645833 92.34608314791663 +66 92.37713906458329 92.55465381458329 +64 92.55465381458329 92.73216856458329 +60 92.73216856458329 92.90968331458329 +62 92.90968331458329 93.0830938145833 +57 90.5531713145833 93.45576481458329 +69 90.5531713145833 93.45576481458329 +64 93.0830938145833 93.82914154374996 +66 93.8453753145833 94.02830206458329 +64 94.02830206458329 94.2112288145833 +60 94.2112288145833 94.39415556458329 +62 94.39415556458329 94.57272706458329 +64 94.57272706458329 95.28701314791662 +66 95.31806906458328 95.51037681458328 +64 95.51037681458328 95.70268456458328 +60 95.70268456458328 95.91851181458328 +62 95.91851181458328 96.14928106458328 +58 93.45576481458329 96.62547156458328 +62 96.62547156458328 96.90497481458328 +64 96.14928106458328 96.99814256458328 +64 96.99814256458328 97.16763406458328 +66 97.16763406458328 97.25237981458328 +68 97.33712556458327 97.42139518958328 +69 97.50566481458327 97.58993443958327 +71 97.67420406458328 97.75800293958328 +72 97.84180181458328 97.92560068958328 +74 98.00939956458328 98.09273293958327 +76 98.17606631458328 98.25939968958328 +78 98.34273306458327 98.42560593958328 +80 98.50847881458327 98.59135168958328 +81 98.67422456458327 98.75771652291661 +83 98.84327214791661 98.93116743958328 +84 99.02135289791661 99.11433364791662 +86 99.21008443958328 99.31425106458329 +88 99.41794206458327 99.86570306458327 +83 99.86570306458327 100.76122506458327 +81 100.76122506458327 101.50196606458327 +76 99.41794206458327 101.87233656458328 +76 101.50196606458327 101.87233656458328 +71 101.87233656458328 101.96324568958327 +69 101.96324568958327 102.05415481458328 +71 102.05415481458328 102.14506393958328 +74 102.14506393958328 102.23597306458328 +65 101.87233656458328 102.23597306458328 +88 102.59960956458328 103.04737056458328 +83 103.04737056458328 103.85818156458328 +81 103.85818156458328 104.59892256458328 +76 102.59960956458328 104.96929306458328 +76 104.59892256458328 104.96929306458328 +66 104.96929306458328 105.33292956458328 +71 104.96929306458328 105.33292956458328 +69 105.33292956458328 105.78711010624995 +71 105.78711010624995 105.87876052291662 +69 105.87876052291662 105.97154485624996 +67 105.97154485624996 106.06549139791663 +65 105.69656606458328 106.06549139791663 +64 106.06549139791663 106.85518639791663 +60 106.06549139791663 106.85518639791663 +62 106.85518639791663 107.66248539791663 +64 107.66248539791663 108.03515639791662 +65 108.03515639791662 108.39660239791662 +69 108.39660239791662 108.74916660624996 +57 106.85518639791663 108.78121789791662 +64 108.78121789791662 109.17204639791662 +62 109.17204639791662 109.35723164791662 +64 109.35723164791662 109.53795464791662 +62 109.53795464791662 109.87488173124996 +59 108.78121789791662 110.33309564791662 +64 109.94226714791662 110.72392414791662 +62 110.72392414791662 110.93082064791662 +64 110.93082064791662 111.14358664791662 +57 111.14358664791662 111.54733331458328 +62 111.14358664791662 111.54733331458328 +64 111.62808264791661 112.18328289791661 +55 111.62808264791661 112.18328289791661 +59 111.62808264791661 112.18328289791661 +88 112.18328289791661 112.63104389791661 +83 112.63104389791661 113.52656589791661 +81 113.52656589791661 114.26730689791661 +76 112.18328289791661 114.63767739791662 +76 114.26730689791661 114.63767739791662 +71 114.63767739791662 114.72858652291661 +69 114.72858652291661 114.81949564791663 +71 114.81949564791663 114.91040477291662 +74 114.91040477291662 115.00131389791662 +65 114.63767739791662 115.00131389791662 +88 115.40947739791662 115.85723839791662 +83 115.85723839791662 116.66804939791662 +81 116.66804939791662 117.09970389791661 +76 115.40947739791662 117.09970389791661 +76 117.09970389791661 117.54746489791661 +71 117.54746489791661 118.35827589791661 +64 117.09970389791661 118.76368139791661 +57 118.76368139791661 119.18034789791662 +69 118.35827589791661 119.18034789791662 +64 119.18034789791662 119.98034789791662 +59 119.18034789791662 120.38034789791662 +62 119.98034789791662 120.47588927291662 +60 120.47588927291662 120.57143064791663 +62 120.57143064791663 120.66697202291662 +64 120.66697202291662 120.76251339791662 +57 120.38034789791662 120.76251339791662 +57 120.76251339791662 121.55198739791662 +53 120.76251339791662 121.55198739791662 +52 121.55198739791662 121.94672439791663 +59 121.55198739791662 121.94672439791663 +57 122.35212989791663 122.50415696041662 +52 122.35212989791663 122.50415696041662 +53 123.18306739791663 123.28723402291664 +50 123.18306739791663 123.28723402291664 +57 123.59973389791664 123.69973389791663 +52 123.59973389791664 123.69973389791663 +57 123.99973389791664 124.09973389791664 +52 123.99973389791664 124.09973389791664 +48 125.51092939791663 125.68739989791662 +50 125.68739989791662 125.86387039791663 +52 125.86387039791663 126.96143089791663 +53 126.96143089791663 127.31026789791663 +50 126.96143089791663 127.31026789791663 +55 127.31026789791663 127.66954939791663 +52 127.31026789791663 127.66954939791663 +53 127.66954939791663 128.01240639791664 +57 127.66954939791663 128.01240639791664 +48 125.86387039791663 128.01240639791664 +58 128.01240639791664 128.36534739791662 +55 128.01240639791664 128.36534739791662 +60 128.36534739791662 128.70820439791663 +57 128.36534739791662 128.70820439791663 +48 128.01240639791664 128.70820439791663 +58 128.70820439791663 129.06114539791662 +53 128.70820439791663 129.06114539791662 +62 128.70820439791663 129.06114539791662 +60 129.06114539791662 129.40597289791663 +57 129.06114539791662 129.40597289791663 +65 129.06114539791662 129.40597289791663 +62 129.40597289791663 129.7544578770833 +58 129.40597289791663 129.7544578770833 +67 129.40597289791663 129.7544578770833 +60 129.76960939791664 130.47549139791664 +57 129.76960939791664 130.47549139791664 +65 129.76960939791664 130.47549139791664 +62 130.47549139791664 130.82843239791663 +53 130.47549139791664 130.82843239791663 +58 130.47549139791664 130.82843239791663 +48 131.19428589791661 131.36972439791663 +50 131.36972439791663 131.5451628979166 +52 131.5451628979166 132.6427233979166 +50 132.6427233979166 132.9915603979166 +53 132.6427233979166 132.9915603979166 +52 132.9915603979166 133.3508418979166 +55 132.9915603979166 133.3508418979166 +53 133.3508418979166 133.69369889791662 +57 133.3508418979166 133.69369889791662 +48 131.5451628979166 133.69369889791662 +58 133.69369889791662 134.0466398979166 +55 133.69369889791662 134.0466398979166 +60 134.0466398979166 134.38949689791662 +57 134.0466398979166 134.38949689791662 +48 133.69369889791662 134.38949689791662 +62 134.38949689791662 134.7424378979166 +53 134.38949689791662 134.7424378979166 +58 134.38949689791662 134.7424378979166 +65 134.7424378979166 135.0872653979166 +57 134.7424378979166 135.0872653979166 +60 134.7424378979166 135.0872653979166 +58 135.0872653979166 135.43575037708328 +67 135.0872653979166 135.43575037708328 +62 135.0872653979166 135.43575037708328 +60 135.45090189791662 136.15678389791663 +57 135.45090189791662 136.15678389791663 +65 135.45090189791662 136.15678389791663 +58 136.15678389791663 136.49501902291664 +67 136.15678389791663 136.49501902291664 +62 136.15678389791663 136.49501902291664 +65 136.85856189791662 137.02901639791662 +67 137.02901639791662 137.19947089791663 +69 137.19947089791663 138.25854302291663 +67 138.25854302291663 138.59187652291664 +70 138.25854302291663 138.59187652291664 +69 138.59187652291664 138.92895502291663 +72 138.59187652291664 138.92895502291663 +70 138.92895502291663 139.25682402291662 +74 138.92895502291663 139.25682402291662 +65 137.19947089791663 139.25682402291662 +75 139.25682402291662 139.59015752291663 +72 139.25682402291662 139.59015752291663 +77 139.59015752291663 139.91624452291663 +74 139.59015752291663 139.91624452291663 +65 139.25682402291662 139.91624452291663 +79 139.91624452291663 140.25332302291662 +75 139.91624452291663 140.25332302291662 +82 140.25332302291662 140.59230602291663 +79 140.25332302291662 140.59230602291663 +72 139.91624452291663 140.59230602291663 +84 140.59230602291663 140.93321502291664 +81 140.59230602291663 140.93321502291664 +77 140.93321502291664 141.26841052291664 +81 140.93321502291664 141.26841052291664 +72 140.59230602291663 141.26841052291664 +79 141.26841052291664 141.60174402291665 +75 141.26841052291664 141.60174402291665 +75 141.60174402291665 141.93507752291663 +72 141.26841052291664 141.93507752291663 +72 141.60174402291665 141.93507752291663 +65 142.28595452291663 142.45544602291662 +67 142.45544602291662 142.62493752291664 +69 142.62493752291664 143.62612760624998 +67 143.65469902291665 143.98256802291664 +70 143.65469902291665 143.98256802291664 +69 143.98256802291664 144.32347702291665 +72 143.98256802291664 144.32347702291665 +74 144.32347702291665 144.64956402291665 +70 144.32347702291665 144.64956402291665 +65 142.62493752291664 144.64956402291665 +72 144.64956402291665 144.98664252291664 +75 144.64956402291665 144.98664252291664 +74 144.98664252291664 145.31451152291663 +77 144.98664252291664 145.31451152291663 +65 144.64956402291665 145.31451152291663 +79 145.31451152291663 145.65542052291664 +75 145.31451152291663 145.65542052291664 +79 145.65542052291664 145.99632952291662 +82 145.65542052291664 145.99632952291662 +72 145.31451152291663 145.99632952291662 +84 145.99632952291662 146.3142487729166 +81 146.34315052291663 146.67834602291663 +82 146.67834602291663 147.01354152291663 +72 145.99632952291662 147.36036252291663 +76 145.99632952291662 147.36036252291663 +84 147.01354152291663 147.6710969395833 +81 147.69934552291664 148.02721452291664 +82 148.02721452291664 148.35508352291666 +84 148.35508352291666 148.9936869395833 +81 149.02193552291666 149.34980452291666 +82 149.34980452291666 149.67767352291668 +74 147.36036252291663 150.00554252291667 +77 147.36036252291663 150.00554252291667 +84 149.67767352291668 150.33341152291666 +82 150.33341152291666 150.49047952291667 +81 150.49047952291667 150.64754752291665 +79 150.64754752291665 150.97363452291665 +81 150.97363452291665 151.28613452291665 +82 151.28613452291665 151.58668110624998 +79 151.61400352291665 151.92813952291664 +81 151.92813952291664 152.24227552291666 +82 152.24227552291666 152.54996802291666 +73 150.00554252291667 152.54996802291666 +76 150.00554252291667 152.54996802291666 +84 152.54996802291666 152.85552373125 +81 152.88330152291667 153.20415702291666 +82 153.20415702291666 153.52501252291665 +84 153.52501252291665 154.13998556458333 +81 154.16672352291667 154.48757902291666 +82 154.48757902291666 154.79214752291665 +74 152.54996802291666 155.10142602291666 +77 152.54996802291666 155.10142602291666 +84 154.79214752291665 155.39397927291665 +82 155.42057502291667 155.57442127291665 +81 155.57442127291665 155.72826752291667 +79 155.72826752291667 156.04405702291666 +81 156.04405702291666 156.35017952291665 +82 156.35017952291665 156.59474477291664 +67 156.67626652291665 156.99541552291666 +69 156.99541552291666 157.31974002291665 +70 157.31974002291665 157.65872302291666 +73 155.10142602291666 157.65872302291666 +76 155.10142602291666 157.65872302291666 +71 157.65872302291666 157.98481002291666 +68 157.98481002291666 158.29408852291667 +69 158.29408852291667 158.60658852291667 +71 158.60658852291667 159.21164177291666 +68 159.23823752291668 159.55073752291668 +69 159.55073752291668 159.85530602291666 +73 157.65872302291666 160.15833652291667 +76 157.65872302291666 160.15833652291667 +71 159.85530602291666 160.46761502291668 +69 160.46761502291668 160.61836877291668 +68 160.61836877291668 160.7691225229167 +66 160.7691225229167 161.0784010229167 +68 161.0784010229167 161.3799085229167 +69 161.3799085229167 161.66341381458338 +66 161.6891870229167 161.99069452291673 +68 161.99069452291673 162.2922020229167 +69 162.2922020229167 162.59370952291673 +72 160.15833652291667 162.59370952291673 +75 160.15833652291667 162.59370952291673 +71 162.59370952291673 162.91285852291674 +68 162.91285852291674 163.22055102291674 +69 163.22055102291674 163.53143202291673 +71 163.53143202291673 164.13178673125006 +68 164.15810252291672 164.46579502291672 +69 164.46579502291672 164.7703635229167 +73 162.59370952291673 165.07339402291672 +76 162.59370952291673 165.07339402291672 +71 164.7703635229167 165.3903266895834 +69 165.3903266895834 165.5451574395834 +68 165.5451574395834 165.6999881895834 +66 165.6999881895834 166.0176166895834 +68 166.0176166895834 166.3272781895834 +69 166.3272781895834 166.61843764791675 +66 166.64490668958342 166.95456818958343 +68 166.95456818958343 167.26422968958343 +69 167.26422968958343 167.57389118958343 +75 165.07339402291672 167.57389118958343 +72 165.07339402291672 167.57389118958343 +70 167.57389118958343 167.8769557437501 +82 167.57389118958343 167.8769557437501 +79 167.8769557437501 168.1846482437501 +74 167.57389118958343 168.1846482437501 +76 167.57389118958343 168.1846482437501 +67 167.8769557437501 168.1846482437501 +69 168.1846482437501 168.4787657437501 +81 168.1846482437501 168.4787657437501 +72 168.1846482437501 168.7772732437501 +76 168.1846482437501 168.7772732437501 +82 168.4787657437501 169.0757807437501 +70 168.4787657437501 169.0757807437501 +67 169.0757807437501 169.3803492437501 +74 168.7772732437501 169.3803492437501 +76 168.7772732437501 169.3803492437501 +79 169.0757807437501 169.3803492437501 +69 169.3803492437501 169.6788567437501 +81 169.3803492437501 169.6788567437501 +70 169.6788567437501 169.9961673687501 +72 169.3803492437501 169.9961673687501 +76 169.3803492437501 169.9961673687501 +82 169.6788567437501 169.9961673687501 +74 169.9961673687501 170.2838242437501 +77 170.3099748687501 170.9041518687501 +76 170.9041518687501 171.0473636187501 +77 171.0473636187501 171.1905753687501 +74 171.1905753687501 171.4892908687501 +72 171.4892908687501 171.63399461875008 +74 171.63399461875008 171.7786983687501 +70 169.9961673687501 172.07741386875009 +70 171.7786983687501 172.07741386875009 +74 172.07741386875009 172.37631446041678 +82 169.9961673687501 172.37631446041678 +82 172.37631446041678 172.67272796041678 +70 172.37631446041678 172.67272796041678 +67 172.67272796041678 172.97677196041678 +74 172.37631446041678 172.97677196041678 +76 172.37631446041678 172.97677196041678 +79 172.67272796041678 172.97677196041678 +69 172.97677196041678 173.26803396041677 +81 172.97677196041678 173.26803396041677 +72 172.97677196041678 173.56215146041677 +76 172.97677196041678 173.56215146041677 +82 173.26803396041677 173.85626896041677 +70 173.26803396041677 173.85626896041677 +67 173.85626896041677 174.15720196041676 +74 173.56215146041677 174.15720196041676 +76 173.56215146041677 174.15720196041676 +79 173.85626896041677 174.15720196041676 +69 174.15720196041676 174.45215796041677 +81 174.15720196041676 174.45215796041677 +70 174.45215796041677 174.7650136250001 +76 174.15720196041676 174.7650136250001 +72 174.15720196041676 174.7650136250001 +82 174.45215796041677 174.7650136250001 +74 174.7650136250001 175.0464407437501 +77 175.0719796187501 175.65225061875012 +76 175.65225061875012 175.79211086875011 +77 175.79211086875011 175.9319711187501 +74 175.9319711187501 176.2237146187501 +72 176.2237146187501 176.3650241187501 +74 176.3650241187501 176.50633361875012 +70 174.7650136250001 176.79807711875011 +70 176.50633361875012 176.79807711875011 +74 176.79807711875011 177.0815824104168 +82 174.7650136250001 177.10735561875012 +77 177.10735561875012 177.38828324375012 +81 177.41382211875012 177.99409311875013 +79 177.99409311875013 178.13395336875013 +81 178.13395336875013 178.27381361875013 +77 178.27381361875013 178.56555711875012 +76 178.56555711875012 178.70686661875013 +77 178.70686661875013 178.84817611875013 +74 177.10735561875012 179.13991961875013 +74 178.84817611875013 179.13991961875013 +77 179.13991961875013 179.44448811875012 +70 177.10735561875012 179.44448811875012 +84 179.44448811875012 179.52527211875014 +86 179.52024699375013 179.60019873541683 +84 179.59524824375015 179.67418789375014 +86 179.6692617854168 179.75035709375013 +84 179.74517574375014 179.82807734375015 +86 179.82289599375014 179.90350448541682 +84 179.89855399375014 179.97734874375013 +86 179.9724467854168 180.05095128541677 +84 180.04597616041679 180.12148503541678 +86 180.12148503541678 180.2034055354168 +84 180.19827732708345 180.28032866041679 +86 180.27520045208345 180.35617269375012 +84 180.35122220208345 180.43043006875013 +86 180.42547957708345 180.50468744375013 +84 180.49973695208345 180.5789448187501 +86 180.57399432708345 180.6555015354168 +84 180.65029320208345 180.72855453541678 +86 180.72855453541678 180.80654741041678 +84 180.80654741041678 180.8832088687501 +86 180.8832088687501 180.9602668687501 +84 180.9602668687501 181.03866453541676 +86 181.03866453541676 181.11761191041677 +84 181.11761191041677 181.1950816187501 +86 181.1950816187501 181.27122374375008 +84 181.27122374375008 181.3473658687501 +86 181.3473658687501 181.42481903541676 +84 181.42481903541676 181.50161132708342 +86 181.50161132708342 181.5804828770834 +84 181.5804828770834 181.67009791875012 +86 181.67009791875012 181.7626587604168 +88 181.7626587604168 181.85836971875017 +89 181.85836971875017 181.95745759375015 +91 181.95745759375015 182.61319559375016 +79 183.30624209375017 185.13607934375017 +81 185.13607934375017 185.28759459375019 +82 185.28759459375019 185.43910984375017 +81 185.43910984375017 185.58403734375017 +74 183.30624209375017 185.58403734375017 +70 183.30624209375017 185.58403734375017 +67 183.30624209375017 185.58403734375017 +79 185.58403734375017 185.72357234375016 +81 185.72357234375016 185.85870759375015 +79 185.85870759375015 185.99384284375017 +77 185.99384284375017 186.12897809375016 +74 186.12897809375016 186.26659284375017 +77 186.26659284375017 186.4011220937502 +74 186.4011220937502 186.53565134375017 +72 186.53565134375017 186.6701805937502 +70 186.6701805937502 186.8077953437502 +67 186.8077953437502 186.94232459375021 +62 186.94232459375021 187.0768538437502 +64 187.0768538437502 187.21138309375021 +67 187.21138309375021 187.35289259375023 +65 187.35289259375023 187.49643334375023 +67 187.49643334375023 187.63861334375022 +69 187.63861334375022 187.77880034375022 +61 187.21138309375021 188.3557233437502 +67 187.77880034375022 188.49995409375023 +65 188.49995409375023 188.64213409375023 +67 188.64213409375023 188.78567484375023 +69 188.78567484375023 188.92586184375023 +72 188.92586184375023 189.06940259375023 +69 189.06940259375023 189.21091209375024 +67 189.21091209375024 189.35242159375022 +65 189.35242159375022 189.49131059375023 +62 188.3557233437502 189.49131059375023 +67 189.49131059375023 189.63765209375023 +65 189.63765209375023 189.78616684375024 +67 189.78616684375024 189.93250834375024 +69 189.93250834375024 190.07536559375023 +63 189.49131059375023 190.66942459375022 +67 190.07536559375023 190.81793934375023 +65 190.81793934375023 190.96428084375023 +67 190.96428084375023 191.11062234375024 +69 191.11062234375024 191.25347959375023 +74 191.25347959375023 191.40576384375024 +69 191.40576384375024 191.55501759375025 +67 191.55501759375025 191.70427134375024 +62 190.66942459375022 191.85352509375025 +65 191.70427134375024 192.00320084375025 +70 192.00320084375025 192.15920709375024 +74 192.15920709375024 192.31093684375023 +77 192.31093684375023 192.47622609375023 +62 191.85352509375025 192.47622609375023 +74 192.47622609375023 193.1066730937502 +81 192.47622609375023 193.4327600937502 +79 193.4327600937502 193.7519090937502 +77 193.7519090937502 194.0644090937502 +79 194.0644090937502 194.54494190833353 +77 194.54494190833353 194.70710415833352 +76 194.70710415833352 194.86499890833352 +79 194.86499890833352 195.02289365833352 +72 193.1066730937502 195.36575065833352 +70 195.36575065833352 195.52704090833353 +69 195.52704090833353 195.68577115833352 +77 195.02289365833352 196.01910465833353 +76 196.01910465833353 196.36794165833354 +65 196.36794165833354 196.72508465833354 +74 196.36794165833354 196.72508465833354 +64 196.72508465833354 197.08222765833352 +72 196.72508465833354 197.08222765833352 +70 195.68577115833352 197.08222765833352 +79 198.45324015833353 200.28307740833353 +81 200.28307740833353 200.43459265833354 +82 200.43459265833354 200.58610790833353 +81 200.58610790833353 200.73103540833353 +70 198.45324015833353 200.73103540833353 +74 198.45324015833353 200.73103540833353 +67 198.45324015833353 200.73103540833353 +79 200.73103540833353 200.87057040833352 +81 200.87057040833352 201.0057056583335 +79 201.0057056583335 201.14084090833353 +77 201.14084090833353 201.27597615833352 +74 201.27597615833352 201.41359090833353 +77 201.41359090833353 201.54812015833355 +74 201.54812015833355 201.68264940833353 +72 201.68264940833353 201.81717865833355 +70 201.81717865833355 201.95479340833356 +67 201.95479340833356 202.08932265833357 +62 202.08932265833357 202.22385190833356 +64 202.22385190833356 202.35838115833357 +67 202.35838115833357 202.50472265833358 +65 202.50472265833358 202.64965015833357 +67 202.64965015833357 202.79388090833356 +69 202.79388090833356 202.93673815833355 +67 202.93673815833355 203.66291490833356 +65 203.66291490833356 203.80854590833357 +67 203.80854590833357 203.95417690833355 +69 203.95417690833355 204.09771765833355 +72 204.09771765833355 204.24405915833356 +69 204.24405915833356 204.38828990833355 +67 204.38828990833355 204.53183065833355 +65 204.53183065833355 204.67401065833354 +62 202.35838115833357 204.67401065833354 +67 204.67401065833354 204.82035215833355 +65 204.82035215833355 204.96886690833355 +67 204.96886690833355 205.11520840833356 +69 205.11520840833356 205.26013590833355 +67 205.26013590833355 206.00725615833355 +65 206.00725615833355 206.15725615833355 +67 206.15725615833355 206.30431490833357 +69 206.30431490833357 206.45816115833355 +74 206.45816115833355 206.61044540833356 +69 206.61044540833356 206.75969915833358 +67 206.75969915833358 206.90895290833356 +65 206.90895290833356 207.05820665833357 +62 204.67401065833354 207.05820665833357 +76 207.05820665833357 207.20722315833356 +70 207.20722315833356 207.35033915833355 +69 207.35033915833355 207.49345515833357 +67 207.49345515833357 207.62464482500022 +77 207.63657115833357 207.77556290833357 +72 207.77556290833357 207.91257415833357 +70 207.91257415833357 208.04958540833357 +69 208.04958540833357 208.1751790541669 +79 208.18659665833357 208.32106540833357 +74 208.32106540833357 208.45307290833355 +72 208.45307290833355 208.58508040833357 +70 208.58508040833357 208.70444851250022 +81 208.71530015833358 208.84976890833357 +76 208.84976890833357 208.98117490833357 +74 208.98117490833357 209.11258090833357 +72 209.11258090833357 209.23141253333358 +82 209.24221540833358 209.37668415833357 +77 209.37668415833357 209.50809015833357 +76 209.50809015833357 209.63949615833357 +74 209.63949615833357 209.75780620000023 +84 209.76856165833357 209.90240665833358 +79 209.90240665833358 210.03381265833357 +77 210.03381265833357 210.16521865833357 +76 210.16521865833357 210.28352870000023 +86 210.29428415833357 210.42875290833356 +81 210.42875290833356 210.56076040833355 +79 210.56076040833355 210.69276790833356 +77 210.69276790833356 210.81213601250022 +88 210.82298765833357 210.95999890833357 +82 210.95999890833357 211.09384390833358 +81 211.09384390833358 211.23283565833358 +79 211.23283565833358 211.37272415208358 +91 211.38550402708358 211.5246036104169 +86 211.5372490270836 211.6613352145836 +84 211.6726157770836 211.79670196458358 +82 211.8079825270836 211.93206871458358 +77 212.4825792770836 212.6032568395836 +79 212.6142275270836 212.7349050895836 +81 212.7458757770836 212.8665533395836 +82 212.8775240270836 212.9982015895836 +84 213.0091722770836 213.1298498395836 +86 213.1408205270836 213.2614980895836 +88 213.2724687770836 213.3931463395836 +89 213.4041170270836 213.5276236520836 +91 213.5388515270836 213.67795111041693 +86 213.6905965270836 213.81468271458363 +84 213.82596327708362 213.9500494645836 +82 213.96133002708362 214.0854162145836 +77 214.63128477708364 214.75196233958363 +79 214.76293302708365 214.88361058958364 +81 214.89458127708363 215.01525883958362 +82 215.02622952708364 215.14690708958364 +84 215.15787777708363 215.27855533958365 +86 215.28952602708364 215.41020358958363 +88 215.42117427708362 215.54185183958364 +89 215.55282252708363 215.67714421458362 +91 215.68812840208363 215.82734943750032 +86 215.84010064583364 215.96348535416698 +84 215.97470214583365 216.09808685416698 +82 216.10930364583365 216.23268835416698 +79 216.78233489583366 216.90402697916699 +81 216.91508989583366 217.036781979167 +82 217.04784489583366 217.169536979167 +84 217.18059989583367 217.302291979167 +86 217.31335489583367 217.435710354167 +88 217.44692714583368 217.5715716458337 +89 217.58299968750035 217.71002139583368 +91 217.72166989583368 217.879100666667 +93 217.893121979167 218.25543799375032 +81 217.893121979167 218.25543799375032 +89 217.893121979167 218.25543799375032 +67 218.61780049375034 219.50625049375034 +63 218.61780049375034 219.50625049375034 +65 219.50625049375034 219.64648974375035 +62 219.50625049375034 219.64648974375035 +67 219.64648974375035 219.78672899375033 +63 219.64648974375035 219.78672899375033 +65 219.78672899375033 220.08745049375034 +62 219.78672899375033 220.08745049375034 +63 220.08745049375034 220.22768974375035 +60 220.08745049375034 220.22768974375035 +62 220.22768974375035 220.36792899375033 +65 220.22768974375035 220.36792899375033 +60 220.36792899375033 220.63939982708365 +63 220.36792899375033 220.63939982708365 +62 220.97114149375034 221.27820399375034 +63 221.27820399375034 221.57585249375035 +60 220.66407899375034 221.57585249375035 +79 221.57585249375035 221.69794447291702 +81 221.70904374375036 221.83113572291703 +82 221.84223499375034 221.964326972917 +84 221.97542624375035 222.09751822291702 +86 222.10861749375036 222.231377160417 +88 222.24263132708364 222.36768799375028 +89 222.37915378541695 222.5065981812503 +91 222.51828478541697 222.67747396666695 +89 222.6920105500003 223.0408885500003 +81 222.6920105500003 223.0408885500003 +93 222.6920105500003 223.0408885500003 +63 223.3897665500003 224.2823580500003 +67 223.3897665500003 224.2823580500003 +62 224.2823580500003 224.4232560500003 +65 224.2823580500003 224.4232560500003 +63 224.4232560500003 224.56415405000033 +67 224.4232560500003 224.56415405000033 +62 224.56415405000033 224.8662690500003 +65 224.56415405000033 224.8662690500003 +60 224.8662690500003 225.0071670500003 +63 224.8662690500003 225.0071670500003 +62 225.0071670500003 225.14806505000033 +65 225.0071670500003 225.14806505000033 +60 225.14806505000033 225.420801341667 +63 225.14806505000033 225.420801341667 +62 225.7540790500003 226.0625625500003 +63 226.0625625500003 226.3646775500003 +60 225.44559555000032 226.3646775500003 +79 226.3646775500003 226.49445577916697 +81 226.5062538000003 226.63603202916696 +82 226.6478300500003 226.77760827916697 +84 226.7894063000003 226.91912800833362 +86 226.93086950833361 227.0623930916669 +88 227.07454317500026 227.2111788833336 +89 227.22383325833357 227.3659896541669 +91 227.37919063333356 227.5728445666669 +94 227.59083017083358 227.98818117083357 +82 227.59083017083358 227.98818117083357 +86 227.59083017083358 227.98818117083357 +70 228.38553217083359 229.35850567083358 +69 229.35850567083358 229.50204642083358 +70 229.50204642083358 229.64558717083358 +69 229.64558717083358 229.95327967083358 +65 228.38553217083359 229.95327967083358 +67 229.95327967083358 230.09682042083358 +69 230.09682042083358 230.24036117083358 +62 229.95327967083358 230.24036117083358 +67 230.24036117083358 230.56468567083357 +65 230.56468567083357 230.86925417083356 +62 230.24036117083358 230.86925417083356 +67 230.86925417083356 231.17382267083357 +69 231.17382267083357 231.46794017083357 +70 231.46794017083357 231.76205767083357 +72 231.76205767083357 232.0540620041669 +74 232.0540620041669 232.34023746250023 +77 232.34023746250023 232.65938646250024 +82 232.65938646250024 233.93598246250022 +77 232.65938646250024 233.93598246250022 +77 233.93598246250022 234.5742804625002 +81 233.93598246250022 234.5742804625002 +74 234.5742804625002 234.6779074625002 +79 234.5742804625002 234.6779074625002 +81 234.6779074625002 234.78153446250022 +79 234.78153446250022 234.8851614625002 +77 234.8851614625002 234.98878846250022 +74 234.98878846250022 235.0924154625002 +77 235.0924154625002 235.20802246250022 +84 232.65938646250024 235.20802246250022 +77 235.20802246250022 235.66956046250021 +72 235.20802246250022 235.66956046250021 +84 235.20802246250022 235.66956046250021 +81 235.20802246250022 235.66956046250021 +81 237.0541744625002 237.51571246250023 +77 237.0541744625002 237.51571246250023 +89 237.0541744625002 237.51571246250023 +84 237.0541744625002 237.51571246250023 +track Piano left +29 0.0013661208333333333 0.32923512083333334 +41 0.32786899999999997 0.6557379999999999 +48 0.6557379999999999 0.94071225 +55 1.3487844999999998 3.6265797500000003 +48 0.9666189999999999 3.6265797500000003 +62 1.3487844999999998 3.6265797500000003 +58 1.3487844999999998 3.6265797500000003 +48 5.2539255 6.401625999999999 +41 5.2539255 6.401625999999999 +46 6.401625999999999 7.537213249999999 +53 6.401625999999999 7.537213249999999 +57 5.2539255 7.537213249999999 +48 7.537213249999999 8.71532725 +50 8.71532725 9.89942775 +57 7.537213249999999 9.89942775 +58 9.89942775 10.52212875 +53 9.89942775 10.52212875 +46 9.89942775 10.52212875 +65 10.52212875 11.15257575 +64 11.15257575 11.79781175 +62 11.79781175 12.11031175 +58 10.52212875 12.42281175 +64 12.11031175 12.590844564583332 +65 12.590844564583332 12.753006814583332 +67 12.753006814583332 12.910901564583332 +69 12.910901564583332 13.06879631458333 +57 12.42281175 13.731673814583331 +62 13.06879631458333 14.05776081458333 +64 14.05776081458333 14.396743814583331 +55 13.731673814583331 14.396743814583331 +48 14.396743814583331 15.090385814583332 +29 15.091751935416665 15.419620935416665 +41 15.418254814583332 15.746123814583331 +48 15.746123814583331 16.031098064583333 +55 16.43917031458333 18.716965564583333 +48 16.05700481458333 18.716965564583333 +62 16.43917031458333 18.716965564583333 +58 16.43917031458333 18.716965564583333 +58 20.344311314583333 21.49959131458333 +57 21.49959131458333 22.63915956458333 +63 20.344311314583333 22.63915956458333 +60 20.352847902083333 22.64769615208333 +62 22.63915956458333 23.81934381458333 +58 22.63915956458333 23.81934381458333 +51 22.63915956458333 23.81934381458333 +57 23.81934381458333 25.00344431458333 +48 23.81934381458333 25.00344431458333 +41 23.81934381458333 25.00344431458333 +46 25.00344431458333 25.34435331458333 +34 25.00344431458333 25.34435331458333 +53 25.34435331458333 25.70798981458333 +65 25.70798981458333 26.73526281458333 +62 25.70798981458333 26.73526281458333 +67 26.73526281458333 26.88232156458333 +64 26.73526281458333 26.88232156458333 +69 26.88232156458333 27.029380314583328 +65 26.88232156458333 27.029380314583328 +67 27.029380314583328 27.32938031458333 +64 27.029380314583328 27.32938031458333 +65 27.32938031458333 27.476439064583328 +62 27.32938031458333 27.476439064583328 +67 27.476439064583328 27.623497814583327 +64 27.476439064583328 27.623497814583327 +65 27.623497814583327 27.91148786666666 +62 27.623497814583327 27.91148786666666 +64 27.91761531458333 28.18627206458333 +60 27.91761531458333 28.18627206458333 +64 28.21612281458333 28.48975468958333 +60 28.21612281458333 28.48975468958333 +65 28.51463031458333 28.82075281458333 +58 28.51463031458333 28.82075281458333 +57 28.82075281458333 29.11412021041666 +60 28.82075281458333 29.11412021041666 +64 28.82075281458333 29.11412021041666 +62 29.12687531458333 29.40812531458333 +58 29.12687531458333 29.40812531458333 +55 29.12687531458333 29.40812531458333 +62 29.43937531458333 29.75683581458333 +58 29.43937531458333 29.75683581458333 +55 29.43937531458333 29.75683581458333 +61 29.75683581458333 30.07941631458333 +57 29.75683581458333 30.07941631458333 +53 29.75683581458333 30.07941631458333 +46 30.07941631458333 30.43029331458333 +34 30.07941631458333 30.43029331458333 +53 30.43029331458333 30.79392981458333 +65 30.79392981458333 31.82120281458333 +62 30.79392981458333 31.82120281458333 +67 31.82120281458333 31.96826156458333 +64 31.82120281458333 31.96826156458333 +69 31.96826156458333 32.11532031458333 +65 31.96826156458333 32.11532031458333 +67 32.11532031458333 32.415320314583326 +64 32.11532031458333 32.415320314583326 +65 32.415320314583326 32.562379064583325 +62 32.415320314583326 32.562379064583325 +67 32.562379064583325 32.709437814583325 +64 32.562379064583325 32.709437814583325 +65 32.709437814583325 32.99742786666666 +62 32.709437814583325 32.99742786666666 +64 33.00355531458332 33.27628276458332 +60 33.00355531458332 33.27628276458332 +64 33.30658581458332 33.58436377291666 +60 33.30658581458332 33.58436377291666 +65 33.60961631458332 33.92211631458332 +58 33.60961631458332 33.92211631458332 +57 33.92211631458332 34.221595481249985 +60 33.92211631458332 34.221595481249985 +64 33.92211631458332 34.221595481249985 +62 34.23461631458332 34.52969841458332 +58 34.23461631458332 34.52969841458332 +55 34.23461631458332 34.52969841458332 +62 34.56248531458332 34.89956381458332 +58 34.56248531458332 34.89956381458332 +55 34.56248531458332 34.89956381458332 +61 34.89956381458332 35.291720814583314 +57 34.89956381458332 35.291720814583314 +53 34.89956381458332 35.291720814583314 +43 35.291720814583314 35.62955873124998 +31 35.291720814583314 35.62955873124998 +53 35.697126314583315 36.02861781458331 +55 36.02861781458331 36.344407314583314 +58 36.344407314583314 36.66873181458332 +62 36.66873181458332 36.98705431458331 +65 36.98705431458331 37.29633281458331 +67 37.29633281458331 37.61891331458331 +65 37.61891331458331 37.945836560416645 +64 38.29144081458331 38.61752781458331 +62 38.61752781458331 38.77542256458331 +60 38.77542256458331 38.93331731458331 +58 38.93331731458331 39.249106814583314 +57 39.249106814583314 39.54499848124998 +55 39.57340756458331 39.86752510624998 +53 39.89426306458331 40.193176147916645 +50 40.220350064583315 40.49208923124998 +45 40.87252406458332 41.04593456458332 +33 40.87252406458332 41.04593456458332 +46 41.219345064583315 41.39275556458332 +34 41.219345064583315 41.39275556458332 +48 41.566166064583314 41.73957656458332 +36 41.566166064583314 41.73957656458332 +45 42.23213606458332 42.55128506458332 +52 42.23213606458332 42.55128506458332 +50 42.55128506458332 42.865421064583316 +52 42.865421064583316 43.17955706458332 +48 42.865421064583316 43.17955706458332 +53 43.17955706458332 43.51854006458332 +46 43.17955706458332 43.51854006458332 +57 43.51854006458332 43.86941706458332 +45 43.51854006458332 43.86941706458332 +58 43.86941706458332 45.28568456458332 +50 43.86941706458332 45.28568456458332 +43 43.86941706458332 45.28568456458332 +58 45.28568456458332 46.089448064583316 +48 45.28568456458332 46.089448064583316 +41 46.089448064583316 46.497611564583316 +48 46.497611564583316 47.305775064583315 +53 47.305775064583315 48.17906806458331 +60 48.17906806458331 49.07704106458332 +65 49.07704106458332 49.43740139791665 +29 46.089448064583316 49.61758156458332 +72 49.61758156458332 52.07197606458332 +64 49.55001400208332 52.07197606458332 +57 49.48244643958332 52.07197606458332 +50 52.07197606458332 52.435612564583316 +57 52.07197606458332 52.435612564583316 +77 52.435612564583316 52.799249064583314 +81 52.435612564583316 52.799249064583314 +83 52.435612564583316 52.799249064583314 +72 52.799249064583314 55.168932564583315 +64 52.799249064583314 55.168932564583315 +57 52.799249064583314 55.168932564583315 +50 55.168932564583315 55.89620556458331 +60 55.168932564583315 55.89620556458331 +59 55.89620556458331 56.26513089791665 +50 55.89620556458331 56.26513089791665 +43 55.89620556458331 56.26513089791665 +55 56.26513089791665 57.05482589791665 +48 56.26513089791665 57.05482589791665 +41 57.05482589791665 57.86212489791665 +40 57.86212489791665 58.23479589791665 +38 58.23479589791665 58.98085739791665 +48 57.05482589791665 58.98085739791665 +53 58.98085739791665 61.817975397916655 +43 58.98085739791665 61.817975397916655 +52 61.817975397916655 62.37317564791665 +47 61.817975397916655 62.37317564791665 +40 61.817975397916655 62.37317564791665 +72 62.37317564791665 64.82757014791666 +64 62.37317564791665 64.82757014791666 +57 62.37317564791665 64.82757014791666 +50 64.82757014791666 65.19120664791666 +57 64.82757014791666 65.19120664791666 +77 65.19120664791666 65.59937014791666 +81 65.19120664791666 65.59937014791666 +83 65.19120664791666 65.59937014791666 +72 65.59937014791666 67.26334764791666 +64 65.59937014791666 67.26334764791666 +57 65.59937014791666 67.26334764791666 +77 67.26334764791666 68.92732514791666 +69 67.26334764791666 68.92732514791666 +62 67.26334764791666 68.92732514791666 +65 68.92732514791666 70.47323256458333 +55 68.92732514791666 70.47323256458333 +55 70.47323256458333 72.04050898125 +64 70.47323256458333 72.04050898125 +48 70.47323256458333 72.04050898125 +55 72.04050898125 73.59967639791667 +65 72.04050898125 73.59967639791667 +48 73.59967639791667 75.17454281458333 +55 73.59967639791667 75.17454281458333 +64 73.59967639791667 75.17454281458333 +57 75.17454281458333 76.69942906458331 +47 75.17454281458333 76.69942906458331 +42 75.17454281458333 76.69942906458331 +56 76.69942906458331 78.22375393958332 +47 76.69942906458331 78.22375393958332 +40 76.69942906458331 78.22375393958332 +57 78.22375393958332 79.7613126895833 +47 78.22375393958332 79.7613126895833 +42 78.22375393958332 79.7613126895833 +52 79.7613126895833 81.39069656458331 +59 79.7613126895833 81.39069656458331 +68 79.7613126895833 81.39069656458331 +69 81.39069656458331 82.24534381458331 +62 81.39069656458331 82.24534381458331 +71 82.24534381458331 82.97214831458331 +65 82.24534381458331 82.97214831458331 +67 82.97214831458331 83.33800181458331 +60 82.97214831458331 83.68396381458331 +65 83.33800181458331 84.0432453145833 +59 83.68396381458331 84.3851950645833 +64 84.0432453145833 84.7488315645833 +57 84.3851950645833 85.0887993145833 +57 85.0887993145833 85.4546528145833 +55 85.4546528145833 85.8273238145833 +62 84.7488315645833 85.8273238145833 +62 85.8273238145833 86.1931773145833 +53 85.8273238145833 86.1931773145833 +59 86.1931773145833 86.54405431458329 +52 86.1931773145833 86.54405431458329 +60 86.54405431458329 86.98201031458329 +50 86.54405431458329 86.98201031458329 +52 86.98201031458329 87.46981531458329 +48 86.98201031458329 87.46981531458329 +54 87.46981531458329 90.5531713145833 +47 87.46981531458329 90.5531713145833 +54 90.5531713145833 96.62547156458328 +48 90.5531713145833 96.62547156458328 +56 96.62547156458328 96.90497481458328 +47 96.62547156458328 96.90497481458328 +40 96.99814256458328 97.25237981458328 +72 99.41794206458327 101.87233656458328 +64 99.41794206458327 101.87233656458328 +57 99.41794206458327 101.87233656458328 +50 101.87233656458328 102.23597306458328 +57 101.87233656458328 102.23597306458328 +77 102.23597306458328 102.59960956458328 +81 102.23597306458328 102.59960956458328 +83 102.23597306458328 102.59960956458328 +72 102.59960956458328 104.96929306458328 +64 102.59960956458328 104.96929306458328 +57 102.59960956458328 104.96929306458328 +50 104.96929306458328 105.69656606458328 +60 104.96929306458328 105.69656606458328 +59 105.69656606458328 106.06549139791663 +50 105.69656606458328 106.06549139791663 +43 105.69656606458328 106.06549139791663 +55 106.06549139791663 106.85518639791663 +48 106.06549139791663 106.85518639791663 +41 106.85518639791663 107.66248539791663 +40 107.66248539791663 108.03515639791662 +38 108.03515639791662 108.78121789791662 +48 106.85518639791663 108.78121789791662 +53 108.78121789791662 111.14358664791662 +43 108.78121789791662 111.14358664791662 +41 111.14358664791662 111.54733331458328 +40 111.62808264791661 112.18328289791661 +47 111.14358664791662 112.18328289791661 +72 112.18328289791661 114.63767739791662 +64 112.18328289791661 114.63767739791662 +57 112.18328289791661 114.63767739791662 +50 114.63767739791662 115.00131389791662 +57 114.63767739791662 115.00131389791662 +77 115.00131389791662 115.40947739791662 +81 115.00131389791662 115.40947739791662 +83 115.00131389791662 115.40947739791662 +72 115.40947739791662 117.09970389791661 +64 115.40947739791662 117.09970389791661 +57 115.40947739791662 117.09970389791661 +61 117.09970389791661 118.76368139791661 +52 117.09970389791661 118.76368139791661 +45 117.09970389791661 118.76368139791661 +48 118.76368139791661 119.18034789791662 +41 118.76368139791661 119.18034789791662 +53 119.18034789791662 120.38034789791662 +43 119.18034789791662 120.38034789791662 +52 120.38034789791662 120.76251339791662 +45 120.38034789791662 120.76251339791662 +50 120.76251339791662 121.55198739791662 +55 121.55198739791662 121.94672439791663 +48 122.35212989791663 122.50415696041662 +45 122.35212989791663 122.50415696041662 +47 123.18306739791663 123.28723402291664 +43 123.18306739791663 123.28723402291664 +48 123.59973389791664 123.69973389791663 +45 123.59973389791664 123.69973389791663 +48 123.99973389791664 124.09973389791664 +45 123.99973389791664 124.09973389791664 +46 125.14507589791663 125.86387039791663 +34 125.14507589791663 125.86387039791663 +45 125.86387039791663 126.59557739791663 +33 125.86387039791663 126.59557739791663 +43 126.59557739791663 127.31026789791663 +31 126.59557739791663 127.31026789791663 +41 127.31026789791663 128.01240639791664 +29 127.31026789791663 128.01240639791664 +40 128.01240639791664 128.70820439791663 +28 128.01240639791664 128.70820439791663 +38 128.70820439791663 129.40597289791663 +26 128.70820439791663 129.40597289791663 +36 129.40597289791663 130.12255039791663 +24 129.40597289791663 130.12255039791663 +38 130.12255039791663 130.82843239791663 +26 130.12255039791663 130.82843239791663 +46 130.82843239791663 131.5451628979166 +34 130.82843239791663 131.5451628979166 +45 131.5451628979166 132.2768698979166 +33 131.5451628979166 132.2768698979166 +43 132.2768698979166 132.9915603979166 +31 132.2768698979166 132.9915603979166 +41 132.9915603979166 133.69369889791662 +29 132.9915603979166 133.69369889791662 +40 133.69369889791662 134.38949689791662 +28 133.69369889791662 134.38949689791662 +38 134.38949689791662 135.0872653979166 +26 134.38949689791662 135.0872653979166 +36 135.0872653979166 135.8038428979166 +24 135.0872653979166 135.8038428979166 +48 135.8038428979166 136.5097248979166 +62 137.19947089791663 137.90970602291662 +60 137.90970602291662 138.59187652291664 +58 138.59187652291664 139.25682402291662 +63 136.5097248979166 139.25682402291662 +57 139.25682402291662 139.91624452291663 +60 139.25682402291662 139.91624452291663 +63 139.25682402291662 139.91624452291663 +55 139.91624452291663 140.59230602291663 +67 139.91624452291663 140.59230602291663 +63 139.91624452291663 140.59230602291663 +60 139.91624452291663 140.59230602291663 +53 140.59230602291663 141.26841052291664 +69 140.59230602291663 141.26841052291664 +63 140.59230602291663 141.26841052291664 +60 140.59230602291663 141.26841052291664 +55 141.26841052291664 141.93507752291663 +67 141.26841052291664 141.93507752291663 +63 141.26841052291664 141.93507752291663 +60 141.26841052291664 141.93507752291663 +62 142.62493752291664 143.31184202291664 +60 143.31184202291664 143.98256802291664 +58 143.98256802291664 144.64956402291665 +63 141.93507752291663 144.64956402291665 +57 144.64956402291665 145.31451152291663 +60 144.64956402291665 145.31451152291663 +63 144.64956402291665 145.31451152291663 +55 145.31451152291663 145.99632952291662 +67 145.31451152291663 145.99632952291662 +63 145.31451152291663 145.99632952291662 +60 145.31451152291663 145.99632952291662 +69 145.99632952291662 146.3142487729166 +65 146.34315052291663 146.67834602291663 +67 146.67834602291663 147.01354152291663 +69 147.01354152291663 147.36036252291663 +53 145.99632952291662 147.36036252291663 +60 145.99632952291662 147.36036252291663 +63 145.99632952291662 147.36036252291663 +53 148.68295252291665 148.93718977291664 +65 149.02193552291666 149.26783727291667 +65 150.00554252291667 150.25144427291667 +77 150.33341152291666 150.56901352291666 +53 151.28613452291665 151.53203627291666 +65 151.61400352291665 151.84960552291665 +41 147.36036252291663 152.54996802291666 +34 147.36036252291663 152.54996802291666 +53 153.84586802291668 154.08650964791667 +65 154.16672352291667 154.40736514791666 +65 155.10142602291666 155.34078777291666 +77 155.42057502291667 155.65134439791666 +41 152.54996802291666 157.65872302291666 +34 152.54996802291666 157.65872302291666 +52 158.91908852291667 159.15845027291667 +64 159.23823752291668 159.47261252291668 +40 157.65872302291666 160.15833652291667 +33 157.65872302291666 160.15833652291667 +90 160.15833652291667 160.39029539791667 +87 160.7691225229167 161.0010813979167 +84 161.3799085229167 161.6118673979167 +81 161.99069452291673 162.21682514791672 +52 163.84231302291673 164.07915514791674 +64 164.15810252291672 164.38887189791672 +40 162.59370952291673 165.07339402291672 +33 162.59370952291673 165.07339402291672 +66 165.07339402291672 165.3903266895834 +63 165.6999881895834 166.0176166895834 +60 166.3272781895834 166.64490668958342 +57 166.95456818958343 167.26422968958343 +43 167.57389118958343 168.1846482437501 +31 167.57389118958343 168.1846482437501 +48 168.1846482437501 168.7772732437501 +36 168.1846482437501 168.7772732437501 +55 168.7772732437501 169.3803492437501 +43 168.7772732437501 169.3803492437501 +60 169.3803492437501 169.9961673687501 +48 169.3803492437501 169.9961673687501 +62 169.9961673687501 170.2838242437501 +65 170.3099748687501 170.9041518687501 +64 170.9041518687501 171.0473636187501 +65 171.0473636187501 171.1905753687501 +62 171.1905753687501 171.4892908687501 +60 171.4892908687501 171.63399461875008 +62 171.63399461875008 171.7786983687501 +58 169.9961673687501 172.07741386875009 +58 171.7786983687501 172.07741386875009 +62 172.07741386875009 172.37631446041678 +55 169.9961673687501 172.37631446041678 +43 172.37631446041678 172.97677196041678 +31 172.37631446041678 172.97677196041678 +48 172.97677196041678 173.56215146041677 +36 172.97677196041678 173.56215146041677 +55 173.56215146041677 174.15720196041676 +43 173.56215146041677 174.15720196041676 +60 174.15720196041676 174.7650136250001 +48 174.15720196041676 174.7650136250001 +62 174.7650136250001 175.0464407437501 +65 175.0719796187501 175.65225061875012 +64 175.65225061875012 175.79211086875011 +65 175.79211086875011 175.9319711187501 +62 175.9319711187501 176.2237146187501 +60 176.2237146187501 176.3650241187501 +62 176.3650241187501 176.50633361875012 +58 174.7650136250001 176.79807711875011 +58 176.50633361875012 176.79807711875011 +62 176.79807711875011 177.0815824104168 +55 174.7650136250001 177.10735561875012 +65 177.10735561875012 177.38828324375012 +69 177.41382211875012 177.99409311875013 +67 177.99409311875013 178.13395336875013 +69 178.13395336875013 178.27381361875013 +65 178.27381361875013 178.56555711875012 +64 178.56555711875012 178.70686661875013 +65 178.70686661875013 178.84817611875013 +62 177.10735561875012 179.13991961875013 +62 178.84817611875013 179.13991961875013 +65 179.13991961875013 179.44448811875012 +58 177.10735561875012 179.44448811875012 +70 179.44448811875012 180.04597616041679 +67 179.44448811875012 180.04597616041679 +60 179.44448811875012 180.04597616041679 +62 179.44448811875012 180.04597616041679 +65 179.44448811875012 180.04597616041679 +55 180.04597616041679 180.65029320208345 +60 180.65029320208345 181.27122374375008 +48 181.27122374375008 181.95745759375015 +29 181.95882371458347 182.2866927145835 +41 182.28532659375014 182.61319559375016 +48 182.61319559375016 182.89816984375017 +55 183.30624209375017 185.58403734375017 +48 182.92407659375016 185.58403734375017 +62 183.30624209375017 185.58403734375017 +58 183.30624209375017 185.58403734375017 +57 187.21138309375021 188.3557233437502 +49 187.21138309375021 188.3557233437502 +41 187.21138309375021 188.3557233437502 +46 188.3557233437502 189.49131059375023 +53 188.3557233437502 189.49131059375023 +48 189.49131059375023 190.66942459375022 +50 190.66942459375022 191.85352509375025 +57 189.49131059375023 191.85352509375025 +58 191.85352509375025 192.47622609375023 +53 191.85352509375025 192.47622609375023 +46 191.85352509375025 192.47622609375023 +65 192.47622609375023 193.1066730937502 +64 193.1066730937502 193.7519090937502 +62 193.7519090937502 194.0644090937502 +58 192.47622609375023 194.3769090937502 +64 194.0644090937502 194.54494190833353 +65 194.54494190833353 194.70710415833352 +67 194.70710415833352 194.86499890833352 +69 194.86499890833352 195.02289365833352 +57 194.3769090937502 195.68577115833352 +62 195.02289365833352 196.01910465833353 +64 196.01910465833353 196.36794165833354 +55 195.68577115833352 196.36794165833354 +48 196.36794165833354 197.08222765833352 +29 197.08364008750019 197.4226230875002 +41 197.42121065833354 197.76019365833352 +48 197.76019365833352 198.04516790833353 +55 198.45324015833353 200.73103540833353 +48 198.07107465833352 200.73103540833353 +62 198.45324015833353 200.73103540833353 +58 198.45324015833353 200.73103540833353 +57 202.35838115833357 203.36943040833356 +50 202.35838115833357 203.36943040833356 +58 203.51366115833355 204.67401065833354 +50 203.44154578333357 204.67401065833354 +43 203.36943040833356 204.67401065833354 +50 204.67401065833354 205.70568015833356 +57 204.67401065833354 205.70568015833356 +59 205.85419490833354 207.05820665833357 +50 205.77993753333357 207.05820665833357 +43 205.70568015833356 207.05820665833357 +60 207.63657115833357 207.91257415833357 +57 207.63657115833357 207.91257415833357 +65 207.91257415833357 208.16376145000024 +62 207.91257415833357 208.16376145000024 +62 208.18659665833357 208.45307290833355 +58 208.18659665833357 208.45307290833355 +64 208.45307290833355 208.6935968666669 +67 208.45307290833355 208.6935968666669 +64 208.71530015833358 208.98117490833357 +60 208.71530015833358 208.98117490833357 +69 208.98117490833357 209.22060965833356 +65 208.98117490833357 209.22060965833356 +48 207.05820665833357 209.24221540833358 +36 207.05820665833357 209.24221540833358 +65 209.24221540833358 209.50809015833357 +62 209.24221540833358 209.50809015833357 +70 209.50809015833357 209.7470507416669 +67 209.50809015833357 209.7470507416669 +67 209.76856165833357 210.03381265833357 +64 209.76856165833357 210.03381265833357 +69 210.03381265833357 210.2727732416669 +72 210.03381265833357 210.2727732416669 +65 210.29428415833357 210.56076040833355 +69 210.29428415833357 210.56076040833355 +74 210.56076040833355 210.8012843666669 +70 210.56076040833355 210.8012843666669 +67 210.82298765833357 211.09384390833358 +70 210.82298765833357 211.09384390833358 +76 211.09384390833358 211.24565090833357 +72 211.09384390833358 211.24565090833357 +79 211.9433492770836 212.07227569375027 +74 211.38550402708358 212.2057855270836 +74 212.0839962770836 212.2057855270836 +72 212.2168572770836 212.3386465270836 +70 212.3497182770836 212.4715075270836 +58 211.27128140833358 213.5388515270836 +65 211.30972715833357 213.5388515270836 +67 211.34767413750023 213.5388515270836 +79 214.09669677708362 214.22136802708363 +74 214.23270177708363 214.35449102708364 +72 214.36556277708362 214.48735202708363 +70 213.5388515270836 214.62021302708362 +70 214.49842377708364 214.62021302708362 +55 213.5388515270836 215.68812840208363 +60 213.5388515270836 215.68812840208363 +62 213.5388515270836 215.68812840208363 +79 216.24390514583365 216.3690303750003 +74 216.38040539583366 216.50321718750033 +72 216.51438189583365 216.63719368750034 +70 216.64835839583367 216.77117018750033 +64 215.68812840208363 217.893121979167 +48 215.68812840208363 217.893121979167 +55 215.68812840208363 217.893121979167 +58 215.68812840208363 217.893121979167 +41 217.893121979167 218.25543799375032 +29 217.893121979167 218.25543799375032 +57 218.61780049375034 220.08745049375034 +60 218.61780049375034 220.08745049375034 +48 218.25543799375032 221.46423430625035 +57 220.08745049375034 221.51384238958366 +53 220.08745049375034 221.51384238958366 +64 221.57585249375035 222.10861749375036 +62 222.10861749375036 222.6920105500003 +58 221.53864643125033 222.6920105500003 +48 221.46423430625035 222.6920105500003 +55 221.50144036875034 222.6920105500003 +41 222.6920105500003 223.0408885500003 +29 222.6920105500003 223.0408885500003 +57 223.3897665500003 224.8662690500003 +60 223.3897665500003 224.8662690500003 +57 224.8662690500003 226.3646775500003 +48 223.0408885500003 226.3646775500003 +48 226.2513844250003 226.3646775500003 +53 224.8662690500003 226.3646775500003 +64 226.3646775500003 226.93086950833361 +62 226.93086950833361 227.59083017083358 +55 226.2891488000003 227.59083017083358 +58 226.3269131750003 227.59083017083358 +46 227.59083017083358 227.98818117083357 +34 227.59083017083358 227.98818117083357 +53 227.98818117083357 228.38553217083359 +58 228.38553217083359 229.35850567083358 +57 229.35850567083358 229.50204642083358 +58 229.50204642083358 229.64558717083358 +57 229.64558717083358 229.95327967083358 +62 228.38553217083359 229.95327967083358 +55 229.95327967083358 230.09682042083358 +57 230.09682042083358 230.24036117083358 +58 229.95327967083358 230.24036117083358 +55 230.24036117083358 230.56468567083357 +53 230.56468567083357 230.86925417083356 +58 230.24036117083358 230.86925417083356 +55 230.86925417083356 231.17382267083357 +57 231.17382267083357 231.46794017083357 +58 231.46794017083357 231.76205767083357 +60 231.76205767083357 232.0540620041669 +62 232.0540620041669 232.34023746250023 +65 232.34023746250023 232.65938646250024 +70 232.65938646250024 233.93598246250022 +62 232.65938646250024 233.93598246250022 +65 232.65938646250024 233.93598246250022 +72 232.65938646250024 233.93598246250022 +72 233.93598246250022 234.5742804625002 +60 233.93598246250022 234.5742804625002 +65 233.93598246250022 234.5742804625002 +69 233.93598246250022 234.5742804625002 +65 234.5742804625002 235.20802246250022 +58 234.5742804625002 235.20802246250022 +62 234.5742804625002 235.20802246250022 +67 234.5742804625002 235.20802246250022 +69 235.20802246250022 235.66956046250021 +53 235.20802246250022 235.66956046250021 +60 235.20802246250022 235.66956046250021 +65 235.20802246250022 235.66956046250021 +41 237.0541744625002 237.51571246250023 +36 237.0541744625002 237.51571246250023 +29 237.0541744625002 237.51571246250023 diff --git a/test/midi/joplin/TheEntertainer.mid b/test/midi/joplin/TheEntertainer.mid new file mode 100644 index 0000000000000000000000000000000000000000..22bea8686674b795cf9f2323c9551412fcad07c4 GIT binary patch literal 16698 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 { + + context("toJSON", () => { + + it("bach 846 is converted to JSON", () => { + const midi = new Midi(readFileSync(resolve(__dirname, "./midi/bach/bach_846.mid"))); + const json = midi.toJSON(); + expect(json).to.have.property("header"); + expect(json.header).to.have.property("tempos"); + expect(json.header.tempos).is.an("array"); + expect(json.header).to.have.property("timeSignatures"); + expect(json.header.timeSignatures).is.an("array"); + expect(json.header).to.have.property("name"); + expect(json.header.name).is.an("string"); + expect(json.header).to.have.property("ppq"); + expect(json.header.ppq).is.an("number"); + + expect(json).to.have.property("tracks"); + expect(json.tracks[0]).to.have.property("notes"); + + expect(json.tracks[0].notes).to.be.an("array"); + expect(json.tracks[0].notes[0]).to.have.property("midi"); + expect(json.tracks[0].notes[0]).to.have.property("time"); + expect(json.tracks[0].notes[0]).to.have.property("duration"); + expect(json.tracks[0].notes[0]).to.have.property("ticks"); + + expect(json.tracks[0].controlChanges).to.be.an("object"); + expect(json.tracks[0].controlChanges[91]).to.be.an("array"); + expect(json.tracks[0].controlChanges[91][0]).to.have.property("ticks"); + expect(json.tracks[0].controlChanges[91][0]).to.have.property("time"); + expect(json.tracks[0].controlChanges[91][0]).to.have.property("number"); + expect(json.tracks[0].controlChanges[91][0]).to.have.property("value"); + }); + + it("claire de lune is converted to JSON", () => { + const midi = new Midi(readFileSync(resolve(__dirname, "./midi/debussy/claire_de_lune.mid"))); + const json = midi.toJSON(); + expect(json).to.have.property("header"); + expect(json.header).to.have.property("tempos"); + expect(json.header.tempos).is.an("array"); + expect(json.header).to.have.property("timeSignatures"); + expect(json.header.timeSignatures).is.an("array"); + expect(json.header).to.have.property("name"); + expect(json.header.name).is.an("string"); + expect(json.header).to.have.property("ppq"); + expect(json.header.ppq).is.an("number"); + + expect(json).to.have.property("tracks"); + expect(json.tracks).to.be.an("array"); + expect(json.tracks[0]).to.have.property("notes"); + + expect(json.tracks[0].notes).to.be.an("array"); + expect(json.tracks[0].notes[0]).to.have.property("midi"); + expect(json.tracks[0].notes[0]).to.have.property("time"); + expect(json.tracks[0].notes[0]).to.have.property("duration"); + expect(json.tracks[0].notes[0]).to.have.property("ticks"); + + expect(json.tracks[0].controlChanges).to.be.an("object"); + expect(json.tracks[0].controlChanges[91]).to.be.an("array"); + expect(json.tracks[0].controlChanges[91][0]).to.have.property("ticks"); + expect(json.tracks[0].controlChanges[91][0]).to.have.property("time"); + expect(json.tracks[0].controlChanges[91][0]).to.have.property("number"); + expect(json.tracks[0].controlChanges[91][0]).to.have.property("value"); + }); + + const bachFiles = glob.sync(resolve(__dirname, "./midi/bach/*.mid")); + bachFiles.forEach(file => { + it(`can decode and re-encode and re-decode to the same thing - ${basename(file)}`, () => { + const midi = new Midi(readFileSync(file)); + const encoded = midi.toArray(); + const compareTo = new Midi(encoded); + + expect(midi.name).to.equal(compareTo.name); + expect(midi.tracks.length).to.equal(compareTo.tracks.length); + expect(midi.header.tempos.length).to.equal(compareTo.header.tempos.length); + + expect(midi.tracks[0].notes.length).to.equal(compareTo.tracks[0].notes.length); + + expect(midi.tracks[0].notes[0].name).to.equal(compareTo.tracks[0].notes[0].name); + expect(midi.tracks[0].notes[0].time).to.be.closeTo(compareTo.tracks[0].notes[0].time, 0.001); + expect(midi.tracks[0].notes[0].duration).to.be.closeTo(compareTo.tracks[0].notes[0].duration, 0.001); + + if (midi.tracks[0].controlChanges.sustain) { + expect(midi.tracks[0].controlChanges.sustain.length).to.equal(compareTo.tracks[0].controlChanges.sustain.length); + } + + // exists in meta + const metaEvent = midi.header.meta[0]; + const exists = compareTo.header.meta.find(e => { + return e.type === metaEvent.type && e.text === metaEvent.text; + }); + if (metaEvent) { + expect(exists).to.be.ok; + } + }); + }); + }); + + context("fromJSON", () => { + + it("can go from a json representation", () => { + const json = JSON.parse(readFileSync(resolve(__dirname, "./midi/bach/bach_846.json")).toString()); + const midi = new Midi(); + midi.fromJSON(json); + expect(midi.name).to.equal("Das wohltemperierte Klavier I - Praeludium und Fuge 1 in C-Dur BWV 846"); + expect(midi.header.tempos).to.have.length(358); + expect(midi.tracks).to.have.length(10); + expect(midi.tracks[0].notes).to.have.length(415); + expect(midi.toJSON()).to.deep.equal(json); + }); + }); +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..bb16482 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "noImplicitAny": false, + "outDir": "dist", + "module": "commonjs", + "sourceMap": true, + "esModuleInterop": true, + "target" : "es5", + "declaration": true, + // "noUnusedLocals": true, + "lib" : ["es2015", "es2017", "dom"], + "types": [ + "node", + "mocha" + ] + }, + "files": [ + "./src/midi-file.d.ts" + ], + "include": [ + "./src/*.ts" + ], + "exclude": [ + // "node_modules" + ], + "typedocOptions": { + "exclude" : ["./src/Encode.ts", "./src/BinarySearch.ts", "./src/InstrumentMaps.ts"], + "mode": "file", + "excludeNotExported" : true, + "out": "docs", + "theme" : "minimal" + } +} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..0de29c0 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,27 @@ +const path = require('path') + +module.exports = { + context : __dirname, + entry : { + Midi : './src/Midi.ts', + }, + output : { + path : path.resolve(__dirname, 'build'), + filename : '[name].js', + libraryTarget : 'umd', + globalObject: "typeof self !== 'undefined' ? self : this" + }, + resolve : { + extensions: ['.ts', '.js'] + }, + module : { + rules : [ + { + test: /\.ts$/, + use: 'ts-loader', + exclude: /(node_modules)/, + } + ] + }, + devtool: 'source-map' +}