Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pluralsight no longer working. Using version 2016.10.19. #10972

Closed
dannycallaghan opened this issue Oct 19, 2016 · 9 comments
Closed

Pluralsight no longer working. Using version 2016.10.19. #10972

dannycallaghan opened this issue Oct 19, 2016 · 9 comments

Comments

@dannycallaghan
Copy link

@dannycallaghan dannycallaghan commented Oct 19, 2016

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2016.10.19. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

  • I've verified and I assure that I'm running youtube-dl 2016.10.19

Before submitting an issue make sure you have:

  • At least skimmed through README and most notably FAQ and BUGS sections
  • Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

  • Bug report (encountered problems with youtube-dl)
  • Site support request (request for adding support for a new site)
  • Feature request (request for a new functionality)
  • Question
  • Other

$ youtube-dl --username xxx --password yyy --verbose --dump-pages --no-check-certificate --playlist-items 17 https://app.pluralsight.com/library/courses/agile-requirements-process-idea-to-minimum-viable-product/table-of-contents
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'--username', u'PRIVATE', u'--password', u'PRIVATE', u'--verbose', u'--dump-pages', u'--no-check-certificate', u'--playlist-items', u'17', u'https://app.pluralsight.com/library/courses/agile-requirements-process-idea-to-minimum-viable-product/table-of-contents']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.10.19
[debug] Python version 2.7.10 - Darwin-15.6.0-x86_64-i386-64bit
[debug] exe versions: none
[debug] Proxy map: {}
[pluralsight:course] agile-requirements-process-idea-to-minimum-viable-product: Downloading course JSON
[pluralsight:course] Dumping request to http://app.pluralsight.com/data/course/agile-requirements-process-idea-to-minimum-viable-product
eyJ0aXRsZSI6IkFnaWxlIFJlcXVpcmVtZW50cyBQcm9jZXNzOiBGcm9tIElkZWEgdG8gTWluaW11bSBWaWFibGUgUHJvZHVjdCIsImxldmVsIjoiSW50ZXJtZWRpYXRlIiwiZHVyYXRpb24iOiIwMjozMzo1NSIsInJlbGVhc2VEYXRlIjoiMjAxNS0wNS0zMFQwMDowMDowMFoiLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwiYXV0aG9ycyI6W3siaGFuZGxlIjoicnVzdHktZGl2aW5lIiwiZmlyc3ROYW1lIjoiUnVzdHkiLCJsYXN0TmFtZSI6IkRpdmluZSJ9XSwiaGFzVHJhbnNjcmlwdCI6dHJ1ZSwiY291cnNlUmF0aW5nIjp7ImN1cnJlbnRVc2Vyc1JhdGluZyI6MCwiYXZlcmFnZVJhdGluZyI6NC4wLCJyYXRpbmciOjQuMCwiY2FuUmF0ZVRoaXNDb3Vyc2UiOmZhbHNlLCJjb3Vyc2VOYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwibnVtYmVyT2ZSYXRlcnMiOjE3OSwiaGFzVXNlclJhdGVkQ291cnNlIjpmYWxzZX0sImlzUmV0aXJlZCI6ZmFsc2UsInNob3J0RGVzY3JpcHRpb24iOiJEbyB5b3UgaGF2ZSBhbiBpZGVhIGZvciBhIHN0YXJ0dXAgb3IgaGF2ZSB5b3UgYmVlbiBhc3NpZ25lZCB0byBhIG5ldyBwcm9qZWN0PyBUaGlzIGNvdXJzZSB3aWxsIHRlYWNoIHlvdSBob3cgdG8gc3RhcnQgYSBwcm9qZWN0IHF1aWNrbHkgYW5kIGVmZmljaWVudGx5IGFuZCBhdm9pZCB0aGF0IGNoYW90aWMgYmFjay1hbmQtZm9ydGggbmF0dXJlLiBZb3Ugd2lsbCBsZWFybiBob3cgdG8gZ2V0IGV2ZXJ5b25lIGludm9sdmVkIGluIHRoZSBuZXcgcHJvamVjdCB0byBhZ3JlZSBvbiB0aGUgdmlzaW9uLCBvYmplY3RpdmUsIGFuZCBjb3Vyc2UgdGhlIHByb2plY3Qgc2hvdWxkIHRha2Ugc28gdGhhdCB5b3VyIGNoYW5jZXMgb2Ygc3VjY2VzcyBhcmUgbWF4aW1pemVkLiIsImRlc2NyaXB0aW9uIjoiVGhpcyBjb3Vyc2Ugd2lsbCB0ZWFjaCBkZXZlbG9wZXJzLCBidXNpbmVzcyBhbmFseXN0cywgcHJvamVjdCBtYW5hZ2VycywgYW5kIGVudHJlcHJlbmV1cnMgYSBkZWZpbml0ZSBwcm9jZXNzIHRvIHByZXBhcmUgZm9yIGJ1aWxkaW5nIGEgbmV3IHNvZnR3YXJlIHNvbHV0aW9uIHRoYXQgd2lsbCBnYXJuZXIgYSBzaGFyZWQgdmlzaW9uIGZvciB0aGUgcHJvamVjdCBhbmQgbGVhZCB0byBhIG1pbmltdW0gdmlhYmxlIHByb2R1Y3QuIFRoZSBjb3Vyc2Ugd2lsbCB0ZWFjaCBob3cgdG8gY3JlYXRlIGEgZmxleGlibGUgcHJvamVjdCBwbGFuIHdpdGggcHJpb3JpdGl6ZWQgZmVhdHVyZXMsIGVzdGltYXRlZCBsZXZlbCBvZiBlZmZvcnQsIGFuZCBhIHByZWxpbWluYXJ5IGRlc2lnbiB0aGF0IGlzIHJlYWR5IGZvciBhbiBhZ2lsZSBkZXZlbG9wbWVudCB0ZWFtIHRvIHN0YXJ0IGJ1aWxkaW5nLiBTdHVkZW50cyB3aWxsIGFjdGl2ZWx5IHBhcnRpY2lwYXRlIGluIHRoZSBhbmFseXNpcyBvZiBhbiBleGFtcGxlIHByb2plY3Qgc28gdGhhdCB0aGV5IGNhbiBnZXQgaGFuZHMtb24gZXhwZXJpZW5jZSB3aXRoIHRoZSBwcm9jZXNzLiBBZnRlciB0YWtpbmcgdGhpcyBjb3Vyc2UsIHN0dWRlbnRzIHdpbGwga25vdyBob3cgbXVjaCB1cCBmcm9udCBhbmFseXNpcyBpcyBlbm91Z2ggdG8gZ2V0IGFuIGFnaWxlIHByb2plY3Qgc3RhcnRlZCwgdGlwcyB0byBjb252aW5jZSB0aGVpciBvcmdhbml6YXRpb24gdG8gdXNlIHRoaXMgcHJvY2VzcywgYW5kIGhvdyB0aGV5IG1heSB1c2UgdGhlc2Ugc2tpbGxzIHRvIGRldmVsb3AgdGhlaXIgb3duIHNvZnR3YXJlIGlkZWFzLiIsImlzQm9va21hcmtlZCI6ZmFsc2UsInVzZXJNYXlTYXZlQ291cnNlIjpmYWxzZSwicmVwbGFjZW1lbnRDb3Vyc2VOYW1lIjoiIiwicmV0aXJlZFJlYXNvbiI6IiIsInJlcGxhY2VtZW50Q291cnNlVGl0bGUiOiIiLCJpc1ZhbGlkIjp0cnVlLCJpc1VzZXJBdXRob3JpemVkRm9yVHJhbnNjcmlwdCI6ZmFsc2V9
[pluralsight:course] agile-requirements-process-idea-to-minimum-viable-product: Downloading course data JSON
[pluralsight:course] Dumping request to http://app.pluralsight.com/data/course/content/agile-requirements-process-idea-to-minimum-viable-product
W3sidXNlck1heVZpZXdGaXJzdENsaXAiOmZhbHNlLCJtb2R1bGVSZWYiOiJydXN0eS1kaXZpbmUvYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0xIiwidGl0bGUiOiJJbnRyb2R1Y3Rpb24gdG8gdGhlIFByb2Nlc3MiLCJkZXNjcmlwdGlvbiI6IkFuIGludHJvZHVjdGlvbiB0byB0aGUgcmVxdWlyZW1lbnRzIHByb2Nlc3MsIGluY2x1ZGluZyB3aG8gd2lsbCBiZSBpbnRlcmVzdGVkIGluIHRoZSBwcm9jZXNzLCB3aGVuIGl0IHdvcmtzLCBhbmQgd2hlbiBpdCBkb2Vzbid0IHdvcmsuIiwiZHVyYXRpb24iOiIwMDoyMDowNCIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwiZnJhZ21lbnRJZGVudGlmaWVyIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0xIiwiZmlyc3RDbGlwTGF1bmNoQ2xpY2tIYW5kbGVyIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMSZtb2RlPWxpdmUmY2xpcD0wJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Qm9va21hcmsiOmZhbHNlLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJjbGlwcyI6W3sidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjAsInRpdGxlIjoiV2VsY29tZSIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjAyOjE3IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTEmbW9kZT1saXZlJmNsaXA9MCZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMS0wMSIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjEsInRpdGxlIjoiSG93IFdlIEdvdCBIZXJlIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDI6MzEiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMSZtb2RlPWxpdmUmY2xpcD0xJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0xLTAyIiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6MiwidGl0bGUiOiJSZXF1aXJlbWVudHMgUHJvY2VzcyBPdmVydmlldyIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjA0OjM3IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTEmbW9kZT1saXZlJmNsaXA9MiZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMS0wMyIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjMsInRpdGxlIjoiV2hlbiBOb3QgdG8gVXNlIFRoaXMgUHJvY2VzcyIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjAyOjQ2IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTEmbW9kZT1saXZlJmNsaXA9MyZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMS0wNCIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjQsInRpdGxlIjoiV2h5IFRoaXMgSXMgQWdpbGUiLCJoYXNCZWVuVmlld2VkIjpmYWxzZSwiZHVyYXRpb24iOiIwMDowMjozMCIsInBsYXllclBhcmFtZXRlcnMiOiJhdXRob3I9cnVzdHktZGl2aW5lJm5hbWU9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0xJm1vZGU9bGl2ZSZjbGlwPTQmY291cnNlPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdCIsInVzZXJNYXlWaWV3Q2xpcCI6ZmFsc2UsImNsaWNrQWN0aW9uRGVzY3JpcHRpb24iOiJWaWV3IHdpdGggcGxheWVyIiwiaXNIaWdobGlnaHRlZCI6ZmFsc2UsIm5hbWUiOiJhZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTEtMDUiLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJoYXNCZWVuVmlld2VkSW1hZ2VVcmwiOiJjcy9oYXMtbm90LWJlZW4tdmlld2VkLWNoZWNrbWFyay0xNS12MS5wbmciLCJoYXNCZWVuVmlld2VkQWx0VGV4dCI6IllvdSBoYXZlIG5vdCB3YXRjaGVkIHRoaXMgQ2xpcC4ifSx7InRyYW5zY3JpcHRzIjpbXSwiY2xpcEluZGV4Ijo1LCJ0aXRsZSI6IkhvdyB0byBJbnRyb2R1Y2UgdGhlIFByb2Nlc3MgdG8gWW91ciBDdXN0b21lciIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjA0OjExIiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTEmbW9kZT1saXZlJmNsaXA9NSZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMS0wNiIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjYsInRpdGxlIjoiU3VtbWFyeSIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjAxOjA5IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTEmbW9kZT1saXZlJmNsaXA9NiZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMS0wNyIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9XSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIE1vZHVsZS4ifSx7InVzZXJNYXlWaWV3Rmlyc3RDbGlwIjpmYWxzZSwibW9kdWxlUmVmIjoicnVzdHktZGl2aW5lL2FnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMiIsInRpdGxlIjoiUHJlcGFyYXRpb24gZm9yIHRoZSBSZXF1aXJlbWVudHMgTWVldGluZyIsImRlc2NyaXB0aW9uIjoiVGhpcyBtb2R1bGUgY292ZXJzIGhvdyB0byBwcmVwYXJlIHlvdXIgY3VzdG9tZXIgYW5kIHlvdXIgdGVhbSBmb3IgYW4gYWdpbGUgcmVxdWlyZW1lbnRzIHdvcmtzaG9wLiBZb3Ugd2lsbCBhbHNvIGxlYXJuIGhvdyB0byBmYWNpbGl0YXRlIGEgbWVldGluZyBhbmQgaGFuZGxlIGNvbmZsaWN0IGdyYWNlZnVsbHkuIiwiZHVyYXRpb24iOiIwMDoyODowNiIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwiZnJhZ21lbnRJZGVudGlmaWVyIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0yIiwiZmlyc3RDbGlwTGF1bmNoQ2xpY2tIYW5kbGVyIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMiZtb2RlPWxpdmUmY2xpcD0wJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Qm9va21hcmsiOmZhbHNlLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJjbGlwcyI6W3sidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjAsInRpdGxlIjoiSW50cm9kdWN0aW9uIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDA6NDQiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMiZtb2RlPWxpdmUmY2xpcD0wJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0yLTAxIiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6MSwidGl0bGUiOiJNZWV0aW5nIEFnZW5kYSIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjA2OjQ2IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTImbW9kZT1saXZlJmNsaXA9MSZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMi0wMiIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjIsInRpdGxlIjoiUHJlcGFyaW5nIHRoZSBDdXN0b21lciIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjAzOjMwIiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTImbW9kZT1saXZlJmNsaXA9MiZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMi0wMyIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjMsInRpdGxlIjoiUHJlcGFyaW5nIFlvdXIgVGVhbSIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjA3OjU2IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTImbW9kZT1saXZlJmNsaXA9MyZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMi0wNCIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjQsInRpdGxlIjoiRmFjaWxpdGF0aW5nIGEgTWVldGluZyIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjA3OjI3IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTImbW9kZT1saXZlJmNsaXA9NCZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMi0wNSIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjUsInRpdGxlIjoiU3VtbWFyeSIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjAxOjQxIiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTImbW9kZT1saXZlJmNsaXA9NSZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMi0wNiIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9XSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIE1vZHVsZS4ifSx7InVzZXJNYXlWaWV3Rmlyc3RDbGlwIjpmYWxzZSwibW9kdWxlUmVmIjoicnVzdHktZGl2aW5lL2FnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMyIsInRpdGxlIjoiRXhhbXBsZSBSZXF1aXJlbWVudHMgTWVldGluZyIsImRlc2NyaXB0aW9uIjoiVG9nZXRoZXIgd2Ugd2lsbCB3YWxrIHRocm91Z2ggYW4gZXhhbXBsZSByZXF1aXJlbWVudHMgbWVldGluZyBmb3IgYSBzb2Z0d2FyZSB1c2VyIGdyb3VwIHdlYnNpdGUuIiwiZHVyYXRpb24iOiIwMToxNDoyOSIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwiZnJhZ21lbnRJZGVudGlmaWVyIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0zIiwiZmlyc3RDbGlwTGF1bmNoQ2xpY2tIYW5kbGVyIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMyZtb2RlPWxpdmUmY2xpcD0wJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Qm9va21hcmsiOmZhbHNlLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJjbGlwcyI6W3sidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjAsInRpdGxlIjoiSW50cm9kdWN0aW9uIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDA6NDciLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMyZtb2RlPWxpdmUmY2xpcD0wJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0zLTAxIiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6MSwidGl0bGUiOiJJbml0aWFsIENvbnRhY3QiLCJoYXNCZWVuVmlld2VkIjpmYWxzZSwiZHVyYXRpb24iOiIwMDoxMDoyMiIsInBsYXllclBhcmFtZXRlcnMiOiJhdXRob3I9cnVzdHktZGl2aW5lJm5hbWU9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0zJm1vZGU9bGl2ZSZjbGlwPTEmY291cnNlPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdCIsInVzZXJNYXlWaWV3Q2xpcCI6ZmFsc2UsImNsaWNrQWN0aW9uRGVzY3JpcHRpb24iOiJWaWV3IHdpdGggcGxheWVyIiwiaXNIaWdobGlnaHRlZCI6ZmFsc2UsIm5hbWUiOiJhZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMtMDIiLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJoYXNCZWVuVmlld2VkSW1hZ2VVcmwiOiJjcy9oYXMtbm90LWJlZW4tdmlld2VkLWNoZWNrbWFyay0xNS12MS5wbmciLCJoYXNCZWVuVmlld2VkQWx0VGV4dCI6IllvdSBoYXZlIG5vdCB3YXRjaGVkIHRoaXMgQ2xpcC4ifSx7InRyYW5zY3JpcHRzIjpbXSwiY2xpcEluZGV4IjoyLCJ0aXRsZSI6Ik1lZXRpbmcgRGF5IiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDE6MDgiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMyZtb2RlPWxpdmUmY2xpcD0yJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0zLTAzIiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6MywidGl0bGUiOiJXZWxjb21lIGFuZCBJbnRyb2R1Y3Rpb25zIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDQ6NTIiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMyZtb2RlPWxpdmUmY2xpcD0zJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0zLTA0IiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6NCwidGl0bGUiOiJBZ2VuZGEiLCJoYXNCZWVuVmlld2VkIjpmYWxzZSwiZHVyYXRpb24iOiIwMDowMToxMiIsInBsYXllclBhcmFtZXRlcnMiOiJhdXRob3I9cnVzdHktZGl2aW5lJm5hbWU9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0zJm1vZGU9bGl2ZSZjbGlwPTQmY291cnNlPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdCIsInVzZXJNYXlWaWV3Q2xpcCI6ZmFsc2UsImNsaWNrQWN0aW9uRGVzY3JpcHRpb24iOiJWaWV3IHdpdGggcGxheWVyIiwiaXNIaWdobGlnaHRlZCI6ZmFsc2UsIm5hbWUiOiJhZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMtMDUiLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJoYXNCZWVuVmlld2VkSW1hZ2VVcmwiOiJjcy9oYXMtbm90LWJlZW4tdmlld2VkLWNoZWNrbWFyay0xNS12MS5wbmciLCJoYXNCZWVuVmlld2VkQWx0VGV4dCI6IllvdSBoYXZlIG5vdCB3YXRjaGVkIHRoaXMgQ2xpcC4ifSx7InRyYW5zY3JpcHRzIjpbXSwiY2xpcEluZGV4Ijo1LCJ0aXRsZSI6Ikdyb3VuZCBSdWxlcyIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjAxOjU2IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMmbW9kZT1saXZlJmNsaXA9NSZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMy0wNiIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjYsInRpdGxlIjoiT2JqZWN0aXZlIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MTE6NDUiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMyZtb2RlPWxpdmUmY2xpcD02JmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0zLTA3IiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6NywidGl0bGUiOiJSb2xlcyIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjA0OjM2IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMmbW9kZT1saXZlJmNsaXA9NyZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMy0wOCIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjgsInRpdGxlIjoiRmVhdHVyZXMiLCJoYXNCZWVuVmlld2VkIjpmYWxzZSwiZHVyYXRpb24iOiIwMDoyMjowNCIsInBsYXllclBhcmFtZXRlcnMiOiJhdXRob3I9cnVzdHktZGl2aW5lJm5hbWU9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW0zJm1vZGU9bGl2ZSZjbGlwPTgmY291cnNlPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdCIsInVzZXJNYXlWaWV3Q2xpcCI6ZmFsc2UsImNsaWNrQWN0aW9uRGVzY3JpcHRpb24iOiJWaWV3IHdpdGggcGxheWVyIiwiaXNIaWdobGlnaHRlZCI6ZmFsc2UsIm5hbWUiOiJhZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMtMDkiLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJoYXNCZWVuVmlld2VkSW1hZ2VVcmwiOiJjcy9oYXMtbm90LWJlZW4tdmlld2VkLWNoZWNrbWFyay0xNS12MS5wbmciLCJoYXNCZWVuVmlld2VkQWx0VGV4dCI6IllvdSBoYXZlIG5vdCB3YXRjaGVkIHRoaXMgQ2xpcC4ifSx7InRyYW5zY3JpcHRzIjpbXSwiY2xpcEluZGV4Ijo5LCJ0aXRsZSI6IkFzc3VtcHRpb25zIGFuZCBDb25zdHJhaW50cyIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjA1OjAxIiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMmbW9kZT1saXZlJmNsaXA9OSZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMy0xMCIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjEwLCJ0aXRsZSI6IlByaW9yaXRpemluZyBGZWF0dXJlcyIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjA0OjE4IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMmbW9kZT1saXZlJmNsaXA9MTAmY291cnNlPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdCIsInVzZXJNYXlWaWV3Q2xpcCI6ZmFsc2UsImNsaWNrQWN0aW9uRGVzY3JpcHRpb24iOiJWaWV3IHdpdGggcGxheWVyIiwiaXNIaWdobGlnaHRlZCI6ZmFsc2UsIm5hbWUiOiJhZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMtMTEiLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJoYXNCZWVuVmlld2VkSW1hZ2VVcmwiOiJjcy9oYXMtbm90LWJlZW4tdmlld2VkLWNoZWNrbWFyay0xNS12MS5wbmciLCJoYXNCZWVuVmlld2VkQWx0VGV4dCI6IllvdSBoYXZlIG5vdCB3YXRjaGVkIHRoaXMgQ2xpcC4ifSx7InRyYW5zY3JpcHRzIjpbXSwiY2xpcEluZGV4IjoxMSwidGl0bGUiOiJUaGUgQ29yZSBGZWF0dXJlIFNldCIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjA1OjI3IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMmbW9kZT1saXZlJmNsaXA9MTEmY291cnNlPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdCIsInVzZXJNYXlWaWV3Q2xpcCI6ZmFsc2UsImNsaWNrQWN0aW9uRGVzY3JpcHRpb24iOiJWaWV3IHdpdGggcGxheWVyIiwiaXNIaWdobGlnaHRlZCI6ZmFsc2UsIm5hbWUiOiJhZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTMtMTIiLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJoYXNCZWVuVmlld2VkSW1hZ2VVcmwiOiJjcy9oYXMtbm90LWJlZW4tdmlld2VkLWNoZWNrbWFyay0xNS12MS5wbmciLCJoYXNCZWVuVmlld2VkQWx0VGV4dCI6IllvdSBoYXZlIG5vdCB3YXRjaGVkIHRoaXMgQ2xpcC4ifSx7InRyYW5zY3JpcHRzIjpbXSwiY2xpcEluZGV4IjoxMiwidGl0bGUiOiJTdW1tYXJ5IiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDA6NTYiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMyZtb2RlPWxpdmUmY2xpcD0xMiZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tMy0xMyIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9XSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIE1vZHVsZS4ifSx7InVzZXJNYXlWaWV3Rmlyc3RDbGlwIjpmYWxzZSwibW9kdWxlUmVmIjoicnVzdHktZGl2aW5lL2FnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNCIsInRpdGxlIjoiQ3JlYXRpbmcgdGhlIFByb2plY3QgUGxhbiIsImRlc2NyaXB0aW9uIjoiQWZ0ZXIgY29tcGxldGluZyB0aGUgYWdpbGUgd29ya3Nob3AgbWVldGluZywgeW91IHdpbGwgc2VlIGhvdyB0byB0YWtlIHdoYXQgeW91IGxlYXJuZWQgYW5kIGNyZWF0ZSBhIHByb2plY3QgcGxhbi4iLCJkdXJhdGlvbiI6IjAwOjE2OjUxIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJmcmFnbWVudElkZW50aWZpZXIiOiJhZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTQiLCJmaXJzdENsaXBMYXVuY2hDbGlja0hhbmRsZXIiOiJhdXRob3I9cnVzdHktZGl2aW5lJm5hbWU9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW00Jm1vZGU9bGl2ZSZjbGlwPTAmY291cnNlPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdCIsInVzZXJNYXlCb29rbWFyayI6ZmFsc2UsImlzQm9va21hcmtlZCI6ZmFsc2UsImNsaXBzIjpbeyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6MCwidGl0bGUiOiJJbnRyb2R1Y3Rpb24iLCJoYXNCZWVuVmlld2VkIjpmYWxzZSwiZHVyYXRpb24iOiIwMDowMDozNCIsInBsYXllclBhcmFtZXRlcnMiOiJhdXRob3I9cnVzdHktZGl2aW5lJm5hbWU9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW00Jm1vZGU9bGl2ZSZjbGlwPTAmY291cnNlPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdCIsInVzZXJNYXlWaWV3Q2xpcCI6ZmFsc2UsImNsaWNrQWN0aW9uRGVzY3JpcHRpb24iOiJWaWV3IHdpdGggcGxheWVyIiwiaXNIaWdobGlnaHRlZCI6ZmFsc2UsIm5hbWUiOiJhZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTQtMDEiLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJoYXNCZWVuVmlld2VkSW1hZ2VVcmwiOiJjcy9oYXMtbm90LWJlZW4tdmlld2VkLWNoZWNrbWFyay0xNS12MS5wbmciLCJoYXNCZWVuVmlld2VkQWx0VGV4dCI6IllvdSBoYXZlIG5vdCB3YXRjaGVkIHRoaXMgQ2xpcC4ifSx7InRyYW5zY3JpcHRzIjpbXSwiY2xpcEluZGV4IjoxLCJ0aXRsZSI6IkNvbXBpbGluZyBNZWV0aW5nIE5vdGVzIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDE6MDAiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNCZtb2RlPWxpdmUmY2xpcD0xJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW00LTAyIiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6MiwidGl0bGUiOiJGaWxsaW5nIGluIHRoZSBEZXRhaWxzIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDU6MzEiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNCZtb2RlPWxpdmUmY2xpcD0yJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW00LTAzIiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6MywidGl0bGUiOiJQcm9qZWN0IEVzdGltYXRpb24iLCJoYXNCZWVuVmlld2VkIjpmYWxzZSwiZHVyYXRpb24iOiIwMDowNTo1MiIsInBsYXllclBhcmFtZXRlcnMiOiJhdXRob3I9cnVzdHktZGl2aW5lJm5hbWU9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW00Jm1vZGU9bGl2ZSZjbGlwPTMmY291cnNlPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdCIsInVzZXJNYXlWaWV3Q2xpcCI6ZmFsc2UsImNsaWNrQWN0aW9uRGVzY3JpcHRpb24iOiJWaWV3IHdpdGggcGxheWVyIiwiaXNIaWdobGlnaHRlZCI6ZmFsc2UsIm5hbWUiOiJhZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTQtMDQiLCJpc0Jvb2ttYXJrZWQiOmZhbHNlLCJoYXNCZWVuVmlld2VkSW1hZ2VVcmwiOiJjcy9oYXMtbm90LWJlZW4tdmlld2VkLWNoZWNrbWFyay0xNS12MS5wbmciLCJoYXNCZWVuVmlld2VkQWx0VGV4dCI6IllvdSBoYXZlIG5vdCB3YXRjaGVkIHRoaXMgQ2xpcC4ifSx7InRyYW5zY3JpcHRzIjpbXSwiY2xpcEluZGV4Ijo0LCJ0aXRsZSI6IlByZXNlbnRpbmcgdGhlIERlbGl2ZXJhYmxlcyIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjAzOjA0IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTQmbW9kZT1saXZlJmNsaXA9NCZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNC0wNSIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjUsInRpdGxlIjoiU3VtbWFyeSIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjAwOjQ3IiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTQmbW9kZT1saXZlJmNsaXA9NSZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNC0wNiIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9XSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIE1vZHVsZS4ifSx7InVzZXJNYXlWaWV3Rmlyc3RDbGlwIjpmYWxzZSwibW9kdWxlUmVmIjoicnVzdHktZGl2aW5lL2FnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNSIsInRpdGxlIjoiSW50cm9kdWN0aW9uIHRvIFdvcmtpbmcgdGhlIFByb2plY3QiLCJkZXNjcmlwdGlvbiI6IllvdSd2ZSB3b24gdGhlIHByb2plY3QsIG5vdyB3aGF0PyBIZXJlIGlzIGhvdyBvbmUgZW50ZXJwcmlzZSBhZ2lsZSB0ZWFtIGV4ZWN1dGVzIHByb2plY3RzLiIsImR1cmF0aW9uIjoiMDA6MTQ6MjUiLCJoYXNCZWVuVmlld2VkIjpmYWxzZSwiaXNIaWdobGlnaHRlZCI6ZmFsc2UsImZyYWdtZW50SWRlbnRpZmllciI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNSIsImZpcnN0Q2xpcExhdW5jaENsaWNrSGFuZGxlciI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTUmbW9kZT1saXZlJmNsaXA9MCZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heUJvb2ttYXJrIjpmYWxzZSwiaXNCb29rbWFya2VkIjpmYWxzZSwiY2xpcHMiOlt7InRyYW5zY3JpcHRzIjpbXSwiY2xpcEluZGV4IjowLCJ0aXRsZSI6IkludHJvZHVjdGlvbiIsImhhc0JlZW5WaWV3ZWQiOmZhbHNlLCJkdXJhdGlvbiI6IjAwOjAwOjMzIiwicGxheWVyUGFyYW1ldGVycyI6ImF1dGhvcj1ydXN0eS1kaXZpbmUmbmFtZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QtbTUmbW9kZT1saXZlJmNsaXA9MCZjb3Vyc2U9YWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0IiwidXNlck1heVZpZXdDbGlwIjpmYWxzZSwiY2xpY2tBY3Rpb25EZXNjcmlwdGlvbiI6IlZpZXcgd2l0aCBwbGF5ZXIiLCJpc0hpZ2hsaWdodGVkIjpmYWxzZSwibmFtZSI6ImFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNS0wMSIsImlzQm9va21hcmtlZCI6ZmFsc2UsImhhc0JlZW5WaWV3ZWRJbWFnZVVybCI6ImNzL2hhcy1ub3QtYmVlbi12aWV3ZWQtY2hlY2ttYXJrLTE1LXYxLnBuZyIsImhhc0JlZW5WaWV3ZWRBbHRUZXh0IjoiWW91IGhhdmUgbm90IHdhdGNoZWQgdGhpcyBDbGlwLiJ9LHsidHJhbnNjcmlwdHMiOltdLCJjbGlwSW5kZXgiOjEsInRpdGxlIjoiR2V0dGluZyBTdGFydGVkIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDI6MzgiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNSZtb2RlPWxpdmUmY2xpcD0xJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW01LTAyIiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6MiwidGl0bGUiOiJUaGUgSXRlcmF0aW9uIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDY6MDUiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNSZtb2RlPWxpdmUmY2xpcD0yJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW01LTAzIiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6MywidGl0bGUiOiJEZW1vbnN0cmF0aW9uIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDI6MzIiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNSZtb2RlPWxpdmUmY2xpcD0zJmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW01LTA0IiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6NCwidGl0bGUiOiJSZXRyb3NwZWN0aXZlIiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDE6NTMiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNSZtb2RlPWxpdmUmY2xpcD00JmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW01LTA1IiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn0seyJ0cmFuc2NyaXB0cyI6W10sImNsaXBJbmRleCI6NSwidGl0bGUiOiJTdW1tYXJ5IiwiaGFzQmVlblZpZXdlZCI6ZmFsc2UsImR1cmF0aW9uIjoiMDA6MDA6NDIiLCJwbGF5ZXJQYXJhbWV0ZXJzIjoiYXV0aG9yPXJ1c3R5LWRpdmluZSZuYW1lPWFnaWxlLXJlcXVpcmVtZW50cy1wcm9jZXNzLWlkZWEtdG8tbWluaW11bS12aWFibGUtcHJvZHVjdC1tNSZtb2RlPWxpdmUmY2xpcD01JmNvdXJzZT1hZ2lsZS1yZXF1aXJlbWVudHMtcHJvY2Vzcy1pZGVhLXRvLW1pbmltdW0tdmlhYmxlLXByb2R1Y3QiLCJ1c2VyTWF5Vmlld0NsaXAiOmZhbHNlLCJjbGlja0FjdGlvbkRlc2NyaXB0aW9uIjoiVmlldyB3aXRoIHBsYXllciIsImlzSGlnaGxpZ2h0ZWQiOmZhbHNlLCJuYW1lIjoiYWdpbGUtcmVxdWlyZW1lbnRzLXByb2Nlc3MtaWRlYS10by1taW5pbXVtLXZpYWJsZS1wcm9kdWN0LW01LTA2IiwiaXNCb29rbWFya2VkIjpmYWxzZSwiaGFzQmVlblZpZXdlZEltYWdlVXJsIjoiY3MvaGFzLW5vdC1iZWVuLXZpZXdlZC1jaGVja21hcmstMTUtdjEucG5nIiwiaGFzQmVlblZpZXdlZEFsdFRleHQiOiJZb3UgaGF2ZSBub3Qgd2F0Y2hlZCB0aGlzIENsaXAuIn1dLCJoYXNCZWVuVmlld2VkSW1hZ2VVcmwiOiJjcy9oYXMtbm90LWJlZW4tdmlld2VkLWNoZWNrbWFyay0xNS12MS5wbmciLCJoYXNCZWVuVmlld2VkQWx0VGV4dCI6IllvdSBoYXZlIG5vdCB3YXRjaGVkIHRoaXMgTW9kdWxlLiJ9XQ==
[download] Downloading playlist: Agile Requirements Process: From Idea to Minimum Viable Product
[pluralsight:course] playlist Agile Requirements Process: From Idea to Minimum Viable Product: Collected 38 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[pluralsight] Downloading login page
[pluralsight] Dumping request to https://app.pluralsight.com/id/
PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCjxoZWFkPg0KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij53aW5kb3cuTlJFVU18fChOUkVVTT17fSk7TlJFVU0uaW5mbyA9IHsiYmVhY29uIjoiYmFtLm5yLWRhdGEubmV0IiwiZXJyb3JCZWFjb24iOiJiYW0ubnItZGF0YS5uZXQiLCJsaWNlbnNlS2V5IjoiMjcwMGFmOGEzYyIsImFwcGxpY2F0aW9uSUQiOiI4Mjk1NzM1IiwidHJhbnNhY3Rpb25OYW1lIjoiWjFaUk4wRURDRU1EQUJWWVdsNGNmalZ3VFRWWkJRMG9YM1pmWFVjUlhBNEtWUkJNS0Y5UlZVcz0iLCJxdWV1ZVRpbWUiOjAsImFwcGxpY2F0aW9uVGltZSI6OCwidHRHdWlkIjoiQkQ5NzQ2NzYxMEM3NUNGNSIsImFnZW50IjoiIn08L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+KHdpbmRvdy5OUkVVTXx8KE5SRVVNPXt9KSkubG9hZGVyX2NvbmZpZz17eHBpZDoiVndVR1ZsNVZHd3NDWFZSVkJBUT0ifTt3aW5kb3cuTlJFVU18fChOUkVVTT17fSksX19ucl9yZXF1aXJlPWZ1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKG4pe2lmKCFlW25dKXt2YXIgbz1lW25dPXtleHBvcnRzOnt9fTt0W25dWzBdLmNhbGwoby5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBvPXRbbl1bMV1bZV07cmV0dXJuIHIob3x8ZSl9LG8sby5leHBvcnRzKX1yZXR1cm4gZVtuXS5leHBvcnRzfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBfX25yX3JlcXVpcmUpcmV0dXJuIF9fbnJfcmVxdWlyZTtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKylyKG5bb10pO3JldHVybiByfSh7MTpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCl7dHJ5e3MuY29uc29sZSYmY29uc29sZS5sb2codCl9Y2F0Y2goZSl7fX12YXIgbyxpPXQoImVlIiksYT10KDE1KSxzPXt9O3RyeXtvPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJfX25yX2ZsYWdzIikuc3BsaXQoIiwiKSxjb25zb2xlJiYiZnVuY3Rpb24iPT10eXBlb2YgY29uc29sZS5sb2cmJihzLmNvbnNvbGU9ITAsby5pbmRleE9mKCJkZXYiKSE9PS0xJiYocy5kZXY9ITApLG8uaW5kZXhPZigibnJfZGV2IikhPT0tMSYmKHMubnJEZXY9ITApKX1jYXRjaChjKXt9cy5uckRldiYmaS5vbigiaW50ZXJuYWwtZXJyb3IiLGZ1bmN0aW9uKHQpe3IodC5zdGFjayl9KSxzLmRldiYmaS5vbigiZm4tZXJyIixmdW5jdGlvbih0LGUsbil7cihuLnN0YWNrKX0pLHMuZGV2JiYocigiTlIgQUdFTlQgSU4gREVWRUxPUE1FTlQgTU9ERSIpLHIoImZsYWdzOiAiK2EocyxmdW5jdGlvbih0LGUpe3JldHVybiB0fSkuam9pbigiLCAiKSkpfSx7fV0sMjpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlLG4scixvKXt0cnl7ZD9kLT0xOmkoImVyciIsW298fG5ldyBVbmNhdWdodEV4Y2VwdGlvbih0LGUsbildKX1jYXRjaChzKXt0cnl7aSgiaWVyciIsW3MsKG5ldyBEYXRlKS5nZXRUaW1lKCksITBdKX1jYXRjaChjKXt9fXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBmJiZmLmFwcGx5KHRoaXMsYShhcmd1bWVudHMpKX1mdW5jdGlvbiBVbmNhdWdodEV4Y2VwdGlvbih0LGUsbil7dGhpcy5tZXNzYWdlPXR8fCJVbmNhdWdodCBlcnJvciB3aXRoIG5vIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24iLHRoaXMuc291cmNlVVJMPWUsdGhpcy5saW5lPW59ZnVuY3Rpb24gbyh0KXtpKCJlcnIiLFt0LChuZXcgRGF0ZSkuZ2V0VGltZSgpXSl9dmFyIGk9dCgiaGFuZGxlIiksYT10KDE2KSxzPXQoImVlIiksYz10KCJsb2FkZXIiKSxmPXdpbmRvdy5vbmVycm9yLHU9ITEsZD0wO2MuZmVhdHVyZXMuZXJyPSEwLHQoMSksd2luZG93Lm9uZXJyb3I9cjt0cnl7dGhyb3cgbmV3IEVycm9yfWNhdGNoKGwpeyJzdGFjayJpbiBsJiYodCg4KSx0KDcpLCJhZGRFdmVudExpc3RlbmVyImluIHdpbmRvdyYmdCg1KSxjLnhocldyYXBwYWJsZSYmdCg5KSx1PSEwKX1zLm9uKCJmbi1zdGFydCIsZnVuY3Rpb24odCxlLG4pe3UmJihkKz0xKX0pLHMub24oImZuLWVyciIsZnVuY3Rpb24odCxlLG4pe3UmJih0aGlzLnRocm93bj0hMCxvKG4pKX0pLHMub24oImZuLWVuZCIsZnVuY3Rpb24oKXt1JiYhdGhpcy50aHJvd24mJmQ+MCYmKGQtPTEpfSkscy5vbigiaW50ZXJuYWwtZXJyb3IiLGZ1bmN0aW9uKHQpe2koImllcnIiLFt0LChuZXcgRGF0ZSkuZ2V0VGltZSgpLCEwXSl9KX0se31dLDM6W2Z1bmN0aW9uKHQsZSxuKXt0KCJsb2FkZXIiKS5mZWF0dXJlcy5pbnM9ITB9LHt9XSw0OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXt9aWYod2luZG93LnBlcmZvcm1hbmNlJiZ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nJiZ3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSl7dmFyIG89dCgiZWUiKSxpPXQoImhhbmRsZSIpLGE9dCg4KSxzPXQoNyksYz0ibGVhclJlc291cmNlVGltaW5ncyIsZj0iYWRkRXZlbnRMaXN0ZW5lciIsdT0icmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIixkPSJic3RSZXNvdXJjZSIsbD0icmVzb3VyY2UiLHA9Ii1zdGFydCIsaD0iLWVuZCIsbT0iZm4iK3Asdz0iZm4iK2gsdj0iYnN0VGltZXIiLHk9InB1c2hTdGF0ZSI7dCgibG9hZGVyIikuZmVhdHVyZXMuc3RuPSEwLHQoNik7dmFyIGc9TlJFVU0uby5FVjtvLm9uKG0sZnVuY3Rpb24odCxlKXt2YXIgbj10WzBdO24gaW5zdGFuY2VvZiBnJiYodGhpcy5ic3RTdGFydD1EYXRlLm5vdygpKX0pLG8ub24odyxmdW5jdGlvbih0LGUpe3ZhciBuPXRbMF07biBpbnN0YW5jZW9mIGcmJmkoImJzdCIsW24sZSx0aGlzLmJzdFN0YXJ0LERhdGUubm93KCldKX0pLGEub24obSxmdW5jdGlvbih0LGUsbil7dGhpcy5ic3RTdGFydD1EYXRlLm5vdygpLHRoaXMuYnN0VHlwZT1ufSksYS5vbih3LGZ1bmN0aW9uKHQsZSl7aSh2LFtlLHRoaXMuYnN0U3RhcnQsRGF0ZS5ub3coKSx0aGlzLmJzdFR5cGVdKX0pLHMub24obSxmdW5jdGlvbigpe3RoaXMuYnN0U3RhcnQ9RGF0ZS5ub3coKX0pLHMub24odyxmdW5jdGlvbih0LGUpe2kodixbZSx0aGlzLmJzdFN0YXJ0LERhdGUubm93KCksInJlcXVlc3RBbmltYXRpb25GcmFtZSJdKX0pLG8ub24oeStwLGZ1bmN0aW9uKHQpe3RoaXMudGltZT1EYXRlLm5vdygpLHRoaXMuc3RhcnRQYXRoPWxvY2F0aW9uLnBhdGhuYW1lK2xvY2F0aW9uLmhhc2h9KSxvLm9uKHkraCxmdW5jdGlvbih0KXtpKCJic3RIaXN0IixbbG9jYXRpb24ucGF0aG5hbWUrbG9jYXRpb24uaGFzaCx0aGlzLnN0YXJ0UGF0aCx0aGlzLnRpbWVdKX0pLGYgaW4gd2luZG93LnBlcmZvcm1hbmNlJiYod2luZG93LnBlcmZvcm1hbmNlWyJjIitjXT93aW5kb3cucGVyZm9ybWFuY2VbZl0odSxmdW5jdGlvbih0KXtpKGQsW3dpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKGwpXSksd2luZG93LnBlcmZvcm1hbmNlWyJjIitjXSgpfSwhMSk6d2luZG93LnBlcmZvcm1hbmNlW2ZdKCJ3ZWJraXQiK3UsZnVuY3Rpb24odCl7aShkLFt3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShsKV0pLHdpbmRvdy5wZXJmb3JtYW5jZVsid2Via2l0QyIrY10oKX0sITEpKSxkb2N1bWVudFtmXSgic2Nyb2xsIixyLCExKSxkb2N1bWVudFtmXSgia2V5cHJlc3MiLHIsITEpLGRvY3VtZW50W2ZdKCJjbGljayIsciwhMSl9fSx7fV0sNTpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCl7Zm9yKHZhciBlPXQ7ZSYmIWUuaGFzT3duUHJvcGVydHkodSk7KWU9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO2UmJm8oZSl9ZnVuY3Rpb24gbyh0KXtzLmluUGxhY2UodCxbdSxkXSwiLSIsaSl9ZnVuY3Rpb24gaSh0LGUpe3JldHVybiB0WzFdfXZhciBhPXQoImVlIikuZ2V0KCJldmVudHMiKSxzPXQoMTcpKGEpLGM9dCgiZ29zIiksZj1YTUxIdHRwUmVxdWVzdCx1PSJhZGRFdmVudExpc3RlbmVyIixkPSJyZW1vdmVFdmVudExpc3RlbmVyIjtlLmV4cG9ydHM9YSwiZ2V0UHJvdG90eXBlT2YiaW4gT2JqZWN0PyhyKGRvY3VtZW50KSxyKHdpbmRvdykscihmLnByb3RvdHlwZSkpOmYucHJvdG90eXBlLmhhc093blByb3BlcnR5KHUpJiYobyh3aW5kb3cpLG8oZi5wcm90b3R5cGUpKSxhLm9uKHUrIi1zdGFydCIsZnVuY3Rpb24odCxlKXtpZih0WzFdKXt2YXIgbj10WzFdO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuKXt2YXIgcj1jKG4sIm5yQHdyYXBwZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHMobiwiZm4tIixudWxsLG4ubmFtZXx8ImFub255bW91cyIpfSk7dGhpcy53cmFwcGVkPXRbMV09cn1lbHNlImZ1bmN0aW9uIj09dHlwZW9mIG4uaGFuZGxlRXZlbnQmJnMuaW5QbGFjZShuLFsiaGFuZGxlRXZlbnQiXSwiZm4tIil9fSksYS5vbihkKyItc3RhcnQiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMud3JhcHBlZDtlJiYodFsxXT1lKX0pfSx7fV0sNjpbZnVuY3Rpb24odCxlLG4pe3ZhciByPXQoImVlIikuZ2V0KCJoaXN0b3J5Iiksbz10KDE3KShyKTtlLmV4cG9ydHM9cixvLmluUGxhY2Uod2luZG93Lmhpc3RvcnksWyJwdXNoU3RhdGUiLCJyZXBsYWNlU3RhdGUiXSwiLSIpfSx7fV0sNzpbZnVuY3Rpb24odCxlLG4pe3ZhciByPXQoImVlIikuZ2V0KCJyYWYiKSxvPXQoMTcpKHIpLGk9ImVxdWVzdEFuaW1hdGlvbkZyYW1lIjtlLmV4cG9ydHM9cixvLmluUGxhY2Uod2luZG93LFsiciIraSwibW96UiIraSwid2Via2l0UiIraSwibXNSIitpXSwicmFmLSIpLHIub24oInJhZi1zdGFydCIsZnVuY3Rpb24odCl7dFswXT1vKHRbMF0sImZuLSIpfSl9LHt9XSw4OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUsbil7dFswXT1hKHRbMF0sImZuLSIsbnVsbCxuKX1mdW5jdGlvbiBvKHQsZSxuKXt0aGlzLm1ldGhvZD1uLHRoaXMudGltZXJEdXJhdGlvbj0ibnVtYmVyIj09dHlwZW9mIHRbMV0/dFsxXTowLHRbMF09YSh0WzBdLCJmbi0iLHRoaXMsbil9dmFyIGk9dCgiZWUiKS5nZXQoInRpbWVyIiksYT10KDE3KShpKSxzPSJzZXRUaW1lb3V0IixjPSJzZXRJbnRlcnZhbCIsZj0iY2xlYXJUaW1lb3V0Iix1PSItc3RhcnQiLGQ9Ii0iO2UuZXhwb3J0cz1pLGEuaW5QbGFjZSh3aW5kb3csW3MsInNldEltbWVkaWF0ZSJdLHMrZCksYS5pblBsYWNlKHdpbmRvdyxbY10sYytkKSxhLmluUGxhY2Uod2luZG93LFtmLCJjbGVhckltbWVkaWF0ZSJdLGYrZCksaS5vbihjK3UsciksaS5vbihzK3Usbyl9LHt9XSw5OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUpe2QuaW5QbGFjZShlLFsib25yZWFkeXN0YXRlY2hhbmdlIl0sImZuLSIscyl9ZnVuY3Rpb24gbygpe3ZhciB0PXRoaXMsZT11LmNvbnRleHQodCk7dC5yZWFkeVN0YXRlPjMmJiFlLnJlc29sdmVkJiYoZS5yZXNvbHZlZD0hMCx1LmVtaXQoInhoci1yZXNvbHZlZCIsW10sdCkpLGQuaW5QbGFjZSh0LHcsImZuLSIscyl9ZnVuY3Rpb24gaSh0KXt2LnB1c2godCksaCYmKGc9LWcsYi5kYXRhPWcpfWZ1bmN0aW9uIGEoKXtmb3IodmFyIHQ9MDt0PHYubGVuZ3RoO3QrKylyKFtdLHZbdF0pO3YubGVuZ3RoJiYodj1bXSl9ZnVuY3Rpb24gcyh0LGUpe3JldHVybiBlfWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIG4gaW4gdCllW25dPXRbbl07cmV0dXJuIGV9dCg1KTt2YXIgZj10KCJlZSIpLHU9Zi5nZXQoInhociIpLGQ9dCgxNykodSksbD1OUkVVTS5vLHA9bC5YSFIsaD1sLk1PLG09InJlYWR5c3RhdGVjaGFuZ2UiLHc9WyJvbmxvYWQiLCJvbmVycm9yIiwib25hYm9ydCIsIm9ubG9hZHN0YXJ0Iiwib25sb2FkZW5kIiwib25wcm9ncmVzcyIsIm9udGltZW91dCJdLHY9W107ZS5leHBvcnRzPXU7dmFyIHk9d2luZG93LlhNTEh0dHBSZXF1ZXN0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBwKHQpO3RyeXt1LmVtaXQoIm5ldy14aHIiLFtlXSxlKSxlLmFkZEV2ZW50TGlzdGVuZXIobSxvLCExKX1jYXRjaChuKXt0cnl7dS5lbWl0KCJpbnRlcm5hbC1lcnJvciIsW25dKX1jYXRjaChyKXt9fXJldHVybiBlfTtpZihjKHAseSkseS5wcm90b3R5cGU9cC5wcm90b3R5cGUsZC5pblBsYWNlKHkucHJvdG90eXBlLFsib3BlbiIsInNlbmQiXSwiLXhoci0iLHMpLHUub24oInNlbmQteGhyLXN0YXJ0IixmdW5jdGlvbih0LGUpe3IodCxlKSxpKGUpfSksdS5vbigib3Blbi14aHItc3RhcnQiLHIpLGgpe3ZhciBnPTEsYj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnKTtuZXcgaChhKS5vYnNlcnZlKGIse2NoYXJhY3RlckRhdGE6ITB9KX1lbHNlIGYub24oImZuLWVuZCIsZnVuY3Rpb24odCl7dFswXSYmdFswXS50eXBlPT09bXx8YSgpfSl9LHt9XSwxMDpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCl7dmFyIGU9dGhpcy5wYXJhbXMsbj10aGlzLm1ldHJpY3M7aWYoIXRoaXMuZW5kZWQpe3RoaXMuZW5kZWQ9ITA7Zm9yKHZhciByPTA7cjxkO3IrKyl0LnJlbW92ZUV2ZW50TGlzdGVuZXIodVtyXSx0aGlzLmxpc3RlbmVyLCExKTtpZighZS5hYm9ydGVkKXtpZihuLmR1cmF0aW9uPShuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuc3RhcnRUaW1lLDQ9PT10LnJlYWR5U3RhdGUpe2Uuc3RhdHVzPXQuc3RhdHVzO3ZhciBpPW8odCx0aGlzLmxhc3RTaXplKTtpZihpJiYobi5yeFNpemU9aSksdGhpcy5zYW1lT3JpZ2luKXt2YXIgYT10LmdldFJlc3BvbnNlSGVhZGVyKCJYLU5ld1JlbGljLUFwcC1EYXRhIik7YSYmKGUuY2F0PWEuc3BsaXQoIiwgIikucG9wKCkpfX1lbHNlIGUuc3RhdHVzPTA7bi5jYlRpbWU9dGhpcy5jYlRpbWUsZi5lbWl0KCJ4aHItZG9uZSIsW3RdLHQpLHMoInhociIsW2Usbix0aGlzLnN0YXJ0VGltZV0pfX19ZnVuY3Rpb24gbyh0LGUpe3ZhciBuPXQucmVzcG9uc2VUeXBlO2lmKCJqc29uIj09PW4mJm51bGwhPT1lKXJldHVybiBlO3ZhciByPSJhcnJheWJ1ZmZlciI9PT1ufHwiYmxvYiI9PT1ufHwianNvbiI9PT1uP3QucmVzcG9uc2U6dC5yZXNwb25zZVRleHQ7cmV0dXJuIGgocil9ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPWMoZSkscj10LnBhcmFtcztyLmhvc3Q9bi5ob3N0bmFtZSsiOiIrbi5wb3J0LHIucGF0aG5hbWU9bi5wYXRobmFtZSx0LnNhbWVPcmlnaW49bi5zYW1lT3JpZ2lufXZhciBhPXQoImxvYWRlciIpO2lmKGEueGhyV3JhcHBhYmxlKXt2YXIgcz10KCJoYW5kbGUiKSxjPXQoMTEpLGY9dCgiZWUiKSx1PVsibG9hZCIsImVycm9yIiwiYWJvcnQiLCJ0aW1lb3V0Il0sZD11Lmxlbmd0aCxsPXQoImlkIikscD10KDE0KSxoPXQoMTMpLG09d2luZG93LlhNTEh0dHBSZXF1ZXN0O2EuZmVhdHVyZXMueGhyPSEwLHQoOSksZi5vbigibmV3LXhociIsZnVuY3Rpb24odCl7dmFyIGU9dGhpcztlLnRvdGFsQ2JzPTAsZS5jYWxsZWQ9MCxlLmNiVGltZT0wLGUuZW5kPXIsZS5lbmRlZD0hMSxlLnhockd1aWRzPXt9LGUubGFzdFNpemU9bnVsbCxwJiYocD4zNHx8cDwxMCl8fHdpbmRvdy5vcGVyYXx8dC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZnVuY3Rpb24odCl7ZS5sYXN0U2l6ZT10LmxvYWRlZH0sITEpfSksZi5vbigib3Blbi14aHItc3RhcnQiLGZ1bmN0aW9uKHQpe3RoaXMucGFyYW1zPXttZXRob2Q6dFswXX0saSh0aGlzLHRbMV0pLHRoaXMubWV0cmljcz17fX0pLGYub24oIm9wZW4teGhyLWVuZCIsZnVuY3Rpb24odCxlKXsibG9hZGVyX2NvbmZpZyJpbiBOUkVVTSYmInhwaWQiaW4gTlJFVU0ubG9hZGVyX2NvbmZpZyYmdGhpcy5zYW1lT3JpZ2luJiZlLnNldFJlcXVlc3RIZWFkZXIoIlgtTmV3UmVsaWMtSUQiLE5SRVVNLmxvYWRlcl9jb25maWcueHBpZCl9KSxmLm9uKCJzZW5kLXhoci1zdGFydCIsZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLm1ldHJpY3Mscj10WzBdLG89dGhpcztpZihuJiZyKXt2YXIgaT1oKHIpO2kmJihuLnR4U2l6ZT1pKX10aGlzLnN0YXJ0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLmxpc3RlbmVyPWZ1bmN0aW9uKHQpe3RyeXsiYWJvcnQiPT09dC50eXBlJiYoby5wYXJhbXMuYWJvcnRlZD0hMCksKCJsb2FkIiE9PXQudHlwZXx8by5jYWxsZWQ9PT1vLnRvdGFsQ2JzJiYoby5vbmxvYWRDYWxsZWR8fCJmdW5jdGlvbiIhPXR5cGVvZiBlLm9ubG9hZCkpJiZvLmVuZChlKX1jYXRjaChuKXt0cnl7Zi5lbWl0KCJpbnRlcm5hbC1lcnJvciIsW25dKX1jYXRjaChyKXt9fX07Zm9yKHZhciBhPTA7YTxkO2ErKyllLmFkZEV2ZW50TGlzdGVuZXIodVthXSx0aGlzLmxpc3RlbmVyLCExKX0pLGYub24oInhoci1jYi10aW1lIixmdW5jdGlvbih0LGUsbil7dGhpcy5jYlRpbWUrPXQsZT90aGlzLm9ubG9hZENhbGxlZD0hMDp0aGlzLmNhbGxlZCs9MSx0aGlzLmNhbGxlZCE9PXRoaXMudG90YWxDYnN8fCF0aGlzLm9ubG9hZENhbGxlZCYmImZ1bmN0aW9uIj09dHlwZW9mIG4ub25sb2FkfHx0aGlzLmVuZChuKX0pLGYub24oInhoci1sb2FkLWFkZGVkIixmdW5jdGlvbih0LGUpe3ZhciBuPSIiK2wodCkrISFlO3RoaXMueGhyR3VpZHMmJiF0aGlzLnhockd1aWRzW25dJiYodGhpcy54aHJHdWlkc1tuXT0hMCx0aGlzLnRvdGFsQ2JzKz0xKX0pLGYub24oInhoci1sb2FkLXJlbW92ZWQiLGZ1bmN0aW9uKHQsZSl7dmFyIG49IiIrbCh0KSshIWU7dGhpcy54aHJHdWlkcyYmdGhpcy54aHJHdWlkc1tuXSYmKGRlbGV0ZSB0aGlzLnhockd1aWRzW25dLHRoaXMudG90YWxDYnMtPTEpfSksZi5vbigiYWRkRXZlbnRMaXN0ZW5lci1lbmQiLGZ1bmN0aW9uKHQsZSl7ZSBpbnN0YW5jZW9mIG0mJiJsb2FkIj09PXRbMF0mJmYuZW1pdCgieGhyLWxvYWQtYWRkZWQiLFt0WzFdLHRbMl1dLGUpfSksZi5vbigicmVtb3ZlRXZlbnRMaXN0ZW5lci1lbmQiLGZ1bmN0aW9uKHQsZSl7ZSBpbnN0YW5jZW9mIG0mJiJsb2FkIj09PXRbMF0mJmYuZW1pdCgieGhyLWxvYWQtcmVtb3ZlZCIsW3RbMV0sdFsyXV0sZSl9KSxmLm9uKCJmbi1zdGFydCIsZnVuY3Rpb24odCxlLG4pe2UgaW5zdGFuY2VvZiBtJiYoIm9ubG9hZCI9PT1uJiYodGhpcy5vbmxvYWQ9ITApLCgibG9hZCI9PT0odFswXSYmdFswXS50eXBlKXx8dGhpcy5vbmxvYWQpJiYodGhpcy54aHJDYlN0YXJ0PShuZXcgRGF0ZSkuZ2V0VGltZSgpKSl9KSxmLm9uKCJmbi1lbmQiLGZ1bmN0aW9uKHQsZSl7dGhpcy54aHJDYlN0YXJ0JiZmLmVtaXQoInhoci1jYi10aW1lIixbKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy54aHJDYlN0YXJ0LHRoaXMub25sb2FkLGVdLGUpfSl9fSx7fV0sMTE6W2Z1bmN0aW9uKHQsZSxuKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLG49d2luZG93LmxvY2F0aW9uLHI9e307ZS5ocmVmPXQsci5wb3J0PWUucG9ydDt2YXIgbz1lLmhyZWYuc3BsaXQoIjovLyIpOyFyLnBvcnQmJm9bMV0mJihyLnBvcnQ9b1sxXS5zcGxpdCgiLyIpWzBdLnNwbGl0KCJAIikucG9wKCkuc3BsaXQoIjoiKVsxXSksci5wb3J0JiYiMCIhPT1yLnBvcnR8fChyLnBvcnQ9Imh0dHBzIj09PW9bMF0/IjQ0MyI6IjgwIiksci5ob3N0bmFtZT1lLmhvc3RuYW1lfHxuLmhvc3RuYW1lLHIucGF0aG5hbWU9ZS5wYXRobmFtZSxyLnByb3RvY29sPW9bMF0sIi8iIT09ci5wYXRobmFtZS5jaGFyQXQoMCkmJihyLnBhdGhuYW1lPSIvIityLnBhdGhuYW1lKTt2YXIgaT0hZS5wcm90b2NvbHx8IjoiPT09ZS5wcm90b2NvbHx8ZS5wcm90b2NvbD09PW4ucHJvdG9jb2wsYT1lLmhvc3RuYW1lPT09ZG9jdW1lbnQuZG9tYWluJiZlLnBvcnQ9PT1uLnBvcnQ7cmV0dXJuIHIuc2FtZU9yaWdpbj1pJiYoIWUuaG9zdG5hbWV8fGEpLHJ9fSx7fV0sMTI6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKCl7fWZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBpKHQsWyhuZXcgRGF0ZSkuZ2V0VGltZSgpXS5jb25jYXQocyhhcmd1bWVudHMpKSxlP251bGw6dGhpcyxuKSxlP3ZvaWQgMDp0aGlzfX12YXIgaT10KCJoYW5kbGUiKSxhPXQoMTUpLHM9dCgxNiksYz10KCJlZSIpLmdldCgidHJhY2VyIiksZj1OUkVVTTsidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5uZXdyZWxpYyYmKG5ld3JlbGljPWYpO3ZhciB1PVsic2V0UGFnZVZpZXdOYW1lIiwic2V0Q3VzdG9tQXR0cmlidXRlIiwic2V0RXJyb3JIYW5kbGVyIiwiZmluaXNoZWQiLCJhZGRUb1RyYWNlIiwiaW5saW5lSGl0Il0sZD0iYXBpLSIsbD1kKyJpeG4tIjthKHUsZnVuY3Rpb24odCxlKXtmW2VdPW8oZCtlLCEwLCJhcGkiKX0pLGYuYWRkUGFnZUFjdGlvbj1vKGQrImFkZFBhZ2VBY3Rpb24iLCEwKSxlLmV4cG9ydHM9bmV3cmVsaWMsZi5pbnRlcmFjdGlvbj1mdW5jdGlvbigpe3JldHVybihuZXcgcikuZ2V0KCl9O3ZhciBwPXIucHJvdG90eXBlPXtjcmVhdGVUcmFjZXI6ZnVuY3Rpb24odCxlKXt2YXIgbj17fSxyPXRoaXMsbz0iZnVuY3Rpb24iPT10eXBlb2YgZTtyZXR1cm4gaShsKyJ0cmFjZXIiLFtEYXRlLm5vdygpLHQsbl0sciksZnVuY3Rpb24oKXtpZihjLmVtaXQoKG8/IiI6Im5vLSIpKyJmbi1zdGFydCIsW0RhdGUubm93KCkscixvXSxuKSxvKXRyeXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtjLmVtaXQoImZuLWVuZCIsW0RhdGUubm93KCldLG4pfX19fTthKCJzZXROYW1lLHNldEF0dHJpYnV0ZSxzYXZlLGlnbm9yZSxvbkVuZCxnZXRDb250ZXh0LGVuZCxnZXQiLnNwbGl0KCIsIiksZnVuY3Rpb24odCxlKXtwW2VdPW8obCtlKX0pLG5ld3JlbGljLm5vdGljZUVycm9yPWZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9bmV3IEVycm9yKHQpKSxpKCJlcnIiLFt0LChuZXcgRGF0ZSkuZ2V0VGltZSgpXSl9fSx7fV0sMTM6W2Z1bmN0aW9uKHQsZSxuKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0Lmxlbmd0aClyZXR1cm4gdC5sZW5ndGg7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZ0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJnQuYnl0ZUxlbmd0aClyZXR1cm4gdC5ieXRlTGVuZ3RoO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQmxvYiYmdCBpbnN0YW5jZW9mIEJsb2ImJnQuc2l6ZSlyZXR1cm4gdC5zaXplO2lmKCEoInVuZGVmaW5lZCIhPXR5cGVvZiBGb3JtRGF0YSYmdCBpbnN0YW5jZW9mIEZvcm1EYXRhKSl0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpLmxlbmd0aH1jYXRjaChlKXtyZXR1cm59fX19LHt9XSwxNDpbZnVuY3Rpb24odCxlLG4pe3ZhciByPTAsbz1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9GaXJlZm94W1wvXHNdKFxkK1wuXGQrKS8pO28mJihyPStvWzFdKSxlLmV4cG9ydHM9cn0se31dLDE1OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUpe3ZhciBuPVtdLHI9IiIsaT0wO2ZvcihyIGluIHQpby5jYWxsKHQscikmJihuW2ldPWUocix0W3JdKSxpKz0xKTtyZXR1cm4gbn12YXIgbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2UuZXhwb3J0cz1yfSx7fV0sMTY6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSxuKXtlfHwoZT0wKSwidW5kZWZpbmVkIj09dHlwZW9mIG4mJihuPXQ/dC5sZW5ndGg6MCk7Zm9yKHZhciByPS0xLG89bi1lfHwwLGk9QXJyYXkobzwwPzA6byk7KytyPG87KWlbcl09dFtlK3JdO3JldHVybiBpfWUuZXhwb3J0cz1yfSx7fV0sMTc6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe3JldHVybiEodCYmImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuYXBwbHkmJiF0W2FdKX12YXIgbz10KCJlZSIpLGk9dCgxNiksYT0ibnJAb3JpZ2luYWwiLHM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxjPSExO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSxuLG8pe2Z1bmN0aW9uIG5yV3JhcHBlcigpe3ZhciByLGEscyxjO3RyeXthPXRoaXMscj1pKGFyZ3VtZW50cykscz0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uKHIsYSk6bnx8e319Y2F0Y2godSl7ZChbdSwiIixbcixhLG9dLHNdKX1mKGUrInN0YXJ0IixbcixhLG9dLHMpO3RyeXtyZXR1cm4gYz10LmFwcGx5KGEscil9Y2F0Y2gobCl7dGhyb3cgZihlKyJlcnIiLFtyLGEsbF0scyksbH1maW5hbGx5e2YoZSsiZW5kIixbcixhLGNdLHMpfX1yZXR1cm4gcih0KT90OihlfHwoZT0iIiksbnJXcmFwcGVyW2FdPXQsdSh0LG5yV3JhcHBlciksbnJXcmFwcGVyKX1mdW5jdGlvbiBuKHQsbixvLGkpe298fChvPSIiKTt2YXIgYSxzLGMsZj0iLSI9PT1vLmNoYXJBdCgwKTtmb3IoYz0wO2M8bi5sZW5ndGg7YysrKXM9bltjXSxhPXRbc10scihhKXx8KHRbc109ZShhLGY/cytvOm8saSxzKSl9ZnVuY3Rpb24gZihlLG4scil7aWYoIWMpe2M9ITA7dHJ5e3QuZW1pdChlLG4scil9Y2F0Y2gobyl7ZChbbyxlLG4scl0pfWM9ITF9fWZ1bmN0aW9uIHUodCxlKXtpZihPYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5rZXlzKXRyeXt2YXIgbj1PYmplY3Qua2V5cyh0KTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2dldDpmdW5jdGlvbigpe3JldHVybiB0W25dfSxzZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHRbbl09ZSxlfX0pfSksZX1jYXRjaChyKXtkKFtyXSl9Zm9yKHZhciBvIGluIHQpcy5jYWxsKHQsbykmJihlW29dPXRbb10pO3JldHVybiBlfWZ1bmN0aW9uIGQoZSl7dHJ5e3QuZW1pdCgiaW50ZXJuYWwtZXJyb3IiLGUpfWNhdGNoKG4pe319cmV0dXJuIHR8fCh0PW8pLGUuaW5QbGFjZT1uLGUuZmxhZz1hLGV9fSx7fV0sZWU6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKCl7fWZ1bmN0aW9uIG8odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCYmdCBpbnN0YW5jZW9mIHI/dDp0P3ModCxhLGkpOmkoKX1mdW5jdGlvbiBuKG4scixvKXt0JiZ0KG4scixvKTtmb3IodmFyIGk9ZShvKSxhPWwobikscz1hLmxlbmd0aCxjPTA7YzxzO2MrKylhW2NdLmFwcGx5KGkscik7dmFyIHU9Zlt3W25dXTtyZXR1cm4gdSYmdS5wdXNoKFt2LG4scixpXSksaX1mdW5jdGlvbiBkKHQsZSl7bVt0XT1sKHQpLmNvbmNhdChlKX1mdW5jdGlvbiBsKHQpe3JldHVybiBtW3RdfHxbXX1mdW5jdGlvbiBwKHQpe3JldHVybiB1W3RdPXVbdF18fG8obil9ZnVuY3Rpb24gaCh0LGUpe2ModCxmdW5jdGlvbih0LG4pe2U9ZXx8ImZlYXR1cmUiLHdbbl09ZSxlIGluIGZ8fChmW2VdPVtdKX0pfXZhciBtPXt9LHc9e30sdj17b246ZCxlbWl0Om4sZ2V0OnAsbGlzdGVuZXJzOmwsY29udGV4dDplLGJ1ZmZlcjpofTtyZXR1cm4gdn1mdW5jdGlvbiBpKCl7cmV0dXJuIG5ldyByfXZhciBhPSJuckBjb250ZXh0IixzPXQoImdvcyIpLGM9dCgxNSksZj17fSx1PXt9LGQ9ZS5leHBvcnRzPW8oKTtkLmJhY2tsb2c9Zn0se31dLGdvczpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlLG4pe2lmKG8uY2FsbCh0LGUpKXJldHVybiB0W2VdO3ZhciByPW4oKTtpZihPYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5rZXlzKXRyeXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6cix3cml0YWJsZTohMCxlbnVtZXJhYmxlOiExfSkscn1jYXRjaChpKXt9cmV0dXJuIHRbZV09cixyfXZhciBvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZS5leHBvcnRzPXJ9LHt9XSxoYW5kbGU6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSxuLHIpe28uYnVmZmVyKFt0XSxyKSxvLmVtaXQodCxlLG4pfXZhciBvPXQoImVlIikuZ2V0KCJoYW5kbGUiKTtlLmV4cG9ydHM9cixyLmVlPW99LHt9XSxpZDpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIXR8fCJvYmplY3QiIT09ZSYmImZ1bmN0aW9uIiE9PWU/LTE6dD09PXdpbmRvdz8wOmEodCxpLGZ1bmN0aW9uKCl7cmV0dXJuIG8rK30pfXZhciBvPTEsaT0ibnJAaWQiLGE9dCgiZ29zIik7ZS5leHBvcnRzPXJ9LHt9XSxsb2FkZXI6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKCl7aWYoIWcrKyl7dmFyIHQ9eS5pbmZvPU5SRVVNLmluZm8sZT11LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTtpZih0JiZ0LmxpY2Vuc2VLZXkmJnQuYXBwbGljYXRpb25JRCYmZSl7Yyh3LGZ1bmN0aW9uKGUsbil7dFtlXXx8KHRbZV09bil9KTt2YXIgbj0iaHR0cHMiPT09bS5zcGxpdCgiOiIpWzBdfHx0LnNzbEZvckh0dHA7eS5wcm90bz1uPyJodHRwczovLyI6Imh0dHA6Ly8iLHMoIm1hcmsiLFsib25sb2FkIixhKCldLG51bGwsImFwaSIpO3ZhciByPXUuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ci5zcmM9eS5wcm90byt0LmFnZW50LGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocixlKX19fWZ1bmN0aW9uIG8oKXsiY29tcGxldGUiPT09dS5yZWFkeVN0YXRlJiZpKCl9ZnVuY3Rpb24gaSgpe3MoIm1hcmsiLFsiZG9tQ29udGVudCIsYSgpXSxudWxsLCJhcGkiKX1mdW5jdGlvbiBhKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9dmFyIHM9dCgiaGFuZGxlIiksYz10KDE1KSxmPXdpbmRvdyx1PWYuZG9jdW1lbnQsZD0iYWRkRXZlbnRMaXN0ZW5lciIsbD0iYXR0YWNoRXZlbnQiLHA9Zi5YTUxIdHRwUmVxdWVzdCxoPXAmJnAucHJvdG90eXBlO05SRVVNLm89e1NUOnNldFRpbWVvdXQsQ1Q6Y2xlYXJUaW1lb3V0LFhIUjpwLFJFUTpmLlJlcXVlc3QsRVY6Zi5FdmVudCxQUjpmLlByb21pc2UsTU86Zi5NdXRhdGlvbk9ic2VydmVyfSx0KDEyKTt2YXIgbT0iIitsb2NhdGlvbix3PXtiZWFjb246ImJhbS5uci1kYXRhLm5ldCIsZXJyb3JCZWFjb246ImJhbS5uci1kYXRhLm5ldCIsYWdlbnQ6ImpzLWFnZW50Lm5ld3JlbGljLmNvbS9uci05NzQubWluLmpzIn0sdj1wJiZoJiZoW2RdJiYhL0NyaU9TLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHk9ZS5leHBvcnRzPXtvZmZzZXQ6YSgpLG9yaWdpbjptLGZlYXR1cmVzOnt9LHhocldyYXBwYWJsZTp2fTt1W2RdPyh1W2RdKCJET01Db250ZW50TG9hZGVkIixpLCExKSxmW2RdKCJsb2FkIixyLCExKSk6KHVbbF0oIm9ucmVhZHlzdGF0ZWNoYW5nZSIsbyksZltsXSgib25sb2FkIixyKSkscygibWFyayIsWyJmaXJzdGJ5dGUiLGEoKV0sbnVsbCwiYXBpIik7dmFyIGc9MH0se31dfSx7fSxbImxvYWRlciIsMiwxMCw0LDNdKTs8L3NjcmlwdD4NCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+DQogICAgPHRpdGxlPlNpZ24gSW4gLSBQbHVyYWxzaWdodDwvdGl0bGU+DQogICAgPGxpbmsgaHJlZj0iL2lkL2NvbnRlbnQvZGlzdC9zaXRlLWZkODAxNjA1MWM4YzEzNGU5MDU5LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPg0KICAgIDxzY3JpcHQgc3JjPSIvaWQvc2NyaXB0cy9tb2Rlcm5penItMi42LjIuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgc3JjPSIvaWQvc2NyaXB0cy9qcXVlcnktMS4xMS4zLm1pbi5qcyI+PC9zY3JpcHQ+DQogICAgDQoNCg0KPHNjcmlwdCBzcmM9Ii8vYXNzZXRzLmFkb2JlZHRtLmNvbS8yYzVmMmIzMDc2MmFlNjIzNzc5MTZjMDk2MTJjZDlkNjAwNTRmYmE5L3NhdGVsbGl0ZUxpYi0zZjIwMDFmODgzMTU2MTBkMjk1ZTQ4MjYwN2Y3ZDAwM2M4NjI3ZDA4LmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICAhZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciBhbmFseXRpY3MgPSB3aW5kb3cuYW5hbHl0aWNzID0gd2luZG93LmFuYWx5dGljcyB8fCBbXTsNCiAgICAgICAgaWYgKCFhbmFseXRpY3MuaW5pdGlhbGl6ZSkNCiAgICAgICAgICAgIGlmIChhbmFseXRpY3MuaW52b2tlZCkgd2luZG93LmNvbnNvbGUgJiYgY29uc29sZS5lcnJvciAmJiBjb25zb2xlLmVycm9yKCJTZWdtZW50IHNuaXBwZXQgaW5jbHVkZWQgdHdpY2UuIik7DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbmFseXRpY3MuaW52b2tlZCA9ICEwOw0KICAgICAgICAgICAgICAgIGFuYWx5dGljcy5tZXRob2RzID0gWw0KICAgICAgICAgICAgICAgICAgICAidHJhY2tTdWJtaXQiLCAidHJhY2tDbGljayIsICJ0cmFja0xpbmsiLCAidHJhY2tGb3JtIiwgInBhZ2V2aWV3IiwgImlkZW50aWZ5IiwgImdyb3VwIiwgInRyYWNrIiwNCiAgICAgICAgICAgICAgICAgICAgInJlYWR5IiwgImFsaWFzIiwgInBhZ2UiLCAib25jZSIsICJvZmYiLCAib24iDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICBhbmFseXRpY3MuZmFjdG9yeSA9IGZ1bmN0aW9uKHQpIHsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpOw0KICAgICAgICAgICAgICAgICAgICAgICAgZS51bnNoaWZ0KHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYW5hbHl0aWNzLnB1c2goZSk7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW5hbHl0aWNzOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciB0ID0gMDsgdCA8IGFuYWx5dGljcy5tZXRob2RzLmxlbmd0aDsgdCsrKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBlID0gYW5hbHl0aWNzLm1ldGhvZHNbdF07DQogICAgICAgICAgICAgICAgICAgIGFuYWx5dGljc1tlXSA9IGFuYWx5dGljcy5mYWN0b3J5KGUpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGFuYWx5dGljcy5sb2FkID0gZnVuY3Rpb24odCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOw0KICAgICAgICAgICAgICAgICAgICBlLnR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsNCiAgICAgICAgICAgICAgICAgICAgZS5hc3luYyA9ICEwOw0KICAgICAgICAgICAgICAgICAgICBlLnNyYyA9ICgiaHR0cHM6IiA9PT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wgPyAiaHR0cHM6Ly8iIDogImh0dHA6Ly8iKSArDQogICAgICAgICAgICAgICAgICAgICAgICAiY2RuLnNlZ21lbnQuY29tL2FuYWx5dGljcy5qcy92MS8iICsNCiAgICAgICAgICAgICAgICAgICAgICAgIHQgKw0KICAgICAgICAgICAgICAgICAgICAgICAgIi9hbmFseXRpY3MubWluLmpzIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIG4gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07DQogICAgICAgICAgICAgICAgICAgIG4ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSwgbikNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgIGFuYWx5dGljcy5TTklQUEVUX1ZFUlNJT04gPSAiMy4wLjEiOw0KDQogICAgICAgICAgICB9DQogICAgfSgpOw0KPC9zY3JpcHQ+DQoNCjxzY3JpcHQgc3JjPSIvL3MucGx1cmFsc2lnaHQuY29tL2FuYWx5dGljcy9hbmFseXRpY3MtZmFjYWRlLnYxLjAuMS5qcyI+PC9zY3JpcHQ+DQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICBhbmFseXRpY3NGYWNhZGUuc2V0Q29udGV4dCgnaWRlbnRpdHknKTsNCiAgICBhbmFseXRpY3MubG9hZCgibjJMTGJGSTFNRHhGS0JMekkwZXMyWjdQckRodTZqRUEiKTsNCiAgICBhbmFseXRpY3NGYWNhZGUucGFnZSgpOw0KPC9zY3JpcHQ+DQoNCjwhLS1CRUdJTiBRVUFMVFJJQ1MgU0lURSBJTlRFUkNFUFQtLT4NCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4NCiAgICB2YXIgcXVhbHRyaWNzU2FtcGxlUmF0ZSA9ICIxMDAiOw0KICAgIHZhciBxdWFsdHJpY3Nab25lSWQgPSAiWk5fZUpXNkZ6WHBPQzR6MnNKIjsNCiAgICB2YXIgcXVhbHRyaWNzVXJsID0gIi8vem5lanc2Znp4cG9jNHoyc2otcGx1cmFsc2lnaHQuc2l0ZWludGVyY2VwdC5xdWFsdHJpY3MuY29tL1dSU2l0ZUludGVyY2VwdEVuZ2luZS8/UV9aSUQ9Wk5fZUpXNkZ6WHBPQzR6MnNKJmFtcDtRX0xPQz0iOw0KDQogICAgKGZ1bmN0aW9uKCl7dmFyIGc9ZnVuY3Rpb24oZSxoLGYsZyl7DQogICAgICAgICAgICB0aGlzLmdldD1mdW5jdGlvbihhKXtmb3IodmFyIGE9YSsiPSIsYz1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSxiPTAsZT1jLmxlbmd0aDtiPGU7YisrKXtmb3IodmFyIGQ9Y1tiXTsiICI9PWQuY2hhckF0KDApOylkPWQuc3Vic3RyaW5nKDEsZC5sZW5ndGgpO2lmKDA9PWQuaW5kZXhPZihhKSlyZXR1cm4gZC5zdWJzdHJpbmcoYS5sZW5ndGgsZC5sZW5ndGgpfXJldHVybiBudWxsfTsNCiAgICAgICAgICAgIHRoaXMuc2V0PWZ1bmN0aW9uKGEsYyl7dmFyIGI9IiIsYj1uZXcgRGF0ZTtiLnNldFRpbWUoYi5nZXRUaW1lKCkrNjA0OEU1KTtiPSI7IGV4cGlyZXM9IitiLnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPWErIj0iK2MrYisiOyBwYXRoPS87ICJ9Ow0KICAgICAgICAgICAgdGhpcy5jaGVjaz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0KGYpO2lmKGEpYT1hLnNwbGl0KCI6Iik7ZWxzZSBpZigxMDAhPWUpInYiPT1oJiYoZT1NYXRoLnJhbmRvbSgpPj1lLzEwMD8wOjEwMCksYT1baCxlLDBdLHRoaXMuc2V0KGYsYS5qb2luKCI6IikpO2Vsc2UgcmV0dXJuITA7dmFyIGM9YVsxXTtpZigxMDA9PWMpcmV0dXJuITA7c3dpdGNoKGFbMF0pe2Nhc2UgInYiOnJldHVybiExO2Nhc2UgInIiOnJldHVybiBjPWFbMl0lTWF0aC5mbG9vcigxMDAvYyksYVsyXSsrLHRoaXMuc2V0KGYsYS5qb2luKCI6IikpLCFjfXJldHVybiEwfTsNCiAgICAgICAgICAgIHRoaXMuZ289ZnVuY3Rpb24oKXtpZih0aGlzLmNoZWNrKCkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2EudHlwZT0idGV4dC9qYXZhc2NyaXB0IjthLnNyYz1nKyAiJnQ9IiArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7ZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKX19Ow0KICAgICAgICAgICAgdGhpcy5zdGFydD1mdW5jdGlvbigpe3ZhciBhPXRoaXM7d2luZG93LmFkZEV2ZW50TGlzdGVuZXI/d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7YS5nbygpfSwhMSk6d2luZG93LmF0dGFjaEV2ZW50JiZ3aW5kb3cuYXR0YWNoRXZlbnQoIm9ubG9hZCIsZnVuY3Rpb24oKXthLmdvKCl9KX19Ow0KICAgICAgICB0cnkgeyAobmV3IGcocXVhbHRyaWNzU2FtcGxlUmF0ZSwgInIiLCAiUVNJX1NfIiArIHF1YWx0cmljc1pvbmVJZCwgcXVhbHRyaWNzVXJsICsgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkpLnN0YXJ0KCkgfSBjYXRjaCAoaSkgeyB9DQogICAgfSkoKTsNCjwvc2NyaXB0Pg0KDQo8ZGl2IGlkPSJaTl9lSlc2RnpYcE9DNHoyc0oiPjwhLS1ETyBOT1QgUkVNT1ZFLUNPTlRFTlRTIFBMQUNFRCBIRVJFLS0+PC9kaXY+DQo8IS0tRU5EIFNJVEUgSU5URVJDRVBULS0+DQoNCiAgICANCiAgICAgICAgPHN0eWxlPg0KICAgICAgICAgICAgLmJvZHktY29udGVudCB7DQogICAgICAgICAgICAgICAgdG9wOiAxMSU7DQogICAgICAgICAgICAgICAgLW1zLW9wYWNpdHk6IDA7DQogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgPC9zdHlsZT4NCiAgICANCjwvaGVhZD4NCjxib2R5Pg0KICAgIDxpbnB1dCBpZD0icGFnZU9iamVjdFRhZyIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iU2lnbkluUGFnZSIgLz4NCiAgICA8ZGl2IGlkPSJhbGVydHMiPg0KICAgICAgICANCg0KICAgIA0KDQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIGJvZHktY29udGVudCI+DQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvIj4NCiAgICAgICAgICAgICAgICA8aW1nIHNyYz0iL2lkL2NvbnRlbnQvcHMtbG9nby1vdXRsaW5lLnBuZyIgYWx0PSJQbHVyYWxzaWdodCIvPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCg0KDQo8ZGl2IGNsYXNzPSJzaWduaW4iPg0KICAgIDxkaXYgY2xhc3M9InJvdyI+DQogICAgICAgIDxkaXYgY2xhc3M9InNtYWxsLTEwIHNtYWxsLW9mZnNldC0xIG1lZGl1bS00IG1lZGl1bS1vZmZzZXQtNCBsYXJnZS00IGxhcmdlLW9mZnNldC00IGNvbHVtbnMiPg0KPGZvcm0gYWN0aW9uPSIvaWQvIiBtZXRob2Q9InBvc3QiPjxpbnB1dCBpZD0iUmVkaXJlY3RVcmwiIG5hbWU9IlJlZGlyZWN0VXJsIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIC8+ICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlVzZXJuYW1lIj5FbWFpbCBvciBVc2VybmFtZTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCBhdXRvY2FwaXRhbGl6ZT0ibm9uZSIgYXV0b2NvcnJlY3Q9Im9mZiIgZGF0YS12YWw9InRydWUiIGRhdGEtdmFsLXJlcXVpcmVkPSJUaGUgRW1haWwgb3IgVXNlcm5hbWUgZmllbGQgaXMgcmVxdWlyZWQuIiBpZD0iVXNlcm5hbWUiIG5hbWU9IlVzZXJuYW1lIiB0YWJpbmRleD0iMSIgdHlwZT0idGV4dCIgdmFsdWU9IiIgLz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJQYXNzd29yZCI+UGFzc3dvcmQ8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZGF0YS12YWw9InRydWUiIGRhdGEtdmFsLXJlcXVpcmVkPSJUaGUgUGFzc3dvcmQgZmllbGQgaXMgcmVxdWlyZWQuIiBpZD0iUGFzc3dvcmQiIG5hbWU9IlBhc3N3b3JkIiB0YWJpbmRleD0iMiIgdHlwZT0icGFzc3dvcmQiIC8+DQogICAgICAgICAgICAgICAgPC9kaXY+DQo8aW5wdXQgaWQ9IlNob3dDYXB0Y2hhIiBuYW1lPSJTaG93Q2FwdGNoYSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRmFsc2UiIC8+DQo8aW5wdXQgaWQ9IlJlQ2FwdGNoYVNpdGVLZXkiIG5hbWU9IlJlQ2FwdGNoYVNpdGVLZXkiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IjZMZVZJZ29UQUFBQUFJaHhfVE93RFdJWGVjYnZ6Y1d5alFEYlhzYVYiIC8+ICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxlZnQgZm9yZ290LXBhc3N3b3JkIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxwPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9pZC9Gb3Jnb3RQYXNzd29yZCI+Rm9yZ290IHBhc3N3b3JkPzwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJpZ2h0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnV0dG9uIHByaW1hcnkiIGlkPSJsb2dpbiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lnbiBJbg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KPC9mb3JtPiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyI+PC9kaXY+DQoNCiAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWNlbnRlciBhbHRlcm5hdGUtbGlua3MiIHN0eWxlPSJtYXJnaW4tdG9wOiAxMHB4OyBsaW5lLWhlaWdodDogMi4wOyI+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cucGx1cmFsc2lnaHQuY29tL3ByaWNpbmciPkNyZWF0ZSBhY2NvdW50PC9hPg0KICAgICAgICAgICAgICAgIDxici8+DQogICAgICAgICAgICAgICAgPGEgaHJlZj0iL2lkL3NpZ25pbi9zc28/cmVkaXJlY3RUbz0iPg0KICAgICAgICAgICAgICAgICAgICBTaWduIGluIHdpdGggY29tcGFueSBvciBzY2hvb2wNCiAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgPGJyLz4NCiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy5kaWdpdGFsdHV0b3JzLmNvbS9zc28vYXV0aG9yaXplLnBocD9yZXNwb25zZV90eXBlPWNvZGUmY2xpZW50X2lkPXBzX3Nzb19wcm9kdWN0aW9uJnN0YXRlPWh0dHBzJTNhJTJmJTJmYXBwLnBsdXJhbHNpZ2h0LmNvbSUyZmxpYnJhcnklMmYiPg0KICAgICAgICAgICAgICAgICAgICBTaWduIGluIHdpdGggRGlnaXRhbC1UdXRvcnMNCiAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICA8L3A+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCg0KDQogICAgPHNjcmlwdD4NCg0KICAgICAgICAkKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICQoIi5ib2R5LWNvbnRlbnQiKS5hbmltYXRlKHsNCiAgICAgICAgICAgICAgICAndG9wJzogJzE1JScsDQogICAgICAgICAgICAgICAgJ29wYWNpdHknOiAnMScsDQogICAgICAgICAgICAgICAgJy1tcy1vcGFjaXR5JzogJzEnDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA4MDAsDQogICAgICAgICAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uICgpIHsgDQogICAgICAgICAgICAgICAgICAgIHZhciB1c2VybmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdVc2VybmFtZScpOw0KDQogICAgICAgICAgICAgICAgICAgIGlmICgkKHVzZXJuYW1lKS52YWwoKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1Bhc3N3b3JkJykuZm9jdXMoKTsNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lLmZvY3VzKCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfSk7DQogICAgPC9zY3JpcHQ+DQoNCiAgICA8L2Rpdj4NCiAgICANCiAgICA8Zm9vdGVyPg0KICAgICAgICBDb3B5cmlnaHQgJmNvcHk7IDIwMDQgLSAyMDE2IFBsdXJhbHNpZ2h0IExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAgICAgICAgfCA8YSBocmVmPSJodHRwczovL3d3dy5wbHVyYWxzaWdodC5jb20vdGVybXMiPlRlcm1zIG9mIFVzZTwvYT4NCiAgICAgICAgfCA8YSBocmVmPSJodHRwczovL3d3dy5wbHVyYWxzaWdodC5jb20vcHJpdmFjeSI+UHJpdmFjeSBQb2xpY3k8L2E+DQogICAgPC9mb290ZXI+ICAgDQoNCg0KICAgIDxzY3JpcHQgc3JjPSIvaWQvc2NyaXB0cy9mb3VuZGF0aW9uLm1pbi5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdD4NCiAgICAgICAgJChkb2N1bWVudCkuZm91bmRhdGlvbigpOw0KDQogICAgICAgICQoJy5hbGVydCcpLmFwcGVuZCgnPGRpdiBjbGFzcz0iY2xvc2UiPiZ0aW1lczs8L2Rpdj4nKTsNCiAgICAgICAgJCgnLmFsZXJ0IC5jbG9zZScpLmNsaWNrKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuaGlkZSgpOw0KICAgICAgICB9KTsNCiAgICA8L3NjcmlwdD4NCiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+X3NhdGVsbGl0ZS5wYWdlQm90dG9tKCk7PC9zY3JpcHQ+DQo8L2JvZHk+DQo8L2h0bWw+
[pluralsight] Logging in as xxx
[pluralsight] Dumping request to https://app.pluralsight.com/id/
PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz53aW5kb3cuTlJFVU18fChOUkVVTT17fSk7TlJFVU0uaW5mbyA9IHsiYWdlbnQiOiIiLCJiZWFjb24iOiJiYW0ubnItZGF0YS5uZXQiLCJlcnJvckJlYWNvbiI6ImJhbS5uci1kYXRhLm5ldCIsImxpY2Vuc2VLZXkiOiIyNzAwYWY4YTNjIiwiYXBwbGljYXRpb25JRCI6Ijk3NzcyNDEsOTc3NzI0MiIsImFwcGxpY2F0aW9uVGltZSI6NDQuMDgwMjM0LCJ0cmFuc2FjdGlvbk5hbWUiOiJaMVpSTjBFRENFTURBQlZZV2w0Y2NBeGRGaFJmRGc4RVF4cDhWbElSWFFjVVpTdE1KblJoIiwicXVldWVUaW1lIjowLCJ0dEd1aWQiOiIxYzFmYjgyYzViMDA4MSIsImFnZW50VG9rZW4iOm51bGx9OyAod2luZG93Lk5SRVVNfHwoTlJFVU09e30pKS5sb2FkZXJfY29uZmlnPXt4cGlkOiJWd1VHVmw1Vkd3b0hVMVpRQXdBPSJ9O3dpbmRvdy5OUkVVTXx8KE5SRVVNPXt9KSxfX25yX3JlcXVpcmU9ZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIobil7aWYoIWVbbl0pe3ZhciBvPWVbbl09e2V4cG9ydHM6e319O3Rbbl1bMF0uY2FsbChvLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG89dFtuXVsxXVtlXTtyZXR1cm4gcihvfHxlKX0sbyxvLmV4cG9ydHMpfXJldHVybiBlW25dLmV4cG9ydHN9aWYoImZ1bmN0aW9uIj09dHlwZW9mIF9fbnJfcmVxdWlyZSlyZXR1cm4gX19ucl9yZXF1aXJlO2Zvcih2YXIgbz0wO288bi5sZW5ndGg7bysrKXIobltvXSk7cmV0dXJuIHJ9KHsxOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXt0cnl7Yy5jb25zb2xlJiZjb25zb2xlLmxvZyh0KX1jYXRjaChlKXt9fXZhciBvLGk9dCgiZWUiKSxhPXQoMTkpLGM9e307dHJ5e289bG9jYWxTdG9yYWdlLmdldEl0ZW0oIl9fbnJfZmxhZ3MiKS5zcGxpdCgiLCIpLGNvbnNvbGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLmxvZyYmKGMuY29uc29sZT0hMCxvLmluZGV4T2YoImRldiIpIT09LTEmJihjLmRldj0hMCksby5pbmRleE9mKCJucl9kZXYiKSE9PS0xJiYoYy5uckRldj0hMCkpfWNhdGNoKHMpe31jLm5yRGV2JiZpLm9uKCJpbnRlcm5hbC1lcnJvciIsZnVuY3Rpb24odCl7cih0LnN0YWNrKX0pLGMuZGV2JiZpLm9uKCJmbi1lcnIiLGZ1bmN0aW9uKHQsZSxuKXtyKG4uc3RhY2spfSksYy5kZXYmJihyKCJOUiBBR0VOVCBJTiBERVZFTE9QTUVOVCBNT0RFIikscigiZmxhZ3M6ICIrYShjLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9KS5qb2luKCIsICIpKSl9LHt9XSwyOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUsbixyLG8pe3RyeXtoP2gtPTE6aSgiZXJyIixbb3x8bmV3IFVuY2F1Z2h0RXhjZXB0aW9uKHQsZSxuKV0pfWNhdGNoKGMpe3RyeXtpKCJpZXJyIixbYywobmV3IERhdGUpLmdldFRpbWUoKSwhMF0pfWNhdGNoKHMpe319cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGYmJmYuYXBwbHkodGhpcyxhKGFyZ3VtZW50cykpfWZ1bmN0aW9uIFVuY2F1Z2h0RXhjZXB0aW9uKHQsZSxuKXt0aGlzLm1lc3NhZ2U9dHx8IlVuY2F1Z2h0IGVycm9yIHdpdGggbm8gYWRkaXRpb25hbCBpbmZvcm1hdGlvbiIsdGhpcy5zb3VyY2VVUkw9ZSx0aGlzLmxpbmU9bn1mdW5jdGlvbiBvKHQpe2koImVyciIsW3QsKG5ldyBEYXRlKS5nZXRUaW1lKCldKX12YXIgaT10KCJoYW5kbGUiKSxhPXQoMjApLGM9dCgiZWUiKSxzPXQoImxvYWRlciIpLGY9d2luZG93Lm9uZXJyb3IsdT0hMSxoPTA7cy5mZWF0dXJlcy5lcnI9ITAsdCgxKSx3aW5kb3cub25lcnJvcj1yO3RyeXt0aHJvdyBuZXcgRXJyb3J9Y2F0Y2gocCl7InN0YWNrImluIHAmJih0KDEyKSx0KDExKSwiYWRkRXZlbnRMaXN0ZW5lciJpbiB3aW5kb3cmJnQoNikscy54aHJXcmFwcGFibGUmJnQoMTMpLHU9ITApfWMub24oImZuLXN0YXJ0IixmdW5jdGlvbih0LGUsbil7dSYmKGgrPTEpfSksYy5vbigiZm4tZXJyIixmdW5jdGlvbih0LGUsbil7dSYmKHRoaXMudGhyb3duPSEwLG8obikpfSksYy5vbigiZm4tZW5kIixmdW5jdGlvbigpe3UmJiF0aGlzLnRocm93biYmaD4wJiYoaC09MSl9KSxjLm9uKCJpbnRlcm5hbC1lcnJvciIsZnVuY3Rpb24odCl7aSgiaWVyciIsW3QsKG5ldyBEYXRlKS5nZXRUaW1lKCksITBdKX0pfSx7fV0sMzpbZnVuY3Rpb24odCxlLG4pe3QoImxvYWRlciIpLmZlYXR1cmVzLmlucz0hMH0se31dLDQ6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKCl7TisrLFM9eS5oYXNoLHRoaXNbdV09RGF0ZS5ub3coKX1mdW5jdGlvbiBvKCl7Ti0tLHkuaGFzaCE9PVMmJmkoMCwhMCk7dmFyIHQ9RGF0ZS5ub3coKTt0aGlzW2xdPX5+dGhpc1tsXSt0LXRoaXNbdV0sdGhpc1toXT10fWZ1bmN0aW9uIGkodCxlKXt4LmVtaXQoIm5ld1VSTCIsWyIiK3ksZV0pfWZ1bmN0aW9uIGEodCxlKXt0Lm9uKGUsZnVuY3Rpb24oKXt0aGlzW2VdPURhdGUubm93KCl9KX12YXIgYz0iLXN0YXJ0IixzPSItZW5kIixmPSItYm9keSIsdT0iZm4iK2MsaD0iZm4iK3MscD0iY2IiK2MsZD0iY2IiK3MsbD0ianNUaW1lIixtPSJmZXRjaCIsdj0iYWRkRXZlbnRMaXN0ZW5lciIsdz13aW5kb3cseT13LmxvY2F0aW9uO2lmKHdbdl0pe3ZhciBnPXQoOSksYj10KDEwKSx4PXQoOCksRT10KDYpLFQ9dCgxMiksTz10KDcpLFA9dCgxMyksUj10KCJlZSIpLEQ9Ui5nZXQoInRyYWNlciIpO3QoMTQpLHQoImxvYWRlciIpLmZlYXR1cmVzLnNwYT0hMDt2YXIgUyxNPXdbdl0sTj0wO1Iub24odSxyKSxSLm9uKHAsciksUi5vbihoLG8pLFIub24oZCxvKSxSLmJ1ZmZlcihbdSxoLCJ4aHItZG9uZSIsInhoci1yZXNvbHZlZCJdKSxFLmJ1ZmZlcihbdV0pLFQuYnVmZmVyKFsic2V0VGltZW91dCIrcywiY2xlYXJUaW1lb3V0IitjLHVdKSxQLmJ1ZmZlcihbdSwibmV3LXhociIsIm9wZW4teGhyIitjXSksTy5idWZmZXIoW20rYyxtKyItZG9uZSIsbStmK2MsbStmK3NdKSx4LmJ1ZmZlcihbIm5ld1VSTCJdKSxnLmJ1ZmZlcihbdV0pLGIuYnVmZmVyKFsicHJvcGFnYXRlIixwLGQsImV4ZWN1dG9yLWVyciIsInJlc29sdmUiK2NdKSxELmJ1ZmZlcihbdSwibm8tIit1XSksYShQLCJvcGVuLXhociIrYyksYShSLCJ4aHItcmVzb2x2ZWQiKSxhKFIsInhoci1kb25lIiksYShPLG0rYyksYShPLG0rIi1kb25lIikseC5vbigicHVzaFN0YXRlLWVuZCIsaSkseC5vbigicmVwbGFjZVN0YXRlLWVuZCIsaSksTSgiaGFzaGNoYW5nZSIsaSwhMCksTSgibG9hZCIsaSwhMCksTSgicG9wc3RhdGUiLGZ1bmN0aW9uKCl7aSgwLE4+MSl9LCEwKX19LHt9XSw1OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXt9aWYod2luZG93LnBlcmZvcm1hbmNlJiZ3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nJiZ3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSl7dmFyIG89dCgiZWUiKSxpPXQoImhhbmRsZSIpLGE9dCgxMiksYz10KDExKSxzPSJsZWFyUmVzb3VyY2VUaW1pbmdzIixmPSJhZGRFdmVudExpc3RlbmVyIix1PSJyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwiLGg9ImJzdFJlc291cmNlIixwPSJyZXNvdXJjZSIsZD0iLXN0YXJ0IixsPSItZW5kIixtPSJmbiIrZCx2PSJmbiIrbCx3PSJic3RUaW1lciIseT0icHVzaFN0YXRlIjt0KCJsb2FkZXIiKS5mZWF0dXJlcy5zdG49ITAsdCg4KTt2YXIgZz1OUkVVTS5vLkVWO28ub24obSxmdW5jdGlvbih0LGUpe3ZhciBuPXRbMF07biBpbnN0YW5jZW9mIGcmJih0aGlzLmJzdFN0YXJ0PURhdGUubm93KCkpfSksby5vbih2LGZ1bmN0aW9uKHQsZSl7dmFyIG49dFswXTtuIGluc3RhbmNlb2YgZyYmaSgiYnN0IixbbixlLHRoaXMuYnN0U3RhcnQsRGF0ZS5ub3coKV0pfSksYS5vbihtLGZ1bmN0aW9uKHQsZSxuKXt0aGlzLmJzdFN0YXJ0PURhdGUubm93KCksdGhpcy5ic3RUeXBlPW59KSxhLm9uKHYsZnVuY3Rpb24odCxlKXtpKHcsW2UsdGhpcy5ic3RTdGFydCxEYXRlLm5vdygpLHRoaXMuYnN0VHlwZV0pfSksYy5vbihtLGZ1bmN0aW9uKCl7dGhpcy5ic3RTdGFydD1EYXRlLm5vdygpfSksYy5vbih2LGZ1bmN0aW9uKHQsZSl7aSh3LFtlLHRoaXMuYnN0U3RhcnQsRGF0ZS5ub3coKSwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIl0pfSksby5vbih5K2QsZnVuY3Rpb24odCl7dGhpcy50aW1lPURhdGUubm93KCksdGhpcy5zdGFydFBhdGg9bG9jYXRpb24ucGF0aG5hbWUrbG9jYXRpb24uaGFzaH0pLG8ub24oeStsLGZ1bmN0aW9uKHQpe2koImJzdEhpc3QiLFtsb2NhdGlvbi5wYXRobmFtZStsb2NhdGlvbi5oYXNoLHRoaXMuc3RhcnRQYXRoLHRoaXMudGltZV0pfSksZiBpbiB3aW5kb3cucGVyZm9ybWFuY2UmJih3aW5kb3cucGVyZm9ybWFuY2VbImMiK3NdP3dpbmRvdy5wZXJmb3JtYW5jZVtmXSh1LGZ1bmN0aW9uKHQpe2koaCxbd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUocCldKSx3aW5kb3cucGVyZm9ybWFuY2VbImMiK3NdKCl9LCExKTp3aW5kb3cucGVyZm9ybWFuY2VbZl0oIndlYmtpdCIrdSxmdW5jdGlvbih0KXtpKGgsW3dpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKHApXSksd2luZG93LnBlcmZvcm1hbmNlWyJ3ZWJraXRDIitzXSgpfSwhMSkpLGRvY3VtZW50W2ZdKCJzY3JvbGwiLHIsITEpLGRvY3VtZW50W2ZdKCJrZXlwcmVzcyIsciwhMSksZG9jdW1lbnRbZl0oImNsaWNrIixyLCExKX19LHt9XSw2OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXtmb3IodmFyIGU9dDtlJiYhZS5oYXNPd25Qcm9wZXJ0eSh1KTspZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7ZSYmbyhlKX1mdW5jdGlvbiBvKHQpe2MuaW5QbGFjZSh0LFt1LGhdLCItIixpKX1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHRbMV19dmFyIGE9dCgiZWUiKS5nZXQoImV2ZW50cyIpLGM9dCgyMSkoYSkscz10KCJnb3MiKSxmPVhNTEh0dHBSZXF1ZXN0LHU9ImFkZEV2ZW50TGlzdGVuZXIiLGg9InJlbW92ZUV2ZW50TGlzdGVuZXIiO2UuZXhwb3J0cz1hLCJnZXRQcm90b3R5cGVPZiJpbiBPYmplY3Q/KHIoZG9jdW1lbnQpLHIod2luZG93KSxyKGYucHJvdG90eXBlKSk6Zi5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkodSkmJihvKHdpbmRvdyksbyhmLnByb3RvdHlwZSkpLGEub24odSsiLXN0YXJ0IixmdW5jdGlvbih0LGUpe2lmKHRbMV0pe3ZhciBuPXRbMV07aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pe3ZhciByPXMobiwibnJAd3JhcHBlZCIsZnVuY3Rpb24oKXtyZXR1cm4gYyhuLCJmbi0iLG51bGwsbi5uYW1lfHwiYW5vbnltb3VzIil9KTt0aGlzLndyYXBwZWQ9dFsxXT1yfWVsc2UiZnVuY3Rpb24iPT10eXBlb2Ygbi5oYW5kbGVFdmVudCYmYy5pblBsYWNlKG4sWyJoYW5kbGVFdmVudCJdLCJmbi0iKX19KSxhLm9uKGgrIi1zdGFydCIsZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53cmFwcGVkO2UmJih0WzFdPWUpfSl9LHt9XSw3OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUsbil7dmFyIHI9dFtlXTsiZnVuY3Rpb24iPT10eXBlb2YgciYmKHRbZV09ZnVuY3Rpb24oKXt2YXIgdD1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gby5lbWl0KG4rInN0YXJ0Iixhcmd1bWVudHMsdCksdC50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBvLmVtaXQobisiZW5kIixbbnVsbCxlXSx0KSxlfSxmdW5jdGlvbihlKXt0aHJvdyBvLmVtaXQobisiZW5kIixbZV0sdCksZX0pfSl9dmFyIG89dCgiZWUiKS5nZXQoImZldGNoIiksaT10KDE5KTtlLmV4cG9ydHM9bzt2YXIgYT13aW5kb3csYz0iZmV0Y2gtIixzPWMrImJvZHktIixmPVsiYXJyYXlCdWZmZXIiLCJibG9iIiwianNvbiIsInRleHQiLCJmb3JtRGF0YSJdLHU9YS5SZXF1ZXN0LGg9YS5SZXNwb25zZSxwPWEuZmV0Y2gsZD0icHJvdG90eXBlIjt1JiZoJiZwJiYoaShmLGZ1bmN0aW9uKHQsZSl7cih1W2RdLGUscykscihoW2RdLGUscyl9KSxyKGEsImZldGNoIixjKSxvLm9uKGMrImVuZCIsZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2U/ZS5jbG9uZSgpLmFycmF5QnVmZmVyKCkudGhlbihmdW5jdGlvbih0KXtuLnJ4U2l6ZT10LmJ5dGVMZW5ndGgsby5lbWl0KGMrImRvbmUiLFtudWxsLGVdLG4pfSk6by5lbWl0KGMrImRvbmUiLFt0XSxuKX0pKX0se31dLDg6W2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj10KCJlZSIpLmdldCgiaGlzdG9yeSIpLG89dCgyMSkocik7ZS5leHBvcnRzPXIsby5pblBsYWNlKHdpbmRvdy5oaXN0b3J5LFsicHVzaFN0YXRlIiwicmVwbGFjZVN0YXRlIl0sIi0iKX0se31dLDk6W2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj10KCJlZSIpLmdldCgibXV0YXRpb24iKSxvPXQoMjEpKHIpLGk9TlJFVU0uby5NTztlLmV4cG9ydHM9cixpJiYod2luZG93Lk11dGF0aW9uT2JzZXJ2ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBpP25ldyBpKG8odCwiZm4tIikpOmkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxNdXRhdGlvbk9ic2VydmVyLnByb3RvdHlwZT1pLnByb3RvdHlwZSl9LHt9XSwxMDpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCl7dmFyIGU9YS5jb250ZXh0KCksbj1jKHQsImV4ZWN1dG9yLSIsZSkscj1uZXcgZihuKTtyZXR1cm4gYS5jb250ZXh0KHIpLmdldEN0eD1mdW5jdGlvbigpe3JldHVybiBlfSxhLmVtaXQoIm5ldy1wcm9taXNlIixbcixlXSxlKSxyfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gZX12YXIgaT10KDIxKSxhPXQoImVlIikuZ2V0KCJwcm9taXNlIiksYz1pKGEpLHM9dCgxOSksZj1OUkVVTS5vLlBSO2UuZXhwb3J0cz1hLGYmJih3aW5kb3cuUHJvbWlzZT1yLFsiYWxsIiwicmFjZSJdLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9Zlt0XTtmW3RdPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7YS5lbWl0KCJwcm9wYWdhdGUiLFtudWxsLCFvXSxpKSxvPW98fCF0fX12YXIgbz0hMTtzKG4sZnVuY3Rpb24oZSxuKXtQcm9taXNlLnJlc29sdmUobikudGhlbihyKCJhbGwiPT09dCkscighMSkpfSk7dmFyIGk9ZS5hcHBseShmLGFyZ3VtZW50cyksYz1mLnJlc29sdmUoaSk7cmV0dXJuIGN9fSksWyJyZXNvbHZlIiwicmVqZWN0Il0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1mW3RdO2ZbdF09ZnVuY3Rpb24odCl7dmFyIG49ZS5hcHBseShmLGFyZ3VtZW50cyk7cmV0dXJuIHQhPT1uJiZhLmVtaXQoInByb3BhZ2F0ZSIsW3QsITBdLG4pLG59fSksZi5wcm90b3R5cGVbImNhdGNoIl09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbihudWxsLHQpfSxmLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGYucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6cn19KSxzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGYpLGZ1bmN0aW9uKHQsZSl7dHJ5e3JbZV09ZltlXX1jYXRjaChuKXt9fSksYS5vbigiZXhlY3V0b3Itc3RhcnQiLGZ1bmN0aW9uKHQpe3RbMF09Yyh0WzBdLCJyZXNvbHZlLSIsdGhpcyksdFsxXT1jKHRbMV0sInJlc29sdmUtIix0aGlzKX0pLGEub24oImV4ZWN1dG9yLWVyciIsZnVuY3Rpb24odCxlLG4pe3RbMV0obil9KSxjLmluUGxhY2UoZi5wcm90b3R5cGUsWyJ0aGVuIl0sInRoZW4tIixvKSxhLm9uKCJ0aGVuLXN0YXJ0IixmdW5jdGlvbih0LGUpe3RoaXMucHJvbWlzZT1lLHRbMF09Yyh0WzBdLCJjYi0iLHRoaXMpLHRbMV09Yyh0WzFdLCJjYi0iLHRoaXMpfSksYS5vbigidGhlbi1lbmQiLGZ1bmN0aW9uKHQsZSxuKXt0aGlzLm5leHRQcm9taXNlPW47dmFyIHI9dGhpcy5wcm9taXNlO2EuZW1pdCgicHJvcGFnYXRlIixbciwhMF0sbil9KSxhLm9uKCJjYi1lbmQiLGZ1bmN0aW9uKHQsZSxuKXthLmVtaXQoInByb3BhZ2F0ZSIsW24sITBdLHRoaXMubmV4dFByb21pc2UpfSksYS5vbigicHJvcGFnYXRlIixmdW5jdGlvbih0LGUsbil7dGhpcy5nZXRDdHgmJiFlfHwodGhpcy5nZXRDdHg9ZnVuY3Rpb24oKXtpZih0IGluc3RhbmNlb2YgUHJvbWlzZSl2YXIgZT1hLmNvbnRleHQodCk7cmV0dXJuIGUmJmUuZ2V0Q3R4P2UuZ2V0Q3R4KCk6dGhpc30pfSksci50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIiK2Z9KX0se31dLDExOltmdW5jdGlvbih0LGUsbil7dmFyIHI9dCgiZWUiKS5nZXQoInJhZiIpLG89dCgyMSkociksaT0iZXF1ZXN0QW5pbWF0aW9uRnJhbWUiO2UuZXhwb3J0cz1yLG8uaW5QbGFjZSh3aW5kb3csWyJyIitpLCJtb3pSIitpLCJ3ZWJraXRSIitpLCJtc1IiK2ldLCJyYWYtIiksci5vbigicmFmLXN0YXJ0IixmdW5jdGlvbih0KXt0WzBdPW8odFswXSwiZm4tIil9KX0se31dLDEyOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUsbil7dFswXT1hKHRbMF0sImZuLSIsbnVsbCxuKX1mdW5jdGlvbiBvKHQsZSxuKXt0aGlzLm1ldGhvZD1uLHRoaXMudGltZXJEdXJhdGlvbj0ibnVtYmVyIj09dHlwZW9mIHRbMV0/dFsxXTowLHRbMF09YSh0WzBdLCJmbi0iLHRoaXMsbil9dmFyIGk9dCgiZWUiKS5nZXQoInRpbWVyIiksYT10KDIxKShpKSxjPSJzZXRUaW1lb3V0IixzPSJzZXRJbnRlcnZhbCIsZj0iY2xlYXJUaW1lb3V0Iix1PSItc3RhcnQiLGg9Ii0iO2UuZXhwb3J0cz1pLGEuaW5QbGFjZSh3aW5kb3csW2MsInNldEltbWVkaWF0ZSJdLGMraCksYS5pblBsYWNlKHdpbmRvdyxbc10scytoKSxhLmluUGxhY2Uod2luZG93LFtmLCJjbGVhckltbWVkaWF0ZSJdLGYraCksaS5vbihzK3UsciksaS5vbihjK3Usbyl9LHt9XSwxMzpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlKXtoLmluUGxhY2UoZSxbIm9ucmVhZHlzdGF0ZWNoYW5nZSJdLCJmbi0iLGMpfWZ1bmN0aW9uIG8oKXt2YXIgdD10aGlzLGU9dS5jb250ZXh0KHQpO3QucmVhZHlTdGF0ZT4zJiYhZS5yZXNvbHZlZCYmKGUucmVzb2x2ZWQ9ITAsdS5lbWl0KCJ4aHItcmVzb2x2ZWQiLFtdLHQpKSxoLmluUGxhY2UodCx2LCJmbi0iLGMpfWZ1bmN0aW9uIGkodCl7dy5wdXNoKHQpLGwmJihnPS1nLGIuZGF0YT1nKX1mdW5jdGlvbiBhKCl7Zm9yKHZhciB0PTA7dDx3Lmxlbmd0aDt0KyspcihbXSx3W3RdKTt3Lmxlbmd0aCYmKHc9W10pfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gZX1mdW5jdGlvbiBzKHQsZSl7Zm9yKHZhciBuIGluIHQpZVtuXT10W25dO3JldHVybiBlfXQoNik7dmFyIGY9dCgiZWUiKSx1PWYuZ2V0KCJ4aHIiKSxoPXQoMjEpKHUpLHA9TlJFVU0ubyxkPXAuWEhSLGw9cC5NTyxtPSJyZWFkeXN0YXRlY2hhbmdlIix2PVsib25sb2FkIiwib25lcnJvciIsIm9uYWJvcnQiLCJvbmxvYWRzdGFydCIsIm9ubG9hZGVuZCIsIm9ucHJvZ3Jlc3MiLCJvbnRpbWVvdXQiXSx3PVtdO2UuZXhwb3J0cz11O3ZhciB5PXdpbmRvdy5YTUxIdHRwUmVxdWVzdD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgZCh0KTt0cnl7dS5lbWl0KCJuZXcteGhyIixbZV0sZSksZS5hZGRFdmVudExpc3RlbmVyKG0sbywhMSl9Y2F0Y2gobil7dHJ5e3UuZW1pdCgiaW50ZXJuYWwtZXJyb3IiLFtuXSl9Y2F0Y2gocil7fX1yZXR1cm4gZX07aWYocyhkLHkpLHkucHJvdG90eXBlPWQucHJvdG90eXBlLGguaW5QbGFjZSh5LnByb3RvdHlwZSxbIm9wZW4iLCJzZW5kIl0sIi14aHItIixjKSx1Lm9uKCJzZW5kLXhoci1zdGFydCIsZnVuY3Rpb24odCxlKXtyKHQsZSksaShlKX0pLHUub24oIm9wZW4teGhyLXN0YXJ0IixyKSxsKXt2YXIgZz0xLGI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZyk7bmV3IGwoYSkub2JzZXJ2ZShiLHtjaGFyYWN0ZXJEYXRhOiEwfSl9ZWxzZSBmLm9uKCJmbi1lbmQiLGZ1bmN0aW9uKHQpe3RbMF0mJnRbMF0udHlwZT09PW18fGEoKX0pfSx7fV0sMTQ6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe3ZhciBlPXRoaXMucGFyYW1zLG49dGhpcy5tZXRyaWNzO2lmKCF0aGlzLmVuZGVkKXt0aGlzLmVuZGVkPSEwO2Zvcih2YXIgcj0wO3I8aDtyKyspdC5yZW1vdmVFdmVudExpc3RlbmVyKHVbcl0sdGhpcy5saXN0ZW5lciwhMSk7aWYoIWUuYWJvcnRlZCl7aWYobi5kdXJhdGlvbj0obmV3IERhdGUpLmdldFRpbWUoKS10aGlzLnN0YXJ0VGltZSw0PT09dC5yZWFkeVN0YXRlKXtlLnN0YXR1cz10LnN0YXR1czt2YXIgaT1vKHQsdGhpcy5sYXN0U2l6ZSk7aWYoaSYmKG4ucnhTaXplPWkpLHRoaXMuc2FtZU9yaWdpbil7dmFyIGE9dC5nZXRSZXNwb25zZUhlYWRlcigiWC1OZXdSZWxpYy1BcHAtRGF0YSIpO2EmJihlLmNhdD1hLnNwbGl0KCIsICIpLnBvcCgpKX19ZWxzZSBlLnN0YXR1cz0wO24uY2JUaW1lPXRoaXMuY2JUaW1lLGYuZW1pdCgieGhyLWRvbmUiLFt0XSx0KSxjKCJ4aHIiLFtlLG4sdGhpcy5zdGFydFRpbWVdKX19fWZ1bmN0aW9uIG8odCxlKXt2YXIgbj10LnJlc3BvbnNlVHlwZTtpZigianNvbiI9PT1uJiZudWxsIT09ZSlyZXR1cm4gZTt2YXIgcj0iYXJyYXlidWZmZXIiPT09bnx8ImJsb2IiPT09bnx8Impzb24iPT09bj90LnJlc3BvbnNlOnQucmVzcG9uc2VUZXh0O3JldHVybiBsKHIpfWZ1bmN0aW9uIGkodCxlKXt2YXIgbj1zKGUpLHI9dC5wYXJhbXM7ci5ob3N0PW4uaG9zdG5hbWUrIjoiK24ucG9ydCxyLnBhdGhuYW1lPW4ucGF0aG5hbWUsdC5zYW1lT3JpZ2luPW4uc2FtZU9yaWdpbn12YXIgYT10KCJsb2FkZXIiKTtpZihhLnhocldyYXBwYWJsZSl7dmFyIGM9dCgiaGFuZGxlIikscz10KDE1KSxmPXQoImVlIiksdT1bImxvYWQiLCJlcnJvciIsImFib3J0IiwidGltZW91dCJdLGg9dS5sZW5ndGgscD10KCJpZCIpLGQ9dCgxOCksbD10KDE3KSxtPXdpbmRvdy5YTUxIdHRwUmVxdWVzdDthLmZlYXR1cmVzLnhocj0hMCx0KDEzKSxmLm9uKCJuZXcteGhyIixmdW5jdGlvbih0KXt2YXIgZT10aGlzO2UudG90YWxDYnM9MCxlLmNhbGxlZD0wLGUuY2JUaW1lPTAsZS5lbmQ9cixlLmVuZGVkPSExLGUueGhyR3VpZHM9e30sZS5sYXN0U2l6ZT1udWxsLGQmJihkPjM0fHxkPDEwKXx8d2luZG93Lm9wZXJhfHx0LmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixmdW5jdGlvbih0KXtlLmxhc3RTaXplPXQubG9hZGVkfSwhMSl9KSxmLm9uKCJvcGVuLXhoci1zdGFydCIsZnVuY3Rpb24odCl7dGhpcy5wYXJhbXM9e21ldGhvZDp0WzBdfSxpKHRoaXMsdFsxXSksdGhpcy5tZXRyaWNzPXt9fSksZi5vbigib3Blbi14aHItZW5kIixmdW5jdGlvbih0LGUpeyJsb2FkZXJfY29uZmlnImluIE5SRVVNJiYieHBpZCJpbiBOUkVVTS5sb2FkZXJfY29uZmlnJiZ0aGlzLnNhbWVPcmlnaW4mJmUuc2V0UmVxdWVzdEhlYWRlcigiWC1OZXdSZWxpYy1JRCIsTlJFVU0ubG9hZGVyX2NvbmZpZy54cGlkKX0pLGYub24oInNlbmQteGhyLXN0YXJ0IixmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMubWV0cmljcyxyPXRbMF0sbz10aGlzO2lmKG4mJnIpe3ZhciBpPWwocik7aSYmKG4udHhTaXplPWkpfXRoaXMuc3RhcnRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpLHRoaXMubGlzdGVuZXI9ZnVuY3Rpb24odCl7dHJ5eyJhYm9ydCI9PT10LnR5cGUmJihvLnBhcmFtcy5hYm9ydGVkPSEwKSwoImxvYWQiIT09dC50eXBlfHxvLmNhbGxlZD09PW8udG90YWxDYnMmJihvLm9ubG9hZENhbGxlZHx8ImZ1bmN0aW9uIiE9dHlwZW9mIGUub25sb2FkKSkmJm8uZW5kKGUpfWNhdGNoKG4pe3RyeXtmLmVtaXQoImludGVybmFsLWVycm9yIixbbl0pfWNhdGNoKHIpe319fTtmb3IodmFyIGE9MDthPGg7YSsrKWUuYWRkRXZlbnRMaXN0ZW5lcih1W2FdLHRoaXMubGlzdGVuZXIsITEpfSksZi5vbigieGhyLWNiLXRpbWUiLGZ1bmN0aW9uKHQsZSxuKXt0aGlzLmNiVGltZSs9dCxlP3RoaXMub25sb2FkQ2FsbGVkPSEwOnRoaXMuY2FsbGVkKz0xLHRoaXMuY2FsbGVkIT09dGhpcy50b3RhbENic3x8IXRoaXMub25sb2FkQ2FsbGVkJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi5vbmxvYWR8fHRoaXMuZW5kKG4pfSksZi5vbigieGhyLWxvYWQtYWRkZWQiLGZ1bmN0aW9uKHQsZSl7dmFyIG49IiIrcCh0KSshIWU7dGhpcy54aHJHdWlkcyYmIXRoaXMueGhyR3VpZHNbbl0mJih0aGlzLnhockd1aWRzW25dPSEwLHRoaXMudG90YWxDYnMrPTEpfSksZi5vbigieGhyLWxvYWQtcmVtb3ZlZCIsZnVuY3Rpb24odCxlKXt2YXIgbj0iIitwKHQpKyEhZTt0aGlzLnhockd1aWRzJiZ0aGlzLnhockd1aWRzW25dJiYoZGVsZXRlIHRoaXMueGhyR3VpZHNbbl0sdGhpcy50b3RhbENicy09MSl9KSxmLm9uKCJhZGRFdmVudExpc3RlbmVyLWVuZCIsZnVuY3Rpb24odCxlKXtlIGluc3RhbmNlb2YgbSYmImxvYWQiPT09dFswXSYmZi5lbWl0KCJ4aHItbG9hZC1hZGRlZCIsW3RbMV0sdFsyXV0sZSl9KSxmLm9uKCJyZW1vdmVFdmVudExpc3RlbmVyLWVuZCIsZnVuY3Rpb24odCxlKXtlIGluc3RhbmNlb2YgbSYmImxvYWQiPT09dFswXSYmZi5lbWl0KCJ4aHItbG9hZC1yZW1vdmVkIixbdFsxXSx0WzJdXSxlKX0pLGYub24oImZuLXN0YXJ0IixmdW5jdGlvbih0LGUsbil7ZSBpbnN0YW5jZW9mIG0mJigib25sb2FkIj09PW4mJih0aGlzLm9ubG9hZD0hMCksKCJsb2FkIj09PSh0WzBdJiZ0WzBdLnR5cGUpfHx0aGlzLm9ubG9hZCkmJih0aGlzLnhockNiU3RhcnQ9KG5ldyBEYXRlKS5nZXRUaW1lKCkpKX0pLGYub24oImZuLWVuZCIsZnVuY3Rpb24odCxlKXt0aGlzLnhockNiU3RhcnQmJmYuZW1pdCgieGhyLWNiLXRpbWUiLFsobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLnhockNiU3RhcnQsdGhpcy5vbmxvYWQsZV0sZSl9KX19LHt9XSwxNTpbZnVuY3Rpb24odCxlLG4pe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksbj13aW5kb3cubG9jYXRpb24scj17fTtlLmhyZWY9dCxyLnBvcnQ9ZS5wb3J0O3ZhciBvPWUuaHJlZi5zcGxpdCgiOi8vIik7IXIucG9ydCYmb1sxXSYmKHIucG9ydD1vWzFdLnNwbGl0KCIvIilbMF0uc3BsaXQoIkAiKS5wb3AoKS5zcGxpdCgiOiIpWzFdKSxyLnBvcnQmJiIwIiE9PXIucG9ydHx8KHIucG9ydD0iaHR0cHMiPT09b1swXT8iNDQzIjoiODAiKSxyLmhvc3RuYW1lPWUuaG9zdG5hbWV8fG4uaG9zdG5hbWUsci5wYXRobmFtZT1lLnBhdGhuYW1lLHIucHJvdG9jb2w9b1swXSwiLyIhPT1yLnBhdGhuYW1lLmNoYXJBdCgwKSYmKHIucGF0aG5hbWU9Ii8iK3IucGF0aG5hbWUpO3ZhciBpPSFlLnByb3RvY29sfHwiOiI9PT1lLnByb3RvY29sfHxlLnByb3RvY29sPT09bi5wcm90b2NvbCxhPWUuaG9zdG5hbWU9PT1kb2N1bWVudC5kb21haW4mJmUucG9ydD09PW4ucG9ydDtyZXR1cm4gci5zYW1lT3JpZ2luPWkmJighZS5ob3N0bmFtZXx8YSkscn19LHt9XSwxNjpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIoKXt9ZnVuY3Rpb24gbyh0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGkodCxbKG5ldyBEYXRlKS5nZXRUaW1lKCldLmNvbmNhdChjKGFyZ3VtZW50cykpLGU/bnVsbDp0aGlzLG4pLGU/dm9pZCAwOnRoaXN9fXZhciBpPXQoImhhbmRsZSIpLGE9dCgxOSksYz10KDIwKSxzPXQoImVlIikuZ2V0KCJ0cmFjZXIiKSxmPU5SRVVNOyJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93Lm5ld3JlbGljJiYobmV3cmVsaWM9Zik7dmFyIHU9WyJzZXRQYWdlVmlld05hbWUiLCJzZXRDdXN0b21BdHRyaWJ1dGUiLCJzZXRFcnJvckhhbmRsZXIiLCJmaW5pc2hlZCIsImFkZFRvVHJhY2UiLCJpbmxpbmVIaXQiXSxoPSJhcGktIixwPWgrIml4bi0iO2EodSxmdW5jdGlvbih0LGUpe2ZbZV09byhoK2UsITAsImFwaSIpfSksZi5hZGRQYWdlQWN0aW9uPW8oaCsiYWRkUGFnZUFjdGlvbiIsITApLGUuZXhwb3J0cz1uZXdyZWxpYyxmLmludGVyYWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuKG5ldyByKS5nZXQoKX07dmFyIGQ9ci5wcm90b3R5cGU9e2NyZWF0ZVRyYWNlcjpmdW5jdGlvbih0LGUpe3ZhciBuPXt9LHI9dGhpcyxvPSJmdW5jdGlvbiI9PXR5cGVvZiBlO3JldHVybiBpKHArInRyYWNlciIsW0RhdGUubm93KCksdCxuXSxyKSxmdW5jdGlvbigpe2lmKHMuZW1pdCgobz8iIjoibm8tIikrImZuLXN0YXJ0IixbRGF0ZS5ub3coKSxyLG9dLG4pLG8pdHJ5e3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e3MuZW1pdCgiZm4tZW5kIixbRGF0ZS5ub3coKV0sbil9fX19O2EoInNldE5hbWUsc2V0QXR0cmlidXRlLHNhdmUsaWdub3JlLG9uRW5kLGdldENvbnRleHQsZW5kLGdldCIuc3BsaXQoIiwiKSxmdW5jdGlvbih0LGUpe2RbZV09byhwK2UpfSksbmV3cmVsaWMubm90aWNlRXJyb3I9ZnVuY3Rpb24odCl7InN0cmluZyI9PXR5cGVvZiB0JiYodD1uZXcgRXJyb3IodCkpLGkoImVyciIsW3QsKG5ldyBEYXRlKS5nZXRUaW1lKCldKX19LHt9XSwxNzpbZnVuY3Rpb24odCxlLG4pe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQmJnQubGVuZ3RoKXJldHVybiB0Lmxlbmd0aDtpZigib2JqZWN0Ij09dHlwZW9mIHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmdC5ieXRlTGVuZ3RoKXJldHVybiB0LmJ5dGVMZW5ndGg7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiZ0IGluc3RhbmNlb2YgQmxvYiYmdC5zaXplKXJldHVybiB0LnNpemU7aWYoISgidW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZ0IGluc3RhbmNlb2YgRm9ybURhdGEpKXRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkubGVuZ3RofWNhdGNoKGUpe3JldHVybn19fX0se31dLDE4OltmdW5jdGlvbih0LGUsbil7dmFyIHI9MCxvPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3hbXC9cc10oXGQrXC5cZCspLyk7byYmKHI9K29bMV0pLGUuZXhwb3J0cz1yfSx7fV0sMTk6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSl7dmFyIG49W10scj0iIixpPTA7Zm9yKHIgaW4gdClvLmNhbGwodCxyKSYmKG5baV09ZShyLHRbcl0pLGkrPTEpO3JldHVybiBufXZhciBvPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZS5leHBvcnRzPXJ9LHt9XSwyMDpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlLG4pe2V8fChlPTApLCJ1bmRlZmluZWQiPT10eXBlb2YgbiYmKG49dD90Lmxlbmd0aDowKTtmb3IodmFyIHI9LTEsbz1uLWV8fDAsaT1BcnJheShvPDA/MDpvKTsrK3I8bzspaVtyXT10W2Urcl07cmV0dXJuIGl9ZS5leHBvcnRzPXJ9LHt9XSwyMTpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCl7cmV0dXJuISh0JiYiZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5hcHBseSYmIXRbYV0pfXZhciBvPXQoImVlIiksaT10KDIwKSxhPSJuckBvcmlnaW5hbCIsYz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHM9ITE7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlLG4sbyl7ZnVuY3Rpb24gbnJXcmFwcGVyKCl7dmFyIHIsYSxjLHM7dHJ5e2E9dGhpcyxyPWkoYXJndW1lbnRzKSxjPSJmdW5jdGlvbiI9PXR5cGVvZiBuP24ocixhKTpufHx7fX1jYXRjaCh1KXtoKFt1LCIiLFtyLGEsb10sY10pfWYoZSsic3RhcnQiLFtyLGEsb10sYyk7dHJ5e3JldHVybiBzPXQuYXBwbHkoYSxyKX1jYXRjaChwKXt0aHJvdyBmKGUrImVyciIsW3IsYSxwXSxjKSxwfWZpbmFsbHl7ZihlKyJlbmQiLFtyLGEsc10sYyl9fXJldHVybiByKHQpP3Q6KGV8fChlPSIiKSxucldyYXBwZXJbYV09dCx1KHQsbnJXcmFwcGVyKSxucldyYXBwZXIpfWZ1bmN0aW9uIG4odCxuLG8saSl7b3x8KG89IiIpO3ZhciBhLGMscyxmPSItIj09PW8uY2hhckF0KDApO2ZvcihzPTA7czxuLmxlbmd0aDtzKyspYz1uW3NdLGE9dFtjXSxyKGEpfHwodFtjXT1lKGEsZj9jK286byxpLGMpKX1mdW5jdGlvbiBmKGUsbixyKXtpZighcyl7cz0hMDt0cnl7dC5lbWl0KGUsbixyKX1jYXRjaChvKXtoKFtvLGUsbixyXSl9cz0hMX19ZnVuY3Rpb24gdSh0LGUpe2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmtleXMpdHJ5e3ZhciBuPU9iamVjdC5rZXlzKHQpO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19LHNldDpmdW5jdGlvbihlKXtyZXR1cm4gdFtuXT1lLGV9fSl9KSxlfWNhdGNoKHIpe2goW3JdKX1mb3IodmFyIG8gaW4gdCljLmNhbGwodCxvKSYmKGVbb109dFtvXSk7cmV0dXJuIGV9ZnVuY3Rpb24gaChlKXt0cnl7dC5lbWl0KCJpbnRlcm5hbC1lcnJvciIsZSl9Y2F0Y2gobil7fX1yZXR1cm4gdHx8KHQ9byksZS5pblBsYWNlPW4sZS5mbGFnPWEsZX19LHt9XSxlZTpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIoKXt9ZnVuY3Rpb24gbyh0KXtmdW5jdGlvbiBlKHQpe3JldHVybiB0JiZ0IGluc3RhbmNlb2Ygcj90OnQ/Yyh0LGEsaSk6aSgpfWZ1bmN0aW9uIG4obixyLG8pe3QmJnQobixyLG8pO2Zvcih2YXIgaT1lKG8pLGE9cChuKSxjPWEubGVuZ3RoLHM9MDtzPGM7cysrKWFbc10uYXBwbHkoaSxyKTt2YXIgdT1mW3Zbbl1dO3JldHVybiB1JiZ1LnB1c2goW3csbixyLGldKSxpfWZ1bmN0aW9uIGgodCxlKXttW3RdPXAodCkuY29uY2F0KGUpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIG1bdF18fFtdfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHVbdF09dVt0XXx8byhuKX1mdW5jdGlvbiBsKHQsZSl7cyh0LGZ1bmN0aW9uKHQsbil7ZT1lfHwiZmVhdHVyZSIsdltuXT1lLGUgaW4gZnx8KGZbZV09W10pfSl9dmFyIG09e30sdj17fSx3PXtvbjpoLGVtaXQ6bixnZXQ6ZCxsaXN0ZW5lcnM6cCxjb250ZXh0OmUsYnVmZmVyOmx9O3JldHVybiB3fWZ1bmN0aW9uIGkoKXtyZXR1cm4gbmV3IHJ9dmFyIGE9Im5yQGNvbnRleHQiLGM9dCgiZ29zIikscz10KDE5KSxmPXt9LHU9e30saD1lLmV4cG9ydHM9bygpO2guYmFja2xvZz1mfSx7fV0sZ29zOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUsbil7aWYoby5jYWxsKHQsZSkpcmV0dXJuIHRbZV07dmFyIHI9bigpO2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmtleXMpdHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITF9KSxyfWNhdGNoKGkpe31yZXR1cm4gdFtlXT1yLHJ9dmFyIG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtlLmV4cG9ydHM9cn0se31dLGhhbmRsZTpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlLG4scil7by5idWZmZXIoW3RdLHIpLG8uZW1pdCh0LGUsbil9dmFyIG89dCgiZWUiKS5nZXQoImhhbmRsZSIpO2UuZXhwb3J0cz1yLHIuZWU9b30se31dLGlkOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4hdHx8Im9iamVjdCIhPT1lJiYiZnVuY3Rpb24iIT09ZT8tMTp0PT09d2luZG93PzA6YSh0LGksZnVuY3Rpb24oKXtyZXR1cm4gbysrfSl9dmFyIG89MSxpPSJuckBpZCIsYT10KCJnb3MiKTtlLmV4cG9ydHM9cn0se31dLGxvYWRlcjpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIoKXtpZighZysrKXt2YXIgdD15LmluZm89TlJFVU0uaW5mbyxlPXUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO2lmKHQmJnQubGljZW5zZUtleSYmdC5hcHBsaWNhdGlvbklEJiZlKXtzKHYsZnVuY3Rpb24oZSxuKXt0W2VdfHwodFtlXT1uKX0pO3ZhciBuPSJodHRwcyI9PT1tLnNwbGl0KCI6IilbMF18fHQuc3NsRm9ySHR0cDt5LnByb3RvPW4/Imh0dHBzOi8vIjoiaHR0cDovLyIsYygibWFyayIsWyJvbmxvYWQiLGEoKV0sbnVsbCwiYXBpIik7dmFyIHI9dS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyLnNyYz15LnByb3RvK3QuYWdlbnQsZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyLGUpfX19ZnVuY3Rpb24gbygpeyJjb21wbGV0ZSI9PT11LnJlYWR5U3RhdGUmJmkoKX1mdW5jdGlvbiBpKCl7YygibWFyayIsWyJkb21Db250ZW50IixhKCldLG51bGwsImFwaSIpfWZ1bmN0aW9uIGEoKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX12YXIgYz10KCJoYW5kbGUiKSxzPXQoMTkpLGY9d2luZG93LHU9Zi5kb2N1bWVudCxoPSJhZGRFdmVudExpc3RlbmVyIixwPSJhdHRhY2hFdmVudCIsZD1mLlhNTEh0dHBSZXF1ZXN0LGw9ZCYmZC5wcm90b3R5cGU7TlJFVU0ubz17U1Q6c2V0VGltZW91dCxDVDpjbGVhclRpbWVvdXQsWEhSOmQsUkVROmYuUmVxdWVzdCxFVjpmLkV2ZW50LFBSOmYuUHJvbWlzZSxNTzpmLk11dGF0aW9uT2JzZXJ2ZXJ9LHQoMTYpO3ZhciBtPSIiK2xvY2F0aW9uLHY9e2JlYWNvbjoiYmFtLm5yLWRhdGEubmV0IixlcnJvckJlYWNvbjoiYmFtLm5yLWRhdGEubmV0IixhZ2VudDoianMtYWdlbnQubmV3cmVsaWMuY29tL25yLXNwYS05NzQubWluLmpzIn0sdz1kJiZsJiZsW2hdJiYhL0NyaU9TLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHk9ZS5leHBvcnRzPXtvZmZzZXQ6YSgpLG9yaWdpbjptLGZlYXR1cmVzOnt9LHhocldyYXBwYWJsZTp3fTt1W2hdPyh1W2hdKCJET01Db250ZW50TG9hZGVkIixpLCExKSxmW2hdKCJsb2FkIixyLCExKSk6KHVbcF0oIm9ucmVhZHlzdGF0ZWNoYW5nZSIsbyksZltwXSgib25sb2FkIixyKSksYygibWFyayIsWyJmaXJzdGJ5dGUiLGEoKV0sbnVsbCwiYXBpIik7dmFyIGc9MH0se31dfSx7fSxbImxvYWRlciIsMiwxNCw1LDMsNF0pOzwvc2NyaXB0Pjx0aXRsZT5QbHVyYWxzaWdodDwvdGl0bGU+PG1ldGEgbmFtZT0iYXBwbGUtaXR1bmVzLWFwcCIgY29udGVudD0iYXBwLWlkPTQzMTc0ODI2NCI+PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj48bGluayByZWw9ImRucy1wcmVmZXRjaCIgaHJlZj0iLy9zMi5wbHVyYWxzaWdodC5jb20iPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSIvL3BsdXJhbHNpZ2h0LXJlcy5jbG91ZGluYXJ5LmNvbSI+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Ii8vcy5wbHVyYWxzaWdodC5jb20iPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSIvL2Nkbi5zZWdtZW50LmNvbSI+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Ii8vY2RuLnNlZ21lbnQuaW8iPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSIvL2Nkbi5saXZlZnlyZS5jb20iPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSIvL2Jvb3RzdHJhcC5saXZlZnlyZS5jb20iPjxzY3JpcHQ+QVBJX0xFQVJORVJfUk9PVCA9ICIvL2FwcC5wbHVyYWxzaWdodC5jb20vbGVhcm5lciIKQVBJX0ZFQVRVUkVTX1JPT1QgPSAiaHR0cHM6Ly9hcHAucGx1cmFsc2lnaHQuY29tL2ZlYXR1cmVzL2FwaSIKQVBJX0NPTlRFTlRfUk9PVCA9ICJodHRwczovL2FwcC5wbHVyYWxzaWdodC5jb20vbGVhcm5lci9jb250ZW50IgpBUElfVVNFUl9ST09UID0gImh0dHBzOi8vYXBwLnBsdXJhbHNpZ2h0LmNvbS9sZWFybmVyL3VzZXIiCkFQSV9TRUFSQ0hfUk9PVCA9ICIvc2VhcmNoL3Byb3h5IgpMSVZFRllSRV9TSVRFX0lEID0gIjMyMjU1NyIKQU5EUk9JRF9BUFBfSUQgPSAiY29tLnBsdXJhbHNpZ2h0IgpNT05PTElUSF9CQVNFX1VSTCA9ICJhcHAucGx1cmFsc2lnaHQuY29tIjwvc2NyaXB0PjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLy9jbG91ZC50eXBvZ3JhcGh5LmNvbS82OTY2MTU0LzY5MTU2OC9jc3MvZm9udHMuY3NzIj48c2NyaXB0IHNyYz0iLy9zLnBsdXJhbHNpZ2h0LmNvbS9sZWFybmVyL3NoYXJlZC5mYWZhNmY0OWZmNjM0MjQ0NWQzYi5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLy9hc3NldHMuYWRvYmVkdG0uY29tLzJjNWYyYjMwNzYyYWU2MjM3NzkxNmMwOTYxMmNkOWQ2MDA1NGZiYTkvc2F0ZWxsaXRlTGliLTNmMjAwMWY4ODMxNTYxMGQyOTVlNDgyNjA3ZjdkMDAzYzg2MjdkMDguanMiPjwvc2NyaXB0PjxzY3JpcHQ+IWZ1bmN0aW9uKCl7dmFyIGFuYWx5dGljcz13aW5kb3cuYW5hbHl0aWNzPXdpbmRvdy5hbmFseXRpY3N8fFtdO2lmKCFhbmFseXRpY3MuaW5pdGlhbGl6ZSlpZihhbmFseXRpY3MuaW52b2tlZCl3aW5kb3cuY29uc29sZSYmY29uc29sZS5lcnJvciYmY29uc29sZS5lcnJvcigiU2VnbWVudCBzbmlwcGV0IGluY2x1ZGVkIHR3aWNlLiIpO2Vsc2V7YW5hbHl0aWNzLmludm9rZWQ9ITA7YW5hbHl0aWNzLm1ldGhvZHM9WyJ0cmFja1N1Ym1pdCIsInRyYWNrQ2xpY2siLCJ0cmFja0xpbmsiLCJ0cmFja0Zvcm0iLCJwYWdldmlldyIsImlkZW50aWZ5IiwiZ3JvdXAiLCJ0cmFjayIsInJlYWR5IiwiYWxpYXMiLCJwYWdlIiwib25jZSIsIm9mZiIsIm9uIl07YW5hbHl0aWNzLmZhY3Rvcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtlLnVuc2hpZnQodCk7YW5hbHl0aWNzLnB1c2goZSk7cmV0dXJuIGFuYWx5dGljc319O2Zvcih2YXIgdD0wO3Q8YW5hbHl0aWNzLm1ldGhvZHMubGVuZ3RoO3QrKyl7dmFyIGU9YW5hbHl0aWNzLm1ldGhvZHNbdF07YW5hbHl0aWNzW2VdPWFuYWx5dGljcy5mYWN0b3J5KGUpfWFuYWx5dGljcy5sb2FkPWZ1bmN0aW9uKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2UudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtlLmFzeW5jPSEwO2Uuc3JjPSgiaHR0cHM6Ij09PWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sPyJodHRwczovLyI6Imh0dHA6Ly8iKSsiY2RuLnNlZ21lbnQuY29tL2FuYWx5dGljcy5qcy92MS8iK3QrIi9hbmFseXRpY3MubWluLmpzIjt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07bi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLG4pfTthbmFseXRpY3MuU05JUFBFVF9WRVJTSU9OPSIzLjAuMSI7CiAgYW5hbHl0aWNzLmxvYWQoIm4yTExiRkkxTUR4RktCTHpJMGVzMlo3UHJEaHU2akVBIik7Cn19KCk7PC9zY3JpcHQ+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvL3MyLnBsdXJhbHNpZ2h0LmNvbS9wcmlzbS9wcmlzbS03LjAuMS5taW4uY3NzIj48bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii8vcy5wbHVyYWxzaWdodC5jb20vbGVhcm5lci9tYWluLmZhZmE2ZjQ5ZmY2MzQyNDQ1ZDNiLmNzcyIgLz48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvL3MucGx1cmFsc2lnaHQuY29tL21lbnRvcnMvdG9vbHMvc2lkZWJhci92MS9zaWRlYmFyLm1pbi5qcyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLy9zMi5wbHVyYWxzaWdodC5jb20vcHJpc20vcHJpc20tNy4wLjEubWluLmpzIj48L3NjcmlwdD48L2hlYWQ+PGJvZHk+PGRpdiBpZD0icHMtYmFubmVycyI+PC9kaXY+PGRpdiBpZD0icHMtY29udGFpbmVyIj48ZGl2IGlkPSJwcy1jaHJvbWUiPjwvZGl2PjxkaXYgaWQ9InBzLW1haW4iPjwvZGl2PjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5fX0lOSVRJQUxfU1RBVEVfXyA9IHsiY3VycmVudFVzZXIiOnsiaWQiOiI0YmFkYTg1MC0zZTZiLTQ2YTItYTRmZC03MDRjODhjNDNkODgiLCJmaXJzdE5hbWUiOiJEYW5ueSIsImxhc3ROYW1lIjoiQ2FsbGFnaGFuIiwiZGlzcGxheU5hbWUiOiJEYW5ueSBDYWxsYWdoYW4iLCJlbWFpbCI6ImRhbm55Y2FsbGFnaGFuQGdtYWlsLmNvbSIsInVzZXJOYW1lIjoiZGFubnljYWxsYWdoYW4iLCJhdmF0YXIiOnsiZGVmYXVsdFVybCI6Ii8vZ3JhdmF0YXIuY29tL2F2YXRhci8wM2Y3OTQzOTA3NGQ3M2QxZmMwMzM4ZmI2MTAwNjkyYT9zPTIwMCZkPWh0dHBzOi8vcy5wbHVyYWxzaWdodC5jb20vc2MvaW1nL2FjY291bnQvYXZhdGFyLXYyLnBuZyJ9LCJjcmVhdGVkQXQiOiIyMDE0LTAyLTEyVDA5OjMxOjA3Iiwicm9sZXMiOlt7InR5cGUiOiJsZWFybmVyIn1dfSwiY2xhaW1zIjpbXSwic2xpY2VTdWJzY3JpcHRpb25zIjpbXSwic3Vic2NyaXB0aW9ucyI6W3sidHlwZSI6ImxpYnJhcnkiLCJsaWJyYXJ5VHlwZSI6ImluZGl2aWR1YWwiLCJoYXNDb2RlU2Nob29sIjpmYWxzZSwiaGFzTWVudG9yaW5nIjp0cnVlLCJhY3RpdmUiOnRydWUsImlzU2xpY2UiOmZhbHNlfV0sInVzZXJGZWF0dXJlcy52MyI6eyJhbGwiOnsiY29sbGVjdGlvbiI6eyJub3RlcyI6eyJpZCI6Im5vdGVzIiwiZGlzcGxheU5hbWUiOiJ3ZWItcGxheWVyIG5vdGVzIiwiZGVzY3JpcHRpb24iOiJXZWIgUGxheWVyIE5vdGVzIiwiaXNBdmFpbGFibGVGb3JPcHRJbiI6ZmFsc2UsImlzRW5hYmxlZEZvclVzZXIiOnRydWUsImNhblRvZ2dsZSI6ZmFsc2V9LCJsZWFybmVyLXJlY29tbWVuZGF0aW9ucyI6eyJpZCI6ImxlYXJuZXItcmVjb21tZW5kYXRpb25zIiwiZGlzcGxheU5hbWUiOiJMZWFybmVyIFJlY29tbWVuZGF0aW9ucyIsImRlc2NyaXB0aW9uIjoiUmVjb21tZW5kYXRpb25zIGluIG5hcndoYWwuIFVzZXIgbGV2ZWwgcmVjb21tZW5kYXRpb25zIG9uIGRhc2hib2FyZC4gQ291cnNlIGxldmVsIHJlY29tbWVuZGF0aW9ucyBvbiBjb3Vyc2UgcGFnZS4iLCJpc0F2YWlsYWJsZUZvck9wdEluIjpmYWxzZSwiaXNFbmFibGVkRm9yVXNlciI6ZmFsc2UsImNhblRvZ2dsZSI6ZmFsc2V9LCJsZWFybmVyLXBhdGhzLWluLXNlYXJjaCI6eyJpZCI6ImxlYXJuZXItcGF0aHMtaW4tc2VhcmNoIiwiZGlzcGxheU5hbWUiOiJMZWFybmVyIFBhdGhzIEluIFNlYXJjaCIsImRlc2NyaXB0aW9uIjoiRGlzcGxheSBwYXRoIHJlc3VsdHMgaW4gc2VhcmNoIiwiaXNBdmFpbGFibGVGb3JPcHRJbiI6ZmFsc2UsImlzRW5hYmxlZEZvclVzZXIiOmZhbHNlLCJjYW5Ub2dnbGUiOmZhbHNlfX19fSwiY29uZmlnIjp7ImNvbnRleHRzIjp7ImFzc2Vzc21lbnRzIjp7ImJhc2VVcmwiOiJhcHAucGx1cmFsc2lnaHQuY29tL3Njb3JlIn0sImNvZGVTY2hvb2wiOnsic3NvTGluayI6Ii8vY29kZXNjaG9vbC5wbHVyYWxzaWdodC5jb20vcHMvdXVsIn0sIm1lbnRvcmluZyI6e319LCJmZWF0dXJlcyI6eyJkYXNoYm9hcmRNb2RhbCI6ZmFsc2V9LCJtb25vbGl0aEJhc2VVcmwiOiJhcHAucGx1cmFsc2lnaHQuY29tIiwibGl2ZWZ5cmVCYXNlVXJsIjoicGx1cmFsc2lnaHQuY29tIiwiYXV0aG9yaXplVXJsIjoiaHR0cHM6Ly9hcHAucGx1cmFsc2lnaHQuY29tL2lkL3NpZ25pbiIsImNvdXJzZUltYWdlVXJsVGVtcGxhdGVTdHJpbmciOiIvL3BsdXJhbHNpZ2h0LXJlcy5jbG91ZGluYXJ5LmNvbS9pbWFnZS91cGxvYWQvd197d2lkdGh9L3BsdXJhbHNpZ2h0LXN0YXRpYy9jb3Vyc2UtaW1hZ2VzL3tjb3Vyc2VJZH0tdntpbWFnZVZlcnNpb259LmpwZyJ9fQo8L3NjcmlwdD48c2NyaXB0IHNyYz0iLy9zLnBsdXJhbHNpZ2h0LmNvbS9sZWFybmVyL21haW4uZmFmYTZmNDlmZjYzNDI0NDVkM2IuanMiPjwvc2NyaXB0PjxkaXYgaWQ9Il93ZWJlbmdhZ2Vfc2NyaXB0X3RhZyI+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPl9zYXRlbGxpdGUucGFnZUJvdHRvbSgpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+
[pluralsight] agile-requirements-process-idea-to-minimum-viable-product-m3-3: Downloading webpage
[pluralsight] Dumping request to http://app.pluralsight.com/training/player?author=rusty-divine&name=agile-requirements-process-idea-to-minimum-viable-product-m3&mode=live&clip=3&course=agile-requirements-process-idea-to-minimum-viable-product
PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPjxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+PHRpdGxlPjwvdGl0bGU+PG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBtYXhpbXVtLXNjYWxlPTEiPjxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+PG1ldGEgbmFtZT0iZm9ybWF0LWRldGVjdGlvbiIgY29udGVudD0idGVsZXBob25lPW5vIj48IS0tW2lmICFJRSA5XT48IS0tPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9zLnBsdXJhbHNpZ2h0LmNvbS90eXBvZ3JhcGh5LzM0MDYyOC83RUZGNURCNUNBMjk3RUJFNy5jc3MiPjxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iaHR0cHM6Ly9zLnBsdXJhbHNpZ2h0LmNvbS9mYXZpY29uLmljbyI+PCEtLTwhW2VuZGlmXS0tPjxzY3JpcHQgc3JjPSIvL2Fzc2V0cy5hZG9iZWR0bS5jb20vMmM1ZjJiMzA3NjJhZTYyMzc3OTE2YzA5NjEyY2Q5ZDYwMDU0ZmJhOS9zYXRlbGxpdGVMaWItM2YyMDAxZjg4MzE1NjEwZDI5NWU0ODI2MDdmN2QwMDNjODYyN2QwOC5qcyI+PC9zY3JpcHQ+PHNjcmlwdD52YXIgX2hlbHBnaXptb19wID0gX2hlbHBnaXptb19wIHx8IFtdOwpfaGVscGdpem1vX3AucHVzaChbJ19zZXRQcm9qZWN0JywgJzU3MDkzZWU0OTExMjFjNmQ2YTBjOTMxMS01NzA5M2YwNTkxMTIxYzk0NjgwYzkyZmInXSk7CihmdW5jdGlvbigpIHsKICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CiAgICB2YXIgaGcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgIGhnLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICAgIGhnLmFzeW5jID0gdHJ1ZTsKICAgIGhnLnNyYyA9ICIvL3BsdXJhbHNpZ2h0Lmtub3dsZWRnZW93bC5jb20vamF2YXNjcmlwdD9fX3BjPTU3MDkzZWU0OTExMjFjNmQ2YTBjOTMxMS01NzA5M2YwNTkxMTIxYzk0NjgwYzkyZmIiOwogICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChoZyk7CiAgfSwyNTApOwp9KSgpOwo8L3NjcmlwdD48c2NyaXB0PmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgewogIHdpbmRvdy5jb25zb2xlID0gd2luZG93LmNvbnNvbGUgfHwge307CiAgdmFyIG1ldGhvZHMgPSBbJ2xvZycsICd3YXJuaW5nJywgJ2luZm8nLCAnZGVidWcnXTsKICBmb3IodmFyIGk9MDsgaTxtZXRob2RzLmxlbmd0aDsgaSsrKSB7CiAgICBpZighY29uc29sZVttZXRob2RzW2ldXSkgewogICAgICBjb25zb2xlW21ldGhvZHNbaV1dID0gZnVuY3Rpb24oKXt9OwogICAgfQogIH0KfQo8L3NjcmlwdD48c2NyaXB0PnZhciB5b3Vib3JhQ29uZmlnID0geyJhY2NvdW50SWQiOiJwbHVyYWxzaWdodCIsInVzZXJuYW1lIjoicGxzYWRtaW4ifTsKdmFyIGJ1aWxkVmVyc2lvbiA9IDEzMzU7Cjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvL3MucGx1cmFsc2lnaHQuY29tL2FuYWx5dGljcy9hbmFseXRpY3MtZmFjYWRlLnYyLjAuMC5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBpZD0iX3dlYmVuZ2FnZV9zY3JpcHRfdGFnIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciB3ZWJlbmdhZ2U7ICFmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gbyhlLHQpe2VbdFt0Lmxlbmd0aC0xXV09ZnVuY3Rpb24oKXtyLl9fcXVldWUucHVzaChbdC5qb2luKCIuIiksYXJndW1lbnRzXSl9fXZhciBpLHMscj1lW25dLGc9IiAiLGw9ImluaXQgb3B0aW9ucyB0cmFjayBzY3JlZW4gb25SZWFkeSIuc3BsaXQoZyksYT0iZmVlZGJhY2sgc3VydmV5IG5vdGlmaWNhdGlvbiIuc3BsaXQoZyksYz0ib3B0aW9ucyByZW5kZXIgY2xlYXIgYWJvcnQiLnNwbGl0KGcpLHA9Ik9wZW4gQ2xvc2UgU3VibWl0IENvbXBsZXRlIFZpZXcgQ2xpY2siLnNwbGl0KGcpLHU9ImlkZW50aWZ5IGxvZ2luIGxvZ291dCBzZXRBdHRyaWJ1dGUiLnNwbGl0KGcpO2lmKCFyfHwhci5fX3Ype2ZvcihlW25dPXI9e19fcXVldWU6W10sX192OiI2LjAiLHVzZXI6e319LGk9MDtpPGwubGVuZ3RoO2krKylvKHIsW2xbaV1dKTtmb3IoaT0wO2k8YS5sZW5ndGg7aSsrKXtmb3IoclthW2ldXT17fSxzPTA7czxjLmxlbmd0aDtzKyspbyhyW2FbaV1dLFthW2ldLGNbc11dKTtmb3Iocz0wO3M8cC5sZW5ndGg7cysrKW8oclthW2ldXSxbYVtpXSwib24iK3Bbc11dKX1mb3IoaT0wO2k8dS5sZW5ndGg7aSsrKW8oci51c2VyLFsidXNlciIsdVtpXV0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZj10LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGQ9dC5nZXRFbGVtZW50QnlJZCgiX3dlYmVuZ2FnZV9zY3JpcHRfdGFnIik7Zi50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGYuYXN5bmM9ITAsZi5zcmM9KCJodHRwczoiPT10LmxvY2F0aW9uLnByb3RvY29sPyJodHRwczovL3NzbC53aWRnZXRzLndlYmVuZ2FnZS5jb20iOiJodHRwOi8vY2RuLndpZGdldHMud2ViZW5nYWdlLmNvbSIpKyIvanMvd2ViZW5nYWdlLW1pbi12LTYuMC5qcyIsZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShmLGQpfSl9fSh3aW5kb3csZG9jdW1lbnQsIndlYmVuZ2FnZSIpOwo8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+d2luZG93Lk5SRVVNfHwoTlJFVU09e30pLF9fbnJfcmVxdWlyZT1mdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcihuKXtpZighZVtuXSl7dmFyIG89ZVtuXT17ZXhwb3J0czp7fX07dFtuXVswXS5jYWxsKG8uZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbz10W25dWzFdW2VdO3JldHVybiByKG98fGUpfSxvLG8uZXhwb3J0cyl9cmV0dXJuIGVbbl0uZXhwb3J0c31pZigiZnVuY3Rpb24iPT10eXBlb2YgX19ucl9yZXF1aXJlKXJldHVybiBfX25yX3JlcXVpcmU7Zm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspcihuW29dKTtyZXR1cm4gcn0oezE6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe3RyeXtzLmNvbnNvbGUmJmNvbnNvbGUubG9nKHQpfWNhdGNoKGUpe319dmFyIG8saT10KCJlZSIpLGE9dCgxNSkscz17fTt0cnl7bz1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiX19ucl9mbGFncyIpLnNwbGl0KCIsIiksY29uc29sZSYmImZ1bmN0aW9uIj09dHlwZW9mIGNvbnNvbGUubG9nJiYocy5jb25zb2xlPSEwLG8uaW5kZXhPZigiZGV2IikhPT0tMSYmKHMuZGV2PSEwKSxvLmluZGV4T2YoIm5yX2RldiIpIT09LTEmJihzLm5yRGV2PSEwKSl9Y2F0Y2goYyl7fXMubnJEZXYmJmkub24oImludGVybmFsLWVycm9yIixmdW5jdGlvbih0KXtyKHQuc3RhY2spfSkscy5kZXYmJmkub24oImZuLWVyciIsZnVuY3Rpb24odCxlLG4pe3Iobi5zdGFjayl9KSxzLmRldiYmKHIoIk5SIEFHRU5UIElOIERFVkVMT1BNRU5UIE1PREUiKSxyKCJmbGFnczogIithKHMsZnVuY3Rpb24odCxlKXtyZXR1cm4gdH0pLmpvaW4oIiwgIikpKX0se31dLDI6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSxuLHIsbyl7dHJ5e2Q/ZC09MTppKCJlcnIiLFtvfHxuZXcgVW5jYXVnaHRFeGNlcHRpb24odCxlLG4pXSl9Y2F0Y2gocyl7dHJ5e2koImllcnIiLFtzLChuZXcgRGF0ZSkuZ2V0VGltZSgpLCEwXSl9Y2F0Y2goYyl7fX1yZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZiYmZi5hcHBseSh0aGlzLGEoYXJndW1lbnRzKSl9ZnVuY3Rpb24gVW5jYXVnaHRFeGNlcHRpb24odCxlLG4pe3RoaXMubWVzc2FnZT10fHwiVW5jYXVnaHQgZXJyb3Igd2l0aCBubyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIix0aGlzLnNvdXJjZVVSTD1lLHRoaXMubGluZT1ufWZ1bmN0aW9uIG8odCl7aSgiZXJyIixbdCwobmV3IERhdGUpLmdldFRpbWUoKV0pfXZhciBpPXQoImhhbmRsZSIpLGE9dCgxNikscz10KCJlZSIpLGM9dCgibG9hZGVyIiksZj13aW5kb3cub25lcnJvcix1PSExLGQ9MDtjLmZlYXR1cmVzLmVycj0hMCx0KDEpLHdpbmRvdy5vbmVycm9yPXI7dHJ5e3Rocm93IG5ldyBFcnJvcn1jYXRjaChsKXsic3RhY2siaW4gbCYmKHQoOCksdCg3KSwiYWRkRXZlbnRMaXN0ZW5lciJpbiB3aW5kb3cmJnQoNSksYy54aHJXcmFwcGFibGUmJnQoOSksdT0hMCl9cy5vbigiZm4tc3RhcnQiLGZ1bmN0aW9uKHQsZSxuKXt1JiYoZCs9MSl9KSxzLm9uKCJmbi1lcnIiLGZ1bmN0aW9uKHQsZSxuKXt1JiYodGhpcy50aHJvd249ITAsbyhuKSl9KSxzLm9uKCJmbi1lbmQiLGZ1bmN0aW9uKCl7dSYmIXRoaXMudGhyb3duJiZkPjAmJihkLT0xKX0pLHMub24oImludGVybmFsLWVycm9yIixmdW5jdGlvbih0KXtpKCJpZXJyIixbdCwobmV3IERhdGUpLmdldFRpbWUoKSwhMF0pfSl9LHt9XSwzOltmdW5jdGlvbih0LGUsbil7dCgibG9hZGVyIikuZmVhdHVyZXMuaW5zPSEwfSx7fV0sNDpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCl7fWlmKHdpbmRvdy5wZXJmb3JtYW5jZSYmd2luZG93LnBlcmZvcm1hbmNlLnRpbWluZyYmd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUpe3ZhciBvPXQoImVlIiksaT10KCJoYW5kbGUiKSxhPXQoOCkscz10KDcpLGM9ImxlYXJSZXNvdXJjZVRpbWluZ3MiLGY9ImFkZEV2ZW50TGlzdGVuZXIiLHU9InJlc291cmNldGltaW5nYnVmZmVyZnVsbCIsZD0iYnN0UmVzb3VyY2UiLGw9InJlc291cmNlIixwPSItc3RhcnQiLGg9Ii1lbmQiLG09ImZuIitwLHc9ImZuIitoLHY9ImJzdFRpbWVyIix5PSJwdXNoU3RhdGUiO3QoImxvYWRlciIpLmZlYXR1cmVzLnN0bj0hMCx0KDYpO3ZhciBnPU5SRVVNLm8uRVY7by5vbihtLGZ1bmN0aW9uKHQsZSl7dmFyIG49dFswXTtuIGluc3RhbmNlb2YgZyYmKHRoaXMuYnN0U3RhcnQ9RGF0ZS5ub3coKSl9KSxvLm9uKHcsZnVuY3Rpb24odCxlKXt2YXIgbj10WzBdO24gaW5zdGFuY2VvZiBnJiZpKCJic3QiLFtuLGUsdGhpcy5ic3RTdGFydCxEYXRlLm5vdygpXSl9KSxhLm9uKG0sZnVuY3Rpb24odCxlLG4pe3RoaXMuYnN0U3RhcnQ9RGF0ZS5ub3coKSx0aGlzLmJzdFR5cGU9bn0pLGEub24odyxmdW5jdGlvbih0LGUpe2kodixbZSx0aGlzLmJzdFN0YXJ0LERhdGUubm93KCksdGhpcy5ic3RUeXBlXSl9KSxzLm9uKG0sZnVuY3Rpb24oKXt0aGlzLmJzdFN0YXJ0PURhdGUubm93KCl9KSxzLm9uKHcsZnVuY3Rpb24odCxlKXtpKHYsW2UsdGhpcy5ic3RTdGFydCxEYXRlLm5vdygpLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXSl9KSxvLm9uKHkrcCxmdW5jdGlvbih0KXt0aGlzLnRpbWU9RGF0ZS5ub3coKSx0aGlzLnN0YXJ0UGF0aD1sb2NhdGlvbi5wYXRobmFtZStsb2NhdGlvbi5oYXNofSksby5vbih5K2gsZnVuY3Rpb24odCl7aSgiYnN0SGlzdCIsW2xvY2F0aW9uLnBhdGhuYW1lK2xvY2F0aW9uLmhhc2gsdGhpcy5zdGFydFBhdGgsdGhpcy50aW1lXSl9KSxmIGluIHdpbmRvdy5wZXJmb3JtYW5jZSYmKHdpbmRvdy5wZXJmb3JtYW5jZVsiYyIrY10/d2luZG93LnBlcmZvcm1hbmNlW2ZdKHUsZnVuY3Rpb24odCl7aShkLFt3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShsKV0pLHdpbmRvdy5wZXJmb3JtYW5jZVsiYyIrY10oKX0sITEpOndpbmRvdy5wZXJmb3JtYW5jZVtmXSgid2Via2l0Iit1LGZ1bmN0aW9uKHQpe2koZCxbd2luZG93LnBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUobCldKSx3aW5kb3cucGVyZm9ybWFuY2VbIndlYmtpdEMiK2NdKCl9LCExKSksZG9jdW1lbnRbZl0oInNjcm9sbCIsciwhMSksZG9jdW1lbnRbZl0oImtleXByZXNzIixyLCExKSxkb2N1bWVudFtmXSgiY2xpY2siLHIsITEpfX0se31dLDU6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe2Zvcih2YXIgZT10O2UmJiFlLmhhc093blByb3BlcnR5KHUpOyllPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtlJiZvKGUpfWZ1bmN0aW9uIG8odCl7cy5pblBsYWNlKHQsW3UsZF0sIi0iLGkpfWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gdFsxXX12YXIgYT10KCJlZSIpLmdldCgiZXZlbnRzIikscz10KDE3KShhKSxjPXQoImdvcyIpLGY9WE1MSHR0cFJlcXVlc3QsdT0iYWRkRXZlbnRMaXN0ZW5lciIsZD0icmVtb3ZlRXZlbnRMaXN0ZW5lciI7ZS5leHBvcnRzPWEsImdldFByb3RvdHlwZU9mImluIE9iamVjdD8ocihkb2N1bWVudCkscih3aW5kb3cpLHIoZi5wcm90b3R5cGUpKTpmLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSh1KSYmKG8od2luZG93KSxvKGYucHJvdG90eXBlKSksYS5vbih1KyItc3RhcnQiLGZ1bmN0aW9uKHQsZSl7aWYodFsxXSl7dmFyIG49dFsxXTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygbil7dmFyIHI9YyhuLCJuckB3cmFwcGVkIixmdW5jdGlvbigpe3JldHVybiBzKG4sImZuLSIsbnVsbCxuLm5hbWV8fCJhbm9ueW1vdXMiKX0pO3RoaXMud3JhcHBlZD10WzFdPXJ9ZWxzZSJmdW5jdGlvbiI9PXR5cGVvZiBuLmhhbmRsZUV2ZW50JiZzLmluUGxhY2UobixbImhhbmRsZUV2ZW50Il0sImZuLSIpfX0pLGEub24oZCsiLXN0YXJ0IixmdW5jdGlvbih0KXt2YXIgZT10aGlzLndyYXBwZWQ7ZSYmKHRbMV09ZSl9KX0se31dLDY6W2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj10KCJlZSIpLmdldCgiaGlzdG9yeSIpLG89dCgxNykocik7ZS5leHBvcnRzPXIsby5pblBsYWNlKHdpbmRvdy5oaXN0b3J5LFsicHVzaFN0YXRlIiwicmVwbGFjZVN0YXRlIl0sIi0iKX0se31dLDc6W2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj10KCJlZSIpLmdldCgicmFmIiksbz10KDE3KShyKSxpPSJlcXVlc3RBbmltYXRpb25GcmFtZSI7ZS5leHBvcnRzPXIsby5pblBsYWNlKHdpbmRvdyxbInIiK2ksIm1velIiK2ksIndlYmtpdFIiK2ksIm1zUiIraV0sInJhZi0iKSxyLm9uKCJyYWYtc3RhcnQiLGZ1bmN0aW9uKHQpe3RbMF09byh0WzBdLCJmbi0iKX0pfSx7fV0sODpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlLG4pe3RbMF09YSh0WzBdLCJmbi0iLG51bGwsbil9ZnVuY3Rpb24gbyh0LGUsbil7dGhpcy5tZXRob2Q9bix0aGlzLnRpbWVyRHVyYXRpb249Im51bWJlciI9PXR5cGVvZiB0WzFdP3RbMV06MCx0WzBdPWEodFswXSwiZm4tIix0aGlzLG4pfXZhciBpPXQoImVlIikuZ2V0KCJ0aW1lciIpLGE9dCgxNykoaSkscz0ic2V0VGltZW91dCIsYz0ic2V0SW50ZXJ2YWwiLGY9ImNsZWFyVGltZW91dCIsdT0iLXN0YXJ0IixkPSItIjtlLmV4cG9ydHM9aSxhLmluUGxhY2Uod2luZG93LFtzLCJzZXRJbW1lZGlhdGUiXSxzK2QpLGEuaW5QbGFjZSh3aW5kb3csW2NdLGMrZCksYS5pblBsYWNlKHdpbmRvdyxbZiwiY2xlYXJJbW1lZGlhdGUiXSxmK2QpLGkub24oYyt1LHIpLGkub24ocyt1LG8pfSx7fV0sOTpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlKXtkLmluUGxhY2UoZSxbIm9ucmVhZHlzdGF0ZWNoYW5nZSJdLCJmbi0iLHMpfWZ1bmN0aW9uIG8oKXt2YXIgdD10aGlzLGU9dS5jb250ZXh0KHQpO3QucmVhZHlTdGF0ZT4zJiYhZS5yZXNvbHZlZCYmKGUucmVzb2x2ZWQ9ITAsdS5lbWl0KCJ4aHItcmVzb2x2ZWQiLFtdLHQpKSxkLmluUGxhY2UodCx3LCJmbi0iLHMpfWZ1bmN0aW9uIGkodCl7di5wdXNoKHQpLGgmJihnPS1nLGIuZGF0YT1nKX1mdW5jdGlvbiBhKCl7Zm9yKHZhciB0PTA7dDx2Lmxlbmd0aDt0KyspcihbXSx2W3RdKTt2Lmxlbmd0aCYmKHY9W10pfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gZX1mdW5jdGlvbiBjKHQsZSl7Zm9yKHZhciBuIGluIHQpZVtuXT10W25dO3JldHVybiBlfXQoNSk7dmFyIGY9dCgiZWUiKSx1PWYuZ2V0KCJ4aHIiKSxkPXQoMTcpKHUpLGw9TlJFVU0ubyxwPWwuWEhSLGg9bC5NTyxtPSJyZWFkeXN0YXRlY2hhbmdlIix3PVsib25sb2FkIiwib25lcnJvciIsIm9uYWJvcnQiLCJvbmxvYWRzdGFydCIsIm9ubG9hZGVuZCIsIm9ucHJvZ3Jlc3MiLCJvbnRpbWVvdXQiXSx2PVtdO2UuZXhwb3J0cz11O3ZhciB5PXdpbmRvdy5YTUxIdHRwUmVxdWVzdD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgcCh0KTt0cnl7dS5lbWl0KCJuZXcteGhyIixbZV0sZSksZS5hZGRFdmVudExpc3RlbmVyKG0sbywhMSl9Y2F0Y2gobil7dHJ5e3UuZW1pdCgiaW50ZXJuYWwtZXJyb3IiLFtuXSl9Y2F0Y2gocil7fX1yZXR1cm4gZX07aWYoYyhwLHkpLHkucHJvdG90eXBlPXAucHJvdG90eXBlLGQuaW5QbGFjZSh5LnByb3RvdHlwZSxbIm9wZW4iLCJzZW5kIl0sIi14aHItIixzKSx1Lm9uKCJzZW5kLXhoci1zdGFydCIsZnVuY3Rpb24odCxlKXtyKHQsZSksaShlKX0pLHUub24oIm9wZW4teGhyLXN0YXJ0IixyKSxoKXt2YXIgZz0xLGI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZyk7bmV3IGgoYSkub2JzZXJ2ZShiLHtjaGFyYWN0ZXJEYXRhOiEwfSl9ZWxzZSBmLm9uKCJmbi1lbmQiLGZ1bmN0aW9uKHQpe3RbMF0mJnRbMF0udHlwZT09PW18fGEoKX0pfSx7fV0sMTA6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe3ZhciBlPXRoaXMucGFyYW1zLG49dGhpcy5tZXRyaWNzO2lmKCF0aGlzLmVuZGVkKXt0aGlzLmVuZGVkPSEwO2Zvcih2YXIgcj0wO3I8ZDtyKyspdC5yZW1vdmVFdmVudExpc3RlbmVyKHVbcl0sdGhpcy5saXN0ZW5lciwhMSk7aWYoIWUuYWJvcnRlZCl7aWYobi5kdXJhdGlvbj0obmV3IERhdGUpLmdldFRpbWUoKS10aGlzLnN0YXJ0VGltZSw0PT09dC5yZWFkeVN0YXRlKXtlLnN0YXR1cz10LnN0YXR1czt2YXIgaT1vKHQsdGhpcy5sYXN0U2l6ZSk7aWYoaSYmKG4ucnhTaXplPWkpLHRoaXMuc2FtZU9yaWdpbil7dmFyIGE9dC5nZXRSZXNwb25zZUhlYWRlcigiWC1OZXdSZWxpYy1BcHAtRGF0YSIpO2EmJihlLmNhdD1hLnNwbGl0KCIsICIpLnBvcCgpKX19ZWxzZSBlLnN0YXR1cz0wO24uY2JUaW1lPXRoaXMuY2JUaW1lLGYuZW1pdCgieGhyLWRvbmUiLFt0XSx0KSxzKCJ4aHIiLFtlLG4sdGhpcy5zdGFydFRpbWVdKX19fWZ1bmN0aW9uIG8odCxlKXt2YXIgbj10LnJlc3BvbnNlVHlwZTtpZigianNvbiI9PT1uJiZudWxsIT09ZSlyZXR1cm4gZTt2YXIgcj0iYXJyYXlidWZmZXIiPT09bnx8ImJsb2IiPT09bnx8Impzb24iPT09bj90LnJlc3BvbnNlOnQucmVzcG9uc2VUZXh0O3JldHVybiBoKHIpfWZ1bmN0aW9uIGkodCxlKXt2YXIgbj1jKGUpLHI9dC5wYXJhbXM7ci5ob3N0PW4uaG9zdG5hbWUrIjoiK24ucG9ydCxyLnBhdGhuYW1lPW4ucGF0aG5hbWUsdC5zYW1lT3JpZ2luPW4uc2FtZU9yaWdpbn12YXIgYT10KCJsb2FkZXIiKTtpZihhLnhocldyYXBwYWJsZSl7dmFyIHM9dCgiaGFuZGxlIiksYz10KDExKSxmPXQoImVlIiksdT1bImxvYWQiLCJlcnJvciIsImFib3J0IiwidGltZW91dCJdLGQ9dS5sZW5ndGgsbD10KCJpZCIpLHA9dCgxNCksaD10KDEzKSxtPXdpbmRvdy5YTUxIdHRwUmVxdWVzdDthLmZlYXR1cmVzLnhocj0hMCx0KDkpLGYub24oIm5ldy14aHIiLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7ZS50b3RhbENicz0wLGUuY2FsbGVkPTAsZS5jYlRpbWU9MCxlLmVuZD1yLGUuZW5kZWQ9ITEsZS54aHJHdWlkcz17fSxlLmxhc3RTaXplPW51bGwscCYmKHA+MzR8fHA8MTApfHx3aW5kb3cub3BlcmF8fHQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGZ1bmN0aW9uKHQpe2UubGFzdFNpemU9dC5sb2FkZWR9LCExKX0pLGYub24oIm9wZW4teGhyLXN0YXJ0IixmdW5jdGlvbih0KXt0aGlzLnBhcmFtcz17bWV0aG9kOnRbMF19LGkodGhpcyx0WzFdKSx0aGlzLm1ldHJpY3M9e319KSxmLm9uKCJvcGVuLXhoci1lbmQiLGZ1bmN0aW9uKHQsZSl7ImxvYWRlcl9jb25maWciaW4gTlJFVU0mJiJ4cGlkImluIE5SRVVNLmxvYWRlcl9jb25maWcmJnRoaXMuc2FtZU9yaWdpbiYmZS5zZXRSZXF1ZXN0SGVhZGVyKCJYLU5ld1JlbGljLUlEIixOUkVVTS5sb2FkZXJfY29uZmlnLnhwaWQpfSksZi5vbigic2VuZC14aHItc3RhcnQiLGZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5tZXRyaWNzLHI9dFswXSxvPXRoaXM7aWYobiYmcil7dmFyIGk9aChyKTtpJiYobi50eFNpemU9aSl9dGhpcy5zdGFydFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5saXN0ZW5lcj1mdW5jdGlvbih0KXt0cnl7ImFib3J0Ij09PXQudHlwZSYmKG8ucGFyYW1zLmFib3J0ZWQ9ITApLCgibG9hZCIhPT10LnR5cGV8fG8uY2FsbGVkPT09by50b3RhbENicyYmKG8ub25sb2FkQ2FsbGVkfHwiZnVuY3Rpb24iIT10eXBlb2YgZS5vbmxvYWQpKSYmby5lbmQoZSl9Y2F0Y2gobil7dHJ5e2YuZW1pdCgiaW50ZXJuYWwtZXJyb3IiLFtuXSl9Y2F0Y2gocil7fX19O2Zvcih2YXIgYT0wO2E8ZDthKyspZS5hZGRFdmVudExpc3RlbmVyKHVbYV0sdGhpcy5saXN0ZW5lciwhMSl9KSxmLm9uKCJ4aHItY2ItdGltZSIsZnVuY3Rpb24odCxlLG4pe3RoaXMuY2JUaW1lKz10LGU/dGhpcy5vbmxvYWRDYWxsZWQ9ITA6dGhpcy5jYWxsZWQrPTEsdGhpcy5jYWxsZWQhPT10aGlzLnRvdGFsQ2JzfHwhdGhpcy5vbmxvYWRDYWxsZWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBuLm9ubG9hZHx8dGhpcy5lbmQobil9KSxmLm9uKCJ4aHItbG9hZC1hZGRlZCIsZnVuY3Rpb24odCxlKXt2YXIgbj0iIitsKHQpKyEhZTt0aGlzLnhockd1aWRzJiYhdGhpcy54aHJHdWlkc1tuXSYmKHRoaXMueGhyR3VpZHNbbl09ITAsdGhpcy50b3RhbENicys9MSl9KSxmLm9uKCJ4aHItbG9hZC1yZW1vdmVkIixmdW5jdGlvbih0LGUpe3ZhciBuPSIiK2wodCkrISFlO3RoaXMueGhyR3VpZHMmJnRoaXMueGhyR3VpZHNbbl0mJihkZWxldGUgdGhpcy54aHJHdWlkc1tuXSx0aGlzLnRvdGFsQ2JzLT0xKX0pLGYub24oImFkZEV2ZW50TGlzdGVuZXItZW5kIixmdW5jdGlvbih0LGUpe2UgaW5zdGFuY2VvZiBtJiYibG9hZCI9PT10WzBdJiZmLmVtaXQoInhoci1sb2FkLWFkZGVkIixbdFsxXSx0WzJdXSxlKX0pLGYub24oInJlbW92ZUV2ZW50TGlzdGVuZXItZW5kIixmdW5jdGlvbih0LGUpe2UgaW5zdGFuY2VvZiBtJiYibG9hZCI9PT10WzBdJiZmLmVtaXQoInhoci1sb2FkLXJlbW92ZWQiLFt0WzFdLHRbMl1dLGUpfSksZi5vbigiZm4tc3RhcnQiLGZ1bmN0aW9uKHQsZSxuKXtlIGluc3RhbmNlb2YgbSYmKCJvbmxvYWQiPT09biYmKHRoaXMub25sb2FkPSEwKSwoImxvYWQiPT09KHRbMF0mJnRbMF0udHlwZSl8fHRoaXMub25sb2FkKSYmKHRoaXMueGhyQ2JTdGFydD0obmV3IERhdGUpLmdldFRpbWUoKSkpfSksZi5vbigiZm4tZW5kIixmdW5jdGlvbih0LGUpe3RoaXMueGhyQ2JTdGFydCYmZi5lbWl0KCJ4aHItY2ItdGltZSIsWyhuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMueGhyQ2JTdGFydCx0aGlzLm9ubG9hZCxlXSxlKX0pfX0se31dLDExOltmdW5jdGlvbih0LGUsbil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxuPXdpbmRvdy5sb2NhdGlvbixyPXt9O2UuaHJlZj10LHIucG9ydD1lLnBvcnQ7dmFyIG89ZS5ocmVmLnNwbGl0KCI6Ly8iKTshci5wb3J0JiZvWzFdJiYoci5wb3J0PW9bMV0uc3BsaXQoIi8iKVswXS5zcGxpdCgiQCIpLnBvcCgpLnNwbGl0KCI6IilbMV0pLHIucG9ydCYmIjAiIT09ci5wb3J0fHwoci5wb3J0PSJodHRwcyI9PT1vWzBdPyI0NDMiOiI4MCIpLHIuaG9zdG5hbWU9ZS5ob3N0bmFtZXx8bi5ob3N0bmFtZSxyLnBhdGhuYW1lPWUucGF0aG5hbWUsci5wcm90b2NvbD1vWzBdLCIvIiE9PXIucGF0aG5hbWUuY2hhckF0KDApJiYoci5wYXRobmFtZT0iLyIrci5wYXRobmFtZSk7dmFyIGk9IWUucHJvdG9jb2x8fCI6Ij09PWUucHJvdG9jb2x8fGUucHJvdG9jb2w9PT1uLnByb3RvY29sLGE9ZS5ob3N0bmFtZT09PWRvY3VtZW50LmRvbWFpbiYmZS5wb3J0PT09bi5wb3J0O3JldHVybiByLnNhbWVPcmlnaW49aSYmKCFlLmhvc3RuYW1lfHxhKSxyfX0se31dLDEyOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcigpe31mdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaSh0LFsobmV3IERhdGUpLmdldFRpbWUoKV0uY29uY2F0KHMoYXJndW1lbnRzKSksZT9udWxsOnRoaXMsbiksZT92b2lkIDA6dGhpc319dmFyIGk9dCgiaGFuZGxlIiksYT10KDE1KSxzPXQoMTYpLGM9dCgiZWUiKS5nZXQoInRyYWNlciIpLGY9TlJFVU07InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cubmV3cmVsaWMmJihuZXdyZWxpYz1mKTt2YXIgdT1bInNldFBhZ2VWaWV3TmFtZSIsInNldEN1c3RvbUF0dHJpYnV0ZSIsInNldEVycm9ySGFuZGxlciIsImZpbmlzaGVkIiwiYWRkVG9UcmFjZSIsImlubGluZUhpdCJdLGQ9ImFwaS0iLGw9ZCsiaXhuLSI7YSh1LGZ1bmN0aW9uKHQsZSl7ZltlXT1vKGQrZSwhMCwiYXBpIil9KSxmLmFkZFBhZ2VBY3Rpb249byhkKyJhZGRQYWdlQWN0aW9uIiwhMCksZS5leHBvcnRzPW5ld3JlbGljLGYuaW50ZXJhY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4obmV3IHIpLmdldCgpfTt2YXIgcD1yLnByb3RvdHlwZT17Y3JlYXRlVHJhY2VyOmZ1bmN0aW9uKHQsZSl7dmFyIG49e30scj10aGlzLG89ImZ1bmN0aW9uIj09dHlwZW9mIGU7cmV0dXJuIGkobCsidHJhY2VyIixbRGF0ZS5ub3coKSx0LG5dLHIpLGZ1bmN0aW9uKCl7aWYoYy5lbWl0KChvPyIiOiJuby0iKSsiZm4tc3RhcnQiLFtEYXRlLm5vdygpLHIsb10sbiksbyl0cnl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7Yy5lbWl0KCJmbi1lbmQiLFtEYXRlLm5vdygpXSxuKX19fX07YSgic2V0TmFtZSxzZXRBdHRyaWJ1dGUsc2F2ZSxpZ25vcmUsb25FbmQsZ2V0Q29udGV4dCxlbmQsZ2V0Ii5zcGxpdCgiLCIpLGZ1bmN0aW9uKHQsZSl7cFtlXT1vKGwrZSl9KSxuZXdyZWxpYy5ub3RpY2VFcnJvcj1mdW5jdGlvbih0KXsic3RyaW5nIj09dHlwZW9mIHQmJih0PW5ldyBFcnJvcih0KSksaSgiZXJyIixbdCwobmV3IERhdGUpLmdldFRpbWUoKV0pfX0se31dLDEzOltmdW5jdGlvbih0LGUsbil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmdC5sZW5ndGgpcmV0dXJuIHQubGVuZ3RoO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmdCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiZ0LmJ5dGVMZW5ndGgpcmV0dXJuIHQuYnl0ZUxlbmd0aDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEJsb2ImJnQgaW5zdGFuY2VvZiBCbG9iJiZ0LnNpemUpcmV0dXJuIHQuc2l6ZTtpZighKCJ1bmRlZmluZWQiIT10eXBlb2YgRm9ybURhdGEmJnQgaW5zdGFuY2VvZiBGb3JtRGF0YSkpdHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KS5sZW5ndGh9Y2F0Y2goZSl7cmV0dXJufX19fSx7fV0sMTQ6W2Z1bmN0aW9uKHQsZSxuKXt2YXIgcj0wLG89bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvRmlyZWZveFtcL1xzXShcZCtcLlxkKykvKTtvJiYocj0rb1sxXSksZS5leHBvcnRzPXJ9LHt9XSwxNTpbZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIodCxlKXt2YXIgbj1bXSxyPSIiLGk9MDtmb3IociBpbiB0KW8uY2FsbCh0LHIpJiYobltpXT1lKHIsdFtyXSksaSs9MSk7cmV0dXJuIG59dmFyIG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtlLmV4cG9ydHM9cn0se31dLDE2OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUsbil7ZXx8KGU9MCksInVuZGVmaW5lZCI9PXR5cGVvZiBuJiYobj10P3QubGVuZ3RoOjApO2Zvcih2YXIgcj0tMSxvPW4tZXx8MCxpPUFycmF5KG88MD8wOm8pOysrcjxvOylpW3JdPXRbZStyXTtyZXR1cm4gaX1lLmV4cG9ydHM9cn0se31dLDE3OltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXtyZXR1cm4hKHQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmFwcGx5JiYhdFthXSl9dmFyIG89dCgiZWUiKSxpPXQoMTYpLGE9Im5yQG9yaWdpbmFsIixzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYz0hMTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUsbixvKXtmdW5jdGlvbiBucldyYXBwZXIoKXt2YXIgcixhLHMsYzt0cnl7YT10aGlzLHI9aShhcmd1bWVudHMpLHM9ImZ1bmN0aW9uIj09dHlwZW9mIG4/bihyLGEpOm58fHt9fWNhdGNoKHUpe2QoW3UsIiIsW3IsYSxvXSxzXSl9ZihlKyJzdGFydCIsW3IsYSxvXSxzKTt0cnl7cmV0dXJuIGM9dC5hcHBseShhLHIpfWNhdGNoKGwpe3Rocm93IGYoZSsiZXJyIixbcixhLGxdLHMpLGx9ZmluYWxseXtmKGUrImVuZCIsW3IsYSxjXSxzKX19cmV0dXJuIHIodCk/dDooZXx8KGU9IiIpLG5yV3JhcHBlclthXT10LHUodCxucldyYXBwZXIpLG5yV3JhcHBlcil9ZnVuY3Rpb24gbih0LG4sbyxpKXtvfHwobz0iIik7dmFyIGEscyxjLGY9Ii0iPT09by5jaGFyQXQoMCk7Zm9yKGM9MDtjPG4ubGVuZ3RoO2MrKylzPW5bY10sYT10W3NdLHIoYSl8fCh0W3NdPWUoYSxmP3MrbzpvLGkscykpfWZ1bmN0aW9uIGYoZSxuLHIpe2lmKCFjKXtjPSEwO3RyeXt0LmVtaXQoZSxuLHIpfWNhdGNoKG8pe2QoW28sZSxuLHJdKX1jPSExfX1mdW5jdGlvbiB1KHQsZSl7aWYoT2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3Qua2V5cyl0cnl7dmFyIG49T2JqZWN0LmtleXModCk7cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX0sc2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0W25dPWUsZX19KX0pLGV9Y2F0Y2gocil7ZChbcl0pfWZvcih2YXIgbyBpbiB0KXMuY2FsbCh0LG8pJiYoZVtvXT10W29dKTtyZXR1cm4gZX1mdW5jdGlvbiBkKGUpe3RyeXt0LmVtaXQoImludGVybmFsLWVycm9yIixlKX1jYXRjaChuKXt9fXJldHVybiB0fHwodD1vKSxlLmluUGxhY2U9bixlLmZsYWc9YSxlfX0se31dLGVlOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcigpe31mdW5jdGlvbiBvKHQpe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQmJnQgaW5zdGFuY2VvZiByP3Q6dD9zKHQsYSxpKTppKCl9ZnVuY3Rpb24gbihuLHIsbyl7dCYmdChuLHIsbyk7Zm9yKHZhciBpPWUobyksYT1sKG4pLHM9YS5sZW5ndGgsYz0wO2M8cztjKyspYVtjXS5hcHBseShpLHIpO3ZhciB1PWZbd1tuXV07cmV0dXJuIHUmJnUucHVzaChbdixuLHIsaV0pLGl9ZnVuY3Rpb24gZCh0LGUpe21bdF09bCh0KS5jb25jYXQoZSl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gbVt0XXx8W119ZnVuY3Rpb24gcCh0KXtyZXR1cm4gdVt0XT11W3RdfHxvKG4pfWZ1bmN0aW9uIGgodCxlKXtjKHQsZnVuY3Rpb24odCxuKXtlPWV8fCJmZWF0dXJlIix3W25dPWUsZSBpbiBmfHwoZltlXT1bXSl9KX12YXIgbT17fSx3PXt9LHY9e29uOmQsZW1pdDpuLGdldDpwLGxpc3RlbmVyczpsLGNvbnRleHQ6ZSxidWZmZXI6aH07cmV0dXJuIHZ9ZnVuY3Rpb24gaSgpe3JldHVybiBuZXcgcn12YXIgYT0ibnJAY29udGV4dCIscz10KCJnb3MiKSxjPXQoMTUpLGY9e30sdT17fSxkPWUuZXhwb3J0cz1vKCk7ZC5iYWNrbG9nPWZ9LHt9XSxnb3M6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSxuKXtpZihvLmNhbGwodCxlKSlyZXR1cm4gdFtlXTt2YXIgcj1uKCk7aWYoT2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3Qua2V5cyl0cnl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMX0pLHJ9Y2F0Y2goaSl7fXJldHVybiB0W2VdPXIscn12YXIgbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2UuZXhwb3J0cz1yfSx7fV0saGFuZGxlOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUsbixyKXtvLmJ1ZmZlcihbdF0sciksby5lbWl0KHQsZSxuKX12YXIgbz10KCJlZSIpLmdldCgiaGFuZGxlIik7ZS5leHBvcnRzPXIsci5lZT1vfSx7fV0saWQ6W2Z1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiF0fHwib2JqZWN0IiE9PWUmJiJmdW5jdGlvbiIhPT1lPy0xOnQ9PT13aW5kb3c/MDphKHQsaSxmdW5jdGlvbigpe3JldHVybiBvKyt9KX12YXIgbz0xLGk9Im5yQGlkIixhPXQoImdvcyIpO2UuZXhwb3J0cz1yfSx7fV0sbG9hZGVyOltmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcigpe2lmKCFnKyspe3ZhciB0PXkuaW5mbz1OUkVVTS5pbmZvLGU9dS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07aWYodCYmdC5saWNlbnNlS2V5JiZ0LmFwcGxpY2F0aW9uSUQmJmUpe2ModyxmdW5jdGlvbihlLG4pe3RbZV18fCh0W2VdPW4pfSk7dmFyIG49Imh0dHBzIj09PW0uc3BsaXQoIjoiKVswXXx8dC5zc2xGb3JIdHRwO3kucHJvdG89bj8iaHR0cHM6Ly8iOiJodHRwOi8vIixzKCJtYXJrIixbIm9ubG9hZCIsYSgpXSxudWxsLCJhcGkiKTt2YXIgcj11LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3Iuc3JjPXkucHJvdG8rdC5hZ2VudCxlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHIsZSl9fX1mdW5jdGlvbiBvKCl7ImNvbXBsZXRlIj09PXUucmVhZHlTdGF0ZSYmaSgpfWZ1bmN0aW9uIGkoKXtzKCJtYXJrIixbImRvbUNvbnRlbnQiLGEoKV0sbnVsbCwiYXBpIil9ZnVuY3Rpb24gYSgpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfXZhciBzPXQoImhhbmRsZSIpLGM9dCgxNSksZj13aW5kb3csdT1mLmRvY3VtZW50LGQ9ImFkZEV2ZW50TGlzdGVuZXIiLGw9ImF0dGFjaEV2ZW50IixwPWYuWE1MSHR0cFJlcXVlc3QsaD1wJiZwLnByb3RvdHlwZTtOUkVVTS5vPXtTVDpzZXRUaW1lb3V0LENUOmNsZWFyVGltZW91dCxYSFI6cCxSRVE6Zi5SZXF1ZXN0LEVWOmYuRXZlbnQsUFI6Zi5Qcm9taXNlLE1POmYuTXV0YXRpb25PYnNlcnZlcn0sdCgxMik7dmFyIG09IiIrbG9jYXRpb24sdz17YmVhY29uOiJiYW0ubnItZGF0YS5uZXQiLGVycm9yQmVhY29uOiJiYW0ubnItZGF0YS5uZXQiLGFnZW50OiJqcy1hZ2VudC5uZXdyZWxpYy5jb20vbnItOTc0Lm1pbi5qcyJ9LHY9cCYmaCYmaFtkXSYmIS9DcmlPUy8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx5PWUuZXhwb3J0cz17b2Zmc2V0OmEoKSxvcmlnaW46bSxmZWF0dXJlczp7fSx4aHJXcmFwcGFibGU6dn07dVtkXT8odVtkXSgiRE9NQ29udGVudExvYWRlZCIsaSwhMSksZltkXSgibG9hZCIsciwhMSkpOih1W2xdKCJvbnJlYWR5c3RhdGVjaGFuZ2UiLG8pLGZbbF0oIm9ubG9hZCIscikpLHMoIm1hcmsiLFsiZmlyc3RieXRlIixhKCldLG51bGwsImFwaSIpO3ZhciBnPTB9LHt9XX0se30sWyJsb2FkZXIiLDIsMTAsNCwzXSk7CjtOUkVVTS5pbmZvPXtiZWFjb246ImJhbS5uci1kYXRhLm5ldCIsZXJyb3JCZWFjb246ImJhbS5uci1kYXRhLm5ldCIsbGljZW5zZUtleToiMjcwMGFmOGEzYyIsYXBwbGljYXRpb25JRDoiMzAyMjM4NzYiLHNhOjF9PC9zY3JpcHQ+PC9oZWFkPjxib2R5PjxkaXYgaWQ9Im1haW4iPjwvZGl2PjxzY3JpcHQgc3JjPSJodHRwczovL3MyLnBsdXJhbHNpZ2h0LmNvbS93ZWJwbGF5ZXIvcGxheWVyL2NsaWVudC9saWJzL2RyYWdnYWJpbGx5LnBrZ2QubWluLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cHM6Ly9zMi5wbHVyYWxzaWdodC5jb20vd2VicGxheWVyL3BsYXllci9jbGllbnQvbGlicy92aWRlby5taW4uanMiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL3MyLnBsdXJhbHNpZ2h0LmNvbS93ZWJwbGF5ZXIvcGxheWVyL2NsaWVudC9saWJzL3NwLm1pbi5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vczIucGx1cmFsc2lnaHQuY29tL3dlYnBsYXllci9wbGF5ZXIvY2xpZW50L2xpYnMvbW9kZXJuaXpyLWN1c3RvbS5taW4uanMiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvL3MucGx1cmFsc2lnaHQuY29tL21lbnRvcnMvdG9vbHMvc2lkZWJhci92MS9zaWRlYmFyLm1pbi5qcyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHBzOi8vczIucGx1cmFsc2lnaHQuY29tL3dlYnBsYXllci9qcy9tYWluLmFlZjhiYjUwNmIxYTE3ZDFjN2Q3Lm1pbi5qcyI+PC9zY3JpcHQ+PHNjcmlwdD5fc2F0ZWxsaXRlLnBhZ2VCb3R0b20oKTwvc2NyaXB0PjwvYm9keT48L2h0bWw+
ERROR: Unable to extract initial state; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 694, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 356, in extract
    return self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/pluralsight.py", line 170, in _real_extract
    r'var\s+initialState\s*=\s*({.+?});\n', webpage, 'initial state'),
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 659, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract initial state; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Description of your issue, suggested solution and other information

