@corellium/corellium-cli 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (992) hide show
  1. package/.gitlab-ci.yml +32 -1
  2. package/ci/gitlab-build.sh +1 -1
  3. package/coverage/cobertura-coverage.xml +9 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +87 -0
  6. package/coverage/lcov-report/favicon.png +0 -0
  7. package/coverage/lcov-report/index.html +101 -0
  8. package/coverage/lcov-report/prettify.css +1 -0
  9. package/coverage/lcov-report/prettify.js +2 -0
  10. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  11. package/coverage/lcov-report/sorter.js +196 -0
  12. package/coverage/lcov.info +0 -0
  13. package/index.js +2 -0
  14. package/package.json +62 -64
  15. package/src/clients/Instance.js +4 -0
  16. package/src/commands/extensions/delete.js +2 -1
  17. package/src/commands/extensions/list.js +3 -2
  18. package/src/commands/firmware/list.js +3 -2
  19. package/src/commands/images/create.js +2 -2
  20. package/src/commands/images/delete.js +1 -0
  21. package/src/commands/images/list.js +3 -2
  22. package/src/commands/index.js +0 -2
  23. package/src/commands/{agent → instances}/apps/index.js +3 -3
  24. package/src/commands/instances/create.js +9 -3
  25. package/src/commands/{agent → instances}/file.js +2 -2
  26. package/src/commands/instances/index.js +6 -1
  27. package/src/commands/instances/input.js +52 -0
  28. package/src/commands/instances/list.js +3 -2
  29. package/src/commands/instances/upgrade.js +2 -2
  30. package/src/commands/projects/create.js +2 -2
  31. package/src/commands/projects/delete.js +2 -1
  32. package/src/commands/projects/list.js +3 -2
  33. package/src/commands/webplayer/create.js +2 -2
  34. package/src/commands/webplayer/list.js +2 -2
  35. package/src/error.js +12 -6
  36. package/src/table.js +1 -1
  37. package/src/utils.js +19 -40
  38. package/node_modules/@babel/cli/LICENSE +0 -22
  39. package/node_modules/@babel/cli/README.md +0 -19
  40. package/node_modules/@babel/cli/bin/babel-external-helpers.js +0 -3
  41. package/node_modules/@babel/cli/bin/babel.js +0 -3
  42. package/node_modules/@babel/cli/index.js +0 -1
  43. package/node_modules/@babel/cli/lib/babel/dir.js +0 -285
  44. package/node_modules/@babel/cli/lib/babel/file.js +0 -273
  45. package/node_modules/@babel/cli/lib/babel/index.js +0 -20
  46. package/node_modules/@babel/cli/lib/babel/options.js +0 -285
  47. package/node_modules/@babel/cli/lib/babel/util.js +0 -181
  48. package/node_modules/@babel/cli/lib/babel/watcher.js +0 -162
  49. package/node_modules/@babel/cli/lib/babel-external-helpers.js +0 -43
  50. package/node_modules/@babel/cli/node_modules/commander/CHANGELOG.md +0 -436
  51. package/node_modules/@babel/cli/node_modules/commander/LICENSE +0 -22
  52. package/node_modules/@babel/cli/node_modules/commander/Readme.md +0 -713
  53. package/node_modules/@babel/cli/node_modules/commander/index.js +0 -1649
  54. package/node_modules/@babel/cli/node_modules/commander/package.json +0 -76
  55. package/node_modules/@babel/cli/node_modules/commander/typings/index.d.ts +0 -311
  56. package/node_modules/@babel/cli/node_modules/make-dir/index.d.ts +0 -39
  57. package/node_modules/@babel/cli/node_modules/make-dir/index.js +0 -139
  58. package/node_modules/@babel/cli/node_modules/make-dir/license +0 -9
  59. package/node_modules/@babel/cli/node_modules/make-dir/package.json +0 -94
  60. package/node_modules/@babel/cli/node_modules/make-dir/readme.md +0 -123
  61. package/node_modules/@babel/cli/node_modules/pify/index.js +0 -68
  62. package/node_modules/@babel/cli/node_modules/pify/license +0 -9
  63. package/node_modules/@babel/cli/node_modules/pify/package.json +0 -86
  64. package/node_modules/@babel/cli/node_modules/pify/readme.md +0 -145
  65. package/node_modules/@babel/cli/node_modules/semver/CHANGELOG.md +0 -39
  66. package/node_modules/@babel/cli/node_modules/semver/LICENSE +0 -15
  67. package/node_modules/@babel/cli/node_modules/semver/README.md +0 -412
  68. package/node_modules/@babel/cli/node_modules/semver/bin/semver +0 -160
  69. package/node_modules/@babel/cli/node_modules/semver/package.json +0 -63
  70. package/node_modules/@babel/cli/node_modules/semver/range.bnf +0 -16
  71. package/node_modules/@babel/cli/node_modules/semver/semver.js +0 -1483
  72. package/node_modules/@babel/cli/node_modules/slash/index.js +0 -11
  73. package/node_modules/@babel/cli/node_modules/slash/license +0 -9
  74. package/node_modules/@babel/cli/node_modules/slash/package.json +0 -69
  75. package/node_modules/@babel/cli/node_modules/slash/readme.md +0 -44
  76. package/node_modules/@babel/cli/package.json +0 -91
  77. package/node_modules/@corellium/client-api/README.md +0 -209
  78. package/node_modules/@corellium/client-api/dist/ApiClient.js +0 -780
  79. package/node_modules/@corellium/client-api/dist/api/CorelliumApi.js +0 -1744
  80. package/node_modules/@corellium/client-api/dist/index.js +0 -295
  81. package/node_modules/@corellium/client-api/dist/model/ApiConflictError.js +0 -114
  82. package/node_modules/@corellium/client-api/dist/model/ApiError.js +0 -101
  83. package/node_modules/@corellium/client-api/dist/model/ApiNotFoundError.js +0 -111
  84. package/node_modules/@corellium/client-api/dist/model/ApiToken.js +0 -78
  85. package/node_modules/@corellium/client-api/dist/model/Bit.js +0 -50
  86. package/node_modules/@corellium/client-api/dist/model/Credentials.js +0 -91
  87. package/node_modules/@corellium/client-api/dist/model/Firmware.js +0 -208
  88. package/node_modules/@corellium/client-api/dist/model/GpioStateDefinition.js +0 -93
  89. package/node_modules/@corellium/client-api/dist/model/Image.js +0 -249
  90. package/node_modules/@corellium/client-api/dist/model/Instance.js +0 -313
  91. package/node_modules/@corellium/client-api/dist/model/InstanceBootOptions.js +0 -134
  92. package/node_modules/@corellium/client-api/dist/model/InstanceConsoleEndpoint.js +0 -76
  93. package/node_modules/@corellium/client-api/dist/model/InstanceCreateOptions.js +0 -224
  94. package/node_modules/@corellium/client-api/dist/model/InstanceNetmonState.js +0 -75
  95. package/node_modules/@corellium/client-api/dist/model/InstanceReturn.js +0 -92
  96. package/node_modules/@corellium/client-api/dist/model/InstanceServices.js +0 -77
  97. package/node_modules/@corellium/client-api/dist/model/InstanceStartOptions.js +0 -76
  98. package/node_modules/@corellium/client-api/dist/model/InstanceState.js +0 -64
  99. package/node_modules/@corellium/client-api/dist/model/InstanceStopOptions.js +0 -76
  100. package/node_modules/@corellium/client-api/dist/model/Model.js +0 -165
  101. package/node_modules/@corellium/client-api/dist/model/ModelSoftware.js +0 -122
  102. package/node_modules/@corellium/client-api/dist/model/PeripheralsData.js +0 -147
  103. package/node_modules/@corellium/client-api/dist/model/Project.js +0 -122
  104. package/node_modules/@corellium/client-api/dist/model/ProjectQuota.js +0 -93
  105. package/node_modules/@corellium/client-api/dist/model/ProjectSettings.js +0 -93
  106. package/node_modules/@corellium/client-api/dist/model/ProjectUsage.js +0 -102
  107. package/node_modules/@corellium/client-api/dist/model/Snapshot.js +0 -145
  108. package/node_modules/@corellium/client-api/dist/model/SnapshotCreationOptions.js +0 -79
  109. package/node_modules/@corellium/client-api/dist/model/SnapshotStatus.js +0 -84
  110. package/node_modules/@corellium/client-api/dist/model/Token.js +0 -88
  111. package/node_modules/@corellium/client-api/dist/model/UserError.js +0 -114
  112. package/node_modules/@corellium/client-api/dist/model/V1SetStateBody.js +0 -80
  113. package/node_modules/@corellium/client-api/dist/model/VolumeOptions.js +0 -94
  114. package/node_modules/@corellium/client-api/dist/model/VpnDefinition.js +0 -84
  115. package/node_modules/@corellium/client-api/package.json +0 -75
  116. package/node_modules/@jridgewell/resolve-uri/LICENSE +0 -19
  117. package/node_modules/@jridgewell/resolve-uri/README.md +0 -40
  118. package/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs +0 -242
  119. package/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map +0 -1
  120. package/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js +0 -250
  121. package/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map +0 -1
  122. package/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts +0 -4
  123. package/node_modules/@jridgewell/resolve-uri/package.json +0 -108
  124. package/node_modules/@jridgewell/sourcemap-codec/LICENSE +0 -21
  125. package/node_modules/@jridgewell/sourcemap-codec/README.md +0 -200
  126. package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs +0 -164
  127. package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map +0 -1
  128. package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js +0 -175
  129. package/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map +0 -1
  130. package/node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts +0 -6
  131. package/node_modules/@jridgewell/sourcemap-codec/package.json +0 -110
  132. package/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts +0 -198
  133. package/node_modules/@jridgewell/trace-mapping/LICENSE +0 -19
  134. package/node_modules/@jridgewell/trace-mapping/README.md +0 -252
  135. package/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs +0 -518
  136. package/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map +0 -1
  137. package/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js +0 -532
  138. package/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map +0 -1
  139. package/node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts +0 -8
  140. package/node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts +0 -32
  141. package/node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts +0 -7
  142. package/node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts +0 -1
  143. package/node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts +0 -2
  144. package/node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts +0 -16
  145. package/node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts +0 -4
  146. package/node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts +0 -74
  147. package/node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts +0 -85
  148. package/node_modules/@jridgewell/trace-mapping/package.json +0 -112
  149. package/node_modules/@jridgewell/trace-mapping/src/any-map.ts +0 -166
  150. package/node_modules/@jridgewell/trace-mapping/src/binary-search.ts +0 -115
  151. package/node_modules/@jridgewell/trace-mapping/src/by-source.ts +0 -64
  152. package/node_modules/@jridgewell/trace-mapping/src/resolve.ts +0 -10
  153. package/node_modules/@jridgewell/trace-mapping/src/sort.ts +0 -45
  154. package/node_modules/@jridgewell/trace-mapping/src/sourcemap-segment.ts +0 -23
  155. package/node_modules/@jridgewell/trace-mapping/src/strip-filename.ts +0 -8
  156. package/node_modules/@jridgewell/trace-mapping/src/trace-mapping.ts +0 -405
  157. package/node_modules/@jridgewell/trace-mapping/src/types.ts +0 -90
  158. package/node_modules/@nicolo-ribaudo/chokidar-2/README.md +0 -3
  159. package/node_modules/@nicolo-ribaudo/chokidar-2/build-chokidar.sh +0 -30
  160. package/node_modules/@nicolo-ribaudo/chokidar-2/dist/main.js +0 -2086
  161. package/node_modules/@nicolo-ribaudo/chokidar-2/package.json +0 -73
  162. package/node_modules/@nicolo-ribaudo/chokidar-2/types.d.ts +0 -191
  163. package/node_modules/ansi-regex/index.d.ts +0 -37
  164. package/node_modules/ansi-regex/index.js +0 -10
  165. package/node_modules/ansi-regex/license +0 -9
  166. package/node_modules/ansi-regex/package.json +0 -90
  167. package/node_modules/ansi-regex/readme.md +0 -78
  168. package/node_modules/ansi-styles/index.d.ts +0 -345
  169. package/node_modules/ansi-styles/index.js +0 -163
  170. package/node_modules/ansi-styles/license +0 -9
  171. package/node_modules/ansi-styles/package.json +0 -96
  172. package/node_modules/ansi-styles/readme.md +0 -152
  173. package/node_modules/anymatch/LICENSE +0 -15
  174. package/node_modules/anymatch/README.md +0 -87
  175. package/node_modules/anymatch/index.d.ts +0 -19
  176. package/node_modules/anymatch/index.js +0 -104
  177. package/node_modules/anymatch/package.json +0 -80
  178. package/node_modules/asynckit/LICENSE +0 -21
  179. package/node_modules/asynckit/README.md +0 -233
  180. package/node_modules/asynckit/bench.js +0 -76
  181. package/node_modules/asynckit/index.js +0 -6
  182. package/node_modules/asynckit/lib/abort.js +0 -29
  183. package/node_modules/asynckit/lib/async.js +0 -34
  184. package/node_modules/asynckit/lib/defer.js +0 -26
  185. package/node_modules/asynckit/lib/iterate.js +0 -75
  186. package/node_modules/asynckit/lib/readable_asynckit.js +0 -91
  187. package/node_modules/asynckit/lib/readable_parallel.js +0 -25
  188. package/node_modules/asynckit/lib/readable_serial.js +0 -25
  189. package/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
  190. package/node_modules/asynckit/lib/state.js +0 -37
  191. package/node_modules/asynckit/lib/streamify.js +0 -141
  192. package/node_modules/asynckit/lib/terminator.js +0 -29
  193. package/node_modules/asynckit/package.json +0 -96
  194. package/node_modules/asynckit/parallel.js +0 -43
  195. package/node_modules/asynckit/serial.js +0 -17
  196. package/node_modules/asynckit/serialOrdered.js +0 -75
  197. package/node_modules/asynckit/stream.js +0 -21
  198. package/node_modules/axios/CHANGELOG.md +0 -943
  199. package/node_modules/axios/LICENSE +0 -19
  200. package/node_modules/axios/README.md +0 -991
  201. package/node_modules/axios/SECURITY.md +0 -5
  202. package/node_modules/axios/UPGRADE_GUIDE.md +0 -168
  203. package/node_modules/axios/dist/axios.js +0 -2595
  204. package/node_modules/axios/dist/axios.map +0 -1
  205. package/node_modules/axios/dist/axios.min.js +0 -3
  206. package/node_modules/axios/dist/axios.min.map +0 -1
  207. package/node_modules/axios/index.d.ts +0 -254
  208. package/node_modules/axios/index.js +0 -1
  209. package/node_modules/axios/lib/adapters/README.md +0 -37
  210. package/node_modules/axios/lib/adapters/http.js +0 -424
  211. package/node_modules/axios/lib/adapters/xhr.js +0 -222
  212. package/node_modules/axios/lib/axios.js +0 -64
  213. package/node_modules/axios/lib/cancel/CancelToken.js +0 -119
  214. package/node_modules/axios/lib/cancel/CanceledError.js +0 -22
  215. package/node_modules/axios/lib/cancel/isCancel.js +0 -5
  216. package/node_modules/axios/lib/core/Axios.js +0 -160
  217. package/node_modules/axios/lib/core/AxiosError.js +0 -86
  218. package/node_modules/axios/lib/core/InterceptorManager.js +0 -54
  219. package/node_modules/axios/lib/core/README.md +0 -8
  220. package/node_modules/axios/lib/core/buildFullPath.js +0 -20
  221. package/node_modules/axios/lib/core/dispatchRequest.js +0 -87
  222. package/node_modules/axios/lib/core/mergeConfig.js +0 -100
  223. package/node_modules/axios/lib/core/settle.js +0 -25
  224. package/node_modules/axios/lib/core/transformData.js +0 -22
  225. package/node_modules/axios/lib/defaults/env/FormData.js +0 -2
  226. package/node_modules/axios/lib/defaults/index.js +0 -146
  227. package/node_modules/axios/lib/defaults/transitional.js +0 -7
  228. package/node_modules/axios/lib/env/README.md +0 -3
  229. package/node_modules/axios/lib/env/data.js +0 -3
  230. package/node_modules/axios/lib/helpers/README.md +0 -7
  231. package/node_modules/axios/lib/helpers/bind.js +0 -11
  232. package/node_modules/axios/lib/helpers/buildURL.js +0 -70
  233. package/node_modules/axios/lib/helpers/combineURLs.js +0 -14
  234. package/node_modules/axios/lib/helpers/cookies.js +0 -53
  235. package/node_modules/axios/lib/helpers/deprecatedMethod.js +0 -24
  236. package/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -14
  237. package/node_modules/axios/lib/helpers/isAxiosError.js +0 -13
  238. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -68
  239. package/node_modules/axios/lib/helpers/normalizeHeaderName.js +0 -12
  240. package/node_modules/axios/lib/helpers/null.js +0 -2
  241. package/node_modules/axios/lib/helpers/parseHeaders.js +0 -53
  242. package/node_modules/axios/lib/helpers/parseProtocol.js +0 -6
  243. package/node_modules/axios/lib/helpers/spread.js +0 -27
  244. package/node_modules/axios/lib/helpers/toFormData.js +0 -72
  245. package/node_modules/axios/lib/helpers/validator.js +0 -86
  246. package/node_modules/axios/lib/utils.js +0 -470
  247. package/node_modules/axios/package.json +0 -117
  248. package/node_modules/axios/tsconfig.json +0 -14
  249. package/node_modules/axios/tslint.json +0 -6
  250. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  251. package/node_modules/balanced-match/LICENSE.md +0 -21
  252. package/node_modules/balanced-match/README.md +0 -97
  253. package/node_modules/balanced-match/index.js +0 -62
  254. package/node_modules/balanced-match/package.json +0 -79
  255. package/node_modules/binary-extensions/binary-extensions.json +0 -260
  256. package/node_modules/binary-extensions/binary-extensions.json.d.ts +0 -3
  257. package/node_modules/binary-extensions/index.d.ts +0 -14
  258. package/node_modules/binary-extensions/index.js +0 -1
  259. package/node_modules/binary-extensions/license +0 -9
  260. package/node_modules/binary-extensions/package.json +0 -74
  261. package/node_modules/binary-extensions/readme.md +0 -41
  262. package/node_modules/brace-expansion/LICENSE +0 -21
  263. package/node_modules/brace-expansion/README.md +0 -129
  264. package/node_modules/brace-expansion/index.js +0 -201
  265. package/node_modules/brace-expansion/package.json +0 -78
  266. package/node_modules/braces/CHANGELOG.md +0 -184
  267. package/node_modules/braces/LICENSE +0 -21
  268. package/node_modules/braces/README.md +0 -593
  269. package/node_modules/braces/index.js +0 -170
  270. package/node_modules/braces/lib/compile.js +0 -57
  271. package/node_modules/braces/lib/constants.js +0 -57
  272. package/node_modules/braces/lib/expand.js +0 -113
  273. package/node_modules/braces/lib/parse.js +0 -333
  274. package/node_modules/braces/lib/stringify.js +0 -32
  275. package/node_modules/braces/lib/utils.js +0 -112
  276. package/node_modules/braces/package.json +0 -127
  277. package/node_modules/call-bind/.eslintignore +0 -1
  278. package/node_modules/call-bind/.eslintrc +0 -17
  279. package/node_modules/call-bind/.github/FUNDING.yml +0 -12
  280. package/node_modules/call-bind/.nycrc +0 -13
  281. package/node_modules/call-bind/CHANGELOG.md +0 -42
  282. package/node_modules/call-bind/LICENSE +0 -21
  283. package/node_modules/call-bind/README.md +0 -2
  284. package/node_modules/call-bind/callBound.js +0 -15
  285. package/node_modules/call-bind/index.js +0 -47
  286. package/node_modules/call-bind/package.json +0 -126
  287. package/node_modules/call-bind/test/callBound.js +0 -55
  288. package/node_modules/call-bind/test/index.js +0 -66
  289. package/node_modules/chokidar/LICENSE +0 -21
  290. package/node_modules/chokidar/README.md +0 -308
  291. package/node_modules/chokidar/index.js +0 -973
  292. package/node_modules/chokidar/lib/constants.js +0 -65
  293. package/node_modules/chokidar/lib/fsevents-handler.js +0 -524
  294. package/node_modules/chokidar/lib/nodefs-handler.js +0 -654
  295. package/node_modules/chokidar/package.json +0 -123
  296. package/node_modules/chokidar/types/index.d.ts +0 -188
  297. package/node_modules/cliui/CHANGELOG.md +0 -121
  298. package/node_modules/cliui/LICENSE.txt +0 -14
  299. package/node_modules/cliui/README.md +0 -141
  300. package/node_modules/cliui/build/index.cjs +0 -302
  301. package/node_modules/cliui/build/lib/index.js +0 -287
  302. package/node_modules/cliui/build/lib/string-utils.js +0 -27
  303. package/node_modules/cliui/index.mjs +0 -13
  304. package/node_modules/cliui/package.json +0 -121
  305. package/node_modules/color-convert/CHANGELOG.md +0 -54
  306. package/node_modules/color-convert/LICENSE +0 -21
  307. package/node_modules/color-convert/README.md +0 -68
  308. package/node_modules/color-convert/conversions.js +0 -839
  309. package/node_modules/color-convert/index.js +0 -81
  310. package/node_modules/color-convert/package.json +0 -86
  311. package/node_modules/color-convert/route.js +0 -97
  312. package/node_modules/color-name/LICENSE +0 -8
  313. package/node_modules/color-name/README.md +0 -11
  314. package/node_modules/color-name/index.js +0 -152
  315. package/node_modules/color-name/package.json +0 -60
  316. package/node_modules/combined-stream/License +0 -19
  317. package/node_modules/combined-stream/Readme.md +0 -138
  318. package/node_modules/combined-stream/lib/combined_stream.js +0 -208
  319. package/node_modules/combined-stream/package.json +0 -62
  320. package/node_modules/combined-stream/yarn.lock +0 -17
  321. package/node_modules/component-emitter/History.md +0 -75
  322. package/node_modules/component-emitter/LICENSE +0 -24
  323. package/node_modules/component-emitter/Readme.md +0 -74
  324. package/node_modules/component-emitter/index.js +0 -175
  325. package/node_modules/component-emitter/package.json +0 -59
  326. package/node_modules/concat-map/.travis.yml +0 -4
  327. package/node_modules/concat-map/LICENSE +0 -18
  328. package/node_modules/concat-map/README.markdown +0 -62
  329. package/node_modules/concat-map/example/map.js +0 -6
  330. package/node_modules/concat-map/index.js +0 -13
  331. package/node_modules/concat-map/package.json +0 -91
  332. package/node_modules/concat-map/test/map.js +0 -39
  333. package/node_modules/convert-source-map/LICENSE +0 -23
  334. package/node_modules/convert-source-map/README.md +0 -120
  335. package/node_modules/convert-source-map/index.js +0 -136
  336. package/node_modules/convert-source-map/package.json +0 -75
  337. package/node_modules/cookiejar/LICENSE +0 -9
  338. package/node_modules/cookiejar/cookiejar.js +0 -276
  339. package/node_modules/cookiejar/package.json +0 -58
  340. package/node_modules/cookiejar/readme.md +0 -60
  341. package/node_modules/debug/LICENSE +0 -20
  342. package/node_modules/debug/README.md +0 -481
  343. package/node_modules/debug/package.json +0 -113
  344. package/node_modules/debug/src/browser.js +0 -269
  345. package/node_modules/debug/src/common.js +0 -274
  346. package/node_modules/debug/src/index.js +0 -10
  347. package/node_modules/debug/src/node.js +0 -263
  348. package/node_modules/delayed-stream/.npmignore +0 -1
  349. package/node_modules/delayed-stream/License +0 -19
  350. package/node_modules/delayed-stream/Makefile +0 -7
  351. package/node_modules/delayed-stream/Readme.md +0 -141
  352. package/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
  353. package/node_modules/delayed-stream/package.json +0 -65
  354. package/node_modules/dotenv/CHANGELOG.md +0 -356
  355. package/node_modules/dotenv/LICENSE +0 -23
  356. package/node_modules/dotenv/README.md +0 -408
  357. package/node_modules/dotenv/config.d.ts +0 -1
  358. package/node_modules/dotenv/config.js +0 -9
  359. package/node_modules/dotenv/lib/cli-options.js +0 -11
  360. package/node_modules/dotenv/lib/env-options.js +0 -20
  361. package/node_modules/dotenv/lib/main.d.ts +0 -73
  362. package/node_modules/dotenv/lib/main.js +0 -109
  363. package/node_modules/dotenv/package.json +0 -87
  364. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  365. package/node_modules/emoji-regex/README.md +0 -73
  366. package/node_modules/emoji-regex/es2015/index.js +0 -6
  367. package/node_modules/emoji-regex/es2015/text.js +0 -6
  368. package/node_modules/emoji-regex/index.d.ts +0 -23
  369. package/node_modules/emoji-regex/index.js +0 -6
  370. package/node_modules/emoji-regex/package.json +0 -80
  371. package/node_modules/emoji-regex/text.js +0 -6
  372. package/node_modules/escalade/dist/index.js +0 -22
  373. package/node_modules/escalade/dist/index.mjs +0 -22
  374. package/node_modules/escalade/index.d.ts +0 -3
  375. package/node_modules/escalade/license +0 -9
  376. package/node_modules/escalade/package.json +0 -96
  377. package/node_modules/escalade/readme.md +0 -211
  378. package/node_modules/escalade/sync/index.d.ts +0 -2
  379. package/node_modules/escalade/sync/index.js +0 -18
  380. package/node_modules/escalade/sync/index.mjs +0 -18
  381. package/node_modules/fast-safe-stringify/.travis.yml +0 -8
  382. package/node_modules/fast-safe-stringify/CHANGELOG.md +0 -17
  383. package/node_modules/fast-safe-stringify/LICENSE +0 -23
  384. package/node_modules/fast-safe-stringify/benchmark.js +0 -137
  385. package/node_modules/fast-safe-stringify/index.d.ts +0 -23
  386. package/node_modules/fast-safe-stringify/index.js +0 -229
  387. package/node_modules/fast-safe-stringify/package.json +0 -90
  388. package/node_modules/fast-safe-stringify/readme.md +0 -170
  389. package/node_modules/fast-safe-stringify/test-stable.js +0 -404
  390. package/node_modules/fast-safe-stringify/test.js +0 -397
  391. package/node_modules/fill-range/LICENSE +0 -21
  392. package/node_modules/fill-range/README.md +0 -237
  393. package/node_modules/fill-range/index.js +0 -249
  394. package/node_modules/fill-range/package.json +0 -117
  395. package/node_modules/follow-redirects/LICENSE +0 -18
  396. package/node_modules/follow-redirects/README.md +0 -155
  397. package/node_modules/follow-redirects/debug.js +0 -15
  398. package/node_modules/follow-redirects/http.js +0 -1
  399. package/node_modules/follow-redirects/https.js +0 -1
  400. package/node_modules/follow-redirects/index.js +0 -598
  401. package/node_modules/follow-redirects/package.json +0 -98
  402. package/node_modules/form-data/License +0 -19
  403. package/node_modules/form-data/README.md.bak +0 -358
  404. package/node_modules/form-data/Readme.md +0 -358
  405. package/node_modules/form-data/index.d.ts +0 -62
  406. package/node_modules/form-data/lib/browser.js +0 -2
  407. package/node_modules/form-data/lib/form_data.js +0 -501
  408. package/node_modules/form-data/lib/populate.js +0 -10
  409. package/node_modules/form-data/package.json +0 -104
  410. package/node_modules/formidable/LICENSE +0 -7
  411. package/node_modules/formidable/Readme.md +0 -448
  412. package/node_modules/formidable/lib/file.js +0 -81
  413. package/node_modules/formidable/lib/incoming_form.js +0 -564
  414. package/node_modules/formidable/lib/index.js +0 -3
  415. package/node_modules/formidable/lib/json_parser.js +0 -30
  416. package/node_modules/formidable/lib/multipart_parser.js +0 -332
  417. package/node_modules/formidable/lib/octet_parser.js +0 -20
  418. package/node_modules/formidable/lib/querystring_parser.js +0 -27
  419. package/node_modules/formidable/package.json +0 -63
  420. package/node_modules/fs-readdir-recursive/LICENSE +0 -22
  421. package/node_modules/fs-readdir-recursive/README.md +0 -61
  422. package/node_modules/fs-readdir-recursive/index.js +0 -29
  423. package/node_modules/fs-readdir-recursive/package.json +0 -60
  424. package/node_modules/fs.realpath/LICENSE +0 -43
  425. package/node_modules/fs.realpath/README.md +0 -33
  426. package/node_modules/fs.realpath/index.js +0 -66
  427. package/node_modules/fs.realpath/old.js +0 -303
  428. package/node_modules/fs.realpath/package.json +0 -62
  429. package/node_modules/function-bind/.editorconfig +0 -20
  430. package/node_modules/function-bind/.eslintrc +0 -15
  431. package/node_modules/function-bind/.jscs.json +0 -176
  432. package/node_modules/function-bind/.npmignore +0 -22
  433. package/node_modules/function-bind/.travis.yml +0 -168
  434. package/node_modules/function-bind/LICENSE +0 -20
  435. package/node_modules/function-bind/README.md +0 -48
  436. package/node_modules/function-bind/implementation.js +0 -52
  437. package/node_modules/function-bind/index.js +0 -5
  438. package/node_modules/function-bind/package.json +0 -100
  439. package/node_modules/function-bind/test/.eslintrc +0 -9
  440. package/node_modules/function-bind/test/index.js +0 -252
  441. package/node_modules/generate-password/.eslintrc.yml +0 -18
  442. package/node_modules/generate-password/.github/workflows/nodejs.yml +0 -33
  443. package/node_modules/generate-password/CHANGELOG.md +0 -79
  444. package/node_modules/generate-password/LICENSE +0 -21
  445. package/node_modules/generate-password/README.md +0 -61
  446. package/node_modules/generate-password/example.js +0 -28
  447. package/node_modules/generate-password/main.js +0 -1
  448. package/node_modules/generate-password/package.json +0 -68
  449. package/node_modules/generate-password/src/generate.d.ts +0 -51
  450. package/node_modules/generate-password/src/generate.js +0 -152
  451. package/node_modules/generate-password/test/coverage.sh +0 -17
  452. package/node_modules/generate-password/test/esm.mjs +0 -13
  453. package/node_modules/generate-password/test/generator.js +0 -164
  454. package/node_modules/get-caller-file/LICENSE.md +0 -6
  455. package/node_modules/get-caller-file/README.md +0 -41
  456. package/node_modules/get-caller-file/index.d.ts +0 -2
  457. package/node_modules/get-caller-file/index.js +0 -22
  458. package/node_modules/get-caller-file/index.js.map +0 -1
  459. package/node_modules/get-caller-file/package.json +0 -72
  460. package/node_modules/get-intrinsic/.eslintrc +0 -37
  461. package/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  462. package/node_modules/get-intrinsic/.nycrc +0 -9
  463. package/node_modules/get-intrinsic/CHANGELOG.md +0 -91
  464. package/node_modules/get-intrinsic/LICENSE +0 -21
  465. package/node_modules/get-intrinsic/README.md +0 -71
  466. package/node_modules/get-intrinsic/index.js +0 -334
  467. package/node_modules/get-intrinsic/package.json +0 -125
  468. package/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  469. package/node_modules/glob/LICENSE +0 -21
  470. package/node_modules/glob/README.md +0 -378
  471. package/node_modules/glob/common.js +0 -238
  472. package/node_modules/glob/glob.js +0 -790
  473. package/node_modules/glob/package.json +0 -93
  474. package/node_modules/glob/sync.js +0 -486
  475. package/node_modules/glob-parent/CHANGELOG.md +0 -110
  476. package/node_modules/glob-parent/LICENSE +0 -15
  477. package/node_modules/glob-parent/README.md +0 -137
  478. package/node_modules/glob-parent/index.js +0 -42
  479. package/node_modules/glob-parent/package.json +0 -95
  480. package/node_modules/has/LICENSE-MIT +0 -22
  481. package/node_modules/has/README.md +0 -18
  482. package/node_modules/has/package.json +0 -81
  483. package/node_modules/has/src/index.js +0 -5
  484. package/node_modules/has/test/index.js +0 -10
  485. package/node_modules/has-symbols/.eslintrc +0 -11
  486. package/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  487. package/node_modules/has-symbols/.nycrc +0 -9
  488. package/node_modules/has-symbols/CHANGELOG.md +0 -75
  489. package/node_modules/has-symbols/LICENSE +0 -21
  490. package/node_modules/has-symbols/README.md +0 -46
  491. package/node_modules/has-symbols/index.js +0 -13
  492. package/node_modules/has-symbols/package.json +0 -134
  493. package/node_modules/has-symbols/shams.js +0 -42
  494. package/node_modules/has-symbols/test/index.js +0 -22
  495. package/node_modules/has-symbols/test/shams/core-js.js +0 -28
  496. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -28
  497. package/node_modules/has-symbols/test/tests.js +0 -56
  498. package/node_modules/inflight/LICENSE +0 -15
  499. package/node_modules/inflight/README.md +0 -37
  500. package/node_modules/inflight/inflight.js +0 -54
  501. package/node_modules/inflight/package.json +0 -61
  502. package/node_modules/inherits/LICENSE +0 -16
  503. package/node_modules/inherits/README.md +0 -42
  504. package/node_modules/inherits/inherits.js +0 -9
  505. package/node_modules/inherits/inherits_browser.js +0 -27
  506. package/node_modules/inherits/package.json +0 -70
  507. package/node_modules/is-binary-path/index.d.ts +0 -17
  508. package/node_modules/is-binary-path/index.js +0 -7
  509. package/node_modules/is-binary-path/license +0 -9
  510. package/node_modules/is-binary-path/package.json +0 -76
  511. package/node_modules/is-binary-path/readme.md +0 -34
  512. package/node_modules/is-extglob/LICENSE +0 -21
  513. package/node_modules/is-extglob/README.md +0 -107
  514. package/node_modules/is-extglob/index.js +0 -20
  515. package/node_modules/is-extglob/package.json +0 -103
  516. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  517. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  518. package/node_modules/is-fullwidth-code-point/license +0 -9
  519. package/node_modules/is-fullwidth-code-point/package.json +0 -80
  520. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  521. package/node_modules/is-glob/LICENSE +0 -21
  522. package/node_modules/is-glob/README.md +0 -206
  523. package/node_modules/is-glob/index.js +0 -150
  524. package/node_modules/is-glob/package.json +0 -127
  525. package/node_modules/is-number/LICENSE +0 -21
  526. package/node_modules/is-number/README.md +0 -187
  527. package/node_modules/is-number/index.js +0 -18
  528. package/node_modules/is-number/package.json +0 -125
  529. package/node_modules/lru-cache/LICENSE +0 -15
  530. package/node_modules/lru-cache/README.md +0 -166
  531. package/node_modules/lru-cache/index.js +0 -334
  532. package/node_modules/lru-cache/package.json +0 -72
  533. package/node_modules/methods/HISTORY.md +0 -29
  534. package/node_modules/methods/LICENSE +0 -24
  535. package/node_modules/methods/README.md +0 -51
  536. package/node_modules/methods/index.js +0 -69
  537. package/node_modules/methods/package.json +0 -82
  538. package/node_modules/mime/CHANGELOG.md +0 -296
  539. package/node_modules/mime/LICENSE +0 -21
  540. package/node_modules/mime/Mime.js +0 -97
  541. package/node_modules/mime/README.md +0 -187
  542. package/node_modules/mime/cli.js +0 -46
  543. package/node_modules/mime/index.js +0 -4
  544. package/node_modules/mime/lite.js +0 -4
  545. package/node_modules/mime/package.json +0 -84
  546. package/node_modules/mime/types/other.js +0 -1
  547. package/node_modules/mime/types/standard.js +0 -1
  548. package/node_modules/mime-db/HISTORY.md +0 -507
  549. package/node_modules/mime-db/LICENSE +0 -23
  550. package/node_modules/mime-db/README.md +0 -100
  551. package/node_modules/mime-db/db.json +0 -8519
  552. package/node_modules/mime-db/index.js +0 -12
  553. package/node_modules/mime-db/package.json +0 -106
  554. package/node_modules/mime-types/HISTORY.md +0 -397
  555. package/node_modules/mime-types/LICENSE +0 -23
  556. package/node_modules/mime-types/README.md +0 -113
  557. package/node_modules/mime-types/index.js +0 -188
  558. package/node_modules/mime-types/package.json +0 -92
  559. package/node_modules/minimatch/LICENSE +0 -15
  560. package/node_modules/minimatch/README.md +0 -230
  561. package/node_modules/minimatch/minimatch.js +0 -947
  562. package/node_modules/minimatch/package.json +0 -73
  563. package/node_modules/ms/index.js +0 -162
  564. package/node_modules/ms/license.md +0 -21
  565. package/node_modules/ms/package.json +0 -75
  566. package/node_modules/ms/readme.md +0 -60
  567. package/node_modules/multi-progress/.gitattributes +0 -17
  568. package/node_modules/multi-progress/CHANGELOG.md +0 -56
  569. package/node_modules/multi-progress/LICENSE.txt +0 -21
  570. package/node_modules/multi-progress/multi-progress.js +0 -98
  571. package/node_modules/multi-progress/package.json +0 -58
  572. package/node_modules/multi-progress/readme.md +0 -33
  573. package/node_modules/normalize-path/LICENSE +0 -21
  574. package/node_modules/normalize-path/README.md +0 -127
  575. package/node_modules/normalize-path/index.js +0 -35
  576. package/node_modules/normalize-path/package.json +0 -119
  577. package/node_modules/object-inspect/.eslintrc +0 -53
  578. package/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  579. package/node_modules/object-inspect/.nycrc +0 -13
  580. package/node_modules/object-inspect/CHANGELOG.md +0 -360
  581. package/node_modules/object-inspect/LICENSE +0 -21
  582. package/node_modules/object-inspect/example/all.js +0 -23
  583. package/node_modules/object-inspect/example/circular.js +0 -6
  584. package/node_modules/object-inspect/example/fn.js +0 -5
  585. package/node_modules/object-inspect/example/inspect.js +0 -10
  586. package/node_modules/object-inspect/index.js +0 -512
  587. package/node_modules/object-inspect/package-support.json +0 -20
  588. package/node_modules/object-inspect/package.json +0 -126
  589. package/node_modules/object-inspect/readme.markdown +0 -86
  590. package/node_modules/object-inspect/test/bigint.js +0 -58
  591. package/node_modules/object-inspect/test/browser/dom.js +0 -15
  592. package/node_modules/object-inspect/test/circular.js +0 -16
  593. package/node_modules/object-inspect/test/deep.js +0 -12
  594. package/node_modules/object-inspect/test/element.js +0 -53
  595. package/node_modules/object-inspect/test/err.js +0 -48
  596. package/node_modules/object-inspect/test/fakes.js +0 -29
  597. package/node_modules/object-inspect/test/fn.js +0 -76
  598. package/node_modules/object-inspect/test/has.js +0 -15
  599. package/node_modules/object-inspect/test/holes.js +0 -15
  600. package/node_modules/object-inspect/test/indent-option.js +0 -271
  601. package/node_modules/object-inspect/test/inspect.js +0 -139
  602. package/node_modules/object-inspect/test/lowbyte.js +0 -12
  603. package/node_modules/object-inspect/test/number.js +0 -58
  604. package/node_modules/object-inspect/test/quoteStyle.js +0 -17
  605. package/node_modules/object-inspect/test/toStringTag.js +0 -40
  606. package/node_modules/object-inspect/test/undef.js +0 -12
  607. package/node_modules/object-inspect/test/values.js +0 -211
  608. package/node_modules/object-inspect/test-core-js.js +0 -26
  609. package/node_modules/object-inspect/util.inspect.js +0 -1
  610. package/node_modules/once/LICENSE +0 -15
  611. package/node_modules/once/README.md +0 -79
  612. package/node_modules/once/once.js +0 -42
  613. package/node_modules/once/package.json +0 -74
  614. package/node_modules/path-is-absolute/index.js +0 -20
  615. package/node_modules/path-is-absolute/license +0 -21
  616. package/node_modules/path-is-absolute/package.json +0 -78
  617. package/node_modules/path-is-absolute/readme.md +0 -59
  618. package/node_modules/picomatch/CHANGELOG.md +0 -136
  619. package/node_modules/picomatch/LICENSE +0 -21
  620. package/node_modules/picomatch/README.md +0 -708
  621. package/node_modules/picomatch/index.js +0 -3
  622. package/node_modules/picomatch/lib/constants.js +0 -179
  623. package/node_modules/picomatch/lib/parse.js +0 -1091
  624. package/node_modules/picomatch/lib/picomatch.js +0 -342
  625. package/node_modules/picomatch/lib/scan.js +0 -391
  626. package/node_modules/picomatch/lib/utils.js +0 -64
  627. package/node_modules/picomatch/package.json +0 -117
  628. package/node_modules/progress/CHANGELOG.md +0 -115
  629. package/node_modules/progress/LICENSE +0 -22
  630. package/node_modules/progress/Makefile +0 -8
  631. package/node_modules/progress/Readme.md +0 -146
  632. package/node_modules/progress/index.js +0 -1
  633. package/node_modules/progress/lib/node-progress.js +0 -236
  634. package/node_modules/progress/package.json +0 -74
  635. package/node_modules/qs/.editorconfig +0 -43
  636. package/node_modules/qs/.eslintrc +0 -38
  637. package/node_modules/qs/.github/FUNDING.yml +0 -12
  638. package/node_modules/qs/.nycrc +0 -13
  639. package/node_modules/qs/CHANGELOG.md +0 -546
  640. package/node_modules/qs/LICENSE.md +0 -29
  641. package/node_modules/qs/README.md +0 -625
  642. package/node_modules/qs/dist/qs.js +0 -2054
  643. package/node_modules/qs/lib/formats.js +0 -23
  644. package/node_modules/qs/lib/index.js +0 -11
  645. package/node_modules/qs/lib/parse.js +0 -263
  646. package/node_modules/qs/lib/stringify.js +0 -326
  647. package/node_modules/qs/lib/utils.js +0 -252
  648. package/node_modules/qs/package.json +0 -108
  649. package/node_modules/qs/test/parse.js +0 -855
  650. package/node_modules/qs/test/stringify.js +0 -909
  651. package/node_modules/qs/test/utils.js +0 -136
  652. package/node_modules/readdirp/LICENSE +0 -21
  653. package/node_modules/readdirp/README.md +0 -122
  654. package/node_modules/readdirp/index.d.ts +0 -43
  655. package/node_modules/readdirp/index.js +0 -287
  656. package/node_modules/readdirp/package.json +0 -162
  657. package/node_modules/require-directory/.jshintrc +0 -67
  658. package/node_modules/require-directory/.npmignore +0 -1
  659. package/node_modules/require-directory/.travis.yml +0 -3
  660. package/node_modules/require-directory/LICENSE +0 -22
  661. package/node_modules/require-directory/README.markdown +0 -184
  662. package/node_modules/require-directory/index.js +0 -86
  663. package/node_modules/require-directory/package.json +0 -72
  664. package/node_modules/safe-buffer/LICENSE +0 -21
  665. package/node_modules/safe-buffer/README.md +0 -584
  666. package/node_modules/safe-buffer/index.d.ts +0 -187
  667. package/node_modules/safe-buffer/index.js +0 -62
  668. package/node_modules/safe-buffer/package.json +0 -69
  669. package/node_modules/semver/LICENSE +0 -15
  670. package/node_modules/semver/README.md +0 -568
  671. package/node_modules/semver/bin/semver.js +0 -183
  672. package/node_modules/semver/classes/comparator.js +0 -136
  673. package/node_modules/semver/classes/index.js +0 -5
  674. package/node_modules/semver/classes/range.js +0 -519
  675. package/node_modules/semver/classes/semver.js +0 -287
  676. package/node_modules/semver/functions/clean.js +0 -6
  677. package/node_modules/semver/functions/cmp.js +0 -52
  678. package/node_modules/semver/functions/coerce.js +0 -52
  679. package/node_modules/semver/functions/compare-build.js +0 -7
  680. package/node_modules/semver/functions/compare-loose.js +0 -3
  681. package/node_modules/semver/functions/compare.js +0 -5
  682. package/node_modules/semver/functions/diff.js +0 -23
  683. package/node_modules/semver/functions/eq.js +0 -3
  684. package/node_modules/semver/functions/gt.js +0 -3
  685. package/node_modules/semver/functions/gte.js +0 -3
  686. package/node_modules/semver/functions/inc.js +0 -18
  687. package/node_modules/semver/functions/lt.js +0 -3
  688. package/node_modules/semver/functions/lte.js +0 -3
  689. package/node_modules/semver/functions/major.js +0 -3
  690. package/node_modules/semver/functions/minor.js +0 -3
  691. package/node_modules/semver/functions/neq.js +0 -3
  692. package/node_modules/semver/functions/parse.js +0 -33
  693. package/node_modules/semver/functions/patch.js +0 -3
  694. package/node_modules/semver/functions/prerelease.js +0 -6
  695. package/node_modules/semver/functions/rcompare.js +0 -3
  696. package/node_modules/semver/functions/rsort.js +0 -3
  697. package/node_modules/semver/functions/satisfies.js +0 -10
  698. package/node_modules/semver/functions/sort.js +0 -3
  699. package/node_modules/semver/functions/valid.js +0 -6
  700. package/node_modules/semver/index.js +0 -48
  701. package/node_modules/semver/internal/constants.js +0 -17
  702. package/node_modules/semver/internal/debug.js +0 -9
  703. package/node_modules/semver/internal/identifiers.js +0 -23
  704. package/node_modules/semver/internal/parse-options.js +0 -11
  705. package/node_modules/semver/internal/re.js +0 -182
  706. package/node_modules/semver/package.json +0 -113
  707. package/node_modules/semver/preload.js +0 -2
  708. package/node_modules/semver/range.bnf +0 -16
  709. package/node_modules/semver/ranges/gtr.js +0 -4
  710. package/node_modules/semver/ranges/intersects.js +0 -7
  711. package/node_modules/semver/ranges/ltr.js +0 -4
  712. package/node_modules/semver/ranges/max-satisfying.js +0 -25
  713. package/node_modules/semver/ranges/min-satisfying.js +0 -24
  714. package/node_modules/semver/ranges/min-version.js +0 -61
  715. package/node_modules/semver/ranges/outside.js +0 -80
  716. package/node_modules/semver/ranges/simplify.js +0 -47
  717. package/node_modules/semver/ranges/subset.js +0 -244
  718. package/node_modules/semver/ranges/to-comparators.js +0 -8
  719. package/node_modules/semver/ranges/valid.js +0 -11
  720. package/node_modules/side-channel/.eslintignore +0 -1
  721. package/node_modules/side-channel/.eslintrc +0 -11
  722. package/node_modules/side-channel/.github/FUNDING.yml +0 -12
  723. package/node_modules/side-channel/.nycrc +0 -13
  724. package/node_modules/side-channel/CHANGELOG.md +0 -65
  725. package/node_modules/side-channel/LICENSE +0 -21
  726. package/node_modules/side-channel/README.md +0 -2
  727. package/node_modules/side-channel/index.js +0 -124
  728. package/node_modules/side-channel/package.json +0 -99
  729. package/node_modules/side-channel/test/index.js +0 -78
  730. package/node_modules/string-width/index.d.ts +0 -29
  731. package/node_modules/string-width/index.js +0 -47
  732. package/node_modules/string-width/license +0 -9
  733. package/node_modules/string-width/package.json +0 -98
  734. package/node_modules/string-width/readme.md +0 -50
  735. package/node_modules/string_decoder/.travis.yml +0 -50
  736. package/node_modules/string_decoder/LICENSE +0 -48
  737. package/node_modules/string_decoder/README.md +0 -47
  738. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  739. package/node_modules/string_decoder/package.json +0 -64
  740. package/node_modules/strip-ansi/index.d.ts +0 -17
  741. package/node_modules/strip-ansi/index.js +0 -4
  742. package/node_modules/strip-ansi/license +0 -9
  743. package/node_modules/strip-ansi/package.json +0 -95
  744. package/node_modules/strip-ansi/readme.md +0 -46
  745. package/node_modules/superagent/.browserslistrc +0 -5
  746. package/node_modules/superagent/.dist.babelrc +0 -10
  747. package/node_modules/superagent/.dist.eslintrc +0 -35
  748. package/node_modules/superagent/.editorconfig +0 -9
  749. package/node_modules/superagent/.gitattributes +0 -1
  750. package/node_modules/superagent/.lib.babelrc +0 -11
  751. package/node_modules/superagent/.lib.eslintrc +0 -24
  752. package/node_modules/superagent/.remarkignore +0 -3
  753. package/node_modules/superagent/.zuul.yml +0 -16
  754. package/node_modules/superagent/CONTRIBUTING.md +0 -7
  755. package/node_modules/superagent/HISTORY.md +0 -692
  756. package/node_modules/superagent/LICENSE +0 -22
  757. package/node_modules/superagent/Makefile +0 -60
  758. package/node_modules/superagent/README.md +0 -266
  759. package/node_modules/superagent/dist/superagent.js +0 -2418
  760. package/node_modules/superagent/dist/superagent.min.js +0 -1
  761. package/node_modules/superagent/docs/head.html +0 -11
  762. package/node_modules/superagent/docs/images/bg.png +0 -0
  763. package/node_modules/superagent/docs/index.md +0 -736
  764. package/node_modules/superagent/docs/style.css +0 -87
  765. package/node_modules/superagent/docs/tail.html +0 -36
  766. package/node_modules/superagent/docs/test.html +0 -5072
  767. package/node_modules/superagent/index.html +0 -47
  768. package/node_modules/superagent/lib/agent-base.js +0 -42
  769. package/node_modules/superagent/lib/client.js +0 -1020
  770. package/node_modules/superagent/lib/is-object.js +0 -17
  771. package/node_modules/superagent/lib/node/agent.js +0 -113
  772. package/node_modules/superagent/lib/node/http2wrapper.js +0 -218
  773. package/node_modules/superagent/lib/node/index.js +0 -1376
  774. package/node_modules/superagent/lib/node/parsers/image.js +0 -13
  775. package/node_modules/superagent/lib/node/parsers/index.js +0 -12
  776. package/node_modules/superagent/lib/node/parsers/json.js +0 -26
  777. package/node_modules/superagent/lib/node/parsers/text.js +0 -11
  778. package/node_modules/superagent/lib/node/parsers/urlencoded.js +0 -22
  779. package/node_modules/superagent/lib/node/response.js +0 -126
  780. package/node_modules/superagent/lib/node/unzip.js +0 -72
  781. package/node_modules/superagent/lib/request-base.js +0 -757
  782. package/node_modules/superagent/lib/response-base.js +0 -131
  783. package/node_modules/superagent/lib/utils.js +0 -71
  784. package/node_modules/superagent/node_modules/form-data/License +0 -19
  785. package/node_modules/superagent/node_modules/form-data/README.md.bak +0 -356
  786. package/node_modules/superagent/node_modules/form-data/Readme.md +0 -356
  787. package/node_modules/superagent/node_modules/form-data/index.d.ts +0 -62
  788. package/node_modules/superagent/node_modules/form-data/lib/browser.js +0 -2
  789. package/node_modules/superagent/node_modules/form-data/lib/form_data.js +0 -498
  790. package/node_modules/superagent/node_modules/form-data/lib/populate.js +0 -10
  791. package/node_modules/superagent/node_modules/form-data/package.json +0 -104
  792. package/node_modules/superagent/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  793. package/node_modules/superagent/node_modules/readable-stream/GOVERNANCE.md +0 -136
  794. package/node_modules/superagent/node_modules/readable-stream/LICENSE +0 -47
  795. package/node_modules/superagent/node_modules/readable-stream/README.md +0 -106
  796. package/node_modules/superagent/node_modules/readable-stream/errors-browser.js +0 -127
  797. package/node_modules/superagent/node_modules/readable-stream/errors.js +0 -116
  798. package/node_modules/superagent/node_modules/readable-stream/experimentalWarning.js +0 -17
  799. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_duplex.js +0 -139
  800. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_passthrough.js +0 -39
  801. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_readable.js +0 -1124
  802. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_transform.js +0 -201
  803. package/node_modules/superagent/node_modules/readable-stream/lib/_stream_writable.js +0 -697
  804. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -207
  805. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -210
  806. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -105
  807. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -104
  808. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  809. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/from.js +0 -64
  810. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -97
  811. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/state.js +0 -27
  812. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  813. package/node_modules/superagent/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  814. package/node_modules/superagent/node_modules/readable-stream/package.json +0 -100
  815. package/node_modules/superagent/node_modules/readable-stream/readable-browser.js +0 -9
  816. package/node_modules/superagent/node_modules/readable-stream/readable.js +0 -16
  817. package/node_modules/superagent/package.json +0 -272
  818. package/node_modules/to-regex-range/LICENSE +0 -21
  819. package/node_modules/to-regex-range/README.md +0 -305
  820. package/node_modules/to-regex-range/index.js +0 -288
  821. package/node_modules/to-regex-range/package.json +0 -128
  822. package/node_modules/util-deprecate/History.md +0 -16
  823. package/node_modules/util-deprecate/LICENSE +0 -24
  824. package/node_modules/util-deprecate/README.md +0 -53
  825. package/node_modules/util-deprecate/browser.js +0 -67
  826. package/node_modules/util-deprecate/node.js +0 -6
  827. package/node_modules/util-deprecate/package.json +0 -61
  828. package/node_modules/uuid/CHANGELOG.md +0 -229
  829. package/node_modules/uuid/CONTRIBUTING.md +0 -18
  830. package/node_modules/uuid/LICENSE.md +0 -9
  831. package/node_modules/uuid/README.md +0 -505
  832. package/node_modules/uuid/dist/bin/uuid +0 -2
  833. package/node_modules/uuid/dist/esm-browser/index.js +0 -9
  834. package/node_modules/uuid/dist/esm-browser/md5.js +0 -215
  835. package/node_modules/uuid/dist/esm-browser/nil.js +0 -1
  836. package/node_modules/uuid/dist/esm-browser/parse.js +0 -35
  837. package/node_modules/uuid/dist/esm-browser/regex.js +0 -1
  838. package/node_modules/uuid/dist/esm-browser/rng.js +0 -19
  839. package/node_modules/uuid/dist/esm-browser/sha1.js +0 -96
  840. package/node_modules/uuid/dist/esm-browser/stringify.js +0 -30
  841. package/node_modules/uuid/dist/esm-browser/v1.js +0 -95
  842. package/node_modules/uuid/dist/esm-browser/v3.js +0 -4
  843. package/node_modules/uuid/dist/esm-browser/v35.js +0 -64
  844. package/node_modules/uuid/dist/esm-browser/v4.js +0 -24
  845. package/node_modules/uuid/dist/esm-browser/v5.js +0 -4
  846. package/node_modules/uuid/dist/esm-browser/validate.js +0 -7
  847. package/node_modules/uuid/dist/esm-browser/version.js +0 -11
  848. package/node_modules/uuid/dist/esm-node/index.js +0 -9
  849. package/node_modules/uuid/dist/esm-node/md5.js +0 -13
  850. package/node_modules/uuid/dist/esm-node/nil.js +0 -1
  851. package/node_modules/uuid/dist/esm-node/parse.js +0 -35
  852. package/node_modules/uuid/dist/esm-node/regex.js +0 -1
  853. package/node_modules/uuid/dist/esm-node/rng.js +0 -12
  854. package/node_modules/uuid/dist/esm-node/sha1.js +0 -13
  855. package/node_modules/uuid/dist/esm-node/stringify.js +0 -29
  856. package/node_modules/uuid/dist/esm-node/v1.js +0 -95
  857. package/node_modules/uuid/dist/esm-node/v3.js +0 -4
  858. package/node_modules/uuid/dist/esm-node/v35.js +0 -64
  859. package/node_modules/uuid/dist/esm-node/v4.js +0 -24
  860. package/node_modules/uuid/dist/esm-node/v5.js +0 -4
  861. package/node_modules/uuid/dist/esm-node/validate.js +0 -7
  862. package/node_modules/uuid/dist/esm-node/version.js +0 -11
  863. package/node_modules/uuid/dist/index.js +0 -79
  864. package/node_modules/uuid/dist/md5-browser.js +0 -223
  865. package/node_modules/uuid/dist/md5.js +0 -23
  866. package/node_modules/uuid/dist/nil.js +0 -8
  867. package/node_modules/uuid/dist/parse.js +0 -45
  868. package/node_modules/uuid/dist/regex.js +0 -8
  869. package/node_modules/uuid/dist/rng-browser.js +0 -26
  870. package/node_modules/uuid/dist/rng.js +0 -24
  871. package/node_modules/uuid/dist/sha1-browser.js +0 -104
  872. package/node_modules/uuid/dist/sha1.js +0 -23
  873. package/node_modules/uuid/dist/stringify.js +0 -39
  874. package/node_modules/uuid/dist/umd/uuid.min.js +0 -1
  875. package/node_modules/uuid/dist/umd/uuidNIL.min.js +0 -1
  876. package/node_modules/uuid/dist/umd/uuidParse.min.js +0 -1
  877. package/node_modules/uuid/dist/umd/uuidStringify.min.js +0 -1
  878. package/node_modules/uuid/dist/umd/uuidValidate.min.js +0 -1
  879. package/node_modules/uuid/dist/umd/uuidVersion.min.js +0 -1
  880. package/node_modules/uuid/dist/umd/uuidv1.min.js +0 -1
  881. package/node_modules/uuid/dist/umd/uuidv3.min.js +0 -1
  882. package/node_modules/uuid/dist/umd/uuidv4.min.js +0 -1
  883. package/node_modules/uuid/dist/umd/uuidv5.min.js +0 -1
  884. package/node_modules/uuid/dist/uuid-bin.js +0 -85
  885. package/node_modules/uuid/dist/v1.js +0 -107
  886. package/node_modules/uuid/dist/v3.js +0 -16
  887. package/node_modules/uuid/dist/v35.js +0 -78
  888. package/node_modules/uuid/dist/v4.js +0 -37
  889. package/node_modules/uuid/dist/v5.js +0 -16
  890. package/node_modules/uuid/dist/validate.js +0 -17
  891. package/node_modules/uuid/dist/version.js +0 -21
  892. package/node_modules/uuid/package.json +0 -167
  893. package/node_modules/uuid/wrapper.mjs +0 -10
  894. package/node_modules/wrap-ansi/index.js +0 -216
  895. package/node_modules/wrap-ansi/license +0 -9
  896. package/node_modules/wrap-ansi/package.json +0 -98
  897. package/node_modules/wrap-ansi/readme.md +0 -91
  898. package/node_modules/wrappy/LICENSE +0 -15
  899. package/node_modules/wrappy/README.md +0 -36
  900. package/node_modules/wrappy/package.json +0 -62
  901. package/node_modules/wrappy/wrappy.js +0 -33
  902. package/node_modules/y18n/CHANGELOG.md +0 -100
  903. package/node_modules/y18n/LICENSE +0 -13
  904. package/node_modules/y18n/README.md +0 -127
  905. package/node_modules/y18n/build/index.cjs +0 -203
  906. package/node_modules/y18n/build/lib/cjs.js +0 -6
  907. package/node_modules/y18n/build/lib/index.js +0 -174
  908. package/node_modules/y18n/build/lib/platform-shims/node.js +0 -19
  909. package/node_modules/y18n/index.mjs +0 -8
  910. package/node_modules/y18n/package.json +0 -104
  911. package/node_modules/yallist/LICENSE +0 -15
  912. package/node_modules/yallist/README.md +0 -204
  913. package/node_modules/yallist/iterator.js +0 -8
  914. package/node_modules/yallist/package.json +0 -68
  915. package/node_modules/yallist/yallist.js +0 -426
  916. package/node_modules/yargs/LICENSE +0 -21
  917. package/node_modules/yargs/README.md +0 -204
  918. package/node_modules/yargs/browser.mjs +0 -7
  919. package/node_modules/yargs/build/index.cjs +0 -1
  920. package/node_modules/yargs/build/lib/argsert.js +0 -62
  921. package/node_modules/yargs/build/lib/command.js +0 -447
  922. package/node_modules/yargs/build/lib/completion-templates.js +0 -48
  923. package/node_modules/yargs/build/lib/completion.js +0 -236
  924. package/node_modules/yargs/build/lib/middleware.js +0 -88
  925. package/node_modules/yargs/build/lib/parse-command.js +0 -32
  926. package/node_modules/yargs/build/lib/typings/common-types.js +0 -9
  927. package/node_modules/yargs/build/lib/typings/yargs-parser-types.js +0 -1
  928. package/node_modules/yargs/build/lib/usage.js +0 -579
  929. package/node_modules/yargs/build/lib/utils/apply-extends.js +0 -59
  930. package/node_modules/yargs/build/lib/utils/is-promise.js +0 -5
  931. package/node_modules/yargs/build/lib/utils/levenshtein.js +0 -34
  932. package/node_modules/yargs/build/lib/utils/maybe-async-result.js +0 -17
  933. package/node_modules/yargs/build/lib/utils/obj-filter.js +0 -10
  934. package/node_modules/yargs/build/lib/utils/process-argv.js +0 -17
  935. package/node_modules/yargs/build/lib/utils/set-blocking.js +0 -12
  936. package/node_modules/yargs/build/lib/utils/which-module.js +0 -10
  937. package/node_modules/yargs/build/lib/validation.js +0 -305
  938. package/node_modules/yargs/build/lib/yargs-factory.js +0 -1497
  939. package/node_modules/yargs/build/lib/yerror.js +0 -9
  940. package/node_modules/yargs/helpers/helpers.mjs +0 -10
  941. package/node_modules/yargs/helpers/index.js +0 -14
  942. package/node_modules/yargs/helpers/package.json +0 -3
  943. package/node_modules/yargs/index.cjs +0 -53
  944. package/node_modules/yargs/index.mjs +0 -8
  945. package/node_modules/yargs/lib/platform-shims/browser.mjs +0 -95
  946. package/node_modules/yargs/lib/platform-shims/esm.mjs +0 -73
  947. package/node_modules/yargs/locales/be.json +0 -46
  948. package/node_modules/yargs/locales/de.json +0 -46
  949. package/node_modules/yargs/locales/en.json +0 -51
  950. package/node_modules/yargs/locales/es.json +0 -46
  951. package/node_modules/yargs/locales/fi.json +0 -49
  952. package/node_modules/yargs/locales/fr.json +0 -53
  953. package/node_modules/yargs/locales/hi.json +0 -49
  954. package/node_modules/yargs/locales/hu.json +0 -46
  955. package/node_modules/yargs/locales/id.json +0 -50
  956. package/node_modules/yargs/locales/it.json +0 -46
  957. package/node_modules/yargs/locales/ja.json +0 -51
  958. package/node_modules/yargs/locales/ko.json +0 -49
  959. package/node_modules/yargs/locales/nb.json +0 -44
  960. package/node_modules/yargs/locales/nl.json +0 -49
  961. package/node_modules/yargs/locales/nn.json +0 -44
  962. package/node_modules/yargs/locales/pirate.json +0 -13
  963. package/node_modules/yargs/locales/pl.json +0 -49
  964. package/node_modules/yargs/locales/pt.json +0 -45
  965. package/node_modules/yargs/locales/pt_BR.json +0 -48
  966. package/node_modules/yargs/locales/ru.json +0 -51
  967. package/node_modules/yargs/locales/th.json +0 -46
  968. package/node_modules/yargs/locales/tr.json +0 -48
  969. package/node_modules/yargs/locales/uk_UA.json +0 -51
  970. package/node_modules/yargs/locales/uz.json +0 -52
  971. package/node_modules/yargs/locales/zh_CN.json +0 -48
  972. package/node_modules/yargs/locales/zh_TW.json +0 -51
  973. package/node_modules/yargs/package.json +0 -154
  974. package/node_modules/yargs/yargs +0 -9
  975. package/node_modules/yargs/yargs.mjs +0 -10
  976. package/node_modules/yargs-parser/CHANGELOG.md +0 -287
  977. package/node_modules/yargs-parser/LICENSE.txt +0 -14
  978. package/node_modules/yargs-parser/README.md +0 -518
  979. package/node_modules/yargs-parser/browser.js +0 -29
  980. package/node_modules/yargs-parser/build/index.cjs +0 -1048
  981. package/node_modules/yargs-parser/build/lib/index.js +0 -60
  982. package/node_modules/yargs-parser/build/lib/string-utils.js +0 -65
  983. package/node_modules/yargs-parser/build/lib/tokenize-arg-string.js +0 -40
  984. package/node_modules/yargs-parser/build/lib/yargs-parser-types.js +0 -12
  985. package/node_modules/yargs-parser/build/lib/yargs-parser.js +0 -1045
  986. package/node_modules/yargs-parser/package.json +0 -123
  987. package/src/clients/TrialAccount.js +0 -76
  988. package/src/commands/agent/index.js +0 -27
  989. package/src/commands/signup.js +0 -104
  990. package/test.sh +0 -2
  991. /package/src/commands/{agent → instances}/apps/install.js +0 -0
  992. /package/src/commands/{agent → instances}/ready.js +0 -0
