@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
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
},
|
|
197
197
|
"mapping": {
|
|
198
198
|
"location": "./src/ValidateDateForRezervationMapping.csx",
|
|
199
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBTY3JpcHQgVGFzayAodHlwZSA3KSBtYXBwaW5nIGZvciB2YWxpZGF0ZS1kYXRlLWZvci1yZXplcnZhdGlvbi4KLy8vIFZhbGlkYXRlcyBzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBmcm9tIHJlemVydmF0aW9uIGluc3RhbmNlIGRhdGEuCi8vLyBUaHJvd3MgQXJndW1lbnRFeGNlcHRpb24gaWYgZGF0ZSBpcyBpbiB0aGUgcGFzdCBvciBpbnZhbGlkOyBvdGhlcndpc2UgcmV0dXJucyBzdWNjZXNzLgovLy8gUnVucyBiZWZvcmUgdmFsaWRhdGUtc2xvdC1mb3ItcmV6ZXJ2YXRpb24gdG8gYXZvaWQgY2FsbGluZyBnZXQtYXZhaWxhYmxlLXNsb3RzIHdpdGggaW52YWxpZCBkYXRlLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVEYXRlRm9yUmV6ZXJ2YXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+
|
|
199
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBTY3JpcHQgVGFzayAodHlwZSA3KSBtYXBwaW5nIGZvciB2YWxpZGF0ZS1kYXRlLWZvci1yZXplcnZhdGlvbi4KLy8vIFZhbGlkYXRlcyBzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBmcm9tIHJlemVydmF0aW9uIGluc3RhbmNlIGRhdGEuCi8vLyBUaHJvd3MgQXJndW1lbnRFeGNlcHRpb24gaWYgZGF0ZSBpcyBpbiB0aGUgcGFzdCBvciBpbnZhbGlkOyBvdGhlcndpc2UgcmV0dXJucyBzdWNjZXNzLgovLy8gUnVucyBiZWZvcmUgdmFsaWRhdGUtc2xvdC1mb3ItcmV6ZXJ2YXRpb24gdG8gYXZvaWQgY2FsbGluZyBnZXQtYXZhaWxhYmxlLXNsb3RzIHdpdGggaW52YWxpZCBkYXRlLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVEYXRlRm9yUmV6ZXJ2YXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZC4iKTsKCiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICB2YXIgZW5kRGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBhcmUgcmVxdWlyZWQuIiwgImRhdGUiKTsKCiAgICAgICAgRGF0ZVRpbWUgc3RhcnREdDsKICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoc3RhcnREYXRlVGltZVN0ciwgb3V0IHN0YXJ0RHQpKQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgc3RhcnREYXRlVGltZSBmb3JtYXQuIiwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICBEYXRlVGltZSBlbmREdDsKICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoZW5kRGF0ZVRpbWVTdHIsIG91dCBlbmREdCkpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlbmREYXRlVGltZSBmb3JtYXQuIiwgImVuZERhdGVUaW1lIik7CgogICAgICAgIHZhciBub3cgPSBEYXRlVGltZS5VdGNOb3c7CiAgICAgICAgaWYgKHN0YXJ0RHQgPCBub3cgfHwgZW5kRHQgPCBub3cpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiRGF0ZSBjYW5ub3QgYmUgaW4gdGhlIHBhc3QuIiwgImRhdGUiKTsKICAgICAgICBpZiAoZW5kRHQgPD0gc3RhcnREdCkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJlbmREYXRlVGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0RGF0ZVRpbWUuIiwgImRhdGUiKTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgYm9vbCBUcnlQYXJzZVRvVXRjKHN0cmluZyBkYXRlU3RyLCBvdXQgRGF0ZVRpbWUgdXRjRGF0ZVRpbWUpCiAgICB7CiAgICAgICAgdXRjRGF0ZVRpbWUgPSBkZWZhdWx0OwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShkYXRlU3RyKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChEYXRlVGltZU9mZnNldC5UcnlQYXJzZShkYXRlU3RyLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5DdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5EYXRlVGltZVN0eWxlcy5Ob25lLCBvdXQgdmFyIGR0bykpCiAgICAgICAgewogICAgICAgICAgICB1dGNEYXRlVGltZSA9IGR0by5VdGNEYXRlVGltZTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
200
200
|
}
|
|
201
201
|
},
|
|
202
202
|
{
|
|
@@ -209,7 +209,7 @@
|
|
|
209
209
|
},
|
|
210
210
|
"mapping": {
|
|
211
211
|
"location": "./src/ValidateSlotForRandevuUpdateMapping.csx",
|
|
212
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXNsb3QtZm9yLXJlemVydmF0aW9uIHRhc2sgaW4gcmFuZGV2dS11cGRhdGUgZmxvdy4KLy8vIFNhbWUgbG9naWMgYXMgVmFsaWRhdGVTbG90Rm9yUmV6ZXJ2YXRpb25NYXBwaW5nIC0gdXNlcyBhZHZpc29yLCBzdGFydERhdGVUaW1lLCBlbmREYXRlVGltZSBmcm9tIGluc3RhbmNlLgovLy8gPC9zdW1tYXJ5PgppbnRlcm5hbCBzZWFsZWQgY2xhc3MgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb25SYW5kZXZ1VXBkYXRlIDogRXhjZXB0aW9uCnsKICAgIHB1YmxpYyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvblJhbmRldnVVcGRhdGUoc3RyaW5nIG1lc3NhZ2UpIDogYmFzZShtZXNzYWdlKSB7IH0KfQoKcHVibGljIGNsYXNzIFZhbGlkYXRlU2xvdEZvclJhbmRldnVVcGRhdGVNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgICAgIGlmIChzZXJ2aWNlVGFzayA9PSBudWxsKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIERhcHJTZXJ2aWNlVGFzayIpOwoKICAgICAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoYXBwSWQpKQogICAgICAgICAgICAgICAgc2VydmljZVRhc2suU2V0QXBwSWQoYXBwSWQpOwoKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkluc3RhbmNlIGRhdGEgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgICAgIHZhciBhZHZpc29yID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yIik7CiAgICAgICAgICAgIHZhciBzdGFydERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBLZXkgPSAidmFsaWRhdGlvbi1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREYXRlVGltZTsKICAgICAgICAgICAgaWYgKCFEYXRlVGltZS5UcnlQYXJzZShzdGFydERhdGVUaW1lU3RyLCBvdXQgc3RhcnREYXRlVGltZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgS2V5ID0gInZhbGlkYXRpb24tZXJyb3IiLAogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBkYXRlU3RyID0gc3RhcnREYXRlVGltZS5Ub1N0cmluZygieXl5eS1NTS1kZCIpOwogICAgICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJhZHZpc29ySWQ9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKGFkdmlzb3IpLAogICAgICAgICAgICAgICAgImRhdGU9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKGRhdGVTdHIpCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ID0gImlucHV0LWVycm9yIiwKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gImlucHV0LWVycm9yIiwgZXJyb3IgPSBleC5NZXNzYWdlIH0gfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBib2R5ID0gY29udGV4dC5Cb2R5OwogICAgICAgIGlmIChib2R5ICE9IG51bGwgJiYgYm9keS5pc1N1Y2Nlc3MgPT0gZmFsc2UpCiAgICAgICAgewogICAgICAgICAgICB2YXIgZGF0YU5vZGUgPSBib2R5LmRhdGEgPz8gYm9keS5EYXRhOwogICAgICAgICAgICB2YXIgZGV0YWlsID0gR2V0U3RyaW5nKGRhdGFOb2RlLCAiZGV0YWlsIikgPz8gR2V0U3RyaW5nKGJvZHksICJlcnJvck1lc3NhZ2UiKSA/PyBHZXRTdHJpbmcoYm9keSwgImRldGFpbCIpOwogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oZGV0YWlsID8/ICIiLCAiIik7CiAgICAgICAgfQogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gIm5vLWluc3RhbmNlLWRhdGEiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBzdGFydERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIHZhciBlbmREYXRlVGltZVN0ciA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEYXRhID0gbmV3IHsgc2xvdENoZWNrUmVzdWx0ID0gbmV3IHsgYXZhaWxhYmxlID0gZmFsc2UsIGtleSA9ICJ2YWxpZGF0aW9uLWVycm9yIiB9IH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBEYXRlVGltZSBzdGFydER0ID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgIERhdGVUaW1lIGVuZER0ID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgIHRyeQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzdGFydER0ID0gRGF0ZVRpbWUuUGFyc2Uoc3RhcnREYXRlVGltZVN0cik7CiAgICAgICAgICAgICAgICBlbmREdCA9IERhdGVUaW1lLlBhcnNlKGVuZERhdGVUaW1lU3RyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0eiA9IFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCk7CiAgICAgICAgICAgIHZhciBsb2NhbFN0YXJ0ID0gQ29udmVydFRvVGltZVpvbmUoc3RhcnREdCwgc3RhcnREYXRlVGltZVN0ciwgdHopOwogICAgICAgICAgICB2YXIgbG9jYWxFbmQgPSBDb252ZXJ0VG9UaW1lWm9uZShlbmREdCwgZW5kRGF0ZVRpbWVTdHIsIHR6KTsKICAgICAgICAgICAgdmFyIHJlcXVlc3RlZFNsb3QgPSBsb2NhbFN0YXJ0LlRvU3RyaW5nKCJISDptbSIpICsgIi0iICsgbG9jYWxFbmQuVG9TdHJpbmcoIkhIOm1tIik7CiAgICAgICAgICAgIGJvb2wgYXZhaWxhYmxlID0gZmFsc2U7CiAgICAgICAgICAgIHN0cmluZyByZXNwb25zZUtleSA9IG51bGw7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXNwb25zZUtleSA9IEdldFN0cmluZyhib2R5LCAia2V5IikgPz8gR2V0U3RyaW5nKGJvZHksICJLZXkiKTsKICAgICAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IGJvZHkuZGF0YSA/PyBib2R5LkRhdGEgPz8gYm9keTsKICAgICAgICAgICAgICAgIGlmIChkYXRhTm9kZSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGFOb2RlLCAiZ2V0QXZhaWxhYmxlU2xvdHMiKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZ2V0QXZhaWxhYmxlU2xvdHMgPSBkYXRhTm9kZS5nZXRBdmFpbGFibGVTbG90czsKICAgICAgICAgICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoZ2V0QXZhaWxhYmxlU2xvdHMsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF2YWlsYWJsZVNsb3RzID0gZ2V0QXZhaWxhYmxlU2xvdHMuYXZhaWxhYmxlU2xvdHM7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdmFpbGFibGVTbG90cyAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IGF2YWlsYWJsZVNsb3RzIGFzIElFbnVtZXJhYmxlPG9iamVjdD47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdCAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBzIGluIGxpc3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocz8uVG9TdHJpbmcoKSA9PSByZXF1ZXN0ZWRTbG90KSB7IGF2YWlsYWJsZSA9IHRydWU7IGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZXRhaWxNc2cgPSBHZXRTdHJpbmcoZGF0YU5vZGUsICJkZXRhaWwiKSA/PyBHZXRTdHJpbmcoYm9keSwgImRldGFpbCIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGRldGFpbE1zZykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb25SYW5kZXZ1VXBkYXRlKGRldGFpbE1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VLZXkgPT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSByZXNwb25zZUtleSA/PyAoYXZhaWxhYmxlID8gImF2YWlsYWJsZS1zbG90cy1zdWNjZXNzIiA6ICJzbG90LXVuYXZhaWxhYmxlIiksCiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzID0gYm9keT8uZGF0YT8uZ2V0QXZhaWxhYmxlU2xvdHM/LmF2YWlsYWJsZVNsb3RzID8/IGJvZHk/LmdldEF2YWlsYWJsZVNsb3RzPy5hdmFpbGFibGVTbG90cwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvblJhbmRldnVVcGRhdGUpCiAgICAgICAgewogICAgICAgICAgICB0aHJvdzsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzbG90Q2hlY2tSZXN1bHQgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSAib3V0cHV0LWVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBleC5NZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZSA9IGNvbnRleHQuQm9keQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgVGltZVpvbmVJbmZvIFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCkKICAgIHsKICAgICAgICB2YXIgaWQgPSBHZXRDb25maWdWYWx1ZSgiQXBwb2ludG1lbnRzOlRpbWVab25lIikgPz8gR2V0Q29uZmlnVmFsdWUoIkFQUE9JTlRNRU5UX1RJTUVaT05FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoaWQpKQogICAgICAgICAgICBpZCA9ICJFdXJvcGUvSXN0YW5idWwiOwoKICAgICAgICB0cnkgeyByZXR1cm4gVGltZVpvbmVJbmZvLkZpbmRTeXN0ZW1UaW1lWm9uZUJ5SWQoaWQuVHJpbSgpKTsgfSBjYXRjaCB7IH0KICAgICAgICB0cnkgeyByZXR1cm4gVGltZVpvbmVJbmZvLkZpbmRTeXN0ZW1UaW1lWm9uZUJ5SWQoIlR1cmtleSBTdGFuZGFyZCBUaW1lIik7IH0gY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIFRpbWVab25lSW5mby5DcmVhdGVDdXN0b21UaW1lWm9uZSgiVFJUIiwgVGltZVNwYW4uRnJvbUhvdXJzKDMpLCAiVFJUIChVVEMrMykiLCAiVFJUIChVVEMrMykiKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEYXRlVGltZSBDb252ZXJ0VG9UaW1lWm9uZShEYXRlVGltZSBkdCwgc3RyaW5nIG9yaWdpbmFsLCBUaW1lWm9uZUluZm8gdHopCiAgICB7CiAgICAgICAgaWYgKGR0LktpbmQgPT0gRGF0ZVRpbWVLaW5kLlV0YykKICAgICAgICAgICAgcmV0dXJuIFRpbWVab25lSW5mby5Db252ZXJ0VGltZUZyb21VdGMoZHQsIHR6KTsKCiAgICAgICAgaWYgKERhdGVUaW1lT2Zmc2V0LlRyeVBhcnNlKG9yaWdpbmFsLCBvdXQgdmFyIGR0bykpCiAgICAgICAgewogICAgICAgICAgICB2YXIgdXRjID0gZHRvLlV0Y0RhdGVUaW1lOwogICAgICAgICAgICByZXR1cm4gVGltZVpvbmVJbmZvLkNvbnZlcnRUaW1lRnJvbVV0Yyh1dGMsIHR6KTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBkdDsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
212
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXNsb3QtZm9yLXJlemVydmF0aW9uIHRhc2sgaW4gcmFuZGV2dS11cGRhdGUgZmxvdy4KLy8vIFNhbWUgbG9naWMgYXMgVmFsaWRhdGVTbG90Rm9yUmV6ZXJ2YXRpb25NYXBwaW5nIC0gdXNlcyBhZHZpc29yLCBzdGFydERhdGVUaW1lLCBlbmREYXRlVGltZSBmcm9tIGluc3RhbmNlLgovLy8gPC9zdW1tYXJ5PgppbnRlcm5hbCBzZWFsZWQgY2xhc3MgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb25SYW5kZXZ1VXBkYXRlIDogRXhjZXB0aW9uCnsKICAgIHB1YmxpYyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvblJhbmRldnVVcGRhdGUoc3RyaW5nIG1lc3NhZ2UpIDogYmFzZShtZXNzYWdlKSB7IH0KfQoKcHVibGljIGNsYXNzIFZhbGlkYXRlU2xvdEZvclJhbmRldnVVcGRhdGVNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgICAgIGlmIChzZXJ2aWNlVGFzayA9PSBudWxsKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIERhcHJTZXJ2aWNlVGFzayIpOwoKICAgICAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoYXBwSWQpKQogICAgICAgICAgICAgICAgc2VydmljZVRhc2suU2V0QXBwSWQoYXBwSWQpOwoKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkluc3RhbmNlIGRhdGEgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgICAgIHZhciBhZHZpc29yID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yIik7CiAgICAgICAgICAgIHZhciBzdGFydERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBLZXkgPSAidmFsaWRhdGlvbi1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREYXRlVGltZTsKICAgICAgICAgICAgaWYgKCFUcnlQYXJzZVRvVXRjKHN0YXJ0RGF0ZVRpbWVTdHIsIG91dCBzdGFydERhdGVUaW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBLZXkgPSAidmFsaWRhdGlvbi1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGRhdGVTdHIgPSBzdGFydERhdGVUaW1lLlRvU3RyaW5nKCJ5eXl5LU1NLWRkIik7CiAgICAgICAgICAgIHZhciBxdWVyeVBhcmFtcyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImFkdmlzb3JJZD0iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcoYWR2aXNvciksCiAgICAgICAgICAgICAgICAiZGF0ZT0iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcoZGF0ZVN0cikKICAgICAgICAgICAgfTsKICAgICAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgPSAiaW5wdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAiaW5wdXQtZXJyb3IiLCBlcnJvciA9IGV4Lk1lc3NhZ2UgfSB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGJvZHkgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgaWYgKGJvZHkgIT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IGJvZHkuZGF0YSA/PyBib2R5LkRhdGE7CiAgICAgICAgICAgIHZhciBkZXRhaWwgPSBHZXRTdHJpbmcoZGF0YU5vZGUsICJkZXRhaWwiKSA/PyBHZXRTdHJpbmcoYm9keSwgImVycm9yTWVzc2FnZSIpID8/IEdldFN0cmluZyhib2R5LCAiZGV0YWlsIik7CiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbihkZXRhaWwgPz8gIiIsICIiKTsKICAgICAgICB9CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAibm8taW5zdGFuY2UtZGF0YSIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICAgICAgdmFyIGVuZERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlVGltZSIpOwogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlVGltZVN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZVRpbWVTdHIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERhdGVUaW1lIHN0YXJ0RHRVdGMgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgRGF0ZVRpbWUgZW5kRHRVdGMgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN0YXJ0RHRVdGMgPSBQYXJzZVRvVXRjKHN0YXJ0RGF0ZVRpbWVTdHIpOwogICAgICAgICAgICAgICAgZW5kRHRVdGMgPSBQYXJzZVRvVXRjKGVuZERhdGVUaW1lU3RyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0eiA9IFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCk7CiAgICAgICAgICAgIHZhciBsb2NhbFN0YXJ0ID0gVGltZVpvbmVJbmZvLkNvbnZlcnRUaW1lRnJvbVV0YyhzdGFydER0VXRjLCB0eik7CiAgICAgICAgICAgIHZhciBsb2NhbEVuZCA9IFRpbWVab25lSW5mby5Db252ZXJ0VGltZUZyb21VdGMoZW5kRHRVdGMsIHR6KTsKICAgICAgICAgICAgdmFyIHJlcXVlc3RlZFNsb3QgPSBsb2NhbFN0YXJ0LlRvU3RyaW5nKCJISDptbSIpICsgIi0iICsgbG9jYWxFbmQuVG9TdHJpbmcoIkhIOm1tIik7CiAgICAgICAgICAgIGJvb2wgYXZhaWxhYmxlID0gZmFsc2U7CiAgICAgICAgICAgIHN0cmluZyByZXNwb25zZUtleSA9IG51bGw7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXNwb25zZUtleSA9IEdldFN0cmluZyhib2R5LCAia2V5IikgPz8gR2V0U3RyaW5nKGJvZHksICJLZXkiKTsKICAgICAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IGJvZHkuZGF0YSA/PyBib2R5LkRhdGEgPz8gYm9keTsKICAgICAgICAgICAgICAgIGlmIChkYXRhTm9kZSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGFOb2RlLCAiZ2V0QXZhaWxhYmxlU2xvdHMiKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZ2V0QXZhaWxhYmxlU2xvdHMgPSBkYXRhTm9kZS5nZXRBdmFpbGFibGVTbG90czsKICAgICAgICAgICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoZ2V0QXZhaWxhYmxlU2xvdHMsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF2YWlsYWJsZVNsb3RzID0gZ2V0QXZhaWxhYmxlU2xvdHMuYXZhaWxhYmxlU2xvdHM7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdmFpbGFibGVTbG90cyAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IGF2YWlsYWJsZVNsb3RzIGFzIElFbnVtZXJhYmxlPG9iamVjdD47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdCAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBzIGluIGxpc3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocz8uVG9TdHJpbmcoKSA9PSByZXF1ZXN0ZWRTbG90KSB7IGF2YWlsYWJsZSA9IHRydWU7IGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZXRhaWxNc2cgPSBHZXRTdHJpbmcoZGF0YU5vZGUsICJkZXRhaWwiKSA/PyBHZXRTdHJpbmcoYm9keSwgImRldGFpbCIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGRldGFpbE1zZykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb25SYW5kZXZ1VXBkYXRlKGRldGFpbE1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VLZXkgPT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSByZXNwb25zZUtleSA/PyAoYXZhaWxhYmxlID8gImF2YWlsYWJsZS1zbG90cy1zdWNjZXNzIiA6ICJzbG90LXVuYXZhaWxhYmxlIiksCiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzID0gYm9keT8uZGF0YT8uZ2V0QXZhaWxhYmxlU2xvdHM/LmF2YWlsYWJsZVNsb3RzID8/IGJvZHk/LmdldEF2YWlsYWJsZVNsb3RzPy5hdmFpbGFibGVTbG90cwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvblJhbmRldnVVcGRhdGUpCiAgICAgICAgewogICAgICAgICAgICB0aHJvdzsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzbG90Q2hlY2tSZXN1bHQgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSAib3V0cHV0LWVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBleC5NZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZSA9IGNvbnRleHQuQm9keQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgVGltZVpvbmVJbmZvIFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCkKICAgIHsKICAgICAgICB2YXIgaWQgPSBHZXRDb25maWdWYWx1ZSgiQXBwb2ludG1lbnRzOlRpbWVab25lIikgPz8gR2V0Q29uZmlnVmFsdWUoIkFQUE9JTlRNRU5UX1RJTUVaT05FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoaWQpKQogICAgICAgICAgICBpZCA9ICJFdXJvcGUvSXN0YW5idWwiOwoKICAgICAgICB0cnkgeyByZXR1cm4gVGltZVpvbmVJbmZvLkZpbmRTeXN0ZW1UaW1lWm9uZUJ5SWQoaWQuVHJpbSgpKTsgfSBjYXRjaCB7IH0KICAgICAgICB0cnkgeyByZXR1cm4gVGltZVpvbmVJbmZvLkZpbmRTeXN0ZW1UaW1lWm9uZUJ5SWQoIlR1cmtleSBTdGFuZGFyZCBUaW1lIik7IH0gY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIFRpbWVab25lSW5mby5DcmVhdGVDdXN0b21UaW1lWm9uZSgiVFJUIiwgVGltZVNwYW4uRnJvbUhvdXJzKDMpLCAiVFJUIChVVEMrMykiLCAiVFJUIChVVEMrMykiKTsKICAgIH0KCiAgICBwcml2YXRlIGJvb2wgVHJ5UGFyc2VUb1V0YyhzdHJpbmcgZGF0ZVN0ciwgb3V0IERhdGVUaW1lIHV0Y0RhdGVUaW1lKQogICAgewogICAgICAgIHV0Y0RhdGVUaW1lID0gZGVmYXVsdDsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZGF0ZVN0cikpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAoRGF0ZVRpbWVPZmZzZXQuVHJ5UGFyc2UoZGF0ZVN0ciwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uRGF0ZVRpbWVTdHlsZXMuTm9uZSwgb3V0IHZhciBkdG8pKQogICAgICAgIHsKICAgICAgICAgICAgdXRjRGF0ZVRpbWUgPSBkdG8uVXRjRGF0ZVRpbWU7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHJpdmF0ZSBEYXRlVGltZSBQYXJzZVRvVXRjKHN0cmluZyBkYXRlU3RyKQogICAgewogICAgICAgIHZhciBkdG8gPSBEYXRlVGltZU9mZnNldC5QYXJzZShkYXRlU3RyLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5DdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKTsKICAgICAgICByZXR1cm4gZHRvLlV0Y0RhdGVUaW1lOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
]
|
|
@@ -277,7 +277,7 @@
|
|
|
277
277
|
},
|
|
278
278
|
"mapping": {
|
|
279
279
|
"location": "./src/ValidateDateForRezervationMapping.csx",
|
|
280
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBTY3JpcHQgVGFzayAodHlwZSA3KSBtYXBwaW5nIGZvciB2YWxpZGF0ZS1kYXRlLWZvci1yZXplcnZhdGlvbi4KLy8vIFZhbGlkYXRlcyBzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBmcm9tIHJlemVydmF0aW9uIGluc3RhbmNlIGRhdGEuCi8vLyBUaHJvd3MgQXJndW1lbnRFeGNlcHRpb24gaWYgZGF0ZSBpcyBpbiB0aGUgcGFzdCBvciBpbnZhbGlkOyBvdGhlcndpc2UgcmV0dXJucyBzdWNjZXNzLgovLy8gUnVucyBiZWZvcmUgdmFsaWRhdGUtc2xvdC1mb3ItcmV6ZXJ2YXRpb24gdG8gYXZvaWQgY2FsbGluZyBnZXQtYXZhaWxhYmxlLXNsb3RzIHdpdGggaW52YWxpZCBkYXRlLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVEYXRlRm9yUmV6ZXJ2YXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+
|
|
280
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBCQlQuV29ya2Zsb3cuU2NyaXB0aW5nOwp1c2luZyBCQlQuV29ya2Zsb3cuRGVmaW5pdGlvbnM7CgovLy8gPHN1bW1hcnk+Ci8vLyBTY3JpcHQgVGFzayAodHlwZSA3KSBtYXBwaW5nIGZvciB2YWxpZGF0ZS1kYXRlLWZvci1yZXplcnZhdGlvbi4KLy8vIFZhbGlkYXRlcyBzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBmcm9tIHJlemVydmF0aW9uIGluc3RhbmNlIGRhdGEuCi8vLyBUaHJvd3MgQXJndW1lbnRFeGNlcHRpb24gaWYgZGF0ZSBpcyBpbiB0aGUgcGFzdCBvciBpbnZhbGlkOyBvdGhlcndpc2UgcmV0dXJucyBzdWNjZXNzLgovLy8gUnVucyBiZWZvcmUgdmFsaWRhdGUtc2xvdC1mb3ItcmV6ZXJ2YXRpb24gdG8gYXZvaWQgY2FsbGluZyBnZXQtYXZhaWxhYmxlLXNsb3RzIHdpdGggaW52YWxpZCBkYXRlLgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgY2xhc3MgVmFsaWRhdGVEYXRlRm9yUmV6ZXJ2YXRpb25NYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBkYXRhID0gY29udGV4dC5JbnN0YW5jZT8uRGF0YTsKICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbigiSW5zdGFuY2UgZGF0YSBpcyByZXF1aXJlZC4iKTsKCiAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICB2YXIgZW5kRGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgImVuZERhdGVUaW1lIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydERhdGVUaW1lIGFuZCBlbmREYXRlVGltZSBhcmUgcmVxdWlyZWQuIiwgImRhdGUiKTsKCiAgICAgICAgRGF0ZVRpbWUgc3RhcnREdDsKICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoc3RhcnREYXRlVGltZVN0ciwgb3V0IHN0YXJ0RHQpKQogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgc3RhcnREYXRlVGltZSBmb3JtYXQuIiwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICBEYXRlVGltZSBlbmREdDsKICAgICAgICBpZiAoIVRyeVBhcnNlVG9VdGMoZW5kRGF0ZVRpbWVTdHIsIG91dCBlbmREdCkpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlbmREYXRlVGltZSBmb3JtYXQuIiwgImVuZERhdGVUaW1lIik7CgogICAgICAgIHZhciBub3cgPSBEYXRlVGltZS5VdGNOb3c7CiAgICAgICAgaWYgKHN0YXJ0RHQgPCBub3cgfHwgZW5kRHQgPCBub3cpCiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiRGF0ZSBjYW5ub3QgYmUgaW4gdGhlIHBhc3QuIiwgImRhdGUiKTsKICAgICAgICBpZiAoZW5kRHQgPD0gc3RhcnREdCkKICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKCJlbmREYXRlVGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0RGF0ZVRpbWUuIiwgImRhdGUiKTsKCiAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgfQoKICAgIHByaXZhdGUgYm9vbCBUcnlQYXJzZVRvVXRjKHN0cmluZyBkYXRlU3RyLCBvdXQgRGF0ZVRpbWUgdXRjRGF0ZVRpbWUpCiAgICB7CiAgICAgICAgdXRjRGF0ZVRpbWUgPSBkZWZhdWx0OwogICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShkYXRlU3RyKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChEYXRlVGltZU9mZnNldC5UcnlQYXJzZShkYXRlU3RyLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5DdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5EYXRlVGltZVN0eWxlcy5Ob25lLCBvdXQgdmFyIGR0bykpCiAgICAgICAgewogICAgICAgICAgICB1dGNEYXRlVGltZSA9IGR0by5VdGNEYXRlVGltZTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
281
281
|
}
|
|
282
282
|
},
|
|
283
283
|
{
|
|
@@ -290,7 +290,7 @@
|
|
|
290
290
|
},
|
|
291
291
|
"mapping": {
|
|
292
292
|
"location": "./src/ValidateSlotForRandevuUpdateMapping.csx",
|
|
293
|
-
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXNsb3QtZm9yLXJlemVydmF0aW9uIHRhc2sgaW4gcmFuZGV2dS11cGRhdGUgZmxvdy4KLy8vIFNhbWUgbG9naWMgYXMgVmFsaWRhdGVTbG90Rm9yUmV6ZXJ2YXRpb25NYXBwaW5nIC0gdXNlcyBhZHZpc29yLCBzdGFydERhdGVUaW1lLCBlbmREYXRlVGltZSBmcm9tIGluc3RhbmNlLgovLy8gPC9zdW1tYXJ5PgppbnRlcm5hbCBzZWFsZWQgY2xhc3MgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb25SYW5kZXZ1VXBkYXRlIDogRXhjZXB0aW9uCnsKICAgIHB1YmxpYyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvblJhbmRldnVVcGRhdGUoc3RyaW5nIG1lc3NhZ2UpIDogYmFzZShtZXNzYWdlKSB7IH0KfQoKcHVibGljIGNsYXNzIFZhbGlkYXRlU2xvdEZvclJhbmRldnVVcGRhdGVNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgICAgIGlmIChzZXJ2aWNlVGFzayA9PSBudWxsKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIERhcHJTZXJ2aWNlVGFzayIpOwoKICAgICAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoYXBwSWQpKQogICAgICAgICAgICAgICAgc2VydmljZVRhc2suU2V0QXBwSWQoYXBwSWQpOwoKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkluc3RhbmNlIGRhdGEgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgICAgIHZhciBhZHZpc29yID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yIik7CiAgICAgICAgICAgIHZhciBzdGFydERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBLZXkgPSAidmFsaWRhdGlvbi1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREYXRlVGltZTsKICAgICAgICAgICAgaWYgKCFEYXRlVGltZS5UcnlQYXJzZShzdGFydERhdGVUaW1lU3RyLCBvdXQgc3RhcnREYXRlVGltZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgS2V5ID0gInZhbGlkYXRpb24tZXJyb3IiLAogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBkYXRlU3RyID0gc3RhcnREYXRlVGltZS5Ub1N0cmluZygieXl5eS1NTS1kZCIpOwogICAgICAgICAgICB2YXIgcXVlcnlQYXJhbXMgPSBuZXcgTGlzdDxzdHJpbmc+CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJhZHZpc29ySWQ9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKGFkdmlzb3IpLAogICAgICAgICAgICAgICAgImRhdGU9IiArIFVyaS5Fc2NhcGVEYXRhU3RyaW5nKGRhdGVTdHIpCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHNlcnZpY2VUYXNrLlNldFF1ZXJ5U3RyaW5nKHN0cmluZy5Kb2luKCImIiwgcXVlcnlQYXJhbXMpKTsKCiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlKCkpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ID0gImlucHV0LWVycm9yIiwKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gImlucHV0LWVycm9yIiwgZXJyb3IgPSBleC5NZXNzYWdlIH0gfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IE91dHB1dEhhbmRsZXIoU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHZhciBib2R5ID0gY29udGV4dC5Cb2R5OwogICAgICAgIGlmIChib2R5ICE9IG51bGwgJiYgYm9keS5pc1N1Y2Nlc3MgPT0gZmFsc2UpCiAgICAgICAgewogICAgICAgICAgICB2YXIgZGF0YU5vZGUgPSBib2R5LmRhdGEgPz8gYm9keS5EYXRhOwogICAgICAgICAgICB2YXIgZGV0YWlsID0gR2V0U3RyaW5nKGRhdGFOb2RlLCAiZGV0YWlsIikgPz8gR2V0U3RyaW5nKGJvZHksICJlcnJvck1lc3NhZ2UiKSA/PyBHZXRTdHJpbmcoYm9keSwgImRldGFpbCIpOwogICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oZGV0YWlsID8/ICIiLCAiIik7CiAgICAgICAgfQogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gIm5vLWluc3RhbmNlLWRhdGEiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBzdGFydERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIHZhciBlbmREYXRlVGltZVN0ciA9IEdldFN0cmluZyhkYXRhLCAiZW5kRGF0ZVRpbWUiKTsKICAgICAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPckVtcHR5KHN0YXJ0RGF0ZVRpbWVTdHIpIHx8IHN0cmluZy5Jc051bGxPckVtcHR5KGVuZERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBEYXRhID0gbmV3IHsgc2xvdENoZWNrUmVzdWx0ID0gbmV3IHsgYXZhaWxhYmxlID0gZmFsc2UsIGtleSA9ICJ2YWxpZGF0aW9uLWVycm9yIiB9IH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBEYXRlVGltZSBzdGFydER0ID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgIERhdGVUaW1lIGVuZER0ID0gRGF0ZVRpbWUuTWluVmFsdWU7CiAgICAgICAgICAgIHRyeQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzdGFydER0ID0gRGF0ZVRpbWUuUGFyc2Uoc3RhcnREYXRlVGltZVN0cik7CiAgICAgICAgICAgICAgICBlbmREdCA9IERhdGVUaW1lLlBhcnNlKGVuZERhdGVUaW1lU3RyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0eiA9IFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCk7CiAgICAgICAgICAgIHZhciBsb2NhbFN0YXJ0ID0gQ29udmVydFRvVGltZVpvbmUoc3RhcnREdCwgc3RhcnREYXRlVGltZVN0ciwgdHopOwogICAgICAgICAgICB2YXIgbG9jYWxFbmQgPSBDb252ZXJ0VG9UaW1lWm9uZShlbmREdCwgZW5kRGF0ZVRpbWVTdHIsIHR6KTsKICAgICAgICAgICAgdmFyIHJlcXVlc3RlZFNsb3QgPSBsb2NhbFN0YXJ0LlRvU3RyaW5nKCJISDptbSIpICsgIi0iICsgbG9jYWxFbmQuVG9TdHJpbmcoIkhIOm1tIik7CiAgICAgICAgICAgIGJvb2wgYXZhaWxhYmxlID0gZmFsc2U7CiAgICAgICAgICAgIHN0cmluZyByZXNwb25zZUtleSA9IG51bGw7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXNwb25zZUtleSA9IEdldFN0cmluZyhib2R5LCAia2V5IikgPz8gR2V0U3RyaW5nKGJvZHksICJLZXkiKTsKICAgICAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IGJvZHkuZGF0YSA/PyBib2R5LkRhdGEgPz8gYm9keTsKICAgICAgICAgICAgICAgIGlmIChkYXRhTm9kZSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGFOb2RlLCAiZ2V0QXZhaWxhYmxlU2xvdHMiKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZ2V0QXZhaWxhYmxlU2xvdHMgPSBkYXRhTm9kZS5nZXRBdmFpbGFibGVTbG90czsKICAgICAgICAgICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoZ2V0QXZhaWxhYmxlU2xvdHMsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF2YWlsYWJsZVNsb3RzID0gZ2V0QXZhaWxhYmxlU2xvdHMuYXZhaWxhYmxlU2xvdHM7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdmFpbGFibGVTbG90cyAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IGF2YWlsYWJsZVNsb3RzIGFzIElFbnVtZXJhYmxlPG9iamVjdD47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdCAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBzIGluIGxpc3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocz8uVG9TdHJpbmcoKSA9PSByZXF1ZXN0ZWRTbG90KSB7IGF2YWlsYWJsZSA9IHRydWU7IGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZXRhaWxNc2cgPSBHZXRTdHJpbmcoZGF0YU5vZGUsICJkZXRhaWwiKSA/PyBHZXRTdHJpbmcoYm9keSwgImRldGFpbCIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGRldGFpbE1zZykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb25SYW5kZXZ1VXBkYXRlKGRldGFpbE1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VLZXkgPT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSByZXNwb25zZUtleSA/PyAoYXZhaWxhYmxlID8gImF2YWlsYWJsZS1zbG90cy1zdWNjZXNzIiA6ICJzbG90LXVuYXZhaWxhYmxlIiksCiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzID0gYm9keT8uZGF0YT8uZ2V0QXZhaWxhYmxlU2xvdHM/LmF2YWlsYWJsZVNsb3RzID8/IGJvZHk/LmdldEF2YWlsYWJsZVNsb3RzPy5hdmFpbGFibGVTbG90cwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvblJhbmRldnVVcGRhdGUpCiAgICAgICAgewogICAgICAgICAgICB0aHJvdzsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzbG90Q2hlY2tSZXN1bHQgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSAib3V0cHV0LWVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBleC5NZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZSA9IGNvbnRleHQuQm9keQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgVGltZVpvbmVJbmZvIFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCkKICAgIHsKICAgICAgICB2YXIgaWQgPSBHZXRDb25maWdWYWx1ZSgiQXBwb2ludG1lbnRzOlRpbWVab25lIikgPz8gR2V0Q29uZmlnVmFsdWUoIkFQUE9JTlRNRU5UX1RJTUVaT05FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoaWQpKQogICAgICAgICAgICBpZCA9ICJFdXJvcGUvSXN0YW5idWwiOwoKICAgICAgICB0cnkgeyByZXR1cm4gVGltZVpvbmVJbmZvLkZpbmRTeXN0ZW1UaW1lWm9uZUJ5SWQoaWQuVHJpbSgpKTsgfSBjYXRjaCB7IH0KICAgICAgICB0cnkgeyByZXR1cm4gVGltZVpvbmVJbmZvLkZpbmRTeXN0ZW1UaW1lWm9uZUJ5SWQoIlR1cmtleSBTdGFuZGFyZCBUaW1lIik7IH0gY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIFRpbWVab25lSW5mby5DcmVhdGVDdXN0b21UaW1lWm9uZSgiVFJUIiwgVGltZVNwYW4uRnJvbUhvdXJzKDMpLCAiVFJUIChVVEMrMykiLCAiVFJUIChVVEMrMykiKTsKICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyBEYXRlVGltZSBDb252ZXJ0VG9UaW1lWm9uZShEYXRlVGltZSBkdCwgc3RyaW5nIG9yaWdpbmFsLCBUaW1lWm9uZUluZm8gdHopCiAgICB7CiAgICAgICAgaWYgKGR0LktpbmQgPT0gRGF0ZVRpbWVLaW5kLlV0YykKICAgICAgICAgICAgcmV0dXJuIFRpbWVab25lSW5mby5Db252ZXJ0VGltZUZyb21VdGMoZHQsIHR6KTsKCiAgICAgICAgaWYgKERhdGVUaW1lT2Zmc2V0LlRyeVBhcnNlKG9yaWdpbmFsLCBvdXQgdmFyIGR0bykpCiAgICAgICAgewogICAgICAgICAgICB2YXIgdXRjID0gZHRvLlV0Y0RhdGVUaW1lOwogICAgICAgICAgICByZXR1cm4gVGltZVpvbmVJbmZvLkNvbnZlcnRUaW1lRnJvbVV0Yyh1dGMsIHR6KTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBkdDsKICAgIH0KCiAgICBwcml2YXRlIHN0cmluZyBHZXRTdHJpbmcoZHluYW1pYyBvYmosIHN0cmluZyBuYW1lKQogICAgewogICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkob2JqLCBuYW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHYgPSBHZXRQcm9wZXJ0eVZhbHVlKG9iaiwgbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdj8uVG9TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCB7IH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo="
|
|
293
|
+
"code": "dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIEJCVC5Xb3JrZmxvdy5TY3JpcHRpbmc7CnVzaW5nIEJCVC5Xb3JrZmxvdy5EZWZpbml0aW9uczsKCi8vLyA8c3VtbWFyeT4KLy8vIE1hcHBpbmcgZm9yIHZhbGlkYXRlLXNsb3QtZm9yLXJlemVydmF0aW9uIHRhc2sgaW4gcmFuZGV2dS11cGRhdGUgZmxvdy4KLy8vIFNhbWUgbG9naWMgYXMgVmFsaWRhdGVTbG90Rm9yUmV6ZXJ2YXRpb25NYXBwaW5nIC0gdXNlcyBhZHZpc29yLCBzdGFydERhdGVUaW1lLCBlbmREYXRlVGltZSBmcm9tIGluc3RhbmNlLgovLy8gPC9zdW1tYXJ5PgppbnRlcm5hbCBzZWFsZWQgY2xhc3MgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb25SYW5kZXZ1VXBkYXRlIDogRXhjZXB0aW9uCnsKICAgIHB1YmxpYyBHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvblJhbmRldnVVcGRhdGUoc3RyaW5nIG1lc3NhZ2UpIDogYmFzZShtZXNzYWdlKSB7IH0KfQoKcHVibGljIGNsYXNzIFZhbGlkYXRlU2xvdEZvclJhbmRldnVVcGRhdGVNYXBwaW5nIDogU2NyaXB0QmFzZSwgSU1hcHBpbmcKewogICAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogICAgewogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHNlcnZpY2VUYXNrID0gdGFzayBhcyBEYXByU2VydmljZVRhc2s7CiAgICAgICAgICAgIGlmIChzZXJ2aWNlVGFzayA9PSBudWxsKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIlRhc2sgbXVzdCBiZSBhIERhcHJTZXJ2aWNlVGFzayIpOwoKICAgICAgICAgICAgdmFyIGFwcElkID0gR2V0Q29uZmlnVmFsdWUoIkRBUFJfQVBQX0lEIik7CiAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoYXBwSWQpKQogICAgICAgICAgICAgICAgc2VydmljZVRhc2suU2V0QXBwSWQoYXBwSWQpOwoKICAgICAgICAgICAgdmFyIGRhdGEgPSBjb250ZXh0Lkluc3RhbmNlPy5EYXRhOwogICAgICAgICAgICBpZiAoZGF0YSA9PSBudWxsKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24oIkluc3RhbmNlIGRhdGEgaXMgcmVxdWlyZWQiKTsKCiAgICAgICAgICAgIHZhciBhZHZpc29yID0gR2V0U3RyaW5nKGRhdGEsICJhZHZpc29yIik7CiAgICAgICAgICAgIHZhciBzdGFydERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJzdGFydERhdGVUaW1lIik7CiAgICAgICAgICAgIGlmIChzdHJpbmcuSXNOdWxsT3JFbXB0eShhZHZpc29yKSB8fCBzdHJpbmcuSXNOdWxsT3JFbXB0eShzdGFydERhdGVUaW1lU3RyKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBLZXkgPSAidmFsaWRhdGlvbi1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGF0ZVRpbWUgc3RhcnREYXRlVGltZTsKICAgICAgICAgICAgaWYgKCFUcnlQYXJzZVRvVXRjKHN0YXJ0RGF0ZVRpbWVTdHIsIG91dCBzdGFydERhdGVUaW1lKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBLZXkgPSAidmFsaWRhdGlvbi1lcnJvciIsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAidmFsaWRhdGlvbi1lcnJvciIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGRhdGVTdHIgPSBzdGFydERhdGVUaW1lLlRvU3RyaW5nKCJ5eXl5LU1NLWRkIik7CiAgICAgICAgICAgIHZhciBxdWVyeVBhcmFtcyA9IG5ldyBMaXN0PHN0cmluZz4KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImFkdmlzb3JJZD0iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcoYWR2aXNvciksCiAgICAgICAgICAgICAgICAiZGF0ZT0iICsgVXJpLkVzY2FwZURhdGFTdHJpbmcoZGF0ZVN0cikKICAgICAgICAgICAgfTsKICAgICAgICAgICAgc2VydmljZVRhc2suU2V0UXVlcnlTdHJpbmcoc3RyaW5nLkpvaW4oIiYiLCBxdWVyeVBhcmFtcykpOwoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgPSAiaW5wdXQtZXJyb3IiLAogICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAiaW5wdXQtZXJyb3IiLCBlcnJvciA9IGV4Lk1lc3NhZ2UgfSB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgICB7CiAgICAgICAgdmFyIGJvZHkgPSBjb250ZXh0LkJvZHk7CiAgICAgICAgaWYgKGJvZHkgIT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IGJvZHkuZGF0YSA/PyBib2R5LkRhdGE7CiAgICAgICAgICAgIHZhciBkZXRhaWwgPSBHZXRTdHJpbmcoZGF0YU5vZGUsICJkZXRhaWwiKSA/PyBHZXRTdHJpbmcoYm9keSwgImVycm9yTWVzc2FnZSIpID8/IEdldFN0cmluZyhib2R5LCAiZGV0YWlsIik7CiAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbihkZXRhaWwgPz8gIiIsICIiKTsKICAgICAgICB9CiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuSW5zdGFuY2U/LkRhdGE7CiAgICAgICAgICAgIGlmIChkYXRhID09IG51bGwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRGF0YSA9IG5ldyB7IHNsb3RDaGVja1Jlc3VsdCA9IG5ldyB7IGF2YWlsYWJsZSA9IGZhbHNlLCBrZXkgPSAibm8taW5zdGFuY2UtZGF0YSIgfSB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHN0YXJ0RGF0ZVRpbWVTdHIgPSBHZXRTdHJpbmcoZGF0YSwgInN0YXJ0RGF0ZVRpbWUiKTsKICAgICAgICAgICAgdmFyIGVuZERhdGVUaW1lU3RyID0gR2V0U3RyaW5nKGRhdGEsICJlbmREYXRlVGltZSIpOwogICAgICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoc3RhcnREYXRlVGltZVN0cikgfHwgc3RyaW5nLklzTnVsbE9yRW1wdHkoZW5kRGF0ZVRpbWVTdHIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERhdGVUaW1lIHN0YXJ0RHRVdGMgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgRGF0ZVRpbWUgZW5kRHRVdGMgPSBEYXRlVGltZS5NaW5WYWx1ZTsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN0YXJ0RHRVdGMgPSBQYXJzZVRvVXRjKHN0YXJ0RGF0ZVRpbWVTdHIpOwogICAgICAgICAgICAgICAgZW5kRHRVdGMgPSBQYXJzZVRvVXRjKGVuZERhdGVUaW1lU3RyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0eiA9IFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCk7CiAgICAgICAgICAgIHZhciBsb2NhbFN0YXJ0ID0gVGltZVpvbmVJbmZvLkNvbnZlcnRUaW1lRnJvbVV0YyhzdGFydER0VXRjLCB0eik7CiAgICAgICAgICAgIHZhciBsb2NhbEVuZCA9IFRpbWVab25lSW5mby5Db252ZXJ0VGltZUZyb21VdGMoZW5kRHRVdGMsIHR6KTsKICAgICAgICAgICAgdmFyIHJlcXVlc3RlZFNsb3QgPSBsb2NhbFN0YXJ0LlRvU3RyaW5nKCJISDptbSIpICsgIi0iICsgbG9jYWxFbmQuVG9TdHJpbmcoIkhIOm1tIik7CiAgICAgICAgICAgIGJvb2wgYXZhaWxhYmxlID0gZmFsc2U7CiAgICAgICAgICAgIHN0cmluZyByZXNwb25zZUtleSA9IG51bGw7CgogICAgICAgICAgICBpZiAoYm9keSAhPSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXNwb25zZUtleSA9IEdldFN0cmluZyhib2R5LCAia2V5IikgPz8gR2V0U3RyaW5nKGJvZHksICJLZXkiKTsKICAgICAgICAgICAgICAgIHZhciBkYXRhTm9kZSA9IGJvZHkuZGF0YSA/PyBib2R5LkRhdGEgPz8gYm9keTsKICAgICAgICAgICAgICAgIGlmIChkYXRhTm9kZSAhPSBudWxsICYmIEhhc1Byb3BlcnR5KGRhdGFOb2RlLCAiZ2V0QXZhaWxhYmxlU2xvdHMiKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZ2V0QXZhaWxhYmxlU2xvdHMgPSBkYXRhTm9kZS5nZXRBdmFpbGFibGVTbG90czsKICAgICAgICAgICAgICAgICAgICBpZiAoSGFzUHJvcGVydHkoZ2V0QXZhaWxhYmxlU2xvdHMsICJhdmFpbGFibGVTbG90cyIpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF2YWlsYWJsZVNsb3RzID0gZ2V0QXZhaWxhYmxlU2xvdHMuYXZhaWxhYmxlU2xvdHM7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdmFpbGFibGVTbG90cyAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IGF2YWlsYWJsZVNsb3RzIGFzIElFbnVtZXJhYmxlPG9iamVjdD47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdCAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBzIGluIGxpc3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocz8uVG9TdHJpbmcoKSA9PSByZXF1ZXN0ZWRTbG90KSB7IGF2YWlsYWJsZSA9IHRydWU7IGJyZWFrOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZXRhaWxNc2cgPSBHZXRTdHJpbmcoZGF0YU5vZGUsICJkZXRhaWwiKSA/PyBHZXRTdHJpbmcoYm9keSwgImRldGFpbCIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KGRldGFpbE1zZykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgR2V0QXZhaWxhYmxlU2xvdHNFeGNlcHRpb25SYW5kZXZ1VXBkYXRlKGRldGFpbE1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgPSBuZXcgeyBzbG90Q2hlY2tSZXN1bHQgPSBuZXcgeyBhdmFpbGFibGUgPSBmYWxzZSwga2V5ID0gInZhbGlkYXRpb24tZXJyb3IiIH0gfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VLZXkgPT0gbnVsbCAmJiBib2R5LmlzU3VjY2VzcyA9PSBmYWxzZSkKICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRGF0YSA9IG5ldwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNsb3RDaGVja1Jlc3VsdCA9IG5ldwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSByZXNwb25zZUtleSA/PyAoYXZhaWxhYmxlID8gImF2YWlsYWJsZS1zbG90cy1zdWNjZXNzIiA6ICJzbG90LXVuYXZhaWxhYmxlIiksCiAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzID0gYm9keT8uZGF0YT8uZ2V0QXZhaWxhYmxlU2xvdHM/LmF2YWlsYWJsZVNsb3RzID8/IGJvZHk/LmdldEF2YWlsYWJsZVNsb3RzPy5hdmFpbGFibGVTbG90cwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChHZXRBdmFpbGFibGVTbG90c0V4Y2VwdGlvblJhbmRldnVVcGRhdGUpCiAgICAgICAgewogICAgICAgICAgICB0aHJvdzsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERhdGEgPSBuZXcKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzbG90Q2hlY2tSZXN1bHQgPSBuZXcKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSA9IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBrZXkgPSAib3V0cHV0LWVycm9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBleC5NZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZSA9IGNvbnRleHQuQm9keQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgVGltZVpvbmVJbmZvIFJlc29sdmVCdXNpbmVzc1RpbWVab25lKCkKICAgIHsKICAgICAgICB2YXIgaWQgPSBHZXRDb25maWdWYWx1ZSgiQXBwb2ludG1lbnRzOlRpbWVab25lIikgPz8gR2V0Q29uZmlnVmFsdWUoIkFQUE9JTlRNRU5UX1RJTUVaT05FIik7CiAgICAgICAgaWYgKHN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoaWQpKQogICAgICAgICAgICBpZCA9ICJFdXJvcGUvSXN0YW5idWwiOwoKICAgICAgICB0cnkgeyByZXR1cm4gVGltZVpvbmVJbmZvLkZpbmRTeXN0ZW1UaW1lWm9uZUJ5SWQoaWQuVHJpbSgpKTsgfSBjYXRjaCB7IH0KICAgICAgICB0cnkgeyByZXR1cm4gVGltZVpvbmVJbmZvLkZpbmRTeXN0ZW1UaW1lWm9uZUJ5SWQoIlR1cmtleSBTdGFuZGFyZCBUaW1lIik7IH0gY2F0Y2ggeyB9CiAgICAgICAgcmV0dXJuIFRpbWVab25lSW5mby5DcmVhdGVDdXN0b21UaW1lWm9uZSgiVFJUIiwgVGltZVNwYW4uRnJvbUhvdXJzKDMpLCAiVFJUIChVVEMrMykiLCAiVFJUIChVVEMrMykiKTsKICAgIH0KCiAgICBwcml2YXRlIGJvb2wgVHJ5UGFyc2VUb1V0YyhzdHJpbmcgZGF0ZVN0ciwgb3V0IERhdGVUaW1lIHV0Y0RhdGVUaW1lKQogICAgewogICAgICAgIHV0Y0RhdGVUaW1lID0gZGVmYXVsdDsKICAgICAgICBpZiAoc3RyaW5nLklzTnVsbE9yRW1wdHkoZGF0ZVN0cikpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAoRGF0ZVRpbWVPZmZzZXQuVHJ5UGFyc2UoZGF0ZVN0ciwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSwKICAgICAgICAgICAgU3lzdGVtLkdsb2JhbGl6YXRpb24uRGF0ZVRpbWVTdHlsZXMuTm9uZSwgb3V0IHZhciBkdG8pKQogICAgICAgIHsKICAgICAgICAgICAgdXRjRGF0ZVRpbWUgPSBkdG8uVXRjRGF0ZVRpbWU7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHJpdmF0ZSBEYXRlVGltZSBQYXJzZVRvVXRjKHN0cmluZyBkYXRlU3RyKQogICAgewogICAgICAgIHZhciBkdG8gPSBEYXRlVGltZU9mZnNldC5QYXJzZShkYXRlU3RyLAogICAgICAgICAgICBTeXN0ZW0uR2xvYmFsaXphdGlvbi5DdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKTsKICAgICAgICByZXR1cm4gZHRvLlV0Y0RhdGVUaW1lOwogICAgfQoKICAgIHByaXZhdGUgc3RyaW5nIEdldFN0cmluZyhkeW5hbWljIG9iaiwgc3RyaW5nIG5hbWUpCiAgICB7CiAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChIYXNQcm9wZXJ0eShvYmosIG5hbWUpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgdiA9IEdldFByb3BlcnR5VmFsdWUob2JqLCBuYW1lKTsKICAgICAgICAgICAgICAgIHJldHVybiB2Py5Ub1N0cmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIHsgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9Cg=="
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
296
|
]
|