Pluralsight is no longer working for me. It was fine last week, and now no longer works.

@jsafrit
Copy link

@jsafrit jsafrit commented Oct 19, 2016

I see the same issue. Started happening sometime today, as it was working for me this morning and just stopped this afternoon. I was using version 2016.10.02 when it first failed and upgraded to 2016.10.19 and received the same error.

@antony-s-king
Copy link

@antony-s-king antony-s-king commented Oct 19, 2016

Agreed, I had the exact same experience as @jsafrit.

@garyng
Copy link

@garyng garyng commented Oct 20, 2016

Same issue here.
youtube_dl.utils.RegexNotFoundError

@plasticsaint
Copy link

@plasticsaint plasticsaint commented Oct 20, 2016

Same issue, started on previous version-- just updated to 2016.10.19 and the issue persists.

`youtube-dl.exe : [debug] System config: []
At line:1 char:1

  • youtube-dl.exe --continue --verbose --username USERNAME --password ...
  • - CategoryInfo          : NotSpecified: ([debug] System config: []:String) [], RemoteException
    - FullyQualifiedErrorId : NativeCommandError
    
    

[debug] User config: []
[debug] Command-line args: ['--continue', '--verbose', '--username', 'PRIVATE', '--password', 'PRIVATE', '--yes-playlist',
'https://app.pluralsight.com/library/courses/operating-systems-comptia-a-plus-220-902/table-of-contents', '-o',
'S:\Pluralsight%(playlist)s%(chapter_number)s_%(chapter)s%(playlist_index)s_%(title)s.%(ext)s']
[debug] Encodings: locale cp1252, fs mbcs, out cp1252, pref cp1252
[debug] youtube-dl version 2016.10.19
[debug] Python version 3.4.4 - Windows-10-10.0.14393
[debug] exe versions: ffmpeg N-81982-g7cf0ed3, ffprobe N-81982-g7cf0ed3
[debug] Proxy map: {}
ERROR: Unable to extract initial state; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call
youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\build\youtube_dl\YoutubeDL.py", line 694, in extract_info
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\build\youtube_dl\extractor\common.py", line 356, in extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\build\youtube_dl\extractor\pluralsight.py", line 170, in _real_extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\build\youtube_dl\extractor\common.py", line 659, in _search_regex
youtube_dl.utils.RegexNotFoundError: Unable to extract initial state; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to
update. Be sure to call youtube-dl with the --verbose flag and include its complete output.`

