ue-softphone-sdk 2.2.3 → 2.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/dist/api/bye.d.ts +16 -0
  2. package/dist/api/dtmf.d.ts +15 -0
  3. package/dist/api/emitter.d.ts +88 -0
  4. package/dist/api/exceptions/content-type-unsupported.d.ts +8 -0
  5. package/dist/api/exceptions/index.d.ts +5 -0
  6. package/dist/api/exceptions/request-pending.d.ts +9 -0
  7. package/dist/api/exceptions/session-description-handler.d.ts +8 -0
  8. package/dist/api/exceptions/session-terminated.d.ts +8 -0
  9. package/dist/api/exceptions/state-transition.d.ts +8 -0
  10. package/dist/api/index.d.ts +58 -0
  11. package/dist/api/info.d.ts +16 -0
  12. package/dist/api/invitation-accept-options.d.ts +19 -0
  13. package/dist/api/invitation-progress-options.d.ts +38 -0
  14. package/dist/api/invitation-reject-options.d.ts +25 -0
  15. package/dist/api/invitation.d.ts +179 -0
  16. package/dist/api/inviter-cancel-options.d.ts +9 -0
  17. package/dist/api/inviter-invite-options.d.ts +28 -0
  18. package/dist/api/inviter-options.d.ts +43 -0
  19. package/dist/api/inviter.d.ts +236 -0
  20. package/dist/api/message.d.ts +16 -0
  21. package/dist/api/messager-message-options.d.ts +11 -0
  22. package/dist/api/messager-options.d.ts +17 -0
  23. package/dist/api/messager.d.ts +26 -0
  24. package/dist/api/notification.d.ts +16 -0
  25. package/dist/api/notifier.d.ts +8 -0
  26. package/dist/api/publisher-options.d.ts +33 -0
  27. package/dist/api/publisher-publish-options.d.ts +6 -0
  28. package/dist/api/publisher-state.d.ts +21 -0
  29. package/dist/api/publisher-unpublish-options.d.ts +6 -0
  30. package/dist/api/publisher.d.ts +65 -0
  31. package/dist/api/referral.d.ts +38 -0
  32. package/dist/api/registerer-options.d.ts +46 -0
  33. package/dist/api/registerer-register-options.d.ts +11 -0
  34. package/dist/api/registerer-state.d.ts +21 -0
  35. package/dist/api/registerer-unregister-options.d.ts +16 -0
  36. package/dist/api/registerer.d.ts +144 -0
  37. package/dist/api/session-bye-options.d.ts +11 -0
  38. package/dist/api/session-delegate.d.ts +73 -0
  39. package/dist/api/session-description-handler-factory.d.ts +15 -0
  40. package/dist/api/session-description-handler.d.ts +74 -0
  41. package/dist/api/session-info-options.d.ts +11 -0
  42. package/dist/api/session-invite-options.d.ts +28 -0
  43. package/dist/api/session-message-options.d.ts +11 -0
  44. package/dist/api/session-options.d.ts +8 -0
  45. package/dist/api/session-refer-options.d.ts +14 -0
  46. package/dist/api/session-state.d.ts +45 -0
  47. package/dist/api/session.d.ts +359 -0
  48. package/dist/api/subscriber-options.d.ts +11 -0
  49. package/dist/api/subscriber-subscribe-options.d.ts +6 -0
  50. package/dist/api/subscriber.d.ts +94 -0
  51. package/dist/api/subscription-delegate.d.ts +12 -0
  52. package/dist/api/subscription-options.d.ts +8 -0
  53. package/dist/api/subscription-state.d.ts +19 -0
  54. package/dist/api/subscription-subscribe-options.d.ts +6 -0
  55. package/dist/api/subscription-unsubscribe-options.d.ts +6 -0
  56. package/dist/api/subscription.d.ts +84 -0
  57. package/dist/api/transport-state.d.ts +37 -0
  58. package/dist/api/transport.d.ts +159 -0
  59. package/dist/api/user-agent-delegate.d.ts +84 -0
  60. package/dist/api/user-agent-options.d.ts +253 -0
  61. package/dist/api/user-agent-state.d.ts +14 -0
  62. package/dist/api/user-agent.d.ts +200 -0
  63. package/dist/core/dialogs/dialog-state.d.ts +34 -0
  64. package/dist/core/dialogs/dialog.d.ts +161 -0
  65. package/dist/core/dialogs/index.d.ts +4 -0
  66. package/dist/core/dialogs/session-dialog.d.ts +196 -0
  67. package/dist/core/dialogs/subscription-dialog.d.ts +120 -0
  68. package/dist/core/exceptions/exception.d.ts +8 -0
  69. package/dist/core/exceptions/index.d.ts +3 -0
  70. package/dist/core/exceptions/transaction-state-error.d.ts +8 -0
  71. package/dist/core/exceptions/transport-error.d.ts +8 -0
  72. package/dist/core/index.d.ts +15 -0
  73. package/dist/core/log/index.d.ts +3 -0
  74. package/dist/core/log/levels.d.ts +10 -0
  75. package/dist/core/log/logger-factory.d.ts +21 -0
  76. package/dist/core/log/logger.d.ts +19 -0
  77. package/dist/core/messages/body.d.ts +64 -0
  78. package/dist/core/messages/digest-authentication.d.ts +51 -0
  79. package/dist/core/messages/incoming-message.d.ts +79 -0
  80. package/dist/core/messages/incoming-request-message.d.ts +10 -0
  81. package/dist/core/messages/incoming-request.d.ts +67 -0
  82. package/dist/core/messages/incoming-response-message.d.ts +10 -0
  83. package/dist/core/messages/incoming-response.d.ts +12 -0
  84. package/dist/core/messages/index.d.ts +13 -0
  85. package/dist/core/messages/md5.d.ts +32 -0
  86. package/dist/core/messages/methods/ack.d.ts +18 -0
  87. package/dist/core/messages/methods/bye.d.ts +21 -0
  88. package/dist/core/messages/methods/cancel.d.ts +21 -0
  89. package/dist/core/messages/methods/constants.d.ts +20 -0
  90. package/dist/core/messages/methods/index.d.ts +13 -0
  91. package/dist/core/messages/methods/info.d.ts +21 -0
  92. package/dist/core/messages/methods/invite.d.ts +86 -0
  93. package/dist/core/messages/methods/message.d.ts +21 -0
  94. package/dist/core/messages/methods/notify.d.ts +21 -0
  95. package/dist/core/messages/methods/prack.d.ts +21 -0
  96. package/dist/core/messages/methods/publish.d.ts +21 -0
  97. package/dist/core/messages/methods/refer.d.ts +21 -0
  98. package/dist/core/messages/methods/register.d.ts +21 -0
  99. package/dist/core/messages/methods/subscribe.d.ts +54 -0
  100. package/dist/core/messages/outgoing-request-message.d.ts +94 -0
  101. package/dist/core/messages/outgoing-request.d.ts +67 -0
  102. package/dist/core/messages/outgoing-response.d.ts +42 -0
  103. package/dist/core/messages/parser.d.ts +14 -0
  104. package/dist/core/messages/utils.d.ts +24 -0
  105. package/dist/core/session/index.d.ts +2 -0
  106. package/dist/core/session/session-delegate.d.ts +70 -0
  107. package/dist/core/session/session.d.ts +134 -0
  108. package/dist/core/subscription/index.d.ts +2 -0
  109. package/dist/core/subscription/subscription-delegate.d.ts +27 -0
  110. package/dist/core/subscription/subscription.d.ts +55 -0
  111. package/dist/core/timers.d.ts +20 -0
  112. package/dist/core/transactions/client-transaction.d.ts +45 -0
  113. package/dist/core/transactions/index.d.ts +10 -0
  114. package/dist/core/transactions/invite-client-transaction.d.ts +116 -0
  115. package/dist/core/transactions/invite-server-transaction.d.ts +127 -0
  116. package/dist/core/transactions/non-invite-client-transaction.d.ts +69 -0
  117. package/dist/core/transactions/non-invite-server-transaction.d.ts +57 -0
  118. package/dist/core/transactions/server-transaction.d.ts +35 -0
  119. package/dist/core/transactions/transaction-state.d.ts +13 -0
  120. package/dist/core/transactions/transaction-user.d.ts +72 -0
  121. package/dist/core/transactions/transaction.d.ts +79 -0
  122. package/dist/core/transport.d.ts +31 -0
  123. package/dist/core/user-agent-core/allowed-methods.d.ts +4 -0
  124. package/dist/core/user-agent-core/index.d.ts +3 -0
  125. package/dist/core/user-agent-core/user-agent-core-configuration.d.ts +99 -0
  126. package/dist/core/user-agent-core/user-agent-core-delegate.d.ts +37 -0
  127. package/dist/core/user-agent-core/user-agent-core.d.ts +179 -0
  128. package/dist/core/user-agents/bye-user-agent-client.d.ts +10 -0
  129. package/dist/core/user-agents/bye-user-agent-server.d.ts +10 -0
  130. package/dist/core/user-agents/cancel-user-agent-client.d.ts +10 -0
  131. package/dist/core/user-agents/index.d.ts +26 -0
  132. package/dist/core/user-agents/info-user-agent-client.d.ts +10 -0
  133. package/dist/core/user-agents/info-user-agent-server.d.ts +10 -0
  134. package/dist/core/user-agents/invite-user-agent-client.d.ts +35 -0
  135. package/dist/core/user-agents/invite-user-agent-server.d.ts +77 -0
  136. package/dist/core/user-agents/message-user-agent-client.d.ts +10 -0
  137. package/dist/core/user-agents/message-user-agent-server.d.ts +10 -0
  138. package/dist/core/user-agents/notify-user-agent-client.d.ts +10 -0
  139. package/dist/core/user-agents/notify-user-agent-server.d.ts +16 -0
  140. package/dist/core/user-agents/prack-user-agent-client.d.ts +10 -0
  141. package/dist/core/user-agents/prack-user-agent-server.d.ts +16 -0
  142. package/dist/core/user-agents/publish-user-agent-client.d.ts +10 -0
  143. package/dist/core/user-agents/re-invite-user-agent-client.d.ts +18 -0
  144. package/dist/core/user-agents/re-invite-user-agent-server.d.ts +41 -0
  145. package/dist/core/user-agents/re-subscribe-user-agent-client.d.ts +17 -0
  146. package/dist/core/user-agents/re-subscribe-user-agent-server.d.ts +10 -0
  147. package/dist/core/user-agents/refer-user-agent-client.d.ts +10 -0
  148. package/dist/core/user-agents/refer-user-agent-server.d.ts +16 -0
  149. package/dist/core/user-agents/register-user-agent-client.d.ts +10 -0
  150. package/dist/core/user-agents/register-user-agent-server.d.ts +11 -0
  151. package/dist/core/user-agents/subscribe-user-agent-client.d.ts +65 -0
  152. package/dist/core/user-agents/subscribe-user-agent-server.d.ts +11 -0
  153. package/dist/core/user-agents/user-agent-client.d.ts +103 -0
  154. package/dist/core/user-agents/user-agent-server.d.ts +79 -0
  155. package/dist/grammar/grammar.d.ts +26 -0
  156. package/dist/grammar/index.d.ts +4 -0
  157. package/dist/grammar/name-addr-header.d.ts +24 -0
  158. package/dist/grammar/parameters.d.ts +16 -0
  159. package/dist/grammar/pegjs/dist/grammar.d.ts +50 -0
  160. package/dist/grammar/uri.d.ts +62 -0
  161. package/dist/{types/index.d.ts → index.d.ts} +7 -3
  162. package/dist/main.d.ts +9 -0
  163. package/dist/new-index.d.ts +199 -0
  164. package/dist/platform/web/index.d.ts +4 -0
  165. package/dist/platform/web/modifiers/index.d.ts +5 -0
  166. package/dist/platform/web/modifiers/modifiers.d.ts +41 -0
  167. package/dist/platform/web/session-description-handler/index.d.ts +14 -0
  168. package/dist/platform/web/session-description-handler/media-stream-factory-default.d.ts +6 -0
  169. package/dist/platform/web/session-description-handler/media-stream-factory.d.ts +6 -0
  170. package/dist/platform/web/session-description-handler/peer-connection-configuration-default.d.ts +5 -0
  171. package/dist/platform/web/session-description-handler/peer-connection-delegate.d.ts +63 -0
  172. package/dist/platform/web/session-description-handler/session-description-handler-configuration.d.ts +16 -0
  173. package/dist/platform/web/session-description-handler/session-description-handler-factory-default.d.ts +11 -0
  174. package/dist/platform/web/session-description-handler/session-description-handler-factory-options.d.ts +9 -0
  175. package/dist/platform/web/session-description-handler/session-description-handler-factory.d.ts +16 -0
  176. package/dist/platform/web/session-description-handler/session-description-handler-options.d.ts +47 -0
  177. package/dist/platform/web/session-description-handler/session-description-handler.d.ts +212 -0
  178. package/dist/platform/web/simple-user/index.d.ts +7 -0
  179. package/dist/platform/web/simple-user/simple-user-delegate.d.ts +72 -0
  180. package/dist/platform/web/simple-user/simple-user-options.d.ts +90 -0
  181. package/dist/platform/web/simple-user/simple-user.d.ts +226 -0
  182. package/dist/platform/web/transport/index.d.ts +6 -0
  183. package/dist/platform/web/transport/transport-options.d.ts +30 -0
  184. package/dist/platform/web/transport/transport.d.ts +125 -0
  185. package/dist/ue-softphone-sdk.js +2 -1
  186. package/dist/ue-softphone-sdk.js.map +1 -0
  187. package/dist/version.d.ts +1 -0
  188. package/dist/webPhoneSdk.d.ts +24 -0
  189. package/dist/webrtc.d.ts +17 -0
  190. package/{rollup-new.config.mjs → new-rollup.config.mjs} +1 -1
  191. package/package.json +6 -6
  192. package/rollup.config.js +15 -14
  193. package/src/api/api-extractor.json +358 -0
  194. package/src/api/bye.ts +27 -0
  195. package/src/api/dtmf.ts +27 -0
  196. package/src/api/emitter.ts +110 -0
  197. package/src/api/exceptions/content-type-unsupported.ts +11 -0
  198. package/src/api/exceptions/index.ts +5 -0
  199. package/src/api/exceptions/request-pending.ts +12 -0
  200. package/src/api/exceptions/session-description-handler.ts +11 -0
  201. package/src/api/exceptions/session-terminated.ts +11 -0
  202. package/src/api/exceptions/state-transition.ts +11 -0
  203. package/src/api/index.ts +58 -0
  204. package/src/api/info.ts +27 -0
  205. package/src/api/invitation-accept-options.ts +20 -0
  206. package/src/api/invitation-progress-options.ts +36 -0
  207. package/src/api/invitation-reject-options.ts +22 -0
  208. package/src/api/invitation.ts +816 -0
  209. package/src/api/inviter-cancel-options.ts +9 -0
  210. package/src/api/inviter-invite-options.ts +29 -0
  211. package/src/api/inviter-options.ts +44 -0
  212. package/src/api/inviter.ts +1126 -0
  213. package/src/api/message.ts +27 -0
  214. package/src/api/messager-message-options.ts +12 -0
  215. package/src/api/messager-options.ts +18 -0
  216. package/src/api/messager.ts +89 -0
  217. package/src/api/notification.ts +27 -0
  218. package/src/api/notifier.ts +7 -0
  219. package/src/api/publisher-options.ts +34 -0
  220. package/src/api/publisher-publish-options.ts +6 -0
  221. package/src/api/publisher-state.ts +21 -0
  222. package/src/api/publisher-unpublish-options.ts +6 -0
  223. package/src/api/publisher.ts +418 -0
  224. package/src/api/referral.ts +89 -0
  225. package/src/api/registerer-options.ts +55 -0
  226. package/src/api/registerer-register-options.ts +12 -0
  227. package/src/api/registerer-state.ts +21 -0
  228. package/src/api/registerer-unregister-options.ts +17 -0
  229. package/src/api/registerer.ts +814 -0
  230. package/src/api/session-bye-options.ts +12 -0
  231. package/src/api/session-delegate.ts +80 -0
  232. package/src/api/session-description-handler-factory.ts +16 -0
  233. package/src/api/session-description-handler.ts +89 -0
  234. package/src/api/session-info-options.ts +12 -0
  235. package/src/api/session-invite-options.ts +29 -0
  236. package/src/api/session-message-options.ts +12 -0
  237. package/src/api/session-options.ts +8 -0
  238. package/src/api/session-refer-options.ts +15 -0
  239. package/src/api/session-state.ts +45 -0
  240. package/src/api/session.ts +1448 -0
  241. package/src/api/subscriber-options.ts +12 -0
  242. package/src/api/subscriber-subscribe-options.ts +6 -0
  243. package/src/api/subscriber.ts +536 -0
  244. package/src/api/subscription-delegate.ts +13 -0
  245. package/src/api/subscription-options.ts +8 -0
  246. package/src/api/subscription-state.ts +19 -0
  247. package/src/api/subscription-subscribe-options.ts +6 -0
  248. package/src/api/subscription-unsubscribe-options.ts +6 -0
  249. package/src/api/subscription.ts +161 -0
  250. package/src/api/transport-state.ts +37 -0
  251. package/src/api/transport.ts +169 -0
  252. package/src/api/user-agent-delegate.ts +95 -0
  253. package/src/api/user-agent-options.ts +322 -0
  254. package/src/api/user-agent-state.ts +14 -0
  255. package/src/api/user-agent.ts +1014 -0
  256. package/src/core/api-extractor.json +358 -0
  257. package/src/core/dialogs/dialog-state.ts +35 -0
  258. package/src/core/dialogs/dialog.ts +605 -0
  259. package/src/core/dialogs/index.ts +4 -0
  260. package/src/core/dialogs/session-dialog.ts +996 -0
  261. package/src/core/dialogs/subscription-dialog.ts +557 -0
  262. package/src/core/exceptions/exception.ts +11 -0
  263. package/src/core/exceptions/index.ts +3 -0
  264. package/src/core/exceptions/transaction-state-error.ts +11 -0
  265. package/src/core/exceptions/transport-error.ts +11 -0
  266. package/src/core/index.ts +19 -0
  267. package/src/core/log/index.ts +3 -0
  268. package/src/core/log/levels.ts +10 -0
  269. package/src/core/log/logger-factory.ts +119 -0
  270. package/src/core/log/logger.ts +42 -0
  271. package/src/core/messages/body.ts +171 -0
  272. package/src/core/messages/digest-authentication.ts +190 -0
  273. package/src/core/messages/incoming-message.ts +152 -0
  274. package/src/core/messages/incoming-request-message.ts +14 -0
  275. package/src/core/messages/incoming-request.ts +75 -0
  276. package/src/core/messages/incoming-response-message.ts +14 -0
  277. package/src/core/messages/incoming-response.ts +13 -0
  278. package/src/core/messages/index.ts +18 -0
  279. package/src/core/messages/md5.ts +437 -0
  280. package/src/core/messages/methods/ack.ts +22 -0
  281. package/src/core/messages/methods/bye.ts +22 -0
  282. package/src/core/messages/methods/cancel.ts +22 -0
  283. package/src/core/messages/methods/constants.ts +21 -0
  284. package/src/core/messages/methods/index.ts +13 -0
  285. package/src/core/messages/methods/info.ts +22 -0
  286. package/src/core/messages/methods/invite.ts +104 -0
  287. package/src/core/messages/methods/message.ts +22 -0
  288. package/src/core/messages/methods/notify.ts +22 -0
  289. package/src/core/messages/methods/prack.ts +22 -0
  290. package/src/core/messages/methods/publish.ts +22 -0
  291. package/src/core/messages/methods/refer.ts +22 -0
  292. package/src/core/messages/methods/register.ts +22 -0
  293. package/src/core/messages/methods/subscribe.ts +59 -0
  294. package/src/core/messages/outgoing-request-message.ts +299 -0
  295. package/src/core/messages/outgoing-request.ts +77 -0
  296. package/src/core/messages/outgoing-response.ts +174 -0
  297. package/src/core/messages/parser.ts +265 -0
  298. package/src/core/messages/utils.ts +144 -0
  299. package/src/core/session/index.ts +2 -0
  300. package/src/core/session/session-delegate.ts +88 -0
  301. package/src/core/session/session.ts +158 -0
  302. package/src/core/subscription/index.ts +2 -0
  303. package/src/core/subscription/subscription-delegate.ts +30 -0
  304. package/src/core/subscription/subscription.ts +61 -0
  305. package/src/core/timers.ts +24 -0
  306. package/src/core/transactions/client-transaction.ts +78 -0
  307. package/src/core/transactions/index.ts +10 -0
  308. package/src/core/transactions/invite-client-transaction.ts +504 -0
  309. package/src/core/transactions/invite-server-transaction.ts +432 -0
  310. package/src/core/transactions/non-invite-client-transaction.ts +257 -0
  311. package/src/core/transactions/non-invite-server-transaction.ts +241 -0
  312. package/src/core/transactions/server-transaction.ts +47 -0
  313. package/src/core/transactions/transaction-state.ts +13 -0
  314. package/src/core/transactions/transaction-user.ts +82 -0
  315. package/src/core/transactions/transaction.ts +149 -0
  316. package/src/core/transport.ts +32 -0
  317. package/src/core/user-agent-core/allowed-methods.ts +19 -0
  318. package/src/core/user-agent-core/index.ts +3 -0
  319. package/src/core/user-agent-core/user-agent-core-configuration.ts +111 -0
  320. package/src/core/user-agent-core/user-agent-core-delegate.ts +50 -0
  321. package/src/core/user-agent-core/user-agent-core.ts +905 -0
  322. package/src/core/user-agents/bye-user-agent-client.ts +16 -0
  323. package/src/core/user-agents/bye-user-agent-server.ts +14 -0
  324. package/src/core/user-agents/cancel-user-agent-client.ts +14 -0
  325. package/src/core/user-agents/index.ts +26 -0
  326. package/src/core/user-agents/info-user-agent-client.ts +15 -0
  327. package/src/core/user-agents/info-user-agent-server.ts +14 -0
  328. package/src/core/user-agents/invite-user-agent-client.ts +405 -0
  329. package/src/core/user-agents/invite-user-agent-server.ts +269 -0
  330. package/src/core/user-agents/message-user-agent-client.ts +14 -0
  331. package/src/core/user-agents/message-user-agent-server.ts +14 -0
  332. package/src/core/user-agents/notify-user-agent-client.ts +15 -0
  333. package/src/core/user-agents/notify-user-agent-server.ts +30 -0
  334. package/src/core/user-agents/prack-user-agent-client.ts +16 -0
  335. package/src/core/user-agents/prack-user-agent-server.ts +37 -0
  336. package/src/core/user-agents/publish-user-agent-client.ts +14 -0
  337. package/src/core/user-agents/re-invite-user-agent-client.ts +127 -0
  338. package/src/core/user-agents/re-invite-user-agent-server.ts +109 -0
  339. package/src/core/user-agents/re-subscribe-user-agent-client.ts +78 -0
  340. package/src/core/user-agents/re-subscribe-user-agent-server.ts +14 -0
  341. package/src/core/user-agents/refer-user-agent-client.ts +15 -0
  342. package/src/core/user-agents/refer-user-agent-server.ts +30 -0
  343. package/src/core/user-agents/register-user-agent-client.ts +14 -0
  344. package/src/core/user-agents/register-user-agent-server.ts +14 -0
  345. package/src/core/user-agents/subscribe-user-agent-client.ts +341 -0
  346. package/src/core/user-agents/subscribe-user-agent-server.ts +14 -0
  347. package/src/core/user-agents/user-agent-client.ts +378 -0
  348. package/src/core/user-agents/user-agent-server.ts +276 -0
  349. package/src/grammar/grammar.ts +55 -0
  350. package/src/grammar/index.ts +4 -0
  351. package/src/grammar/name-addr-header.ts +58 -0
  352. package/src/grammar/parameters.ts +45 -0
  353. package/src/grammar/pegjs/README.md +9 -0
  354. package/src/grammar/pegjs/dist/grammar.ts +1557 -0
  355. package/src/grammar/pegjs/src/grammar.pegjs +1009 -0
  356. package/src/grammar/uri.ts +370 -0
  357. package/src/index.ts +49 -26
  358. package/src/lib/socket.io.esm.min.js +7 -0
  359. package/src/main.ts +26 -0
  360. package/src/new-index.ts +2486 -0
  361. package/src/platform/react/README.md +1 -0
  362. package/src/platform/web/index.ts +4 -0
  363. package/src/platform/web/modifiers/index.ts +5 -0
  364. package/src/platform/web/modifiers/modifiers.ts +180 -0
  365. package/src/platform/web/session-description-handler/api-extractor.json +358 -0
  366. package/src/platform/web/session-description-handler/index.ts +14 -0
  367. package/src/platform/web/session-description-handler/media-stream-factory-default.ts +22 -0
  368. package/src/platform/web/session-description-handler/media-stream-factory.ts +10 -0
  369. package/src/platform/web/session-description-handler/peer-connection-configuration-default.ts +17 -0
  370. package/src/platform/web/session-description-handler/peer-connection-delegate.ts +72 -0
  371. package/src/platform/web/session-description-handler/session-description-handler-configuration.ts +17 -0
  372. package/src/platform/web/session-description-handler/session-description-handler-factory-default.ts +45 -0
  373. package/src/platform/web/session-description-handler/session-description-handler-factory-options.ts +10 -0
  374. package/src/platform/web/session-description-handler/session-description-handler-factory.ts +17 -0
  375. package/src/platform/web/session-description-handler/session-description-handler-options.ts +56 -0
  376. package/src/platform/web/session-description-handler/session-description-handler.ts +938 -0
  377. package/src/platform/web/simple-user/api-extractor.json +358 -0
  378. package/src/platform/web/simple-user/index.ts +7 -0
  379. package/src/platform/web/simple-user/simple-user-delegate.ts +82 -0
  380. package/src/platform/web/simple-user/simple-user-options.ts +102 -0
  381. package/src/platform/web/simple-user/simple-user.ts +1099 -0
  382. package/src/platform/web/transport/api-extractor.json +358 -0
  383. package/src/platform/web/transport/index.ts +6 -0
  384. package/src/platform/web/transport/transport-options.ts +34 -0
  385. package/src/platform/web/transport/transport.ts +742 -0
  386. package/src/version.ts +8 -0
  387. package/src/webPhoneSdk.ts +67 -0
  388. package/src/webrtc.ts +318 -0
  389. package/tsconfig.json +26 -10
  390. /package/dist/{types/config.d.ts → config.d.ts} +0 -0