@@ -1,1020 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
- /**
6
- * Root reference for iframes.
7
- */
8
- var root;
9
-
10
- if (typeof window !== 'undefined') {
11
- // Browser window
12
- root = window;
13
- } else if (typeof self === 'undefined') {
14
- // Other environments
15
- console.warn('Using browser-only version of superagent in non-browser environment');
16
- root = void 0;
17
- } else {
18
- // Web Worker
19
- root = self;
20
- }
21
-
22
- var Emitter = require('component-emitter');
23
-
24
- var safeStringify = require('fast-safe-stringify');
25
-
26
- var RequestBase = require('./request-base');
27
-
28
- var isObject = require('./is-object');
29
-
30
- var ResponseBase = require('./response-base');
31
-
32
- var Agent = require('./agent-base');
33
- /**
34
- * Noop.
35
- */
36
-
37
-
38
- function noop() {}
39
- /**
40
- * Expose `request`.
41
- */
42
-
43
-
44
- module.exports = function (method, url) {
45
- // callback
46
- if (typeof url === 'function') {
47
- return new exports.Request('GET', method).end(url);
48
- } // url first
49
-
50
-
51
- if (arguments.length === 1) {
52
- return new exports.Request('GET', method);
53
- }
54
-
55
- return new exports.Request(method, url);
56
- };
57
-
58
- exports = module.exports;
59
- var request = exports;
60
- exports.Request = Request;
61
- /**
62
- * Determine XHR.
63
- */
64
-
65
- request.getXHR = function () {
66
- if (root.XMLHttpRequest && (!root.location || root.location.protocol !== 'file:' || !root.ActiveXObject)) {
67
- return new XMLHttpRequest();
68
- }
69
-
70
- try {
71
- return new ActiveXObject('Microsoft.XMLHTTP');
72
- } catch (_unused) {}
73
-
74
- try {
75
- return new ActiveXObject('Msxml2.XMLHTTP.6.0');
76
- } catch (_unused2) {}
77
-
78
- try {
79
- return new ActiveXObject('Msxml2.XMLHTTP.3.0');
80
- } catch (_unused3) {}
81
-
82
- try {
83
- return new ActiveXObject('Msxml2.XMLHTTP');
84
- } catch (_unused4) {}
85
-
86
- throw new Error('Browser-only version of superagent could not find XHR');
87
- };
88
- /**
89
- * Removes leading and trailing whitespace, added to support IE.
90
- *
91
- * @param {String} s
92
- * @return {String}
93
- * @api private
94
- */
95
-
96
-
97
- var trim = ''.trim ? function (s) {
98
- return s.trim();
99
- } : function (s) {
100
- return s.replace(/(^\s*|\s*$)/g, '');
101
- };
102
- /**
103
- * Serialize the given `obj`.
104
- *
105
- * @param {Object} obj
106
- * @return {String}
107
- * @api private
108
- */
109
-
110
- function serialize(obj) {
111
- if (!isObject(obj)) return obj;
112
- var pairs = [];
113
-
114
- for (var key in obj) {
115
- if (Object.prototype.hasOwnProperty.call(obj, key)) pushEncodedKeyValuePair(pairs, key, obj[key]);
116
- }
117
-
118
- return pairs.join('&');
119
- }
120
- /**
121
- * Helps 'serialize' with serializing arrays.
122
- * Mutates the pairs array.
123
- *
124
- * @param {Array} pairs
125
- * @param {String} key
126
- * @param {Mixed} val
127
- */
128
-
129
-
130
- function pushEncodedKeyValuePair(pairs, key, val) {
131
- if (val === undefined) return;
132
-
133
- if (val === null) {
134
- pairs.push(encodeURI(key));
135
- return;
136
- }
137
-
138
- if (Array.isArray(val)) {
139
- val.forEach(function (v) {
140
- pushEncodedKeyValuePair(pairs, key, v);
141
- });
142
- } else if (isObject(val)) {
143
- for (var subkey in val) {
144
- if (Object.prototype.hasOwnProperty.call(val, subkey)) pushEncodedKeyValuePair(pairs, "".concat(key, "[").concat(subkey, "]"), val[subkey]);
145
- }
146
- } else {
147
- pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));
148
- }
149
- }
150
- /**
151
- * Expose serialization method.
152
- */
153
-
154
-
155
- request.serializeObject = serialize;
156
- /**
157
- * Parse the given x-www-form-urlencoded `str`.
158
- *
159
- * @param {String} str
160
- * @return {Object}
161
- * @api private
162
- */
163
-
164
- function parseString(str) {
165
- var obj = {};
166
- var pairs = str.split('&');
167
- var pair;
168
- var pos;
169
-
170
- for (var i = 0, len = pairs.length; i < len; ++i) {
171
- pair = pairs[i];
172
- pos = pair.indexOf('=');
173
-
174
- if (pos === -1) {
175
- obj[decodeURIComponent(pair)] = '';
176
- } else {
177
- obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(pair.slice(pos + 1));
178
- }
179
- }
180
-
181
- return obj;
182
- }
183
- /**
184
- * Expose parser.
185
- */
186
-
187
-
188
- request.parseString = parseString;
189
- /**
190
- * Default MIME type map.
191
- *
192
- * superagent.types.xml = 'application/xml';
193
- *
194
- */
195
-
196
- request.types = {
197
- html: 'text/html',
198
- json: 'application/json',
199
- xml: 'text/xml',
200
- urlencoded: 'application/x-www-form-urlencoded',
201
- form: 'application/x-www-form-urlencoded',
202
- 'form-data': 'application/x-www-form-urlencoded'
203
- };
204
- /**
205
- * Default serialization map.
206
- *
207
- * superagent.serialize['application/xml'] = function(obj){
208
- * return 'generated xml here';
209
- * };
210
- *
211
- */
212
-
213
- request.serialize = {
214
- 'application/x-www-form-urlencoded': serialize,
215
- 'application/json': safeStringify
216
- };
217
- /**
218
- * Default parsers.
219
- *
220
- * superagent.parse['application/xml'] = function(str){
221
- * return { object parsed from str };
222
- * };
223
- *
224
- */
225
-
226
- request.parse = {
227
- 'application/x-www-form-urlencoded': parseString,
228
- 'application/json': JSON.parse
229
- };
230
- /**
231
- * Parse the given header `str` into
232
- * an object containing the mapped fields.
233
- *
234
- * @param {String} str
235
- * @return {Object}
236
- * @api private
237
- */
238
-
239
- function parseHeader(str) {
240
- var lines = str.split(/\r?\n/);
241
- var fields = {};
242
- var index;
243
- var line;
244
- var field;
245
- var val;
246
-
247
- for (var i = 0, len = lines.length; i < len; ++i) {
248
- line = lines[i];
249
- index = line.indexOf(':');
250
-
251
- if (index === -1) {
252
- // could be empty line, just skip it
253
- continue;
254
- }
255
-
256
- field = line.slice(0, index).toLowerCase();
257
- val = trim(line.slice(index + 1));
258
- fields[field] = val;
259
- }
260
-
261
- return fields;
262
- }
263
- /**
264
- * Check if `mime` is json or has +json structured syntax suffix.
265
- *
266
- * @param {String} mime
267
- * @return {Boolean}
268
- * @api private
269
- */
270
-
271
-
272
- function isJSON(mime) {
273
- // should match /json or +json
274
- // but not /json-seq
275
- return /[/+]json($|[^-\w])/.test(mime);
276
- }
277
- /**
278
- * Initialize a new `Response` with the given `xhr`.
279
- *
280
- * - set flags (.ok, .error, etc)
281
- * - parse header
282
- *
283
- * Examples:
284
- *
285
- * Aliasing `superagent` as `request` is nice:
286
- *
287
- * request = superagent;
288
- *
289
- * We can use the promise-like API, or pass callbacks:
290
- *
291
- * request.get('/').end(function(res){});
292
- * request.get('/', function(res){});
293
- *
294
- * Sending data can be chained:
295
- *
296
- * request
297
- * .post('/user')
298
- * .send({ name: 'tj' })
299
- * .end(function(res){});
300
- *
301
- * Or passed to `.send()`:
302
- *
303
- * request
304
- * .post('/user')
305
- * .send({ name: 'tj' }, function(res){});
306
- *
307
- * Or passed to `.post()`:
308
- *
309
- * request
310
- * .post('/user', { name: 'tj' })
311
- * .end(function(res){});
312
- *
313
- * Or further reduced to a single call for simple cases:
314
- *
315
- * request
316
- * .post('/user', { name: 'tj' }, function(res){});
317
- *
318
- * @param {XMLHTTPRequest} xhr
319
- * @param {Object} options
320
- * @api private
321
- */
322
-
323
-
324
- function Response(req) {
325
- this.req = req;
326
- this.xhr = this.req.xhr; // responseText is accessible only if responseType is '' or 'text' and on older browsers
327
-
328
- this.text = this.req.method !== 'HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text') || typeof this.xhr.responseType === 'undefined' ? this.xhr.responseText : null;
329
- this.statusText = this.req.xhr.statusText;
330
- var status = this.xhr.status; // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request
331
-
332
- if (status === 1223) {
333
- status = 204;
334
- }
335
-
336
- this._setStatusProperties(status);
337
-
338
- this.headers = parseHeader(this.xhr.getAllResponseHeaders());
339
- this.header = this.headers; // getAllResponseHeaders sometimes falsely returns "" for CORS requests, but
340
- // getResponseHeader still works. so we get content-type even if getting
341
- // other headers fails.
342
-
343
- this.header['content-type'] = this.xhr.getResponseHeader('content-type');
344
-
345
- this._setHeaderProperties(this.header);
346
-
347
- if (this.text === null && req._responseType) {
348
- this.body = this.xhr.response;
349
- } else {
350
- this.body = this.req.method === 'HEAD' ? null : this._parseBody(this.text ? this.text : this.xhr.response);
351
- }
352
- } // eslint-disable-next-line new-cap
353
-
354
-
355
- ResponseBase(Response.prototype);
356
- /**
357
- * Parse the given body `str`.
358
- *
359
- * Used for auto-parsing of bodies. Parsers
360
- * are defined on the `superagent.parse` object.
361
- *
362
- * @param {String} str
363
- * @return {Mixed}
364
- * @api private
365
- */
366
-
367
- Response.prototype._parseBody = function (str) {
368
- var parse = request.parse[this.type];
369
-
370
- if (this.req._parser) {
371
- return this.req._parser(this, str);
372
- }
373
-
374
- if (!parse && isJSON(this.type)) {
375
- parse = request.parse['application/json'];
376
- }
377
-
378
- return parse && str && (str.length > 0 || str instanceof Object) ? parse(str) : null;
379
- };
380
- /**
381
- * Return an `Error` representative of this response.
382
- *
383
- * @return {Error}
384
- * @api public
385
- */
386
-
387
-
388
- Response.prototype.toError = function () {
389
- var req = this.req;
390
- var method = req.method;
391
- var url = req.url;
392
- var msg = "cannot ".concat(method, " ").concat(url, " (").concat(this.status, ")");
393
- var err = new Error(msg);
394
- err.status = this.status;
395
- err.method = method;
396
- err.url = url;
397
- return err;
398
- };
399
- /**
400
- * Expose `Response`.
401
- */
402
-
403
-
404
- request.Response = Response;
405
- /**
406
- * Initialize a new `Request` with the given `method` and `url`.
407
- *
408
- * @param {String} method
409
- * @param {String} url
410
- * @api public
411
- */
412
-
413
- function Request(method, url) {
414
- var self = this;
415
- this._query = this._query || [];
416
- this.method = method;
417
- this.url = url;
418
- this.header = {}; // preserves header name case
419
-
420
- this._header = {}; // coerces header names to lowercase
421
-
422
- this.on('end', function () {
423
- var err = null;
424
- var res = null;
425
-
426
- try {
427
- res = new Response(self);
428
- } catch (err_) {
429
- err = new Error('Parser is unable to parse the response');
430
- err.parse = true;
431
- err.original = err_; // issue #675: return the raw response if the response parsing fails
432
-
433
- if (self.xhr) {
434
- // ie9 doesn't have 'response' property
435
- err.rawResponse = typeof self.xhr.responseType === 'undefined' ? self.xhr.responseText : self.xhr.response; // issue #876: return the http status code if the response parsing fails
436
-
437
- err.status = self.xhr.status ? self.xhr.status : null;
438
- err.statusCode = err.status; // backwards-compat only
439
- } else {
440
- err.rawResponse = null;
441
- err.status = null;
442
- }
443
-
444
- return self.callback(err);
445
- }
446
-
447
- self.emit('response', res);
448
- var new_err;
449
-
450
- try {
451
- if (!self._isResponseOK(res)) {
452
- new_err = new Error(res.statusText || res.text || 'Unsuccessful HTTP response');
453
- }
454
- } catch (err_) {
455
- new_err = err_; // ok() callback can throw
456
- } // #1000 don't catch errors from the callback to avoid double calling it
457
-
458
-
459
- if (new_err) {
460
- new_err.original = err;
461
- new_err.response = res;
462
- new_err.status = res.status;
463
- self.callback(new_err, res);
464
- } else {
465
- self.callback(null, res);
466
- }
467
- });
468
- }
469
- /**
470
- * Mixin `Emitter` and `RequestBase`.
471
- */
472
- // eslint-disable-next-line new-cap
473
-
474
-
475
- Emitter(Request.prototype); // eslint-disable-next-line new-cap
476
-
477
- RequestBase(Request.prototype);
478
- /**
479
- * Set Content-Type to `type`, mapping values from `request.types`.
480
- *
481
- * Examples:
482
- *
483
- * superagent.types.xml = 'application/xml';
484
- *
485
- * request.post('/')
486
- * .type('xml')
487
- * .send(xmlstring)
488
- * .end(callback);
489
- *
490
- * request.post('/')
491
- * .type('application/xml')
492
- * .send(xmlstring)
493
- * .end(callback);
494
- *
495
- * @param {String} type
496
- * @return {Request} for chaining
497
- * @api public
498
- */
499
-
500
- Request.prototype.type = function (type) {
501
- this.set('Content-Type', request.types[type] || type);
502
- return this;
503
- };
504
- /**
505
- * Set Accept to `type`, mapping values from `request.types`.
506
- *
507
- * Examples:
508
- *
509
- * superagent.types.json = 'application/json';
510
- *
511
- * request.get('/agent')
512
- * .accept('json')
513
- * .end(callback);
514
- *
515
- * request.get('/agent')
516
- * .accept('application/json')
517
- * .end(callback);
518
- *
519
- * @param {String} accept
520
- * @return {Request} for chaining
521
- * @api public
522
- */
523
-
524
-
525
- Request.prototype.accept = function (type) {
526
- this.set('Accept', request.types[type] || type);
527
- return this;
528
- };
529
- /**
530
- * Set Authorization field value with `user` and `pass`.
531
- *
532
- * @param {String} user
533
- * @param {String} [pass] optional in case of using 'bearer' as type
534
- * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')
535
- * @return {Request} for chaining
536
- * @api public
537
- */
538
-
539
-
540
- Request.prototype.auth = function (user, pass, options) {
541
- if (arguments.length === 1) pass = '';
542
-
543
- if (_typeof(pass) === 'object' && pass !== null) {
544
- // pass is optional and can be replaced with options
545
- options = pass;
546
- pass = '';
547
- }
548
-
549
- if (!options) {
550
- options = {
551
- type: typeof btoa === 'function' ? 'basic' : 'auto'
552
- };
553
- }
554
-
555
- var encoder = function encoder(string) {
556
- if (typeof btoa === 'function') {
557
- return btoa(string);
558
- }
559
-
560
- throw new Error('Cannot use basic auth, btoa is not a function');
561
- };
562
-
563
- return this._auth(user, pass, options, encoder);
564
- };
565
- /**
566
- * Add query-string `val`.
567
- *
568
- * Examples:
569
- *
570
- * request.get('/shoes')
571
- * .query('size=10')
572
- * .query({ color: 'blue' })
573
- *
574
- * @param {Object|String} val
575
- * @return {Request} for chaining
576
- * @api public
577
- */
578
-
579
-
580
- Request.prototype.query = function (val) {
581
- if (typeof val !== 'string') val = serialize(val);
582
- if (val) this._query.push(val);
583
- return this;
584
- };
585
- /**
586
- * Queue the given `file` as an attachment to the specified `field`,
587
- * with optional `options` (or filename).
588
- *
589
- * ``` js
590
- * request.post('/upload')
591
- * .attach('content', new Blob(['<a id="a"><b id="b">hey!</b></a>'], { type: "text/html"}))
592
- * .end(callback);
593
- * ```
594
- *
595
- * @param {String} field
596
- * @param {Blob|File} file
597
- * @param {String|Object} options
598
- * @return {Request} for chaining
599
- * @api public
600
- */
601
-
602
-
603
- Request.prototype.attach = function (field, file, options) {
604
- if (file) {
605
- if (this._data) {
606
- throw new Error("superagent can't mix .send() and .attach()");
607
- }
608
-
609
- this._getFormData().append(field, file, options || file.name);
610
- }
611
-
612
- return this;
613
- };
614
-
615
- Request.prototype._getFormData = function () {
616
- if (!this._formData) {
617
- this._formData = new root.FormData();
618
- }
619
-
620
- return this._formData;
621
- };
622
- /**
623
- * Invoke the callback with `err` and `res`
624
- * and handle arity check.
625
- *
626
- * @param {Error} err
627
- * @param {Response} res
628
- * @api private
629
- */
630
-
631
-
632
- Request.prototype.callback = function (err, res) {
633
- if (this._shouldRetry(err, res)) {
634
- return this._retry();
635
- }
636
-
637
- var fn = this._callback;
638
- this.clearTimeout();
639
-
640
- if (err) {
641
- if (this._maxRetries) err.retries = this._retries - 1;
642
- this.emit('error', err);
643
- }
644
-
645
- fn(err, res);
646
- };
647
- /**
648
- * Invoke callback with x-domain error.
649
- *
650
- * @api private
651
- */
652
-
653
-
654
- Request.prototype.crossDomainError = function () {
655
- var err = new Error('Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.');
656
- err.crossDomain = true;
657
- err.status = this.status;
658
- err.method = this.method;
659
- err.url = this.url;
660
- this.callback(err);
661
- }; // This only warns, because the request is still likely to work
662
-
663
-
664
- Request.prototype.agent = function () {
665
- console.warn('This is not supported in browser version of superagent');
666
- return this;
667
- };
668
-
669
- Request.prototype.ca = Request.prototype.agent;
670
- Request.prototype.buffer = Request.prototype.ca; // This throws, because it can't send/receive data as expected
671
-
672
- Request.prototype.write = function () {
673
- throw new Error('Streaming is not supported in browser version of superagent');
674
- };
675
-
676
- Request.prototype.pipe = Request.prototype.write;
677
- /**
678
- * Check if `obj` is a host object,
679
- * we don't want to serialize these :)
680
- *
681
- * @param {Object} obj host object
682
- * @return {Boolean} is a host object
683
- * @api private
684
- */
685
-
686
- Request.prototype._isHost = function (obj) {
687
- // Native objects stringify to [object File], [object Blob], [object FormData], etc.
688
- return obj && _typeof(obj) === 'object' && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]';
689
- };
690
- /**
691
- * Initiate request, invoking callback `fn(res)`
692
- * with an instanceof `Response`.
693
- *
694
- * @param {Function} fn
695
- * @return {Request} for chaining
696
- * @api public
697
- */
698
-
699
-
700
- Request.prototype.end = function (fn) {
701
- if (this._endCalled) {
702
- console.warn('Warning: .end() was called twice. This is not supported in superagent');
703
- }
704
-
705
- this._endCalled = true; // store callback
706
-
707
- this._callback = fn || noop; // querystring
708
-
709
- this._finalizeQueryString();
710
-
711
- this._end();
712
- };
713
-
714
- Request.prototype._setUploadTimeout = function () {
715
- var self = this; // upload timeout it's wokrs only if deadline timeout is off
716
-
717
- if (this._uploadTimeout && !this._uploadTimeoutTimer) {
718
- this._uploadTimeoutTimer = setTimeout(function () {
719
- self._timeoutError('Upload timeout of ', self._uploadTimeout, 'ETIMEDOUT');
720
- }, this._uploadTimeout);
721
- }
722
- }; // eslint-disable-next-line complexity
723
-
724
-
725
- Request.prototype._end = function () {
726
- if (this._aborted) return this.callback(new Error('The request has been aborted even before .end() was called'));
727
- var self = this;
728
- this.xhr = request.getXHR();
729
- var xhr = this.xhr;
730
- var data = this._formData || this._data;
731
-
732
- this._setTimeouts(); // state change
733
-
734
-
735
- xhr.onreadystatechange = function () {
736
- var readyState = xhr.readyState;
737
-
738
- if (readyState >= 2 && self._responseTimeoutTimer) {
739
- clearTimeout(self._responseTimeoutTimer);
740
- }
741
-
742
- if (readyState !== 4) {
743
- return;
744
- } // In IE9, reads to any property (e.g. status) off of an aborted XHR will
745
- // result in the error "Could not complete the operation due to error c00c023f"
746
-
747
-
748
- var status;
749
-
750
- try {
751
- status = xhr.status;
752
- } catch (_unused5) {
753
- status = 0;
754
- }
755
-
756
- if (!status) {
757
- if (self.timedout || self._aborted) return;
758
- return self.crossDomainError();
759
- }
760
-
761
- self.emit('end');
762
- }; // progress
763
-
764
-
765
- var handleProgress = function handleProgress(direction, e) {
766
- if (e.total > 0) {
767
- e.percent = e.loaded / e.total * 100;
768
-
769
- if (e.percent === 100) {
770
- clearTimeout(self._uploadTimeoutTimer);
771
- }
772
- }
773
-
774
- e.direction = direction;
775
- self.emit('progress', e);
776
- };
777
-
778
- if (this.hasListeners('progress')) {
779
- try {
780
- xhr.addEventListener('progress', handleProgress.bind(null, 'download'));
781
-
782
- if (xhr.upload) {
783
- xhr.upload.addEventListener('progress', handleProgress.bind(null, 'upload'));
784
- }
785
- } catch (_unused6) {// Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.
786
- // Reported here:
787
- // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context
788
- }
789
- }
790
-
791
- if (xhr.upload) {
792
- this._setUploadTimeout();
793
- } // initiate request
794
-
795
-
796
- try {
797
- if (this.username && this.password) {
798
- xhr.open(this.method, this.url, true, this.username, this.password);
799
- } else {
800
- xhr.open(this.method, this.url, true);
801
- }
802
- } catch (err) {
803
- // see #1149
804
- return this.callback(err);
805
- } // CORS
806
-
807
-
808
- if (this._withCredentials) xhr.withCredentials = true; // body
809
-
810
- if (!this._formData && this.method !== 'GET' && this.method !== 'HEAD' && typeof data !== 'string' && !this._isHost(data)) {
811
- // serialize stuff
812
- var contentType = this._header['content-type'];
813
-
814
- var _serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];
815
-
816
- if (!_serialize && isJSON(contentType)) {
817
- _serialize = request.serialize['application/json'];
818
- }
819
-
820
- if (_serialize) data = _serialize(data);
821
- } // set header fields
822
-
823
-
824
- for (var field in this.header) {
825
- if (this.header[field] === null) continue;
826
- if (Object.prototype.hasOwnProperty.call(this.header, field)) xhr.setRequestHeader(field, this.header[field]);
827
- }
828
-
829
- if (this._responseType) {
830
- xhr.responseType = this._responseType;
831
- } // send stuff
832
-
833
-
834
- this.emit('request', this); // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)
835
- // We need null here if data is undefined
836
-
837
- xhr.send(typeof data === 'undefined' ? null : data);
838
- };
839
-
840
- request.agent = function () {
841
- return new Agent();
842
- };
843
-
844
- ['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach(function (method) {
845
- Agent.prototype[method.toLowerCase()] = function (url, fn) {
846
- var req = new request.Request(method, url);
847
-
848
- this._setDefaults(req);
849
-
850
- if (fn) {
851
- req.end(fn);
852
- }
853
-
854
- return req;
855
- };
856
- });
857
- Agent.prototype.del = Agent.prototype.delete;
858
- /**
859
- * GET `url` with optional callback `fn(res)`.
860
- *
861
- * @param {String} url
862
- * @param {Mixed|Function} [data] or fn
863
- * @param {Function} [fn]
864
- * @return {Request}
865
- * @api public
866
- */
867
-
868
- request.get = function (url, data, fn) {
869
- var req = request('GET', url);
870
-
871
- if (typeof data === 'function') {
872
- fn = data;
873
- data = null;
874
- }
875
-
876
- if (data) req.query(data);
877
- if (fn) req.end(fn);
878
- return req;
879
- };
880
- /**
881
- * HEAD `url` with optional callback `fn(res)`.
882
- *
883
- * @param {String} url
884
- * @param {Mixed|Function} [data] or fn
885
- * @param {Function} [fn]
886
- * @return {Request}
887
- * @api public
888
- */
889
-
890
-
891
- request.head = function (url, data, fn) {
892
- var req = request('HEAD', url);
893
-
894
- if (typeof data === 'function') {
895
- fn = data;
896
- data = null;
897
- }
898
-
899
- if (data) req.query(data);
900
- if (fn) req.end(fn);
901
- return req;
902
- };
903
- /**
904
- * OPTIONS query to `url` with optional callback `fn(res)`.
905
- *
906
- * @param {String} url
907
- * @param {Mixed|Function} [data] or fn
908
- * @param {Function} [fn]
909
- * @return {Request}
910
- * @api public
911
- */
912
-
913
-
914
- request.options = function (url, data, fn) {
915
- var req = request('OPTIONS', url);
916
-
917
- if (typeof data === 'function') {
918
- fn = data;
919
- data = null;
920
- }
921
-
922
- if (data) req.send(data);
923
- if (fn) req.end(fn);
924
- return req;
925
- };
926
- /**
927
- * DELETE `url` with optional `data` and callback `fn(res)`.
928
- *
929
- * @param {String} url
930
- * @param {Mixed} [data]
931
- * @param {Function} [fn]
932
- * @return {Request}
933
- * @api public
934
- */
935
-
936
-
937
- function del(url, data, fn) {
938
- var req = request('DELETE', url);
939
-
940
- if (typeof data === 'function') {
941
- fn = data;
942
- data = null;
943
- }
944
-
945
- if (data) req.send(data);
946
- if (fn) req.end(fn);
947
- return req;
948
- }
949
-
950
- request.del = del;
951
- request.delete = del;
952
- /**
953
- * PATCH `url` with optional `data` and callback `fn(res)`.
954
- *
955
- * @param {String} url
956
- * @param {Mixed} [data]
957
- * @param {Function} [fn]
958
- * @return {Request}
959
- * @api public
960
- */
961
-
962
- request.patch = function (url, data, fn) {
963
- var req = request('PATCH', url);
964
-
965
- if (typeof data === 'function') {
966
- fn = data;
967
- data = null;
968
- }
969
-
970
- if (data) req.send(data);
971
- if (fn) req.end(fn);
972
- return req;
973
- };
974
- /**
975
- * POST `url` with optional `data` and callback `fn(res)`.
976
- *
977
- * @param {String} url
978
- * @param {Mixed} [data]
979
- * @param {Function} [fn]
980
- * @return {Request}
981
- * @api public
982
- */
983
-
984
-
985
- request.post = function (url, data, fn) {
986
- var req = request('POST', url);
987
-
988
- if (typeof data === 'function') {
989
- fn = data;
990
- data = null;
991
- }
992
-
993
- if (data) req.send(data);
994
- if (fn) req.end(fn);
995
- return req;
996
- };
997
- /**
998
- * PUT `url` with optional `data` and callback `fn(res)`.
999
- *
1000
- * @param {String} url
1001
- * @param {Mixed|Function} [data] or fn
1002
- * @param {Function} [fn]
1003
- * @return {Request}
1004
- * @api public
1005
- */
1006
-
1007
-
1008
- request.put = function (url, data, fn) {
1009
- var req = request('PUT', url);
1010
-
1011
- if (typeof data === 'function') {
1012
- fn = data;
1013
- data = null;
1014
- }
1015
-
1016
- if (data) req.send(data);
1017
- if (fn) req.end(fn);
1018
- return req;
1019
- };
1020
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGllbnQuanMiXSwibmFtZXMiOlsicm9vdCIsIndpbmRvdyIsInNlbGYiLCJjb25zb2xlIiwid2FybiIsIkVtaXR0ZXIiLCJyZXF1aXJlIiwic2FmZVN0cmluZ2lmeSIsIlJlcXVlc3RCYXNlIiwiaXNPYmplY3QiLCJSZXNwb25zZUJhc2UiLCJBZ2VudCIsIm5vb3AiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0aG9kIiwidXJsIiwiUmVxdWVzdCIsImVuZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInJlcXVlc3QiLCJnZXRYSFIiLCJYTUxIdHRwUmVxdWVzdCIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJBY3RpdmVYT2JqZWN0IiwiRXJyb3IiLCJ0cmltIiwicyIsInJlcGxhY2UiLCJzZXJpYWxpemUiLCJvYmoiLCJwYWlycyIsImtleSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInB1c2hFbmNvZGVkS2V5VmFsdWVQYWlyIiwiam9pbiIsInZhbCIsInVuZGVmaW5lZCIsInB1c2giLCJlbmNvZGVVUkkiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwidiIsInN1YmtleSIsImVuY29kZVVSSUNvbXBvbmVudCIsInNlcmlhbGl6ZU9iamVjdCIsInBhcnNlU3RyaW5nIiwic3RyIiwic3BsaXQiLCJwYWlyIiwicG9zIiwiaSIsImxlbiIsImluZGV4T2YiLCJkZWNvZGVVUklDb21wb25lbnQiLCJzbGljZSIsInR5cGVzIiwiaHRtbCIsImpzb24iLCJ4bWwiLCJ1cmxlbmNvZGVkIiwiZm9ybSIsInBhcnNlIiwiSlNPTiIsInBhcnNlSGVhZGVyIiwibGluZXMiLCJmaWVsZHMiLCJpbmRleCIsImxpbmUiLCJmaWVsZCIsInRvTG93ZXJDYXNlIiwiaXNKU09OIiwibWltZSIsInRlc3QiLCJSZXNwb25zZSIsInJlcSIsInhociIsInRleHQiLCJyZXNwb25zZVR5cGUiLCJyZXNwb25zZVRleHQiLCJzdGF0dXNUZXh0Iiwic3RhdHVzIiwiX3NldFN0YXR1c1Byb3BlcnRpZXMiLCJoZWFkZXJzIiwiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIiwiaGVhZGVyIiwiZ2V0UmVzcG9uc2VIZWFkZXIiLCJfc2V0SGVhZGVyUHJvcGVydGllcyIsIl9yZXNwb25zZVR5cGUiLCJib2R5IiwicmVzcG9uc2UiLCJfcGFyc2VCb2R5IiwidHlwZSIsIl9wYXJzZXIiLCJ0b0Vycm9yIiwibXNnIiwiZXJyIiwiX3F1ZXJ5IiwiX2hlYWRlciIsIm9uIiwicmVzIiwiZXJyXyIsIm9yaWdpbmFsIiwicmF3UmVzcG9uc2UiLCJzdGF0dXNDb2RlIiwiY2FsbGJhY2siLCJlbWl0IiwibmV3X2VyciIsIl9pc1Jlc3BvbnNlT0siLCJzZXQiLCJhY2NlcHQiLCJhdXRoIiwidXNlciIsInBhc3MiLCJvcHRpb25zIiwiYnRvYSIsImVuY29kZXIiLCJzdHJpbmciLCJfYXV0aCIsInF1ZXJ5IiwiYXR0YWNoIiwiZmlsZSIsIl9kYXRhIiwiX2dldEZvcm1EYXRhIiwiYXBwZW5kIiwibmFtZSIsIl9mb3JtRGF0YSIsIkZvcm1EYXRhIiwiX3Nob3VsZFJldHJ5IiwiX3JldHJ5IiwiZm4iLCJfY2FsbGJhY2siLCJjbGVhclRpbWVvdXQiLCJfbWF4UmV0cmllcyIsInJldHJpZXMiLCJfcmV0cmllcyIsImNyb3NzRG9tYWluRXJyb3IiLCJjcm9zc0RvbWFpbiIsImFnZW50IiwiY2EiLCJidWZmZXIiLCJ3cml0ZSIsInBpcGUiLCJfaXNIb3N0IiwidG9TdHJpbmciLCJfZW5kQ2FsbGVkIiwiX2ZpbmFsaXplUXVlcnlTdHJpbmciLCJfZW5kIiwiX3NldFVwbG9hZFRpbWVvdXQiLCJfdXBsb2FkVGltZW91dCIsIl91cGxvYWRUaW1lb3V0VGltZXIiLCJzZXRUaW1lb3V0IiwiX3RpbWVvdXRFcnJvciIsIl9hYm9ydGVkIiwiZGF0YSIsIl9zZXRUaW1lb3V0cyIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJfcmVzcG9uc2VUaW1lb3V0VGltZXIiLCJ0aW1lZG91dCIsImhhbmRsZVByb2dyZXNzIiwiZGlyZWN0aW9uIiwiZSIsInRvdGFsIiwicGVyY2VudCIsImxvYWRlZCIsImhhc0xpc3RlbmVycyIsImFkZEV2ZW50TGlzdGVuZXIiLCJiaW5kIiwidXBsb2FkIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsIm9wZW4iLCJfd2l0aENyZWRlbnRpYWxzIiwid2l0aENyZWRlbnRpYWxzIiwiY29udGVudFR5cGUiLCJfc2VyaWFsaXplciIsInNldFJlcXVlc3RIZWFkZXIiLCJzZW5kIiwiX3NldERlZmF1bHRzIiwiZGVsIiwiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBhdGNoIiwicG9zdCIsInB1dCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7QUFJQSxJQUFJQSxJQUFKOztBQUNBLElBQUksT0FBT0MsTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUNqQztBQUNBRCxFQUFBQSxJQUFJLEdBQUdDLE1BQVA7QUFDRCxDQUhELE1BR08sSUFBSSxPQUFPQyxJQUFQLEtBQWdCLFdBQXBCLEVBQWlDO0FBQ3RDO0FBQ0FDLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUNFLHFFQURGO0FBR0FKLEVBQUFBLElBQUksU0FBSjtBQUNELENBTk0sTUFNQTtBQUNMO0FBQ0FBLEVBQUFBLElBQUksR0FBR0UsSUFBUDtBQUNEOztBQUVELElBQU1HLE9BQU8sR0FBR0MsT0FBTyxDQUFDLG1CQUFELENBQXZCOztBQUNBLElBQU1DLGFBQWEsR0FBR0QsT0FBTyxDQUFDLHFCQUFELENBQTdCOztBQUNBLElBQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGdCQUFELENBQTNCOztBQUNBLElBQU1HLFFBQVEsR0FBR0gsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsSUFBTUksWUFBWSxHQUFHSixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7O0FBQ0EsSUFBTUssS0FBSyxHQUFHTCxPQUFPLENBQUMsY0FBRCxDQUFyQjtBQUVBOzs7OztBQUlBLFNBQVNNLElBQVQsR0FBZ0IsQ0FBRTtBQUVsQjs7Ozs7QUFJ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cmVuY2UgZm9yIGlmcmFtZXMuXG4gKi9cblxubGV0IHJvb3Q7XG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgLy8gQnJvd3NlciB3aW5kb3dcbiAgcm9vdCA9IHdpbmRvdztcbn0gZWxzZSBpZiAodHlwZW9mIHNlbGYgPT09ICd1bmRlZmluZWQnKSB7XG4gIC8vIE90aGVyIGVudmlyb25tZW50c1xuICBjb25zb2xlLndhcm4oXG4gICAgJ1VzaW5nIGJyb3dzZXItb25seSB2ZXJzaW9uIG9mIHN1cGVyYWdlbnQgaW4gbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQnXG4gICk7XG4gIHJvb3QgPSB0aGlzO1xufSBlbHNlIHtcbiAgLy8gV2ViIFdvcmtlclxuICByb290ID0gc2VsZjtcbn1cblxuY29uc3QgRW1pdHRlciA9IHJlcXVpcmUoJ2NvbXBvbmVudC1lbWl0dGVyJyk7XG5jb25zdCBzYWZlU3RyaW5naWZ5ID0gcmVxdWlyZSgnZmFzdC1zYWZlLXN0cmluZ2lmeScpO1xuY29uc3QgUmVxdWVzdEJhc2UgPSByZXF1aXJlKCcuL3JlcXVlc3QtYmFzZScpO1xuY29uc3QgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzLW9iamVjdCcpO1xuY29uc3QgUmVzcG9uc2VCYXNlID0gcmVxdWlyZSgnLi9yZXNwb25zZS1iYXNlJyk7XG5jb25zdCBBZ2VudCA9IHJlcXVpcmUoJy4vYWdlbnQtYmFzZScpO1xuXG4vKipcbiAqIE5vb3AuXG4gKi9cblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8qKlxuICogRXhwb3NlIGByZXF1ZXN0YC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG1ldGhvZCwgdXJsKSB7XG4gIC8vIGNhbGxiYWNrXG4gIGlmICh0eXBlb2YgdXJsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG5ldyBleHBvcnRzLlJlcXVlc3QoJ0dFVCcsIG1ldGhvZCkuZW5kKHVybCk7XG4gIH1cblxuICAvLyB1cmwgZmlyc3RcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gbmV3IGV4cG9ydHMuUmVxdWVzdCgnR0VUJywgbWV0aG9kKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgZXhwb3J0cy5SZXF1ZXN0KG1ldGhvZCwgdXJsKTtcbn07XG5cbmV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cztcblxuY29uc3QgcmVxdWVzdCA9IGV4cG9ydHM7XG5cbmV4cG9ydHMuUmVxdWVzdCA9IFJlcXVlc3Q7XG5cbi8qKlxuICogRGV0ZXJtaW5lIFhIUi5cbiAqL1xuXG5yZXF1ZXN0LmdldFhIUiA9ICgpID0+IHtcbiAgaWYgKFxuICAgIHJvb3QuWE1MSHR0cFJlcXVlc3QgJiZcbiAgICAoIXJvb3QubG9jYXRpb24gfHxcbiAgICAgIHJvb3QubG9jYXRpb24ucHJvdG9jb2wgIT09ICdmaWxlOicgfHxcbiAgICAgICFyb290LkFjdGl2ZVhPYmplY3QpXG4gICkge1xuICAgIHJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNaWNyb3NvZnQuWE1MSFRUUCcpO1xuICB9IGNhdGNoIHt9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjYuMCcpO1xuICB9IGNhdGNoIHt9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjMuMCcpO1xuICB9IGNhdGNoIHt9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQJyk7XG4gIH0gY2F0Y2gge31cblxuICB0aHJvdyBuZXcgRXJyb3IoJ0Jyb3dzZXItb25seSB2ZXJzaW9uIG9mIHN1cGVyYWdlbnQgY291bGQgbm90IGZpbmQgWEhSJyk7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYWRkZWQgdG8gc3VwcG9ydCBJRS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuY29uc3QgdHJpbSA9ICcnLnRyaW0gPyBzID0+IHMudHJpbSgpIDogcyA9PiBzLnJlcGxhY2UoLyheXFxzKnxcXHMqJCkvZywgJycpO1xuXG4vKipcbiAqIFNlcmlhbGl6ZSB0aGUgZ2l2ZW4gYG9iamAuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2VyaWFsaXplKG9iaikge1xuICBpZiAoIWlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIGNvbnN0IHBhaXJzID0gW107XG4gIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKVxuICAgICAgcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgb2JqW2tleV0pO1xuICB9XG5cbiAgcmV0dXJuIHBhaXJzLmpvaW4oJyYnKTtcbn1cblxuLyoqXG4gKiBIZWxwcyAnc2VyaWFsaXplJyB3aXRoIHNlcmlhbGl6aW5nIGFycmF5cy5cbiAqIE11dGF0ZXMgdGhlIHBhaXJzIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IHBhaXJzXG4gKiBAcGFyYW0ge1N0cmluZ30ga2V5XG4gKiBAcGFyYW0ge01peGVkfSB2YWxcbiAqL1xuXG5mdW5jdGlvbiBwdXNoRW5jb2RlZEtleVZhbHVlUGFpcihwYWlycywga2V5LCB2YWwpIHtcbiAgaWYgKHZhbCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gIGlmICh2YWwgPT09IG51bGwpIHtcbiAgICBwYWlycy5wdXNoKGVuY29kZVVSSShrZXkpKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgdmFsLmZvckVhY2godiA9PiB7XG4gICAgICBwdXNoRW5jb2RlZEtleVZhbHVlUGFpcihwYWlycywga2V5LCB2KTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChpc09iamVjdCh2YWwpKSB7XG4gICAgZm9yIChjb25zdCBzdWJrZXkgaW4gdmFsKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwgc3Via2V5KSlcbiAgICAgICAgcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGAke2tleX1bJHtzdWJrZXl9XWAsIHZhbFtzdWJrZXldKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcGFpcnMucHVzaChlbmNvZGVVUkkoa2V5KSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWwpKTtcbiAgfVxufVxuXG4vKipcbiAqIEV4cG9zZSBzZXJpYWxpemF0aW9uIG1ldGhvZC5cbiAqL1xuXG5yZXF1ZXN0LnNlcmlhbGl6ZU9iamVjdCA9IHNlcmlhbGl6ZTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4geC13d3ctZm9ybS11cmxlbmNvZGVkIGBzdHJgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlU3RyaW5nKHN0cikge1xuICBjb25zdCBvYmogPSB7fTtcbiAgY29uc3QgcGFpcnMgPSBzdHIuc3BsaXQoJyYnKTtcbiAgbGV0IHBhaXI7XG4gIGxldCBwb3M7XG5cbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHBhaXJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgcGFpciA9IHBhaXJzW2ldO1xuICAgIHBvcyA9IHBhaXIuaW5kZXhPZignPScpO1xuICAgIGlmIChwb3MgPT09IC0xKSB7XG4gICAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIpXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIuc2xpY2UoMCwgcG9zKSldID0gZGVjb2RlVVJJQ29tcG9uZW50KFxuICAgICAgICBwYWlyLnNsaWNlKHBvcyArIDEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogRXhwb3NlIHBhcnNlci5cbiAqL1xuXG5yZXF1ZXN0LnBhcnNlU3RyaW5nID0gcGFyc2VTdHJpbmc7XG5cbi8qKlxuICogRGVmYXVsdCBNSU1FIHR5cGUgbWFwLlxuICpcbiAqICAgICBzdXBlcmFnZW50LnR5cGVzLnhtbCA9ICdhcHBsaWNhdGlvbi94bWwnO1xuICpcbiAqL1xuXG5yZXF1ZXN0LnR5cGVzID0ge1xuICBodG1sOiAndGV4dC9odG1sJyxcbiAganNvbjogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICB4bWw6ICd0ZXh0L3htbCcsXG4gIHVybGVuY29kZWQ6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICBmb3JtOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgJ2Zvcm0tZGF0YSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG59O1xuXG4vKipcbiAqIERlZmF1bHQgc2VyaWFsaXphdGlvbiBtYXAuXG4gKlxuICogICAgIHN1cGVyYWdlbnQuc2VyaWFsaXplWydhcHBsaWNhdGlvbi94bWwnXSA9IGZ1bmN0aW9uKG9iail7XG4gKiAgICAgICByZXR1cm4gJ2dlbmVyYXRlZCB4bWwgaGVyZSc7XG4gKiAgICAgfTtcbiAqXG4gKi9cblxucmVxdWVzdC5zZXJpYWxpemUgPSB7XG4gICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOiBzZXJpYWxpemUsXG4gICdhcHBsaWNhdGlvbi9qc29uJzogc2FmZVN0cmluZ2lmeVxufTtcblxuLyoqXG4gKiBEZWZhdWx0IHBhcnNlcnMuXG4gKlxuICogICAgIHN1cGVyYWdlbnQucGFyc2VbJ2FwcGxpY2F0aW9uL3htbCddID0gZnVuY3Rpb24oc3RyKXtcbiAqICAgICAgIHJldHVybiB7IG9iamVjdCBwYXJzZWQgZnJvbSBzdHIgfTtcbiAqICAgICB9O1xuICpcbiAqL1xuXG5yZXF1ZXN0LnBhcnNlID0ge1xuICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzogcGFyc2VTdHJpbmcsXG4gICdhcHBsaWNhdGlvbi9qc29uJzogSlNPTi5wYXJzZVxufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gaGVhZGVyIGBzdHJgIGludG9cbiAqIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBtYXBwZWQgZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlSGVhZGVyKHN0cikge1xuICBjb25zdCBsaW5lcyA9IHN0ci5zcGxpdCgvXFxyP1xcbi8pO1xuICBjb25zdCBmaWVsZHMgPSB7fTtcbiAgbGV0IGluZGV4O1xuICBsZXQgbGluZTtcbiAgbGV0IGZpZWxkO1xuICBsZXQgdmFsO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBsaW5lcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIGxpbmUgPSBsaW5lc1tpXTtcbiAgICBpbmRleCA9IGxpbmUuaW5kZXhPZignOicpO1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIC8vIGNvdWxkIGJlIGVtcHR5IGxpbmUsIGp1c3Qgc2tpcCBpdFxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgZmllbGQgPSBsaW5lLnNsaWNlKDAsIGluZGV4KS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbCA9IHRyaW0obGluZS5zbGljZShpbmRleCArIDEpKTtcbiAgICBmaWVsZHNbZmllbGRdID0gdmFsO1xuICB9XG5cbiAgcmV0dXJuIGZpZWxkcztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBgbWltZWAgaXMganNvbiBvciBoYXMgK2pzb24gc3RydWN0dXJlZCBzeW50YXggc3VmZml4LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBtaW1lXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNKU09OKG1pbWUpIHtcbiAgLy8gc2hvdWxkIG1hdGNoIC9qc29uIG9yICtqc29uXG4gIC8vIGJ1dCBub3QgL2pzb24tc2VxXG4gIHJldHVybiAvWy8rXWpzb24oJHxbXi1cXHddKS8udGVzdChtaW1lKTtcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXNwb25zZWAgd2l0aCB0aGUgZ2l2ZW4gYHhocmAuXG4gKlxuICogIC0gc2V0IGZsYWdzICgub2ssIC5lcnJvciwgZXRjKVxuICogIC0gcGFyc2UgaGVhZGVyXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogIEFsaWFzaW5nIGBzdXBlcmFnZW50YCBhcyBgcmVxdWVzdGAgaXMgbmljZTpcbiAqXG4gKiAgICAgIHJlcXVlc3QgPSBzdXBlcmFnZW50O1xuICpcbiAqICBXZSBjYW4gdXNlIHRoZSBwcm9taXNlLWxpa2UgQVBJLCBvciBwYXNzIGNhbGxiYWNrczpcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvJykuZW5kKGZ1bmN0aW9uKHJlcyl7fSk7XG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvJywgZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgU2VuZGluZyBkYXRhIGNhbiBiZSBjaGFpbmVkOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBPciBwYXNzZWQgdG8gYC5zZW5kKClgOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0sIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIE9yIHBhc3NlZCB0byBgLnBvc3QoKWA6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJywgeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqIE9yIGZ1cnRoZXIgcmVkdWNlZCB0byBhIHNpbmdsZSBjYWxsIGZvciBzaW1wbGUgY2FzZXM6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJywgeyBuYW1lOiAndGonIH0sIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogQHBhcmFtIHtYTUxIVFRQUmVxdWVzdH0geGhyXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gUmVzcG9uc2UocmVxKSB7XG4gIHRoaXMucmVxID0gcmVxO1xuICB0aGlzLnhociA9IHRoaXMucmVxLnhocjtcbiAgLy8gcmVzcG9uc2VUZXh0IGlzIGFjY2Vzc2libGUgb25seSBpZiByZXNwb25zZVR5cGUgaXMgJycgb3IgJ3RleHQnIGFuZCBvbiBvbGRlciBicm93c2Vyc1xuICB0aGlzLnRleHQgPVxuICAgICh0aGlzLnJlcS5tZXRob2QgIT09ICdIRUFEJyAmJlxuICAgICAgKHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJycgfHwgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndGV4dCcpKSB8fFxuICAgIHR5cGVvZiB0aGlzLnhoci5yZXNwb25zZVR5cGUgPT09ICd1bmRlZmluZWQnXG4gICAgICA/IHRoaXMueGhyLnJlc3BvbnNlVGV4dFxuICAgICAgOiBudWxsO1xuICB0aGlzLnN0YXR1c1RleHQgPSB0aGlzLnJlcS54aHIuc3RhdHVzVGV4dDtcbiAgbGV0IHsgc3RhdHVzIH0gPSB0aGlzLnhocjtcbiAgLy8gaGFuZGxlIElFOSBidWc6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTAwNDY5NzIvbXNpZS1yZXR1cm5zLXN0YXR1cy1jb2RlLW9mLTEyMjMtZm9yLWFqYXgtcmVxdWVzdFxuICBpZiAoc3RhdHVzID09PSAxMjIzKSB7XG4gICAgc3RhdHVzID0gMjA0O1xuICB9XG5cbiAgdGhpcy5fc2V0U3RhdHVzUHJvcGVydGllcyhzdGF0dXMpO1xuICB0aGlzLmhlYWRlcnMgPSBwYXJzZUhlYWRlcih0aGlzLnhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7XG4gIHRoaXMuaGVhZGVyID0gdGhpcy5oZWFkZXJzO1xuICAvLyBnZXRBbGxSZXNwb25zZUhlYWRlcnMgc29tZXRpbWVzIGZhbHNlbHkgcmV0dXJucyBcIlwiIGZvciBDT1JTIHJlcXVlc3RzLCBidXRcbiAgLy8gZ2V0UmVzcG9uc2VIZWFkZXIgc3RpbGwgd29ya3MuIHNvIHdlIGdldCBjb250ZW50LXR5cGUgZXZlbiBpZiBnZXR0aW5nXG4gIC8vIG90aGVyIGhlYWRlcnMgZmFpbHMuXG4gIHRoaXMuaGVhZGVyWydjb250ZW50LXR5cGUnXSA9IHRoaXMueGhyLmdldFJlc3BvbnNlSGVhZGVyKCdjb250ZW50LXR5cGUnKTtcbiAgdGhpcy5fc2V0SGVhZGVyUHJvcGVydGllcyh0aGlzLmhlYWRlcik7XG5cbiAgaWYgKHRoaXMudGV4dCA9PT0gbnVsbCAmJiByZXEuX3Jlc3BvbnNlVHlwZSkge1xuICAgIHRoaXMuYm9keSA9IHRoaXMueGhyLnJlc3BvbnNlO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuYm9keSA9XG4gICAgICB0aGlzLnJlcS5tZXRob2QgPT09ICdIRUFEJ1xuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB0aGlzLl9wYXJzZUJvZHkodGhpcy50ZXh0ID8gdGhpcy50ZXh0IDogdGhpcy54aHIucmVzcG9uc2UpO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG5SZXNwb25zZUJhc2UoUmVzcG9uc2UucHJvdG90eXBlKTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gYm9keSBgc3RyYC5cbiAqXG4gKiBVc2VkIGZvciBhdXRvLXBhcnNpbmcgb2YgYm9kaWVzLiBQYXJzZXJzXG4gKiBhcmUgZGVmaW5lZCBvbiB0aGUgYHN1cGVyYWdlbnQucGFyc2VgIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtNaXhlZH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5fcGFyc2VCb2R5ID0gZnVuY3Rpb24oc3RyKSB7XG4gIGxldCBwYXJzZSA9IHJlcXVlc3QucGFyc2VbdGhpcy50eXBlXTtcbiAgaWYgKHRoaXMucmVxLl9wYXJzZXIpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEuX3BhcnNlcih0aGlzLCBzdHIpO1xuICB9XG5cbiAgaWYgKCFwYXJzZSAmJiBpc0pTT04odGhpcy50eXBlKSkge1xuICAgIHBhcnNlID0gcmVxdWVzdC5wYXJzZVsnYXBwbGljYXRpb24vanNvbiddO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlICYmIHN0ciAmJiAoc3RyLmxlbmd0aCA+IDAgfHwgc3RyIGluc3RhbmNlb2YgT2JqZWN0KVxuICAgID8gcGFyc2Uoc3RyKVxuICAgIDogbnVsbDtcbn07XG5cbi8qKlxuICogUmV0dXJuIGFuIGBFcnJvcmAgcmVwcmVzZW50YXRpdmUgb2YgdGhpcyByZXNwb25zZS5cbiAqXG4gKiBAcmV0dXJuIHtFcnJvcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLnRvRXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgY29uc3QgeyByZXEgfSA9IHRoaXM7XG4gIGNvbnN0IHsgbWV0aG9kIH0gPSByZXE7XG4gIGNvbnN0IHsgdXJsIH0gPSByZXE7XG5cbiAgY29uc3QgbXNnID0gYGNhbm5vdCAke21ldGhvZH0gJHt1cmx9ICgke3RoaXMuc3RhdHVzfSlgO1xuICBjb25zdCBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gbWV0aG9kO1xuICBlcnIudXJsID0gdXJsO1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVzcG9uc2VgLlxuICovXG5cbnJlcXVlc3QuUmVzcG9uc2UgPSBSZXNwb25zZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXF1ZXN0YCB3aXRoIHRoZSBnaXZlbiBgbWV0aG9kYCBhbmQgYHVybGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBSZXF1ZXN0KG1ldGhvZCwgdXJsKSB7XG4gIGNvbnN0IHNlbGYgPSB0aGlzO1xuICB0aGlzLl9xdWVyeSA9IHRoaXMuX3F1ZXJ5IHx8IFtdO1xuICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgdGhpcy51cmwgPSB1cmw7XG4gIHRoaXMuaGVhZGVyID0ge307IC8vIHByZXNlcnZlcyBoZWFkZXIgbmFtZSBjYXNlXG4gIHRoaXMuX2hlYWRlciA9IHt9OyAvLyBjb2VyY2VzIGhlYWRlciBuYW1lcyB0byBsb3dlcmNhc2VcbiAgdGhpcy5vbignZW5kJywgKCkgPT4ge1xuICAgIGxldCBlcnIgPSBudWxsO1xuICAgIGxldCByZXMgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IG5ldyBSZXNwb25zZShzZWxmKTtcbiAgICB9IGNhdGNoIChlcnJfKSB7XG4gICAgICBlcnIgPSBuZXcgRXJyb3IoJ1BhcnNlciBpcyB1bmFibGUgdG8gcGFyc2UgdGhlIHJlc3BvbnNlJyk7XG4gICAgICBlcnIucGFyc2UgPSB0cnVlO1xuICAgICAgZXJyLm9yaWdpbmFsID0gZXJyXztcbiAgICAgIC8vIGlzc3VlICM2NzU6IHJldHVybiB0aGUgcmF3IHJlc3BvbnNlIGlmIHRoZSByZXNwb25zZSBwYXJzaW5nIGZhaWxzXG4gICAgICBpZiAoc2VsZi54aHIpIHtcbiAgICAgICAgLy8gaWU5IGRvZXNuJ3QgaGF2ZSAncmVzcG9uc2UnIHByb3BlcnR5XG4gICAgICAgIGVyci5yYXdSZXNwb25zZSA9XG4gICAgICAgICAgdHlwZW9mIHNlbGYueGhyLnJlc3BvbnNlVHlwZSA9PT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgID8gc2VsZi54aHIucmVzcG9uc2VUZXh0XG4gICAgICAgICAgICA6IHNlbGYueGhyLnJlc3BvbnNlO1xuICAgICAgICAvLyBpc3N1ZSAjODc2OiByZXR1cm4gdGhlIGh0dHAgc3RhdHVzIGNvZGUgaWYgdGhlIHJlc3BvbnNlIHBhcnNpbmcgZmFpbHNcbiAgICAgICAgZXJyLnN0YXR1cyA9IHNlbGYueGhyLnN0YXR1cyA/IHNlbGYueGhyLnN0YXR1cyA6IG51bGw7XG4gICAgICAgIGVyci5zdGF0dXNDb2RlID0gZXJyLnN0YXR1czsgLy8gYmFja3dhcmRzLWNvbXBhdCBvbmx5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnIucmF3UmVzcG9uc2UgPSBudWxsO1xuICAgICAgICBlcnIuc3RhdHVzID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlbGYuY2FsbGJhY2soZXJyKTtcbiAgICB9XG5cbiAgICBzZWxmLmVtaXQoJ3Jlc3BvbnNlJywgcmVzKTtcblxuICAgIGxldCBuZXdfZXJyO1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXNlbGYuX2lzUmVzcG9uc2VPSyhyZXMpKSB7XG4gICAgICAgIG5ld19lcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgcmVzLnN0YXR1c1RleHQgfHwgcmVzLnRleHQgfHwgJ1Vuc3VjY2Vzc2Z1bCBIVFRQIHJlc3BvbnNlJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycl8pIHtcbiAgICAgIG5ld19lcnIgPSBlcnJfOyAvLyBvaygpIGNhbGxiYWNrIGNhbiB0aHJvd1xuICAgIH1cblxuICAgIC8vICMxMDAwIGRvbid0IGNhdGNoIGVycm9ycyBmcm9tIHRoZSBjYWxsYmFjayB0byBhdm9pZCBkb3VibGUgY2FsbGluZyBpdFxuICAgIGlmIChuZXdfZXJyKSB7XG4gICAgICBuZXdfZXJyLm9yaWdpbmFsID0gZXJyO1xuICAgICAgbmV3X2Vyci5yZXNwb25zZSA9IHJlcztcbiAgICAgIG5ld19lcnIuc3RhdHVzID0gcmVzLnN0YXR1cztcbiAgICAgIHNlbGYuY2FsbGJhY2sobmV3X2VyciwgcmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZi5jYWxsYmFjayhudWxsLCByZXMpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogTWl4aW4gYEVtaXR0ZXJgIGFuZCBgUmVxdWVzdEJhc2VgLlxuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG5FbWl0dGVyKFJlcXVlc3QucHJvdG90eXBlKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG5SZXF1ZXN0QmFzZShSZXF1ZXN0LnByb3RvdHlwZSk7XG5cbi8qKlxuICogU2V0IENvbnRlbnQtVHlwZSB0byBgdHlwZWAsIG1hcHBpbmcgdmFsdWVzIGZyb20gYHJlcXVlc3QudHlwZXNgLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgc3VwZXJhZ2VudC50eXBlcy54bWwgPSAnYXBwbGljYXRpb24veG1sJztcbiAqXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnLycpXG4gKiAgICAgICAgLnR5cGUoJ3htbCcpXG4gKiAgICAgICAgLnNlbmQoeG1sc3RyaW5nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxdWVzdC5wb3N0KCcvJylcbiAqICAgICAgICAudHlwZSgnYXBwbGljYXRpb24veG1sJylcbiAqICAgICAgICAuc2VuZCh4bWxzdHJpbmcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS50eXBlID0gZnVuY3Rpb24odHlwZSkge1xuICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBY2NlcHQgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMuanNvbiA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy9hZ2VudCcpXG4gKiAgICAgICAgLmFjY2VwdCgnYXBwbGljYXRpb24vanNvbicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFjY2VwdFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKHR5cGUpIHtcbiAgdGhpcy5zZXQoJ0FjY2VwdCcsIHJlcXVlc3QudHlwZXNbdHlwZV0gfHwgdHlwZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgQXV0aG9yaXphdGlvbiBmaWVsZCB2YWx1ZSB3aXRoIGB1c2VyYCBhbmQgYHBhc3NgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1c2VyXG4gKiBAcGFyYW0ge1N0cmluZ30gW3Bhc3NdIG9wdGlvbmFsIGluIGNhc2Ugb2YgdXNpbmcgJ2JlYXJlcicgYXMgdHlwZVxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgd2l0aCAndHlwZScgcHJvcGVydHkgJ2F1dG8nLCAnYmFzaWMnIG9yICdiZWFyZXInIChkZWZhdWx0ICdiYXNpYycpXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXV0aCA9IGZ1bmN0aW9uKHVzZXIsIHBhc3MsIG9wdGlvbnMpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHBhc3MgPSAnJztcbiAgaWYgKHR5cGVvZiBwYXNzID09PSAnb2JqZWN0JyAmJiBwYXNzICE9PSBudWxsKSB7XG4gICAgLy8gcGFzcyBpcyBvcHRpb25hbCBhbmQgY2FuIGJlIHJlcGxhY2VkIHdpdGggb3B0aW9uc1xuICAgIG9wdGlvbnMgPSBwYXNzO1xuICAgIHBhc3MgPSAnJztcbiAgfVxuXG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICB0eXBlOiB0eXBlb2YgYnRvYSA9PT0gJ2Z1bmN0aW9uJyA/ICdiYXNpYycgOiAnYXV0bydcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgZW5jb2RlciA9IHN0cmluZyA9PiB7XG4gICAgaWYgKHR5cGVvZiBidG9hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gYnRvYShzdHJpbmcpO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSBiYXNpYyBhdXRoLCBidG9hIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gIH07XG5cbiAgcmV0dXJuIHRoaXMuX2F1dGgodXNlciwgcGFzcywgb3B0aW9ucywgZW5jb2Rlcik7XG59O1xuXG4vKipcbiAqIEFkZCBxdWVyeS1zdHJpbmcgYHZhbGAuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICByZXF1ZXN0LmdldCgnL3Nob2VzJylcbiAqICAgICAucXVlcnkoJ3NpemU9MTAnKVxuICogICAgIC5xdWVyeSh7IGNvbG9yOiAnYmx1ZScgfSlcbiAqXG4gKiBAcGFyYW0ge09iamVjdHxTdHJpbmd9IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnF1ZXJ5ID0gZnVuY3Rpb24odmFsKSB7XG4gIGlmICh0eXBlb2YgdmFsICE9PSAnc3RyaW5nJykgdmFsID0gc2VyaWFsaXplKHZhbCk7XG4gIGlmICh2YWwpIHRoaXMuX3F1ZXJ5LnB1c2godmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFF1ZXVlIHRoZSBnaXZlbiBgZmlsZWAgYXMgYW4gYXR0YWNobWVudCB0byB0aGUgc3BlY2lmaWVkIGBmaWVsZGAsXG4gKiB3aXRoIG9wdGlvbmFsIGBvcHRpb25zYCAob3IgZmlsZW5hbWUpLlxuICpcbiAqIGBgYCBqc1xuICogcmVxdWVzdC5wb3N0KCcvdXBsb2FkJylcbiAqICAgLmF0dGFjaCgnY29udGVudCcsIG5ldyBCbG9iKFsnPGEgaWQ9XCJhXCI+PGIgaWQ9XCJiXCI+aGV5ITwvYj48L2E+J10sIHsgdHlwZTogXCJ0ZXh0L2h0bWxcIn0pKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHBhcmFtIHtCbG9ifEZpbGV9IGZpbGVcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmF0dGFjaCA9IGZ1bmN0aW9uKGZpZWxkLCBmaWxlLCBvcHRpb25zKSB7XG4gIGlmIChmaWxlKSB7XG4gICAgaWYgKHRoaXMuX2RhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInN1cGVyYWdlbnQgY2FuJ3QgbWl4IC5zZW5kKCkgYW5kIC5hdHRhY2goKVwiKTtcbiAgICB9XG5cbiAgICB0aGlzLl9nZXRGb3JtRGF0YSgpLmFwcGVuZChmaWVsZCwgZmlsZSwgb3B0aW9ucyB8fCBmaWxlLm5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5fZ2V0Rm9ybURhdGEgPSBmdW5jdGlvbigpIHtcbiAgaWYgKCF0aGlzLl9mb3JtRGF0YSkge1xuICAgIHRoaXMuX2Zvcm1EYXRhID0gbmV3IHJvb3QuRm9ybURhdGEoKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLl9mb3JtRGF0YTtcbn07XG5cbi8qKlxuICogSW52b2tlIHRoZSBjYWxsYmFjayB3aXRoIGBlcnJgIGFuZCBgcmVzYFxuICogYW5kIGhhbmRsZSBhcml0eSBjaGVjay5cbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJcbiAqIEBwYXJhbSB7UmVzcG9uc2V9IHJlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuY2FsbGJhY2sgPSBmdW5jdGlvbihlcnIsIHJlcykge1xuICBpZiAodGhpcy5fc2hvdWxkUmV0cnkoZXJyLCByZXMpKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JldHJ5KCk7XG4gIH1cblxuICBjb25zdCBmbiA9IHRoaXMuX2NhbGxiYWNrO1xuICB0aGlzLmNsZWFyVGltZW91dCgpO1xuXG4gIGlmIChlcnIpIHtcbiAgICBpZiAodGhpcy5fbWF4UmV0cmllcykgZXJyLnJldHJpZXMgPSB0aGlzLl9yZXRyaWVzIC0gMTtcbiAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgfVxuXG4gIGZuKGVyciwgcmVzKTtcbn07XG5cbi8qKlxuICogSW52b2tlIGNhbGxiYWNrIHdpdGggeC1kb21haW4gZXJyb3IuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuY3Jvc3NEb21haW5FcnJvciA9IGZ1bmN0aW9uKCkge1xuICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoXG4gICAgJ1JlcXVlc3QgaGFzIGJlZW4gdGVybWluYXRlZFxcblBvc3NpYmxlIGNhdXNlczogdGhlIG5ldHdvcmsgaXMgb2ZmbGluZSwgT3JpZ2luIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwgdGhlIHBhZ2UgaXMgYmVpbmcgdW5sb2FkZWQsIGV0Yy4nXG4gICk7XG4gIGVyci5jcm9zc0RvbWFpbiA9IHRydWU7XG5cbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gdGhpcy5tZXRob2Q7XG4gIGVyci51cmwgPSB0aGlzLnVybDtcblxuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG4vLyBUaGlzIG9ubHkgd2FybnMsIGJlY2F1c2UgdGhlIHJlcXVlc3QgaXMgc3RpbGwgbGlrZWx5IHRvIHdvcmtcblJlcXVlc3QucHJvdG90eXBlLmFnZW50ID0gZnVuY3Rpb24oKSB7XG4gIGNvbnNvbGUud2FybignVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgdmVyc2lvbiBvZiBzdXBlcmFnZW50Jyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdC5wcm90b3R5cGUuY2EgPSBSZXF1ZXN0LnByb3RvdHlwZS5hZ2VudDtcblJlcXVlc3QucHJvdG90eXBlLmJ1ZmZlciA9IFJlcXVlc3QucHJvdG90eXBlLmNhO1xuXG4vLyBUaGlzIHRocm93cywgYmVjYXVzZSBpdCBjYW4ndCBzZW5kL3JlY2VpdmUgZGF0YSBhcyBleHBlY3RlZFxuUmVxdWVzdC5wcm90b3R5cGUud3JpdGUgPSAoKSA9PiB7XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICAnU3RyZWFtaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciB2ZXJzaW9uIG9mIHN1cGVyYWdlbnQnXG4gICk7XG59O1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5waXBlID0gUmVxdWVzdC5wcm90b3R5cGUud3JpdGU7XG5cbi8qKlxuICogQ2hlY2sgaWYgYG9iamAgaXMgYSBob3N0IG9iamVjdCxcbiAqIHdlIGRvbid0IHdhbnQgdG8gc2VyaWFsaXplIHRoZXNlIDopXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9iaiBob3N0IG9iamVjdFxuICogQHJldHVybiB7Qm9vbGVhbn0gaXMgYSBob3N0IG9iamVjdFxuICogQGFwaSBwcml2YXRlXG4gKi9cblJlcXVlc3QucHJvdG90eXBlLl9pc0hvc3QgPSBmdW5jdGlvbihvYmopIHtcbiAgLy8gTmF0aXZlIG9iamVjdHMgc3RyaW5naWZ5IHRvIFtvYmplY3QgRmlsZV0sIFtvYmplY3QgQmxvYl0sIFtvYmplY3QgRm9ybURhdGFdLCBldGMuXG4gIHJldHVybiAoXG4gICAgb2JqICYmXG4gICAgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiZcbiAgICAhQXJyYXkuaXNBcnJheShvYmopICYmXG4gICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgIT09ICdbb2JqZWN0IE9iamVjdF0nXG4gICk7XG59O1xuXG4vKipcbiAqIEluaXRpYXRlIHJlcXVlc3QsIGludm9raW5nIGNhbGxiYWNrIGBmbihyZXMpYFxuICogd2l0aCBhbiBpbnN0YW5jZW9mIGBSZXNwb25zZWAuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbihmbikge1xuICBpZiAodGhpcy5fZW5kQ2FsbGVkKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ1dhcm5pbmc6IC5lbmQoKSB3YXMgY2FsbGVkIHR3aWNlLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gc3VwZXJhZ2VudCdcbiAgICApO1xuICB9XG5cbiAgdGhpcy5fZW5kQ2FsbGVkID0gdHJ1ZTtcblxuICAvLyBzdG9yZSBjYWxsYmFja1xuICB0aGlzLl9jYWxsYmFjayA9IGZuIHx8IG5vb3A7XG5cbiAgLy8gcXVlcnlzdHJpbmdcbiAgdGhpcy5fZmluYWxpemVRdWVyeVN0cmluZygpO1xuXG4gIHRoaXMuX2VuZCgpO1xufTtcblxuUmVxdWVzdC5wcm90b3R5cGUuX3NldFVwbG9hZFRpbWVvdXQgPSBmdW5jdGlvbigpIHtcbiAgY29uc3Qgc2VsZiA9IHRoaXM7XG5cbiAgLy8gdXBsb2FkIHRpbWVvdXQgaXQncyB3b2tycyBvbmx5IGlmIGRlYWRsaW5lIHRpbWVvdXQgaXMgb2ZmXG4gIGlmICh0aGlzLl91cGxvYWRUaW1lb3V0ICYmICF0aGlzLl91cGxvYWRUaW1lb3V0VGltZXIpIHtcbiAgICB0aGlzLl91cGxvYWRUaW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNlbGYuX3RpbWVvdXRFcnJvcihcbiAgICAgICAgJ1VwbG9hZCB0aW1lb3V0IG9mICcsXG4gICAgICAgIHNlbGYuX3VwbG9hZFRpbWVvdXQsXG4gICAgICAgICdFVElNRURPVVQnXG4gICAgICApO1xuICAgIH0sIHRoaXMuX3VwbG9hZFRpbWVvdXQpO1xuICB9XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuUmVxdWVzdC5wcm90b3R5cGUuX2VuZCA9IGZ1bmN0aW9uKCkge1xuICBpZiAodGhpcy5fYWJvcnRlZClcbiAgICByZXR1cm4gdGhpcy5jYWxsYmFjayhcbiAgICAgIG5ldyBFcnJvcignVGhlIHJlcXVlc3QgaGFzIGJlZW4gYWJvcnRlZCBldmVuIGJlZm9yZSAuZW5kKCkgd2FzIGNhbGxlZCcpXG4gICAgKTtcblxuICBjb25zdCBzZWxmID0gdGhpcztcbiAgdGhpcy54aHIgPSByZXF1ZXN0LmdldFhIUigpO1xuICBjb25zdCB7IHhociB9ID0gdGhpcztcbiAgbGV0IGRhdGEgPSB0aGlzLl9mb3JtRGF0YSB8fCB0aGlzLl9kYXRhO1xuXG4gIHRoaXMuX3NldFRpbWVvdXRzKCk7XG5cbiAgLy8gc3RhdGUgY2hhbmdlXG4gIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgY29uc3QgeyByZWFkeVN0YXRlIH0gPSB4aHI7XG4gICAgaWYgKHJlYWR5U3RhdGUgPj0gMiAmJiBzZWxmLl9yZXNwb25zZVRpbWVvdXRUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHNlbGYuX3Jlc3BvbnNlVGltZW91dFRpbWVyKTtcbiAgICB9XG5cbiAgICBpZiAocmVhZHlTdGF0ZSAhPT0gNCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEluIElFOSwgcmVhZHMgdG8gYW55IHByb3BlcnR5IChlLmcuIHN0YXR1cykgb2ZmIG9mIGFuIGFib3J0ZWQgWEhSIHdpbGxcbiAgICAvLyByZXN1bHQgaW4gdGhlIGVycm9yIFwiQ291bGQgbm90IGNvbXBsZXRlIHRoZSBvcGVyYXRpb24gZHVlIHRvIGVycm9yIGMwMGMwMjNmXCJcbiAgICBsZXQgc3RhdHVzO1xuICAgIHRyeSB7XG4gICAgICBzdGF0dXMgPSB4aHIuc3RhdHVzO1xuICAgIH0gY2F0Y2gge1xuICAgICAgc3RhdHVzID0gMDtcbiAgICB9XG5cbiAgICBpZiAoIXN0YXR1cykge1xuICAgICAgaWYgKHNlbGYudGltZWRvdXQgfHwgc2VsZi5fYWJvcnRlZCkgcmV0dXJuO1xuICAgICAgcmV0dXJuIHNlbGYuY3Jvc3NEb21haW5FcnJvcigpO1xuICAgIH1cblxuICAgIHNlbGYuZW1pdCgnZW5kJyk7XG4gIH07XG5cbiAgLy8gcHJvZ3Jlc3NcbiAgY29uc3QgaGFuZGxlUHJvZ3Jlc3MgPSAoZGlyZWN0aW9uLCBlKSA9PiB7XG4gICAgaWYgKGUudG90YWwgPiAwKSB7XG4gICAgICBlLnBlcmNlbnQgPSAoZS5sb2FkZWQgLyBlLnRvdGFsKSAqIDEwMDtcblxuICAgICAgaWYgKGUucGVyY2VudCA9PT0gMTAwKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzZWxmLl91cGxvYWRUaW1lb3V0VGltZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGUuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgIHNlbGYuZW1pdCgncHJvZ3Jlc3MnLCBlKTtcbiAgfTtcblxuICBpZiAodGhpcy5oYXNMaXN0ZW5lcnMoJ3Byb2dyZXNzJykpIHtcbiAgICB0cnkge1xuICAgICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgaGFuZGxlUHJvZ3Jlc3MuYmluZChudWxsLCAnZG93bmxvYWQnKSk7XG4gICAgICBpZiAoeGhyLnVwbG9hZCkge1xuICAgICAgICB4aHIudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgJ3Byb2dyZXNzJyxcbiAgICAgICAgICBoYW5kbGVQcm9ncmVzcy5iaW5kKG51bGwsICd1cGxvYWQnKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gQWNjZXNzaW5nIHhoci51cGxvYWQgZmFpbHMgaW4gSUUgZnJvbSBhIHdlYiB3b3JrZXIsIHNvIGp1c3QgcHJldGVuZCBpdCBkb2Vzbid0IGV4aXN0LlxuICAgICAgLy8gUmVwb3J0ZWQgaGVyZTpcbiAgICAgIC8vIGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvODM3MjQ1L3htbGh0dHByZXF1ZXN0LXVwbG9hZC10aHJvd3MtaW52YWxpZC1hcmd1bWVudC13aGVuLXVzZWQtZnJvbS13ZWItd29ya2VyLWNvbnRleHRcbiAgICB9XG4gIH1cblxuICBpZiAoeGhyLnVwbG9hZCkge1xuICAgIHRoaXMuX3NldFVwbG9hZFRpbWVvdXQoKTtcbiAgfVxuXG4gIC8vIGluaXRpYXRlIHJlcXVlc3RcbiAgdHJ5IHtcbiAgICBpZiAodGhpcy51c2VybmFtZSAmJiB0aGlzLnBhc3N3b3JkKSB7XG4gICAgICB4aHIub3Blbih0aGlzLm1ldGhvZCwgdGhpcy51cmwsIHRydWUsIHRoaXMudXNlcm5hbWUsIHRoaXMucGFzc3dvcmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB4aHIub3Blbih0aGlzLm1ldGhvZCwgdGhpcy51cmwsIHRydWUpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gc2VlICMxMTQ5XG4gICAgcmV0dXJuIHRoaXMuY2FsbGJhY2soZXJyKTtcbiAgfVxuXG4gIC8vIENPUlNcbiAgaWYgKHRoaXMuX3dpdGhDcmVkZW50aWFscykgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWU7XG5cbiAgLy8gYm9keVxuICBpZiAoXG4gICAgIXRoaXMuX2Zvcm1EYXRhICYmXG4gICAgdGhpcy5tZXRob2QgIT09ICdHRVQnICYmXG4gICAgdGhpcy5tZXRob2QgIT09ICdIRUFEJyAmJlxuICAgIHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJyAmJlxuICAgICF0aGlzLl9pc0hvc3QoZGF0YSlcbiAgKSB7XG4gICAgLy8gc2VyaWFsaXplIHN0dWZmXG4gICAgY29uc3QgY29udGVudFR5cGUgPSB0aGlzLl9oZWFkZXJbJ2NvbnRlbnQtdHlwZSddO1xuICAgIGxldCBzZXJpYWxpemUgPVxuICAgICAgdGhpcy5fc2VyaWFsaXplciB8fFxuICAgICAgcmVxdWVzdC5zZXJpYWxpemVbY29udGVudFR5cGUgPyBjb250ZW50VHlwZS5zcGxpdCgnOycpWzBdIDogJyddO1xuICAgIGlmICghc2VyaWFsaXplICYmIGlzSlNPTihjb250ZW50VHlwZSkpIHtcbiAgICAgIHNlcmlhbGl6ZSA9IHJlcXVlc3Quc2VyaWFsaXplWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgfVxuXG4gICAgaWYgKHNlcmlhbGl6ZSkgZGF0YSA9IHNlcmlhbGl6ZShkYXRhKTtcbiAgfVxuXG4gIC8vIHNldCBoZWFkZXIgZmllbGRzXG4gIGZvciAoY29uc3QgZmllbGQgaW4gdGhpcy5oZWFkZXIpIHtcbiAgICBpZiAodGhpcy5oZWFkZXJbZmllbGRdID09PSBudWxsKSBjb250aW51ZTtcblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5oZWFkZXIsIGZpZWxkKSlcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGZpZWxkLCB0aGlzLmhlYWRlcltmaWVsZF0pO1xuICB9XG5cbiAgaWYgKHRoaXMuX3Jlc3BvbnNlVHlwZSkge1xuICAgIHhoci5yZXNwb25zZVR5cGUgPSB0aGlzLl9yZXNwb25zZVR5cGU7XG4gIH1cblxuICAvLyBzZW5kIHN0dWZmXG4gIHRoaXMuZW1pdCgncmVxdWVzdCcsIHRoaXMpO1xuXG4gIC8vIElFMTEgeGhyLnNlbmQodW5kZWZpbmVkKSBzZW5kcyAndW5kZWZpbmVkJyBzdHJpbmcgYXMgUE9TVCBwYXlsb2FkIChpbnN0ZWFkIG9mIG5vdGhpbmcpXG4gIC8vIFdlIG5lZWQgbnVsbCBoZXJlIGlmIGRhdGEgaXMgdW5kZWZpbmVkXG4gIHhoci5zZW5kKHR5cGVvZiBkYXRhID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiBkYXRhKTtcbn07XG5cbnJlcXVlc3QuYWdlbnQgPSAoKSA9PiBuZXcgQWdlbnQoKTtcblxuWydHRVQnLCAnUE9TVCcsICdPUFRJT05TJywgJ1BBVENIJywgJ1BVVCcsICdERUxFVEUnXS5mb3JFYWNoKG1ldGhvZCA9PiB7XG4gIEFnZW50LnByb3RvdHlwZVttZXRob2QudG9Mb3dlckNhc2UoKV0gPSBmdW5jdGlvbih1cmwsIGZuKSB7XG4gICAgY29uc3QgcmVxID0gbmV3IHJlcXVlc3QuUmVxdWVzdChtZXRob2QsIHVybCk7XG4gICAgdGhpcy5fc2V0RGVmYXVsdHMocmVxKTtcbiAgICBpZiAoZm4pIHtcbiAgICAgIHJlcS5lbmQoZm4pO1xuICAgIH1cblxuICAgIHJldHVybiByZXE7XG4gIH07XG59KTtcblxuQWdlbnQucHJvdG90eXBlLmRlbCA9IEFnZW50LnByb3RvdHlwZS5kZWxldGU7XG5cbi8qKlxuICogR0VUIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IFtkYXRhXSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5nZXQgPSAodXJsLCBkYXRhLCBmbikgPT4ge1xuICBjb25zdCByZXEgPSByZXF1ZXN0KCdHRVQnLCB1cmwpO1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmbiA9IGRhdGE7XG4gICAgZGF0YSA9IG51bGw7XG4gIH1cblxuICBpZiAoZGF0YSkgcmVxLnF1ZXJ5KGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBIRUFEIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IFtkYXRhXSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5oZWFkID0gKHVybCwgZGF0YSwgZm4pID0+IHtcbiAgY29uc3QgcmVxID0gcmVxdWVzdCgnSEVBRCcsIHVybCk7XG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZuID0gZGF0YTtcbiAgICBkYXRhID0gbnVsbDtcbiAgfVxuXG4gIGlmIChkYXRhKSByZXEucXVlcnkoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIE9QVElPTlMgcXVlcnkgdG8gYHVybGAgd2l0aCBvcHRpb25hbCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZHxGdW5jdGlvbn0gW2RhdGFdIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0Lm9wdGlvbnMgPSAodXJsLCBkYXRhLCBmbikgPT4ge1xuICBjb25zdCByZXEgPSByZXF1ZXN0KCdPUFRJT05TJywgdXJsKTtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm4gPSBkYXRhO1xuICAgIGRhdGEgPSBudWxsO1xuICB9XG5cbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBERUxFVEUgYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfSBbZGF0YV1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGRlbCh1cmwsIGRhdGEsIGZuKSB7XG4gIGNvbnN0IHJlcSA9IHJlcXVlc3QoJ0RFTEVURScsIHVybCk7XG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZuID0gZGF0YTtcbiAgICBkYXRhID0gbnVsbDtcbiAgfVxuXG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn1cblxucmVxdWVzdC5kZWwgPSBkZWw7XG5yZXF1ZXN0LmRlbGV0ZSA9IGRlbDtcblxuLyoqXG4gKiBQQVRDSCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR9IFtkYXRhXVxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wYXRjaCA9ICh1cmwsIGRhdGEsIGZuKSA9PiB7XG4gIGNvbnN0IHJlcSA9IHJlcXVlc3QoJ1BBVENIJywgdXJsKTtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm4gPSBkYXRhO1xuICAgIGRhdGEgPSBudWxsO1xuICB9XG5cbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQT1NUIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gW2RhdGFdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnBvc3QgPSAodXJsLCBkYXRhLCBmbikgPT4ge1xuICBjb25zdCByZXEgPSByZXF1ZXN0KCdQT1NUJywgdXJsKTtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm4gPSBkYXRhO1xuICAgIGRhdGEgPSBudWxsO1xuICB9XG5cbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQVVQgYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBbZGF0YV0gb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucHV0ID0gKHVybCwgZGF0YSwgZm4pID0+IHtcbiAgY29uc3QgcmVxID0gcmVxdWVzdCgnUFVUJywgdXJsKTtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm4gPSBkYXRhO1xuICAgIGRhdGEgPSBudWxsO1xuICB9XG5cbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcbiJdfQ==