@nsshunt/stsappframework 3.1.214 → 3.1.215

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 (370) hide show
  1. package/dist/commonTypes.js.map +1 -1
  2. package/dist/index.js +1 -7
  3. package/dist/index.js.map +1 -1
  4. package/dist/serverprocessbase.js +2 -2
  5. package/dist/serverprocessbase.js.map +1 -1
  6. package/dist/stscontrollerbase.js.map +1 -1
  7. package/dist/{server.js → stsexpressserver.js} +1 -1
  8. package/dist/stsexpressserver.js.map +1 -0
  9. package/dist/stslatencycontroller.js.map +1 -1
  10. package/dist/stslatencyroute.js.map +1 -1
  11. package/dist/stsrouterbase.js.map +1 -1
  12. package/dist/vitesttesting/appSingleWSS.js +2 -1
  13. package/dist/vitesttesting/appSingleWSS.js.map +1 -1
  14. package/dist/workerprocessbase.js.map +1 -1
  15. package/package.json +5 -6
  16. package/src/commonTypes.ts +2 -0
  17. package/src/index.ts +1 -7
  18. package/src/serverprocessbase.ts +1 -1
  19. package/src/{socketIoServerHelper.ts → socketIoServerHelper.ts_bak} +1 -2
  20. package/src/stscontrollerbase.ts +1 -2
  21. package/src/{server.ts → stsexpressserver.ts} +1 -2
  22. package/src/stslatencycontroller.ts +1 -2
  23. package/src/stslatencyroute.ts +1 -2
  24. package/src/stsrouterbase.ts +1 -2
  25. package/src/vitesttesting/appSingleWSS.ts +2 -1
  26. package/src/workerprocessbase.ts +1 -2
  27. package/types/commonTypes.d.ts +0 -15
  28. package/types/commonTypes.d.ts.map +1 -1
  29. package/types/index.d.ts +0 -7
  30. package/types/index.d.ts.map +1 -1
  31. package/types/serverprocessbase.d.ts +1 -1
  32. package/types/serverprocessbase.d.ts.map +1 -1
  33. package/types/stscontrollerbase.d.ts.map +1 -1
  34. package/types/{server.d.ts → stsexpressserver.d.ts} +1 -1
  35. package/types/stsexpressserver.d.ts.map +1 -0
  36. package/types/stslatencycontroller.d.ts.map +1 -1
  37. package/types/stslatencyroute.d.ts.map +1 -1
  38. package/types/stsrouterbase.d.ts.map +1 -1
  39. package/types/vitesttesting/appSingleWSS.d.ts.map +1 -1
  40. package/types/workerprocessbase.d.ts.map +1 -1
  41. package/dist/authDefs.js +0 -33
  42. package/dist/authDefs.js.map +0 -1
  43. package/dist/gRPC/ststest/protos/auth_sample.js +0 -3
  44. package/dist/gRPC/ststest/protos/auth_sample.js.map +0 -1
  45. package/dist/gRPC/ststest/protos/echo.js +0 -3
  46. package/dist/gRPC/ststest/protos/echo.js.map +0 -1
  47. package/dist/gRPC/ststest/protos/grpc/examples/echo/Echo.js +0 -4
  48. package/dist/gRPC/ststest/protos/grpc/examples/echo/Echo.js.map +0 -1
  49. package/dist/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.js +0 -4
  50. package/dist/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.js.map +0 -1
  51. package/dist/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.js +0 -4
  52. package/dist/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.js.map +0 -1
  53. package/dist/gRPC/ststest/protos/grpc/testing/Request.js +0 -4
  54. package/dist/gRPC/ststest/protos/grpc/testing/Request.js.map +0 -1
  55. package/dist/gRPC/ststest/protos/grpc/testing/Response.js +0 -4
  56. package/dist/gRPC/ststest/protos/grpc/testing/Response.js.map +0 -1
  57. package/dist/gRPC/ststest/protos/grpc/testing/TestService.js +0 -4
  58. package/dist/gRPC/ststest/protos/grpc/testing/TestService.js.map +0 -1
  59. package/dist/gRPC/ststest/protos/hellostreamingworld/HelloReply.js +0 -4
  60. package/dist/gRPC/ststest/protos/hellostreamingworld/HelloReply.js.map +0 -1
  61. package/dist/gRPC/ststest/protos/hellostreamingworld/HelloRequest.js +0 -4
  62. package/dist/gRPC/ststest/protos/hellostreamingworld/HelloRequest.js.map +0 -1
  63. package/dist/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.js +0 -4
  64. package/dist/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.js.map +0 -1
  65. package/dist/gRPC/ststest/protos/hellostreamingworld.js +0 -3
  66. package/dist/gRPC/ststest/protos/hellostreamingworld.js.map +0 -1
  67. package/dist/gRPC/ststest/protos/helloworld/Greeter.js +0 -4
  68. package/dist/gRPC/ststest/protos/helloworld/Greeter.js.map +0 -1
  69. package/dist/gRPC/ststest/protos/helloworld/HelloReply.js +0 -4
  70. package/dist/gRPC/ststest/protos/helloworld/HelloReply.js.map +0 -1
  71. package/dist/gRPC/ststest/protos/helloworld/HelloRequest.js +0 -4
  72. package/dist/gRPC/ststest/protos/helloworld/HelloRequest.js.map +0 -1
  73. package/dist/gRPC/ststest/protos/helloworld.js +0 -3
  74. package/dist/gRPC/ststest/protos/helloworld.js.map +0 -1
  75. package/dist/gRPC/ststest/protos/keyvaluestore/KeyValueStore.js +0 -4
  76. package/dist/gRPC/ststest/protos/keyvaluestore/KeyValueStore.js.map +0 -1
  77. package/dist/gRPC/ststest/protos/keyvaluestore/Request.js +0 -4
  78. package/dist/gRPC/ststest/protos/keyvaluestore/Request.js.map +0 -1
  79. package/dist/gRPC/ststest/protos/keyvaluestore/Response.js +0 -4
  80. package/dist/gRPC/ststest/protos/keyvaluestore/Response.js.map +0 -1
  81. package/dist/gRPC/ststest/protos/keyvaluestore.js +0 -3
  82. package/dist/gRPC/ststest/protos/keyvaluestore.js.map +0 -1
  83. package/dist/gRPC/ststest/protos/route_guide.js +0 -3
  84. package/dist/gRPC/ststest/protos/route_guide.js.map +0 -1
  85. package/dist/gRPC/ststest/protos/routeguide/Feature.js +0 -4
  86. package/dist/gRPC/ststest/protos/routeguide/Feature.js.map +0 -1
  87. package/dist/gRPC/ststest/protos/routeguide/Point.js +0 -4
  88. package/dist/gRPC/ststest/protos/routeguide/Point.js.map +0 -1
  89. package/dist/gRPC/ststest/protos/routeguide/Rectangle.js +0 -4
  90. package/dist/gRPC/ststest/protos/routeguide/Rectangle.js.map +0 -1
  91. package/dist/gRPC/ststest/protos/routeguide/RouteGuide.js +0 -4
  92. package/dist/gRPC/ststest/protos/routeguide/RouteGuide.js.map +0 -1
  93. package/dist/gRPC/ststest/protos/routeguide/RouteNote.js +0 -4
  94. package/dist/gRPC/ststest/protos/routeguide/RouteNote.js.map +0 -1
  95. package/dist/gRPC/ststest/protos/routeguide/RouteSummary.js +0 -4
  96. package/dist/gRPC/ststest/protos/routeguide/RouteSummary.js.map +0 -1
  97. package/dist/gRPC/ststest/src/commonTypes.js +0 -3
  98. package/dist/gRPC/ststest/src/commonTypes.js.map +0 -1
  99. package/dist/gRPC/ststest/src/greeter_client.js +0 -67
  100. package/dist/gRPC/ststest/src/greeter_client.js.map +0 -1
  101. package/dist/gRPC/ststest/src/greeter_server.js +0 -78
  102. package/dist/gRPC/ststest/src/greeter_server.js.map +0 -1
  103. package/dist/gRPC/ststest/src/route_guide_client.js +0 -258
  104. package/dist/gRPC/ststest/src/route_guide_client.js.map +0 -1
  105. package/dist/gRPC/ststest/src/route_guide_server.js +0 -237
  106. package/dist/gRPC/ststest/src/route_guide_server.js.map +0 -1
  107. package/dist/gRPC/ststest/src/route_guide_server2.js +0 -205
  108. package/dist/gRPC/ststest/src/route_guide_server2.js.map +0 -1
  109. package/dist/influxdb/influxDBManager.js +0 -304
  110. package/dist/influxdb/influxDBManager.js.map +0 -1
  111. package/dist/influxdb/influxDBManagerAgent.js +0 -14
  112. package/dist/influxdb/influxDBManagerAgent.js.map +0 -1
  113. package/dist/influxdb/influxDBManagerBase.js +0 -100
  114. package/dist/influxdb/influxDBManagerBase.js.map +0 -1
  115. package/dist/influxdb/influxDBManagerLambda.js +0 -17
  116. package/dist/influxdb/influxDBManagerLambda.js.map +0 -1
  117. package/dist/influxdb/influxDBManagerService.js +0 -14
  118. package/dist/influxdb/influxDBManagerService.js.map +0 -1
  119. package/dist/publishInstrumentsWebWorker.js +0 -159
  120. package/dist/publishInstrumentsWebWorker.js.map +0 -1
  121. package/dist/server.js.map +0 -1
  122. package/dist/socketIoServerHelper.js +0 -125
  123. package/dist/socketIoServerHelper.js.map +0 -1
  124. package/dist/tcpclient/app.js +0 -23
  125. package/dist/tcpclient/app.js.map +0 -1
  126. package/dist/tcpclient/app2.js +0 -57
  127. package/dist/tcpclient/app2.js.map +0 -1
  128. package/dist/tcpserver/app.js +0 -16
  129. package/dist/tcpserver/app.js.map +0 -1
  130. package/dist/tcpserver/appConfig.js +0 -83
  131. package/dist/tcpserver/appConfig.js.map +0 -1
  132. package/dist/tcpserver/appmaster.js +0 -446
  133. package/dist/tcpserver/appmaster.js.map +0 -1
  134. package/dist/testertesting/app.js +0 -284
  135. package/dist/testertesting/app.js.map +0 -1
  136. package/dist/testertesting/commonTypes.js +0 -47
  137. package/dist/testertesting/commonTypes.js.map +0 -1
  138. package/dist/testertesting/telemetryProcessor.js +0 -111
  139. package/dist/testertesting/telemetryProcessor.js.map +0 -1
  140. package/dist/testertesting/testCase01.js +0 -169
  141. package/dist/testertesting/testCase01.js.map +0 -1
  142. package/dist/testertesting/workerInstance.js +0 -263
  143. package/dist/testertesting/workerInstance.js.map +0 -1
  144. package/dist/testertesting/workerManager.js +0 -450
  145. package/dist/testertesting/workerManager.js.map +0 -1
  146. package/dist/testertesting/workerWorkerTestRunner01.js +0 -35
  147. package/dist/testertesting/workerWorkerTestRunner01.js.map +0 -1
  148. package/dist/testing/app.js +0 -18
  149. package/dist/testing/app.js.map +0 -1
  150. package/dist/testing/appConfig.js +0 -93
  151. package/dist/testing/appConfig.js.map +0 -1
  152. package/dist/testing/appTinyEmitter.js +0 -37
  153. package/dist/testing/appTinyEmitter.js.map +0 -1
  154. package/dist/testing/appWorkerWSS.js +0 -151
  155. package/dist/testing/appWorkerWSS.js.map +0 -1
  156. package/dist/testing/appredistest.js +0 -239
  157. package/dist/testing/appredistest.js.map +0 -1
  158. package/dist/testing/appsolo.js +0 -67
  159. package/dist/testing/appsolo.js.map +0 -1
  160. package/dist/testing/promiseTesting.js +0 -77
  161. package/dist/testing/promiseTesting.js.map +0 -1
  162. package/dist/testing/server.js +0 -15
  163. package/dist/testing/server.js.map +0 -1
  164. package/dist/testing/wsevents.js +0 -3
  165. package/dist/testing/wsevents.js.map +0 -1
  166. package/dist/webworkertesting/app.js +0 -44
  167. package/dist/webworkertesting/app.js.map +0 -1
  168. package/dist/webworkertesting/worker.js +0 -21
  169. package/dist/webworkertesting/worker.js.map +0 -1
  170. package/src/authDefs.ts +0 -37
  171. package/src/gRPC/ststest/protos/BUILD +0 -82
  172. package/src/gRPC/ststest/protos/README.md +0 -8
  173. package/src/gRPC/ststest/protos/auth_sample.proto +0 -42
  174. package/src/gRPC/ststest/protos/auth_sample.ts +0 -20
  175. package/src/gRPC/ststest/protos/echo.proto +0 -45
  176. package/src/gRPC/ststest/protos/echo.ts +0 -22
  177. package/src/gRPC/ststest/protos/grpc/examples/echo/Echo.ts +0 -55
  178. package/src/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.ts +0 -10
  179. package/src/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.ts +0 -10
  180. package/src/gRPC/ststest/protos/grpc/testing/Request.ts +0 -12
  181. package/src/gRPC/ststest/protos/grpc/testing/Response.ts +0 -12
  182. package/src/gRPC/ststest/protos/grpc/testing/TestService.ts +0 -27
  183. package/src/gRPC/ststest/protos/hellostreamingworld/HelloReply.ts +0 -10
  184. package/src/gRPC/ststest/protos/hellostreamingworld/HelloRequest.ts +0 -12
  185. package/src/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.ts +0 -23
  186. package/src/gRPC/ststest/protos/hellostreamingworld.proto +0 -39
  187. package/src/gRPC/ststest/protos/hellostreamingworld.ts +0 -18
  188. package/src/gRPC/ststest/protos/helloworld/Greeter.ts +0 -35
  189. package/src/gRPC/ststest/protos/helloworld/HelloReply.ts +0 -10
  190. package/src/gRPC/ststest/protos/helloworld/HelloRequest.ts +0 -10
  191. package/src/gRPC/ststest/protos/helloworld.proto +0 -40
  192. package/src/gRPC/ststest/protos/helloworld.ts +0 -18
  193. package/src/gRPC/ststest/protos/keyvaluestore/KeyValueStore.ts +0 -23
  194. package/src/gRPC/ststest/protos/keyvaluestore/Request.ts +0 -10
  195. package/src/gRPC/ststest/protos/keyvaluestore/Response.ts +0 -10
  196. package/src/gRPC/ststest/protos/keyvaluestore.proto +0 -33
  197. package/src/gRPC/ststest/protos/keyvaluestore.ts +0 -18
  198. package/src/gRPC/ststest/protos/route_guide.proto +0 -111
  199. package/src/gRPC/ststest/protos/route_guide.ts +0 -21
  200. package/src/gRPC/ststest/protos/routeguide/Feature.ts +0 -13
  201. package/src/gRPC/ststest/protos/routeguide/Point.ts +0 -12
  202. package/src/gRPC/ststest/protos/routeguide/Rectangle.ts +0 -13
  203. package/src/gRPC/ststest/protos/routeguide/RouteGuide.ts +0 -58
  204. package/src/gRPC/ststest/protos/routeguide/RouteNote.ts +0 -13
  205. package/src/gRPC/ststest/protos/routeguide/RouteSummary.ts +0 -16
  206. package/src/gRPC/ststest/src/commonTypes.ts +0 -27
  207. package/src/gRPC/ststest/src/greeter_client.ts +0 -52
  208. package/src/gRPC/ststest/src/greeter_server.ts +0 -62
  209. package/src/gRPC/ststest/src/route_guide_client.ts +0 -266
  210. package/src/gRPC/ststest/src/route_guide_server.ts +0 -234
  211. package/src/gRPC/ststest/src/route_guide_server2.ts +0 -211
  212. package/src/influxdb/influxDBManager.ts +0 -334
  213. package/src/influxdb/influxDBManagerAgent.ts +0 -14
  214. package/src/influxdb/influxDBManagerBase.ts +0 -108
  215. package/src/influxdb/influxDBManagerLambda.ts +0 -17
  216. package/src/influxdb/influxDBManagerService.ts +0 -14
  217. package/src/publishInstrumentsWebWorker.ts +0 -157
  218. package/src/tcpclient/app.ts +0 -21
  219. package/src/tcpclient/app2.ts +0 -58
  220. package/src/tcpserver/app.ts +0 -11
  221. package/src/tcpserver/appConfig.ts +0 -99
  222. package/src/tcpserver/appmaster.ts +0 -503
  223. package/src/testertesting/app.ts +0 -349
  224. package/src/testertesting/commonTypes.ts +0 -236
  225. package/src/testertesting/telemetryProcessor.ts +0 -125
  226. package/src/testertesting/testCase01.ts +0 -207
  227. package/src/testertesting/workerInstance.ts +0 -297
  228. package/src/testertesting/workerManager.ts +0 -511
  229. package/src/testertesting/workerWorkerTestRunner01.ts +0 -34
  230. package/src/testing/app.ts +0 -14
  231. package/src/testing/appConfig.ts +0 -110
  232. package/src/testing/appTinyEmitter.ts +0 -57
  233. package/src/testing/appWorkerWSS.ts +0 -174
  234. package/src/testing/appredistest.ts +0 -304
  235. package/src/testing/appsolo.ts +0 -96
  236. package/src/testing/docker-compose.yml +0 -20
  237. package/src/testing/promiseTesting.ts +0 -86
  238. package/src/testing/server.ts +0 -17
  239. package/src/testing/wsevents.ts +0 -33
  240. package/src/webworkertesting/app.ts +0 -56
  241. package/src/webworkertesting/worker.ts +0 -24
  242. package/types/authDefs.d.ts +0 -29
  243. package/types/authDefs.d.ts.map +0 -1
  244. package/types/gRPC/ststest/protos/auth_sample.d.ts +0 -19
  245. package/types/gRPC/ststest/protos/auth_sample.d.ts.map +0 -1
  246. package/types/gRPC/ststest/protos/echo.d.ts +0 -21
  247. package/types/gRPC/ststest/protos/echo.d.ts.map +0 -1
  248. package/types/gRPC/ststest/protos/grpc/examples/echo/Echo.d.ts +0 -43
  249. package/types/gRPC/ststest/protos/grpc/examples/echo/Echo.d.ts.map +0 -1
  250. package/types/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.d.ts +0 -7
  251. package/types/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.d.ts.map +0 -1
  252. package/types/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.d.ts +0 -7
  253. package/types/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.d.ts.map +0 -1
  254. package/types/gRPC/ststest/protos/grpc/testing/Request.d.ts +0 -9
  255. package/types/gRPC/ststest/protos/grpc/testing/Request.d.ts.map +0 -1
  256. package/types/gRPC/ststest/protos/grpc/testing/Response.d.ts +0 -9
  257. package/types/gRPC/ststest/protos/grpc/testing/Response.d.ts.map +0 -1
  258. package/types/gRPC/ststest/protos/grpc/testing/TestService.d.ts +0 -21
  259. package/types/gRPC/ststest/protos/grpc/testing/TestService.d.ts.map +0 -1
  260. package/types/gRPC/ststest/protos/hellostreamingworld/HelloReply.d.ts +0 -7
  261. package/types/gRPC/ststest/protos/hellostreamingworld/HelloReply.d.ts.map +0 -1
  262. package/types/gRPC/ststest/protos/hellostreamingworld/HelloRequest.d.ts +0 -9
  263. package/types/gRPC/ststest/protos/hellostreamingworld/HelloRequest.d.ts.map +0 -1
  264. package/types/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.d.ts +0 -17
  265. package/types/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.d.ts.map +0 -1
  266. package/types/gRPC/ststest/protos/hellostreamingworld.d.ts +0 -17
  267. package/types/gRPC/ststest/protos/hellostreamingworld.d.ts.map +0 -1
  268. package/types/gRPC/ststest/protos/helloworld/Greeter.d.ts +0 -27
  269. package/types/gRPC/ststest/protos/helloworld/Greeter.d.ts.map +0 -1
  270. package/types/gRPC/ststest/protos/helloworld/HelloReply.d.ts +0 -7
  271. package/types/gRPC/ststest/protos/helloworld/HelloReply.d.ts.map +0 -1
  272. package/types/gRPC/ststest/protos/helloworld/HelloRequest.d.ts +0 -7
  273. package/types/gRPC/ststest/protos/helloworld/HelloRequest.d.ts.map +0 -1
  274. package/types/gRPC/ststest/protos/helloworld.d.ts +0 -17
  275. package/types/gRPC/ststest/protos/helloworld.d.ts.map +0 -1
  276. package/types/gRPC/ststest/protos/keyvaluestore/KeyValueStore.d.ts +0 -17
  277. package/types/gRPC/ststest/protos/keyvaluestore/KeyValueStore.d.ts.map +0 -1
  278. package/types/gRPC/ststest/protos/keyvaluestore/Request.d.ts +0 -7
  279. package/types/gRPC/ststest/protos/keyvaluestore/Request.d.ts.map +0 -1
  280. package/types/gRPC/ststest/protos/keyvaluestore/Response.d.ts +0 -7
  281. package/types/gRPC/ststest/protos/keyvaluestore/Response.d.ts.map +0 -1
  282. package/types/gRPC/ststest/protos/keyvaluestore.d.ts +0 -17
  283. package/types/gRPC/ststest/protos/keyvaluestore.d.ts.map +0 -1
  284. package/types/gRPC/ststest/protos/route_guide.d.ts +0 -20
  285. package/types/gRPC/ststest/protos/route_guide.d.ts.map +0 -1
  286. package/types/gRPC/ststest/protos/routeguide/Feature.d.ts +0 -10
  287. package/types/gRPC/ststest/protos/routeguide/Feature.d.ts.map +0 -1
  288. package/types/gRPC/ststest/protos/routeguide/Point.d.ts +0 -9
  289. package/types/gRPC/ststest/protos/routeguide/Point.d.ts.map +0 -1
  290. package/types/gRPC/ststest/protos/routeguide/Rectangle.d.ts +0 -10
  291. package/types/gRPC/ststest/protos/routeguide/Rectangle.d.ts.map +0 -1
  292. package/types/gRPC/ststest/protos/routeguide/RouteGuide.d.ts +0 -46
  293. package/types/gRPC/ststest/protos/routeguide/RouteGuide.d.ts.map +0 -1
  294. package/types/gRPC/ststest/protos/routeguide/RouteNote.d.ts +0 -10
  295. package/types/gRPC/ststest/protos/routeguide/RouteNote.d.ts.map +0 -1
  296. package/types/gRPC/ststest/protos/routeguide/RouteSummary.d.ts +0 -13
  297. package/types/gRPC/ststest/protos/routeguide/RouteSummary.d.ts.map +0 -1
  298. package/types/gRPC/ststest/src/commonTypes.d.ts +0 -23
  299. package/types/gRPC/ststest/src/commonTypes.d.ts.map +0 -1
  300. package/types/gRPC/ststest/src/greeter_client.d.ts +0 -3
  301. package/types/gRPC/ststest/src/greeter_client.d.ts.map +0 -1
  302. package/types/gRPC/ststest/src/greeter_server.d.ts +0 -3
  303. package/types/gRPC/ststest/src/greeter_server.d.ts.map +0 -1
  304. package/types/gRPC/ststest/src/route_guide_client.d.ts +0 -3
  305. package/types/gRPC/ststest/src/route_guide_client.d.ts.map +0 -1
  306. package/types/gRPC/ststest/src/route_guide_server.d.ts +0 -3
  307. package/types/gRPC/ststest/src/route_guide_server.d.ts.map +0 -1
  308. package/types/gRPC/ststest/src/route_guide_server2.d.ts +0 -3
  309. package/types/gRPC/ststest/src/route_guide_server2.d.ts.map +0 -1
  310. package/types/influxdb/influxDBManager.d.ts +0 -21
  311. package/types/influxdb/influxDBManager.d.ts.map +0 -1
  312. package/types/influxdb/influxDBManagerAgent.d.ts +0 -8
  313. package/types/influxdb/influxDBManagerAgent.d.ts.map +0 -1
  314. package/types/influxdb/influxDBManagerBase.d.ts +0 -14
  315. package/types/influxdb/influxDBManagerBase.d.ts.map +0 -1
  316. package/types/influxdb/influxDBManagerLambda.d.ts +0 -11
  317. package/types/influxdb/influxDBManagerLambda.d.ts.map +0 -1
  318. package/types/influxdb/influxDBManagerService.d.ts +0 -8
  319. package/types/influxdb/influxDBManagerService.d.ts.map +0 -1
  320. package/types/publishInstrumentsWebWorker.d.ts +0 -1
  321. package/types/publishInstrumentsWebWorker.d.ts.map +0 -1
  322. package/types/server.d.ts.map +0 -1
  323. package/types/socketIoServerHelper.d.ts +0 -20
  324. package/types/socketIoServerHelper.d.ts.map +0 -1
  325. package/types/tcpclient/app.d.ts +0 -2
  326. package/types/tcpclient/app.d.ts.map +0 -1
  327. package/types/tcpclient/app2.d.ts +0 -2
  328. package/types/tcpclient/app2.d.ts.map +0 -1
  329. package/types/tcpserver/app.d.ts +0 -2
  330. package/types/tcpserver/app.d.ts.map +0 -1
  331. package/types/tcpserver/appConfig.d.ts +0 -3
  332. package/types/tcpserver/appConfig.d.ts.map +0 -1
  333. package/types/tcpserver/appmaster.d.ts +0 -24
  334. package/types/tcpserver/appmaster.d.ts.map +0 -1
  335. package/types/testertesting/app.d.ts +0 -2
  336. package/types/testertesting/app.d.ts.map +0 -1
  337. package/types/testertesting/commonTypes.d.ts +0 -215
  338. package/types/testertesting/commonTypes.d.ts.map +0 -1
  339. package/types/testertesting/telemetryProcessor.d.ts +0 -6
  340. package/types/testertesting/telemetryProcessor.d.ts.map +0 -1
  341. package/types/testertesting/testCase01.d.ts +0 -20
  342. package/types/testertesting/testCase01.d.ts.map +0 -1
  343. package/types/testertesting/workerInstance.d.ts +0 -23
  344. package/types/testertesting/workerInstance.d.ts.map +0 -1
  345. package/types/testertesting/workerManager.d.ts +0 -16
  346. package/types/testertesting/workerManager.d.ts.map +0 -1
  347. package/types/testertesting/workerWorkerTestRunner01.d.ts +0 -7
  348. package/types/testertesting/workerWorkerTestRunner01.d.ts.map +0 -1
  349. package/types/testing/app.d.ts +0 -2
  350. package/types/testing/app.d.ts.map +0 -1
  351. package/types/testing/appConfig.d.ts +0 -3
  352. package/types/testing/appConfig.d.ts.map +0 -1
  353. package/types/testing/appTinyEmitter.d.ts +0 -2
  354. package/types/testing/appTinyEmitter.d.ts.map +0 -1
  355. package/types/testing/appWorkerWSS.d.ts +0 -26
  356. package/types/testing/appWorkerWSS.d.ts.map +0 -1
  357. package/types/testing/appredistest.d.ts +0 -4
  358. package/types/testing/appredistest.d.ts.map +0 -1
  359. package/types/testing/appsolo.d.ts +0 -3
  360. package/types/testing/appsolo.d.ts.map +0 -1
  361. package/types/testing/promiseTesting.d.ts +0 -4
  362. package/types/testing/promiseTesting.d.ts.map +0 -1
  363. package/types/testing/server.d.ts +0 -6
  364. package/types/testing/server.d.ts.map +0 -1
  365. package/types/testing/wsevents.d.ts +0 -18
  366. package/types/testing/wsevents.d.ts.map +0 -1
  367. package/types/webworkertesting/app.d.ts +0 -2
  368. package/types/webworkertesting/app.d.ts.map +0 -1
  369. package/types/webworkertesting/worker.d.ts +0 -2
  370. package/types/webworkertesting/worker.d.ts.map +0 -1