@mcverter
Copy link

@mcverter mcverter commented Oct 20, 2016

The regex doesn't work. Maybe pluralsight has a new format for their pages

Look below at the webpage string. The regex can not find a match which includes "initialState"
(Note: I had to replace all the angle-brackets in the html markup in order to post this comment)

/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/pluralsight.py(169)
collection = self.parse_json(
self.search_regex(
r'var\s+initialState\s
=\s
({.+?});\n', webpage, 'initial state'),

display_id)['course']['modules']

(Pdb) c

/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/pluralsight.py(169)_real_extract()
-> collection = self._parse_json(
(Pdb) webpage

u'|!DOCTYPE html||html||head||meta charset="utf-8"||meta http-equiv="X-UA-Compatible" content="IE=edge"||title||/title||meta name="description" content=""||meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"||meta name="apple-mobile-web-app-capable" content="yes"||meta name="format-detection" content="telephone=no"||!--[if !IE 9]||!--||link rel="stylesheet" href="https://s.pluralsight.com/typography/340628/7EFF5DB5CA297EBE7.css"||link rel="shortcut icon" href="https://s.pluralsight.com/favicon.ico"||!--|![endif]--||script src="//assets.adobedtm.com/2c5f2b30762ae62377916c09612cd9d60054fba9/satelliteLib-3f2001f88315610d295e482607f7d003c8627d08.js"||/script||script|var _helpgizmo_p = _helpgizmo_p || [];\n_helpgizmo_p.push(['_setProject', '57093ee491121c6d6a0c9311-57093f0591121c94680c92fb']);\n(function() {\n setTimeout(function(){\n var hg = document.createElement('script');\n hg.type = 'text/javascript';\n hg.async = true;\n hg.src = "//pluralsight.knowledgeowl.com/javascript?__pc=57093ee491121c6d6a0c9311-57093f0591121c94680c92fb";\n document.head.appendChild(hg);\n },250);\n})();\n|/script||script|if (typeof window !== 'undefined') {\n window.console = window.console || {};\n var methods = ['log', 'warning', 'info', 'debug'];\n for(var i=0; i|methods.length; i++) {\n if(!console[methods[i]]) {\n console[methods[i]] = function(){};\n }\n }\n}\n|/script||script|var youboraConfig = {"accountId":"pluralsight","username":"plsadmin"};\nvar buildVersion = 1335;\n|/script||script src="//s.pluralsight.com/analytics/analytics-facade.v2.0.0.js"||/script||script id="_webengage_script_tag" type="text/javascript"|var webengage; !function(e,t,n){function o(e,t){e[t[t.length-1]]=function(){r.__queue.push([t.join("."),arguments])}}var i,s,r=e[n],g=" ",l="init options track screen onReady".split(g),a="feedback survey notification".split(g),c="options render clear abort".split(g),p="Open Close Submit Complete View Click".split(g),u="identify login logout setAttribute".split(g);if(!r||!r.__v){for(e[n]=r={__queue:[],__v:"6.0",user:{}},i=0;i|l.length;i++)o(r,[l[i]]);for(i=0;i|a.length;i++){for(r[a[i]]={},s=0;s|c.length;s++)o(r[a[i]],[a[i],c[s]]);for(s=0;s|p.length;s++)o(r[a[i]],[a[i],"on"+p[s]])}for(i=0;i|u.length;i++)o(r.user,["user",u[i]]);setTimeout(function(){var f=t.createElement("script"),d=t.getElementById("_webengage_script_tag");f.type="text/javascript",f.async=!0,f.src=("https:"==t.location.protocol?"https://ssl.widgets.webengage.com":"http://cdn.widgets.webengage.com")+"/js/webengage-min-v-6.0.js",d.parentNode.insertBefore(f,d)})}}(window,document,"webengage");\n|/script||script type="text/javascript"|window.NREUM||(NREUM={}),__nr_require=function(t,e,n){function r(n){if(!e[n]){var o=e[n]={exports:{}};t[n][0].call(o.exports,function(e){var o=t[n][1][e];return r(o||e)},o,o.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o|n.length;o++)r(n[o]);return r}({1:[function(t,e,n){function r(t){try{s.console&&console.log(t)}catch(e){}}var o,i=t("ee"),a=t(15),s={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(s.console=!0,o.indexOf("dev")!==-1&&(s.dev=!0),o.indexOf("nr_dev")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on("internal-error",function(t){r(t.stack)}),s.dev&&i.on("fn-err",function(t,e,n){r(n.stack)}),s.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(s,function(t,e){return t}).join(", ")))},{}],2:[function(t,e,n){function r(t,e,n,r,o){try{d?d-=1:i("err",[o||new UncaughtException(t,e,n)])}catch(s){try{i("ierr",[s,(new Date).getTime(),!0])}catch(c){}}return"function"==typeof f&&f.apply(this,a(arguments))}function UncaughtException(t,e,n){this.message=t||"Uncaught error with no additional information",this.sourceURL=e,this.line=n}function o(t){i("err",[t,(new Date).getTime()])}var i=t("handle"),a=t(16),s=t("ee"),c=t("loader"),f=window.onerror,u=!1,d=0;c.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(l){"stack"in l&&(t(8),t(7),"addEventListener"in window&&t(5),c.xhrWrappable&&t(9),u=!0)}s.on("fn-start",function(t,e,n){u&&(d+=1)}),s.on("fn-err",function(t,e,n){u&&(this.thrown=!0,o(n))}),s.on("fn-end",function(){u&&!this.thrown&&d|0&&(d-=1)}),s.on("internal-error",function(t){i("ierr",[t,(new Date).getTime(),!0])})},{}],3:[function(t,e,n){t("loader").features.ins=!0},{}],4:[function(t,e,n){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var o=t("ee"),i=t("handle"),a=t(8),s=t(7),c="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,w="fn"+h,v="bstTimer",y="pushState";t("loader").features.stn=!0,t(6);var g=NREUM.o.EV;o.on(m,function(t,e){var n=t[0];n instanceof g&&(this.bstStart=Date.now())}),o.on(w,function(t,e){var n=t[0];n instanceof g&&i("bst",[n,e,this.bstStart,Date.now()])}),a.on(m,function(t,e,n){this.bstStart=Date.now(),this.bstType=n}),a.on(w,function(t,e){i(v,[e,this.bstStart,Date.now(),this.bstType])}),s.on(m,function(){this.bstStart=Date.now()}),s.on(w,function(t,e){i(v,[e,this.bstStart,Date.now(),"requestAnimationFrame"])}),o.on(y+p,function(t){this.time=Date.now(),this.startPath=location.pathname+location.hash}),o.on(y+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f in window.performance&&(window.performance["c"+c]?window.performancef:window.performancef),documentf,documentf,documentf}},{}],5:[function(t,e,n){function r(t){for(var e=t;e&&!e.hasOwnProperty(u);)e=Object.getPrototypeOf(e);e&&o(e)}function o(t){s.inPlace(t,[u,d],"-",i)}function i(t,e){return t[1]}var a=t("ee").get("events"),s=t(17)(a),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";e.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,e){if(t[1]){var n=t[1];if("function"==typeof n){var r=c(n,"nr@wrapped",function(){return s(n,"fn-",null,n.name||"anonymous")});this.wrapped=t[1]=r}else"function"==typeof n.handleEvent&&s.inPlace(n,["handleEvent"],"fn-")}}),a.on(d+"-start",function(t){var e=this.wrapped;e&&(t[1]=e)})},{}],6:[function(t,e,n){var r=t("ee").get("history"),o=t(17)(r);e.exports=r,o.inPlace(window.history,["pushState","replaceState"],"-")},{}],7:[function(t,e,n){var r=t("ee").get("raf"),o=t(17)(r),i="equestAnimationFrame";e.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],8:[function(t,e,n){function r(t,e,n){t[0]=a(t[0],"fn-",null,n)}function o(t,e,n){this.method=n,this.timerDuration="number"==typeof t[1]?t[1]:0,t[0]=a(t[0],"fn-",this,n)}var i=t("ee").get("timer"),a=t(17)(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";e.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],9:[function(t,e,n){function r(t,e){d.inPlace(e,["onreadystatechange"],"fn-",s)}function o(){var t=this,e=u.context(t);t.readyState|3&&!e.resolved&&(e.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,w,"fn-",s)}function i(t){v.push(t),h&&(g=-g,b.data=g)}function a(){for(var t=0;t|v.length;t++)r([],v[t]);v.length&&(v=[])}function s(t,e){return e}function c(t,e){for(var n in t)e[n]=t[n];return e}t(5);var f=t("ee"),u=f.get("xhr"),d=t(17)(u),l=NREUM.o,p=l.XHR,h=l.MO,m="readystatechange",w=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],v=[];e.exports=u;var y=window.XMLHttpRequest=function(t){var e=new p(t);try{u.emit("new-xhr",[e],e),e.addEventListener(m,o,!1)}catch(n){try{u.emit("internal-error",[n])}catch(r){}}return e};if(c(p,y),y.prototype=p.prototype,d.inPlace(y.prototype,["open","send"],"-xhr-",s),u.on("send-xhr-start",function(t,e){r(t,e),i(e)}),u.on("open-xhr-start",r),h){var g=1,b=document.createTextNode(g);new h(a).observe(b,{characterData:!0})}else f.on("fn-end",function(t){t[0]&&t[0].type===m||a()})},{}],10:[function(t,e,n){function r(t){var e=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r|d;r++)t.removeEventListener(u[r],this.listener,!1);if(!e.aborted){if(n.duration=(new Date).getTime()-this.startTime,4===t.readyState){e.status=t.status;var i=o(t,this.lastSize);if(i&&(n.rxSize=i),this.sameOrigin){var a=t.getResponseHeader("X-NewRelic-App-Data");a&&(e.cat=a.split(", ").pop())}}else e.status=0;n.cbTime=this.cbTime,f.emit("xhr-done",[t],t),s("xhr",[e,n,this.startTime])}}}function o(t,e){var n=t.responseType;if("json"===n&&null!==e)return e;var r="arraybuffer"===n||"blob"===n||"json"===n?t.response:t.responseText;return h(r)}function i(t,e){var n=c(e),r=t.params;r.host=n.hostname+":"+n.port,r.pathname=n.pathname,t.sameOrigin=n.sameOrigin}var a=t("loader");if(a.xhrWrappable){var s=t("handle"),c=t(11),f=t("ee"),u=["load","error","abort","timeout"],d=u.length,l=t("id"),p=t(14),h=t(13),m=window.XMLHttpRequest;a.features.xhr=!0,t(9),f.on("new-xhr",function(t){var e=this;e.totalCbs=0,e.called=0,e.cbTime=0,e.end=r,e.ended=!1,e.xhrGuids={},e.lastSize=null,p&&(p|34||p|10)||window.opera||t.addEventListener("progress",function(t){e.lastSize=t.loaded},!1)}),f.on("open-xhr-start",function(t){this.params={method:t[0]},i(this,t[1]),this.metrics={}}),f.on("open-xhr-end",function(t,e){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&e.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid)}),f.on("send-xhr-start",function(t,e){var n=this.metrics,r=t[0],o=this;if(n&&r){var i=h(r);i&&(n.txSize=i)}this.startTime=(new Date).getTime(),this.listener=function(t){try{"abort"===t.type&&(o.params.aborted=!0),("load"!==t.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof e.onload))&&o.end(e)}catch(n){try{f.emit("internal-error",[n])}catch(r){}}};for(var a=0;a|d;a++)e.addEventListener(u[a],this.listener,!1)}),f.on("xhr-cb-time",function(t,e,n){this.cbTime+=t,e?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof n.onload||this.end(n)}),f.on("xhr-load-added",function(t,e){var n=""+l(t)+!!e;this.xhrGuids&&!this.xhrGuids[n]&&(this.xhrGuids[n]=!0,this.totalCbs+=1)}),f.on("xhr-load-removed",function(t,e){var n=""+l(t)+!!e;this.xhrGuids&&this.xhrGuids[n]&&(delete this.xhrGuids[n],this.totalCbs-=1)}),f.on("addEventListener-end",function(t,e){e instanceof m&&"load"===t[0]&&f.emit("xhr-load-added",[t[1],t[2]],e)}),f.on("removeEventListener-end",function(t,e){e instanceof m&&"load"===t[0]&&f.emit("xhr-load-removed",[t[1],t[2]],e)}),f.on("fn-start",function(t,e,n){e instanceof m&&("onload"===n&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=(new Date).getTime()))}),f.on("fn-end",function(t,e){this.xhrCbStart&&f.emit("xhr-cb-time",[(new Date).getTime()-this.xhrCbStart,this.onload,e],e)})}},{}],11:[function(t,e,n){e.exports=function(t){var e=document.createElement("a"),n=window.location,r={};e.href=t,r.port=e.port;var o=e.href.split("://");!r.port&&o[1]&&(r.port=o[1].split("/")[0].split("@").pop().split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=e.hostname||n.hostname,r.pathname=e.pathname,r.protocol=o[0],"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname);var i=!e.protocol||":"===e.protocol||e.protocol===n.protocol,a=e.hostname===document.domain&&e.port===n.port;return r.sameOrigin=i&&(!e.hostname||a),r}},{}],12:[function(t,e,n){function r(){}function o(t,e,n){return function(){return i(t,[(new Date).getTime()].concat(s(arguments)),e?null:this,n),e?void 0:this}}var i=t("handle"),a=t(15),s=t(16),c=t("ee").get("tracer"),f=NREUM;"undefined"==typeof window.newrelic&&(newrelic=f);var u=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit"],d="api-",l=d+"ixn-";a(u,function(t,e){f[e]=o(d+e,!0,"api")}),f.addPageAction=o(d+"addPageAction",!0),e.exports=newrelic,f.interaction=function(){return(new r).get()};var p=r.prototype={createTracer:function(t,e){var n={},r=this,o="function"==typeof e;return i(l+"tracer",[Date.now(),t,n],r),function(){if(c.emit((o?"":"no-")+"fn-start",[Date.now(),r,o],n),o)try{return e.apply(this,arguments)}finally{c.emit("fn-end",[Date.now()],n)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,e){p[e]=o(l+e)}),newrelic.noticeError=function(t){"string"==typeof t&&(t=new Error(t)),i("err",[t,(new Date).getTime()])}},{}],13:[function(t,e,n){e.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(e){return}}}},{}],14:[function(t,e,n){var r=0,o=navigator.userAgent.match(/Firefox/\s/);o&&(r=+o[1]),e.exports=r},{}],15:[function(t,e,n){function r(t,e){var n=[],r="",i=0;for(r in t)o.call(t,r)&&(n[i]=e(r,t[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;e.exports=r},{}],16:[function(t,e,n){function r(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,o=n-e||0,i=Array(o|0?0:o);++r|o;)i[r]=t[e+r];return i}e.exports=r},{}],17:[function(t,e,n){function r(t){return!(t&&"function"==typeof t&&t.apply&&!t[a])}var o=t("ee"),i=t(16),a="nr@original",s=Object.prototype.hasOwnProperty,c=!1;e.exports=function(t){function e(t,e,n,o){function nrWrapper(){var r,a,s,c;try{a=this,r=i(arguments),s="function"==typeof n?n(r,a):n||{}}catch(u){d([u,"",[r,a,o],s])}f(e+"start",[r,a,o],s);try{return c=t.apply(a,r)}catch(l){throw f(e+"err",[r,a,l],s),l}finally{f(e+"end",[r,a,c],s)}}return r(t)?t:(e||(e=""),nrWrapper[a]=t,u(t,nrWrapper),nrWrapper)}function n(t,n,o,i){o||(o="");var a,s,c,f="-"===o.charAt(0);for(c=0;c|n.length;c++)s=n[c],a=t[s],r(a)||(t[s]=e(a,f?s+o:o,i,s))}function f(e,n,r){if(!c){c=!0;try{t.emit(e,n,r)}catch(o){d([o,e,n,r])}c=!1}}function u(t,e){if(Object.defineProperty&&Object.keys)try{var n=Object.keys(t);return n.forEach(function(n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){return t[n]=e,e}})}),e}catch(r){d([r])}for(var o in t)s.call(t,o)&&(e[o]=t[o]);return e}function d(e){try{t.emit("internal-error",e)}catch(n){}}return t||(t=o),e.inPlace=n,e.flag=a,e}},{}],ee:[function(t,e,n){function r(){}function o(t){function e(t){return t&&t instanceof r?t:t?s(t,a,i):i()}function n(n,r,o){t&&t(n,r,o);for(var i=e(o),a=l(n),s=a.length,c=0;c|s;c++)a[c].apply(i,r);var u=f[w[n]];return u&&u.push([v,n,r,i]),i}function d(t,e){m[t]=l(t).concat(e)}function l(t){return m[t]||[]}function p(t){return u[t]=u[t]||o(n)}function h(t,e){c(t,function(t,n){e=e||"feature",w[n]=e,e in f||(f[e]=[])})}var m={},w={},v={on:d,emit:n,get:p,listeners:l,context:e,buffer:h};return v}function i(){return new r}var a="nr@context",s=t("gos"),c=t(15),f={},u={},d=e.exports=o();d.backlog=f},{}],gos:[function(t,e,n){function r(t,e,n){if(o.call(t,e))return t[e];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[e]=r,r}var o=Object.prototype.hasOwnProperty;e.exports=r},{}],handle:[function(t,e,n){function r(t,e,n,r){o.buffer([t],r),o.emit(t,e,n)}var o=t("ee").get("handle");e.exports=r,r.ee=o},{}],id:[function(t,e,n){function r(t){var e=typeof t;return!t||"object"!==e&&"function"!==e?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");e.exports=r},{}],loader:[function(t,e,n){function r(){if(!g++){var t=y.info=NREUM.info,e=u.getElementsByTagName("script")[0];if(t&&t.licenseKey&&t.applicationID&&e){c(w,function(e,n){t[e]||(t[e]=n)});var n="https"===m.split(":")[0]||t.sslForHttp;y.proto=n?"https://":"http://",s("mark",["onload",a()],null,"api");var r=u.createElement("script");r.src=y.proto+t.agent,e.parentNode.insertBefore(r,e)}}}function o(){"complete"===u.readyState&&i()}function i(){s("mark",["domContent",a()],null,"api")}function a(){return(new Date).getTime()}var s=t("handle"),c=t(15),f=window,u=f.document,d="addEventListener",l="attachEvent",p=f.XMLHttpRequest,h=p&&p.prototype;NREUM.o={ST:setTimeout,CT:clearTimeout,XHR:p,REQ:f.Request,EV:f.Event,PR:f.Promise,MO:f.MutationObserver},t(12);var m=""+location,w={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-974.min.js"},v=p&&h&&h[d]&&!/CriOS/.test(navigator.userAgent),y=e.exports={offset:a(),origin:m,features:{},xhrWrappable:v};u[d]?(ud,fd):(ul,fl),s("mark",["firstbyte",a()],null,"api");var g=0},{}]},{},["loader",2,10,4,3]);\n;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"2700af8a3c",applicationID:"30223876",sa:1}|/script||/head||body||div id="main"||/div||script src="https://s2.pluralsight.com/webplayer/player/client/libs/draggabilly.pkgd.min.js"||/script||script src="https://s2.pluralsight.com/webplayer/player/client/libs/video.min.js"||/script||script src="https://s2.pluralsight.com/webplayer/player/client/libs/sp.min.js"||/script||script src="https://s2.pluralsight.com/webplayer/player/client/libs/modernizr-custom.min.js"||/script||script src="//s.pluralsight.com/mentors/tools/sidebar/v1/sidebar.min.js"||/script||script src="https://s2.pluralsight.com/webplayer/js/main.aef8bb506b1a17d1c7d7.min.js"||/script||script|_satellite.pageBottom()|/script||/body||/html|'
(Pdb)

@deepaktaks
Copy link

@deepaktaks deepaktaks commented Oct 20, 2016

Pluralsight no longer working. Using version 2016.10.19.

@hlrd93
Copy link

@hlrd93 hlrd93 commented Oct 20, 2016

Same Issue. Pluralsight no longer working. Using version 2016.10.19.

C:>youtube-dl --username xxx --password xxx "https://ap
p.pluralsight.com/library/courses/angular-2-getting-started-update/table-of-cont
ents" --verbose
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['--username', 'PRIVATE', '--password', 'PRIVATE', 'h
ttps://app.pluralsight.com/library/courses/angular-2-getting-started-update/tabl
e-of-contents', '--verbose']
[debug] Encodings: locale cp1252, fs mbcs, out cp850, pref cp1252
[debug] youtube-dl version 2016.10.19
[debug] Python version 3.4.4 - Windows-7-6.1.7601-SP1
[debug] exe versions: none
[debug] Proxy map: {}
[pluralsight:course] angular-2-getting-started-update: Downloading course JSON
[pluralsight:course] angular-2-getting-started-update: Downloading course data J
SON
[download] Downloading playlist: Angular 2: Getting Started
[pluralsight:course] playlist Angular 2: Getting Started: Collected 98 video ids
(downloading 98 of them)
[download] Downloading video 1 of 98
[pluralsight] Downloading login page
[pluralsight] Logging in as
[pluralsight] angular-2-getting-started-update-m0-0: Downloading webpage
ERROR: Unable to extract initial state; please report this issue on https://yt-d
l.org/bug . Make sure you are using the latest version; type youtube-dl -U to
update. Be sure to call youtube-dl with the --verbose flag and include its compl
ete output.
Traceback (most recent call last):
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\bu
ild\youtube_dl\YoutubeDL.py", line 694, in extract_info
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\bu
ild\youtube_dl\extractor\common.py", line 356, in extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\bu
ild\youtube_dl\extractor\pluralsight.py", line 170, in _real_extract
File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpv25gpk4f\bu
ild\youtube_dl\extractor\common.py", line 659, in _search_regex
youtube_dl.utils.RegexNotFoundError: Unable to extract initial state; please rep
ort this issue on https://yt-dl.org/bug . Make sure you are using the latest ver
sion; type youtube-dl -U to update. Be sure to call youtube-dl with the --verb
ose flag and include its complete output.

@DcsPeterDickten
Copy link

@DcsPeterDickten DcsPeterDickten commented Oct 20, 2016

same here with the newest (and older) version

@dstftw dstftw closed this in 9df6b03 Oct 20, 2016
@dannycallaghan
Copy link
Author

@dannycallaghan dannycallaghan commented Oct 21, 2016

Confirmed fixed. Amazingly fast work, thanks so much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
9 participants
You can’t perform that action at this time.