@@ -0,0 +1,1557 @@
1
+ import { NameAddrHeader } from "../../name-addr-header";
2
+ import { URI } from "../../uri";
3
+
4
+ // Generated by PEG.js v. 0.10.0 (ts-pegjs plugin v. 0.3.0 )
5
+ //
6
+ // https://pegjs.org/ https://github.com/metadevpro/ts-pegjs
7
+
8
+ export interface IFilePosition {
9
+ offset: number;
10
+ line: number;
11
+ column: number;
12
+ }
13
+
14
+ export interface IFileRange {
15
+ start: IFilePosition;
16
+ end: IFilePosition;
17
+ }
18
+
19
+ export interface ILiteralExpectation {
20
+ type: "literal";
21
+ text: string;
22
+ ignoreCase: boolean;
23
+ }
24
+
25
+ export interface IClassParts extends Array<string | IClassParts> {}
26
+
27
+ export interface IClassExpectation {
28
+ type: "class";
29
+ parts: IClassParts;
30
+ inverted: boolean;
31
+ ignoreCase: boolean;
32
+ }
33
+
34
+ export interface IAnyExpectation {
35
+ type: "any";
36
+ }
37
+
38
+ export interface IEndExpectation {
39
+ type: "end";
40
+ }
41
+
42
+ export interface IOtherExpectation {
43
+ type: "other";
44
+ description: string;
45
+ }
46
+
47
+ export type Expectation = ILiteralExpectation | IClassExpectation | IAnyExpectation | IEndExpectation | IOtherExpectation;
48
+
49
+ export class SyntaxError extends Error {
50
+ public static buildMessage(expected: Expectation[], found: string | null) {
51
+ function hex(ch: string): string {
52
+ return ch.charCodeAt(0).toString(16).toUpperCase();
53
+ }
54
+
55
+ function literalEscape(s: string): string {
56
+ return s
57
+ .replace(/\\/g, "\\\\")
58
+ .replace(/"/g, "\\\"")
59
+ .replace(/\0/g, "\\0")
60
+ .replace(/\t/g, "\\t")
61
+ .replace(/\n/g, "\\n")
62
+ .replace(/\r/g, "\\r")
63
+ .replace(/[\x00-\x0F]/g, (ch) => "\\x0" + hex(ch) )
64
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, (ch) => "\\x" + hex(ch) );
65
+ }
66
+
67
+ function classEscape(s: string): string {
68
+ return s
69
+ .replace(/\\/g, "\\\\")
70
+ .replace(/\]/g, "\\]")
71
+ .replace(/\^/g, "\\^")
72
+ .replace(/-/g, "\\-")
73
+ .replace(/\0/g, "\\0")
74
+ .replace(/\t/g, "\\t")
75
+ .replace(/\n/g, "\\n")
76
+ .replace(/\r/g, "\\r")
77
+ .replace(/[\x00-\x0F]/g, (ch) => "\\x0" + hex(ch) )
78
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, (ch) => "\\x" + hex(ch) );
79
+ }
80
+
81
+ function describeExpectation(expectation: Expectation) {
82
+ switch (expectation.type) {
83
+ case "literal":
84
+ return "\"" + literalEscape(expectation.text) + "\"";
85
+ case "class":
86
+ const escapedParts = expectation.parts.map((part) => {
87
+ return Array.isArray(part)
88
+ ? classEscape(part[0] as string) + "-" + classEscape(part[1] as string)
89
+ : classEscape(part);
90
+ });
91
+
92
+ return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]";
93
+ case "any":
94
+ return "any character";
95
+ case "end":
96
+ return "end of input";
97
+ case "other":
98
+ return expectation.description;
99
+ }
100
+ }
101
+
102
+ function describeExpected(expected1: Expectation[]) {
103
+ const descriptions = expected1.map(describeExpectation);
104
+ let i: number;
105
+ let j: number;
106
+
107
+ descriptions.sort();
108
+
109
+ if (descriptions.length > 0) {
110
+ for (i = 1, j = 1; i < descriptions.length; i++) {
111
+ if (descriptions[i - 1] !== descriptions[i]) {
112
+ descriptions[j] = descriptions[i];
113
+ j++;
114
+ }
115
+ }
116
+ descriptions.length = j;
117
+ }
118
+
119
+ switch (descriptions.length) {
120
+ case 1:
121
+ return descriptions[0];
122
+
123
+ case 2:
124
+ return descriptions[0] + " or " + descriptions[1];
125
+
126
+ default:
127
+ return descriptions.slice(0, -1).join(", ")
128
+ + ", or "
129
+ + descriptions[descriptions.length - 1];
130
+ }
131
+ }
132
+
133
+ function describeFound(found1: string | null) {
134
+ return found1 ? "\"" + literalEscape(found1) + "\"" : "end of input";
135
+ }
136
+
137
+ return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
138
+ }
139
+
140
+ public message: string;
141
+ public expected: Expectation[];
142
+ public found: string | null;
143
+ public location: IFileRange;
144
+ public name: string;
145
+
146
+ constructor(message: string, expected: Expectation[], found: string | null, location: IFileRange) {
147
+ super();
148
+ this.message = message;
149
+ this.expected = expected;
150
+ this.found = found;
151
+ this.location = location;
152
+ this.name = "SyntaxError";
153
+
154
+ if (typeof (Error as any).captureStackTrace === "function") {
155
+ (Error as any).captureStackTrace(this, SyntaxError);
156
+ }
157
+ }
158
+ }
159
+
160
+ function peg$parse(input: string, options?: IParseOptions) {
161
+ options = options !== undefined ? options : {};
162
+
163
+ const peg$FAILED: Readonly<any> = {};
164
+
165
+ const peg$startRuleIndices: {[id: string]: number} = { Contact: 119, Name_Addr_Header: 156, Record_Route: 176, Request_Response: 81, SIP_URI: 45, Subscription_State: 186, Supported: 191, Require: 182, Via: 194, absoluteURI: 84, Call_ID: 118, Content_Disposition: 130, Content_Length: 135, Content_Type: 136, CSeq: 146, displayName: 122, Event: 149, From: 151, host: 52, Max_Forwards: 154, Min_SE: 213, Proxy_Authenticate: 157, quoted_string: 40, Refer_To: 178, Replaces: 179, Session_Expires: 210, stun_URI: 217, To: 192, turn_URI: 223, uuid: 226, WWW_Authenticate: 209, challenge: 158, sipfrag: 230, Referred_By: 231 };
166
+ let peg$startRuleIndex = 119;
167
+
168
+ const peg$consts = [
169
+ "\r\n",
170
+ peg$literalExpectation("\r\n", false),
171
+ /^[0-9]/,
172
+ peg$classExpectation([["0", "9"]], false, false),
173
+ /^[a-zA-Z]/,
174
+ peg$classExpectation([["a", "z"], ["A", "Z"]], false, false),
175
+ /^[0-9a-fA-F]/,
176
+ peg$classExpectation([["0", "9"], ["a", "f"], ["A", "F"]], false, false),
177
+ /^[\0-\xFF]/,
178
+ peg$classExpectation([["\0", "\xFF"]], false, false),
179
+ /^["]/,
180
+ peg$classExpectation(["\""], false, false),
181
+ " ",
182
+ peg$literalExpectation(" ", false),
183
+ "\t",
184
+ peg$literalExpectation("\t", false),
185
+ /^[a-zA-Z0-9]/,
186
+ peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false),
187
+ ";",
188
+ peg$literalExpectation(";", false),
189
+ "/",
190
+ peg$literalExpectation("/", false),
191
+ "?",
192
+ peg$literalExpectation("?", false),
193
+ ":",
194
+ peg$literalExpectation(":", false),
195
+ "@",
196
+ peg$literalExpectation("@", false),
197
+ "&",
198
+ peg$literalExpectation("&", false),
199
+ "=",
200
+ peg$literalExpectation("=", false),
201
+ "+",
202
+ peg$literalExpectation("+", false),
203
+ "$",
204
+ peg$literalExpectation("$", false),
205
+ ",",
206
+ peg$literalExpectation(",", false),
207
+ "-",
208
+ peg$literalExpectation("-", false),
209
+ "_",
210
+ peg$literalExpectation("_", false),
211
+ ".",
212
+ peg$literalExpectation(".", false),
213
+ "!",
214
+ peg$literalExpectation("!", false),
215
+ "~",
216
+ peg$literalExpectation("~", false),
217
+ "*",
218
+ peg$literalExpectation("*", false),
219
+ "'",
220
+ peg$literalExpectation("'", false),
221
+ "(",
222
+ peg$literalExpectation("(", false),
223
+ ")",
224
+ peg$literalExpectation(")", false),
225
+ "%",
226
+ peg$literalExpectation("%", false),
227
+ function(): any {return " "; },
228
+ function(): any {return ':'; },
229
+ /^[!-~]/,
230
+ peg$classExpectation([["!", "~"]], false, false),
231
+ /^[\x80-\uFFFF]/,
232
+ peg$classExpectation([["\x80", "\uFFFF"]], false, false),
233
+ /^[\x80-\xBF]/,
234
+ peg$classExpectation([["\x80", "\xBF"]], false, false),
235
+ /^[a-f]/,
236
+ peg$classExpectation([["a", "f"]], false, false),
237
+ "`",
238
+ peg$literalExpectation("`", false),
239
+ "<",
240
+ peg$literalExpectation("<", false),
241
+ ">",
242
+ peg$literalExpectation(">", false),
243
+ "\\",
244
+ peg$literalExpectation("\\", false),
245
+ "[",
246
+ peg$literalExpectation("[", false),
247
+ "]",
248
+ peg$literalExpectation("]", false),
249
+ "{",
250
+ peg$literalExpectation("{", false),
251
+ "}",
252
+ peg$literalExpectation("}", false),
253
+ function(): any {return "*"; },
254
+ function(): any {return "/"; },
255
+ function(): any {return "="; },
256
+ function(): any {return "("; },
257
+ function(): any {return ")"; },
258
+ function(): any {return ">"; },
259
+ function(): any {return "<"; },
260
+ function(): any {return ","; },
261
+ function(): any {return ";"; },
262
+ function(): any {return ":"; },
263
+ function(): any {return "\""; },
264
+ /^[!-']/,
265
+ peg$classExpectation([["!", "'"]], false, false),
266
+ /^[*-[]/,
267
+ peg$classExpectation([["*", "["]], false, false),
268
+ /^[\]-~]/,
269
+ peg$classExpectation([["]", "~"]], false, false),
270
+ function(contents: any): any {
271
+ return contents; },
272
+ /^[#-[]/,
273
+ peg$classExpectation([["#", "["]], false, false),
274
+ /^[\0-\t]/,
275
+ peg$classExpectation([["\0", "\t"]], false, false),
276
+ /^[\x0B-\f]/,
277
+ peg$classExpectation([["\x0B", "\f"]], false, false),
278
+ /^[\x0E-\x7F]/,
279
+ peg$classExpectation([["\x0E", "\x7F"]], false, false),
280
+ function(): any {
281
+ options = options || { data: {}};
282
+ options.data.uri = new URI(options.data.scheme, options.data.user, options.data.host, options.data.port);
283
+ delete options.data.scheme;
284
+ delete options.data.user;
285
+ delete options.data.host;
286
+ delete options.data.host_type;
287
+ delete options.data.port;
288
+ },
289
+ function(): any {
290
+ options = options || { data: {}};
291
+ options.data.uri = new URI(options.data.scheme, options.data.user, options.data.host, options.data.port, options.data.uri_params, options.data.uri_headers);
292
+ delete options.data.scheme;
293
+ delete options.data.user;
294
+ delete options.data.host;
295
+ delete options.data.host_type;
296
+ delete options.data.port;
297
+ delete options.data.uri_params;
298
+
299
+ if (options.startRule === 'SIP_URI') { options.data = options.data.uri;}
300
+ },
301
+ "sips",
302
+ peg$literalExpectation("sips", true),
303
+ "sip",
304
+ peg$literalExpectation("sip", true),
305
+ function(uri_scheme: any): any {
306
+ options = options || { data: {}};
307
+ options.data.scheme = uri_scheme; },
308
+ function(): any {
309
+ options = options || { data: {}};
310
+ options.data.user = decodeURIComponent(text().slice(0, -1));},
311
+ function(): any {
312
+ options = options || { data: {}};
313
+ options.data.password = text(); },
314
+ function(): any {
315
+ options = options || { data: {}};
316
+ options.data.host = text();
317
+ return options.data.host; },
318
+ function(): any {
319
+ options = options || { data: {}};
320
+ options.data.host_type = 'domain';
321
+ return text(); },
322
+ /^[a-zA-Z0-9_\-]/,
323
+ peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "_", "-"], false, false),
324
+ /^[a-zA-Z0-9\-]/,
325
+ peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"], "-"], false, false),
326
+ function(): any {
327
+ options = options || { data: {}};
328
+ options.data.host_type = 'IPv6';
329
+ return text(); },
330
+ "::",
331
+ peg$literalExpectation("::", false),
332
+ function(): any {
333
+ options = options || { data: {}};
334
+ options.data.host_type = 'IPv6';
335
+ return text(); },
336
+ function(): any {
337
+ options = options || { data: {}};
338
+ options.data.host_type = 'IPv4';
339
+ return text(); },
340
+ "25",
341
+ peg$literalExpectation("25", false),
342
+ /^[0-5]/,
343
+ peg$classExpectation([["0", "5"]], false, false),
344
+ "2",
345
+ peg$literalExpectation("2", false),
346
+ /^[0-4]/,
347
+ peg$classExpectation([["0", "4"]], false, false),
348
+ "1",
349
+ peg$literalExpectation("1", false),
350
+ /^[1-9]/,
351
+ peg$classExpectation([["1", "9"]], false, false),
352
+ function(port: any): any {
353
+ options = options || { data: {}};
354
+ port = parseInt(port.join(''));
355
+ options.data.port = port;
356
+ return port; },
357
+ "transport=",
358
+ peg$literalExpectation("transport=", true),
359
+ "udp",
360
+ peg$literalExpectation("udp", true),
361
+ "tcp",
362
+ peg$literalExpectation("tcp", true),
363
+ "sctp",
364
+ peg$literalExpectation("sctp", true),
365
+ "tls",
366
+ peg$literalExpectation("tls", true),
367
+ function(transport: any): any {
368
+ options = options || { data: {}};
369
+ if(!options.data.uri_params) options.data.uri_params={};
370
+ options.data.uri_params['transport'] = transport.toLowerCase(); },
371
+ "user=",
372
+ peg$literalExpectation("user=", true),
373
+ "phone",
374
+ peg$literalExpectation("phone", true),
375
+ "ip",
376
+ peg$literalExpectation("ip", true),
377
+ function(user: any): any {
378
+ options = options || { data: {}};
379
+ if(!options.data.uri_params) options.data.uri_params={};
380
+ options.data.uri_params['user'] = user.toLowerCase(); },
381
+ "method=",
382
+ peg$literalExpectation("method=", true),
383
+ function(method: any): any {
384
+ options = options || { data: {}};
385
+ if(!options.data.uri_params) options.data.uri_params={};
386
+ options.data.uri_params['method'] = method; },
387
+ "ttl=",
388
+ peg$literalExpectation("ttl=", true),
389
+ function(ttl: any): any {
390
+ options = options || { data: {}};
391
+ if(!options.data.params) options.data.params={};
392
+ options.data.params['ttl'] = ttl; },
393
+ "maddr=",
394
+ peg$literalExpectation("maddr=", true),
395
+ function(maddr: any): any {
396
+ options = options || { data: {}};
397
+ if(!options.data.uri_params) options.data.uri_params={};
398
+ options.data.uri_params['maddr'] = maddr; },
399
+ "lr",
400
+ peg$literalExpectation("lr", true),
401
+ function(): any {
402
+ options = options || { data: {}};
403
+ if(!options.data.uri_params) options.data.uri_params={};
404
+ options.data.uri_params['lr'] = undefined; },
405
+ function(param: any, value: any): any {
406
+ options = options || { data: {}};
407
+ if(!options.data.uri_params) options.data.uri_params = {};
408
+ if (value === null){
409
+ value = undefined;
410
+ }
411
+ else {
412
+ value = value[1];
413
+ }
414
+ options.data.uri_params[param.toLowerCase()] = value;},
415
+ function(hname: any, hvalue: any): any {
416
+ hname = hname.join('').toLowerCase();
417
+ hvalue = hvalue.join('');
418
+ options = options || { data: {}};
419
+ if(!options.data.uri_headers) options.data.uri_headers = {};
420
+ if (!options.data.uri_headers[hname]) {
421
+ options.data.uri_headers[hname] = [hvalue];
422
+ } else {
423
+ options.data.uri_headers[hname].push(hvalue);
424
+ }},
425
+ function(): any {
426
+ options = options || { data: {}};
427
+ // lots of tests fail if this isn't guarded...
428
+ if (options.startRule === 'Refer_To') {
429
+ options.data.uri = new URI(options.data.scheme, options.data.user, options.data.host, options.data.port, options.data.uri_params, options.data.uri_headers);
430
+ delete options.data.scheme;
431
+ delete options.data.user;
432
+ delete options.data.host;
433
+ delete options.data.host_type;
434
+ delete options.data.port;
435
+ delete options.data.uri_params;
436
+ }
437
+ },
438
+ "//",
439
+ peg$literalExpectation("//", false),
440
+ function(): any {
441
+ options = options || { data: {}};
442
+ options.data.scheme= text(); },
443
+ peg$literalExpectation("SIP", true),
444
+ function(): any {
445
+ options = options || { data: {}};
446
+ options.data.sip_version = text(); },
447
+ "INVITE",
448
+ peg$literalExpectation("INVITE", false),
449
+ "ACK",
450
+ peg$literalExpectation("ACK", false),
451
+ "VXACH",
452
+ peg$literalExpectation("VXACH", false),
453
+ "OPTIONS",
454
+ peg$literalExpectation("OPTIONS", false),
455
+ "BYE",
456
+ peg$literalExpectation("BYE", false),
457
+ "CANCEL",
458
+ peg$literalExpectation("CANCEL", false),
459
+ "REGISTER",
460
+ peg$literalExpectation("REGISTER", false),
461
+ "SUBSCRIBE",
462
+ peg$literalExpectation("SUBSCRIBE", false),
463
+ "NOTIFY",
464
+ peg$literalExpectation("NOTIFY", false),
465
+ "REFER",
466
+ peg$literalExpectation("REFER", false),
467
+ "PUBLISH",
468
+ peg$literalExpectation("PUBLISH", false),
469
+ function(): any {
470
+
471
+ options = options || { data: {}};
472
+ options.data.method = text();
473
+ return options.data.method; },
474
+ function(status_code: any): any {
475
+ options = options || { data: {}};
476
+ options.data.status_code = parseInt(status_code.join('')); },
477
+ function(): any {
478
+ options = options || { data: {}};
479
+ options.data.reason_phrase = text(); },
480
+ function(): any {
481
+ options = options || { data: {}};
482
+ options.data = text(); },
483
+ function(): any {
484
+ var idx, length;
485
+ options = options || { data: {}};
486
+ length = options.data.multi_header.length;
487
+ for (idx = 0; idx < length; idx++) {
488
+ if (options.data.multi_header[idx].parsed === null) {
489
+ options.data = null;
490
+ break;
491
+ }
492
+ }
493
+ if (options.data !== null) {
494
+ options.data = options.data.multi_header;
495
+ } else {
496
+ options.data = -1;
497
+ }},
498
+ function(): any {
499
+ var header;
500
+ options = options || { data: {}};
501
+ if(!options.data.multi_header) options.data.multi_header = [];
502
+ try {
503
+ header = new NameAddrHeader(options.data.uri, options.data.displayName, options.data.params);
504
+ delete options.data.uri;
505
+ delete options.data.displayName;
506
+ delete options.data.params;
507
+ } catch(e) {
508
+ header = null;
509
+ }
510
+ options.data.multi_header.push( { 'position': peg$currPos,
511
+ 'offset': location().start.offset,
512
+ 'parsed': header
513
+ });},
514
+ function(displayName: any): any {
515
+ displayName = text().trim();
516
+ if (displayName[0] === '\"') {
517
+ displayName = displayName.substring(1, displayName.length-1);
518
+ }
519
+ options = options || { data: {}};
520
+ options.data.displayName = displayName; },
521
+ "q",
522
+ peg$literalExpectation("q", true),
523
+ function(q: any): any {
524
+ options = options || { data: {}};
525
+ if(!options.data.params) options.data.params = {};
526
+ options.data.params['q'] = q; },
527
+ "expires",
528
+ peg$literalExpectation("expires", true),
529
+ function(expires: any): any {
530
+ options = options || { data: {}};
531
+ if(!options.data.params) options.data.params = {};
532
+ options.data.params['expires'] = expires; },
533
+ function(delta_seconds: any): any {
534
+ return parseInt(delta_seconds.join('')); },
535
+ "0",
536
+ peg$literalExpectation("0", false),
537
+ function(): any {
538
+ return parseFloat(text()); },
539
+ function(param: any, value: any): any {
540
+ options = options || { data: {}};
541
+ if(!options.data.params) options.data.params = {};
542
+ if (value === null){
543
+ value = undefined;
544
+ }
545
+ else {
546
+ value = value[1];
547
+ }
548
+ options.data.params[param.toLowerCase()] = value;},
549
+ "render",
550
+ peg$literalExpectation("render", true),
551
+ "session",
552
+ peg$literalExpectation("session", true),
553
+ "icon",
554
+ peg$literalExpectation("icon", true),
555
+ "alert",
556
+ peg$literalExpectation("alert", true),
557
+ function(): any {
558
+ options = options || { data: {}};
559
+ if (options.startRule === 'Content_Disposition') {
560
+ options.data.type = text().toLowerCase();
561
+ }
562
+ },
563
+ "handling",
564
+ peg$literalExpectation("handling", true),
565
+ "optional",
566
+ peg$literalExpectation("optional", true),
567
+ "required",
568
+ peg$literalExpectation("required", true),
569
+ function(length: any): any {
570
+ options = options || { data: {}};
571
+ options.data = parseInt(length.join('')); },
572
+ function(): any {
573
+ options = options || { data: {}};
574
+ options.data = text(); },
575
+ "text",
576
+ peg$literalExpectation("text", true),
577
+ "image",
578
+ peg$literalExpectation("image", true),
579
+ "audio",
580
+ peg$literalExpectation("audio", true),
581
+ "video",
582
+ peg$literalExpectation("video", true),
583
+ "application",
584
+ peg$literalExpectation("application", true),
585
+ "message",
586
+ peg$literalExpectation("message", true),
587
+ "multipart",
588
+ peg$literalExpectation("multipart", true),
589
+ "x-",
590
+ peg$literalExpectation("x-", true),
591
+ function(cseq_value: any): any {
592
+ options = options || { data: {}};
593
+ options.data.value=parseInt(cseq_value.join('')); },
594
+ function(expires: any): any {options = options || { data: {}}; options.data = expires; },
595
+ function(event_type: any): any {
596
+ options = options || { data: {}};
597
+ options.data.event = event_type.toLowerCase(); },
598
+ function(): any {
599
+ options = options || { data: {}};
600
+ var tag = options.data.tag;
601
+ options.data = new NameAddrHeader(options.data.uri, options.data.displayName, options.data.params);
602
+ if (tag) {options.data.setParam('tag',tag)}
603
+ },
604
+ "tag",
605
+ peg$literalExpectation("tag", true),
606
+ function(tag: any): any {options = options || { data: {}};options.data.tag = tag; },
607
+ function(forwards: any): any {
608
+ options = options || { data: {}};
609
+ options.data = parseInt(forwards.join('')); },
610
+ function(min_expires: any): any {options = options || { data: {}}; options.data = min_expires; },
611
+ function(): any {
612
+ options = options || { data: {}};
613
+ options.data = new NameAddrHeader(options.data.uri, options.data.displayName, options.data.params);
614
+ },
615
+ "digest",
616
+ peg$literalExpectation("Digest", true),
617
+ "realm",
618
+ peg$literalExpectation("realm", true),
619
+ function(realm: any): any { options = options || { data: {}}; options.data.realm = realm; },
620
+ "domain",
621
+ peg$literalExpectation("domain", true),
622
+ "nonce",
623
+ peg$literalExpectation("nonce", true),
624
+ function(nonce: any): any { options = options || { data: {}}; options.data.nonce=nonce; },
625
+ "opaque",
626
+ peg$literalExpectation("opaque", true),
627
+ function(opaque: any): any { options = options || { data: {}}; options.data.opaque=opaque; },
628
+ "stale",
629
+ peg$literalExpectation("stale", true),
630
+ "true",
631
+ peg$literalExpectation("true", true),
632
+ function(): any { options = options || { data: {}}; options.data.stale=true; },
633
+ "false",
634
+ peg$literalExpectation("false", true),
635
+ function(): any { options = options || { data: {}}; options.data.stale=false; },
636
+ "algorithm",
637
+ peg$literalExpectation("algorithm", true),
638
+ "md5",
639
+ peg$literalExpectation("MD5", true),
640
+ "md5-sess",
641
+ peg$literalExpectation("MD5-sess", true),
642
+ function(algorithm: any): any {
643
+ options = options || { data: {}};
644
+ options.data.algorithm=algorithm.toUpperCase(); },
645
+ "qop",
646
+ peg$literalExpectation("qop", true),
647
+ "auth-int",
648
+ peg$literalExpectation("auth-int", true),
649
+ "auth",
650
+ peg$literalExpectation("auth", true),
651
+ function(qop_value: any): any {
652
+ options = options || { data: {}};
653
+ options.data.qop || (options.data.qop=[]);
654
+ options.data.qop.push(qop_value.toLowerCase()); },
655
+ function(rack_value: any): any {
656
+ options = options || { data: {}};
657
+ options.data.value=parseInt(rack_value.join('')); },
658
+ function(): any {
659
+ var idx, length;
660
+ options = options || { data: {}};
661
+ length = options.data.multi_header.length;
662
+ for (idx = 0; idx < length; idx++) {
663
+ if (options.data.multi_header[idx].parsed === null) {
664
+ options.data = null;
665
+ break;
666
+ }
667
+ }
668
+ if (options.data !== null) {
669
+ options.data = options.data.multi_header;
670
+ } else {
671
+ options.data = -1;
672
+ }},
673
+ function(): any {
674
+ var header;
675
+ options = options || { data: {}};
676
+ if(!options.data.multi_header) options.data.multi_header = [];
677
+ try {
678
+ header = new NameAddrHeader(options.data.uri, options.data.displayName, options.data.params);
679
+ delete options.data.uri;
680
+ delete options.data.displayName;
681
+ delete options.data.params;
682
+ } catch(e) {
683
+ header = null;
684
+ }
685
+ options.data.multi_header.push( { 'position': peg$currPos,
686
+ 'offset': location().start.offset,
687
+ 'parsed': header
688
+ });},
689
+ function(): any {
690
+ options = options || { data: {}};
691
+ options.data = new NameAddrHeader(options.data.uri, options.data.displayName, options.data.params);
692
+ },
693
+ function(): any {
694
+ options = options || { data: {}};
695
+ if (!(options.data.replaces_from_tag && options.data.replaces_to_tag)) {
696
+ options.data = -1;
697
+ }
698
+ },
699
+ function(): any {
700
+ options = options || { data: {}};
701
+ options.data = {
702
+ call_id: options.data
703
+ };
704
+ },
705
+ "from-tag",
706
+ peg$literalExpectation("from-tag", true),
707
+ function(from_tag: any): any {
708
+ options = options || { data: {}};
709
+ options.data.replaces_from_tag = from_tag;
710
+ },
711
+ "to-tag",
712
+ peg$literalExpectation("to-tag", true),
713
+ function(to_tag: any): any {
714
+ options = options || { data: {}};
715
+ options.data.replaces_to_tag = to_tag;
716
+ },
717
+ "early-only",
718
+ peg$literalExpectation("early-only", true),
719
+ function(): any {
720
+ options = options || { data: {}};
721
+ options.data.early_only = true;
722
+ },
723
+ function(head: any, r: any): any {return r;},
724
+ function(head: any, tail: any): any { return list(head, tail); },
725
+ function(value: any): any {
726
+ options = options || { data: {}};
727
+ if (options.startRule === 'Require') {
728
+ options.data = value || [];
729
+ }
730
+ },
731
+ function(rseq_value: any): any {
732
+ options = options || { data: {}};
733
+ options.data.value=parseInt(rseq_value.join('')); },
734
+ "active",
735
+ peg$literalExpectation("active", true),
736
+ "pending",
737
+ peg$literalExpectation("pending", true),
738
+ "terminated",
739
+ peg$literalExpectation("terminated", true),
740
+ function(): any {
741
+ options = options || { data: {}};
742
+ options.data.state = text(); },
743
+ "reason",
744
+ peg$literalExpectation("reason", true),
745
+ function(reason: any): any {
746
+ options = options || { data: {}};
747
+ if (typeof reason !== 'undefined') options.data.reason = reason; },
748
+ function(expires: any): any {
749
+ options = options || { data: {}};
750
+ if (typeof expires !== 'undefined') options.data.expires = expires; },
751
+ "retry_after",
752
+ peg$literalExpectation("retry_after", true),
753
+ function(retry_after: any): any {
754
+ options = options || { data: {}};
755
+ if (typeof retry_after !== 'undefined') options.data.retry_after = retry_after; },
756
+ "deactivated",
757
+ peg$literalExpectation("deactivated", true),
758
+ "probation",
759
+ peg$literalExpectation("probation", true),
760
+ "rejected",
761
+ peg$literalExpectation("rejected", true),
762
+ "timeout",
763
+ peg$literalExpectation("timeout", true),
764
+ "giveup",
765
+ peg$literalExpectation("giveup", true),
766
+ "noresource",
767
+ peg$literalExpectation("noresource", true),
768
+ "invariant",
769
+ peg$literalExpectation("invariant", true),
770
+ function(value: any): any {
771
+ options = options || { data: {}};
772
+ if (options.startRule === 'Supported') {
773
+ options.data = value || [];
774
+ }
775
+ },
776
+ function(): any {
777
+ options = options || { data: {}};
778
+ var tag = options.data.tag;
779
+ options.data = new NameAddrHeader(options.data.uri, options.data.displayName, options.data.params);
780
+ if (tag) {options.data.setParam('tag',tag)}
781
+ },
782
+ "ttl",
783
+ peg$literalExpectation("ttl", true),
784
+ function(via_ttl_value: any): any {
785
+ options = options || { data: {}};
786
+ options.data.ttl = via_ttl_value; },
787
+ "maddr",
788
+ peg$literalExpectation("maddr", true),
789
+ function(via_maddr: any): any {
790
+ options = options || { data: {}};
791
+ options.data.maddr = via_maddr; },
792
+ "received",
793
+ peg$literalExpectation("received", true),
794
+ function(via_received: any): any {
795
+ options = options || { data: {}};
796
+ options.data.received = via_received; },
797
+ "branch",
798
+ peg$literalExpectation("branch", true),
799
+ function(via_branch: any): any {
800
+ options = options || { data: {}};
801
+ options.data.branch = via_branch; },
802
+ "rport",
803
+ peg$literalExpectation("rport", true),
804
+ function(response_port: any): any {
805
+ options = options || { data: {}};
806
+ if(typeof response_port !== 'undefined')
807
+ options.data.rport = response_port.join(''); },
808
+ function(via_protocol: any): any {
809
+ options = options || { data: {}};
810
+ options.data.protocol = via_protocol; },
811
+ peg$literalExpectation("UDP", true),
812
+ peg$literalExpectation("TCP", true),
813
+ peg$literalExpectation("TLS", true),
814
+ peg$literalExpectation("SCTP", true),
815
+ function(via_transport: any): any {
816
+ options = options || { data: {}};
817
+ options.data.transport = via_transport; },
818
+ function(): any {
819
+ options = options || { data: {}};
820
+ options.data.host = text(); },
821
+ function(via_sent_by_port: any): any {
822
+ options = options || { data: {}};
823
+ options.data.port = parseInt(via_sent_by_port.join('')); },
824
+ function(ttl: any): any {
825
+ return parseInt(ttl.join('')); },
826
+ function(deltaSeconds: any): any {
827
+ options = options || { data: {}};
828
+ if (options.startRule === 'Session_Expires') {
829
+ options.data.deltaSeconds = deltaSeconds;
830
+ }
831
+ },
832
+ "refresher",
833
+ peg$literalExpectation("refresher", false),
834
+ "uas",
835
+ peg$literalExpectation("uas", false),
836
+ "uac",
837
+ peg$literalExpectation("uac", false),
838
+ function(endpoint: any): any {
839
+ options = options || { data: {}};
840
+ if (options.startRule === 'Session_Expires') {
841
+ options.data.refresher = endpoint;
842
+ }
843
+ },
844
+ function(deltaSeconds: any): any {
845
+ options = options || { data: {}};
846
+ if (options.startRule === 'Min_SE') {
847
+ options.data = deltaSeconds;
848
+ }
849
+ },
850
+ "stuns",
851
+ peg$literalExpectation("stuns", true),
852
+ "stun",
853
+ peg$literalExpectation("stun", true),
854
+ function(scheme: any): any {
855
+ options = options || { data: {}};options.data.scheme = scheme; },
856
+ function(host: any): any {
857
+ options = options || { data: {}};
858
+ options.data.host = host; },
859
+ "?transport=",
860
+ peg$literalExpectation("?transport=", false),
861
+ "turns",
862
+ peg$literalExpectation("turns", true),
863
+ "turn",
864
+ peg$literalExpectation("turn", true),
865
+ function(transport: any): any {
866
+ options = options || { data: {}};options.data.transport = transport; },
867
+ function(): any {
868
+ options = options || { data: {}};options.data = text(); },
869
+ "Referred-By",
870
+ peg$literalExpectation("Referred-By", false),
871
+ "b",
872
+ peg$literalExpectation("b", false),
873
+ "cid",
874
+ peg$literalExpectation("cid", false)
875
+ ];
876
+
877
+ const peg$bytecode = [
878
+ peg$decode("2 \"\"6 7!"),
879
+ peg$decode("4\"\"\"5!7#"),
880
+ peg$decode("4$\"\"5!7%"),
881
+ peg$decode("4&\"\"5!7'"),
882
+ peg$decode(";'.# &;("),
883
+ peg$decode("4(\"\"5!7)"),
884
+ peg$decode("4*\"\"5!7+"),
885
+ peg$decode("2,\"\"6,7-"),
886
+ peg$decode("2.\"\"6.7/"),
887
+ peg$decode("40\"\"5!71"),
888
+ peg$decode("22\"\"6273.\x89 &24\"\"6475.} &26\"\"6677.q &28\"\"6879.e &2:\"\"6:7;.Y &2<\"\"6<7=.M &2>\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E"),
889
+ peg$decode(";).# &;,"),
890
+ peg$decode("2F\"\"6F7G.} &2H\"\"6H7I.q &2J\"\"6J7K.e &2L\"\"6L7M.Y &2N\"\"6N7O.M &2P\"\"6P7Q.A &2R\"\"6R7S.5 &2T\"\"6T7U.) &2V\"\"6V7W"),
891
+ peg$decode("%%2X\"\"6X7Y/5#;#/,$;#/#$+#)(#'#(\"'#&'#/\"!&,)"),
892
+ peg$decode("%%$;$0#*;$&/,#; /#$+\")(\"'#&'#.\" &\"/=#$;$/&#0#*;$&&&#/'$8\":Z\" )(\"'#&'#"),
893
+ peg$decode(";..\" &\""),
894
+ peg$decode("%$;'.# &;(0)*;'.# &;(&/?#28\"\"6879/0$;//'$8#:[# )(#'#(\"'#&'#"),
895
+ peg$decode("%%$;2/&#0#*;2&&&#/g#$%$;.0#*;.&/,#;2/#$+\")(\"'#&'#0=*%$;.0#*;.&/,#;2/#$+\")(\"'#&'#&/#$+\")(\"'#&'#/\"!&,)"),
896
+ peg$decode("4\\\"\"5!7].# &;3"),
897
+ peg$decode("4^\"\"5!7_"),
898
+ peg$decode("4`\"\"5!7a"),
899
+ peg$decode(";!.) &4b\"\"5!7c"),
900
+ peg$decode("%$;).\x95 &2F\"\"6F7G.\x89 &2J\"\"6J7K.} &2L\"\"6L7M.q &2X\"\"6X7Y.e &2P\"\"6P7Q.Y &2H\"\"6H7I.M &2@\"\"6@7A.A &2d\"\"6d7e.5 &2R\"\"6R7S.) &2N\"\"6N7O/\x9E#0\x9B*;).\x95 &2F\"\"6F7G.\x89 &2J\"\"6J7K.} &2L\"\"6L7M.q &2X\"\"6X7Y.e &2P\"\"6P7Q.Y &2H\"\"6H7I.M &2@\"\"6@7A.A &2d\"\"6d7e.5 &2R\"\"6R7S.) &2N\"\"6N7O&&&#/\"!&,)"),
901
+ peg$decode("%$;).\x89 &2F\"\"6F7G.} &2L\"\"6L7M.q &2X\"\"6X7Y.e &2P\"\"6P7Q.Y &2H\"\"6H7I.M &2@\"\"6@7A.A &2d\"\"6d7e.5 &2R\"\"6R7S.) &2N\"\"6N7O/\x92#0\x8F*;).\x89 &2F\"\"6F7G.} &2L\"\"6L7M.q &2X\"\"6X7Y.e &2P\"\"6P7Q.Y &2H\"\"6H7I.M &2@\"\"6@7A.A &2d\"\"6d7e.5 &2R\"\"6R7S.) &2N\"\"6N7O&&&#/\"!&,)"),
902
+ peg$decode("2T\"\"6T7U.\xE3 &2V\"\"6V7W.\xD7 &2f\"\"6f7g.\xCB &2h\"\"6h7i.\xBF &2:\"\"6:7;.\xB3 &2D\"\"6D7E.\xA7 &22\"\"6273.\x9B &28\"\"6879.\x8F &2j\"\"6j7k.\x83 &;&.} &24\"\"6475.q &2l\"\"6l7m.e &2n\"\"6n7o.Y &26\"\"6677.M &2>\"\"6>7?.A &2p\"\"6p7q.5 &2r\"\"6r7s.) &;'.# &;("),
903
+ peg$decode("%$;).\u012B &2F\"\"6F7G.\u011F &2J\"\"6J7K.\u0113 &2L\"\"6L7M.\u0107 &2X\"\"6X7Y.\xFB &2P\"\"6P7Q.\xEF &2H\"\"6H7I.\xE3 &2@\"\"6@7A.\xD7 &2d\"\"6d7e.\xCB &2R\"\"6R7S.\xBF &2N\"\"6N7O.\xB3 &2T\"\"6T7U.\xA7 &2V\"\"6V7W.\x9B &2f\"\"6f7g.\x8F &2h\"\"6h7i.\x83 &28\"\"6879.w &2j\"\"6j7k.k &;&.e &24\"\"6475.Y &2l\"\"6l7m.M &2n\"\"6n7o.A &26\"\"6677.5 &2p\"\"6p7q.) &2r\"\"6r7s/\u0134#0\u0131*;).\u012B &2F\"\"6F7G.\u011F &2J\"\"6J7K.\u0113 &2L\"\"6L7M.\u0107 &2X\"\"6X7Y.\xFB &2P\"\"6P7Q.\xEF &2H\"\"6H7I.\xE3 &2@\"\"6@7A.\xD7 &2d\"\"6d7e.\xCB &2R\"\"6R7S.\xBF &2N\"\"6N7O.\xB3 &2T\"\"6T7U.\xA7 &2V\"\"6V7W.\x9B &2f\"\"6f7g.\x8F &2h\"\"6h7i.\x83 &28\"\"6879.w &2j\"\"6j7k.k &;&.e &24\"\"6475.Y &2l\"\"6l7m.M &2n\"\"6n7o.A &26\"\"6677.5 &2p\"\"6p7q.) &2r\"\"6r7s&&&#/\"!&,)"),
904
+ peg$decode("%;//?#2P\"\"6P7Q/0$;//'$8#:t# )(#'#(\"'#&'#"),
905
+ peg$decode("%;//?#24\"\"6475/0$;//'$8#:u# )(#'#(\"'#&'#"),
906
+ peg$decode("%;//?#2>\"\"6>7?/0$;//'$8#:v# )(#'#(\"'#&'#"),
907
+ peg$decode("%;//?#2T\"\"6T7U/0$;//'$8#:w# )(#'#(\"'#&'#"),
908
+ peg$decode("%;//?#2V\"\"6V7W/0$;//'$8#:x# )(#'#(\"'#&'#"),
909
+ peg$decode("%2h\"\"6h7i/0#;//'$8\":y\" )(\"'#&'#"),
910
+ peg$decode("%;//6#2f\"\"6f7g/'$8\":z\" )(\"'#&'#"),
911
+ peg$decode("%;//?#2D\"\"6D7E/0$;//'$8#:{# )(#'#(\"'#&'#"),
912
+ peg$decode("%;//?#22\"\"6273/0$;//'$8#:|# )(#'#(\"'#&'#"),
913
+ peg$decode("%;//?#28\"\"6879/0$;//'$8#:}# )(#'#(\"'#&'#"),
914
+ peg$decode("%;//0#;&/'$8\":~\" )(\"'#&'#"),
915
+ peg$decode("%;&/0#;//'$8\":~\" )(\"'#&'#"),
916
+ peg$decode("%;=/T#$;G.) &;K.# &;F0/*;G.) &;K.# &;F&/,$;>/#$+#)(#'#(\"'#&'#"),
917
+ peg$decode("4\x7F\"\"5!7\x80.A &4\x81\"\"5!7\x82.5 &4\x83\"\"5!7\x84.) &;3.# &;."),
918
+ peg$decode("%%;//Q#;&/H$$;J.# &;K0)*;J.# &;K&/,$;&/#$+$)($'#(#'#(\"'#&'#/\"!&,)"),
919
+ peg$decode("%;//]#;&/T$%$;J.# &;K0)*;J.# &;K&/\"!&,)/1$;&/($8$:\x85$!!)($'#(#'#(\"'#&'#"),
920
+ peg$decode(";..G &2L\"\"6L7M.; &4\x86\"\"5!7\x87./ &4\x83\"\"5!7\x84.# &;3"),
921
+ peg$decode("%2j\"\"6j7k/J#4\x88\"\"5!7\x89.5 &4\x8A\"\"5!7\x8B.) &4\x8C\"\"5!7\x8D/#$+\")(\"'#&'#"),
922
+ peg$decode("%;N/M#28\"\"6879/>$;O.\" &\"/0$;S/'$8$:\x8E$ )($'#(#'#(\"'#&'#"),
923
+ peg$decode("%;N/d#28\"\"6879/U$;O.\" &\"/G$;S/>$;_/5$;l.\" &\"/'$8&:\x8F& )(&'#(%'#($'#(#'#(\"'#&'#"),
924
+ peg$decode("%3\x90\"\"5$7\x91.) &3\x92\"\"5#7\x93/' 8!:\x94!! )"),
925
+ peg$decode("%;P/]#%28\"\"6879/,#;R/#$+\")(\"'#&'#.\" &\"/6$2:\"\"6:7;/'$8#:\x95# )(#'#(\"'#&'#"),
926
+ peg$decode("$;+.) &;-.# &;Q/2#0/*;+.) &;-.# &;Q&&&#"),
927
+ peg$decode("2<\"\"6<7=.q &2>\"\"6>7?.e &2@\"\"6@7A.Y &2B\"\"6B7C.M &2D\"\"6D7E.A &22\"\"6273.5 &26\"\"6677.) &24\"\"6475"),
928
+ peg$decode("%$;+._ &;-.Y &2<\"\"6<7=.M &2>\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E0e*;+._ &;-.Y &2<\"\"6<7=.M &2>\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E&/& 8!:\x96! )"),
929
+ peg$decode("%;T/J#%28\"\"6879/,#;^/#$+\")(\"'#&'#.\" &\"/#$+\")(\"'#&'#"),
930
+ peg$decode("%;U.) &;\\.# &;X/& 8!:\x97! )"),
931
+ peg$decode("%$%;V/2#2J\"\"6J7K/#$+\")(\"'#&'#0<*%;V/2#2J\"\"6J7K/#$+\")(\"'#&'#&/D#;W/;$2J\"\"6J7K.\" &\"/'$8#:\x98# )(#'#(\"'#&'#"),
932
+ peg$decode("$4\x99\"\"5!7\x9A/,#0)*4\x99\"\"5!7\x9A&&&#"),
933
+ peg$decode("%4$\"\"5!7%/?#$4\x9B\"\"5!7\x9C0)*4\x9B\"\"5!7\x9C&/#$+\")(\"'#&'#"),
934
+ peg$decode("%2l\"\"6l7m/?#;Y/6$2n\"\"6n7o/'$8#:\x9D# )(#'#(\"'#&'#"),
935
+ peg$decode("%%;Z/\xB3#28\"\"6879/\xA4$;Z/\x9B$28\"\"6879/\x8C$;Z/\x83$28\"\"6879/t$;Z/k$28\"\"6879/\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+-)(-'#(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#.\u0790 &%2\x9E\"\"6\x9E7\x9F/\xA4#;Z/\x9B$28\"\"6879/\x8C$;Z/\x83$28\"\"6879/t$;Z/k$28\"\"6879/\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+,)(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#.\u06F9 &%2\x9E\"\"6\x9E7\x9F/\x8C#;Z/\x83$28\"\"6879/t$;Z/k$28\"\"6879/\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+*)(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#.\u067A &%2\x9E\"\"6\x9E7\x9F/t#;Z/k$28\"\"6879/\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+()(('#(''#(&'#(%'#($'#(#'#(\"'#&'#.\u0613 &%2\x9E\"\"6\x9E7\x9F/\\#;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+&)(&'#(%'#($'#(#'#(\"'#&'#.\u05C4 &%2\x9E\"\"6\x9E7\x9F/D#;Z/;$28\"\"6879/,$;[/#$+$)($'#(#'#(\"'#&'#.\u058D &%2\x9E\"\"6\x9E7\x9F/,#;[/#$+\")(\"'#&'#.\u056E &%2\x9E\"\"6\x9E7\x9F/,#;Z/#$+\")(\"'#&'#.\u054F &%;Z/\x9B#2\x9E\"\"6\x9E7\x9F/\x8C$;Z/\x83$28\"\"6879/t$;Z/k$28\"\"6879/\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$++)(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#.\u04C7 &%;Z/\xAA#%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\x83$2\x9E\"\"6\x9E7\x9F/t$;Z/k$28\"\"6879/\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+*)(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#.\u0430 &%;Z/\xB9#%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\x92$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/k$2\x9E\"\"6\x9E7\x9F/\\$;Z/S$28\"\"6879/D$;Z/;$28\"\"6879/,$;[/#$+))()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#.\u038A &%;Z/\xC8#%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\xA1$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/z$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/S$2\x9E\"\"6\x9E7\x9F/D$;Z/;$28\"\"6879/,$;[/#$+()(('#(''#(&'#(%'#($'#(#'#(\"'#&'#.\u02D5 &%;Z/\xD7#%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\xB0$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\x89$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/b$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/;$2\x9E\"\"6\x9E7\x9F/,$;[/#$+')(''#(&'#(%'#($'#(#'#(\"'#&'#.\u0211 &%;Z/\xFE#%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\xD7$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\xB0$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\x89$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/b$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/;$2\x9E\"\"6\x9E7\x9F/,$;Z/#$+()(('#(''#(&'#(%'#($'#(#'#(\"'#&'#.\u0126 &%;Z/\u011C#%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\xF5$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\xCE$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\xA7$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/\x80$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/Y$%28\"\"6879/,#;Z/#$+\")(\"'#&'#.\" &\"/2$2\x9E\"\"6\x9E7\x9F/#$+()(('#(''#(&'#(%'#($'#(#'#(\"'#&'#/& 8!:\xA0! )"),
936
+ peg$decode("%;#/M#;#.\" &\"/?$;#.\" &\"/1$;#.\" &\"/#$+$)($'#(#'#(\"'#&'#"),
937
+ peg$decode("%;Z/;#28\"\"6879/,$;Z/#$+#)(#'#(\"'#&'#.# &;\\"),
938
+ peg$decode("%;]/o#2J\"\"6J7K/`$;]/W$2J\"\"6J7K/H$;]/?$2J\"\"6J7K/0$;]/'$8':\xA1' )(''#(&'#(%'#($'#(#'#(\"'#&'#"),
939
+ peg$decode("%2\xA2\"\"6\xA27\xA3/2#4\xA4\"\"5!7\xA5/#$+\")(\"'#&'#.\x98 &%2\xA6\"\"6\xA67\xA7/;#4\xA8\"\"5!7\xA9/,$;!/#$+#)(#'#(\"'#&'#.j &%2\xAA\"\"6\xAA7\xAB/5#;!/,$;!/#$+#)(#'#(\"'#&'#.B &%4\xAC\"\"5!7\xAD/,#;!/#$+\")(\"'#&'#.# &;!"),
940
+ peg$decode("%%;!.\" &\"/[#;!.\" &\"/M$;!.\" &\"/?$;!.\" &\"/1$;!.\" &\"/#$+%)(%'#($'#(#'#(\"'#&'#/' 8!:\xAE!! )"),
941
+ peg$decode("$%22\"\"6273/,#;`/#$+\")(\"'#&'#0<*%22\"\"6273/,#;`/#$+\")(\"'#&'#&"),
942
+ peg$decode(";a.A &;b.; &;c.5 &;d./ &;e.) &;f.# &;g"),
943
+ peg$decode("%3\xAF\"\"5*7\xB0/a#3\xB1\"\"5#7\xB2.G &3\xB3\"\"5#7\xB4.; &3\xB5\"\"5$7\xB6./ &3\xB7\"\"5#7\xB8.# &;6/($8\":\xB9\"! )(\"'#&'#"),
944
+ peg$decode("%3\xBA\"\"5%7\xBB/I#3\xBC\"\"5%7\xBD./ &3\xBE\"\"5\"7\xBF.# &;6/($8\":\xC0\"! )(\"'#&'#"),
945
+ peg$decode("%3\xC1\"\"5'7\xC2/1#;\x90/($8\":\xC3\"! )(\"'#&'#"),
946
+ peg$decode("%3\xC4\"\"5$7\xC5/1#;\xF0/($8\":\xC6\"! )(\"'#&'#"),
947
+ peg$decode("%3\xC7\"\"5&7\xC8/1#;T/($8\":\xC9\"! )(\"'#&'#"),
948
+ peg$decode("%3\xCA\"\"5\"7\xCB/N#%2>\"\"6>7?/,#;6/#$+\")(\"'#&'#.\" &\"/'$8\":\xCC\" )(\"'#&'#"),
949
+ peg$decode("%;h/P#%2>\"\"6>7?/,#;i/#$+\")(\"'#&'#.\" &\"/)$8\":\xCD\"\"! )(\"'#&'#"),
950
+ peg$decode("%$;j/&#0#*;j&&&#/\"!&,)"),
951
+ peg$decode("%$;j/&#0#*;j&&&#/\"!&,)"),
952
+ peg$decode(";k.) &;+.# &;-"),
953
+ peg$decode("2l\"\"6l7m.e &2n\"\"6n7o.Y &24\"\"6475.M &28\"\"6879.A &2<\"\"6<7=.5 &2@\"\"6@7A.) &2B\"\"6B7C"),
954
+ peg$decode("%26\"\"6677/n#;m/e$$%2<\"\"6<7=/,#;m/#$+\")(\"'#&'#0<*%2<\"\"6<7=/,#;m/#$+\")(\"'#&'#&/#$+#)(#'#(\"'#&'#"),
955
+ peg$decode("%;n/A#2>\"\"6>7?/2$;o/)$8#:\xCE#\"\" )(#'#(\"'#&'#"),
956
+ peg$decode("$;p.) &;+.# &;-/2#0/*;p.) &;+.# &;-&&&#"),
957
+ peg$decode("$;p.) &;+.# &;-0/*;p.) &;+.# &;-&"),
958
+ peg$decode("2l\"\"6l7m.e &2n\"\"6n7o.Y &24\"\"6475.M &26\"\"6677.A &28\"\"6879.5 &2@\"\"6@7A.) &2B\"\"6B7C"),
959
+ peg$decode(";\x91.# &;r"),
960
+ peg$decode("%;\x90/G#;'/>$;s/5$;'/,$;\x84/#$+%)(%'#($'#(#'#(\"'#&'#"),
961
+ peg$decode(";M.# &;t"),
962
+ peg$decode("%;\x7F/E#28\"\"6879/6$;u.# &;x/'$8#:\xCF# )(#'#(\"'#&'#"),
963
+ peg$decode("%;v.# &;w/J#%26\"\"6677/,#;\x83/#$+\")(\"'#&'#.\" &\"/#$+\")(\"'#&'#"),
964
+ peg$decode("%2\xD0\"\"6\xD07\xD1/:#;\x80/1$;w.\" &\"/#$+#)(#'#(\"'#&'#"),
965
+ peg$decode("%24\"\"6475/,#;{/#$+\")(\"'#&'#"),
966
+ peg$decode("%;z/3#$;y0#*;y&/#$+\")(\"'#&'#"),
967
+ peg$decode(";*.) &;+.# &;-"),
968
+ peg$decode(";+.\x8F &;-.\x89 &22\"\"6273.} &26\"\"6677.q &28\"\"6879.e &2:\"\"6:7;.Y &2<\"\"6<7=.M &2>\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E"),
969
+ peg$decode("%;|/e#$%24\"\"6475/,#;|/#$+\")(\"'#&'#0<*%24\"\"6475/,#;|/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
970
+ peg$decode("%$;~0#*;~&/e#$%22\"\"6273/,#;}/#$+\")(\"'#&'#0<*%22\"\"6273/,#;}/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
971
+ peg$decode("$;~0#*;~&"),
972
+ peg$decode(";+.w &;-.q &28\"\"6879.e &2:\"\"6:7;.Y &2<\"\"6<7=.M &2>\"\"6>7?.A &2@\"\"6@7A.5 &2B\"\"6B7C.) &2D\"\"6D7E"),
973
+ peg$decode("%%;\"/\x87#$;\".G &;!.A &2@\"\"6@7A.5 &2F\"\"6F7G.) &2J\"\"6J7K0M*;\".G &;!.A &2@\"\"6@7A.5 &2F\"\"6F7G.) &2J\"\"6J7K&/#$+\")(\"'#&'#/& 8!:\xD2! )"),
974
+ peg$decode(";\x81.# &;\x82"),
975
+ peg$decode("%%;O/2#2:\"\"6:7;/#$+\")(\"'#&'#.\" &\"/,#;S/#$+\")(\"'#&'#.\" &\""),
976
+ peg$decode("$;+.\x83 &;-.} &2B\"\"6B7C.q &2D\"\"6D7E.e &22\"\"6273.Y &28\"\"6879.M &2:\"\"6:7;.A &2<\"\"6<7=.5 &2>\"\"6>7?.) &2@\"\"6@7A/\x8C#0\x89*;+.\x83 &;-.} &2B\"\"6B7C.q &2D\"\"6D7E.e &22\"\"6273.Y &28\"\"6879.M &2:\"\"6:7;.A &2<\"\"6<7=.5 &2>\"\"6>7?.) &2@\"\"6@7A&&&#"),
977
+ peg$decode("$;y0#*;y&"),
978
+ peg$decode("%3\x92\"\"5#7\xD3/q#24\"\"6475/b$$;!/&#0#*;!&&&#/L$2J\"\"6J7K/=$$;!/&#0#*;!&&&#/'$8%:\xD4% )(%'#($'#(#'#(\"'#&'#"),
979
+ peg$decode("2\xD5\"\"6\xD57\xD6"),
980
+ peg$decode("2\xD7\"\"6\xD77\xD8"),
981
+ peg$decode("2\xD9\"\"6\xD97\xDA"),
982
+ peg$decode("2\xDB\"\"6\xDB7\xDC"),
983
+ peg$decode("2\xDD\"\"6\xDD7\xDE"),
984
+ peg$decode("2\xDF\"\"6\xDF7\xE0"),
985
+ peg$decode("2\xE1\"\"6\xE17\xE2"),
986
+ peg$decode("2\xE3\"\"6\xE37\xE4"),
987
+ peg$decode("2\xE5\"\"6\xE57\xE6"),
988
+ peg$decode("2\xE7\"\"6\xE77\xE8"),
989
+ peg$decode("2\xE9\"\"6\xE97\xEA"),
990
+ peg$decode("%;\x85.Y &;\x86.S &;\x88.M &;\x89.G &;\x8A.A &;\x8B.; &;\x8C.5 &;\x8F./ &;\x8D.) &;\x8E.# &;6/& 8!:\xEB! )"),
991
+ peg$decode("%;\x84/G#;'/>$;\x92/5$;'/,$;\x94/#$+%)(%'#($'#(#'#(\"'#&'#"),
992
+ peg$decode("%;\x93/' 8!:\xEC!! )"),
993
+ peg$decode("%;!/5#;!/,$;!/#$+#)(#'#(\"'#&'#"),
994
+ peg$decode("%$;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(0G*;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(&/& 8!:\xED! )"),
995
+ peg$decode("%;\xB6/Y#$%;A/,#;\xB6/#$+\")(\"'#&'#06*%;A/,#;\xB6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
996
+ peg$decode("%;9/N#%2:\"\"6:7;/,#;9/#$+\")(\"'#&'#.\" &\"/'$8\":\xEE\" )(\"'#&'#"),
997
+ peg$decode("%;:.c &%;\x98/Y#$%;A/,#;\x98/#$+\")(\"'#&'#06*%;A/,#;\x98/#$+\")(\"'#&'#&/#$+\")(\"'#&'#/& 8!:\xEF! )"),
998
+ peg$decode("%;L.# &;\x99/]#$%;B/,#;\x9B/#$+\")(\"'#&'#06*%;B/,#;\x9B/#$+\")(\"'#&'#&/'$8\":\xF0\" )(\"'#&'#"),
999
+ peg$decode("%;\x9A.\" &\"/>#;@/5$;M/,$;?/#$+$)($'#(#'#(\"'#&'#"),
1000
+ peg$decode("%%;6/Y#$%;./,#;6/#$+\")(\"'#&'#06*%;./,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#.# &;H/' 8!:\xF1!! )"),
1001
+ peg$decode(";\x9C.) &;\x9D.# &;\xA0"),
1002
+ peg$decode("%3\xF2\"\"5!7\xF3/:#;</1$;\x9F/($8#:\xF4#! )(#'#(\"'#&'#"),
1003
+ peg$decode("%3\xF5\"\"5'7\xF6/:#;</1$;\x9E/($8#:\xF7#! )(#'#(\"'#&'#"),
1004
+ peg$decode("%$;!/&#0#*;!&&&#/' 8!:\xF8!! )"),
1005
+ peg$decode("%2\xF9\"\"6\xF97\xFA/o#%2J\"\"6J7K/M#;!.\" &\"/?$;!.\" &\"/1$;!.\" &\"/#$+$)($'#(#'#(\"'#&'#.\" &\"/'$8\":\xFB\" )(\"'#&'#"),
1006
+ peg$decode("%;6/J#%;</,#;\xA1/#$+\")(\"'#&'#.\" &\"/)$8\":\xFC\"\"! )(\"'#&'#"),
1007
+ peg$decode(";6.) &;T.# &;H"),
1008
+ peg$decode("%;\xA3/Y#$%;B/,#;\xA4/#$+\")(\"'#&'#06*%;B/,#;\xA4/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
1009
+ peg$decode("%3\xFD\"\"5&7\xFE.G &3\xFF\"\"5'7\u0100.; &3\u0101\"\"5$7\u0102./ &3\u0103\"\"5%7\u0104.# &;6/& 8!:\u0105! )"),
1010
+ peg$decode(";\xA5.# &;\xA0"),
1011
+ peg$decode("%3\u0106\"\"5(7\u0107/M#;</D$3\u0108\"\"5(7\u0109./ &3\u010A\"\"5(7\u010B.# &;6/#$+#)(#'#(\"'#&'#"),
1012
+ peg$decode("%;6/Y#$%;A/,#;6/#$+\")(\"'#&'#06*%;A/,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
1013
+ peg$decode("%$;!/&#0#*;!&&&#/' 8!:\u010C!! )"),
1014
+ peg$decode("%;\xA9/& 8!:\u010D! )"),
1015
+ peg$decode("%;\xAA/k#;;/b$;\xAF/Y$$%;B/,#;\xB0/#$+\")(\"'#&'#06*%;B/,#;\xB0/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),
1016
+ peg$decode(";\xAB.# &;\xAC"),
1017
+ peg$decode("3\u010E\"\"5$7\u010F.S &3\u0110\"\"5%7\u0111.G &3\u0112\"\"5%7\u0113.; &3\u0114\"\"5%7\u0115./ &3\u0116\"\"5+7\u0117.# &;\xAD"),
1018
+ peg$decode("3\u0118\"\"5'7\u0119./ &3\u011A\"\"5)7\u011B.# &;\xAD"),
1019
+ peg$decode(";6.# &;\xAE"),
1020
+ peg$decode("%3\u011C\"\"5\"7\u011D/,#;6/#$+\")(\"'#&'#"),
1021
+ peg$decode(";\xAD.# &;6"),
1022
+ peg$decode("%;6/5#;</,$;\xB1/#$+#)(#'#(\"'#&'#"),
1023
+ peg$decode(";6.# &;H"),
1024
+ peg$decode("%;\xB3/5#;./,$;\x90/#$+#)(#'#(\"'#&'#"),
1025
+ peg$decode("%$;!/&#0#*;!&&&#/' 8!:\u011E!! )"),
1026
+ peg$decode("%;\x9E/' 8!:\u011F!! )"),
1027
+ peg$decode("%;\xB6/^#$%;B/,#;\xA0/#$+\")(\"'#&'#06*%;B/,#;\xA0/#$+\")(\"'#&'#&/($8\":\u0120\"!!)(\"'#&'#"),
1028
+ peg$decode("%%;7/e#$%2J\"\"6J7K/,#;7/#$+\")(\"'#&'#0<*%2J\"\"6J7K/,#;7/#$+\")(\"'#&'#&/#$+\")(\"'#&'#/\"!&,)"),
1029
+ peg$decode("%;L.# &;\x99/]#$%;B/,#;\xB8/#$+\")(\"'#&'#06*%;B/,#;\xB8/#$+\")(\"'#&'#&/'$8\":\u0121\" )(\"'#&'#"),
1030
+ peg$decode(";\xB9.# &;\xA0"),
1031
+ peg$decode("%3\u0122\"\"5#7\u0123/:#;</1$;6/($8#:\u0124#! )(#'#(\"'#&'#"),
1032
+ peg$decode("%$;!/&#0#*;!&&&#/' 8!:\u0125!! )"),
1033
+ peg$decode("%;\x9E/' 8!:\u0126!! )"),
1034
+ peg$decode("%$;\x9A0#*;\x9A&/x#;@/o$;M/f$;?/]$$%;B/,#;\xA0/#$+\")(\"'#&'#06*%;B/,#;\xA0/#$+\")(\"'#&'#&/'$8%:\u0127% )(%'#($'#(#'#(\"'#&'#"),
1035
+ peg$decode(";\xBE"),
1036
+ peg$decode("%3\u0128\"\"5&7\u0129/k#;./b$;\xC1/Y$$%;A/,#;\xC1/#$+\")(\"'#&'#06*%;A/,#;\xC1/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#.# &;\xBF"),
1037
+ peg$decode("%;6/k#;./b$;\xC0/Y$$%;A/,#;\xC0/#$+\")(\"'#&'#06*%;A/,#;\xC0/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),
1038
+ peg$decode("%;6/;#;</2$;6.# &;H/#$+#)(#'#(\"'#&'#"),
1039
+ peg$decode(";\xC2.G &;\xC4.A &;\xC6.; &;\xC8.5 &;\xC9./ &;\xCA.) &;\xCB.# &;\xC0"),
1040
+ peg$decode("%3\u012A\"\"5%7\u012B/5#;</,$;\xC3/#$+#)(#'#(\"'#&'#"),
1041
+ peg$decode("%;I/' 8!:\u012C!! )"),
1042
+ peg$decode("%3\u012D\"\"5&7\u012E/\x97#;</\x8E$;D/\x85$;\xC5/|$$%$;'/&#0#*;'&&&#/,#;\xC5/#$+\")(\"'#&'#0C*%$;'/&#0#*;'&&&#/,#;\xC5/#$+\")(\"'#&'#&/,$;E/#$+&)(&'#(%'#($'#(#'#(\"'#&'#"),
1043
+ peg$decode(";t.# &;w"),
1044
+ peg$decode("%3\u012F\"\"5%7\u0130/5#;</,$;\xC7/#$+#)(#'#(\"'#&'#"),
1045
+ peg$decode("%;I/' 8!:\u0131!! )"),
1046
+ peg$decode("%3\u0132\"\"5&7\u0133/:#;</1$;I/($8#:\u0134#! )(#'#(\"'#&'#"),
1047
+ peg$decode("%3\u0135\"\"5%7\u0136/]#;</T$%3\u0137\"\"5$7\u0138/& 8!:\u0139! ).4 &%3\u013A\"\"5%7\u013B/& 8!:\u013C! )/#$+#)(#'#(\"'#&'#"),
1048
+ peg$decode("%3\u013D\"\"5)7\u013E/R#;</I$3\u013F\"\"5#7\u0140./ &3\u0141\"\"5(7\u0142.# &;6/($8#:\u0143#! )(#'#(\"'#&'#"),
1049
+ peg$decode("%3\u0144\"\"5#7\u0145/\x93#;</\x8A$;D/\x81$%;\xCC/e#$%2D\"\"6D7E/,#;\xCC/#$+\")(\"'#&'#0<*%2D\"\"6D7E/,#;\xCC/#$+\")(\"'#&'#&/#$+\")(\"'#&'#/,$;E/#$+%)(%'#($'#(#'#(\"'#&'#"),
1050
+ peg$decode("%3\u0146\"\"5(7\u0147./ &3\u0148\"\"5$7\u0149.# &;6/' 8!:\u014A!! )"),
1051
+ peg$decode("%;6/Y#$%;A/,#;6/#$+\")(\"'#&'#06*%;A/,#;6/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
1052
+ peg$decode("%;\xCF/G#;./>$;\xCF/5$;./,$;\x90/#$+%)(%'#($'#(#'#(\"'#&'#"),
1053
+ peg$decode("%$;!/&#0#*;!&&&#/' 8!:\u014B!! )"),
1054
+ peg$decode("%;\xD1/]#$%;A/,#;\xD1/#$+\")(\"'#&'#06*%;A/,#;\xD1/#$+\")(\"'#&'#&/'$8\":\u014C\" )(\"'#&'#"),
1055
+ peg$decode("%;\x99/]#$%;B/,#;\xA0/#$+\")(\"'#&'#06*%;B/,#;\xA0/#$+\")(\"'#&'#&/'$8\":\u014D\" )(\"'#&'#"),
1056
+ peg$decode("%;L.O &;\x99.I &%;@.\" &\"/:#;t/1$;?.\" &\"/#$+#)(#'#(\"'#&'#/]#$%;B/,#;\xA0/#$+\")(\"'#&'#06*%;B/,#;\xA0/#$+\")(\"'#&'#&/'$8\":\u014E\" )(\"'#&'#"),
1057
+ peg$decode("%;\xD4/]#$%;B/,#;\xD5/#$+\")(\"'#&'#06*%;B/,#;\xD5/#$+\")(\"'#&'#&/'$8\":\u014F\" )(\"'#&'#"),
1058
+ peg$decode("%;\x96/& 8!:\u0150! )"),
1059
+ peg$decode("%3\u0151\"\"5(7\u0152/:#;</1$;6/($8#:\u0153#! )(#'#(\"'#&'#.g &%3\u0154\"\"5&7\u0155/:#;</1$;6/($8#:\u0156#! )(#'#(\"'#&'#.: &%3\u0157\"\"5*7\u0158/& 8!:\u0159! ).# &;\xA0"),
1060
+ peg$decode("%%;6/k#$%;A/2#;6/)$8\":\u015A\"\"$ )(\"'#&'#0<*%;A/2#;6/)$8\":\u015A\"\"$ )(\"'#&'#&/)$8\":\u015B\"\"! )(\"'#&'#.\" &\"/' 8!:\u015C!! )"),
1061
+ peg$decode("%;\xD8/Y#$%;A/,#;\xD8/#$+\")(\"'#&'#06*%;A/,#;\xD8/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
1062
+ peg$decode("%;\x99/Y#$%;B/,#;\xA0/#$+\")(\"'#&'#06*%;B/,#;\xA0/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
1063
+ peg$decode("%$;!/&#0#*;!&&&#/' 8!:\u015D!! )"),
1064
+ peg$decode("%;\xDB/Y#$%;B/,#;\xDC/#$+\")(\"'#&'#06*%;B/,#;\xDC/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
1065
+ peg$decode("%3\u015E\"\"5&7\u015F.; &3\u0160\"\"5'7\u0161./ &3\u0162\"\"5*7\u0163.# &;6/& 8!:\u0164! )"),
1066
+ peg$decode("%3\u0165\"\"5&7\u0166/:#;</1$;\xDD/($8#:\u0167#! )(#'#(\"'#&'#.} &%3\xF5\"\"5'7\xF6/:#;</1$;\x9E/($8#:\u0168#! )(#'#(\"'#&'#.P &%3\u0169\"\"5+7\u016A/:#;</1$;\x9E/($8#:\u016B#! )(#'#(\"'#&'#.# &;\xA0"),
1067
+ peg$decode("3\u016C\"\"5+7\u016D.k &3\u016E\"\"5)7\u016F._ &3\u0170\"\"5(7\u0171.S &3\u0172\"\"5'7\u0173.G &3\u0174\"\"5&7\u0175.; &3\u0176\"\"5*7\u0177./ &3\u0178\"\"5)7\u0179.# &;6"),
1068
+ peg$decode(";1.\" &\""),
1069
+ peg$decode("%%;6/k#$%;A/2#;6/)$8\":\u015A\"\"$ )(\"'#&'#0<*%;A/2#;6/)$8\":\u015A\"\"$ )(\"'#&'#&/)$8\":\u015B\"\"! )(\"'#&'#.\" &\"/' 8!:\u017A!! )"),
1070
+ peg$decode("%;L.# &;\x99/]#$%;B/,#;\xE1/#$+\")(\"'#&'#06*%;B/,#;\xE1/#$+\")(\"'#&'#&/'$8\":\u017B\" )(\"'#&'#"),
1071
+ peg$decode(";\xB9.# &;\xA0"),
1072
+ peg$decode("%;\xE3/Y#$%;A/,#;\xE3/#$+\")(\"'#&'#06*%;A/,#;\xE3/#$+\")(\"'#&'#&/#$+\")(\"'#&'#"),
1073
+ peg$decode("%;\xEA/k#;./b$;\xED/Y$$%;B/,#;\xE4/#$+\")(\"'#&'#06*%;B/,#;\xE4/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),
1074
+ peg$decode(";\xE5.; &;\xE6.5 &;\xE7./ &;\xE8.) &;\xE9.# &;\xA0"),
1075
+ peg$decode("%3\u017C\"\"5#7\u017D/:#;</1$;\xF0/($8#:\u017E#! )(#'#(\"'#&'#"),
1076
+ peg$decode("%3\u017F\"\"5%7\u0180/:#;</1$;T/($8#:\u0181#! )(#'#(\"'#&'#"),
1077
+ peg$decode("%3\u0182\"\"5(7\u0183/F#;</=$;\\.) &;Y.# &;X/($8#:\u0184#! )(#'#(\"'#&'#"),
1078
+ peg$decode("%3\u0185\"\"5&7\u0186/:#;</1$;6/($8#:\u0187#! )(#'#(\"'#&'#"),
1079
+ peg$decode("%3\u0188\"\"5%7\u0189/A#;</8$$;!0#*;!&/($8#:\u018A#! )(#'#(\"'#&'#"),
1080
+ peg$decode("%;\xEB/G#;;/>$;6/5$;;/,$;\xEC/#$+%)(%'#($'#(#'#(\"'#&'#"),
1081
+ peg$decode("%3\x92\"\"5#7\xD3.# &;6/' 8!:\u018B!! )"),
1082
+ peg$decode("%3\xB1\"\"5#7\u018C.G &3\xB3\"\"5#7\u018D.; &3\xB7\"\"5#7\u018E./ &3\xB5\"\"5$7\u018F.# &;6/' 8!:\u0190!! )"),
1083
+ peg$decode("%;\xEE/D#%;C/,#;\xEF/#$+\")(\"'#&'#.\" &\"/#$+\")(\"'#&'#"),
1084
+ peg$decode("%;U.) &;\\.# &;X/& 8!:\u0191! )"),
1085
+ peg$decode("%%;!.\" &\"/[#;!.\" &\"/M$;!.\" &\"/?$;!.\" &\"/1$;!.\" &\"/#$+%)(%'#($'#(#'#(\"'#&'#/' 8!:\u0192!! )"),
1086
+ peg$decode("%%;!/?#;!.\" &\"/1$;!.\" &\"/#$+#)(#'#(\"'#&'#/' 8!:\u0193!! )"),
1087
+ peg$decode(";\xBE"),
1088
+ peg$decode("%;\x9E/^#$%;B/,#;\xF3/#$+\")(\"'#&'#06*%;B/,#;\xF3/#$+\")(\"'#&'#&/($8\":\u0194\"!!)(\"'#&'#"),
1089
+ peg$decode(";\xF4.# &;\xA0"),
1090
+ peg$decode("%2\u0195\"\"6\u01957\u0196/L#;</C$2\u0197\"\"6\u01977\u0198.) &2\u0199\"\"6\u01997\u019A/($8#:\u019B#! )(#'#(\"'#&'#"),
1091
+ peg$decode("%;\x9E/^#$%;B/,#;\xA0/#$+\")(\"'#&'#06*%;B/,#;\xA0/#$+\")(\"'#&'#&/($8\":\u019C\"!!)(\"'#&'#"),
1092
+ peg$decode("%;6/5#;0/,$;\xF7/#$+#)(#'#(\"'#&'#"),
1093
+ peg$decode("$;2.) &;4.# &;.0/*;2.) &;4.# &;.&"),
1094
+ peg$decode("$;%0#*;%&"),
1095
+ peg$decode("%;\xFA/;#28\"\"6879/,$;\xFB/#$+#)(#'#(\"'#&'#"),
1096
+ peg$decode("%3\u019D\"\"5%7\u019E.) &3\u019F\"\"5$7\u01A0/' 8!:\u01A1!! )"),
1097
+ peg$decode("%;\xFC/J#%28\"\"6879/,#;^/#$+\")(\"'#&'#.\" &\"/#$+\")(\"'#&'#"),
1098
+ peg$decode("%;\\.) &;X.# &;\x82/' 8!:\u01A2!! )"),
1099
+ peg$decode(";\".S &;!.M &2F\"\"6F7G.A &2J\"\"6J7K.5 &2H\"\"6H7I.) &2N\"\"6N7O"),
1100
+ peg$decode("2L\"\"6L7M.\x95 &2B\"\"6B7C.\x89 &2<\"\"6<7=.} &2R\"\"6R7S.q &2T\"\"6T7U.e &2V\"\"6V7W.Y &2P\"\"6P7Q.M &2@\"\"6@7A.A &2D\"\"6D7E.5 &22\"\"6273.) &2>\"\"6>7?"),
1101
+ peg$decode("%;\u0100/b#28\"\"6879/S$;\xFB/J$%2\u01A3\"\"6\u01A37\u01A4/,#;\xEC/#$+\")(\"'#&'#.\" &\"/#$+$)($'#(#'#(\"'#&'#"),
1102
+ peg$decode("%3\u01A5\"\"5%7\u01A6.) &3\u01A7\"\"5$7\u01A8/' 8!:\u01A1!! )"),
1103
+ peg$decode("%3\xB1\"\"5#7\xB2.6 &3\xB3\"\"5#7\xB4.* &$;+0#*;+&/' 8!:\u01A9!! )"),
1104
+ peg$decode("%;\u0104/\x87#2F\"\"6F7G/x$;\u0103/o$2F\"\"6F7G/`$;\u0103/W$2F\"\"6F7G/H$;\u0103/?$2F\"\"6F7G/0$;\u0105/'$8):\u01AA) )()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#"),
1105
+ peg$decode("%;#/>#;#/5$;#/,$;#/#$+$)($'#(#'#(\"'#&'#"),
1106
+ peg$decode("%;\u0103/,#;\u0103/#$+\")(\"'#&'#"),
1107
+ peg$decode("%;\u0103/5#;\u0103/,$;\u0103/#$+#)(#'#(\"'#&'#"),
1108
+ peg$decode("%;q/T#$;m0#*;m&/D$%; /,#;\xF8/#$+\")(\"'#&'#.\" &\"/#$+#)(#'#(\"'#&'#"),
1109
+ peg$decode("%2\u01AB\"\"6\u01AB7\u01AC.) &2\u01AD\"\"6\u01AD7\u01AE/w#;0/n$;\u0108/e$$%;B/2#;\u0109.# &;\xA0/#$+\")(\"'#&'#0<*%;B/2#;\u0109.# &;\xA0/#$+\")(\"'#&'#&/#$+$)($'#(#'#(\"'#&'#"),
1110
+ peg$decode(";\x99.# &;L"),
1111
+ peg$decode("%2\u01AF\"\"6\u01AF7\u01B0/5#;</,$;\u010A/#$+#)(#'#(\"'#&'#"),
1112
+ peg$decode("%;D/S#;,/J$2:\"\"6:7;/;$;,.# &;T/,$;E/#$+%)(%'#($'#(#'#(\"'#&'#")
1113
+ ];
1114
+
1115
+ let peg$currPos = 0;
1116
+ let peg$savedPos = 0;
1117
+ const peg$posDetailsCache = [{ line: 1, column: 1 }];
1118
+ let peg$maxFailPos = 0;
1119
+ let peg$maxFailExpected: Expectation[] = [];
1120
+ let peg$silentFails = 0;
1121
+
1122
+ let peg$result;
1123
+
1124
+ if (options.startRule !== undefined) {
1125
+ if (!(options.startRule in peg$startRuleIndices)) {
1126
+ throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
1127
+ }
1128
+
1129
+ peg$startRuleIndex = peg$startRuleIndices[options.startRule];
1130
+ }
1131
+
1132
+ function text(): string {
1133
+ return input.substring(peg$savedPos, peg$currPos);
1134
+ }
1135
+
1136
+ function location(): IFileRange {
1137
+ return peg$computeLocation(peg$savedPos, peg$currPos);
1138
+ }
1139
+
1140
+ function expected(description: string, location1?: IFileRange) {
1141
+ location1 = location1 !== undefined
1142
+ ? location1
1143
+ : peg$computeLocation(peg$savedPos, peg$currPos);
1144
+
1145
+ throw peg$buildStructuredError(
1146
+ [peg$otherExpectation(description)],
1147
+ input.substring(peg$savedPos, peg$currPos),
1148
+ location1
1149
+ );
1150
+ }
1151
+
1152
+ function error(message: string, location1?: IFileRange) {
1153
+ location1 = location1 !== undefined
1154
+ ? location1
1155
+ : peg$computeLocation(peg$savedPos, peg$currPos);
1156
+
1157
+ throw peg$buildSimpleError(message, location1);
1158
+ }
1159
+
1160
+ function peg$literalExpectation(text1: string, ignoreCase: boolean): ILiteralExpectation {
1161
+ return { type: "literal", text: text1, ignoreCase: ignoreCase };
1162
+ }
1163
+
1164
+ function peg$classExpectation(parts: IClassParts, inverted: boolean, ignoreCase: boolean): IClassExpectation {
1165
+ return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
1166
+ }
1167
+
1168
+ function peg$anyExpectation(): IAnyExpectation {
1169
+ return { type: "any" };
1170
+ }
1171
+
1172
+ function peg$endExpectation(): IEndExpectation {
1173
+ return { type: "end" };
1174
+ }
1175
+
1176
+ function peg$otherExpectation(description: string): IOtherExpectation {
1177
+ return { type: "other", description: description };
1178
+ }
1179
+
1180
+ function peg$computePosDetails(pos: number) {
1181
+ let details = peg$posDetailsCache[pos];
1182
+ let p;
1183
+
1184
+ if (details) {
1185
+ return details;
1186
+ } else {
1187
+ p = pos - 1;
1188
+ while (!peg$posDetailsCache[p]) {
1189
+ p--;
1190
+ }
1191
+
1192
+ details = peg$posDetailsCache[p];
1193
+ details = {
1194
+ line: details.line,
1195
+ column: details.column
1196
+ };
1197
+
1198
+ while (p < pos) {
1199
+ if (input.charCodeAt(p) === 10) {
1200
+ details.line++;
1201
+ details.column = 1;
1202
+ } else {
1203
+ details.column++;
1204
+ }
1205
+
1206
+ p++;
1207
+ }
1208
+
1209
+ peg$posDetailsCache[pos] = details;
1210
+
1211
+ return details;
1212
+ }
1213
+ }
1214
+
1215
+ function peg$computeLocation(startPos: number, endPos: number): IFileRange {
1216
+ const startPosDetails = peg$computePosDetails(startPos);
1217
+ const endPosDetails = peg$computePosDetails(endPos);
1218
+
1219
+ return {
1220
+ start: {
1221
+ offset: startPos,
1222
+ line: startPosDetails.line,
1223
+ column: startPosDetails.column
1224
+ },
1225
+ end: {
1226
+ offset: endPos,
1227
+ line: endPosDetails.line,
1228
+ column: endPosDetails.column
1229
+ }
1230
+ };
1231
+ }
1232
+
1233
+ function peg$fail(expected1: Expectation) {
1234
+ if (peg$currPos < peg$maxFailPos) { return; }
1235
+
1236
+ if (peg$currPos > peg$maxFailPos) {
1237
+ peg$maxFailPos = peg$currPos;
1238
+ peg$maxFailExpected = [];
1239
+ }
1240
+
1241
+ peg$maxFailExpected.push(expected1);
1242
+ }
1243
+
1244
+ function peg$buildSimpleError(message: string, location1: IFileRange) {
1245
+ return new SyntaxError(message, [], "", location1);
1246
+ }
1247
+
1248
+ function peg$buildStructuredError(expected1: Expectation[], found: string | null, location1: IFileRange) {
1249
+ return new SyntaxError(
1250
+ SyntaxError.buildMessage(expected1, found),
1251
+ expected1,
1252
+ found,
1253
+ location1
1254
+ );
1255
+ }
1256
+
1257
+ function peg$decode(s: string): number[] {
1258
+ return s.split("").map((ch) => ch.charCodeAt(0) - 32 );
1259
+ }
1260
+
1261
+ function peg$parseRule(index: number): any {
1262
+ const bc = peg$bytecode[index];
1263
+ let ip = 0;
1264
+ const ips: any[] = [];
1265
+ let end = bc.length;
1266
+ const ends: any[] = [];
1267
+ const stack: any[] = [];
1268
+ let params;
1269
+
1270
+ while (true) {
1271
+ while (ip < end) {
1272
+ switch (bc[ip]) {
1273
+ case 0:
1274
+ stack.push(peg$consts[bc[ip + 1]]);
1275
+ ip += 2;
1276
+ break;
1277
+
1278
+ case 1:
1279
+ stack.push(undefined);
1280
+ ip++;
1281
+ break;
1282
+
1283
+ case 2:
1284
+ stack.push(null);
1285
+ ip++;
1286
+ break;
1287
+
1288
+ case 3:
1289
+ stack.push(peg$FAILED);
1290
+ ip++;
1291
+ break;
1292
+
1293
+ case 4:
1294
+ stack.push([]);
1295
+ ip++;
1296
+ break;
1297
+
1298
+ case 5:
1299
+ stack.push(peg$currPos);
1300
+ ip++;
1301
+ break;
1302
+
1303
+ case 6:
1304
+ stack.pop();
1305
+ ip++;
1306
+ break;
1307
+
1308
+ case 7:
1309
+ peg$currPos = stack.pop();
1310
+ ip++;
1311
+ break;
1312
+
1313
+ case 8:
1314
+ stack.length -= bc[ip + 1];
1315
+ ip += 2;
1316
+ break;
1317
+
1318
+ case 9:
1319
+ stack.splice(-2, 1);
1320
+ ip++;
1321
+ break;
1322
+
1323
+ case 10:
1324
+ stack[stack.length - 2].push(stack.pop());
1325
+ ip++;
1326
+ break;
1327
+
1328
+ case 11:
1329
+ stack.push(stack.splice(stack.length - bc[ip + 1], bc[ip + 1]));
1330
+ ip += 2;
1331
+ break;
1332
+
1333
+ case 12:
1334
+ stack.push(input.substring(stack.pop(), peg$currPos));
1335
+ ip++;
1336
+ break;
1337
+
1338
+ case 13:
1339
+ ends.push(end);
1340
+ ips.push(ip + 3 + bc[ip + 1] + bc[ip + 2]);
1341
+
1342
+ if (stack[stack.length - 1]) {
1343
+ end = ip + 3 + bc[ip + 1];
1344
+ ip += 3;
1345
+ } else {
1346
+ end = ip + 3 + bc[ip + 1] + bc[ip + 2];
1347
+ ip += 3 + bc[ip + 1];
1348
+ }
1349
+
1350
+ break;
1351
+
1352
+ case 14:
1353
+ ends.push(end);
1354
+ ips.push(ip + 3 + bc[ip + 1] + bc[ip + 2]);
1355
+
1356
+ if (stack[stack.length - 1] === peg$FAILED) {
1357
+ end = ip + 3 + bc[ip + 1];
1358
+ ip += 3;
1359
+ } else {
1360
+ end = ip + 3 + bc[ip + 1] + bc[ip + 2];
1361
+ ip += 3 + bc[ip + 1];
1362
+ }
1363
+
1364
+ break;
1365
+
1366
+ case 15:
1367
+ ends.push(end);
1368
+ ips.push(ip + 3 + bc[ip + 1] + bc[ip + 2]);
1369
+
1370
+ if (stack[stack.length - 1] !== peg$FAILED) {
1371
+ end = ip + 3 + bc[ip + 1];
1372
+ ip += 3;
1373
+ } else {
1374
+ end = ip + 3 + bc[ip + 1] + bc[ip + 2];
1375
+ ip += 3 + bc[ip + 1];
1376
+ }
1377
+
1378
+ break;
1379
+
1380
+ case 16:
1381
+ if (stack[stack.length - 1] !== peg$FAILED) {
1382
+ ends.push(end);
1383
+ ips.push(ip);
1384
+
1385
+ end = ip + 2 + bc[ip + 1];
1386
+ ip += 2;
1387
+ } else {
1388
+ ip += 2 + bc[ip + 1];
1389
+ }
1390
+
1391
+ break;
1392
+
1393
+ case 17:
1394
+ ends.push(end);
1395
+ ips.push(ip + 3 + bc[ip + 1] + bc[ip + 2]);
1396
+
1397
+ if (input.length > peg$currPos) {
1398
+ end = ip + 3 + bc[ip + 1];
1399
+ ip += 3;
1400
+ } else {
1401
+ end = ip + 3 + bc[ip + 1] + bc[ip + 2];
1402
+ ip += 3 + bc[ip + 1];
1403
+ }
1404
+
1405
+ break;
1406
+
1407
+ case 18:
1408
+ ends.push(end);
1409
+ ips.push(ip + 4 + bc[ip + 2] + bc[ip + 3]);
1410
+
1411
+ if (input.substr(peg$currPos, (peg$consts[bc[ip + 1]] as string).length) === peg$consts[bc[ip + 1]]) {
1412
+ end = ip + 4 + bc[ip + 2];
1413
+ ip += 4;
1414
+ } else {
1415
+ end = ip + 4 + bc[ip + 2] + bc[ip + 3];
1416
+ ip += 4 + bc[ip + 2];
1417
+ }
1418
+
1419
+ break;
1420
+
1421
+ case 19:
1422
+ ends.push(end);
1423
+ ips.push(ip + 4 + bc[ip + 2] + bc[ip + 3]);
1424
+
1425
+ if (input.substr(peg$currPos, (peg$consts[bc[ip + 1]] as string).length).toLowerCase() === peg$consts[bc[ip + 1]]) {
1426
+ end = ip + 4 + bc[ip + 2];
1427
+ ip += 4;
1428
+ } else {
1429
+ end = ip + 4 + bc[ip + 2] + bc[ip + 3];
1430
+ ip += 4 + bc[ip + 2];
1431
+ }
1432
+
1433
+ break;
1434
+
1435
+ case 20:
1436
+ ends.push(end);
1437
+ ips.push(ip + 4 + bc[ip + 2] + bc[ip + 3]);
1438
+
1439
+ if ((peg$consts[bc[ip + 1]] as RegExp).test(input.charAt(peg$currPos))) {
1440
+ end = ip + 4 + bc[ip + 2];
1441
+ ip += 4;
1442
+ } else {
1443
+ end = ip + 4 + bc[ip + 2] + bc[ip + 3];
1444
+ ip += 4 + bc[ip + 2];
1445
+ }
1446
+
1447
+ break;
1448
+
1449
+ case 21:
1450
+ stack.push(input.substr(peg$currPos, bc[ip + 1]));
1451
+ peg$currPos += bc[ip + 1];
1452
+ ip += 2;
1453
+ break;
1454
+
1455
+ case 22:
1456
+ stack.push(peg$consts[bc[ip + 1]]);
1457
+ peg$currPos += (peg$consts[bc[ip + 1]] as string).length;
1458
+ ip += 2;
1459
+ break;
1460
+
1461
+ case 23:
1462
+ stack.push(peg$FAILED);
1463
+ if (peg$silentFails === 0) {
1464
+ peg$fail(peg$consts[bc[ip + 1]] as ILiteralExpectation);
1465
+ }
1466
+ ip += 2;
1467
+ break;
1468
+
1469
+ case 24:
1470
+ peg$savedPos = stack[stack.length - 1 - bc[ip + 1]];
1471
+ ip += 2;
1472
+ break;
1473
+
1474
+ case 25:
1475
+ peg$savedPos = peg$currPos;
1476
+ ip++;
1477
+ break;
1478
+
1479
+ case 26:
1480
+ params = bc.slice(ip + 4, ip + 4 + bc[ip + 3])
1481
+ .map(function(p) { return stack[stack.length - 1 - p]; });
1482
+
1483
+ stack.splice(
1484
+ stack.length - bc[ip + 2],
1485
+ bc[ip + 2],
1486
+ (peg$consts[bc[ip + 1]] as ((...args: any[]) => any)).apply(null, params)
1487
+ );
1488
+
1489
+ ip += 4 + bc[ip + 3];
1490
+ break;
1491
+
1492
+ case 27:
1493
+ stack.push(peg$parseRule(bc[ip + 1]));
1494
+ ip += 2;
1495
+ break;
1496
+
1497
+ case 28:
1498
+ peg$silentFails++;
1499
+ ip++;
1500
+ break;
1501
+
1502
+ case 29:
1503
+ peg$silentFails--;
1504
+ ip++;
1505
+ break;
1506
+
1507
+ default:
1508
+ throw new Error("Invalid opcode: " + bc[ip] + ".");
1509
+ }
1510
+ }
1511
+
1512
+ if (ends.length > 0) {
1513
+ end = ends.pop();
1514
+ ip = ips.pop();
1515
+ } else {
1516
+ break;
1517
+ }
1518
+ }
1519
+
1520
+ return stack[0];
1521
+ }
1522
+
1523
+
1524
+ options.data = {}; // Object to which header attributes will be assigned during parsing
1525
+
1526
+ function list(head: string, tail: Array<string>) {
1527
+ return [head].concat(tail);
1528
+ }
1529
+
1530
+
1531
+ peg$result = peg$parseRule(peg$startRuleIndex);
1532
+
1533
+ if (peg$result !== peg$FAILED && peg$currPos === input.length) {
1534
+ return peg$result;
1535
+ } else {
1536
+ if (peg$result !== peg$FAILED && peg$currPos < input.length) {
1537
+ peg$fail(peg$endExpectation());
1538
+ }
1539
+
1540
+ throw peg$buildStructuredError(
1541
+ peg$maxFailExpected,
1542
+ peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
1543
+ peg$maxFailPos < input.length
1544
+ ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
1545
+ : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
1546
+ );
1547
+ }
1548
+ }
1549
+
1550
+ export interface IParseOptions {
1551
+ filename?: string;
1552
+ startRule?: string;
1553
+ tracer?: any;
1554
+ [key: string]: any;
1555
+ }
1556
+ export type ParseFunction = (input: string, options?: IParseOptions) => any;
1557
+ export const parse: ParseFunction = peg$parse;