tapimo 0.4.1 → 0.4.3

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 (243) hide show
  1. package/README.md +1 -1
  2. package/dist/ApiKey.d.ts +1 -9
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +2 -3
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +53 -27
  7. package/dist/ApiKeys.d.ts.map +1 -1
  8. package/dist/ApiKeys.js +32 -17
  9. package/dist/ApiKeys.js.map +1 -1
  10. package/dist/App.d.ts +2451 -1533
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +23 -9
  13. package/dist/App.js.map +1 -1
  14. package/dist/Assets.d.ts +10 -0
  15. package/dist/Assets.d.ts.map +1 -1
  16. package/dist/Assets.js +4 -0
  17. package/dist/Assets.js.map +1 -1
  18. package/dist/Auth.d.ts +2 -1
  19. package/dist/Auth.d.ts.map +1 -1
  20. package/dist/Auth.js +2 -1
  21. package/dist/Auth.js.map +1 -1
  22. package/dist/Scope.d.ts +40 -15
  23. package/dist/Scope.d.ts.map +1 -1
  24. package/dist/Scope.js +44 -13
  25. package/dist/Scope.js.map +1 -1
  26. package/dist/admin/App.d.ts +560 -9
  27. package/dist/admin/App.d.ts.map +1 -1
  28. package/dist/admin/App.js +38 -6
  29. package/dist/admin/App.js.map +1 -1
  30. package/dist/admin/apps/api-keys.d.ts +10 -24
  31. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  32. package/dist/admin/apps/api-keys.js +10 -3
  33. package/dist/admin/apps/api-keys.js.map +1 -1
  34. package/dist/admin/apps/organizations.d.ts +833 -0
  35. package/dist/admin/apps/organizations.d.ts.map +1 -0
  36. package/dist/admin/apps/organizations.js +733 -0
  37. package/dist/admin/apps/organizations.js.map +1 -0
  38. package/dist/admin/apps/scopes.d.ts +8 -0
  39. package/dist/admin/apps/scopes.d.ts.map +1 -1
  40. package/dist/admin/ui.generated.d.ts +1 -1
  41. package/dist/admin/ui.generated.d.ts.map +1 -1
  42. package/dist/admin/ui.generated.js +53 -13
  43. package/dist/admin/ui.generated.js.map +1 -1
  44. package/dist/analytics/Analytics.d.ts +10 -0
  45. package/dist/analytics/Analytics.d.ts.map +1 -1
  46. package/dist/analytics/Analytics.js +8 -0
  47. package/dist/analytics/Analytics.js.map +1 -1
  48. package/dist/analytics/tables/requestEvents.d.ts +9 -0
  49. package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
  50. package/dist/analytics/tables/requestEvents.js +14 -0
  51. package/dist/analytics/tables/requestEvents.js.map +1 -1
  52. package/dist/apps/data/App.d.ts +1354 -984
  53. package/dist/apps/data/App.d.ts.map +1 -1
  54. package/dist/apps/data/FundingRouteProviders.d.ts +94 -5
  55. package/dist/apps/data/FundingRouteProviders.d.ts.map +1 -1
  56. package/dist/apps/data/FundingRouteProviders.js +196 -5
  57. package/dist/apps/data/FundingRouteProviders.js.map +1 -1
  58. package/dist/apps/data/routes/activities.d.ts +38 -38
  59. package/dist/apps/data/routes/addresses.d.ts +24 -24
  60. package/dist/apps/data/routes/blocks.d.ts +39 -39
  61. package/dist/apps/data/routes/exchanges.d.ts +453 -453
  62. package/dist/apps/data/routes/fee-amm.d.ts +101 -101
  63. package/dist/apps/data/routes/funding.d.ts +730 -138
  64. package/dist/apps/data/routes/funding.d.ts.map +1 -1
  65. package/dist/apps/data/routes/funding.js +234 -0
  66. package/dist/apps/data/routes/funding.js.map +1 -1
  67. package/dist/apps/data/routes/indexer.d.ts +5 -5
  68. package/dist/apps/data/routes/transactions.d.ts +281 -281
  69. package/dist/apps/data/routes/transfers.d.ts +58 -58
  70. package/dist/apps/data/routes/verified-tokens.d.ts +81 -81
  71. package/dist/apps/management/App.d.ts +1156 -615
  72. package/dist/apps/management/App.d.ts.map +1 -1
  73. package/dist/apps/management/App.js +2 -2
  74. package/dist/apps/management/Billing.d.ts +3 -0
  75. package/dist/apps/management/Billing.d.ts.map +1 -1
  76. package/dist/apps/management/Billing.js +7 -2
  77. package/dist/apps/management/Billing.js.map +1 -1
  78. package/dist/apps/management/routes/api-keys.d.ts +106 -90
  79. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  80. package/dist/apps/management/routes/api-keys.js +41 -30
  81. package/dist/apps/management/routes/api-keys.js.map +1 -1
  82. package/dist/apps/management/routes/billing.d.ts +278 -146
  83. package/dist/apps/management/routes/billing.d.ts.map +1 -1
  84. package/dist/apps/management/routes/billing.js +14 -14
  85. package/dist/apps/management/routes/billing.js.map +1 -1
  86. package/dist/apps/management/routes/invitations.d.ts +93 -20
  87. package/dist/apps/management/routes/invitations.d.ts.map +1 -1
  88. package/dist/apps/management/routes/invitations.js +12 -15
  89. package/dist/apps/management/routes/invitations.js.map +1 -1
  90. package/dist/apps/management/routes/me.d.ts +6 -6
  91. package/dist/apps/management/routes/members.d.ts +89 -18
  92. package/dist/apps/management/routes/members.d.ts.map +1 -1
  93. package/dist/apps/management/routes/members.js +10 -10
  94. package/dist/apps/management/routes/members.js.map +1 -1
  95. package/dist/apps/management/routes/orgs.d.ts +130 -70
  96. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  97. package/dist/apps/management/routes/orgs.js +19 -19
  98. package/dist/apps/management/routes/orgs.js.map +1 -1
  99. package/dist/apps/management/routes/projects.d.ts +137 -48
  100. package/dist/apps/management/routes/projects.d.ts.map +1 -1
  101. package/dist/apps/management/routes/projects.js +12 -13
  102. package/dist/apps/management/routes/projects.js.map +1 -1
  103. package/dist/apps/management/routes/scopes.d.ts +4 -18
  104. package/dist/apps/management/routes/scopes.d.ts.map +1 -1
  105. package/dist/apps/management/routes/scopes.js +6 -7
  106. package/dist/apps/management/routes/scopes.js.map +1 -1
  107. package/dist/apps/management/routes/usage.d.ts +63 -19
  108. package/dist/apps/management/routes/usage.d.ts.map +1 -1
  109. package/dist/apps/management/routes/usage.js +9 -10
  110. package/dist/apps/management/routes/usage.js.map +1 -1
  111. package/dist/apps/mcp.d.ts.map +1 -1
  112. package/dist/apps/mcp.js +35 -3
  113. package/dist/apps/mcp.js.map +1 -1
  114. package/dist/apps/relay/App.d.ts +26 -4
  115. package/dist/apps/relay/App.d.ts.map +1 -1
  116. package/dist/apps/relay/App.js +17 -14
  117. package/dist/apps/relay/App.js.map +1 -1
  118. package/dist/db/Db.d.ts +5 -3
  119. package/dist/db/Db.d.ts.map +1 -1
  120. package/dist/db/Db.js +52 -0
  121. package/dist/db/Db.js.map +1 -1
  122. package/dist/db/Schema.d.ts +13 -0
  123. package/dist/db/Schema.d.ts.map +1 -1
  124. package/dist/db/Schema.js +16 -1
  125. package/dist/db/Schema.js.map +1 -1
  126. package/dist/db/tables/adminAuditLogs.d.ts +27 -0
  127. package/dist/db/tables/adminAuditLogs.d.ts.map +1 -0
  128. package/dist/db/tables/adminAuditLogs.js +19 -0
  129. package/dist/db/tables/adminAuditLogs.js.map +1 -0
  130. package/dist/db/tables/invitations.d.ts +1 -1
  131. package/dist/db/tables/invitations.d.ts.map +1 -1
  132. package/dist/db/tables/memberships.d.ts +32 -4
  133. package/dist/db/tables/memberships.d.ts.map +1 -1
  134. package/dist/db/tables/memberships.js +31 -0
  135. package/dist/db/tables/memberships.js.map +1 -1
  136. package/dist/db/tables/organizations.d.ts +43 -1
  137. package/dist/db/tables/organizations.d.ts.map +1 -1
  138. package/dist/db/tables/organizations.js +103 -0
  139. package/dist/db/tables/organizations.js.map +1 -1
  140. package/dist/db/tables/projects.d.ts +25 -0
  141. package/dist/db/tables/projects.d.ts.map +1 -1
  142. package/dist/db/tables/projects.js +22 -0
  143. package/dist/db/tables/projects.js.map +1 -1
  144. package/dist/db/tables/webhookDeliveries.d.ts +26 -0
  145. package/dist/db/tables/webhookDeliveries.d.ts.map +1 -1
  146. package/dist/db/tables/webhookDeliveries.js +37 -0
  147. package/dist/db/tables/webhookDeliveries.js.map +1 -1
  148. package/dist/internal/Auth.d.ts +13 -18
  149. package/dist/internal/Auth.d.ts.map +1 -1
  150. package/dist/internal/Auth.js +78 -58
  151. package/dist/internal/Auth.js.map +1 -1
  152. package/dist/internal/Cursor.d.ts +1 -1
  153. package/dist/internal/Cursor.d.ts.map +1 -1
  154. package/dist/internal/Cursor.js +4 -0
  155. package/dist/internal/Cursor.js.map +1 -1
  156. package/dist/internal/EdgeCache.d.ts.map +1 -1
  157. package/dist/internal/EdgeCache.js +2 -0
  158. package/dist/internal/EdgeCache.js.map +1 -1
  159. package/dist/internal/FundingRoutes.d.ts +170 -0
  160. package/dist/internal/FundingRoutes.d.ts.map +1 -1
  161. package/dist/internal/FundingRoutes.js +68 -6
  162. package/dist/internal/FundingRoutes.js.map +1 -1
  163. package/dist/internal/Log.d.ts +16 -1
  164. package/dist/internal/Log.d.ts.map +1 -1
  165. package/dist/internal/Log.js +5 -3
  166. package/dist/internal/Log.js.map +1 -1
  167. package/package.json +2 -2
  168. package/src/ApiKey.ts +2 -3
  169. package/src/ApiKeys.ts +95 -17
  170. package/src/App.test.ts +44 -2
  171. package/src/App.ts +29 -9
  172. package/src/Assets.ts +8 -0
  173. package/src/Auth.test-d.ts +36 -0
  174. package/src/Auth.ts +20 -1
  175. package/src/Client.test-d.ts +64 -17
  176. package/src/Scope.test.ts +34 -0
  177. package/src/Scope.ts +53 -17
  178. package/src/admin/App.test.ts +33 -3
  179. package/src/admin/App.ts +49 -14
  180. package/src/admin/apps/api-keys.ts +10 -3
  181. package/src/admin/apps/organizations.test.ts +455 -0
  182. package/src/admin/apps/organizations.ts +953 -0
  183. package/src/admin/apps/scopes.test.ts +10 -0
  184. package/src/admin/ui/plugin.ts +1 -1
  185. package/src/admin/ui/src/components/MobileProfile.tsx +2 -0
  186. package/src/admin/ui/src/components/ThemeToggle.tsx +20 -0
  187. package/src/admin/ui/src/lib/api-keys.ts +36 -19
  188. package/src/admin/ui/src/lib/config.ts +2 -3
  189. package/src/admin/ui/src/lib/organizations.test.ts +89 -0
  190. package/src/admin/ui/src/lib/organizations.ts +262 -0
  191. package/src/admin/ui/src/lib/query-client.ts +3 -1
  192. package/src/admin/ui/src/lib/theme.ts +57 -0
  193. package/src/admin/ui/src/routeTree.gen.ts +47 -4
  194. package/src/admin/ui/src/routes/__root.tsx +18 -3
  195. package/src/admin/ui/src/routes/api-keys.tsx +52 -7
  196. package/src/admin/ui/src/routes/index.tsx +1 -1
  197. package/src/admin/ui/src/routes/organizations.tsx +158 -0
  198. package/src/admin/ui/src/routes/organizations_.$orgId.tsx +710 -0
  199. package/src/admin/ui/src/start.ts +6 -0
  200. package/src/admin/ui.generated.ts +63 -13
  201. package/src/analytics/Analytics.ts +25 -0
  202. package/src/analytics/tables/requestEvents.ts +33 -0
  203. package/src/apps/composition.test.ts +82 -2
  204. package/src/apps/data/FundingRouteProviders.test.ts +204 -0
  205. package/src/apps/data/FundingRouteProviders.ts +294 -9
  206. package/src/apps/data/routes/funding.test.ts +90 -23
  207. package/src/apps/data/routes/funding.ts +315 -0
  208. package/src/apps/management/App.ts +2 -2
  209. package/src/apps/management/Billing.ts +10 -2
  210. package/src/apps/management/routes/api-keys.test.ts +137 -1
  211. package/src/apps/management/routes/api-keys.ts +63 -38
  212. package/src/apps/management/routes/billing.ts +14 -14
  213. package/src/apps/management/routes/invitations.test.ts +102 -1
  214. package/src/apps/management/routes/invitations.ts +13 -15
  215. package/src/apps/management/routes/members.ts +10 -10
  216. package/src/apps/management/routes/orgs.test.ts +78 -16
  217. package/src/apps/management/routes/orgs.ts +21 -20
  218. package/src/apps/management/routes/projects.ts +12 -13
  219. package/src/apps/management/routes/scopes.test.ts +16 -0
  220. package/src/apps/management/routes/scopes.ts +6 -7
  221. package/src/apps/management/routes/usage.ts +9 -14
  222. package/src/apps/mcp.test.ts +25 -1
  223. package/src/apps/mcp.ts +43 -3
  224. package/src/apps/relay/App.test.ts +23 -18
  225. package/src/apps/relay/App.ts +35 -14
  226. package/src/db/Db.ts +59 -3
  227. package/src/db/Schema.ts +20 -1
  228. package/src/db/tables/adminAuditLogs.ts +47 -0
  229. package/src/db/tables/invitations.ts +1 -1
  230. package/src/db/tables/memberships.ts +59 -3
  231. package/src/db/tables/organizations.ts +148 -1
  232. package/src/db/tables/projects.ts +47 -0
  233. package/src/db/tables/webhookDeliveries.ts +83 -0
  234. package/src/internal/Auth.test.ts +174 -7
  235. package/src/internal/Auth.ts +90 -62
  236. package/src/internal/Cursor.test.ts +10 -0
  237. package/src/internal/Cursor.ts +5 -1
  238. package/src/internal/EdgeCache.test.ts +11 -0
  239. package/src/internal/EdgeCache.ts +2 -0
  240. package/src/internal/FundingRoutes.test.ts +26 -0
  241. package/src/internal/FundingRoutes.ts +187 -18
  242. package/src/internal/Log.test.ts +41 -3
  243. package/src/internal/Log.ts +23 -4
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/apps/data/App.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AAIxC,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AAEtD,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAQ9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAW7C;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA8H9C;AAcD,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,wCAAwC;IACxC,KAAK,OAAO,GAAG;QACb,oJAAoJ;QACpJ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;QAClC,+DAA+D;QAC/D,cAAc,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACzC,yFAAyF;QACzF,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;QAC3C,+IAA+I;QAC/I,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAA;QACpC,2JAA2J;QAC3J,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;QACjD,iCAAiC;QACjC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAA;QACtC,sKAAsK;QACtK,cAAc,CAAC,EAAE,cAAc,GAAG,KAAK,GAAG,SAAS,CAAA;QACnD,4LAA4L;QAC5L,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,4CAA4C;IAC5C,KAAK,cAAc,GAAG;QACpB;;;;WAIG;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B,CAAA;IAED,qCAAqC;IACrC,KAAK,OAAO,GAAG;QACb;;;;WAIG;QACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACjC,CAAA;CACF"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/apps/data/App.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AAIxC,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AAEtD,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAQ9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAW7C;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA8H9C;AAcD,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,wCAAwC;IACxC,KAAK,OAAO,GAAG;QACb,oJAAoJ;QACpJ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;QAClC,+DAA+D;QAC/D,cAAc,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACzC,yFAAyF;QACzF,aAAa,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;QAC3C,+IAA+I;QAC/I,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,CAAA;QACpC,2JAA2J;QAC3J,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;QACjD,iCAAiC;QACjC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAA;QACtC,sKAAsK;QACtK,cAAc,CAAC,EAAE,cAAc,GAAG,KAAK,GAAG,SAAS,CAAA;QACnD,4LAA4L;QAC5L,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,4CAA4C;IAC5C,KAAK,cAAc,GAAG;QACpB;;;;WAIG;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B,CAAA;IAED,qCAAqC;IACrC,KAAK,OAAO,GAAG;QACb;;;;WAIG;QACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACjC,CAAA;CACF"}
@@ -1,4 +1,4 @@
1
- import type * as FundingRoutes from '../../internal/FundingRoutes.js';
1
+ import * as FundingRoutes from '../../internal/FundingRoutes.js';
2
2
  type Fetch = typeof globalThis.fetch;
