@burgan-tech/morph-touch-runtime 0.0.7 → 0.0.8
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.
- package/burgan-tech-morph-touch-runtime-0.0.8.tgz +0 -0
- package/morph-touch/Functions/get-absence-entry.1.0.0.json +1 -1
- package/morph-touch/Functions/get-advisor-stats.1.0.0.json +1 -1
- package/morph-touch/Functions/get-available-slots.1.0.0.json +1 -1
- package/morph-touch/Functions/get-rezervations.1.0.0.json +1 -1
- package/morph-touch/Functions/src/GetAbsenceEntryMapping.csx +18 -4
- package/morph-touch/Functions/src/GetAdvisorStatsMapping.csx +22 -8
- package/morph-touch/Functions/src/GetAvailableSlotsMapping.csx +22 -14
- package/morph-touch/Functions/src/GetRezervationsMapping.csx +19 -2
- package/morph-touch/Functions/src/SendCancelNotificationMapping.csx +27 -2
- package/morph-touch/Tasks/login-for-chat.1.0.0.json +27 -0
- package/morph-touch/Tasks/register-for-chat.1.0.0.json +27 -0
- package/morph-touch/Workflows/chat-room.json +273 -14
- package/morph-touch/Workflows/notification-sender.json +2 -2
- package/morph-touch/Workflows/rezervation-start.json +39 -2
- package/morph-touch/Workflows/rezervation-transfer.json +44 -7
- package/morph-touch/Workflows/rezervation-update.json +4 -4
- package/morph-touch/Workflows/rezervation.json +135 -45
- package/morph-touch/Workflows/src/CanStartRezervationTimerMapping.csx +18 -3
- package/morph-touch/Workflows/src/ChatRoomRemoveMapping.csx +10 -1
- package/morph-touch/Workflows/src/ChatRoomTransferInviteMapping.csx +10 -1
- package/morph-touch/Workflows/src/ChatRoomTransferRemoveMapping.csx +9 -1
- package/morph-touch/Workflows/src/ChatRoomUpdateMapping.csx +10 -1
- package/morph-touch/Workflows/src/CheckDuplicateRezervationMapping.csx +17 -3
- package/morph-touch/Workflows/src/CheckRandevuTimeMapping.csx +16 -2
- package/morph-touch/Workflows/src/CreateChatRoomForRezervationMapping.csx +12 -2
- package/morph-touch/Workflows/src/CreatePermanentChatRoomMapping.csx +11 -1
- package/morph-touch/Workflows/src/EnrichRezervationsForTransferMapping.csx +18 -4
- package/morph-touch/Workflows/src/FetchRoomMessagesForSummaryMapping.csx +10 -2
- package/morph-touch/Workflows/src/InviteAdvisorForRandevuUpdateMapping.csx +10 -1
- package/morph-touch/Workflows/src/InviteNewAdvisorToRezervationRoomMapping.csx +11 -2
- package/morph-touch/Workflows/src/InviteNewParticipantToRandevuRoomMapping.csx +10 -1
- package/morph-touch/Workflows/src/JoinChatRoomForAddParticipantMapping.csx +5 -1
- package/morph-touch/Workflows/src/JoinChatRoomForRandevuStartMapping.csx +5 -1
- package/morph-touch/Workflows/src/JoinChatRoomForRezervationMapping.csx +4 -0
- package/morph-touch/Workflows/src/JoinMatrixRoomMapping.csx +11 -1
- package/morph-touch/Workflows/src/JoinUserToRoomMapping.csx +6 -0
- package/morph-touch/Workflows/src/LoginForAddParticipantChatMapping.csx +35 -6
- package/morph-touch/Workflows/src/LoginForChatRoomMapping.csx +121 -0
- package/morph-touch/Workflows/src/LoginForJoinUserToRoomMapping.csx +142 -0
- package/morph-touch/Workflows/src/LoginForRandevuStartChatMapping.csx +35 -10
- package/morph-touch/Workflows/src/LoginForTransferChatMapping.csx +153 -0
- package/morph-touch/Workflows/src/RegisterForAddParticipantChatMapping.csx +74 -0
- package/morph-touch/Workflows/src/RegisterForChatRoomMapping.csx +74 -0
- package/morph-touch/Workflows/src/RegisterForJoinUserToRoomMapping.csx +87 -0
- package/morph-touch/Workflows/src/RegisterForRandevuStartChatMapping.csx +80 -0
- package/morph-touch/Workflows/src/RegisterForTransferChatMapping.csx +113 -0
- package/morph-touch/Workflows/src/SendPushNotificationMapping.csx +25 -4
- package/morph-touch/Workflows/src/SendSmsNotificationMapping.csx +25 -4
- package/morph-touch/Workflows/src/SendSummaryToNewRoomMapping.csx +10 -2
- package/morph-touch/Workflows/src/SetRoomHistoryVisibilityMapping.csx +12 -4
- package/morph-touch/Workflows/src/ValidateDateForRezervationMapping.csx +16 -2
- package/morph-touch/Workflows/src/ValidateSlotForRandevuUpdateMapping.csx +22 -15
- package/morph-touch/Workflows/src/ValidateSlotForRezervationMapping.csx +23 -16
- package/morph-touch/Workflows/src/ValidateTransferMapping.csx +16 -2
- package/morph-touch/doc/morph-touch-domain.en.md +1 -1
- package/morph-touch/doc/morph-touch-domain.md +1 -1
- package/package.json +1 -1
- package/vnext.config.json +1 -1
- package/burgan-tech-morph-touch-runtime-0.0.7.tgz +0 -0
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
},
|
|
142
142
|
"mapping": {
|
|
143
143
|
"location": "./src/SendSmsNotificationMapping.csx",
|
|
144
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzZW5kLXNtcy1ub3RpZmljYXRpb24gSHR0cFRhc2sgKFR5cGUgNikuCi8vLyBCdWlsZHMgU01TIHJlcXVlc3QgYm9keSBmcm9tIG5vdGlmaWNhdGlvbi1zZW5kZXIgaW5zdGFuY2UgZGF0YSBhbmQgc2VuZHMgdmlhIE1lc3NhZ2luZ0dhdGV3YXkuCi8vLyBDb250ZW50IGlzIGRldGVybWluZWQgYnkgdXNlclR5cGU6Ci8vLyAgIC0gYWR2aXNvcjogIlNheWluIHthZHZpc29yTmFtZX0sIHtkYXRlfSB0YXJpaGxpIHJhbmRldnVudXogb2x1c3R1cnVsbXVzdHVyLiIKLy8vICAgLSB1c2VyOiAiUmFuZGV2dW51eiBiYXNhcml5bGEgb2x1c3R1cnVsbXVzdHVyLiBUYXJpaDoge2RhdGV9IgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgU2VuZFNtc05vdGlmaWNhdGlvbk1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIGJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1lc3NhZ2luZ0Jhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShiYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1lc3NhZ2luZ0Jhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGZ1bGxVcmwgPSBiYXNlVXJsLlRyaW1FbmQoJy8nKSArICIvTWVzc2FnaW5nL3Ntcy9tZXNzYWdlL3N0cmluZyI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkluc3RhbmNlIGRhdGEgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIHVzZXJUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyVHlwZSIpID8/ICJ1c2VyIjsKCiAgICAgICAgdmFyIHJlY2lwaWVudCA9IGRhdGEucmVjaXBpZW50OwogICAgICAgIGlmIChyZWNpcGllbnQgPT0gbnVsbCB8fCAhSGFzUHJvcGVydHkocmVjaXBpZW50LCAicGhvbmUiKSB8fCByZWNpcGllbnQucGhvbmUgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oInJlY2lwaWVudC5waG9uZSBpcyByZXF1aXJlZCBmb3IgU01TIik7CgogICAgICAgIHZhciBwaG9uZSA9IHJlY2lwaWVudC5waG9uZTsKICAgICAgICB2YXIgY291bnRyeUNvZGUgPSBHZXRTdHJpbmcocGhvbmUsICJjb3VudHJ5Q29kZSIpID8/ICI5MCI7CiAgICAgICAgdmFyIHByZWZpeCA9IEdldFN0cmluZyhwaG9uZSwgInByZWZpeCIpID8/ICIiOwogICAgICAgIHZhciBudW1iZXIgPSBHZXRTdHJpbmcocGhvbmUsICJudW1iZXIiKSA/PyAiIjsKCiAgICAgICAgdmFyIGN0eCA9IGRhdGEuY29udGV4dDsKICAgICAgICB2YXIgYWR2aXNvck5hbWUgPSBjdHggIT0gbnVsbCA/
|
|
144
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzZW5kLXNtcy1ub3RpZmljYXRpb24gSHR0cFRhc2sgKFR5cGUgNikuCi8vLyBCdWlsZHMgU01TIHJlcXVlc3QgYm9keSBmcm9tIG5vdGlmaWNhdGlvbi1zZW5kZXIgaW5zdGFuY2UgZGF0YSBhbmQgc2VuZHMgdmlhIE1lc3NhZ2luZ0dhdGV3YXkuCi8vLyBDb250ZW50IGlzIGRldGVybWluZWQgYnkgdXNlclR5cGU6Ci8vLyAgIC0gYWR2aXNvcjogIlNheWluIHthZHZpc29yTmFtZX0sIHtkYXRlfSB0YXJpaGxpIHJhbmRldnVudXogb2x1c3R1cnVsbXVzdHVyLiIKLy8vICAgLSB1c2VyOiAiUmFuZGV2dW51eiBiYXNhcml5bGEgb2x1c3R1cnVsbXVzdHVyLiBUYXJpaDoge2RhdGV9IgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgU2VuZFNtc05vdGlmaWNhdGlvbk1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIGJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1lc3NhZ2luZ0Jhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShiYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1lc3NhZ2luZ0Jhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CiAgICAgICAgdmFyIGZ1bGxVcmwgPSBiYXNlVXJsLlRyaW1FbmQoJy8nKSArICIvTWVzc2FnaW5nL3Ntcy9tZXNzYWdlL3N0cmluZyI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkluc3RhbmNlIGRhdGEgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIHVzZXJUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VyVHlwZSIpID8/ICJ1c2VyIjsKCiAgICAgICAgdmFyIHJlY2lwaWVudCA9IGRhdGEucmVjaXBpZW50OwogICAgICAgIGlmIChyZWNpcGllbnQgPT0gbnVsbCB8fCAhSGFzUHJvcGVydHkocmVjaXBpZW50LCAicGhvbmUiKSB8fCByZWNpcGllbnQucGhvbmUgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oInJlY2lwaWVudC5waG9uZSBpcyByZXF1aXJlZCBmb3IgU01TIik7CgogICAgICAgIHZhciBwaG9uZSA9IHJlY2lwaWVudC5waG9uZTsKICAgICAgICB2YXIgY291bnRyeUNvZGUgPSBHZXRTdHJpbmcocGhvbmUsICJjb3VudHJ5Q29kZSIpID8/ICI5MCI7CiAgICAgICAgdmFyIHByZWZpeCA9IEdldFN0cmluZyhwaG9uZSwgInByZWZpeCIpID8/ICIiOwogICAgICAgIHZhciBudW1iZXIgPSBHZXRTdHJpbmcocGhvbmUsICJudW1iZXIiKSA/PyAiIjsKCiAgICAgICAgdmFyIGN0eCA9IGRhdGEuY29udGV4dDsKICAgICAgICB2YXIgYWR2aXNvck5hbWUgPSBjdHggIT0gbnVsbCA/IEdldFN0cmluZyhjdHgsICJhZHZpc29yTmFtZSIpIDogbnVsbDsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZSA9IGN0eCAhPSBudWxsID8gR2V0U3RyaW5nKGN0eCwgInN0YXJ0RGF0ZVRpbWUiKSA6IG51bGw7CiAgICAgICAgdmFyIHJlc2VydmF0aW9uS2V5ID0gY3R4ICE9IG51bGwgPyBHZXRTdHJpbmcoY3R4LCAicmVzZXJ2YXRpb25LZXkiKSA6IG51bGw7CgogICAgICAgIHN0cmluZyBmb3JtYXR0ZWREYXRlID0gRm9ybWF0SW5CdXNpbmVzc1RpbWVab25lKHN0YXJ0RGF0ZVRpbWUpOwoKICAgICAgICBzdHJpbmcgY29udGVudDsKICAgICAgICBpZiAodXNlclR5cGUgPT0gImFkdmlzb3IiKQogICAgICAgICAgICBjb250ZW50ID0gIlNheWluICIgKyAoYWR2aXNvck5hbWUgPz8gIkRhbmlzbWFuIikgKyAiLCAiICsgZm9ybWF0dGVkRGF0ZSArICIgdGFyaWhsaSByYW5kZXZ1bnV6IG9sdXN0dXJ1bG11c3R1ci4iOwogICAgICAgIGVsc2UKICAgICAgICAgICAgY29udGVudCA9ICJSYW5kZXZ1bnV6IGJhc2FyaXlsYSBvbHVzdHVydWxtdXN0dXIuIFRhcmloOiAiICsgZm9ybWF0dGVkRGF0ZTsKCiAgICAgICAgdmFyIGJvZHkgPSBuZXcKICAgICAgICB7CiAgICAgICAgICAgIHNlbmRlciA9ICJBdXRvRGV0ZWN0IiwKICAgICAgICAgICAgc21zVHlwZSA9ICJGYXN0IiwKICAgICAgICAgICAgcGhvbmUgPSBuZXcKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291bnRyeUNvZGUsCiAgICAgICAgICAgICAgICBwcmVmaXgsCiAgICAgICAgICAgICAgICBudW1iZXIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgY29udGVudCwKICAgICAgICAgICAgY3VzdG9tZXJObyA9IDAsCiAgICAgICAgICAgIGNpdGl6ZW5zaGlwTm8gPSAiIiwKICAgICAgICAgICAgdGFncyA9IChzdHJpbmdbXSludWxsLAogICAgICAgICAgICBpbnN0YW50UmVtaW5kZXIgPSBmYWxzZSwKICAgICAgICAgICAgcHJvY2VzcyA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuYW1lID0gIm1vcnBoLXRvdWNoIiwKICAgICAgICAgICAgICAgIGl0ZW1JZCA9IHJlc2VydmF0aW9uS2V5ID8/ICIiLAogICAgICAgICAgICAgICAgYWN0aW9uID0gIm5vdGlmaWNhdGlvbi1zZW5kZXIiLAogICAgICAgICAgICAgICAgaWRlbnRpdHkgPSAic3lzdGVtIgogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShib2R5KTsKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXNwb25zZSA9IGNvbnRleHQuQm9keTsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUgfHwgcmVzcG9uc2U/LnN0YXR1c0NvZGU/LlRvU3RyaW5nKCkgPT0gIjIwMCIpCiAgICAgICAgewogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBub3RpZmljYXRpb25SZXN1bHRzID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc21zUmVzdWx0ID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBzZW50ID0gdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAoc3RyaW5nKW51bGwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHN0cmluZyBlcnJvck1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/IHJlc3BvbnNlPy5Ub1N0cmluZygpID8/ICJTTVMgc2VuZCBmYWlsZWQiOwogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBub3RpZmljYXRpb25SZXN1bHRzID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc21zUmVzdWx0ID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBzZW50ID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBGb3JtYXRJbkJ1c2luZXNzVGltZVpvbmUoc3RyaW5nIGRhdGVTdHIpCiAgICB7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGRhdGVTdHIpKSByZXR1cm4gZGF0ZVN0ciA/PyAiIjsKICAgICAgICBpZiAoIURhdGVUaW1lT2Zmc2V0LlRyeVBhcnNlKGRhdGVTdHIsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkRhdGVUaW1lU3R5bGVzLk5vbmUsIG91dCB2YXIgZHRvKSkKICAgICAgICAgICAgcmV0dXJuIGRhdGVTdHI7CgogICAgICAgIHZhciB0eiA9IFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCk7CiAgICAgICAgdmFyIGxvY2FsID0gVGltZVpvbmVJbmZvLkNvbnZlcnRUaW1lRnJvbVV0YyhkdG8uVXRjRGF0ZVRpbWUsIHR6KTsKICAgICAgICByZXR1cm4gbG9jYWwuVG9TdHJpbmcoImRkLk1NLnl5eXkgSEg6bW0iKTsKICAgIH0KCiAgICBwcml2YXRlIFRpbWVab25lSW5mbyBSZXNvbHZlQnVzaW5lc3NUaW1lWm9uZSgpCiAgICB7CiAgICAgICAgdmFyIGlkID0gR2V0Q29uZmlnVmFsdWUoIkFwcG9pbnRtZW50czpUaW1lWm9uZSIpCiAgICAgICAgICAgICAgPz8gR2V0Q29uZmlnVmFsdWUoIkFQUE9JTlRNRU5UX1RJTUVaT05FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoaWQpKSBpZCA9ICJFdXJvcGUvSXN0YW5idWwiOwogICAgICAgIHRyeSB7IHJldHVybiBUaW1lWm9uZUluZm8uRmluZFN5c3RlbVRpbWVab25lQnlJZChpZC5UcmltKCkpOyB9IGNhdGNoIHsgfQogICAgICAgIHRyeSB7IHJldHVybiBUaW1lWm9uZUluZm8uRmluZFN5c3RlbVRpbWVab25lQnlJZCgiVHVya2V5IFN0YW5kYXJkIFRpbWUiKTsgfSBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gVGltZVpvbmVJbmZvLkNyZWF0ZUN1c3RvbVRpbWVab25lKAogICAgICAgICAgICAiVFJUIiwgVGltZVNwYW4uRnJvbUhvdXJzKDMpLCAiVFJUIChVVEMrMykiLCAiVFJUIChVVEMrMykiKTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
],
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
},
|
|
214
214
|
"mapping": {
|
|
215
215
|
"location": "./src/SendPushNotificationMapping.csx",
|
|
216
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzZW5kLXB1c2gtbm90aWZpY2F0aW9uIEh0dHBUYXNrIChUeXBlIDYpLgovLy8gQnVpbGRzIFB1c2ggbm90aWZpY2F0aW9uIHJlcXVlc3QgYm9keSBmcm9tIG5vdGlmaWNhdGlvbi1zZW5kZXIgaW5zdGFuY2UgZGF0YQovLy8gYW5kIHNlbmRzIHZpYSBNZXNzYWdpbmdHYXRld2F5IFB1c2ggQVBJLgovLy8gQ29udGVudCBpcyBkZXRlcm1pbmVkIGJ5IHVzZXJUeXBlOgovLy8gICAtIGFkdmlzb3I6IHRpdGxlPSJZZW5pIFJhbmRldnUiLCBjb250ZW50PSJTYXlpbiB7YWR2aXNvck5hbWV9LCB7ZGF0ZX0gdGFyaWhsaSByYW5kZXZ1bnV6IG9sdXN0dXJ1bG11c3R1ci4iCi8vLyAgIC0gdXNlcjogdGl0bGU9IlJhbmRldnUgT25heWxhbmRpIiwgY29udGVudD0iUmFuZGV2dW51eiBiYXNhcml5bGEgb2x1c3R1cnVsbXVzdHVyLiBUYXJpaDoge2RhdGV9IgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgU2VuZFB1c2hOb3RpZmljYXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIHNlY3JldE5hbWUgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlY3JldE5hbWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBiYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJNZXNzYWdpbmdCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNZXNzYWdpbmdCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwogICAgICAgIHZhciBmdWxsVXJsID0gYmFzZVVybC5UcmltRW5kKCcvJykgKyAiL01lc3NhZ2luZy9wdXNoLW5vdGlmaWNhdGlvbi9tZXNzYWdlIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgdXNlclR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXJUeXBlIikgPz8gInVzZXIiOwoKICAgICAgICB2YXIgcmVjaXBpZW50ID0gZGF0YS5yZWNpcGllbnQ7CiAgICAgICAgaWYgKHJlY2lwaWVudCA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigicmVjaXBpZW50IGlzIHJlcXVpcmVkIGZvciBQdXNoIG5vdGlmaWNhdGlvbiIpOwoKICAgICAgICB2YXIgY2l0aXplbnNoaXBObyA9IEdldFN0cmluZyhyZWNpcGllbnQsICJjaXRpemVuc2hpcE5vIikgPz8gIiI7CiAgICAgICAgaW50IGN1c3RvbWVyTm8gPSAwOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShyZWNpcGllbnQsICJjdXN0b21lck5vIikpCiAgICAgICAgewogICAgICAgICAgICB0cnkgeyBjdXN0b21lck5vID0gKGludClyZWNpcGllbnQuY3VzdG9tZXJObzsgfQogICAgICAgICAgICBjYXRjaCB7IH0KICAgICAgICB9CgogICAgICAgIHZhciBjdHggPSBkYXRhLmNvbnRleHQ7CiAgICAgICAgdmFyIGFkdmlzb3JOYW1lID0gY3R4ICE9IG51bGwgPyBHZXRTdHJpbmcoY3R4LCAiYWR2aXNvck5hbWUiKSA6IG51bGw7CiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWUgPSBjdHggIT0gbnVsbCA/
|
|
216
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBNYXBwaW5nIGZvciBzZW5kLXB1c2gtbm90aWZpY2F0aW9uIEh0dHBUYXNrIChUeXBlIDYpLgovLy8gQnVpbGRzIFB1c2ggbm90aWZpY2F0aW9uIHJlcXVlc3QgYm9keSBmcm9tIG5vdGlmaWNhdGlvbi1zZW5kZXIgaW5zdGFuY2UgZGF0YQovLy8gYW5kIHNlbmRzIHZpYSBNZXNzYWdpbmdHYXRld2F5IFB1c2ggQVBJLgovLy8gQ29udGVudCBpcyBkZXRlcm1pbmVkIGJ5IHVzZXJUeXBlOgovLy8gICAtIGFkdmlzb3I6IHRpdGxlPSJZZW5pIFJhbmRldnUiLCBjb250ZW50PSJTYXlpbiB7YWR2aXNvck5hbWV9LCB7ZGF0ZX0gdGFyaWhsaSByYW5kZXZ1bnV6IG9sdXN0dXJ1bG11c3R1ci4iCi8vLyAgIC0gdXNlcjogdGl0bGU9IlJhbmRldnUgT25heWxhbmRpIiwgY29udGVudD0iUmFuZGV2dW51eiBiYXNhcml5bGEgb2x1c3R1cnVsbXVzdHVyLiBUYXJpaDoge2RhdGV9IgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgU2VuZFB1c2hOb3RpZmljYXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIHNlY3JldE5hbWUgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlY3JldE5hbWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBiYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJNZXNzYWdpbmdCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNZXNzYWdpbmdCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwogICAgICAgIHZhciBmdWxsVXJsID0gYmFzZVVybC5UcmltRW5kKCcvJykgKyAiL01lc3NhZ2luZy9wdXNoLW5vdGlmaWNhdGlvbi9tZXNzYWdlIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgdXNlclR5cGUgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXJUeXBlIikgPz8gInVzZXIiOwoKICAgICAgICB2YXIgcmVjaXBpZW50ID0gZGF0YS5yZWNpcGllbnQ7CiAgICAgICAgaWYgKHJlY2lwaWVudCA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigicmVjaXBpZW50IGlzIHJlcXVpcmVkIGZvciBQdXNoIG5vdGlmaWNhdGlvbiIpOwoKICAgICAgICB2YXIgY2l0aXplbnNoaXBObyA9IEdldFN0cmluZyhyZWNpcGllbnQsICJjaXRpemVuc2hpcE5vIikgPz8gIiI7CiAgICAgICAgaW50IGN1c3RvbWVyTm8gPSAwOwogICAgICAgIGlmIChIYXNQcm9wZXJ0eShyZWNpcGllbnQsICJjdXN0b21lck5vIikpCiAgICAgICAgewogICAgICAgICAgICB0cnkgeyBjdXN0b21lck5vID0gKGludClyZWNpcGllbnQuY3VzdG9tZXJObzsgfQogICAgICAgICAgICBjYXRjaCB7IH0KICAgICAgICB9CgogICAgICAgIHZhciBjdHggPSBkYXRhLmNvbnRleHQ7CiAgICAgICAgdmFyIGFkdmlzb3JOYW1lID0gY3R4ICE9IG51bGwgPyBHZXRTdHJpbmcoY3R4LCAiYWR2aXNvck5hbWUiKSA6IG51bGw7CiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWUgPSBjdHggIT0gbnVsbCA/IEdldFN0cmluZyhjdHgsICJzdGFydERhdGVUaW1lIikgOiBudWxsOwogICAgICAgIHZhciByZXNlcnZhdGlvbktleSA9IGN0eCAhPSBudWxsID8gR2V0U3RyaW5nKGN0eCwgInJlc2VydmF0aW9uS2V5IikgOiBudWxsOwoKICAgICAgICBzdHJpbmcgZm9ybWF0dGVkRGF0ZSA9IEZvcm1hdEluQnVzaW5lc3NUaW1lWm9uZShzdGFydERhdGVUaW1lKTsKCiAgICAgICAgc3RyaW5nIHRpdGxlOwogICAgICAgIHN0cmluZyBjb250ZW50OwogICAgICAgIGlmICh1c2VyVHlwZSA9PSAiYWR2aXNvciIpCiAgICAgICAgewogICAgICAgICAgICB0aXRsZSA9ICJZZW5pIFJhbmRldnUiOwogICAgICAgICAgICBjb250ZW50ID0gIlNheWluICIgKyAoYWR2aXNvck5hbWUgPz8gIkRhbmlzbWFuIikgKyAiLCAiICsgZm9ybWF0dGVkRGF0ZSArICIgdGFyaWhsaSByYW5kZXZ1bnV6IG9sdXN0dXJ1bG11c3R1ci4iOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICB0aXRsZSA9ICJSYW5kZXZ1IE9uYXlsYW5kaSI7CiAgICAgICAgICAgIGNvbnRlbnQgPSAiUmFuZGV2dW51eiBiYXNhcml5bGEgb2x1c3R1cnVsbXVzdHVyLiBUYXJpaDogIiArIGZvcm1hdHRlZERhdGU7CiAgICAgICAgfQoKICAgICAgICB2YXIgYm9keSA9IG5ldwogICAgICAgIHsKICAgICAgICAgICAgc2VuZGVyID0gIkF1dG9EZXRlY3QiLAogICAgICAgICAgICBjaXRpemVuc2hpcE5vLAogICAgICAgICAgICB0aXRsZSwKICAgICAgICAgICAgY29udGVudCwKICAgICAgICAgICAgY3VzdG9tZXJObywKICAgICAgICAgICAgY3VzdG9tUGFyYW1ldGVycyA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgdGFncyA9IG5ldyBzdHJpbmdbXSB7ICJtb3JwaC10b3VjaCIsICJub3RpZmljYXRpb24iLCAicmVzZXJ2YXRpb24iIH0sCiAgICAgICAgICAgIHNhdmVJbmJveCA9IHRydWUsCiAgICAgICAgICAgIG5vdGlmaWNhdGlvblR5cGUgPSAicHVzaCIsCiAgICAgICAgICAgIHByb2Nlc3MgPSBuZXcKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbmFtZSA9ICJtb3JwaC10b3VjaCIsCiAgICAgICAgICAgICAgICBpdGVtSWQgPSByZXNlcnZhdGlvbktleSA/PyAiIiwKICAgICAgICAgICAgICAgIGFjdGlvbiA9ICJub3RpZmljYXRpb24tc2VuZGVyIiwKICAgICAgICAgICAgICAgIGlkZW50aXR5ID0gInN5c3RlbSIKICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkoYm9keSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3BvbnNlID0gY29udGV4dC5Cb2R5OwogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKCiAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3MgPT0gdHJ1ZSB8fCByZXNwb25zZT8uc3RhdHVzQ29kZT8uVG9TdHJpbmcoKSA9PSAiMjAwIikKICAgICAgICB7CiAgICAgICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvblJlc3VsdHMgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBwdXNoUmVzdWx0ID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBzZW50ID0gdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAoc3RyaW5nKW51bGwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHN0cmluZyBlcnJvck1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/IHJlc3BvbnNlPy5Ub1N0cmluZygpID8/ICJQdXNoIG5vdGlmaWNhdGlvbiBzZW5kIGZhaWxlZCI7CiAgICAgICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvblJlc3VsdHMgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBwdXNoUmVzdWx0ID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBzZW50ID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBGb3JtYXRJbkJ1c2luZXNzVGltZVpvbmUoc3RyaW5nIGRhdGVTdHIpCiAgICB7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGRhdGVTdHIpKSByZXR1cm4gZGF0ZVN0ciA/PyAiIjsKICAgICAgICBpZiAoIURhdGVUaW1lT2Zmc2V0LlRyeVBhcnNlKGRhdGVTdHIsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkRhdGVUaW1lU3R5bGVzLk5vbmUsIG91dCB2YXIgZHRvKSkKICAgICAgICAgICAgcmV0dXJuIGRhdGVTdHI7CgogICAgICAgIHZhciB0eiA9IFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCk7CiAgICAgICAgdmFyIGxvY2FsID0gVGltZVpvbmVJbmZvLkNvbnZlcnRUaW1lRnJvbVV0YyhkdG8uVXRjRGF0ZVRpbWUsIHR6KTsKICAgICAgICByZXR1cm4gbG9jYWwuVG9TdHJpbmcoImRkLk1NLnl5eXkgSEg6bW0iKTsKICAgIH0KCiAgICBwcml2YXRlIFRpbWVab25lSW5mbyBSZXNvbHZlQnVzaW5lc3NUaW1lWm9uZSgpCiAgICB7CiAgICAgICAgdmFyIGlkID0gR2V0Q29uZmlnVmFsdWUoIkFwcG9pbnRtZW50czpUaW1lWm9uZSIpCiAgICAgICAgICAgICAgPz8gR2V0Q29uZmlnVmFsdWUoIkFQUE9JTlRNRU5UX1RJTUVaT05FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoaWQpKSBpZCA9ICJFdXJvcGUvSXN0YW5idWwiOwogICAgICAgIHRyeSB7IHJldHVybiBUaW1lWm9uZUluZm8uRmluZFN5c3RlbVRpbWVab25lQnlJZChpZC5UcmltKCkpOyB9IGNhdGNoIHsgfQogICAgICAgIHRyeSB7IHJldHVybiBUaW1lWm9uZUluZm8uRmluZFN5c3RlbVRpbWVab25lQnlJZCgiVHVya2V5IFN0YW5kYXJkIFRpbWUiKTsgfSBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gVGltZVpvbmVJbmZvLkNyZWF0ZUN1c3RvbVRpbWVab25lKAogICAgICAgICAgICAiVFJUIiwgVGltZVNwYW4uRnJvbUhvdXJzKDMpLCAiVFJUIChVVEMrMykiLCAiVFJUIChVVEMrMykiKTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
],
|
|
@@ -203,7 +203,7 @@
|
|
|
203
203
|
},
|
|
204
204
|
"mapping": {
|
|
205
205
|
"location": "./src/CheckRandevuTimeMapping.csx",
|
|
206
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY2hlY2stcmFuZGV2dS10aW1lIFNjcmlwdCBUYXNrLgovLy8gVmFsaWRhdGVzIHN0YXJ0RGF0ZVRpbWUgaXMgd2l0aGluIDE1IG1pbnV0ZXMuIFRocm93cyBNRUVUX05PVF9TVEFSVEVEIGlmID4xNSBtaW4gdW50aWwgc3RhcnQuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGVja1JhbmRldnVUaW1lTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHByaXZhdGUgY29uc3QgaW50IE1heE1pbnV0ZXNCZWZvcmVTdGFydCA9IDE1OyAgIAoKCgogICAgCgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICAgcmVzcG9uc2UuRGF0YT1uZXcge307CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXNwb25zZQogICAgICAgICk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+
|
|
206
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgY2hlY2stcmFuZGV2dS10aW1lIFNjcmlwdCBUYXNrLgovLy8gVmFsaWRhdGVzIHN0YXJ0RGF0ZVRpbWUgaXMgd2l0aGluIDE1IG1pbnV0ZXMuIFRocm93cyBNRUVUX05PVF9TVEFSVEVEIGlmID4xNSBtaW4gdW50aWwgc3RhcnQuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBDaGVja1JhbmRldnVUaW1lTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHByaXZhdGUgY29uc3QgaW50IE1heE1pbnV0ZXNCZWZvcmVTdGFydCA9IDE1OyAgIAoKCgogICAgCgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICAgcmVzcG9uc2UuRGF0YT1uZXcge307CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXNwb25zZQogICAgICAgICk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHN0YXJ0RGF0ZVRpbWVTdHIpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiTUVFVF9OT1RfU1RBUlRFRDogc3RhcnREYXRlVGltZSBpcyByZXF1aXJlZCIpOwoKICAgICAgICBEYXRlVGltZSBzdGFydERhdGVUaW1lOwogICAgICAgIGlmICghVHJ5UGFyc2VUb1V0YyhzdGFydERhdGVUaW1lU3RyLCBvdXQgc3RhcnREYXRlVGltZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNRUVUX05PVF9TVEFSVEVEOiBJbnZhbGlkIHN0YXJ0RGF0ZVRpbWUgZm9ybWF0Iik7CgogICAgICAgIHZhciBub3cgPSBEYXRlVGltZS5VdGNOb3c7CiAgICAgICAgdmFyIGRpZmYgPSBzdGFydERhdGVUaW1lIC0gbm93OwogICAKICAgICAgICBpZiAoZGlmZi5Ub3RhbE1pbnV0ZXMgPiBNYXhNaW51dGVzQmVmb3JlU3RhcnQpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNRUVUX05PVF9TVEFSVEVEOiBSYW5kZXZ1eWEgMTUgZGFraWthZGFuIGZhemxhIHZhci4iKTsKICAgICAgICBMb2dFcnJvcigiRGlmZiBNaW51dGVzIDoiK2RpZmYuVG90YWxNaW51dGVzKyAiIik7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PgogICAgICAgIHsKICAgICAgICAgICAgeyAidGltZU9rIiwgdHJ1ZSB9LAogICAgICAgICAgICB7ICJtaW51dGVzVW50aWxTdGFydCIsIGRpZmYuVG90YWxNaW51dGVzIH0KICAgICAgICB9OwoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSByZXN1bHQgfSk7CiAgICB9CgogICAgcHJpdmF0ZSBib29sIFRyeVBhcnNlVG9VdGMoc3RyaW5nIGRhdGVTdHIsIG91dCBEYXRlVGltZSB1dGNEYXRlVGltZSkKICAgIHsKICAgICAgICB1dGNEYXRlVGltZSA9IGRlZmF1bHQ7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGRhdGVTdHIpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaWYgKERhdGVUaW1lT2Zmc2V0LlRyeVBhcnNlKGRhdGVTdHIsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUsCiAgICAgICAgICAgIFN5c3RlbS5HbG9iYWxpemF0aW9uLkRhdGVUaW1lU3R5bGVzLk5vbmUsIG91dCB2YXIgZHRvKSkKICAgICAgICB7CiAgICAgICAgICAgIHV0Y0RhdGVUaW1lID0gZHRvLlV0Y0RhdGVUaW1lOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
],
|
|
@@ -396,6 +396,43 @@
|
|
|
396
396
|
"onEntries": [
|
|
397
397
|
{
|
|
398
398
|
"order": 1,
|
|
399
|
+
"task": {
|
|
400
|
+
"domain": "morph-touch",
|
|
401
|
+
"flow": "sys-tasks",
|
|
402
|
+
"key": "register-for-chat",
|
|
403
|
+
"version": "1.0.0"
|
|
404
|
+
},
|
|
405
|
+
"mapping": {
|
|
406
|
+
"location": "./src/RegisterForRandevuStartChatMapping.csx",
|
|
407
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgcmVnaXN0ZXItZm9yLWNoYXQgaW4gcmV6ZXJ2YXRpb24tc3RhcnQgZmxvdy4KLy8vIFJlZ2lzdGVycyB0aGUgdXNlciBiYXNlZCBvbiBwYXJ0aWNpcGFudFR5cGUgKGFkdmlzb3IvaW52aXRlZC9jdXN0b21lcikgb24gU3luYXBzZS4KLy8vIEVycm9yQm91bmRhcnkgb24gdGhlIHRhc2sgaWdub3JlcyBNX1VTRVJfSU5fVVNFIGFuZCBvdGhlciBlcnJvcnMgc28gbG9naW4gcHJvY2VlZHMuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBSZWdpc3RlckZvclJhbmRldnVTdGFydENoYXRNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIHNlY3JldE5hbWUgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlY3JldE5hbWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJNYXRyaXhCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWF0cml4QmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNYXRyaXhCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgc3luYXBzZVBhc3N3b3JkID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJTeW5hcHNlUGFzc3dvcmQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzeW5hcHNlUGFzc3dvcmQpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiU3luYXBzZVBhc3N3b3JkIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHBhcnRpY2lwYW50VHlwZSA9IEdldFN0cmluZyhkYXRhLCAicGFydGljaXBhbnRUeXBlIik7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgYWR2aXNvciA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvciIpOwoKICAgICAgICB2YXIgcmVnaXN0ZXJVc2VybmFtZSA9IHBhcnRpY2lwYW50VHlwZSA9PSAiYWR2aXNvciIgPyBhZHZpc29yCiAgICAgICAgICAgIDogcGFydGljaXBhbnRUeXBlID09ICJpbnZpdGVkIiA/IEdldFN0cmluZyhkYXRhLCAiaW52aXRlZFVzZXJJZCIpCiAgICAgICAgICAgIDogInUiK3VzZXI7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UocmVnaXN0ZXJVc2VybmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJDYW5ub3QgZGV0ZXJtaW5lIHJlZ2lzdGVyIHVzZXI6IHBhcnRpY2lwYW50VHlwZSwgdXNlciwgYWR2aXNvciwgb3IgaW52aXRlZFVzZXJJZCBtaXNzaW5nIik7CgogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL3JlZ2lzdGVyIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMobmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgfSk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3CiAgICAgICAgewogICAgICAgICAgICBhdXRoID0gbmV3IHsgdHlwZSA9ICJtLmxvZ2luLmR1bW15IiB9LAogICAgICAgICAgICB1c2VybmFtZSA9IHJlZ2lzdGVyVXNlcm5hbWUsCiAgICAgICAgICAgIHBhc3N3b3JkID0gc3luYXBzZVBhc3N3b3JkCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
408
|
+
},
|
|
409
|
+
"errorBoundary": {
|
|
410
|
+
"onError": [
|
|
411
|
+
{
|
|
412
|
+
"action": 3,
|
|
413
|
+
"errorCodes": [
|
|
414
|
+
"*"
|
|
415
|
+
],
|
|
416
|
+
"priority": 1
|
|
417
|
+
}
|
|
418
|
+
]
|
|
419
|
+
}
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"order": 2,
|
|
423
|
+
"task": {
|
|
424
|
+
"domain": "morph-touch",
|
|
425
|
+
"flow": "sys-tasks",
|
|
426
|
+
"key": "login-for-chat",
|
|
427
|
+
"version": "1.0.0"
|
|
428
|
+
},
|
|
429
|
+
"mapping": {
|
|
430
|
+
"location": "./src/LoginForRandevuStartChatMapping.csx",
|
|
431
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3IgbG9naW4tZm9yLXJlemVydmF0aW9uLWNoYXQgd2hlbiB1c2VkIGluIHJlemVydmF0aW9uLXN0YXJ0IGZsb3cuCi8vLyBDYWxscyBQT1NUIC9fbWF0cml4L2NsaWVudC92My9sb2dpbiBvbiBTeW5hcHNlLgovLy8gVXNlcyBwYXJ0aWNpcGFudFR5cGUgdG8gZGV0ZXJtaW5lIGxvZ2luIHVzZXI6IGFkdmlzb3IsIGN1c3RvbWVyICh1c2VyKSwgb3IgaW52aXRlZCAoaW52aXRlZFVzZXJJZCkuCi8vLyBTdG9yZXMgYWNjZXNzX3Rva2VuIGFzIHNlc3Npb25JZCBpbiBjaGF0SW50ZWdyYXRpb24gZm9yIHN1YnNlcXVlbnQgTWF0cml4IEFQSSBjYWxscy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIExvZ2luRm9yUmFuZGV2dVN0YXJ0Q2hhdE1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBzeW5hcHNlUGFzc3dvcmQgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIlN5bmFwc2VQYXNzd29yZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHN5bmFwc2VQYXNzd29yZCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJTeW5hcHNlUGFzc3dvcmQgc2VjcmV0IGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgcGFydGljaXBhbnRUeXBlID0gR2V0U3RyaW5nKGRhdGEsICJwYXJ0aWNpcGFudFR5cGUiKTsKICAgICAgICB2YXIgdXNlciA9IEdldFN0cmluZyhkYXRhLCAidXNlciIpOwogICAgICAgIHZhciBhZHZpc29yID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yIik7CgogICAgICAgIHZhciBsb2dpblVzZXJuYW1lID0gcGFydGljaXBhbnRUeXBlID09ICJhZHZpc29yIiA/IGFkdmlzb3IKICAgICAgICAgICAgOiBwYXJ0aWNpcGFudFR5cGUgPT0gImludml0ZWQiID8gR2V0U3RyaW5nKGRhdGEsICJpbnZpdGVkVXNlcklkIikKICAgICAgICAgICAgOiAidSIrdXNlcjsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShsb2dpblVzZXJuYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkNhbm5vdCBkZXRlcm1pbmUgbG9naW4gdXNlcjogcGFydGljaXBhbnRUeXBlLCB1c2VyLCBhZHZpc29yLCBvciBpbnZpdGVkVXNlcklkIG1pc3NpbmciKTsKCiAgICAgICAgdmFyIGZ1bGxVcmwgPSBtYXRyaXhCYXNlVXJsLlRyaW1FbmQoJy8nKSArICIvX21hdHJpeC9jbGllbnQvdjMvbG9naW4iOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgaHR0cFRhc2suU2V0SGVhZGVycyhuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIKICAgICAgICB9KTsKCiAgICAgICAgaHR0cFRhc2suU2V0Qm9keShuZXcKICAgICAgICB7CiAgICAgICAgICAgIHR5cGUgPSAibS5sb2dpbi5wYXNzd29yZCIsCiAgICAgICAgICAgIGlkZW50aWZpZXIgPSBuZXcgeyB0eXBlID0gIm0uaWQudXNlciIsIHVzZXIgPSBsb2dpblVzZXJuYW1lIH0sCiAgICAgICAgICAgIHBhc3N3b3JkID0gc3luYXBzZVBhc3N3b3JkCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICAgICAgdmFyIHJlc3BvbnNlID0gY29udGV4dC5Cb2R5OwoKICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2VzcyA9PSB0cnVlKQogICAgICAgIHsKICAgICAgICAgICAgZHluYW1pYyBkYXRhID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICAgICAgc3RyaW5nIHNlc3Npb25JZCA9IEdldFN0cmluZyhkYXRhLCAiYWNjZXNzX3Rva2VuIik7CiAgICAgICAgICAgIHN0cmluZyB1c2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXJfaWQiKTsKICAgICAgICAgICAgc3RyaW5nIHVzZXJuYW1lID0gR2V0U3RyaW5nKGRhdGEsICJ1c2VybmFtZSIpOwoKICAgICAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkLAogICAgICAgICAgICAgICAgICAgIHVzZXJJZCwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSwKICAgICAgICAgICAgICAgICAgICBlcnJvciA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSAoc3RyaW5nKW51bGwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nIGVycm9yTWVzc2FnZSA9IHJlc3BvbnNlPy5lcnJvck1lc3NhZ2U/LlRvU3RyaW5nKCkgPz8gIkNoYXQgbG9naW4gZmFpbGVkIjsKICAgICAgICAgICAgc3RyaW5nIHN0YXR1c0NvZGUgPSByZXNwb25zZT8uc3RhdHVzQ29kZSAhPSBudWxsID8gcmVzcG9uc2Uuc3RhdHVzQ29kZS5Ub1N0cmluZygpIDogbnVsbDsKICAgICAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHVzZXJJZCA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZSA9IChzdHJpbmcpbnVsbCwKICAgICAgICAgICAgICAgICAgICByb29tSWQgPSAoc3RyaW5nKW51bGwsCiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBlcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID0gc3RhdHVzQ29kZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChyZXN1bHQpOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"order": 3,
|
|
399
436
|
"task": {
|
|
400
437
|
"domain": "morph-touch",
|
|
401
438
|
"flow": "sys-tasks",
|
|
@@ -404,7 +441,7 @@
|
|
|
404
441
|
},
|
|
405
442
|
"mapping": {
|
|
406
443
|
"location": "./src/JoinChatRoomForRandevuStartMapping.csx",
|
|
407
|
-
"code": "
|
|
444
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKLy8vIDxzdW1tYXJ5PgovLy8gTWFwcGluZyBmb3Igam9pbi1jaGF0LXJvb20tZm9yLXJlemVydmF0aW9uIHdoZW4gdXNlZCBpbiByZXplcnZhdGlvbi1zdGFydCBmbG93LgovLy8gVXNlcyBjaGF0SW50ZWdyYXRpb24ucm9vbUlkIGFuZCBzZXNzaW9uSWQgKGZyb20gcHJlY2VkaW5nIGxvZ2luIHRhc2spIGZvciBhdXRoZW50aWNhdGlvbi4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIEpvaW5DaGF0Um9vbUZvclJhbmRldnVTdGFydE1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgYXN5bmMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGh0dHBUYXNrID0gdGFzayBhcyBIdHRwVGFzazsKICAgICAgICBpZiAoaHR0cFRhc2sgPT0gbnVsbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhbiBIdHRwVGFzayIpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciByb29tSWQgPSBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIik7CiAgICAgICAgdmFyIHBhcnRpY2lwYW50VHlwZSA9IEdldFN0cmluZyhkYXRhLCAicGFydGljaXBhbnRUeXBlIik7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yIik7CiAgICAgICAgdmFyIGludml0ZWRVc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImludml0ZWRVc2VySWQiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uocm9vbUlkKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oImNoYXRJbnRlZ3JhdGlvbi5yb29tSWQgaXMgcmVxdWlyZWQgdG8gam9pbiByb29tIik7CgogICAgICAgIHZhciB4TWF0cml4VXNlciA9IHBhcnRpY2lwYW50VHlwZSA9PSAiYWR2aXNvciIgPyBhZHZpc29ySWQKICAgICAgICAgICAgOiBwYXJ0aWNpcGFudFR5cGUgPT0gImludml0ZWQiID8gaW52aXRlZFVzZXJJZAogICAgICAgICAgICA6IHVzZXI7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoeE1hdHJpeFVzZXIpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiQ2Fubm90IGRldGVybWluZSB4LW1hdHJpeC11c2VyOiBwYXJ0aWNpcGFudFR5cGUsIHVzZXIsIGFkdmlzb3IsIG9yIGludml0ZWRVc2VySWQgbWlzc2luZyIpOwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9qb2luLyIgKyBVcmkuRXNjYXBlRGF0YVN0cmluZyhyb29tSWQgPz8gIiIpOwogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgdmFyIHNlc3Npb25JZCA9IEdldFN0cmluZyhjaGF0SW50ZWdyYXRpb24sICJzZXNzaW9uSWQiKTsKCiAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgIFsiQ29udGVudC1UeXBlIl0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsiQWNjZXB0Il0gPSAiYXBwbGljYXRpb24vanNvbiIsCiAgICAgICAgICAgIFsieC1tYXRyaXgtdXNlciJdID0geE1hdHJpeFVzZXIuVHJpbSgpCiAgICAgICAgfTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2Vzc2lvbklkKSkKICAgICAgICAgICAgaGVhZGVyc1siQXV0aG9yaXphdGlvbiJdID0gIkJlYXJlciAiICsgc2Vzc2lvbklkOwoKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKGhlYWRlcnMpOwogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3IHsgfSk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgICAgIHZhciByZXNwb25zZSA9IGNvbnRleHQuQm9keTsKICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgdmFyIHBhcnRpY2lwYW50VHlwZSA9IEdldFN0cmluZyhkYXRhLCAicGFydGljaXBhbnRUeXBlIik7CiAgICAgICAgdmFyIHVzZXIgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXIiKTsKICAgICAgICB2YXIgYWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yIik7CiAgICAgICAgdmFyIGludml0ZWRVc2VySWQgPSBHZXRTdHJpbmcoZGF0YSwgImludml0ZWRVc2VySWQiKTsKICAgICAgICB2YXIgY2hhdEludGVncmF0aW9uID0gZGF0YT8uY2hhdEludGVncmF0aW9uOwogICAgICAgIHZhciB1c2VybmFtZSA9IHBhcnRpY2lwYW50VHlwZSA9PSAiYWR2aXNvciIgPyBhZHZpc29ySWQKICAgICAgICAgICAgOiBwYXJ0aWNpcGFudFR5cGUgPT0gImludml0ZWQiID8gaW52aXRlZFVzZXJJZAogICAgICAgICAgICA6IHVzZXI7CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIHJlc3BEYXRhID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICAgICAgc3RyaW5nIGpvaW5lZFJvb21JZCA9IEdldFN0cmluZyhyZXNwRGF0YSwgInJvb21faWQiKSA/PyBHZXRTdHJpbmcocmVzcERhdGEsICJyb29tSWQiKSA/PyBHZXRTdHJpbmcocmVzcERhdGEsICJSb29tSWQiKTsKCiAgICAgICAgICAgIHJlc3VsdC5EYXRhID0gbmV3CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNoYXRJbnRlZ3JhdGlvbiA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLAogICAgICAgICAgICAgICAgICAgIHJvb21JZCA9IGpvaW5lZFJvb21JZCA/PyBHZXRTdHJpbmcoY2hhdEludGVncmF0aW9uLCAicm9vbUlkIiksCiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAoc3RyaW5nKW51bGwsCiAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID0gKHN0cmluZyludWxsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHN0cmluZyBlcnJvck1lc3NhZ2UgPSByZXNwb25zZT8uZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/ICJGYWlsZWQgdG8gam9pbiByb29tIjsKICAgICAgICAgICAgc3RyaW5nIHN0YXR1c0NvZGUgPSByZXNwb25zZT8uc3RhdHVzQ29kZSAhPSBudWxsID8gcmVzcG9uc2Uuc3RhdHVzQ29kZS5Ub1N0cmluZygpIDogbnVsbDsKICAgICAgICAgICAgcmVzdWx0LkRhdGEgPSBuZXcKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hhdEludGVncmF0aW9uID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgcm9vbUlkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IHN0YXR1c0NvZGUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
408
445
|
}
|
|
409
446
|
}
|
|
410
447
|
],
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
},
|
|
123
123
|
"mapping": {
|
|
124
124
|
"location": "./src/EnrichRezervationsForTransferMapping.csx",
|
|
125
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGVucmljaC1yZXplcnZhdGlvbnMtZm9yLXRyYW5zZmVyIHRhc2sgKERhcHJTZXJ2aWNlVGFzayAtIFR5cGUgMykuCi8vLyBRdWVyaWVzIEFMTCBhY3RpdmUgcmVzZXJ2YXRpb25zIGluIHRoZSBkYXRlIHJhbmdlIGFjcm9zcyBhbGwgYWR2aXNvcnMuCi8vLyBPdXRwdXRIYW5kbGVyIGVucmljaGVzIGVhY2ggc291cmNlIGFkdmlzb3IncyByZXNlcnZhdGlvbiB3aXRoIGEgbGlzdCBvZiBhZHZpc29ycwovLy8gdGhhdCBhcmUgYXZhaWxhYmxlIGJhc2VkIG9uOiByZXNlcnZhdGlvbiBjb25mbGljdHMsIHdvcmtpbmcgaG91cnMsIHB1YmxpYyBob2xpZGF5cywKLy8vIGFuZCBwZXJzb25hbCBsZWF2ZXMgKHVzaW5nIGFic2VuY2VFbnRyaWVzIGZyb20gcHJldmlvdXMgdGFzaykuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBFbnJpY2hSZXplcnZhdGlvbnNGb3JUcmFuc2Zlck1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgaWYgKHNlcnZpY2VUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhcHBJZCkpCiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBzdGFydERhdGUgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgIHZhciBlbmREYXRlID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydERhdGUpKQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oInN0YXJ0RGF0ZSBpcyByZXF1aXJlZC4iLCAic3RhcnREYXRlIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGUpKQogICAgICAgICAgICBlbmREYXRlID0gIjIwOTktMTItMzEiOwoKICAgICAgICB2YXIgY29uZGl0aW9ucyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgICJ7XCJvclwiOlsiICsKICAgICAgICAgICAgICAgICJ7XCJjdXJyZW50U3RhdGVcIjp7XCJlcVwiOlwiYWN0aXZlXCJ9fSwiICsKICAgICAgICAgICAgICAgICJ7XCJjdXJyZW50U3RhdGVcIjp7XCJlcVwiOlwiaW4tbWVldFwifX0iICsKICAgICAgICAgICAgIl19IiwKICAgICAgICAgICAgIntcInN0YXR1c1wiOntcImVxXCI6XCJBXCJ9fSIsCiAgICAgICAgICAgICJ7XCJhdHRyaWJ1dGVzXCI6e1wic3RhcnREYXRlVGltZVwiOntcImRndFwiOlwiIiArIHN0YXJ0RGF0ZSArICJcIn19fSIsCiAgICAgICAgICAgICJ7XCJhdHRyaWJ1dGVzXCI6e1wiZW5kRGF0ZVRpbWVcIjp7XCJkbHRcIjpcIiIgKyBlbmREYXRlICsgIlwifX19IgogICAgICAgIH07CgogICAgICAgIHZhciBmaWx0ZXJKc29uID0gIntcImFuZFwiOlsiICsgc3RyaW5nLkpvaW4oIiwiLCBjb25kaXRpb25zKSArICJdfSI7CiAgICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgInBhZ2VTaXplPTEwMCIsCiAgICAgICAgICAgICJmaWx0ZXI9IiArIGZpbHRlckpzb24KICAgICAgICB9OwoKICAgICAgICBzZXJ2aWNlVGFzay5TZXRRdWVyeVN0cmluZyhzdHJpbmcuSm9pbigiJiIsIHF1ZXJ5UGFyYW1zKSk7CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGJvZHkgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgICAgIGlmIChib2R5ICE9IG51bGwgJiYgYm9keS5pc1N1Y2Nlc3MgPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSBib2R5LmVycm9yTWVzc2FnZT8uVG9TdHJpbmcoKSA/PyAiRmFpbGVkIHRvIGZldGNoIGFsbCByZXNlcnZhdGlvbnMiOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgc291cmNlQWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJzb3VyY2VBZHZpc29ySWQiKTsKICAgICAgICAgICAgdmFyIHNvdXJjZVJlemVydmF0aW9ucyA9IGRhdGE/LnJlemVydmF0aW9uczsKCiAgICAgICAgICAgIHZhciByZXNwb25zZURhdGEgPSBib2R5Py5kYXRhOwogICAgICAgICAgICB2YXIgYWxsSXRlbXMgPSByZXNwb25zZURhdGE/Lml0ZW1zOwoKICAgICAgICAgICAgdmFyIHB1YmxpY0hvbGlkYXlzID0gbmV3IExpc3Q8ZHluYW1pYz4oKTsKICAgICAgICAgICAgdmFyIGFkdmlzb3JXb3JrSG91cnNNYXAgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIExpc3Q8ZHluYW1pYz4+KCk7CiAgICAgICAgICAgIHZhciBjb21wYW55V29ya0hvdXJzID0gbmV3IExpc3Q8ZHluYW1pYz4oKTsKICAgICAgICAgICAgdmFyIHBlcnNvbmFsTGVhdmVzTWFwID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBMaXN0PGR5bmFtaWM+PigpOwoKICAgICAgICAgICAgdmFyIGFic2VuY2VFbnRyaWVzID0gZGF0YT8uYWJzZW5jZUVudHJpZXM7CiAgICAgICAgICAgIGlmIChhYnNlbmNlRW50cmllcyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgZW50cnkgaW4gYWJzZW5jZUVudHJpZXMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5ID09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIHZhciBhdHRycyA9IGVudHJ5Py5hdHRyaWJ1dGVzOwogICAgICAgICAgICAgICAgICAgIGlmIChhdHRycyA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIGFic2VuY2VUeXBlID0gR2V0U3RyaW5nKGF0dHJzLCAiYWJzZW5jZVR5cGUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgYWR2aXNvciA9IEdldFN0cmluZyhhdHRycywgImFkdmlzb3IiKTsKCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhYnNlbmNlVHlwZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInB1YmxpYy1ob2xpZGF5IjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY0hvbGlkYXlzLkFkZChlbnRyeSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAid29ya2luZy1ob3Vycy1jaGFuZ2UiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFkdmlzb3JXb3JrSG91cnNNYXAuQ29udGFpbnNLZXkoYWR2aXNvcikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmlzb3JXb3JrSG91cnNNYXBbYWR2aXNvcl0gPSBuZXcgTGlzdDxkeW5hbWljPigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmlzb3JXb3JrSG91cnNNYXBbYWR2aXNvcl0uQWRkKGVudHJ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYW55V29ya0hvdXJzLkFkZChlbnRyeSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAicGVyc29uYWwtbGVhdmUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBlcnNvbmFsTGVhdmVzTWFwLkNvbnRhaW5zS2V5KGFkdmlzb3IpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25hbExlYXZlc01hcFthZHZpc29yXSA9IG5ldyBMaXN0PGR5bmFtaWM+KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uYWxMZWF2ZXNNYXBbYWR2aXNvcl0uQWRkKGVudHJ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGVucmljaGVkID0gbmV3IExpc3Q8b2JqZWN0PigpOwoKICAgICAgICAgICAgaWYgKHNvdXJjZVJlemVydmF0aW9ucyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgcmV6IGluIHNvdXJjZVJlemVydmF0aW9ucykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAocmV6ID09IG51bGwpIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6U3RhcnRTdHIgPSBHZXROZXN0ZWRTdHJpbmcocmV6LCAiYXR0cmlidXRlcyIsICJzdGFydERhdGVUaW1lIikKICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKHJleiwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6RW5kU3RyID0gR2V0TmVzdGVkU3RyaW5nKHJleiwgImF0dHJpYnV0ZXMiLCAiZW5kRGF0ZVRpbWUiKQogICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcocmV6LCAiZW5kRGF0ZVRpbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6S2V5ID0gSGFzUHJvcGVydHkocmV6LCAia2V5IikgPyByZXoua2V5Py5Ub1N0cmluZygpIDogIiI7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJlelVzZXIgPSBHZXROZXN0ZWRTdHJpbmcocmV6LCAiYXR0cmlidXRlcyIsICJ1c2VyIikKICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKHJleiwgInVzZXIiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6QWR2aXNvciA9IEdldE5lc3RlZFN0cmluZyhyZXosICJhdHRyaWJ1dGVzIiwgImFkdmlzb3IiKQogICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcocmV6LCAiYWR2aXNvciIpOwoKICAgICAgICAgICAgICAgICAgICB2YXIgYnVzeUFkdmlzb3JzID0gbmV3IEhhc2hTZXQ8c3RyaW5nPigpOwogICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoc291cmNlQWR2aXNvcklkKSkKICAgICAgICAgICAgICAgICAgICAgICAgYnVzeUFkdmlzb3JzLkFkZChzb3VyY2VBZHZpc29ySWQpOwoKICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSByZXpTdGFydCA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICAgICAgICAgIERhdGVUaW1lIHJlekVuZCA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkocmV6U3RhcnRTdHIpICYmICFzdHJpbmcuSXNOdWxsT3JFbXB0eShyZXpFbmRTdHIpICYmCiAgICAgICAgICAgICAgICAgICAgICAgIERhdGVUaW1lLlRyeVBhcnNlKHJlelN0YXJ0U3RyLCBvdXQgcmV6U3RhcnQpICYmIERhdGVUaW1lLlRyeVBhcnNlKHJlekVuZFN0ciwgb3V0IHJlekVuZCkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgYWxsSXRlbXMgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIGFsbEl0ZW1zKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtQWR2aXNvciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJhZHZpc29yIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcoaXRlbSwgImFkdmlzb3IiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtU3RhcnRTdHIgPSBHZXROZXN0ZWRTdHJpbmcoaXRlbSwgImF0dHJpYnV0ZXMiLCAic3RhcnREYXRlVGltZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKGl0ZW0sICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbUVuZFN0ciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJlbmREYXRlVGltZSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKGl0ZW0sICJlbmREYXRlVGltZSIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShpdGVtQWR2aXNvcikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoaXRlbVN0YXJ0U3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShpdGVtRW5kU3RyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSBpdGVtU3RhcnQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVUaW1lIGl0ZW1FbmQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChEYXRlVGltZS5UcnlQYXJzZShpdGVtU3RhcnRTdHIsIG91dCBpdGVtU3RhcnQpICYmIERhdGVUaW1lLlRyeVBhcnNlKGl0ZW1FbmRTdHIsIG91dCBpdGVtRW5kKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVN0YXJ0IDwgcmV6RW5kICYmIGl0ZW1FbmQgPiByZXpTdGFydCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c3lBZHZpc29ycy5BZGQoaXRlbUFkdmlzb3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgdmFyIGFsbEFkdmlzb3JzID0gbmV3IEhhc2hTZXQ8c3RyaW5nPigpOwogICAgICAgICAgICAgICAgICAgIHZhciBhZHZpc29yS2V5cyA9IGRhdGE/LmFsbEFkdmlzb3JLZXlzOwogICAgICAgICAgICAgICAgICAgIGlmIChhZHZpc29yS2V5cyAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIGFrIGluIGFkdmlzb3JLZXlzKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWsgPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIga2V5ID0gYWs/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGtleSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsQWR2aXNvcnMuQWRkKGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHZhciBhdmFpbGFibGUgPSBuZXcgTGlzdDxzdHJpbmc+KCk7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIGFkdiBpbiBhbGxBZHZpc29ycykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidXN5QWR2aXNvcnMuQ29udGFpbnMoYWR2KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlelN0YXJ0ICE9IERhdGVUaW1lLk1pblZhbHVlICYmIHJlekVuZCAhPSBEYXRlVGltZS5NaW5WYWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFJc1Nsb3RBdmFpbGFibGVGb3JBZHZpc29yKGFkdiwgcmV6U3RhcnQsIHJlekVuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWNIb2xpZGF5cywgYWR2aXNvcldvcmtIb3Vyc01hcCwgY29tcGFueVdvcmtIb3VycywgcGVyc29uYWxMZWF2ZXNNYXApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUuQWRkKGFkdik7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBlbnJpY2hlZC5BZGQobmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSByZXpLZXksCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF0ZVRpbWUgPSByZXpTdGFydFN0ciwKICAgICAgICAgICAgICAgICAgICAgICAgZW5kRGF0ZVRpbWUgPSByZXpFbmRTdHIsCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIgPSByZXpVc2VyLAogICAgICAgICAgICAgICAgICAgICAgICBhZHZpc29yID0gcmV6QWR2aXNvciwKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlQWR2aXNvcnMgPSBhdmFpbGFibGUKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PigpOwogICAgICAgICAgICByZXN1bHRbInNvdXJjZUFkdmlzb3JJZCJdID0gc291cmNlQWR2aXNvcklkOwogICAgICAgICAgICByZXN1bHRbImFkdmlzb3JUeXBlIl0gPSBHZXRTdHJpbmcoZGF0YSwgImFkdmlzb3JUeXBlIik7CiAgICAgICAgICAgIHJlc3VsdFsic3RhcnREYXRlIl0gPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgICAgICByZXN1bHRbImVuZERhdGUiXSA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZSIpOwogICAgICAgICAgICByZXN1bHRbInRyYW5zZmVyVHlwZSJdID0gR2V0U3RyaW5nKGRhdGEsICJ0cmFuc2ZlclR5cGUiKTsKICAgICAgICAgICAgcmVzdWx0WyJlbnJpY2hlZFJlemVydmF0aW9ucyJdID0gZW5yaWNoZWQ7CiAgICAgICAgICAgIHJlc3VsdFsicmV6ZXJ2YXRpb25zIl0gPSBuZXcgTGlzdDxvYmplY3Q+KCk7CiAgICAgICAgICAgIHJlc3VsdFsiYWJzZW5jZUVudHJpZXMiXSA9IG5ldyBMaXN0PG9iamVjdD4oKTsKICAgICAgICAgICAgLy8gUHJlc2VydmUga2V5cyBmcm9tIGZldGNoLWFkdmlzb3JzLWZvci10cmFuc2ZlciAocHJldmlvdXNseSBjbGVhcmVkLCBzbyBHRVQgaW5zdGFuY2VzIGFsd2F5cyBzaG93ZWQgW10pLgogICAgICAgICAgICB2YXIgcHJlc2VydmVkQWR2aXNvcktleXMgPSBuZXcgTGlzdDxzdHJpbmc+KCk7CiAgICAgICAgICAgIHZhciBpbmNvbWluZ0tleXMgPSBkYXRhPy5hbGxBZHZpc29yS2V5czsKICAgICAgICAgICAgaWYgKGluY29taW5nS2V5cyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgYWsgaW4gaW5jb21pbmdLZXlzKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmIChhayA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IGFrLlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShzKSkKICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVkQWR2aXNvcktleXMuQWRkKHMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3VsdFsiYWxsQWR2aXNvcktleXMiXSA9IHByZXNlcnZlZEFkdmlzb3JLZXlzOwoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IHJlc3VsdAogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBlcnJvciA9ICJGYWlsZWQgdG8gZW5yaWNoIHJlc2VydmF0aW9ucyIsCiAgICAgICAgICAgICAgICAgICAgZXJyb3JEZXNjcmlwdGlvbiA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgICNyZWdpb24gU2xvdCBBdmFpbGFiaWxpdHkKCiAgICBwcml2YXRlIGJvb2wgSXNTbG90QXZhaWxhYmxlRm9yQWR2aXNvcihzdHJpbmcgYWR2aXNvcktleSwgRGF0ZVRpbWUgcmV6U3RhcnQsIERhdGVUaW1lIHJlekVuZCwKICAgICAgICBMaXN0PGR5bmFtaWM+IHB1YmxpY0hvbGlkYXlzLAogICAgICAgIERpY3Rpb25hcnk8c3RyaW5nLCBMaXN0PGR5bmFtaWM+PiBhZHZpc29yV29ya0hvdXJzTWFwLAogICAgICAgIExpc3Q8ZHluYW1pYz4gY29tcGFueVdvcmtIb3VycywKICAgICAgICBEaWN0aW9uYXJ5PHN0cmluZywgTGlzdDxkeW5hbWljPj4gcGVyc29uYWxMZWF2ZXNNYXApCiAgICB7CiAgICAgICAgdmFyIHJlekRhdGUgPSByZXpTdGFydC5EYXRlOwogICAgICAgIHZhciBkYXlPZldlZWsgPSByZXpEYXRlLkRheU9mV2Vlay5Ub1N0cmluZygpLlRvTG93ZXIoKTsKICAgICAgICB2YXIgc2xvdFN0YXJ0ID0gcmV6U3RhcnQuVGltZU9mRGF5OwogICAgICAgIHZhciBzbG90RW5kID0gcmV6RW5kLlRpbWVPZkRheTsKCiAgICAgICAgdmFyIGhvbGlkYXlSYW5nZXMgPSBHZXRIb2xpZGF5UmFuZ2VzKHB1YmxpY0hvbGlkYXlzLCByZXpEYXRlKTsKICAgICAgICBpZiAoaG9saWRheVJhbmdlcyAhPSBudWxsICYmIGhvbGlkYXlSYW5nZXMuQ291bnQgPT0gMQogICAgICAgICAgICAmJiBob2xpZGF5UmFuZ2VzWzBdLkl0ZW0xID09IFRpbWVTcGFuLlplcm8KICAgICAgICAgICAgJiYgaG9saWRheVJhbmdlc1swXS5JdGVtMiA+PSBuZXcgVGltZVNwYW4oMjMsIDU5LCAwKSkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICBMaXN0PGR5bmFtaWM+IGFkdldvcmtIb3VycyA9IG51bGw7CiAgICAgICAgaWYgKGFkdmlzb3JXb3JrSG91cnNNYXAuQ29udGFpbnNLZXkoYWR2aXNvcktleSkpCiAgICAgICAgICAgIGFkdldvcmtIb3VycyA9IGFkdmlzb3JXb3JrSG91cnNNYXBbYWR2aXNvcktleV07CgogICAgICAgIHZhciB3b3JrSG91cnMgPSBHZXRXb3JraW5nSG91cnNGb3JEYXkoYWR2V29ya0hvdXJzLCBkYXlPZldlZWspOwogICAgICAgIGlmICh3b3JrSG91cnMgPT0gbnVsbCB8fCB3b3JrSG91cnMuQ291bnQgPT0gMCkKICAgICAgICAgICAgd29ya0hvdXJzID0gR2V0V29ya2luZ0hvdXJzRm9yRGF5KGNvbXBhbnlXb3JrSG91cnMsIGRheU9mV2Vlayk7CgogICAgICAgIGlmICh3b3JrSG91cnMgPT0gbnVsbCB8fCB3b3JrSG91cnMuQ291bnQgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICBib29sIHNsb3RJbldvcmtIb3VycyA9IGZhbHNlOwogICAgICAgIGZvcmVhY2ggKHZhciB3aCBpbiB3b3JrSG91cnMpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIHdoRHluID0gd2g7CiAgICAgICAgICAgIHZhciBzdGFydFN0ciA9IHdoRHluPy5zdGFydD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgdmFyIGVuZFN0ciA9IHdoRHluPy5lbmQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydFN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kU3RyKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgVGltZVNwYW4gd2hTdGFydCA9IFRpbWVTcGFuLk1pblZhbHVlOwogICAgICAgICAgICBUaW1lU3BhbiB3aEVuZCA9IFRpbWVTcGFuLk1pblZhbHVlOwogICAgICAgICAgICBpZiAoIVRpbWVTcGFuLlRyeVBhcnNlKHN0YXJ0U3RyLCBvdXQgd2hTdGFydCkgfHwgIVRpbWVTcGFuLlRyeVBhcnNlKGVuZFN0ciwgb3V0IHdoRW5kKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgaWYgKHNsb3RTdGFydCA+PSB3aFN0YXJ0ICYmIHNsb3RFbmQgPD0gd2hFbmQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNsb3RJbldvcmtIb3VycyA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCFzbG90SW5Xb3JrSG91cnMpCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKCiAgICAgICAgdmFyIHVuYXZhaWxhYmxlUmFuZ2VzID0gbmV3IExpc3Q8VHVwbGU8VGltZVNwYW4sIFRpbWVTcGFuPj4oKTsKCiAgICAgICAgTGlzdDxkeW5hbWljPiBhZHZMZWF2ZXMgPSBudWxsOwogICAgICAgIGlmIChwZXJzb25hbExlYXZlc01hcC5Db250YWluc0tleShhZHZpc29yS2V5KSkKICAgICAgICAgICAgYWR2TGVhdmVzID0gcGVyc29uYWxMZWF2ZXNNYXBbYWR2aXNvcktleV07CiAgICAgICAgaWYgKGFkdkxlYXZlcyAhPSBudWxsKQogICAgICAgICAgICB1bmF2YWlsYWJsZVJhbmdlcy5BZGRSYW5nZShHZXRVbmF2YWlsYWJsZVJhbmdlcyhhZHZMZWF2ZXMsIHJlekRhdGUpKTsKCiAgICAgICAgaWYgKGhvbGlkYXlSYW5nZXMgIT0gbnVsbCkKICAgICAgICAgICAgdW5hdmFpbGFibGVSYW5nZXMuQWRkUmFuZ2UoaG9saWRheVJhbmdlcyk7CgogICAgICAgIGZvcmVhY2ggKHZhciB1ciBpbiB1bmF2YWlsYWJsZVJhbmdlcykKICAgICAgICB7CiAgICAgICAgICAgIGlmIChzbG90U3RhcnQgPCB1ci5JdGVtMiAmJiBzbG90RW5kID4gdXIuSXRlbTEpCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBwcml2YXRlIExpc3Q8VHVwbGU8VGltZVNwYW4sIFRpbWVTcGFuPj4gR2V0SG9saWRheVJhbmdlcyhMaXN0PGR5bmFtaWM+IGhvbGlkYXlzLCBEYXRlVGltZSBkYXRlKQogICAgewogICAgICAgIHZhciByYW5nZXMgPSBuZXcgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PigpOwogICAgICAgIGJvb2wgaGFzSG9saWRheSA9IGZhbHNlOwoKICAgICAgICBmb3JlYWNoICh2YXIgaG9saWRheSBpbiBob2xpZGF5cykKICAgICAgICB7CiAgICAgICAgICAgIHZhciBob2xpZGF5RGF0YSA9IGhvbGlkYXk/LmF0dHJpYnV0ZXM7CiAgICAgICAgICAgIGlmIChob2xpZGF5RGF0YSA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgIHN0cmluZyBzdGFydERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGhvbGlkYXlEYXRhLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICBzdHJpbmcgZW5kRGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoaG9saWRheURhdGEsICJlbmREYXRlVGltZSIpOwoKICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBEYXRlVGltZSBlbmREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBpZiAoIURhdGVUaW1lLlRyeVBhcnNlKHN0YXJ0RGF0ZVRpbWVTdHIsIG91dCBzdGFydERhdGVUaW1lKSB8fCAhRGF0ZVRpbWUuVHJ5UGFyc2UoZW5kRGF0ZVRpbWVTdHIsIG91dCBlbmREYXRlVGltZSkpCiAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgIGlmIChkYXRlLkRhdGUgPCBzdGFydERhdGVUaW1lLkRhdGUgfHwgZGF0ZS5EYXRlID4gZW5kRGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgaGFzSG9saWRheSA9IHRydWU7CgogICAgICAgICAgICBpZiAoc3RhcnREYXRlVGltZS5EYXRlICE9IGVuZERhdGVUaW1lLkRhdGUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChkYXRlLkRhdGUgPT0gc3RhcnREYXRlVGltZS5EYXRlKQogICAgICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKHN0YXJ0RGF0ZVRpbWUuVGltZU9mRGF5LCBuZXcgVGltZVNwYW4oMjMsIDU5LCA1OSkpKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGUuRGF0ZSA9PSBlbmREYXRlVGltZS5EYXRlKQogICAgICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKFRpbWVTcGFuLlplcm8sIGVuZERhdGVUaW1lLlRpbWVPZkRheSkpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKFRpbWVTcGFuLlplcm8sIG5ldyBUaW1lU3BhbigyMywgNTksIDU5KSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmFuZ2VzLkFkZChUdXBsZS5DcmVhdGUoc3RhcnREYXRlVGltZS5UaW1lT2ZEYXksIGVuZERhdGVUaW1lLlRpbWVPZkRheSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gaGFzSG9saWRheSA/IHJhbmdlcyA6IG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBMaXN0PG9iamVjdD4gR2V0V29ya2luZ0hvdXJzRm9yRGF5KExpc3Q8ZHluYW1pYz4gd29ya2luZ0hvdXJzQ2hhbmdlcywgc3RyaW5nIGRheU9mV2VlaykKICAgIHsKICAgICAgICBpZiAod29ya2luZ0hvdXJzQ2hhbmdlcyA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgZm9yZWFjaCAodmFyIGNoYW5nZSBpbiB3b3JraW5nSG91cnNDaGFuZ2VzKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGNoYW5nZURhdGEgPSBjaGFuZ2U/LmF0dHJpYnV0ZXM7CiAgICAgICAgICAgIGlmIChjaGFuZ2VEYXRhID09IG51bGwpIGNvbnRpbnVlOwoKICAgICAgICAgICAgdmFyIGN1c3RvbVdIID0gY2hhbmdlRGF0YT8uY3VzdG9tV29ya2luZ0hvdXJzOwogICAgICAgICAgICBpZiAoY3VzdG9tV0ggPT0gbnVsbCkgY29udGludWU7CgogICAgICAgICAgICB2YXIgZGF5SG91cnMgPSBHZXREYXlIb3Vyc0Zyb21DdXN0b20oY3VzdG9tV0gsIGRheU9mV2Vlayk7CiAgICAgICAgICAgIGlmIChkYXlIb3VycyAhPSBudWxsKSByZXR1cm4gZGF5SG91cnM7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIExpc3Q8b2JqZWN0PiBHZXREYXlIb3Vyc0Zyb21DdXN0b20oZHluYW1pYyBjdXN0b21XSCwgc3RyaW5nIGRheU9mV2VlaykKICAgIHsKICAgICAgICBkeW5hbWljIGRheUhvdXJzID0gbnVsbDsKICAgICAgICBzd2l0Y2ggKGRheU9mV2VlaykKICAgICAgICB7CiAgICAgICAgICAgIGNhc2UgIm1vbmRheSI6IGRheUhvdXJzID0gY3VzdG9tV0g/Lm1vbmRheTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInR1ZXNkYXkiOiBkYXlIb3VycyA9IGN1c3RvbVdIPy50dWVzZGF5OyBicmVhazsKICAgICAgICAgICAgY2FzZSAid2VkbmVzZGF5IjogZGF5SG91cnMgPSBjdXN0b21XSD8ud2VkbmVzZGF5OyBicmVhazsKICAgICAgICAgICAgY2FzZSAidGh1cnNkYXkiOiBkYXlIb3VycyA9IGN1c3RvbVdIPy50aHVyc2RheTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZyaWRheSI6IGRheUhvdXJzID0gY3VzdG9tV0g/LmZyaWRheTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInNhdHVyZGF5IjogZGF5SG91cnMgPSBjdXN0b21XSD8uc2F0dXJkYXk7IGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdW5kYXkiOiBkYXlIb3VycyA9IGN1c3RvbVdIPy5zdW5kYXk7IGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYgKGRheUhvdXJzID09IG51bGwpIHJldHVybiBudWxsOwoKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgIGZvcmVhY2ggKHZhciByYW5nZSBpbiBkYXlIb3VycykKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzdGFydCA9IHJhbmdlPy5zdGFydD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgdmFyIGVuZCA9IHJhbmdlPy5lbmQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnQpICYmICFzdHJpbmcuSXNOdWxsT3JFbXB0eShlbmQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXN1bHQuQWRkKG5ldyB7IHN0YXJ0LCBlbmQgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdC5Db3VudCA+IDAgPyByZXN1bHQgOiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PiBHZXRVbmF2YWlsYWJsZVJhbmdlcyhMaXN0PGR5bmFtaWM+IHBlcnNvbmFsTGVhdmVzLCBEYXRlVGltZSBkYXRlKQogICAgewogICAgICAgIHZhciByYW5nZXMgPSBuZXcgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PigpOwoKICAgICAgICBmb3JlYWNoICh2YXIgbGVhdmUgaW4gcGVyc29uYWxMZWF2ZXMpCiAgICAgICAgewogICAgICAgICAgICB2YXIgbGVhdmVEYXRhID0gbGVhdmU/LmF0dHJpYnV0ZXM7CiAgICAgICAgICAgIGlmIChsZWF2ZURhdGEgPT0gbnVsbCkgY29udGludWU7CgogICAgICAgICAgICBzdHJpbmcgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhsZWF2ZURhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIHN0cmluZyBlbmREYXRlVGltZVN0ciA9IEdldFN0cmluZyhsZWF2ZURhdGEsICJlbmREYXRlVGltZSIpOwoKICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBEYXRlVGltZSBlbmREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBpZiAoIURhdGVUaW1lLlRyeVBhcnNlKHN0YXJ0RGF0ZVRpbWVTdHIsIG91dCBzdGFydERhdGVUaW1lKSB8fCAhRGF0ZVRpbWUuVHJ5UGFyc2UoZW5kRGF0ZVRpbWVTdHIsIG91dCBlbmREYXRlVGltZSkpCiAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgIGlmIChkYXRlLkRhdGUgPCBzdGFydERhdGVUaW1lLkRhdGUgfHwgZGF0ZS5EYXRlID4gZW5kRGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgaWYgKHN0YXJ0RGF0ZVRpbWUuRGF0ZSAhPSBlbmREYXRlVGltZS5EYXRlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoZGF0ZS5EYXRlID09IHN0YXJ0RGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgICAgICAgICByYW5nZXMuQWRkKFR1cGxlLkNyZWF0ZShzdGFydERhdGVUaW1lLlRpbWVPZkRheSwgbmV3IFRpbWVTcGFuKDIzLCA1OSwgNTkpKSk7CiAgICAgICAgICAgICAgICBlbHNlIGlmIChkYXRlLkRhdGUgPT0gZW5kRGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgICAgICAgICByYW5nZXMuQWRkKFR1cGxlLkNyZWF0ZShUaW1lU3Bhbi5aZXJvLCBlbmREYXRlVGltZS5UaW1lT2ZEYXkpKTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICByYW5nZXMuQWRkKFR1cGxlLkNyZWF0ZShUaW1lU3Bhbi5aZXJvLCBuZXcgVGltZVNwYW4oMjMsIDU5LCA1OSkpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKHN0YXJ0RGF0ZVRpbWUuVGltZU9mRGF5LCBlbmREYXRlVGltZS5UaW1lT2ZEYXkpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJhbmdlczsKICAgIH0KCiAgICAjZW5kcmVnaW9uCgogICAgI3JlZ2lvbiBIZWxwZXJzCgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0TmVzdGVkU3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgcGFyZW50LCBzdHJpbmcgY2hpbGQpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIHBhcmVudCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBuZXN0ZWQgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgcGFyZW50KTsKICAgICAgICAgICAgICAgIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShuZXN0ZWQsIGNoaWxkKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUobmVzdGVkLCBjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgI2VuZHJlZ2lvbgp9Cg=="
|
|
125
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGVucmljaC1yZXplcnZhdGlvbnMtZm9yLXRyYW5zZmVyIHRhc2sgKERhcHJTZXJ2aWNlVGFzayAtIFR5cGUgMykuCi8vLyBRdWVyaWVzIEFMTCBhY3RpdmUgcmVzZXJ2YXRpb25zIGluIHRoZSBkYXRlIHJhbmdlIGFjcm9zcyBhbGwgYWR2aXNvcnMuCi8vLyBPdXRwdXRIYW5kbGVyIGVucmljaGVzIGVhY2ggc291cmNlIGFkdmlzb3IncyByZXNlcnZhdGlvbiB3aXRoIGEgbGlzdCBvZiBhZHZpc29ycwovLy8gdGhhdCBhcmUgYXZhaWxhYmxlIGJhc2VkIG9uOiByZXNlcnZhdGlvbiBjb25mbGljdHMsIHdvcmtpbmcgaG91cnMsIHB1YmxpYyBob2xpZGF5cywKLy8vIGFuZCBwZXJzb25hbCBsZWF2ZXMgKHVzaW5nIGFic2VuY2VFbnRyaWVzIGZyb20gcHJldmlvdXMgdGFzaykuCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBjbGFzcyBFbnJpY2hSZXplcnZhdGlvbnNGb3JUcmFuc2Zlck1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgaWYgKHNlcnZpY2VUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhcHBJZCkpCiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBzdGFydERhdGUgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgIHZhciBlbmREYXRlID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlIik7CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydERhdGUpKQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oInN0YXJ0RGF0ZSBpcyByZXF1aXJlZC4iLCAic3RhcnREYXRlIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGUpKQogICAgICAgICAgICBlbmREYXRlID0gIjIwOTktMTItMzEiOwoKICAgICAgICB2YXIgY29uZGl0aW9ucyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICB7CiAgICAgICAgICAgICJ7XCJvclwiOlsiICsKICAgICAgICAgICAgICAgICJ7XCJjdXJyZW50U3RhdGVcIjp7XCJlcVwiOlwiYWN0aXZlXCJ9fSwiICsKICAgICAgICAgICAgICAgICJ7XCJjdXJyZW50U3RhdGVcIjp7XCJlcVwiOlwiaW4tbWVldFwifX0iICsKICAgICAgICAgICAgIl19IiwKICAgICAgICAgICAgIntcInN0YXR1c1wiOntcImVxXCI6XCJBXCJ9fSIsCiAgICAgICAgICAgICJ7XCJhdHRyaWJ1dGVzXCI6e1wic3RhcnREYXRlVGltZVwiOntcImRndFwiOlwiIiArIHN0YXJ0RGF0ZSArICJcIn19fSIsCiAgICAgICAgICAgICJ7XCJhdHRyaWJ1dGVzXCI6e1wiZW5kRGF0ZVRpbWVcIjp7XCJkbHRcIjpcIiIgKyBlbmREYXRlICsgIlwifX19IgogICAgICAgIH07CgogICAgICAgIHZhciBmaWx0ZXJKc29uID0gIntcImFuZFwiOlsiICsgc3RyaW5nLkpvaW4oIiwiLCBjb25kaXRpb25zKSArICJdfSI7CiAgICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgInBhZ2VTaXplPTEwMCIsCiAgICAgICAgICAgICJmaWx0ZXI9IiArIGZpbHRlckpzb24KICAgICAgICB9OwoKICAgICAgICBzZXJ2aWNlVGFzay5TZXRRdWVyeVN0cmluZyhzdHJpbmcuSm9pbigiJiIsIHF1ZXJ5UGFyYW1zKSk7CiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGJvZHkgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKCiAgICAgICAgICAgIGlmIChib2R5ICE9IG51bGwgJiYgYm9keS5pc1N1Y2Nlc3MgPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBlcnJvck1lc3NhZ2UgPSBib2R5LmVycm9yTWVzc2FnZT8uVG9TdHJpbmcoKSA/PyAiRmFpbGVkIHRvIGZldGNoIGFsbCByZXNlcnZhdGlvbnMiOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgc291cmNlQWR2aXNvcklkID0gR2V0U3RyaW5nKGRhdGEsICJzb3VyY2VBZHZpc29ySWQiKTsKICAgICAgICAgICAgdmFyIHNvdXJjZVJlemVydmF0aW9ucyA9IGRhdGE/LnJlemVydmF0aW9uczsKCiAgICAgICAgICAgIHZhciByZXNwb25zZURhdGEgPSBib2R5Py5kYXRhOwogICAgICAgICAgICB2YXIgYWxsSXRlbXMgPSByZXNwb25zZURhdGE/Lml0ZW1zOwoKICAgICAgICAgICAgdmFyIHB1YmxpY0hvbGlkYXlzID0gbmV3IExpc3Q8ZHluYW1pYz4oKTsKICAgICAgICAgICAgdmFyIGFkdmlzb3JXb3JrSG91cnNNYXAgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIExpc3Q8ZHluYW1pYz4+KCk7CiAgICAgICAgICAgIHZhciBjb21wYW55V29ya0hvdXJzID0gbmV3IExpc3Q8ZHluYW1pYz4oKTsKICAgICAgICAgICAgdmFyIHBlcnNvbmFsTGVhdmVzTWFwID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBMaXN0PGR5bmFtaWM+PigpOwoKICAgICAgICAgICAgdmFyIGFic2VuY2VFbnRyaWVzID0gZGF0YT8uYWJzZW5jZUVudHJpZXM7CiAgICAgICAgICAgIGlmIChhYnNlbmNlRW50cmllcyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgZW50cnkgaW4gYWJzZW5jZUVudHJpZXMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5ID09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIHZhciBhdHRycyA9IGVudHJ5Py5hdHRyaWJ1dGVzOwogICAgICAgICAgICAgICAgICAgIGlmIChhdHRycyA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIGFic2VuY2VUeXBlID0gR2V0U3RyaW5nKGF0dHJzLCAiYWJzZW5jZVR5cGUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgYWR2aXNvciA9IEdldFN0cmluZyhhdHRycywgImFkdmlzb3IiKTsKCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhYnNlbmNlVHlwZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInB1YmxpYy1ob2xpZGF5IjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY0hvbGlkYXlzLkFkZChlbnRyeSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAid29ya2luZy1ob3Vycy1jaGFuZ2UiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFkdmlzb3JXb3JrSG91cnNNYXAuQ29udGFpbnNLZXkoYWR2aXNvcikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmlzb3JXb3JrSG91cnNNYXBbYWR2aXNvcl0gPSBuZXcgTGlzdDxkeW5hbWljPigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmlzb3JXb3JrSG91cnNNYXBbYWR2aXNvcl0uQWRkKGVudHJ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYW55V29ya0hvdXJzLkFkZChlbnRyeSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAicGVyc29uYWwtbGVhdmUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBlcnNvbmFsTGVhdmVzTWFwLkNvbnRhaW5zS2V5KGFkdmlzb3IpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25hbExlYXZlc01hcFthZHZpc29yXSA9IG5ldyBMaXN0PGR5bmFtaWM+KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29uYWxMZWF2ZXNNYXBbYWR2aXNvcl0uQWRkKGVudHJ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGVucmljaGVkID0gbmV3IExpc3Q8b2JqZWN0PigpOwoKICAgICAgICAgICAgaWYgKHNvdXJjZVJlemVydmF0aW9ucyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgcmV6IGluIHNvdXJjZVJlemVydmF0aW9ucykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAocmV6ID09IG51bGwpIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6U3RhcnRTdHIgPSBHZXROZXN0ZWRTdHJpbmcocmV6LCAiYXR0cmlidXRlcyIsICJzdGFydERhdGVUaW1lIikKICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKHJleiwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6RW5kU3RyID0gR2V0TmVzdGVkU3RyaW5nKHJleiwgImF0dHJpYnV0ZXMiLCAiZW5kRGF0ZVRpbWUiKQogICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcocmV6LCAiZW5kRGF0ZVRpbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6S2V5ID0gSGFzUHJvcGVydHkocmV6LCAia2V5IikgPyByZXoua2V5Py5Ub1N0cmluZygpIDogIiI7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJlelVzZXIgPSBHZXROZXN0ZWRTdHJpbmcocmV6LCAiYXR0cmlidXRlcyIsICJ1c2VyIikKICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKHJleiwgInVzZXIiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgcmV6QWR2aXNvciA9IEdldE5lc3RlZFN0cmluZyhyZXosICJhdHRyaWJ1dGVzIiwgImFkdmlzb3IiKQogICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcocmV6LCAiYWR2aXNvciIpOwoKICAgICAgICAgICAgICAgICAgICB2YXIgYnVzeUFkdmlzb3JzID0gbmV3IEhhc2hTZXQ8c3RyaW5nPigpOwogICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoc291cmNlQWR2aXNvcklkKSkKICAgICAgICAgICAgICAgICAgICAgICAgYnVzeUFkdmlzb3JzLkFkZChzb3VyY2VBZHZpc29ySWQpOwoKICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSByZXpTdGFydCA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICAgICAgICAgIERhdGVUaW1lIHJlekVuZCA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkocmV6U3RhcnRTdHIpICYmICFzdHJpbmcuSXNOdWxsT3JFbXB0eShyZXpFbmRTdHIpICYmCiAgICAgICAgICAgICAgICAgICAgICAgIFRyeVBhcnNlVG9VdGMocmV6U3RhcnRTdHIsIG91dCByZXpTdGFydCkgJiYgVHJ5UGFyc2VUb1V0YyhyZXpFbmRTdHIsIG91dCByZXpFbmQpICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGFsbEl0ZW1zICE9IG51bGwpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgaXRlbSBpbiBhbGxJdGVtcykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbUFkdmlzb3IgPSBHZXROZXN0ZWRTdHJpbmcoaXRlbSwgImF0dHJpYnV0ZXMiLCAiYWR2aXNvciIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKGl0ZW0sICJhZHZpc29yIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVN0YXJ0U3RyID0gR2V0TmVzdGVkU3RyaW5nKGl0ZW0sICJhdHRyaWJ1dGVzIiwgInN0YXJ0RGF0ZVRpbWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8/IEdldFN0cmluZyhpdGVtLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1FbmRTdHIgPSBHZXROZXN0ZWRTdHJpbmcoaXRlbSwgImF0dHJpYnV0ZXMiLCAiZW5kRGF0ZVRpbWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8/IEdldFN0cmluZyhpdGVtLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoaXRlbUFkdmlzb3IpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGl0ZW1TdGFydFN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoaXRlbUVuZFN0cikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgaXRlbVN0YXJ0ID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSBpdGVtRW5kID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVHJ5UGFyc2VUb1V0YyhpdGVtU3RhcnRTdHIsIG91dCBpdGVtU3RhcnQpICYmIFRyeVBhcnNlVG9VdGMoaXRlbUVuZFN0ciwgb3V0IGl0ZW1FbmQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtU3RhcnQgPCByZXpFbmQgJiYgaXRlbUVuZCA+IHJlelN0YXJ0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVzeUFkdmlzb3JzLkFkZChpdGVtQWR2aXNvcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB2YXIgYWxsQWR2aXNvcnMgPSBuZXcgSGFzaFNldDxzdHJpbmc+KCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGFkdmlzb3JLZXlzID0gZGF0YT8uYWxsQWR2aXNvcktleXM7CiAgICAgICAgICAgICAgICAgICAgaWYgKGFkdmlzb3JLZXlzICE9IG51bGwpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgYWsgaW4gYWR2aXNvcktleXMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhayA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBrZXkgPSBhaz8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoa2V5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxBZHZpc29ycy5BZGQoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgdmFyIGF2YWlsYWJsZSA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgYWR2IGluIGFsbEFkdmlzb3JzKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1c3lBZHZpc29ycy5Db250YWlucyhhZHYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV6U3RhcnQgIT0gRGF0ZVRpbWUuTWluVmFsdWUgJiYgcmV6RW5kICE9IERhdGVUaW1lLk1pblZhbHVlKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIUlzU2xvdEF2YWlsYWJsZUZvckFkdmlzb3IoYWR2LCByZXpTdGFydCwgcmV6RW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY0hvbGlkYXlzLCBhZHZpc29yV29ya0hvdXJzTWFwLCBjb21wYW55V29ya0hvdXJzLCBwZXJzb25hbExlYXZlc01hcCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZS5BZGQoYWR2KTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGVucmljaGVkLkFkZChuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IHJlektleSwKICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnREYXRlVGltZSA9IHJlelN0YXJ0U3RyLAogICAgICAgICAgICAgICAgICAgICAgICBlbmREYXRlVGltZSA9IHJlekVuZFN0ciwKICAgICAgICAgICAgICAgICAgICAgICAgdXNlciA9IHJlelVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgIGFkdmlzb3IgPSByZXpBZHZpc29yLAogICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGVBZHZpc29ycyA9IGF2YWlsYWJsZQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBvYmplY3Q+KCk7CiAgICAgICAgICAgIHJlc3VsdFsic291cmNlQWR2aXNvcklkIl0gPSBzb3VyY2VBZHZpc29ySWQ7CiAgICAgICAgICAgIHJlc3VsdFsiYWR2aXNvclR5cGUiXSA9IEdldFN0cmluZyhkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICAgICAgcmVzdWx0WyJzdGFydERhdGUiXSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgICAgIHJlc3VsdFsiZW5kRGF0ZSJdID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlIik7CiAgICAgICAgICAgIHJlc3VsdFsidHJhbnNmZXJUeXBlIl0gPSBHZXRTdHJpbmcoZGF0YSwgInRyYW5zZmVyVHlwZSIpOwogICAgICAgICAgICByZXN1bHRbImVucmljaGVkUmV6ZXJ2YXRpb25zIl0gPSBlbnJpY2hlZDsKICAgICAgICAgICAgcmVzdWx0WyJyZXplcnZhdGlvbnMiXSA9IG5ldyBMaXN0PG9iamVjdD4oKTsKICAgICAgICAgICAgcmVzdWx0WyJhYnNlbmNlRW50cmllcyJdID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgICAgICAvLyBQcmVzZXJ2ZSBrZXlzIGZyb20gZmV0Y2gtYWR2aXNvcnMtZm9yLXRyYW5zZmVyIChwcmV2aW91c2x5IGNsZWFyZWQsIHNvIEdFVCBpbnN0YW5jZXMgYWx3YXlzIHNob3dlZCBbXSkuCiAgICAgICAgICAgIHZhciBwcmVzZXJ2ZWRBZHZpc29yS2V5cyA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgICAgICAgICAgdmFyIGluY29taW5nS2V5cyA9IGRhdGE/LmFsbEFkdmlzb3JLZXlzOwogICAgICAgICAgICBpZiAoaW5jb21pbmdLZXlzICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBhayBpbiBpbmNvbWluZ0tleXMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGFrID09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIHZhciBzID0gYWsuVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KHMpKQogICAgICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZWRBZHZpc29yS2V5cy5BZGQocyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVzdWx0WyJhbGxBZHZpc29yS2V5cyJdID0gcHJlc2VydmVkQWR2aXNvcktleXM7CgogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gcmVzdWx0CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGVycm9yID0gIkZhaWxlZCB0byBlbnJpY2ggcmVzZXJ2YXRpb25zIiwKICAgICAgICAgICAgICAgICAgICBlcnJvckRlc2NyaXB0aW9uID0gZXguTWVzc2FnZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9CgogICAgI3JlZ2lvbiBTbG90IEF2YWlsYWJpbGl0eQoKICAgIHByaXZhdGUgYm9vbCBJc1Nsb3RBdmFpbGFibGVGb3JBZHZpc29yKHN0cmluZyBhZHZpc29yS2V5LCBEYXRlVGltZSByZXpTdGFydCwgRGF0ZVRpbWUgcmV6RW5kLAogICAgICAgIExpc3Q8ZHluYW1pYz4gcHVibGljSG9saWRheXMsCiAgICAgICAgRGljdGlvbmFyeTxzdHJpbmcsIExpc3Q8ZHluYW1pYz4+IGFkdmlzb3JXb3JrSG91cnNNYXAsCiAgICAgICAgTGlzdDxkeW5hbWljPiBjb21wYW55V29ya0hvdXJzLAogICAgICAgIERpY3Rpb25hcnk8c3RyaW5nLCBMaXN0PGR5bmFtaWM+PiBwZXJzb25hbExlYXZlc01hcCkKICAgIHsKICAgICAgICB2YXIgcmV6RGF0ZSA9IHJlelN0YXJ0LkRhdGU7CiAgICAgICAgdmFyIGRheU9mV2VlayA9IHJlekRhdGUuRGF5T2ZXZWVrLlRvU3RyaW5nKCkuVG9Mb3dlcigpOwogICAgICAgIHZhciBzbG90U3RhcnQgPSByZXpTdGFydC5UaW1lT2ZEYXk7CiAgICAgICAgdmFyIHNsb3RFbmQgPSByZXpFbmQuVGltZU9mRGF5OwoKICAgICAgICB2YXIgaG9saWRheVJhbmdlcyA9IEdldEhvbGlkYXlSYW5nZXMocHVibGljSG9saWRheXMsIHJlekRhdGUpOwogICAgICAgIGlmIChob2xpZGF5UmFuZ2VzICE9IG51bGwgJiYgaG9saWRheVJhbmdlcy5Db3VudCA9PSAxCiAgICAgICAgICAgICYmIGhvbGlkYXlSYW5nZXNbMF0uSXRlbTEgPT0gVGltZVNwYW4uWmVybwogICAgICAgICAgICAmJiBob2xpZGF5UmFuZ2VzWzBdLkl0ZW0yID49IG5ldyBUaW1lU3BhbigyMywgNTksIDApKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIExpc3Q8ZHluYW1pYz4gYWR2V29ya0hvdXJzID0gbnVsbDsKICAgICAgICBpZiAoYWR2aXNvcldvcmtIb3Vyc01hcC5Db250YWluc0tleShhZHZpc29yS2V5KSkKICAgICAgICAgICAgYWR2V29ya0hvdXJzID0gYWR2aXNvcldvcmtIb3Vyc01hcFthZHZpc29yS2V5XTsKCiAgICAgICAgdmFyIHdvcmtIb3VycyA9IEdldFdvcmtpbmdIb3Vyc0ZvckRheShhZHZXb3JrSG91cnMsIGRheU9mV2Vlayk7CiAgICAgICAgaWYgKHdvcmtIb3VycyA9PSBudWxsIHx8IHdvcmtIb3Vycy5Db3VudCA9PSAwKQogICAgICAgICAgICB3b3JrSG91cnMgPSBHZXRXb3JraW5nSG91cnNGb3JEYXkoY29tcGFueVdvcmtIb3VycywgZGF5T2ZXZWVrKTsKCiAgICAgICAgaWYgKHdvcmtIb3VycyA9PSBudWxsIHx8IHdvcmtIb3Vycy5Db3VudCA9PSAwKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIGJvb2wgc2xvdEluV29ya0hvdXJzID0gZmFsc2U7CiAgICAgICAgZm9yZWFjaCAodmFyIHdoIGluIHdvcmtIb3VycykKICAgICAgICB7CiAgICAgICAgICAgIGR5bmFtaWMgd2hEeW4gPSB3aDsKICAgICAgICAgICAgdmFyIHN0YXJ0U3RyID0gd2hEeW4/LnN0YXJ0Py5Ub1N0cmluZygpOwogICAgICAgICAgICB2YXIgZW5kU3RyID0gd2hEeW4/LmVuZD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0U3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShlbmRTdHIpKQogICAgICAgICAgICAgICAgY29udGludWU7CgogICAgICAgICAgICBUaW1lU3BhbiB3aFN0YXJ0ID0gVGltZVNwYW4uTWluVmFsdWU7CiAgICAgICAgICAgIFRpbWVTcGFuIHdoRW5kID0gVGltZVNwYW4uTWluVmFsdWU7CiAgICAgICAgICAgIGlmICghVGltZVNwYW4uVHJ5UGFyc2Uoc3RhcnRTdHIsIG91dCB3aFN0YXJ0KSB8fCAhVGltZVNwYW4uVHJ5UGFyc2UoZW5kU3RyLCBvdXQgd2hFbmQpKQogICAgICAgICAgICAgICAgY29udGludWU7CgogICAgICAgICAgICBpZiAoc2xvdFN0YXJ0ID49IHdoU3RhcnQgJiYgc2xvdEVuZCA8PSB3aEVuZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2xvdEluV29ya0hvdXJzID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoIXNsb3RJbldvcmtIb3VycykKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICB2YXIgdW5hdmFpbGFibGVSYW5nZXMgPSBuZXcgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PigpOwoKICAgICAgICBMaXN0PGR5bmFtaWM+IGFkdkxlYXZlcyA9IG51bGw7CiAgICAgICAgaWYgKHBlcnNvbmFsTGVhdmVzTWFwLkNvbnRhaW5zS2V5KGFkdmlzb3JLZXkpKQogICAgICAgICAgICBhZHZMZWF2ZXMgPSBwZXJzb25hbExlYXZlc01hcFthZHZpc29yS2V5XTsKICAgICAgICBpZiAoYWR2TGVhdmVzICE9IG51bGwpCiAgICAgICAgICAgIHVuYXZhaWxhYmxlUmFuZ2VzLkFkZFJhbmdlKEdldFVuYXZhaWxhYmxlUmFuZ2VzKGFkdkxlYXZlcywgcmV6RGF0ZSkpOwoKICAgICAgICBpZiAoaG9saWRheVJhbmdlcyAhPSBudWxsKQogICAgICAgICAgICB1bmF2YWlsYWJsZVJhbmdlcy5BZGRSYW5nZShob2xpZGF5UmFuZ2VzKTsKCiAgICAgICAgZm9yZWFjaCAodmFyIHVyIGluIHVuYXZhaWxhYmxlUmFuZ2VzKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKHNsb3RTdGFydCA8IHVyLkl0ZW0yICYmIHNsb3RFbmQgPiB1ci5JdGVtMSkKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIHByaXZhdGUgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PiBHZXRIb2xpZGF5UmFuZ2VzKExpc3Q8ZHluYW1pYz4gaG9saWRheXMsIERhdGVUaW1lIGRhdGUpCiAgICB7CiAgICAgICAgdmFyIHJhbmdlcyA9IG5ldyBMaXN0PFR1cGxlPFRpbWVTcGFuLCBUaW1lU3Bhbj4+KCk7CiAgICAgICAgYm9vbCBoYXNIb2xpZGF5ID0gZmFsc2U7CgogICAgICAgIGZvcmVhY2ggKHZhciBob2xpZGF5IGluIGhvbGlkYXlzKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGhvbGlkYXlEYXRhID0gaG9saWRheT8uYXR0cmlidXRlczsKICAgICAgICAgICAgaWYgKGhvbGlkYXlEYXRhID09IG51bGwpIGNvbnRpbnVlOwoKICAgICAgICAgICAgc3RyaW5nIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoaG9saWRheURhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIHN0cmluZyBlbmREYXRlVGltZVN0ciA9IEdldFN0cmluZyhob2xpZGF5RGF0YSwgImVuZERhdGVUaW1lIik7CgogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlVGltZVN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZVRpbWVTdHIpKQogICAgICAgICAgICAgICAgY29udGludWU7CgogICAgICAgICAgICBEYXRlVGltZSBzdGFydERhdGVUaW1lID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgIERhdGVUaW1lIGVuZERhdGVUaW1lID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgIGlmICghVHJ5UGFyc2VUb1V0YyhzdGFydERhdGVUaW1lU3RyLCBvdXQgc3RhcnREYXRlVGltZSkgfHwgIVRyeVBhcnNlVG9VdGMoZW5kRGF0ZVRpbWVTdHIsIG91dCBlbmREYXRlVGltZSkpCiAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgIGlmIChkYXRlLkRhdGUgPCBzdGFydERhdGVUaW1lLkRhdGUgfHwgZGF0ZS5EYXRlID4gZW5kRGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgaGFzSG9saWRheSA9IHRydWU7CgogICAgICAgICAgICBpZiAoc3RhcnREYXRlVGltZS5EYXRlICE9IGVuZERhdGVUaW1lLkRhdGUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChkYXRlLkRhdGUgPT0gc3RhcnREYXRlVGltZS5EYXRlKQogICAgICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKHN0YXJ0RGF0ZVRpbWUuVGltZU9mRGF5LCBuZXcgVGltZVNwYW4oMjMsIDU5LCA1OSkpKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRhdGUuRGF0ZSA9PSBlbmREYXRlVGltZS5EYXRlKQogICAgICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKFRpbWVTcGFuLlplcm8sIGVuZERhdGVUaW1lLlRpbWVPZkRheSkpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHJhbmdlcy5BZGQoVHVwbGUuQ3JlYXRlKFRpbWVTcGFuLlplcm8sIG5ldyBUaW1lU3BhbigyMywgNTksIDU5KSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmFuZ2VzLkFkZChUdXBsZS5DcmVhdGUoc3RhcnREYXRlVGltZS5UaW1lT2ZEYXksIGVuZERhdGVUaW1lLlRpbWVPZkRheSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gaGFzSG9saWRheSA/IHJhbmdlcyA6IG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBMaXN0PG9iamVjdD4gR2V0V29ya2luZ0hvdXJzRm9yRGF5KExpc3Q8ZHluYW1pYz4gd29ya2luZ0hvdXJzQ2hhbmdlcywgc3RyaW5nIGRheU9mV2VlaykKICAgIHsKICAgICAgICBpZiAod29ya2luZ0hvdXJzQ2hhbmdlcyA9PSBudWxsKSByZXR1cm4gbnVsbDsKCiAgICAgICAgZm9yZWFjaCAodmFyIGNoYW5nZSBpbiB3b3JraW5nSG91cnNDaGFuZ2VzKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGNoYW5nZURhdGEgPSBjaGFuZ2U/LmF0dHJpYnV0ZXM7CiAgICAgICAgICAgIGlmIChjaGFuZ2VEYXRhID09IG51bGwpIGNvbnRpbnVlOwoKICAgICAgICAgICAgdmFyIGN1c3RvbVdIID0gY2hhbmdlRGF0YT8uY3VzdG9tV29ya2luZ0hvdXJzOwogICAgICAgICAgICBpZiAoY3VzdG9tV0ggPT0gbnVsbCkgY29udGludWU7CgogICAgICAgICAgICB2YXIgZGF5SG91cnMgPSBHZXREYXlIb3Vyc0Zyb21DdXN0b20oY3VzdG9tV0gsIGRheU9mV2Vlayk7CiAgICAgICAgICAgIGlmIChkYXlIb3VycyAhPSBudWxsKSByZXR1cm4gZGF5SG91cnM7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIExpc3Q8b2JqZWN0PiBHZXREYXlIb3Vyc0Zyb21DdXN0b20oZHluYW1pYyBjdXN0b21XSCwgc3RyaW5nIGRheU9mV2VlaykKICAgIHsKICAgICAgICBkeW5hbWljIGRheUhvdXJzID0gbnVsbDsKICAgICAgICBzd2l0Y2ggKGRheU9mV2VlaykKICAgICAgICB7CiAgICAgICAgICAgIGNhc2UgIm1vbmRheSI6IGRheUhvdXJzID0gY3VzdG9tV0g/Lm1vbmRheTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInR1ZXNkYXkiOiBkYXlIb3VycyA9IGN1c3RvbVdIPy50dWVzZGF5OyBicmVhazsKICAgICAgICAgICAgY2FzZSAid2VkbmVzZGF5IjogZGF5SG91cnMgPSBjdXN0b21XSD8ud2VkbmVzZGF5OyBicmVhazsKICAgICAgICAgICAgY2FzZSAidGh1cnNkYXkiOiBkYXlIb3VycyA9IGN1c3RvbVdIPy50aHVyc2RheTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZyaWRheSI6IGRheUhvdXJzID0gY3VzdG9tV0g/LmZyaWRheTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInNhdHVyZGF5IjogZGF5SG91cnMgPSBjdXN0b21XSD8uc2F0dXJkYXk7IGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdW5kYXkiOiBkYXlIb3VycyA9IGN1c3RvbVdIPy5zdW5kYXk7IGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYgKGRheUhvdXJzID09IG51bGwpIHJldHVybiBudWxsOwoKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IExpc3Q8b2JqZWN0PigpOwogICAgICAgIGZvcmVhY2ggKHZhciByYW5nZSBpbiBkYXlIb3VycykKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzdGFydCA9IHJhbmdlPy5zdGFydD8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgdmFyIGVuZCA9IHJhbmdlPy5lbmQ/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnQpICYmICFzdHJpbmcuSXNOdWxsT3JFbXB0eShlbmQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXN1bHQuQWRkKG5ldyB7IHN0YXJ0LCBlbmQgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdC5Db3VudCA+IDAgPyByZXN1bHQgOiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PiBHZXRVbmF2YWlsYWJsZVJhbmdlcyhMaXN0PGR5bmFtaWM+IHBlcnNvbmFsTGVhdmVzLCBEYXRlVGltZSBkYXRlKQogICAgewogICAgICAgIHZhciByYW5nZXMgPSBuZXcgTGlzdDxUdXBsZTxUaW1lU3BhbiwgVGltZVNwYW4+PigpOwoKICAgICAgICBmb3JlYWNoICh2YXIgbGVhdmUgaW4gcGVyc29uYWxMZWF2ZXMpCiAgICAgICAgewogICAgICAgICAgICB2YXIgbGVhdmVEYXRhID0gbGVhdmU/LmF0dHJpYnV0ZXM7CiAgICAgICAgICAgIGlmIChsZWF2ZURhdGEgPT0gbnVsbCkgY29udGludWU7CgogICAgICAgICAgICBzdHJpbmcgc3RhcnREYXRlVGltZVN0ciA9IEdldFN0cmluZyhsZWF2ZURhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIHN0cmluZyBlbmREYXRlVGltZVN0ciA9IEdldFN0cmluZyhsZWF2ZURhdGEsICJlbmREYXRlVGltZSIpOwoKICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBEYXRlVGltZSBlbmREYXRlVGltZSA9IERhdGVUaW1lLk1pblZhbHVlOwogICAgICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoc3RhcnREYXRlVGltZVN0ciwgb3V0IHN0YXJ0RGF0ZVRpbWUpIHx8ICFUcnlQYXJzZVRvVXRjKGVuZERhdGVUaW1lU3RyLCBvdXQgZW5kRGF0ZVRpbWUpKQogICAgICAgICAgICAgICAgY29udGludWU7CgogICAgICAgICAgICBpZiAoZGF0ZS5EYXRlIDwgc3RhcnREYXRlVGltZS5EYXRlIHx8IGRhdGUuRGF0ZSA+IGVuZERhdGVUaW1lLkRhdGUpCiAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgIGlmIChzdGFydERhdGVUaW1lLkRhdGUgIT0gZW5kRGF0ZVRpbWUuRGF0ZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGRhdGUuRGF0ZSA9PSBzdGFydERhdGVUaW1lLkRhdGUpCiAgICAgICAgICAgICAgICAgICAgcmFuZ2VzLkFkZChUdXBsZS5DcmVhdGUoc3RhcnREYXRlVGltZS5UaW1lT2ZEYXksIG5ldyBUaW1lU3BhbigyMywgNTksIDU5KSkpOwogICAgICAgICAgICAgICAgZWxzZSBpZiAoZGF0ZS5EYXRlID09IGVuZERhdGVUaW1lLkRhdGUpCiAgICAgICAgICAgICAgICAgICAgcmFuZ2VzLkFkZChUdXBsZS5DcmVhdGUoVGltZVNwYW4uWmVybywgZW5kRGF0ZVRpbWUuVGltZU9mRGF5KSk7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgcmFuZ2VzLkFkZChUdXBsZS5DcmVhdGUoVGltZVNwYW4uWmVybywgbmV3IFRpbWVTcGFuKDIzLCA1OSwgNTkpKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByYW5nZXMuQWRkKFR1cGxlLkNyZWF0ZShzdGFydERhdGVUaW1lLlRpbWVPZkRheSwgZW5kRGF0ZVRpbWUuVGltZU9mRGF5KSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiByYW5nZXM7CiAgICB9CgogICAgI2VuZHJlZ2lvbgoKICAgICNyZWdpb24gSGVscGVycwoKICAgIHByaXZhdGUgYm9vbCBUcnlQYXJzZVRvVXRjKHN0cmluZyBkYXRlU3RyLCBvdXQgRGF0ZVRpbWUgdXRjRGF0ZVRpbWUpCiAgICB7CiAgICAgICAgdXRjRGF0ZVRpbWUgPSBkZWZhdWx0OwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShkYXRlU3RyKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChEYXRlVGltZU9mZnNldC5UcnlQYXJzZShkYXRlU3RyLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5DdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5EYXRlVGltZVN0eWxlcy5Ob25lLCBvdXQgdmFyIGR0bykpCiAgICAgICAgewogICAgICAgICAgICB1dGNEYXRlVGltZSA9IGR0by5VdGNEYXRlVGltZTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXROZXN0ZWRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBwYXJlbnQsIHN0cmluZyBjaGlsZCkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgcGFyZW50KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIG5lc3RlZCA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBwYXJlbnQpOwogICAgICAgICAgICAgICAgaWYgKG5lc3RlZCAhPSBudWxsICYmIEhhc1Byb3BlcnR5KG5lc3RlZCwgY2hpbGQpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShuZXN0ZWQsIGNoaWxkKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAjZW5kcmVnaW9uCn0K"
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
]
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
},
|
|
170
170
|
"mapping": {
|
|
171
171
|
"location": "./src/ValidateTransferMapping.csx",
|
|
172
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXRyYW5zZmVyLWF2YWlsYWJpbGl0eSB0YXNrIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpLgovLy8gUXVlcmllcyBhbGwgYWN0aXZlIHJlc2VydmF0aW9ucyBpbiB0aGUgZGF0ZSByYW5nZSBmb3IgdGFyZ2V0IGFkdmlzb3JzLgovLy8gT3V0cHV0SGFuZGxlciBjaGVja3MgZWFjaCB0cmFuc2ZlclBsYW4gaXRlbSB0byBzZWUgaWYgdGhlIHRhcmdldCBhZHZpc29yCi8vLyBzdGlsbCBoYXMgYSBmcmVlIHNsb3QgYXQgdGhlIHJlc2VydmF0aW9uJ3MgdGltZXNsb3QuCi8vLyBTZXRzIHZhbGlkYXRpb25SZXN1bHQuYWxsVmFsaWQgPSB0cnVlL2ZhbHNlIGFjY29yZGluZ2x5LgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVUcmFuc2Zlck1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgaWYgKHNlcnZpY2VUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhcHBJZCkpCiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciB0cmFuc2ZlclBsYW4gPSBkYXRhLnRyYW5zZmVyUGxhbjsKICAgICAgICBpZiAodHJhbnNmZXJQbGFuID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigidHJhbnNmZXJQbGFuIGlzIHJlcXVpcmVkLiIsICJ0cmFuc2ZlclBsYW4iKTsKCiAgICAgICAgdmFyIHN0YXJ0RGF0ZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgdmFyIGVuZERhdGUgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGUiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigic3RhcnREYXRlIGlzIHJlcXVpcmVkLiIsICJzdGFydERhdGUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZSkpCiAgICAgICAgICAgIGVuZERhdGUgPSAiMjA5OS0xMi0zMSI7CgogICAgICAgIHZhciBjb25kaXRpb25zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgIntcIm9yXCI6WyIgKwogICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCJhY3RpdmVcIn19LCIgKwogICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCJpbi1tZWV0XCJ9fSIgKwogICAgICAgICAgICAiXX0iLAogICAgICAgICAgICAie1wic3RhdHVzXCI6e1wiZXFcIjpcIkFcIn19IiwKICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJzdGFydERhdGVUaW1lXCI6e1wiZGd0XCI6XCIiICsgc3RhcnREYXRlICsgIlwifX19IiwKICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJlbmREYXRlVGltZVwiOntcImRsdFwiOlwiIiArIGVuZERhdGUgKyAiXCJ9fX0iCiAgICAgICAgfTsKCiAgICAgICAgdmFyIGZpbHRlckpzb24gPSAie1wiYW5kXCI6WyIgKyBzdHJpbmcuSm9pbigiLCIsIGNvbmRpdGlvbnMpICsgIl19IjsKICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICAicGFnZVNpemU9MTAwIiwKICAgICAgICAgICAgImZpbHRlcj0iICsgZmlsdGVySnNvbgogICAgICAgIH07CgogICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICB2YXIgYm9keSA9IGNvbnRleHQuQm9keTsKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICAgICAgaWYgKGJvZHkgIT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IGJvZHkuZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/ICJWYWxpZGF0aW9uIHNlcnZpY2UgZXJyb3IiOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gYm9keT8uZGF0YTsKICAgICAgICAgICAgdmFyIGFsbEl0ZW1zID0gcmVzcG9uc2VEYXRhPy5pdGVtczsKCiAgICAgICAgICAgIHZhciB0cmFuc2ZlclBsYW4gPSBkYXRhPy50cmFuc2ZlclBsYW47CiAgICAgICAgICAgIHZhciBlbnJpY2hlZFJlemVydmF0aW9ucyA9IGRhdGE/LmVucmljaGVkUmV6ZXJ2YXRpb25zOwoKICAgICAgICAgICAgYm9vbCBhbGxWYWxpZCA9IHRydWU7CiAgICAgICAgICAgIHZhciBkZXRhaWxzID0gbmV3IExpc3Q8b2JqZWN0PigpOwoKICAgICAgICAgICAgaWYgKHRyYW5zZmVyUGxhbiAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgcGxhbkl0ZW0gaW4gdHJhbnNmZXJQbGFuKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmIChwbGFuSXRlbSA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgZHluYW1pYyBwaSA9IHBsYW5JdGVtOwogICAgICAgICAgICAgICAgICAgIHZhciByZXplcnZhdGlvbktleSA9IHBpLnJlemVydmF0aW9uS2V5Py5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgICAgIHZhciB0YXJnZXRBZHZpc29yID0gcGkudGFyZ2V0QWR2aXNvcj8uVG9TdHJpbmcoKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHJlemVydmF0aW9uS2V5KSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eSh0YXJnZXRBZHZpc29yKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMuQWRkKG5ldyB7IHJlemVydmF0aW9uS2V5LCB0YXJnZXRBZHZpc29yLCB2YWxpZCA9IGZhbHNlLCByZWFzb24gPSAibWlzc2luZy1kYXRhIiB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgYWxsVmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBzdHJpbmcgcmV6U3RhcnRTdHIgPSBudWxsLCByZXpFbmRTdHIgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGlmIChlbnJpY2hlZFJlemVydmF0aW9ucyAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIGVyIGluIGVucmljaGVkUmV6ZXJ2YXRpb25zKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXIgPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXJLZXkgPSBIYXNQcm9wZXJ0eShlciwgImtleSIpID8gZXIua2V5Py5Ub1N0cmluZygpIDogIiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJLZXkgPT0gcmV6ZXJ2YXRpb25LZXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV6U3RhcnRTdHIgPSBIYXNQcm9wZXJ0eShlciwgInN0YXJ0RGF0ZVRpbWUiKSA/IGVyLnN0YXJ0RGF0ZVRpbWU/LlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlekVuZFN0ciA9IEhhc1Byb3BlcnR5KGVyLCAiZW5kRGF0ZVRpbWUiKSA/IGVyLmVuZERhdGVUaW1lPy5Ub1N0cmluZygpIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHJlelN0YXJ0U3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShyZXpFbmRTdHIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscy5BZGQobmV3IHsgcmV6ZXJ2YXRpb25LZXksIHRhcmdldEFkdmlzb3IsIHZhbGlkID0gdHJ1ZSwgcmVhc29uID0gIm5vLXRpbWUtZGF0YS10by12YWxpZGF0ZSIgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgcmV6U3RhcnQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSByZXpFbmQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICBpZiAoIURhdGVUaW1lLlRyeVBhcnNlKHJlelN0YXJ0U3RyLCBvdXQgcmV6U3RhcnQpIHx8ICFEYXRlVGltZS5UcnlQYXJzZShyZXpFbmRTdHIsIG91dCByZXpFbmQpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscy5BZGQobmV3IHsgcmV6ZXJ2YXRpb25LZXksIHRhcmdldEFkdmlzb3IsIHZhbGlkID0gdHJ1ZSwgcmVhc29uID0gInVucGFyc2VhYmxlLXRpbWUiIH0pOwogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGJvb2wgaGFzQ29uZmxpY3QgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZiAoYWxsSXRlbXMgIT0gbnVsbCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIGFsbEl0ZW1zKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtQWR2aXNvciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJhZHZpc29yIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcoaXRlbSwgImFkdmlzb3IiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtQWR2aXNvciAhPSB0YXJnZXRBZHZpc29yKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVN0YXJ0U3RyID0gR2V0TmVzdGVkU3RyaW5nKGl0ZW0sICJhdHRyaWJ1dGVzIiwgInN0YXJ0RGF0ZVRpbWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8/IEdldFN0cmluZyhpdGVtLCAic3RhcnREYXRlVGltZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1FbmRTdHIgPSBHZXROZXN0ZWRTdHJpbmcoaXRlbSwgImF0dHJpYnV0ZXMiLCAiZW5kRGF0ZVRpbWUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8/IEdldFN0cmluZyhpdGVtLCAiZW5kRGF0ZVRpbWUiKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoaXRlbVN0YXJ0U3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShpdGVtRW5kU3RyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSBpdGVtU3RhcnQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVUaW1lIGl0ZW1FbmQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChEYXRlVGltZS5UcnlQYXJzZShpdGVtU3RhcnRTdHIsIG91dCBpdGVtU3RhcnQpICYmIERhdGVUaW1lLlRyeVBhcnNlKGl0ZW1FbmRTdHIsIG91dCBpdGVtRW5kKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbUtleSA9IEhhc1Byb3BlcnR5KGl0ZW0sICJrZXkiKSA/IGl0ZW0ua2V5Py5Ub1N0cmluZygpIDogIiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1LZXkgPT0gcmV6ZXJ2YXRpb25LZXkpIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVN0YXJ0IDwgcmV6RW5kICYmIGl0ZW1FbmQgPiByZXpTdGFydCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0NvbmZsaWN0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoaGFzQ29uZmxpY3QpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhbGxWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzLkFkZChuZXcgeyByZXplcnZhdGlvbktleSwgdGFyZ2V0QWR2aXNvciwgdmFsaWQgPSBmYWxzZSwgcmVhc29uID0gInNsb3QtY29uZmxpY3QiIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzLkFkZChuZXcgeyByZXplcnZhdGlvbktleSwgdGFyZ2V0QWR2aXNvciwgdmFsaWQgPSB0cnVlIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFsbFZhbGlkLAogICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRJbmRleCA9IDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWxsVmFsaWQgPSBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBleC5NZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0TmVzdGVkU3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgcGFyZW50LCBzdHJpbmcgY2hpbGQpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIHBhcmVudCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBuZXN0ZWQgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgcGFyZW50KTsKICAgICAgICAgICAgICAgIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShuZXN0ZWQsIGNoaWxkKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUobmVzdGVkLCBjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0KCg=="
|
|
172
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXRyYW5zZmVyLWF2YWlsYWJpbGl0eSB0YXNrIChEYXByU2VydmljZVRhc2sgLSBUeXBlIDMpLgovLy8gUXVlcmllcyBhbGwgYWN0aXZlIHJlc2VydmF0aW9ucyBpbiB0aGUgZGF0ZSByYW5nZSBmb3IgdGFyZ2V0IGFkdmlzb3JzLgovLy8gT3V0cHV0SGFuZGxlciBjaGVja3MgZWFjaCB0cmFuc2ZlclBsYW4gaXRlbSB0byBzZWUgaWYgdGhlIHRhcmdldCBhZHZpc29yCi8vLyBzdGlsbCBoYXMgYSBmcmVlIHNsb3QgYXQgdGhlIHJlc2VydmF0aW9uJ3MgdGltZXNsb3QuCi8vLyBTZXRzIHZhbGlkYXRpb25SZXN1bHQuYWxsVmFsaWQgPSB0cnVlL2ZhbHNlIGFjY29yZGluZ2x5LgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVUcmFuc2Zlck1hcHBpbmcgOiBTY3JpcHRCYXNlLCBJTWFwcGluZwp7CiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gSW5wdXRIYW5kbGVyKFdvcmtmbG93VGFzayB0YXNrLCBTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgaWYgKHNlcnZpY2VUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYSBEYXByU2VydmljZVRhc2siKTsKCiAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShhcHBJZCkpCiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldEFwcElkKGFwcElkKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJJbnN0YW5jZSBkYXRhIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciB0cmFuc2ZlclBsYW4gPSBkYXRhLnRyYW5zZmVyUGxhbjsKICAgICAgICBpZiAodHJhbnNmZXJQbGFuID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigidHJhbnNmZXJQbGFuIGlzIHJlcXVpcmVkLiIsICJ0cmFuc2ZlclBsYW4iKTsKCiAgICAgICAgdmFyIHN0YXJ0RGF0ZSA9IEdldFN0cmluZyhkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgdmFyIGVuZERhdGUgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGUiKTsKCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigic3RhcnREYXRlIGlzIHJlcXVpcmVkLiIsICJzdGFydERhdGUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZSkpCiAgICAgICAgICAgIGVuZERhdGUgPSAiMjA5OS0xMi0zMSI7CgogICAgICAgIHZhciBjb25kaXRpb25zID0gbmV3IExpc3Q8c3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgIntcIm9yXCI6WyIgKwogICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCJhY3RpdmVcIn19LCIgKwogICAgICAgICAgICAgICAgIntcImN1cnJlbnRTdGF0ZVwiOntcImVxXCI6XCJpbi1tZWV0XCJ9fSIgKwogICAgICAgICAgICAiXX0iLAogICAgICAgICAgICAie1wic3RhdHVzXCI6e1wiZXFcIjpcIkFcIn19IiwKICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJzdGFydERhdGVUaW1lXCI6e1wiZGd0XCI6XCIiICsgc3RhcnREYXRlICsgIlwifX19IiwKICAgICAgICAgICAgIntcImF0dHJpYnV0ZXNcIjp7XCJlbmREYXRlVGltZVwiOntcImRsdFwiOlwiIiArIGVuZERhdGUgKyAiXCJ9fX0iCiAgICAgICAgfTsKCiAgICAgICAgdmFyIGZpbHRlckpzb24gPSAie1wiYW5kXCI6WyIgKyBzdHJpbmcuSm9pbigiLCIsIGNvbmRpdGlvbnMpICsgIl19IjsKICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICAicGFnZVNpemU9MTAwIiwKICAgICAgICAgICAgImZpbHRlcj0iICsgZmlsdGVySnNvbgogICAgICAgIH07CgogICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICB2YXIgYm9keSA9IGNvbnRleHQuQm9keTsKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwoKICAgICAgICAgICAgaWYgKGJvZHkgIT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IGJvZHkuZXJyb3JNZXNzYWdlPy5Ub1N0cmluZygpID8/ICJWYWxpZGF0aW9uIHNlcnZpY2UgZXJyb3IiOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gYm9keT8uZGF0YTsKICAgICAgICAgICAgdmFyIGFsbEl0ZW1zID0gcmVzcG9uc2VEYXRhPy5pdGVtczsKCiAgICAgICAgICAgIHZhciB0cmFuc2ZlclBsYW4gPSBkYXRhPy50cmFuc2ZlclBsYW47CiAgICAgICAgICAgIHZhciBlbnJpY2hlZFJlemVydmF0aW9ucyA9IGRhdGE/LmVucmljaGVkUmV6ZXJ2YXRpb25zOwoKICAgICAgICAgICAgYm9vbCBhbGxWYWxpZCA9IHRydWU7CiAgICAgICAgICAgIHZhciBkZXRhaWxzID0gbmV3IExpc3Q8b2JqZWN0PigpOwoKICAgICAgICAgICAgaWYgKHRyYW5zZmVyUGxhbiAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgcGxhbkl0ZW0gaW4gdHJhbnNmZXJQbGFuKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmIChwbGFuSXRlbSA9PSBudWxsKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgZHluYW1pYyBwaSA9IHBsYW5JdGVtOwogICAgICAgICAgICAgICAgICAgIHZhciByZXplcnZhdGlvbktleSA9IHBpLnJlemVydmF0aW9uS2V5Py5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgICAgIHZhciB0YXJnZXRBZHZpc29yID0gcGkudGFyZ2V0QWR2aXNvcj8uVG9TdHJpbmcoKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHJlemVydmF0aW9uS2V5KSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eSh0YXJnZXRBZHZpc29yKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMuQWRkKG5ldyB7IHJlemVydmF0aW9uS2V5LCB0YXJnZXRBZHZpc29yLCB2YWxpZCA9IGZhbHNlLCByZWFzb24gPSAibWlzc2luZy1kYXRhIiB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgYWxsVmFsaWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBzdHJpbmcgcmV6U3RhcnRTdHIgPSBudWxsLCByZXpFbmRTdHIgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGlmIChlbnJpY2hlZFJlemVydmF0aW9ucyAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAodmFyIGVyIGluIGVucmljaGVkUmV6ZXJ2YXRpb25zKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXIgPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXJLZXkgPSBIYXNQcm9wZXJ0eShlciwgImtleSIpID8gZXIua2V5Py5Ub1N0cmluZygpIDogIiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJLZXkgPT0gcmV6ZXJ2YXRpb25LZXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV6U3RhcnRTdHIgPSBIYXNQcm9wZXJ0eShlciwgInN0YXJ0RGF0ZVRpbWUiKSA/IGVyLnN0YXJ0RGF0ZVRpbWU/LlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlekVuZFN0ciA9IEhhc1Byb3BlcnR5KGVyLCAiZW5kRGF0ZVRpbWUiKSA/IGVyLmVuZERhdGVUaW1lPy5Ub1N0cmluZygpIDogbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHJlelN0YXJ0U3RyKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShyZXpFbmRTdHIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscy5BZGQobmV3IHsgcmV6ZXJ2YXRpb25LZXksIHRhcmdldEFkdmlzb3IsIHZhbGlkID0gdHJ1ZSwgcmVhc29uID0gIm5vLXRpbWUtZGF0YS10by12YWxpZGF0ZSIgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgcmV6U3RhcnQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSByZXpFbmQgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMocmV6U3RhcnRTdHIsIG91dCByZXpTdGFydCkgfHwgIVRyeVBhcnNlVG9VdGMocmV6RW5kU3RyLCBvdXQgcmV6RW5kKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMuQWRkKG5ldyB7IHJlemVydmF0aW9uS2V5LCB0YXJnZXRBZHZpc29yLCB2YWxpZCA9IHRydWUsIHJlYXNvbiA9ICJ1bnBhcnNlYWJsZS10aW1lIiB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBib29sIGhhc0NvbmZsaWN0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbEl0ZW1zICE9IG51bGwpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgaXRlbSBpbiBhbGxJdGVtcykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbUFkdmlzb3IgPSBHZXROZXN0ZWRTdHJpbmcoaXRlbSwgImF0dHJpYnV0ZXMiLCAiYWR2aXNvciIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPz8gR2V0U3RyaW5nKGl0ZW0sICJhZHZpc29yIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbUFkdmlzb3IgIT0gdGFyZ2V0QWR2aXNvcikgY29udGludWU7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1TdGFydFN0ciA9IEdldE5lc3RlZFN0cmluZyhpdGVtLCAiYXR0cmlidXRlcyIsICJzdGFydERhdGVUaW1lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcoaXRlbSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtRW5kU3RyID0gR2V0TmVzdGVkU3RyaW5nKGl0ZW0sICJhdHRyaWJ1dGVzIiwgImVuZERhdGVUaW1lIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PyBHZXRTdHJpbmcoaXRlbSwgImVuZERhdGVUaW1lIik7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KGl0ZW1TdGFydFN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoaXRlbUVuZFN0cikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVRpbWUgaXRlbVN0YXJ0ID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlVGltZSBpdGVtRW5kID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVHJ5UGFyc2VUb1V0YyhpdGVtU3RhcnRTdHIsIG91dCBpdGVtU3RhcnQpICYmIFRyeVBhcnNlVG9VdGMoaXRlbUVuZFN0ciwgb3V0IGl0ZW1FbmQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtS2V5ID0gSGFzUHJvcGVydHkoaXRlbSwgImtleSIpID8gaXRlbS5rZXk/LlRvU3RyaW5nKCkgOiAiIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbUtleSA9PSByZXplcnZhdGlvbktleSkgY29udGludWU7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtU3RhcnQgPCByZXpFbmQgJiYgaXRlbUVuZCA+IHJlelN0YXJ0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQ29uZmxpY3QgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmIChoYXNDb25mbGljdCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFsbFZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMuQWRkKG5ldyB7IHJlemVydmF0aW9uS2V5LCB0YXJnZXRBZHZpc29yLCB2YWxpZCA9IGZhbHNlLCByZWFzb24gPSAic2xvdC1jb25mbGljdCIgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMuQWRkKG5ldyB7IHJlemVydmF0aW9uS2V5LCB0YXJnZXRBZHZpc29yLCB2YWxpZCA9IHRydWUgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBEYXRhID0gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWxsVmFsaWQsCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZEluZGV4ID0gMAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uUmVzdWx0ID0gbmV3CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBhbGxWYWxpZCA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGV4Lk1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGJvb2wgVHJ5UGFyc2VUb1V0YyhzdHJpbmcgZGF0ZVN0ciwgb3V0IERhdGVUaW1lIHV0Y0RhdGVUaW1lKQogICAgewogICAgICAgIHV0Y0RhdGVUaW1lID0gZGVmYXVsdDsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZGF0ZVN0cikpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAoRGF0ZVRpbWVPZmZzZXQuVHJ5UGFyc2UoZGF0ZVN0ciwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uRGF0ZVRpbWVTdHlsZXMuTm9uZSwgb3V0IHZhciBkdG8pKQogICAgICAgIHsKICAgICAgICAgICAgdXRjRGF0ZVRpbWUgPSBkdG8uVXRjRGF0ZVRpbWU7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0TmVzdGVkU3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgcGFyZW50LCBzdHJpbmcgY2hpbGQpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIHBhcmVudCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBuZXN0ZWQgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgcGFyZW50KTsKICAgICAgICAgICAgICAgIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiBIYXNQcm9wZXJ0eShuZXN0ZWQsIGNoaWxkKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUobmVzdGVkLCBjaGlsZCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Cn0KCg=="
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
]
|
|
@@ -469,6 +469,43 @@
|
|
|
469
469
|
},
|
|
470
470
|
{
|
|
471
471
|
"order": 2,
|
|
472
|
+
"task": {
|
|
473
|
+
"domain": "morph-touch",
|
|
474
|
+
"flow": "sys-tasks",
|
|
475
|
+
"key": "register-for-chat",
|
|
476
|
+
"version": "1.0.0"
|
|
477
|
+
},
|
|
478
|
+
"mapping": {
|
|
479
|
+
"location": "./src/RegisterForTransferChatMapping.csx",
|
|
480
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHJlZ2lzdGVyLWZvci1jaGF0IGluIHJlemVydmF0aW9uLXRyYW5zZmVyIGZsb3cuCi8vLyBSZWdpc3RlcnMgdGhlIHVzZXIgbG9va2VkIHVwIGZyb20gcGVybWFuZW50Q2hhdFJvb21zIGJ5IGNoYXRSb29tS2V5IG9uIFN5bmFwc2UuCi8vLyBFcnJvckJvdW5kYXJ5IG9uIHRoZSB0YXNrIGlnbm9yZXMgTV9VU0VSX0lOX1VTRSBhbmQgb3RoZXIgZXJyb3JzIHNvIGxvZ2luIHByb2NlZWRzLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgUmVnaXN0ZXJGb3JUcmFuc2ZlckNoYXRNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIGFzeW5jIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBodHRwVGFzayA9IHRhc2sgYXMgSHR0cFRhc2s7CiAgICAgICAgaWYgKGh0dHBUYXNrID09IG51bGwpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJUYXNrIG11c3QgYmUgYW4gSHR0cFRhc2siKTsKCiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKCiAgICAgICAgc3RyaW5nIHVzZXIgPSBudWxsOwogICAgICAgIHZhciBwZXJtYW5lbnRSb29tUGxhbiA9IGRhdGEucGVybWFuZW50Um9vbVBsYW47CiAgICAgICAgaWYgKHBlcm1hbmVudFJvb21QbGFuICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBpbnQgcHJvY2Vzc2VkSW5kZXggPSAwOwogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgInBlcm1hbmVudFByb2Nlc3NlZEluZGV4IikpCiAgICAgICAgICAgICAgICBpbnQuVHJ5UGFyc2UoZGF0YS5wZXJtYW5lbnRQcm9jZXNzZWRJbmRleD8uVG9TdHJpbmcoKSA/PyAiMCIsIG91dCBwcm9jZXNzZWRJbmRleCk7CgogICAgICAgICAgICB2YXIgaXRlbXMgPSBwZXJtYW5lbnRSb29tUGxhbiBhcyBJRW51bWVyYWJsZTxvYmplY3Q+OwogICAgICAgICAgICBpZiAoaXRlbXMgIT0gbnVsbCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIGl0ZW1zTGlzdCA9IGl0ZW1zLlRvTGlzdCgpOwogICAgICAgICAgICAgICAgaWYgKHByb2Nlc3NlZEluZGV4IDwgaXRlbXNMaXN0LkNvdW50KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGR5bmFtaWMgY3VycmVudEl0ZW0gPSBpdGVtc0xpc3RbcHJvY2Vzc2VkSW5kZXhdOwogICAgICAgICAgICAgICAgICAgIHZhciBjaGF0Um9vbUtleSA9IGN1cnJlbnRJdGVtPy5jaGF0Um9vbUtleT8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGNoYXRSb29tS2V5KSkKICAgICAgICAgICAgICAgICAgICAgICAgdXNlciA9IExvb2t1cFVzZXIoZGF0YSwgY2hhdFJvb21LZXkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh1c2VyKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIk1hdHJpeEJhc2VVcmwgc2VjcmV0IGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBzeW5hcHNlUGFzc3dvcmQgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIlN5bmFwc2VQYXNzd29yZCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHN5bmFwc2VQYXNzd29yZCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJTeW5hcHNlUGFzc3dvcmQgc2VjcmV0IGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBmdWxsVXJsID0gbWF0cml4QmFzZVVybC5UcmltRW5kKCcvJykgKyAiL19tYXRyaXgvY2xpZW50L3YzL3JlZ2lzdGVyIjsKICAgICAgICBodHRwVGFzay5TZXRVcmwoZnVsbFVybCk7CgogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMobmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iCiAgICAgICAgfSk7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3CiAgICAgICAgewogICAgICAgICAgICBhdXRoID0gbmV3IHsgdHlwZSA9ICJtLmxvZ2luLmR1bW15IiB9LAogICAgICAgICAgICB1c2VybmFtZSA9IHVzZXIsCiAgICAgICAgICAgIHBhc3N3b3JkID0gc3luYXBzZVBhc3N3b3JkCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSgpOwogICAgfQoKICAgIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBMb29rdXBVc2VyKGR5bmFtaWMgZGF0YSwgc3RyaW5nIGNoYXRSb29tS2V5KQogICAgewogICAgICAgIGlmICghSGFzUHJvcGVydHkoZGF0YSwgInBlcm1hbmVudENoYXRSb29tcyIpIHx8IGRhdGEucGVybWFuZW50Q2hhdFJvb21zID09IG51bGwpCiAgICAgICAgICAgIHJldHVybiBudWxsOwoKICAgICAgICBmb3JlYWNoICh2YXIgcm9vbSBpbiBkYXRhLnBlcm1hbmVudENoYXRSb29tcykKICAgICAgICB7CiAgICAgICAgICAgIHZhciBrZXkgPSBHZXRTdHJpbmcocm9vbSwgImNoYXRSb29tS2V5Iik7CiAgICAgICAgICAgIGlmIChzdHJpbmcuRXF1YWxzKGtleSwgY2hhdFJvb21LZXksIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpKQogICAgICAgICAgICAgICAgcmV0dXJuIEdldFN0cmluZyhyb29tLCAidXNlciIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKT8uVHJpbSgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
|
|
481
|
+
},
|
|
482
|
+
"errorBoundary": {
|
|
483
|
+
"onError": [
|
|
484
|
+
{
|
|
485
|
+
"action": 3,
|
|
486
|
+
"errorCodes": [
|
|
487
|
+
"*"
|
|
488
|
+
],
|
|
489
|
+
"priority": 1
|
|
490
|
+
}
|
|
491
|
+
]
|
|
492
|
+
}
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"order": 3,
|
|
496
|
+
"task": {
|
|
497
|
+
"domain": "morph-touch",
|
|
498
|
+
"flow": "sys-tasks",
|
|
499
|
+
"key": "login-for-chat",
|
|
500
|
+
"version": "1.0.0"
|
|
501
|
+
},
|
|
502
|
+
"mapping": {
|
|
503
|
+
"location": "./src/LoginForTransferChatMapping.csx",
|
|
504
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGxvZ2luLWZvci1jaGF0IHdoZW4gdXNlZCBpbiByZXplcnZhdGlvbi10cmFuc2ZlciBmbG93LgovLy8gQ2FsbHMgUE9TVCAvX21hdHJpeC9jbGllbnQvdjMvbG9naW4gb24gU3luYXBzZS4KLy8vIExvb2tzIHVwIHVzZXIgZnJvbSBwZXJtYW5lbnRDaGF0Um9vbXMgYnkgY2hhdFJvb21LZXkgKHNhbWUgbG9naWMgYXMgRmV0Y2hSb29tTWVzc2FnZXNGb3JTdW1tYXJ5TWFwcGluZykuCi8vLyBTdG9yZXMgYWNjZXNzX3Rva2VuIGFzIHNlc3Npb25JZCBpbiBjaGF0SW50ZWdyYXRpb24gZm9yIHN1YnNlcXVlbnQgTWF0cml4IEFQSSBjYWxscy4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIExvZ2luRm9yVHJhbnNmZXJDaGF0TWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CgogICAgICAgIHN0cmluZyB1c2VyID0gbnVsbDsKICAgICAgICB2YXIgcGVybWFuZW50Um9vbVBsYW4gPSBkYXRhLnBlcm1hbmVudFJvb21QbGFuOwogICAgICAgIGlmIChwZXJtYW5lbnRSb29tUGxhbiAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJwZXJtYW5lbnRQcm9jZXNzZWRJbmRleCIpKQogICAgICAgICAgICAgICAgaW50LlRyeVBhcnNlKGRhdGEucGVybWFuZW50UHJvY2Vzc2VkSW5kZXg/LlRvU3RyaW5nKCkgPz8gIjAiLCBvdXQgcHJvY2Vzc2VkSW5kZXgpOwoKICAgICAgICAgICAgdmFyIGl0ZW1zID0gcGVybWFuZW50Um9vbVBsYW4gYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICAgICAgaWYgKGl0ZW1zICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBpdGVtc0xpc3QgPSBpdGVtcy5Ub0xpc3QoKTsKICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzZWRJbmRleCA8IGl0ZW1zTGlzdC5Db3VudCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBkeW5hbWljIGN1cnJlbnRJdGVtID0gaXRlbXNMaXN0W3Byb2Nlc3NlZEluZGV4XTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2hhdFJvb21LZXkgPSBjdXJyZW50SXRlbT8uY2hhdFJvb21LZXk/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShjaGF0Um9vbUtleSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIgPSBMb29rdXBVc2VyKGRhdGEsIGNoYXRSb29tS2V5KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKCiAgICAgICAgdmFyIHNlY3JldE5hbWUgPSBHZXRDb25maWdWYWx1ZSgiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHNlY3JldE5hbWUpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiREFQUl9TRUNSRVRfU1RPUkVfTkFNRSBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIik7CgogICAgICAgIHZhciBtYXRyaXhCYXNlVXJsID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJNYXRyaXhCYXNlVXJsIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobWF0cml4QmFzZVVybCkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJNYXRyaXhCYXNlVXJsIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgc3luYXBzZVBhc3N3b3JkID0gYXdhaXQgR2V0U2VjcmV0QXN5bmMoc2VjcmV0TmFtZSwgIndvcmtmbG93LXNlY3JldCIsICJTeW5hcHNlUGFzc3dvcmQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzeW5hcHNlUGFzc3dvcmQpKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiU3luYXBzZVBhc3N3b3JkIHNlY3JldCBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsgIi9fbWF0cml4L2NsaWVudC92My9sb2dpbiI7CiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICBodHRwVGFzay5TZXRIZWFkZXJzKG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJDb250ZW50LVR5cGUiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIgogICAgICAgIH0pOwoKICAgICAgICBodHRwVGFzay5TZXRCb2R5KG5ldwogICAgICAgIHsKICAgICAgICAgICAgdHlwZSA9ICJtLmxvZ2luLnBhc3N3b3JkIiwKICAgICAgICAgICAgaWRlbnRpZmllciA9IG5ldyB7IHR5cGUgPSAibS5pZC51c2VyIiwgdXNlciA9IHVzZXIgfSwKICAgICAgICAgICAgcGFzc3dvcmQgPSBzeW5hcHNlUGFzc3dvcmQKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciByZXN1bHQgPSBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgICAgICB2YXIgcmVzcG9uc2UgPSBjb250ZXh0LkJvZHk7CgogICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzID09IHRydWUpCiAgICAgICAgewogICAgICAgICAgICBkeW5hbWljIGRhdGEgPSByZXNwb25zZS5kYXRhOwogICAgICAgICAgICBzdHJpbmcgc2Vzc2lvbklkID0gR2V0U3RyaW5nKGRhdGEsICJhY2Nlc3NfdG9rZW4iKTsKICAgICAgICAgICAgc3RyaW5nIHVzZXJJZCA9IEdldFN0cmluZyhkYXRhLCAidXNlcl9pZCIpOwogICAgICAgICAgICBzdHJpbmcgdXNlcm5hbWUgPSBHZXRTdHJpbmcoZGF0YSwgInVzZXJuYW1lIik7CgogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IChzdHJpbmcpbnVsbAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgZXJyb3JNZXNzYWdlID0gcmVzcG9uc2U/LmVycm9yTWVzc2FnZT8uVG9TdHJpbmcoKSA/PyAiQ2hhdCBsb2dpbiBmYWlsZWQiOwogICAgICAgICAgICBzdHJpbmcgc3RhdHVzQ29kZSA9IHJlc3BvbnNlPy5zdGF0dXNDb2RlICE9IG51bGwgPyByZXNwb25zZS5zdGF0dXNDb2RlLlRvU3RyaW5nKCkgOiBudWxsOwogICAgICAgICAgICByZXN1bHQuRGF0YSA9IG5ldwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGF0SW50ZWdyYXRpb24gPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSAoc3RyaW5nKW51bGwsCiAgICAgICAgICAgICAgICAgICAgdXNlcklkID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lID0gKHN0cmluZyludWxsLAogICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXJyb3JNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZSA9IHN0YXR1c0NvZGUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQocmVzdWx0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBMb29rdXBVc2VyKGR5bmFtaWMgZGF0YSwgc3RyaW5nIGNoYXRSb29tS2V5KQogICAgewogICAgICAgIGlmICghSGFzUHJvcGVydHkoZGF0YSwgInBlcm1hbmVudENoYXRSb29tcyIpIHx8IGRhdGEucGVybWFuZW50Q2hhdFJvb21zID09IG51bGwpCiAgICAgICAgICAgIHJldHVybiBudWxsOwoKICAgICAgICBmb3JlYWNoICh2YXIgcm9vbSBpbiBkYXRhLnBlcm1hbmVudENoYXRSb29tcykKICAgICAgICB7CiAgICAgICAgICAgIHZhciBrZXkgPSBHZXRTdHJpbmcocm9vbSwgImNoYXRSb29tS2V5Iik7CiAgICAgICAgICAgIGlmIChzdHJpbmcuRXF1YWxzKGtleSwgY2hhdFJvb21LZXksIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpKQogICAgICAgICAgICAgICAgcmV0dXJuIEdldFN0cmluZyhyb29tLCAidXNlciIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKT8uVHJpbSgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
"order": 4,
|
|
472
509
|
"task": {
|
|
473
510
|
"domain": "morph-touch",
|
|
474
511
|
"flow": "sys-tasks",
|
|
@@ -477,11 +514,11 @@
|
|
|
477
514
|
},
|
|
478
515
|
"mapping": {
|
|
479
516
|
"location": "./src/FetchRoomMessagesForSummaryMapping.csx",
|
|
480
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGdldC1tYXRyaXgtcm9vbS1tZXNzYWdlcyBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgdGVybWluYXRpb24gdHJhbnNmZXIgbG9vcC4KLy8vIFJlYWRzIHJvb21JZCBmcm9tIHBlcm1hbmVudENoYXRSb29tcyAobWF0Y2hlZCBieSBjaGF0Um9vbUtleSkgYW5kIGZldGNoZXMgdGhlIGxhc3QgMTAwIG1lc3NhZ2VzLgovLy8gU3RvcmVzIGZvcm1hdHRlZCBtZXNzYWdlcyBpbiBsYXN0Um9vbU1lc3NhZ2VzIGZvciBBSSBzdW1tYXJpemF0aW9uLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgRmV0Y2hSb29tTWVzc2FnZXNGb3JTdW1tYXJ5TWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8taW5zdGFuY2UtZGF0YSIgfSB9OwoKICAgICAgICB2YXIgcm9vbUlkID0gR2V0U3RyaW5nKGRhdGEsICJsYXN0RGVhY3RpdmF0ZWRSb29tSWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8tcm9vbUlkIiB9IH07CgogICAgICAgIHN0cmluZyB1c2VyID0gbnVsbDsKICAgICAgICB2YXIgcGVybWFuZW50Um9vbVBsYW4gPSBkYXRhLnBlcm1hbmVudFJvb21QbGFuOwogICAgICAgIGlmIChwZXJtYW5lbnRSb29tUGxhbiAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJwZXJtYW5lbnRQcm9jZXNzZWRJbmRleCIpKQogICAgICAgICAgICAgICAgaW50LlRyeVBhcnNlKGRhdGEucGVybWFuZW50UHJvY2Vzc2VkSW5kZXg/LlRvU3RyaW5nKCkgPz8gIjAiLCBvdXQgcHJvY2Vzc2VkSW5kZXgpOwoKICAgICAgICAgICAgdmFyIGl0ZW1zID0gcGVybWFuZW50Um9vbVBsYW4gYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICAgICAgaWYgKGl0ZW1zICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBpdGVtc0xpc3QgPSBpdGVtcy5Ub0xpc3QoKTsKICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzZWRJbmRleCA8IGl0ZW1zTGlzdC5Db3VudCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBkeW5hbWljIGN1cnJlbnRJdGVtID0gaXRlbXNMaXN0W3Byb2Nlc3NlZEluZGV4XTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2hhdFJvb21LZXkgPSBjdXJyZW50SXRlbT8uY2hhdFJvb21LZXk/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShjaGF0Um9vbUtleSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIgPSBMb29rdXBVc2VyKGRhdGEsIGNoYXRSb29tS2V5KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gbmV3IHsgc2tpcHBlZCA9IHRydWUsIHJlYXNvbiA9ICJuby11c2VyIiB9IH07CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8tTWF0cml4QmFzZVVybCIgfSB9OwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsKICAgICAgICAgICAgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArCiAgICAgICAgICAgICIvbWVzc2FnZXM/
|
|
517
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIGdldC1tYXRyaXgtcm9vbS1tZXNzYWdlcyBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgdGVybWluYXRpb24gdHJhbnNmZXIgbG9vcC4KLy8vIFJlYWRzIHJvb21JZCBmcm9tIHBlcm1hbmVudENoYXRSb29tcyAobWF0Y2hlZCBieSBjaGF0Um9vbUtleSkgYW5kIGZldGNoZXMgdGhlIGxhc3QgMTAwIG1lc3NhZ2VzLgovLy8gU3RvcmVzIGZvcm1hdHRlZCBtZXNzYWdlcyBpbiBsYXN0Um9vbU1lc3NhZ2VzIGZvciBBSSBzdW1tYXJpemF0aW9uLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgRmV0Y2hSb29tTWVzc2FnZXNGb3JTdW1tYXJ5TWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8taW5zdGFuY2UtZGF0YSIgfSB9OwoKICAgICAgICB2YXIgcm9vbUlkID0gR2V0U3RyaW5nKGRhdGEsICJsYXN0RGVhY3RpdmF0ZWRSb29tSWQiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShyb29tSWQpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8tcm9vbUlkIiB9IH07CgogICAgICAgIHN0cmluZyB1c2VyID0gbnVsbDsKICAgICAgICB2YXIgcGVybWFuZW50Um9vbVBsYW4gPSBkYXRhLnBlcm1hbmVudFJvb21QbGFuOwogICAgICAgIGlmIChwZXJtYW5lbnRSb29tUGxhbiAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHByb2Nlc3NlZEluZGV4ID0gMDsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJwZXJtYW5lbnRQcm9jZXNzZWRJbmRleCIpKQogICAgICAgICAgICAgICAgaW50LlRyeVBhcnNlKGRhdGEucGVybWFuZW50UHJvY2Vzc2VkSW5kZXg/LlRvU3RyaW5nKCkgPz8gIjAiLCBvdXQgcHJvY2Vzc2VkSW5kZXgpOwoKICAgICAgICAgICAgdmFyIGl0ZW1zID0gcGVybWFuZW50Um9vbVBsYW4gYXMgSUVudW1lcmFibGU8b2JqZWN0PjsKICAgICAgICAgICAgaWYgKGl0ZW1zICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBpdGVtc0xpc3QgPSBpdGVtcy5Ub0xpc3QoKTsKICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzZWRJbmRleCA8IGl0ZW1zTGlzdC5Db3VudCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBkeW5hbWljIGN1cnJlbnRJdGVtID0gaXRlbXNMaXN0W3Byb2Nlc3NlZEluZGV4XTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2hhdFJvb21LZXkgPSBjdXJyZW50SXRlbT8uY2hhdFJvb21LZXk/LlRvU3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShjaGF0Um9vbUtleSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXIgPSBMb29rdXBVc2VyKGRhdGEsIGNoYXRSb29tS2V5KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodXNlcikpCiAgICAgICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gbmV3IHsgc2tpcHBlZCA9IHRydWUsIHJlYXNvbiA9ICJuby11c2VyIiB9IH07CgogICAgICAgIHZhciBzZWNyZXROYW1lID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZWNyZXROYW1lKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkRBUFJfU0VDUkVUX1NUT1JFX05BTUUgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCIpOwoKICAgICAgICB2YXIgbWF0cml4QmFzZVVybCA9IGF3YWl0IEdldFNlY3JldEFzeW5jKHNlY3JldE5hbWUsICJ3b3JrZmxvdy1zZWNyZXQiLCAiTWF0cml4QmFzZVVybCIpOwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKG1hdHJpeEJhc2VVcmwpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8tTWF0cml4QmFzZVVybCIgfSB9OwoKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsKICAgICAgICAgICAgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcocm9vbUlkKSArCiAgICAgICAgICAgICIvbWVzc2FnZXM/ZGlyPWImbGltaXQ9MTAwIjsKCiAgICAgICAgaHR0cFRhc2suU2V0VXJsKGZ1bGxVcmwpOwoKICAgICAgICBzdHJpbmcgc2Vzc2lvbklkID0gbnVsbDsKICAgICAgICBpZiAoSGFzUHJvcGVydHkoZGF0YSwgImNoYXRJbnRlZ3JhdGlvbiIpICYmIGRhdGEuY2hhdEludGVncmF0aW9uICE9IG51bGwpCiAgICAgICAgICAgIHNlc3Npb25JZCA9IEdldFN0cmluZyhkYXRhLmNoYXRJbnRlZ3JhdGlvbiwgInNlc3Npb25JZCIpOwoKICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgc3RyaW5nPgogICAgICAgIHsKICAgICAgICAgICAgWyJBY2NlcHQiXSA9ICJhcHBsaWNhdGlvbi9qc29uIiwKICAgICAgICAgICAgWyJYLU1hdHJpeC1Vc2VyIl0gPSB1c2VyCiAgICAgICAgfTsKICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2Vzc2lvbklkKSkKICAgICAgICAgICAgaGVhZGVyc1siQXV0aG9yaXphdGlvbiJdID0gIkJlYXJlciAiICsgc2Vzc2lvbklkOwogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMoaGVhZGVycyk7CgogICAgICAgIHJldHVybiBuZXcgU2NyaXB0UmVzcG9uc2UoKTsKICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgIHZhciByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4oKTsKICAgICAgICBDb3B5QWxsRmllbGRzKHJlc3VsdCwgZGF0YSk7CgogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gY29udGV4dC5Cb2R5OwogICAgICAgICAgICB2YXIgYm9keURhdGEgPSByZXNwb25zZT8uZGF0YTsKCiAgICAgICAgICAgIHN0cmluZyBlcnJjb2RlID0gR2V0U3RyaW5nKGJvZHlEYXRhLCAiZXJyY29kZSIpOwogICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGVycmNvZGUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXN1bHRbImxhc3RSb29tTWVzc2FnZXMiXSA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgICAgICAgICAgICAgIHJlc3VsdFsibGFzdFJvb21NZXNzYWdlc1N1Y2Nlc3MiXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gcmVzdWx0IH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgbWVzc2FnZXMgPSBuZXcgTGlzdDxzdHJpbmc+KCk7CiAgICAgICAgICAgIGlmIChib2R5RGF0YSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGJvZHlEYXRhLCAiY2h1bmsiKSAmJiBib2R5RGF0YS5jaHVuayAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgZXZ0IGluIGJvZHlEYXRhLmNodW5rKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHZhciBldnRUeXBlID0gR2V0U3RyaW5nKGV2dCwgInR5cGUiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0VHlwZSAhPSAibS5yb29tLm1lc3NhZ2UiKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBldnQ/LmNvbnRlbnQ7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnQgPT0gbnVsbCkgY29udGludWU7CgogICAgICAgICAgICAgICAgICAgIHN0cmluZyBib2R5ID0gR2V0U3RyaW5nKGNvbnRlbnQsICJib2R5Iik7CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHNlbmRlciA9IEdldFN0cmluZyhldnQsICJzZW5kZXIiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYm9keSkgJiYgIXN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VuZGVyKSkKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuQWRkKHNlbmRlciArICI6ICIgKyBib2R5KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgbWVzc2FnZXMuUmV2ZXJzZSgpOwogICAgICAgICAgICByZXN1bHRbImxhc3RSb29tTWVzc2FnZXMiXSA9IG1lc3NhZ2VzOwogICAgICAgICAgICByZXN1bHRbImxhc3RSb29tTWVzc2FnZXNTdWNjZXNzIl0gPSBtZXNzYWdlcy5Db3VudCA+IDA7CiAgICAgICAgfQogICAgICAgIGNhdGNoCiAgICAgICAgewogICAgICAgICAgICByZXN1bHRbImxhc3RSb29tTWVzc2FnZXMiXSA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgICAgICAgICAgcmVzdWx0WyJsYXN0Um9vbU1lc3NhZ2VzU3VjY2VzcyJdID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSByZXN1bHQgfSk7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgTG9va3VwVXNlcihkeW5hbWljIGRhdGEsIHN0cmluZyBjaGF0Um9vbUtleSkKICAgIHsKICAgICAgICBpZiAoIUhhc1Byb3BlcnR5KGRhdGEsICJwZXJtYW5lbnRDaGF0Um9vbXMiKSB8fCBkYXRhLnBlcm1hbmVudENoYXRSb29tcyA9PSBudWxsKQogICAgICAgICAgICByZXR1cm4gbnVsbDsKCiAgICAgICAgZm9yZWFjaCAodmFyIHJvb20gaW4gZGF0YS5wZXJtYW5lbnRDaGF0Um9vbXMpCiAgICAgICAgewogICAgICAgICAgICB2YXIga2V5ID0gR2V0U3RyaW5nKHJvb20sICJjaGF0Um9vbUtleSIpOwogICAgICAgICAgICBpZiAoc3RyaW5nLkVxdWFscyhrZXksIGNoYXRSb29tS2V5LCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWxJZ25vcmVDYXNlKSkKICAgICAgICAgICAgICAgIHJldHVybiBHZXRTdHJpbmcocm9vbSwgInVzZXIiKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSBzdHJpbmcgR2V0U3RyaW5nKGR5bmFtaWMgb2JqLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBudWxsOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KG9iaiwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShvYmosIG5hbWUpOwogICAgICAgICAgICAgICAgcmV0dXJuIHY/LlRvU3RyaW5nKCk/LlRyaW0oKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgQ29weUFsbEZpZWxkcyhEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiByZXN1bHQsIGR5bmFtaWMgZGF0YSkKICAgIHsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInRyYW5zZmVyUGxhbiIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAidmFsaWRhdGlvblJlc3VsdCIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic291cmNlQWR2aXNvcklkIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJhZHZpc29yVHlwZSIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAic3RhcnREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJlbmREYXRlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJ0cmFuc2ZlclR5cGUiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImVucmljaGVkUmV6ZXJ2YXRpb25zIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJyZXpDaGF0Um9vbVBsYW4iKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInBlcm1hbmVudFJvb21QbGFuIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJwZXJtYW5lbnRDaGF0Um9vbXMiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInBlcm1hbmVudFByb2Nlc3NlZEluZGV4Iik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJsYXN0UGVybWFuZW50RGVhY3RpdmF0ZVN1Y2Nlc3MiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImxhc3REZWFjdGl2YXRlZFJvb21JZCIpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBDb3B5SWZQcmVzZW50KERpY3Rpb25hcnk8c3RyaW5nLCBvYmplY3Q+IHRhcmdldCwgZHluYW1pYyBzb3VyY2UsIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgaWYgKEhhc1Byb3BlcnR5KHNvdXJjZSwgbmFtZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB2ID0gR2V0UHJvcGVydHlWYWx1ZShzb3VyY2UsIG5hbWUpOwogICAgICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCkgdGFyZ2V0W25hbWVdID0gdjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgIH0KfQo="
|
|
481
518
|
}
|
|
482
519
|
},
|
|
483
520
|
{
|
|
484
|
-
"order":
|
|
521
|
+
"order": 5,
|
|
485
522
|
"task": {
|
|
486
523
|
"domain": "morph-touch",
|
|
487
524
|
"flow": "sys-tasks",
|
|
@@ -494,7 +531,7 @@
|
|
|
494
531
|
}
|
|
495
532
|
},
|
|
496
533
|
{
|
|
497
|
-
"order":
|
|
534
|
+
"order": 6,
|
|
498
535
|
"task": {
|
|
499
536
|
"domain": "morph-touch",
|
|
500
537
|
"flow": "sys-tasks",
|
|
@@ -507,7 +544,7 @@
|
|
|
507
544
|
}
|
|
508
545
|
},
|
|
509
546
|
{
|
|
510
|
-
"order":
|
|
547
|
+
"order": 7,
|
|
511
548
|
"task": {
|
|
512
549
|
"domain": "morph-touch",
|
|
513
550
|
"flow": "sys-tasks",
|
|
@@ -516,7 +553,7 @@
|
|
|
516
553
|
},
|
|
517
554
|
"mapping": {
|
|
518
555
|
"location": "./src/SendSummaryToNewRoomMapping.csx",
|
|
519
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHNlbmQtbWF0cml4LXJvb20tbWVzc2FnZSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgdGVybWluYXRpb24gdHJhbnNmZXIgbG9vcC4KLy8vIFNlbmRzIHRoZSBBSS1nZW5lcmF0ZWQgY2hhdFN1bW1hcnkgYXMgdGhlIGZpcnN0IG1lc3NhZ2UgaW4gdGhlIG5ld2x5IGNyZWF0ZWQgcm9vbS4KLy8vIFNraXBzIGdyYWNlZnVsbHkgaWYgbm8gc3VtbWFyeSBpcyBhdmFpbGFibGUgLS0gdHJhbnNmZXIgaXMgbmV2ZXIgYmxvY2tlZC4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFNlbmRTdW1tYXJ5VG9OZXdSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8taW5zdGFuY2UtZGF0YSIgfSB9OwoKICAgICAgICB2YXIgY2hhdFN1bW1hcnkgPSBHZXRTdHJpbmcoZGF0YSwgImNoYXRTdW1tYXJ5Iik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoY2hhdFN1bW1hcnkpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8tY2hhdFN1bW1hcnkiIH0gfTsKCiAgICAgICAgdmFyIG5ld1Jvb21JZCA9IEdldFN0cmluZyhkYXRhLCAibmV3Um9vbUlkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobmV3Um9vbUlkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSBuZXcgeyBza2lwcGVkID0gdHJ1ZSwgcmVhc29uID0gIm5vLW5ld1Jvb21JZCIgfSB9OwoKICAgICAgICBzdHJpbmcgdXNlciA9IG51bGw7CiAgICAgICAgdmFyIHBlcm1hbmVudFJvb21QbGFuID0gZGF0YS5wZXJtYW5lbnRSb29tUGxhbjsKICAgICAgICBpZiAocGVybWFuZW50Um9vbVBsYW4gIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIGludCBwcm9jZXNzZWRJbmRleCA9IDA7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAicGVybWFuZW50UHJvY2Vzc2VkSW5kZXgiKSkKICAgICAgICAgICAgICAgIGludC5UcnlQYXJzZShkYXRhLnBlcm1hbmVudFByb2Nlc3NlZEluZGV4Py5Ub1N0cmluZygpID8/ICIwIiwgb3V0IHByb2Nlc3NlZEluZGV4KTsKCiAgICAgICAgICAgIHZhciBpdGVtcyA9IHBlcm1hbmVudFJvb21QbGFuIGFzIElFbnVtZXJhYmxlPG9iamVjdD47CiAgICAgICAgICAgIGlmIChpdGVtcyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgaXRlbXNMaXN0ID0gaXRlbXMuVG9MaXN0KCk7CiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzc2VkSW5kZXggPCBpdGVtc0xpc3QuQ291bnQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZHluYW1pYyBjdXJyZW50SXRlbSA9IGl0ZW1zTGlzdFtwcm9jZXNzZWRJbmRleF07CiAgICAgICAgICAgICAgICAgICAgdmFyIGNoYXRSb29tS2V5ID0gY3VycmVudEl0ZW0/
|
|
556
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHNlbmQtbWF0cml4LXJvb20tbWVzc2FnZSBIdHRwVGFzayAoVHlwZSA2KSBpbiB0aGUgdGVybWluYXRpb24gdHJhbnNmZXIgbG9vcC4KLy8vIFNlbmRzIHRoZSBBSS1nZW5lcmF0ZWQgY2hhdFN1bW1hcnkgYXMgdGhlIGZpcnN0IG1lc3NhZ2UgaW4gdGhlIG5ld2x5IGNyZWF0ZWQgcm9vbS4KLy8vIFNraXBzIGdyYWNlZnVsbHkgaWYgbm8gc3VtbWFyeSBpcyBhdmFpbGFibGUgLS0gdHJhbnNmZXIgaXMgbmV2ZXIgYmxvY2tlZC4KLy8vIDwvc3VtbWFyeT4KcHVibGljIGNsYXNzIFNlbmRTdW1tYXJ5VG9OZXdSb29tTWFwcGluZyA6IFNjcmlwdEJhc2UsIElNYXBwaW5nCnsKICAgIHB1YmxpYyBhc3luYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICAgIHsKICAgICAgICB2YXIgaHR0cFRhc2sgPSB0YXNrIGFzIEh0dHBUYXNrOwogICAgICAgIGlmIChodHRwVGFzayA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiVGFzayBtdXN0IGJlIGFuIEh0dHBUYXNrIik7CgogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8taW5zdGFuY2UtZGF0YSIgfSB9OwoKICAgICAgICB2YXIgY2hhdFN1bW1hcnkgPSBHZXRTdHJpbmcoZGF0YSwgImNoYXRTdW1tYXJ5Iik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoY2hhdFN1bW1hcnkpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8tY2hhdFN1bW1hcnkiIH0gfTsKCiAgICAgICAgdmFyIG5ld1Jvb21JZCA9IEdldFN0cmluZyhkYXRhLCAibmV3Um9vbUlkIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UobmV3Um9vbUlkKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSBuZXcgeyBza2lwcGVkID0gdHJ1ZSwgcmVhc29uID0gIm5vLW5ld1Jvb21JZCIgfSB9OwoKICAgICAgICBzdHJpbmcgdXNlciA9IG51bGw7CiAgICAgICAgdmFyIHBlcm1hbmVudFJvb21QbGFuID0gZGF0YS5wZXJtYW5lbnRSb29tUGxhbjsKICAgICAgICBpZiAocGVybWFuZW50Um9vbVBsYW4gIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIGludCBwcm9jZXNzZWRJbmRleCA9IDA7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShkYXRhLCAicGVybWFuZW50UHJvY2Vzc2VkSW5kZXgiKSkKICAgICAgICAgICAgICAgIGludC5UcnlQYXJzZShkYXRhLnBlcm1hbmVudFByb2Nlc3NlZEluZGV4Py5Ub1N0cmluZygpID8/ICIwIiwgb3V0IHByb2Nlc3NlZEluZGV4KTsKCiAgICAgICAgICAgIHZhciBpdGVtcyA9IHBlcm1hbmVudFJvb21QbGFuIGFzIElFbnVtZXJhYmxlPG9iamVjdD47CiAgICAgICAgICAgIGlmIChpdGVtcyAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgaXRlbXNMaXN0ID0gaXRlbXMuVG9MaXN0KCk7CiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzc2VkSW5kZXggPCBpdGVtc0xpc3QuQ291bnQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZHluYW1pYyBjdXJyZW50SXRlbSA9IGl0ZW1zTGlzdFtwcm9jZXNzZWRJbmRleF07CiAgICAgICAgICAgICAgICAgICAgdmFyIGNoYXRSb29tS2V5ID0gY3VycmVudEl0ZW0/LmNoYXRSb29tS2V5Py5Ub1N0cmluZygpOwogICAgICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoY2hhdFJvb21LZXkpKQogICAgICAgICAgICAgICAgICAgICAgICB1c2VyID0gTG9va3VwVXNlcihkYXRhLCBjaGF0Um9vbUtleSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHVzZXIpKQogICAgICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlIHsgRGF0YSA9IG5ldyB7IHNraXBwZWQgPSB0cnVlLCByZWFzb24gPSAibm8tdXNlciIgfSB9OwoKICAgICAgICB2YXIgc2VjcmV0TmFtZSA9IEdldENvbmZpZ1ZhbHVlKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2Uoc2VjcmV0TmFtZSkpCiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uKCJEQVBSX1NFQ1JFVF9TVE9SRV9OQU1FIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgdmFyIG1hdHJpeEJhc2VVcmwgPSBhd2FpdCBHZXRTZWNyZXRBc3luYyhzZWNyZXROYW1lLCAid29ya2Zsb3ctc2VjcmV0IiwgIk1hdHJpeEJhc2VVcmwiKTsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShtYXRyaXhCYXNlVXJsKSkKICAgICAgICAgICAgcmV0dXJuIG5ldyBTY3JpcHRSZXNwb25zZSB7IERhdGEgPSBuZXcgeyBza2lwcGVkID0gdHJ1ZSwgcmVhc29uID0gIm5vLU1hdHJpeEJhc2VVcmwiIH0gfTsKCiAgICAgICAgdmFyIHR4bklkID0gR3VpZC5OZXdHdWlkKCkuVG9TdHJpbmcoIk4iKTsKICAgICAgICB2YXIgZnVsbFVybCA9IG1hdHJpeEJhc2VVcmwuVHJpbUVuZCgnLycpICsKICAgICAgICAgICAgIi9fbWF0cml4L2NsaWVudC92My9yb29tcy8iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcobmV3Um9vbUlkKSArCiAgICAgICAgICAgICIvc2VuZC9tLnJvb20ubWVzc2FnZS8iICsgdHhuSWQ7CgogICAgICAgIGh0dHBUYXNrLlNldFVybChmdWxsVXJsKTsKCiAgICAgICAgc3RyaW5nIHNlc3Npb25JZCA9IG51bGw7CiAgICAgICAgaWYgKEhhc1Byb3BlcnR5KGRhdGEsICJjaGF0SW50ZWdyYXRpb24iKSAmJiBkYXRhLmNoYXRJbnRlZ3JhdGlvbiAhPSBudWxsKQogICAgICAgICAgICBzZXNzaW9uSWQgPSBHZXRTdHJpbmcoZGF0YS5jaGF0SW50ZWdyYXRpb24sICJzZXNzaW9uSWQiKTsKCiAgICAgICAgdmFyIHNlbmRIZWFkZXJzID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+CiAgICAgICAgewogICAgICAgICAgICBbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIkFjY2VwdCJdID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICBbIlgtTWF0cml4LVVzZXIiXSA9IHVzZXIKICAgICAgICB9OwogICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShzZXNzaW9uSWQpKQogICAgICAgICAgICBzZW5kSGVhZGVyc1siQXV0aG9yaXphdGlvbiJdID0gIkJlYXJlciAiICsgc2Vzc2lvbklkOwogICAgICAgIGh0dHBUYXNrLlNldEhlYWRlcnMoc2VuZEhlYWRlcnMpOwoKICAgICAgICB2YXIgbWVzc2FnZUJvZHkgPQogICAgICAgICAgICAiT25jZWtpIGRhbmlzbWFuIGlsZSB5YXBpbGFuIGdvcnVzbWUgb3pldGk6XG5cbiIgKwogICAgICAgICAgICBjaGF0U3VtbWFyeSArICJcblxuIiArCiAgICAgICAgICAgICItLS1cbiIgKwogICAgICAgICAgICAiQnUgb3pldCBvdG9tYXRpayBvbGFyYWsgb2x1c3R1cnVsbXVzdHVyLiI7CgogICAgICAgIGh0dHBUYXNrLlNldEJvZHkobmV3CiAgICAgICAgewogICAgICAgICAgICBtc2d0eXBlID0gIm0udGV4dCIsCiAgICAgICAgICAgIGJvZHkgPSBtZXNzYWdlQm9keQogICAgICAgIH0pOwoKICAgICAgICByZXR1cm4gbmV3IFNjcmlwdFJlc3BvbnNlKCk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IERpY3Rpb25hcnk8c3RyaW5nLCBvYmplY3Q+KCk7CiAgICAgICAgQ29weUFsbEZpZWxkcyhyZXN1bHQsIGRhdGEpOwoKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIHZhciByZXNwb25zZSA9IGNvbnRleHQuQm9keTsKICAgICAgICAgICAgdmFyIGJvZHlEYXRhID0gcmVzcG9uc2U/LmRhdGE7CiAgICAgICAgICAgIHN0cmluZyBlcnJjb2RlID0gR2V0U3RyaW5nKGJvZHlEYXRhLCAiZXJyY29kZSIpOwoKICAgICAgICAgICAgcmVzdWx0WyJzZW5kU3VtbWFyeVN1Y2Nlc3MiXSA9IHN0cmluZy5Jc051bGxPckVtcHR5KGVycmNvZGUpOwogICAgICAgIH0KICAgICAgICBjYXRjaAogICAgICAgIHsKICAgICAgICAgICAgcmVzdWx0WyJzZW5kU3VtbWFyeVN1Y2Nlc3MiXSA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UgeyBEYXRhID0gcmVzdWx0IH0pOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIExvb2t1cFVzZXIoZHluYW1pYyBkYXRhLCBzdHJpbmcgY2hhdFJvb21LZXkpCiAgICB7CiAgICAgICAgaWYgKCFIYXNQcm9wZXJ0eShkYXRhLCAicGVybWFuZW50Q2hhdFJvb21zIikgfHwgZGF0YS5wZXJtYW5lbnRDaGF0Um9vbXMgPT0gbnVsbCkKICAgICAgICAgICAgcmV0dXJuIG51bGw7CgogICAgICAgIGZvcmVhY2ggKHZhciByb29tIGluIGRhdGEucGVybWFuZW50Q2hhdFJvb21zKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGtleSA9IEdldFN0cmluZyhyb29tLCAiY2hhdFJvb21LZXkiKTsKICAgICAgICAgICAgaWYgKHN0cmluZy5FcXVhbHMoa2V5LCBjaGF0Um9vbUtleSwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsSWdub3JlQ2FzZSkpCiAgICAgICAgICAgICAgICByZXR1cm4gR2V0U3RyaW5nKHJvb20sICJ1c2VyIik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpPy5UcmltKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIENvcHlBbGxGaWVsZHMoRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4gcmVzdWx0LCBkeW5hbWljIGRhdGEpCiAgICB7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJ0cmFuc2ZlclBsYW4iKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInZhbGlkYXRpb25SZXN1bHQiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInNvdXJjZUFkdmlzb3JJZCIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAiYWR2aXNvclR5cGUiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgInN0YXJ0RGF0ZSIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAiZW5kRGF0ZSIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAidHJhbnNmZXJUeXBlIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJlbnJpY2hlZFJlemVydmF0aW9ucyIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAicmV6Q2hhdFJvb21QbGFuIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJwZXJtYW5lbnRSb29tUGxhbiIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAicGVybWFuZW50Q2hhdFJvb21zIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJwZXJtYW5lbnRQcm9jZXNzZWRJbmRleCIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAibGFzdFBlcm1hbmVudERlYWN0aXZhdGVTdWNjZXNzIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJsYXN0RGVhY3RpdmF0ZWRSb29tSWQiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImxhc3RSb29tTWVzc2FnZXMiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImxhc3RSb29tTWVzc2FnZXNTdWNjZXNzIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJjaGF0U3VtbWFyeSIpOwogICAgICAgIENvcHlJZlByZXNlbnQocmVzdWx0LCBkYXRhLCAiY2hhdFN1bW1hcnlTdWNjZXNzIik7CiAgICAgICAgQ29weUlmUHJlc2VudChyZXN1bHQsIGRhdGEsICJuZXdSb29tSWQiKTsKICAgICAgICBDb3B5SWZQcmVzZW50KHJlc3VsdCwgZGF0YSwgImxhc3RQZXJtYW5lbnRDaGF0Um9vbVN1Y2Nlc3MiKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgQ29weUlmUHJlc2VudChEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiB0YXJnZXQsIGR5bmFtaWMgc291cmNlLCBzdHJpbmcgbmFtZSkKICAgIHsKICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybjsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShzb3VyY2UsIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUoc291cmNlLCBuYW1lKTsKICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHRhcmdldFtuYW1lXSA9IHY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2ggeyB9CiAgICB9Cn0K"
|
|
520
557
|
}
|
|
521
558
|
}
|
|
522
559
|
]
|