@burgan-tech/morph-touch-runtime 0.0.2

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 (244) hide show
  1. package/LICENSE +21 -0
  2. package/burgan-tech-morph-touch-runtime-0.0.2.tgz +0 -0
  3. package/package.json +21 -0
  4. package/touch/Extensions/.gitkeep +0 -0
  5. package/touch/Functions/.gitkeep +0 -0
  6. package/touch/Functions/check-livekit-room-access.1.0.0.json +28 -0
  7. package/touch/Functions/check-livekit-room-access.http +44 -0
  8. package/touch/Functions/get-absence-entry.1.0.0.json +28 -0
  9. package/touch/Functions/get-advisor-stats.1.0.0.json +27 -0
  10. package/touch/Functions/get-available-slots.1.0.0.json +30 -0
  11. package/touch/Functions/get-available-slots.http +29 -0
  12. package/touch/Functions/get-chat-rooms.1.0.0.json +28 -0
  13. package/touch/Functions/get-chat-rooms.http +62 -0
  14. package/touch/Functions/get-customer-info.1.0.0.json +27 -0
  15. package/touch/Functions/get-matrix-sync.1.0.0.json +28 -0
  16. package/touch/Functions/get-rezervations.1.0.0.json +26 -0
  17. package/touch/Functions/get-rezervations.http +59 -0
  18. package/touch/Functions/get-room-messages.1.0.0.json +29 -0
  19. package/touch/Functions/get-room-messages.http +45 -0
  20. package/touch/Functions/rezervation-transfer.http +118 -0
  21. package/touch/Functions/send-room-message.1.0.0.json +29 -0
  22. package/touch/Functions/src/CheckLivekitRoomAccessMapping.csx +238 -0
  23. package/touch/Functions/src/GetAbsenceEntryMapping.csx +225 -0
  24. package/touch/Functions/src/GetAdvisorStatsMapping.csx +190 -0
  25. package/touch/Functions/src/GetAvailableSlotsMapping.csx +468 -0
  26. package/touch/Functions/src/GetChatRoomsMapping.csx +202 -0
  27. package/touch/Functions/src/GetCustomerInfoMapping.csx +140 -0
  28. package/touch/Functions/src/GetMatrixSyncMapping.csx +197 -0
  29. package/touch/Functions/src/GetRezervationsMapping.csx +162 -0
  30. package/touch/Functions/src/GetRoomMessagesMapping.csx +165 -0
  31. package/touch/Functions/src/SendCancelNotificationMapping.csx +63 -0
  32. package/touch/Functions/src/SendRoomMessageMapping.csx +131 -0
  33. package/touch/Schemas/.gitkeep +0 -0
  34. package/touch/Schemas/absence-entry.1.0.0.json +232 -0
  35. package/touch/Schemas/advisor-chat-rooms.1.0.0.json +62 -0
  36. package/touch/Schemas/chat-room.1.0.0.json +110 -0
  37. package/touch/Schemas/notification-sender.1.0.0.json +159 -0
  38. package/touch/Schemas/portfolio-manager.1.0.0.json +63 -0
  39. package/touch/Schemas/rezervation.1.0.0.json +102 -0
  40. package/touch/Tasks/.gitkeep +0 -0
  41. package/touch/Tasks/cancel-absence-entry-for-rezervation.1.0.0.json +21 -0
  42. package/touch/Tasks/check-already-completed-chat-room.1.0.0.json +24 -0
  43. package/touch/Tasks/check-duplicate-portfolio-manager.1.0.0.json +23 -0
  44. package/touch/Tasks/check-duplicate-rezervation.1.0.0.json +23 -0
  45. package/touch/Tasks/check-existing-permanent-chat-room.1.0.0.json +21 -0
  46. package/touch/Tasks/check-randevu-time.1.0.0.json +17 -0
  47. package/touch/Tasks/create-permanent-chat-room.1.0.0.json +28 -0
  48. package/touch/Tasks/determine-transfer-type.1.0.0.json +16 -0
  49. package/touch/Tasks/enrich-rezervations-for-transfer.1.0.0.json +23 -0
  50. package/touch/Tasks/execute-permanent-chatroom-update.1.0.0.json +21 -0
  51. package/touch/Tasks/execute-rez-chatroom-transfer.1.0.0.json +21 -0
  52. package/touch/Tasks/execute-rezervation-transfer.1.0.0.json +19 -0
  53. package/touch/Tasks/fetch-absence-entries-for-transfer.1.0.0.json +23 -0
  54. package/touch/Tasks/fetch-advisors-for-transfer.1.0.0.json +23 -0
  55. package/touch/Tasks/fetch-permanent-chatrooms-for-transfer.1.0.0.json +23 -0
  56. package/touch/Tasks/fetch-rez-chatrooms-for-transfer.1.0.0.json +23 -0
  57. package/touch/Tasks/fetch-rezervations-for-transfer.1.0.0.json +22 -0
  58. package/touch/Tasks/get-absence-entry-task.1.0.0.json +23 -0
  59. package/touch/Tasks/get-available-slots-http.1.0.0.json +27 -0
  60. package/touch/Tasks/get-available-slots.1.0.0.json +24 -0
  61. package/touch/Tasks/get-chat-room-data-for-rezervation.1.0.0.json +23 -0
  62. package/touch/Tasks/get-chat-token.1.0.0.json +27 -0
  63. package/touch/Tasks/get-matrix-room-messages.1.0.0.json +25 -0
  64. package/touch/Tasks/get-matrix-sync.1.0.0.json +25 -0
  65. package/touch/Tasks/get-rezervation-data-task.1.0.0.json +22 -0
  66. package/touch/Tasks/get-rezervation-state-task.1.0.0.json +22 -0
  67. package/touch/Tasks/get-rezervations-task.1.0.0.json +21 -0
  68. package/touch/Tasks/get-user-info-for-rezervation.1.0.0.json +24 -0
  69. package/touch/Tasks/get-video-call-url.1.0.0.json +17 -0
  70. package/touch/Tasks/invite-user-to-rezervation-room.1.0.0.json +27 -0
  71. package/touch/Tasks/join-chat-room-for-rezervation.1.0.0.json +28 -0
  72. package/touch/Tasks/join-matrix-room.1.0.0.json +27 -0
  73. package/touch/Tasks/join-user-to-room.1.0.0.json +27 -0
  74. package/touch/Tasks/merge-invited-user.1.0.0.json +17 -0
  75. package/touch/Tasks/merge-rezervation-update.1.0.0.json +16 -0
  76. package/touch/Tasks/merge-target-advisor-for-transfer.1.0.0.json +17 -0
  77. package/touch/Tasks/merge-update-body-for-randevu-update.1.0.0.json +16 -0
  78. package/touch/Tasks/merge-video-call-urls.1.0.0.json +17 -0
  79. package/touch/Tasks/query-chat-room-instances.1.0.0.json +23 -0
  80. package/touch/Tasks/remove-member-from-room.1.0.0.json +28 -0
  81. package/touch/Tasks/send-matrix-room-message.1.0.0.json +26 -0
  82. package/touch/Tasks/send-push-notification.1.0.0.json +26 -0
  83. package/touch/Tasks/send-sms-notification.1.0.0.json +26 -0
  84. package/touch/Tasks/set-chat-room-status-active.1.0.0.json +16 -0
  85. package/touch/Tasks/set-chat-room-status-deactive.1.0.0.json +16 -0
  86. package/touch/Tasks/set-previous-advisor.1.0.0.json +16 -0
  87. package/touch/Tasks/set-user-from-headers-for-rezervation.1.0.0.json +17 -0
  88. package/touch/Tasks/start-absence-entry-for-rezervation.1.0.0.json +21 -0
  89. package/touch/Tasks/start-chat-room-for-rezervation.1.0.0.json +20 -0
  90. package/touch/Tasks/start-notification-sender.1.0.0.json +20 -0
  91. package/touch/Tasks/start-permanent-chat-room.1.0.0.json +21 -0
  92. package/touch/Tasks/start-transfer-from-absence-entry.1.0.0.json +19 -0
  93. package/touch/Tasks/start-video-call.1.0.0.json +22 -0
  94. package/touch/Tasks/trigger-chat-room-deactivate.1.0.0.json +21 -0
  95. package/touch/Tasks/trigger-chat-room-transfer.1.0.0.json +21 -0
  96. package/touch/Tasks/trigger-chat-room-update.1.0.0.json +20 -0
  97. package/touch/Tasks/trigger-rezervation-add-invited-participant.1.0.0.json +20 -0
  98. package/touch/Tasks/trigger-rezervation-apply-update.1.0.0.json +20 -0
  99. package/touch/Tasks/trigger-rezervation-to-in-meet.1.0.0.json +20 -0
  100. package/touch/Tasks/trigger-rezervation-video-call-update.1.0.0.json +21 -0
  101. package/touch/Tasks/validate-date-for-rezervation.1.0.0.json +18 -0
  102. package/touch/Tasks/validate-slot-for-rezervation.1.0.0.json +24 -0
  103. package/touch/Tasks/validate-transfer-availability.1.0.0.json +23 -0
  104. package/touch/Views/.gitkeep +0 -0
  105. package/touch/Workflows/.gitkeep +0 -0
  106. package/touch/Workflows/absence-entry.http +458 -0
  107. package/touch/Workflows/absence-entry.json +179 -0
  108. package/touch/Workflows/add-participant-to-rezervation.http +47 -0
  109. package/touch/Workflows/add-participant-to-rezervation.json +340 -0
  110. package/touch/Workflows/chat-room.http +207 -0
  111. package/touch/Workflows/chat-room.json +452 -0
  112. package/touch/Workflows/investment-advisor.json +367 -0
  113. package/touch/Workflows/notification-sender.http +299 -0
  114. package/touch/Workflows/notification-sender.json +262 -0
  115. package/touch/Workflows/portfolio-manager.json +367 -0
  116. package/touch/Workflows/randevu-update.http +87 -0
  117. package/touch/Workflows/rezervation-start.json +467 -0
  118. package/touch/Workflows/rezervation-transfer.json +512 -0
  119. package/touch/Workflows/rezervation-update.http +87 -0
  120. package/touch/Workflows/rezervation-update.json +485 -0
  121. package/touch/Workflows/rezervation.http +214 -0
  122. package/touch/Workflows/rezervation.json +726 -0
  123. package/touch/Workflows/src/AllChatRoomsSuccessRule.csx +65 -0
  124. package/touch/Workflows/src/AlwaysTrueRule.csx +13 -0
  125. package/touch/Workflows/src/AnyChatRoomFailedRule.csx +64 -0
  126. package/touch/Workflows/src/AutoProcessRule.csx +38 -0
  127. package/touch/Workflows/src/BuildRezChatRoomPlanMapping.csx +160 -0
  128. package/touch/Workflows/src/CanStartRezervationTimerMapping.csx +48 -0
  129. package/touch/Workflows/src/CanStartTransferMapping.csx +14 -0
  130. package/touch/Workflows/src/CancelAbsenceEntryForRezervationMapping.csx +48 -0
  131. package/touch/Workflows/src/CancelAbsenceForRandevuUpdateMapping.csx +62 -0
  132. package/touch/Workflows/src/ChatRoomCreatedFailedRule.csx +54 -0
  133. package/touch/Workflows/src/ChatRoomCreatedSuccessRule.csx +54 -0
  134. package/touch/Workflows/src/ChatRoomRemoveMapping.csx +104 -0
  135. package/touch/Workflows/src/ChatRoomTransferInviteMapping.csx +109 -0
  136. package/touch/Workflows/src/ChatRoomTransferRemoveMapping.csx +71 -0
  137. package/touch/Workflows/src/ChatRoomUpdateMapping.csx +107 -0
  138. package/touch/Workflows/src/CheckAlreadyCompletedChatRoomMapping.csx +100 -0
  139. package/touch/Workflows/src/CheckDuplicatePortfolioManagerMapping.csx +119 -0
  140. package/touch/Workflows/src/CheckDuplicateRezervationMapping.csx +150 -0
  141. package/touch/Workflows/src/CheckExistingPermanentChatRoomMapping.csx +169 -0
  142. package/touch/Workflows/src/CheckRandevuTimeMapping.csx +67 -0
  143. package/touch/Workflows/src/CheckRezervationStateActiveOrInMeetRule.csx +14 -0
  144. package/touch/Workflows/src/CreateAbsenceEntryForRezervationMapping.csx +111 -0
  145. package/touch/Workflows/src/CreateAbsenceForRandevuUpdateMapping.csx +108 -0
  146. package/touch/Workflows/src/CreateChatRoomForRezervationMapping.csx +122 -0
  147. package/touch/Workflows/src/CreatePermanentChatRoomMapping.csx +140 -0
  148. package/touch/Workflows/src/CustomerControlToEndRule.csx +14 -0
  149. package/touch/Workflows/src/DetermineTransferTypeMapping.csx +92 -0
  150. package/touch/Workflows/src/EnrichRezervationsForTransferMapping.csx +495 -0
  151. package/touch/Workflows/src/ExecutePermanentChatRoomUpdateMapping.csx +124 -0
  152. package/touch/Workflows/src/ExecuteRezChatRoomTransferMapping.csx +95 -0
  153. package/touch/Workflows/src/ExecuteTransferMapping.csx +152 -0
  154. package/touch/Workflows/src/FetchAbsenceEntriesForTransferMapping.csx +116 -0
  155. package/touch/Workflows/src/FetchAdvisorsForTransferMapping.csx +145 -0
  156. package/touch/Workflows/src/FetchPermanentChatRoomsMapping.csx +128 -0
  157. package/touch/Workflows/src/FetchRezervationsForTransferMapping.csx +124 -0
  158. package/touch/Workflows/src/GetChatRoomDataForRezervationMapping.csx +100 -0
  159. package/touch/Workflows/src/GetChatTokenMapping.csx +85 -0
  160. package/touch/Workflows/src/GetRezervationDataForAddParticipantMapping.csx +105 -0
  161. package/touch/Workflows/src/GetRezervationDataForRandevuUpdateMapping.csx +110 -0
  162. package/touch/Workflows/src/GetRezervationDataMapping.csx +111 -0
  163. package/touch/Workflows/src/GetRezervationStateForRandevuUpdateMapping.csx +80 -0
  164. package/touch/Workflows/src/GetRezervationStateMapping.csx +92 -0
  165. package/touch/Workflows/src/GetUserInfoForRezervationMapping.csx +63 -0
  166. package/touch/Workflows/src/GetVideoCallUrlMapping.csx +62 -0
  167. package/touch/Workflows/src/HasChangedAdvisorRule.csx +28 -0
  168. package/touch/Workflows/src/HasChatIntegrationRule.csx +41 -0
  169. package/touch/Workflows/src/HasExistingPermanentRoomRule.csx +28 -0
  170. package/touch/Workflows/src/InviteAdvisorForRandevuUpdateMapping.csx +86 -0
  171. package/touch/Workflows/src/InviteNewAdvisorToRezervationRoomMapping.csx +78 -0
  172. package/touch/Workflows/src/InviteNewParticipantToRandevuRoomMapping.csx +88 -0
  173. package/touch/Workflows/src/InvitedUserMergeMapping.csx +77 -0
  174. package/touch/Workflows/src/InvitedUserNotAllowedRule.csx +71 -0
  175. package/touch/Workflows/src/InvitedUserNotInMeetRule.csx +19 -0
  176. package/touch/Workflows/src/IsNotfSentRule.csx +36 -0
  177. package/touch/Workflows/src/JoinChatRoomForAddParticipantMapping.csx +118 -0
  178. package/touch/Workflows/src/JoinChatRoomForRandevuStartMapping.csx +119 -0
  179. package/touch/Workflows/src/JoinChatRoomForRezervationMapping.csx +118 -0
  180. package/touch/Workflows/src/JoinMatrixRoomMapping.csx +100 -0
  181. package/touch/Workflows/src/JoinUserToRoomMapping.csx +118 -0
  182. package/touch/Workflows/src/LoginForAddParticipantChatMapping.csx +102 -0
  183. package/touch/Workflows/src/LoginForRandevuStartChatMapping.csx +96 -0
  184. package/touch/Workflows/src/MergeRezervationUpdateMapping.csx +82 -0
  185. package/touch/Workflows/src/MergeTargetAdvisorForTransferMapping.csx +79 -0
  186. package/touch/Workflows/src/MergeUpdateBodyForRandevuUpdateMapping.csx +91 -0
  187. package/touch/Workflows/src/NoExistingPermanentRoomRule.csx +23 -0
  188. package/touch/Workflows/src/NotificationCompleteAlwaysRule.csx +14 -0
  189. package/touch/Workflows/src/NotificationCompleteFromPendingRule.csx +41 -0
  190. package/touch/Workflows/src/NotificationCompleteFromSmsRule.csx +36 -0
  191. package/touch/Workflows/src/NotificationPushFromPendingRule.csx +42 -0
  192. package/touch/Workflows/src/NotificationPushFromSmsRule.csx +36 -0
  193. package/touch/Workflows/src/NotificationSmsPendingRule.csx +32 -0
  194. package/touch/Workflows/src/PermanentDoneRule.csx +44 -0
  195. package/touch/Workflows/src/PermanentProcessNextRule.csx +44 -0
  196. package/touch/Workflows/src/RezChatRoomProcessNextRule.csx +44 -0
  197. package/touch/Workflows/src/RezChatRoomsDoneRule.csx +44 -0
  198. package/touch/Workflows/src/SendPushNotificationMapping.csx +146 -0
  199. package/touch/Workflows/src/SendSmsNotificationMapping.csx +138 -0
  200. package/touch/Workflows/src/SetChatRoomStatusActiveMapping.csx +22 -0
  201. package/touch/Workflows/src/SetChatRoomStatusDeactiveMapping.csx +22 -0
  202. package/touch/Workflows/src/SetPreviousAdvisorMapping.csx +28 -0
  203. package/touch/Workflows/src/SetUserFromHeadersForRezervationMapping.csx +24 -0
  204. package/touch/Workflows/src/SlotAvailableRule.csx +33 -0
  205. package/touch/Workflows/src/SlotUnavailableRule.csx +33 -0
  206. package/touch/Workflows/src/StartChatRoomForRezervationMapping.csx +100 -0
  207. package/touch/Workflows/src/StartGetChatTokenForRezervationMapping.csx +71 -0
  208. package/touch/Workflows/src/StartNotificationForAdvisorMapping.csx +117 -0
  209. package/touch/Workflows/src/StartNotificationForRezervationFromUserInfoMapping.csx +128 -0
  210. package/touch/Workflows/src/StartNotificationForUserMapping.csx +117 -0
  211. package/touch/Workflows/src/StartPermanentChatRoomMapping.csx +92 -0
  212. package/touch/Workflows/src/StartTransferFromAbsenceEntryMapping.csx +94 -0
  213. package/touch/Workflows/src/StartVideoCallCustomerSubFlowMapping.csx +37 -0
  214. package/touch/Workflows/src/StartVideoCallForInvitedParticipantMapping.csx +54 -0
  215. package/touch/Workflows/src/StartVideoCallForRandevuStartMapping.csx +70 -0
  216. package/touch/Workflows/src/StartVideoCallStaffSubFlowMapping.csx +37 -0
  217. package/touch/Workflows/src/StateActiveForUpdateRule.csx +14 -0
  218. package/touch/Workflows/src/StateActiveRule.csx +14 -0
  219. package/touch/Workflows/src/StateInMeetRule.csx +14 -0
  220. package/touch/Workflows/src/StateNotActiveForUpdateRule.csx +14 -0
  221. package/touch/Workflows/src/StateNotActiveOrInMeetRule.csx +14 -0
  222. package/touch/Workflows/src/StatusCustomerEnterRule.csx +25 -0
  223. package/touch/Workflows/src/StatusStaffEnterRule.csx +25 -0
  224. package/touch/Workflows/src/SyncWorkingHoursRule.csx +46 -0
  225. package/touch/Workflows/src/TokenSuccessRule.csx +24 -0
  226. package/touch/Workflows/src/TransferAllDoneRule.csx +50 -0
  227. package/touch/Workflows/src/TransferHasInvalidRule.csx +34 -0
  228. package/touch/Workflows/src/TransferProcessNextRule.csx +50 -0
  229. package/touch/Workflows/src/TriggerChatRoomDeactivateMapping.csx +77 -0
  230. package/touch/Workflows/src/TriggerChatRoomTransferMapping.csx +93 -0
  231. package/touch/Workflows/src/TriggerChatRoomUpdateMapping.csx +99 -0
  232. package/touch/Workflows/src/TriggerRezervationAddInvitedParticipantMapping.csx +77 -0
  233. package/touch/Workflows/src/TriggerRezervationApplyUpdateMapping.csx +66 -0
  234. package/touch/Workflows/src/TriggerRezervationToInMeetMapping.csx +69 -0
  235. package/touch/Workflows/src/TriggerRezervationVideoCallUpdateMapping.csx +67 -0
  236. package/touch/Workflows/src/ValidateDateForRezervationMapping.csx +60 -0
  237. package/touch/Workflows/src/ValidateSlotForRandevuUpdateMapping.csx +211 -0
  238. package/touch/Workflows/src/ValidateSlotForRezervationMapping.csx +246 -0
  239. package/touch/Workflows/src/ValidateTransferMapping.csx +243 -0
  240. package/touch/Workflows/src/VideoCallUrlUpdateMergeMapping.csx +141 -0
  241. package/touch/Workflows/start-chat.json +217 -0
  242. package/touch/Workflows/start-video-call.http +93 -0
  243. package/touch/Workflows/start-video-call.json +206 -0
  244. package/vnext.config.json +58 -0