3
3
  /** Creates the live funding route adapters configured for this deployment. */
4
4
  export declare function createAdapters(options?: createAdapters.Options): {
@@ -8,25 +8,84 @@ export declare function createAdapters(options?: createAdapters.Options): {
8
8
  export declare namespace createAdapters {
9
9
  /** Provider adapter factory options. Omit a provider to keep its routes static. */
10
10
  type Options = {
11
- /** Across quote adapter options. */
11
+ /** Across discovery adapter options. */
12
12
  across?: across.Options | false | undefined;
13
13
  /** Relay quote adapter options. */
14
14
  relay?: relay.Options | false | undefined;
15
15
  };
16
16
  }
17
- /** Creates an Across quote adapter backed by `/suggested-fees`. */
17
+ /** Creates an Across discovery adapter backed by `/suggested-fees`. */
18
18
  export declare function across(options: across.Options): FundingRoutes.ProviderAdapter;
19
- export declare namespace across {
20
- /** Across quote adapter options. */
19
+ /** Builds the authenticated Across `/swap/approval` request for an exact-input quote. */
20
+ export declare function createAcrossQuoteRequest(options: createAcrossQuoteRequest.Options): {
21
+ headers: {
22
+ Authorization: string;
23
+ };
24
+ url: URL;
25
+ };
26
+ export declare namespace createAcrossQuoteRequest {
27
+ /** Inputs required to construct an Across exact-input quote request. */
21
28
  type Options = {
22
29
  /** Across API key sent as a bearer token. */
23
30
  apiKey: string;
31
+ /** Optional Across API base URL. */
32
+ baseUrl?: string | undefined;
33
+ /** Address that would submit the source transaction. */
34
+ depositor: string;
24
35
  /** Across integrator id sent as the required query parameter. */
25
36
  integratorId: string;
37
+ /** Optional destination recipient. */
38
+ recipient?: string | undefined;
39
+ /** Curated route selected for the quote. */
40
+ route: FundingRoutes.RouteCandidate;
41
+ };
42
+ }
43
+ /** Creates an explicit Across quote adapter backed by `/swap/approval`. */
44
+ export declare function acrossQuote(options: acrossQuote.Options): FundingRoutes.ProviderQuote;
45
+ export declare namespace acrossQuote {
46
+ /** Across Swap API adapter options. */
47
+ type Options = {
48
+ /** Across API key sent as a bearer token. */
49
+ apiKey: string;
50
+ /** Optional Across API base URL. */
51
+ baseUrl?: string | undefined;
52
+ /** Across integrator id sent as the required query parameter. */
53
+ integratorId: string;
54
+ };
55
+ }
56
+ /** Returns bounded Across quote failure details suitable for structured request logs. */
57
+ export declare function acrossQuoteFailure(options: acrossQuoteFailure.Options): acrossQuoteFailure.Result;
58
+ export declare namespace acrossQuoteFailure {
59
+ /** Inputs used to classify an Across quote failure. */
60
+ type Options = {
61
+ /** Error thrown by the Across quote boundary. */
62
+ cause: unknown;
63
+ };
64
+ /** Bounded diagnostic fields, or undefined when the thrown value is not an error. */
65
+ type Result = {
66
+ /** Stable provider error code, when one is safe to retain. */
67
+ code?: string | undefined;
68
+ /** Failure boundary that rejected the provider request. */
69
+ failure: 'http' | 'network' | 'payload' | 'unknown';
70
+ /** Provider identifier. */
71
+ id: 'across';
72
+ /** Across operation identifier. */
73
+ operation: 'swap/approval';
74
+ /** Upstream HTTP status, when a response was received. */
75
+ status?: number | undefined;
76
+ } | undefined;
77
+ }
78
+ export declare namespace across {
79
+ /** Across API adapter options. */
80
+ type Options = {
26
81
  /** Override for tests or non-production Across environments. */
27
82
  baseUrl?: string | undefined;
28
83
  /** Fetch implementation override for tests. */
29
84
  fetch?: Fetch | undefined;
85
+ /** Across API key sent as a bearer token. */
86
+ apiKey: string;
87
+ /** Across integrator id sent as the required query parameter. */
88
+ integratorId: string;
30
89
  /** Clock override for deterministic tests. */
31
90
  now?: (() => Date) | undefined;
32
91
  };
@@ -50,5 +109,35 @@ export declare namespace relay {
50
109
  now?: (() => Date) | undefined;
51
110
  };
52
111
  }
112
+ /** Maps an Across HTTP error into the stable funding-provider error contract. */
113
+ export declare function mapAcrossQuoteError(options: mapAcrossQuoteError.Options): FundingRoutes.ProviderQuoteUnavailableError | FundingRoutes.ProviderRateLimitError | ProviderResponseError;
114
+ export declare namespace mapAcrossQuoteError {
115
+ /** Across HTTP error response to classify. */
116
+ type Options = {
117
+ /** Parsed response body returned by Across. */
118
+ body: unknown;
119
+ /** Across HTTP response status. */
120
+ status: number;
121
+ };
122
+ }
123
+ /** Validates and normalizes an Across quote payload against its curated route. */
124
+ export declare function parseAcrossQuote(options: parseAcrossQuote.Options): FundingRoutes.ProviderQuoteResult;
125
+ export declare namespace parseAcrossQuote {
126
+ /** Inputs required to validate and normalize an Across quote payload. */
127
+ type Options = {
128
+ /** Untrusted JSON body returned by Across. */
129
+ body: unknown;
130
+ /** Timestamp when Tempo sampled the response. */
131
+ now: Date;
132
+ /** Curated route the response must match. */
133
+ route: FundingRoutes.RouteCandidate;
134
+ };
135
+ }
136
+ declare class ProviderResponseError extends Error {
137
+ readonly status: number;
138
+ readonly body: unknown;
139
+ name: string;
140
+ constructor(status: number, body: unknown);
141
+ }
53
142
  export {};
54
143
  //# sourceMappingURL=FundingRouteProviders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FundingRouteProviders.d.ts","sourceRoot":"","sources":["../../../src/apps/data/FundingRouteProviders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,aAAa,MAAM,iCAAiC,CAAA;AAErE,KAAK,KAAK,GAAG,OAAO,UAAU,CAAC,KAAK,CAAA;AAKpC,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,OAAO,GAAE,cAAc,CAAC,OAAY;;;EAKlE;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,mFAAmF;IACnF,KAAK,OAAO,GAAG;QACb,oCAAoC;QACpC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;QAC3C,mCAAmC;QACnC,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;KAC1C,CAAA;CACF;AAED,mEAAmE;AACnE,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,eAAe,CAuC7E;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,oCAAoC;IACpC,KAAK,OAAO,GAAG;QACb,6CAA6C;QAC7C,MAAM,EAAE,MAAM,CAAA;QACd,iEAAiE;QACjE,YAAY,EAAE,MAAM,CAAA;QACpB,gEAAgE;QAChE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,+CAA+C;QAC/C,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;QACzB,8CAA8C;QAC9C,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;KAC/B,CAAA;CACF;AAED,mFAAmF;AACnF,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,eAAe,CAkD3E;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,mCAAmC;IACnC,KAAK,OAAO,GAAG;QACb,0DAA0D;QAC1D,WAAW,EAAE,MAAM,CAAA;QACnB,8DAA8D;QAC9D,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACrC,qDAAqD;QACrD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,wDAAwD;QACxD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,+CAA+C;QAC/C,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;QACzB,8CAA8C;QAC9C,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;KAC/B,CAAA;CACF"}
1
+ {"version":3,"file":"FundingRouteProviders.d.ts","sourceRoot":"","sources":["../../../src/apps/data/FundingRouteProviders.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,39 @@
1
+ import * as z from 'zod/mini';
2
+ import * as FundingRoutes from '../../internal/FundingRoutes.js';
3
+ const defaultFetch = (input, init) => globalThis.fetch(input, init);
1
4
  const defaultAcrossBaseUrl = 'https://app.across.to/api';
2
5
  const defaultRelayBaseUrl = 'https://api.relay.link';
6
+ var schema;
7
+ (function (schema) {
8
+ const DecimalString = z.string().check(z.regex(/^\d+(\.\d+)?$/));
9
+ const IntegerString = z.string().check(z.regex(/^\d+$/));
10
+ const AcrossToken = z.object({
11
+ address: z.string(),
12
+ chainId: z.number().check(z.int(), z.nonnegative()),
13
+ decimals: z.number().check(z.int(), z.nonnegative()),
14
+ symbol: z.string(),
15
+ });
16
+ const AcrossFee = z.object({
17
+ amount: IntegerString,
18
+ amountUsd: DecimalString,
19
+ pct: IntegerString,
20
+ token: AcrossToken,
21
+ });
22
+ schema.AcrossQuote = z.object({
23
+ amountType: z.literal('exactInput'),
24
+ expectedFillTime: z.number().check(z.int(), z.nonnegative()),
25
+ expectedOutputAmount: IntegerString,
26
+ fees: z.object({
27
+ total: AcrossFee,
28
+ totalMax: AcrossFee,
29
+ }),
30
+ inputAmount: IntegerString,
31
+ inputToken: AcrossToken,
32
+ minOutputAmount: IntegerString,
33
+ outputToken: AcrossToken,
34
+ quoteExpiryTimestamp: z.number().check(z.int(), z.nonnegative()),
35
+ });
36
+ })(schema || (schema = {}));
3
37
  /** Creates the live funding route adapters configured for this deployment. */
4
38
  export function createAdapters(options = {}) {
5
39
  return {
@@ -7,10 +41,10 @@ export function createAdapters(options = {}) {
7
41
  ...(options.relay ? { relay: relay(options.relay) } : {}),
8
42
  };
9
43
  }
10
- /** Creates an Across quote adapter backed by `/suggested-fees`. */
44
+ /** Creates an Across discovery adapter backed by `/suggested-fees`. */
11
45
  export function across(options) {
12
46
  const baseUrl = normalizeBaseUrl(options.baseUrl ?? defaultAcrossBaseUrl);
13
- const fetcher = options.fetch ?? globalThis.fetch;
47
+ const fetcher = options.fetch ?? defaultFetch;
14
48
  const now = options.now ?? (() => new Date());
15
49
  return {
16
50
  async probeQuote({ route }, signal) {
@@ -48,10 +82,81 @@ export function across(options) {
48
82
  },
49
83
  };
50
84
  }
85
+ /** Builds the authenticated Across `/swap/approval` request for an exact-input quote. */
86
+ export function createAcrossQuoteRequest(options) {
87
+ assertAcrossIntegratorId(options.integratorId);
88
+ const baseUrl = normalizeBaseUrl(options.baseUrl ?? defaultAcrossBaseUrl);
89
+ const sourceChainId = providerChainId(options.route.sourceChain, 'across');
90
+ const destinationChainId = eip155ChainId(options.route.destinationChain);
91
+ const url = new URL(`${baseUrl}/swap/approval`);
92
+ url.search = new URLSearchParams({
93
+ amount: options.route.sourceAmount.amount,
94
+ depositor: options.depositor,
95
+ destinationChainId,
96
+ inputToken: options.route.sourceToken.address,
97
+ integratorId: options.integratorId,
98
+ originChainId: sourceChainId,
99
+ outputToken: options.route.destinationToken.address,
100
+ skipOriginTxEstimation: 'true',
101
+ strictTradeType: 'true',
102
+ tradeType: 'exactInput',
103
+ }).toString();
104
+ if (options.recipient !== undefined)
105
+ url.searchParams.set('recipient', options.recipient);
106
+ return { headers: { Authorization: `Bearer ${options.apiKey}` }, url };
107
+ }
108
+ /** Creates an explicit Across quote adapter backed by `/swap/approval`. */
109
+ export function acrossQuote(options) {
110
+ assertAcrossIntegratorId(options.integratorId);
111
+ return async ({ depositor, recipient, route }, signal) => {
112
+ const request = createAcrossQuoteRequest({
113
+ apiKey: options.apiKey,
114
+ baseUrl: options.baseUrl,
115
+ depositor,
116
+ integratorId: options.integratorId,
117
+ recipient,
118
+ route,
119
+ });
120
+ try {
121
+ const body = await requestJson(request.url, {
122
+ fetcher: defaultFetch,
123
+ headers: request.headers,
124
+ signal,
125
+ });
126
+ return parseAcrossQuote({ body, now: new Date(), route });
127
+ }
128
+ catch (cause) {
129
+ if (!(cause instanceof ProviderResponseError))
130
+ throw cause;
131
+ throw mapAcrossQuoteError({ body: cause.body, status: cause.status });
132
+ }
133
+ };
134
+ }
135
+ /** Returns bounded Across quote failure details suitable for structured request logs. */
136
+ export function acrossQuoteFailure(options) {
137
+ const { cause } = options;
138
+ const base = { id: 'across', operation: 'swap/approval' };
139
+ if (cause instanceof ProviderResponseError) {
140
+ const code = providerErrorCode(cause.body);
141
+ return {
142
+ ...(code === undefined ? {} : { code }),
143
+ failure: 'http',
144
+ ...base,
145
+ status: cause.status,
146
+ };
147
+ }
148
+ if (cause instanceof ProviderPayloadError)
149
+ return { failure: 'payload', ...base };
150
+ if (cause instanceof TypeError)
151
+ return { failure: 'network', ...base };
152
+ if (cause instanceof Error)
153
+ return { failure: 'unknown', ...base };
154
+ return undefined;
155
+ }
51
156
  /** Creates a Relay quote adapter backed by `/chains/liquidity` and `/quote/v2`. */
52
157
  export function relay(options) {
53
158
  const baseUrl = normalizeBaseUrl(options.baseUrl ?? defaultRelayBaseUrl);
54
- const fetcher = options.fetch ?? globalThis.fetch;
159
+ const fetcher = options.fetch ?? defaultFetch;
55
160
  const now = options.now ?? (() => new Date());
56
161
  return {
57
162
  async probeQuote({ route }, signal) {
@@ -98,6 +203,60 @@ export function relay(options) {
98
203
  },
99
204
  };
100
205
  }
206
+ /** Maps an Across HTTP error into the stable funding-provider error contract. */
207
+ export function mapAcrossQuoteError(options) {
208
+ if (options.status === 429)
209
+ return new FundingRoutes.ProviderRateLimitError();
210
+ const cause = new ProviderResponseError(options.status, options.body);
211
+ const unavailable = providerUnavailable(cause, [
212
+ 'AMOUNT_TOO_HIGH',
213
+ 'AMOUNT_TOO_LOW',
214
+ 'INSUFFICIENT_LIQUIDITY',
215
+ 'NO_QUOTES',
216
+ 'NO_ROUTE',
217
+ 'UNSUPPORTED_ROUTE',
218
+ ]);
219
+ if (unavailable)
220
+ return new FundingRoutes.ProviderQuoteUnavailableError();
221
+ return cause;
222
+ }
223
+ /** Validates and normalizes an Across quote payload against its curated route. */
224
+ export function parseAcrossQuote(options) {
225
+ const parsed = schema.AcrossQuote.safeParse(options.body);
226
+ if (!parsed.success)
227
+ throw new ProviderPayloadError();
228
+ const response = parsed.data;
229
+ const total = response.fees.total;
230
+ const totalMax = response.fees.totalMax;
231
+ if (response.inputAmount !== options.route.sourceAmount.amount ||
232
+ response.inputToken.address.toLowerCase() !== options.route.sourceToken.address.toLowerCase() ||
233
+ response.inputToken.chainId !== Number(eip155ChainId(options.route.sourceChain)) ||
234
+ response.inputToken.decimals !== options.route.sourceToken.decimals ||
235
+ response.outputToken.address.toLowerCase() !==
236
+ options.route.destinationToken.address.toLowerCase() ||
237
+ response.outputToken.chainId !== Number(eip155ChainId(options.route.destinationChain)) ||
238
+ response.outputToken.decimals !== options.route.destinationToken.decimals ||
239
+ BigInt(response.expectedOutputAmount) <= 0n ||
240
+ BigInt(response.minOutputAmount) <= 0n ||
241
+ BigInt(response.minOutputAmount) > BigInt(response.expectedOutputAmount) ||
242
+ response.quoteExpiryTimestamp * 1_000 <= options.now.getTime() ||
243
+ !matchesFeeToken(total.token, options.route) ||
244
+ !matchesFeeToken(totalMax.token, options.route) ||
245
+ BigInt(totalMax.amount) < BigInt(total.amount) ||
246
+ BigInt(totalMax.pct) < BigInt(total.pct))
247
+ throw new ProviderPayloadError();
248
+ return {
249
+ estimatedSeconds: response.expectedFillTime,
250
+ expiresAt: isoFromUnixSeconds(String(response.quoteExpiryTimestamp)),
251
+ fees: {
252
+ total: formatAcrossFee(response.fees.total),
253
+ totalMax: formatAcrossFee(response.fees.totalMax),
254
+ },
255
+ minimumOutputAmount: response.minOutputAmount,
256
+ outputAmount: response.expectedOutputAmount,
257
+ sampledAt: options.now.toISOString(),
258
+ };
259
+ }
101
260
  function formatAcrossResult(route, body, now) {
102
261
  const response = record(body);
103
262
  const timestamp = integerString(response['timestamp']);
@@ -129,6 +288,19 @@ function formatAcrossResult(route, body, now) {
129
288
  status,
130
289
  };
131
290
  }
291
+ function formatAcrossFee(fee) {
292
+ return {
293
+ amount: fee.amount,
294
+ amountUsd: fee.amountUsd,
295
+ bps: scaledPctToBps(fee.pct),
296
+ token: {
297
+ address: fee.token.address,
298
+ chainId: `eip155:${fee.token.chainId}`,
299
+ decimals: fee.token.decimals,
300
+ symbol: fee.token.symbol,
301
+ },
302
+ };
303
+ }
132
304
  function formatRelayResult(route, quote, liquidity, now) {
133
305
  const details = record(record(quote)['details']);
134
306
  const currencyOut = record(details['currencyOut']);
@@ -238,12 +410,16 @@ function relayHeaders(apiKey) {
238
410
  function providerUnavailable(cause, codes) {
239
411
  if (!(cause instanceof ProviderResponseError) || cause.status < 400 || cause.status >= 500)
240
412
  return undefined;
241
- const body = record(cause.body);
242
- const code = stringValue(body['code']) ?? stringValue(body['errorCode']);
413
+ const code = providerErrorCode(cause.body);
243
414
  if (code && codes.includes(code))
244
415
  return code;
245
416
  return undefined;
246
417
  }
418
+ function providerErrorCode(input) {
419
+ const body = record(input);
420
+ const code = stringValue(body['code']) ?? stringValue(body['errorCode']);
421
+ return code && /^[A-Za-z0-9_.:-]{1,64}$/.test(code) ? code : undefined;
422
+ }
247
423
  class ProviderResponseError extends Error {
248
424
  status;
249
425
  body;
@@ -254,6 +430,12 @@ class ProviderResponseError extends Error {
254
430
  this.body = body;
255
431
  }
256
432
  }
433
+ class ProviderPayloadError extends Error {
434
+ name = 'FundingRouteProviders.ProviderPayloadError';
435
+ }
436
+ class ProviderConfigurationError extends Error {
437
+ name = 'FundingRouteProviders.ProviderConfigurationError';
438
+ }
257
439
  function providerChainId(routeChain, provider) {
258
440
  const providerIds = routeChain.providerIds;
259
441
  const id = providerIds?.[provider];
@@ -272,6 +454,15 @@ function eip155ChainId(chain) {
272
454
  class UnsupportedProviderRouteError extends Error {
273
455
  name = 'FundingRouteProviders.UnsupportedProviderRouteError';
274
456
  }
457
+ function assertAcrossIntegratorId(integratorId) {
458
+ if (!/^0x[\da-fA-F]{4}$/.test(integratorId))
459
+ throw new ProviderConfigurationError();
460
+ }
461
+ function matchesFeeToken(token, route) {
462
+ return (token.address.toLowerCase() === route.sourceToken.address.toLowerCase() &&
463
+ token.chainId === Number(eip155ChainId(route.sourceChain)) &&
464
+ token.decimals === route.sourceToken.decimals);
465
+ }
275
466
  function normalizeBaseUrl(input) {
276
467
  return input.replace(/\/+$/, '');
277
468
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FundingRouteProviders.js","sourceRoot":"","sources":["../../../src/apps/data/FundingRouteProviders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FundingRouteProviders.js","sourceRoot":"","sources":["../../../src/apps/data/FundingRouteProviders.ts"],"names":[],"mappings":"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"}