@@ -1,446 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AppMaster = exports.AppMasterRAFTState = void 0;
7
- /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
8
- const fs_1 = __importDefault(require("fs"));
9
- const crypto_1 = __importDefault(require("crypto"));
10
- const jayson_1 = __importDefault(require("jayson"));
11
- const masterprocessbase_1 = require("./../masterprocessbase");
12
- const chalk_1 = __importDefault(require("chalk"));
13
- // Colour codes
14
- // ---------------------------------
15
- // Red - Error
16
- // Green - Vote YES
17
- // Yellow - Vote No
18
- // White - standard logging message
19
- // Magenta - node state change
20
- // Cyan - node term change
21
- var AppMasterRAFTState;
22
- (function (AppMasterRAFTState) {
23
- AppMasterRAFTState["IDLE"] = "IDLE";
24
- AppMasterRAFTState["FOLLOWER"] = "FOLLOWER";
25
- AppMasterRAFTState["CANDIDATE"] = "CANDIDATE";
26
- AppMasterRAFTState["LEADER"] = "LEADER";
27
- })(AppMasterRAFTState || (exports.AppMasterRAFTState = AppMasterRAFTState = {}));
28
- class AppMaster extends masterprocessbase_1.MasterProcessBase {
29
- #lastRequiredVotes = -1; // used for logging only
30
- #lastVotes = -1; // used for logging only
31
- #RAFTState;
32
- #minElectionTimeout;
33
- #maxElectionTimeout;
34
- #electionTimeout;
35
- #heartBeatTimeout;
36
- #startRAFTProtocolTimeout;
37
- #votes; // keyed by service key (host:port)
38
- #services;
39
- #thisService;
40
- #canidateTimeout = null;
41
- #serverPort;
42
- #votedLog = {}; // keyed by term number
43
- #appendedEntries = {};
44
- #leaderNode = null;
45
- #currentTerm;
46
- #log;
47
- #currentIndex = 0;
48
- constructor(serviceConfig) {
49
- super(serviceConfig);
50
- this.#RAFTState = AppMasterRAFTState.IDLE;
51
- this.#currentTerm = 0;
52
- this.#votes = {};
53
- this.#services = [{
54
- host: "stscore.stsmda.org",
55
- port: 3006
56
- }, {
57
- host: "stscore.stsmda.org",
58
- port: 3007
59
- }, {
60
- host: "stscore.stsmda.org",
61
- port: 3008
62
- }];
63
- this.#thisService = this.#services[parseInt(process.env.SERVICE_INDEX)]; // set self service
64
- this.#serverPort = this.#thisService.port;
65
- //this.#thisService = this.#services[0]; // set self service
66
- this.#log = []; // Need to get from storage - volume, redis, etc.
67
- // Set default config items
68
- this.#minElectionTimeout = 1000; //@@ config
69
- this.#maxElectionTimeout = 1200; //@@ config
70
- this.#startRAFTProtocolTimeout = 2000; //@@ config
71
- this.#electionTimeout = crypto_1.default.randomInt(this.#minElectionTimeout, this.#maxElectionTimeout);
72
- this.#heartBeatTimeout = 750; //@@ config - also must be smaller than electionTimeout
73
- }
74
- #LogInfoMessage(message) {
75
- this.options.logger.error(message);
76
- }
77
- #GetTLSOptions = () => {
78
- return {
79
- key: fs_1.default.readFileSync(this.options.httpsServerKeyPath),
80
- cert: fs_1.default.readFileSync(this.options.httpsServerCertificatePath)
81
- };
82
- };
83
- #GetLogPrefix = () => {
84
- return `${this.#thisService.host}:${this.#thisService.port}: currentTerm: [${this.#currentTerm}] index: [${this.#currentIndex}]: `;
85
- };
86
- #VoteYes = (callback, term, message) => {
87
- // Log the fact that I have now voted for this currentTerm
88
- this.#votedLog[term] = true;
89
- // Update my currentTerm
90
- this.#currentTerm = term;
91
- // Return my yes vote
92
- this.#LogInfoMessage(chalk_1.default.green(`${message} - Vote Yes`));
93
- callback(null, true); // YES vote
94
- };
95
- #VoteNo = (callback, term, message) => {
96
- // Log the fact that I have now voted for this currentTerm
97
- this.#votedLog[term] = true;
98
- // Return my yes vote
99
- this.#LogInfoMessage(chalk_1.default.yellow(`${message} - Vote No`));
100
- callback(null, false); // NO vote
101
- };
102
- #FindService = (host, port) => {
103
- let retService = null;
104
- this.#services.forEach((service, index) => {
105
- if (service.host.localeCompare(host) === 0 && service.port === port) {
106
- retService = service;
107
- return;
108
- }
109
- });
110
- return retService;
111
- };
112
- #CheckMoreRecentTerm = (term, lastLogItemTerm, lastLogItemIndex) => {
113
- // Check if the request to vote is newer than my current term
114
- let msg = '';
115
- let retVal;
116
- if (term > this.#currentTerm) {
117
- msg = `${this.#GetLogPrefix()}: canidate term: [${term}] greater than my currentTerm: [${this.#currentTerm}]`;
118
- retVal = true;
119
- }
120
- else {
121
- // Check if the request to vote is older than my current term
122
- if (term === this.#currentTerm) {
123
- if (lastLogItemIndex > this.#currentIndex) {
124
- msg = `${this.#GetLogPrefix()}: canidate term: [${term}] the same as my currentTerm: [${this.#currentTerm}]. Canidate index: [${lastLogItemIndex}] greater than my index: [${this.#currentIndex}]`;
125
- retVal = true;
126
- }
127
- else if (lastLogItemIndex === this.#currentIndex) {
128
- msg = `${this.#GetLogPrefix()}: canidate term: [${term}] the same as my currentTerm: [${this.#currentTerm}]. Canidate index: [${lastLogItemIndex}] the same as my index: [${this.#currentIndex}]`;
129
- retVal = true;
130
- }
131
- else {
132
- msg = `${this.#GetLogPrefix()}: canidate term: [${term}] the same as my currentTerm: [${this.#currentTerm}]. Canidate index: [${lastLogItemIndex}] NOT greater than my index: [${this.#currentIndex}]`;
133
- retVal = false;
134
- }
135
- }
136
- else {
137
- msg = `${this.#GetLogPrefix()}: canidate term: [${term}] less than my currentTerm: [${this.#currentTerm}]`;
138
- retVal = false;
139
- }
140
- }
141
- return {
142
- msg,
143
- retVal
144
- };
145
- };
146
- #SetupJSONRPCServer = async () => {
147
- const jaysonServer = new jayson_1.default.server();
148
- jaysonServer.method("appendEntries", async (args, callback) => {
149
- // Just received a message - reset my electionTimeout
150
- this.#ResetElectionTimeout();
151
- // Do something with this new log entry
152
- // Needs to check if current, otherwise get old entries and duplicate
153
- });
154
- jaysonServer.method("vote", async (args, callback) => {
155
- // Just received a message - reset my electionTimeout
156
- this.#ResetElectionTimeout();
157
- const term = args[0];
158
- const lastLogItemTerm = args[1];
159
- const lastLogItemIndex = args[2];
160
- // Now determine whether this requestror gets my vote
161
- // Check already voted
162
- if (this.#votedLog[term]) {
163
- this.#VoteNo(callback, term, `${this.#GetLogPrefix()}: Already voted - vote NO`);
164
- return;
165
- }
166
- // Check if the request to vote is newer than my current term
167
- const retVal = this.#CheckMoreRecentTerm(term, lastLogItemTerm, lastLogItemIndex);
168
- if (retVal.retVal === true) {
169
- this.#VoteYes(callback, term, retVal.msg);
170
- }
171
- else {
172
- this.#VoteNo(callback, term, retVal.msg);
173
- }
174
- });
175
- jaysonServer.method("appendEntry", async (args, callback) => {
176
- // Just received a message - reset my electionTimeout
177
- this.#ResetElectionTimeout();
178
- const host = args[0];
179
- const port = args[1];
180
- const term = args[2];
181
- const lastLogItemTerm = args[3];
182
- const lastLogItemIndex = args[4];
183
- if (this.#RAFTState.localeCompare(AppMasterRAFTState.CANDIDATE) === 0) {
184
- const retVal = this.#CheckMoreRecentTerm(term, lastLogItemTerm, lastLogItemIndex);
185
- if (retVal.retVal === true) {
186
- this.#LogInfoMessage(`${retVal.msg}`);
187
- this.#LogInfoMessage(chalk_1.default.magenta(`${this.#GetLogPrefix()}: New leader detected, Host: [${host}], Port: [${port}], while in CANDIDATE mode, reverting to FOLLOWER.`));
188
- // This sending node is the leader so revert to follower
189
- this.#currentTerm = term;
190
- this.#ChangeState(AppMasterRAFTState.FOLLOWER);
191
- }
192
- else {
193
- this.#LogInfoMessage(`${retVal.msg}`);
194
- this.#LogInfoMessage(chalk_1.default.magenta(`${this.#GetLogPrefix()}: appendEntry called but log is older than my current state, Host: [${host}], Port: [${port}].`));
195
- // Reject this RPC and continue in the CANDIDATE state
196
- callback(null, false);
197
- return;
198
- }
199
- }
200
- else if (this.#RAFTState.localeCompare(AppMasterRAFTState.LEADER) === 0) {
201
- this.#LogInfoMessage(chalk_1.default.red(`${this.#GetLogPrefix()}: appendEntry called while I am the current leader, rejecting RPC call.`));
202
- // Reject this RPC and continue in the LEADER state
203
- callback(null, false);
204
- return;
205
- }
206
- else {
207
- // FOLLOWER or IDLE
208
- if (this.#RAFTState.localeCompare(AppMasterRAFTState.IDLE) === 0) {
209
- this.#ChangeState(AppMasterRAFTState.FOLLOWER);
210
- }
211
- const retVal = this.#CheckMoreRecentTerm(term, lastLogItemTerm, lastLogItemIndex);
212
- if (retVal.retVal === true) {
213
- if (term > this.#currentTerm) {
214
- this.#LogInfoMessage(chalk_1.default.cyan(`${retVal.msg}`));
215
- this.#currentTerm = term;
216
- }
217
- }
218
- else {
219
- this.#LogInfoMessage(`${retVal.msg}`);
220
- this.#LogInfoMessage(chalk_1.default.magenta(`${this.#GetLogPrefix()}: appendEntry called but log is older than my current state, Host: [${host}], Port: [${port}].`));
221
- // Reject this RPC and continue in the CANDIDATE state
222
- callback(null, false);
223
- return;
224
- }
225
- }
226
- if (this.#leaderNode) {
227
- const sentLeaderService = this.#FindService(host, port);
228
- if (sentLeaderService) {
229
- if (sentLeaderService.host.localeCompare(this.#leaderNode.host) !== 0 || sentLeaderService.port !== this.#leaderNode.port) {
230
- this.#leaderNode = sentLeaderService;
231
- this.#LogInfoMessage(chalk_1.default.white(`${this.#GetLogPrefix()}: Leader Service: Host:[${this.#leaderNode.host}] Port: [${this.#leaderNode.port}]`));
232
- }
233
- }
234
- }
235
- else {
236
- this.#leaderNode = this.#FindService(host, port);
237
- if (this.#leaderNode) {
238
- this.#LogInfoMessage(chalk_1.default.white(`${this.#GetLogPrefix()}: Leader Service: Host:[${this.#leaderNode.host}] Port: [${this.#leaderNode.port}]`));
239
- }
240
- }
241
- // Now update the log if only more recent
242
- callback(null, true);
243
- });
244
- jaysonServer.method("ping", async (args, callback) => {
245
- // do something, do nothing
246
- this.#LogInfoMessage('server got ping');
247
- callback();
248
- });
249
- const server = jaysonServer.tls(this.#GetTLSOptions());
250
- //(server as tls.Server).on('secureConnection', this.#SetupRPCServer);
251
- //server.listen(this.options.listenPort, () => { // 'stscore.stsmda.org'
252
- server.listen(this.#serverPort, () => {
253
- this.#LogInfoMessage('JSON RPC 2.0 Server is running on port ' + this.options.listenPort + '.');
254
- }).on('listening', () => {
255
- this.LogInfoMessage(`JSON RPC 2.0 live on ${this.options.endpoint}:${this.options.listenPort}${this.options.apiRoot}`);
256
- });
257
- return server;
258
- };
259
- #RequestVote = (service) => {
260
- const options = {
261
- port: service.port,
262
- host: service.host
263
- };
264
- const client = jayson_1.default.client.tls(options);
265
- let lastLogItem;
266
- if (this.#log.length > 0) {
267
- lastLogItem = this.#log[this.#log.length - 1];
268
- }
269
- else {
270
- lastLogItem = {
271
- term: 0,
272
- index: 0,
273
- data: null
274
- };
275
- }
276
- client.request('vote', [this.#currentTerm, lastLogItem.term, lastLogItem.index], (error, response) => {
277
- if (error) {
278
- //this.#LogInfoMessage(chalk.red(`vote attempt fail: [${JSON.stringify(options)}: ${error}]`));
279
- }
280
- else {
281
- // Log the result
282
- if (response.result === true) {
283
- this.#votes[this.#GetServiceKey(service)] = 1;
284
- }
285
- this.#CheckMajority();
286
- }
287
- });
288
- };
289
- #AppendEntry = (service) => {
290
- const options = {
291
- port: service.port,
292
- host: service.host
293
- };
294
- const client = jayson_1.default.client.tls(options);
295
- let lastLogItem;
296
- if (this.#log.length > 0) {
297
- lastLogItem = this.#log[this.#log.length - 1];
298
- }
299
- else {
300
- lastLogItem = {
301
- term: 0,
302
- index: 0,
303
- data: null
304
- };
305
- }
306
- client.request('appendEntry', [this.#thisService.host, this.#thisService.port, this.#currentTerm, lastLogItem.term, lastLogItem.index], (error, response) => {
307
- if (error) {
308
- //this.#LogInfoMessage(chalk.red(`appendEntry attempt fail: [${JSON.stringify(options)}: ${error}]`));
309
- }
310
- else {
311
- this.#appendedEntries[this.#GetServiceKey(service)] = 1;
312
- // Log the result
313
- /*
314
- if (response.result === true) {
315
- this.#votes[this.#GetServiceKey(service)] = 1;
316
- }
317
- */
318
- }
319
- });
320
- };
321
- #AppendEntries = () => {
322
- // Reset all appendEntries for this iteration
323
- this.#appendedEntries = {};
324
- // Reset all votes
325
- this.#services.forEach((service, index) => {
326
- this.#appendedEntries[this.#GetServiceKey(service)] = 0;
327
- });
328
- // Request vote for all other services - include my logs current item
329
- this.#services.forEach((service, index) => {
330
- if (service.host.localeCompare(this.#thisService.host) === 0 && service.port === this.#thisService.port) {
331
- // Myself
332
- this.#ResetElectionTimeout();
333
- this.#appendedEntries[this.#GetSelfServiceKey()] = 1;
334
- }
335
- else {
336
- // Send vote request
337
- this.#AppendEntry(service);
338
- }
339
- });
340
- };
341
- #GetServiceKey = (service) => {
342
- return `${service.host}:${service.port}`;
343
- };
344
- #GetSelfServiceKey = () => {
345
- return this.#GetServiceKey(this.#thisService);
346
- };
347
- // set interval ???
348
- #StartAppendEntries = () => {
349
- this.#AppendEntries();
350
- setTimeout(() => {
351
- // Now check if we still have majority
352
- const majority = this.#CheckMajorityWithCollection(this.#appendedEntries);
353
- if (majority) {
354
- this.#StartAppendEntries();
355
- }
356
- else {
357
- this.#LogInfoMessage(chalk_1.default.red(`${this.#GetLogPrefix()}: Not enough response for valid cluster state.`));
358
- }
359
- }, this.#heartBeatTimeout).unref();
360
- };
361
- #Promote = () => {
362
- this.#ChangeState(AppMasterRAFTState.LEADER);
363
- this.#LogInfoMessage(chalk_1.default.green(`${this.#GetLogPrefix()}: New LEADER is elected: [${this.#GetSelfServiceKey()}]`));
364
- // As leader, now start the regular pings
365
- this.#StartAppendEntries();
366
- };
367
- #CheckMajority = () => {
368
- if (this.#CheckMajorityWithCollection(this.#votes)) {
369
- this.#Promote();
370
- }
371
- };
372
- #CheckMajorityWithCollection = (col) => {
373
- let votes = 0;
374
- for (const [key, val] of Object.entries(col)) {
375
- votes += val;
376
- }
377
- const requiredVotes = Math.floor(this.#services.length / 2) + 1;
378
- if (requiredVotes !== this.#lastRequiredVotes || votes !== this.#lastVotes) {
379
- this.#LogInfoMessage(chalk_1.default.cyan(`${this.#GetLogPrefix()}votes: [${votes} need: [${requiredVotes}]`));
380
- this.#lastRequiredVotes = requiredVotes;
381
- this.#lastVotes = votes;
382
- }
383
- return votes >= requiredVotes;
384
- };
385
- #StartCanidateVote = () => {
386
- // Get the election timeout going again
387
- this.#StartElectionTimeout();
388
- this.#LogInfoMessage(chalk_1.default.yellow(`${this.#GetLogPrefix()}: Start CANDIDATE vote`));
389
- // Start in the CANDIDATE state
390
- this.#ChangeState(AppMasterRAFTState.CANDIDATE);
391
- // Reset votes
392
- this.#votes = {};
393
- // Reset all votes from all service instances
394
- this.#services.forEach((service, index) => {
395
- this.#votes[this.#GetServiceKey(service)] = 0;
396
- });
397
- // Start a new term
398
- this.#currentTerm++;
399
- // Request vote for all other services - include my logs current item
400
- this.#services.forEach((service, index) => {
401
- if (service.host.localeCompare(this.#thisService.host) === 0 && service.port === this.#thisService.port) {
402
- // Log the fact that I have now voted for this term
403
- this.#votedLog[this.#currentTerm] = true;
404
- // Log the result - Vote for myself
405
- this.#votes[this.#GetSelfServiceKey()] = 1;
406
- // Return my yes vote
407
- this.#LogInfoMessage(chalk_1.default.green(`${this.#GetLogPrefix()}: SELF VOTE: canidate currentTerm: [${this.#currentTerm}], vote YES`));
408
- this.#CheckMajority();
409
- }
410
- else {
411
- // Send vote request
412
- this.#RequestVote(service);
413
- }
414
- });
415
- };
416
- #ResetElectionTimeout = () => {
417
- if (this.#canidateTimeout) {
418
- clearTimeout(this.#canidateTimeout);
419
- }
420
- this.#StartElectionTimeout();
421
- };
422
- #StartElectionTimeout = () => {
423
- if (this.#canidateTimeout) {
424
- clearTimeout(this.#canidateTimeout);
425
- }
426
- this.#canidateTimeout = setTimeout(() => {
427
- this.#StartCanidateVote();
428
- }, this.#electionTimeout).unref();
429
- };
430
- #StartRAFTService = async () => {
431
- this.LogInfoMessage(chalk_1.default.green(`---[ RAFT Protocol Starting ]---`));
432
- await this.#SetupJSONRPCServer();
433
- this.#StartElectionTimeout();
434
- };
435
- #ChangeState(newState) {
436
- this.LogInfoMessage(chalk_1.default.magenta(`${this.#GetLogPrefix()}: State Change, From: [${this.#RAFTState.toString()}] --> To: [${newState.toString()}]`));
437
- this.#RAFTState = newState;
438
- }
439
- MasterStarted() {
440
- setTimeout(() => {
441
- this.#StartRAFTService();
442
- }, this.#startRAFTProtocolTimeout).unref();
443
- }
444
- }
445
- exports.AppMaster = AppMaster;
446
- //# sourceMappingURL=appmaster.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"appmaster.js","sourceRoot":"","sources":["../../src/tcpserver/appmaster.ts"],"names":[],"mappings":";;;;;;AAAA,wFAAwF,CAAE,UAAU;AACpG,4CAAmB;AACnB,oDAA4B;AAC5B,oDAA2B;AAK3B,8DAA0D;AAG1D,kDAA0B;AAE1B,eAAe;AACf,oCAAoC;AACpC,cAAc;AACd,mBAAmB;AACnB,mBAAmB;AACnB,mCAAmC;AACnC,8BAA8B;AAC9B,0BAA0B;AAE1B,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,mCAAa,CAAA;IACb,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;IACvB,uCAAiB,CAAA;AACrB,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B;AAaD,MAAa,SAAU,SAAQ,qCAAiB;IAE5C,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB;IACjD,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB;IACzC,UAAU,CAAqB;IAC/B,mBAAmB,CAAS;IAC5B,mBAAmB,CAAS;IAC5B,gBAAgB,CAAS;IACzB,iBAAiB,CAAS;IAC1B,yBAAyB,CAAS;IAClC,MAAM,CAAa,CAAC,mCAAmC;IACvD,SAAS,CAAmB;IAC5B,YAAY,CAAiB;IAC7B,gBAAgB,GAA0B,IAAI,CAAC;IAC/C,WAAW,CAAS;IACpB,SAAS,GAAe,EAAG,CAAC,CAAC,uBAAuB;IACpD,gBAAgB,GAAe,EAAG,CAAC;IACnC,WAAW,GAA0B,IAAI,CAAC;IAE1C,YAAY,CAAS;IACrB,IAAI,CAAa;IACjB,aAAa,GAAG,CAAC,CAAC;IAElB,YAAY,aAA6B;QAErC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,EAAG,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,CAAC;gBACd,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,IAAI;aACb,EAAE;gBACC,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,IAAI;aACb,EAAE;gBACC,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,IAAI;aACb,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,mBAAmB;QACtG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAE1C,4DAA4D;QAC5D,IAAI,CAAC,IAAI,GAAG,EAAG,CAAC,CAAC,iDAAiD;QAElE,2BAA2B;QAC3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,WAAW;QAC5C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,WAAW;QAC5C,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC,WAAW;QAClD,IAAI,CAAC,gBAAgB,GAAG,gBAAM,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC7F,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,uDAAuD;IACzF,CAAC;IAED,eAAe,CAAC,OAAY;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,cAAc,GAAG,GAAe,EAAE;QAC9B,OAAO;YACH,GAAG,EAAE,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YACrD,IAAI,EAAE,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC;SACjE,CAAC;IACN,CAAC,CAAA;IAED,aAAa,GAAG,GAAG,EAAE;QACjB,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,mBAAmB,IAAI,CAAC,YAAY,aAAa,IAAI,CAAC,aAAa,KAAK,CAAC;IACvI,CAAC,CAAA;IAED,QAAQ,GAAG,CAAC,QAAa,EAAE,IAAY,EAAE,OAAe,EAAE,EAAE;QACxD,0DAA0D;QAC1D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC5B,wBAAwB;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,qBAAqB;QACrB,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,OAAO,aAAa,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW;IACrC,CAAC,CAAA;IAED,OAAO,GAAG,CAAC,QAAa,EAAE,IAAY,EAAE,OAAe,EAAE,EAAE;QACvD,0DAA0D;QAC1D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC5B,qBAAqB;QACrB,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,OAAO,YAAY,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU;IACrC,CAAC,CAAA;IAED,YAAY,GAAG,CAAC,IAAY,EAAE,IAAY,EAAyB,EAAE;QACjE,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClE,UAAU,GAAG,OAAO,CAAC;gBACrB,OAAO;YACX,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACtB,CAAC,CAAA;IAED,oBAAoB,GAAG,CAAC,IAAY,EAAE,eAAuB,EAAE,gBAAwB,EAAE,EAAE;QACvF,6DAA6D;QAC7D,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,MAAe,CAAC;QACpB,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAE3B,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,qBAAqB,IAAI,mCAAmC,IAAI,CAAC,YAAY,GAAG,CAAC;YAC9G,MAAM,GAAG,IAAI,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,6DAA6D;YAC7D,IAAI,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7B,IAAI,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxC,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,qBAAqB,IAAI,kCAAkC,IAAI,CAAC,YAAY,uBAAuB,gBAAgB,6BAA6B,IAAI,CAAC,aAAa,GAAG,CAAC;oBACnM,MAAM,GAAG,IAAI,CAAC;gBAClB,CAAC;qBAAM,IAAI,gBAAgB,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjD,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,qBAAqB,IAAI,kCAAkC,IAAI,CAAC,YAAY,uBAAuB,gBAAgB,4BAA4B,IAAI,CAAC,aAAa,GAAG,CAAC;oBAClM,MAAM,GAAG,IAAI,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACJ,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,qBAAqB,IAAI,kCAAkC,IAAI,CAAC,YAAY,uBAAuB,gBAAgB,iCAAiC,IAAI,CAAC,aAAa,GAAG,CAAC;oBACvM,MAAM,GAAG,KAAK,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,qBAAqB,IAAI,gCAAgC,IAAI,CAAC,YAAY,GAAG,CAAC;gBAC3G,MAAM,GAAG,KAAK,CAAC;YACnB,CAAC;QACL,CAAC;QACD,OAAO;YACH,GAAG;YACH,MAAM;SACT,CAAA;IACL,CAAC,CAAA;IAED,mBAAmB,GAAG,KAAK,IAA+B,EAAE;QACxD,MAAM,YAAY,GAAG,IAAI,gBAAM,CAAC,MAAM,EAAE,CAAC;QAEzC,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,EAAE,IAAS,EAAE,QAAa,EAAE,EAAE;YACpE,qDAAqD;YACrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAE7B,uCAAuC;YAEvC,qEAAqE;QAEzE,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAS,EAAE,QAAa,EAAE,EAAE;YAC3D,qDAAqD;YACrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEjC,qDAAqD;YAErD,sBAAsB;YACtB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAA;gBAChF,OAAO;YACX,CAAC;YAED,6DAA6D;YAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;YAClF,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,IAAS,EAAE,QAAa,EAAE,EAAE;YAClE,qDAAqD;YACrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEjC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;gBAClF,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACzB,IAAI,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,iCAAiC,IAAI,aAAa,IAAI,oDAAoD,CAAC,CAAC,CAAC;oBACvK,wDAAwD;oBACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACnD,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,uEAAuE,IAAI,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC7J,sDAAsD;oBACtD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACtB,OAAO;gBACX,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxE,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,yEAAyE,CAAC,CAAC,CAAC;gBAClI,mDAAmD;gBACnD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtB,OAAO;YACX,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/D,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;gBAClF,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACzB,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;wBAC3B,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;wBAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC7B,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,uEAAuE,IAAI,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC7J,sDAAsD;oBACtD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACtB,OAAO;gBACX,CAAC;YACL,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,iBAAiB,EAAE,CAAC;oBACpB,IAAI,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;wBACxH,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;wBACrC,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,2BAA2B,IAAI,CAAC,WAAW,CAAC,IAAI,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;oBACnJ,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,2BAA2B,IAAI,CAAC,WAAW,CAAC,IAAI,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBACnJ,CAAC;YACL,CAAC;YAED,yCAAyC;YACzC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAS,EAAE,QAAa,EAAE,EAAE;YAC3D,2BAA2B;YAC3B,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YACxC,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACvD,sEAAsE;QACtE,wEAAwE;QACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YACjC,IAAI,CAAC,eAAe,CAAC,yCAAyC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAEpB,IAAI,CAAC,cAAc,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3H,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC,CAAA;IAED,YAAY,GAAG,CAAC,OAAuB,EAAE,EAAE;QACvC,MAAM,OAAO,GAA4B;YACrC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;QAEF,MAAM,MAAM,GAAG,gBAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,WAAqB,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,WAAW,GAAG;gBACV,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,IAAI;aACb,CAAA;QACL,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAE,EAAE,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE;YAC7G,IAAI,KAAK,EAAE,CAAC;gBACR,+FAA+F;YACnG,CAAC;iBAAM,CAAC;gBACJ,iBAAiB;gBACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClD,CAAC;gBACD,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAA;IAED,YAAY,GAAG,CAAC,OAAuB,EAAE,EAAE;QACvC,MAAM,OAAO,GAA4B;YACrC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;QAEF,MAAM,MAAM,GAAG,gBAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,WAAqB,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,WAAW,GAAG;gBACV,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,IAAI;aACb,CAAA;QACL,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAE,EAAE,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE;YACpK,IAAI,KAAK,EAAE,CAAC;gBACR,sGAAsG;YAC1G,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;gBACxD,iBAAiB;gBACjB;;;;kBAIE;YACN,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAA;IAED,cAAc,GAAG,GAAG,EAAE;QAClB,6CAA6C;QAC7C,IAAI,CAAC,gBAAgB,GAAG,EAAG,CAAC;QAE5B,kBAAkB;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,qEAAqE;QACrE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACtG,SAAS;gBACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACJ,oBAAoB;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAA;IAED,cAAc,GAAG,CAAC,OAAuB,EAAE,EAAE;QACzC,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC,CAAA;IAED,kBAAkB,GAAG,GAAG,EAAE;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC,CAAA;IAED,mBAAmB;IACnB,mBAAmB,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,UAAU,CAAC,GAAG,EAAE;YACZ,sCAAsC;YACtC,MAAM,QAAQ,GAAY,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACnF,IAAI,QAAQ,EAAE,CAAC;gBACX,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,gDAAgD,CAAC,CAAC,CAAC;YAC7G,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC,CAAA;IAED,QAAQ,GAAG,GAAG,EAAE;QACZ,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,6BAA6B,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC;QACpH,yCAAyC;QACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC,CAAA;IAED,cAAc,GAAG,GAAG,EAAE;QAClB,IAAI,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;IACL,CAAC,CAAA;IAED,4BAA4B,GAAG,CAAC,GAAe,EAAW,EAAE;QACxD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,KAAK,IAAI,GAAG,CAAC;QACjB,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAEhE,IAAI,aAAa,KAAK,IAAI,CAAC,kBAAkB,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACzE,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,KAAK,WAAW,aAAa,GAAG,CAAC,CAAC,CAAC;YACrG,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,OAAO,KAAK,IAAI,aAAa,CAAC;IAClC,CAAC,CAAA;IAED,kBAAkB,GAAG,GAAG,EAAE;QAEtB,uCAAuC;QACvC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC,CAAC;QACpF,+BAA+B;QAC/B,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAChD,cAAc;QACd,IAAI,CAAC,MAAM,GAAG,EAAG,CAAC;QAElB,6CAA6C;QAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,qEAAqE;QACrE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACtG,mDAAmD;gBACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;gBACzC,mCAAmC;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC3C,qBAAqB;gBACrB,IAAI,CAAC,eAAe,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,uCAAuC,IAAI,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC;gBAChI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,oBAAoB;gBACpB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAA;IAED,qBAAqB,GAAG,GAAG,EAAE;QACzB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC,CAAA;IAED,qBAAqB,GAAG,GAAG,EAAE;QACzB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC,CAAA;IAED,iBAAiB,GAAG,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC,cAAc,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC,CAAA;IAED,YAAY,CAAC,QAA4B;QACrC,IAAI,CAAC,cAAc,CAAC,eAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,0BAA0B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,cAAc,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACpJ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAED,aAAa;QACT,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/C,CAAC;CACJ;AA9cD,8BA8cC"}