@@ -0,0 +1,512 @@
1
+ {
2
+ "key": "rezervation-transfer",
3
+ "flow": "sys-flows",
4
+ "domain": "touch",
5
+ "version": "1.0.0",
6
+ "flowVersion": "1.0.0",
7
+ "tags": [
8
+ "new"
9
+ ],
10
+ "attributes": {
11
+ "type": "S",
12
+ "labels": [
13
+ {
14
+ "label": "Reservation Transfer",
15
+ "language": "en-US"
16
+ },
17
+ {
18
+ "label": "Randevu Transferi",
19
+ "language": "tr-TR"
20
+ }
21
+ ],
22
+ "functions": [],
23
+ "features": [],
24
+ "extensions": [],
25
+ "sharedTransitions": [
26
+ {
27
+ "key": "cancel",
28
+ "target": "cancelled",
29
+ "triggerType": 0,
30
+ "versionStrategy": "Minor",
31
+ "availableIn": [
32
+ "awaiting-assignment",
33
+ "awaiting-permanent-assignment"
34
+ ],
35
+ "labels": [
36
+ {
37
+ "label": "Cancel",
38
+ "language": "en-US"
39
+ },
40
+ {
41
+ "label": "İptal",
42
+ "language": "tr-TR"
43
+ }
44
+ ]
45
+ }
46
+ ],
47
+ "startTransition": {
48
+ "key": "start",
49
+ "target": "awaiting-assignment",
50
+ "versionStrategy": "Major",
51
+ "triggerType": 0,
52
+ "labels": [
53
+ {
54
+ "label": "Start",
55
+ "language": "en-US"
56
+ },
57
+ {
58
+ "label": "Başla",
59
+ "language": "tr-TR"
60
+ }
61
+ ],
62
+ "onExecutionTasks": [
63
+ {
64
+ "order": 1,
65
+ "task": {
66
+ "domain": "touch",
67
+ "flow": "sys-tasks",
68
+ "key": "determine-transfer-type",
69
+ "version": "1.0.0"
70
+ },
71
+ "mapping": {
72
+ "location": "./src/DetermineTransferTypeMapping.csx",
73
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgZGV0ZXJtaW5lLXRyYW5zZmVyLXR5cGUgdGFzayAoU2NyaXB0VGFzayAtIFR5cGUgNykuCi8vLyBSZWFkcyBzdGFydERhdGUgYW5kIGVuZERhdGUgZnJvbSBpbnN0YW5jZSBkYXRhLgovLy8gSWYgZW5kRGF0ZSBpcyBwcmVzZW50OiB0cmFuc2ZlclR5cGUgPSAiYW5udWFsLWxlYXZlIgovLy8gSWYgZW5kRGF0ZSBpcyBhYnNlbnQ6IHRyYW5zZmVyVHlwZSA9ICJ0ZXJtaW5hdGlvbiIsIGVuZERhdGUgZGVmYXVsdHMgdG8gIjIwOTktMTItMzEiCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBEZXRlcm1pbmVUcmFuc2ZlclR5cGVNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgc3RhcnREYXRlID0gR2V0U3RyaW5nKGRhdGEsICJzdGFydERhdGUiKTsKICAgICAgICB2YXIgZW5kRGF0ZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZSIpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydERhdGUgaXMgcmVxdWlyZWQuIiwgInN0YXJ0RGF0ZSIpOwoKICAgICAgICBzdHJpbmcgdHJhbnNmZXJUeXBlOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShlbmREYXRlKSkKICAgICAgICB7CiAgICAgICAgICAgIHRyYW5zZmVyVHlwZSA9ICJ0ZXJtaW5hdGlvbiI7CiAgICAgICAgICAgIGVuZERhdGUgPSAiMjA5OS0xMi0zMSI7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHRyYW5zZmVyVHlwZSA9ICJhbm51YWwtbGVhdmUiOwogICAgICAgIH0KCiAgICAgICAgdmFyIHNvdXJjZUFkdmlzb3JJZCA9IEdldFN0cmluZyhkYXRhLCAic291cmNlQWR2aXNvcklkIik7CiAgICAgICAgdmFyIGFkdmlzb3JUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yVHlwZSIpOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgIHsKICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0cmFuc2ZlclR5cGUsCiAgICAgICAgICAgICAgICBzdGFydERhdGUsCiAgICAgICAgICAgICAgICBlbmREYXRlLAogICAgICAgICAgICAgICAgc291cmNlQWR2aXNvcklkLAogICAgICAgICAgICAgICAgYWR2aXNvclR5cGUKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciBzdGFydERhdGUgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgIHZhciBlbmREYXRlID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlIik7CgogICAgICAgIHN0cmluZyB0cmFuc2ZlclR5cGUgPSBzdHJpbmcuSXNOdWxsT3JFbXB0eShlbmREYXRlKSA/ICJ0ZXJtaW5hdGlvbiIgOiAiYW5udWFsLWxlYXZlIjsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZSkpCiAgICAgICAgICAgIGVuZERhdGUgPSAiMjA5OS0xMi0zMSI7CgogICAgICAgIHZhciByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4oKTsKICAgICAgICByZXN1bHRbInRyYW5zZmVyVHlwZSJdID0gdHJhbnNmZXJUeXBlOwogICAgICAgIHJlc3VsdFsic3RhcnREYXRlIl0gPSBzdGFydERhdGU7CiAgICAgICAgcmVzdWx0WyJlbmREYXRlIl0gPSBlbmREYXRlOwoKICAgICAgICB2YXIgc291cmNlQWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJzb3VyY2VBZHZpc29ySWQiKTsKICAgICAgICB2YXIgYWR2aXNvclR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JUeXBlIik7CiAgICAgICAgaWYgKHNvdXJjZUFkdmlzb3JJZCAhPSBudWxsKSByZXN1bHRbInNvdXJjZUFkdmlzb3JJZCJdID0gc291cmNlQWR2aXNvcklkOwogICAgICAgIGlmIChhZHZpc29yVHlwZSAhPSBudWxsKSByZXN1bHRbImFkdmlzb3JUeXBlIl0gPSBhZHZpc29yVHlwZTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gcmVzdWx0IH0pOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
74
+ }
75
+ },
76
+ {
77
+ "order": 2,
78
+ "task": {
79
+ "domain": "touch",
80
+ "flow": "sys-tasks",
81
+ "key": "fetch-rezervations-for-transfer",
82
+ "version": "1.0.0"
83
+ },
84
+ "mapping": {
85
+ "location": "./src/FetchRezervationsForTransferMapping.csx",
86
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgZmV0Y2gtcmV6ZXJ2YXRpb25zLWZvci10cmFuc2ZlciB0YXNrIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpLgovLy8gUmVhZHMgYWR2aXNvcklkLCBzdGFydERhdGUsIGVuZERhdGUgZnJvbSBpbnN0YW5jZSBkYXRhIGFuZCBjYWxscyBnZXQtcmV6ZXJ2YXRpb25zIGZ1bmN0aW9uLgovLy8gT3V0cHV0SGFuZGxlciBzdG9yZXMgdGhlIHJlc3VsdGluZyByZXNlcnZhdGlvbiBpdGVtcyBpbiBpbnN0YW5jZSBkYXRhLgovLy8KLy8vIFJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL2J1cmdhbi10ZWNoL3ZuZXh0LXJ1bnRpbWUvYmxvYi9tYWluL2RvYy9lbi9mbG93L3Rhc2tzL2RhcHItc2VydmljZS5tZAovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgRmV0Y2hSZXplcnZhdGlvbnNGb3JUcmFuc2Zlck1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgaWYgKHNlcnZpY2VUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhcHBJZCkpCiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBzb3VyY2VBZHZpc29ySWQgPSBHZXRTdHJpbmcoZGF0YSwgInNvdXJjZUFkdmlzb3JJZCIpOwogICAgICAgIHZhciBzdGFydERhdGUgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgIHZhciBlbmREYXRlID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShzb3VyY2VBZHZpc29ySWQpKQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oInNvdXJjZUFkdmlzb3JJZCBpcyByZXF1aXJlZC4iLCAic291cmNlQWR2aXNvcklkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigic3RhcnREYXRlIGlzIHJlcXVpcmVkLiIsICJzdGFydERhdGUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZSkpCiAgICAgICAgICAgIGVuZERhdGUgPSAiMjA5OS0xMi0zMSI7CgogICAgICAgIHZhciBxdWVyeVBhcmFtcyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgICJhZHZpc29ySWQ9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKHNvdXJjZUFkdmlzb3JJZCksCiAgICAgICAgICAgICJzdGFydERhdGU9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKHN0YXJ0RGF0ZSksCiAgICAgICAgICAgICJlbmREYXRlPSIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhlbmREYXRlKQogICAgICAgIH07CgogICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICB2YXIgYm9keSA9IGNvbnRleHQuQm9keTsKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICAgICAgaWYgKGJvZHkgIT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IGJvZHkuZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/ICJGYWlsZWQgdG8gZmV0Y2ggcmVzZXJ2YXRpb25zIjsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsICIiKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGRhdGFOb2RlID0gYm9keT8uZGF0YSA/PyBib2R5Py5EYXRhOwogICAgICAgICAgICB2YXIgaXRlbXMgPSBkYXRhTm9kZT8uZ2V0UmV6ZXJ2YXRpb25zPy5pdGVtczsKCiAgICAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4oKTsKICAgICAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJzb3VyY2VBZHZpc29ySWQiKTsKICAgICAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJhZHZpc29yVHlwZSIpOwogICAgICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInRyYW5zZmVyVHlwZSIpOwogICAgICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgICAgICB2YXIgZW5kRGF0ZSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZSIpOwogICAgICAgICAgICByZXN1bHRbImVuZERhdGUiXSA9IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGUpID8gIjIwOTktMTItMzEiIDogZW5kRGF0ZTsKICAgICAgICAgICAgcmVzdWx0WyJyZXplcnZhdGlvbnMiXSA9IGl0ZW1zOwoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IHJlc3VsdAogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSA9ICJmZXRjaC1lcnJvciIsCiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAiRmFpbGVkIHRvIGZldGNoIHJlc2VydmF0aW9ucyBmb3IgdHJhbnNmZXIiLAogICAgICAgICAgICAgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSBleC5NZXNzYWdlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHZvaWQgQ29weUlmUHJlc2VudChEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiB0YXJnZXQsIGR5bmFtaWMgc291cmNlLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybjsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShzb3VyY2UsIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUoc291cmNlLCBuYW1lKTsKICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHRhcmdldFtuYW1lXSA9IHY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0K"
87
+ }
88
+ },
89
+ {
90
+ "order": 3,
91
+ "task": {
92
+ "domain": "touch",
93
+ "flow": "sys-tasks",
94
+ "key": "fetch-advisors-for-transfer",
95
+ "version": "1.0.0"
96
+ },
97
+ "mapping": {
98
+ "location": "./src/FetchAdvisorsForTransferMapping.csx",
99
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgZmV0Y2gtYWR2aXNvcnMtZm9yLXRyYW5zZmVyIHRhc2sgKERhcHJTZXJ2aWNlVGFzayAtIFR5cGUgMykuCi8vLyBSZWFkcyBhZHZpc29yVHlwZSBmcm9tIGluc3RhbmNlIGRhdGEgYW5kIHF1ZXJpZXMgYWxsIGFjdGl2ZSBhZHZpc29yIGluc3RhbmNlcy4KLy8vIE91dHB1dEhhbmRsZXIgYnVpbGRzIGFsbEFkdmlzb3JLZXlzIGxpc3QgaW4ge2RvbWFpbn0ue2Fkdmlzb3JUeXBlfS57a2V5fSBmb3JtYXQuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBGZXRjaEFkdmlzb3JzRm9yVHJhbnNmZXJNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBzZXJ2aWNlVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgICAgIGlmIChzZXJ2aWNlVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGEgRGFwclNlcnZpY2VUYXNrIik7CgogICAgICAgIHZhciBhcHBJZCA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX0FQUF9JRCIpOwogICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoYXBwSWQpKQogICAgICAgICAgICBzZXJ2aWNlVGFzay5TZXRBcHBJZChhcHBJZCk7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgYWR2aXNvclR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JUeXBlIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGFkdmlzb3JUeXBlKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJhZHZpc29yVHlwZSBpcyByZXF1aXJlZC4iLCAiYWR2aXNvclR5cGUiKTsKCiAgICAgICAgc2VydmljZVRhc2suU2V0TWV0aG9kTmFtZSgkImFwaS92MS90b3VjaC93b3JrZmxvd3Mve2Fkdmlzb3JUeXBlfS9pbnN0YW5jZXMiKTsKCiAgICAgICAgdmFyIGNvbmRpdGlvbnMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICAie1wib3JcIjpbIiArCiAgICAgICAgICAgICAgICAie1wiY3VycmVudFN0YXRlXCI6e1wiZXFcIjpcIm9ubGluZVwifX0sIiArCiAgICAgICAgICAgICAgICAie1wiY3VycmVudFN0YXRlXCI6e1wiZXFcIjpcIm9mZmxpbmVcIn19LCIgKwogICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCJidXN5XCJ9fSwiICsKICAgICAgICAgICAgICAgICJ7XCJjdXJyZW50U3RhdGVcIjp7XCJlcVwiOlwiYXdheVwifX0iICsKICAgICAgICAgICAgIl19IiwKICAgICAgICAgICAgIntcInN0YXR1c1wiOntcImVxXCI6XCJBXCJ9fSIKICAgICAgICB9OwoKICAgICAgICB2YXIgZmlsdGVySnNvbiA9ICJ7XCJhbmRcIjpbIiArIHN0cmluZy5Kb2luKCIsIiwgY29uZGl0aW9ucykgKyAiXX0iOwogICAgICAgIHZhciBxdWVyeVBhcmFtcyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgICJwYWdlU2l6ZT0xMDAiLAogICAgICAgICAgICAiZmlsdGVyPSIgKyBmaWx0ZXJKc29uCiAgICAgICAgfTsKCiAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBib2R5ID0gY29udGV4dC5Cb2R5OwogICAgICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsICYmIGJvZHkuaXNTdWNjZXNzID09IGZhbHNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gYm9keS5lcnJvck1lc3NhZ2U/LlRvU3RyaW5nKCkgPz8gIkZhaWxlZCB0byBmZXRjaCBhZHZpc29ycyI7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKGVycm9yTWVzc2FnZSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBhZHZpc29yVHlwZSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICAgICAgdmFyIHJlc3BvbnNlRGF0YSA9IGJvZHk/LmRhdGE7CiAgICAgICAgICAgIHZhciBpdGVtcyA9IHJlc3BvbnNlRGF0YT8uaXRlbXM7CgogICAgICAgICAgICB2YXIgYWR2aXNvcktleXMgPSBuZXcgTGlzdDxzdHJpbmc+KCk7CgogICAgICAgICAgICBpZiAoaXRlbXMgIT0gbnVsbCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIGl0ZW0gaW4gaXRlbXMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRvbWFpbiA9IEdldFN0cmluZyhpdGVtLCAiZG9tYWluIikgPz8gInRvdWNoIjsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5ID0gR2V0U3RyaW5nKGl0ZW0sICJrZXkiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGtleSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZnVsbEtleSA9IGtleS5Db250YWlucygiLiIpID8ga2V5IDogJCJ7ZG9tYWlufS57YWR2aXNvclR5cGV9LntrZXl9IjsKICAgICAgICAgICAgICAgICAgICAgICAgYWR2aXNvcktleXMuQWRkKGZ1bGxLZXkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PigpOwogICAgICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInNvdXJjZUFkdmlzb3JJZCIpOwogICAgICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImFkdmlzb3JUeXBlIik7CiAgICAgICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAidHJhbnNmZXJUeXBlIik7CiAgICAgICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAiZW5kRGF0ZSIpOwogICAgICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInJlemVydmF0aW9ucyIpOwogICAgICAgICAgICByZXN1bHRbImFsbEFkdmlzb3JLZXlzIl0gPSBhZHZpc29yS2V5czsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERhdGEgPSByZXN1bHQKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAiRmFpbGVkIHRvIGZldGNoIGFkdmlzb3JzIGZvciB0cmFuc2ZlciIsCiAgICAgICAgICAgICAgICAgICAgZXJyb3JEZXNjcmlwdGlvbiA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBDb3B5SWZQcmVzZW50KERpY3Rpb25hcnk8c3RyaW5nLCBvYmplY3Q+IHRhcmdldCwgZHluYW1pYyBzb3VyY2UsIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KHNvdXJjZSwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShzb3VyY2UsIG5hbWUpOwogICAgICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCkgdGFyZ2V0W25hbWVdID0gdjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgIH0KfQo="
100
+ }
101
+ },
102
+ {
103
+ "order": 4,
104
+ "task": {
105
+ "domain": "touch",
106
+ "flow": "sys-tasks",
107
+ "key": "fetch-absence-entries-for-transfer",
108
+ "version": "1.0.0"
109
+ },
110
+ "mapping": {
111
+ "location": "./src/FetchAbsenceEntriesForTransferMapping.csx",
112
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgZmV0Y2gtYWJzZW5jZS1lbnRyaWVzLWZvci10cmFuc2ZlciB0YXNrIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpLgovLy8gUXVlcmllcyBhbGwgYWJzZW5jZS1lbnRyeSBpbnN0YW5jZXMgKHB1YmxpYyBob2xpZGF5cywgd29ya2luZyBob3VycyBjaGFuZ2VzLCBwZXJzb25hbCBsZWF2ZXMpCi8vLyBpbiBjb21wbGV0ZSBzdGF0ZS4gT3V0cHV0SGFuZGxlciBzdG9yZXMgdGhlbSBhcyBhYnNlbmNlRW50cmllcyBpbiBpbnN0YW5jZSBkYXRhLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgRmV0Y2hBYnNlbmNlRW50cmllc0ZvclRyYW5zZmVyTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgc2VydmljZVRhc2sgPSB0YXNrIGFzIERhcHJTZXJ2aWNlVGFzazsKICAgICAgICBpZiAoc2VydmljZVRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIERhcHJTZXJ2aWNlVGFzayIpOwoKICAgICAgICB2YXIgYXBwSWQgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9BUFBfSUQiKTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGFwcElkKSkKICAgICAgICAgICAgc2VydmljZVRhc2suU2V0QXBwSWQoYXBwSWQpOwoKICAgICAgICB2YXIgZmlsdGVySnNvbiA9CiAgICAgICAgICAgICJ7XCJhbmRcIjpbIiArCiAgICAgICAgICAgICJ7XCJjdXJyZW50U3RhdGVcIjp7XCJlcVwiOlwiY29tcGxldGVcIn19LCIgKwogICAgICAgICAgICAie1wib3JcIjpbIiArCiAgICAgICAgICAgICAgICAie1wiYXR0cmlidXRlc1wiOntcImFic2VuY2VUeXBlXCI6e1wiZXFcIjpcInB1YmxpYy1ob2xpZGF5XCJ9fX0sIiArCiAgICAgICAgICAgICAgICAie1wiYXR0cmlidXRlc1wiOntcImFic2VuY2VUeXBlXCI6e1wiZXFcIjpcIndvcmtpbmctaG91cnMtY2hhbmdlXCJ9fX0sIiArCiAgICAgICAgICAgICAgICAie1wiYXR0cmlidXRlc1wiOntcImFic2VuY2VUeXBlXCI6e1wiZXFcIjpcInBlcnNvbmFsLWxlYXZlXCJ9fX0iICsKICAgICAgICAgICAgIl19IiArCiAgICAgICAgICAgICJdfSI7CgogICAgICAgIHZhciBxdWVyeVBhcmFtcyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgICJwYWdlU2l6ZT0yMDAiLAogICAgICAgICAgICAiZmlsdGVyPSIgKyBmaWx0ZXJKc29uCiAgICAgICAgfTsKCiAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBib2R5ID0gY29udGV4dC5Cb2R5OwogICAgICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsICYmIGJvZHkuaXNTdWNjZXNzID09IGZhbHNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gYm9keS5lcnJvck1lc3NhZ2U/LlRvU3RyaW5nKCkgPz8gIkZhaWxlZCB0byBmZXRjaCBhYnNlbmNlIGVudHJpZXMiOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gYm9keT8uZGF0YTsKICAgICAgICAgICAgdmFyIGl0ZW1zID0gcmVzcG9uc2VEYXRhPy5pdGVtczsKCiAgICAgICAgICAgIHZhciByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4oKTsKICAgICAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJzb3VyY2VBZHZpc29ySWQiKTsKICAgICAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJhZHZpc29yVHlwZSIpOwogICAgICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInRyYW5zZmVyVHlwZSIpOwogICAgICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImVuZERhdGUiKTsKICAgICAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJyZXplcnZhdGlvbnMiKTsKICAgICAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJhbGxBZHZpc29yS2V5cyIpOwogICAgICAgICAgICByZXN1bHRbImFic2VuY2VFbnRyaWVzIl0gPSBpdGVtczsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERhdGEgPSByZXN1bHQKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAiRmFpbGVkIHRvIGZldGNoIGFic2VuY2UgZW50cmllcyBmb3IgdHJhbnNmZXIiLAogICAgICAgICAgICAgICAgICAgIGVycm9yRGVzY3JpcHRpb24gPSBleC5NZXNzYWdlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgQ29weUlmUHJlc2VudChEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiB0YXJnZXQsIGR5bmFtaWMgc291cmNlLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybjsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShzb3VyY2UsIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUoc291cmNlLCBuYW1lKTsKICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHRhcmdldFtuYW1lXSA9IHY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICB9Cn0K"
113
+ }
114
+ },
115
+ {
116
+ "order": 5,
117
+ "task": {
118
+ "domain": "touch",
119
+ "flow": "sys-tasks",
120
+ "key": "enrich-rezervations-for-transfer",
121
+ "version": "1.0.0"
122
+ },
123
+ "mapping": {
124
+ "location": "./src/EnrichRezervationsForTransferMapping.csx",
125
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGVucmljaC1yZXplcnZhdGlvbnMtZm9yLXRyYW5zZmVyIHRhc2sgKERhcHJTZXJ2aWNlVGFzayAtIFR5cGUgMykuCi8vLyBRdWVyaWVzIEFMTCBhY3RpdmUgcmVzZXJ2YXRpb25zIGluIHRoZSBkYXRlIHJhbmdlIGFjcm9zcyBhbGwgYWR2aXNvcnMuCi8vLyBPdXRwdXRIYW5kbGVyIGVucmljaGVzIGVhY2ggc291cmNlIGFkdmlzb3IncyByZXNlcnZhdGlvbiB3aXRoIGEgbGlzdCBvZiBhZHZpc29ycwovLy8gdGhhdCBhcmUgYXZhaWxhYmxlIGJhc2VkIG9uOiByZXNlcnZhdGlvbiBjb25mbGljdHMsIHdvcmtpbmcgaG91cnMsIHB1YmxpYyBob2xpZGF5cywKLy8vIGFuZCBwZXJzb25hbCBsZWF2ZXMgKHVzaW5nIGFic2VuY2VFbnRyaWVzIGZyb20gcHJldmlvdXMgdGFzaykuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBFbnJpY2hSZXplcnZhdGlvbnNGb3JUcmFuc2Zlck1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgaWYgKHNlcnZpY2VUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhcHBJZCkpCiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBzdGFydERhdGUgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgIHZhciBlbmREYXRlID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydERhdGUpKQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oInN0YXJ0RGF0ZSBpcyByZXF1aXJlZC4iLCAic3RhcnREYXRlIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGUpKQogICAgICAgICAgICBlbmREYXRlID0gIjIwOTktMTItMzEiOwoKICAgICAgICB2YXIgY29uZGl0aW9ucyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgICJ7XCJvclwiOlsiICsKICAgICAgICAgICAgICAgICJ7XCJjdXJyZW50U3RhdGVcIjp7XCJlcVwiOlwiYWN0aXZlXCJ9fSwiICsKICAgICAgICAgICAgICAgICJ7XCJjdXJyZW50U3RhdGVcIjp7XCJlcVwiOlwiaW4tbWVldFwifX0iICsKICAgICAgICAgICAgIl19IiwKICAgICAgICAgICAgIntcInN0YXR1c1wiOntcImVxXCI6XCJBXCJ9fSIsCiAgICAgICAgICAgICJ7XCJhdHRyaWJ1dGVzXCI6e1wic3RhcnREYXRlVGltZVwiOntcImd0ZVwiOlwiIiArIHN0YXJ0RGF0ZSArICJcIn19fSIsCiAgICAgICAgICAgICJ7XCJhdHRyaWJ1dGVzXCI6e1wiZW5kRGF0ZVRpbWVcIjp7XCJsdGVcIjpcIiIgKyBlbmREYXRlICsgIlwifX19IgogICAgICAgIH07CgogICAgICAgIHZhciBmaWx0ZXJKc29uID0gIntcImFuZFwiOlsiICsgc3RyaW5nLkpvaW4oIiwiLCBjb25kaXRpb25zKSArICJdfSI7CiAgICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgInBhZ2VTaXplPTEwMCIsCiAgICAgICAgICAgICJmaWx0ZXI9IiArIGZpbHRlckpzb24KICAgICAgICB9OwoKICAgICAgICBzZXJ2aWNlVGFzay5TZXRRdWVyeVN0cmluZyhzdHJpbmcuSm9pbigiJiIsIHF1ZXJ5UGFyYW1zKSk7CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGJvZHkgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgICAgIGlmIChib2R5ICE9IG51bGwgJiYgYm9keS5pc1N1Y2Nlc3MgPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSBib2R5LmVycm9yTWVzc2FnZT8uVG9TdHJpbmcoKSA/PyAiRmFpbGVkIHRvIGZldGNoIGFsbCByZXNlcnZhdGlvbnMiOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgc291cmNlQWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJzb3VyY2VBZHZpc29ySWQiKTsKICAgICAgICAgICAgdmFyIHNvdXJjZVJlemVydmF0aW9ucyA9IGRhdGE/LnJlemVydmF0aW9uczsKCiAgICAgICAgICAgIHZhciByZXNwb25zZURhdGEgPSBib2R5Py5kYXRhOwogICAgICAgICAgICB2YXIgYWxsSXRlbXMgPSByZXNwb25zZURhdGE/Lml0ZW1zOwoKICAgICAgICAgICAgdmFyIHB1YmxpY0hvbGlkYXlzID0gbmV3IExpc3Q8ZHluYW1pYz4oKTsKICAgICAgICAgICAgdmFyIGFkdmlzb3JXb3JrSG91cnNNYXAgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIExpc3Q8ZHluYW1pYz4+KCk7CiAgICAgICAgICAgIHZhciBjb21wYW55V29ya0hvdXJzID0gbmV3IExpc3Q8ZHluYW1pYz4oKTsKICAgICAgICAgICAgdmFyIHBlcnNvbmFsTGVhdmVzTWFwID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBMaXN0PGR5bmFtaWM+PigpOwoKICAgICAgICAgICAgdmFyIGFic2VuY2VFbnRyaWVzID0gZGF0YT8uYWJzZW5jZUVudHJpZXM7CiAgICAgICAgICAgIGlmIChhYnNlbmNlRW50cmllcyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgZW50cnkgaW4gYWJzZW5jZUVudHJpZXMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5ID09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIHZhciBhdHRycyA9IGVudHJ5Py5hdHRyaWJ1dGVzOwogICAgICAgICAgICAgICAgICAgIGlmIChhdHRycyA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIGFic2VuY2VUeXBlID0gR2V0U3RyaW5nKGF0dHJzLCAiYWJzZW5jZVR5cGUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgYWR2aXNvciA9IEdldFN0cmluZyhhdHRycywgImFkdmlzb3IiKTsKCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhYnNlbmNlVHlwZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInB1YmxpYy1ob2xpZGF5IjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY0hvbGlkYXlzLkFkZChlbnRyeSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAid29ya2luZy1ob3Vycy1jaGFuZ2UiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFkdmlzb3JXb3JrSG91cnNNYXAuQ29udGFpbnNLZXkoYWR2aXNvcikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmlzb3JXb3JrSG91cnNNYXBbYWR2aXNvcl0gPSBuZXcgTGlzdDxkeW5hbWljPigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmlzb3JXb3JrSG91cnNNYXBbYWR2aXNvcl0uQWRkKGVudHJ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYW55V29ya0hvdXJzLkFkZChlbnRyeSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAicGVyc29uYWwtbGVhdmUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBlcnNvbmFsTGVhdmVzTWFwLkNvbnRhaW5zS2V5KGFkdmlzb3IpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25hbExlYXZlc01hcFthZHZpc29yXSA9IG5ldyBMaXN0PGR5bmFtaWM+KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uYWxMZWF2ZXNNYXBbYWR2aXNvcl0uQWRkKGVudHJ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGVucmljaGVkID0gbmV3IExpc3Q8b2JqZWN0PigpOwoKICAgICAgICAgICAgaWYgKHNvdXJjZVJlemVydmF0aW9ucyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgcmV6IGluIHNvdXJjZVJlemVydmF0aW9ucykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAocmV6ID09IG51bGwpIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6U3RhcnRTdHIgPSBHZXROZXN0ZWRTdHJpbmcocmV6LCAiYXR0cmlidXRlcyIsICJzdGFydERhdGVUaW1lIikKICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKHJleiwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6RW5kU3RyID0gR2V0TmVzdGVkU3RyaW5nKHJleiwgImF0dHJpYnV0ZXMiLCAiZW5kRGF0ZVRpbWUiKQogICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcocmV6LCAiZW5kRGF0ZVRpbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6S2V5ID0gSGFzUHJvcGVydHkocmV6LCAia2V5IikgPyByZXoua2V5Py5Ub1N0cmluZygpIDogIiI7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJlelVzZXIgPSBHZXROZXN0ZWRTdHJpbmcocmV6LCAiYXR0cmlidXRlcyIsICJ1c2VyIikKICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKHJleiwgInVzZXIiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6QWR2aXNvciA9IEdldE5lc3RlZFN0cmluZyhyZXosICJhdHRyaWJ1dGVzIiwgImFkdmlzb3IiKQogICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcocmV6LCAiYWR2aXNvciIpOwoKICAgICAgICAgICAgICAgICAgICB2YXIgYnVzeUFkdmlzb3JzID0gbmV3IEhhc2hTZXQ8c3RyaW5nPigpOwogICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoc291cmNlQWR2aXNvcklkKSkKICAgICAgICAgICAgICAgICAgICAgICAgYnVzeUFkdmlzb3JzLkFkZChzb3VyY2VBZHZpc29ySWQpOwoKICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSByZXpTdGFydCA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICAgICAgICAgIERhdGVUaW1lIHJlekVuZCA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkocmV6U3RhcnRTdHIpICYmICFzdHJpbmcuSXNOdWxsT3JFbXB0eShyZXpFbmRTdHIpICYmCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGVUaW1lLlRyeVBhcnNlKHJlelN0YXJ0U3RyLCBvdXQgcmV6U3RhcnQpICYmIERhdGVUaW1lLlRyeVBhcnNlKHJlekVuZFN0ciwgb3V0IHJlekVuZCkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgYWxsSXRlbXMgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIGFsbEl0ZW1zKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtQWR2aXNvciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJhZHZpc29yIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcoaXRlbSwgImFkdmlzb3IiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtU3RhcnRTdHIgPSBHZXROZXN0ZWRTdHJpbmcoaXRlbSwgImF0dHJpYnV0ZXMiLCAic3RhcnREYXRlVGltZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKGl0ZW0sICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbUVuZFN0ciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJlbmREYXRlVGltZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKGl0ZW0sICJlbmREYXRlVGltZSIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShpdGVtQWR2aXNvcikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoaXRlbVN0YXJ0U3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShpdGVtRW5kU3RyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSBpdGVtU3RhcnQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVUaW1lIGl0ZW1FbmQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChEYXRlVGltZS5UcnlQYXJzZShpdGVtU3RhcnRTdHIsIG91dCBpdGVtU3RhcnQpICYmIERhdGVUaW1lLlRyeVBhcnNlKGl0ZW1FbmRTdHIsIG91dCBpdGVtRW5kKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVN0YXJ0IDwgcmV6RW5kICYmIGl0ZW1FbmQgPiByZXpTdGFydCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c3lBZHZpc29ycy5BZGQoaXRlbUFkdmlzb3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgdmFyIGFsbEFkdmlzb3JzID0gbmV3IEhhc2hTZXQ8c3RyaW5nPigpOwogICAgICAgICAgICAgICAgICAgIHZhciBhZHZpc29yS2V5cyA9IGRhdGE/LmFsbEFkdmlzb3JLZXlzOwogICAgICAgICAgICAgICAgICAgIGlmIChhZHZpc29yS2V5cyAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIGFrIGluIGFkdmlzb3JLZXlzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWsgPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIga2V5ID0gYWs/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGtleSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsQWR2aXNvcnMuQWRkKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHZhciBhdmFpbGFibGUgPSBuZXcgTGlzdDxzdHJpbmc+KCk7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIGFkdiBpbiBhbGxBZHZpc29ycykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidXN5QWR2aXNvcnMuQ29udGFpbnMoYWR2KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlelN0YXJ0ICE9IERhdGVUaW1lLk1pblZhbHVlICYmIHJlekVuZCAhPSBEYXRlVGltZS5NaW5WYWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFJc1Nsb3RBdmFpbGFibGVGb3JBZHZpc29yKGFkdiwgcmV6U3RhcnQsIHJlekVuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWNIb2xpZGF5cywgYWR2aXNvcldvcmtIb3Vyc01hcCwgY29tcGFueVdvcmtIb3VycywgcGVyc29uYWxMZWF2ZXNNYXApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUuQWRkKGFkdik7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBlbnJpY2hlZC5BZGQobmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSByZXpLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF0ZVRpbWUgPSByZXpTdGFydFN0ciwKICAgICAgICAgICAgICAgICAgICAgICAgZW5kRGF0ZVRpbWUgPSByZXpFbmRTdHIsCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIgPSByZXpVc2VyLAogICAgICAgICAgICAgICAgICAgICAgICBhZHZpc29yID0gcmV6QWR2aXNvciwKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlQWR2aXNvcnMgPSBhdmFpbGFibGUKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PigpOwogICAgICAgICAgICByZXN1bHRbInNvdXJjZUFkdmlzb3JJZCJdID0gc291cmNlQWR2aXNvcklkOwogICAgICAgICAgICByZXN1bHRbImFkdmlzb3JUeXBlIl0gPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JUeXBlIik7CiAgICAgICAgICAgIHJlc3VsdFsic3RhcnREYXRlIl0gPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgICAgICByZXN1bHRbImVuZERhdGUiXSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZSIpOwogICAgICAgICAgICByZXN1bHRbInRyYW5zZmVyVHlwZSJdID0gR2V0U3RyaW5nKGRhdGEsICJ0cmFuc2ZlclR5cGUiKTsKICAgICAgICAgICAgcmVzdWx0WyJlbnJpY2hlZFJlemVydmF0aW9ucyJdID0gZW5yaWNoZWQ7CiAgICAgICAgICAgIHJlc3VsdFsicmV6ZXJ2YXRpb25zIl0gPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgICAgIHJlc3VsdFsiYWJzZW5jZUVudHJpZXMiXSA9IG5ldyBMaXN0PG9iamVjdD4oKTsKICAgICAgICAgICAgcmVzdWx0WyJhbGxBZHZpc29yS2V5cyJdID0gbmV3IExpc3Q8c3RyaW5nPigpOwoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IHJlc3VsdAogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBlcnJvciA9ICJGYWlsZWQgdG8gZW5yaWNoIHJlc2VydmF0aW9ucyIsCiAgICAgICAgICAgICAgICAgICAgZXJyb3JEZXNjcmlwdGlvbiA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgICNyZWdpb24gU2xvdCBBdmFpbGFiaWxpdHkKCiAgICBwcml2YXRlIGJvb2wgSXNTbG90QXZhaWxhYmxlRm9yQWR2aXNvcihzdHJpbmcgYWR2aXNvcktleSwgRGF0ZVRpbWUgcmV6U3RhcnQsIERhdGVUaW1lIHJlekVuZCwKICAgICAgICBMaXN0PGR5bmFtaWM+IHB1YmxpY0hvbGlkYXlzLAogICAgICAgIERpY3Rpb25hcnk8c3RyaW5nLCBMaXN0PGR5bmFtaWM+PiBhZHZpc29yV29ya0hvdXJzTWFwLAogICAgICAgIExpc3Q8ZHluYW1pYz4gY29tcGFueVdvcmtIb3VycywKICAgICAgICBEaWN0aW9uYXJ5PHN0cmluZywgTGlzdDxkeW5hbWljPj4gcGVyc29uYWxMZWF2ZXNNYXApCiAgICB7CiAgICAgICAgdmFyIHJlekRhdGUgPSByZXpTdGFydC5EYXRlOwogICAgICAgIHZhciBkYXlPZldlZWsgPSByZXpEYXRlLkRheU9mV2Vlay5Ub1N0cmluZygpLlRvTG93ZXIoKTsKICAgICAgICB2YXIgc2xvdFN0YXJ0ID0gcmV6U3RhcnQuVGltZU9mRGF5OwogICAgICAgIHZhciBzbG90RW5kID0gcmV6RW5kLlRpbWVPZkRheTsKCiAgICAgICAgdmFyIGhvbGlkYXlSYW5nZXMgPSBHZXRIb2xpZGF5UmFuZ2VzKHB1YmxpY0hvbGlkYXlzLCByZXpEYXRlKTsKICAgICAgICBpZiAoaG9saWRheVJhbmdlcyAhPSBudWxsICYmIGhvbGlkYXlSYW5nZXMuQ291bnQgPT0gMQogICAgICAgICAgICAmJiBob2xpZGF5UmFuZ2VzWzBdLkl0ZW0xID09IFRpbWVTcGFuLlplcm8KICAgICAgICAgICAgJiYgaG9saWRheVJhbmdlc1swXS5JdGVtMiA+PSBuZXcgVGltZVNwYW4oMjMsIDU5LCAwKSkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICBMaXN0PGR5bmFtaWM+IGFkdldvcmtIb3VycyA9IG51bGw7CiAgICAgICAgaWYgKGFkdmlzb3JXb3JrSG91cnNNYXAuQ29udGFpbnNLZXkoYWR2aXNvcktleSkpCiAgICAgICAgICAgIGFkdldvcmtIb3VycyA9IGFkdmlzb3JXb3JrSG91cnNNYXBbYWR2aXNvcktleV07CgogICAgICAgIHZhciB3b3JrSG91cnMgPSBHZXRXb3JraW5nSG91cnNGb3JEYXkoYWR2V29ya0hvdXJzLCBkYXlPZldlZWspOwogICAgICAgIGlmICh3b3JrSG91cnMgPT0gbnVsbCB8fCB3b3JrSG91cnMuQ291bnQgPT0gMCkKICAgICAgICAgICAgd29ya0hvdXJzID0gR2V0V29ya2luZ0hvdXJzRm9yRGF5KGNvbXBhbnlXb3JrSG91cnMsIGRheU9mV2Vlayk7CgogICAgICAgIGlmICh3b3JrSG91cnMgPT0gbnVsbCB8fCB3b3JrSG91cnMuQ291bnQgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICBib29sIHNsb3RJbldvcmtIb3VycyA9IGZhbHNlOwogICAgICAgIGZvcmVhY2ggKHZhciB3aCBpbiB3b3JrSG91cnMpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIHdoRHluID0gd2g7CiAgICAgICAgICAgIHZhciBzdGFydFN0ciA9IHdoRHluPy5zdGFydD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgdmFyIGVuZFN0ciA9IHdoRHluPy5lbmQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydFN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kU3RyKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgVGltZVNwYW4gd2hTdGFydCA9IFRpbWVTcGFuLk1pblZhbHVlOwogICAgICAgICAgICBUaW1lU3BhbiB3aEVuZCA9IFRpbWVTcGFuLk1pblZhbHVlOwogICAgICAgICAgICBpZiAoIVRpbWVTcGFuLlRyeVBhcnNlKHN0YXJ0U3RyLCBvdXQgd2hTdGFydCkgfHwgIVRpbWVTcGFuLlRyeVBhcnNlKGVuZFN0ciwgb3V0IHdoRW5kKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgaWYgKHNsb3RTdGFydCA+PSB3aFN0YXJ0ICYmIHNsb3RFbmQgPD0gd2hFbmQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNsb3RJbldvcmtIb3VycyA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCFzbG90SW5Xb3JrSG91cnMpCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKCiAgICAgICAgdmFyIHVuYXZhaWxhYmxlUmFuZ2VzID0gbmV3IExpc3Q8VHVwbGU8VGltZVNwYW4sIFRpbWVTcGFuPj4oKTsKCiAgICAgICAgTGlzdDxkeW5hbWljPiBhZHZMZWF2ZXMgPSBudWxsOwogICAgICAgIGlmIChwZXJzb25hbExlYXZlc01hcC5Db250YWluc0tleShhZHZpc29yS2V5KSkKICAgICAgICAgICAgYWR2TGVhdmVzID0gcGVyc29uYWxMZWF2ZXNNYXBbYWR2aXNvcktleV07CiAgICAgICAgaWYgKGFkdkxlYXZlcyAhPSBudWxsKQogICAgICAgICAgICB1bmF2YWlsYWJsZVJhbmdlcy5BZGRSYW5nZShHZXRVbmF2YWlsYWJsZVJhbmdlcyhhZHZMZWF2ZXMsIHJlekRhdGUpKTsKCiAgICAgICAgaWYgKGhvbGlkYXlSYW5nZXMgIT0gbnVsbCkKICAgICAgICAgICAgdW5hdmFpbGFibGVSYW5nZXMuQWRkUmFuZ2UoaG9saWRheVJhbmdlcyk7CgogICAgICAgIGZvcmVhY2ggKHZhciB1ciBpbiB1bmF2YWlsYWJsZVJhbmdlcykKICAgICAgICB7CiAgICAgICAgICAgIGlmIChzbG90U3RhcnQgPCB1ci5JdGVtMiAmJiBzbG90RW5kID4gdXIuSXRlbTEpCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBwcml2YXRlIExpc3Q8VHVwbGU8VGltZVNwYW4sIFRpbWVTcGFuPj4gR2V0SG9saWRheVJhbmdlcyhMaXN0PGR5bmFtaWM+IGhvbGlkYXlzLCBEYXRlVGltZSBkYXRlKQogICAgewogICAgICAgIHZhciByYW5nZXMgPSBuZXcgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PigpOwogICAgICAgIGJvb2wgaGFzSG9saWRheSA9IGZhbHNlOwoKICAgICAgICBmb3JlYWNoICh2YXIgaG9saWRheSBpbiBob2xpZGF5cykKICAgICAgICB7CiAgICAgICAgICAgIHZhciBob2xpZGF5RGF0YSA9IGhvbGlkYXk/LmF0dHJpYnV0ZXM7CiAgICAgICAgICAgIGlmIChob2xpZGF5RGF0YSA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgIHN0cmluZyBzdGFydERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGhvbGlkYXlEYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICBzdHJpbmcgZW5kRGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoaG9saWRheURhdGEsICJlbmREYXRlVGltZSIpOwoKICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBEYXRlVGltZSBlbmREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBpZiAoIURhdGVUaW1lLlRyeVBhcnNlKHN0YXJ0RGF0ZVRpbWVTdHIsIG91dCBzdGFydERhdGVUaW1lKSB8fCAhRGF0ZVRpbWUuVHJ5UGFyc2UoZW5kRGF0ZVRpbWVTdHIsIG91dCBlbmREYXRlVGltZSkpCiAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgIGlmIChkYXRlLkRhdGUgPCBzdGFydERhdGVUaW1lLkRhdGUgfHwgZGF0ZS5EYXRlID4gZW5kRGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgaGFzSG9saWRheSA9IHRydWU7CgogICAgICAgICAgICBpZiAoc3RhcnREYXRlVGltZS5EYXRlICE9IGVuZERhdGVUaW1lLkRhdGUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChkYXRlLkRhdGUgPT0gc3RhcnREYXRlVGltZS5EYXRlKQogICAgICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKHN0YXJ0RGF0ZVRpbWUuVGltZU9mRGF5LCBuZXcgVGltZVNwYW4oMjMsIDU5LCA1OSkpKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGUuRGF0ZSA9PSBlbmREYXRlVGltZS5EYXRlKQogICAgICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKFRpbWVTcGFuLlplcm8sIGVuZERhdGVUaW1lLlRpbWVPZkRheSkpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKFRpbWVTcGFuLlplcm8sIG5ldyBUaW1lU3BhbigyMywgNTksIDU5KSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmFuZ2VzLkFkZChUdXBsZS5DcmVhdGUoc3RhcnREYXRlVGltZS5UaW1lT2ZEYXksIGVuZERhdGVUaW1lLlRpbWVPZkRheSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gaGFzSG9saWRheSA/IHJhbmdlcyA6IG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBMaXN0PG9iamVjdD4gR2V0V29ya2luZ0hvdXJzRm9yRGF5KExpc3Q8ZHluYW1pYz4gd29ya2luZ0hvdXJzQ2hhbmdlcywgc3RyaW5nIGRheU9mV2VlaykKICAgIHsKICAgICAgICBpZiAod29ya2luZ0hvdXJzQ2hhbmdlcyA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgZm9yZWFjaCAodmFyIGNoYW5nZSBpbiB3b3JraW5nSG91cnNDaGFuZ2VzKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGNoYW5nZURhdGEgPSBjaGFuZ2U/LmF0dHJpYnV0ZXM7CiAgICAgICAgICAgIGlmIChjaGFuZ2VEYXRhID09IG51bGwpIGNvbnRpbnVlOwoKICAgICAgICAgICAgdmFyIGN1c3RvbVdIID0gY2hhbmdlRGF0YT8uY3VzdG9tV29ya2luZ0hvdXJzOwogICAgICAgICAgICBpZiAoY3VzdG9tV0ggPT0gbnVsbCkgY29udGludWU7CgogICAgICAgICAgICB2YXIgZGF5SG91cnMgPSBHZXREYXlIb3Vyc0Zyb21DdXN0b20oY3VzdG9tV0gsIGRheU9mV2Vlayk7CiAgICAgICAgICAgIGlmIChkYXlIb3VycyAhPSBudWxsKSByZXR1cm4gZGF5SG91cnM7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIExpc3Q8b2JqZWN0PiBHZXREYXlIb3Vyc0Zyb21DdXN0b20oZHluYW1pYyBjdXN0b21XSCwgc3RyaW5nIGRheU9mV2VlaykKICAgIHsKICAgICAgICBkeW5hbWljIGRheUhvdXJzID0gbnVsbDsKICAgICAgICBzd2l0Y2ggKGRheU9mV2VlaykKICAgICAgICB7CiAgICAgICAgICAgIGNhc2UgIm1vbmRheSI6IGRheUhvdXJzID0gY3VzdG9tV0g/Lm1vbmRheTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInR1ZXNkYXkiOiBkYXlIb3VycyA9IGN1c3RvbVdIPy50dWVzZGF5OyBicmVhazsKICAgICAgICAgICAgY2FzZSAid2VkbmVzZGF5IjogZGF5SG91cnMgPSBjdXN0b21XSD8ud2VkbmVzZGF5OyBicmVhazsKICAgICAgICAgICAgY2FzZSAidGh1cnNkYXkiOiBkYXlIb3VycyA9IGN1c3RvbVdIPy50aHVyc2RheTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZyaWRheSI6IGRheUhvdXJzID0gY3VzdG9tV0g/LmZyaWRheTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInNhdHVyZGF5IjogZGF5SG91cnMgPSBjdXN0b21XSD8uc2F0dXJkYXk7IGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdW5kYXkiOiBkYXlIb3VycyA9IGN1c3RvbVdIPy5zdW5kYXk7IGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYgKGRheUhvdXJzID09IG51bGwpIHJldHVybiBudWxsOwoKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgIGZvcmVhY2ggKHZhciByYW5nZSBpbiBkYXlIb3VycykKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzdGFydCA9IHJhbmdlPy5zdGFydD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgdmFyIGVuZCA9IHJhbmdlPy5lbmQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnQpICYmICFzdHJpbmcuSXNOdWxsT3JFbXB0eShlbmQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXN1bHQuQWRkKG5ldyB7IHN0YXJ0LCBlbmQgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdC5Db3VudCA+IDAgPyByZXN1bHQgOiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PiBHZXRVbmF2YWlsYWJsZVJhbmdlcyhMaXN0PGR5bmFtaWM+IHBlcnNvbmFsTGVhdmVzLCBEYXRlVGltZSBkYXRlKQogICAgewogICAgICAgIHZhciByYW5nZXMgPSBuZXcgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PigpOwoKICAgICAgICBmb3JlYWNoICh2YXIgbGVhdmUgaW4gcGVyc29uYWxMZWF2ZXMpCiAgICAgICAgewogICAgICAgICAgICB2YXIgbGVhdmVEYXRhID0gbGVhdmU/LmF0dHJpYnV0ZXM7CiAgICAgICAgICAgIGlmIChsZWF2ZURhdGEgPT0gbnVsbCkgY29udGludWU7CgogICAgICAgICAgICBzdHJpbmcgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhsZWF2ZURhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIHN0cmluZyBlbmREYXRlVGltZVN0ciA9IEdldFN0cmluZyhsZWF2ZURhdGEsICJlbmREYXRlVGltZSIpOwoKICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBEYXRlVGltZSBlbmREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBpZiAoIURhdGVUaW1lLlRyeVBhcnNlKHN0YXJ0RGF0ZVRpbWVTdHIsIG91dCBzdGFydERhdGVUaW1lKSB8fCAhRGF0ZVRpbWUuVHJ5UGFyc2UoZW5kRGF0ZVRpbWVTdHIsIG91dCBlbmREYXRlVGltZSkpCiAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgIGlmIChkYXRlLkRhdGUgPCBzdGFydERhdGVUaW1lLkRhdGUgfHwgZGF0ZS5EYXRlID4gZW5kRGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgaWYgKHN0YXJ0RGF0ZVRpbWUuRGF0ZSAhPSBlbmREYXRlVGltZS5EYXRlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoZGF0ZS5EYXRlID09IHN0YXJ0RGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgICAgICAgICByYW5nZXMuQWRkKFR1cGxlLkNyZWF0ZShzdGFydERhdGVUaW1lLlRpbWVPZkRheSwgbmV3IFRpbWVTcGFuKDIzLCA1OSwgNTkpKSk7CiAgICAgICAgICAgICAgICBlbHNlIGlmIChkYXRlLkRhdGUgPT0gZW5kRGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgICAgICAgICByYW5nZXMuQWRkKFR1cGxlLkNyZWF0ZShUaW1lU3Bhbi5aZXJvLCBlbmREYXRlVGltZS5UaW1lT2ZEYXkpKTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICByYW5nZXMuQWRkKFR1cGxlLkNyZWF0ZShUaW1lU3Bhbi5aZXJvLCBuZXcgVGltZVNwYW4oMjMsIDU5LCA1OSkpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKHN0YXJ0RGF0ZVRpbWUuVGltZU9mRGF5LCBlbmREYXRlVGltZS5UaW1lT2ZEYXkpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJhbmdlczsKICAgIH0KCiAgICAjZW5kcmVnaW9uCgogICAgI3JlZ2lvbiBIZWxwZXJzCgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0TmVzdGVkU3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgcGFyZW50LCBzdHJpbmcgY2hpbGQpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIHBhcmVudCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBuZXN0ZWQgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgcGFyZW50KTsKICAgICAgICAgICAgICAgIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShuZXN0ZWQsIGNoaWxkKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUobmVzdGVkLCBjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgI2VuZHJlZ2lvbgp9Cg=="
126
+ }
127
+ }
128
+ ]
129
+ },
130
+ "states": [
131
+ {
132
+ "key": "awaiting-assignment",
133
+ "stateType": 1,
134
+ "versionStrategy": "Minor",
135
+ "labels": [
136
+ {
137
+ "label": "Awaiting Assignment",
138
+ "language": "en-US"
139
+ },
140
+ {
141
+ "label": "Atama Bekleniyor",
142
+ "language": "tr-TR"
143
+ }
144
+ ],
145
+ "transitions": [
146
+ {
147
+ "key": "confirm-transfer",
148
+ "target": "validating",
149
+ "triggerType": 0,
150
+ "versionStrategy": "Minor",
151
+ "labels": [
152
+ {
153
+ "label": "Confirm Transfer",
154
+ "language": "en-US"
155
+ },
156
+ {
157
+ "label": "Transferi Onayla",
158
+ "language": "tr-TR"
159
+ }
160
+ ],
161
+ "onExecutionTasks": [
162
+ {
163
+ "order": 1,
164
+ "task": {
165
+ "domain": "touch",
166
+ "flow": "sys-tasks",
167
+ "key": "validate-transfer-availability",
168
+ "version": "1.0.0"
169
+ },
170
+ "mapping": {
171
+ "location": "./src/ValidateTransferMapping.csx",
172
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXRyYW5zZmVyLWF2YWlsYWJpbGl0eSB0YXNrIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpLgovLy8gUXVlcmllcyBhbGwgYWN0aXZlIHJlc2VydmF0aW9ucyBpbiB0aGUgZGF0ZSByYW5nZSBmb3IgdGFyZ2V0IGFkdmlzb3JzLgovLy8gT3V0cHV0SGFuZGxlciBjaGVja3MgZWFjaCB0cmFuc2ZlclBsYW4gaXRlbSB0byBzZWUgaWYgdGhlIHRhcmdldCBhZHZpc29yCi8vLyBzdGlsbCBoYXMgYSBmcmVlIHNsb3QgYXQgdGhlIHJlc2VydmF0aW9uJ3MgdGltZXNsb3QuCi8vLyBTZXRzIHZhbGlkYXRpb25SZXN1bHQuYWxsVmFsaWQgPSB0cnVlL2ZhbHNlIGFjY29yZGluZ2x5LgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVUcmFuc2Zlck1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgaWYgKHNlcnZpY2VUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhcHBJZCkpCiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciB0cmFuc2ZlclBsYW4gPSBkYXRhLnRyYW5zZmVyUGxhbjsKICAgICAgICBpZiAodHJhbnNmZXJQbGFuID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigidHJhbnNmZXJQbGFuIGlzIHJlcXVpcmVkLiIsICJ0cmFuc2ZlclBsYW4iKTsKCiAgICAgICAgdmFyIHN0YXJ0RGF0ZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgdmFyIGVuZERhdGUgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGUiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigic3RhcnREYXRlIGlzIHJlcXVpcmVkLiIsICJzdGFydERhdGUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZSkpCiAgICAgICAgICAgIGVuZERhdGUgPSAiMjA5OS0xMi0zMSI7CgogICAgICAgIHZhciBjb25kaXRpb25zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgIntcIm9yXCI6WyIgKwogICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCJhY3RpdmVcIn19LCIgKwogICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCJpbi1tZWV0XCJ9fSIgKwogICAgICAgICAgICAiXX0iLAogICAgICAgICAgICAie1wic3RhdHVzXCI6e1wiZXFcIjpcIkFcIn19IiwKICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJzdGFydERhdGVUaW1lXCI6e1wiZ3RlXCI6XCIiICsgc3RhcnREYXRlICsgIlwifX19IiwKICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJlbmREYXRlVGltZVwiOntcImx0ZVwiOlwiIiArIGVuZERhdGUgKyAiXCJ9fX0iCiAgICAgICAgfTsKCiAgICAgICAgdmFyIGZpbHRlckpzb24gPSAie1wiYW5kXCI6WyIgKyBzdHJpbmcuSm9pbigiLCIsIGNvbmRpdGlvbnMpICsgIl19IjsKICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICAicGFnZVNpemU9MTAwIiwKICAgICAgICAgICAgImZpbHRlcj0iICsgZmlsdGVySnNvbgogICAgICAgIH07CgogICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICB2YXIgYm9keSA9IGNvbnRleHQuQm9keTsKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICAgICAgaWYgKGJvZHkgIT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IGJvZHkuZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/ICJWYWxpZGF0aW9uIHNlcnZpY2UgZXJyb3IiOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gYm9keT8uZGF0YTsKICAgICAgICAgICAgdmFyIGFsbEl0ZW1zID0gcmVzcG9uc2VEYXRhPy5pdGVtczsKCiAgICAgICAgICAgIHZhciB0cmFuc2ZlclBsYW4gPSBkYXRhPy50cmFuc2ZlclBsYW47CiAgICAgICAgICAgIHZhciBlbnJpY2hlZFJlemVydmF0aW9ucyA9IGRhdGE/LmVucmljaGVkUmV6ZXJ2YXRpb25zOwoKICAgICAgICAgICAgYm9vbCBhbGxWYWxpZCA9IHRydWU7CiAgICAgICAgICAgIHZhciBkZXRhaWxzID0gbmV3IExpc3Q8b2JqZWN0PigpOwoKICAgICAgICAgICAgaWYgKHRyYW5zZmVyUGxhbiAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgcGxhbkl0ZW0gaW4gdHJhbnNmZXJQbGFuKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmIChwbGFuSXRlbSA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgZHluYW1pYyBwaSA9IHBsYW5JdGVtOwogICAgICAgICAgICAgICAgICAgIHZhciByZXplcnZhdGlvbktleSA9IHBpLnJlemVydmF0aW9uS2V5Py5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgICAgIHZhciB0YXJnZXRBZHZpc29yID0gcGkudGFyZ2V0QWR2aXNvcj8uVG9TdHJpbmcoKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHJlemVydmF0aW9uS2V5KSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eSh0YXJnZXRBZHZpc29yKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMuQWRkKG5ldyB7IHJlemVydmF0aW9uS2V5LCB0YXJnZXRBZHZpc29yLCB2YWxpZCA9IGZhbHNlLCByZWFzb24gPSAibWlzc2luZy1kYXRhIiB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgYWxsVmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBzdHJpbmcgcmV6U3RhcnRTdHIgPSBudWxsLCByZXpFbmRTdHIgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGlmIChlbnJpY2hlZFJlemVydmF0aW9ucyAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIGVyIGluIGVucmljaGVkUmV6ZXJ2YXRpb25zKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXIgPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXJLZXkgPSBIYXNQcm9wZXJ0eShlciwgImtleSIpID8gZXIua2V5Py5Ub1N0cmluZygpIDogIiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJLZXkgPT0gcmV6ZXJ2YXRpb25LZXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV6U3RhcnRTdHIgPSBIYXNQcm9wZXJ0eShlciwgInN0YXJ0RGF0ZVRpbWUiKSA/IGVyLnN0YXJ0RGF0ZVRpbWU/LlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlekVuZFN0ciA9IEhhc1Byb3BlcnR5KGVyLCAiZW5kRGF0ZVRpbWUiKSA/IGVyLmVuZERhdGVUaW1lPy5Ub1N0cmluZygpIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHJlelN0YXJ0U3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShyZXpFbmRTdHIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscy5BZGQobmV3IHsgcmV6ZXJ2YXRpb25LZXksIHRhcmdldEFkdmlzb3IsIHZhbGlkID0gdHJ1ZSwgcmVhc29uID0gIm5vLXRpbWUtZGF0YS10by12YWxpZGF0ZSIgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgcmV6U3RhcnQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSByZXpFbmQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICBpZiAoIURhdGVUaW1lLlRyeVBhcnNlKHJlelN0YXJ0U3RyLCBvdXQgcmV6U3RhcnQpIHx8ICFEYXRlVGltZS5UcnlQYXJzZShyZXpFbmRTdHIsIG91dCByZXpFbmQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscy5BZGQobmV3IHsgcmV6ZXJ2YXRpb25LZXksIHRhcmdldEFkdmlzb3IsIHZhbGlkID0gdHJ1ZSwgcmVhc29uID0gInVucGFyc2VhYmxlLXRpbWUiIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGJvb2wgaGFzQ29uZmxpY3QgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZiAoYWxsSXRlbXMgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIGFsbEl0ZW1zKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtQWR2aXNvciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJhZHZpc29yIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcoaXRlbSwgImFkdmlzb3IiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtQWR2aXNvciAhPSB0YXJnZXRBZHZpc29yKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVN0YXJ0U3RyID0gR2V0TmVzdGVkU3RyaW5nKGl0ZW0sICJhdHRyaWJ1dGVzIiwgInN0YXJ0RGF0ZVRpbWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8/IEdldFN0cmluZyhpdGVtLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1FbmRTdHIgPSBHZXROZXN0ZWRTdHJpbmcoaXRlbSwgImF0dHJpYnV0ZXMiLCAiZW5kRGF0ZVRpbWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8/IEdldFN0cmluZyhpdGVtLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoaXRlbVN0YXJ0U3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShpdGVtRW5kU3RyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSBpdGVtU3RhcnQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVUaW1lIGl0ZW1FbmQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChEYXRlVGltZS5UcnlQYXJzZShpdGVtU3RhcnRTdHIsIG91dCBpdGVtU3RhcnQpICYmIERhdGVUaW1lLlRyeVBhcnNlKGl0ZW1FbmRTdHIsIG91dCBpdGVtRW5kKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbUtleSA9IEhhc1Byb3BlcnR5KGl0ZW0sICJrZXkiKSA/IGl0ZW0ua2V5Py5Ub1N0cmluZygpIDogIiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1LZXkgPT0gcmV6ZXJ2YXRpb25LZXkpIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVN0YXJ0IDwgcmV6RW5kICYmIGl0ZW1FbmQgPiByZXpTdGFydCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0NvbmZsaWN0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoaGFzQ29uZmxpY3QpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhbGxWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzLkFkZChuZXcgeyByZXplcnZhdGlvbktleSwgdGFyZ2V0QWR2aXNvciwgdmFsaWQgPSBmYWxzZSwgcmVhc29uID0gInNsb3QtY29uZmxpY3QiIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzLkFkZChuZXcgeyByZXplcnZhdGlvbktleSwgdGFyZ2V0QWR2aXNvciwgdmFsaWQgPSB0cnVlIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFsbFZhbGlkLAogICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRJbmRleCA9IDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWxsVmFsaWQgPSBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBleC5NZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0TmVzdGVkU3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgcGFyZW50LCBzdHJpbmcgY2hpbGQpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIHBhcmVudCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBuZXN0ZWQgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgcGFyZW50KTsKICAgICAgICAgICAgICAgIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShuZXN0ZWQsIGNoaWxkKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUobmVzdGVkLCBjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0KCg=="
173
+ }
174
+ }
175
+ ]
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "key": "validating",
181
+ "stateType": 2,
182
+ "versionStrategy": "Minor",
183
+ "labels": [
184
+ {
185
+ "label": "Validating Transfer",
186
+ "language": "en-US"
187
+ },
188
+ {
189
+ "label": "Transfer Doğrulanıyor",
190
+ "language": "tr-TR"
191
+ }
192
+ ],
193
+ "transitions": [
194
+ {
195
+ "key": "process-next",
196
+ "target": "validating",
197
+ "triggerType": 1,
198
+ "versionStrategy": "Minor",
199
+ "labels": [
200
+ {
201
+ "label": "Process Next Transfer",
202
+ "language": "en-US"
203
+ },
204
+ {
205
+ "label": "Sonraki Transferi İşle",
206
+ "language": "tr-TR"
207
+ }
208
+ ],
209
+ "rule": {
210
+ "location": "./src/TransferProcessNextRule.csx",
211
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKCi8vLyA8c3VtbWFyeT4KLy8vIENvbmRpdGlvbiBtYXBwaW5nIGZvciBwcm9jZXNzLW5leHQgYXV0byB0cmFuc2l0aW9uIGluIHZhbGlkYXRpbmcgc3RhdGUuCi8vLyBSdWxlOiB2YWxpZGF0aW9uUmVzdWx0LmFsbFZhbGlkID09IHRydWUgQU5EIHByb2Nlc3NlZEluZGV4IGxlc3MgdGhhbiB0cmFuc2ZlclBsYW4uQ291bnQKLy8vIFdoZW4gdHJ1ZSwgdGhlIHNlbGYtbG9vcCBmaXJlcyB0byBwcm9jZXNzIHRoZSBuZXh0IHRyYW5zZmVyIGl0ZW0uCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBUcmFuc2ZlclByb2Nlc3NOZXh0UnVsZSA6IFNjcmlwdEJhc2UsIElDb25kaXRpb25NYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPGJvb2w+IEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGNvbnRleHQ/Lkluc3RhbmNlPy5EYXRhID09IG51bGwpCiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KGZhbHNlKTsKCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZS5EYXRhOwoKICAgICAgICAgICAgaWYgKCFIYXNQcm9wZXJ0eShkYXRhLCAidmFsaWRhdGlvblJlc3VsdCIpIHx8IGRhdGEudmFsaWRhdGlvblJlc3VsdCA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChmYWxzZSk7CiAgICAgICAgICAgIGlmICghSGFzUHJvcGVydHkoZGF0YS52YWxpZGF0aW9uUmVzdWx0LCAiYWxsVmFsaWQiKSB8fCBkYXRhLnZhbGlkYXRpb25SZXN1bHQuYWxsVmFsaWQgIT0gdHJ1ZSkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQoZmFsc2UpOwoKICAgICAgICAgICAgaWYgKCFIYXNQcm9wZXJ0eShkYXRhLCAidHJhbnNmZXJQbGFuIikgfHwgZGF0YS50cmFuc2ZlclBsYW4gPT0gbnVsbCkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQoZmFsc2UpOwoKICAgICAgICAgICAgdmFyIHRyYW5zZmVyUGxhbiA9IGRhdGEudHJhbnNmZXJQbGFuIGFzIFN5c3RlbS5Db2xsZWN0aW9ucy5JRW51bWVyYWJsZTsKICAgICAgICAgICAgaWYgKHRyYW5zZmVyUGxhbiA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChmYWxzZSk7CgogICAgICAgICAgICBpbnQgdG90YWxDb3VudCA9IDA7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIHRyYW5zZmVyUGxhbikgdG90YWxDb3VudCsrOwoKICAgICAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJwcm9jZXNzZWRJbmRleCIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQuVHJ5UGFyc2UoZGF0YS5wcm9jZXNzZWRJbmRleD8uVG9TdHJpbmcoKSA/PyAiMCIsIG91dCBwcm9jZXNzZWRJbmRleCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocHJvY2Vzc2VkSW5kZXggPCB0b3RhbENvdW50KTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbikKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQoZmFsc2UpOwogICAgICAgIH0KICAgIH0KfQo="
212
+ },
213
+ "onExecutionTasks": [
214
+ {
215
+ "order": 1,
216
+ "task": {
217
+ "domain": "touch",
218
+ "flow": "sys-tasks",
219
+ "key": "execute-rezervation-transfer",
220
+ "version": "1.0.0"
221
+ },
222
+ "mapping": {
223
+ "location": "./src/ExecuteTransferMapping.csx",
224
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGV4ZWN1dGUtcmV6ZXJ2YXRpb24tdHJhbnNmZXIgdGFzayAoU3RhcnRUYXNrIC0gVHlwZSAxMSkuCi8vLyBQcm9jZXNzZXMgT05FIHRyYW5zZmVyIGl0ZW0gYXQgYSB0aW1lIHVzaW5nIHByb2Nlc3NlZEluZGV4IGNvdW50ZXIuCi8vLyBFYWNoIGludm9jYXRpb24gc3RhcnRzIGEgcmV6ZXJ2YXRpb24tdXBkYXRlIHN1YmZsb3cgaW5zdGFuY2UgZm9yIGEgc2luZ2xlIHJlemVydmF0aW9uLgovLy8gVGhlIHNlbGYtbG9vcCBwYXR0ZXJuIGluIHZhbGlkYXRpbmcgc3RhdGUgY2FsbHMgdGhpcyByZXBlYXRlZGx5IHVudGlsIGFsbCBpdGVtcyBhcmUgcHJvY2Vzc2VkLgovLy8KLy8vIElNUE9SVEFOVDogcHJvY2Vzc2VkSW5kZXggaW5jcmVtZW50IGhhcHBlbnMgaW4gT3V0cHV0SGFuZGxlci4KLy8vIElucHV0SGFuZGxlciBNVVNUIHJldHVybiBub24tbnVsbCBEYXRhIGZvciBTdGFydFRhc2sgdG8gZXhlY3V0ZS4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEV4ZWN1dGVUcmFuc2Zlck1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHN0YXJ0VGFzayA9IHRhc2sgYXMgU3RhcnRUYXNrOwogICAgICAgIGlmIChzdGFydFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIFN0YXJ0VGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkluc3RhbmNlIGRhdGEgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIHRyYW5zZmVyUGxhbiA9IGRhdGEudHJhbnNmZXJQbGFuOwogICAgICAgIGlmICh0cmFuc2ZlclBsYW4gPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJ0cmFuc2ZlclBsYW4gaXMgcmVxdWlyZWQuIiwgInRyYW5zZmVyUGxhbiIpOwoKICAgICAgICB2YXIgdHJhbnNmZXJJdGVtcyA9IHRyYW5zZmVyUGxhbiBhcyBJRW51bWVyYWJsZTxvYmplY3Q+OwogICAgICAgIGlmICh0cmFuc2Zlckl0ZW1zID09IG51bGwgfHwgIXRyYW5zZmVySXRlbXMuQW55KCkpCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHRyYW5zZmVyU2tpcHBlZCA9IHRydWUgfSB9KTsKCiAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgInByb2Nlc3NlZEluZGV4IikpCiAgICAgICAgewogICAgICAgICAgICBpbnQuVHJ5UGFyc2UoZGF0YS5wcm9jZXNzZWRJbmRleD8uVG9TdHJpbmcoKSA/PyAiMCIsIG91dCBwcm9jZXNzZWRJbmRleCk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaXRlbXNMaXN0ID0gdHJhbnNmZXJJdGVtcy5Ub0xpc3QoKTsKICAgICAgICBpZiAocHJvY2Vzc2VkSW5kZXggPj0gaXRlbXNMaXN0LkNvdW50KQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSBuZXcgeyB0cmFuc2ZlclNraXBwZWQgPSB0cnVlIH0gfSk7CgogICAgICAgIGR5bmFtaWMgY3VycmVudEl0ZW0gPSBpdGVtc0xpc3RbcHJvY2Vzc2VkSW5kZXhdOwogICAgICAgIHZhciByZXplcnZhdGlvbktleSA9IGN1cnJlbnRJdGVtLnJlemVydmF0aW9uS2V5Py5Ub1N0cmluZygpOwogICAgICAgIHZhciB0YXJnZXRBZHZpc29yID0gY3VycmVudEl0ZW0udGFyZ2V0QWR2aXNvcj8uVG9TdHJpbmcoKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHJlemVydmF0aW9uS2V5KSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eSh0YXJnZXRBZHZpc29yKSkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gbmV3IHsgdHJhbnNmZXJTa2lwcGVkID0gdHJ1ZSB9IH0pOwoKICAgICAgICB2YXIgcGFyZW50S2V5ID0gY29udGV4dC5JbnN0YW5jZT8uS2V5ID8/IERhdGVUaW1lLlV0Y05vdy5UaWNrcy5Ub1N0cmluZygpOwogICAgICAgIHZhciBpbnN0YW5jZUtleSA9IENyZWF0ZVNob3J0S2V5KHBhcmVudEtleSwgcmV6ZXJ2YXRpb25LZXkpOwoKICAgICAgICBzdGFydFRhc2suU2V0RG9tYWluKCJ0b3VjaCIpOwogICAgICAgIHN0YXJ0VGFzay5TZXRGbG93KCJyZXplcnZhdGlvbi11cGRhdGUiKTsKICAgICAgICBzdGFydFRhc2suU2V0S2V5KGluc3RhbmNlS2V5KTsKICAgICAgICBzdGFydFRhc2suU2V0Qm9keShuZXcKICAgICAgICB7CiAgICAgICAgICAgIHJhbmRldnVLZXkgPSByZXplcnZhdGlvbktleSwKICAgICAgICAgICAgdGFyZ2V0QWR2aXNvciA9IHRhcmdldEFkdmlzb3IsCiAgICAgICAgICAgIGF1dG9Qcm9jZXNzID0gdHJ1ZQogICAgICAgIH0pOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgIHsKICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwcm9jZXNzZWRJbmRleCA9IHByb2Nlc3NlZEluZGV4ICsgMSwKICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFuc2ZlcktleSA9IHJlemVydmF0aW9uS2V5LAogICAgICAgICAgICAgICAgY3VycmVudFRhcmdldEFkdmlzb3IgPSB0YXJnZXRBZHZpc29yCiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHN1Y2Nlc3MgPSBjb250ZXh0LkJvZHk/LmlzU3VjY2VzcyA9PSB0cnVlOwogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICBpZiAoZGF0YSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGEsICJwcm9jZXNzZWRJbmRleCIpKQogICAgICAgIHsKICAgICAgICAgICAgaW50LlRyeVBhcnNlKGRhdGEucHJvY2Vzc2VkSW5kZXg/LlRvU3RyaW5nKCkgPz8gIjAiLCBvdXQgcHJvY2Vzc2VkSW5kZXgpOwogICAgICAgIH0KCiAgICAgICAgdmFyIHRyYW5zZmVyUGxhbiA9IGRhdGE/LnRyYW5zZmVyUGxhbjsKICAgICAgICBzdHJpbmcgY3VycmVudFRyYW5zZmVyS2V5ID0gbnVsbDsKICAgICAgICBzdHJpbmcgY3VycmVudFRhcmdldEFkdmlzb3IgPSBudWxsOwoKICAgICAgICBpZiAodHJhbnNmZXJQbGFuICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICB2YXIgaXRlbXMgPSB0cmFuc2ZlclBsYW4gYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICAgICAgaWYgKGl0ZW1zICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBpdGVtc0xpc3QgPSBpdGVtcy5Ub0xpc3QoKTsKICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzZWRJbmRleCA8IGl0ZW1zTGlzdC5Db3VudCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBkeW5hbWljIGN1cnJlbnRJdGVtID0gaXRlbXNMaXN0W3Byb2Nlc3NlZEluZGV4XTsKICAgICAgICAgICAgICAgICAgICBjdXJyZW50VHJhbnNmZXJLZXkgPSBjdXJyZW50SXRlbT8ucmV6ZXJ2YXRpb25LZXk/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldEFkdmlzb3IgPSBjdXJyZW50SXRlbT8udGFyZ2V0QWR2aXNvcj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PigpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAidHJhbnNmZXJQbGFuIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJ2YWxpZGF0aW9uUmVzdWx0Iik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJzb3VyY2VBZHZpc29ySWQiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImFkdmlzb3JUeXBlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJzdGFydERhdGUiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImVuZERhdGUiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInRyYW5zZmVyVHlwZSIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAiZW5yaWNoZWRSZXplcnZhdGlvbnMiKTsKICAgICAgICByZXN1bHRbInByb2Nlc3NlZEluZGV4Il0gPSBwcm9jZXNzZWRJbmRleCArIDE7CiAgICAgICAgcmVzdWx0WyJjdXJyZW50VHJhbnNmZXJLZXkiXSA9IGN1cnJlbnRUcmFuc2ZlcktleTsKICAgICAgICByZXN1bHRbImN1cnJlbnRUYXJnZXRBZHZpc29yIl0gPSBjdXJyZW50VGFyZ2V0QWR2aXNvcjsKICAgICAgICByZXN1bHRbImxhc3RUcmFuc2ZlclN1Y2Nlc3MiXSA9IHN1Y2Nlc3M7CiAgICAgICAgcmVzdWx0WyJsYXN0VHJhbnNmZXJFcnJvciJdID0gIXN1Y2Nlc3MgPyAoY29udGV4dC5Cb2R5Py5lcnJvck1lc3NhZ2U/LlRvU3RyaW5nKCkgPz8gIlRyYW5zZmVyIGV4ZWN1dGlvbiBmYWlsZWQiKSA6IG51bGw7CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgewogICAgICAgICAgICBEYXRhID0gcmVzdWx0CiAgICAgICAgfSk7CiAgICB9CgogICAgLy8vIDxzdW1tYXJ5PkNyZWF0ZXMgYSBrZXkgJmx0Oz0gMTAwIGNoYXJzIGJ5IHRydW5jYXRpbmcgcGFyZW50S2V5IGFuZCByZXplcnZhdGlvbktleS48L3N1bW1hcnk+CiAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgQ3JlYXRlU2hvcnRLZXkoc3RyaW5nIHBhcmVudEtleSwgc3RyaW5nIHJlemVydmF0aW9uS2V5KQogICAgewogICAgICAgIHZhciBtYXhQYXJlbnQgPSA0MDsKICAgICAgICB2YXIgbWF4UmV6ID0gNTA7CiAgICAgICAgdmFyIHAgPSBwYXJlbnRLZXkuTGVuZ3RoIDw9IG1heFBhcmVudCA/IHBhcmVudEtleSA6IHBhcmVudEtleS5TdWJzdHJpbmcocGFyZW50S2V5Lkxlbmd0aCAtIG1heFBhcmVudCk7CiAgICAgICAgdmFyIHIgPSByZXplcnZhdGlvbktleS5MZW5ndGggPD0gbWF4UmV6ID8gcmV6ZXJ2YXRpb25LZXkgOiByZXplcnZhdGlvbktleS5TdWJzdHJpbmcocmV6ZXJ2YXRpb25LZXkuTGVuZ3RoIC0gbWF4UmV6KTsKICAgICAgICByZXR1cm4gJCJ0dS17cH0te3J9IjsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgQ29weUlmUHJlc2VudChEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiB0YXJnZXQsIGR5bmFtaWMgc291cmNlLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybjsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShzb3VyY2UsIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUoc291cmNlLCBuYW1lKTsKICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHRhcmdldFtuYW1lXSA9IHY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICB9Cn0K"
225
+ }
226
+ }
227
+ ]
228
+ },
229
+ {
230
+ "key": "all-done",
231
+ "target": "updating-rez-chatrooms",
232
+ "triggerType": 1,
233
+ "versionStrategy": "Minor",
234
+ "labels": [
235
+ {
236
+ "label": "All Transfers Done",
237
+ "language": "en-US"
238
+ },
239
+ {
240
+ "label": "Tüm Transferler Tamamlandı",
241
+ "language": "tr-TR"
242
+ }
243
+ ],
244
+ "rule": {
245
+ "location": "./src/TransferAllDoneRule.csx",
246
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKCi8vLyA8c3VtbWFyeT4KLy8vIENvbmRpdGlvbiBtYXBwaW5nIGZvciBhbGwtZG9uZSBhdXRvIHRyYW5zaXRpb24gaW4gdmFsaWRhdGluZyBzdGF0ZS4KLy8vIFJ1bGU6IHZhbGlkYXRpb25SZXN1bHQuYWxsVmFsaWQgPT0gdHJ1ZSBBTkQgcHJvY2Vzc2VkSW5kZXggPj0gdHJhbnNmZXJQbGFuLkNvdW50Ci8vLyBXaGVuIHRydWUsIGFsbCB0cmFuc2ZlcnMgaGF2ZSBiZWVuIGV4ZWN1dGVkIGFuZCB0aGUgd29ya2Zsb3cgbW92ZXMgdG8gY29tcGxldGVkLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVHJhbnNmZXJBbGxEb25lUnVsZSA6IFNjcmlwdEJhc2UsIElDb25kaXRpb25NYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPGJvb2w+IEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGNvbnRleHQ/Lkluc3RhbmNlPy5EYXRhID09IG51bGwpCiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KGZhbHNlKTsKCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZS5EYXRhOwoKICAgICAgICAgICAgaWYgKCFIYXNQcm9wZXJ0eShkYXRhLCAidmFsaWRhdGlvblJlc3VsdCIpIHx8IGRhdGEudmFsaWRhdGlvblJlc3VsdCA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChmYWxzZSk7CiAgICAgICAgICAgIGlmICghSGFzUHJvcGVydHkoZGF0YS52YWxpZGF0aW9uUmVzdWx0LCAiYWxsVmFsaWQiKSB8fCBkYXRhLnZhbGlkYXRpb25SZXN1bHQuYWxsVmFsaWQgIT0gdHJ1ZSkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQoZmFsc2UpOwoKICAgICAgICAgICAgaWYgKCFIYXNQcm9wZXJ0eShkYXRhLCAidHJhbnNmZXJQbGFuIikgfHwgZGF0YS50cmFuc2ZlclBsYW4gPT0gbnVsbCkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQodHJ1ZSk7CgogICAgICAgICAgICB2YXIgdHJhbnNmZXJQbGFuID0gZGF0YS50cmFuc2ZlclBsYW4gYXMgU3lzdGVtLkNvbGxlY3Rpb25zLklFbnVtZXJhYmxlOwogICAgICAgICAgICBpZiAodHJhbnNmZXJQbGFuID09IG51bGwpCiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHRydWUpOwoKICAgICAgICAgICAgaW50IHRvdGFsQ291bnQgPSAwOwogICAgICAgICAgICBmb3JlYWNoICh2YXIgaXRlbSBpbiB0cmFuc2ZlclBsYW4pIHRvdGFsQ291bnQrKzsKCiAgICAgICAgICAgIGludCBwcm9jZXNzZWRJbmRleCA9IDA7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAicHJvY2Vzc2VkSW5kZXgiKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW50LlRyeVBhcnNlKGRhdGEucHJvY2Vzc2VkSW5kZXg/LlRvU3RyaW5nKCkgPz8gIjAiLCBvdXQgcHJvY2Vzc2VkSW5kZXgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHByb2Nlc3NlZEluZGV4ID49IHRvdGFsQ291bnQpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChmYWxzZSk7CiAgICAgICAgfQogICAgfQp9Cg=="
247
+ }
248
+ },
249
+ {
250
+ "key": "has-invalid",
251
+ "target": "awaiting-assignment",
252
+ "triggerType": 1,
253
+ "versionStrategy": "Minor",
254
+ "labels": [
255
+ {
256
+ "label": "Has Invalid",
257
+ "language": "en-US"
258
+ },
259
+ {
260
+ "label": "Geçersiz Var",
261
+ "language": "tr-TR"
262
+ }
263
+ ],
264
+ "rule": {
265
+ "location": "./src/TransferHasInvalidRule.csx",
266
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwoKLy8vIDxzdW1tYXJ5PgovLy8gQ29uZGl0aW9uIG1hcHBpbmcgZm9yIGhhcy1pbnZhbGlkIGF1dG8gdHJhbnNpdGlvbiBpbiByZXplcnZhdGlvbi10cmFuc2ZlciB2YWxpZGF0aW5nIHN0YXRlLgovLy8gUnVsZTogdmFsaWRhdGlvblJlc3VsdCA9PSBudWxsIE9SIHZhbGlkYXRpb25SZXN1bHQuYWxsVmFsaWQgIT0gdHJ1ZQovLy8gUmV0dXJucyB0aGUgdXNlciB0byBhd2FpdGluZy1hc3NpZ25tZW50IHRvIHJlLXBsYW4gdGhlIHRyYW5zZmVyLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVHJhbnNmZXJIYXNJbnZhbGlkUnVsZSA6IFNjcmlwdEJhc2UsIElDb25kaXRpb25NYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPGJvb2w+IEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGNvbnRleHQ/Lkluc3RhbmNlPy5EYXRhID09IG51bGwpCiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHRydWUpOwoKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlLkRhdGE7CiAgICAgICAgICAgIGlmICghSGFzUHJvcGVydHkoZGF0YSwgInZhbGlkYXRpb25SZXN1bHQiKSB8fCBkYXRhLnZhbGlkYXRpb25SZXN1bHQgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQodHJ1ZSk7CgogICAgICAgICAgICB2YXIgdmFsaWRhdGlvblJlc3VsdCA9IGRhdGEudmFsaWRhdGlvblJlc3VsdDsKICAgICAgICAgICAgaWYgKCFIYXNQcm9wZXJ0eSh2YWxpZGF0aW9uUmVzdWx0LCAiYWxsVmFsaWQiKSkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQodHJ1ZSk7CgogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHZhbGlkYXRpb25SZXN1bHQuYWxsVmFsaWQgIT0gdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24pCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHRydWUpOwogICAgICAgIH0KICAgIH0KfQo="
267
+ }
268
+ }
269
+ ]
270
+ },
271
+ {
272
+ "key": "updating-rez-chatrooms",
273
+ "stateType": 2,
274
+ "versionStrategy": "Minor",
275
+ "labels": [
276
+ {
277
+ "label": "Updating Reservation Chat Rooms",
278
+ "language": "en-US"
279
+ },
280
+ {
281
+ "label": "Randevu Sohbet Odaları Güncelleniyor",
282
+ "language": "tr-TR"
283
+ }
284
+ ],
285
+ "onEntries": [
286
+ {
287
+ "order": 1,
288
+ "task": {
289
+ "domain": "touch",
290
+ "flow": "sys-tasks",
291
+ "key": "fetch-rez-chatrooms-for-transfer",
292
+ "version": "1.0.0"
293
+ },
294
+ "mapping": {
295
+ "location": "./src/BuildRezChatRoomPlanMapping.csx",
296
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGZldGNoLXJlei1jaGF0cm9vbXMtZm9yLXRyYW5zZmVyIERhcHJTZXJ2aWNlVGFzayAoVHlwZSAzKS4KLy8vIElucHV0SGFuZGxlcjogcXVlcmllcyBjaGF0LXJvb20gaW5zdGFuY2VzIHdoZXJlIGFkdmlzb3JJZCBtYXRjaGVzIHNvdXJjZUFkdmlzb3JJZCBhbmQgcm9vbVR5cGU9cmV6ZXJ2YXRpb24uCi8vLyBPdXRwdXRIYW5kbGVyOiBtYXRjaGVzIGZldGNoZWQgcm9vbXMgd2l0aCB0cmFuc2ZlclBsYW4gdG8gYnVpbGQgcmV6Q2hhdFJvb21QbGFuLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgQnVpbGRSZXpDaGF0Um9vbVBsYW5NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBzZXJ2aWNlVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgICAgIGlmIChzZXJ2aWNlVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGEgRGFwclNlcnZpY2VUYXNrIik7CgogICAgICAgIHZhciBhcHBJZCA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX0FQUF9JRCIpOwogICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoYXBwSWQpKQogICAgICAgICAgICBzZXJ2aWNlVGFzay5TZXRBcHBJZChhcHBJZCk7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgc291cmNlQWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJzb3VyY2VBZHZpc29ySWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoc291cmNlQWR2aXNvcklkKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJzb3VyY2VBZHZpc29ySWQgaXMgcmVxdWlyZWQuIiwgInNvdXJjZUFkdmlzb3JJZCIpOwoKICAgICAgICB2YXIgZXNjYXBlZEFkdmlzb3IgPSBzb3VyY2VBZHZpc29ySWQuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKICAgICAgICB2YXIgZmlsdGVyUGFydHMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICAie1wiYXR0cmlidXRlc1wiOntcImFkdmlzb3JJZFwiOntcImVxXCI6XCIiICsgZXNjYXBlZEFkdmlzb3IgKyAiXCJ9fX0iLAogICAgICAgICAgICAie1wiYXR0cmlidXRlc1wiOntcInJvb21UeXBlXCI6e1wiZXFcIjpcInJlemVydmF0aW9uXCJ9fX0iLAogICAgICAgICAgICAie1wiY3VycmVudFN0YXRlXCI6e1wiZXFcIjpcImNvbXBsZXRlXCJ9fSIKICAgICAgICB9OwoKICAgICAgICB2YXIgZmlsdGVySnNvbiA9ICJ7XCJhbmRcIjpbIiArIHN0cmluZy5Kb2luKCIsIiwgZmlsdGVyUGFydHMpICsgIl19IjsKICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICAicGFnZVNpemU9MTAwIiwKICAgICAgICAgICAgImZpbHRlcj0iICsgZmlsdGVySnNvbgogICAgICAgIH07CgogICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGJvZHkgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gYm9keT8uZGF0YTsKICAgICAgICB2YXIgaXRlbXMgPSByZXNwb25zZURhdGE/Lml0ZW1zOwoKICAgICAgICB2YXIgdHJhbnNmZXJQbGFuID0gZGF0YT8udHJhbnNmZXJQbGFuOwogICAgICAgIHZhciB0cmFuc2Zlck1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPigpOwogICAgICAgIGlmICh0cmFuc2ZlclBsYW4gIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciB0cCBpbiB0cmFuc2ZlclBsYW4pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciByZXpLZXkgPSBHZXRTdHJpbmcodHAsICJyZXplcnZhdGlvbktleSIpOwogICAgICAgICAgICAgICAgdmFyIHRhcmdldEFkdmlzb3IgPSBHZXRTdHJpbmcodHAsICJ0YXJnZXRBZHZpc29yIik7CiAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KHJlektleSkgJiYgIXN0cmluZy5Jc051bGxPckVtcHR5KHRhcmdldEFkdmlzb3IpKQogICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyTWFwW3JlektleV0gPSB0YXJnZXRBZHZpc29yOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgZW5yaWNoZWRSZXplcnZhdGlvbnMgPSBkYXRhPy5lbnJpY2hlZFJlemVydmF0aW9uczsKICAgICAgICB2YXIgdXNlckJ5UmV6ID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+KCk7CiAgICAgICAgaWYgKGVucmljaGVkUmV6ZXJ2YXRpb25zICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBmb3JlYWNoICh2YXIgZXIgaW4gZW5yaWNoZWRSZXplcnZhdGlvbnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBrZXkgPSBHZXRTdHJpbmcoZXIsICJrZXkiKTsKICAgICAgICAgICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGVyLCAidXNlciIpOwogICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShrZXkpICYmICFzdHJpbmcuSXNOdWxsT3JFbXB0eSh1c2VyKSkKICAgICAgICAgICAgICAgICAgICB1c2VyQnlSZXpba2V5XSA9IHVzZXI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByZXpDaGF0Um9vbVBsYW4gPSBuZXcgTGlzdDxvYmplY3Q+KCk7CgogICAgICAgIGlmIChpdGVtcyAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIGl0ZW0gaW4gaXRlbXMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBjaGF0Um9vbUtleSA9IEdldFN0cmluZyhpdGVtLCAia2V5Iik7CiAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoY2hhdFJvb21LZXkpKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICB2YXIgYXR0cnMgPSBpdGVtPy5hdHRyaWJ1dGVzOwogICAgICAgICAgICAgICAgaWYgKGF0dHJzID09IG51bGwpIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgIHZhciB1c2VyID0gR2V0U3RyaW5nKGF0dHJzLCAidXNlciIpOwoKICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBrdnAgaW4gdHJhbnNmZXJNYXApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJCeVJlei5Db250YWluc0tleShrdnAuS2V5KSAmJiB1c2VyQnlSZXpba3ZwLktleV0gPT0gdXNlcikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlekNoYXRSb29tUGxhbi5BZGQobmV3IERpY3Rpb25hcnk8c3RyaW5nLCBvYmplY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiY2hhdFJvb21LZXkiXSA9IGNoYXRSb29tS2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJ0YXJnZXRBZHZpc29yIl0gPSBrdnAuVmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInJlemVydmF0aW9uS2V5Il0gPSBrdnAuS2V5CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4oKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInRyYW5zZmVyUGxhbiIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAidmFsaWRhdGlvblJlc3VsdCIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic291cmNlQWR2aXNvcklkIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJhZHZpc29yVHlwZSIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJlbmREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJ0cmFuc2ZlclR5cGUiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImVucmljaGVkUmV6ZXJ2YXRpb25zIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJwcm9jZXNzZWRJbmRleCIpOwogICAgICAgIHJlc3VsdFsicmV6Q2hhdFJvb21QbGFuIl0gPSByZXpDaGF0Um9vbVBsYW47CiAgICAgICAgcmVzdWx0WyJyZXpDaGF0Um9vbVByb2Nlc3NlZEluZGV4Il0gPSAwOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSByZXN1bHQgfSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIENvcHlJZlByZXNlbnQoRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4gdGFyZ2V0LCBkeW5hbWljIHNvdXJjZSwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm47CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoc291cmNlLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKHNvdXJjZSwgbmFtZSk7CiAgICAgICAgICAgICAgICBpZiAodiAhPSBudWxsKSB0YXJnZXRbbmFtZV0gPSB2OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgfQp9Cg=="
297
+ }
298
+ }
299
+ ],
300
+ "transitions": [
301
+ {
302
+ "key": "process-next-rez-chatroom",
303
+ "target": "updating-rez-chatrooms",
304
+ "triggerType": 1,
305
+ "versionStrategy": "Minor",
306
+ "labels": [
307
+ {
308
+ "label": "Process Next Rez Chat Room",
309
+ "language": "en-US"
310
+ },
311
+ {
312
+ "label": "Sonraki Randevu Odasını İşle",
313
+ "language": "tr-TR"
314
+ }
315
+ ],
316
+ "rule": {
317
+ "location": "./src/RezChatRoomProcessNextRule.csx",
318
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwoKLy8vIDxzdW1tYXJ5PgovLy8gQ29uZGl0aW9uIGZvciBwcm9jZXNzLW5leHQtcmV6LWNoYXRyb29tIGF1dG8gdHJhbnNpdGlvbiBpbiB1cGRhdGluZy1yZXotY2hhdHJvb21zIHN0YXRlLgovLy8gUnVsZTogcmV6Q2hhdFJvb21Qcm9jZXNzZWRJbmRleCBsZXNzIHRoYW4gcmV6Q2hhdFJvb21QbGFuLkNvdW50Ci8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBSZXpDaGF0Um9vbVByb2Nlc3NOZXh0UnVsZSA6IFNjcmlwdEJhc2UsIElDb25kaXRpb25NYXBwaW5nCnsKICAgIHB1YmxpYyBUYXNrPGJvb2w+IEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGNvbnRleHQ/Lkluc3RhbmNlPy5EYXRhID09IG51bGwpCiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KGZhbHNlKTsKCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZS5EYXRhOwoKICAgICAgICAgICAgaWYgKCFIYXNQcm9wZXJ0eShkYXRhLCAicmV6Q2hhdFJvb21QbGFuIikgfHwgZGF0YS5yZXpDaGF0Um9vbVBsYW4gPT0gbnVsbCkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQoZmFsc2UpOwoKICAgICAgICAgICAgdmFyIHBsYW4gPSBkYXRhLnJlekNoYXRSb29tUGxhbiBhcyBTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmFibGU7CiAgICAgICAgICAgIGlmIChwbGFuID09IG51bGwpCiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KGZhbHNlKTsKCiAgICAgICAgICAgIGludCB0b3RhbENvdW50ID0gMDsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIGl0ZW0gaW4gcGxhbikgdG90YWxDb3VudCsrOwoKICAgICAgICAgICAgaWYgKHRvdGFsQ291bnQgPT0gMCkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQoZmFsc2UpOwoKICAgICAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJyZXpDaGF0Um9vbVByb2Nlc3NlZEluZGV4IikpCiAgICAgICAgICAgICAgICBpbnQuVHJ5UGFyc2UoZGF0YS5yZXpDaGF0Um9vbVByb2Nlc3NlZEluZGV4Py5Ub1N0cmluZygpID8/ICIwIiwgb3V0IHByb2Nlc3NlZEluZGV4KTsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocHJvY2Vzc2VkSW5kZXggPCB0b3RhbENvdW50KTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbikKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQoZmFsc2UpOwogICAgICAgIH0KICAgIH0KfQo="
319
+ },
320
+ "onExecutionTasks": [
321
+ {
322
+ "order": 1,
323
+ "task": {
324
+ "domain": "touch",
325
+ "flow": "sys-tasks",
326
+ "key": "execute-rez-chatroom-transfer",
327
+ "version": "1.0.0"
328
+ },
329
+ "mapping": {
330
+ "location": "./src/ExecuteRezChatRoomTransferMapping.csx",
331
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGV4ZWN1dGUtcmV6LWNoYXRyb29tLXRyYW5zZmVyIERpcmVjdFRyaWdnZXJUYXNrIChUeXBlIDEyKS4KLy8vIFRyaWdnZXJzIHRoZSAndHJhbnNmZXInIHRyYW5zaXRpb24gb24gYSBjaGF0LXJvb20gaW5zdGFuY2UgZm9yIHRoZSBjdXJyZW50IGl0ZW0gaW4gcmV6Q2hhdFJvb21QbGFuLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgRXhlY3V0ZVJlekNoYXRSb29tVHJhbnNmZXJNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciB0cmlnZ2VyVGFzayA9IHRhc2sgYXMgRGlyZWN0VHJpZ2dlclRhc2s7CiAgICAgICAgaWYgKHRyaWdnZXJUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEaXJlY3RUcmlnZ2VyVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkluc3RhbmNlIGRhdGEgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIHJlekNoYXRSb29tUGxhbiA9IGRhdGEucmV6Q2hhdFJvb21QbGFuOwogICAgICAgIGlmIChyZXpDaGF0Um9vbVBsYW4gPT0gbnVsbCkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gbmV3IHsgc2tpcHBlZCA9IHRydWUsIHJlYXNvbiA9ICJuby1yZXpDaGF0Um9vbVBsYW4iIH0gfSk7CgogICAgICAgIGludCBwcm9jZXNzZWRJbmRleCA9IDA7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJyZXpDaGF0Um9vbVByb2Nlc3NlZEluZGV4IikpCiAgICAgICAgICAgIGludC5UcnlQYXJzZShkYXRhLnJlekNoYXRSb29tUHJvY2Vzc2VkSW5kZXg/LlRvU3RyaW5nKCkgPz8gIjAiLCBvdXQgcHJvY2Vzc2VkSW5kZXgpOwoKICAgICAgICB2YXIgaXRlbXMgPSByZXpDaGF0Um9vbVBsYW4gYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICBpZiAoaXRlbXMgPT0gbnVsbCkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gbmV3IHsgc2tpcHBlZCA9IHRydWUgfSB9KTsKCiAgICAgICAgdmFyIGl0ZW1zTGlzdCA9IGl0ZW1zLlRvTGlzdCgpOwogICAgICAgIGlmIChwcm9jZXNzZWRJbmRleCA+PSBpdGVtc0xpc3QuQ291bnQpCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlIH0gfSk7CgogICAgICAgIGR5bmFtaWMgY3VycmVudEl0ZW0gPSBpdGVtc0xpc3RbcHJvY2Vzc2VkSW5kZXhdOwogICAgICAgIHZhciBjaGF0Um9vbUtleSA9IGN1cnJlbnRJdGVtPy5jaGF0Um9vbUtleT8uVG9TdHJpbmcoKTsKICAgICAgICB2YXIgdGFyZ2V0QWR2aXNvciA9IGN1cnJlbnRJdGVtPy50YXJnZXRBZHZpc29yPy5Ub1N0cmluZygpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoY2hhdFJvb21LZXkpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KHRhcmdldEFkdmlzb3IpKQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSBuZXcgeyBza2lwcGVkID0gdHJ1ZSB9IH0pOwoKICAgICAgICB0cmlnZ2VyVGFzay5TZXREb21haW4oInRvdWNoIik7CiAgICAgICAgdHJpZ2dlclRhc2suU2V0RmxvdygiY2hhdC1yb29tIik7CiAgICAgICAgdHJpZ2dlclRhc2suU2V0S2V5KGNoYXRSb29tS2V5KTsKICAgICAgICB0cmlnZ2VyVGFzay5TZXRUcmFuc2l0aW9uTmFtZSgidHJhbnNmZXIiKTsKICAgICAgICB0cmlnZ2VyVGFzay5TZXRCb2R5KG5ldyB7IG5ld0Fkdmlzb3JJZCA9IHRhcmdldEFkdmlzb3IgfSk7CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHN1Y2Nlc3MgPSBjb250ZXh0LkJvZHk/LmlzU3VjY2VzcyA9PSB0cnVlOwoKICAgICAgICBpbnQgcHJvY2Vzc2VkSW5kZXggPSAwOwogICAgICAgIGlmIChkYXRhICE9IG51bGwgJiYgSGFzUHJvcGVydHkoZGF0YSwgInJlekNoYXRSb29tUHJvY2Vzc2VkSW5kZXgiKSkKICAgICAgICAgICAgaW50LlRyeVBhcnNlKGRhdGEucmV6Q2hhdFJvb21Qcm9jZXNzZWRJbmRleD8uVG9TdHJpbmcoKSA/PyAiMCIsIG91dCBwcm9jZXNzZWRJbmRleCk7CgogICAgICAgIHZhciByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4oKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInRyYW5zZmVyUGxhbiIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAidmFsaWRhdGlvblJlc3VsdCIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic291cmNlQWR2aXNvcklkIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJhZHZpc29yVHlwZSIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJlbmREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJ0cmFuc2ZlclR5cGUiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImVucmljaGVkUmV6ZXJ2YXRpb25zIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJwcm9jZXNzZWRJbmRleCIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAicmV6Q2hhdFJvb21QbGFuIik7CiAgICAgICAgcmVzdWx0WyJyZXpDaGF0Um9vbVByb2Nlc3NlZEluZGV4Il0gPSBwcm9jZXNzZWRJbmRleCArIDE7CiAgICAgICAgcmVzdWx0WyJsYXN0UmV6Q2hhdFJvb21UcmFuc2ZlclN1Y2Nlc3MiXSA9IHN1Y2Nlc3M7CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IHJlc3VsdCB9KTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgQ29weUlmUHJlc2VudChEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiB0YXJnZXQsIGR5bmFtaWMgc291cmNlLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybjsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShzb3VyY2UsIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUoc291cmNlLCBuYW1lKTsKICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHRhcmdldFtuYW1lXSA9IHY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICB9Cn0K"
332
+ }
333
+ }
334
+ ]
335
+ },
336
+ {
337
+ "key": "rez-chatrooms-done",
338
+ "target": "awaiting-permanent-assignment",
339
+ "triggerType": 1,
340
+ "versionStrategy": "Minor",
341
+ "labels": [
342
+ {
343
+ "label": "Rez Chat Rooms Done",
344
+ "language": "en-US"
345
+ },
346
+ {
347
+ "label": "Randevu Odaları Tamamlandı",
348
+ "language": "tr-TR"
349
+ }
350
+ ],
351
+ "rule": {
352
+ "location": "./src/RezChatRoomsDoneRule.csx",
353
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwoKLy8vIDxzdW1tYXJ5PgovLy8gQ29uZGl0aW9uIGZvciByZXotY2hhdHJvb21zLWRvbmUgYXV0byB0cmFuc2l0aW9uIGluIHVwZGF0aW5nLXJlei1jaGF0cm9vbXMgc3RhdGUuCi8vLyBSdWxlOiByZXpDaGF0Um9vbVBsYW4gaXMgbnVsbC9lbXB0eSBPUiByZXpDaGF0Um9vbVByb2Nlc3NlZEluZGV4ID49IHJlekNoYXRSb29tUGxhbi5Db3VudAovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgUmV6Q2hhdFJvb21zRG9uZVJ1bGUgOiBTY3JpcHRCYXNlLCBJQ29uZGl0aW9uTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxib29sPiBIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChjb250ZXh0Py5JbnN0YW5jZT8uRGF0YSA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdCh0cnVlKTsKCiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZS5EYXRhOwoKICAgICAgICAgICAgaWYgKCFIYXNQcm9wZXJ0eShkYXRhLCAicmV6Q2hhdFJvb21QbGFuIikgfHwgZGF0YS5yZXpDaGF0Um9vbVBsYW4gPT0gbnVsbCkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQodHJ1ZSk7CgogICAgICAgICAgICB2YXIgcGxhbiA9IGRhdGEucmV6Q2hhdFJvb21QbGFuIGFzIFN5c3RlbS5Db2xsZWN0aW9ucy5JRW51bWVyYWJsZTsKICAgICAgICAgICAgaWYgKHBsYW4gPT0gbnVsbCkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQodHJ1ZSk7CgogICAgICAgICAgICBpbnQgdG90YWxDb3VudCA9IDA7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIHBsYW4pIHRvdGFsQ291bnQrKzsKCiAgICAgICAgICAgIGlmICh0b3RhbENvdW50ID09IDApCiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHRydWUpOwoKICAgICAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJyZXpDaGF0Um9vbVByb2Nlc3NlZEluZGV4IikpCiAgICAgICAgICAgICAgICBpbnQuVHJ5UGFyc2UoZGF0YS5yZXpDaGF0Um9vbVByb2Nlc3NlZEluZGV4Py5Ub1N0cmluZygpID8/ICIwIiwgb3V0IHByb2Nlc3NlZEluZGV4KTsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocHJvY2Vzc2VkSW5kZXggPj0gdG90YWxDb3VudCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24pCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHRydWUpOwogICAgICAgIH0KICAgIH0KfQo="
354
+ }
355
+ }
356
+ ]
357
+ },
358
+ {
359
+ "key": "awaiting-permanent-assignment",
360
+ "stateType": 2,
361
+ "versionStrategy": "Minor",
362
+ "labels": [
363
+ {
364
+ "label": "Awaiting Permanent Room Assignment",
365
+ "language": "en-US"
366
+ },
367
+ {
368
+ "label": "Kalıcı Oda Ataması Bekleniyor",
369
+ "language": "tr-TR"
370
+ }
371
+ ],
372
+ "onEntries": [
373
+ {
374
+ "order": 1,
375
+ "task": {
376
+ "domain": "touch",
377
+ "flow": "sys-tasks",
378
+ "key": "fetch-permanent-chatrooms-for-transfer",
379
+ "version": "1.0.0"
380
+ },
381
+ "mapping": {
382
+ "location": "./src/FetchPermanentChatRoomsMapping.csx",
383
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgZmV0Y2gtcGVybWFuZW50LWNoYXRyb29tcy1mb3ItdHJhbnNmZXIgRGFwclNlcnZpY2VUYXNrIChUeXBlIDMpLgovLy8gSW5wdXRIYW5kbGVyOiBxdWVyaWVzIGNoYXQtcm9vbSBpbnN0YW5jZXMgd2hlcmUgYWR2aXNvcklkIG1hdGNoZXMgc291cmNlQWR2aXNvcklkIGFuZCByb29tVHlwZSAhPSByZXplcnZhdGlvbi4KLy8vIE91dHB1dEhhbmRsZXI6IHN0b3JlcyB0aGUgcGVybWFuZW50IHJvb21zIGxpc3QgZm9yIHVzZXIgc2VsZWN0aW9uLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgRmV0Y2hQZXJtYW5lbnRDaGF0Um9vbXNNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBzZXJ2aWNlVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgICAgIGlmIChzZXJ2aWNlVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGEgRGFwclNlcnZpY2VUYXNrIik7CgogICAgICAgIHZhciBhcHBJZCA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX0FQUF9JRCIpOwogICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoYXBwSWQpKQogICAgICAgICAgICBzZXJ2aWNlVGFzay5TZXRBcHBJZChhcHBJZCk7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgc291cmNlQWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJzb3VyY2VBZHZpc29ySWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoc291cmNlQWR2aXNvcklkKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJzb3VyY2VBZHZpc29ySWQgaXMgcmVxdWlyZWQuIiwgInNvdXJjZUFkdmlzb3JJZCIpOwoKICAgICAgICB2YXIgZXNjYXBlZEFkdmlzb3IgPSBzb3VyY2VBZHZpc29ySWQuUmVwbGFjZSgiXFwiLCAiXFxcXCIpLlJlcGxhY2UoIlwiIiwgIlxcXCIiKTsKICAgICAgICB2YXIgZmlsdGVyUGFydHMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICAie1wiYXR0cmlidXRlc1wiOntcImFkdmlzb3JJZFwiOntcImVxXCI6XCIiICsgZXNjYXBlZEFkdmlzb3IgKyAiXCJ9fX0iLAogICAgICAgICAgICAie1wiYXR0cmlidXRlc1wiOntcInJvb21UeXBlXCI6e1wibmVcIjpcInJlemVydmF0aW9uXCJ9fX0iLAogICAgICAgICAgICAie1wib3JcIjpbe1wiY3VycmVudFN0YXRlXCI6e1wiZXFcIjpcImFjdGl2YXRlZFwifX0se1wiY3VycmVudFN0YXRlXCI6e1wiZXFcIjpcImRlYWN0aXZhdGVkXCJ9fV19IgogICAgICAgIH07CgogICAgICAgIHZhciBmaWx0ZXJKc29uID0gIntcImFuZFwiOlsiICsgc3RyaW5nLkpvaW4oIiwiLCBmaWx0ZXJQYXJ0cykgKyAiXX0iOwogICAgICAgIHZhciBxdWVyeVBhcmFtcyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgICJwYWdlU2l6ZT0xMDAiLAogICAgICAgICAgICAiZmlsdGVyPSIgKyBmaWx0ZXJKc29uCiAgICAgICAgfTsKCiAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgYm9keSA9IGNvbnRleHQuQm9keTsKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CgogICAgICAgIHZhciByZXNwb25zZURhdGEgPSBib2R5Py5kYXRhOwogICAgICAgIHZhciBpdGVtcyA9IHJlc3BvbnNlRGF0YT8uaXRlbXM7CgogICAgICAgIHZhciBwZXJtYW5lbnRDaGF0Um9vbXMgPSBuZXcgTGlzdDxvYmplY3Q+KCk7CgogICAgICAgIGlmIChpdGVtcyAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAodmFyIGl0ZW0gaW4gaXRlbXMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBrZXkgPSBHZXRTdHJpbmcoaXRlbSwgImtleSIpOwogICAgICAgICAgICAgICAgdmFyIGF0dHJzID0gaXRlbT8uYXR0cmlidXRlczsKICAgICAgICAgICAgICAgIHZhciB1c2VyID0gYXR0cnMgIT0gbnVsbCA/IEdldFN0cmluZyhhdHRycywgInVzZXIiKSA6IG51bGw7CiAgICAgICAgICAgICAgICB2YXIgcm9vbVR5cGUgPSBhdHRycyAhPSBudWxsID8gR2V0U3RyaW5nKGF0dHJzLCAicm9vbVR5cGUiKSA6IG51bGw7CgogICAgICAgICAgICAgICAgc3RyaW5nIHJvb21JZCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZiAoYXR0cnMgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShhdHRycywgImNoYXRJbnRlZ3JhdGlvbiIpICYmIGF0dHJzLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IEdldFN0cmluZyhhdHRycy5jaGF0SW50ZWdyYXRpb24sICJyb29tSWQiKTsKCiAgICAgICAgICAgICAgICBwZXJtYW5lbnRDaGF0Um9vbXMuQWRkKG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFsiY2hhdFJvb21LZXkiXSA9IGtleSwKICAgICAgICAgICAgICAgICAgICBbInVzZXIiXSA9IHVzZXIsCiAgICAgICAgICAgICAgICAgICAgWyJyb29tVHlwZSJdID0gcm9vbVR5cGUsCiAgICAgICAgICAgICAgICAgICAgWyJyb29tSWQiXSA9IHJvb21JZAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4oKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInRyYW5zZmVyUGxhbiIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAidmFsaWRhdGlvblJlc3VsdCIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic291cmNlQWR2aXNvcklkIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJhZHZpc29yVHlwZSIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJlbmREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJ0cmFuc2ZlclR5cGUiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImVucmljaGVkUmV6ZXJ2YXRpb25zIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJyZXpDaGF0Um9vbVBsYW4iKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInJlekNoYXRSb29tUHJvY2Vzc2VkSW5kZXgiKTsKICAgICAgICByZXN1bHRbInBlcm1hbmVudENoYXRSb29tcyJdID0gcGVybWFuZW50Q2hhdFJvb21zOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSByZXN1bHQgfSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIENvcHlJZlByZXNlbnQoRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4gdGFyZ2V0LCBkeW5hbWljIHNvdXJjZSwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm47CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoc291cmNlLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKHNvdXJjZSwgbmFtZSk7CiAgICAgICAgICAgICAgICBpZiAodiAhPSBudWxsKSB0YXJnZXRbbmFtZV0gPSB2OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgfQp9Cg=="
384
+ }
385
+ }
386
+ ],
387
+ "transitions": [
388
+ {
389
+ "key": "confirm-permanent-rooms",
390
+ "target": "updating-permanent-chatrooms",
391
+ "triggerType": 0,
392
+ "versionStrategy": "Minor",
393
+ "labels": [
394
+ {
395
+ "label": "Confirm Permanent Rooms",
396
+ "language": "en-US"
397
+ },
398
+ {
399
+ "label": "Kalıcı Odaları Onayla",
400
+ "language": "tr-TR"
401
+ }
402
+ ]
403
+ }
404
+ ]
405
+ },
406
+ {
407
+ "key": "updating-permanent-chatrooms",
408
+ "stateType": 2,
409
+ "versionStrategy": "Minor",
410
+ "labels": [
411
+ {
412
+ "label": "Updating Permanent Chat Rooms",
413
+ "language": "en-US"
414
+ },
415
+ {
416
+ "label": "Kalıcı Sohbet Odaları Güncelleniyor",
417
+ "language": "tr-TR"
418
+ }
419
+ ],
420
+ "transitions": [
421
+ {
422
+ "key": "process-next-permanent",
423
+ "target": "updating-permanent-chatrooms",
424
+ "triggerType": 1,
425
+ "versionStrategy": "Minor",
426
+ "labels": [
427
+ {
428
+ "label": "Process Next Permanent Room",
429
+ "language": "en-US"
430
+ },
431
+ {
432
+ "label": "Sonraki Kalıcı Odayı İşle",
433
+ "language": "tr-TR"
434
+ }
435
+ ],
436
+ "rule": {
437
+ "location": "./src/PermanentProcessNextRule.csx",
438
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwoKLy8vIDxzdW1tYXJ5PgovLy8gQ29uZGl0aW9uIGZvciBwcm9jZXNzLW5leHQtcGVybWFuZW50IGF1dG8gdHJhbnNpdGlvbiBpbiB1cGRhdGluZy1wZXJtYW5lbnQtY2hhdHJvb21zIHN0YXRlLgovLy8gUnVsZTogcGVybWFuZW50UHJvY2Vzc2VkSW5kZXggbGVzcyB0aGFuIHBlcm1hbmVudFJvb21QbGFuLkNvdW50Ci8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBQZXJtYW5lbnRQcm9jZXNzTmV4dFJ1bGUgOiBTY3JpcHRCYXNlLCBJQ29uZGl0aW9uTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxib29sPiBIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChjb250ZXh0Py5JbnN0YW5jZT8uRGF0YSA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChmYWxzZSk7CgogICAgICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2UuRGF0YTsKCiAgICAgICAgICAgIGlmICghSGFzUHJvcGVydHkoZGF0YSwgInBlcm1hbmVudFJvb21QbGFuIikgfHwgZGF0YS5wZXJtYW5lbnRSb29tUGxhbiA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChmYWxzZSk7CgogICAgICAgICAgICB2YXIgcGxhbiA9IGRhdGEucGVybWFuZW50Um9vbVBsYW4gYXMgU3lzdGVtLkNvbGxlY3Rpb25zLklFbnVtZXJhYmxlOwogICAgICAgICAgICBpZiAocGxhbiA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChmYWxzZSk7CgogICAgICAgICAgICBpbnQgdG90YWxDb3VudCA9IDA7CiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIHBsYW4pIHRvdGFsQ291bnQrKzsKCiAgICAgICAgICAgIGlmICh0b3RhbENvdW50ID09IDApCiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KGZhbHNlKTsKCiAgICAgICAgICAgIGludCBwcm9jZXNzZWRJbmRleCA9IDA7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAicGVybWFuZW50UHJvY2Vzc2VkSW5kZXgiKSkKICAgICAgICAgICAgICAgIGludC5UcnlQYXJzZShkYXRhLnBlcm1hbmVudFByb2Nlc3NlZEluZGV4Py5Ub1N0cmluZygpID8/ICIwIiwgb3V0IHByb2Nlc3NlZEluZGV4KTsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocHJvY2Vzc2VkSW5kZXggPCB0b3RhbENvdW50KTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbikKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQoZmFsc2UpOwogICAgICAgIH0KICAgIH0KfQo="
439
+ },
440
+ "onExecutionTasks": [
441
+ {
442
+ "order": 1,
443
+ "task": {
444
+ "domain": "touch",
445
+ "flow": "sys-tasks",
446
+ "key": "execute-permanent-chatroom-update",
447
+ "version": "1.0.0"
448
+ },
449
+ "mapping": {
450
+ "location": "./src/ExecutePermanentChatRoomUpdateMapping.csx",
451
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGV4ZWN1dGUtcGVybWFuZW50LWNoYXRyb29tLXVwZGF0ZSBEaXJlY3RUcmlnZ2VyVGFzayAoVHlwZSAxMikuCi8vLyBQcm9jZXNzZXMgb25lIHBlcm1hbmVudCBjaGF0IHJvb20gYXQgYSB0aW1lIGZyb20gcGVybWFuZW50Um9vbVBsYW4uCi8vLyBUZXJtaW5hdGlvbiAodHJhbnNmZXJUeXBlID09ICJ0ZXJtaW5hdGlvbiIpIOKGkiB0cmlnZ2VycyAndHJhbnNmZXInIHRyYW5zaXRpb24gKG9sZCBhZHZpc29yIG91dCwgbmV3IGluKS4KLy8vIEFubnVhbCBMZWF2ZSAodHJhbnNmZXJUeXBlID09ICJhbm51YWwtbGVhdmUiKSDihpIgdHJpZ2dlcnMgJ3VwZGF0ZScgdHJhbnNpdGlvbiAoYWRkIG5ldyBhZHZpc29yLCBrZWVwIG9sZCkuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBFeGVjdXRlUGVybWFuZW50Q2hhdFJvb21VcGRhdGVNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciB0cmlnZ2VyVGFzayA9IHRhc2sgYXMgRGlyZWN0VHJpZ2dlclRhc2s7CiAgICAgICAgaWYgKHRyaWdnZXJUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEaXJlY3RUcmlnZ2VyVGFzayIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkluc3RhbmNlIGRhdGEgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIHBlcm1hbmVudFJvb21QbGFuID0gZGF0YS5wZXJtYW5lbnRSb29tUGxhbjsKICAgICAgICBpZiAocGVybWFuZW50Um9vbVBsYW4gPT0gbnVsbCkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gbmV3IHsgc2tpcHBlZCA9IHRydWUsIHJlYXNvbiA9ICJuby1wZXJtYW5lbnRSb29tUGxhbiIgfSB9KTsKCiAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgInBlcm1hbmVudFByb2Nlc3NlZEluZGV4IikpCiAgICAgICAgICAgIGludC5UcnlQYXJzZShkYXRhLnBlcm1hbmVudFByb2Nlc3NlZEluZGV4Py5Ub1N0cmluZygpID8/ICIwIiwgb3V0IHByb2Nlc3NlZEluZGV4KTsKCiAgICAgICAgdmFyIGl0ZW1zID0gcGVybWFuZW50Um9vbVBsYW4gYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICBpZiAoaXRlbXMgPT0gbnVsbCkKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gbmV3IHsgc2tpcHBlZCA9IHRydWUgfSB9KTsKCiAgICAgICAgdmFyIGl0ZW1zTGlzdCA9IGl0ZW1zLlRvTGlzdCgpOwogICAgICAgIGlmIChwcm9jZXNzZWRJbmRleCA+PSBpdGVtc0xpc3QuQ291bnQpCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlIH0gfSk7CgogICAgICAgIGR5bmFtaWMgY3VycmVudEl0ZW0gPSBpdGVtc0xpc3RbcHJvY2Vzc2VkSW5kZXhdOwogICAgICAgIHZhciBjaGF0Um9vbUtleSA9IGN1cnJlbnRJdGVtPy5jaGF0Um9vbUtleT8uVG9TdHJpbmcoKTsKICAgICAgICB2YXIgdGFyZ2V0QWR2aXNvciA9IGN1cnJlbnRJdGVtPy50YXJnZXRBZHZpc29yPy5Ub1N0cmluZygpOwoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoY2hhdFJvb21LZXkpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KHRhcmdldEFkdmlzb3IpKQogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSBuZXcgeyBza2lwcGVkID0gdHJ1ZSB9IH0pOwoKICAgICAgICB2YXIgdHJhbnNmZXJUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJ0cmFuc2ZlclR5cGUiKTsKCiAgICAgICAgdHJpZ2dlclRhc2suU2V0RG9tYWluKCJ0b3VjaCIpOwogICAgICAgIHRyaWdnZXJUYXNrLlNldEZsb3coImNoYXQtcm9vbSIpOwogICAgICAgIHRyaWdnZXJUYXNrLlNldEtleShjaGF0Um9vbUtleSk7CgogICAgICAgIGlmICh0cmFuc2ZlclR5cGUgPT0gInRlcm1pbmF0aW9uIikKICAgICAgICB7CiAgICAgICAgICAgIHRyaWdnZXJUYXNrLlNldFRyYW5zaXRpb25OYW1lKCJ0cmFuc2ZlciIpOwogICAgICAgICAgICB0cmlnZ2VyVGFzay5TZXRCb2R5KG5ldyB7IG5ld0Fkdmlzb3JJZCA9IHRhcmdldEFkdmlzb3IgfSk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHRyaWdnZXJUYXNrLlNldFRyYW5zaXRpb25OYW1lKCJ1cGRhdGUiKTsKICAgICAgICAgICAgdHJpZ2dlclRhc2suU2V0Qm9keShuZXcgeyBuZXdNZW1iZXJJZCA9IHRhcmdldEFkdmlzb3IgfSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciBzdWNjZXNzID0gY29udGV4dC5Cb2R5Py5pc1N1Y2Nlc3MgPT0gdHJ1ZTsKCiAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICBpZiAoZGF0YSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGEsICJwZXJtYW5lbnRQcm9jZXNzZWRJbmRleCIpKQogICAgICAgICAgICBpbnQuVHJ5UGFyc2UoZGF0YS5wZXJtYW5lbnRQcm9jZXNzZWRJbmRleD8uVG9TdHJpbmcoKSA/PyAiMCIsIG91dCBwcm9jZXNzZWRJbmRleCk7CgogICAgICAgIHZhciByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4oKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInRyYW5zZmVyUGxhbiIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAidmFsaWRhdGlvblJlc3VsdCIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic291cmNlQWR2aXNvcklkIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJhZHZpc29yVHlwZSIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJlbmREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJ0cmFuc2ZlclR5cGUiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImVucmljaGVkUmV6ZXJ2YXRpb25zIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJyZXpDaGF0Um9vbVBsYW4iKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInBlcm1hbmVudFJvb21QbGFuIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJwZXJtYW5lbnRDaGF0Um9vbXMiKTsKICAgICAgICByZXN1bHRbInBlcm1hbmVudFByb2Nlc3NlZEluZGV4Il0gPSBwcm9jZXNzZWRJbmRleCArIDE7CiAgICAgICAgcmVzdWx0WyJsYXN0UGVybWFuZW50Q2hhdFJvb21TdWNjZXNzIl0gPSBzdWNjZXNzOwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSByZXN1bHQgfSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIENvcHlJZlByZXNlbnQoRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4gdGFyZ2V0LCBkeW5hbWljIHNvdXJjZSwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm47CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoc291cmNlLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKHNvdXJjZSwgbmFtZSk7CiAgICAgICAgICAgICAgICBpZiAodiAhPSBudWxsKSB0YXJnZXRbbmFtZV0gPSB2OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgfQp9Cg=="
452
+ }
453
+ }
454
+ ]
455
+ },
456
+ {
457
+ "key": "permanent-done",
458
+ "target": "completed",
459
+ "triggerType": 1,
460
+ "versionStrategy": "Minor",
461
+ "labels": [
462
+ {
463
+ "label": "Permanent Rooms Done",
464
+ "language": "en-US"
465
+ },
466
+ {
467
+ "label": "Kalıcı Odalar Tamamlandı",
468
+ "language": "tr-TR"
469
+ }
470
+ ],
471
+ "rule": {
472
+ "location": "./src/PermanentDoneRule.csx",
473
+ "code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwoKLy8vIDxzdW1tYXJ5PgovLy8gQ29uZGl0aW9uIGZvciBwZXJtYW5lbnQtZG9uZSBhdXRvIHRyYW5zaXRpb24gaW4gdXBkYXRpbmctcGVybWFuZW50LWNoYXRyb29tcyBzdGF0ZS4KLy8vIFJ1bGU6IHBlcm1hbmVudFJvb21QbGFuIGlzIG51bGwvZW1wdHkgT1IgcGVybWFuZW50UHJvY2Vzc2VkSW5kZXggPj0gcGVybWFuZW50Um9vbVBsYW4uQ291bnQKLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFBlcm1hbmVudERvbmVSdWxlIDogU2NyaXB0QmFzZSwgSUNvbmRpdGlvbk1hcHBpbmcKewogICAgcHVibGljIFRhc2s8Ym9vbD4gSGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoY29udGV4dD8uSW5zdGFuY2U/LkRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQodHJ1ZSk7CgogICAgICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2UuRGF0YTsKCiAgICAgICAgICAgIGlmICghSGFzUHJvcGVydHkoZGF0YSwgInBlcm1hbmVudFJvb21QbGFuIikgfHwgZGF0YS5wZXJtYW5lbnRSb29tUGxhbiA9PSBudWxsKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdCh0cnVlKTsKCiAgICAgICAgICAgIHZhciBwbGFuID0gZGF0YS5wZXJtYW5lbnRSb29tUGxhbiBhcyBTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmFibGU7CiAgICAgICAgICAgIGlmIChwbGFuID09IG51bGwpCiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHRydWUpOwoKICAgICAgICAgICAgaW50IHRvdGFsQ291bnQgPSAwOwogICAgICAgICAgICBmb3JlYWNoICh2YXIgaXRlbSBpbiBwbGFuKSB0b3RhbENvdW50Kys7CgogICAgICAgICAgICBpZiAodG90YWxDb3VudCA9PSAwKQogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdCh0cnVlKTsKCiAgICAgICAgICAgIGludCBwcm9jZXNzZWRJbmRleCA9IDA7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAicGVybWFuZW50UHJvY2Vzc2VkSW5kZXgiKSkKICAgICAgICAgICAgICAgIGludC5UcnlQYXJzZShkYXRhLnBlcm1hbmVudFByb2Nlc3NlZEluZGV4Py5Ub1N0cmluZygpID8/ICIwIiwgb3V0IHByb2Nlc3NlZEluZGV4KTsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocHJvY2Vzc2VkSW5kZXggPj0gdG90YWxDb3VudCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24pCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KHRydWUpOwogICAgICAgIH0KICAgIH0KfQo="
474
+ }
475
+ }
476
+ ]
477
+ },
478
+ {
479
+ "key": "completed",
480
+ "stateType": 3,
481
+ "versionStrategy": "Minor",
482
+ "labels": [
483
+ {
484
+ "label": "Transfer Completed",
485
+ "language": "en-US"
486
+ },
487
+ {
488
+ "label": "Transfer Tamamlandı",
489
+ "language": "tr-TR"
490
+ }
491
+ ]
492
+ },
493
+ {
494
+ "key": "cancelled",
495
+ "stateType": 3,
496
+ "versionStrategy": "Minor",
497
+ "labels": [
498
+ {
499
+ "label": "Transfer Cancelled",
500
+ "language": "en-US"
501
+ },
502
+ {
503
+ "label": "Transfer İptal Edildi",
504
+ "language": "tr-TR"
505
+ }
506
+ ]
507
+ }
508
+ ],
509
+ "subFlowType": "S",
510
+ "timeout": null
511
+ }
512
+ }