@codingame/monaco-editor-wrapper 1.14.3 → 1.14.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +2 -2
  2. package/dist/JavaScript.tmLanguage.js +64 -10
  3. package/dist/JavaScriptReact.tmLanguage.js +64 -10
  4. package/dist/Scala.tmLanguage.js +8 -4
  5. package/dist/TypeScript.tmLanguage.js +64 -10
  6. package/dist/TypeScriptReact.tmLanguage.js +64 -10
  7. package/dist/angular.js +7 -1
  8. package/dist/c.tmLanguage.js +650 -432
  9. package/dist/cpp.tmLanguage.js +72 -84
  10. package/dist/cpptools.js +81 -5
  11. package/dist/css.tmLanguage.js +5 -5
  12. package/dist/css.worker.js +1 -1
  13. package/dist/dart3.js +40 -21
  14. package/dist/features/extensionConfigurations.js +1 -1
  15. package/dist/features/htmlContribution.js +1 -1
  16. package/dist/features/jsonContribution.js +1 -1
  17. package/dist/features/typescriptContribution.js +1 -1
  18. package/dist/fsharp.tmLanguage.js +2 -2
  19. package/dist/html.worker.js +1 -1
  20. package/dist/index.js +5 -4
  21. package/dist/java.js +1 -1
  22. package/dist/java2.js +35 -11
  23. package/dist/javascript-javascript.code-snippets.js +9 -0
  24. package/dist/javascript.js +1 -1
  25. package/dist/javascriptreact.js +1 -1
  26. package/dist/json.js +1 -3
  27. package/dist/json.worker.js +1 -1
  28. package/dist/jsonc.js +1 -3
  29. package/dist/lua2.js +184 -63
  30. package/dist/main.js +10639 -10610
  31. package/dist/markdown.tmLanguage.js +56 -17
  32. package/dist/monaco.d.ts +9 -0
  33. package/dist/objective-c.tmLanguage.js +276 -131
  34. package/dist/omnisharp-csharp.js +11 -11
  35. package/dist/omnisharp.js +24 -49
  36. package/dist/php.tmLanguage.js +280 -128
  37. package/dist/scalameta.js +19 -2
  38. package/dist/scss.js +12 -2
  39. package/dist/services/MultiEditorStandaloneCodeEditorService.d.ts +2 -2
  40. package/dist/solidity2.js +1 -1
  41. package/dist/theme-defaults~dark_vs.js +1 -1
  42. package/dist/theme-defaults~hc_light.js +36 -36
  43. package/dist/ts.worker.js +1 -1
  44. package/dist/typescript-language-features.js +17 -2
  45. package/dist/typescript.js +1 -1
  46. package/dist/typescriptreact.js +1 -1
  47. package/dist/vscode-R-rmarkdown.js +3 -3
  48. package/dist/vscode-R.js +9 -9
  49. package/dist/vscode-python.js +16 -6
  50. package/dist/worker.js +1 -1
  51. package/dist/xml.js +1 -2
  52. package/dist/xsl.js +1 -2
  53. package/package.json +23 -26
  54. package/stats.html +1 -1
package/dist/worker.js CHANGED
@@ -28,7 +28,7 @@ function createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {
28
28
  };
29
29
  }
30
30
 
31
- var WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwp2YXIgd29ya2VyX2NvZGU9ZnVuY3Rpb24ocyl7InVzZSBzdHJpY3QiO2NsYXNzIGx7Y29uc3RydWN0b3IoKXt0aGlzLmxpc3RlbmVycz1bXSx0aGlzLnVuZXhwZWN0ZWRFcnJvckhhbmRsZXI9ZnVuY3Rpb24oZSl7c2V0VGltZW91dCgoKT0+e2lmKGUuc3RhY2spdGhyb3cgbmV3IEVycm9yKGUubWVzc2FnZSsiXG5cbiIrZS5zdGFjayk7dGhyb3cgZX0sMCl9fWFkZExpc3RlbmVyKGUpe3JldHVybiB0aGlzLmxpc3RlbmVycy5wdXNoKGUpLCgpPT57dGhpcy5fcmVtb3ZlTGlzdGVuZXIoZSl9fWVtaXQodCl7dGhpcy5saXN0ZW5lcnMuZm9yRWFjaChlPT57ZSh0KX0pfV9yZW1vdmVMaXN0ZW5lcihlKXt0aGlzLmxpc3RlbmVycy5zcGxpY2UodGhpcy5saXN0ZW5lcnMuaW5kZXhPZihlKSwxKX1zZXRVbmV4cGVjdGVkRXJyb3JIYW5kbGVyKGUpe3RoaXMudW5leHBlY3RlZEVycm9ySGFuZGxlcj1lfWdldFVuZXhwZWN0ZWRFcnJvckhhbmRsZXIoKXtyZXR1cm4gdGhpcy51bmV4cGVjdGVkRXJyb3JIYW5kbGVyfW9uVW5leHBlY3RlZEVycm9yKGUpe3RoaXMudW5leHBlY3RlZEVycm9ySGFuZGxlcihlKSx0aGlzLmVtaXQoZSl9b25VbmV4cGVjdGVkRXh0ZXJuYWxFcnJvcihlKXt0aGlzLnVuZXhwZWN0ZWRFcnJvckhhbmRsZXIoZSl9fWNvbnN0IGg9bmV3IGw7ZnVuY3Rpb24gYyhlKXshZnVuY3Rpb24oZSl7aWYoZSBpbnN0YW5jZW9mIG0pcmV0dXJuITA7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvciYmZS5uYW1lPT09ZiYmZS5tZXNzYWdlPT09Zn0oZSkmJmgub25VbmV4cGVjdGVkRXJyb3IoZSl9ZnVuY3Rpb24gdShlKXt2YXIgdCxyO3JldHVybiBlIGluc3RhbmNlb2YgRXJyb3I/KHtuYW1lOnQsbWVzc2FnZTpyfT1lLHskaXNFcnJvcjohMCxuYW1lOnQsbWVzc2FnZTpyLHN0YWNrOmUuc3RhY2t0cmFjZXx8ZS5zdGFja30pOmV9Y29uc3QgZj0iQ2FuY2VsZWQiO2NsYXNzIG0gZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKGYpLHRoaXMubmFtZT10aGlzLm1lc3NhZ2V9fXZhciBiO3t2YXIgQz1iPWJ8fHt9O0MuaXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJvYmplY3QiPT10eXBlb2YgZSYmImZ1bmN0aW9uIj09dHlwZW9mIGVbU3ltYm9sLml0ZXJhdG9yXX07Y29uc3QgeHI9T2JqZWN0LmZyZWV6ZShbXSk7Qy5lbXB0eT1mdW5jdGlvbigpe3JldHVybiB4cn0sQy5zaW5nbGU9ZnVuY3Rpb24qKGUpe3lpZWxkIGV9LEMuZnJvbT1mdW5jdGlvbihlKXtyZXR1cm4gZXx8eHJ9LEMuaXNFbXB0eT1mdW5jdGlvbihlKXtyZXR1cm4hZXx8ITA9PT1lW1N5bWJvbC5pdGVyYXRvcl0oKS5uZXh0KCkuZG9uZX0sQy5maXJzdD1mdW5jdGlvbihlKXtyZXR1cm4gZVtTeW1ib2wuaXRlcmF0b3JdKCkubmV4dCgpLnZhbHVlfSxDLnNvbWU9ZnVuY3Rpb24oZSx0KXtmb3IoY29uc3QgciBvZiBlKWlmKHQocikpcmV0dXJuITA7cmV0dXJuITF9LEMuZmluZD1mdW5jdGlvbihlLHQpe2Zvcihjb25zdCByIG9mIGUpaWYodChyKSlyZXR1cm4gcn0sQy5maWx0ZXI9ZnVuY3Rpb24qKGUsdCl7Zm9yKGNvbnN0IHIgb2YgZSl0KHIpJiYoeWllbGQgcil9LEMubWFwPWZ1bmN0aW9uKihlLHQpe2xldCByPTA7Zm9yKGNvbnN0IG4gb2YgZSl5aWVsZCB0KG4scisrKX0sQy5jb25jYXQ9ZnVuY3Rpb24qKC4uLmUpe2Zvcihjb25zdCB0IG9mIGUpZm9yKGNvbnN0IHIgb2YgdCl5aWVsZCByfSxDLmNvbmNhdE5lc3RlZD1mdW5jdGlvbiooZSl7Zm9yKGNvbnN0IHQgb2YgZSlmb3IoY29uc3QgciBvZiB0KXlpZWxkIHJ9LEMucmVkdWNlPWZ1bmN0aW9uKGUsdCxyKXtsZXQgbj1yO2Zvcihjb25zdCBpIG9mIGUpbj10KG4saSk7cmV0dXJuIG59LEMuc2xpY2U9ZnVuY3Rpb24qKGUsdCxyPWUubGVuZ3RoKXtmb3IodDwwJiYodCs9ZS5sZW5ndGgpLHI8MD9yKz1lLmxlbmd0aDpyPmUubGVuZ3RoJiYocj1lLmxlbmd0aCk7dDxyO3QrKyl5aWVsZCBlW3RdfSxDLmNvbnN1bWU9ZnVuY3Rpb24oZSx0PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSl7Y29uc3Qgcj1bXTtpZigwPT09dClyZXR1cm5bcixlXTtjb25zdCBuPWVbU3ltYm9sLml0ZXJhdG9yXSgpO2ZvcihsZXQgZT0wO2U8dDtlKyspe3ZhciBpPW4ubmV4dCgpO2lmKGkuZG9uZSlyZXR1cm5bcixDLmVtcHR5KCldO3IucHVzaChpLnZhbHVlKX1yZXR1cm5bcix7W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gbn19XX0sQy5lcXVhbHM9ZnVuY3Rpb24oZSx0LHI9KGUsdCk9PmU9PT10KXtjb25zdCBuPWVbU3ltYm9sLml0ZXJhdG9yXSgpLGk9dFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXt2YXIgYT1uLm5leHQoKSxvPWkubmV4dCgpO2lmKGEuZG9uZSE9PW8uZG9uZSlyZXR1cm4hMTtpZihhLmRvbmUpcmV0dXJuITA7aWYoIXIoYS52YWx1ZSxvLnZhbHVlKSlyZXR1cm4hMX19fWNsYXNzIHcgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihgRW5jb3VudGVyZWQgZXJyb3JzIHdoaWxlIGRpc3Bvc2luZyBvZiBzdG9yZS4gRXJyb3JzOiBbJHtlLmpvaW4oIiwgIil9XWApLHRoaXMuZXJyb3JzPWV9fWZ1bmN0aW9uIF8oZSl7aWYoYi5pcyhlKSl7bGV0IHQ9W107Zm9yKGNvbnN0IHIgb2YgZSlpZihyKXRyeXtyLmRpc3Bvc2UoKX1jYXRjaChlKXt0LnB1c2goZSl9aWYoMT09PXQubGVuZ3RoKXRocm93IHRbMF07aWYoMTx0Lmxlbmd0aCl0aHJvdyBuZXcgdyh0KTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9bXTplfWlmKGUpcmV0dXJuIGUuZGlzcG9zZSgpLGV9ZnVuY3Rpb24gdihlKXtyZXR1cm57ZGlzcG9zZTpmdW5jdGlvbihlKXtjb25zdCB0PXRoaXM7bGV0IHI9ITEsbjtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcj9uOihyPSEwLG49ZS5hcHBseSh0LGFyZ3VtZW50cykpfX0oKCk9PntlKCl9KX19Y2xhc3MgeXtjb25zdHJ1Y3Rvcigpe3RoaXMuX3RvRGlzcG9zZT1uZXcgU2V0LHRoaXMuX2lzRGlzcG9zZWQ9ITF9ZGlzcG9zZSgpe3RoaXMuX2lzRGlzcG9zZWR8fCh0aGlzLl9pc0Rpc3Bvc2VkPSEwLHRoaXMuY2xlYXIoKSl9Z2V0IGlzRGlzcG9zZWQoKXtyZXR1cm4gdGhpcy5faXNEaXNwb3NlZH1jbGVhcigpe3RyeXtfKHRoaXMuX3RvRGlzcG9zZS52YWx1ZXMoKSl9ZmluYWxseXt0aGlzLl90b0Rpc3Bvc2UuY2xlYXIoKX19YWRkKGUpe2lmKCFlKXJldHVybiBlO2lmKGU9PT10aGlzKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJlZ2lzdGVyIGEgZGlzcG9zYWJsZSBvbiBpdHNlbGYhIik7cmV0dXJuIHRoaXMuX2lzRGlzcG9zZWQ/eS5ESVNBQkxFX0RJU1BPU0VEX1dBUk5JTkd8fGNvbnNvbGUud2FybihuZXcgRXJyb3IoIlRyeWluZyB0byBhZGQgYSBkaXNwb3NhYmxlIHRvIGEgRGlzcG9zYWJsZVN0b3JlIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBkaXNwb3NlZCBvZi4gVGhlIGFkZGVkIG9iamVjdCB3aWxsIGJlIGxlYWtlZCEiKS5zdGFjayk6dGhpcy5fdG9EaXNwb3NlLmFkZChlKSxlfX15LkRJU0FCTEVfRElTUE9TRURfV0FSTklORz0hMTtjbGFzcyBMe2NvbnN0cnVjdG9yKCl7dGhpcy5fc3RvcmU9bmV3IHksdGhpcy5fc3RvcmV9ZGlzcG9zZSgpe3RoaXMuX3N0b3JlLmRpc3Bvc2UoKX1fcmVnaXN0ZXIoZSl7aWYoZT09PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVnaXN0ZXIgYSBkaXNwb3NhYmxlIG9uIGl0c2VsZiEiKTtyZXR1cm4gdGhpcy5fc3RvcmUuYWRkKGUpfX1MLk5vbmU9T2JqZWN0LmZyZWV6ZSh7ZGlzcG9zZSgpe319KTtjbGFzcyBTe2NvbnN0cnVjdG9yKCl7dGhpcy5kaXNwb3NlPSgpPT57fSx0aGlzLnVuc2V0PSgpPT57fSx0aGlzLmlzc2V0PSgpPT4hMX1zZXQoZSl7bGV0IHQ9ZTtyZXR1cm4gdGhpcy51bnNldD0oKT0+dD12b2lkIDAsdGhpcy5pc3NldD0oKT0+dm9pZCAwIT09dCx0aGlzLmRpc3Bvc2U9KCk9Pnt0JiYodCgpLHQ9dm9pZCAwKX0sdGhpc319Y2xhc3Mgb3tjb25zdHJ1Y3RvcihlKXt0aGlzLmVsZW1lbnQ9ZSx0aGlzLm5leHQ9by5VbmRlZmluZWQsdGhpcy5wcmV2PW8uVW5kZWZpbmVkfX1vLlVuZGVmaW5lZD1uZXcgbyh2b2lkIDApO2NsYXNzIE57Y29uc3RydWN0b3IoKXt0aGlzLl9maXJzdD1vLlVuZGVmaW5lZCx0aGlzLl9sYXN0PW8uVW5kZWZpbmVkLHRoaXMuX3NpemU9MH1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLl9zaXplfWlzRW1wdHkoKXtyZXR1cm4gdGhpcy5fZmlyc3Q9PT1vLlVuZGVmaW5lZH1jbGVhcigpe2xldCBlPXRoaXMuX2ZpcnN0O2Zvcig7ZSE9PW8uVW5kZWZpbmVkOyl7dmFyIHQ9ZS5uZXh0O2UucHJldj1vLlVuZGVmaW5lZCxlLm5leHQ9by5VbmRlZmluZWQsZT10fXRoaXMuX2ZpcnN0PW8uVW5kZWZpbmVkLHRoaXMuX2xhc3Q9by5VbmRlZmluZWQsdGhpcy5fc2l6ZT0wfXVuc2hpZnQoZSl7cmV0dXJuIHRoaXMuX2luc2VydChlLCExKX1wdXNoKGUpe3JldHVybiB0aGlzLl9pbnNlcnQoZSwhMCl9X2luc2VydChlLHQpe2NvbnN0IHI9bmV3IG8oZSk7aWYodGhpcy5fZmlyc3Q9PT1vLlVuZGVmaW5lZCl0aGlzLl9maXJzdD1yLHRoaXMuX2xhc3Q9cjtlbHNlIGlmKHQpe2NvbnN0IGk9dGhpcy5fbGFzdDsoKHRoaXMuX2xhc3Q9cikucHJldj1pKS5uZXh0PXJ9ZWxzZXtjb25zdCBhPXRoaXMuX2ZpcnN0OygodGhpcy5fZmlyc3Q9cikubmV4dD1hKS5wcmV2PXJ9dGhpcy5fc2l6ZSs9MTtsZXQgbj0hMTtyZXR1cm4oKT0+e258fChuPSEwLHRoaXMuX3JlbW92ZShyKSl9fXNoaWZ0KCl7dmFyIGU7aWYodGhpcy5fZmlyc3QhPT1vLlVuZGVmaW5lZClyZXR1cm4gZT10aGlzLl9maXJzdC5lbGVtZW50LHRoaXMuX3JlbW92ZSh0aGlzLl9maXJzdCksZX1wb3AoKXt2YXIgZTtpZih0aGlzLl9sYXN0IT09by5VbmRlZmluZWQpcmV0dXJuIGU9dGhpcy5fbGFzdC5lbGVtZW50LHRoaXMuX3JlbW92ZSh0aGlzLl9sYXN0KSxlfV9yZW1vdmUoZSl7aWYoZS5wcmV2IT09by5VbmRlZmluZWQmJmUubmV4dCE9PW8uVW5kZWZpbmVkKXtjb25zdCB0PWUucHJldjt0Lm5leHQ9ZS5uZXh0LGUubmV4dC5wcmV2PXR9ZWxzZSBlLnByZXY9PT1vLlVuZGVmaW5lZCYmZS5uZXh0PT09by5VbmRlZmluZWQ/KHRoaXMuX2ZpcnN0PW8uVW5kZWZpbmVkLHRoaXMuX2xhc3Q9by5VbmRlZmluZWQpOmUubmV4dD09PW8uVW5kZWZpbmVkPyh0aGlzLl9sYXN0PXRoaXMuX2xhc3QucHJldix0aGlzLl9sYXN0Lm5leHQ9by5VbmRlZmluZWQpOmUucHJldj09PW8uVW5kZWZpbmVkJiYodGhpcy5fZmlyc3Q9dGhpcy5fZmlyc3QubmV4dCx0aGlzLl9maXJzdC5wcmV2PW8uVW5kZWZpbmVkKTstLXRoaXMuX3NpemV9KltTeW1ib2wuaXRlcmF0b3JdKCl7bGV0IGU9dGhpcy5fZmlyc3Q7Zm9yKDtlIT09by5VbmRlZmluZWQ7KXlpZWxkIGUuZWxlbWVudCxlPWUubmV4dH19dmFyIEU9ImVuIjtsZXQgQT0hMSxrPSExLHg9ITEsTT0hMSxLPXZvaWQgMCxQPUU7bGV0IFI9dm9pZCAwO2NvbnN0IEQ9Im9iamVjdCI9PXR5cGVvZiBzZWxmP3NlbGY6Im9iamVjdCI9PXR5cGVvZiBnbG9iYWw/Z2xvYmFsOnt9O2xldCBJPXZvaWQgMDt2b2lkIDAhPT1ELnZzY29kZSYmdm9pZCAwIT09RC52c2NvZGUucHJvY2Vzcz9JPUQudnNjb2RlLnByb2Nlc3M6InVuZGVmaW5lZCIhPXR5cGVvZiBwcm9jZXNzJiYoST1wcm9jZXNzKTt2YXIgZT0ic3RyaW5nIj09dHlwZW9mKG51bGw9PT0oZT1udWxsPT09SXx8dm9pZCAwPT09ST92b2lkIDA6SS52ZXJzaW9ucyl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZWxlY3Ryb24pJiYicmVuZGVyZXIiPT09KG51bGw9PT1JfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLnR5cGUpO2lmKCJvYmplY3QiIT10eXBlb2YgbmF2aWdhdG9yfHxlKWlmKCJvYmplY3QiPT10eXBlb2YgSSl7QT0id2luMzIiPT09SS5wbGF0Zm9ybSxrPSJkYXJ3aW4iPT09SS5wbGF0Zm9ybSwoeD0ibGludXgiPT09SS5wbGF0Zm9ybSkmJkkuZW52LlNOQVAmJkkuZW52LlNOQVBfUkVWSVNJT04sSS5lbnYuQ0l8fEkuZW52LkJVSUxEX0FSVElGQUNUU1RBR0lOR0RJUkVDVE9SWSxLPUUsUD1FO2U9SS5lbnYuVlNDT0RFX05MU19DT05GSUc7aWYoZSl0cnl7dmFyIFY9SlNPTi5wYXJzZShlKSx0PVYuYXZhaWxhYmxlTGFuZ3VhZ2VzWyIqIl07Sz1WLmxvY2FsZSxQPXR8fEUsVi5fdHJhbnNsYXRpb25zQ29uZmlnRmlsZX1jYXRjaChlKXt9fWVsc2UgY29uc29sZS5lcnJvcigiVW5hYmxlIHRvIHJlc29sdmUgcGxhdGZvcm0uIik7ZWxzZSBSPW5hdmlnYXRvci51c2VyQWdlbnQsQT0wPD1SLmluZGV4T2YoIldpbmRvd3MiKSxrPTA8PVIuaW5kZXhPZigiTWFjaW50b3NoIiksKDA8PVIuaW5kZXhPZigiTWFjaW50b3NoIil8fDA8PVIuaW5kZXhPZigiaVBhZCIpfHwwPD1SLmluZGV4T2YoImlQaG9uZSIpKSYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzJiZuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMseD0wPD1SLmluZGV4T2YoIkxpbnV4IiksTT0hMCxLPW5hdmlnYXRvci5sYW5ndWFnZSxQPUs7Y29uc3QgTz1BLEY9ayxUPShNJiZELmltcG9ydFNjcmlwdHMsUik7KCgpPT57aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEQucG9zdE1lc3NhZ2V8fEQuaW1wb3J0U2NyaXB0cylyZXR1cm47e2xldCBpPVtdLGU9KEQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscj0+e2lmKHIuZGF0YSYmci5kYXRhLnZzY29kZVNjaGVkdWxlQXN5bmNXb3JrKWZvcihsZXQgZT0wLHQ9aS5sZW5ndGg7ZTx0O2UrKyl7Y29uc3Qgbj1pW2VdO2lmKG4uaWQ9PT1yLmRhdGEudnNjb2RlU2NoZWR1bGVBc3luY1dvcmspcmV0dXJuIGkuc3BsaWNlKGUsMSksdm9pZCBuLmNhbGxiYWNrKCl9fSksMCl9fSkoKTt2YXIgQixlPSEhKFQmJjA8PVQuaW5kZXhPZigiQ2hyb21lIikpO1QmJlQuaW5kZXhPZigiRmlyZWZveCIpLCFlJiZUJiZULmluZGV4T2YoIlNhZmFyaSIpLFQmJlQuaW5kZXhPZigiRWRnLyIpLFQmJlQuaW5kZXhPZigiQW5kcm9pZCIpO2NvbnN0IFU9RC5wZXJmb3JtYW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIEQucGVyZm9ybWFuY2Uubm93O2NsYXNzIHF7Y29uc3RydWN0b3IoZSl7dGhpcy5faGlnaFJlc29sdXRpb249VSYmZSx0aGlzLl9zdGFydFRpbWU9dGhpcy5fbm93KCksdGhpcy5fc3RvcFRpbWU9LTF9c3RhdGljIGNyZWF0ZShlPSEwKXtyZXR1cm4gbmV3IHEoZSl9c3RvcCgpe3RoaXMuX3N0b3BUaW1lPXRoaXMuX25vdygpfWVsYXBzZWQoKXtyZXR1cm4tMSE9PXRoaXMuX3N0b3BUaW1lP3RoaXMuX3N0b3BUaW1lLXRoaXMuX3N0YXJ0VGltZTp0aGlzLl9ub3coKS10aGlzLl9zdGFydFRpbWV9X25vdygpe3JldHVybih0aGlzLl9oaWdoUmVzb2x1dGlvbj9ELnBlcmZvcm1hbmNlOkRhdGUpLm5vdygpfX17dmFyIEg9UXQ9UXR8fHt9O2Z1bmN0aW9uIHooYSl7cmV0dXJuKHQscj1udWxsLGUpPT57bGV0IG49ITEsaTtyZXR1cm4gaT1hKGU9PntpZighbilyZXR1cm4gaT9pLmRpc3Bvc2UoKTpuPSEwLHQuY2FsbChyLGUpfSxudWxsLGUpLG4mJmkuZGlzcG9zZSgpLGl9fWZ1bmN0aW9uIFcobixpLGUpe3JldHVybiBKKCh0LHI9bnVsbCxlKT0+bihlPT50LmNhbGwocixpKGUpKSxudWxsLGUpLGUpfWZ1bmN0aW9uIGoobixpLGUpe3JldHVybiBKKCh0LHI9bnVsbCxlKT0+bihlPT57aShlKSx0LmNhbGwocixlKX0sbnVsbCxlKSxlKX1mdW5jdGlvbiAkKG4saSxlKXtyZXR1cm4gSigodCxyPW51bGwsZSk9Pm4oZT0+aShlKSYmdC5jYWxsKHIsZSksbnVsbCxlKSxlKX1mdW5jdGlvbiBHKGUsdCxyLG4pe2xldCBpPXI7cmV0dXJuIFcoZSxlPT5pPXQoaSxlKSxuKX1mdW5jdGlvbiBKKGUsdCl7bGV0IHI7dmFyIG49e29uRmlyc3RMaXN0ZW5lckFkZCgpe3I9ZShpLmZpcmUsaSl9LG9uTGFzdExpc3RlbmVyUmVtb3ZlKCl7ci5kaXNwb3NlKCl9fTtjb25zdCBpPW5ldyB0ZShuKTtyZXR1cm4gdCYmdC5hZGQoaSksaS5ldmVudH1mdW5jdGlvbiBRKGUsdCxjPTEwMCxyPSExLG4saSl7bGV0IGEsbz12b2lkIDAscz12b2lkIDAsbD0wO249e2xlYWtXYXJuaW5nVGhyZXNob2xkOm4sb25GaXJzdExpc3RlbmVyQWRkKCl7YT1lKGU9PntsKyssbz10KG8sZSksciYmIXMmJihoLmZpcmUobyksbz12b2lkIDApLGNsZWFyVGltZW91dChzKSxzPXNldFRpbWVvdXQoKCk9Pnt2YXIgZT1vO289dm9pZCAwLHM9dm9pZCAwLCghcnx8MTxsKSYmaC5maXJlKGUpLGw9MH0sYyl9KX0sb25MYXN0TGlzdGVuZXJSZW1vdmUoKXthLmRpc3Bvc2UoKX19O2NvbnN0IGg9bmV3IHRlKG4pO3JldHVybiBpJiZpLmFkZChoKSxoLmV2ZW50fWZ1bmN0aW9uIFkoZSxyPShlLHQpPT5lPT09dCx0KXtsZXQgbj0hMCxpO3JldHVybiAkKGUsZT0+e3ZhciB0PW58fCFyKGUsaSk7cmV0dXJuIG49ITEsaT1lLHR9LHQpfUguTm9uZT0oKT0+TC5Ob25lLEgub25jZT16LEgubWFwPVcsSC5mb3JFYWNoPWosSC5maWx0ZXI9JCxILnNpZ25hbD1mdW5jdGlvbihlKXtyZXR1cm4gZX0sSC5hbnk9ZnVuY3Rpb24oLi4uaSl7cmV0dXJuKHQscj1udWxsLG4pPT57dmFyWy4uLmVdPVsuLi5pLm1hcChlPT5lKGU9PnQuY2FsbChyLGUpLG51bGwsbikpXTtyZXR1cm4gdigoKT0+XyhlKSl9fSxILnJlZHVjZT1HLEguZGVib3VuY2U9USxILmxhdGNoPVksSC5zcGxpdD1mdW5jdGlvbihlLHQscil7cmV0dXJuW0guZmlsdGVyKGUsdCxyKSxILmZpbHRlcihlLGU9PiF0KGUpLHIpXX0sSC5idWZmZXI9ZnVuY3Rpb24oZSx0PSExLHI9W10pe2xldCBuPXIuc2xpY2UoKSxpPWUoZT0+e24/bi5wdXNoKGUpOm8uZmlyZShlKX0pO2NvbnN0IGE9KCk9PntuJiZuLmZvckVhY2goZT0+by5maXJlKGUpKSxuPW51bGx9LG89bmV3IHRlKHtvbkZpcnN0TGlzdGVuZXJBZGQoKXtpPWl8fGUoZT0+by5maXJlKGUpKX0sb25GaXJzdExpc3RlbmVyRGlkQWRkKCl7biYmKHQ/c2V0VGltZW91dChhKTphKCkpfSxvbkxhc3RMaXN0ZW5lclJlbW92ZSgpe2kmJmkuZGlzcG9zZSgpLGk9bnVsbH19KTtyZXR1cm4gby5ldmVudH07Y2xhc3MgTXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5ldmVudD1lfW1hcChlKXtyZXR1cm4gbmV3IE1yKFcodGhpcy5ldmVudCxlKSl9Zm9yRWFjaChlKXtyZXR1cm4gbmV3IE1yKGoodGhpcy5ldmVudCxlKSl9ZmlsdGVyKGUpe3JldHVybiBuZXcgTXIoJCh0aGlzLmV2ZW50LGUpKX1yZWR1Y2UoZSx0KXtyZXR1cm4gbmV3IE1yKEcodGhpcy5ldmVudCxlLHQpKX1sYXRjaCgpe3JldHVybiBuZXcgTXIoWSh0aGlzLmV2ZW50KSl9ZGVib3VuY2UoZSx0PTEwMCxyPSExLG4pe3JldHVybiBuZXcgTXIoUSh0aGlzLmV2ZW50LGUsdCxyLG4pKX1vbihlLHQscil7cmV0dXJuIHRoaXMuZXZlbnQoZSx0LHIpfW9uY2UoZSx0LHIpe3JldHVybiB6KHRoaXMuZXZlbnQpKGUsdCxyKX19SC5jaGFpbj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IE1yKGUpfSxILmZyb21Ob2RlRXZlbnRFbWl0dGVyPWZ1bmN0aW9uKGUsdCxyPWU9PmUpe2NvbnN0IG49KC4uLmUpPT5pLmZpcmUociguLi5lKSksaT1uZXcgdGUoe29uRmlyc3RMaXN0ZW5lckFkZDooKT0+ZS5vbih0LG4pLG9uTGFzdExpc3RlbmVyUmVtb3ZlOigpPT5lLnJlbW92ZUxpc3RlbmVyKHQsbil9KTtyZXR1cm4gaS5ldmVudH0sSC5mcm9tRE9NRXZlbnRFbWl0dGVyPWZ1bmN0aW9uKGUsdCxyPWU9PmUpe2NvbnN0IG49KC4uLmUpPT5pLmZpcmUociguLi5lKSksaT1uZXcgdGUoe29uRmlyc3RMaXN0ZW5lckFkZDooKT0+ZS5hZGRFdmVudExpc3RlbmVyKHQsbiksb25MYXN0TGlzdGVuZXJSZW1vdmU6KCk9PmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfSk7cmV0dXJuIGkuZXZlbnR9LEgudG9Qcm9taXNlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgUHJvbWlzZShlPT56KHQpKGUpKX0sSC5ydW5BbmRTdWJzY3JpYmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCh2b2lkIDApLGUoZT0+dChlKSl9LEgucnVuQW5kU3Vic2NyaWJlV2l0aFN0b3JlPWZ1bmN0aW9uKGUsdCl7bGV0IHI9bnVsbDtmdW5jdGlvbiBuKGUpe251bGwhPT1yJiZ2b2lkIDAhPT1yJiZyLmRpc3Bvc2UoKSxyPW5ldyB5LHQoZSxyKX1uKHZvaWQgMCk7Y29uc3QgaT1lKGU9Pm4oZSkpO3JldHVybiB2KCgpPT57aS5kaXNwb3NlKCksbnVsbCE9PXImJnZvaWQgMCE9PXImJnIuZGlzcG9zZSgpfSl9fWNsYXNzIFp7Y29uc3RydWN0b3IoZSl7dGhpcy5fbGlzdGVuZXJDb3VudD0wLHRoaXMuX2ludm9jYXRpb25Db3VudD0wLHRoaXMuX2VsYXBzZWRPdmVyYWxsPTAsdGhpcy5fbmFtZT1lKyJfIitaLl9pZFBvb2wrK31zdGFydChlKXt0aGlzLl9zdG9wV2F0Y2g9bmV3IHEoITApLHRoaXMuX2xpc3RlbmVyQ291bnQ9ZX1zdG9wKCl7aWYodGhpcy5fc3RvcFdhdGNoKXtjb25zdCBlPXRoaXMuX3N0b3BXYXRjaC5lbGFwc2VkKCk7dGhpcy5fZWxhcHNlZE92ZXJhbGwrPWUsdGhpcy5faW52b2NhdGlvbkNvdW50Kz0xLGNvbnNvbGUuaW5mbyhgZGlkIEZJUkUgJHt0aGlzLl9uYW1lfTogZWxhcHNlZF9tczogJHtlLnRvRml4ZWQoNSl9LCBsaXN0ZW5lcjogJHt0aGlzLl9saXN0ZW5lckNvdW50fSAoZWxhcHNlZF9vdmVyYWxsOiAke3RoaXMuX2VsYXBzZWRPdmVyYWxsLnRvRml4ZWQoMil9LCBpbnZvY2F0aW9uczogJHt0aGlzLl9pbnZvY2F0aW9uQ291bnR9KWApLHRoaXMuX3N0b3BXYXRjaD12b2lkIDB9fX1aLl9pZFBvb2w9MDtjbGFzcyBYe2NvbnN0cnVjdG9yKGUpe3RoaXMudmFsdWU9ZX1zdGF0aWMgY3JlYXRlKCl7dmFyIGU7cmV0dXJuIG5ldyBYKG51bGwhPT0oZT0obmV3IEVycm9yKS5zdGFjaykmJnZvaWQgMCE9PWU/ZToiIil9cHJpbnQoKXtjb25zb2xlLndhcm4odGhpcy52YWx1ZS5zcGxpdCgiXG4iKS5zbGljZSgyKS5qb2luKCJcbiIpKX19Y2xhc3MgZWV7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMuY2FsbGJhY2s9ZSx0aGlzLmNhbGxiYWNrVGhpcz10LHRoaXMuc3RhY2s9cix0aGlzLnN1YnNjcmlwdGlvbj1uZXcgU31pbnZva2UoZSl7dGhpcy5jYWxsYmFjay5jYWxsKHRoaXMuY2FsbGJhY2tUaGlzLGUpfX1jbGFzcyB0ZXtjb25zdHJ1Y3RvcihlKXt0aGlzLl9kaXNwb3NlZD0hMSx0aGlzLl9vcHRpb25zPWUsdGhpcy5fbGVha2FnZU1vbj12b2lkIDAsdGhpcy5fcGVyZk1vbj1udWxsIT09KGU9dGhpcy5fb3B0aW9ucykmJnZvaWQgMCE9PWUmJmUuX3Byb2ZOYW1lP25ldyBaKHRoaXMuX29wdGlvbnMuX3Byb2ZOYW1lKTp2b2lkIDB9ZGlzcG9zZSgpe3ZhciBlLHQ7dGhpcy5fZGlzcG9zZWR8fCh0aGlzLl9kaXNwb3NlZD0hMCx0aGlzLl9saXN0ZW5lcnMmJnRoaXMuX2xpc3RlbmVycy5jbGVhcigpLG51bGwhPT0oZT10aGlzLl9kZWxpdmVyeVF1ZXVlKSYmdm9pZCAwIT09ZSYmZS5jbGVhcigpLG51bGwhPT0odD1udWxsPT09KGU9dGhpcy5fb3B0aW9ucyl8fHZvaWQgMD09PWU/dm9pZCAwOmUub25MYXN0TGlzdGVuZXJSZW1vdmUpJiZ2b2lkIDAhPT10JiZ0LmNhbGwoZSksbnVsbCE9PSh0PXRoaXMuX2xlYWthZ2VNb24pJiZ2b2lkIDAhPT10JiZ0LmRpc3Bvc2UoKSl9Z2V0IGV2ZW50KCl7cmV0dXJuIHRoaXMuX2V2ZW50fHwodGhpcy5fZXZlbnQ9KGUsdCxyKT0+e3RoaXMuX2xpc3RlbmVyc3x8KHRoaXMuX2xpc3RlbmVycz1uZXcgTik7dmFyIG4saSxhPXRoaXMuX2xpc3RlbmVycy5pc0VtcHR5KCk7YSYmbnVsbCE9PShpPXRoaXMuX29wdGlvbnMpJiZ2b2lkIDAhPT1pJiZpLm9uRmlyc3RMaXN0ZW5lckFkZCYmdGhpcy5fb3B0aW9ucy5vbkZpcnN0TGlzdGVuZXJBZGQodGhpcyk7bGV0IG8sczt0aGlzLl9sZWFrYWdlTW9uJiYzMDw9dGhpcy5fbGlzdGVuZXJzLnNpemUmJihzPVguY3JlYXRlKCksbz10aGlzLl9sZWFrYWdlTW9uLmNoZWNrKHMsdGhpcy5fbGlzdGVuZXJzLnNpemUrMSkpO2NvbnN0IGw9bmV3IGVlKGUsdCxzKSxoPXRoaXMuX2xpc3RlbmVycy5wdXNoKGwpO2EmJm51bGwhPT0obj10aGlzLl9vcHRpb25zKSYmdm9pZCAwIT09biYmbi5vbkZpcnN0TGlzdGVuZXJEaWRBZGQmJnRoaXMuX29wdGlvbnMub25GaXJzdExpc3RlbmVyRGlkQWRkKHRoaXMpLG51bGwhPT0oaT10aGlzLl9vcHRpb25zKSYmdm9pZCAwIT09aSYmaS5vbkxpc3RlbmVyRGlkQWRkJiZ0aGlzLl9vcHRpb25zLm9uTGlzdGVuZXJEaWRBZGQodGhpcyxlLHQpO2E9bC5zdWJzY3JpcHRpb24uc2V0KCgpPT57byYmbygpLHRoaXMuX2Rpc3Bvc2VkfHwoaCgpLHRoaXMuX29wdGlvbnMmJnRoaXMuX29wdGlvbnMub25MYXN0TGlzdGVuZXJSZW1vdmUmJih0aGlzLl9saXN0ZW5lcnMmJiF0aGlzLl9saXN0ZW5lcnMuaXNFbXB0eSgpfHx0aGlzLl9vcHRpb25zLm9uTGFzdExpc3RlbmVyUmVtb3ZlKHRoaXMpKSl9KTtyZXR1cm4gciBpbnN0YW5jZW9mIHk/ci5hZGQoYSk6QXJyYXkuaXNBcnJheShyKSYmci5wdXNoKGEpLGF9KSx0aGlzLl9ldmVudH1maXJlKGUpe3ZhciB0O2lmKHRoaXMuX2xpc3RlbmVycyl7dGhpcy5fZGVsaXZlcnlRdWV1ZXx8KHRoaXMuX2RlbGl2ZXJ5UXVldWU9bmV3IE4pO2Zvcih2YXIgciBvZiB0aGlzLl9saXN0ZW5lcnMpdGhpcy5fZGVsaXZlcnlRdWV1ZS5wdXNoKFtyLGVdKTtmb3IobnVsbCE9PSh0PXRoaXMuX3BlcmZNb24pJiZ2b2lkIDAhPT10JiZ0LnN0YXJ0KHRoaXMuX2RlbGl2ZXJ5UXVldWUuc2l6ZSk7MDx0aGlzLl9kZWxpdmVyeVF1ZXVlLnNpemU7KXtjb25zdFtuLGVdPXRoaXMuX2RlbGl2ZXJ5UXVldWUuc2hpZnQoKTt0cnl7bi5pbnZva2UoZSl9Y2F0Y2goZSl7YyhlKX19bnVsbCE9PSh0PXRoaXMuX3BlcmZNb24pJiZ2b2lkIDAhPT10JiZ0LnN0b3AoKX19fWZ1bmN0aW9uIHJlKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IHIgb2YgZnVuY3Rpb24oZSl7bGV0IHQ9W10scj1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7Zm9yKDtPYmplY3QucHJvdG90eXBlIT09cjspdD10LmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyKSkscj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocik7cmV0dXJuIHR9KGUpKSJmdW5jdGlvbiI9PXR5cGVvZiBlW3JdJiZ0LnB1c2gocik7cmV0dXJuIHR9ZnVuY3Rpb24gbmUoZSxyKXtsZXQgdD17fTtmb3IoY29uc3QgbiBvZiBlKXRbbl09KHQ9PmZ1bmN0aW9uKCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3JldHVybiByKHQsZSl9KShuKTtyZXR1cm4gdH1jbGFzcyBpZXtjb25zdHJ1Y3RvcihlKXt0aGlzLmV4ZWN1dG9yPWUsdGhpcy5fZGlkUnVuPSExfWdldFZhbHVlKCl7aWYoIXRoaXMuX2RpZFJ1bil0cnl7dGhpcy5fdmFsdWU9dGhpcy5leGVjdXRvcigpfWNhdGNoKGUpe3RoaXMuX2Vycm9yPWV9ZmluYWxseXt0aGlzLl9kaWRSdW49ITB9aWYodGhpcy5fZXJyb3IpdGhyb3cgdGhpcy5fZXJyb3I7cmV0dXJuIHRoaXMuX3ZhbHVlfWdldCByYXdWYWx1ZSgpe3JldHVybiB0aGlzLl92YWx1ZX19ZnVuY3Rpb24gYWUocixuLGk9MCxhPXIubGVuZ3RoLG89MCxzPW4ubGVuZ3RoKXtmb3IoO2k8YSYmbzxzO2krKyxvKyspe2xldCBlPXIuY2hhckNvZGVBdChpKSx0PW4uY2hhckNvZGVBdChvKTtpZihlIT09dCl7aWYoMTI4PD1lfHwxMjg8PXQpcmV0dXJuIGZ1bmN0aW9uKGUsdCxyPTAsbj1lLmxlbmd0aCxpPTAsYT10Lmxlbmd0aCl7Zm9yKDtyPG4mJmk8YTtyKyssaSsrKXt2YXIgbz1lLmNoYXJDb2RlQXQocikscz10LmNoYXJDb2RlQXQoaSk7aWYobzxzKXJldHVybi0xO2lmKHM8bylyZXR1cm4gMX12YXIgbD1uLXIsaD1hLWk7cmV0dXJuIGw8aD8tMTpoPGw/MTowfShyLnRvTG93ZXJDYXNlKCksbi50b0xvd2VyQ2FzZSgpLGksYSxvLHMpO29lKGUpJiYoZS09MzIpLG9lKHQpJiYodC09MzIpO3ZhciBsPWUtdDtpZigwIT1sKXJldHVybiBsfX12YXIgZT1hLWksdD1zLW87cmV0dXJuIGU8dD8tMTp0PGU/MTowfWZ1bmN0aW9uIG9lKGUpe3JldHVybiA5Nzw9ZSYmZTw9MTIyfWZ1bmN0aW9uIHNlKGUpe3JldHVybiA2NTw9ZSYmZTw9OTB9ZnVuY3Rpb24gbGUoZSl7cmV0dXJuIDU1Mjk2PD1lJiZlPD01NjMxOX1jb25zdCBoZT0vXltcdFxuXHJceDIwLVx4N0VdKiQvO2NsYXNzIGNle2NvbnN0cnVjdG9yKGUpe3RoaXMuY29uZnVzYWJsZURpY3Rpb25hcnk9ZX1zdGF0aWMgZ2V0SW5zdGFuY2UoZSl7cmV0dXJuIGNlLmNhY2hlLmdldChBcnJheS5mcm9tKGUpKX1zdGF0aWMgZ2V0TG9jYWxlcygpe3JldHVybiBjZS5fbG9jYWxlcy5nZXRWYWx1ZSgpfWlzQW1iaWd1b3VzKGUpe3JldHVybiB0aGlzLmNvbmZ1c2FibGVEaWN0aW9uYXJ5LmhhcyhlKX1nZXRQcmltYXJ5Q29uZnVzYWJsZShlKXtyZXR1cm4gdGhpcy5jb25mdXNhYmxlRGljdGlvbmFyeS5nZXQoZSl9Z2V0Q29uZnVzYWJsZUNvZGVQb2ludHMoKXtyZXR1cm4gbmV3IFNldCh0aGlzLmNvbmZ1c2FibGVEaWN0aW9uYXJ5LmtleXMoKSl9fShCPWNlKS5hbWJpZ3VvdXNDaGFyYWN0ZXJEYXRhPW5ldyBpZSgoKT0+SlNPTi5wYXJzZSgneyJfY29tbW9uIjpbODIzMiwzMiw4MjMzLDMyLDU3NjAsMzIsODE5MiwzMiw4MTkzLDMyLDgxOTQsMzIsODE5NSwzMiw4MTk2LDMyLDgxOTcsMzIsODE5OCwzMiw4MjAwLDMyLDgyMDEsMzIsODIwMiwzMiw4Mjg3LDMyLDgxOTksMzIsODIzOSwzMiwyMDQyLDk1LDY1MTAxLDk1LDY1MTAyLDk1LDY1MTAzLDk1LDgyMDgsNDUsODIwOSw0NSw4MjEwLDQ1LDY1MTEyLDQ1LDE3NDgsNDUsODI1OSw0NSw3MjcsNDUsODcyMiw0NSwxMDEzNCw0NSwxMTQ1MCw0NSwxNTQ5LDQ0LDE2NDMsNDQsODIxOCw0NCwxODQsNDQsNDIyMzMsNDQsODk0LDU5LDIzMDcsNTgsMjY5MSw1OCwxNDE3LDU4LDE3OTUsNTgsMTc5Niw1OCw1ODY4LDU4LDY1MDcyLDU4LDYxNDcsNTgsNjE1Myw1OCw4MjgyLDU4LDE0NzUsNTgsNzYwLDU4LDQyODg5LDU4LDg3NTgsNTgsNzIwLDU4LDQyMjM3LDU4LDQ1MSwzMywxMTYwMSwzMyw2NjAsNjMsNTc3LDYzLDI0MjksNjMsNTAzOCw2Myw0MjczMSw2MywxMTkxNDksNDYsODIyOCw0NiwxNzkzLDQ2LDE3OTQsNDYsNDI1MTAsNDYsNjgxNzYsNDYsMTYzMiw0NiwxNzc2LDQ2LDQyMjMyLDQ2LDEzNzMsOTYsNjUyODcsOTYsODIxOSw5Niw4MjQyLDk2LDEzNzAsOTYsMTUyMyw5Niw4MTc1LDk2LDY1MzQ0LDk2LDkwMCw5Niw4MTg5LDk2LDgxMjUsOTYsODEyNyw5Niw4MTkwLDk2LDY5Nyw5Niw4ODQsOTYsNzEyLDk2LDcxNCw5Niw3MTUsOTYsNzU2LDk2LDY5OSw5Niw3MDEsOTYsNzAwLDk2LDcwMiw5Niw0Mjg5Miw5NiwxNDk3LDk2LDIwMzYsOTYsMjAzNyw5Niw1MTk0LDk2LDU4MzYsOTYsOTQwMzMsOTYsOTQwMzQsOTYsNjUzMzksOTEsMTAwODgsNDAsMTAwOTgsNDAsMTIzMDgsNDAsNjQ4MzAsNDAsNjUzNDEsOTMsMTAwODksNDEsMTAwOTksNDEsMTIzMDksNDEsNjQ4MzEsNDEsMTAxMDAsMTIzLDExOTA2MCwxMjMsMTAxMDEsMTI1LDY1MzQyLDk0LDgyNzAsNDIsMTY0NSw0Miw4NzI3LDQyLDY2MzM1LDQyLDU5NDEsNDcsODI1Nyw0Nyw4NzI1LDQ3LDgyNjAsNDcsOTU4NSw0NywxMDE4Nyw0NywxMDc0NCw0NywxMTkzNTQsNDcsMTI3NTUsNDcsMTIzMzksNDcsMTE0NjIsNDcsMjAwMzEsNDcsMTIwMzUsNDcsNjUzNDAsOTIsNjUxMjgsOTIsODcyNiw5MiwxMDE4OSw5MiwxMDc0MSw5MiwxMDc0NSw5MiwxMTkzMTEsOTIsMTE5MzU1LDkyLDEyNzU2LDkyLDIwMDIyLDkyLDEyMDM0LDkyLDQyODcyLDM4LDcwOCw5NCw3MTAsOTQsNTg2OSw0MywxMDEzMyw0Myw2NjIwMyw0Myw4MjQ5LDYwLDEwMDk0LDYwLDcwNiw2MCwxMTkzNTAsNjAsNTE3Niw2MCw1ODEwLDYwLDUxMjAsNjEsMTE4NDAsNjEsMTI0NDgsNjEsNDIyMzksNjEsODI1MCw2MiwxMDA5NSw2Miw3MDcsNjIsMTE5MzUxLDYyLDUxNzEsNjIsOTQwMTUsNjIsODI3NSwxMjYsNzMyLDEyNiw4MTI4LDEyNiw4NzY0LDEyNiw2NTM3MiwxMjQsNjUyOTMsNDUsMTIwNzg0LDUwLDEyMDc5NCw1MCwxMjA4MDQsNTAsMTIwODE0LDUwLDEyMDgyNCw1MCwxMzAwMzQsNTAsNDI4NDIsNTAsNDIzLDUwLDEwMDAsNTAsNDI1NjQsNTAsNTMxMSw1MCw0MjczNSw1MCwxMTkzMDIsNTEsMTIwNzg1LDUxLDEyMDc5NSw1MSwxMjA4MDUsNTEsMTIwODE1LDUxLDEyMDgyNSw1MSwxMzAwMzUsNTEsNDI5MjMsNTEsNTQwLDUxLDQzOSw1MSw0Mjg1OCw1MSwxMTQ2OCw1MSwxMjQ4LDUxLDk0MDExLDUxLDcxODgyLDUxLDEyMDc4Niw1MiwxMjA3OTYsNTIsMTIwODA2LDUyLDEyMDgxNiw1MiwxMjA4MjYsNTIsMTMwMDM2LDUyLDUwNzAsNTIsNzE4NTUsNTIsMTIwNzg3LDUzLDEyMDc5Nyw1MywxMjA4MDcsNTMsMTIwODE3LDUzLDEyMDgyNyw1MywxMzAwMzcsNTMsNDQ0LDUzLDcxODY3LDUzLDEyMDc4OCw1NCwxMjA3OTgsNTQsMTIwODA4LDU0LDEyMDgxOCw1NCwxMjA4MjgsNTQsMTMwMDM4LDU0LDExNDc0LDU0LDUxMDIsNTQsNzE4OTMsNTQsMTE5MzE0LDU1LDEyMDc4OSw1NSwxMjA3OTksNTUsMTIwODA5LDU1LDEyMDgxOSw1NSwxMjA4MjksNTUsMTMwMDM5LDU1LDY2NzcwLDU1LDcxODc4LDU1LDI4MTksNTYsMjUzOCw1NiwyNjY2LDU2LDEyNTEzMSw1NiwxMjA3OTAsNTYsMTIwODAwLDU2LDEyMDgxMCw1NiwxMjA4MjAsNTYsMTIwODMwLDU2LDEzMDA0MCw1Niw1NDcsNTYsNTQ2LDU2LDY2MzMwLDU2LDI2NjMsNTcsMjkyMCw1NywyNTQxLDU3LDM0MzcsNTcsMTIwNzkxLDU3LDEyMDgwMSw1NywxMjA4MTEsNTcsMTIwODIxLDU3LDEyMDgzMSw1NywxMzAwNDEsNTcsNDI4NjIsNTcsMTE0NjYsNTcsNzE4ODQsNTcsNzE4NTIsNTcsNzE4OTQsNTcsOTA4Miw5Nyw2NTM0NSw5NywxMTk4MzQsOTcsMTE5ODg2LDk3LDExOTkzOCw5NywxMTk5OTAsOTcsMTIwMDQyLDk3LDEyMDA5NCw5NywxMjAxNDYsOTcsMTIwMTk4LDk3LDEyMDI1MCw5NywxMjAzMDIsOTcsMTIwMzU0LDk3LDEyMDQwNiw5NywxMjA0NTgsOTcsNTkzLDk3LDk0NSw5NywxMjA1MTQsOTcsMTIwNTcyLDk3LDEyMDYzMCw5NywxMjA2ODgsOTcsMTIwNzQ2LDk3LDY1MzEzLDY1LDExOTgwOCw2NSwxMTk4NjAsNjUsMTE5OTEyLDY1LDExOTk2NCw2NSwxMjAwMTYsNjUsMTIwMDY4LDY1LDEyMDEyMCw2NSwxMjAxNzIsNjUsMTIwMjI0LDY1LDEyMDI3Niw2NSwxMjAzMjgsNjUsMTIwMzgwLDY1LDEyMDQzMiw2NSw5MTMsNjUsMTIwNDg4LDY1LDEyMDU0Niw2NSwxMjA2MDQsNjUsMTIwNjYyLDY1LDEyMDcyMCw2NSw1MDM0LDY1LDU1NzMsNjUsNDIyMjIsNjUsOTQwMTYsNjUsNjYyMDgsNjUsMTE5ODM1LDk4LDExOTg4Nyw5OCwxMTk5MzksOTgsMTE5OTkxLDk4LDEyMDA0Myw5OCwxMjAwOTUsOTgsMTIwMTQ3LDk4LDEyMDE5OSw5OCwxMjAyNTEsOTgsMTIwMzAzLDk4LDEyMDM1NSw5OCwxMjA0MDcsOTgsMTIwNDU5LDk4LDM4OCw5OCw1MDcxLDk4LDUyMzQsOTgsNTU1MSw5OCw2NTMxNCw2Niw4NDkyLDY2LDExOTgwOSw2NiwxMTk4NjEsNjYsMTE5OTEzLDY2LDEyMDAxNyw2NiwxMjAwNjksNjYsMTIwMTIxLDY2LDEyMDE3Myw2NiwxMjAyMjUsNjYsMTIwMjc3LDY2LDEyMDMyOSw2NiwxMjAzODEsNjYsMTIwNDMzLDY2LDQyOTMyLDY2LDkxNCw2NiwxMjA0ODksNjYsMTIwNTQ3LDY2LDEyMDYwNSw2NiwxMjA2NjMsNjYsMTIwNzIxLDY2LDUxMDgsNjYsNTYyMyw2Niw0MjE5Miw2Niw2NjE3OCw2Niw2NjIwOSw2Niw2NjMwNSw2Niw2NTM0Nyw5OSw4NTczLDk5LDExOTgzNiw5OSwxMTk4ODgsOTksMTE5OTQwLDk5LDExOTk5Miw5OSwxMjAwNDQsOTksMTIwMDk2LDk5LDEyMDE0OCw5OSwxMjAyMDAsOTksMTIwMjUyLDk5LDEyMDMwNCw5OSwxMjAzNTYsOTksMTIwNDA4LDk5LDEyMDQ2MCw5OSw3NDI4LDk5LDEwMTAsOTksMTE0MjksOTksNDM5NTEsOTksNjY2MjEsOTksMTI4ODQ0LDY3LDcxOTIyLDY3LDcxOTEzLDY3LDY1MzE1LDY3LDg1NTcsNjcsODQ1MCw2Nyw4NDkzLDY3LDExOTgxMCw2NywxMTk4NjIsNjcsMTE5OTE0LDY3LDExOTk2Niw2NywxMjAwMTgsNjcsMTIwMTc0LDY3LDEyMDIyNiw2NywxMjAyNzgsNjcsMTIwMzMwLDY3LDEyMDM4Miw2NywxMjA0MzQsNjcsMTAxNyw2NywxMTQyOCw2Nyw1MDg3LDY3LDQyMjAyLDY3LDY2MjEwLDY3LDY2MzA2LDY3LDY2NTgxLDY3LDY2ODQ0LDY3LDg1NzQsMTAwLDg1MTgsMTAwLDExOTgzNywxMDAsMTE5ODg5LDEwMCwxMTk5NDEsMTAwLDExOTk5MywxMDAsMTIwMDQ1LDEwMCwxMjAwOTcsMTAwLDEyMDE0OSwxMDAsMTIwMjAxLDEwMCwxMjAyNTMsMTAwLDEyMDMwNSwxMDAsMTIwMzU3LDEwMCwxMjA0MDksMTAwLDEyMDQ2MSwxMDAsMTI4MSwxMDAsNTA5NSwxMDAsNTIzMSwxMDAsNDIxOTQsMTAwLDg1NTgsNjgsODUxNyw2OCwxMTk4MTEsNjgsMTE5ODYzLDY4LDExOTkxNSw2OCwxMTk5NjcsNjgsMTIwMDE5LDY4LDEyMDA3MSw2OCwxMjAxMjMsNjgsMTIwMTc1LDY4LDEyMDIyNyw2OCwxMjAyNzksNjgsMTIwMzMxLDY4LDEyMDM4Myw2OCwxMjA0MzUsNjgsNTAyNCw2OCw1NTk4LDY4LDU2MTAsNjgsNDIxOTUsNjgsODQ5NCwxMDEsNjUzNDksMTAxLDg0OTUsMTAxLDg1MTksMTAxLDExOTgzOCwxMDEsMTE5ODkwLDEwMSwxMTk5NDIsMTAxLDEyMDA0NiwxMDEsMTIwMDk4LDEwMSwxMjAxNTAsMTAxLDEyMDIwMiwxMDEsMTIwMjU0LDEwMSwxMjAzMDYsMTAxLDEyMDM1OCwxMDEsMTIwNDEwLDEwMSwxMjA0NjIsMTAxLDQzODI2LDEwMSwxMjEzLDEwMSw4OTU5LDY5LDY1MzE3LDY5LDg0OTYsNjksMTE5ODEyLDY5LDExOTg2NCw2OSwxMTk5MTYsNjksMTIwMDIwLDY5LDEyMDA3Miw2OSwxMjAxMjQsNjksMTIwMTc2LDY5LDEyMDIyOCw2OSwxMjAyODAsNjksMTIwMzMyLDY5LDEyMDM4NCw2OSwxMjA0MzYsNjksOTE3LDY5LDEyMDQ5Miw2OSwxMjA1NTAsNjksMTIwNjA4LDY5LDEyMDY2Niw2OSwxMjA3MjQsNjksMTE1NzcsNjksNTAzNiw2OSw0MjIyNCw2OSw3MTg0Niw2OSw3MTg1NCw2OSw2NjE4Miw2OSwxMTk4MzksMTAyLDExOTg5MSwxMDIsMTE5OTQzLDEwMiwxMTk5OTUsMTAyLDEyMDA0NywxMDIsMTIwMDk5LDEwMiwxMjAxNTEsMTAyLDEyMDIwMywxMDIsMTIwMjU1LDEwMiwxMjAzMDcsMTAyLDEyMDM1OSwxMDIsMTIwNDExLDEwMiwxMjA0NjMsMTAyLDQzODI5LDEwMiw0MjkwNSwxMDIsMzgzLDEwMiw3ODM3LDEwMiwxNDEyLDEwMiwxMTkzMTUsNzAsODQ5Nyw3MCwxMTk4MTMsNzAsMTE5ODY1LDcwLDExOTkxNyw3MCwxMjAwMjEsNzAsMTIwMDczLDcwLDEyMDEyNSw3MCwxMjAxNzcsNzAsMTIwMjI5LDcwLDEyMDI4MSw3MCwxMjAzMzMsNzAsMTIwMzg1LDcwLDEyMDQzNyw3MCw0MjkwNCw3MCw5ODgsNzAsMTIwNzc4LDcwLDU1NTYsNzAsNDIyMDUsNzAsNzE4NzQsNzAsNzE4NDIsNzAsNjYxODMsNzAsNjYyMTMsNzAsNjY4NTMsNzAsNjUzNTEsMTAzLDg0NTgsMTAzLDExOTg0MCwxMDMsMTE5ODkyLDEwMywxMTk5NDQsMTAzLDEyMDA0OCwxMDMsMTIwMTAwLDEwMywxMjAxNTIsMTAzLDEyMDIwNCwxMDMsMTIwMjU2LDEwMywxMjAzMDgsMTAzLDEyMDM2MCwxMDMsMTIwNDEyLDEwMywxMjA0NjQsMTAzLDYwOSwxMDMsNzU1NSwxMDMsMzk3LDEwMywxNDA5LDEwMywxMTk4MTQsNzEsMTE5ODY2LDcxLDExOTkxOCw3MSwxMTk5NzAsNzEsMTIwMDIyLDcxLDEyMDA3NCw3MSwxMjAxMjYsNzEsMTIwMTc4LDcxLDEyMDIzMCw3MSwxMjAyODIsNzEsMTIwMzM0LDcxLDEyMDM4Niw3MSwxMjA0MzgsNzEsMTI5Miw3MSw1MDU2LDcxLDUxMDcsNzEsNDIxOTgsNzEsNjUzNTIsMTA0LDg0NjIsMTA0LDExOTg0MSwxMDQsMTE5OTQ1LDEwNCwxMTk5OTcsMTA0LDEyMDA0OSwxMDQsMTIwMTAxLDEwNCwxMjAxNTMsMTA0LDEyMDIwNSwxMDQsMTIwMjU3LDEwNCwxMjAzMDksMTA0LDEyMDM2MSwxMDQsMTIwNDEzLDEwNCwxMjA0NjUsMTA0LDEyMTEsMTA0LDEzOTIsMTA0LDUwNTgsMTA0LDY1MzIwLDcyLDg0NTksNzIsODQ2MCw3Miw4NDYxLDcyLDExOTgxNSw3MiwxMTk4NjcsNzIsMTE5OTE5LDcyLDEyMDAyMyw3MiwxMjAxNzksNzIsMTIwMjMxLDcyLDEyMDI4Myw3MiwxMjAzMzUsNzIsMTIwMzg3LDcyLDEyMDQzOSw3Miw5MTksNzIsMTIwNDk0LDcyLDEyMDU1Miw3MiwxMjA2MTAsNzIsMTIwNjY4LDcyLDEyMDcyNiw3MiwxMTQwNiw3Miw1MDUxLDcyLDU1MDAsNzIsNDIyMTUsNzIsNjYyNTUsNzIsNzMxLDEwNSw5MDc1LDEwNSw2NTM1MywxMDUsODU2MCwxMDUsODUwNSwxMDUsODUyMCwxMDUsMTE5ODQyLDEwNSwxMTk4OTQsMTA1LDExOTk0NiwxMDUsMTE5OTk4LDEwNSwxMjAwNTAsMTA1LDEyMDEwMiwxMDUsMTIwMTU0LDEwNSwxMjAyMDYsMTA1LDEyMDI1OCwxMDUsMTIwMzEwLDEwNSwxMjAzNjIsMTA1LDEyMDQxNCwxMDUsMTIwNDY2LDEwNSwxMjA0ODQsMTA1LDYxOCwxMDUsNjE3LDEwNSw5NTMsMTA1LDgxMjYsMTA1LDg5MCwxMDUsMTIwNTIyLDEwNSwxMjA1ODAsMTA1LDEyMDYzOCwxMDUsMTIwNjk2LDEwNSwxMjA3NTQsMTA1LDExMTAsMTA1LDQyNTY3LDEwNSwxMjMxLDEwNSw0Mzg5MywxMDUsNTAyOSwxMDUsNzE4NzUsMTA1LDY1MzU0LDEwNiw4NTIxLDEwNiwxMTk4NDMsMTA2LDExOTg5NSwxMDYsMTE5OTQ3LDEwNiwxMTk5OTksMTA2LDEyMDA1MSwxMDYsMTIwMTAzLDEwNiwxMjAxNTUsMTA2LDEyMDIwNywxMDYsMTIwMjU5LDEwNiwxMjAzMTEsMTA2LDEyMDM2MywxMDYsMTIwNDE1LDEwNiwxMjA0NjcsMTA2LDEwMTEsMTA2LDExMTIsMTA2LDY1MzIyLDc0LDExOTgxNyw3NCwxMTk4NjksNzQsMTE5OTIxLDc0LDExOTk3Myw3NCwxMjAwMjUsNzQsMTIwMDc3LDc0LDEyMDEyOSw3NCwxMjAxODEsNzQsMTIwMjMzLDc0LDEyMDI4NSw3NCwxMjAzMzcsNzQsMTIwMzg5LDc0LDEyMDQ0MSw3NCw0MjkzMCw3NCw4OTUsNzQsMTAzMiw3NCw1MDM1LDc0LDUyNjEsNzQsNDIyMDEsNzQsMTE5ODQ0LDEwNywxMTk4OTYsMTA3LDExOTk0OCwxMDcsMTIwMDAwLDEwNywxMjAwNTIsMTA3LDEyMDEwNCwxMDcsMTIwMTU2LDEwNywxMjAyMDgsMTA3LDEyMDI2MCwxMDcsMTIwMzEyLDEwNywxMjAzNjQsMTA3LDEyMDQxNiwxMDcsMTIwNDY4LDEwNyw4NDkwLDc1LDY1MzIzLDc1LDExOTgxOCw3NSwxMTk4NzAsNzUsMTE5OTIyLDc1LDExOTk3NCw3NSwxMjAwMjYsNzUsMTIwMDc4LDc1LDEyMDEzMCw3NSwxMjAxODIsNzUsMTIwMjM0LDc1LDEyMDI4Niw3NSwxMjAzMzgsNzUsMTIwMzkwLDc1LDEyMDQ0Miw3NSw5MjIsNzUsMTIwNDk3LDc1LDEyMDU1NSw3NSwxMjA2MTMsNzUsMTIwNjcxLDc1LDEyMDcyOSw3NSwxMTQxMiw3NSw1MDk0LDc1LDU4NDUsNzUsNDIxOTksNzUsNjY4NDAsNzUsMTQ3MiwxMDgsODczOSw3Myw5MjEzLDczLDY1NTEyLDczLDE2MzMsMTA4LDE3NzcsNzMsNjYzMzYsMTA4LDEyNTEyNywxMDgsMTIwNzgzLDczLDEyMDc5Myw3MywxMjA4MDMsNzMsMTIwODEzLDczLDEyMDgyMyw3MywxMzAwMzMsNzMsNjUzMjEsNzMsODU0NCw3Myw4NDY0LDczLDg0NjUsNzMsMTE5ODE2LDczLDExOTg2OCw3MywxMTk5MjAsNzMsMTIwMDI0LDczLDEyMDEyOCw3MywxMjAxODAsNzMsMTIwMjMyLDczLDEyMDI4NCw3MywxMjAzMzYsNzMsMTIwMzg4LDczLDEyMDQ0MCw3Myw2NTM1NiwxMDgsODU3Miw3Myw4NDY3LDEwOCwxMTk4NDUsMTA4LDExOTg5NywxMDgsMTE5OTQ5LDEwOCwxMjAwMDEsMTA4LDEyMDA1MywxMDgsMTIwMTA1LDczLDEyMDE1Nyw3MywxMjAyMDksNzMsMTIwMjYxLDczLDEyMDMxMyw3MywxMjAzNjUsNzMsMTIwNDE3LDczLDEyMDQ2OSw3Myw0NDgsNzMsMTIwNDk2LDczLDEyMDU1NCw3MywxMjA2MTIsNzMsMTIwNjcwLDczLDEyMDcyOCw3MywxMTQxMCw3MywxMDMwLDczLDEyMTYsNzMsMTQ5MywxMDgsMTUwMywxMDgsMTU3NSwxMDgsMTI2NDY0LDEwOCwxMjY1OTIsMTA4LDY1MTY2LDEwOCw2NTE2NSwxMDgsMTk5NCwxMDgsMTE1OTksNzMsNTgyNSw3Myw0MjIyNiw3Myw5Mzk5Miw3Myw2NjE4NiwxMjQsNjYzMTMsMTI0LDExOTMzOCw3Niw4NTU2LDc2LDg0NjYsNzYsMTE5ODE5LDc2LDExOTg3MSw3NiwxMTk5MjMsNzYsMTIwMDI3LDc2LDEyMDA3OSw3NiwxMjAxMzEsNzYsMTIwMTgzLDc2LDEyMDIzNSw3NiwxMjAyODcsNzYsMTIwMzM5LDc2LDEyMDM5MSw3NiwxMjA0NDMsNzYsMTE0NzIsNzYsNTA4Niw3Niw1MjkwLDc2LDQyMjA5LDc2LDkzOTc0LDc2LDcxODQzLDc2LDcxODU4LDc2LDY2NTg3LDc2LDY2ODU0LDc2LDY1MzI1LDc3LDg1NTksNzcsODQ5OSw3NywxMTk4MjAsNzcsMTE5ODcyLDc3LDExOTkyNCw3NywxMjAwMjgsNzcsMTIwMDgwLDc3LDEyMDEzMiw3NywxMjAxODQsNzcsMTIwMjM2LDc3LDEyMDI4OCw3NywxMjAzNDAsNzcsMTIwMzkyLDc3LDEyMDQ0NCw3Nyw5MjQsNzcsMTIwNDk5LDc3LDEyMDU1Nyw3NywxMjA2MTUsNzcsMTIwNjczLDc3LDEyMDczMSw3NywxMDE4LDc3LDExNDE2LDc3LDUwNDcsNzcsNTYxNiw3Nyw1ODQ2LDc3LDQyMjA3LDc3LDY2MjI0LDc3LDY2MzIxLDc3LDExOTg0NywxMTAsMTE5ODk5LDExMCwxMTk5NTEsMTEwLDEyMDAwMywxMTAsMTIwMDU1LDExMCwxMjAxMDcsMTEwLDEyMDE1OSwxMTAsMTIwMjExLDExMCwxMjAyNjMsMTEwLDEyMDMxNSwxMTAsMTIwMzY3LDExMCwxMjA0MTksMTEwLDEyMDQ3MSwxMTAsMTQwMCwxMTAsMTQwNCwxMTAsNjUzMjYsNzgsODQ2OSw3OCwxMTk4MjEsNzgsMTE5ODczLDc4LDExOTkyNSw3OCwxMTk5NzcsNzgsMTIwMDI5LDc4LDEyMDA4MSw3OCwxMjAxODUsNzgsMTIwMjM3LDc4LDEyMDI4OSw3OCwxMjAzNDEsNzgsMTIwMzkzLDc4LDEyMDQ0NSw3OCw5MjUsNzgsMTIwNTAwLDc4LDEyMDU1OCw3OCwxMjA2MTYsNzgsMTIwNjc0LDc4LDEyMDczMiw3OCwxMTQxOCw3OCw0MjIwOCw3OCw2NjgzNSw3OCwzMDc0LDExMSwzMjAyLDExMSwzMzMwLDExMSwzNDU4LDExMSwyNDA2LDExMSwyNjYyLDExMSwyNzkwLDExMSwzMDQ2LDExMSwzMTc0LDExMSwzMzAyLDExMSwzNDMwLDExMSwzNjY0LDExMSwzNzkyLDExMSw0MTYwLDExMSwxNjM3LDExMSwxNzgxLDExMSw2NTM1OSwxMTEsODUwMCwxMTEsMTE5ODQ4LDExMSwxMTk5MDAsMTExLDExOTk1MiwxMTEsMTIwMDU2LDExMSwxMjAxMDgsMTExLDEyMDE2MCwxMTEsMTIwMjEyLDExMSwxMjAyNjQsMTExLDEyMDMxNiwxMTEsMTIwMzY4LDExMSwxMjA0MjAsMTExLDEyMDQ3MiwxMTEsNzQzOSwxMTEsNzQ0MSwxMTEsNDM4MzcsMTExLDk1OSwxMTEsMTIwNTI4LDExMSwxMjA1ODYsMTExLDEyMDY0NCwxMTEsMTIwNzAyLDExMSwxMjA3NjAsMTExLDk2MywxMTEsMTIwNTMyLDExMSwxMjA1OTAsMTExLDEyMDY0OCwxMTEsMTIwNzA2LDExMSwxMjA3NjQsMTExLDExNDIzLDExMSw0MzUxLDExMSwxNDEzLDExMSwxNTA1LDExMSwxNjA3LDExMSwxMjY1MDAsMTExLDEyNjU2NCwxMTEsMTI2NTk2LDExMSw2NTI1OSwxMTEsNjUyNjAsMTExLDY1MjU4LDExMSw2NTI1NywxMTEsMTcyNiwxMTEsNjQ0MjgsMTExLDY0NDI5LDExMSw2NDQyNywxMTEsNjQ0MjYsMTExLDE3MjksMTExLDY0NDI0LDExMSw2NDQyNSwxMTEsNjQ0MjMsMTExLDY0NDIyLDExMSwxNzQ5LDExMSwzMzYwLDExMSw0MTI1LDExMSw2Njc5NCwxMTEsNzE4ODAsMTExLDcxODk1LDExMSw2NjYwNCwxMTEsMTk4NCw3OSwyNTM0LDc5LDI5MTgsNzksMTIyOTUsNzksNzA4NjQsNzksNzE5MDQsNzksMTIwNzgyLDc5LDEyMDc5Miw3OSwxMjA4MDIsNzksMTIwODEyLDc5LDEyMDgyMiw3OSwxMzAwMzIsNzksNjUzMjcsNzksMTE5ODIyLDc5LDExOTg3NCw3OSwxMTk5MjYsNzksMTE5OTc4LDc5LDEyMDAzMCw3OSwxMjAwODIsNzksMTIwMTM0LDc5LDEyMDE4Niw3OSwxMjAyMzgsNzksMTIwMjkwLDc5LDEyMDM0Miw3OSwxMjAzOTQsNzksMTIwNDQ2LDc5LDkyNyw3OSwxMjA1MDIsNzksMTIwNTYwLDc5LDEyMDYxOCw3OSwxMjA2NzYsNzksMTIwNzM0LDc5LDExNDIyLDc5LDEzNjUsNzksMTE2MDQsNzksNDgxNiw3OSwyODQ4LDc5LDY2NzU0LDc5LDQyMjI3LDc5LDcxODYxLDc5LDY2MTk0LDc5LDY2MjE5LDc5LDY2NTY0LDc5LDY2ODM4LDc5LDkwNzYsMTEyLDY1MzYwLDExMiwxMTk4NDksMTEyLDExOTkwMSwxMTIsMTE5OTUzLDExMiwxMjAwMDUsMTEyLDEyMDA1NywxMTIsMTIwMTA5LDExMiwxMjAxNjEsMTEyLDEyMDIxMywxMTIsMTIwMjY1LDExMiwxMjAzMTcsMTEyLDEyMDM2OSwxMTIsMTIwNDIxLDExMiwxMjA0NzMsMTEyLDk2MSwxMTIsMTIwNTMwLDExMiwxMjA1NDQsMTEyLDEyMDU4OCwxMTIsMTIwNjAyLDExMiwxMjA2NDYsMTEyLDEyMDY2MCwxMTIsMTIwNzA0LDExMiwxMjA3MTgsMTEyLDEyMDc2MiwxMTIsMTIwNzc2LDExMiwxMTQyNywxMTIsNjUzMjgsODAsODQ3Myw4MCwxMTk4MjMsODAsMTE5ODc1LDgwLDExOTkyNyw4MCwxMTk5NzksODAsMTIwMDMxLDgwLDEyMDA4Myw4MCwxMjAxODcsODAsMTIwMjM5LDgwLDEyMDI5MSw4MCwxMjAzNDMsODAsMTIwMzk1LDgwLDEyMDQ0Nyw4MCw5MjksODAsMTIwNTA0LDgwLDEyMDU2Miw4MCwxMjA2MjAsODAsMTIwNjc4LDgwLDEyMDczNiw4MCwxMTQyNiw4MCw1MDkwLDgwLDUyMjksODAsNDIxOTMsODAsNjYxOTcsODAsMTE5ODUwLDExMywxMTk5MDIsMTEzLDExOTk1NCwxMTMsMTIwMDA2LDExMywxMjAwNTgsMTEzLDEyMDExMCwxMTMsMTIwMTYyLDExMywxMjAyMTQsMTEzLDEyMDI2NiwxMTMsMTIwMzE4LDExMywxMjAzNzAsMTEzLDEyMDQyMiwxMTMsMTIwNDc0LDExMywxMzA3LDExMywxMzc5LDExMywxMzgyLDExMyw4NDc0LDgxLDExOTgyNCw4MSwxMTk4NzYsODEsMTE5OTI4LDgxLDExOTk4MCw4MSwxMjAwMzIsODEsMTIwMDg0LDgxLDEyMDE4OCw4MSwxMjAyNDAsODEsMTIwMjkyLDgxLDEyMDM0NCw4MSwxMjAzOTYsODEsMTIwNDQ4LDgxLDExNjA1LDgxLDExOTg1MSwxMTQsMTE5OTAzLDExNCwxMTk5NTUsMTE0LDEyMDAwNywxMTQsMTIwMDU5LDExNCwxMjAxMTEsMTE0LDEyMDE2MywxMTQsMTIwMjE1LDExNCwxMjAyNjcsMTE0LDEyMDMxOSwxMTQsMTIwMzcxLDExNCwxMjA0MjMsMTE0LDEyMDQ3NSwxMTQsNDM4NDcsMTE0LDQzODQ4LDExNCw3NDYyLDExNCwxMTM5NywxMTQsNDM5MDUsMTE0LDExOTMxOCw4Miw4NDc1LDgyLDg0NzYsODIsODQ3Nyw4MiwxMTk4MjUsODIsMTE5ODc3LDgyLDExOTkyOSw4MiwxMjAwMzMsODIsMTIwMTg5LDgyLDEyMDI0MSw4MiwxMjAyOTMsODIsMTIwMzQ1LDgyLDEyMDM5Nyw4MiwxMjA0NDksODIsNDIyLDgyLDUwMjUsODIsNTA3NCw4Miw2Njc0MCw4Miw1NTExLDgyLDQyMjExLDgyLDk0MDA1LDgyLDY1MzYzLDExNSwxMTk4NTIsMTE1LDExOTkwNCwxMTUsMTE5OTU2LDExNSwxMjAwMDgsMTE1LDEyMDA2MCwxMTUsMTIwMTEyLDExNSwxMjAxNjQsMTE1LDEyMDIxNiwxMTUsMTIwMjY4LDExNSwxMjAzMjAsMTE1LDEyMDM3MiwxMTUsMTIwNDI0LDExNSwxMjA0NzYsMTE1LDQyODAxLDExNSw0NDUsMTE1LDExMDksMTE1LDQzOTQ2LDExNSw3MTg3MywxMTUsNjY2MzIsMTE1LDY1MzMxLDgzLDExOTgyNiw4MywxMTk4NzgsODMsMTE5OTMwLDgzLDExOTk4Miw4MywxMjAwMzQsODMsMTIwMDg2LDgzLDEyMDEzOCw4MywxMjAxOTAsODMsMTIwMjQyLDgzLDEyMDI5NCw4MywxMjAzNDYsODMsMTIwMzk4LDgzLDEyMDQ1MCw4MywxMDI5LDgzLDEzNTksODMsNTA3Nyw4Myw1MDgyLDgzLDQyMjEwLDgzLDk0MDEwLDgzLDY2MTk4LDgzLDY2NTkyLDgzLDExOTg1MywxMTYsMTE5OTA1LDExNiwxMTk5NTcsMTE2LDEyMDAwOSwxMTYsMTIwMDYxLDExNiwxMjAxMTMsMTE2LDEyMDE2NSwxMTYsMTIwMjE3LDExNiwxMjAyNjksMTE2LDEyMDMyMSwxMTYsMTIwMzczLDExNiwxMjA0MjUsMTE2LDEyMDQ3NywxMTYsODg2OCw4NCwxMDIwMSw4NCwxMjg4NzIsODQsNjUzMzIsODQsMTE5ODI3LDg0LDExOTg3OSw4NCwxMTk5MzEsODQsMTE5OTgzLDg0LDEyMDAzNSw4NCwxMjAwODcsODQsMTIwMTM5LDg0LDEyMDE5MSw4NCwxMjAyNDMsODQsMTIwMjk1LDg0LDEyMDM0Nyw4NCwxMjAzOTksODQsMTIwNDUxLDg0LDkzMiw4NCwxMjA1MDcsODQsMTIwNTY1LDg0LDEyMDYyMyw4NCwxMjA2ODEsODQsMTIwNzM5LDg0LDExNDMwLDg0LDUwMjYsODQsNDIxOTYsODQsOTM5NjIsODQsNzE4NjgsODQsNjYxOTksODQsNjYyMjUsODQsNjYzMjUsODQsMTE5ODU0LDExNywxMTk5MDYsMTE3LDExOTk1OCwxMTcsMTIwMDEwLDExNywxMjAwNjIsMTE3LDEyMDExNCwxMTcsMTIwMTY2LDExNywxMjAyMTgsMTE3LDEyMDI3MCwxMTcsMTIwMzIyLDExNywxMjAzNzQsMTE3LDEyMDQyNiwxMTcsMTIwNDc4LDExNyw0MjkxMSwxMTcsNzQ1MiwxMTcsNDM4NTQsMTE3LDQzODU4LDExNyw2NTEsMTE3LDk2NSwxMTcsMTIwNTM0LDExNywxMjA1OTIsMTE3LDEyMDY1MCwxMTcsMTIwNzA4LDExNywxMjA3NjYsMTE3LDE0MDUsMTE3LDY2ODA2LDExNyw3MTg5NiwxMTcsODc0Niw4NSw4ODk5LDg1LDExOTgyOCw4NSwxMTk4ODAsODUsMTE5OTMyLDg1LDExOTk4NCw4NSwxMjAwMzYsODUsMTIwMDg4LDg1LDEyMDE0MCw4NSwxMjAxOTIsODUsMTIwMjQ0LDg1LDEyMDI5Niw4NSwxMjAzNDgsODUsMTIwNDAwLDg1LDEyMDQ1Miw4NSwxMzU3LDg1LDQ2MDgsODUsNjY3NjYsODUsNTE5Niw4NSw0MjIyOCw4NSw5NDAxOCw4NSw3MTg2NCw4NSw4NzQ0LDExOCw4ODk3LDExOCw2NTM2NiwxMTgsODU2NCwxMTgsMTE5ODU1LDExOCwxMTk5MDcsMTE4LDExOTk1OSwxMTgsMTIwMDExLDExOCwxMjAwNjMsMTE4LDEyMDExNSwxMTgsMTIwMTY3LDExOCwxMjAyMTksMTE4LDEyMDI3MSwxMTgsMTIwMzIzLDExOCwxMjAzNzUsMTE4LDEyMDQyNywxMTgsMTIwNDc5LDExOCw3NDU2LDExOCw5NTcsMTE4LDEyMDUyNiwxMTgsMTIwNTg0LDExOCwxMjA2NDIsMTE4LDEyMDcwMCwxMTgsMTIwNzU4LDExOCwxMTQxLDExOCwxNDk2LDExOCw3MTQzMCwxMTgsNDM5NDUsMTE4LDcxODcyLDExOCwxMTkzMDksODYsMTYzOSw4NiwxNzgzLDg2LDg1NDgsODYsMTE5ODI5LDg2LDExOTg4MSw4NiwxMTk5MzMsODYsMTE5OTg1LDg2LDEyMDAzNyw4NiwxMjAwODksODYsMTIwMTQxLDg2LDEyMDE5Myw4NiwxMjAyNDUsODYsMTIwMjk3LDg2LDEyMDM0OSw4NiwxMjA0MDEsODYsMTIwNDUzLDg2LDExNDAsODYsMTE1NzYsODYsNTA4MSw4Niw1MTY3LDg2LDQyNzE5LDg2LDQyMjE0LDg2LDkzOTYwLDg2LDcxODQwLDg2LDY2ODQ1LDg2LDYyMywxMTksMTE5ODU2LDExOSwxMTk5MDgsMTE5LDExOTk2MCwxMTksMTIwMDEyLDExOSwxMjAwNjQsMTE5LDEyMDExNiwxMTksMTIwMTY4LDExOSwxMjAyMjAsMTE5LDEyMDI3MiwxMTksMTIwMzI0LDExOSwxMjAzNzYsMTE5LDEyMDQyOCwxMTksMTIwNDgwLDExOSw3NDU3LDExOSwxMTIxLDExOSwxMzA5LDExOSwxMzc3LDExOSw3MTQzNCwxMTksNzE0MzgsMTE5LDcxNDM5LDExOSw0MzkwNywxMTksNzE5MTksODcsNzE5MTAsODcsMTE5ODMwLDg3LDExOTg4Miw4NywxMTk5MzQsODcsMTE5OTg2LDg3LDEyMDAzOCw4NywxMjAwOTAsODcsMTIwMTQyLDg3LDEyMDE5NCw4NywxMjAyNDYsODcsMTIwMjk4LDg3LDEyMDM1MCw4NywxMjA0MDIsODcsMTIwNDU0LDg3LDEzMDgsODcsNTA0Myw4Nyw1MDc2LDg3LDQyMjE4LDg3LDU3NDIsMTIwLDEwNTM5LDEyMCwxMDU0MCwxMjAsMTA3OTksMTIwLDY1MzY4LDEyMCw4NTY5LDEyMCwxMTk4NTcsMTIwLDExOTkwOSwxMjAsMTE5OTYxLDEyMCwxMjAwMTMsMTIwLDEyMDA2NSwxMjAsMTIwMTE3LDEyMCwxMjAxNjksMTIwLDEyMDIyMSwxMjAsMTIwMjczLDEyMCwxMjAzMjUsMTIwLDEyMDM3NywxMjAsMTIwNDI5LDEyMCwxMjA0ODEsMTIwLDU0NDEsMTIwLDU1MDEsMTIwLDU3NDEsODgsOTU4Nyw4OCw2NjMzOCw4OCw3MTkxNiw4OCw2NTMzNiw4OCw4NTUzLDg4LDExOTgzMSw4OCwxMTk4ODMsODgsMTE5OTM1LDg4LDExOTk4Nyw4OCwxMjAwMzksODgsMTIwMDkxLDg4LDEyMDE0Myw4OCwxMjAxOTUsODgsMTIwMjQ3LDg4LDEyMDI5OSw4OCwxMjAzNTEsODgsMTIwNDAzLDg4LDEyMDQ1NSw4OCw0MjkzMSw4OCw5MzUsODgsMTIwNTEwLDg4LDEyMDU2OCw4OCwxMjA2MjYsODgsMTIwNjg0LDg4LDEyMDc0Miw4OCwxMTQzNiw4OCwxMTYxMyw4OCw1ODE1LDg4LDQyMjE5LDg4LDY2MTkyLDg4LDY2MjI4LDg4LDY2MzI3LDg4LDY2ODU1LDg4LDYxMSwxMjEsNzU2NCwxMjEsNjUzNjksMTIxLDExOTg1OCwxMjEsMTE5OTEwLDEyMSwxMTk5NjIsMTIxLDEyMDAxNCwxMjEsMTIwMDY2LDEyMSwxMjAxMTgsMTIxLDEyMDE3MCwxMjEsMTIwMjIyLDEyMSwxMjAyNzQsMTIxLDEyMDMyNiwxMjEsMTIwMzc4LDEyMSwxMjA0MzAsMTIxLDEyMDQ4MiwxMjEsNjU1LDEyMSw3OTM1LDEyMSw0Mzg2NiwxMjEsOTQ3LDEyMSw4NTA5LDEyMSwxMjA1MTYsMTIxLDEyMDU3NCwxMjEsMTIwNjMyLDEyMSwxMjA2OTAsMTIxLDEyMDc0OCwxMjEsMTE5OSwxMjEsNDMyNywxMjEsNzE5MDAsMTIxLDY1MzM3LDg5LDExOTgzMiw4OSwxMTk4ODQsODksMTE5OTM2LDg5LDExOTk4OCw4OSwxMjAwNDAsODksMTIwMDkyLDg5LDEyMDE0NCw4OSwxMjAxOTYsODksMTIwMjQ4LDg5LDEyMDMwMCw4OSwxMjAzNTIsODksMTIwNDA0LDg5LDEyMDQ1Niw4OSw5MzMsODksOTc4LDg5LDEyMDUwOCw4OSwxMjA1NjYsODksMTIwNjI0LDg5LDEyMDY4Miw4OSwxMjA3NDAsODksMTE0MzIsODksMTE5OCw4OSw1MDMzLDg5LDUwNTMsODksNDIyMjAsODksOTQwMTksODksNzE4NDQsODksNjYyMjYsODksMTE5ODU5LDEyMiwxMTk5MTEsMTIyLDExOTk2MywxMjIsMTIwMDE1LDEyMiwxMjAwNjcsMTIyLDEyMDExOSwxMjIsMTIwMTcxLDEyMiwxMjAyMjMsMTIyLDEyMDI3NSwxMjIsMTIwMzI3LDEyMiwxMjAzNzksMTIyLDEyMDQzMSwxMjIsMTIwNDgzLDEyMiw3NDU4LDEyMiw0MzkyMywxMjIsNzE4NzYsMTIyLDY2MjkzLDkwLDcxOTA5LDkwLDY1MzM4LDkwLDg0ODQsOTAsODQ4OCw5MCwxMTk4MzMsOTAsMTE5ODg1LDkwLDExOTkzNyw5MCwxMTk5ODksOTAsMTIwMDQxLDkwLDEyMDE5Nyw5MCwxMjAyNDksOTAsMTIwMzAxLDkwLDEyMDM1Myw5MCwxMjA0MDUsOTAsMTIwNDU3LDkwLDkxOCw5MCwxMjA0OTMsOTAsMTIwNTUxLDkwLDEyMDYwOSw5MCwxMjA2NjcsOTAsMTIwNzI1LDkwLDUwNTksOTAsNDIyMDQsOTAsNzE4NDksOTAsNjUyODIsMzQsNjUyODQsMzYsNjUyODUsMzcsNjUyODYsMzgsNjUyOTAsNDIsNjUyOTEsNDMsNjUyOTQsNDYsNjUyOTUsNDcsNjUyOTYsNDgsNjUyOTcsNDksNjUyOTgsNTAsNjUyOTksNTEsNjUzMDAsNTIsNjUzMDEsNTMsNjUzMDIsNTQsNjUzMDMsNTUsNjUzMDQsNTYsNjUzMDUsNTcsNjUzMDgsNjAsNjUzMDksNjEsNjUzMTAsNjIsNjUzMTIsNjQsNjUzMTYsNjgsNjUzMTgsNzAsNjUzMTksNzEsNjUzMjQsNzYsNjUzMjksODEsNjUzMzAsODIsNjUzMzMsODUsNjUzMzQsODYsNjUzMzUsODcsNjUzNDMsOTUsNjUzNDYsOTgsNjUzNDgsMTAwLDY1MzUwLDEwMiw2NTM1NSwxMDcsNjUzNTcsMTA5LDY1MzU4LDExMCw2NTM2MSwxMTMsNjUzNjIsMTE0LDY1MzY0LDExNiw2NTM2NSwxMTcsNjUzNjcsMTE5LDY1MzcwLDEyMiw2NTM3MSwxMjMsNjUzNzMsMTI1XSwiX2RlZmF1bHQiOlsxNjAsMzIsODIxMSw0NSw2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwiY3MiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sImRlIjpbNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyMTYsOTYsODIxNyw5Niw4MjQ1LDk2LDE4MCw5NiwxMjQ5NCw0NywxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJlcyI6WzgyMTEsNDUsNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJmciI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyNDUsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJpdCI6WzE2MCwzMiw4MjExLDQ1LDY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwiamEiOls4MjExLDQ1LDY1MzA2LDU4LDY1MjgxLDMzLDgyMTYsOTYsODIxNyw5Niw4MjQ1LDk2LDE4MCw5NiwxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwyMTUsMTIwLDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI5Miw0NCw2NTMwNyw1OV0sImtvIjpbODIxMSw0NSw2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJwbCI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJwdC1CUiI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJxcHMtcGxvYyI6WzE2MCwzMiw4MjExLDQ1LDY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJydSI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMzA1LDEwNSw5MjEsNzMsMTAwOSwxMTIsMjE1LDEyMCw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sInRyIjpbMTYwLDMyLDgyMTEsNDUsNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwyMTUsMTIwLDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sInpoLWhhbnMiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODgsNDAsNjUyODksNDFdLCJ6aC1oYW50IjpbODIxMSw0NSw2NTM3NCwxMjYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1MzA3LDU5XX0nKSksY2UuY2FjaGU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuY29tcHV0ZUZuPWUsdGhpcy5sYXN0Q2FjaGU9dm9pZCAwLHRoaXMubGFzdEFyZ0tleT12b2lkIDB9Z2V0KGUpe3ZhciB0PUpTT04uc3RyaW5naWZ5KGUpO3JldHVybiB0aGlzLmxhc3RBcmdLZXkhPT10JiYodGhpcy5sYXN0QXJnS2V5PXQsdGhpcy5sYXN0Q2FjaGU9dGhpcy5jb21wdXRlRm4oZSkpLHRoaXMubGFzdENhY2hlfX0oZT0+e2Z1bmN0aW9uIHQodCl7Y29uc3Qgcj1uZXcgTWFwO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9MilyLnNldCh0W2VdLHRbZSsxXSk7cmV0dXJuIHJ9Y29uc3Qgcj1CLmFtYmlndW91c0NoYXJhY3RlckRhdGEuZ2V0VmFsdWUoKTtsZXQgbj1lLmZpbHRlcihlPT4hZS5zdGFydHNXaXRoKCJfIikmJmUgaW4gciksaT12b2lkIDA7Zm9yKGNvbnN0IG8gb2Ygbj0wPT09bi5sZW5ndGg/WyJfZGVmYXVsdCJdOm4pe2NvbnN0IGE9dChyW29dKTtpPWZ1bmN0aW9uKGUsdCl7aWYoIWUpcmV0dXJuIHQ7Y29uc3Qgcj1uZXcgTWFwO2Zvcih2YXJbbixpXW9mIGUpdC5oYXMobikmJnIuc2V0KG4saSk7cmV0dXJuIHJ9KGksYSl9Y29uc3QgYT1mdW5jdGlvbihlLHQpe2NvbnN0IHI9bmV3IE1hcChlKTtmb3IodmFyW24saV1vZiB0KXIuc2V0KG4saSk7cmV0dXJuIHJ9KHQoci5fY29tbW9uKSxpKTtyZXR1cm4gbmV3IGNlKGEpfSksY2UuX2xvY2FsZXM9bmV3IGllKCgpPT5PYmplY3Qua2V5cyhjZS5hbWJpZ3VvdXNDaGFyYWN0ZXJEYXRhLmdldFZhbHVlKCkpLmZpbHRlcihlPT4hZS5zdGFydHNXaXRoKCJfIikpKTtjbGFzcyB1ZXtzdGF0aWMgZ2V0UmF3RGF0YSgpe3JldHVybiBKU09OLnBhcnNlKCJbOSwxMCwxMSwxMiwxMywzMiwxMjcsMTYwLDE3Myw4NDcsMTU2NCw0NDQ3LDQ0NDgsNjA2OCw2MDY5LDYxNTUsNjE1Niw2MTU3LDYxNTgsNzM1NSw3MzU2LDgxOTIsODE5Myw4MTk0LDgxOTUsODE5Niw4MTk3LDgxOTgsODE5OSw4MjAwLDgyMDEsODIwMiw4MjAzLDgyMDQsODIwNSw4MjA2LDgyMDcsODIzNCw4MjM1LDgyMzYsODIzNyw4MjM4LDgyMzksODI4Nyw4Mjg4LDgyODksODI5MCw4MjkxLDgyOTIsODI5Myw4Mjk0LDgyOTUsODI5Niw4Mjk3LDgyOTgsODI5OSw4MzAwLDgzMDEsODMwMiw4MzAzLDEwMjQwLDEyMjg4LDEyNjQ0LDY1MDI0LDY1MDI1LDY1MDI2LDY1MDI3LDY1MDI4LDY1MDI5LDY1MDMwLDY1MDMxLDY1MDMyLDY1MDMzLDY1MDM0LDY1MDM1LDY1MDM2LDY1MDM3LDY1MDM4LDY1MDM5LDY1Mjc5LDY1NDQwLDY1NTIwLDY1NTIxLDY1NTIyLDY1NTIzLDY1NTI0LDY1NTI1LDY1NTI2LDY1NTI3LDY1NTI4LDY1NTMyLDc4ODQ0LDExOTE1NSwxMTkxNTYsMTE5MTU3LDExOTE1OCwxMTkxNTksMTE5MTYwLDExOTE2MSwxMTkxNjIsOTE3NTA0LDkxNzUwNSw5MTc1MDYsOTE3NTA3LDkxNzUwOCw5MTc1MDksOTE3NTEwLDkxNzUxMSw5MTc1MTIsOTE3NTEzLDkxNzUxNCw5MTc1MTUsOTE3NTE2LDkxNzUxNyw5MTc1MTgsOTE3NTE5LDkxNzUyMCw5MTc1MjEsOTE3NTIyLDkxNzUyMyw5MTc1MjQsOTE3NTI1LDkxNzUyNiw5MTc1MjcsOTE3NTI4LDkxNzUyOSw5MTc1MzAsOTE3NTMxLDkxNzUzMiw5MTc1MzMsOTE3NTM0LDkxNzUzNSw5MTc1MzYsOTE3NTM3LDkxNzUzOCw5MTc1MzksOTE3NTQwLDkxNzU0MSw5MTc1NDIsOTE3NTQzLDkxNzU0NCw5MTc1NDUsOTE3NTQ2LDkxNzU0Nyw5MTc1NDgsOTE3NTQ5LDkxNzU1MCw5MTc1NTEsOTE3NTUyLDkxNzU1Myw5MTc1NTQsOTE3NTU1LDkxNzU1Niw5MTc1NTcsOTE3NTU4LDkxNzU1OSw5MTc1NjAsOTE3NTYxLDkxNzU2Miw5MTc1NjMsOTE3NTY0LDkxNzU2NSw5MTc1NjYsOTE3NTY3LDkxNzU2OCw5MTc1NjksOTE3NTcwLDkxNzU3MSw5MTc1NzIsOTE3NTczLDkxNzU3NCw5MTc1NzUsOTE3NTc2LDkxNzU3Nyw5MTc1NzgsOTE3NTc5LDkxNzU4MCw5MTc1ODEsOTE3NTgyLDkxNzU4Myw5MTc1ODQsOTE3NTg1LDkxNzU4Niw5MTc1ODcsOTE3NTg4LDkxNzU4OSw5MTc1OTAsOTE3NTkxLDkxNzU5Miw5MTc1OTMsOTE3NTk0LDkxNzU5NSw5MTc1OTYsOTE3NTk3LDkxNzU5OCw5MTc1OTksOTE3NjAwLDkxNzYwMSw5MTc2MDIsOTE3NjAzLDkxNzYwNCw5MTc2MDUsOTE3NjA2LDkxNzYwNyw5MTc2MDgsOTE3NjA5LDkxNzYxMCw5MTc2MTEsOTE3NjEyLDkxNzYxMyw5MTc2MTQsOTE3NjE1LDkxNzYxNiw5MTc2MTcsOTE3NjE4LDkxNzYxOSw5MTc2MjAsOTE3NjIxLDkxNzYyMiw5MTc2MjMsOTE3NjI0LDkxNzYyNSw5MTc2MjYsOTE3NjI3LDkxNzYyOCw5MTc2MjksOTE3NjMwLDkxNzYzMSw5MTc3NjAsOTE3NzYxLDkxNzc2Miw5MTc3NjMsOTE3NzY0LDkxNzc2NSw5MTc3NjYsOTE3NzY3LDkxNzc2OCw5MTc3NjksOTE3NzcwLDkxNzc3MSw5MTc3NzIsOTE3NzczLDkxNzc3NCw5MTc3NzUsOTE3Nzc2LDkxNzc3Nyw5MTc3NzgsOTE3Nzc5LDkxNzc4MCw5MTc3ODEsOTE3NzgyLDkxNzc4Myw5MTc3ODQsOTE3Nzg1LDkxNzc4Niw5MTc3ODcsOTE3Nzg4LDkxNzc4OSw5MTc3OTAsOTE3NzkxLDkxNzc5Miw5MTc3OTMsOTE3Nzk0LDkxNzc5NSw5MTc3OTYsOTE3Nzk3LDkxNzc5OCw5MTc3OTksOTE3ODAwLDkxNzgwMSw5MTc4MDIsOTE3ODAzLDkxNzgwNCw5MTc4MDUsOTE3ODA2LDkxNzgwNyw5MTc4MDgsOTE3ODA5LDkxNzgxMCw5MTc4MTEsOTE3ODEyLDkxNzgxMyw5MTc4MTQsOTE3ODE1LDkxNzgxNiw5MTc4MTcsOTE3ODE4LDkxNzgxOSw5MTc4MjAsOTE3ODIxLDkxNzgyMiw5MTc4MjMsOTE3ODI0LDkxNzgyNSw5MTc4MjYsOTE3ODI3LDkxNzgyOCw5MTc4MjksOTE3ODMwLDkxNzgzMSw5MTc4MzIsOTE3ODMzLDkxNzgzNCw5MTc4MzUsOTE3ODM2LDkxNzgzNyw5MTc4MzgsOTE3ODM5LDkxNzg0MCw5MTc4NDEsOTE3ODQyLDkxNzg0Myw5MTc4NDQsOTE3ODQ1LDkxNzg0Niw5MTc4NDcsOTE3ODQ4LDkxNzg0OSw5MTc4NTAsOTE3ODUxLDkxNzg1Miw5MTc4NTMsOTE3ODU0LDkxNzg1NSw5MTc4NTYsOTE3ODU3LDkxNzg1OCw5MTc4NTksOTE3ODYwLDkxNzg2MSw5MTc4NjIsOTE3ODYzLDkxNzg2NCw5MTc4NjUsOTE3ODY2LDkxNzg2Nyw5MTc4NjgsOTE3ODY5LDkxNzg3MCw5MTc4NzEsOTE3ODcyLDkxNzg3Myw5MTc4NzQsOTE3ODc1LDkxNzg3Niw5MTc4NzcsOTE3ODc4LDkxNzg3OSw5MTc4ODAsOTE3ODgxLDkxNzg4Miw5MTc4ODMsOTE3ODg0LDkxNzg4NSw5MTc4ODYsOTE3ODg3LDkxNzg4OCw5MTc4ODksOTE3ODkwLDkxNzg5MSw5MTc4OTIsOTE3ODkzLDkxNzg5NCw5MTc4OTUsOTE3ODk2LDkxNzg5Nyw5MTc4OTgsOTE3ODk5LDkxNzkwMCw5MTc5MDEsOTE3OTAyLDkxNzkwMyw5MTc5MDQsOTE3OTA1LDkxNzkwNiw5MTc5MDcsOTE3OTA4LDkxNzkwOSw5MTc5MTAsOTE3OTExLDkxNzkxMiw5MTc5MTMsOTE3OTE0LDkxNzkxNSw5MTc5MTYsOTE3OTE3LDkxNzkxOCw5MTc5MTksOTE3OTIwLDkxNzkyMSw5MTc5MjIsOTE3OTIzLDkxNzkyNCw5MTc5MjUsOTE3OTI2LDkxNzkyNyw5MTc5MjgsOTE3OTI5LDkxNzkzMCw5MTc5MzEsOTE3OTMyLDkxNzkzMyw5MTc5MzQsOTE3OTM1LDkxNzkzNiw5MTc5MzcsOTE3OTM4LDkxNzkzOSw5MTc5NDAsOTE3OTQxLDkxNzk0Miw5MTc5NDMsOTE3OTQ0LDkxNzk0NSw5MTc5NDYsOTE3OTQ3LDkxNzk0OCw5MTc5NDksOTE3OTUwLDkxNzk1MSw5MTc5NTIsOTE3OTUzLDkxNzk1NCw5MTc5NTUsOTE3OTU2LDkxNzk1Nyw5MTc5NTgsOTE3OTU5LDkxNzk2MCw5MTc5NjEsOTE3OTYyLDkxNzk2Myw5MTc5NjQsOTE3OTY1LDkxNzk2Niw5MTc5NjcsOTE3OTY4LDkxNzk2OSw5MTc5NzAsOTE3OTcxLDkxNzk3Miw5MTc5NzMsOTE3OTc0LDkxNzk3NSw5MTc5NzYsOTE3OTc3LDkxNzk3OCw5MTc5NzksOTE3OTgwLDkxNzk4MSw5MTc5ODIsOTE3OTgzLDkxNzk4NCw5MTc5ODUsOTE3OTg2LDkxNzk4Nyw5MTc5ODgsOTE3OTg5LDkxNzk5MCw5MTc5OTEsOTE3OTkyLDkxNzk5Myw5MTc5OTQsOTE3OTk1LDkxNzk5Niw5MTc5OTcsOTE3OTk4LDkxNzk5OV0iKX1zdGF0aWMgZ2V0RGF0YSgpe3JldHVybiB0aGlzLl9kYXRhfHwodGhpcy5fZGF0YT1uZXcgU2V0KHVlLmdldFJhd0RhdGEoKSkpLHRoaXMuX2RhdGF9c3RhdGljIGlzSW52aXNpYmxlQ2hhcmFjdGVyKGUpe3JldHVybiB1ZS5nZXREYXRhKCkuaGFzKGUpfXN0YXRpYyBnZXQgY29kZVBvaW50cygpe3JldHVybiB1ZS5nZXREYXRhKCl9fXVlLl9kYXRhPXZvaWQgMDtjbGFzcyBkZXtjb25zdHJ1Y3RvcihlLHQscixuKXt0aGlzLnZzV29ya2VyPWUsdGhpcy5yZXE9dCx0aGlzLm1ldGhvZD1yLHRoaXMuYXJncz1uLHRoaXMudHlwZT0wfX1jbGFzcyBmZXtjb25zdHJ1Y3RvcihlLHQscixuKXt0aGlzLnZzV29ya2VyPWUsdGhpcy5zZXE9dCx0aGlzLnJlcz1yLHRoaXMuZXJyPW4sdGhpcy50eXBlPTF9fWNsYXNzIG1le2NvbnN0cnVjdG9yKGUsdCxyLG4pe3RoaXMudnNXb3JrZXI9ZSx0aGlzLnJlcT10LHRoaXMuZXZlbnROYW1lPXIsdGhpcy5hcmc9bix0aGlzLnR5cGU9Mn19Y2xhc3MgZ2V7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMudnNXb3JrZXI9ZSx0aGlzLnJlcT10LHRoaXMuZXZlbnQ9cix0aGlzLnR5cGU9M319Y2xhc3MgYmV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnZzV29ya2VyPWUsdGhpcy5yZXE9dCx0aGlzLnR5cGU9NH19Y2xhc3MgQ2V7Y29uc3RydWN0b3IoZSl7dGhpcy5fd29ya2VySWQ9LTEsdGhpcy5faGFuZGxlcj1lLHRoaXMuX2xhc3RTZW50UmVxPTAsdGhpcy5fcGVuZGluZ1JlcGxpZXM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9wZW5kaW5nRW1pdHRlcnM9bmV3IE1hcCx0aGlzLl9wZW5kaW5nRXZlbnRzPW5ldyBNYXB9c2V0V29ya2VySWQoZSl7dGhpcy5fd29ya2VySWQ9ZX1zZW5kTWVzc2FnZShyLG4pe2NvbnN0IGk9U3RyaW5nKCsrdGhpcy5fbGFzdFNlbnRSZXEpO3JldHVybiBuZXcgUHJvbWlzZSgoZSx0KT0+e3RoaXMuX3BlbmRpbmdSZXBsaWVzW2ldPXtyZXNvbHZlOmUscmVqZWN0OnR9LHRoaXMuX3NlbmQobmV3IGRlKHRoaXMuX3dvcmtlcklkLGkscixuKSl9KX1saXN0ZW4oZSx0KXtsZXQgcj1udWxsO2NvbnN0IG49bmV3IHRlKHtvbkZpcnN0TGlzdGVuZXJBZGQ6KCk9PntyPVN0cmluZygrK3RoaXMuX2xhc3RTZW50UmVxKSx0aGlzLl9wZW5kaW5nRW1pdHRlcnMuc2V0KHIsbiksdGhpcy5fc2VuZChuZXcgbWUodGhpcy5fd29ya2VySWQscixlLHQpKX0sb25MYXN0TGlzdGVuZXJSZW1vdmU6KCk9Pnt0aGlzLl9wZW5kaW5nRW1pdHRlcnMuZGVsZXRlKHIpLHRoaXMuX3NlbmQobmV3IGJlKHRoaXMuX3dvcmtlcklkLHIpKSxyPW51bGx9fSk7cmV0dXJuIG4uZXZlbnR9aGFuZGxlTWVzc2FnZShlKXtlJiZlLnZzV29ya2VyJiYoLTEhPT10aGlzLl93b3JrZXJJZCYmZS52c1dvcmtlciE9PXRoaXMuX3dvcmtlcklkfHx0aGlzLl9oYW5kbGVNZXNzYWdlKGUpKX1faGFuZGxlTWVzc2FnZShlKXtzd2l0Y2goZS50eXBlKXtjYXNlIDE6cmV0dXJuIHRoaXMuX2hhbmRsZVJlcGx5TWVzc2FnZShlKTtjYXNlIDA6cmV0dXJuIHRoaXMuX2hhbmRsZVJlcXVlc3RNZXNzYWdlKGUpO2Nhc2UgMjpyZXR1cm4gdGhpcy5faGFuZGxlU3Vic2NyaWJlRXZlbnRNZXNzYWdlKGUpO2Nhc2UgMzpyZXR1cm4gdGhpcy5faGFuZGxlRXZlbnRNZXNzYWdlKGUpO2Nhc2UgNDpyZXR1cm4gdGhpcy5faGFuZGxlVW5zdWJzY3JpYmVFdmVudE1lc3NhZ2UoZSl9fV9oYW5kbGVSZXBseU1lc3NhZ2Uocil7aWYodGhpcy5fcGVuZGluZ1JlcGxpZXNbci5zZXFdKXtsZXQgdD10aGlzLl9wZW5kaW5nUmVwbGllc1tyLnNlcV07aWYoZGVsZXRlIHRoaXMuX3BlbmRpbmdSZXBsaWVzW3Iuc2VxXSxyLmVycil7bGV0IGU9ci5lcnI7cmV0dXJuIHIuZXJyLiRpc0Vycm9yJiYoKGU9bmV3IEVycm9yKS5uYW1lPXIuZXJyLm5hbWUsZS5tZXNzYWdlPXIuZXJyLm1lc3NhZ2UsZS5zdGFjaz1yLmVyci5zdGFjayksdm9pZCB0LnJlamVjdChlKX10LnJlc29sdmUoci5yZXMpfWVsc2UgY29uc29sZS53YXJuKCJHb3QgcmVwbHkgdG8gdW5rbm93biBzZXEiKX1faGFuZGxlUmVxdWVzdE1lc3NhZ2UoZSl7bGV0IHQ9ZS5yZXEscj10aGlzLl9oYW5kbGVyLmhhbmRsZU1lc3NhZ2UoZS5tZXRob2QsZS5hcmdzKTtyLnRoZW4oZT0+e3RoaXMuX3NlbmQobmV3IGZlKHRoaXMuX3dvcmtlcklkLHQsZSx2b2lkIDApKX0sZT0+e2UuZGV0YWlsIGluc3RhbmNlb2YgRXJyb3ImJihlLmRldGFpbD11KGUuZGV0YWlsKSksdGhpcy5fc2VuZChuZXcgZmUodGhpcy5fd29ya2VySWQsdCx2b2lkIDAsdShlKSkpfSl9X2hhbmRsZVN1YnNjcmliZUV2ZW50TWVzc2FnZShlKXtjb25zdCB0PWUucmVxO2U9dGhpcy5faGFuZGxlci5oYW5kbGVFdmVudChlLmV2ZW50TmFtZSxlLmFyZykoZT0+e3RoaXMuX3NlbmQobmV3IGdlKHRoaXMuX3dvcmtlcklkLHQsZSkpfSk7dGhpcy5fcGVuZGluZ0V2ZW50cy5zZXQodCxlKX1faGFuZGxlRXZlbnRNZXNzYWdlKGUpe3RoaXMuX3BlbmRpbmdFbWl0dGVycy5oYXMoZS5yZXEpP3RoaXMuX3BlbmRpbmdFbWl0dGVycy5nZXQoZS5yZXEpLmZpcmUoZS5ldmVudCk6Y29uc29sZS53YXJuKCJHb3QgZXZlbnQgZm9yIHVua25vd24gcmVxIil9X2hhbmRsZVVuc3Vic2NyaWJlRXZlbnRNZXNzYWdlKGUpe3RoaXMuX3BlbmRpbmdFdmVudHMuaGFzKGUucmVxKT8odGhpcy5fcGVuZGluZ0V2ZW50cy5nZXQoZS5yZXEpLmRpc3Bvc2UoKSx0aGlzLl9wZW5kaW5nRXZlbnRzLmRlbGV0ZShlLnJlcSkpOmNvbnNvbGUud2FybigiR290IHVuc3Vic2NyaWJlIGZvciB1bmtub3duIHJlcSIpfV9zZW5kKHQpe2xldCByPVtdO2lmKDA9PT10LnR5cGUpZm9yKGxldCBlPTA7ZTx0LmFyZ3MubGVuZ3RoO2UrKyl0LmFyZ3NbZV1pbnN0YW5jZW9mIEFycmF5QnVmZmVyJiZyLnB1c2godC5hcmdzW2VdKTtlbHNlIDE9PT10LnR5cGUmJnQucmVzIGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJnIucHVzaCh0LnJlcyk7dGhpcy5faGFuZGxlci5zZW5kTWVzc2FnZSh0LHIpfX1mdW5jdGlvbiBwZShlKXtyZXR1cm4ibyI9PT1lWzBdJiYibiI9PT1lWzFdJiZzZShlLmNoYXJDb2RlQXQoMikpfWZ1bmN0aW9uIHdlKGUpe3JldHVybi9eb25EeW5hbWljLy50ZXN0KGUpJiZzZShlLmNoYXJDb2RlQXQoOSkpfWZ1bmN0aW9uIF9lKGUscixuKXtsZXQgdD17fTtmb3IoY29uc3QgaSBvZiBlKXdlKGkpP3RbaV09KHQ9PmZ1bmN0aW9uKGUpe3JldHVybiBuKHQsZSl9KShpKTpwZShpKT90W2ldPW4oaSx2b2lkIDApOnRbaV09KHQ9PmZ1bmN0aW9uKCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3JldHVybiByKHQsZSl9KShpKTtyZXR1cm4gdH1jbGFzcyB2ZXtjb25zdHJ1Y3RvcihyLGUpe3RoaXMuX3JlcXVlc3RIYW5kbGVyRmFjdG9yeT1lLHRoaXMuX3JlcXVlc3RIYW5kbGVyPW51bGwsdGhpcy5fcHJvdG9jb2w9bmV3IENlKHtzZW5kTWVzc2FnZTooZSx0KT0+e3IoZSx0KX0saGFuZGxlTWVzc2FnZTooZSx0KT0+dGhpcy5faGFuZGxlTWVzc2FnZShlLHQpLGhhbmRsZUV2ZW50OihlLHQpPT50aGlzLl9oYW5kbGVFdmVudChlLHQpfSl9b25tZXNzYWdlKGUpe3RoaXMuX3Byb3RvY29sLmhhbmRsZU1lc3NhZ2UoZSl9X2hhbmRsZU1lc3NhZ2UoZSx0KXtpZigiJGluaXRpYWxpemUiPT09ZSlyZXR1cm4gdGhpcy5pbml0aWFsaXplKHRbMF0sdFsxXSx0WzJdLHRbM10pO2lmKCF0aGlzLl9yZXF1ZXN0SGFuZGxlcnx8ImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMuX3JlcXVlc3RIYW5kbGVyW2VdKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIk1pc3NpbmcgcmVxdWVzdEhhbmRsZXIgb3IgbWV0aG9kOiAiK2UpKTt0cnl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9yZXF1ZXN0SGFuZGxlcltlXS5hcHBseSh0aGlzLl9yZXF1ZXN0SGFuZGxlcix0KSl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGUpfX1faGFuZGxlRXZlbnQoZSx0KXtpZighdGhpcy5fcmVxdWVzdEhhbmRsZXIpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHJlcXVlc3RIYW5kbGVyIik7aWYod2UoZSkpe3Q9dGhpcy5fcmVxdWVzdEhhbmRsZXJbZV0uY2FsbCh0aGlzLl9yZXF1ZXN0SGFuZGxlcix0KTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgZHluYW1pYyBldmVudCAke2V9IG9uIHJlcXVlc3QgaGFuZGxlci5gKTtyZXR1cm4gdH1pZihwZShlKSl7dD10aGlzLl9yZXF1ZXN0SGFuZGxlcltlXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgZXZlbnQgJHtlfSBvbiByZXF1ZXN0IGhhbmRsZXIuYCk7cmV0dXJuIHR9dGhyb3cgbmV3IEVycm9yKCJNYWxmb3JtZWQgZXZlbnQgbmFtZSAiK2UpfWluaXRpYWxpemUoZSx0LG4scil7dGhpcy5fcHJvdG9jb2wuc2V0V29ya2VySWQoZSk7Y29uc3QgaT1fZShyLChlLHQpPT50aGlzLl9wcm90b2NvbC5zZW5kTWVzc2FnZShlLHQpLChlLHQpPT50aGlzLl9wcm90b2NvbC5saXN0ZW4oZSx0KSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RIYW5kbGVyRmFjdG9yeT8odGhpcy5fcmVxdWVzdEhhbmRsZXI9dGhpcy5fcmVxdWVzdEhhbmRsZXJGYWN0b3J5KGkpLFByb21pc2UucmVzb2x2ZShyZSh0aGlzLl9yZXF1ZXN0SGFuZGxlcikpKToodCYmKHZvaWQgMCE9PXQuYmFzZVVybCYmZGVsZXRlIHQuYmFzZVVybCx2b2lkIDAhPT10LnBhdGhzJiZ2b2lkIDAhPT10LnBhdGhzLnZzJiZkZWxldGUgdC5wYXRocy52cyx0LnRydXN0ZWRUeXBlc1BvbGljeSxkZWxldGUgdC50cnVzdGVkVHlwZXNQb2xpY3ksdC5jYXRjaEVycm9yPSEwLEQucmVxdWlyZS5jb25maWcodCkpLG5ldyBQcm9taXNlKCh0LHIpPT57Y29uc3QgZT1ELnJlcXVpcmU7ZShbbl0sZT0+e3RoaXMuX3JlcXVlc3RIYW5kbGVyPWUuY3JlYXRlKGkpLHRoaXMuX3JlcXVlc3RIYW5kbGVyP3QocmUodGhpcy5fcmVxdWVzdEhhbmRsZXIpKTpyKG5ldyBFcnJvcigiTm8gUmVxdWVzdEhhbmRsZXIhIikpfSxyKX0pKX19Y2xhc3MgeWV7Y29uc3RydWN0b3IoZSx0LHIsbil7dGhpcy5vcmlnaW5hbFN0YXJ0PWUsdGhpcy5vcmlnaW5hbExlbmd0aD10LHRoaXMubW9kaWZpZWRTdGFydD1yLHRoaXMubW9kaWZpZWRMZW5ndGg9bn1nZXRPcmlnaW5hbEVuZCgpe3JldHVybiB0aGlzLm9yaWdpbmFsU3RhcnQrdGhpcy5vcmlnaW5hbExlbmd0aH1nZXRNb2RpZmllZEVuZCgpe3JldHVybiB0aGlzLm1vZGlmaWVkU3RhcnQrdGhpcy5tb2RpZmllZExlbmd0aH19ZnVuY3Rpb24gTGUoZSx0KXtyZXR1cm4odDw8NSktdCtlfDB9Y2xhc3MgU2V7Y29uc3RydWN0b3IoZSl7dGhpcy5zb3VyY2U9ZX1nZXRFbGVtZW50cygpe2NvbnN0IHI9dGhpcy5zb3VyY2Usbj1uZXcgSW50MzJBcnJheShyLmxlbmd0aCk7Zm9yKGxldCBlPTAsdD1yLmxlbmd0aDtlPHQ7ZSsrKW5bZV09ci5jaGFyQ29kZUF0KGUpO3JldHVybiBufX1jbGFzcyBOZXtzdGF0aWMgQXNzZXJ0KGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKHQpfX1jbGFzcyBFZXtzdGF0aWMgQ29weSh0LHIsbixpLGEpe2ZvcihsZXQgZT0wO2U8YTtlKyspbltpK2VdPXRbcitlXX1zdGF0aWMgQ29weTIodCxyLG4saSxhKXtmb3IobGV0IGU9MDtlPGE7ZSsrKW5baStlXT10W3IrZV19fWNsYXNzIEFle2NvbnN0cnVjdG9yKCl7dGhpcy5tX2NoYW5nZXM9W10sdGhpcy5tX29yaWdpbmFsU3RhcnQ9MTA3Mzc0MTgyNCx0aGlzLm1fbW9kaWZpZWRTdGFydD0xMDczNzQxODI0LHRoaXMubV9vcmlnaW5hbENvdW50PTAsdGhpcy5tX21vZGlmaWVkQ291bnQ9MH1NYXJrTmV4dENoYW5nZSgpeygwPHRoaXMubV9vcmlnaW5hbENvdW50fHwwPHRoaXMubV9tb2RpZmllZENvdW50KSYmdGhpcy5tX2NoYW5nZXMucHVzaChuZXcgeWUodGhpcy5tX29yaWdpbmFsU3RhcnQsdGhpcy5tX29yaWdpbmFsQ291bnQsdGhpcy5tX21vZGlmaWVkU3RhcnQsdGhpcy5tX21vZGlmaWVkQ291bnQpKSx0aGlzLm1fb3JpZ2luYWxDb3VudD0wLHRoaXMubV9tb2RpZmllZENvdW50PTAsdGhpcy5tX29yaWdpbmFsU3RhcnQ9MTA3Mzc0MTgyNCx0aGlzLm1fbW9kaWZpZWRTdGFydD0xMDczNzQxODI0fUFkZE9yaWdpbmFsRWxlbWVudChlLHQpe3RoaXMubV9vcmlnaW5hbFN0YXJ0PU1hdGgubWluKHRoaXMubV9vcmlnaW5hbFN0YXJ0LGUpLHRoaXMubV9tb2RpZmllZFN0YXJ0PU1hdGgubWluKHRoaXMubV9tb2RpZmllZFN0YXJ0LHQpLHRoaXMubV9vcmlnaW5hbENvdW50Kyt9QWRkTW9kaWZpZWRFbGVtZW50KGUsdCl7dGhpcy5tX29yaWdpbmFsU3RhcnQ9TWF0aC5taW4odGhpcy5tX29yaWdpbmFsU3RhcnQsZSksdGhpcy5tX21vZGlmaWVkU3RhcnQ9TWF0aC5taW4odGhpcy5tX21vZGlmaWVkU3RhcnQsdCksdGhpcy5tX21vZGlmaWVkQ291bnQrK31nZXRDaGFuZ2VzKCl7cmV0dXJuKDA8dGhpcy5tX29yaWdpbmFsQ291bnR8fDA8dGhpcy5tX21vZGlmaWVkQ291bnQpJiZ0aGlzLk1hcmtOZXh0Q2hhbmdlKCksdGhpcy5tX2NoYW5nZXN9Z2V0UmV2ZXJzZUNoYW5nZXMoKXtyZXR1cm4oMDx0aGlzLm1fb3JpZ2luYWxDb3VudHx8MDx0aGlzLm1fbW9kaWZpZWRDb3VudCkmJnRoaXMuTWFya05leHRDaGFuZ2UoKSx0aGlzLm1fY2hhbmdlcy5yZXZlcnNlKCksdGhpcy5tX2NoYW5nZXN9fWNsYXNzIGtle2NvbnN0cnVjdG9yKGUsdCxyPW51bGwpe3RoaXMuQ29udGludWVQcm9jZXNzaW5nUHJlZGljYXRlPXIsdGhpcy5fb3JpZ2luYWxTZXF1ZW5jZT1lLHRoaXMuX21vZGlmaWVkU2VxdWVuY2U9dDt2YXJbcixlLG5dPWtlLl9nZXRFbGVtZW50cyhlKSxbdCxpLGFdPWtlLl9nZXRFbGVtZW50cyh0KTt0aGlzLl9oYXNTdHJpbmdzPW4mJmEsdGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50cz1yLHRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2g9ZSx0aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzPXQsdGhpcy5fbW9kaWZpZWRFbGVtZW50c09ySGFzaD1pLHRoaXMubV9mb3J3YXJkSGlzdG9yeT1bXSx0aGlzLm1fcmV2ZXJzZUhpc3Rvcnk9W119c3RhdGljIF9pc1N0cmluZ0FycmF5KGUpe3JldHVybiAwPGUubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIGVbMF19c3RhdGljIF9nZXRFbGVtZW50cyhlKXt2YXIgcj1lLmdldEVsZW1lbnRzKCk7aWYoa2UuX2lzU3RyaW5nQXJyYXkocikpe2NvbnN0IG49bmV3IEludDMyQXJyYXkoci5sZW5ndGgpO2ZvcihsZXQgZT0wLHQ9ci5sZW5ndGg7ZTx0O2UrKyluW2VdPWZ1bmN0aW9uKHIsbil7bj1MZSgxNDk0MTcsbik7Zm9yKGxldCBlPTAsdD1yLmxlbmd0aDtlPHQ7ZSsrKW49TGUoci5jaGFyQ29kZUF0KGUpLG4pO3JldHVybiBufShyW2VdLDApO3JldHVybltyLG4sITBdfXJldHVybiByIGluc3RhbmNlb2YgSW50MzJBcnJheT9bW10sciwhMV06W1tdLG5ldyBJbnQzMkFycmF5KHIpLCExXX1FbGVtZW50c0FyZUVxdWFsKGUsdCl7cmV0dXJuIHRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2hbZV09PT10aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoW3RdJiYoIXRoaXMuX2hhc1N0cmluZ3N8fHRoaXMuX29yaWdpbmFsU3RyaW5nRWxlbWVudHNbZV09PT10aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzW3RdKX1FbGVtZW50c0FyZVN0cmljdEVxdWFsKGUsdCl7cmV0dXJuISF0aGlzLkVsZW1lbnRzQXJlRXF1YWwoZSx0KSYma2UuX2dldFN0cmljdEVsZW1lbnQodGhpcy5fb3JpZ2luYWxTZXF1ZW5jZSxlKT09PWtlLl9nZXRTdHJpY3RFbGVtZW50KHRoaXMuX21vZGlmaWVkU2VxdWVuY2UsdCl9c3RhdGljIF9nZXRTdHJpY3RFbGVtZW50KGUsdCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUuZ2V0U3RyaWN0RWxlbWVudD9lLmdldFN0cmljdEVsZW1lbnQodCk6bnVsbH1PcmlnaW5hbEVsZW1lbnRzQXJlRXF1YWwoZSx0KXtyZXR1cm4gdGhpcy5fb3JpZ2luYWxFbGVtZW50c09ySGFzaFtlXT09PXRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2hbdF0mJighdGhpcy5faGFzU3RyaW5nc3x8dGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50c1tlXT09PXRoaXMuX29yaWdpbmFsU3RyaW5nRWxlbWVudHNbdF0pfU1vZGlmaWVkRWxlbWVudHNBcmVFcXVhbChlLHQpe3JldHVybiB0aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoW2VdPT09dGhpcy5fbW9kaWZpZWRFbGVtZW50c09ySGFzaFt0XSYmKCF0aGlzLl9oYXNTdHJpbmdzfHx0aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzW2VdPT09dGhpcy5fbW9kaWZpZWRTdHJpbmdFbGVtZW50c1t0XSl9Q29tcHV0ZURpZmYoZSl7cmV0dXJuIHRoaXMuX0NvbXB1dGVEaWZmKDAsdGhpcy5fb3JpZ2luYWxFbGVtZW50c09ySGFzaC5sZW5ndGgtMSwwLHRoaXMuX21vZGlmaWVkRWxlbWVudHNPckhhc2gubGVuZ3RoLTEsZSl9X0NvbXB1dGVEaWZmKGUsdCxyLG4saSl7dmFyIGE9WyExXTtsZXQgbz10aGlzLkNvbXB1dGVEaWZmUmVjdXJzaXZlKGUsdCxyLG4sYSk7cmV0dXJuIGkmJihvPXRoaXMuUHJldHRpZnlDaGFuZ2VzKG8pKSx7cXVpdEVhcmx5OmFbMF0sY2hhbmdlczpvfX1Db21wdXRlRGlmZlJlY3Vyc2l2ZSh0LHIsbixpLGEpe2ZvcihhWzBdPSExO3Q8PXImJm48PWkmJnRoaXMuRWxlbWVudHNBcmVFcXVhbCh0LG4pOyl0KyssbisrO2Zvcig7dDw9ciYmbjw9aSYmdGhpcy5FbGVtZW50c0FyZUVxdWFsKHIsaSk7KXItLSxpLS07aWYocjx0fHxpPG4pe2xldCBlO3JldHVybiBlPW48PWk/KE5lLkFzc2VydCh0PT09cisxLCJvcmlnaW5hbFN0YXJ0IHNob3VsZCBvbmx5IGJlIG9uZSBtb3JlIHRoYW4gb3JpZ2luYWxFbmQiKSxbbmV3IHllKHQsMCxuLGktbisxKV0pOnQ8PXI/KE5lLkFzc2VydChuPT09aSsxLCJtb2RpZmllZFN0YXJ0IHNob3VsZCBvbmx5IGJlIG9uZSBtb3JlIHRoYW4gbW9kaWZpZWRFbmQiKSxbbmV3IHllKHQsci10KzEsbiwwKV0pOihOZS5Bc3NlcnQodD09PXIrMSwib3JpZ2luYWxTdGFydCBzaG91bGQgb25seSBiZSBvbmUgbW9yZSB0aGFuIG9yaWdpbmFsRW5kIiksTmUuQXNzZXJ0KG49PT1pKzEsIm1vZGlmaWVkU3RhcnQgc2hvdWxkIG9ubHkgYmUgb25lIG1vcmUgdGhhbiBtb2RpZmllZEVuZCIpLFtdKX12YXIgbz1bMF0scz1bMF0sbD10aGlzLkNvbXB1dGVSZWN1cnNpb25Qb2ludCh0LHIsbixpLG8scyxhKSxvPW9bMF0scz1zWzBdO2lmKG51bGwhPT1sKXJldHVybiBsO2lmKGFbMF0pcmV0dXJuW25ldyB5ZSh0LHItdCsxLG4saS1uKzEpXTt7bD10aGlzLkNvbXB1dGVEaWZmUmVjdXJzaXZlKHQsbyxuLHMsYSk7bGV0IGU9W107cmV0dXJuIGU9YVswXT9bbmV3IHllKG8rMSxyLShvKzEpKzEscysxLGktKHMrMSkrMSldOnRoaXMuQ29tcHV0ZURpZmZSZWN1cnNpdmUobysxLHIscysxLGksYSksdGhpcy5Db25jYXRlbmF0ZUNoYW5nZXMobCxlKX19V0FMS1RSQUNFKGMscix1LGQsZixtLGcsYixlLEMsdCxwLHcsbixfLHYseSxMKXtsZXQgUz1udWxsLGk9bmV3IEFlLE49cixFPXUsYT13WzBdLXZbMF0tZCxvPS0xMDczNzQxODI0LHM9dGhpcy5tX2ZvcndhcmRIaXN0b3J5Lmxlbmd0aC0xO2Rve3ZhciBsPWErYzthPWw9PT1OfHxsPEUmJmVbbC0xXTxlW2wrMV0/KG49KHQ9ZVtsKzFdKS1hLWQsdDxvJiZpLk1hcmtOZXh0Q2hhbmdlKCksbz10LGkuQWRkTW9kaWZpZWRFbGVtZW50KHQrMSxuKSxsKzEtYyk6KG49KHQ9ZVtsLTFdKzEpLWEtZCx0PG8mJmkuTWFya05leHRDaGFuZ2UoKSxvPXQtMSxpLkFkZE9yaWdpbmFsRWxlbWVudCh0LG4rMSksbC0xLWMpLDA8PXMmJihjPShlPXRoaXMubV9mb3J3YXJkSGlzdG9yeVtzXSlbMF0sTj0xLEU9ZS5sZW5ndGgtMSl9d2hpbGUoLTE8PS0tcyk7aWYocj1pLmdldFJldmVyc2VDaGFuZ2VzKCksTFswXSl7bGV0IGU9d1swXSsxLHQ9dlswXSsxO2lmKG51bGwhPT1yJiYwPHIubGVuZ3RoKXtjb25zdCBBPXJbci5sZW5ndGgtMV07ZT1NYXRoLm1heChlLEEuZ2V0T3JpZ2luYWxFbmQoKSksdD1NYXRoLm1heCh0LEEuZ2V0TW9kaWZpZWRFbmQoKSl9Uz1bbmV3IHllKGUscC1lKzEsdCxfLXQrMSldfWVsc2V7aT1uZXcgQWUsTj1tLEU9ZyxhPXdbMF0tdlswXS1iLG89MTA3Mzc0MTgyNCxzPXk/dGhpcy5tX3JldmVyc2VIaXN0b3J5Lmxlbmd0aC0xOnRoaXMubV9yZXZlcnNlSGlzdG9yeS5sZW5ndGgtMjtkb3t2YXIgaD1hK2Y7YT1oPT09Tnx8aDxFJiZDW2gtMV0+PUNbaCsxXT8obj0odD1DW2grMV0tMSktYS1iLHQ+byYmaS5NYXJrTmV4dENoYW5nZSgpLG89dCsxLGkuQWRkT3JpZ2luYWxFbGVtZW50KHQrMSxuKzEpLGgrMS1mKToobj0odD1DW2gtMV0pLWEtYix0Pm8mJmkuTWFya05leHRDaGFuZ2UoKSxvPXQsaS5BZGRNb2RpZmllZEVsZW1lbnQodCsxLG4rMSksaC0xLWYpLDA8PXMmJihmPShDPXRoaXMubV9yZXZlcnNlSGlzdG9yeVtzXSlbMF0sTj0xLEU9Qy5sZW5ndGgtMSl9d2hpbGUoLTE8PS0tcyk7Uz1pLmdldENoYW5nZXMoKX1yZXR1cm4gdGhpcy5Db25jYXRlbmF0ZUNoYW5nZXMocixTKX1Db21wdXRlUmVjdXJzaW9uUG9pbnQoaSxhLG0sZyxiLEMscCl7bGV0IG89MCxzPTAsbD0wLHc9MCxoPTAsXz0wO2ktLSxtLS0sQ1tiWzBdPTBdPTAsdGhpcy5tX2ZvcndhcmRIaXN0b3J5PVtdLHRoaXMubV9yZXZlcnNlSGlzdG9yeT1bXTt2YXIgZT1hLWkrKGctbSksdj0xK2U7Y29uc3QgYz1uZXcgSW50MzJBcnJheSh2KSx1PW5ldyBJbnQzMkFycmF5KHYpO3ZhciBkPWctbSxmPWEtaSx5PWktbSxMPWEtZyxTPShmLWQpJTI9PTA7Y1tkXT1pLHVbZl09YSxwWzBdPSExO2ZvcihsZXQgbj0xO248PWUvMisxO24rKyl7bGV0IHQ9MCxyPTA7bD10aGlzLkNsaXBEaWFnb25hbEJvdW5kKGQtbixuLGQsdiksdz10aGlzLkNsaXBEaWFnb25hbEJvdW5kKGQrbixuLGQsdik7Zm9yKGxldCBlPWw7ZTw9dztlKz0yKXtvPWU9PT1sfHxlPHcmJmNbZS0xXTxjW2UrMV0/Y1tlKzFdOmNbZS0xXSsxLHM9by0oZS1kKS15O2Zvcih2YXIgTj1vO288YSYmczxnJiZ0aGlzLkVsZW1lbnRzQXJlRXF1YWwobysxLHMrMSk7KW8rKyxzKys7aWYoKGNbZV09bykrcz50K3ImJih0PW8scj1zKSwhUyYmTWF0aC5hYnMoZS1mKTw9bi0xJiZvPj11W2VdKXJldHVybiBiWzBdPW8sQ1swXT1zLE48PXVbZV0mJm48PTE0NDg/dGhpcy5XQUxLVFJBQ0UoZCxsLHcseSxmLGgsXyxMLGMsdSxvLGEsYixzLGcsQyxTLHApOm51bGx9dmFyIEU9KHQtaSsoci1tKS1uKS8yO2lmKG51bGwhPT10aGlzLkNvbnRpbnVlUHJvY2Vzc2luZ1ByZWRpY2F0ZSYmIXRoaXMuQ29udGludWVQcm9jZXNzaW5nUHJlZGljYXRlKHQsRSkpcmV0dXJuIHBbMF09ITAsYlswXT10LENbMF09ciwwPEUmJm48PTE0NDg/dGhpcy5XQUxLVFJBQ0UoZCxsLHcseSxmLGgsXyxMLGMsdSxvLGEsYixzLGcsQyxTLHApOihpKyssbSsrLFtuZXcgeWUoaSxhLWkrMSxtLGctbSsxKV0pO2g9dGhpcy5DbGlwRGlhZ29uYWxCb3VuZChmLW4sbixmLHYpLF89dGhpcy5DbGlwRGlhZ29uYWxCb3VuZChmK24sbixmLHYpO2ZvcihsZXQgZT1oO2U8PV87ZSs9Mil7bz1lPT09aHx8ZTxfJiZ1W2UtMV0+PXVbZSsxXT91W2UrMV0tMTp1W2UtMV0scz1vLShlLWYpLUw7Zm9yKHZhciBBPW87bz5pJiZzPm0mJnRoaXMuRWxlbWVudHNBcmVFcXVhbChvLHMpOylvLS0scy0tO2lmKHVbZV09byxTJiZNYXRoLmFicyhlLWQpPD1uJiZvPD1jW2VdKXJldHVybiBiWzBdPW8sQ1swXT1zLEE+PWNbZV0mJm48PTE0NDg/dGhpcy5XQUxLVFJBQ0UoZCxsLHcseSxmLGgsXyxMLGMsdSxvLGEsYixzLGcsQyxTLHApOm51bGx9aWYobjw9MTQ0Nyl7bGV0IGU9bmV3IEludDMyQXJyYXkody1sKzIpO2VbMF09ZC1sKzEsRWUuQ29weTIoYyxsLGUsMSx3LWwrMSksdGhpcy5tX2ZvcndhcmRIaXN0b3J5LnB1c2goZSksKGU9bmV3IEludDMyQXJyYXkoXy1oKzIpKVswXT1mLWgrMSxFZS5Db3B5Mih1LGgsZSwxLF8taCsxKSx0aGlzLm1fcmV2ZXJzZUhpc3RvcnkucHVzaChlKX19cmV0dXJuIHRoaXMuV0FMS1RSQUNFKGQsbCx3LHksZixoLF8sTCxjLHUsbyxhLGIscyxnLEMsUyxwKX1QcmV0dGlmeUNoYW5nZXMoYSl7Zm9yKGxldCBlPTA7ZTxhLmxlbmd0aDtlKyspe2NvbnN0IHQ9YVtlXTtmb3IodmFyIHU9ZTxhLmxlbmd0aC0xP2FbZSsxXS5vcmlnaW5hbFN0YXJ0OnRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2gubGVuZ3RoLGQ9ZTxhLmxlbmd0aC0xP2FbZSsxXS5tb2RpZmllZFN0YXJ0OnRoaXMuX21vZGlmaWVkRWxlbWVudHNPckhhc2gubGVuZ3RoLGY9MDx0Lm9yaWdpbmFsTGVuZ3RoLG09MDx0Lm1vZGlmaWVkTGVuZ3RoO3Qub3JpZ2luYWxTdGFydCt0Lm9yaWdpbmFsTGVuZ3RoPHUmJnQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoPGQmJighZnx8dGhpcy5PcmlnaW5hbEVsZW1lbnRzQXJlRXF1YWwodC5vcmlnaW5hbFN0YXJ0LHQub3JpZ2luYWxTdGFydCt0Lm9yaWdpbmFsTGVuZ3RoKSkmJighbXx8dGhpcy5Nb2RpZmllZEVsZW1lbnRzQXJlRXF1YWwodC5tb2RpZmllZFN0YXJ0LHQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoKSk7KXt2YXIgZz10aGlzLkVsZW1lbnRzQXJlU3RyaWN0RXF1YWwodC5vcmlnaW5hbFN0YXJ0LHQubW9kaWZpZWRTdGFydCk7aWYodGhpcy5FbGVtZW50c0FyZVN0cmljdEVxdWFsKHQub3JpZ2luYWxTdGFydCt0Lm9yaWdpbmFsTGVuZ3RoLHQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoKSYmIWcpYnJlYWs7dC5vcmlnaW5hbFN0YXJ0KyssdC5tb2RpZmllZFN0YXJ0Kyt9dmFyIGI9W251bGxdO2U8YS5sZW5ndGgtMSYmdGhpcy5DaGFuZ2VzT3ZlcmxhcChhW2VdLGFbZSsxXSxiKSYmKGFbZV09YlswXSxhLnNwbGljZShlKzEsMSksZS0tKX1mb3IobGV0IGU9YS5sZW5ndGgtMTswPD1lO2UtLSl7Y29uc3QgaD1hW2VdO2xldCB0PTAscj0wOzA8ZSYmKGw9YVtlLTFdLHQ9bC5vcmlnaW5hbFN0YXJ0K2wub3JpZ2luYWxMZW5ndGgscj1sLm1vZGlmaWVkU3RhcnQrbC5tb2RpZmllZExlbmd0aCk7dmFyIEM9MDxoLm9yaWdpbmFsTGVuZ3RoLHA9MDxoLm1vZGlmaWVkTGVuZ3RoO2xldCBuPTAsaT10aGlzLl9ib3VuZGFyeVNjb3JlKGgub3JpZ2luYWxTdGFydCxoLm9yaWdpbmFsTGVuZ3RoLGgubW9kaWZpZWRTdGFydCxoLm1vZGlmaWVkTGVuZ3RoKTtmb3IobGV0IGU9MTs7ZSsrKXt2YXIgbz1oLm9yaWdpbmFsU3RhcnQtZSxzPWgubW9kaWZpZWRTdGFydC1lO2lmKG88dHx8czxyKWJyZWFrO2lmKEMmJiF0aGlzLk9yaWdpbmFsRWxlbWVudHNBcmVFcXVhbChvLG8raC5vcmlnaW5hbExlbmd0aCkpYnJlYWs7aWYocCYmIXRoaXMuTW9kaWZpZWRFbGVtZW50c0FyZUVxdWFsKHMscytoLm1vZGlmaWVkTGVuZ3RoKSlicmVhaztvPShvPT09dCYmcz09PXI/NTowKSt0aGlzLl9ib3VuZGFyeVNjb3JlKG8saC5vcmlnaW5hbExlbmd0aCxzLGgubW9kaWZpZWRMZW5ndGgpO28+aSYmKGk9byxuPWUpfWgub3JpZ2luYWxTdGFydC09bixoLm1vZGlmaWVkU3RhcnQtPW47dmFyIGw9W251bGxdOzA8ZSYmdGhpcy5DaGFuZ2VzT3ZlcmxhcChhW2UtMV0sYVtlXSxsKSYmKGFbZS0xXT1sWzBdLGEuc3BsaWNlKGUsMSksZSsrKX1pZih0aGlzLl9oYXNTdHJpbmdzKWZvcihsZXQgZT0xLHQ9YS5sZW5ndGg7ZTx0O2UrKyl7Y29uc3QgaT1hW2UtMV0sYz1hW2VdO3ZhciB3PWMub3JpZ2luYWxTdGFydC1pLm9yaWdpbmFsU3RhcnQtaS5vcmlnaW5hbExlbmd0aCxfPWkub3JpZ2luYWxTdGFydCx2PWMub3JpZ2luYWxTdGFydCtjLm9yaWdpbmFsTGVuZ3RoLHI9di1fLG49aS5tb2RpZmllZFN0YXJ0LHk9Yy5tb2RpZmllZFN0YXJ0K2MubW9kaWZpZWRMZW5ndGgsTD15LW47dzw1JiZyPDIwJiZMPDIwJiYoKF89dGhpcy5fZmluZEJldHRlckNvbnRpZ3VvdXNTZXF1ZW5jZShfLHIsbixMLHcpKSYmKFtyLG5dPV8scj09PWkub3JpZ2luYWxTdGFydCtpLm9yaWdpbmFsTGVuZ3RoJiZuPT09aS5tb2RpZmllZFN0YXJ0K2kubW9kaWZpZWRMZW5ndGh8fChpLm9yaWdpbmFsTGVuZ3RoPXItaS5vcmlnaW5hbFN0YXJ0LGkubW9kaWZpZWRMZW5ndGg9bi1pLm1vZGlmaWVkU3RhcnQsYy5vcmlnaW5hbFN0YXJ0PXIrdyxjLm1vZGlmaWVkU3RhcnQ9bit3LGMub3JpZ2luYWxMZW5ndGg9di1jLm9yaWdpbmFsU3RhcnQsYy5tb2RpZmllZExlbmd0aD15LWMubW9kaWZpZWRTdGFydCkpKX1yZXR1cm4gYX1fZmluZEJldHRlckNvbnRpZ3VvdXNTZXF1ZW5jZShlLHQscixuLGkpe2lmKHQ8aXx8bjxpKXJldHVybiBudWxsO3ZhciBhPWUrdC1pKzEsYz1yK24taSsxO2xldCBvPTAscz0wLGw9MDtmb3IobGV0IHQ9ZTt0PGE7dCsrKWZvcihsZXQgZT1yO2U8YztlKyspe3ZhciBoPXRoaXMuX2NvbnRpZ3VvdXNTZXF1ZW5jZVNjb3JlKHQsZSxpKTswPGgmJmg+byYmKG89aCxzPXQsbD1lKX1yZXR1cm4gMDxvP1tzLGxdOm51bGx9X2NvbnRpZ3VvdXNTZXF1ZW5jZVNjb3JlKHQscixuKXtsZXQgaT0wO2ZvcihsZXQgZT0wO2U8bjtlKyspe2lmKCF0aGlzLkVsZW1lbnRzQXJlRXF1YWwodCtlLHIrZSkpcmV0dXJuIDA7aSs9dGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50c1t0K2VdLmxlbmd0aH1yZXR1cm4gaX1fT3JpZ2luYWxJc0JvdW5kYXJ5KGUpe3JldHVybiBlPD0wfHxlPj10aGlzLl9vcmlnaW5hbEVsZW1lbnRzT3JIYXNoLmxlbmd0aC0xfHx0aGlzLl9oYXNTdHJpbmdzJiYvXlxzKiQvLnRlc3QodGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50c1tlXSl9X09yaWdpbmFsUmVnaW9uSXNCb3VuZGFyeShlLHQpe2lmKHRoaXMuX09yaWdpbmFsSXNCb3VuZGFyeShlKXx8dGhpcy5fT3JpZ2luYWxJc0JvdW5kYXJ5KGUtMSkpcmV0dXJuITA7aWYoMDx0KXtlPWUrdDtpZih0aGlzLl9PcmlnaW5hbElzQm91bmRhcnkoZS0xKXx8dGhpcy5fT3JpZ2luYWxJc0JvdW5kYXJ5KGUpKXJldHVybiEwfXJldHVybiExfV9Nb2RpZmllZElzQm91bmRhcnkoZSl7cmV0dXJuIGU8PTB8fGU+PXRoaXMuX21vZGlmaWVkRWxlbWVudHNPckhhc2gubGVuZ3RoLTF8fHRoaXMuX2hhc1N0cmluZ3MmJi9eXHMqJC8udGVzdCh0aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzW2VdKX1fTW9kaWZpZWRSZWdpb25Jc0JvdW5kYXJ5KGUsdCl7aWYodGhpcy5fTW9kaWZpZWRJc0JvdW5kYXJ5KGUpfHx0aGlzLl9Nb2RpZmllZElzQm91bmRhcnkoZS0xKSlyZXR1cm4hMDtpZigwPHQpe2U9ZSt0O2lmKHRoaXMuX01vZGlmaWVkSXNCb3VuZGFyeShlLTEpfHx0aGlzLl9Nb2RpZmllZElzQm91bmRhcnkoZSkpcmV0dXJuITB9cmV0dXJuITF9X2JvdW5kYXJ5U2NvcmUoZSx0LHIsbil7cmV0dXJuKHRoaXMuX09yaWdpbmFsUmVnaW9uSXNCb3VuZGFyeShlLHQpPzE6MCkrKHRoaXMuX01vZGlmaWVkUmVnaW9uSXNCb3VuZGFyeShyLG4pPzE6MCl9Q29uY2F0ZW5hdGVDaGFuZ2VzKGUsdCl7dmFyIHI9W107aWYoMD09PWUubGVuZ3RofHwwPT09dC5sZW5ndGgpcmV0dXJuIDA8dC5sZW5ndGg/dDplO2lmKHRoaXMuQ2hhbmdlc092ZXJsYXAoZVtlLmxlbmd0aC0xXSx0WzBdLHIpKXtjb25zdCBuPW5ldyBBcnJheShlLmxlbmd0aCt0Lmxlbmd0aC0xKTtyZXR1cm4gRWUuQ29weShlLDAsbiwwLGUubGVuZ3RoLTEpLG5bZS5sZW5ndGgtMV09clswXSxFZS5Db3B5KHQsMSxuLGUubGVuZ3RoLHQubGVuZ3RoLTEpLG59cmV0dXJuIHI9bmV3IEFycmF5KGUubGVuZ3RoK3QubGVuZ3RoKSxFZS5Db3B5KGUsMCxyLDAsZS5sZW5ndGgpLEVlLkNvcHkodCwwLHIsZS5sZW5ndGgsdC5sZW5ndGgpLHJ9Q2hhbmdlc092ZXJsYXAocixuLGkpe2lmKE5lLkFzc2VydChyLm9yaWdpbmFsU3RhcnQ8PW4ub3JpZ2luYWxTdGFydCwiTGVmdCBjaGFuZ2UgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byByaWdodCBjaGFuZ2UiKSxOZS5Bc3NlcnQoci5tb2RpZmllZFN0YXJ0PD1uLm1vZGlmaWVkU3RhcnQsIkxlZnQgY2hhbmdlIGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmlnaHQgY2hhbmdlIiksci5vcmlnaW5hbFN0YXJ0K3Iub3JpZ2luYWxMZW5ndGg+PW4ub3JpZ2luYWxTdGFydHx8ci5tb2RpZmllZFN0YXJ0K3IubW9kaWZpZWRMZW5ndGg+PW4ubW9kaWZpZWRTdGFydCl7dmFyIGE9ci5vcmlnaW5hbFN0YXJ0O2xldCBlPXIub3JpZ2luYWxMZW5ndGg7dmFyIG89ci5tb2RpZmllZFN0YXJ0O2xldCB0PXIubW9kaWZpZWRMZW5ndGg7cmV0dXJuIHIub3JpZ2luYWxTdGFydCtyLm9yaWdpbmFsTGVuZ3RoPj1uLm9yaWdpbmFsU3RhcnQmJihlPW4ub3JpZ2luYWxTdGFydCtuLm9yaWdpbmFsTGVuZ3RoLXIub3JpZ2luYWxTdGFydCksci5tb2RpZmllZFN0YXJ0K3IubW9kaWZpZWRMZW5ndGg+PW4ubW9kaWZpZWRTdGFydCYmKHQ9bi5tb2RpZmllZFN0YXJ0K24ubW9kaWZpZWRMZW5ndGgtci5tb2RpZmllZFN0YXJ0KSxpWzBdPW5ldyB5ZShhLGUsbyx0KSwhMH1yZXR1cm4gaVswXT1udWxsLCExfUNsaXBEaWFnb25hbEJvdW5kKGUsdCxyLG4pe2lmKDA8PWUmJmU8bilyZXR1cm4gZTt0PXQlMj09MDtyZXR1cm4gZTwwP3Q9PShyJTI9PTApPzA6MTp0PT0oKG4tci0xKSUyPT0wKT9uLTE6bi0yfX1sZXQgeGU7aWYodm9pZCAwIT09RC52c2NvZGUmJnZvaWQgMCE9PUQudnNjb2RlLnByb2Nlc3Mpe2NvbnN0IEtyPUQudnNjb2RlLnByb2Nlc3M7eGU9e2dldCBwbGF0Zm9ybSgpe3JldHVybiBLci5wbGF0Zm9ybX0sZ2V0IGFyY2goKXtyZXR1cm4gS3IuYXJjaH0sZ2V0IGVudigpe3JldHVybiBLci5lbnZ9LGN3ZCgpe3JldHVybiBLci5jd2QoKX19fWVsc2UgeGU9InVuZGVmaW5lZCIhPXR5cGVvZiBwcm9jZXNzP3tnZXQgcGxhdGZvcm0oKXtyZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybX0sZ2V0IGFyY2goKXtyZXR1cm4gcHJvY2Vzcy5hcmNofSxnZXQgZW52KCl7cmV0dXJuIHByb2Nlc3MuZW52fSxjd2QoKXtyZXR1cm4gcHJvY2Vzcy5lbnYuVlNDT0RFX0NXRHx8cHJvY2Vzcy5jd2QoKX19OntnZXQgcGxhdGZvcm0oKXtyZXR1cm4gTz8id2luMzIiOkY/ImRhcndpbiI6ImxpbnV4In0sZ2V0IGFyY2goKXt9LGdldCBlbnYoKXtyZXR1cm57fX0sY3dkKCl7cmV0dXJuIi8ifX07Y29uc3QgTWU9eGUuY3dkLEtlPXhlLmVudjt2YXIgUGUsUmUsdD14ZS5wbGF0Zm9ybTtjbGFzcyBEZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUsdCxyKXtsZXQgbjsic3RyaW5nIj09dHlwZW9mIHQmJjA9PT10LmluZGV4T2YoIm5vdCAiKT8obj0ibXVzdCBub3QgYmUiLHQ9dC5yZXBsYWNlKC9ebm90IC8sIiIpKTpuPSJtdXN0IGJlIjt2YXIgaT0tMSE9PWUuaW5kZXhPZigiLiIpPyJwcm9wZXJ0eSI6ImFyZ3VtZW50IixlPWBUaGUgIiR7ZX0iICR7aX0gJHtufSBvZiB0eXBlIGArdDtzdXBlcihlKz0iLiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIHIpLHRoaXMuY29kZT0iRVJSX0lOVkFMSURfQVJHX1RZUEUifX1mdW5jdGlvbiBnKGUsdCl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBEZSh0LCJzdHJpbmciLGUpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIDQ3PT09ZXx8OTI9PT1lfWZ1bmN0aW9uIEllKGUpe3JldHVybiA0Nz09PWV9ZnVuY3Rpb24gVmUoZSl7cmV0dXJuIDY1PD1lJiZlPD05MHx8OTc8PWUmJmU8PTEyMn1mdW5jdGlvbiBPZSh0LHIsbixpKXtsZXQgYT0iIixvPTAscz0tMSxsPTAsaD0wO2ZvcihsZXQgZT0wO2U8PXQubGVuZ3RoOysrZSl7aWYoZTx0Lmxlbmd0aCloPXQuY2hhckNvZGVBdChlKTtlbHNle2lmKGkoaCkpYnJlYWs7aD00N31pZihpKGgpKXtpZihzIT09ZS0xJiYxIT09bClpZigyPT09bCl7aWYoYS5sZW5ndGg8Mnx8MiE9PW98fDQ2IT09YS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpfHw0NiE9PWEuY2hhckNvZGVBdChhLmxlbmd0aC0yKSl7aWYoMjxhLmxlbmd0aCl7dmFyIGM9YS5sYXN0SW5kZXhPZihuKTtvPS0xPT09Yz8oYT0iIiwwKTooYT1hLnNsaWNlKDAsYykpLmxlbmd0aC0xLWEubGFzdEluZGV4T2Yobikscz1lLGw9MDtjb250aW51ZX1pZigwIT09YS5sZW5ndGgpe2E9IiIsbz0wLHM9ZSxsPTA7Y29udGludWV9fXImJihhKz0wPGEubGVuZ3RoP24rIi4uIjoiLi4iLG89Mil9ZWxzZSAwPGEubGVuZ3RoP2ErPSIiK24rdC5zbGljZShzKzEsZSk6YT10LnNsaWNlKHMrMSxlKSxvPWUtcy0xO3M9ZSxsPTB9ZWxzZSA0Nj09PWgmJi0xIT09bD8rK2w6bD0tMX1yZXR1cm4gYX1mdW5jdGlvbiBGZShlLHQpe2lmKG51bGw9PT10fHwib2JqZWN0IiE9dHlwZW9mIHQpdGhyb3cgbmV3IERlKCJwYXRoT2JqZWN0IiwiT2JqZWN0Iix0KTt2YXIgcj10LmRpcnx8dC5yb290LG49dC5iYXNlfHwiIisodC5uYW1lfHwiIikrKHQuZXh0fHwiIik7cmV0dXJuIHI/cj09PXQucm9vdD8iIityK246IiIrcitlK246bn1jb25zdCBUZT17cmVzb2x2ZSguLi5hKXtsZXQgbz0iIixzPSIiLGw9ITE7Zm9yKGxldCB0PWEubGVuZ3RoLTE7LTE8PXQ7dC0tKXtsZXQgcjtpZigwPD10KXtpZihnKHI9YVt0XSwicGF0aCIpLDA9PT1yLmxlbmd0aCljb250aW51ZX1lbHNlIDA9PT1vLmxlbmd0aD9yPU1lKCk6KHZvaWQgMD09PShyPUtlWyI9IitvXXx8TWUoKSl8fHIuc2xpY2UoMCwyKS50b0xvd2VyQ2FzZSgpIT09by50b0xvd2VyQ2FzZSgpJiY5Mj09PXIuY2hhckNvZGVBdCgyKSkmJihyPW8rIlxcIik7dmFyIGg9ci5sZW5ndGg7bGV0IG49MCxpPSIiLGU9ITE7dmFyIGM9ci5jaGFyQ29kZUF0KDApO2lmKDE9PT1oKWQoYykmJihuPTEsZT0hMCk7ZWxzZSBpZihkKGMpKWlmKGU9ITAsZChyLmNoYXJDb2RlQXQoMSkpKXtsZXQgZT0yLHQ9ZTtmb3IoO2U8aCYmIWQoci5jaGFyQ29kZUF0KGUpKTspZSsrO2lmKGU8aCYmZSE9PXQpe3ZhciB1PXIuc2xpY2UodCxlKTtmb3IodD1lO2U8aCYmZChyLmNoYXJDb2RlQXQoZSkpOyllKys7aWYoZTxoJiZlIT09dCl7Zm9yKHQ9ZTtlPGgmJiFkKHIuY2hhckNvZGVBdChlKSk7KWUrKztlIT09aCYmZT09PXR8fChpPWBcXFxcJHt1fVxcYCtyLnNsaWNlKHQsZSksbj1lKX19fWVsc2Ugbj0xO2Vsc2UgVmUoYykmJjU4PT09ci5jaGFyQ29kZUF0KDEpJiYoaT1yLnNsaWNlKDAsMiksKG49Mik8aCYmZChyLmNoYXJDb2RlQXQoMikpJiYoZT0hMCxuPTMpKTtpZigwPGkubGVuZ3RoKWlmKDA8by5sZW5ndGgpe2lmKGkudG9Mb3dlckNhc2UoKSE9PW8udG9Mb3dlckNhc2UoKSljb250aW51ZX1lbHNlIG89aTtpZihsKXtpZigwPG8ubGVuZ3RoKWJyZWFrfWVsc2UgaWYocz1yLnNsaWNlKG4pKyJcXCIrcywobD1lKSYmMDxvLmxlbmd0aClicmVha31yZXR1cm4gcz1PZShzLCFsLCJcXCIsZCksbD9vKyJcXCIrczoiIitvK3N8fCIuIn0sbm9ybWFsaXplKHIpe2cociwicGF0aCIpO3ZhciBuPXIubGVuZ3RoO2lmKDA9PT1uKXJldHVybiIuIjtsZXQgaT0wLGEsZT0hMTt2YXIgdD1yLmNoYXJDb2RlQXQoMCk7aWYoMT09PW4pcmV0dXJuIEllKHQpPyJcXCI6cjtpZihkKHQpKWlmKGU9ITAsZChyLmNoYXJDb2RlQXQoMSkpKXtsZXQgZT0yLHQ9ZTtmb3IoO2U8biYmIWQoci5jaGFyQ29kZUF0KGUpKTspZSsrO2lmKGU8biYmZSE9PXQpe3ZhciBvPXIuc2xpY2UodCxlKTtmb3IodD1lO2U8biYmZChyLmNoYXJDb2RlQXQoZSkpOyllKys7aWYoZTxuJiZlIT09dCl7Zm9yKHQ9ZTtlPG4mJiFkKHIuY2hhckNvZGVBdChlKSk7KWUrKztpZihlPT09bilyZXR1cm5gXFxcXCR7b31cXCR7ci5zbGljZSh0KX1cXGA7ZSE9PXQmJihhPWBcXFxcJHtvfVxcYCtyLnNsaWNlKHQsZSksaT1lKX19fWVsc2UgaT0xO2Vsc2UgVmUodCkmJjU4PT09ci5jaGFyQ29kZUF0KDEpJiYoYT1yLnNsaWNlKDAsMiksKGk9Mik8biYmZChyLmNoYXJDb2RlQXQoMikpJiYoZT0hMCxpPTMpKTtsZXQgcz1pPG4/T2Uoci5zbGljZShpKSwhZSwiXFwiLGQpOiIiO3JldHVybiAwPChzPTAhPT1zLmxlbmd0aHx8ZT9zOiIuIikubGVuZ3RoJiZkKHIuY2hhckNvZGVBdChuLTEpKSYmKHMrPSJcXCIpLHZvaWQgMD09PWE/ZT8iXFwiK3M6czplP2ErIlxcIitzOiIiK2Erc30saXNBYnNvbHV0ZShlKXtnKGUsInBhdGgiKTt2YXIgdD1lLmxlbmd0aDtpZigwPT09dClyZXR1cm4hMTt2YXIgcj1lLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGQocil8fDI8dCYmVmUocikmJjU4PT09ZS5jaGFyQ29kZUF0KDEpJiZkKGUuY2hhckNvZGVBdCgyKSl9LGpvaW4oLi4udCl7aWYoMD09PXQubGVuZ3RoKXJldHVybiIuIjtsZXQgcixuO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXt2YXIgaT10W2VdO2coaSwicGF0aCIpLDA8aS5sZW5ndGgmJih2b2lkIDA9PT1yP3I9bj1pOnIrPSJcXCIraSl9aWYodm9pZCAwPT09cilyZXR1cm4iLiI7bGV0IGU9ITAsYT0wO3ZhciBvO2lmKCJzdHJpbmciPT10eXBlb2YgbiYmZChuLmNoYXJDb2RlQXQoMCkpJiYoKythLDE8KG89bi5sZW5ndGgpJiZkKG4uY2hhckNvZGVBdCgxKSkmJigrK2EsMjxvJiYoZChuLmNoYXJDb2RlQXQoMikpPysrYTplPSExKSkpLGUpe2Zvcig7YTxyLmxlbmd0aCYmZChyLmNoYXJDb2RlQXQoYSkpOylhKys7Mjw9YSYmKHI9IlxcIityLnNsaWNlKGEpKX1yZXR1cm4gVGUubm9ybWFsaXplKHIpfSxyZWxhdGl2ZShlLHQpe2lmKGcoZSwiZnJvbSIpLGcodCwidG8iKSxlPT09dClyZXR1cm4iIjtjb25zdCBjPVRlLnJlc29sdmUoZSkscj1UZS5yZXNvbHZlKHQpO2lmKGM9PT1yKXJldHVybiIiO2lmKChlPWMudG9Mb3dlckNhc2UoKSk9PT0odD1yLnRvTG93ZXJDYXNlKCkpKXJldHVybiIiO2xldCBuPTA7Zm9yKDtuPGUubGVuZ3RoJiY5Mj09PWUuY2hhckNvZGVBdChuKTspbisrO2xldCBpPWUubGVuZ3RoO2Zvcig7aS0xPm4mJjkyPT09ZS5jaGFyQ29kZUF0KGktMSk7KWktLTt2YXIgdT1pLW47bGV0IGE9MDtmb3IoO2E8dC5sZW5ndGgmJjkyPT09dC5jaGFyQ29kZUF0KGEpOylhKys7bGV0IG89dC5sZW5ndGg7Zm9yKDtvLTE+YSYmOTI9PT10LmNoYXJDb2RlQXQoby0xKTspby0tO3ZhciBkPW8tYSxzPXU8ZD91OmQ7bGV0IGw9LTEsaD0wO2Zvcig7aDxzO2grKyl7dmFyIGY9ZS5jaGFyQ29kZUF0KG4raCk7aWYoZiE9PXQuY2hhckNvZGVBdChhK2gpKWJyZWFrOzkyPT09ZiYmKGw9aCl9aWYoaCE9PXMpe2lmKC0xPT09bClyZXR1cm4gcn1lbHNle2lmKHM8ZCl7aWYoOTI9PT10LmNoYXJDb2RlQXQoYStoKSlyZXR1cm4gci5zbGljZShhK2grMSk7aWYoMj09PWgpcmV0dXJuIHIuc2xpY2UoYStoKX1zPHUmJig5Mj09PWUuY2hhckNvZGVBdChuK2gpP2w9aDoyPT09aCYmKGw9MykpLC0xPT09bCYmKGw9MCl9bGV0IG09IiI7Zm9yKGg9bitsKzE7aDw9aTsrK2gpaCE9PWkmJjkyIT09ZS5jaGFyQ29kZUF0KGgpfHwobSs9MD09PW0ubGVuZ3RoPyIuLiI6IlxcLi4iKTtyZXR1cm4gYSs9bCwwPG0ubGVuZ3RoPyIiK20rci5zbGljZShhLG8pOig5Mj09PXIuY2hhckNvZGVBdChhKSYmKythLHIuc2xpY2UoYSxvKSl9LHRvTmFtZXNwYWNlZFBhdGgoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBlO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4iIjtjb25zdCB0PVRlLnJlc29sdmUoZSk7aWYodC5sZW5ndGg8PTIpcmV0dXJuIGU7aWYoOTI9PT10LmNoYXJDb2RlQXQoMCkpe2lmKDkyPT09dC5jaGFyQ29kZUF0KDEpKXt2YXIgcj10LmNoYXJDb2RlQXQoMik7aWYoNjMhPT1yJiY0NiE9PXIpcmV0dXJuIlxcXFw/XFxVTkNcXCIrdC5zbGljZSgyKX19ZWxzZSBpZihWZSh0LmNoYXJDb2RlQXQoMCkpJiY1OD09PXQuY2hhckNvZGVBdCgxKSYmOTI9PT10LmNoYXJDb2RlQXQoMikpcmV0dXJuIlxcXFw/XFwiK3Q7cmV0dXJuIGV9LGRpcm5hbWUocil7ZyhyLCJwYXRoIik7dmFyIG49ci5sZW5ndGg7aWYoMD09PW4pcmV0dXJuIi4iO2xldCBpPS0xLGE9MDt2YXIgZT1yLmNoYXJDb2RlQXQoMCk7aWYoMT09PW4pcmV0dXJuIGQoZSk/cjoiLiI7aWYoZChlKSl7aWYoaT1hPTEsZChyLmNoYXJDb2RlQXQoMSkpKXtsZXQgZT0yLHQ9ZTtmb3IoO2U8biYmIWQoci5jaGFyQ29kZUF0KGUpKTspZSsrO2lmKGU8biYmZSE9PXQpe2Zvcih0PWU7ZTxuJiZkKHIuY2hhckNvZGVBdChlKSk7KWUrKztpZihlPG4mJmUhPT10KXtmb3IodD1lO2U8biYmIWQoci5jaGFyQ29kZUF0KGUpKTspZSsrO2lmKGU9PT1uKXJldHVybiByO2UhPT10JiYoaT1hPWUrMSl9fX19ZWxzZSBWZShlKSYmNTg9PT1yLmNoYXJDb2RlQXQoMSkmJihpPTI8biYmZChyLmNoYXJDb2RlQXQoMikpPzM6MixhPWkpO2xldCB0PS0xLG89ITA7Zm9yKGxldCBlPW4tMTtlPj1hOy0tZSlpZihkKHIuY2hhckNvZGVBdChlKSkpe2lmKCFvKXt0PWU7YnJlYWt9fWVsc2Ugbz0hMTtpZigtMT09PXQpe2lmKC0xPT09aSlyZXR1cm4iLiI7dD1pfXJldHVybiByLnNsaWNlKDAsdCl9LGJhc2VuYW1lKHIsbil7dm9pZCAwIT09biYmZyhuLCJleHQiKSxnKHIsInBhdGgiKTtsZXQgaT0wLGE9LTEsbz0hMCxzO2lmKDI8PXIubGVuZ3RoJiZWZShyLmNoYXJDb2RlQXQoMCkpJiY1OD09PXIuY2hhckNvZGVBdCgxKSYmKGk9Miksdm9pZCAwIT09biYmMDxuLmxlbmd0aCYmbi5sZW5ndGg8PXIubGVuZ3RoKXtpZihuPT09cilyZXR1cm4iIjtsZXQgZT1uLmxlbmd0aC0xLHQ9LTE7Zm9yKHM9ci5sZW5ndGgtMTtzPj1pOy0tcyl7dmFyIGw9ci5jaGFyQ29kZUF0KHMpO2lmKGQobCkpe2lmKCFvKXtpPXMrMTticmVha319ZWxzZS0xPT09dCYmKG89ITEsdD1zKzEpLDA8PWUmJihsPT09bi5jaGFyQ29kZUF0KGUpPy0xPT0tLWUmJihhPXMpOihlPS0xLGE9dCkpfXJldHVybiBpPT09YT9hPXQ6LTE9PT1hJiYoYT1yLmxlbmd0aCksci5zbGljZShpLGEpfWZvcihzPXIubGVuZ3RoLTE7cz49aTstLXMpaWYoZChyLmNoYXJDb2RlQXQocykpKXtpZighbyl7aT1zKzE7YnJlYWt9fWVsc2UtMT09PWEmJihvPSExLGE9cysxKTtyZXR1cm4tMT09PWE/IiI6ci5zbGljZShpLGEpfSxleHRuYW1lKHQpe2codCwicGF0aCIpO2xldCByPTAsbj0tMSxpPTAsYT0tMSxvPSEwLHM9MDsyPD10Lmxlbmd0aCYmNTg9PT10LmNoYXJDb2RlQXQoMSkmJlZlKHQuY2hhckNvZGVBdCgwKSkmJihyPWk9Mik7Zm9yKGxldCBlPXQubGVuZ3RoLTE7ZT49cjstLWUpe3ZhciBsPXQuY2hhckNvZGVBdChlKTtpZihkKGwpKXtpZihvKWNvbnRpbnVlO2k9ZSsxO2JyZWFrfS0xPT09YSYmKG89ITEsYT1lKzEpLDQ2PT09bD8tMT09PW4/bj1lOjEhPT1zJiYocz0xKTotMSE9PW4mJihzPS0xKX1yZXR1cm4tMT09PW58fC0xPT09YXx8MD09PXN8fDE9PT1zJiZuPT09YS0xJiZuPT09aSsxPyIiOnQuc2xpY2UobixhKX0sZm9ybWF0OkZlLmJpbmQobnVsbCwiXFwiKSxwYXJzZShyKXtnKHIsInBhdGgiKTtjb25zdCBlPXtyb290OiIiLGRpcjoiIixiYXNlOiIiLGV4dDoiIixuYW1lOiIifTtpZigwPT09ci5sZW5ndGgpcmV0dXJuIGU7dmFyIG49ci5sZW5ndGg7bGV0IGk9MCx0PXIuY2hhckNvZGVBdCgwKTtpZigxPT09bilyZXR1cm4gZCh0KT9lLnJvb3Q9ZS5kaXI9cjplLmJhc2U9ZS5uYW1lPXIsZTtpZihkKHQpKXtpZihpPTEsZChyLmNoYXJDb2RlQXQoMSkpKXtsZXQgZT0yLHQ9ZTtmb3IoO2U8biYmIWQoci5jaGFyQ29kZUF0KGUpKTspZSsrO2lmKGU8biYmZSE9PXQpe2Zvcih0PWU7ZTxuJiZkKHIuY2hhckNvZGVBdChlKSk7KWUrKztpZihlPG4mJmUhPT10KXtmb3IodD1lO2U8biYmIWQoci5jaGFyQ29kZUF0KGUpKTspZSsrO2U9PT1uP2k9ZTplIT09dCYmKGk9ZSsxKX19fX1lbHNlIGlmKFZlKHQpJiY1OD09PXIuY2hhckNvZGVBdCgxKSl7aWYobjw9MilyZXR1cm4gZS5yb290PWUuZGlyPXIsZTtpZihpPTIsZChyLmNoYXJDb2RlQXQoMikpKXtpZigzPT09bilyZXR1cm4gZS5yb290PWUuZGlyPXIsZTtpPTN9fTA8aSYmKGUucm9vdD1yLnNsaWNlKDAsaSkpO2xldCBhPS0xLG89aSxzPS0xLGM9ITAsbD1yLmxlbmd0aC0xLGg9MDtmb3IoO2w+PWk7LS1sKXtpZihkKHQ9ci5jaGFyQ29kZUF0KGwpKSl7aWYoYyljb250aW51ZTtvPWwrMTticmVha30tMT09PXMmJihjPSExLHM9bCsxKSw0Nj09PXQ/LTE9PT1hP2E9bDoxIT09aCYmKGg9MSk6LTEhPT1hJiYoaD0tMSl9cmV0dXJuLTEhPT1zJiYoLTE9PT1hfHwwPT09aHx8MT09PWgmJmE9PT1zLTEmJmE9PT1vKzE/ZS5iYXNlPWUubmFtZT1yLnNsaWNlKG8scyk6KGUubmFtZT1yLnNsaWNlKG8sYSksZS5iYXNlPXIuc2xpY2UobyxzKSxlLmV4dD1yLnNsaWNlKGEscykpKSwwPG8mJm8hPT1pP2UuZGlyPXIuc2xpY2UoMCxvLTEpOmUuZGlyPWUucm9vdCxlfSxzZXA6IlxcIixkZWxpbWl0ZXI6IjsiLHdpbjMyOm51bGwscG9zaXg6bnVsbH0sQmU9e3Jlc29sdmUoLi4udCl7bGV0IHI9IiIsbj0hMTtmb3IobGV0IGU9dC5sZW5ndGgtMTstMTw9ZSYmIW47ZS0tKXtjb25zdCBpPTA8PWU/dFtlXTpNZSgpO2coaSwicGF0aCIpLDAhPT1pLmxlbmd0aCYmKHI9aSsiLyIrcixuPTQ3PT09aS5jaGFyQ29kZUF0KDApKX1yZXR1cm4gcj1PZShyLCFuLCIvIixJZSksbj8iLyIrcjowPHIubGVuZ3RoP3I6Ii4ifSxub3JtYWxpemUoZSl7aWYoZyhlLCJwYXRoIiksMD09PWUubGVuZ3RoKXJldHVybiIuIjt2YXIgdD00Nz09PWUuY2hhckNvZGVBdCgwKSxyPTQ3PT09ZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpO3JldHVybiAwPT09KGU9T2UoZSwhdCwiLyIsSWUpKS5sZW5ndGg/dD8iLyI6cj8iLi8iOiIuIjoociYmKGUrPSIvIiksdD8iLyIrZTplKX0saXNBYnNvbHV0ZShlKXtyZXR1cm4gZyhlLCJwYXRoIiksMDxlLmxlbmd0aCYmNDc9PT1lLmNoYXJDb2RlQXQoMCl9LGpvaW4oLi4udCl7aWYoMD09PXQubGVuZ3RoKXJldHVybiIuIjtsZXQgcjtmb3IobGV0IGU9MDtlPHQubGVuZ3RoOysrZSl7dmFyIG49dFtlXTtnKG4sInBhdGgiKSwwPG4ubGVuZ3RoJiYodm9pZCAwPT09cj9yPW46cis9Ii8iK24pfXJldHVybiB2b2lkIDA9PT1yPyIuIjpCZS5ub3JtYWxpemUocil9LHJlbGF0aXZlKGUsdCl7aWYoZyhlLCJmcm9tIiksZyh0LCJ0byIpLGU9PT10KXJldHVybiIiO2lmKChlPUJlLnJlc29sdmUoZSkpPT09KHQ9QmUucmVzb2x2ZSh0KSkpcmV0dXJuIiI7dmFyIHI9ZS5sZW5ndGgsbj1yLTEsaT10Lmxlbmd0aC0xLGE9bjxpP246aTtsZXQgbz0tMSxzPTA7Zm9yKDtzPGE7cysrKXt2YXIgbD1lLmNoYXJDb2RlQXQoMStzKTtpZihsIT09dC5jaGFyQ29kZUF0KDErcykpYnJlYWs7NDc9PT1sJiYobz1zKX1pZihzPT09YSlpZihhPGkpe2lmKDQ3PT09dC5jaGFyQ29kZUF0KDErcykpcmV0dXJuIHQuc2xpY2UoMStzKzEpO2lmKDA9PT1zKXJldHVybiB0LnNsaWNlKDErcyl9ZWxzZSBhPG4mJig0Nz09PWUuY2hhckNvZGVBdCgxK3MpP289czowPT09cyYmKG89MCkpO2xldCBoPSIiO2ZvcihzPTErbysxO3M8PXI7KytzKXMhPT1yJiY0NyE9PWUuY2hhckNvZGVBdChzKXx8KGgrPTA9PT1oLmxlbmd0aD8iLi4iOiIvLi4iKTtyZXR1cm4iIitoK3Quc2xpY2UoMStvKX0sdG9OYW1lc3BhY2VkUGF0aChlKXtyZXR1cm4gZX0sZGlybmFtZSh0KXtpZihnKHQsInBhdGgiKSwwPT09dC5sZW5ndGgpcmV0dXJuIi4iO3ZhciBlPTQ3PT09dC5jaGFyQ29kZUF0KDApO2xldCByPS0xLG49ITA7Zm9yKGxldCBlPXQubGVuZ3RoLTE7MTw9ZTstLWUpaWYoNDc9PT10LmNoYXJDb2RlQXQoZSkpe2lmKCFuKXtyPWU7YnJlYWt9fWVsc2Ugbj0hMTtyZXR1cm4tMT09PXI/ZT8iLyI6Ii4iOmUmJjE9PT1yPyIvLyI6dC5zbGljZSgwLHIpfSxiYXNlbmFtZShyLG4pe3ZvaWQgMCE9PW4mJmcobiwiZXh0IiksZyhyLCJwYXRoIik7bGV0IGk9MCxhPS0xLG89ITAscztpZih2b2lkIDAhPT1uJiYwPG4ubGVuZ3RoJiZuLmxlbmd0aDw9ci5sZW5ndGgpe2lmKG49PT1yKXJldHVybiIiO2xldCBlPW4ubGVuZ3RoLTEsdD0tMTtmb3Iocz1yLmxlbmd0aC0xOzA8PXM7LS1zKXt2YXIgbD1yLmNoYXJDb2RlQXQocyk7aWYoNDc9PT1sKXtpZighbyl7aT1zKzE7YnJlYWt9fWVsc2UtMT09PXQmJihvPSExLHQ9cysxKSwwPD1lJiYobD09PW4uY2hhckNvZGVBdChlKT8tMT09LS1lJiYoYT1zKTooZT0tMSxhPXQpKX1yZXR1cm4gaT09PWE/YT10Oi0xPT09YSYmKGE9ci5sZW5ndGgpLHIuc2xpY2UoaSxhKX1mb3Iocz1yLmxlbmd0aC0xOzA8PXM7LS1zKWlmKDQ3PT09ci5jaGFyQ29kZUF0KHMpKXtpZighbyl7aT1zKzE7YnJlYWt9fWVsc2UtMT09PWEmJihvPSExLGE9cysxKTtyZXR1cm4tMT09PWE/IiI6ci5zbGljZShpLGEpfSxleHRuYW1lKHQpe2codCwicGF0aCIpO2xldCByPS0xLG49MCxpPS0xLGE9ITAsbz0wO2ZvcihsZXQgZT10Lmxlbmd0aC0xOzA8PWU7LS1lKXt2YXIgcz10LmNoYXJDb2RlQXQoZSk7aWYoNDc9PT1zKXtpZihhKWNvbnRpbnVlO249ZSsxO2JyZWFrfS0xPT09aSYmKGE9ITEsaT1lKzEpLDQ2PT09cz8tMT09PXI/cj1lOjEhPT1vJiYobz0xKTotMSE9PXImJihvPS0xKX1yZXR1cm4tMT09PXJ8fC0xPT09aXx8MD09PW98fDE9PT1vJiZyPT09aS0xJiZyPT09bisxPyIiOnQuc2xpY2UocixpKX0sZm9ybWF0OkZlLmJpbmQobnVsbCwiLyIpLHBhcnNlKGUpe2coZSwicGF0aCIpO2NvbnN0IHQ9e3Jvb3Q6IiIsZGlyOiIiLGJhc2U6IiIsZXh0OiIiLG5hbWU6IiJ9O2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gdDt2YXIgcj00Nz09PWUuY2hhckNvZGVBdCgwKTtsZXQgbixpPShuPXI/KHQucm9vdD0iLyIsMSk6MCwtMSksYT0wLG89LTEscz0hMCxsPWUubGVuZ3RoLTEsaD0wO2Zvcig7bD49bjstLWwpe3ZhciBjPWUuY2hhckNvZGVBdChsKTtpZig0Nz09PWMpe2lmKHMpY29udGludWU7YT1sKzE7YnJlYWt9LTE9PT1vJiYocz0hMSxvPWwrMSksNDY9PT1jPy0xPT09aT9pPWw6MSE9PWgmJihoPTEpOi0xIT09aSYmKGg9LTEpfWlmKC0xIT09byl7Y29uc3Qgbj0wPT09YSYmcj8xOmE7LTE9PT1pfHwwPT09aHx8MT09PWgmJmk9PT1vLTEmJmk9PT1hKzE/dC5iYXNlPXQubmFtZT1lLnNsaWNlKG4sbyk6KHQubmFtZT1lLnNsaWNlKG4saSksdC5iYXNlPWUuc2xpY2UobixvKSx0LmV4dD1lLnNsaWNlKGksbykpfXJldHVybiAwPGE/dC5kaXI9ZS5zbGljZSgwLGEtMSk6ciYmKHQuZGlyPSIvIiksdH0sc2VwOiIvIixkZWxpbWl0ZXI6IjoiLHdpbjMyOm51bGwscG9zaXg6bnVsbH0sVWU9KEJlLndpbjMyPVRlLndpbjMyPVRlLEJlLnBvc2l4PVRlLnBvc2l4PUJlLCgid2luMzIiPT09dD9UZTpCZSkubm9ybWFsaXplLCgid2luMzIiPT09dD9UZTpCZSkucmVzb2x2ZSwoIndpbjMyIj09PXQ/VGU6QmUpLnJlbGF0aXZlLCgid2luMzIiPT09dD9UZTpCZSkuZGlybmFtZSwoIndpbjMyIj09PXQ/VGU6QmUpLmJhc2VuYW1lLCgid2luMzIiPT09dD9UZTpCZSkuZXh0bmFtZSwoIndpbjMyIj09PXQ/VGU6QmUpLnNlcCwvXlx3W1x3XGQrLi1dKiQvKSxxZT0vXlwvLyxIZT0vXlwvXC8vO2Z1bmN0aW9uIHplKGUsdCl7aWYoIWUuc2NoZW1lJiZ0KXRocm93IG5ldyBFcnJvcihgW1VyaUVycm9yXTogU2NoZW1lIGlzIG1pc3Npbmc6IHtzY2hlbWU6ICIiLCBhdXRob3JpdHk6ICIke2UuYXV0aG9yaXR5fSIsIHBhdGg6ICIke2UucGF0aH0iLCBxdWVyeTogIiR7ZS5xdWVyeX0iLCBmcmFnbWVudDogIiR7ZS5mcmFnbWVudH0ifWApO2lmKGUuc2NoZW1lJiYhVWUudGVzdChlLnNjaGVtZSkpdGhyb3cgbmV3IEVycm9yKCJbVXJpRXJyb3JdOiBTY2hlbWUgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpO2lmKGUucGF0aClpZihlLmF1dGhvcml0eSl7aWYoIXFlLnRlc3QoZS5wYXRoKSl0aHJvdyBuZXcgRXJyb3IoJ1tVcmlFcnJvcl06IElmIGEgVVJJIGNvbnRhaW5zIGFuIGF1dGhvcml0eSBjb21wb25lbnQsIHRoZW4gdGhlIHBhdGggY29tcG9uZW50IG11c3QgZWl0aGVyIGJlIGVtcHR5IG9yIGJlZ2luIHdpdGggYSBzbGFzaCAoIi8iKSBjaGFyYWN0ZXInKX1lbHNlIGlmKEhlLnRlc3QoZS5wYXRoKSl0aHJvdyBuZXcgRXJyb3IoJ1tVcmlFcnJvcl06IElmIGEgVVJJIGRvZXMgbm90IGNvbnRhaW4gYW4gYXV0aG9yaXR5IGNvbXBvbmVudCwgdGhlbiB0aGUgcGF0aCBjYW5ub3QgYmVnaW4gd2l0aCB0d28gc2xhc2ggY2hhcmFjdGVycyAoIi8vIiknKX1jb25zdCBXZT0iLyIsamU9L14oKFteOi8/I10rPyk6KT8oXC9cLyhbXi8/I10qKSk/KFtePyNdKikoXD8oW14jXSopKT8oIyguKikpPy87Y2xhc3MgJGV7Y29uc3RydWN0b3IoZSx0LHIsbixpLGE9ITEpe3ZhciBvOyJvYmplY3QiPT10eXBlb2YgZT8odGhpcy5zY2hlbWU9ZS5zY2hlbWV8fCIiLHRoaXMuYXV0aG9yaXR5PWUuYXV0aG9yaXR5fHwiIix0aGlzLnBhdGg9ZS5wYXRofHwiIix0aGlzLnF1ZXJ5PWUucXVlcnl8fCIiLHRoaXMuZnJhZ21lbnQ9ZS5mcmFnbWVudHx8IiIpOih0aGlzLnNjaGVtZT0obz1hLChlPWUpfHxvP2U6ImZpbGUiKSx0aGlzLmF1dGhvcml0eT10fHwiIix0aGlzLnBhdGg9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJodHRwcyI6Y2FzZSJodHRwIjpjYXNlImZpbGUiOnQ/dFswXSE9PVdlJiYodD1XZSt0KTp0PVdlfXJldHVybiB0fSh0aGlzLnNjaGVtZSxyfHwiIiksdGhpcy5xdWVyeT1ufHwiIix0aGlzLmZyYWdtZW50PWl8fCIiLHplKHRoaXMsYSkpfXN0YXRpYyBpc1VyaShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mICRlfHwhIWUmJigic3RyaW5nIj09dHlwZW9mIGUuYXV0aG9yaXR5JiYic3RyaW5nIj09dHlwZW9mIGUuZnJhZ21lbnQmJiJzdHJpbmciPT10eXBlb2YgZS5wYXRoJiYic3RyaW5nIj09dHlwZW9mIGUucXVlcnkmJiJzdHJpbmciPT10eXBlb2YgZS5zY2hlbWUmJiJzdHJpbmciPT10eXBlb2YgZS5mc1BhdGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLndpdGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnRvU3RyaW5nKX1nZXQgZnNQYXRoKCl7cmV0dXJuIFhlKHRoaXMsITEpfXdpdGgoZSl7aWYoIWUpcmV0dXJuIHRoaXM7bGV0e3NjaGVtZTp0LGF1dGhvcml0eTpyLHBhdGg6bixxdWVyeTppLGZyYWdtZW50OmF9PWU7cmV0dXJuIHZvaWQgMD09PXQ/dD10aGlzLnNjaGVtZTpudWxsPT09dCYmKHQ9IiIpLHZvaWQgMD09PXI/cj10aGlzLmF1dGhvcml0eTpudWxsPT09ciYmKHI9IiIpLHZvaWQgMD09PW4/bj10aGlzLnBhdGg6bnVsbD09PW4mJihuPSIiKSx2b2lkIDA9PT1pP2k9dGhpcy5xdWVyeTpudWxsPT09aSYmKGk9IiIpLHZvaWQgMD09PWE/YT10aGlzLmZyYWdtZW50Om51bGw9PT1hJiYoYT0iIiksdD09PXRoaXMuc2NoZW1lJiZyPT09dGhpcy5hdXRob3JpdHkmJm49PT10aGlzLnBhdGgmJmk9PT10aGlzLnF1ZXJ5JiZhPT09dGhpcy5mcmFnbWVudD90aGlzOm5ldyBKZSh0LHIsbixpLGEpfXN0YXRpYyBwYXJzZShlLHQ9ITEpe2U9amUuZXhlYyhlKTtyZXR1cm4gZT9uZXcgSmUoZVsyXXx8IiIscnQoZVs0XXx8IiIpLHJ0KGVbNV18fCIiKSxydChlWzddfHwiIikscnQoZVs5XXx8IiIpLHQpOm5ldyBKZSgiIiwiIiwiIiwiIiwiIil9c3RhdGljIGZpbGUoZSl7bGV0IHQ9IiI7dmFyIHI7cmV0dXJuKGU9Tz9lLnJlcGxhY2UoL1xcL2csV2UpOmUpWzBdPT09V2UmJmVbMV09PT1XZSYmKGU9LTE9PT0ocj1lLmluZGV4T2YoV2UsMikpPyh0PWUuc3Vic3RyaW5nKDIpLFdlKToodD1lLnN1YnN0cmluZygyLHIpLGUuc3Vic3RyaW5nKHIpfHxXZSkpLG5ldyBKZSgiZmlsZSIsdCxlLCIiLCIiKX1zdGF0aWMgZnJvbShlKXtlPW5ldyBKZShlLnNjaGVtZSxlLmF1dGhvcml0eSxlLnBhdGgsZS5xdWVyeSxlLmZyYWdtZW50KTtyZXR1cm4gemUoZSwhMCksZX1zdGF0aWMgam9pblBhdGgoZSwuLi50KXtpZighZS5wYXRoKXRocm93IG5ldyBFcnJvcigiW1VyaUVycm9yXTogY2Fubm90IGNhbGwgam9pblBhdGggb24gVVJJIHdpdGhvdXQgcGF0aCIpO2xldCByO3JldHVybiByPU8mJiJmaWxlIj09PWUuc2NoZW1lPyRlLmZpbGUoVGUuam9pbihYZShlLCEwKSwuLi50KSkucGF0aDpCZS5qb2luKGUucGF0aCwuLi50KSxlLndpdGgoe3BhdGg6cn0pfXRvU3RyaW5nKGU9ITEpe3JldHVybiBldCh0aGlzLGUpfXRvSlNPTigpe3JldHVybiB0aGlzfXN0YXRpYyByZXZpdmUoZSl7aWYoZSl7aWYoZSBpbnN0YW5jZW9mICRlKXJldHVybiBlO3tjb25zdCB0PW5ldyBKZShlKTtyZXR1cm4gdC5fZm9ybWF0dGVkPWUuZXh0ZXJuYWwsdC5fZnNQYXRoPWUuX3NlcD09PUdlP2UuZnNQYXRoOm51bGwsdH19cmV0dXJuIGV9fWNvbnN0IEdlPU8/MTp2b2lkIDA7Y2xhc3MgSmUgZXh0ZW5kcyAkZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZm9ybWF0dGVkPW51bGwsdGhpcy5fZnNQYXRoPW51bGx9Z2V0IGZzUGF0aCgpe3JldHVybiB0aGlzLl9mc1BhdGh8fCh0aGlzLl9mc1BhdGg9WGUodGhpcywhMSkpLHRoaXMuX2ZzUGF0aH10b1N0cmluZyhlPSExKXtyZXR1cm4gZT9ldCh0aGlzLCEwKToodGhpcy5fZm9ybWF0dGVkfHwodGhpcy5fZm9ybWF0dGVkPWV0KHRoaXMsITEpKSx0aGlzLl9mb3JtYXR0ZWQpfXRvSlNPTigpe2NvbnN0IGU9eyRtaWQ6MX07cmV0dXJuIHRoaXMuX2ZzUGF0aCYmKGUuZnNQYXRoPXRoaXMuX2ZzUGF0aCxlLl9zZXA9R2UpLHRoaXMuX2Zvcm1hdHRlZCYmKGUuZXh0ZXJuYWw9dGhpcy5fZm9ybWF0dGVkKSx0aGlzLnBhdGgmJihlLnBhdGg9dGhpcy5wYXRoKSx0aGlzLnNjaGVtZSYmKGUuc2NoZW1lPXRoaXMuc2NoZW1lKSx0aGlzLmF1dGhvcml0eSYmKGUuYXV0aG9yaXR5PXRoaXMuYXV0aG9yaXR5KSx0aGlzLnF1ZXJ5JiYoZS5xdWVyeT10aGlzLnF1ZXJ5KSx0aGlzLmZyYWdtZW50JiYoZS5mcmFnbWVudD10aGlzLmZyYWdtZW50KSxlfX1jb25zdCBRZT17WzU4XToiJTNBIiw0NzoiJTJGIiw2MzoiJTNGIiwzNToiJTIzIiw5MToiJTVCIiw5MzoiJTVEIiw2NDoiJTQwIiwzMzoiJTIxIiwzNjoiJTI0IiwzODoiJTI2IiwzOToiJTI3Iiw0MDoiJTI4Iiw0MToiJTI5Iiw0MjoiJTJBIiw0MzoiJTJCIiw0NDoiJTJDIiw1OToiJTNCIiw2MToiJTNEIiwzMjoiJTIwIn07ZnVuY3Rpb24gWWUodCxyKXtsZXQgbj12b2lkIDAsaT0tMTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIGE9dC5jaGFyQ29kZUF0KGUpOzk3PD1hJiZhPD0xMjJ8fDY1PD1hJiZhPD05MHx8NDg8PWEmJmE8PTU3fHw0NT09PWF8fDQ2PT09YXx8OTU9PT1hfHwxMjY9PT1hfHxyJiY0Nz09PWE/KC0xIT09aSYmKG4rPWVuY29kZVVSSUNvbXBvbmVudCh0LnN1YnN0cmluZyhpLGUpKSxpPS0xKSx2b2lkIDAhPT1uJiYobis9dC5jaGFyQXQoZSkpKToodm9pZCAwPT09biYmKG49dC5zdWJzdHIoMCxlKSksdm9pZCAwIT09KGE9UWVbYV0pPygtMSE9PWkmJihuKz1lbmNvZGVVUklDb21wb25lbnQodC5zdWJzdHJpbmcoaSxlKSksaT0tMSksbis9YSk6LTE9PT1pJiYoaT1lKSl9cmV0dXJuLTEhPT1pJiYobis9ZW5jb2RlVVJJQ29tcG9uZW50KHQuc3Vic3RyaW5nKGkpKSksdm9pZCAwIT09bj9uOnR9ZnVuY3Rpb24gWmUodCl7bGV0IHI9dm9pZCAwO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgbj10LmNoYXJDb2RlQXQoZSk7MzU9PT1ufHw2Mz09PW4/KHZvaWQgMD09PXImJihyPXQuc3Vic3RyKDAsZSkpLHIrPVFlW25dKTp2b2lkIDAhPT1yJiYocis9dFtlXSl9cmV0dXJuIHZvaWQgMCE9PXI/cjp0fWZ1bmN0aW9uIFhlKGUsdCl7bGV0IHI7cmV0dXJuIHI9ZS5hdXRob3JpdHkmJjE8ZS5wYXRoLmxlbmd0aCYmImZpbGUiPT09ZS5zY2hlbWU/Ii8vIitlLmF1dGhvcml0eStlLnBhdGg6NDc9PT1lLnBhdGguY2hhckNvZGVBdCgwKSYmKDY1PD1lLnBhdGguY2hhckNvZGVBdCgxKSYmZS5wYXRoLmNoYXJDb2RlQXQoMSk8PTkwfHw5Nzw9ZS5wYXRoLmNoYXJDb2RlQXQoMSkmJmUucGF0aC5jaGFyQ29kZUF0KDEpPD0xMjIpJiY1OD09PWUucGF0aC5jaGFyQ29kZUF0KDIpP3Q/ZS5wYXRoLnN1YnN0cigxKTplLnBhdGhbMV0udG9Mb3dlckNhc2UoKStlLnBhdGguc3Vic3RyKDIpOmUucGF0aCxyPU8/ci5yZXBsYWNlKC9cLy9nLCJcXCIpOnJ9ZnVuY3Rpb24gZXQoZSx0KXtjb25zdCByPXQ/WmU6WWU7bGV0IG49IiIse3NjaGVtZTppLGF1dGhvcml0eTphLHBhdGg6byxxdWVyeTpzLGZyYWdtZW50Omx9PWU7aWYoaSYmKG49bitpKyI6IiksIWEmJiJmaWxlIiE9PWl8fChuPShuKz1XZSkrV2UpLGEpe2xldCBlPWEuaW5kZXhPZigiQCIpO2lmKC0xIT09ZSl7Y29uc3QgaD1hLnN1YnN0cigwLGUpO2E9YS5zdWJzdHIoZSsxKSwtMT09PShlPWguaW5kZXhPZigiOiIpKT9uKz1yKGgsITEpOm49KG49bityKGguc3Vic3RyKDAsZSksITEpKyI6IikrcihoLnN1YnN0cihlKzEpLCExKSxuKz0iQCJ9YT1hLnRvTG93ZXJDYXNlKCksLTE9PT0oZT1hLmluZGV4T2YoIjoiKSk/bis9cihhLCExKTpuPShuKz1yKGEuc3Vic3RyKDAsZSksITEpKSthLnN1YnN0cihlKX1yZXR1cm4gbyYmKDM8PW8ubGVuZ3RoJiY0Nz09PW8uY2hhckNvZGVBdCgwKSYmNTg9PT1vLmNoYXJDb2RlQXQoMik/NjU8PShlPW8uY2hhckNvZGVBdCgxKSkmJmU8PTkwJiYobz1gLyR7U3RyaW5nLmZyb21DaGFyQ29kZShlKzMyKX06YCtvLnN1YnN0cigzKSk6Mjw9by5sZW5ndGgmJjU4PT09by5jaGFyQ29kZUF0KDEpJiYoNjU8PShlPW8uY2hhckNvZGVBdCgwKSkmJmU8PTkwJiYobz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUrMzIpKyI6IitvLnN1YnN0cigyKSkpLG4rPXIobywhMCkpLHMmJihuPShuKz0iPyIpK3IocywhMSkpLG49bD8obis9IiMiKSsodD9sOlllKGwsITEpKTpufWNvbnN0IHR0PS8oJVswLTlBLVphLXpdWzAtOUEtWmEtel0pKy9nO2Z1bmN0aW9uIHJ0KGUpe3JldHVybiBlLm1hdGNoKHR0KT9lLnJlcGxhY2UodHQsZT0+ZnVuY3Rpb24gdChyKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyKX1jYXRjaChlKXtyZXR1cm4gMzxyLmxlbmd0aD9yLnN1YnN0cigwLDMpK3Qoci5zdWJzdHIoMykpOnJ9fShlKSk6ZX1jbGFzcyBudHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMubGluZU51bWJlcj1lLHRoaXMuY29sdW1uPXR9d2l0aChlPXRoaXMubGluZU51bWJlcix0PXRoaXMuY29sdW1uKXtyZXR1cm4gZT09PXRoaXMubGluZU51bWJlciYmdD09PXRoaXMuY29sdW1uP3RoaXM6bmV3IG50KGUsdCl9ZGVsdGEoZT0wLHQ9MCl7cmV0dXJuIHRoaXMud2l0aCh0aGlzLmxpbmVOdW1iZXIrZSx0aGlzLmNvbHVtbit0KX1lcXVhbHMoZSl7cmV0dXJuIG50LmVxdWFscyh0aGlzLGUpfXN0YXRpYyBlcXVhbHMoZSx0KXtyZXR1cm4hZSYmIXR8fCEhZSYmISF0JiZlLmxpbmVOdW1iZXI9PT10LmxpbmVOdW1iZXImJmUuY29sdW1uPT09dC5jb2x1bW59aXNCZWZvcmUoZSl7cmV0dXJuIG50LmlzQmVmb3JlKHRoaXMsZSl9c3RhdGljIGlzQmVmb3JlKGUsdCl7cmV0dXJuIGUubGluZU51bWJlcjx0LmxpbmVOdW1iZXJ8fCEodC5saW5lTnVtYmVyPGUubGluZU51bWJlcikmJmUuY29sdW1uPHQuY29sdW1ufWlzQmVmb3JlT3JFcXVhbChlKXtyZXR1cm4gbnQuaXNCZWZvcmVPckVxdWFsKHRoaXMsZSl9c3RhdGljIGlzQmVmb3JlT3JFcXVhbChlLHQpe3JldHVybiBlLmxpbmVOdW1iZXI8dC5saW5lTnVtYmVyfHwhKHQubGluZU51bWJlcjxlLmxpbmVOdW1iZXIpJiZlLmNvbHVtbjw9dC5jb2x1bW59c3RhdGljIGNvbXBhcmUoZSx0KXt2YXIgcj0wfGUubGluZU51bWJlcixuPTB8dC5saW5lTnVtYmVyO3JldHVybiByIT1uP3ItbjooMHxlLmNvbHVtbiktKDB8dC5jb2x1bW4pfWNsb25lKCl7cmV0dXJuIG5ldyBudCh0aGlzLmxpbmVOdW1iZXIsdGhpcy5jb2x1bW4pfXRvU3RyaW5nKCl7cmV0dXJuIigiK3RoaXMubGluZU51bWJlcisiLCIrdGhpcy5jb2x1bW4rIikifXN0YXRpYyBsaWZ0KGUpe3JldHVybiBuZXcgbnQoZS5saW5lTnVtYmVyLGUuY29sdW1uKX1zdGF0aWMgaXNJUG9zaXRpb24oZSl7cmV0dXJuIGUmJiJudW1iZXIiPT10eXBlb2YgZS5saW5lTnVtYmVyJiYibnVtYmVyIj09dHlwZW9mIGUuY29sdW1ufX1jbGFzcyBwe2NvbnN0cnVjdG9yKGUsdCxyLG4pe3I8ZXx8ZT09PXImJm48dD8odGhpcy5zdGFydExpbmVOdW1iZXI9cix0aGlzLnN0YXJ0Q29sdW1uPW4sdGhpcy5lbmRMaW5lTnVtYmVyPWUsdGhpcy5lbmRDb2x1bW49dCk6KHRoaXMuc3RhcnRMaW5lTnVtYmVyPWUsdGhpcy5zdGFydENvbHVtbj10LHRoaXMuZW5kTGluZU51bWJlcj1yLHRoaXMuZW5kQ29sdW1uPW4pfWlzRW1wdHkoKXtyZXR1cm4gcC5pc0VtcHR5KHRoaXMpfXN0YXRpYyBpc0VtcHR5KGUpe3JldHVybiBlLnN0YXJ0TGluZU51bWJlcj09PWUuZW5kTGluZU51bWJlciYmZS5zdGFydENvbHVtbj09PWUuZW5kQ29sdW1ufWNvbnRhaW5zUG9zaXRpb24oZSl7cmV0dXJuIHAuY29udGFpbnNQb3NpdGlvbih0aGlzLGUpfXN0YXRpYyBjb250YWluc1Bvc2l0aW9uKGUsdCl7cmV0dXJuISh0LmxpbmVOdW1iZXI8ZS5zdGFydExpbmVOdW1iZXJ8fHQubGluZU51bWJlcj5lLmVuZExpbmVOdW1iZXIpJiYoISh0LmxpbmVOdW1iZXI9PT1lLnN0YXJ0TGluZU51bWJlciYmdC5jb2x1bW48ZS5zdGFydENvbHVtbikmJiEodC5saW5lTnVtYmVyPT09ZS5lbmRMaW5lTnVtYmVyJiZ0LmNvbHVtbj5lLmVuZENvbHVtbikpfXN0YXRpYyBzdHJpY3RDb250YWluc1Bvc2l0aW9uKGUsdCl7cmV0dXJuISh0LmxpbmVOdW1iZXI8ZS5zdGFydExpbmVOdW1iZXJ8fHQubGluZU51bWJlcj5lLmVuZExpbmVOdW1iZXIpJiYoISh0LmxpbmVOdW1iZXI9PT1lLnN0YXJ0TGluZU51bWJlciYmdC5jb2x1bW48PWUuc3RhcnRDb2x1bW4pJiYhKHQubGluZU51bWJlcj09PWUuZW5kTGluZU51bWJlciYmdC5jb2x1bW4+PWUuZW5kQ29sdW1uKSl9Y29udGFpbnNSYW5nZShlKXtyZXR1cm4gcC5jb250YWluc1JhbmdlKHRoaXMsZSl9c3RhdGljIGNvbnRhaW5zUmFuZ2UoZSx0KXtyZXR1cm4hKHQuc3RhcnRMaW5lTnVtYmVyPGUuc3RhcnRMaW5lTnVtYmVyfHx0LmVuZExpbmVOdW1iZXI8ZS5zdGFydExpbmVOdW1iZXIpJiYoISh0LnN0YXJ0TGluZU51bWJlcj5lLmVuZExpbmVOdW1iZXJ8fHQuZW5kTGluZU51bWJlcj5lLmVuZExpbmVOdW1iZXIpJiYoISh0LnN0YXJ0TGluZU51bWJlcj09PWUuc3RhcnRMaW5lTnVtYmVyJiZ0LnN0YXJ0Q29sdW1uPGUuc3RhcnRDb2x1bW4pJiYhKHQuZW5kTGluZU51bWJlcj09PWUuZW5kTGluZU51bWJlciYmdC5lbmRDb2x1bW4+ZS5lbmRDb2x1bW4pKSl9c3RyaWN0Q29udGFpbnNSYW5nZShlKXtyZXR1cm4gcC5zdHJpY3RDb250YWluc1JhbmdlKHRoaXMsZSl9c3RhdGljIHN0cmljdENvbnRhaW5zUmFuZ2UoZSx0KXtyZXR1cm4hKHQuc3RhcnRMaW5lTnVtYmVyPGUuc3RhcnRMaW5lTnVtYmVyfHx0LmVuZExpbmVOdW1iZXI8ZS5zdGFydExpbmVOdW1iZXIpJiYoISh0LnN0YXJ0TGluZU51bWJlcj5lLmVuZExpbmVOdW1iZXJ8fHQuZW5kTGluZU51bWJlcj5lLmVuZExpbmVOdW1iZXIpJiYoISh0LnN0YXJ0TGluZU51bWJlcj09PWUuc3RhcnRMaW5lTnVtYmVyJiZ0LnN0YXJ0Q29sdW1uPD1lLnN0YXJ0Q29sdW1uKSYmISh0LmVuZExpbmVOdW1iZXI9PT1lLmVuZExpbmVOdW1iZXImJnQuZW5kQ29sdW1uPj1lLmVuZENvbHVtbikpKX1wbHVzUmFuZ2UoZSl7cmV0dXJuIHAucGx1c1JhbmdlKHRoaXMsZSl9c3RhdGljIHBsdXNSYW5nZShlLHQpe2xldCByLG4saSxhO3JldHVybiBuPXQuc3RhcnRMaW5lTnVtYmVyPGUuc3RhcnRMaW5lTnVtYmVyPyhyPXQuc3RhcnRMaW5lTnVtYmVyLHQuc3RhcnRDb2x1bW4pOnQuc3RhcnRMaW5lTnVtYmVyPT09ZS5zdGFydExpbmVOdW1iZXI/KHI9dC5zdGFydExpbmVOdW1iZXIsTWF0aC5taW4odC5zdGFydENvbHVtbixlLnN0YXJ0Q29sdW1uKSk6KHI9ZS5zdGFydExpbmVOdW1iZXIsZS5zdGFydENvbHVtbiksYT10LmVuZExpbmVOdW1iZXI+ZS5lbmRMaW5lTnVtYmVyPyhpPXQuZW5kTGluZU51bWJlcix0LmVuZENvbHVtbik6dC5lbmRMaW5lTnVtYmVyPT09ZS5lbmRMaW5lTnVtYmVyPyhpPXQuZW5kTGluZU51bWJlcixNYXRoLm1heCh0LmVuZENvbHVtbixlLmVuZENvbHVtbikpOihpPWUuZW5kTGluZU51bWJlcixlLmVuZENvbHVtbiksbmV3IHAocixuLGksYSl9aW50ZXJzZWN0UmFuZ2VzKGUpe3JldHVybiBwLmludGVyc2VjdFJhbmdlcyh0aGlzLGUpfXN0YXRpYyBpbnRlcnNlY3RSYW5nZXMoZSx0KXtsZXQgcj1lLnN0YXJ0TGluZU51bWJlcixuPWUuc3RhcnRDb2x1bW4saT1lLmVuZExpbmVOdW1iZXIsYT1lLmVuZENvbHVtbjt2YXIgZT10LnN0YXJ0TGluZU51bWJlcixvPXQuc3RhcnRDb2x1bW4scz10LmVuZExpbmVOdW1iZXIsdD10LmVuZENvbHVtbjtyZXR1cm4gcjxlPyhyPWUsbj1vKTpyPT09ZSYmKG49TWF0aC5tYXgobixvKSksaT5zPyhpPXMsYT10KTppPT09cyYmKGE9TWF0aC5taW4oYSx0KSkscj5pfHxyPT09aSYmbj5hP251bGw6bmV3IHAocixuLGksYSl9ZXF1YWxzUmFuZ2UoZSl7cmV0dXJuIHAuZXF1YWxzUmFuZ2UodGhpcyxlKX1zdGF0aWMgZXF1YWxzUmFuZ2UoZSx0KXtyZXR1cm4hIWUmJiEhdCYmZS5zdGFydExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlciYmZS5zdGFydENvbHVtbj09PXQuc3RhcnRDb2x1bW4mJmUuZW5kTGluZU51bWJlcj09PXQuZW5kTGluZU51bWJlciYmZS5lbmRDb2x1bW49PT10LmVuZENvbHVtbn1nZXRFbmRQb3NpdGlvbigpe3JldHVybiBwLmdldEVuZFBvc2l0aW9uKHRoaXMpfXN0YXRpYyBnZXRFbmRQb3NpdGlvbihlKXtyZXR1cm4gbmV3IG50KGUuZW5kTGluZU51bWJlcixlLmVuZENvbHVtbil9Z2V0U3RhcnRQb3NpdGlvbigpe3JldHVybiBwLmdldFN0YXJ0UG9zaXRpb24odGhpcyl9c3RhdGljIGdldFN0YXJ0UG9zaXRpb24oZSl7cmV0dXJuIG5ldyBudChlLnN0YXJ0TGluZU51bWJlcixlLnN0YXJ0Q29sdW1uKX10b1N0cmluZygpe3JldHVybiJbIit0aGlzLnN0YXJ0TGluZU51bWJlcisiLCIrdGhpcy5zdGFydENvbHVtbisiIC0+ICIrdGhpcy5lbmRMaW5lTnVtYmVyKyIsIit0aGlzLmVuZENvbHVtbisiXSJ9c2V0RW5kUG9zaXRpb24oZSx0KXtyZXR1cm4gbmV3IHAodGhpcy5zdGFydExpbmVOdW1iZXIsdGhpcy5zdGFydENvbHVtbixlLHQpfXNldFN0YXJ0UG9zaXRpb24oZSx0KXtyZXR1cm4gbmV3IHAoZSx0LHRoaXMuZW5kTGluZU51bWJlcix0aGlzLmVuZENvbHVtbil9Y29sbGFwc2VUb1N0YXJ0KCl7cmV0dXJuIHAuY29sbGFwc2VUb1N0YXJ0KHRoaXMpfXN0YXRpYyBjb2xsYXBzZVRvU3RhcnQoZSl7cmV0dXJuIG5ldyBwKGUuc3RhcnRMaW5lTnVtYmVyLGUuc3RhcnRDb2x1bW4sZS5zdGFydExpbmVOdW1iZXIsZS5zdGFydENvbHVtbil9c3RhdGljIGZyb21Qb3NpdGlvbnMoZSx0PWUpe3JldHVybiBuZXcgcChlLmxpbmVOdW1iZXIsZS5jb2x1bW4sdC5saW5lTnVtYmVyLHQuY29sdW1uKX1zdGF0aWMgbGlmdChlKXtyZXR1cm4gZT9uZXcgcChlLnN0YXJ0TGluZU51bWJlcixlLnN0YXJ0Q29sdW1uLGUuZW5kTGluZU51bWJlcixlLmVuZENvbHVtbik6bnVsbH1zdGF0aWMgaXNJUmFuZ2UoZSl7cmV0dXJuIGUmJiJudW1iZXIiPT10eXBlb2YgZS5zdGFydExpbmVOdW1iZXImJiJudW1iZXIiPT10eXBlb2YgZS5zdGFydENvbHVtbiYmIm51bWJlciI9PXR5cGVvZiBlLmVuZExpbmVOdW1iZXImJiJudW1iZXIiPT10eXBlb2YgZS5lbmRDb2x1bW59c3RhdGljIGFyZUludGVyc2VjdGluZ09yVG91Y2hpbmcoZSx0KXtyZXR1cm4hKGUuZW5kTGluZU51bWJlcjx0LnN0YXJ0TGluZU51bWJlcnx8ZS5lbmRMaW5lTnVtYmVyPT09dC5zdGFydExpbmVOdW1iZXImJmUuZW5kQ29sdW1uPHQuc3RhcnRDb2x1bW4pJiYhKHQuZW5kTGluZU51bWJlcjxlLnN0YXJ0TGluZU51bWJlcnx8dC5lbmRMaW5lTnVtYmVyPT09ZS5zdGFydExpbmVOdW1iZXImJnQuZW5kQ29sdW1uPGUuc3RhcnRDb2x1bW4pfXN0YXRpYyBhcmVJbnRlcnNlY3RpbmcoZSx0KXtyZXR1cm4hKGUuZW5kTGluZU51bWJlcjx0LnN0YXJ0TGluZU51bWJlcnx8ZS5lbmRMaW5lTnVtYmVyPT09dC5zdGFydExpbmVOdW1iZXImJmUuZW5kQ29sdW1uPD10LnN0YXJ0Q29sdW1uKSYmISh0LmVuZExpbmVOdW1iZXI8ZS5zdGFydExpbmVOdW1iZXJ8fHQuZW5kTGluZU51bWJlcj09PWUuc3RhcnRMaW5lTnVtYmVyJiZ0LmVuZENvbHVtbjw9ZS5zdGFydENvbHVtbil9c3RhdGljIGNvbXBhcmVSYW5nZXNVc2luZ1N0YXJ0cyhlLHQpe3ZhciByLG4saSxhLG8scztyZXR1cm4gZSYmdD8ocj0wfGUuc3RhcnRMaW5lTnVtYmVyKT09KG49MHx0LnN0YXJ0TGluZU51bWJlcik/KGk9MHxlLnN0YXJ0Q29sdW1uKT09KGE9MHx0LnN0YXJ0Q29sdW1uKT8obz0wfGUuZW5kTGluZU51bWJlcikhPShzPTB8dC5lbmRMaW5lTnVtYmVyKT9vLXM6KDB8ZS5lbmRDb2x1bW4pLSgwfHQuZW5kQ29sdW1uKTppLWE6ci1uOihlPzE6MCktKHQ/MTowKX1zdGF0aWMgY29tcGFyZVJhbmdlc1VzaW5nRW5kcyhlLHQpe3JldHVybiBlLmVuZExpbmVOdW1iZXI9PT10LmVuZExpbmVOdW1iZXI/ZS5lbmRDb2x1bW49PT10LmVuZENvbHVtbj9lLnN0YXJ0TGluZU51bWJlcj09PXQuc3RhcnRMaW5lTnVtYmVyP2Uuc3RhcnRDb2x1bW4tdC5zdGFydENvbHVtbjplLnN0YXJ0TGluZU51bWJlci10LnN0YXJ0TGluZU51bWJlcjplLmVuZENvbHVtbi10LmVuZENvbHVtbjplLmVuZExpbmVOdW1iZXItdC5lbmRMaW5lTnVtYmVyfXN0YXRpYyBzcGFuc011bHRpcGxlTGluZXMoZSl7cmV0dXJuIGUuZW5kTGluZU51bWJlcj5lLnN0YXJ0TGluZU51bWJlcn10b0pTT04oKXtyZXR1cm4gdGhpc319ZnVuY3Rpb24gaXQoZSx0LHIsbil7Y29uc3QgaT1uZXcga2UoZSx0LHIpO3JldHVybiBpLkNvbXB1dGVEaWZmKG4pfWNsYXNzIGF0e2NvbnN0cnVjdG9yKHIpe2NvbnN0IG49W10saT1bXTtmb3IobGV0IGU9MCx0PXIubGVuZ3RoO2U8dDtlKyspbltlXT1jdChyW2VdLDEpLGlbZV09dXQocltlXSwxKTt0aGlzLmxpbmVzPXIsdGhpcy5fc3RhcnRDb2x1bW5zPW4sdGhpcy5fZW5kQ29sdW1ucz1pfWdldEVsZW1lbnRzKCl7Y29uc3Qgcj1bXTtmb3IobGV0IGU9MCx0PXRoaXMubGluZXMubGVuZ3RoO2U8dDtlKyspcltlXT10aGlzLmxpbmVzW2VdLnN1YnN0cmluZyh0aGlzLl9zdGFydENvbHVtbnNbZV0tMSx0aGlzLl9lbmRDb2x1bW5zW2VdLTEpO3JldHVybiByfWdldFN0cmljdEVsZW1lbnQoZSl7cmV0dXJuIHRoaXMubGluZXNbZV19Z2V0U3RhcnRMaW5lTnVtYmVyKGUpe3JldHVybiBlKzF9Z2V0RW5kTGluZU51bWJlcihlKXtyZXR1cm4gZSsxfWNyZWF0ZUNoYXJTZXF1ZW5jZShlLHIsbil7Y29uc3QgaT1bXSxhPVtdLG89W107bGV0IHM9MDtmb3IobGV0IHQ9cjt0PD1uO3QrKyl7Y29uc3QgYz10aGlzLmxpbmVzW3RdO3ZhciBsPWU/dGhpcy5fc3RhcnRDb2x1bW5zW3RdOjEsaD1lP3RoaXMuX2VuZENvbHVtbnNbdF06Yy5sZW5ndGgrMTtmb3IobGV0IGU9bDtlPGg7ZSsrKWlbc109Yy5jaGFyQ29kZUF0KGUtMSksYVtzXT10KzEsb1tzXT1lLHMrK31yZXR1cm4gbmV3IG90KGksYSxvKX19Y2xhc3Mgb3R7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMuX2NoYXJDb2Rlcz1lLHRoaXMuX2xpbmVOdW1iZXJzPXQsdGhpcy5fY29sdW1ucz1yfWdldEVsZW1lbnRzKCl7cmV0dXJuIHRoaXMuX2NoYXJDb2Rlc31nZXRTdGFydExpbmVOdW1iZXIoZSl7cmV0dXJuIHRoaXMuX2xpbmVOdW1iZXJzW2VdfWdldFN0YXJ0Q29sdW1uKGUpe3JldHVybiB0aGlzLl9jb2x1bW5zW2VdfWdldEVuZExpbmVOdW1iZXIoZSl7cmV0dXJuIHRoaXMuX2xpbmVOdW1iZXJzW2VdfWdldEVuZENvbHVtbihlKXtyZXR1cm4gdGhpcy5fY29sdW1uc1tlXSsxfX1jbGFzcyBzdHtjb25zdHJ1Y3RvcihlLHQscixuLGksYSxvLHMpe3RoaXMub3JpZ2luYWxTdGFydExpbmVOdW1iZXI9ZSx0aGlzLm9yaWdpbmFsU3RhcnRDb2x1bW49dCx0aGlzLm9yaWdpbmFsRW5kTGluZU51bWJlcj1yLHRoaXMub3JpZ2luYWxFbmRDb2x1bW49bix0aGlzLm1vZGlmaWVkU3RhcnRMaW5lTnVtYmVyPWksdGhpcy5tb2RpZmllZFN0YXJ0Q29sdW1uPWEsdGhpcy5tb2RpZmllZEVuZExpbmVOdW1iZXI9byx0aGlzLm1vZGlmaWVkRW5kQ29sdW1uPXN9c3RhdGljIGNyZWF0ZUZyb21EaWZmQ2hhbmdlKGUsdCxyKXtsZXQgbixpLGEsbyxzLGwsaCxjO3JldHVybiBvPTA9PT1lLm9yaWdpbmFsTGVuZ3RoPyhuPTAsaT0wLGE9MCk6KG49dC5nZXRTdGFydExpbmVOdW1iZXIoZS5vcmlnaW5hbFN0YXJ0KSxpPXQuZ2V0U3RhcnRDb2x1bW4oZS5vcmlnaW5hbFN0YXJ0KSxhPXQuZ2V0RW5kTGluZU51bWJlcihlLm9yaWdpbmFsU3RhcnQrZS5vcmlnaW5hbExlbmd0aC0xKSx0LmdldEVuZENvbHVtbihlLm9yaWdpbmFsU3RhcnQrZS5vcmlnaW5hbExlbmd0aC0xKSksYz0wPT09ZS5tb2RpZmllZExlbmd0aD8ocz0wLGw9MCxoPTApOihzPXIuZ2V0U3RhcnRMaW5lTnVtYmVyKGUubW9kaWZpZWRTdGFydCksbD1yLmdldFN0YXJ0Q29sdW1uKGUubW9kaWZpZWRTdGFydCksaD1yLmdldEVuZExpbmVOdW1iZXIoZS5tb2RpZmllZFN0YXJ0K2UubW9kaWZpZWRMZW5ndGgtMSksci5nZXRFbmRDb2x1bW4oZS5tb2RpZmllZFN0YXJ0K2UubW9kaWZpZWRMZW5ndGgtMSkpLG5ldyBzdChuLGksYSxvLHMsbCxoLGMpfX1jbGFzcyBsdHtjb25zdHJ1Y3RvcihlLHQscixuLGkpe3RoaXMub3JpZ2luYWxTdGFydExpbmVOdW1iZXI9ZSx0aGlzLm9yaWdpbmFsRW5kTGluZU51bWJlcj10LHRoaXMubW9kaWZpZWRTdGFydExpbmVOdW1iZXI9cix0aGlzLm1vZGlmaWVkRW5kTGluZU51bWJlcj1uLHRoaXMuY2hhckNoYW5nZXM9aX1zdGF0aWMgY3JlYXRlRnJvbURpZmZSZXN1bHQoZSx0LG4saSxhLGMsdSl7bGV0IHIsbyxzLGwsaD12b2lkIDA7aWYobz0wPT09dC5vcmlnaW5hbExlbmd0aD8ocj1uLmdldFN0YXJ0TGluZU51bWJlcih0Lm9yaWdpbmFsU3RhcnQpLTEsMCk6KHI9bi5nZXRTdGFydExpbmVOdW1iZXIodC5vcmlnaW5hbFN0YXJ0KSxuLmdldEVuZExpbmVOdW1iZXIodC5vcmlnaW5hbFN0YXJ0K3Qub3JpZ2luYWxMZW5ndGgtMSkpLGw9MD09PXQubW9kaWZpZWRMZW5ndGg/KHM9aS5nZXRTdGFydExpbmVOdW1iZXIodC5tb2RpZmllZFN0YXJ0KS0xLDApOihzPWkuZ2V0U3RhcnRMaW5lTnVtYmVyKHQubW9kaWZpZWRTdGFydCksaS5nZXRFbmRMaW5lTnVtYmVyKHQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoLTEpKSxjJiYwPHQub3JpZ2luYWxMZW5ndGgmJnQub3JpZ2luYWxMZW5ndGg8MjAmJjA8dC5tb2RpZmllZExlbmd0aCYmdC5tb2RpZmllZExlbmd0aDwyMCYmYSgpKXt2YXIgZD1uLmNyZWF0ZUNoYXJTZXF1ZW5jZShlLHQub3JpZ2luYWxTdGFydCx0Lm9yaWdpbmFsU3RhcnQrdC5vcmlnaW5hbExlbmd0aC0xKSxmPWkuY3JlYXRlQ2hhclNlcXVlbmNlKGUsdC5tb2RpZmllZFN0YXJ0LHQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoLTEpO2xldCByPWl0KGQsZixhLCEwKS5jaGFuZ2VzO3UmJihyPWZ1bmN0aW9uKHIpe2lmKHIubGVuZ3RoPD0xKXJldHVybiByO2NvbnN0IG49W3JbMF1dO2xldCBpPW5bMF07Zm9yKGxldCBlPTEsdD1yLmxlbmd0aDtlPHQ7ZSsrKXt2YXIgYT1yW2VdLG89YS5vcmlnaW5hbFN0YXJ0LShpLm9yaWdpbmFsU3RhcnQraS5vcmlnaW5hbExlbmd0aCkscz1hLm1vZGlmaWVkU3RhcnQtKGkubW9kaWZpZWRTdGFydCtpLm1vZGlmaWVkTGVuZ3RoKTtNYXRoLm1pbihvLHMpPDM/KGkub3JpZ2luYWxMZW5ndGg9YS5vcmlnaW5hbFN0YXJ0K2Eub3JpZ2luYWxMZW5ndGgtaS5vcmlnaW5hbFN0YXJ0LGkubW9kaWZpZWRMZW5ndGg9YS5tb2RpZmllZFN0YXJ0K2EubW9kaWZpZWRMZW5ndGgtaS5tb2RpZmllZFN0YXJ0KToobi5wdXNoKGEpLGk9YSl9cmV0dXJuIG59KHIpKSxoPVtdO2ZvcihsZXQgZT0wLHQ9ci5sZW5ndGg7ZTx0O2UrKyloLnB1c2goc3QuY3JlYXRlRnJvbURpZmZDaGFuZ2UocltlXSxkLGYpKX1yZXR1cm4gbmV3IGx0KHIsbyxzLGwsaCl9fWNsYXNzIGh0e2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcz1yLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyx0aGlzLnNob3VsZFBvc3RQcm9jZXNzQ2hhckNoYW5nZXM9ci5zaG91bGRQb3N0UHJvY2Vzc0NoYXJDaGFuZ2VzLHRoaXMuc2hvdWxkSWdub3JlVHJpbVdoaXRlc3BhY2U9ci5zaG91bGRJZ25vcmVUcmltV2hpdGVzcGFjZSx0aGlzLnNob3VsZE1ha2VQcmV0dHlEaWZmPXIuc2hvdWxkTWFrZVByZXR0eURpZmYsdGhpcy5vcmlnaW5hbExpbmVzPWUsdGhpcy5tb2RpZmllZExpbmVzPXQsdGhpcy5vcmlnaW5hbD1uZXcgYXQoZSksdGhpcy5tb2RpZmllZD1uZXcgYXQodCksdGhpcy5jb250aW51ZUxpbmVEaWZmPWR0KHIubWF4Q29tcHV0YXRpb25UaW1lKSx0aGlzLmNvbnRpbnVlQ2hhckRpZmY9ZHQoMD09PXIubWF4Q29tcHV0YXRpb25UaW1lPzA6TWF0aC5taW4oci5tYXhDb21wdXRhdGlvblRpbWUsNWUzKSl9Y29tcHV0ZURpZmYoKXtpZigxPT09dGhpcy5vcmlnaW5hbC5saW5lcy5sZW5ndGgmJjA9PT10aGlzLm9yaWdpbmFsLmxpbmVzWzBdLmxlbmd0aClyZXR1cm4gMT09PXRoaXMubW9kaWZpZWQubGluZXMubGVuZ3RoJiYwPT09dGhpcy5tb2RpZmllZC5saW5lc1swXS5sZW5ndGg/e3F1aXRFYXJseTohMSxjaGFuZ2VzOltdfTp7cXVpdEVhcmx5OiExLGNoYW5nZXM6W3tvcmlnaW5hbFN0YXJ0TGluZU51bWJlcjoxLG9yaWdpbmFsRW5kTGluZU51bWJlcjoxLG1vZGlmaWVkU3RhcnRMaW5lTnVtYmVyOjEsbW9kaWZpZWRFbmRMaW5lTnVtYmVyOnRoaXMubW9kaWZpZWQubGluZXMubGVuZ3RoLGNoYXJDaGFuZ2VzOlt7bW9kaWZpZWRFbmRDb2x1bW46MCxtb2RpZmllZEVuZExpbmVOdW1iZXI6MCxtb2RpZmllZFN0YXJ0Q29sdW1uOjAsbW9kaWZpZWRTdGFydExpbmVOdW1iZXI6MCxvcmlnaW5hbEVuZENvbHVtbjowLG9yaWdpbmFsRW5kTGluZU51bWJlcjowLG9yaWdpbmFsU3RhcnRDb2x1bW46MCxvcmlnaW5hbFN0YXJ0TGluZU51bWJlcjowfV19XX07aWYoMT09PXRoaXMubW9kaWZpZWQubGluZXMubGVuZ3RoJiYwPT09dGhpcy5tb2RpZmllZC5saW5lc1swXS5sZW5ndGgpcmV0dXJue3F1aXRFYXJseTohMSxjaGFuZ2VzOlt7b3JpZ2luYWxTdGFydExpbmVOdW1iZXI6MSxvcmlnaW5hbEVuZExpbmVOdW1iZXI6dGhpcy5vcmlnaW5hbC5saW5lcy5sZW5ndGgsbW9kaWZpZWRTdGFydExpbmVOdW1iZXI6MSxtb2RpZmllZEVuZExpbmVOdW1iZXI6MSxjaGFyQ2hhbmdlczpbe21vZGlmaWVkRW5kQ29sdW1uOjAsbW9kaWZpZWRFbmRMaW5lTnVtYmVyOjAsbW9kaWZpZWRTdGFydENvbHVtbjowLG1vZGlmaWVkU3RhcnRMaW5lTnVtYmVyOjAsb3JpZ2luYWxFbmRDb2x1bW46MCxvcmlnaW5hbEVuZExpbmVOdW1iZXI6MCxvcmlnaW5hbFN0YXJ0Q29sdW1uOjAsb3JpZ2luYWxTdGFydExpbmVOdW1iZXI6MH1dfV19O3ZhciBlPWl0KHRoaXMub3JpZ2luYWwsdGhpcy5tb2RpZmllZCx0aGlzLmNvbnRpbnVlTGluZURpZmYsdGhpcy5zaG91bGRNYWtlUHJldHR5RGlmZikscj1lLmNoYW5nZXMsZT1lLnF1aXRFYXJseTtpZih0aGlzLnNob3VsZElnbm9yZVRyaW1XaGl0ZXNwYWNlKXtjb25zdCBmPVtdO2ZvcihsZXQgZT0wLHQ9ci5sZW5ndGg7ZTx0O2UrKylmLnB1c2gobHQuY3JlYXRlRnJvbURpZmZSZXN1bHQodGhpcy5zaG91bGRJZ25vcmVUcmltV2hpdGVzcGFjZSxyW2VdLHRoaXMub3JpZ2luYWwsdGhpcy5tb2RpZmllZCx0aGlzLmNvbnRpbnVlQ2hhckRpZmYsdGhpcy5zaG91bGRDb21wdXRlQ2hhckNoYW5nZXMsdGhpcy5zaG91bGRQb3N0UHJvY2Vzc0NoYXJDaGFuZ2VzKSk7cmV0dXJue3F1aXRFYXJseTplLGNoYW5nZXM6Zn19Y29uc3Qgbj1bXTtsZXQgaT0wLGE9MDtmb3IobGV0IGU9LTEsdD1yLmxlbmd0aDtlPHQ7ZSsrKXtmb3IodmFyIG89ZSsxPHQ/cltlKzFdOm51bGwsdT1vP28ub3JpZ2luYWxTdGFydDp0aGlzLm9yaWdpbmFsTGluZXMubGVuZ3RoLGQ9bz9vLm1vZGlmaWVkU3RhcnQ6dGhpcy5tb2RpZmllZExpbmVzLmxlbmd0aDtpPHUmJmE8ZDspe2NvbnN0IGg9dGhpcy5vcmlnaW5hbExpbmVzW2ldLGM9dGhpcy5tb2RpZmllZExpbmVzW2FdO2lmKGghPT1jKXt7bGV0IGU9Y3QoaCwxKSx0PWN0KGMsMSk7Zm9yKDsxPGUmJjE8dDspe2lmKGguY2hhckNvZGVBdChlLTIpIT09Yy5jaGFyQ29kZUF0KHQtMikpYnJlYWs7ZS0tLHQtLX0oMTxlfHwxPHQpJiZ0aGlzLl9wdXNoVHJpbVdoaXRlc3BhY2VDaGFyQ2hhbmdlKG4saSsxLDEsZSxhKzEsMSx0KX17bGV0IGU9dXQoaCwxKSx0PXV0KGMsMSk7Zm9yKHZhciBzPWgubGVuZ3RoKzEsbD1jLmxlbmd0aCsxO2U8cyYmdDxsOyl7aWYoaC5jaGFyQ29kZUF0KGUtMSkhPT1oLmNoYXJDb2RlQXQodC0xKSlicmVhaztlKyssdCsrfShlPHN8fHQ8bCkmJnRoaXMuX3B1c2hUcmltV2hpdGVzcGFjZUNoYXJDaGFuZ2UobixpKzEsZSxzLGErMSx0LGwpfX1pKyssYSsrfW8mJihuLnB1c2gobHQuY3JlYXRlRnJvbURpZmZSZXN1bHQodGhpcy5zaG91bGRJZ25vcmVUcmltV2hpdGVzcGFjZSxvLHRoaXMub3JpZ2luYWwsdGhpcy5tb2RpZmllZCx0aGlzLmNvbnRpbnVlQ2hhckRpZmYsdGhpcy5zaG91bGRDb21wdXRlQ2hhckNoYW5nZXMsdGhpcy5zaG91bGRQb3N0UHJvY2Vzc0NoYXJDaGFuZ2VzKSksaSs9by5vcmlnaW5hbExlbmd0aCxhKz1vLm1vZGlmaWVkTGVuZ3RoKX1yZXR1cm57cXVpdEVhcmx5OmUsY2hhbmdlczpufX1fcHVzaFRyaW1XaGl0ZXNwYWNlQ2hhckNoYW5nZSh0LHIsbixpLGEsbyxzKXtpZighdGhpcy5fbWVyZ2VUcmltV2hpdGVzcGFjZUNoYXJDaGFuZ2UodCxyLG4saSxhLG8scykpe2xldCBlPXZvaWQgMDt0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyYmKGU9W25ldyBzdChyLG4scixpLGEsbyxhLHMpXSksdC5wdXNoKG5ldyBsdChyLHIsYSxhLGUpKX19X21lcmdlVHJpbVdoaXRlc3BhY2VDaGFyQ2hhbmdlKGUsdCxyLG4saSxhLG8pe3ZhciBzPWUubGVuZ3RoO2lmKDA9PT1zKXJldHVybiExO2NvbnN0IGw9ZVtzLTFdO3JldHVybiAwIT09bC5vcmlnaW5hbEVuZExpbmVOdW1iZXImJjAhPT1sLm1vZGlmaWVkRW5kTGluZU51bWJlciYmKGwub3JpZ2luYWxFbmRMaW5lTnVtYmVyKzE9PT10JiZsLm1vZGlmaWVkRW5kTGluZU51bWJlcisxPT09aSYmKGwub3JpZ2luYWxFbmRMaW5lTnVtYmVyPXQsbC5tb2RpZmllZEVuZExpbmVOdW1iZXI9aSx0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyYmbC5jaGFyQ2hhbmdlcyYmbC5jaGFyQ2hhbmdlcy5wdXNoKG5ldyBzdCh0LHIsdCxuLGksYSxpLG8pKSwhMCkpfX1mdW5jdGlvbiBjdChlLHQpe2U9ZnVuY3Rpb24ocil7Zm9yKGxldCBlPTAsdD1yLmxlbmd0aDtlPHQ7ZSsrKXt2YXIgbj1yLmNoYXJDb2RlQXQoZSk7aWYoMzIhPT1uJiY5IT09bilyZXR1cm4gZX1yZXR1cm4tMX0oZSk7cmV0dXJuLTE9PT1lP3Q6ZSsxfWZ1bmN0aW9uIHV0KGUsdCl7ZT1mdW5jdGlvbih0LHI9dC5sZW5ndGgtMSl7Zm9yKGxldCBlPXI7MDw9ZTtlLS0pe3ZhciBuPXQuY2hhckNvZGVBdChlKTtpZigzMiE9PW4mJjkhPT1uKXJldHVybiBlfXJldHVybi0xfShlKTtyZXR1cm4tMT09PWU/dDplKzJ9ZnVuY3Rpb24gZHQoZSl7aWYoMD09PWUpcmV0dXJuKCk9PiEwO2NvbnN0IHQ9RGF0ZS5ub3coKTtyZXR1cm4oKT0+RGF0ZS5ub3coKS10PGV9ZnVuY3Rpb24gZnQoZSl7cmV0dXJuIGU8MD8wOjI1NTxlPzI1NTowfGV9ZnVuY3Rpb24gbXQoZSl7cmV0dXJuIGU8MD8wOjQyOTQ5NjcyOTU8ZT80Mjk0OTY3Mjk1OjB8ZX1jbGFzcyBndHtjb25zdHJ1Y3RvcihlKXt0aGlzLnZhbHVlcz1lLHRoaXMucHJlZml4U3VtPW5ldyBVaW50MzJBcnJheShlLmxlbmd0aCksdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4PW5ldyBJbnQzMkFycmF5KDEpLHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXT0tMX1pbnNlcnRWYWx1ZXMoZSx0KXtlPW10KGUpO2NvbnN0IHI9dGhpcy52YWx1ZXMsbj10aGlzLnByZWZpeFN1bTt2YXIgaT10Lmxlbmd0aDtyZXR1cm4gMCE9PWkmJih0aGlzLnZhbHVlcz1uZXcgVWludDMyQXJyYXkoci5sZW5ndGgraSksdGhpcy52YWx1ZXMuc2V0KHIuc3ViYXJyYXkoMCxlKSwwKSx0aGlzLnZhbHVlcy5zZXQoci5zdWJhcnJheShlKSxlK2kpLHRoaXMudmFsdWVzLnNldCh0LGUpLGUtMTx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0mJih0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF09ZS0xKSx0aGlzLnByZWZpeFN1bT1uZXcgVWludDMyQXJyYXkodGhpcy52YWx1ZXMubGVuZ3RoKSwwPD10aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0mJnRoaXMucHJlZml4U3VtLnNldChuLnN1YmFycmF5KDAsdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdKzEpKSwhMCl9c2V0VmFsdWUoZSx0KXtyZXR1cm4gZT1tdChlKSx0PW10KHQpLHRoaXMudmFsdWVzW2VdIT09dCYmKHRoaXMudmFsdWVzW2VdPXQsZS0xPHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSYmKHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXT1lLTEpLCEwKX1yZW1vdmVWYWx1ZXMoZSx0KXtlPW10KGUpLHQ9bXQodCk7Y29uc3Qgcj10aGlzLnZhbHVlcyxuPXRoaXMucHJlZml4U3VtO2lmKGU+PXIubGVuZ3RoKXJldHVybiExO3ZhciBpPXIubGVuZ3RoLWU7cmV0dXJuIDAhPT0odD1pPD10P2k6dCkmJih0aGlzLnZhbHVlcz1uZXcgVWludDMyQXJyYXkoci5sZW5ndGgtdCksdGhpcy52YWx1ZXMuc2V0KHIuc3ViYXJyYXkoMCxlKSwwKSx0aGlzLnZhbHVlcy5zZXQoci5zdWJhcnJheShlK3QpLGUpLHRoaXMucHJlZml4U3VtPW5ldyBVaW50MzJBcnJheSh0aGlzLnZhbHVlcy5sZW5ndGgpLGUtMTx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0mJih0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF09ZS0xKSwwPD10aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0mJnRoaXMucHJlZml4U3VtLnNldChuLnN1YmFycmF5KDAsdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdKzEpKSwhMCl9Z2V0VG90YWxTdW0oKXtyZXR1cm4gMD09PXRoaXMudmFsdWVzLmxlbmd0aD8wOnRoaXMuX2dldFByZWZpeFN1bSh0aGlzLnZhbHVlcy5sZW5ndGgtMSl9Z2V0UHJlZml4U3VtKGUpe3JldHVybiBlPDA/MDooZT1tdChlKSx0aGlzLl9nZXRQcmVmaXhTdW0oZSkpfV9nZXRQcmVmaXhTdW0odCl7aWYodDw9dGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdKXJldHVybiB0aGlzLnByZWZpeFN1bVt0XTtsZXQgcj10aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0rMTswPT09ciYmKHRoaXMucHJlZml4U3VtWzBdPXRoaXMudmFsdWVzWzBdLHIrKyksdD49dGhpcy52YWx1ZXMubGVuZ3RoJiYodD10aGlzLnZhbHVlcy5sZW5ndGgtMSk7Zm9yKGxldCBlPXI7ZTw9dDtlKyspdGhpcy5wcmVmaXhTdW1bZV09dGhpcy5wcmVmaXhTdW1bZS0xXSt0aGlzLnZhbHVlc1tlXTtyZXR1cm4gdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdPU1hdGgubWF4KHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSx0KSx0aGlzLnByZWZpeFN1bVt0XX1nZXRJbmRleE9mKGUpe2U9TWF0aC5mbG9vcihlKSx0aGlzLmdldFRvdGFsU3VtKCk7bGV0IHQ9MCxyPXRoaXMudmFsdWVzLmxlbmd0aC0xLG49MDt2YXIgaTtsZXQgYT0wO2Zvcig7dDw9cjspaWYobj10KyhyLXQpLzJ8MCxpPXRoaXMucHJlZml4U3VtW25dLGU8KGE9aS10aGlzLnZhbHVlc1tuXSkpcj1uLTE7ZWxzZXtpZighKGk8PWUpKWJyZWFrO3Q9bisxfXJldHVybiBuZXcgYnQobixlLWEpfX1jbGFzcyBidHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuaW5kZXg9ZSx0aGlzLnJlbWFpbmRlcj10LHRoaXMuX3ByZWZpeFN1bUluZGV4T2ZSZXN1bHRCcmFuZD12b2lkIDAsdGhpcy5pbmRleD1lLHRoaXMucmVtYWluZGVyPXR9fWNvbnN0IEN0PWZ1bmN0aW9uKGU9IiIpe2xldCB0PSIoLT9cXGQqXFwuXFxkXFx3Kil8KFteIjtmb3IoY29uc3QgciBvZiJgfiFAIyQlXiYqKCktPStbe119XFx8OzonXCIsLjw+Lz8iKTA8PWUuaW5kZXhPZihyKXx8KHQrPSJcXCIrcik7cmV0dXJuIHQrPSJcXHNdKykiLG5ldyBSZWdFeHAodCwiZyIpfSgpO2NvbnN0IHB0PXttYXhMZW46MWUzLHdpbmRvd1NpemU6MTUsdGltZUJ1ZGdldDoxNTB9O2Z1bmN0aW9uIHd0KHQscixuLGksYT1wdCl7aWYobi5sZW5ndGg+YS5tYXhMZW4pe2xldCBlPXQtYS5tYXhMZW4vMjtyZXR1cm4gZTwwP2U9MDppKz1lLHd0KHQscixuPW4uc3Vic3RyaW5nKGUsdCthLm1heExlbi8yKSxpLGEpfXZhciB1PURhdGUubm93KCksbz10LTEtaTtsZXQgcz0tMSxsPW51bGw7Zm9yKGxldCBlPTE7IShEYXRlLm5vdygpLXU+PWEudGltZUJ1ZGdldCk7ZSsrKXt2YXIgaD1vLWEud2luZG93U2l6ZSplLGM9KHIubGFzdEluZGV4PU1hdGgubWF4KDAsaCksZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk7Zm9yKDtpPWUuZXhlYyh0KTspe3ZhciBhPWkuaW5kZXh8fDA7aWYoYTw9ciYmZS5sYXN0SW5kZXg+PXIpcmV0dXJuIGk7aWYoMDxuJiZuPGEpcmV0dXJuIG51bGx9cmV0dXJuIG51bGx9KHIsbixvLHMpKTtpZighYyYmbClicmVhaztpZihsPWMsaDw9MClicmVhaztzPWh9cmV0dXJuIGw/KHQ9e3dvcmQ6bFswXSxzdGFydENvbHVtbjppKzErbC5pbmRleCxlbmRDb2x1bW46aSsxK2wuaW5kZXgrbFswXS5sZW5ndGh9LHIubGFzdEluZGV4PTAsdCk6bnVsbH1jbGFzcyBfdHtjb25zdHJ1Y3RvcihlKXtlPWZ0KGUpO3RoaXMuX2RlZmF1bHRWYWx1ZT1lLHRoaXMuX2FzY2lpTWFwPV90Ll9jcmVhdGVBc2NpaU1hcChlKSx0aGlzLl9tYXA9bmV3IE1hcH1zdGF0aWMgX2NyZWF0ZUFzY2lpTWFwKHQpe2NvbnN0IHI9bmV3IFVpbnQ4QXJyYXkoMjU2KTtmb3IobGV0IGU9MDtlPDI1NjtlKyspcltlXT10O3JldHVybiByfXNldChlLHQpe3Q9ZnQodCk7MDw9ZSYmZTwyNTY/dGhpcy5fYXNjaWlNYXBbZV09dDp0aGlzLl9tYXAuc2V0KGUsdCl9Z2V0KGUpe3JldHVybiAwPD1lJiZlPDI1Nj90aGlzLl9hc2NpaU1hcFtlXTp0aGlzLl9tYXAuZ2V0KGUpfHx0aGlzLl9kZWZhdWx0VmFsdWV9fWNsYXNzIHZ0e2NvbnN0cnVjdG9yKHIsbixpKXtjb25zdCBhPW5ldyBVaW50OEFycmF5KHIqbik7Zm9yKGxldCBlPTAsdD1yKm47ZTx0O2UrKylhW2VdPWk7dGhpcy5fZGF0YT1hLHRoaXMucm93cz1yLHRoaXMuY29scz1ufWdldChlLHQpe3JldHVybiB0aGlzLl9kYXRhW2UqdGhpcy5jb2xzK3RdfXNldChlLHQscil7dGhpcy5fZGF0YVtlKnRoaXMuY29scyt0XT1yfX1jbGFzcyB5dHtjb25zdHJ1Y3RvcihyKXtsZXQgbj0wLGk9MDtmb3IobGV0IGU9MCx0PXIubGVuZ3RoO2U8dDtlKyspe3ZhclthLG8sc109cltlXTtvPm4mJihuPW8pLHM+KGk9YT5pP2E6aSkmJihpPXMpfW4rKyxpKys7Y29uc3QgbD1uZXcgdnQoaSxuLDApO2ZvcihsZXQgZT0wLHQ9ci5sZW5ndGg7ZTx0O2UrKyl7dmFyW2gsYyx1XT1yW2VdO2wuc2V0KGgsYyx1KX10aGlzLl9zdGF0ZXM9bCx0aGlzLl9tYXhDaGFyQ29kZT1ufW5leHRTdGF0ZShlLHQpe3JldHVybiB0PDB8fHQ+PXRoaXMuX21heENoYXJDb2RlPzA6dGhpcy5fc3RhdGVzLmdldChlLHQpfX1sZXQgTHQ9bnVsbDtsZXQgU3Q9bnVsbDtjbGFzcyBOdHtzdGF0aWMgX2NyZWF0ZUxpbmsoZSx0LHIsbixpKXtsZXQgYT1pLTE7ZG97dmFyIG89dC5jaGFyQ29kZUF0KGEpO2lmKDIhPT1lLmdldChvKSlicmVha313aGlsZSgtLWE+bik7dmFyIHM7cmV0dXJuIDA8biYmKGk9dC5jaGFyQ29kZUF0KG4tMSkscz10LmNoYXJDb2RlQXQoYSksKDQwPT09aSYmNDE9PT1zfHw5MT09PWkmJjkzPT09c3x8MTIzPT09aSYmMTI1PT09cykmJmEtLSkse3JhbmdlOntzdGFydExpbmVOdW1iZXI6cixzdGFydENvbHVtbjpuKzEsZW5kTGluZU51bWJlcjpyLGVuZENvbHVtbjphKzJ9LHVybDp0LnN1YnN0cmluZyhuLGErMSl9fXN0YXRpYyBjb21wdXRlTGlua3ModCx1PUx0PW51bGw9PT1MdD9uZXcgeXQoW1sxLDEwNCwyXSxbMSw3MiwyXSxbMSwxMDIsNl0sWzEsNzAsNl0sWzIsMTE2LDNdLFsyLDg0LDNdLFszLDExNiw0XSxbMyw4NCw0XSxbNCwxMTIsNV0sWzQsODAsNV0sWzUsMTE1LDldLFs1LDgzLDldLFs1LDU4LDEwXSxbNiwxMDUsN10sWzYsNzMsN10sWzcsMTA4LDhdLFs3LDc2LDhdLFs4LDEwMSw5XSxbOCw2OSw5XSxbOSw1OCwxMF0sWzEwLDQ3LDExXSxbMTEsNDcsMTJdXSk6THQpe2NvbnN0IGQ9ZnVuY3Rpb24oKXtpZihudWxsPT09U3Qpe1N0PW5ldyBfdCgwKTt2YXIgdD0iIFx0PD4nXCLjgIHjgILvvaHvvaTvvIzvvI7vvJrvvJvigJjjgIjjgIzjgI7jgJTvvIjvvLvvvZvvvaLvvaPvvZ3vvL3vvInjgJXjgI/jgI3jgInigJnvvYDvvZ7igKYiO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKVN0LnNldCh0LmNoYXJDb2RlQXQoZSksMSk7Zm9yKGxldCBlPTA7ZTwiLiw7Ii5sZW5ndGg7ZSsrKVN0LnNldCgiLiw7Ii5jaGFyQ29kZUF0KGUpLDIpfXJldHVybiBTdH0oKSxmPVtdO2ZvcihsZXQgYz0xLGU9dC5nZXRMaW5lQ291bnQoKTtjPD1lO2MrKyl7Y29uc3QgYj10LmdldExpbmVDb250ZW50KGMpO3ZhciBtPWIubGVuZ3RoO2xldCByPTAsbj0wLGk9MCxhPTEsbz0hMSxzPSExLGw9ITEsaD0hMTtmb3IoO3I8bTspe2xldCB0PSExO3ZhciBnPWIuY2hhckNvZGVBdChyKTtpZigxMz09PWEpe2xldCBlO3N3aXRjaChnKXtjYXNlIDQwOm89ITAsZT0wO2JyZWFrO2Nhc2UgNDE6ZT1vPzA6MTticmVhaztjYXNlIDkxOmw9ITAscz0hMCxlPTA7YnJlYWs7Y2FzZSA5MzpsPSExLGU9cz8wOjE7YnJlYWs7Y2FzZSAxMjM6aD0hMCxlPTA7YnJlYWs7Y2FzZSAxMjU6ZT1oPzA6MTticmVhaztjYXNlIDM5OmU9MzQ9PT1pfHw5Nj09PWk/MDoxO2JyZWFrO2Nhc2UgMzQ6ZT0zOT09PWl8fDk2PT09aT8wOjE7YnJlYWs7Y2FzZSA5NjplPTM5PT09aXx8MzQ9PT1pPzA6MTticmVhaztjYXNlIDQyOmU9NDI9PT1pPzE6MDticmVhaztjYXNlIDEyNDplPTEyND09PWk/MTowO2JyZWFrO2Nhc2UgMzI6ZT1sPzA6MTticmVhaztkZWZhdWx0OmU9ZC5nZXQoZyl9MT09PWUmJihmLnB1c2goTnQuX2NyZWF0ZUxpbmsoZCxiLGMsbixyKSksdD0hMCl9ZWxzZSBpZigxMj09PWEpe2xldCBlOzE9PT0oZT05MT09PWc/KHM9ITAsMCk6ZC5nZXQoZykpP3Q9ITA6YT0xM31lbHNlIDA9PT0oYT11Lm5leHRTdGF0ZShhLGcpKSYmKHQ9ITApO3QmJihhPTEsbz0hMSxzPSExLGg9ITEsbj1yKzEsaT1nKSxyKyt9MTM9PT1hJiZmLnB1c2goTnQuX2NyZWF0ZUxpbmsoZCxiLGMsbixtKSl9cmV0dXJuIGZ9fWNsYXNzIEV0e2NvbnN0cnVjdG9yKCl7dGhpcy5fZGVmYXVsdFZhbHVlU2V0PVtbInRydWUiLCJmYWxzZSJdLFsiVHJ1ZSIsIkZhbHNlIl0sWyJQcml2YXRlIiwiUHVibGljIiwiRnJpZW5kIiwiUmVhZE9ubHkiLCJQYXJ0aWFsIiwiUHJvdGVjdGVkIiwiV3JpdGVPbmx5Il0sWyJwdWJsaWMiLCJwcm90ZWN0ZWQiLCJwcml2YXRlIl1dfW5hdmlnYXRlVmFsdWVTZXQoZSx0LHIsbixpKXtpZihlJiZ0KXt0PXRoaXMuZG9OYXZpZ2F0ZVZhbHVlU2V0KHQsaSk7aWYodClyZXR1cm57cmFuZ2U6ZSx2YWx1ZTp0fX1pZihyJiZuKXtlPXRoaXMuZG9OYXZpZ2F0ZVZhbHVlU2V0KG4saSk7aWYoZSlyZXR1cm57cmFuZ2U6cix2YWx1ZTplfX1yZXR1cm4gbnVsbH1kb05hdmlnYXRlVmFsdWVTZXQoZSx0KXt2YXIgcj10aGlzLm51bWJlclJlcGxhY2UoZSx0KTtyZXR1cm4gbnVsbCE9PXI/cjp0aGlzLnRleHRSZXBsYWNlKGUsdCl9bnVtYmVyUmVwbGFjZShlLHQpe3ZhciByPU1hdGgucG93KDEwLGUubGVuZ3RoLShlLmxhc3RJbmRleE9mKCIuIikrMSkpO2xldCBuPU51bWJlcihlKTtlPXBhcnNlRmxvYXQoZSk7cmV0dXJuIWlzTmFOKG4pJiYhaXNOYU4oZSkmJm49PT1lJiYoMCE9PW58fHQpPyhuPU1hdGguZmxvb3IobipyKSxuKz10P3I6LXIsU3RyaW5nKG4vcikpOm51bGx9dGV4dFJlcGxhY2UoZSx0KXtyZXR1cm4gdGhpcy52YWx1ZVNldHNSZXBsYWNlKHRoaXMuX2RlZmF1bHRWYWx1ZVNldCxlLHQpfXZhbHVlU2V0c1JlcGxhY2UocixuLGkpe2xldCBhPW51bGw7Zm9yKGxldCBlPTAsdD1yLmxlbmd0aDtudWxsPT09YSYmZTx0O2UrKylhPXRoaXMudmFsdWVTZXRSZXBsYWNlKHJbZV0sbixpKTtyZXR1cm4gYX12YWx1ZVNldFJlcGxhY2UoZSx0LHIpe2xldCBuPWUuaW5kZXhPZih0KTtyZXR1cm4gMDw9bj8oKG4rPXI/MTotMSk8MD9uPWUubGVuZ3RoLTE6biU9ZS5sZW5ndGgsZVtuXSk6bnVsbH19RXQuSU5TVEFOQ0U9bmV3IEV0O2NvbnN0IEF0PU9iamVjdC5mcmVlemUoZnVuY3Rpb24oZSx0KXtjb25zdCByPXNldFRpbWVvdXQoZS5iaW5kKHQpLDApO3JldHVybntkaXNwb3NlKCl7Y2xlYXJUaW1lb3V0KHIpfX19KTsoUmU9UGU9UGV8fHt9KS5pc0NhbmNlbGxhdGlvblRva2VuPWZ1bmN0aW9uKGUpe3JldHVybiBlPT09UmUuTm9uZXx8ZT09PVJlLkNhbmNlbGxlZHx8KGUgaW5zdGFuY2VvZiBrdHx8ISghZXx8Im9iamVjdCIhPXR5cGVvZiBlKSYmKCJib29sZWFuIj09dHlwZW9mIGUuaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKSl9LFJlLk5vbmU9T2JqZWN0LmZyZWV6ZSh7aXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQ6ITEsb25DYW5jZWxsYXRpb25SZXF1ZXN0ZWQ6UXQuTm9uZX0pLFJlLkNhbmNlbGxlZD1PYmplY3QuZnJlZXplKHtpc0NhbmNlbGxhdGlvblJlcXVlc3RlZDohMCxvbkNhbmNlbGxhdGlvblJlcXVlc3RlZDpBdH0pO2NsYXNzIGt0e2NvbnN0cnVjdG9yKCl7dGhpcy5faXNDYW5jZWxsZWQ9ITEsdGhpcy5fZW1pdHRlcj1udWxsfWNhbmNlbCgpe3RoaXMuX2lzQ2FuY2VsbGVkfHwodGhpcy5faXNDYW5jZWxsZWQ9ITAsdGhpcy5fZW1pdHRlciYmKHRoaXMuX2VtaXR0ZXIuZmlyZSh2b2lkIDApLHRoaXMuZGlzcG9zZSgpKSl9Z2V0IGlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCl7cmV0dXJuIHRoaXMuX2lzQ2FuY2VsbGVkfWdldCBvbkNhbmNlbGxhdGlvblJlcXVlc3RlZCgpe3JldHVybiB0aGlzLl9pc0NhbmNlbGxlZD9BdDoodGhpcy5fZW1pdHRlcnx8KHRoaXMuX2VtaXR0ZXI9bmV3IHRlKSx0aGlzLl9lbWl0dGVyLmV2ZW50KX1kaXNwb3NlKCl7dGhpcy5fZW1pdHRlciYmKHRoaXMuX2VtaXR0ZXIuZGlzcG9zZSgpLHRoaXMuX2VtaXR0ZXI9bnVsbCl9fWNsYXNzIHh0e2NvbnN0cnVjdG9yKGUpe3RoaXMuX3Rva2VuPXZvaWQgMCx0aGlzLl9wYXJlbnRMaXN0ZW5lcj12b2lkIDAsdGhpcy5fcGFyZW50TGlzdGVuZXI9ZSYmZS5vbkNhbmNlbGxhdGlvblJlcXVlc3RlZCh0aGlzLmNhbmNlbCx0aGlzKX1nZXQgdG9rZW4oKXtyZXR1cm4gdGhpcy5fdG9rZW58fCh0aGlzLl90b2tlbj1uZXcga3QpLHRoaXMuX3Rva2VufWNhbmNlbCgpe3RoaXMuX3Rva2VuP3RoaXMuX3Rva2VuIGluc3RhbmNlb2Yga3QmJnRoaXMuX3Rva2VuLmNhbmNlbCgpOnRoaXMuX3Rva2VuPVBlLkNhbmNlbGxlZH1kaXNwb3NlKGU9ITEpe2UmJnRoaXMuY2FuY2VsKCksdGhpcy5fcGFyZW50TGlzdGVuZXImJnRoaXMuX3BhcmVudExpc3RlbmVyLmRpc3Bvc2UoKSx0aGlzLl90b2tlbj90aGlzLl90b2tlbiBpbnN0YW5jZW9mIGt0JiZ0aGlzLl90b2tlbi5kaXNwb3NlKCk6dGhpcy5fdG9rZW49UGUuTm9uZX19Y2xhc3MgTXR7Y29uc3RydWN0b3IoKXt0aGlzLl9rZXlDb2RlVG9TdHI9W10sdGhpcy5fc3RyVG9LZXlDb2RlPU9iamVjdC5jcmVhdGUobnVsbCl9ZGVmaW5lKGUsdCl7dGhpcy5fa2V5Q29kZVRvU3RyW2VdPXQsdGhpcy5fc3RyVG9LZXlDb2RlW3QudG9Mb3dlckNhc2UoKV09ZX1rZXlDb2RlVG9TdHIoZSl7cmV0dXJuIHRoaXMuX2tleUNvZGVUb1N0cltlXX1zdHJUb0tleUNvZGUoZSl7cmV0dXJuIHRoaXMuX3N0clRvS2V5Q29kZVtlLnRvTG93ZXJDYXNlKCldfHwwfX1jb25zdCBLdD1uZXcgTXQsUHQ9bmV3IE10LFJ0PW5ldyBNdCxEdD1uZXcgQXJyYXkoMjMwKSxJdD17fSxWdD1bXSxPdD1PYmplY3QuY3JlYXRlKG51bGwpLEZ0PU9iamVjdC5jcmVhdGUobnVsbCksVHQ9W10sQnQ9W107Zm9yKGxldCBlPTA7ZTw9MTkzO2UrKylUdFtlXT0tMTtmb3IobGV0IGU9MDtlPD0xMjc7ZSsrKUJ0W2VdPS0xO3tsZXQgZT1bXSx0PVtdO2Zvcihjb25zdCBQciBvZltbMCwxLDAsIk5vbmUiLDAsInVua25vd24iLDAsIlZLX1VOS05PV04iLCIiLCIiXSxbMCwxLDEsIkh5cGVyIiwwLCIiLDAsIiIsIiIsIiJdLFswLDEsMiwiU3VwZXIiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwzLCJGbiIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDQsIkZuTG9jayIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDUsIlN1c3BlbmQiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSw2LCJSZXN1bWUiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSw3LCJUdXJibyIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDgsIlNsZWVwIiwwLCIiLDAsIlZLX1NMRUVQIiwiIiwiIl0sWzAsMSw5LCJXYWtlVXAiLDAsIiIsMCwiIiwiIiwiIl0sWzMxLDAsMTAsIktleUEiLDMxLCJBIiw2NSwiVktfQSIsIiIsIiJdLFszMiwwLDExLCJLZXlCIiwzMiwiQiIsNjYsIlZLX0IiLCIiLCIiXSxbMzMsMCwxMiwiS2V5QyIsMzMsIkMiLDY3LCJWS19DIiwiIiwiIl0sWzM0LDAsMTMsIktleUQiLDM0LCJEIiw2OCwiVktfRCIsIiIsIiJdLFszNSwwLDE0LCJLZXlFIiwzNSwiRSIsNjksIlZLX0UiLCIiLCIiXSxbMzYsMCwxNSwiS2V5RiIsMzYsIkYiLDcwLCJWS19GIiwiIiwiIl0sWzM3LDAsMTYsIktleUciLDM3LCJHIiw3MSwiVktfRyIsIiIsIiJdLFszOCwwLDE3LCJLZXlIIiwzOCwiSCIsNzIsIlZLX0giLCIiLCIiXSxbMzksMCwxOCwiS2V5SSIsMzksIkkiLDczLCJWS19JIiwiIiwiIl0sWzQwLDAsMTksIktleUoiLDQwLCJKIiw3NCwiVktfSiIsIiIsIiJdLFs0MSwwLDIwLCJLZXlLIiw0MSwiSyIsNzUsIlZLX0siLCIiLCIiXSxbNDIsMCwyMSwiS2V5TCIsNDIsIkwiLDc2LCJWS19MIiwiIiwiIl0sWzQzLDAsMjIsIktleU0iLDQzLCJNIiw3NywiVktfTSIsIiIsIiJdLFs0NCwwLDIzLCJLZXlOIiw0NCwiTiIsNzgsIlZLX04iLCIiLCIiXSxbNDUsMCwyNCwiS2V5TyIsNDUsIk8iLDc5LCJWS19PIiwiIiwiIl0sWzQ2LDAsMjUsIktleVAiLDQ2LCJQIiw4MCwiVktfUCIsIiIsIiJdLFs0NywwLDI2LCJLZXlRIiw0NywiUSIsODEsIlZLX1EiLCIiLCIiXSxbNDgsMCwyNywiS2V5UiIsNDgsIlIiLDgyLCJWS19SIiwiIiwiIl0sWzQ5LDAsMjgsIktleVMiLDQ5LCJTIiw4MywiVktfUyIsIiIsIiJdLFs1MCwwLDI5LCJLZXlUIiw1MCwiVCIsODQsIlZLX1QiLCIiLCIiXSxbNTEsMCwzMCwiS2V5VSIsNTEsIlUiLDg1LCJWS19VIiwiIiwiIl0sWzUyLDAsMzEsIktleVYiLDUyLCJWIiw4NiwiVktfViIsIiIsIiJdLFs1MywwLDMyLCJLZXlXIiw1MywiVyIsODcsIlZLX1ciLCIiLCIiXSxbNTQsMCwzMywiS2V5WCIsNTQsIlgiLDg4LCJWS19YIiwiIiwiIl0sWzU1LDAsMzQsIktleVkiLDU1LCJZIiw4OSwiVktfWSIsIiIsIiJdLFs1NiwwLDM1LCJLZXlaIiw1NiwiWiIsOTAsIlZLX1oiLCIiLCIiXSxbMjIsMCwzNiwiRGlnaXQxIiwyMiwiMSIsNDksIlZLXzEiLCIiLCIiXSxbMjMsMCwzNywiRGlnaXQyIiwyMywiMiIsNTAsIlZLXzIiLCIiLCIiXSxbMjQsMCwzOCwiRGlnaXQzIiwyNCwiMyIsNTEsIlZLXzMiLCIiLCIiXSxbMjUsMCwzOSwiRGlnaXQ0IiwyNSwiNCIsNTIsIlZLXzQiLCIiLCIiXSxbMjYsMCw0MCwiRGlnaXQ1IiwyNiwiNSIsNTMsIlZLXzUiLCIiLCIiXSxbMjcsMCw0MSwiRGlnaXQ2IiwyNywiNiIsNTQsIlZLXzYiLCIiLCIiXSxbMjgsMCw0MiwiRGlnaXQ3IiwyOCwiNyIsNTUsIlZLXzciLCIiLCIiXSxbMjksMCw0MywiRGlnaXQ4IiwyOSwiOCIsNTYsIlZLXzgiLCIiLCIiXSxbMzAsMCw0NCwiRGlnaXQ5IiwzMCwiOSIsNTcsIlZLXzkiLCIiLCIiXSxbMjEsMCw0NSwiRGlnaXQwIiwyMSwiMCIsNDgsIlZLXzAiLCIiLCIiXSxbMywxLDQ2LCJFbnRlciIsMywiRW50ZXIiLDEzLCJWS19SRVRVUk4iLCIiLCIiXSxbOSwxLDQ3LCJFc2NhcGUiLDksIkVzY2FwZSIsMjcsIlZLX0VTQ0FQRSIsIiIsIiJdLFsxLDEsNDgsIkJhY2tzcGFjZSIsMSwiQmFja3NwYWNlIiw4LCJWS19CQUNLIiwiIiwiIl0sWzIsMSw0OSwiVGFiIiwyLCJUYWIiLDksIlZLX1RBQiIsIiIsIiJdLFsxMCwxLDUwLCJTcGFjZSIsMTAsIlNwYWNlIiwzMiwiVktfU1BBQ0UiLCIiLCIiXSxbODMsMCw1MSwiTWludXMiLDgzLCItIiwxODksIlZLX09FTV9NSU5VUyIsIi0iLCJPRU1fTUlOVVMiXSxbODEsMCw1MiwiRXF1YWwiLDgxLCI9IiwxODcsIlZLX09FTV9QTFVTIiwiPSIsIk9FTV9QTFVTIl0sWzg3LDAsNTMsIkJyYWNrZXRMZWZ0Iiw4NywiWyIsMjE5LCJWS19PRU1fNCIsIlsiLCJPRU1fNCJdLFs4OSwwLDU0LCJCcmFja2V0UmlnaHQiLDg5LCJdIiwyMjEsIlZLX09FTV82IiwiXSIsIk9FTV82Il0sWzg4LDAsNTUsIkJhY2tzbGFzaCIsODgsIlxcIiwyMjAsIlZLX09FTV81IiwiXFwiLCJPRU1fNSJdLFswLDAsNTYsIkludGxIYXNoIiwwLCIiLDAsIiIsIiIsIiJdLFs4MCwwLDU3LCJTZW1pY29sb24iLDgwLCI7IiwxODYsIlZLX09FTV8xIiwiOyIsIk9FTV8xIl0sWzkwLDAsNTgsIlF1b3RlIiw5MCwiJyIsMjIyLCJWS19PRU1fNyIsIiciLCJPRU1fNyJdLFs4NiwwLDU5LCJCYWNrcXVvdGUiLDg2LCJgIiwxOTIsIlZLX09FTV8zIiwiYCIsIk9FTV8zIl0sWzgyLDAsNjAsIkNvbW1hIiw4MiwiLCIsMTg4LCJWS19PRU1fQ09NTUEiLCIsIiwiT0VNX0NPTU1BIl0sWzg0LDAsNjEsIlBlcmlvZCIsODQsIi4iLDE5MCwiVktfT0VNX1BFUklPRCIsIi4iLCJPRU1fUEVSSU9EIl0sWzg1LDAsNjIsIlNsYXNoIiw4NSwiLyIsMTkxLCJWS19PRU1fMiIsIi8iLCJPRU1fMiJdLFs4LDEsNjMsIkNhcHNMb2NrIiw4LCJDYXBzTG9jayIsMjAsIlZLX0NBUElUQUwiLCIiLCIiXSxbNTksMSw2NCwiRjEiLDU5LCJGMSIsMTEyLCJWS19GMSIsIiIsIiJdLFs2MCwxLDY1LCJGMiIsNjAsIkYyIiwxMTMsIlZLX0YyIiwiIiwiIl0sWzYxLDEsNjYsIkYzIiw2MSwiRjMiLDExNCwiVktfRjMiLCIiLCIiXSxbNjIsMSw2NywiRjQiLDYyLCJGNCIsMTE1LCJWS19GNCIsIiIsIiJdLFs2MywxLDY4LCJGNSIsNjMsIkY1IiwxMTYsIlZLX0Y1IiwiIiwiIl0sWzY0LDEsNjksIkY2Iiw2NCwiRjYiLDExNywiVktfRjYiLCIiLCIiXSxbNjUsMSw3MCwiRjciLDY1LCJGNyIsMTE4LCJWS19GNyIsIiIsIiJdLFs2NiwxLDcxLCJGOCIsNjYsIkY4IiwxMTksIlZLX0Y4IiwiIiwiIl0sWzY3LDEsNzIsIkY5Iiw2NywiRjkiLDEyMCwiVktfRjkiLCIiLCIiXSxbNjgsMSw3MywiRjEwIiw2OCwiRjEwIiwxMjEsIlZLX0YxMCIsIiIsIiJdLFs2OSwxLDc0LCJGMTEiLDY5LCJGMTEiLDEyMiwiVktfRjExIiwiIiwiIl0sWzcwLDEsNzUsIkYxMiIsNzAsIkYxMiIsMTIzLCJWS19GMTIiLCIiLCIiXSxbMCwxLDc2LCJQcmludFNjcmVlbiIsMCwiIiwwLCIiLCIiLCIiXSxbNzksMSw3NywiU2Nyb2xsTG9jayIsNzksIlNjcm9sbExvY2siLDE0NSwiVktfU0NST0xMIiwiIiwiIl0sWzcsMSw3OCwiUGF1c2UiLDcsIlBhdXNlQnJlYWsiLDE5LCJWS19QQVVTRSIsIiIsIiJdLFsxOSwxLDc5LCJJbnNlcnQiLDE5LCJJbnNlcnQiLDQ1LCJWS19JTlNFUlQiLCIiLCIiXSxbMTQsMSw4MCwiSG9tZSIsMTQsIkhvbWUiLDM2LCJWS19IT01FIiwiIiwiIl0sWzExLDEsODEsIlBhZ2VVcCIsMTEsIlBhZ2VVcCIsMzMsIlZLX1BSSU9SIiwiIiwiIl0sWzIwLDEsODIsIkRlbGV0ZSIsMjAsIkRlbGV0ZSIsNDYsIlZLX0RFTEVURSIsIiIsIiJdLFsxMywxLDgzLCJFbmQiLDEzLCJFbmQiLDM1LCJWS19FTkQiLCIiLCIiXSxbMTIsMSw4NCwiUGFnZURvd24iLDEyLCJQYWdlRG93biIsMzQsIlZLX05FWFQiLCIiLCIiXSxbMTcsMSw4NSwiQXJyb3dSaWdodCIsMTcsIlJpZ2h0QXJyb3ciLDM5LCJWS19SSUdIVCIsIlJpZ2h0IiwiIl0sWzE1LDEsODYsIkFycm93TGVmdCIsMTUsIkxlZnRBcnJvdyIsMzcsIlZLX0xFRlQiLCJMZWZ0IiwiIl0sWzE4LDEsODcsIkFycm93RG93biIsMTgsIkRvd25BcnJvdyIsNDAsIlZLX0RPV04iLCJEb3duIiwiIl0sWzE2LDEsODgsIkFycm93VXAiLDE2LCJVcEFycm93IiwzOCwiVktfVVAiLCJVcCIsIiJdLFs3OCwxLDg5LCJOdW1Mb2NrIiw3OCwiTnVtTG9jayIsMTQ0LCJWS19OVU1MT0NLIiwiIiwiIl0sWzEwOCwxLDkwLCJOdW1wYWREaXZpZGUiLDEwOCwiTnVtUGFkX0RpdmlkZSIsMTExLCJWS19ESVZJREUiLCIiLCIiXSxbMTAzLDEsOTEsIk51bXBhZE11bHRpcGx5IiwxMDMsIk51bVBhZF9NdWx0aXBseSIsMTA2LCJWS19NVUxUSVBMWSIsIiIsIiJdLFsxMDYsMSw5MiwiTnVtcGFkU3VidHJhY3QiLDEwNiwiTnVtUGFkX1N1YnRyYWN0IiwxMDksIlZLX1NVQlRSQUNUIiwiIiwiIl0sWzEwNCwxLDkzLCJOdW1wYWRBZGQiLDEwNCwiTnVtUGFkX0FkZCIsMTA3LCJWS19BREQiLCIiLCIiXSxbMywxLDk0LCJOdW1wYWRFbnRlciIsMywiIiwwLCIiLCIiLCIiXSxbOTQsMSw5NSwiTnVtcGFkMSIsOTQsIk51bVBhZDEiLDk3LCJWS19OVU1QQUQxIiwiIiwiIl0sWzk1LDEsOTYsIk51bXBhZDIiLDk1LCJOdW1QYWQyIiw5OCwiVktfTlVNUEFEMiIsIiIsIiJdLFs5NiwxLDk3LCJOdW1wYWQzIiw5NiwiTnVtUGFkMyIsOTksIlZLX05VTVBBRDMiLCIiLCIiXSxbOTcsMSw5OCwiTnVtcGFkNCIsOTcsIk51bVBhZDQiLDEwMCwiVktfTlVNUEFENCIsIiIsIiJdLFs5OCwxLDk5LCJOdW1wYWQ1Iiw5OCwiTnVtUGFkNSIsMTAxLCJWS19OVU1QQUQ1IiwiIiwiIl0sWzk5LDEsMTAwLCJOdW1wYWQ2Iiw5OSwiTnVtUGFkNiIsMTAyLCJWS19OVU1QQUQ2IiwiIiwiIl0sWzEwMCwxLDEwMSwiTnVtcGFkNyIsMTAwLCJOdW1QYWQ3IiwxMDMsIlZLX05VTVBBRDciLCIiLCIiXSxbMTAxLDEsMTAyLCJOdW1wYWQ4IiwxMDEsIk51bVBhZDgiLDEwNCwiVktfTlVNUEFEOCIsIiIsIiJdLFsxMDIsMSwxMDMsIk51bXBhZDkiLDEwMiwiTnVtUGFkOSIsMTA1LCJWS19OVU1QQUQ5IiwiIiwiIl0sWzkzLDEsMTA0LCJOdW1wYWQwIiw5MywiTnVtUGFkMCIsOTYsIlZLX05VTVBBRDAiLCIiLCIiXSxbMTA3LDEsMTA1LCJOdW1wYWREZWNpbWFsIiwxMDcsIk51bVBhZF9EZWNpbWFsIiwxMTAsIlZLX0RFQ0lNQUwiLCIiLCIiXSxbOTIsMCwxMDYsIkludGxCYWNrc2xhc2giLDkyLCJPRU1fMTAyIiwyMjYsIlZLX09FTV8xMDIiLCIiLCIiXSxbNTgsMSwxMDcsIkNvbnRleHRNZW51Iiw1OCwiQ29udGV4dE1lbnUiLDkzLCIiLCIiLCIiXSxbMCwxLDEwOCwiUG93ZXIiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxMDksIk51bXBhZEVxdWFsIiwwLCIiLDAsIiIsIiIsIiJdLFs3MSwxLDExMCwiRjEzIiw3MSwiRjEzIiwxMjQsIlZLX0YxMyIsIiIsIiJdLFs3MiwxLDExMSwiRjE0Iiw3MiwiRjE0IiwxMjUsIlZLX0YxNCIsIiIsIiJdLFs3MywxLDExMiwiRjE1Iiw3MywiRjE1IiwxMjYsIlZLX0YxNSIsIiIsIiJdLFs3NCwxLDExMywiRjE2Iiw3NCwiRjE2IiwxMjcsIlZLX0YxNiIsIiIsIiJdLFs3NSwxLDExNCwiRjE3Iiw3NSwiRjE3IiwxMjgsIlZLX0YxNyIsIiIsIiJdLFs3NiwxLDExNSwiRjE4Iiw3NiwiRjE4IiwxMjksIlZLX0YxOCIsIiIsIiJdLFs3NywxLDExNiwiRjE5Iiw3NywiRjE5IiwxMzAsIlZLX0YxOSIsIiIsIiJdLFswLDEsMTE3LCJGMjAiLDAsIiIsMCwiVktfRjIwIiwiIiwiIl0sWzAsMSwxMTgsIkYyMSIsMCwiIiwwLCJWS19GMjEiLCIiLCIiXSxbMCwxLDExOSwiRjIyIiwwLCIiLDAsIlZLX0YyMiIsIiIsIiJdLFswLDEsMTIwLCJGMjMiLDAsIiIsMCwiVktfRjIzIiwiIiwiIl0sWzAsMSwxMjEsIkYyNCIsMCwiIiwwLCJWS19GMjQiLCIiLCIiXSxbMCwxLDEyMiwiT3BlbiIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDEyMywiSGVscCIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDEyNCwiU2VsZWN0IiwwLCIiLDAsIiIsIiIsIiJdLFswLDEsMTI1LCJBZ2FpbiIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDEyNiwiVW5kbyIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDEyNywiQ3V0IiwwLCIiLDAsIiIsIiIsIiJdLFswLDEsMTI4LCJDb3B5IiwwLCIiLDAsIiIsIiIsIiJdLFswLDEsMTI5LCJQYXN0ZSIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDEzMCwiRmluZCIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDEzMSwiQXVkaW9Wb2x1bWVNdXRlIiwxMTIsIkF1ZGlvVm9sdW1lTXV0ZSIsMTczLCJWS19WT0xVTUVfTVVURSIsIiIsIiJdLFswLDEsMTMyLCJBdWRpb1ZvbHVtZVVwIiwxMTMsIkF1ZGlvVm9sdW1lVXAiLDE3NSwiVktfVk9MVU1FX1VQIiwiIiwiIl0sWzAsMSwxMzMsIkF1ZGlvVm9sdW1lRG93biIsMTE0LCJBdWRpb1ZvbHVtZURvd24iLDE3NCwiVktfVk9MVU1FX0RPV04iLCIiLCIiXSxbMTA1LDEsMTM0LCJOdW1wYWRDb21tYSIsMTA1LCJOdW1QYWRfU2VwYXJhdG9yIiwxMDgsIlZLX1NFUEFSQVRPUiIsIiIsIiJdLFsxMTAsMCwxMzUsIkludGxSbyIsMTEwLCJBQk5UX0MxIiwxOTMsIlZLX0FCTlRfQzEiLCIiLCIiXSxbMCwxLDEzNiwiS2FuYU1vZGUiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMCwxMzcsIkludGxZZW4iLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxMzgsIkNvbnZlcnQiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxMzksIk5vbkNvbnZlcnQiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNDAsIkxhbmcxIiwwLCIiLDAsIiIsIiIsIiJdLFswLDEsMTQxLCJMYW5nMiIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE0MiwiTGFuZzMiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNDMsIkxhbmc0IiwwLCIiLDAsIiIsIiIsIiJdLFswLDEsMTQ0LCJMYW5nNSIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE0NSwiQWJvcnQiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNDYsIlByb3BzIiwwLCIiLDAsIiIsIiIsIiJdLFswLDEsMTQ3LCJOdW1wYWRQYXJlbkxlZnQiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNDgsIk51bXBhZFBhcmVuUmlnaHQiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNDksIk51bXBhZEJhY2tzcGFjZSIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE1MCwiTnVtcGFkTWVtb3J5U3RvcmUiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNTEsIk51bXBhZE1lbW9yeVJlY2FsbCIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE1MiwiTnVtcGFkTWVtb3J5Q2xlYXIiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNTMsIk51bXBhZE1lbW9yeUFkZCIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE1NCwiTnVtcGFkTWVtb3J5U3VidHJhY3QiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNTUsIk51bXBhZENsZWFyIiwxMjYsIkNsZWFyIiwxMiwiVktfQ0xFQVIiLCIiLCIiXSxbMCwxLDE1NiwiTnVtcGFkQ2xlYXJFbnRyeSIsMCwiIiwwLCIiLCIiLCIiXSxbNSwxLDAsIiIsNSwiQ3RybCIsMTcsIlZLX0NPTlRST0wiLCIiLCIiXSxbNCwxLDAsIiIsNCwiU2hpZnQiLDE2LCJWS19TSElGVCIsIiIsIiJdLFs2LDEsMCwiIiw2LCJBbHQiLDE4LCJWS19NRU5VIiwiIiwiIl0sWzU3LDEsMCwiIiw1NywiTWV0YSIsMCwiVktfQ09NTUFORCIsIiIsIiJdLFs1LDEsMTU3LCJDb250cm9sTGVmdCIsNSwiIiwwLCJWS19MQ09OVFJPTCIsIiIsIiJdLFs0LDEsMTU4LCJTaGlmdExlZnQiLDQsIiIsMCwiVktfTFNISUZUIiwiIiwiIl0sWzYsMSwxNTksIkFsdExlZnQiLDYsIiIsMCwiVktfTE1FTlUiLCIiLCIiXSxbNTcsMSwxNjAsIk1ldGFMZWZ0Iiw1NywiIiwwLCJWS19MV0lOIiwiIiwiIl0sWzUsMSwxNjEsIkNvbnRyb2xSaWdodCIsNSwiIiwwLCJWS19SQ09OVFJPTCIsIiIsIiJdLFs0LDEsMTYyLCJTaGlmdFJpZ2h0Iiw0LCIiLDAsIlZLX1JTSElGVCIsIiIsIiJdLFs2LDEsMTYzLCJBbHRSaWdodCIsNiwiIiwwLCJWS19STUVOVSIsIiIsIiJdLFs1NywxLDE2NCwiTWV0YVJpZ2h0Iiw1NywiIiwwLCJWS19SV0lOIiwiIiwiIl0sWzAsMSwxNjUsIkJyaWdodG5lc3NVcCIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE2NiwiQnJpZ2h0bmVzc0Rvd24iLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNjcsIk1lZGlhUGxheSIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE2OCwiTWVkaWFSZWNvcmQiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNjksIk1lZGlhRmFzdEZvcndhcmQiLDAsIiIsMCwiIiwiIiwiIl0sWzAsMSwxNzAsIk1lZGlhUmV3aW5kIiwwLCIiLDAsIiIsIiIsIiJdLFsxMTQsMSwxNzEsIk1lZGlhVHJhY2tOZXh0IiwxMTksIk1lZGlhVHJhY2tOZXh0IiwxNzYsIlZLX01FRElBX05FWFRfVFJBQ0siLCIiLCIiXSxbMTE1LDEsMTcyLCJNZWRpYVRyYWNrUHJldmlvdXMiLDEyMCwiTWVkaWFUcmFja1ByZXZpb3VzIiwxNzcsIlZLX01FRElBX1BSRVZfVFJBQ0siLCIiLCIiXSxbMTE2LDEsMTczLCJNZWRpYVN0b3AiLDEyMSwiTWVkaWFTdG9wIiwxNzgsIlZLX01FRElBX1NUT1AiLCIiLCIiXSxbMCwxLDE3NCwiRWplY3QiLDAsIiIsMCwiIiwiIiwiIl0sWzExNywxLDE3NSwiTWVkaWFQbGF5UGF1c2UiLDEyMiwiTWVkaWFQbGF5UGF1c2UiLDE3OSwiVktfTUVESUFfUExBWV9QQVVTRSIsIiIsIiJdLFswLDEsMTc2LCJNZWRpYVNlbGVjdCIsMTIzLCJMYXVuY2hNZWRpYVBsYXllciIsMTgxLCJWS19NRURJQV9MQVVOQ0hfTUVESUFfU0VMRUNUIiwiIiwiIl0sWzAsMSwxNzcsIkxhdW5jaE1haWwiLDEyNCwiTGF1bmNoTWFpbCIsMTgwLCJWS19NRURJQV9MQVVOQ0hfTUFJTCIsIiIsIiJdLFswLDEsMTc4LCJMYXVuY2hBcHAyIiwxMjUsIkxhdW5jaEFwcDIiLDE4MywiVktfTUVESUFfTEFVTkNIX0FQUDIiLCIiLCIiXSxbMCwxLDE3OSwiTGF1bmNoQXBwMSIsMCwiIiwwLCJWS19NRURJQV9MQVVOQ0hfQVBQMSIsIiIsIiJdLFswLDEsMTgwLCJTZWxlY3RUYXNrIiwwLCIiLDAsIiIsIiIsIiJdLFswLDEsMTgxLCJMYXVuY2hTY3JlZW5TYXZlciIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE4MiwiQnJvd3NlclNlYXJjaCIsMTE1LCJCcm93c2VyU2VhcmNoIiwxNzAsIlZLX0JST1dTRVJfU0VBUkNIIiwiIiwiIl0sWzAsMSwxODMsIkJyb3dzZXJIb21lIiwxMTYsIkJyb3dzZXJIb21lIiwxNzIsIlZLX0JST1dTRVJfSE9NRSIsIiIsIiJdLFsxMTIsMSwxODQsIkJyb3dzZXJCYWNrIiwxMTcsIkJyb3dzZXJCYWNrIiwxNjYsIlZLX0JST1dTRVJfQkFDSyIsIiIsIiJdLFsxMTMsMSwxODUsIkJyb3dzZXJGb3J3YXJkIiwxMTgsIkJyb3dzZXJGb3J3YXJkIiwxNjcsIlZLX0JST1dTRVJfRk9SV0FSRCIsIiIsIiJdLFswLDEsMTg2LCJCcm93c2VyU3RvcCIsMCwiIiwwLCJWS19CUk9XU0VSX1NUT1AiLCIiLCIiXSxbMCwxLDE4NywiQnJvd3NlclJlZnJlc2giLDAsIiIsMCwiVktfQlJPV1NFUl9SRUZSRVNIIiwiIiwiIl0sWzAsMSwxODgsIkJyb3dzZXJGYXZvcml0ZXMiLDAsIiIsMCwiVktfQlJPV1NFUl9GQVZPUklURVMiLCIiLCIiXSxbMCwxLDE4OSwiWm9vbVRvZ2dsZSIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE5MCwiTWFpbFJlcGx5IiwwLCIiLDAsIiIsIiIsIiJdLFswLDEsMTkxLCJNYWlsRm9yd2FyZCIsMCwiIiwwLCIiLCIiLCIiXSxbMCwxLDE5MiwiTWFpbFNlbmQiLDAsIiIsMCwiIiwiIiwiIl0sWzEwOSwxLDAsIiIsMTA5LCJLZXlJbkNvbXBvc2l0aW9uIiwyMjksIiIsIiIsIiJdLFsxMTEsMSwwLCIiLDExMSwiQUJOVF9DMiIsMTk0LCJWS19BQk5UX0MyIiwiIiwiIl0sWzkxLDEsMCwiIiw5MSwiT0VNXzgiLDIyMywiVktfT0VNXzgiLCIiLCIiXSxbMCwxLDAsIiIsMCwiIiwwLCJWS19LQU5BIiwiIiwiIl0sWzAsMSwwLCIiLDAsIiIsMCwiVktfSEFOR1VMIiwiIiwiIl0sWzAsMSwwLCIiLDAsIiIsMCwiVktfSlVOSkEiLCIiLCIiXSxbMCwxLDAsIiIsMCwiIiwwLCJWS19GSU5BTCIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX0hBTkpBIiwiIiwiIl0sWzAsMSwwLCIiLDAsIiIsMCwiVktfS0FOSkkiLCIiLCIiXSxbMCwxLDAsIiIsMCwiIiwwLCJWS19DT05WRVJUIiwiIiwiIl0sWzAsMSwwLCIiLDAsIiIsMCwiVktfTk9OQ09OVkVSVCIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX0FDQ0VQVCIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX01PREVDSEFOR0UiLCIiLCIiXSxbMCwxLDAsIiIsMCwiIiwwLCJWS19TRUxFQ1QiLCIiLCIiXSxbMCwxLDAsIiIsMCwiIiwwLCJWS19QUklOVCIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX0VYRUNVVEUiLCIiLCIiXSxbMCwxLDAsIiIsMCwiIiwwLCJWS19TTkFQU0hPVCIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX0hFTFAiLCIiLCIiXSxbMCwxLDAsIiIsMCwiIiwwLCJWS19BUFBTIiwiIiwiIl0sWzAsMSwwLCIiLDAsIiIsMCwiVktfUFJPQ0VTU0tFWSIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX1BBQ0tFVCIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX0RCRV9TQkNTQ0hBUiIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX0RCRV9EQkNTQ0hBUiIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX0FUVE4iLCIiLCIiXSxbMCwxLDAsIiIsMCwiIiwwLCJWS19DUlNFTCIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX0VYU0VMIiwiIiwiIl0sWzAsMSwwLCIiLDAsIiIsMCwiVktfRVJFT0YiLCIiLCIiXSxbMCwxLDAsIiIsMCwiIiwwLCJWS19QTEFZIiwiIiwiIl0sWzAsMSwwLCIiLDAsIiIsMCwiVktfWk9PTSIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX05PTkFNRSIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX1BBMSIsIiIsIiJdLFswLDEsMCwiIiwwLCIiLDAsIlZLX09FTV9DTEVBUiIsIiIsIiJdXSl7Y29uc3RbLFJyLERyLElyLFZyLE9yLEZyLFRyLEJyLFVyXT1QcjtpZih0W0RyXXx8KHRbRHJdPSEwLFZ0W0RyXT1JcixPdFtJcl09RHIsRnRbSXIudG9Mb3dlckNhc2UoKV09RHIsUnImJjAhPT0oVHRbRHJdPVZyKSYmMyE9PVZyJiY1IT09VnImJjQhPT1WciYmNiE9PVZyJiY1NyE9PVZyJiYoQnRbVnJdPURyKSksIWVbVnJdKXtpZihlW1ZyXT0hMCwhT3IpdGhyb3cgbmV3IEVycm9yKGBTdHJpbmcgcmVwcmVzZW50YXRpb24gbWlzc2luZyBmb3Iga2V5IGNvZGUgJHtWcn0gYXJvdW5kIHNjYW4gY29kZSBgK0lyKTtLdC5kZWZpbmUoVnIsT3IpLFB0LmRlZmluZShWcixCcnx8T3IpLFJ0LmRlZmluZShWcixVcnx8QnJ8fE9yKX1GciYmKER0W0ZyXT1WciksVHImJihJdFtUcl09VnIpfUJ0WzNdPTQ2fWNsYXNzIFV0IGV4dGVuZHMgcHtjb25zdHJ1Y3RvcihlLHQscixuKXtzdXBlcihlLHQscixuKSx0aGlzLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlcj1lLHRoaXMuc2VsZWN0aW9uU3RhcnRDb2x1bW49dCx0aGlzLnBvc2l0aW9uTGluZU51bWJlcj1yLHRoaXMucG9zaXRpb25Db2x1bW49bn10b1N0cmluZygpe3JldHVybiJbIit0aGlzLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlcisiLCIrdGhpcy5zZWxlY3Rpb25TdGFydENvbHVtbisiIC0+ICIrdGhpcy5wb3NpdGlvbkxpbmVOdW1iZXIrIiwiK3RoaXMucG9zaXRpb25Db2x1bW4rIl0ifWVxdWFsc1NlbGVjdGlvbihlKXtyZXR1cm4gVXQuc2VsZWN0aW9uc0VxdWFsKHRoaXMsZSl9c3RhdGljIHNlbGVjdGlvbnNFcXVhbChlLHQpe3JldHVybiBlLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlcj09PXQuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyJiZlLnNlbGVjdGlvblN0YXJ0Q29sdW1uPT09dC5zZWxlY3Rpb25TdGFydENvbHVtbiYmZS5wb3NpdGlvbkxpbmVOdW1iZXI9PT10LnBvc2l0aW9uTGluZU51bWJlciYmZS5wb3NpdGlvbkNvbHVtbj09PXQucG9zaXRpb25Db2x1bW59Z2V0RGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyPT09dGhpcy5zdGFydExpbmVOdW1iZXImJnRoaXMuc2VsZWN0aW9uU3RhcnRDb2x1bW49PT10aGlzLnN0YXJ0Q29sdW1uPzA6MX1zZXRFbmRQb3NpdGlvbihlLHQpe3JldHVybiAwPT09dGhpcy5nZXREaXJlY3Rpb24oKT9uZXcgVXQodGhpcy5zdGFydExpbmVOdW1iZXIsdGhpcy5zdGFydENvbHVtbixlLHQpOm5ldyBVdChlLHQsdGhpcy5zdGFydExpbmVOdW1iZXIsdGhpcy5zdGFydENvbHVtbil9Z2V0UG9zaXRpb24oKXtyZXR1cm4gbmV3IG50KHRoaXMucG9zaXRpb25MaW5lTnVtYmVyLHRoaXMucG9zaXRpb25Db2x1bW4pfWdldFNlbGVjdGlvblN0YXJ0KCl7cmV0dXJuIG5ldyBudCh0aGlzLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlcix0aGlzLnNlbGVjdGlvblN0YXJ0Q29sdW1uKX1zZXRTdGFydFBvc2l0aW9uKGUsdCl7cmV0dXJuIDA9PT10aGlzLmdldERpcmVjdGlvbigpP25ldyBVdChlLHQsdGhpcy5lbmRMaW5lTnVtYmVyLHRoaXMuZW5kQ29sdW1uKTpuZXcgVXQodGhpcy5lbmRMaW5lTnVtYmVyLHRoaXMuZW5kQ29sdW1uLGUsdCl9c3RhdGljIGZyb21Qb3NpdGlvbnMoZSx0PWUpe3JldHVybiBuZXcgVXQoZS5saW5lTnVtYmVyLGUuY29sdW1uLHQubGluZU51bWJlcix0LmNvbHVtbil9c3RhdGljIGZyb21SYW5nZShlLHQpe3JldHVybiAwPT09dD9uZXcgVXQoZS5zdGFydExpbmVOdW1iZXIsZS5zdGFydENvbHVtbixlLmVuZExpbmVOdW1iZXIsZS5lbmRDb2x1bW4pOm5ldyBVdChlLmVuZExpbmVOdW1iZXIsZS5lbmRDb2x1bW4sZS5zdGFydExpbmVOdW1iZXIsZS5zdGFydENvbHVtbil9c3RhdGljIGxpZnRTZWxlY3Rpb24oZSl7cmV0dXJuIG5ldyBVdChlLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlcixlLnNlbGVjdGlvblN0YXJ0Q29sdW1uLGUucG9zaXRpb25MaW5lTnVtYmVyLGUucG9zaXRpb25Db2x1bW4pfXN0YXRpYyBzZWxlY3Rpb25zQXJyRXF1YWwocixuKXtpZihyJiYhbnx8IXImJm4pcmV0dXJuITE7aWYoIXImJiFuKXJldHVybiEwO2lmKHIubGVuZ3RoIT09bi5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBlPTAsdD1yLmxlbmd0aDtlPHQ7ZSsrKWlmKCF0aGlzLnNlbGVjdGlvbnNFcXVhbChyW2VdLG5bZV0pKXJldHVybiExO3JldHVybiEwfXN0YXRpYyBpc0lTZWxlY3Rpb24oZSl7cmV0dXJuIGUmJiJudW1iZXIiPT10eXBlb2YgZS5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXImJiJudW1iZXIiPT10eXBlb2YgZS5zZWxlY3Rpb25TdGFydENvbHVtbiYmIm51bWJlciI9PXR5cGVvZiBlLnBvc2l0aW9uTGluZU51bWJlciYmIm51bWJlciI9PXR5cGVvZiBlLnBvc2l0aW9uQ29sdW1ufXN0YXRpYyBjcmVhdGVXaXRoRGlyZWN0aW9uKGUsdCxyLG4saSl7cmV0dXJuIDA9PT1pP25ldyBVdChlLHQscixuKTpuZXcgVXQocixuLGUsdCl9fXZhciBxdCxIdCx6dCxXdCxqdCwkdCxHdCxKdCxRdCxZdCxadD1mdW5jdGlvbihlLG8scyxsKXtyZXR1cm4gbmV3KHM9c3x8UHJvbWlzZSkoZnVuY3Rpb24ocix0KXtmdW5jdGlvbiBuKGUpe3RyeXthKGwubmV4dChlKSl9Y2F0Y2goZSl7dChlKX19ZnVuY3Rpb24gaShlKXt0cnl7YShsLnRocm93KGUpKX1jYXRjaChlKXt0KGUpfX1mdW5jdGlvbiBhKGUpe3ZhciB0O2UuZG9uZT9yKGUudmFsdWUpOigodD1lLnZhbHVlKWluc3RhbmNlb2Ygcz90Om5ldyBzKGZ1bmN0aW9uKGUpe2UodCl9KSkudGhlbihuLGkpfWEoKGw9bC5hcHBseShlLG98fFtdKSkubmV4dCgpKX0pfTtjbGFzcyBYdCBleHRlbmRzIEx7Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKCksdGhpcy5fcmVnaXN0cnk9ZSx0aGlzLl9sYW5ndWFnZUlkPXQsdGhpcy5fZmFjdG9yeT1yLHRoaXMuX2lzRGlzcG9zZWQ9ITEsdGhpcy5fcmVzb2x2ZVByb21pc2U9bnVsbCx0aGlzLl9pc1Jlc29sdmVkPSExfWdldCBpc1Jlc29sdmVkKCl7cmV0dXJuIHRoaXMuX2lzUmVzb2x2ZWR9ZGlzcG9zZSgpe3RoaXMuX2lzRGlzcG9zZWQ9ITAsc3VwZXIuZGlzcG9zZSgpfXJlc29sdmUoKXtyZXR1cm4gWnQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLl9yZXNvbHZlUHJvbWlzZXx8KHRoaXMuX3Jlc29sdmVQcm9taXNlPXRoaXMuX2NyZWF0ZSgpKSx0aGlzLl9yZXNvbHZlUHJvbWlzZX0pfV9jcmVhdGUoKXtyZXR1cm4gWnQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3ZhciBlPXlpZWxkIFByb21pc2UucmVzb2x2ZSh0aGlzLl9mYWN0b3J5LmNyZWF0ZVRva2VuaXphdGlvblN1cHBvcnQoKSk7dGhpcy5faXNSZXNvbHZlZD0hMCxlJiYhdGhpcy5faXNEaXNwb3NlZCYmdGhpcy5fcmVnaXN0ZXIodGhpcy5fcmVnaXN0cnkucmVnaXN0ZXIodGhpcy5fbGFuZ3VhZ2VJZCxlKSl9KX19Y2xhc3MgaXtjb25zdHJ1Y3RvcihlLHQscil7dGhpcy5pZD1lLHRoaXMuZGVmaW5pdGlvbj10LHRoaXMuZGVzY3JpcHRpb249cixpLl9hbGxDb2RpY29ucy5wdXNoKHRoaXMpfWdldCBjbGFzc05hbWVzKCl7cmV0dXJuImNvZGljb24gY29kaWNvbi0iK3RoaXMuaWR9Z2V0IGNsYXNzTmFtZXNBcnJheSgpe3JldHVyblsiY29kaWNvbiIsImNvZGljb24tIit0aGlzLmlkXX1nZXQgY3NzU2VsZWN0b3IoKXtyZXR1cm4iLmNvZGljb24uY29kaWNvbi0iK3RoaXMuaWR9c3RhdGljIGdldEFsbCgpe3JldHVybiBpLl9hbGxDb2RpY29uc319aS5fYWxsQ29kaWNvbnM9W10saS5hZGQ9bmV3IGkoImFkZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2MCJ9KSxpLnBsdXM9bmV3IGkoInBsdXMiLGkuYWRkLmRlZmluaXRpb24pLGkuZ2lzdE5ldz1uZXcgaSgiZ2lzdC1uZXciLGkuYWRkLmRlZmluaXRpb24pLGkucmVwb0NyZWF0ZT1uZXcgaSgicmVwby1jcmVhdGUiLGkuYWRkLmRlZmluaXRpb24pLGkubGlnaHRidWxiPW5ldyBpKCJsaWdodGJ1bGIiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjEifSksaS5saWdodEJ1bGI9bmV3IGkoImxpZ2h0LWJ1bGIiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjEifSksaS5yZXBvPW5ldyBpKCJyZXBvIix7Zm9udENoYXJhY3RlcjoiXFxlYTYyIn0pLGkucmVwb0RlbGV0ZT1uZXcgaSgicmVwby1kZWxldGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjIifSksaS5naXN0Rm9yaz1uZXcgaSgiZ2lzdC1mb3JrIix7Zm9udENoYXJhY3RlcjoiXFxlYTYzIn0pLGkucmVwb0ZvcmtlZD1uZXcgaSgicmVwby1mb3JrZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjMifSksaS5naXRQdWxsUmVxdWVzdD1uZXcgaSgiZ2l0LXB1bGwtcmVxdWVzdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2NCJ9KSxpLmdpdFB1bGxSZXF1ZXN0QWJhbmRvbmVkPW5ldyBpKCJnaXQtcHVsbC1yZXF1ZXN0LWFiYW5kb25lZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2NCJ9KSxpLnJlY29yZEtleXM9bmV3IGkoInJlY29yZC1rZXlzIix7Zm9udENoYXJhY3RlcjoiXFxlYTY1In0pLGkua2V5Ym9hcmQ9bmV3IGkoImtleWJvYXJkIix7Zm9udENoYXJhY3RlcjoiXFxlYTY1In0pLGkudGFnPW5ldyBpKCJ0YWciLHtmb250Q2hhcmFjdGVyOiJcXGVhNjYifSksaS50YWdBZGQ9bmV3IGkoInRhZy1hZGQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjYifSksaS50YWdSZW1vdmU9bmV3IGkoInRhZy1yZW1vdmUiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjYifSksaS5wZXJzb249bmV3IGkoInBlcnNvbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2NyJ9KSxpLnBlcnNvbkZvbGxvdz1uZXcgaSgicGVyc29uLWZvbGxvdyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2NyJ9KSxpLnBlcnNvbk91dGxpbmU9bmV3IGkoInBlcnNvbi1vdXRsaW5lIix7Zm9udENoYXJhY3RlcjoiXFxlYTY3In0pLGkucGVyc29uRmlsbGVkPW5ldyBpKCJwZXJzb24tZmlsbGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYTY3In0pLGkuZ2l0QnJhbmNoPW5ldyBpKCJnaXQtYnJhbmNoIix7Zm9udENoYXJhY3RlcjoiXFxlYTY4In0pLGkuZ2l0QnJhbmNoQ3JlYXRlPW5ldyBpKCJnaXQtYnJhbmNoLWNyZWF0ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2OCJ9KSxpLmdpdEJyYW5jaERlbGV0ZT1uZXcgaSgiZ2l0LWJyYW5jaC1kZWxldGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjgifSksaS5zb3VyY2VDb250cm9sPW5ldyBpKCJzb3VyY2UtY29udHJvbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2OCJ9KSxpLm1pcnJvcj1uZXcgaSgibWlycm9yIix7Zm9udENoYXJhY3RlcjoiXFxlYTY5In0pLGkubWlycm9yUHVibGljPW5ldyBpKCJtaXJyb3ItcHVibGljIix7Zm9udENoYXJhY3RlcjoiXFxlYTY5In0pLGkuc3Rhcj1uZXcgaSgic3RhciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2YSJ9KSxpLnN0YXJBZGQ9bmV3IGkoInN0YXItYWRkIix7Zm9udENoYXJhY3RlcjoiXFxlYTZhIn0pLGkuc3RhckRlbGV0ZT1uZXcgaSgic3Rhci1kZWxldGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhNmEifSksaS5zdGFyRW1wdHk9bmV3IGkoInN0YXItZW1wdHkiLHtmb250Q2hhcmFjdGVyOiJcXGVhNmEifSksaS5jb21tZW50PW5ldyBpKCJjb21tZW50Iix7Zm9udENoYXJhY3RlcjoiXFxlYTZiIn0pLGkuY29tbWVudEFkZD1uZXcgaSgiY29tbWVudC1hZGQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNmIifSksaS5hbGVydD1uZXcgaSgiYWxlcnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNmMifSksaS53YXJuaW5nPW5ldyBpKCJ3YXJuaW5nIix7Zm9udENoYXJhY3RlcjoiXFxlYTZjIn0pLGkuc2VhcmNoPW5ldyBpKCJzZWFyY2giLHtmb250Q2hhcmFjdGVyOiJcXGVhNmQifSksaS5zZWFyY2hTYXZlPW5ldyBpKCJzZWFyY2gtc2F2ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2ZCJ9KSxpLmxvZ091dD1uZXcgaSgibG9nLW91dCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2ZSJ9KSxpLnNpZ25PdXQ9bmV3IGkoInNpZ24tb3V0Iix7Zm9udENoYXJhY3RlcjoiXFxlYTZlIn0pLGkubG9nSW49bmV3IGkoImxvZy1pbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2ZiJ9KSxpLnNpZ25Jbj1uZXcgaSgic2lnbi1pbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2ZiJ9KSxpLmV5ZT1uZXcgaSgiZXllIix7Zm9udENoYXJhY3RlcjoiXFxlYTcwIn0pLGkuZXllVW53YXRjaD1uZXcgaSgiZXllLXVud2F0Y2giLHtmb250Q2hhcmFjdGVyOiJcXGVhNzAifSksaS5leWVXYXRjaD1uZXcgaSgiZXllLXdhdGNoIix7Zm9udENoYXJhY3RlcjoiXFxlYTcwIn0pLGkuY2lyY2xlRmlsbGVkPW5ldyBpKCJjaXJjbGUtZmlsbGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYTcxIn0pLGkucHJpbWl0aXZlRG90PW5ldyBpKCJwcmltaXRpdmUtZG90Iix7Zm9udENoYXJhY3RlcjoiXFxlYTcxIn0pLGkuY2xvc2VEaXJ0eT1uZXcgaSgiY2xvc2UtZGlydHkiLHtmb250Q2hhcmFjdGVyOiJcXGVhNzEifSksaS5kZWJ1Z0JyZWFrcG9pbnQ9bmV3IGkoImRlYnVnLWJyZWFrcG9pbnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNzEifSksaS5kZWJ1Z0JyZWFrcG9pbnREaXNhYmxlZD1uZXcgaSgiZGVidWctYnJlYWtwb2ludC1kaXNhYmxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3MSJ9KSxpLmRlYnVnSGludD1uZXcgaSgiZGVidWctaGludCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3MSJ9KSxpLnByaW1pdGl2ZVNxdWFyZT1uZXcgaSgicHJpbWl0aXZlLXNxdWFyZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3MiJ9KSxpLmVkaXQ9bmV3IGkoImVkaXQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNzMifSksaS5wZW5jaWw9bmV3IGkoInBlbmNpbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3MyJ9KSxpLmluZm89bmV3IGkoImluZm8iLHtmb250Q2hhcmFjdGVyOiJcXGVhNzQifSksaS5pc3N1ZU9wZW5lZD1uZXcgaSgiaXNzdWUtb3BlbmVkIix7Zm9udENoYXJhY3RlcjoiXFxlYTc0In0pLGkuZ2lzdFByaXZhdGU9bmV3IGkoImdpc3QtcHJpdmF0ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NSJ9KSxpLmdpdEZvcmtQcml2YXRlPW5ldyBpKCJnaXQtZm9yay1wcml2YXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYTc1In0pLGkubG9jaz1uZXcgaSgibG9jayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NSJ9KSxpLm1pcnJvclByaXZhdGU9bmV3IGkoIm1pcnJvci1wcml2YXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYTc1In0pLGkuY2xvc2U9bmV3IGkoImNsb3NlIix7Zm9udENoYXJhY3RlcjoiXFxlYTc2In0pLGkucmVtb3ZlQ2xvc2U9bmV3IGkoInJlbW92ZS1jbG9zZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NiJ9KSxpLng9bmV3IGkoIngiLHtmb250Q2hhcmFjdGVyOiJcXGVhNzYifSksaS5yZXBvU3luYz1uZXcgaSgicmVwby1zeW5jIix7Zm9udENoYXJhY3RlcjoiXFxlYTc3In0pLGkuc3luYz1uZXcgaSgic3luYyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NyJ9KSxpLmNsb25lPW5ldyBpKCJjbG9uZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3OCJ9KSxpLmRlc2t0b3BEb3dubG9hZD1uZXcgaSgiZGVza3RvcC1kb3dubG9hZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3OCJ9KSxpLmJlYWtlcj1uZXcgaSgiYmVha2VyIix7Zm9udENoYXJhY3RlcjoiXFxlYTc5In0pLGkubWljcm9zY29wZT1uZXcgaSgibWljcm9zY29wZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3OSJ9KSxpLnZtPW5ldyBpKCJ2bSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3YSJ9KSxpLmRldmljZURlc2t0b3A9bmV3IGkoImRldmljZS1kZXNrdG9wIix7Zm9udENoYXJhY3RlcjoiXFxlYTdhIn0pLGkuZmlsZT1uZXcgaSgiZmlsZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3YiJ9KSxpLmZpbGVUZXh0PW5ldyBpKCJmaWxlLXRleHQiLHtmb250Q2hhcmFjdGVyOiJcXGVhN2IifSksaS5tb3JlPW5ldyBpKCJtb3JlIix7Zm9udENoYXJhY3RlcjoiXFxlYTdjIn0pLGkuZWxsaXBzaXM9bmV3IGkoImVsbGlwc2lzIix7Zm9udENoYXJhY3RlcjoiXFxlYTdjIn0pLGkua2ViYWJIb3Jpem9udGFsPW5ldyBpKCJrZWJhYi1ob3Jpem9udGFsIix7Zm9udENoYXJhY3RlcjoiXFxlYTdjIn0pLGkubWFpbFJlcGx5PW5ldyBpKCJtYWlsLXJlcGx5Iix7Zm9udENoYXJhY3RlcjoiXFxlYTdkIn0pLGkucmVwbHk9bmV3IGkoInJlcGx5Iix7Zm9udENoYXJhY3RlcjoiXFxlYTdkIn0pLGkub3JnYW5pemF0aW9uPW5ldyBpKCJvcmdhbml6YXRpb24iLHtmb250Q2hhcmFjdGVyOiJcXGVhN2UifSksaS5vcmdhbml6YXRpb25GaWxsZWQ9bmV3IGkoIm9yZ2FuaXphdGlvbi1maWxsZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhN2UifSksaS5vcmdhbml6YXRpb25PdXRsaW5lPW5ldyBpKCJvcmdhbml6YXRpb24tb3V0bGluZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3ZSJ9KSxpLm5ld0ZpbGU9bmV3IGkoIm5ldy1maWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYTdmIn0pLGkuZmlsZUFkZD1uZXcgaSgiZmlsZS1hZGQiLHtmb250Q2hhcmFjdGVyOiJcXGVhN2YifSksaS5uZXdGb2xkZXI9bmV3IGkoIm5ldy1mb2xkZXIiLHtmb250Q2hhcmFjdGVyOiJcXGVhODAifSksaS5maWxlRGlyZWN0b3J5Q3JlYXRlPW5ldyBpKCJmaWxlLWRpcmVjdG9yeS1jcmVhdGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhODAifSksaS50cmFzaD1uZXcgaSgidHJhc2giLHtmb250Q2hhcmFjdGVyOiJcXGVhODEifSksaS50cmFzaGNhbj1uZXcgaSgidHJhc2hjYW4iLHtmb250Q2hhcmFjdGVyOiJcXGVhODEifSksaS5oaXN0b3J5PW5ldyBpKCJoaXN0b3J5Iix7Zm9udENoYXJhY3RlcjoiXFxlYTgyIn0pLGkuY2xvY2s9bmV3IGkoImNsb2NrIix7Zm9udENoYXJhY3RlcjoiXFxlYTgyIn0pLGkuZm9sZGVyPW5ldyBpKCJmb2xkZXIiLHtmb250Q2hhcmFjdGVyOiJcXGVhODMifSksaS5maWxlRGlyZWN0b3J5PW5ldyBpKCJmaWxlLWRpcmVjdG9yeSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4MyJ9KSxpLnN5bWJvbEZvbGRlcj1uZXcgaSgic3ltYm9sLWZvbGRlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4MyJ9KSxpLmxvZ29HaXRodWI9bmV3IGkoImxvZ28tZ2l0aHViIix7Zm9udENoYXJhY3RlcjoiXFxlYTg0In0pLGkubWFya0dpdGh1Yj1uZXcgaSgibWFyay1naXRodWIiLHtmb250Q2hhcmFjdGVyOiJcXGVhODQifSksaS5naXRodWI9bmV3IGkoImdpdGh1YiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4NCJ9KSxpLnRlcm1pbmFsPW5ldyBpKCJ0ZXJtaW5hbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4NSJ9KSxpLmNvbnNvbGU9bmV3IGkoImNvbnNvbGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhODUifSksaS5yZXBsPW5ldyBpKCJyZXBsIix7Zm9udENoYXJhY3RlcjoiXFxlYTg1In0pLGkuemFwPW5ldyBpKCJ6YXAiLHtmb250Q2hhcmFjdGVyOiJcXGVhODYifSksaS5zeW1ib2xFdmVudD1uZXcgaSgic3ltYm9sLWV2ZW50Iix7Zm9udENoYXJhY3RlcjoiXFxlYTg2In0pLGkuZXJyb3I9bmV3IGkoImVycm9yIix7Zm9udENoYXJhY3RlcjoiXFxlYTg3In0pLGkuc3RvcD1uZXcgaSgic3RvcCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4NyJ9KSxpLnZhcmlhYmxlPW5ldyBpKCJ2YXJpYWJsZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4OCJ9KSxpLnN5bWJvbFZhcmlhYmxlPW5ldyBpKCJzeW1ib2wtdmFyaWFibGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhODgifSksaS5hcnJheT1uZXcgaSgiYXJyYXkiLHtmb250Q2hhcmFjdGVyOiJcXGVhOGEifSksaS5zeW1ib2xBcnJheT1uZXcgaSgic3ltYm9sLWFycmF5Iix7Zm9udENoYXJhY3RlcjoiXFxlYThhIn0pLGkuc3ltYm9sTW9kdWxlPW5ldyBpKCJzeW1ib2wtbW9kdWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYThiIn0pLGkuc3ltYm9sUGFja2FnZT1uZXcgaSgic3ltYm9sLXBhY2thZ2UiLHtmb250Q2hhcmFjdGVyOiJcXGVhOGIifSksaS5zeW1ib2xOYW1lc3BhY2U9bmV3IGkoInN5bWJvbC1uYW1lc3BhY2UiLHtmb250Q2hhcmFjdGVyOiJcXGVhOGIifSksaS5zeW1ib2xPYmplY3Q9bmV3IGkoInN5bWJvbC1vYmplY3QiLHtmb250Q2hhcmFjdGVyOiJcXGVhOGIifSksaS5zeW1ib2xNZXRob2Q9bmV3IGkoInN5bWJvbC1tZXRob2QiLHtmb250Q2hhcmFjdGVyOiJcXGVhOGMifSksaS5zeW1ib2xGdW5jdGlvbj1uZXcgaSgic3ltYm9sLWZ1bmN0aW9uIix7Zm9udENoYXJhY3RlcjoiXFxlYThjIn0pLGkuc3ltYm9sQ29uc3RydWN0b3I9bmV3IGkoInN5bWJvbC1jb25zdHJ1Y3RvciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4YyJ9KSxpLnN5bWJvbEJvb2xlYW49bmV3IGkoInN5bWJvbC1ib29sZWFuIix7Zm9udENoYXJhY3RlcjoiXFxlYThmIn0pLGkuc3ltYm9sTnVsbD1uZXcgaSgic3ltYm9sLW51bGwiLHtmb250Q2hhcmFjdGVyOiJcXGVhOGYifSksaS5zeW1ib2xOdW1lcmljPW5ldyBpKCJzeW1ib2wtbnVtZXJpYyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MCJ9KSxpLnN5bWJvbE51bWJlcj1uZXcgaSgic3ltYm9sLW51bWJlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MCJ9KSxpLnN5bWJvbFN0cnVjdHVyZT1uZXcgaSgic3ltYm9sLXN0cnVjdHVyZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MSJ9KSxpLnN5bWJvbFN0cnVjdD1uZXcgaSgic3ltYm9sLXN0cnVjdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MSJ9KSxpLnN5bWJvbFBhcmFtZXRlcj1uZXcgaSgic3ltYm9sLXBhcmFtZXRlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MiJ9KSxpLnN5bWJvbFR5cGVQYXJhbWV0ZXI9bmV3IGkoInN5bWJvbC10eXBlLXBhcmFtZXRlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MiJ9KSxpLnN5bWJvbEtleT1uZXcgaSgic3ltYm9sLWtleSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MyJ9KSxpLnN5bWJvbFRleHQ9bmV3IGkoInN5bWJvbC10ZXh0Iix7Zm9udENoYXJhY3RlcjoiXFxlYTkzIn0pLGkuc3ltYm9sUmVmZXJlbmNlPW5ldyBpKCJzeW1ib2wtcmVmZXJlbmNlIix7Zm9udENoYXJhY3RlcjoiXFxlYTk0In0pLGkuZ29Ub0ZpbGU9bmV3IGkoImdvLXRvLWZpbGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTQifSksaS5zeW1ib2xFbnVtPW5ldyBpKCJzeW1ib2wtZW51bSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5NSJ9KSxpLnN5bWJvbFZhbHVlPW5ldyBpKCJzeW1ib2wtdmFsdWUiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTUifSksaS5zeW1ib2xSdWxlcj1uZXcgaSgic3ltYm9sLXJ1bGVyIix7Zm9udENoYXJhY3RlcjoiXFxlYTk2In0pLGkuc3ltYm9sVW5pdD1uZXcgaSgic3ltYm9sLXVuaXQiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTYifSksaS5hY3RpdmF0ZUJyZWFrcG9pbnRzPW5ldyBpKCJhY3RpdmF0ZS1icmVha3BvaW50cyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5NyJ9KSxpLmFyY2hpdmU9bmV3IGkoImFyY2hpdmUiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTgifSksaS5hcnJvd0JvdGg9bmV3IGkoImFycm93LWJvdGgiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTkifSksaS5hcnJvd0Rvd249bmV3IGkoImFycm93LWRvd24iLHtmb250Q2hhcmFjdGVyOiJcXGVhOWEifSksaS5hcnJvd0xlZnQ9bmV3IGkoImFycm93LWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhOWIifSksaS5hcnJvd1JpZ2h0PW5ldyBpKCJhcnJvdy1yaWdodCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5YyJ9KSxpLmFycm93U21hbGxEb3duPW5ldyBpKCJhcnJvdy1zbWFsbC1kb3duIix7Zm9udENoYXJhY3RlcjoiXFxlYTlkIn0pLGkuYXJyb3dTbWFsbExlZnQ9bmV3IGkoImFycm93LXNtYWxsLWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhOWUifSksaS5hcnJvd1NtYWxsUmlnaHQ9bmV3IGkoImFycm93LXNtYWxsLXJpZ2h0Iix7Zm9udENoYXJhY3RlcjoiXFxlYTlmIn0pLGkuYXJyb3dTbWFsbFVwPW5ldyBpKCJhcnJvdy1zbWFsbC11cCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhMCJ9KSxpLmFycm93VXA9bmV3IGkoImFycm93LXVwIix7Zm9udENoYXJhY3RlcjoiXFxlYWExIn0pLGkuYmVsbD1uZXcgaSgiYmVsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhMiJ9KSxpLmJvbGQ9bmV3IGkoImJvbGQiLHtmb250Q2hhcmFjdGVyOiJcXGVhYTMifSksaS5ib29rPW5ldyBpKCJib29rIix7Zm9udENoYXJhY3RlcjoiXFxlYWE0In0pLGkuYm9va21hcms9bmV3IGkoImJvb2ttYXJrIix7Zm9udENoYXJhY3RlcjoiXFxlYWE1In0pLGkuZGVidWdCcmVha3BvaW50Q29uZGl0aW9uYWxVbnZlcmlmaWVkPW5ldyBpKCJkZWJ1Zy1icmVha3BvaW50LWNvbmRpdGlvbmFsLXVudmVyaWZpZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhYTYifSksaS5kZWJ1Z0JyZWFrcG9pbnRDb25kaXRpb25hbD1uZXcgaSgiZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhNyJ9KSxpLmRlYnVnQnJlYWtwb2ludENvbmRpdGlvbmFsRGlzYWJsZWQ9bmV3IGkoImRlYnVnLWJyZWFrcG9pbnQtY29uZGl0aW9uYWwtZGlzYWJsZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhYTcifSksaS5kZWJ1Z0JyZWFrcG9pbnREYXRhVW52ZXJpZmllZD1uZXcgaSgiZGVidWctYnJlYWtwb2ludC1kYXRhLXVudmVyaWZpZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhYTgifSksaS5kZWJ1Z0JyZWFrcG9pbnREYXRhPW5ldyBpKCJkZWJ1Zy1icmVha3BvaW50LWRhdGEiLHtmb250Q2hhcmFjdGVyOiJcXGVhYTkifSksaS5kZWJ1Z0JyZWFrcG9pbnREYXRhRGlzYWJsZWQ9bmV3IGkoImRlYnVnLWJyZWFrcG9pbnQtZGF0YS1kaXNhYmxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhOSJ9KSxpLmRlYnVnQnJlYWtwb2ludExvZ1VudmVyaWZpZWQ9bmV3IGkoImRlYnVnLWJyZWFrcG9pbnQtbG9nLXVudmVyaWZpZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhYWEifSksaS5kZWJ1Z0JyZWFrcG9pbnRMb2c9bmV3IGkoImRlYnVnLWJyZWFrcG9pbnQtbG9nIix7Zm9udENoYXJhY3RlcjoiXFxlYWFiIn0pLGkuZGVidWdCcmVha3BvaW50TG9nRGlzYWJsZWQ9bmV3IGkoImRlYnVnLWJyZWFrcG9pbnQtbG9nLWRpc2FibGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYWFiIn0pLGkuYnJpZWZjYXNlPW5ldyBpKCJicmllZmNhc2UiLHtmb250Q2hhcmFjdGVyOiJcXGVhYWMifSksaS5icm9hZGNhc3Q9bmV3IGkoImJyb2FkY2FzdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhZCJ9KSxpLmJyb3dzZXI9bmV3IGkoImJyb3dzZXIiLHtmb250Q2hhcmFjdGVyOiJcXGVhYWUifSksaS5idWc9bmV3IGkoImJ1ZyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhZiJ9KSxpLmNhbGVuZGFyPW5ldyBpKCJjYWxlbmRhciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFiMCJ9KSxpLmNhc2VTZW5zaXRpdmU9bmV3IGkoImNhc2Utc2Vuc2l0aXZlIix7Zm9udENoYXJhY3RlcjoiXFxlYWIxIn0pLGkuY2hlY2s9bmV3IGkoImNoZWNrIix7Zm9udENoYXJhY3RlcjoiXFxlYWIyIn0pLGkuY2hlY2tsaXN0PW5ldyBpKCJjaGVja2xpc3QiLHtmb250Q2hhcmFjdGVyOiJcXGVhYjMifSksaS5jaGV2cm9uRG93bj1uZXcgaSgiY2hldnJvbi1kb3duIix7Zm9udENoYXJhY3RlcjoiXFxlYWI0In0pLGkuZHJvcERvd25CdXR0b249bmV3IGkoImRyb3AtZG93bi1idXR0b24iLGkuY2hldnJvbkRvd24uZGVmaW5pdGlvbiksaS5jaGV2cm9uTGVmdD1uZXcgaSgiY2hldnJvbi1sZWZ0Iix7Zm9udENoYXJhY3RlcjoiXFxlYWI1In0pLGkuY2hldnJvblJpZ2h0PW5ldyBpKCJjaGV2cm9uLXJpZ2h0Iix7Zm9udENoYXJhY3RlcjoiXFxlYWI2In0pLGkuY2hldnJvblVwPW5ldyBpKCJjaGV2cm9uLXVwIix7Zm9udENoYXJhY3RlcjoiXFxlYWI3In0pLGkuY2hyb21lQ2xvc2U9bmV3IGkoImNocm9tZS1jbG9zZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFiOCJ9KSxpLmNocm9tZU1heGltaXplPW5ldyBpKCJjaHJvbWUtbWF4aW1pemUiLHtmb250Q2hhcmFjdGVyOiJcXGVhYjkifSksaS5jaHJvbWVNaW5pbWl6ZT1uZXcgaSgiY2hyb21lLW1pbmltaXplIix7Zm9udENoYXJhY3RlcjoiXFxlYWJhIn0pLGkuY2hyb21lUmVzdG9yZT1uZXcgaSgiY2hyb21lLXJlc3RvcmUiLHtmb250Q2hhcmFjdGVyOiJcXGVhYmIifSksaS5jaXJjbGVPdXRsaW5lPW5ldyBpKCJjaXJjbGUtb3V0bGluZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFiYyJ9KSxpLmRlYnVnQnJlYWtwb2ludFVudmVyaWZpZWQ9bmV3IGkoImRlYnVnLWJyZWFrcG9pbnQtdW52ZXJpZmllZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFiYyJ9KSxpLmNpcmNsZVNsYXNoPW5ldyBpKCJjaXJjbGUtc2xhc2giLHtmb250Q2hhcmFjdGVyOiJcXGVhYmQifSksaS5jaXJjdWl0Qm9hcmQ9bmV3IGkoImNpcmN1aXQtYm9hcmQiLHtmb250Q2hhcmFjdGVyOiJcXGVhYmUifSksaS5jbGVhckFsbD1uZXcgaSgiY2xlYXItYWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYWJmIn0pLGkuY2xpcHB5PW5ldyBpKCJjbGlwcHkiLHtmb250Q2hhcmFjdGVyOiJcXGVhYzAifSksaS5jbG9zZUFsbD1uZXcgaSgiY2xvc2UtYWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYWMxIn0pLGkuY2xvdWREb3dubG9hZD1uZXcgaSgiY2xvdWQtZG93bmxvYWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhYzIifSksaS5jbG91ZFVwbG9hZD1uZXcgaSgiY2xvdWQtdXBsb2FkIix7Zm9udENoYXJhY3RlcjoiXFxlYWMzIn0pLGkuY29kZT1uZXcgaSgiY29kZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFjNCJ9KSxpLmNvbGxhcHNlQWxsPW5ldyBpKCJjb2xsYXBzZS1hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGVhYzUifSksaS5jb2xvck1vZGU9bmV3IGkoImNvbG9yLW1vZGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhYzYifSksaS5jb21tZW50RGlzY3Vzc2lvbj1uZXcgaSgiY29tbWVudC1kaXNjdXNzaW9uIix7Zm9udENoYXJhY3RlcjoiXFxlYWM3In0pLGkuY29tcGFyZUNoYW5nZXM9bmV3IGkoImNvbXBhcmUtY2hhbmdlcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFmZCJ9KSxpLmNyZWRpdENhcmQ9bmV3IGkoImNyZWRpdC1jYXJkIix7Zm9udENoYXJhY3RlcjoiXFxlYWM5In0pLGkuZGFzaD1uZXcgaSgiZGFzaCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFjYyJ9KSxpLmRhc2hib2FyZD1uZXcgaSgiZGFzaGJvYXJkIix7Zm9udENoYXJhY3RlcjoiXFxlYWNkIn0pLGkuZGF0YWJhc2U9bmV3IGkoImRhdGFiYXNlIix7Zm9udENoYXJhY3RlcjoiXFxlYWNlIn0pLGkuZGVidWdDb250aW51ZT1uZXcgaSgiZGVidWctY29udGludWUiLHtmb250Q2hhcmFjdGVyOiJcXGVhY2YifSksaS5kZWJ1Z0Rpc2Nvbm5lY3Q9bmV3IGkoImRlYnVnLWRpc2Nvbm5lY3QiLHtmb250Q2hhcmFjdGVyOiJcXGVhZDAifSksaS5kZWJ1Z1BhdXNlPW5ldyBpKCJkZWJ1Zy1wYXVzZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkMSJ9KSxpLmRlYnVnUmVzdGFydD1uZXcgaSgiZGVidWctcmVzdGFydCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkMiJ9KSxpLmRlYnVnU3RhcnQ9bmV3IGkoImRlYnVnLXN0YXJ0Iix7Zm9udENoYXJhY3RlcjoiXFxlYWQzIn0pLGkuZGVidWdTdGVwSW50bz1uZXcgaSgiZGVidWctc3RlcC1pbnRvIix7Zm9udENoYXJhY3RlcjoiXFxlYWQ0In0pLGkuZGVidWdTdGVwT3V0PW5ldyBpKCJkZWJ1Zy1zdGVwLW91dCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkNSJ9KSxpLmRlYnVnU3RlcE92ZXI9bmV3IGkoImRlYnVnLXN0ZXAtb3ZlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkNiJ9KSxpLmRlYnVnU3RvcD1uZXcgaSgiZGVidWctc3RvcCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkNyJ9KSxpLmRlYnVnPW5ldyBpKCJkZWJ1ZyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkOCJ9KSxpLmRldmljZUNhbWVyYVZpZGVvPW5ldyBpKCJkZXZpY2UtY2FtZXJhLXZpZGVvIix7Zm9udENoYXJhY3RlcjoiXFxlYWQ5In0pLGkuZGV2aWNlQ2FtZXJhPW5ldyBpKCJkZXZpY2UtY2FtZXJhIix7Zm9udENoYXJhY3RlcjoiXFxlYWRhIn0pLGkuZGV2aWNlTW9iaWxlPW5ldyBpKCJkZXZpY2UtbW9iaWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYWRiIn0pLGkuZGlmZkFkZGVkPW5ldyBpKCJkaWZmLWFkZGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYWRjIn0pLGkuZGlmZklnbm9yZWQ9bmV3IGkoImRpZmYtaWdub3JlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkZCJ9KSxpLmRpZmZNb2RpZmllZD1uZXcgaSgiZGlmZi1tb2RpZmllZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkZSJ9KSxpLmRpZmZSZW1vdmVkPW5ldyBpKCJkaWZmLXJlbW92ZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZGYifSksaS5kaWZmUmVuYW1lZD1uZXcgaSgiZGlmZi1yZW5hbWVkIix7Zm9udENoYXJhY3RlcjoiXFxlYWUwIn0pLGkuZGlmZj1uZXcgaSgiZGlmZiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFlMSJ9KSxpLmRpc2NhcmQ9bmV3IGkoImRpc2NhcmQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZTIifSksaS5lZGl0b3JMYXlvdXQ9bmV3IGkoImVkaXRvci1sYXlvdXQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZTMifSksaS5lbXB0eVdpbmRvdz1uZXcgaSgiZW1wdHktd2luZG93Iix7Zm9udENoYXJhY3RlcjoiXFxlYWU0In0pLGkuZXhjbHVkZT1uZXcgaSgiZXhjbHVkZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFlNSJ9KSxpLmV4dGVuc2lvbnM9bmV3IGkoImV4dGVuc2lvbnMiLHtmb250Q2hhcmFjdGVyOiJcXGVhZTYifSksaS5leWVDbG9zZWQ9bmV3IGkoImV5ZS1jbG9zZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZTcifSksaS5maWxlQmluYXJ5PW5ldyBpKCJmaWxlLWJpbmFyeSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFlOCJ9KSxpLmZpbGVDb2RlPW5ldyBpKCJmaWxlLWNvZGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhZTkifSksaS5maWxlTWVkaWE9bmV3IGkoImZpbGUtbWVkaWEiLHtmb250Q2hhcmFjdGVyOiJcXGVhZWEifSksaS5maWxlUGRmPW5ldyBpKCJmaWxlLXBkZiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFlYiJ9KSxpLmZpbGVTdWJtb2R1bGU9bmV3IGkoImZpbGUtc3VibW9kdWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYWVjIn0pLGkuZmlsZVN5bWxpbmtEaXJlY3Rvcnk9bmV3IGkoImZpbGUtc3ltbGluay1kaXJlY3RvcnkiLHtmb250Q2hhcmFjdGVyOiJcXGVhZWQifSksaS5maWxlU3ltbGlua0ZpbGU9bmV3IGkoImZpbGUtc3ltbGluay1maWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYWVlIn0pLGkuZmlsZVppcD1uZXcgaSgiZmlsZS16aXAiLHtmb250Q2hhcmFjdGVyOiJcXGVhZWYifSksaS5maWxlcz1uZXcgaSgiZmlsZXMiLHtmb250Q2hhcmFjdGVyOiJcXGVhZjAifSksaS5maWx0ZXI9bmV3IGkoImZpbHRlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFmMSJ9KSxpLmZsYW1lPW5ldyBpKCJmbGFtZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFmMiJ9KSxpLmZvbGREb3duPW5ldyBpKCJmb2xkLWRvd24iLHtmb250Q2hhcmFjdGVyOiJcXGVhZjMifSksaS5mb2xkVXA9bmV3IGkoImZvbGQtdXAiLHtmb250Q2hhcmFjdGVyOiJcXGVhZjQifSksaS5mb2xkPW5ldyBpKCJmb2xkIix7Zm9udENoYXJhY3RlcjoiXFxlYWY1In0pLGkuZm9sZGVyQWN0aXZlPW5ldyBpKCJmb2xkZXItYWN0aXZlIix7Zm9udENoYXJhY3RlcjoiXFxlYWY2In0pLGkuZm9sZGVyT3BlbmVkPW5ldyBpKCJmb2xkZXItb3BlbmVkIix7Zm9udENoYXJhY3RlcjoiXFxlYWY3In0pLGkuZ2Vhcj1uZXcgaSgiZ2VhciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFmOCJ9KSxpLmdpZnQ9bmV3IGkoImdpZnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZjkifSksaS5naXN0U2VjcmV0PW5ldyBpKCJnaXN0LXNlY3JldCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFmYSJ9KSxpLmdpc3Q9bmV3IGkoImdpc3QiLHtmb250Q2hhcmFjdGVyOiJcXGVhZmIifSksaS5naXRDb21taXQ9bmV3IGkoImdpdC1jb21taXQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZmMifSksaS5naXRDb21wYXJlPW5ldyBpKCJnaXQtY29tcGFyZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFmZCJ9KSxpLmdpdE1lcmdlPW5ldyBpKCJnaXQtbWVyZ2UiLHtmb250Q2hhcmFjdGVyOiJcXGVhZmUifSksaS5naXRodWJBY3Rpb249bmV3IGkoImdpdGh1Yi1hY3Rpb24iLHtmb250Q2hhcmFjdGVyOiJcXGVhZmYifSksaS5naXRodWJBbHQ9bmV3IGkoImdpdGh1Yi1hbHQiLHtmb250Q2hhcmFjdGVyOiJcXGViMDAifSksaS5nbG9iZT1uZXcgaSgiZ2xvYmUiLHtmb250Q2hhcmFjdGVyOiJcXGViMDEifSksaS5ncmFiYmVyPW5ldyBpKCJncmFiYmVyIix7Zm9udENoYXJhY3RlcjoiXFxlYjAyIn0pLGkuZ3JhcGg9bmV3IGkoImdyYXBoIix7Zm9udENoYXJhY3RlcjoiXFxlYjAzIn0pLGkuZ3JpcHBlcj1uZXcgaSgiZ3JpcHBlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIwNCJ9KSxpLmhlYXJ0PW5ldyBpKCJoZWFydCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIwNSJ9KSxpLmhvbWU9bmV3IGkoImhvbWUiLHtmb250Q2hhcmFjdGVyOiJcXGViMDYifSksaS5ob3Jpem9udGFsUnVsZT1uZXcgaSgiaG9yaXpvbnRhbC1ydWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYjA3In0pLGkuaHVib3Q9bmV3IGkoImh1Ym90Iix7Zm9udENoYXJhY3RlcjoiXFxlYjA4In0pLGkuaW5ib3g9bmV3IGkoImluYm94Iix7Zm9udENoYXJhY3RlcjoiXFxlYjA5In0pLGkuaXNzdWVDbG9zZWQ9bmV3IGkoImlzc3VlLWNsb3NlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhNCJ9KSxpLmlzc3VlUmVvcGVuZWQ9bmV3IGkoImlzc3VlLXJlb3BlbmVkIix7Zm9udENoYXJhY3RlcjoiXFxlYjBiIn0pLGkuaXNzdWVzPW5ldyBpKCJpc3N1ZXMiLHtmb250Q2hhcmFjdGVyOiJcXGViMGMifSksaS5pdGFsaWM9bmV3IGkoIml0YWxpYyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIwZCJ9KSxpLmplcnNleT1uZXcgaSgiamVyc2V5Iix7Zm9udENoYXJhY3RlcjoiXFxlYjBlIn0pLGkuanNvbj1uZXcgaSgianNvbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIwZiJ9KSxpLmtlYmFiVmVydGljYWw9bmV3IGkoImtlYmFiLXZlcnRpY2FsIix7Zm9udENoYXJhY3RlcjoiXFxlYjEwIn0pLGkua2V5PW5ldyBpKCJrZXkiLHtmb250Q2hhcmFjdGVyOiJcXGViMTEifSksaS5sYXc9bmV3IGkoImxhdyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxMiJ9KSxpLmxpZ2h0YnVsYkF1dG9maXg9bmV3IGkoImxpZ2h0YnVsYi1hdXRvZml4Iix7Zm9udENoYXJhY3RlcjoiXFxlYjEzIn0pLGkubGlua0V4dGVybmFsPW5ldyBpKCJsaW5rLWV4dGVybmFsIix7Zm9udENoYXJhY3RlcjoiXFxlYjE0In0pLGkubGluaz1uZXcgaSgibGluayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxNSJ9KSxpLmxpc3RPcmRlcmVkPW5ldyBpKCJsaXN0LW9yZGVyZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViMTYifSksaS5saXN0VW5vcmRlcmVkPW5ldyBpKCJsaXN0LXVub3JkZXJlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxNyJ9KSxpLmxpdmVTaGFyZT1uZXcgaSgibGl2ZS1zaGFyZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxOCJ9KSxpLmxvYWRpbmc9bmV3IGkoImxvYWRpbmciLHtmb250Q2hhcmFjdGVyOiJcXGViMTkifSksaS5sb2NhdGlvbj1uZXcgaSgibG9jYXRpb24iLHtmb250Q2hhcmFjdGVyOiJcXGViMWEifSksaS5tYWlsUmVhZD1uZXcgaSgibWFpbC1yZWFkIix7Zm9udENoYXJhY3RlcjoiXFxlYjFiIn0pLGkubWFpbD1uZXcgaSgibWFpbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxYyJ9KSxpLm1hcmtkb3duPW5ldyBpKCJtYXJrZG93biIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxZCJ9KSxpLm1lZ2FwaG9uZT1uZXcgaSgibWVnYXBob25lIix7Zm9udENoYXJhY3RlcjoiXFxlYjFlIn0pLGkubWVudGlvbj1uZXcgaSgibWVudGlvbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxZiJ9KSxpLm1pbGVzdG9uZT1uZXcgaSgibWlsZXN0b25lIix7Zm9udENoYXJhY3RlcjoiXFxlYjIwIn0pLGkubW9ydGFyQm9hcmQ9bmV3IGkoIm1vcnRhci1ib2FyZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyMSJ9KSxpLm1vdmU9bmV3IGkoIm1vdmUiLHtmb250Q2hhcmFjdGVyOiJcXGViMjIifSksaS5tdWx0aXBsZVdpbmRvd3M9bmV3IGkoIm11bHRpcGxlLXdpbmRvd3MiLHtmb250Q2hhcmFjdGVyOiJcXGViMjMifSksaS5tdXRlPW5ldyBpKCJtdXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYjI0In0pLGkubm9OZXdsaW5lPW5ldyBpKCJuby1uZXdsaW5lIix7Zm9udENoYXJhY3RlcjoiXFxlYjI1In0pLGkubm90ZT1uZXcgaSgibm90ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyNiJ9KSxpLm9jdG9mYWNlPW5ldyBpKCJvY3RvZmFjZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyNyJ9KSxpLm9wZW5QcmV2aWV3PW5ldyBpKCJvcGVuLXByZXZpZXciLHtmb250Q2hhcmFjdGVyOiJcXGViMjgifSksaS5wYWNrYWdlXz1uZXcgaSgicGFja2FnZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyOSJ9KSxpLnBhaW50Y2FuPW5ldyBpKCJwYWludGNhbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyYSJ9KSxpLnBpbj1uZXcgaSgicGluIix7Zm9udENoYXJhY3RlcjoiXFxlYjJiIn0pLGkucGxheT1uZXcgaSgicGxheSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyYyJ9KSxpLnJ1bj1uZXcgaSgicnVuIix7Zm9udENoYXJhY3RlcjoiXFxlYjJjIn0pLGkucGx1Zz1uZXcgaSgicGx1ZyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyZCJ9KSxpLnByZXNlcnZlQ2FzZT1uZXcgaSgicHJlc2VydmUtY2FzZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyZSJ9KSxpLnByZXZpZXc9bmV3IGkoInByZXZpZXciLHtmb250Q2hhcmFjdGVyOiJcXGViMmYifSksaS5wcm9qZWN0PW5ldyBpKCJwcm9qZWN0Iix7Zm9udENoYXJhY3RlcjoiXFxlYjMwIn0pLGkucHVsc2U9bmV3IGkoInB1bHNlIix7Zm9udENoYXJhY3RlcjoiXFxlYjMxIn0pLGkucXVlc3Rpb249bmV3IGkoInF1ZXN0aW9uIix7Zm9udENoYXJhY3RlcjoiXFxlYjMyIn0pLGkucXVvdGU9bmV3IGkoInF1b3RlIix7Zm9udENoYXJhY3RlcjoiXFxlYjMzIn0pLGkucmFkaW9Ub3dlcj1uZXcgaSgicmFkaW8tdG93ZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViMzQifSksaS5yZWFjdGlvbnM9bmV3IGkoInJlYWN0aW9ucyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIzNSJ9KSxpLnJlZmVyZW5jZXM9bmV3IGkoInJlZmVyZW5jZXMiLHtmb250Q2hhcmFjdGVyOiJcXGViMzYifSksaS5yZWZyZXNoPW5ldyBpKCJyZWZyZXNoIix7Zm9udENoYXJhY3RlcjoiXFxlYjM3In0pLGkucmVnZXg9bmV3IGkoInJlZ2V4Iix7Zm9udENoYXJhY3RlcjoiXFxlYjM4In0pLGkucmVtb3RlRXhwbG9yZXI9bmV3IGkoInJlbW90ZS1leHBsb3JlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIzOSJ9KSxpLnJlbW90ZT1uZXcgaSgicmVtb3RlIix7Zm9udENoYXJhY3RlcjoiXFxlYjNhIn0pLGkucmVtb3ZlPW5ldyBpKCJyZW1vdmUiLHtmb250Q2hhcmFjdGVyOiJcXGViM2IifSksaS5yZXBsYWNlQWxsPW5ldyBpKCJyZXBsYWNlLWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIzYyJ9KSxpLnJlcGxhY2U9bmV3IGkoInJlcGxhY2UiLHtmb250Q2hhcmFjdGVyOiJcXGViM2QifSksaS5yZXBvQ2xvbmU9bmV3IGkoInJlcG8tY2xvbmUiLHtmb250Q2hhcmFjdGVyOiJcXGViM2UifSksaS5yZXBvRm9yY2VQdXNoPW5ldyBpKCJyZXBvLWZvcmNlLXB1c2giLHtmb250Q2hhcmFjdGVyOiJcXGViM2YifSksaS5yZXBvUHVsbD1uZXcgaSgicmVwby1wdWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYjQwIn0pLGkucmVwb1B1c2g9bmV3IGkoInJlcG8tcHVzaCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0MSJ9KSxpLnJlcG9ydD1uZXcgaSgicmVwb3J0Iix7Zm9udENoYXJhY3RlcjoiXFxlYjQyIn0pLGkucmVxdWVzdENoYW5nZXM9bmV3IGkoInJlcXVlc3QtY2hhbmdlcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0MyJ9KSxpLnJvY2tldD1uZXcgaSgicm9ja2V0Iix7Zm9udENoYXJhY3RlcjoiXFxlYjQ0In0pLGkucm9vdEZvbGRlck9wZW5lZD1uZXcgaSgicm9vdC1mb2xkZXItb3BlbmVkIix7Zm9udENoYXJhY3RlcjoiXFxlYjQ1In0pLGkucm9vdEZvbGRlcj1uZXcgaSgicm9vdC1mb2xkZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViNDYifSksaS5yc3M9bmV3IGkoInJzcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0NyJ9KSxpLnJ1Ynk9bmV3IGkoInJ1YnkiLHtmb250Q2hhcmFjdGVyOiJcXGViNDgifSksaS5zYXZlQWxsPW5ldyBpKCJzYXZlLWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0OSJ9KSxpLnNhdmVBcz1uZXcgaSgic2F2ZS1hcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0YSJ9KSxpLnNhdmU9bmV3IGkoInNhdmUiLHtmb250Q2hhcmFjdGVyOiJcXGViNGIifSksaS5zY3JlZW5GdWxsPW5ldyBpKCJzY3JlZW4tZnVsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0YyJ9KSxpLnNjcmVlbk5vcm1hbD1uZXcgaSgic2NyZWVuLW5vcm1hbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0ZCJ9KSxpLnNlYXJjaFN0b3A9bmV3IGkoInNlYXJjaC1zdG9wIix7Zm9udENoYXJhY3RlcjoiXFxlYjRlIn0pLGkuc2VydmVyPW5ldyBpKCJzZXJ2ZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViNTAifSksaS5zZXR0aW5nc0dlYXI9bmV3IGkoInNldHRpbmdzLWdlYXIiLHtmb250Q2hhcmFjdGVyOiJcXGViNTEifSksaS5zZXR0aW5ncz1uZXcgaSgic2V0dGluZ3MiLHtmb250Q2hhcmFjdGVyOiJcXGViNTIifSksaS5zaGllbGQ9bmV3IGkoInNoaWVsZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1MyJ9KSxpLnNtaWxleT1uZXcgaSgic21pbGV5Iix7Zm9udENoYXJhY3RlcjoiXFxlYjU0In0pLGkuc29ydFByZWNlZGVuY2U9bmV3IGkoInNvcnQtcHJlY2VkZW5jZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1NSJ9KSxpLnNwbGl0SG9yaXpvbnRhbD1uZXcgaSgic3BsaXQtaG9yaXpvbnRhbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1NiJ9KSxpLnNwbGl0VmVydGljYWw9bmV3IGkoInNwbGl0LXZlcnRpY2FsIix7Zm9udENoYXJhY3RlcjoiXFxlYjU3In0pLGkuc3F1aXJyZWw9bmV3IGkoInNxdWlycmVsIix7Zm9udENoYXJhY3RlcjoiXFxlYjU4In0pLGkuc3RhckZ1bGw9bmV3IGkoInN0YXItZnVsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1OSJ9KSxpLnN0YXJIYWxmPW5ldyBpKCJzdGFyLWhhbGYiLHtmb250Q2hhcmFjdGVyOiJcXGViNWEifSksaS5zeW1ib2xDbGFzcz1uZXcgaSgic3ltYm9sLWNsYXNzIix7Zm9udENoYXJhY3RlcjoiXFxlYjViIn0pLGkuc3ltYm9sQ29sb3I9bmV3IGkoInN5bWJvbC1jb2xvciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1YyJ9KSxpLnN5bWJvbEN1c3RvbUNvbG9yPW5ldyBpKCJzeW1ib2wtY3VzdG9tY29sb3IiLHtmb250Q2hhcmFjdGVyOiJcXGViNWMifSksaS5zeW1ib2xDb25zdGFudD1uZXcgaSgic3ltYm9sLWNvbnN0YW50Iix7Zm9udENoYXJhY3RlcjoiXFxlYjVkIn0pLGkuc3ltYm9sRW51bU1lbWJlcj1uZXcgaSgic3ltYm9sLWVudW0tbWVtYmVyIix7Zm9udENoYXJhY3RlcjoiXFxlYjVlIn0pLGkuc3ltYm9sRmllbGQ9bmV3IGkoInN5bWJvbC1maWVsZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1ZiJ9KSxpLnN5bWJvbEZpbGU9bmV3IGkoInN5bWJvbC1maWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYjYwIn0pLGkuc3ltYm9sSW50ZXJmYWNlPW5ldyBpKCJzeW1ib2wtaW50ZXJmYWNlIix7Zm9udENoYXJhY3RlcjoiXFxlYjYxIn0pLGkuc3ltYm9sS2V5d29yZD1uZXcgaSgic3ltYm9sLWtleXdvcmQiLHtmb250Q2hhcmFjdGVyOiJcXGViNjIifSksaS5zeW1ib2xNaXNjPW5ldyBpKCJzeW1ib2wtbWlzYyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI2MyJ9KSxpLnN5bWJvbE9wZXJhdG9yPW5ldyBpKCJzeW1ib2wtb3BlcmF0b3IiLHtmb250Q2hhcmFjdGVyOiJcXGViNjQifSksaS5zeW1ib2xQcm9wZXJ0eT1uZXcgaSgic3ltYm9sLXByb3BlcnR5Iix7Zm9udENoYXJhY3RlcjoiXFxlYjY1In0pLGkud3JlbmNoPW5ldyBpKCJ3cmVuY2giLHtmb250Q2hhcmFjdGVyOiJcXGViNjUifSksaS53cmVuY2hTdWJhY3Rpb249bmV3IGkoIndyZW5jaC1zdWJhY3Rpb24iLHtmb250Q2hhcmFjdGVyOiJcXGViNjUifSksaS5zeW1ib2xTbmlwcGV0PW5ldyBpKCJzeW1ib2wtc25pcHBldCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI2NiJ9KSxpLnRhc2tsaXN0PW5ldyBpKCJ0YXNrbGlzdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI2NyJ9KSxpLnRlbGVzY29wZT1uZXcgaSgidGVsZXNjb3BlIix7Zm9udENoYXJhY3RlcjoiXFxlYjY4In0pLGkudGV4dFNpemU9bmV3IGkoInRleHQtc2l6ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI2OSJ9KSxpLnRocmVlQmFycz1uZXcgaSgidGhyZWUtYmFycyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI2YSJ9KSxpLnRodW1ic2Rvd249bmV3IGkoInRodW1ic2Rvd24iLHtmb250Q2hhcmFjdGVyOiJcXGViNmIifSksaS50aHVtYnN1cD1uZXcgaSgidGh1bWJzdXAiLHtmb250Q2hhcmFjdGVyOiJcXGViNmMifSksaS50b29scz1uZXcgaSgidG9vbHMiLHtmb250Q2hhcmFjdGVyOiJcXGViNmQifSksaS50cmlhbmdsZURvd249bmV3IGkoInRyaWFuZ2xlLWRvd24iLHtmb250Q2hhcmFjdGVyOiJcXGViNmUifSksaS50cmlhbmdsZUxlZnQ9bmV3IGkoInRyaWFuZ2xlLWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGViNmYifSksaS50cmlhbmdsZVJpZ2h0PW5ldyBpKCJ0cmlhbmdsZS1yaWdodCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3MCJ9KSxpLnRyaWFuZ2xlVXA9bmV3IGkoInRyaWFuZ2xlLXVwIix7Zm9udENoYXJhY3RlcjoiXFxlYjcxIn0pLGkudHdpdHRlcj1uZXcgaSgidHdpdHRlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3MiJ9KSxpLnVuZm9sZD1uZXcgaSgidW5mb2xkIix7Zm9udENoYXJhY3RlcjoiXFxlYjczIn0pLGkudW5sb2NrPW5ldyBpKCJ1bmxvY2siLHtmb250Q2hhcmFjdGVyOiJcXGViNzQifSksaS51bm11dGU9bmV3IGkoInVubXV0ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3NSJ9KSxpLnVudmVyaWZpZWQ9bmV3IGkoInVudmVyaWZpZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViNzYifSksaS52ZXJpZmllZD1uZXcgaSgidmVyaWZpZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViNzcifSksaS52ZXJzaW9ucz1uZXcgaSgidmVyc2lvbnMiLHtmb250Q2hhcmFjdGVyOiJcXGViNzgifSksaS52bUFjdGl2ZT1uZXcgaSgidm0tYWN0aXZlIix7Zm9udENoYXJhY3RlcjoiXFxlYjc5In0pLGkudm1PdXRsaW5lPW5ldyBpKCJ2bS1vdXRsaW5lIix7Zm9udENoYXJhY3RlcjoiXFxlYjdhIn0pLGkudm1SdW5uaW5nPW5ldyBpKCJ2bS1ydW5uaW5nIix7Zm9udENoYXJhY3RlcjoiXFxlYjdiIn0pLGkud2F0Y2g9bmV3IGkoIndhdGNoIix7Zm9udENoYXJhY3RlcjoiXFxlYjdjIn0pLGkud2hpdGVzcGFjZT1uZXcgaSgid2hpdGVzcGFjZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3ZCJ9KSxpLndob2xlV29yZD1uZXcgaSgid2hvbGUtd29yZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3ZSJ9KSxpLndpbmRvdz1uZXcgaSgid2luZG93Iix7Zm9udENoYXJhY3RlcjoiXFxlYjdmIn0pLGkud29yZFdyYXA9bmV3IGkoIndvcmQtd3JhcCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4MCJ9KSxpLnpvb21Jbj1uZXcgaSgiem9vbS1pbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4MSJ9KSxpLnpvb21PdXQ9bmV3IGkoInpvb20tb3V0Iix7Zm9udENoYXJhY3RlcjoiXFxlYjgyIn0pLGkubGlzdEZpbHRlcj1uZXcgaSgibGlzdC1maWx0ZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViODMifSksaS5saXN0RmxhdD1uZXcgaSgibGlzdC1mbGF0Iix7Zm9udENoYXJhY3RlcjoiXFxlYjg0In0pLGkubGlzdFNlbGVjdGlvbj1uZXcgaSgibGlzdC1zZWxlY3Rpb24iLHtmb250Q2hhcmFjdGVyOiJcXGViODUifSksaS5zZWxlY3Rpb249bmV3IGkoInNlbGVjdGlvbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4NSJ9KSxpLmxpc3RUcmVlPW5ldyBpKCJsaXN0LXRyZWUiLHtmb250Q2hhcmFjdGVyOiJcXGViODYifSksaS5kZWJ1Z0JyZWFrcG9pbnRGdW5jdGlvblVudmVyaWZpZWQ9bmV3IGkoImRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24tdW52ZXJpZmllZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4NyJ9KSxpLmRlYnVnQnJlYWtwb2ludEZ1bmN0aW9uPW5ldyBpKCJkZWJ1Zy1icmVha3BvaW50LWZ1bmN0aW9uIix7Zm9udENoYXJhY3RlcjoiXFxlYjg4In0pLGkuZGVidWdCcmVha3BvaW50RnVuY3Rpb25EaXNhYmxlZD1uZXcgaSgiZGVidWctYnJlYWtwb2ludC1mdW5jdGlvbi1kaXNhYmxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4OCJ9KSxpLmRlYnVnU3RhY2tmcmFtZUFjdGl2ZT1uZXcgaSgiZGVidWctc3RhY2tmcmFtZS1hY3RpdmUiLHtmb250Q2hhcmFjdGVyOiJcXGViODkifSksaS5kZWJ1Z1N0YWNrZnJhbWVEb3Q9bmV3IGkoImRlYnVnLXN0YWNrZnJhbWUtZG90Iix7Zm9udENoYXJhY3RlcjoiXFxlYjhhIn0pLGkuZGVidWdTdGFja2ZyYW1lPW5ldyBpKCJkZWJ1Zy1zdGFja2ZyYW1lIix7Zm9udENoYXJhY3RlcjoiXFxlYjhiIn0pLGkuZGVidWdTdGFja2ZyYW1lRm9jdXNlZD1uZXcgaSgiZGVidWctc3RhY2tmcmFtZS1mb2N1c2VkIix7Zm9udENoYXJhY3RlcjoiXFxlYjhiIn0pLGkuZGVidWdCcmVha3BvaW50VW5zdXBwb3J0ZWQ9bmV3IGkoImRlYnVnLWJyZWFrcG9pbnQtdW5zdXBwb3J0ZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViOGMifSksaS5zeW1ib2xTdHJpbmc9bmV3IGkoInN5bWJvbC1zdHJpbmciLHtmb250Q2hhcmFjdGVyOiJcXGViOGQifSksaS5kZWJ1Z1JldmVyc2VDb250aW51ZT1uZXcgaSgiZGVidWctcmV2ZXJzZS1jb250aW51ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4ZSJ9KSxpLmRlYnVnU3RlcEJhY2s9bmV3IGkoImRlYnVnLXN0ZXAtYmFjayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4ZiJ9KSxpLmRlYnVnUmVzdGFydEZyYW1lPW5ldyBpKCJkZWJ1Zy1yZXN0YXJ0LWZyYW1lIix7Zm9udENoYXJhY3RlcjoiXFxlYjkwIn0pLGkuY2FsbEluY29taW5nPW5ldyBpKCJjYWxsLWluY29taW5nIix7Zm9udENoYXJhY3RlcjoiXFxlYjkyIn0pLGkuY2FsbE91dGdvaW5nPW5ldyBpKCJjYWxsLW91dGdvaW5nIix7Zm9udENoYXJhY3RlcjoiXFxlYjkzIn0pLGkubWVudT1uZXcgaSgibWVudSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5NCJ9KSxpLmV4cGFuZEFsbD1uZXcgaSgiZXhwYW5kLWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5NSJ9KSxpLmZlZWRiYWNrPW5ldyBpKCJmZWVkYmFjayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5NiJ9KSxpLmdyb3VwQnlSZWZUeXBlPW5ldyBpKCJncm91cC1ieS1yZWYtdHlwZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5NyJ9KSxpLnVuZ3JvdXBCeVJlZlR5cGU9bmV3IGkoInVuZ3JvdXAtYnktcmVmLXR5cGUiLHtmb250Q2hhcmFjdGVyOiJcXGViOTgifSksaS5hY2NvdW50PW5ldyBpKCJhY2NvdW50Iix7Zm9udENoYXJhY3RlcjoiXFxlYjk5In0pLGkuYmVsbERvdD1uZXcgaSgiYmVsbC1kb3QiLHtmb250Q2hhcmFjdGVyOiJcXGViOWEifSksaS5kZWJ1Z0NvbnNvbGU9bmV3IGkoImRlYnVnLWNvbnNvbGUiLHtmb250Q2hhcmFjdGVyOiJcXGViOWIifSksaS5saWJyYXJ5PW5ldyBpKCJsaWJyYXJ5Iix7Zm9udENoYXJhY3RlcjoiXFxlYjljIn0pLGkub3V0cHV0PW5ldyBpKCJvdXRwdXQiLHtmb250Q2hhcmFjdGVyOiJcXGViOWQifSksaS5ydW5BbGw9bmV3IGkoInJ1bi1hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGViOWUifSksaS5zeW5jSWdub3JlZD1uZXcgaSgic3luYy1pZ25vcmVkIix7Zm9udENoYXJhY3RlcjoiXFxlYjlmIn0pLGkucGlubmVkPW5ldyBpKCJwaW5uZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViYTAifSksaS5naXRodWJJbnZlcnRlZD1uZXcgaSgiZ2l0aHViLWludmVydGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYmExIn0pLGkuZGVidWdBbHQ9bmV3IGkoImRlYnVnLWFsdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5MSJ9KSxpLnNlcnZlclByb2Nlc3M9bmV3IGkoInNlcnZlci1wcm9jZXNzIix7Zm9udENoYXJhY3RlcjoiXFxlYmEyIn0pLGkuc2VydmVyRW52aXJvbm1lbnQ9bmV3IGkoInNlcnZlci1lbnZpcm9ubWVudCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhMyJ9KSxpLnBhc3M9bmV3IGkoInBhc3MiLHtmb250Q2hhcmFjdGVyOiJcXGViYTQifSksaS5zdG9wQ2lyY2xlPW5ldyBpKCJzdG9wLWNpcmNsZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhNSJ9KSxpLnBsYXlDaXJjbGU9bmV3IGkoInBsYXktY2lyY2xlIix7Zm9udENoYXJhY3RlcjoiXFxlYmE2In0pLGkucmVjb3JkPW5ldyBpKCJyZWNvcmQiLHtmb250Q2hhcmFjdGVyOiJcXGViYTcifSksaS5kZWJ1Z0FsdFNtYWxsPW5ldyBpKCJkZWJ1Zy1hbHQtc21hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGViYTgifSksaS52bUNvbm5lY3Q9bmV3IGkoInZtLWNvbm5lY3QiLHtmb250Q2hhcmFjdGVyOiJcXGViYTkifSksaS5jbG91ZD1uZXcgaSgiY2xvdWQiLHtmb250Q2hhcmFjdGVyOiJcXGViYWEifSksaS5tZXJnZT1uZXcgaSgibWVyZ2UiLHtmb250Q2hhcmFjdGVyOiJcXGViYWIifSksaS5leHBvcnRJY29uPW5ldyBpKCJleHBvcnQiLHtmb250Q2hhcmFjdGVyOiJcXGViYWMifSksaS5ncmFwaExlZnQ9bmV3IGkoImdyYXBoLWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGViYWQifSksaS5tYWduZXQ9bmV3IGkoIm1hZ25ldCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhZSJ9KSxpLm5vdGVib29rPW5ldyBpKCJub3RlYm9vayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhZiJ9KSxpLnJlZG89bmV3IGkoInJlZG8iLHtmb250Q2hhcmFjdGVyOiJcXGViYjAifSksaS5jaGVja0FsbD1uZXcgaSgiY2hlY2stYWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYmIxIn0pLGkucGlubmVkRGlydHk9bmV3IGkoInBpbm5lZC1kaXJ0eSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiMiJ9KSxpLnBhc3NGaWxsZWQ9bmV3IGkoInBhc3MtZmlsbGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYmIzIn0pLGkuY2lyY2xlTGFyZ2VGaWxsZWQ9bmV3IGkoImNpcmNsZS1sYXJnZS1maWxsZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViYjQifSksaS5jaXJjbGVMYXJnZU91dGxpbmU9bmV3IGkoImNpcmNsZS1sYXJnZS1vdXRsaW5lIix7Zm9udENoYXJhY3RlcjoiXFxlYmI1In0pLGkuY29tYmluZT1uZXcgaSgiY29tYmluZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiNiJ9KSxpLmdhdGhlcj1uZXcgaSgiZ2F0aGVyIix7Zm9udENoYXJhY3RlcjoiXFxlYmI2In0pLGkudGFibGU9bmV3IGkoInRhYmxlIix7Zm9udENoYXJhY3RlcjoiXFxlYmI3In0pLGkudmFyaWFibGVHcm91cD1uZXcgaSgidmFyaWFibGUtZ3JvdXAiLHtmb250Q2hhcmFjdGVyOiJcXGViYjgifSksaS50eXBlSGllcmFyY2h5PW5ldyBpKCJ0eXBlLWhpZXJhcmNoeSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiOSJ9KSxpLnR5cGVIaWVyYXJjaHlTdWI9bmV3IGkoInR5cGUtaGllcmFyY2h5LXN1YiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiYSJ9KSxpLnR5cGVIaWVyYXJjaHlTdXBlcj1uZXcgaSgidHlwZS1oaWVyYXJjaHktc3VwZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViYmIifSksaS5naXRQdWxsUmVxdWVzdENyZWF0ZT1uZXcgaSgiZ2l0LXB1bGwtcmVxdWVzdC1jcmVhdGUiLHtmb250Q2hhcmFjdGVyOiJcXGViYmMifSksaS5ydW5BYm92ZT1uZXcgaSgicnVuLWFib3ZlIix7Zm9udENoYXJhY3RlcjoiXFxlYmJkIn0pLGkucnVuQmVsb3c9bmV3IGkoInJ1bi1iZWxvdyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiZSJ9KSxpLm5vdGVib29rVGVtcGxhdGU9bmV3IGkoIm5vdGVib29rLXRlbXBsYXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYmJmIn0pLGkuZGVidWdSZXJ1bj1uZXcgaSgiZGVidWctcmVydW4iLHtmb250Q2hhcmFjdGVyOiJcXGViYzAifSksaS53b3Jrc3BhY2VUcnVzdGVkPW5ldyBpKCJ3b3Jrc3BhY2UtdHJ1c3RlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjMSJ9KSxpLndvcmtzcGFjZVVudHJ1c3RlZD1uZXcgaSgid29ya3NwYWNlLXVudHJ1c3RlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjMiJ9KSxpLndvcmtzcGFjZVVuc3BlY2lmaWVkPW5ldyBpKCJ3b3Jrc3BhY2UtdW5zcGVjaWZpZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViYzMifSksaS50ZXJtaW5hbENtZD1uZXcgaSgidGVybWluYWwtY21kIix7Zm9udENoYXJhY3RlcjoiXFxlYmM0In0pLGkudGVybWluYWxEZWJpYW49bmV3IGkoInRlcm1pbmFsLWRlYmlhbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjNSJ9KSxpLnRlcm1pbmFsTGludXg9bmV3IGkoInRlcm1pbmFsLWxpbnV4Iix7Zm9udENoYXJhY3RlcjoiXFxlYmM2In0pLGkudGVybWluYWxQb3dlcnNoZWxsPW5ldyBpKCJ0ZXJtaW5hbC1wb3dlcnNoZWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYmM3In0pLGkudGVybWluYWxUbXV4PW5ldyBpKCJ0ZXJtaW5hbC10bXV4Iix7Zm9udENoYXJhY3RlcjoiXFxlYmM4In0pLGkudGVybWluYWxVYnVudHU9bmV3IGkoInRlcm1pbmFsLXVidW50dSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjOSJ9KSxpLnRlcm1pbmFsQmFzaD1uZXcgaSgidGVybWluYWwtYmFzaCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjYSJ9KSxpLmFycm93U3dhcD1uZXcgaSgiYXJyb3ctc3dhcCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjYiJ9KSxpLmNvcHk9bmV3IGkoImNvcHkiLHtmb250Q2hhcmFjdGVyOiJcXGViY2MifSksaS5wZXJzb25BZGQ9bmV3IGkoInBlcnNvbi1hZGQiLHtmb250Q2hhcmFjdGVyOiJcXGViY2QifSksaS5maWx0ZXJGaWxsZWQ9bmV3IGkoImZpbHRlci1maWxsZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViY2UifSksaS53YW5kPW5ldyBpKCJ3YW5kIix7Zm9udENoYXJhY3RlcjoiXFxlYmNmIn0pLGkuZGVidWdMaW5lQnlMaW5lPW5ldyBpKCJkZWJ1Zy1saW5lLWJ5LWxpbmUiLHtmb250Q2hhcmFjdGVyOiJcXGViZDAifSksaS5pbnNwZWN0PW5ldyBpKCJpbnNwZWN0Iix7Zm9udENoYXJhY3RlcjoiXFxlYmQxIn0pLGkubGF5ZXJzPW5ldyBpKCJsYXllcnMiLHtmb250Q2hhcmFjdGVyOiJcXGViZDIifSksaS5sYXllcnNEb3Q9bmV3IGkoImxheWVycy1kb3QiLHtmb250Q2hhcmFjdGVyOiJcXGViZDMifSksaS5sYXllcnNBY3RpdmU9bmV3IGkoImxheWVycy1hY3RpdmUiLHtmb250Q2hhcmFjdGVyOiJcXGViZDQifSksaS5jb21wYXNzPW5ldyBpKCJjb21wYXNzIix7Zm9udENoYXJhY3RlcjoiXFxlYmQ1In0pLGkuY29tcGFzc0RvdD1uZXcgaSgiY29tcGFzcy1kb3QiLHtmb250Q2hhcmFjdGVyOiJcXGViZDYifSksaS5jb21wYXNzQWN0aXZlPW5ldyBpKCJjb21wYXNzLWFjdGl2ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJkNyJ9KSxpLmF6dXJlPW5ldyBpKCJhenVyZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJkOCJ9KSxpLmlzc3VlRHJhZnQ9bmV3IGkoImlzc3VlLWRyYWZ0Iix7Zm9udENoYXJhY3RlcjoiXFxlYmQ5In0pLGkuZ2l0UHVsbFJlcXVlc3RDbG9zZWQ9bmV3IGkoImdpdC1wdWxsLXJlcXVlc3QtY2xvc2VkIix7Zm9udENoYXJhY3RlcjoiXFxlYmRhIn0pLGkuZ2l0UHVsbFJlcXVlc3REcmFmdD1uZXcgaSgiZ2l0LXB1bGwtcmVxdWVzdC1kcmFmdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJkYiJ9KSxpLmRlYnVnQWxsPW5ldyBpKCJkZWJ1Zy1hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGViZGMifSksaS5kZWJ1Z0NvdmVyYWdlPW5ldyBpKCJkZWJ1Zy1jb3ZlcmFnZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJkZCJ9KSxpLnJ1bkVycm9ycz1uZXcgaSgicnVuLWVycm9ycyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJkZSJ9KSxpLmZvbGRlckxpYnJhcnk9bmV3IGkoImZvbGRlci1saWJyYXJ5Iix7Zm9udENoYXJhY3RlcjoiXFxlYmRmIn0pLGkuZGVidWdDb250aW51ZVNtYWxsPW5ldyBpKCJkZWJ1Zy1jb250aW51ZS1zbWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlMCJ9KSxpLmJlYWtlclN0b3A9bmV3IGkoImJlYWtlci1zdG9wIix7Zm9udENoYXJhY3RlcjoiXFxlYmUxIn0pLGkuZ3JhcGhMaW5lPW5ldyBpKCJncmFwaC1saW5lIix7Zm9udENoYXJhY3RlcjoiXFxlYmUyIn0pLGkuZ3JhcGhTY2F0dGVyPW5ldyBpKCJncmFwaC1zY2F0dGVyIix7Zm9udENoYXJhY3RlcjoiXFxlYmUzIn0pLGkucGllQ2hhcnQ9bmV3IGkoInBpZS1jaGFydCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlNCJ9KSxpLmJyYWNrZXQ9bmV3IGkoImJyYWNrZXQiLGkuanNvbi5kZWZpbml0aW9uKSxpLmJyYWNrZXREb3Q9bmV3IGkoImJyYWNrZXQtZG90Iix7Zm9udENoYXJhY3RlcjoiXFxlYmU1In0pLGkuYnJhY2tldEVycm9yPW5ldyBpKCJicmFja2V0LWVycm9yIix7Zm9udENoYXJhY3RlcjoiXFxlYmU2In0pLGkubG9ja1NtYWxsPW5ldyBpKCJsb2NrLXNtYWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYmU3In0pLGkuYXp1cmVEZXZvcHM9bmV3IGkoImF6dXJlLWRldm9wcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlOCJ9KSxpLnZlcmlmaWVkRmlsbGVkPW5ldyBpKCJ2ZXJpZmllZC1maWxsZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViZTkifSksaS5uZXdMaW5lPW5ldyBpKCJuZXdsaW5lIix7Zm9udENoYXJhY3RlcjoiXFxlYmVhIn0pLGkubGF5b3V0PW5ldyBpKCJsYXlvdXQiLHtmb250Q2hhcmFjdGVyOiJcXGViZWIifSksaS5sYXlvdXRBY3Rpdml0eWJhckxlZnQ9bmV3IGkoImxheW91dC1hY3Rpdml0eWJhci1sZWZ0Iix7Zm9udENoYXJhY3RlcjoiXFxlYmVjIn0pLGkubGF5b3V0QWN0aXZpdHliYXJSaWdodD1uZXcgaSgibGF5b3V0LWFjdGl2aXR5YmFyLXJpZ2h0Iix7Zm9udENoYXJhY3RlcjoiXFxlYmVkIn0pLGkubGF5b3V0UGFuZWxMZWZ0PW5ldyBpKCJsYXlvdXQtcGFuZWwtbGVmdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlZSJ9KSxpLmxheW91dFBhbmVsQ2VudGVyPW5ldyBpKCJsYXlvdXQtcGFuZWwtY2VudGVyIix7Zm9udENoYXJhY3RlcjoiXFxlYmVmIn0pLGkubGF5b3V0UGFuZWxKdXN0aWZ5PW5ldyBpKCJsYXlvdXQtcGFuZWwtanVzdGlmeSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmMCJ9KSxpLmxheW91dFBhbmVsUmlnaHQ9bmV3IGkoImxheW91dC1wYW5lbC1yaWdodCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmMSJ9KSxpLmxheW91dFBhbmVsPW5ldyBpKCJsYXlvdXQtcGFuZWwiLHtmb250Q2hhcmFjdGVyOiJcXGViZjIifSksaS5sYXlvdXRTaWRlYmFyTGVmdD1uZXcgaSgibGF5b3V0LXNpZGViYXItbGVmdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmMyJ9KSxpLmxheW91dFNpZGViYXJSaWdodD1uZXcgaSgibGF5b3V0LXNpZGViYXItcmlnaHQiLHtmb250Q2hhcmFjdGVyOiJcXGViZjQifSksaS5sYXlvdXRTdGF0dXNiYXI9bmV3IGkoImxheW91dC1zdGF0dXNiYXIiLHtmb250Q2hhcmFjdGVyOiJcXGViZjUifSksaS5sYXlvdXRNZW51YmFyPW5ldyBpKCJsYXlvdXQtbWVudWJhciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmNiJ9KSxpLmxheW91dENlbnRlcmVkPW5ldyBpKCJsYXlvdXQtY2VudGVyZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViZjcifSksaS50YXJnZXQ9bmV3IGkoInRhcmdldCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmOCJ9KSxpLmluZGVudD1uZXcgaSgiaW5kZW50Iix7Zm9udENoYXJhY3RlcjoiXFxlYmY5In0pLGkucmVjb3JkU21hbGw9bmV3IGkoInJlY29yZC1zbWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmYSJ9KSxpLmVycm9yU21hbGw9bmV3IGkoImVycm9yLXNtYWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYmZiIn0pLGkuYXJyb3dDaXJjbGVEb3duPW5ldyBpKCJhcnJvdy1jaXJjbGUtZG93biIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmYyJ9KSxpLmFycm93Q2lyY2xlTGVmdD1uZXcgaSgiYXJyb3ctY2lyY2xlLWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGViZmQifSksaS5hcnJvd0NpcmNsZVJpZ2h0PW5ldyBpKCJhcnJvdy1jaXJjbGUtcmlnaHQiLHtmb250Q2hhcmFjdGVyOiJcXGViZmUifSksaS5hcnJvd0NpcmNsZVVwPW5ldyBpKCJhcnJvdy1jaXJjbGUtdXAiLHtmb250Q2hhcmFjdGVyOiJcXGViZmYifSksaS5kaWFsb2dFcnJvcj1uZXcgaSgiZGlhbG9nLWVycm9yIixpLmVycm9yLmRlZmluaXRpb24pLGkuZGlhbG9nV2FybmluZz1uZXcgaSgiZGlhbG9nLXdhcm5pbmciLGkud2FybmluZy5kZWZpbml0aW9uKSxpLmRpYWxvZ0luZm89bmV3IGkoImRpYWxvZy1pbmZvIixpLmluZm8uZGVmaW5pdGlvbiksaS5kaWFsb2dDbG9zZT1uZXcgaSgiZGlhbG9nLWNsb3NlIixpLmNsb3NlLmRlZmluaXRpb24pLGkudHJlZUl0ZW1FeHBhbmRlZD1uZXcgaSgidHJlZS1pdGVtLWV4cGFuZGVkIixpLmNoZXZyb25Eb3duLmRlZmluaXRpb24pLGkudHJlZUZpbHRlck9uVHlwZU9uPW5ldyBpKCJ0cmVlLWZpbHRlci1vbi10eXBlLW9uIixpLmxpc3RGaWx0ZXIuZGVmaW5pdGlvbiksaS50cmVlRmlsdGVyT25UeXBlT2ZmPW5ldyBpKCJ0cmVlLWZpbHRlci1vbi10eXBlLW9mZiIsaS5saXN0U2VsZWN0aW9uLmRlZmluaXRpb24pLGkudHJlZUZpbHRlckNsZWFyPW5ldyBpKCJ0cmVlLWZpbHRlci1jbGVhciIsaS5jbG9zZS5kZWZpbml0aW9uKSxpLnRyZWVJdGVtTG9hZGluZz1uZXcgaSgidHJlZS1pdGVtLWxvYWRpbmciLGkubG9hZGluZy5kZWZpbml0aW9uKSxpLm1lbnVTZWxlY3Rpb249bmV3IGkoIm1lbnUtc2VsZWN0aW9uIixpLmNoZWNrLmRlZmluaXRpb24pLGkubWVudVN1Ym1lbnU9bmV3IGkoIm1lbnUtc3VibWVudSIsaS5jaGV2cm9uUmlnaHQuZGVmaW5pdGlvbiksaS5tZW51QmFyTW9yZT1uZXcgaSgibWVudWJhci1tb3JlIixpLm1vcmUuZGVmaW5pdGlvbiksaS5zY3JvbGxiYXJCdXR0b25MZWZ0PW5ldyBpKCJzY3JvbGxiYXItYnV0dG9uLWxlZnQiLGkudHJpYW5nbGVMZWZ0LmRlZmluaXRpb24pLGkuc2Nyb2xsYmFyQnV0dG9uUmlnaHQ9bmV3IGkoInNjcm9sbGJhci1idXR0b24tcmlnaHQiLGkudHJpYW5nbGVSaWdodC5kZWZpbml0aW9uKSxpLnNjcm9sbGJhckJ1dHRvblVwPW5ldyBpKCJzY3JvbGxiYXItYnV0dG9uLXVwIixpLnRyaWFuZ2xlVXAuZGVmaW5pdGlvbiksaS5zY3JvbGxiYXJCdXR0b25Eb3duPW5ldyBpKCJzY3JvbGxiYXItYnV0dG9uLWRvd24iLGkudHJpYW5nbGVEb3duLmRlZmluaXRpb24pLGkudG9vbEJhck1vcmU9bmV3IGkoInRvb2xiYXItbW9yZSIsaS5tb3JlLmRlZmluaXRpb24pLGkucXVpY2tJbnB1dEJhY2s9bmV3IGkoInF1aWNrLWlucHV0LWJhY2siLGkuYXJyb3dMZWZ0LmRlZmluaXRpb24pO3t2YXIgRTsoRT1xdD1xdHx8e30pLmljb25OYW1lU2VnbWVudD0iW0EtWmEtejAtOV0rIixFLmljb25OYW1lRXhwcmVzc2lvbj0iW0EtWmEtejAtOS1dKyIsRS5pY29uTW9kaWZpZXJFeHByZXNzaW9uPSJ+W0EtWmEtel0rIixFLmljb25OYW1lQ2hhcmFjdGVyPSJbQS1aYS16MC05fi1dIjtjb25zdCBxcj1uZXcgUmVnRXhwKGBeKCR7RS5pY29uTmFtZUV4cHJlc3Npb259KSgke0UuaWNvbk1vZGlmaWVyRXhwcmVzc2lvbn0pPyRgKTtmdW5jdGlvbiBlcihlKXtpZihlIGluc3RhbmNlb2YgaSlyZXR1cm5bImNvZGljb24iLCJjb2RpY29uLSIrZS5pZF07ZT1xci5leGVjKGUuaWQpO2lmKCFlKXJldHVybiBlcihpLmVycm9yKTtsZXRbLHQscl09ZTtjb25zdCBuPVsiY29kaWNvbiIsImNvZGljb24tIit0XTtyZXR1cm4gciYmbi5wdXNoKCJjb2RpY29uLW1vZGlmaWVyLSIrci5zdWJzdHIoMSkpLG59RS5hc0NsYXNzTmFtZUFycmF5PWVyLEUuYXNDbGFzc05hbWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGVyKGUpLmpvaW4oIiAiKX0sRS5hc0NTU1NlbGVjdG9yPWZ1bmN0aW9uKGUpe3JldHVybiIuIitlcihlKS5qb2luKCIuIil9fWNsYXNzIHRye2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLl90b2tlbkJyYW5kPXZvaWQgMCx0aGlzLm9mZnNldD1lLHRoaXMudHlwZT10LHRoaXMubGFuZ3VhZ2U9cn10b1N0cmluZygpe3JldHVybiIoIit0aGlzLm9mZnNldCsiLCAiK3RoaXMudHlwZSsiKSJ9fWNsYXNzIHJye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fdG9rZW5pemF0aW9uUmVzdWx0QnJhbmQ9dm9pZCAwLHRoaXMudG9rZW5zPWUsdGhpcy5lbmRTdGF0ZT10fX1jbGFzcyBucntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2VuY29kZWRUb2tlbml6YXRpb25SZXN1bHRCcmFuZD12b2lkIDAsdGhpcy50b2tlbnM9ZSx0aGlzLmVuZFN0YXRlPXR9fXtWPXt9O2NvbnN0IHI9bmV3IE1hcCxuPShyLnNldCgwLGkuc3ltYm9sTWV0aG9kKSxyLnNldCgxLGkuc3ltYm9sRnVuY3Rpb24pLHIuc2V0KDIsaS5zeW1ib2xDb25zdHJ1Y3Rvciksci5zZXQoMyxpLnN5bWJvbEZpZWxkKSxyLnNldCg0LGkuc3ltYm9sVmFyaWFibGUpLHIuc2V0KDUsaS5zeW1ib2xDbGFzcyksci5zZXQoNixpLnN5bWJvbFN0cnVjdCksci5zZXQoNyxpLnN5bWJvbEludGVyZmFjZSksci5zZXQoOCxpLnN5bWJvbE1vZHVsZSksci5zZXQoOSxpLnN5bWJvbFByb3BlcnR5KSxyLnNldCgxMCxpLnN5bWJvbEV2ZW50KSxyLnNldCgxMSxpLnN5bWJvbE9wZXJhdG9yKSxyLnNldCgxMixpLnN5bWJvbFVuaXQpLHIuc2V0KDEzLGkuc3ltYm9sVmFsdWUpLHIuc2V0KDE1LGkuc3ltYm9sRW51bSksci5zZXQoMTQsaS5zeW1ib2xDb25zdGFudCksci5zZXQoMTUsaS5zeW1ib2xFbnVtKSxyLnNldCgxNixpLnN5bWJvbEVudW1NZW1iZXIpLHIuc2V0KDE3LGkuc3ltYm9sS2V5d29yZCksci5zZXQoMjcsaS5zeW1ib2xTbmlwcGV0KSxyLnNldCgxOCxpLnN5bWJvbFRleHQpLHIuc2V0KDE5LGkuc3ltYm9sQ29sb3IpLHIuc2V0KDIwLGkuc3ltYm9sRmlsZSksci5zZXQoMjEsaS5zeW1ib2xSZWZlcmVuY2UpLHIuc2V0KDIyLGkuc3ltYm9sQ3VzdG9tQ29sb3IpLHIuc2V0KDIzLGkuc3ltYm9sRm9sZGVyKSxyLnNldCgyNCxpLnN5bWJvbFR5cGVQYXJhbWV0ZXIpLHIuc2V0KDI1LGkuYWNjb3VudCksci5zZXQoMjYsaS5pc3N1ZXMpLFYudG9JY29uPWZ1bmN0aW9uKGUpe2xldCB0PXIuZ2V0KGUpO3JldHVybiB0fHwoY29uc29sZS5pbmZvKCJObyBjb2RpY29uIGZvdW5kIGZvciBDb21wbGV0aW9uSXRlbUtpbmQgIitlKSx0PWkuc3ltYm9sUHJvcGVydHkpLHR9LG5ldyBNYXApO24uc2V0KCJtZXRob2QiLDApLG4uc2V0KCJmdW5jdGlvbiIsMSksbi5zZXQoImNvbnN0cnVjdG9yIiwyKSxuLnNldCgiZmllbGQiLDMpLG4uc2V0KCJ2YXJpYWJsZSIsNCksbi5zZXQoImNsYXNzIiw1KSxuLnNldCgic3RydWN0Iiw2KSxuLnNldCgiaW50ZXJmYWNlIiw3KSxuLnNldCgibW9kdWxlIiw4KSxuLnNldCgicHJvcGVydHkiLDkpLG4uc2V0KCJldmVudCIsMTApLG4uc2V0KCJvcGVyYXRvciIsMTEpLG4uc2V0KCJ1bml0IiwxMiksbi5zZXQoInZhbHVlIiwxMyksbi5zZXQoImNvbnN0YW50IiwxNCksbi5zZXQoImVudW0iLDE1KSxuLnNldCgiZW51bS1tZW1iZXIiLDE2KSxuLnNldCgiZW51bU1lbWJlciIsMTYpLG4uc2V0KCJrZXl3b3JkIiwxNyksbi5zZXQoInNuaXBwZXQiLDI3KSxuLnNldCgidGV4dCIsMTgpLG4uc2V0KCJjb2xvciIsMTkpLG4uc2V0KCJmaWxlIiwyMCksbi5zZXQoInJlZmVyZW5jZSIsMjEpLG4uc2V0KCJjdXN0b21jb2xvciIsMjIpLG4uc2V0KCJmb2xkZXIiLDIzKSxuLnNldCgidHlwZS1wYXJhbWV0ZXIiLDI0KSxuLnNldCgidHlwZVBhcmFtZXRlciIsMjQpLG4uc2V0KCJhY2NvdW50IiwyNSksbi5zZXQoImlzc3VlIiwyNiksVi5mcm9tU3RyaW5nPWZ1bmN0aW9uKGUsdCl7bGV0IHI9bi5nZXQoZSk7cmV0dXJuIHI9dm9pZCAwIT09cnx8dD9yOjl9fXtlPXt9O2NvbnN0IGE9bmV3IE1hcDthLnNldCgwLGkuc3ltYm9sRmlsZSksYS5zZXQoMSxpLnN5bWJvbE1vZHVsZSksYS5zZXQoMixpLnN5bWJvbE5hbWVzcGFjZSksYS5zZXQoMyxpLnN5bWJvbFBhY2thZ2UpLGEuc2V0KDQsaS5zeW1ib2xDbGFzcyksYS5zZXQoNSxpLnN5bWJvbE1ldGhvZCksYS5zZXQoNixpLnN5bWJvbFByb3BlcnR5KSxhLnNldCg3LGkuc3ltYm9sRmllbGQpLGEuc2V0KDgsaS5zeW1ib2xDb25zdHJ1Y3RvciksYS5zZXQoOSxpLnN5bWJvbEVudW0pLGEuc2V0KDEwLGkuc3ltYm9sSW50ZXJmYWNlKSxhLnNldCgxMSxpLnN5bWJvbEZ1bmN0aW9uKSxhLnNldCgxMixpLnN5bWJvbFZhcmlhYmxlKSxhLnNldCgxMyxpLnN5bWJvbENvbnN0YW50KSxhLnNldCgxNCxpLnN5bWJvbFN0cmluZyksYS5zZXQoMTUsaS5zeW1ib2xOdW1iZXIpLGEuc2V0KDE2LGkuc3ltYm9sQm9vbGVhbiksYS5zZXQoMTcsaS5zeW1ib2xBcnJheSksYS5zZXQoMTgsaS5zeW1ib2xPYmplY3QpLGEuc2V0KDE5LGkuc3ltYm9sS2V5KSxhLnNldCgyMCxpLnN5bWJvbE51bGwpLGEuc2V0KDIxLGkuc3ltYm9sRW51bU1lbWJlciksYS5zZXQoMjIsaS5zeW1ib2xTdHJ1Y3QpLGEuc2V0KDIzLGkuc3ltYm9sRXZlbnQpLGEuc2V0KDI0LGkuc3ltYm9sT3BlcmF0b3IpLGEuc2V0KDI1LGkuc3ltYm9sVHlwZVBhcmFtZXRlciksZS50b0ljb249ZnVuY3Rpb24oZSl7bGV0IHQ9YS5nZXQoZSk7cmV0dXJuIHR8fChjb25zb2xlLmluZm8oIk5vIGNvZGljb24gZm91bmQgZm9yIFN5bWJvbEtpbmQgIitlKSx0PWkuc3ltYm9sUHJvcGVydHkpLHR9fShHdHx8e30pLmlzPWZ1bmN0aW9uKGUpe3JldHVybiEoIWV8fCJvYmplY3QiIT10eXBlb2YgZSkmJigic3RyaW5nIj09dHlwZW9mIGUuaWQmJiJzdHJpbmciPT10eXBlb2YgZS50aXRsZSl9LG5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuX21hcD1uZXcgTWFwLHRoaXMuX2ZhY3Rvcmllcz1uZXcgTWFwLHRoaXMuX29uRGlkQ2hhbmdlPW5ldyB0ZSx0aGlzLm9uRGlkQ2hhbmdlPXRoaXMuX29uRGlkQ2hhbmdlLmV2ZW50LHRoaXMuX2NvbG9yTWFwPW51bGx9ZmlyZShlKXt0aGlzLl9vbkRpZENoYW5nZS5maXJlKHtjaGFuZ2VkTGFuZ3VhZ2VzOmUsY2hhbmdlZENvbG9yTWFwOiExfSl9cmVnaXN0ZXIoZSx0KXtyZXR1cm4gdGhpcy5fbWFwLnNldChlLHQpLHRoaXMuZmlyZShbZV0pLHYoKCk9Pnt0aGlzLl9tYXAuZ2V0KGUpPT09dCYmKHRoaXMuX21hcC5kZWxldGUoZSksdGhpcy5maXJlKFtlXSkpfSl9cmVnaXN0ZXJGYWN0b3J5KHQsZSl7dmFyIHI7bnVsbCE9PShyPXRoaXMuX2ZhY3Rvcmllcy5nZXQodCkpJiZ2b2lkIDAhPT1yJiZyLmRpc3Bvc2UoKTtjb25zdCBuPW5ldyBYdCh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX2ZhY3Rvcmllcy5zZXQodCxuKSx2KCgpPT57Y29uc3QgZT10aGlzLl9mYWN0b3JpZXMuZ2V0KHQpO2UmJmU9PT1uJiYodGhpcy5fZmFjdG9yaWVzLmRlbGV0ZSh0KSxlLmRpc3Bvc2UoKSl9KX1nZXRPckNyZWF0ZShyKXtyZXR1cm4gWnQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3ZhciBlPXRoaXMuZ2V0KHIpO2lmKGUpcmV0dXJuIGU7Y29uc3QgdD10aGlzLl9mYWN0b3JpZXMuZ2V0KHIpO3JldHVybiF0fHx0LmlzUmVzb2x2ZWQ/bnVsbDooeWllbGQgdC5yZXNvbHZlKCksdGhpcy5nZXQocikpfSl9Z2V0KGUpe3JldHVybiB0aGlzLl9tYXAuZ2V0KGUpfHxudWxsfWlzUmVzb2x2ZWQoZSl7aWYodGhpcy5nZXQoZSkpcmV0dXJuITA7ZT10aGlzLl9mYWN0b3JpZXMuZ2V0KGUpO3JldHVybiEoZSYmIWUuaXNSZXNvbHZlZCl9c2V0Q29sb3JNYXAoZSl7dGhpcy5fY29sb3JNYXA9ZSx0aGlzLl9vbkRpZENoYW5nZS5maXJlKHtjaGFuZ2VkTGFuZ3VhZ2VzOkFycmF5LmZyb20odGhpcy5fbWFwLmtleXMoKSksY2hhbmdlZENvbG9yTWFwOiEwfSl9Z2V0Q29sb3JNYXAoKXtyZXR1cm4gdGhpcy5fY29sb3JNYXB9Z2V0RGVmYXVsdEJhY2tncm91bmQoKXtyZXR1cm4gdGhpcy5fY29sb3JNYXAmJjI8dGhpcy5fY29sb3JNYXAubGVuZ3RoP3RoaXMuX2NvbG9yTWFwWzJdOm51bGx9fSwodD1IdD1IdHx8e30pW3QuRGVwZW5kc09uS2JMYXlvdXQ9LTFdPSJEZXBlbmRzT25LYkxheW91dCIsdFt0LlVua25vd249MF09IlVua25vd24iLHRbdC5CYWNrc3BhY2U9MV09IkJhY2tzcGFjZSIsdFt0LlRhYj0yXT0iVGFiIix0W3QuRW50ZXI9M109IkVudGVyIix0W3QuU2hpZnQ9NF09IlNoaWZ0Iix0W3QuQ3RybD01XT0iQ3RybCIsdFt0LkFsdD02XT0iQWx0Iix0W3QuUGF1c2VCcmVhaz03XT0iUGF1c2VCcmVhayIsdFt0LkNhcHNMb2NrPThdPSJDYXBzTG9jayIsdFt0LkVzY2FwZT05XT0iRXNjYXBlIix0W3QuU3BhY2U9MTBdPSJTcGFjZSIsdFt0LlBhZ2VVcD0xMV09IlBhZ2VVcCIsdFt0LlBhZ2VEb3duPTEyXT0iUGFnZURvd24iLHRbdC5FbmQ9MTNdPSJFbmQiLHRbdC5Ib21lPTE0XT0iSG9tZSIsdFt0LkxlZnRBcnJvdz0xNV09IkxlZnRBcnJvdyIsdFt0LlVwQXJyb3c9MTZdPSJVcEFycm93Iix0W3QuUmlnaHRBcnJvdz0xN109IlJpZ2h0QXJyb3ciLHRbdC5Eb3duQXJyb3c9MThdPSJEb3duQXJyb3ciLHRbdC5JbnNlcnQ9MTldPSJJbnNlcnQiLHRbdC5EZWxldGU9MjBdPSJEZWxldGUiLHRbdC5EaWdpdDA9MjFdPSJEaWdpdDAiLHRbdC5EaWdpdDE9MjJdPSJEaWdpdDEiLHRbdC5EaWdpdDI9MjNdPSJEaWdpdDIiLHRbdC5EaWdpdDM9MjRdPSJEaWdpdDMiLHRbdC5EaWdpdDQ9MjVdPSJEaWdpdDQiLHRbdC5EaWdpdDU9MjZdPSJEaWdpdDUiLHRbdC5EaWdpdDY9MjddPSJEaWdpdDYiLHRbdC5EaWdpdDc9MjhdPSJEaWdpdDciLHRbdC5EaWdpdDg9MjldPSJEaWdpdDgiLHRbdC5EaWdpdDk9MzBdPSJEaWdpdDkiLHRbdC5LZXlBPTMxXT0iS2V5QSIsdFt0LktleUI9MzJdPSJLZXlCIix0W3QuS2V5Qz0zM109IktleUMiLHRbdC5LZXlEPTM0XT0iS2V5RCIsdFt0LktleUU9MzVdPSJLZXlFIix0W3QuS2V5Rj0zNl09IktleUYiLHRbdC5LZXlHPTM3XT0iS2V5RyIsdFt0LktleUg9MzhdPSJLZXlIIix0W3QuS2V5ST0zOV09IktleUkiLHRbdC5LZXlKPTQwXT0iS2V5SiIsdFt0LktleUs9NDFdPSJLZXlLIix0W3QuS2V5TD00Ml09IktleUwiLHRbdC5LZXlNPTQzXT0iS2V5TSIsdFt0LktleU49NDRdPSJLZXlOIix0W3QuS2V5Tz00NV09IktleU8iLHRbdC5LZXlQPTQ2XT0iS2V5UCIsdFt0LktleVE9NDddPSJLZXlRIix0W3QuS2V5Uj00OF09IktleVIiLHRbdC5LZXlTPTQ5XT0iS2V5UyIsdFt0LktleVQ9NTBdPSJLZXlUIix0W3QuS2V5VT01MV09IktleVUiLHRbdC5LZXlWPTUyXT0iS2V5ViIsdFt0LktleVc9NTNdPSJLZXlXIix0W3QuS2V5WD01NF09IktleVgiLHRbdC5LZXlZPTU1XT0iS2V5WSIsdFt0LktleVo9NTZdPSJLZXlaIix0W3QuTWV0YT01N109Ik1ldGEiLHRbdC5Db250ZXh0TWVudT01OF09IkNvbnRleHRNZW51Iix0W3QuRjE9NTldPSJGMSIsdFt0LkYyPTYwXT0iRjIiLHRbdC5GMz02MV09IkYzIix0W3QuRjQ9NjJdPSJGNCIsdFt0LkY1PTYzXT0iRjUiLHRbdC5GNj02NF09IkY2Iix0W3QuRjc9NjVdPSJGNyIsdFt0LkY4PTY2XT0iRjgiLHRbdC5GOT02N109IkY5Iix0W3QuRjEwPTY4XT0iRjEwIix0W3QuRjExPTY5XT0iRjExIix0W3QuRjEyPTcwXT0iRjEyIix0W3QuRjEzPTcxXT0iRjEzIix0W3QuRjE0PTcyXT0iRjE0Iix0W3QuRjE1PTczXT0iRjE1Iix0W3QuRjE2PTc0XT0iRjE2Iix0W3QuRjE3PTc1XT0iRjE3Iix0W3QuRjE4PTc2XT0iRjE4Iix0W3QuRjE5PTc3XT0iRjE5Iix0W3QuTnVtTG9jaz03OF09Ik51bUxvY2siLHRbdC5TY3JvbGxMb2NrPTc5XT0iU2Nyb2xsTG9jayIsdFt0LlNlbWljb2xvbj04MF09IlNlbWljb2xvbiIsdFt0LkVxdWFsPTgxXT0iRXF1YWwiLHRbdC5Db21tYT04Ml09IkNvbW1hIix0W3QuTWludXM9ODNdPSJNaW51cyIsdFt0LlBlcmlvZD04NF09IlBlcmlvZCIsdFt0LlNsYXNoPTg1XT0iU2xhc2giLHRbdC5CYWNrcXVvdGU9ODZdPSJCYWNrcXVvdGUiLHRbdC5CcmFja2V0TGVmdD04N109IkJyYWNrZXRMZWZ0Iix0W3QuQmFja3NsYXNoPTg4XT0iQmFja3NsYXNoIix0W3QuQnJhY2tldFJpZ2h0PTg5XT0iQnJhY2tldFJpZ2h0Iix0W3QuUXVvdGU9OTBdPSJRdW90ZSIsdFt0Lk9FTV84PTkxXT0iT0VNXzgiLHRbdC5JbnRsQmFja3NsYXNoPTkyXT0iSW50bEJhY2tzbGFzaCIsdFt0Lk51bXBhZDA9OTNdPSJOdW1wYWQwIix0W3QuTnVtcGFkMT05NF09Ik51bXBhZDEiLHRbdC5OdW1wYWQyPTk1XT0iTnVtcGFkMiIsdFt0Lk51bXBhZDM9OTZdPSJOdW1wYWQzIix0W3QuTnVtcGFkND05N109Ik51bXBhZDQiLHRbdC5OdW1wYWQ1PTk4XT0iTnVtcGFkNSIsdFt0Lk51bXBhZDY9OTldPSJOdW1wYWQ2Iix0W3QuTnVtcGFkNz0xMDBdPSJOdW1wYWQ3Iix0W3QuTnVtcGFkOD0xMDFdPSJOdW1wYWQ4Iix0W3QuTnVtcGFkOT0xMDJdPSJOdW1wYWQ5Iix0W3QuTnVtcGFkTXVsdGlwbHk9MTAzXT0iTnVtcGFkTXVsdGlwbHkiLHRbdC5OdW1wYWRBZGQ9MTA0XT0iTnVtcGFkQWRkIix0W3QuTlVNUEFEX1NFUEFSQVRPUj0xMDVdPSJOVU1QQURfU0VQQVJBVE9SIix0W3QuTnVtcGFkU3VidHJhY3Q9MTA2XT0iTnVtcGFkU3VidHJhY3QiLHRbdC5OdW1wYWREZWNpbWFsPTEwN109Ik51bXBhZERlY2ltYWwiLHRbdC5OdW1wYWREaXZpZGU9MTA4XT0iTnVtcGFkRGl2aWRlIix0W3QuS0VZX0lOX0NPTVBPU0lUSU9OPTEwOV09IktFWV9JTl9DT01QT1NJVElPTiIsdFt0LkFCTlRfQzE9MTEwXT0iQUJOVF9DMSIsdFt0LkFCTlRfQzI9MTExXT0iQUJOVF9DMiIsdFt0LkF1ZGlvVm9sdW1lTXV0ZT0xMTJdPSJBdWRpb1ZvbHVtZU11dGUiLHRbdC5BdWRpb1ZvbHVtZVVwPTExM109IkF1ZGlvVm9sdW1lVXAiLHRbdC5BdWRpb1ZvbHVtZURvd249MTE0XT0iQXVkaW9Wb2x1bWVEb3duIix0W3QuQnJvd3NlclNlYXJjaD0xMTVdPSJCcm93c2VyU2VhcmNoIix0W3QuQnJvd3NlckhvbWU9MTE2XT0iQnJvd3NlckhvbWUiLHRbdC5Ccm93c2VyQmFjaz0xMTddPSJCcm93c2VyQmFjayIsdFt0LkJyb3dzZXJGb3J3YXJkPTExOF09IkJyb3dzZXJGb3J3YXJkIix0W3QuTWVkaWFUcmFja05leHQ9MTE5XT0iTWVkaWFUcmFja05leHQiLHRbdC5NZWRpYVRyYWNrUHJldmlvdXM9MTIwXT0iTWVkaWFUcmFja1ByZXZpb3VzIix0W3QuTWVkaWFTdG9wPTEyMV09Ik1lZGlhU3RvcCIsdFt0Lk1lZGlhUGxheVBhdXNlPTEyMl09Ik1lZGlhUGxheVBhdXNlIix0W3QuTGF1bmNoTWVkaWFQbGF5ZXI9MTIzXT0iTGF1bmNoTWVkaWFQbGF5ZXIiLHRbdC5MYXVuY2hNYWlsPTEyNF09IkxhdW5jaE1haWwiLHRbdC5MYXVuY2hBcHAyPTEyNV09IkxhdW5jaEFwcDIiLHRbdC5DbGVhcj0xMjZdPSJDbGVhciIsdFt0Lk1BWF9WQUxVRT0xMjddPSJNQVhfVkFMVUUiLChRdD16dD16dHx8e30pW1F0LlRyYWNlPTBdPSJUcmFjZSIsUXRbUXQuRGVidWc9MV09IkRlYnVnIixRdFtRdC5JbmZvPTJdPSJJbmZvIixRdFtRdC5XYXJuaW5nPTNdPSJXYXJuaW5nIixRdFtRdC5FcnJvcj00XT0iRXJyb3IiLFF0W1F0LkNyaXRpY2FsPTVdPSJDcml0aWNhbCIsUXRbUXQuT2ZmPTZdPSJPZmYiLChFPVd0PVd0fHx7fSlbRS5QYXJhZ3JhcGg9MF09IlBhcmFncmFwaCIsRVtFLkJyZWFrPTFdPSJCcmVhayIsKGU9anQ9anR8fHt9KVtlLkhpbnQ9MV09IkhpbnQiLGVbZS5JbmZvPTJdPSJJbmZvIixlW2UuV2FybmluZz00XT0iV2FybmluZyIsZVtlLkVycm9yPThdPSJFcnJvciIsKEd0PSR0PSR0fHx7fSlbR3QuVW5uZWNlc3Nhcnk9MV09IlVubmVjZXNzYXJ5IixHdFtHdC5EZXByZWNhdGVkPTJdPSJEZXByZWNhdGVkIiwoUXQ9SnQ9SnR8fHt9KVtRdC5MVFI9MF09IkxUUiIsUXRbUXQuUlRMPTFdPSJSVEwiO2NsYXNzIGlye2NvbnN0cnVjdG9yKCl7dGhpc1tZdF09IkxpbmtlZE1hcCIsdGhpcy5fbWFwPW5ldyBNYXAsdGhpcy5faGVhZD12b2lkIDAsdGhpcy5fdGFpbD12b2lkIDAsdGhpcy5fc2l6ZT0wLHRoaXMuX3N0YXRlPTB9Y2xlYXIoKXt0aGlzLl9tYXAuY2xlYXIoKSx0aGlzLl9oZWFkPXZvaWQgMCx0aGlzLl90YWlsPXZvaWQgMCx0aGlzLl9zaXplPTAsdGhpcy5fc3RhdGUrK31pc0VtcHR5KCl7cmV0dXJuIXRoaXMuX2hlYWQmJiF0aGlzLl90YWlsfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX3NpemV9Z2V0IGZpcnN0KCl7dmFyIGU7cmV0dXJuIG51bGw9PT0oZT10aGlzLl9oZWFkKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS52YWx1ZX1nZXQgbGFzdCgpe3ZhciBlO3JldHVybiBudWxsPT09KGU9dGhpcy5fdGFpbCl8fHZvaWQgMD09PWU/dm9pZCAwOmUudmFsdWV9aGFzKGUpe3JldHVybiB0aGlzLl9tYXAuaGFzKGUpfWdldChlLHQ9MCl7ZT10aGlzLl9tYXAuZ2V0KGUpO2lmKGUpcmV0dXJuIDAhPT10JiZ0aGlzLnRvdWNoKGUsdCksZS52YWx1ZX1zZXQoZSx0LHI9MCl7bGV0IG49dGhpcy5fbWFwLmdldChlKTtpZihuKW4udmFsdWU9dCwwIT09ciYmdGhpcy50b3VjaChuLHIpO2Vsc2V7c3dpdGNoKG49e2tleTplLHZhbHVlOnQsbmV4dDp2b2lkIDAscHJldmlvdXM6dm9pZCAwfSxyKXtjYXNlIDA6dGhpcy5hZGRJdGVtTGFzdChuKTticmVhaztjYXNlIDE6dGhpcy5hZGRJdGVtRmlyc3Qobik7YnJlYWs7ZGVmYXVsdDp0aGlzLmFkZEl0ZW1MYXN0KG4pfXRoaXMuX21hcC5zZXQoZSxuKSx0aGlzLl9zaXplKyt9cmV0dXJuIHRoaXN9ZGVsZXRlKGUpe3JldHVybiEhdGhpcy5yZW1vdmUoZSl9cmVtb3ZlKGUpe3ZhciB0PXRoaXMuX21hcC5nZXQoZSk7aWYodClyZXR1cm4gdGhpcy5fbWFwLmRlbGV0ZShlKSx0aGlzLnJlbW92ZUl0ZW0odCksdGhpcy5fc2l6ZS0tLHQudmFsdWV9c2hpZnQoKXtpZih0aGlzLl9oZWFkfHx0aGlzLl90YWlsKXtpZighdGhpcy5faGVhZHx8IXRoaXMuX3RhaWwpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGxpc3QiKTt2YXIgZT10aGlzLl9oZWFkO3JldHVybiB0aGlzLl9tYXAuZGVsZXRlKGUua2V5KSx0aGlzLnJlbW92ZUl0ZW0oZSksdGhpcy5fc2l6ZS0tLGUudmFsdWV9fWZvckVhY2goZSx0KXt2YXIgcj10aGlzLl9zdGF0ZTtsZXQgbj10aGlzLl9oZWFkO2Zvcig7bjspe2lmKCh0P2UuYmluZCh0KTplKShuLnZhbHVlLG4ua2V5LHRoaXMpLHRoaXMuX3N0YXRlIT09cil0aHJvdyBuZXcgRXJyb3IoIkxpbmtlZE1hcCBnb3QgbW9kaWZpZWQgZHVyaW5nIGl0ZXJhdGlvbi4iKTtuPW4ubmV4dH19a2V5cygpe2NvbnN0IHQ9dGhpcyxyPXRoaXMuX3N0YXRlO2xldCBuPXRoaXMuX2hlYWQ7Y29uc3QgZT17W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gZX0sbmV4dCgpe2lmKHQuX3N0YXRlIT09cil0aHJvdyBuZXcgRXJyb3IoIkxpbmtlZE1hcCBnb3QgbW9kaWZpZWQgZHVyaW5nIGl0ZXJhdGlvbi4iKTt2YXIgZTtyZXR1cm4gbj8oZT17dmFsdWU6bi5rZXksZG9uZTohMX0sbj1uLm5leHQsZSk6e3ZhbHVlOnZvaWQgMCxkb25lOiEwfX19O3JldHVybiBlfXZhbHVlcygpe2NvbnN0IHQ9dGhpcyxyPXRoaXMuX3N0YXRlO2xldCBuPXRoaXMuX2hlYWQ7Y29uc3QgZT17W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gZX0sbmV4dCgpe2lmKHQuX3N0YXRlIT09cil0aHJvdyBuZXcgRXJyb3IoIkxpbmtlZE1hcCBnb3QgbW9kaWZpZWQgZHVyaW5nIGl0ZXJhdGlvbi4iKTt2YXIgZTtyZXR1cm4gbj8oZT17dmFsdWU6bi52YWx1ZSxkb25lOiExfSxuPW4ubmV4dCxlKTp7dmFsdWU6dm9pZCAwLGRvbmU6ITB9fX07cmV0dXJuIGV9ZW50cmllcygpe2NvbnN0IHQ9dGhpcyxyPXRoaXMuX3N0YXRlO2xldCBuPXRoaXMuX2hlYWQ7Y29uc3QgZT17W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gZX0sbmV4dCgpe2lmKHQuX3N0YXRlIT09cil0aHJvdyBuZXcgRXJyb3IoIkxpbmtlZE1hcCBnb3QgbW9kaWZpZWQgZHVyaW5nIGl0ZXJhdGlvbi4iKTt2YXIgZTtyZXR1cm4gbj8oZT17dmFsdWU6W24ua2V5LG4udmFsdWVdLGRvbmU6ITF9LG49bi5uZXh0LGUpOnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19fTtyZXR1cm4gZX1bKFl0PVN5bWJvbC50b1N0cmluZ1RhZyxTeW1ib2wuaXRlcmF0b3IpXSgpe3JldHVybiB0aGlzLmVudHJpZXMoKX10cmltT2xkKHIpe2lmKCEocj49dGhpcy5zaXplKSlpZigwIT09cil7bGV0IGU9dGhpcy5faGVhZCx0PXRoaXMuc2l6ZTtmb3IoO2UmJnQ+cjspdGhpcy5fbWFwLmRlbGV0ZShlLmtleSksZT1lLm5leHQsdC0tO3RoaXMuX2hlYWQ9ZSx0aGlzLl9zaXplPXQsZSYmKGUucHJldmlvdXM9dm9pZCAwKSx0aGlzLl9zdGF0ZSsrfWVsc2UgdGhpcy5jbGVhcigpfWFkZEl0ZW1GaXJzdChlKXtpZih0aGlzLl9oZWFkfHx0aGlzLl90YWlsKXtpZighdGhpcy5faGVhZCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbGlzdCIpO2UubmV4dD10aGlzLl9oZWFkLHRoaXMuX2hlYWQucHJldmlvdXM9ZX1lbHNlIHRoaXMuX3RhaWw9ZTt0aGlzLl9oZWFkPWUsdGhpcy5fc3RhdGUrK31hZGRJdGVtTGFzdChlKXtpZih0aGlzLl9oZWFkfHx0aGlzLl90YWlsKXtpZighdGhpcy5fdGFpbCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbGlzdCIpO2UucHJldmlvdXM9dGhpcy5fdGFpbCx0aGlzLl90YWlsLm5leHQ9ZX1lbHNlIHRoaXMuX2hlYWQ9ZTt0aGlzLl90YWlsPWUsdGhpcy5fc3RhdGUrK31yZW1vdmVJdGVtKGUpe2lmKGU9PT10aGlzLl9oZWFkJiZlPT09dGhpcy5fdGFpbCl0aGlzLl9oZWFkPXZvaWQgMCx0aGlzLl90YWlsPXZvaWQgMDtlbHNlIGlmKGU9PT10aGlzLl9oZWFkKXtpZighZS5uZXh0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsaXN0Iik7ZS5uZXh0LnByZXZpb3VzPXZvaWQgMCx0aGlzLl9oZWFkPWUubmV4dH1lbHNlIGlmKGU9PT10aGlzLl90YWlsKXtpZighZS5wcmV2aW91cyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbGlzdCIpO2UucHJldmlvdXMubmV4dD12b2lkIDAsdGhpcy5fdGFpbD1lLnByZXZpb3VzfWVsc2V7Y29uc3QgdD1lLm5leHQscj1lLnByZXZpb3VzO2lmKCF0fHwhcil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbGlzdCIpOyh0LnByZXZpb3VzPXIpLm5leHQ9dH1lLm5leHQ9dm9pZCAwLGUucHJldmlvdXM9dm9pZCAwLHRoaXMuX3N0YXRlKyt9dG91Y2goZSx0KXtpZighdGhpcy5faGVhZHx8IXRoaXMuX3RhaWwpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGxpc3QiKTtpZigxPT09dHx8Mj09PXQpaWYoMT09PXQpe2lmKGUhPT10aGlzLl9oZWFkKXtjb25zdCByPWUubmV4dCxuPWUucHJldmlvdXM7ZT09PXRoaXMuX3RhaWw/KG4ubmV4dD12b2lkIDAsdGhpcy5fdGFpbD1uKTooci5wcmV2aW91cz1uKS5uZXh0PXIsZS5wcmV2aW91cz12b2lkIDAsZS5uZXh0PXRoaXMuX2hlYWQsdGhpcy5faGVhZC5wcmV2aW91cz1lLHRoaXMuX2hlYWQ9ZSx0aGlzLl9zdGF0ZSsrfX1lbHNlIGlmKDI9PT10JiZlIT09dGhpcy5fdGFpbCl7Y29uc3QgaT1lLm5leHQsYT1lLnByZXZpb3VzO2U9PT10aGlzLl9oZWFkPyhpLnByZXZpb3VzPXZvaWQgMCx0aGlzLl9oZWFkPWkpOihpLnByZXZpb3VzPWEpLm5leHQ9aSxlLm5leHQ9dm9pZCAwLGUucHJldmlvdXM9dGhpcy5fdGFpbCx0aGlzLl90YWlsLm5leHQ9ZSx0aGlzLl90YWlsPWUsdGhpcy5fc3RhdGUrK319dG9KU09OKCl7Y29uc3Qgcj1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKChlLHQpPT57ci5wdXNoKFt0LGVdKX0pLHJ9ZnJvbUpTT04oZSl7dGhpcy5jbGVhcigpO2Zvcih2YXJbdCxyXW9mIGUpdGhpcy5zZXQodCxyKX19ZnVuY3Rpb24gYXIoZSx0LHIpe2lmKCFyfHxyLmxlbmd0aDx0Lmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgbjt2YXIgaSxhO3JldHVybihuPWU/KGU9cixhPShpPXQpLmxlbmd0aCwhKGkubGVuZ3RoPmUubGVuZ3RoKSYmMD09PWFlKGUsaSwwLGEpKTowPT09ci5pbmRleE9mKHQpKT8wPHQubGVuZ3RoP1t7c3RhcnQ6MCxlbmQ6dC5sZW5ndGh9XTpbXTpudWxsfWFyLmJpbmQodm9pZCAwLCExKSxhci5iaW5kKHZvaWQgMCwhMCk7Y29uc3Qgb3I9bmV3IFNldDsiKClbXXt9PD5gJ1wiLS87OiwuPyEiLnNwbGl0KCIiKS5mb3JFYWNoKGU9Pm9yLmFkZChlLmNoYXJDb2RlQXQoMCkpKSxuZXcgY2xhc3MgZXh0ZW5kcyBpcntjb25zdHJ1Y3RvcihlLHQ9MSl7c3VwZXIoKSx0aGlzLl9saW1pdD1lLHRoaXMuX3JhdGlvPU1hdGgubWluKE1hdGgubWF4KDAsdCksMSl9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMuX2xpbWl0fXNldCBsaW1pdChlKXt0aGlzLl9saW1pdD1lLHRoaXMuY2hlY2tUcmltKCl9Z2V0KGUsdD0yKXtyZXR1cm4gc3VwZXIuZ2V0KGUsdCl9cGVlayhlKXtyZXR1cm4gc3VwZXIuZ2V0KGUsMCl9c2V0KGUsdCl7cmV0dXJuIHN1cGVyLnNldChlLHQsMiksdGhpcy5jaGVja1RyaW0oKSx0aGlzfWNoZWNrVHJpbSgpe3RoaXMuc2l6ZT50aGlzLl9saW1pdCYmdGhpcy50cmltT2xkKE1hdGgucm91bmQodGhpcy5fbGltaXQqdGhpcy5fcmF0aW8pKX19KDFlNCk7ZnVuY3Rpb24gc3IoKXtjb25zdCB0PVtdLHI9W107Zm9yKGxldCBlPTA7ZTw9MTI4O2UrKylyW2VdPTA7Zm9yKGxldCBlPTA7ZTw9MTI4O2UrKyl0LnB1c2goci5zbGljZSgwKSk7cmV0dXJuIHR9ZnVuY3Rpb24gbHIodCl7Y29uc3Qgcj1bXTtmb3IobGV0IGU9MDtlPD10O2UrKylyW2VdPTA7cmV0dXJuIHJ9bHIoMjU2KSxscigyNTYpLHNyKCksc3IoKSxzcigpO3ZhciBocixjcix1cixFPW5ldyBSZWdFeHAoYFxcJFxcKCR7cXQuaWNvbk5hbWVFeHByZXNzaW9ufSg/OiR7cXQuaWNvbk1vZGlmaWVyRXhwcmVzc2lvbn0pP1xcKWAsImciKTtuZXcgUmVnRXhwKHF0Lmljb25OYW1lQ2hhcmFjdGVyKTtjb25zdCBkcj1uZXcgUmVnRXhwKCIoXFxcXCk/IitFLnNvdXJjZSwiZyIpO25ldyBSZWdFeHAoIlxcXFwiK0Uuc291cmNlLCJnIiksbmV3IFJlZ0V4cChgKFxccyk/KFxcXFwpPyR7RS5zb3VyY2V9KFxccyk/YCwiZyIpO2NsYXNzIGZye2NvbnN0cnVjdG9yKGU9IiIsdD0hMSl7aWYodGhpcy52YWx1ZT1lLCJzdHJpbmciIT10eXBlb2YgdGhpcy52YWx1ZSl0aHJvdyhlPSJ2YWx1ZSIpP25ldyBFcnJvcigiSWxsZWdhbCBhcmd1bWVudDogIitlKTpuZXcgRXJyb3IoIklsbGVnYWwgYXJndW1lbnQiKTsiYm9vbGVhbiI9PXR5cGVvZiB0Pyh0aGlzLmlzVHJ1c3RlZD10LHRoaXMuc3VwcG9ydFRoZW1lSWNvbnM9ITEsdGhpcy5zdXBwb3J0SHRtbD0hMSk6KHRoaXMuaXNUcnVzdGVkPW51bGwhPT0oZT10LmlzVHJ1c3RlZCkmJnZvaWQgMCE9PWU/ZTp2b2lkIDAsdGhpcy5zdXBwb3J0VGhlbWVJY29ucz1udWxsIT09KGU9dC5zdXBwb3J0VGhlbWVJY29ucykmJnZvaWQgMCE9PWUmJmUsdGhpcy5zdXBwb3J0SHRtbD1udWxsIT09KGU9dC5zdXBwb3J0SHRtbCkmJnZvaWQgMCE9PWUmJmUpfWFwcGVuZFRleHQoZSx0PTApe3JldHVybiB0aGlzLnZhbHVlKz0odGhpcy5zdXBwb3J0VGhlbWVJY29ucz9lLnJlcGxhY2UoZHIsKGUsdCk9PnQ/ZToiXFwiK2UpOmUpLnJlcGxhY2UoL1tcXGAqX3t9W1xdKCkjK1wtIV0vZywiXFwkJiIpLnJlcGxhY2UoLyhbIFx0XSspL2csKGUsdCk9PiImbmJzcDsiLnJlcGVhdCh0Lmxlbmd0aCkpLnJlcGxhY2UoL1w+L2dtLCJcXD4iKS5yZXBsYWNlKC9cbi9nLDE9PT10PyJcXFxuIjoiXG5cbiIpLHRoaXN9YXBwZW5kTWFya2Rvd24oZSl7cmV0dXJuIHRoaXMudmFsdWUrPWUsdGhpc31hcHBlbmRDb2RlYmxvY2soZSx0KXtyZXR1cm4gdGhpcy52YWx1ZSs9IlxuYGBgIix0aGlzLnZhbHVlKz1lLHRoaXMudmFsdWUrPSJcbiIsdGhpcy52YWx1ZSs9dCx0aGlzLnZhbHVlKz0iXG5gYGBcbiIsdGhpc319ZnVuY3Rpb24gbXIoZSl7aWYoaHIuc2VydmljZUlkcy5oYXMoZSkpcmV0dXJuIGhyLnNlcnZpY2VJZHMuZ2V0KGUpO2Z1bmN0aW9uIGkoZSx0LHIpe2lmKDMhPT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQElTZXJ2aWNlTmFtZS1kZWNvcmF0b3IgY2FuIG9ubHkgYmUgdXNlZCB0byBkZWNvcmF0ZSBhIHBhcmFtZXRlciIpO3ZhciBuO249aSxyPXIsKGU9ZSlbaHIuRElfVEFSR0VUXT09PWU/ZVtoci5ESV9ERVBFTkRFTkNJRVNdLnB1c2goe2lkOm4saW5kZXg6cn0pOihlW2hyLkRJX0RFUEVOREVOQ0lFU109W3tpZDpuLGluZGV4OnJ9XSxlW2hyLkRJX1RBUkdFVF09ZSl9cmV0dXJuIGkudG9TdHJpbmc9KCk9PmUsaHIuc2VydmljZUlkcy5zZXQoZSxpKSxpLDF9KGNyPWhyPWhyfHx7fSkuc2VydmljZUlkcz1uZXcgTWFwLGNyLkRJX1RBUkdFVD0iJGRpJHRhcmdldCIsY3IuRElfREVQRU5ERU5DSUVTPSIkZGkkZGVwZW5kZW5jaWVzIixjci5nZXRTZXJ2aWNlRGVwZW5kZW5jaWVzPWZ1bmN0aW9uKGUpe3JldHVybiBlW2NyLkRJX0RFUEVOREVOQ0lFU118fFtdfSxtcigiaW5zdGFudGlhdGlvblNlcnZpY2UiKSxtcigibG9nU2VydmljZSIpLG1yKCJsb2dnZXJTZXJ2aWNlIiksKGU9dXI9dXJ8fHt9KVtlLlRyYWNlPTBdPSJUcmFjZSIsZVtlLkRlYnVnPTFdPSJEZWJ1ZyIsZVtlLkluZm89Ml09IkluZm8iLGVbZS5XYXJuaW5nPTNdPSJXYXJuaW5nIixlW2UuRXJyb3I9NF09IkVycm9yIixlW2UuQ3JpdGljYWw9NV09IkNyaXRpY2FsIixlW2UuT2ZmPTZdPSJPZmYiO2NvbnN0IGdyPXVyLkluZm87Y2xhc3MgYnIgZXh0ZW5kcyBMe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmxldmVsPWdyLHRoaXMuX29uRGlkQ2hhbmdlTG9nTGV2ZWw9dGhpcy5fcmVnaXN0ZXIobmV3IHRlKSx0aGlzLm9uRGlkQ2hhbmdlTG9nTGV2ZWw9dGhpcy5fb25EaWRDaGFuZ2VMb2dMZXZlbC5ldmVudH1zZXRMZXZlbChlKXt0aGlzLmxldmVsIT09ZSYmKHRoaXMubGV2ZWw9ZSx0aGlzLl9vbkRpZENoYW5nZUxvZ0xldmVsLmZpcmUodGhpcy5sZXZlbCkpfWdldExldmVsKCl7cmV0dXJuIHRoaXMubGV2ZWx9fWNsYXNzIENyIGV4dGVuZHMgYnJ7Y29uc3RydWN0b3IoZT1ncil7c3VwZXIoKSx0aGlzLnNldExldmVsKGUpfXRyYWNlKGUsLi4udCl7dGhpcy5nZXRMZXZlbCgpPD11ci5UcmFjZSYmY29uc29sZS5sb2coIiVjVFJBQ0UiLCJjb2xvcjogIzg4OCIsZSwuLi50KX1kZWJ1ZyhlLC4uLnQpe3RoaXMuZ2V0TGV2ZWwoKTw9dXIuRGVidWcmJmNvbnNvbGUubG9nKCIlY0RFQlVHIiwiYmFja2dyb3VuZDogI2VlZTsgY29sb3I6ICM4ODgiLGUsLi4udCl9aW5mbyhlLC4uLnQpe3RoaXMuZ2V0TGV2ZWwoKTw9dXIuSW5mbyYmY29uc29sZS5sb2coIiVjIElORk8iLCJjb2xvcjogIzMzZiIsZSwuLi50KX13YXJuKGUsLi4udCl7dGhpcy5nZXRMZXZlbCgpPD11ci5XYXJuaW5nJiZjb25zb2xlLmxvZygiJWMgV0FSTiIsImNvbG9yOiAjOTkzIixlLC4uLnQpfWVycm9yKGUsLi4udCl7dGhpcy5nZXRMZXZlbCgpPD11ci5FcnJvciYmY29uc29sZS5sb2coIiVjICBFUlIiLCJjb2xvcjogI2YzMyIsZSwuLi50KX1jcml0aWNhbChlLC4uLnQpe3RoaXMuZ2V0TGV2ZWwoKTw9dXIuQ3JpdGljYWwmJmNvbnNvbGUubG9nKCIlY0NSSVRJIiwiYmFja2dyb3VuZDogI2YzMzsgY29sb3I6IHdoaXRlIixlLC4uLnQpfWRpc3Bvc2UoKXt9Zmx1c2goKXt9fWNsYXNzIHBye3N0YXRpYyBjaG9yZChlLHQpe3JldHVybihlfCg2NTUzNSZ0KTw8MTY+Pj4wKT4+PjB9fWZ1bmN0aW9uIHdyKGUsdCxyLG4saSl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyLG4pe2lmKDA9PT1yKXJldHVybiAxO3ZhciBpPXQuY2hhckNvZGVBdChyLTEpO2lmKDAhPT1lLmdldChpKSlyZXR1cm4gMTtpZigxMz09PWl8fDEwPT09aSlyZXR1cm4gMTtpZigwPG4pe2k9dC5jaGFyQ29kZUF0KHIpO2lmKDAhPT1lLmdldChpKSlyZXR1cm4gMX1yZXR1cm59KGUsdCxuLGkpJiZmdW5jdGlvbihlLHQscixuLGkpe2lmKG4raT09PXIpcmV0dXJuIDE7aWYocj10LmNoYXJDb2RlQXQobitpKSwwIT09ZS5nZXQocikpcmV0dXJuIDE7aWYoMTM9PT1yfHwxMD09PXIpcmV0dXJuIDE7aWYoMDxpKXtyPXQuY2hhckNvZGVBdChuK2ktMSk7aWYoMCE9PWUuZ2V0KHIpKXJldHVybiAxfXJldHVybn0oZSx0LHIsbixpKX1wci5DdHJsQ21kPTIwNDgscHIuU2hpZnQ9MTAyNCxwci5BbHQ9NTEyLHByLldpbkN0cmw9MjU2O2NsYXNzIF9ye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fd29yZFNlcGFyYXRvcnM9ZSx0aGlzLl9zZWFyY2hSZWdleD10LHRoaXMuX3ByZXZNYXRjaFN0YXJ0SW5kZXg9LTEsdGhpcy5fcHJldk1hdGNoTGVuZ3RoPTB9cmVzZXQoZSl7dGhpcy5fc2VhcmNoUmVnZXgubGFzdEluZGV4PWUsdGhpcy5fcHJldk1hdGNoU3RhcnRJbmRleD0tMSx0aGlzLl9wcmV2TWF0Y2hMZW5ndGg9MH1uZXh0KGUpe3ZhciB0PWUubGVuZ3RoO2xldCByO2Rve2lmKHRoaXMuX3ByZXZNYXRjaFN0YXJ0SW5kZXgrdGhpcy5fcHJldk1hdGNoTGVuZ3RoPT09dClyZXR1cm4gbnVsbDtpZighKHI9dGhpcy5fc2VhcmNoUmVnZXguZXhlYyhlKSkpcmV0dXJuIG51bGw7dmFyIG49ci5pbmRleCxpPXJbMF0ubGVuZ3RoO2lmKG4hPT10aGlzLl9wcmV2TWF0Y2hTdGFydEluZGV4fHxpIT09dGhpcy5fcHJldk1hdGNoTGVuZ3RoKXtpZih0aGlzLl9wcmV2TWF0Y2hTdGFydEluZGV4PW4sdGhpcy5fcHJldk1hdGNoTGVuZ3RoPWksIXRoaXMuX3dvcmRTZXBhcmF0b3JzfHx3cih0aGlzLl93b3JkU2VwYXJhdG9ycyxlLHQsbixpKSlyZXR1cm4gcn1lbHNle2lmKDAhPT1pKXJldHVybiBudWxsOzY1NTM1PGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1lLmNoYXJDb2RlQXQocik7aWYobGUobikmJnIrMTx0KXt0PWUuY2hhckNvZGVBdChyKzEpO2lmKDU2MzIwPD0oZT10KSYmZTw9NTczNDMpcmV0dXJuIHQtNTYzMjArKG4tNTUyOTY8PDEwKSs2NTUzNn1yZXR1cm4gbn0oZSx0LHRoaXMuX3NlYXJjaFJlZ2V4Lmxhc3RJbmRleCk/dGhpcy5fc2VhcmNoUmVnZXgubGFzdEluZGV4Kz0yOnRoaXMuX3NlYXJjaFJlZ2V4Lmxhc3RJbmRleCs9MX19d2hpbGUocik7cmV0dXJuIG51bGx9fWNsYXNzIHZye3N0YXRpYyBjb21wdXRlVW5pY29kZUhpZ2hsaWdodHModCxjLGUpe3ZhciB1PWU/ZS5zdGFydExpbmVOdW1iZXI6MSxkPWU/ZS5lbmRMaW5lTnVtYmVyOnQuZ2V0TGluZUNvdW50KCk7Y29uc3Qgbj1uZXcgeXIoYyk7dmFyIGksZT1uLmdldENhbmRpZGF0ZUNvZGVQb2ludHMoKTtsZXQgcjtyPSJhbGxOb25CYXNpY0FzY2lpIj09PWU/bmV3IFJlZ0V4cCgiW15cXHRcXG5cXHJcXHgyMC1cXHg3RV0iLCJnIik6bmV3IFJlZ0V4cCgiIitmdW5jdGlvbihlKXtlPWBbJHtlLm1hcChlPT5TdHJpbmcuZnJvbUNvZGVQb2ludChlKSkuam9pbigiIikucmVwbGFjZSgvW1xcXHtcfVwqXCtcP1x8XF5cJFwuXFtcXVwoXCldL2csIlxcJCYiKX1dYDtyZXR1cm4gZX0oQXJyYXkuZnJvbShlKSksImciKTtjb25zdCBhPW5ldyBfcihudWxsLHIpLG89W107bGV0IGY9ITEsbT0wLGc9MCxiPTA7ZTpmb3IobGV0IHI9dSxlPWQ7cjw9ZTtyKyspe2NvbnN0IGg9dC5nZXRMaW5lQ29udGVudChyKTt2YXIgQz1oLmxlbmd0aDthLnJlc2V0KDApO2Rve2lmKGk9YS5uZXh0KGgpKXtsZXQgZT1pLmluZGV4LHQ9aS5pbmRleCtpWzBdLmxlbmd0aDswPGUmJmxlKGguY2hhckNvZGVBdChlLTEpKSYmZS0tLHQrMTxDJiZsZShoLmNoYXJDb2RlQXQodC0xKSkmJnQrKzt2YXIgcz1oLnN1YnN0cmluZyhlLHQpLGw9d3QoZSsxLEN0LGgsMCkscz1uLnNob3VsZEhpZ2hsaWdodE5vbkJhc2ljQVNDSUkocyxsP2wud29yZDpudWxsKTtpZigwIT09cyl7aWYoMz09PXMpbSsrO2Vsc2UgaWYoMj09PXMpZysrO2Vsc2V7aWYoMSE9PXMpdGhyb3cgbD12b2lkIDAsW2w9IlVucmVhY2hhYmxlIl09W10sbmV3IEVycm9yKGwpO2IrK31pZigxZTM8PW8ubGVuZ3RoKXtmPSEwO2JyZWFrIGV9by5wdXNoKG5ldyBwKHIsZSsxLHIsdCsxKSl9fX13aGlsZShpKX1yZXR1cm57cmFuZ2VzOm8saGFzTW9yZTpmLGFtYmlndW91c0NoYXJhY3RlckNvdW50Om0saW52aXNpYmxlQ2hhcmFjdGVyQ291bnQ6Zyxub25CYXNpY0FzY2lpQ2hhcmFjdGVyQ291bnQ6Yn19c3RhdGljIGNvbXB1dGVVbmljb2RlSGlnaGxpZ2h0UmVhc29uKGUsdCl7Y29uc3Qgcj1uZXcgeXIodCk7c3dpdGNoKHIuc2hvdWxkSGlnaGxpZ2h0Tm9uQmFzaWNBU0NJSShlLG51bGwpKXtjYXNlIDA6cmV0dXJuIG51bGw7Y2FzZSAyOnJldHVybntraW5kOjF9O2Nhc2UgMzp7Y29uc3QgYT1lLmNvZGVQb2ludEF0KDApO3ZhciBuPXIuYW1iaWd1b3VzQ2hhcmFjdGVycy5nZXRQcmltYXJ5Q29uZnVzYWJsZShhKSxpPWNlLmdldExvY2FsZXMoKS5maWx0ZXIoZT0+IWNlLmdldEluc3RhbmNlKG5ldyBTZXQoWy4uLnQuYWxsb3dlZExvY2FsZXMsZV0pKS5pc0FtYmlndW91cyhhKSk7cmV0dXJue2tpbmQ6MCxjb25mdXNhYmxlV2l0aDpTdHJpbmcuZnJvbUNvZGVQb2ludChuKSxub3RBbWJpZ3VvdXNJbkxvY2FsZXM6aX19Y2FzZSAxOnJldHVybntraW5kOjJ9fX19Y2xhc3MgeXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5vcHRpb25zPWUsdGhpcy5hbGxvd2VkQ29kZVBvaW50cz1uZXcgU2V0KGUuYWxsb3dlZENvZGVQb2ludHMpLHRoaXMuYW1iaWd1b3VzQ2hhcmFjdGVycz1jZS5nZXRJbnN0YW5jZShuZXcgU2V0KGUuYWxsb3dlZExvY2FsZXMpKX1nZXRDYW5kaWRhdGVDb2RlUG9pbnRzKCl7aWYodGhpcy5vcHRpb25zLm5vbkJhc2ljQVNDSUkpcmV0dXJuImFsbE5vbkJhc2ljQXNjaWkiO2NvbnN0IGU9bmV3IFNldDtpZih0aGlzLm9wdGlvbnMuaW52aXNpYmxlQ2hhcmFjdGVycylmb3IoY29uc3QgdCBvZiB1ZS5jb2RlUG9pbnRzKUxyKFN0cmluZy5mcm9tQ29kZVBvaW50KHQpKXx8ZS5hZGQodCk7aWYodGhpcy5vcHRpb25zLmFtYmlndW91c0NoYXJhY3RlcnMpZm9yKGNvbnN0IHIgb2YgdGhpcy5hbWJpZ3VvdXNDaGFyYWN0ZXJzLmdldENvbmZ1c2FibGVDb2RlUG9pbnRzKCkpZS5hZGQocik7Zm9yKGNvbnN0IG4gb2YgdGhpcy5hbGxvd2VkQ29kZVBvaW50cyllLmRlbGV0ZShuKTtyZXR1cm4gZX1zaG91bGRIaWdobGlnaHROb25CYXNpY0FTQ0lJKGUsdCl7Y29uc3Qgcj1lLmNvZGVQb2ludEF0KDApO2lmKHRoaXMuYWxsb3dlZENvZGVQb2ludHMuaGFzKHIpKXJldHVybiAwO2lmKHRoaXMub3B0aW9ucy5ub25CYXNpY0FTQ0lJKXJldHVybiAxO2xldCBuPSExLGk9ITE7aWYodClmb3IodmFyIGEgb2YgdCl7Y29uc3Qgcj1hLmNvZGVQb2ludEF0KDApO2E9YTthPWhlLnRlc3QoYSk7bj1ufHxhLGF8fHRoaXMuYW1iaWd1b3VzQ2hhcmFjdGVycy5pc0FtYmlndW91cyhyKXx8dWUuaXNJbnZpc2libGVDaGFyYWN0ZXIocil8fChpPSEwKX1yZXR1cm4hbiYmaT8wOnRoaXMub3B0aW9ucy5pbnZpc2libGVDaGFyYWN0ZXJzJiYhTHIoZSkmJnVlLmlzSW52aXNpYmxlQ2hhcmFjdGVyKHIpPzI6dGhpcy5vcHRpb25zLmFtYmlndW91c0NoYXJhY3RlcnMmJnRoaXMuYW1iaWd1b3VzQ2hhcmFjdGVycy5pc0FtYmlndW91cyhyKT8zOjB9fWZ1bmN0aW9uIExyKGUpe3JldHVybiIgIj09PWV8fCJcbiI9PT1lfHwiXHQiPT09ZX12YXIgU3I9ZnVuY3Rpb24oZSxvLHMsbCl7cmV0dXJuIG5ldyhzPXN8fFByb21pc2UpKGZ1bmN0aW9uKHIsdCl7ZnVuY3Rpb24gbihlKXt0cnl7YShsLm5leHQoZSkpfWNhdGNoKGUpe3QoZSl9fWZ1bmN0aW9uIGkoZSl7dHJ5e2EobC50aHJvdyhlKSl9Y2F0Y2goZSl7dChlKX19ZnVuY3Rpb24gYShlKXt2YXIgdDtlLmRvbmU/cihlLnZhbHVlKTooKHQ9ZS52YWx1ZSlpbnN0YW5jZW9mIHM/dDpuZXcgcyhmdW5jdGlvbihlKXtlKHQpfSkpLnRoZW4obixpKX1hKChsPWwuYXBwbHkoZSxvfHxbXSkpLm5leHQoKSl9KX07Y2xhc3MgTnIgZXh0ZW5kcyBjbGFzc3tjb25zdHJ1Y3RvcihlLHQscixuKXt0aGlzLl91cmk9ZSx0aGlzLl9saW5lcz10LHRoaXMuX2VvbD1yLHRoaXMuX3ZlcnNpb25JZD1uLHRoaXMuX2xpbmVTdGFydHM9bnVsbCx0aGlzLl9jYWNoZWRUZXh0VmFsdWU9bnVsbH1kaXNwb3NlKCl7dGhpcy5fbGluZXMubGVuZ3RoPTB9Z2V0IHZlcnNpb24oKXtyZXR1cm4gdGhpcy5fdmVyc2lvbklkfWdldFRleHQoKXtyZXR1cm4gbnVsbD09PXRoaXMuX2NhY2hlZFRleHRWYWx1ZSYmKHRoaXMuX2NhY2hlZFRleHRWYWx1ZT10aGlzLl9saW5lcy5qb2luKHRoaXMuX2VvbCkpLHRoaXMuX2NhY2hlZFRleHRWYWx1ZX1vbkV2ZW50cyhlKXtlLmVvbCYmZS5lb2whPT10aGlzLl9lb2wmJih0aGlzLl9lb2w9ZS5lb2wsdGhpcy5fbGluZVN0YXJ0cz1udWxsKTtmb3IoY29uc3QgdCBvZiBlLmNoYW5nZXMpdGhpcy5fYWNjZXB0RGVsZXRlUmFuZ2UodC5yYW5nZSksdGhpcy5fYWNjZXB0SW5zZXJ0VGV4dChuZXcgbnQodC5yYW5nZS5zdGFydExpbmVOdW1iZXIsdC5yYW5nZS5zdGFydENvbHVtbiksdC50ZXh0KTt0aGlzLl92ZXJzaW9uSWQ9ZS52ZXJzaW9uSWQsdGhpcy5fY2FjaGVkVGV4dFZhbHVlPW51bGx9X2Vuc3VyZUxpbmVTdGFydHMoKXtpZighdGhpcy5fbGluZVN0YXJ0cyl7dmFyIHQ9dGhpcy5fZW9sLmxlbmd0aCxyPXRoaXMuX2xpbmVzLmxlbmd0aDtjb25zdCBuPW5ldyBVaW50MzJBcnJheShyKTtmb3IobGV0IGU9MDtlPHI7ZSsrKW5bZV09dGhpcy5fbGluZXNbZV0ubGVuZ3RoK3Q7dGhpcy5fbGluZVN0YXJ0cz1uZXcgZ3Qobil9fV9zZXRMaW5lVGV4dChlLHQpe3RoaXMuX2xpbmVzW2VdPXQsdGhpcy5fbGluZVN0YXJ0cyYmdGhpcy5fbGluZVN0YXJ0cy5zZXRWYWx1ZShlLHRoaXMuX2xpbmVzW2VdLmxlbmd0aCt0aGlzLl9lb2wubGVuZ3RoKX1fYWNjZXB0RGVsZXRlUmFuZ2UoZSl7aWYoZS5zdGFydExpbmVOdW1iZXI9PT1lLmVuZExpbmVOdW1iZXIpcmV0dXJuIGUuc3RhcnRDb2x1bW49PT1lLmVuZENvbHVtbj92b2lkIDA6dm9pZCB0aGlzLl9zZXRMaW5lVGV4dChlLnN0YXJ0TGluZU51bWJlci0xLHRoaXMuX2xpbmVzW2Uuc3RhcnRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZygwLGUuc3RhcnRDb2x1bW4tMSkrdGhpcy5fbGluZXNbZS5zdGFydExpbmVOdW1iZXItMV0uc3Vic3RyaW5nKGUuZW5kQ29sdW1uLTEpKTt0aGlzLl9zZXRMaW5lVGV4dChlLnN0YXJ0TGluZU51bWJlci0xLHRoaXMuX2xpbmVzW2Uuc3RhcnRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZygwLGUuc3RhcnRDb2x1bW4tMSkrdGhpcy5fbGluZXNbZS5lbmRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZyhlLmVuZENvbHVtbi0xKSksdGhpcy5fbGluZXMuc3BsaWNlKGUuc3RhcnRMaW5lTnVtYmVyLGUuZW5kTGluZU51bWJlci1lLnN0YXJ0TGluZU51bWJlciksdGhpcy5fbGluZVN0YXJ0cyYmdGhpcy5fbGluZVN0YXJ0cy5yZW1vdmVWYWx1ZXMoZS5zdGFydExpbmVOdW1iZXIsZS5lbmRMaW5lTnVtYmVyLWUuc3RhcnRMaW5lTnVtYmVyKX1fYWNjZXB0SW5zZXJ0VGV4dCh0LGUpe2lmKDAhPT1lLmxlbmd0aCl7Y29uc3Qgcj1lLnNwbGl0KC9cclxufFxyfFxuLyk7aWYoMSE9PXIubGVuZ3RoKXtyW3IubGVuZ3RoLTFdKz10aGlzLl9saW5lc1t0LmxpbmVOdW1iZXItMV0uc3Vic3RyaW5nKHQuY29sdW1uLTEpLHRoaXMuX3NldExpbmVUZXh0KHQubGluZU51bWJlci0xLHRoaXMuX2xpbmVzW3QubGluZU51bWJlci0xXS5zdWJzdHJpbmcoMCx0LmNvbHVtbi0xKStyWzBdKTtjb25zdCBuPW5ldyBVaW50MzJBcnJheShyLmxlbmd0aC0xKTtmb3IobGV0IGU9MTtlPHIubGVuZ3RoO2UrKyl0aGlzLl9saW5lcy5zcGxpY2UodC5saW5lTnVtYmVyK2UtMSwwLHJbZV0pLG5bZS0xXT1yW2VdLmxlbmd0aCt0aGlzLl9lb2wubGVuZ3RoO3RoaXMuX2xpbmVTdGFydHMmJnRoaXMuX2xpbmVTdGFydHMuaW5zZXJ0VmFsdWVzKHQubGluZU51bWJlcixuKX1lbHNlIHRoaXMuX3NldExpbmVUZXh0KHQubGluZU51bWJlci0xLHRoaXMuX2xpbmVzW3QubGluZU51bWJlci0xXS5zdWJzdHJpbmcoMCx0LmNvbHVtbi0xKStyWzBdK3RoaXMuX2xpbmVzW3QubGluZU51bWJlci0xXS5zdWJzdHJpbmcodC5jb2x1bW4tMSkpfX19e2dldCB1cmkoKXtyZXR1cm4gdGhpcy5fdXJpfWdldCBlb2woKXtyZXR1cm4gdGhpcy5fZW9sfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMuZ2V0VGV4dCgpfWdldExpbmVzQ29udGVudCgpe3JldHVybiB0aGlzLl9saW5lcy5zbGljZSgwKX1nZXRMaW5lQ291bnQoKXtyZXR1cm4gdGhpcy5fbGluZXMubGVuZ3RofWdldExpbmVDb250ZW50KGUpe3JldHVybiB0aGlzLl9saW5lc1tlLTFdfWdldFdvcmRBdFBvc2l0aW9uKGUsdCl7dD13dChlLmNvbHVtbixmdW5jdGlvbih0KXtsZXQgcj1DdDtpZih0JiZ0IGluc3RhbmNlb2YgUmVnRXhwKWlmKHQuZ2xvYmFsKXI9dDtlbHNle2xldCBlPSJnIjt0Lmlnbm9yZUNhc2UmJihlKz0iaSIpLHQubXVsdGlsaW5lJiYoZSs9Im0iKSx0LnVuaWNvZGUmJihlKz0idSIpLHI9bmV3IFJlZ0V4cCh0LnNvdXJjZSxlKX1yZXR1cm4gci5sYXN0SW5kZXg9MCxyfSh0KSx0aGlzLl9saW5lc1tlLmxpbmVOdW1iZXItMV0sMCk7cmV0dXJuIHQ/bmV3IHAoZS5saW5lTnVtYmVyLHQuc3RhcnRDb2x1bW4sZS5saW5lTnVtYmVyLHQuZW5kQ29sdW1uKTpudWxsfXdvcmRzKHQpe2NvbnN0IHI9dGhpcy5fbGluZXMsbj10aGlzLl93b3JkZW5pemUuYmluZCh0aGlzKTtsZXQgaT0wLGE9IiIsbz0wLHM9W107cmV0dXJueypbU3ltYm9sLml0ZXJhdG9yXSgpe2Zvcig7OylpZihvPHMubGVuZ3RoKXt2YXIgZT1hLnN1YnN0cmluZyhzW29dLnN0YXJ0LHNbb10uZW5kKTtvKz0xLHlpZWxkIGV9ZWxzZXtpZighKGk8ci5sZW5ndGgpKWJyZWFrO2E9cltpXSxzPW4oYSx0KSxvPTAsaSs9MX19fX1nZXRMaW5lV29yZHMoZSx0KXtjb25zdCByPXRoaXMuX2xpbmVzW2UtMV07Y29uc3Qgbj1bXTtmb3IoY29uc3QgaSBvZiB0aGlzLl93b3JkZW5pemUocix0KSluLnB1c2goe3dvcmQ6ci5zdWJzdHJpbmcoaS5zdGFydCxpLmVuZCksc3RhcnRDb2x1bW46aS5zdGFydCsxLGVuZENvbHVtbjppLmVuZCsxfSk7cmV0dXJuIG59X3dvcmRlbml6ZShlLHQpe2NvbnN0IHI9W107dmFyIG47Zm9yKHQubGFzdEluZGV4PTA7KG49dC5leGVjKGUpKSYmMCE9PW5bMF0ubGVuZ3RoOylyLnB1c2goe3N0YXJ0Om4uaW5kZXgsZW5kOm4uaW5kZXgrblswXS5sZW5ndGh9KTtyZXR1cm4gcn1nZXRWYWx1ZUluUmFuZ2UoZSl7aWYoKGU9dGhpcy5fdmFsaWRhdGVSYW5nZShlKSkuc3RhcnRMaW5lTnVtYmVyPT09ZS5lbmRMaW5lTnVtYmVyKXJldHVybiB0aGlzLl9saW5lc1tlLnN0YXJ0TGluZU51bWJlci0xXS5zdWJzdHJpbmcoZS5zdGFydENvbHVtbi0xLGUuZW5kQ29sdW1uLTEpO3ZhciB0PXRoaXMuX2VvbCxyPWUuc3RhcnRMaW5lTnVtYmVyLTEsbj1lLmVuZExpbmVOdW1iZXItMTtjb25zdCBpPVtdO2kucHVzaCh0aGlzLl9saW5lc1tyXS5zdWJzdHJpbmcoZS5zdGFydENvbHVtbi0xKSk7Zm9yKGxldCBlPTErcjtlPG47ZSsrKWkucHVzaCh0aGlzLl9saW5lc1tlXSk7cmV0dXJuIGkucHVzaCh0aGlzLl9saW5lc1tuXS5zdWJzdHJpbmcoMCxlLmVuZENvbHVtbi0xKSksaS5qb2luKHQpfW9mZnNldEF0KGUpe3JldHVybiBlPXRoaXMuX3ZhbGlkYXRlUG9zaXRpb24oZSksdGhpcy5fZW5zdXJlTGluZVN0YXJ0cygpLHRoaXMuX2xpbmVTdGFydHMuZ2V0UHJlZml4U3VtKGUubGluZU51bWJlci0yKSsoZS5jb2x1bW4tMSl9cG9zaXRpb25BdChlKXtlPU1hdGguZmxvb3IoZSksZT1NYXRoLm1heCgwLGUpLHRoaXMuX2Vuc3VyZUxpbmVTdGFydHMoKTt2YXIgZT10aGlzLl9saW5lU3RhcnRzLmdldEluZGV4T2YoZSksdD10aGlzLl9saW5lc1tlLmluZGV4XS5sZW5ndGg7cmV0dXJue2xpbmVOdW1iZXI6MStlLmluZGV4LGNvbHVtbjoxK01hdGgubWluKGUucmVtYWluZGVyLHQpfX1fdmFsaWRhdGVSYW5nZShlKXt2YXIgdD10aGlzLl92YWxpZGF0ZVBvc2l0aW9uKHtsaW5lTnVtYmVyOmUuc3RhcnRMaW5lTnVtYmVyLGNvbHVtbjplLnN0YXJ0Q29sdW1ufSkscj10aGlzLl92YWxpZGF0ZVBvc2l0aW9uKHtsaW5lTnVtYmVyOmUuZW5kTGluZU51bWJlcixjb2x1bW46ZS5lbmRDb2x1bW59KTtyZXR1cm4gdC5saW5lTnVtYmVyIT09ZS5zdGFydExpbmVOdW1iZXJ8fHQuY29sdW1uIT09ZS5zdGFydENvbHVtbnx8ci5saW5lTnVtYmVyIT09ZS5lbmRMaW5lTnVtYmVyfHxyLmNvbHVtbiE9PWUuZW5kQ29sdW1uP3tzdGFydExpbmVOdW1iZXI6dC5saW5lTnVtYmVyLHN0YXJ0Q29sdW1uOnQuY29sdW1uLGVuZExpbmVOdW1iZXI6ci5saW5lTnVtYmVyLGVuZENvbHVtbjpyLmNvbHVtbn06ZX1fdmFsaWRhdGVQb3NpdGlvbihlKXtpZighbnQuaXNJUG9zaXRpb24oZSkpdGhyb3cgbmV3IEVycm9yKCJiYWQgcG9zaXRpb24iKTtsZXR7bGluZU51bWJlcjp0LGNvbHVtbjpyfT1lLG49ITE7dmFyIGk7cmV0dXJuIHQ8MT8odD0xLHI9MSxuPSEwKTp0PnRoaXMuX2xpbmVzLmxlbmd0aD8odD10aGlzLl9saW5lcy5sZW5ndGgscj10aGlzLl9saW5lc1t0LTFdLmxlbmd0aCsxLG49ITApOihpPXRoaXMuX2xpbmVzW3QtMV0ubGVuZ3RoKzEscjwxPyhyPTEsbj0hMCk6cj5pJiYocj1pLG49ITApKSxuP3tsaW5lTnVtYmVyOnQsY29sdW1uOnJ9OmV9fWNsYXNzIEVye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5faG9zdD1lLHRoaXMuX21vZGVscz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2ZvcmVpZ25Nb2R1bGVGYWN0b3J5PXQsdGhpcy5fZm9yZWlnbk1vZHVsZT1udWxsfWRpc3Bvc2UoKXt0aGlzLl9tb2RlbHM9T2JqZWN0LmNyZWF0ZShudWxsKX1fZ2V0TW9kZWwoZSl7cmV0dXJuIHRoaXMuX21vZGVsc1tlXX1fZ2V0TW9kZWxzKCl7Y29uc3QgdD1bXTtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5fbW9kZWxzKS5mb3JFYWNoKGU9PnQucHVzaCh0aGlzLl9tb2RlbHNbZV0pKSx0fWFjY2VwdE5ld01vZGVsKGUpe3RoaXMuX21vZGVsc1tlLnVybF09bmV3IE5yKCRlLnBhcnNlKGUudXJsKSxlLmxpbmVzLGUuRU9MLGUudmVyc2lvbklkKX1hY2NlcHRNb2RlbENoYW5nZWQoZSx0KXtpZih0aGlzLl9tb2RlbHNbZV0pe2NvbnN0IHI9dGhpcy5fbW9kZWxzW2VdO3Iub25FdmVudHModCl9fWFjY2VwdFJlbW92ZWRNb2RlbChlKXt0aGlzLl9tb2RlbHNbZV0mJmRlbGV0ZSB0aGlzLl9tb2RlbHNbZV19Y29tcHV0ZVVuaWNvZGVIaWdobGlnaHRzKHQscixuKXtyZXR1cm4gU3IodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3ZhciBlPXRoaXMuX2dldE1vZGVsKHQpO3JldHVybiBlP3ZyLmNvbXB1dGVVbmljb2RlSGlnaGxpZ2h0cyhlLHIsbik6e3JhbmdlczpbXSxoYXNNb3JlOiExLGFtYmlndW91c0NoYXJhY3RlckNvdW50OjAsaW52aXNpYmxlQ2hhcmFjdGVyQ291bnQ6MCxub25CYXNpY0FzY2lpQ2hhcmFjdGVyQ291bnQ6MH19KX1jb21wdXRlRGlmZihhLG8scyxsKXtyZXR1cm4gU3IodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IGU9dGhpcy5fZ2V0TW9kZWwoYSksdD10aGlzLl9nZXRNb2RlbChvKTtpZighZXx8IXQpcmV0dXJuIG51bGw7dmFyIHI9ZS5nZXRMaW5lc0NvbnRlbnQoKSxuPXQuZ2V0TGluZXNDb250ZW50KCk7Y29uc3QgaT1uZXcgaHQocixuLHtzaG91bGRDb21wdXRlQ2hhckNoYW5nZXM6ITAsc2hvdWxkUG9zdFByb2Nlc3NDaGFyQ2hhbmdlczohMCxzaG91bGRJZ25vcmVUcmltV2hpdGVzcGFjZTpzLHNob3VsZE1ha2VQcmV0dHlEaWZmOiEwLG1heENvbXB1dGF0aW9uVGltZTpsfSk7cj1pLmNvbXB1dGVEaWZmKCksbj0hKDA8ci5jaGFuZ2VzLmxlbmd0aCkmJnRoaXMuX21vZGVsc0FyZUlkZW50aWNhbChlLHQpO3JldHVybntxdWl0RWFybHk6ci5xdWl0RWFybHksaWRlbnRpY2FsOm4sY2hhbmdlczpyLmNoYW5nZXN9fSl9X21vZGVsc0FyZUlkZW50aWNhbCh0LHIpe3ZhciBuPXQuZ2V0TGluZUNvdW50KCk7aWYobiE9PXIuZ2V0TGluZUNvdW50KCkpcmV0dXJuITE7Zm9yKGxldCBlPTE7ZTw9bjtlKyspaWYodC5nZXRMaW5lQ29udGVudChlKSE9PXIuZ2V0TGluZUNvbnRlbnQoZSkpcmV0dXJuITE7cmV0dXJuITB9Y29tcHV0ZU1vcmVNaW5pbWFsRWRpdHMoZCxmKXtyZXR1cm4gU3IodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IGU9dGhpcy5fZ2V0TW9kZWwoZCk7aWYoIWUpcmV0dXJuIGY7Y29uc3QgdD1bXTtsZXQgcj12b2lkIDA7Zm9yKHZhcntyYW5nZTpuLHRleHQ6aSxlb2w6YX1vZiBmPWYuc2xpY2UoMCkuc29ydCgoZSx0KT0+e3JldHVybiBlLnJhbmdlJiZ0LnJhbmdlP3AuY29tcGFyZVJhbmdlc1VzaW5nU3RhcnRzKGUucmFuZ2UsdC5yYW5nZSk6KGUucmFuZ2U/MDoxKS0odC5yYW5nZT8wOjEpfSkpaWYoIm51bWJlciI9PXR5cGVvZiBhJiYocj1hKSwhcC5pc0VtcHR5KG4pfHxpKXthPWUuZ2V0VmFsdWVJblJhbmdlKG4pO2lmKGEhPT0oaT1pLnJlcGxhY2UoL1xyXG58XG58XHIvZyxlLmVvbCkpKWlmKE1hdGgubWF4KGkubGVuZ3RoLGEubGVuZ3RoKT5Fci5fZGlmZkxpbWl0KXQucHVzaCh7cmFuZ2U6bix0ZXh0Oml9KTtlbHNle2E9YSxjPWksdT0hMTt2YXIgYT1uZXcga2UobmV3IFNlKGEpLG5ldyBTZShjKSkuQ29tcHV0ZURpZmYodSkuY2hhbmdlcyxvPWUub2Zmc2V0QXQocC5saWZ0KG4pLmdldFN0YXJ0UG9zaXRpb24oKSk7Zm9yKGNvbnN0IGggb2YgYSl7dmFyIHM9ZS5wb3NpdGlvbkF0KG8raC5vcmlnaW5hbFN0YXJ0KSxsPWUucG9zaXRpb25BdChvK2gub3JpZ2luYWxTdGFydCtoLm9yaWdpbmFsTGVuZ3RoKSxzPXt0ZXh0Omkuc3Vic3RyKGgubW9kaWZpZWRTdGFydCxoLm1vZGlmaWVkTGVuZ3RoKSxyYW5nZTp7c3RhcnRMaW5lTnVtYmVyOnMubGluZU51bWJlcixzdGFydENvbHVtbjpzLmNvbHVtbixlbmRMaW5lTnVtYmVyOmwubGluZU51bWJlcixlbmRDb2x1bW46bC5jb2x1bW59fTtlLmdldFZhbHVlSW5SYW5nZShzLnJhbmdlKSE9PXMudGV4dCYmdC5wdXNoKHMpfX19dmFyIGMsdTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHImJnQucHVzaCh7ZW9sOnIsdGV4dDoiIixyYW5nZTp7c3RhcnRMaW5lTnVtYmVyOjAsc3RhcnRDb2x1bW46MCxlbmRMaW5lTnVtYmVyOjAsZW5kQ29sdW1uOjB9fSksdH0pfWNvbXB1dGVMaW5rcyh0KXtyZXR1cm4gU3IodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3ZhciBlPXRoaXMuX2dldE1vZGVsKHQpO3JldHVybiBlPyhlPWUpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRMaW5lQ291bnQmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmdldExpbmVDb250ZW50P050LmNvbXB1dGVMaW5rcyhlKTpbXTpudWxsfSl9dGV4dHVhbFN1Z2dlc3QobyxzLGwsaCl7cmV0dXJuIFNyKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBlPW5ldyBxKCEwKTt2YXIgdD1uZXcgUmVnRXhwKGwsaCk7Y29uc3Qgcj1uZXcgU2V0O2U6Zm9yKHZhciBuIG9mIG8pe2NvbnN0IGE9dGhpcy5fZ2V0TW9kZWwobik7aWYoYSlmb3IodmFyIGkgb2YgYS53b3Jkcyh0KSlpZihpIT09cyYmaXNOYU4oTnVtYmVyKGkpKSYmKHIuYWRkKGkpLHIuc2l6ZT5Fci5fc3VnZ2VzdGlvbnNMaW1pdCkpYnJlYWsgZX1yZXR1cm57d29yZHM6QXJyYXkuZnJvbShyKSxkdXJhdGlvbjplLmVsYXBzZWQoKX19KX1jb21wdXRlV29yZFJhbmdlcyh0LGEsbyxzKXtyZXR1cm4gU3IodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IGU9dGhpcy5fZ2V0TW9kZWwodCk7aWYoIWUpcmV0dXJuIE9iamVjdC5jcmVhdGUobnVsbCk7dmFyIHI9bmV3IFJlZ0V4cChvLHMpO2NvbnN0IG49T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IHQ9YS5zdGFydExpbmVOdW1iZXI7dDxhLmVuZExpbmVOdW1iZXI7dCsrKWZvcihjb25zdCBpIG9mIGUuZ2V0TGluZVdvcmRzKHQscikpaWYoaXNOYU4oTnVtYmVyKGkud29yZCkpKXtsZXQgZT1uW2kud29yZF07ZXx8KGU9W10sbltpLndvcmRdPWUpLGUucHVzaCh7c3RhcnRMaW5lTnVtYmVyOnQsc3RhcnRDb2x1bW46aS5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOnQsZW5kQ29sdW1uOmkuZW5kQ29sdW1ufSl9cmV0dXJuIG59KX1uYXZpZ2F0ZVZhbHVlU2V0KGksYSxvLHMsbCl7cmV0dXJuIFNyKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBlPXRoaXMuX2dldE1vZGVsKGkpO2lmKCFlKXJldHVybiBudWxsO3ZhciB0PW5ldyBSZWdFeHAocyxsKSxyPShhLnN0YXJ0Q29sdW1uPT09YS5lbmRDb2x1bW4mJihhPXtzdGFydExpbmVOdW1iZXI6YS5zdGFydExpbmVOdW1iZXIsc3RhcnRDb2x1bW46YS5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOmEuZW5kTGluZU51bWJlcixlbmRDb2x1bW46YS5lbmRDb2x1bW4rMX0pLGUuZ2V0VmFsdWVJblJhbmdlKGEpKSx0PWUuZ2V0V29yZEF0UG9zaXRpb24oe2xpbmVOdW1iZXI6YS5zdGFydExpbmVOdW1iZXIsY29sdW1uOmEuc3RhcnRDb2x1bW59LHQpO2lmKCF0KXJldHVybiBudWxsO3ZhciBuPWUuZ2V0VmFsdWVJblJhbmdlKHQpO3JldHVybiBFdC5JTlNUQU5DRS5uYXZpZ2F0ZVZhbHVlU2V0KGEscix0LG4sbyl9KX1sb2FkRm9yZWlnbk1vZHVsZShlLHQscil7cj1uZShyLChlLHQpPT50aGlzLl9ob3N0LmZocihlLHQpKTtyZXR1cm4gdGhpcy5fZm9yZWlnbk1vZHVsZUZhY3Rvcnk/KHRoaXMuX2ZvcmVpZ25Nb2R1bGU9dGhpcy5fZm9yZWlnbk1vZHVsZUZhY3Rvcnkoe2hvc3Q6cixnZXRNaXJyb3JNb2RlbHM6KCk9PnRoaXMuX2dldE1vZGVscygpfSx0KSxQcm9taXNlLnJlc29sdmUocmUodGhpcy5fZm9yZWlnbk1vZHVsZSkpKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgdXNhZ2UiKSl9Zm1yKGUsdCl7aWYoIXRoaXMuX2ZvcmVpZ25Nb2R1bGV8fCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLl9mb3JlaWduTW9kdWxlW2VdKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIk1pc3NpbmcgcmVxdWVzdEhhbmRsZXIgb3IgbWV0aG9kOiAiK2UpKTt0cnl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9mb3JlaWduTW9kdWxlW2VdLmFwcGx5KHRoaXMuX2ZvcmVpZ25Nb2R1bGUsdCkpfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlamVjdChlKX19fUVyLl9kaWZmTGltaXQ9MWU1LEVyLl9zdWdnZXN0aW9uc0xpbWl0PTFlNCwiZnVuY3Rpb24iPT10eXBlb2YgaW1wb3J0U2NyaXB0cyYmKEQubW9uYWNvPXtlZGl0b3I6dm9pZCAwLGxhbmd1YWdlczp2b2lkIDAsZXh0cmE6dm9pZCAwLENhbmNlbGxhdGlvblRva2VuU291cmNlOnh0LEVtaXR0ZXI6dGUsS2V5Q29kZTpIdCxLZXlNb2Q6cHIsUG9zaXRpb246bnQsUmFuZ2U6cCxTZWxlY3Rpb246VXQsVXJpOiRlLFRva2VuOnRyLE1hcmtkb3duU3RyaW5nOmZyLE1hcmtkb3duU3RyaW5nVGV4dE5ld2xpbmVTdHlsZTpXdCxEaXNwb3NhYmxlOkwsRGlzcG9zYWJsZVN0b3JlOnksRXJyb3JIYW5kbGVyOmwsQWJzdHJhY3RMb2dnZXI6YnIsQ29uc29sZUxvZ2dlcjpDcixUb2tlbml6YXRpb25SZXN1bHQ6cnIsRW5jb2RlZFRva2VuaXphdGlvblJlc3VsdDpucixTZWxlY3Rpb25EaXJlY3Rpb246SnQsTWFya2VyU2V2ZXJpdHk6anQsTWFya2VyVGFnOiR0LExvZ0xldmVsOnp0LGVycm9ySGFuZGxlcjpofSk7bGV0IEFyPSExO2Z1bmN0aW9uIGtyKHQpe2lmKCFBcil7QXI9ITA7Y29uc3Qgcj1uZXcgdmUoZT0+e3NlbGYucG9zdE1lc3NhZ2UoZSl9LGU9Pm5ldyBFcihlLHQpKTtzZWxmLm9ubWVzc2FnZT1lPT57ci5vbm1lc3NhZ2UoZS5kYXRhKX19fXJldHVybiBzZWxmLm9ubWVzc2FnZT1lPT57QXJ8fGtyKG51bGwpfSxzLmluaXRpYWxpemU9a3IsT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHN9KHt9KTsKCg==', null, false);
31
+ var WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwp2YXIgd29ya2VyX2NvZGU9ZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO2NsYXNzIHR7Y29uc3RydWN0b3IoKXt0aGlzLmxpc3RlbmVycz1bXSx0aGlzLnVuZXhwZWN0ZWRFcnJvckhhbmRsZXI9ZnVuY3Rpb24oZSl7c2V0VGltZW91dCgoKCk9PntpZihlLnN0YWNrKXRocm93IG5ldyBFcnJvcihlLm1lc3NhZ2UrIlxuXG4iK2Uuc3RhY2spO3Rocm93IGV9KSwwKX19YWRkTGlzdGVuZXIoZSl7cmV0dXJuIHRoaXMubGlzdGVuZXJzLnB1c2goZSksKCk9Pnt0aGlzLl9yZW1vdmVMaXN0ZW5lcihlKX19ZW1pdChlKXt0aGlzLmxpc3RlbmVycy5mb3JFYWNoKCh0PT57dChlKX0pKX1fcmVtb3ZlTGlzdGVuZXIoZSl7dGhpcy5saXN0ZW5lcnMuc3BsaWNlKHRoaXMubGlzdGVuZXJzLmluZGV4T2YoZSksMSl9c2V0VW5leHBlY3RlZEVycm9ySGFuZGxlcihlKXt0aGlzLnVuZXhwZWN0ZWRFcnJvckhhbmRsZXI9ZX1nZXRVbmV4cGVjdGVkRXJyb3JIYW5kbGVyKCl7cmV0dXJuIHRoaXMudW5leHBlY3RlZEVycm9ySGFuZGxlcn1vblVuZXhwZWN0ZWRFcnJvcihlKXt0aGlzLnVuZXhwZWN0ZWRFcnJvckhhbmRsZXIoZSksdGhpcy5lbWl0KGUpfW9uVW5leHBlY3RlZEV4dGVybmFsRXJyb3IoZSl7dGhpcy51bmV4cGVjdGVkRXJyb3JIYW5kbGVyKGUpfX1jb25zdCBuPW5ldyB0O2Z1bmN0aW9uIHIoZSl7KGZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBhKXJldHVybiEwO3JldHVybiBlIGluc3RhbmNlb2YgRXJyb3ImJmUubmFtZT09PW8mJmUubWVzc2FnZT09PW99KShlKXx8bi5vblVuZXhwZWN0ZWRFcnJvcihlKX1mdW5jdGlvbiBpKGUpe2lmKGUgaW5zdGFuY2VvZiBFcnJvcil7bGV0e25hbWU6dCxtZXNzYWdlOm59PWU7cmV0dXJueyRpc0Vycm9yOiEwLG5hbWU6dCxtZXNzYWdlOm4sc3RhY2s6ZS5zdGFja3RyYWNlfHxlLnN0YWNrfX1yZXR1cm4gZX1jb25zdCBvPSJDYW5jZWxlZCI7Y2xhc3MgYSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIobyksdGhpcy5uYW1lPXRoaXMubWVzc2FnZX19ZnVuY3Rpb24gcyhlKXtjb25zdCB0PXRoaXM7bGV0IG4scj0hMTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcnx8KHI9ITAsbj1lLmFwcGx5KHQsYXJndW1lbnRzKSksbn19dmFyIGwsYzshZnVuY3Rpb24oZSl7ZS5pcz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgZVtTeW1ib2wuaXRlcmF0b3JdfTtjb25zdCB0PU9iamVjdC5mcmVlemUoW10pO2UuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZS5zaW5nbGU9ZnVuY3Rpb24qKGUpe3lpZWxkIGV9LGUuZnJvbT1mdW5jdGlvbihlKXtyZXR1cm4gZXx8dH0sZS5pc0VtcHR5PWZ1bmN0aW9uKGUpe3JldHVybiFlfHwhMD09PWVbU3ltYm9sLml0ZXJhdG9yXSgpLm5leHQoKS5kb25lfSxlLmZpcnN0PWZ1bmN0aW9uKGUpe3JldHVybiBlW1N5bWJvbC5pdGVyYXRvcl0oKS5uZXh0KCkudmFsdWV9LGUuc29tZT1mdW5jdGlvbihlLHQpe2Zvcihjb25zdCBuIG9mIGUpaWYodChuKSlyZXR1cm4hMDtyZXR1cm4hMX0sZS5maW5kPWZ1bmN0aW9uKGUsdCl7Zm9yKGNvbnN0IG4gb2YgZSlpZih0KG4pKXJldHVybiBufSxlLmZpbHRlcj1mdW5jdGlvbiooZSx0KXtmb3IoY29uc3QgbiBvZiBlKXQobikmJih5aWVsZCBuKX0sZS5tYXA9ZnVuY3Rpb24qKGUsdCl7bGV0IG49MDtmb3IoY29uc3QgciBvZiBlKXlpZWxkIHQocixuKyspfSxlLmNvbmNhdD1mdW5jdGlvbiooLi4uZSl7Zm9yKGNvbnN0IHQgb2YgZSlmb3IoY29uc3QgZSBvZiB0KXlpZWxkIGV9LGUuY29uY2F0TmVzdGVkPWZ1bmN0aW9uKihlKXtmb3IoY29uc3QgdCBvZiBlKWZvcihjb25zdCBlIG9mIHQpeWllbGQgZX0sZS5yZWR1Y2U9ZnVuY3Rpb24oZSx0LG4pe2xldCByPW47Zm9yKGNvbnN0IG4gb2YgZSlyPXQocixuKTtyZXR1cm4gcn0sZS5zbGljZT1mdW5jdGlvbiooZSx0LG49ZS5sZW5ndGgpe2Zvcih0PDAmJih0Kz1lLmxlbmd0aCksbjwwP24rPWUubGVuZ3RoOm4+ZS5sZW5ndGgmJihuPWUubGVuZ3RoKTt0PG47dCsrKXlpZWxkIGVbdF19LGUuY29uc3VtZT1mdW5jdGlvbih0LG49TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKXtjb25zdCByPVtdO2lmKDA9PT1uKXJldHVybltyLHRdO2NvbnN0IGk9dFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKGxldCB0PTA7dDxuO3QrKyl7Y29uc3QgdD1pLm5leHQoKTtpZih0LmRvbmUpcmV0dXJuW3IsZS5lbXB0eSgpXTtyLnB1c2godC52YWx1ZSl9cmV0dXJuW3Ise1tTeW1ib2wuaXRlcmF0b3JdOigpPT5pfV19LGUuZXF1YWxzPWZ1bmN0aW9uKGUsdCxuPSgoZSx0KT0+ZT09PXQpKXtjb25zdCByPWVbU3ltYm9sLml0ZXJhdG9yXSgpLGk9dFtTeW1ib2wuaXRlcmF0b3JdKCk7Zm9yKDs7KXtjb25zdCBlPXIubmV4dCgpLHQ9aS5uZXh0KCk7aWYoZS5kb25lIT09dC5kb25lKXJldHVybiExO2lmKGUuZG9uZSlyZXR1cm4hMDtpZighbihlLnZhbHVlLHQudmFsdWUpKXJldHVybiExfX19KGx8fChsPXt9KSk7Y2xhc3MgdSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGBFbmNvdW50ZXJlZCBlcnJvcnMgd2hpbGUgZGlzcG9zaW5nIG9mIHN0b3JlLiBFcnJvcnM6IFske2Uuam9pbigiLCAiKX1dYCksdGhpcy5lcnJvcnM9ZX19ZnVuY3Rpb24gaChlKXtpZihsLmlzKGUpKXtsZXQgdD1bXTtmb3IoY29uc3QgbiBvZiBlKWlmKG4pdHJ5e24uZGlzcG9zZSgpfWNhdGNoKGUpe3QucHVzaChlKX1pZigxPT09dC5sZW5ndGgpdGhyb3cgdFswXTtpZih0Lmxlbmd0aD4xKXRocm93IG5ldyB1KHQpO3JldHVybiBBcnJheS5pc0FycmF5KGUpP1tdOmV9aWYoZSlyZXR1cm4gZS5kaXNwb3NlKCksZX1mdW5jdGlvbiBkKGUpe3JldHVybntkaXNwb3NlOnMoKCgpPT57ZSgpfSkpfX1jbGFzcyBme2NvbnN0cnVjdG9yKCl7dGhpcy5fdG9EaXNwb3NlPW5ldyBTZXQsdGhpcy5faXNEaXNwb3NlZD0hMX1kaXNwb3NlKCl7dGhpcy5faXNEaXNwb3NlZHx8KHRoaXMuX2lzRGlzcG9zZWQ9ITAsdGhpcy5jbGVhcigpKX1nZXQgaXNEaXNwb3NlZCgpe3JldHVybiB0aGlzLl9pc0Rpc3Bvc2VkfWNsZWFyKCl7dHJ5e2godGhpcy5fdG9EaXNwb3NlLnZhbHVlcygpKX1maW5hbGx5e3RoaXMuX3RvRGlzcG9zZS5jbGVhcigpfX1hZGQoZSl7aWYoIWUpcmV0dXJuIGU7aWYoZT09PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVnaXN0ZXIgYSBkaXNwb3NhYmxlIG9uIGl0c2VsZiEiKTtyZXR1cm4gdGhpcy5faXNEaXNwb3NlZD9mLkRJU0FCTEVfRElTUE9TRURfV0FSTklOR3x8Y29uc29sZS53YXJuKG5ldyBFcnJvcigiVHJ5aW5nIHRvIGFkZCBhIGRpc3Bvc2FibGUgdG8gYSBEaXNwb3NhYmxlU3RvcmUgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIGRpc3Bvc2VkIG9mLiBUaGUgYWRkZWQgb2JqZWN0IHdpbGwgYmUgbGVha2VkISIpLnN0YWNrKTp0aGlzLl90b0Rpc3Bvc2UuYWRkKGUpLGV9fWYuRElTQUJMRV9ESVNQT1NFRF9XQVJOSU5HPSExO2NsYXNzIG17Y29uc3RydWN0b3IoKXt0aGlzLl9zdG9yZT1uZXcgZix0aGlzLl9zdG9yZX1kaXNwb3NlKCl7dGhpcy5fc3RvcmUuZGlzcG9zZSgpfV9yZWdpc3RlcihlKXtpZihlPT09dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZWdpc3RlciBhIGRpc3Bvc2FibGUgb24gaXRzZWxmISIpO3JldHVybiB0aGlzLl9zdG9yZS5hZGQoZSl9fW0uTm9uZT1PYmplY3QuZnJlZXplKHtkaXNwb3NlKCl7fX0pO2NsYXNzIGd7Y29uc3RydWN0b3IoKXt0aGlzLmRpc3Bvc2U9KCk9Pnt9LHRoaXMudW5zZXQ9KCk9Pnt9LHRoaXMuaXNzZXQ9KCk9PiExfXNldChlKXtsZXQgdD1lO3JldHVybiB0aGlzLnVuc2V0PSgpPT50PXZvaWQgMCx0aGlzLmlzc2V0PSgpPT52b2lkIDAhPT10LHRoaXMuZGlzcG9zZT0oKT0+e3QmJih0KCksdD12b2lkIDApfSx0aGlzfX1jbGFzcyBwe2NvbnN0cnVjdG9yKGUpe3RoaXMuZWxlbWVudD1lLHRoaXMubmV4dD1wLlVuZGVmaW5lZCx0aGlzLnByZXY9cC5VbmRlZmluZWR9fXAuVW5kZWZpbmVkPW5ldyBwKHZvaWQgMCk7Y2xhc3MgQ3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2ZpcnN0PXAuVW5kZWZpbmVkLHRoaXMuX2xhc3Q9cC5VbmRlZmluZWQsdGhpcy5fc2l6ZT0wfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX3NpemV9aXNFbXB0eSgpe3JldHVybiB0aGlzLl9maXJzdD09PXAuVW5kZWZpbmVkfWNsZWFyKCl7bGV0IGU9dGhpcy5fZmlyc3Q7Zm9yKDtlIT09cC5VbmRlZmluZWQ7KXtjb25zdCB0PWUubmV4dDtlLnByZXY9cC5VbmRlZmluZWQsZS5uZXh0PXAuVW5kZWZpbmVkLGU9dH10aGlzLl9maXJzdD1wLlVuZGVmaW5lZCx0aGlzLl9sYXN0PXAuVW5kZWZpbmVkLHRoaXMuX3NpemU9MH11bnNoaWZ0KGUpe3JldHVybiB0aGlzLl9pbnNlcnQoZSwhMSl9cHVzaChlKXtyZXR1cm4gdGhpcy5faW5zZXJ0KGUsITApfV9pbnNlcnQoZSx0KXtjb25zdCBuPW5ldyBwKGUpO2lmKHRoaXMuX2ZpcnN0PT09cC5VbmRlZmluZWQpdGhpcy5fZmlyc3Q9bix0aGlzLl9sYXN0PW47ZWxzZSBpZih0KXtjb25zdCBlPXRoaXMuX2xhc3Q7dGhpcy5fbGFzdD1uLG4ucHJldj1lLGUubmV4dD1ufWVsc2V7Y29uc3QgZT10aGlzLl9maXJzdDt0aGlzLl9maXJzdD1uLG4ubmV4dD1lLGUucHJldj1ufXRoaXMuX3NpemUrPTE7bGV0IHI9ITE7cmV0dXJuKCk9PntyfHwocj0hMCx0aGlzLl9yZW1vdmUobikpfX1zaGlmdCgpe2lmKHRoaXMuX2ZpcnN0IT09cC5VbmRlZmluZWQpe2NvbnN0IGU9dGhpcy5fZmlyc3QuZWxlbWVudDtyZXR1cm4gdGhpcy5fcmVtb3ZlKHRoaXMuX2ZpcnN0KSxlfX1wb3AoKXtpZih0aGlzLl9sYXN0IT09cC5VbmRlZmluZWQpe2NvbnN0IGU9dGhpcy5fbGFzdC5lbGVtZW50O3JldHVybiB0aGlzLl9yZW1vdmUodGhpcy5fbGFzdCksZX19X3JlbW92ZShlKXtpZihlLnByZXYhPT1wLlVuZGVmaW5lZCYmZS5uZXh0IT09cC5VbmRlZmluZWQpe2NvbnN0IHQ9ZS5wcmV2O3QubmV4dD1lLm5leHQsZS5uZXh0LnByZXY9dH1lbHNlIGUucHJldj09PXAuVW5kZWZpbmVkJiZlLm5leHQ9PT1wLlVuZGVmaW5lZD8odGhpcy5fZmlyc3Q9cC5VbmRlZmluZWQsdGhpcy5fbGFzdD1wLlVuZGVmaW5lZCk6ZS5uZXh0PT09cC5VbmRlZmluZWQ/KHRoaXMuX2xhc3Q9dGhpcy5fbGFzdC5wcmV2LHRoaXMuX2xhc3QubmV4dD1wLlVuZGVmaW5lZCk6ZS5wcmV2PT09cC5VbmRlZmluZWQmJih0aGlzLl9maXJzdD10aGlzLl9maXJzdC5uZXh0LHRoaXMuX2ZpcnN0LnByZXY9cC5VbmRlZmluZWQpO3RoaXMuX3NpemUtPTF9KltTeW1ib2wuaXRlcmF0b3JdKCl7bGV0IGU9dGhpcy5fZmlyc3Q7Zm9yKDtlIT09cC5VbmRlZmluZWQ7KXlpZWxkIGUuZWxlbWVudCxlPWUubmV4dH19Y29uc3QgYj0iZW4iO2xldCB3LF8seSxTPSExLHY9ITEsTD0hMSxOPSExLEU9Yjtjb25zdCBBPSJvYmplY3QiPT10eXBlb2Ygc2VsZj9zZWxmOiJvYmplY3QiPT10eXBlb2YgZ2xvYmFsP2dsb2JhbDp7fTtsZXQgazt2b2lkIDAhPT1BLnZzY29kZSYmdm9pZCAwIT09QS52c2NvZGUucHJvY2Vzcz9rPUEudnNjb2RlLnByb2Nlc3M6InVuZGVmaW5lZCIhPXR5cGVvZiBwcm9jZXNzJiYoaz1wcm9jZXNzKTtjb25zdCBNPSJzdHJpbmciPT10eXBlb2YobnVsbD09PShjPW51bGw9PWs/dm9pZCAwOmsudmVyc2lvbnMpfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmVsZWN0cm9uKSYmInJlbmRlcmVyIj09PShudWxsPT1rP3ZvaWQgMDprLnR5cGUpO2lmKCJvYmplY3QiIT10eXBlb2YgbmF2aWdhdG9yfHxNKWlmKCJvYmplY3QiPT10eXBlb2Ygayl7Uz0id2luMzIiPT09ay5wbGF0Zm9ybSx2PSJkYXJ3aW4iPT09ay5wbGF0Zm9ybSxMPSJsaW51eCI9PT1rLnBsYXRmb3JtLEwmJmsuZW52LlNOQVAmJmsuZW52LlNOQVBfUkVWSVNJT04say5lbnYuQ0l8fGsuZW52LkJVSUxEX0FSVElGQUNUU1RBR0lOR0RJUkVDVE9SWSx3PWIsRT1iO2NvbnN0IGU9ay5lbnYuVlNDT0RFX05MU19DT05GSUc7aWYoZSl0cnl7Y29uc3QgdD1KU09OLnBhcnNlKGUpLG49dC5hdmFpbGFibGVMYW5ndWFnZXNbIioiXTt3PXQubG9jYWxlLEU9bnx8YixfPXQuX3RyYW5zbGF0aW9uc0NvbmZpZ0ZpbGV9Y2F0Y2goZSl7fX1lbHNlIGNvbnNvbGUuZXJyb3IoIlVuYWJsZSB0byByZXNvbHZlIHBsYXRmb3JtLiIpO2Vsc2UgeT1uYXZpZ2F0b3IudXNlckFnZW50LFM9eS5pbmRleE9mKCJXaW5kb3dzIik+PTAsdj15LmluZGV4T2YoIk1hY2ludG9zaCIpPj0wLCh5LmluZGV4T2YoIk1hY2ludG9zaCIpPj0wfHx5LmluZGV4T2YoImlQYWQiKT49MHx8eS5pbmRleE9mKCJpUGhvbmUiKT49MCkmJm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzLEw9eS5pbmRleE9mKCJMaW51eCIpPj0wLE49ITAsdz1uYXZpZ2F0b3IubGFuZ3VhZ2UsRT13O2NvbnN0IFI9Uyx4PXY7TiYmQS5pbXBvcnRTY3JpcHRzO2NvbnN0IEk9eTsoKCk9PntpZigiZnVuY3Rpb24iPT10eXBlb2YgQS5wb3N0TWVzc2FnZSYmIUEuaW1wb3J0U2NyaXB0cyl7bGV0IGU9W107QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwodD0+e2lmKHQuZGF0YSYmdC5kYXRhLnZzY29kZVNjaGVkdWxlQXN5bmNXb3JrKWZvcihsZXQgbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl7Y29uc3Qgcj1lW25dO2lmKHIuaWQ9PT10LmRhdGEudnNjb2RlU2NoZWR1bGVBc3luY1dvcmspcmV0dXJuIGUuc3BsaWNlKG4sMSksdm9pZCByLmNhbGxiYWNrKCl9fSkpO2xldCB0PTA7cmV0dXJuIG49Pntjb25zdCByPSsrdDtlLnB1c2goe2lkOnIsY2FsbGJhY2s6bn0pLEEucG9zdE1lc3NhZ2Uoe3ZzY29kZVNjaGVkdWxlQXN5bmNXb3JrOnJ9LCIqIil9fX0pKCk7Y29uc3QgTz0hIShJJiZJLmluZGV4T2YoIkNocm9tZSIpPj0wKTtJJiZJLmluZGV4T2YoIkZpcmVmb3giKSwhTyYmSSYmSS5pbmRleE9mKCJTYWZhcmkiKSxJJiZJLmluZGV4T2YoIkVkZy8iKSxJJiZJLmluZGV4T2YoIkFuZHJvaWQiKTtjb25zdCBEPUEucGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBBLnBlcmZvcm1hbmNlLm5vdztjbGFzcyBLe2NvbnN0cnVjdG9yKGUpe3RoaXMuX2hpZ2hSZXNvbHV0aW9uPUQmJmUsdGhpcy5fc3RhcnRUaW1lPXRoaXMuX25vdygpLHRoaXMuX3N0b3BUaW1lPS0xfXN0YXRpYyBjcmVhdGUoZT0hMCl7cmV0dXJuIG5ldyBLKGUpfXN0b3AoKXt0aGlzLl9zdG9wVGltZT10aGlzLl9ub3coKX1lbGFwc2VkKCl7cmV0dXJuLTEhPT10aGlzLl9zdG9wVGltZT90aGlzLl9zdG9wVGltZS10aGlzLl9zdGFydFRpbWU6dGhpcy5fbm93KCktdGhpcy5fc3RhcnRUaW1lfV9ub3coKXtyZXR1cm4gdGhpcy5faGlnaFJlc29sdXRpb24/QS5wZXJmb3JtYW5jZS5ub3coKTpEYXRlLm5vdygpfX12YXIgVCxQOyFmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUpe3JldHVybih0LG49bnVsbCxyKT0+e2xldCBpLG89ITE7cmV0dXJuIGk9ZSgoZT0+e2lmKCFvKXJldHVybiBpP2kuZGlzcG9zZSgpOm89ITAsdC5jYWxsKG4sZSl9KSxudWxsLHIpLG8mJmkuZGlzcG9zZSgpLGl9fWZ1bmN0aW9uIG4oZSx0LG4pe3JldHVybiBhKCgobixyPW51bGwsaSk9PmUoKGU9Pm4uY2FsbChyLHQoZSkpKSxudWxsLGkpKSxuKX1mdW5jdGlvbiByKGUsdCxuKXtyZXR1cm4gYSgoKG4scj1udWxsLGkpPT5lKChlPT57dChlKSxuLmNhbGwocixlKX0pLG51bGwsaSkpLG4pfWZ1bmN0aW9uIGkoZSx0LG4pe3JldHVybiBhKCgobixyPW51bGwsaSk9PmUoKGU9PnQoZSkmJm4uY2FsbChyLGUpKSxudWxsLGkpKSxuKX1mdW5jdGlvbiBvKGUsdCxyLGkpe2xldCBvPXI7cmV0dXJuIG4oZSwoZT0+KG89dChvLGUpLG8pKSxpKX1mdW5jdGlvbiBhKGUsdCl7bGV0IG47Y29uc3Qgcj1uZXcgVSh7b25GaXJzdExpc3RlbmVyQWRkKCl7bj1lKHIuZmlyZSxyKX0sb25MYXN0TGlzdGVuZXJSZW1vdmUoKXtuLmRpc3Bvc2UoKX19KTtyZXR1cm4gdCYmdC5hZGQociksci5ldmVudH1mdW5jdGlvbiBzKGUsdCxuPTEwMCxyPSExLGksbyl7bGV0IGEscyxsLGM9MDtjb25zdCB1PW5ldyBVKHtsZWFrV2FybmluZ1RocmVzaG9sZDppLG9uRmlyc3RMaXN0ZW5lckFkZCgpe2E9ZSgoZT0+e2MrKyxzPXQocyxlKSxyJiYhbCYmKHUuZmlyZShzKSxzPXZvaWQgMCksY2xlYXJUaW1lb3V0KGwpLGw9c2V0VGltZW91dCgoKCk9Pntjb25zdCBlPXM7cz12b2lkIDAsbD12b2lkIDAsKCFyfHxjPjEpJiZ1LmZpcmUoZSksYz0wfSksbil9KSl9LG9uTGFzdExpc3RlbmVyUmVtb3ZlKCl7YS5kaXNwb3NlKCl9fSk7cmV0dXJuIG8mJm8uYWRkKHUpLHUuZXZlbnR9ZnVuY3Rpb24gbChlLHQ9KChlLHQpPT5lPT09dCksbil7bGV0IHIsbz0hMDtyZXR1cm4gaShlLChlPT57Y29uc3Qgbj1vfHwhdChlLHIpO3JldHVybiBvPSExLHI9ZSxufSksbil9ZS5Ob25lPSgpPT5tLk5vbmUsZS5vbmNlPXQsZS5tYXA9bixlLmZvckVhY2g9cixlLmZpbHRlcj1pLGUuc2lnbmFsPWZ1bmN0aW9uKGUpe3JldHVybiBlfSxlLmFueT1mdW5jdGlvbiguLi5lKXtyZXR1cm4odCxuPW51bGwscik9PmZ1bmN0aW9uKC4uLmUpe3JldHVybiBkKCgoKT0+aChlKSkpfSguLi5lLm1hcCgoZT0+ZSgoZT0+dC5jYWxsKG4sZSkpLG51bGwscikpKSl9LGUucmVkdWNlPW8sZS5kZWJvdW5jZT1zLGUubGF0Y2g9bCxlLnNwbGl0PWZ1bmN0aW9uKHQsbixyKXtyZXR1cm5bZS5maWx0ZXIodCxuLHIpLGUuZmlsdGVyKHQsKGU9PiFuKGUpKSxyKV19LGUuYnVmZmVyPWZ1bmN0aW9uKGUsdD0hMSxuPVtdKXtsZXQgcj1uLnNsaWNlKCksaT1lKChlPT57cj9yLnB1c2goZSk6YS5maXJlKGUpfSkpO2NvbnN0IG89KCk9PntyJiZyLmZvckVhY2goKGU9PmEuZmlyZShlKSkpLHI9bnVsbH0sYT1uZXcgVSh7b25GaXJzdExpc3RlbmVyQWRkKCl7aXx8KGk9ZSgoZT0+YS5maXJlKGUpKSkpfSxvbkZpcnN0TGlzdGVuZXJEaWRBZGQoKXtyJiYodD9zZXRUaW1lb3V0KG8pOm8oKSl9LG9uTGFzdExpc3RlbmVyUmVtb3ZlKCl7aSYmaS5kaXNwb3NlKCksaT1udWxsfX0pO3JldHVybiBhLmV2ZW50fTtjbGFzcyBje2NvbnN0cnVjdG9yKGUpe3RoaXMuZXZlbnQ9ZX1tYXAoZSl7cmV0dXJuIG5ldyBjKG4odGhpcy5ldmVudCxlKSl9Zm9yRWFjaChlKXtyZXR1cm4gbmV3IGMocih0aGlzLmV2ZW50LGUpKX1maWx0ZXIoZSl7cmV0dXJuIG5ldyBjKGkodGhpcy5ldmVudCxlKSl9cmVkdWNlKGUsdCl7cmV0dXJuIG5ldyBjKG8odGhpcy5ldmVudCxlLHQpKX1sYXRjaCgpe3JldHVybiBuZXcgYyhsKHRoaXMuZXZlbnQpKX1kZWJvdW5jZShlLHQ9MTAwLG49ITEscil7cmV0dXJuIG5ldyBjKHModGhpcy5ldmVudCxlLHQsbixyKSl9b24oZSx0LG4pe3JldHVybiB0aGlzLmV2ZW50KGUsdCxuKX1vbmNlKGUsbixyKXtyZXR1cm4gdCh0aGlzLmV2ZW50KShlLG4scil9fWUuY2hhaW49ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBjKGUpfSxlLmZyb21Ob2RlRXZlbnRFbWl0dGVyPWZ1bmN0aW9uKGUsdCxuPShlPT5lKSl7Y29uc3Qgcj0oLi4uZSk9PmkuZmlyZShuKC4uLmUpKSxpPW5ldyBVKHtvbkZpcnN0TGlzdGVuZXJBZGQ6KCk9PmUub24odCxyKSxvbkxhc3RMaXN0ZW5lclJlbW92ZTooKT0+ZS5yZW1vdmVMaXN0ZW5lcih0LHIpfSk7cmV0dXJuIGkuZXZlbnR9LGUuZnJvbURPTUV2ZW50RW1pdHRlcj1mdW5jdGlvbihlLHQsbj0oZT0+ZSkpe2NvbnN0IHI9KC4uLmUpPT5pLmZpcmUobiguLi5lKSksaT1uZXcgVSh7b25GaXJzdExpc3RlbmVyQWRkOigpPT5lLmFkZEV2ZW50TGlzdGVuZXIodCxyKSxvbkxhc3RMaXN0ZW5lclJlbW92ZTooKT0+ZS5yZW1vdmVFdmVudExpc3RlbmVyKHQscil9KTtyZXR1cm4gaS5ldmVudH0sZS50b1Byb21pc2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChuPT50KGUpKG4pKSl9LGUucnVuQW5kU3Vic2NyaWJlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQodm9pZCAwKSxlKChlPT50KGUpKSl9LGUucnVuQW5kU3Vic2NyaWJlV2l0aFN0b3JlPWZ1bmN0aW9uKGUsdCl7bGV0IG49bnVsbDtmdW5jdGlvbiByKGUpe251bGw9PW58fG4uZGlzcG9zZSgpLG49bmV3IGYsdChlLG4pfXIodm9pZCAwKTtjb25zdCBpPWUoKGU9PnIoZSkpKTtyZXR1cm4gZCgoKCk9PntpLmRpc3Bvc2UoKSxudWxsPT1ufHxuLmRpc3Bvc2UoKX0pKX19KFR8fChUPXt9KSk7Y2xhc3MgRntjb25zdHJ1Y3RvcihlKXt0aGlzLl9saXN0ZW5lckNvdW50PTAsdGhpcy5faW52b2NhdGlvbkNvdW50PTAsdGhpcy5fZWxhcHNlZE92ZXJhbGw9MCx0aGlzLl9uYW1lPWAke2V9XyR7Ri5faWRQb29sKyt9YH1zdGFydChlKXt0aGlzLl9zdG9wV2F0Y2g9bmV3IEsoITApLHRoaXMuX2xpc3RlbmVyQ291bnQ9ZX1zdG9wKCl7aWYodGhpcy5fc3RvcFdhdGNoKXtjb25zdCBlPXRoaXMuX3N0b3BXYXRjaC5lbGFwc2VkKCk7dGhpcy5fZWxhcHNlZE92ZXJhbGwrPWUsdGhpcy5faW52b2NhdGlvbkNvdW50Kz0xLGNvbnNvbGUuaW5mbyhgZGlkIEZJUkUgJHt0aGlzLl9uYW1lfTogZWxhcHNlZF9tczogJHtlLnRvRml4ZWQoNSl9LCBsaXN0ZW5lcjogJHt0aGlzLl9saXN0ZW5lckNvdW50fSAoZWxhcHNlZF9vdmVyYWxsOiAke3RoaXMuX2VsYXBzZWRPdmVyYWxsLnRvRml4ZWQoMil9LCBpbnZvY2F0aW9uczogJHt0aGlzLl9pbnZvY2F0aW9uQ291bnR9KWApLHRoaXMuX3N0b3BXYXRjaD12b2lkIDB9fX1GLl9pZFBvb2w9MDtjbGFzcyBWe2NvbnN0cnVjdG9yKGUpe3RoaXMudmFsdWU9ZX1zdGF0aWMgY3JlYXRlKCl7dmFyIGU7cmV0dXJuIG5ldyBWKG51bGwhPT0oZT0obmV3IEVycm9yKS5zdGFjaykmJnZvaWQgMCE9PWU/ZToiIil9cHJpbnQoKXtjb25zb2xlLndhcm4odGhpcy52YWx1ZS5zcGxpdCgiXG4iKS5zbGljZSgyKS5qb2luKCJcbiIpKX19Y2xhc3MgQntjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5jYWxsYmFjaz1lLHRoaXMuY2FsbGJhY2tUaGlzPXQsdGhpcy5zdGFjaz1uLHRoaXMuc3Vic2NyaXB0aW9uPW5ldyBnfWludm9rZShlKXt0aGlzLmNhbGxiYWNrLmNhbGwodGhpcy5jYWxsYmFja1RoaXMsZSl9fWNsYXNzIFV7Y29uc3RydWN0b3IoZSl7dmFyIHQ7dGhpcy5fZGlzcG9zZWQ9ITEsdGhpcy5fb3B0aW9ucz1lLHRoaXMuX2xlYWthZ2VNb249dm9pZCAwLHRoaXMuX3BlcmZNb249KG51bGw9PT0odD10aGlzLl9vcHRpb25zKXx8dm9pZCAwPT09dD92b2lkIDA6dC5fcHJvZk5hbWUpP25ldyBGKHRoaXMuX29wdGlvbnMuX3Byb2ZOYW1lKTp2b2lkIDB9ZGlzcG9zZSgpe3ZhciBlLHQsbixyO3RoaXMuX2Rpc3Bvc2VkfHwodGhpcy5fZGlzcG9zZWQ9ITAsdGhpcy5fbGlzdGVuZXJzJiZ0aGlzLl9saXN0ZW5lcnMuY2xlYXIoKSxudWxsPT09KGU9dGhpcy5fZGVsaXZlcnlRdWV1ZSl8fHZvaWQgMD09PWV8fGUuY2xlYXIoKSxudWxsPT09KG49bnVsbD09PSh0PXRoaXMuX29wdGlvbnMpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lm9uTGFzdExpc3RlbmVyUmVtb3ZlKXx8dm9pZCAwPT09bnx8bi5jYWxsKHQpLG51bGw9PT0ocj10aGlzLl9sZWFrYWdlTW9uKXx8dm9pZCAwPT09cnx8ci5kaXNwb3NlKCkpfWdldCBldmVudCgpe3JldHVybiB0aGlzLl9ldmVudHx8KHRoaXMuX2V2ZW50PShlLHQsbik9Pnt2YXIgcixpLG87dGhpcy5fbGlzdGVuZXJzfHwodGhpcy5fbGlzdGVuZXJzPW5ldyBDKTtjb25zdCBhPXRoaXMuX2xpc3RlbmVycy5pc0VtcHR5KCk7bGV0IHMsbDthJiYobnVsbD09PShyPXRoaXMuX29wdGlvbnMpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLm9uRmlyc3RMaXN0ZW5lckFkZCkmJnRoaXMuX29wdGlvbnMub25GaXJzdExpc3RlbmVyQWRkKHRoaXMpLHRoaXMuX2xlYWthZ2VNb24mJnRoaXMuX2xpc3RlbmVycy5zaXplPj0zMCYmKGw9Vi5jcmVhdGUoKSxzPXRoaXMuX2xlYWthZ2VNb24uY2hlY2sobCx0aGlzLl9saXN0ZW5lcnMuc2l6ZSsxKSk7Y29uc3QgYz1uZXcgQihlLHQsbCksdT10aGlzLl9saXN0ZW5lcnMucHVzaChjKTthJiYobnVsbD09PShpPXRoaXMuX29wdGlvbnMpfHx2b2lkIDA9PT1pP3ZvaWQgMDppLm9uRmlyc3RMaXN0ZW5lckRpZEFkZCkmJnRoaXMuX29wdGlvbnMub25GaXJzdExpc3RlbmVyRGlkQWRkKHRoaXMpLChudWxsPT09KG89dGhpcy5fb3B0aW9ucyl8fHZvaWQgMD09PW8/dm9pZCAwOm8ub25MaXN0ZW5lckRpZEFkZCkmJnRoaXMuX29wdGlvbnMub25MaXN0ZW5lckRpZEFkZCh0aGlzLGUsdCk7Y29uc3QgaD1jLnN1YnNjcmlwdGlvbi5zZXQoKCgpPT57aWYocyYmcygpLCF0aGlzLl9kaXNwb3NlZCYmKHUoKSx0aGlzLl9vcHRpb25zJiZ0aGlzLl9vcHRpb25zLm9uTGFzdExpc3RlbmVyUmVtb3ZlKSl7dGhpcy5fbGlzdGVuZXJzJiYhdGhpcy5fbGlzdGVuZXJzLmlzRW1wdHkoKXx8dGhpcy5fb3B0aW9ucy5vbkxhc3RMaXN0ZW5lclJlbW92ZSh0aGlzKX19KSk7cmV0dXJuIG4gaW5zdGFuY2VvZiBmP24uYWRkKGgpOkFycmF5LmlzQXJyYXkobikmJm4ucHVzaChoKSxofSksdGhpcy5fZXZlbnR9ZmlyZShlKXt2YXIgdCxuO2lmKHRoaXMuX2xpc3RlbmVycyl7dGhpcy5fZGVsaXZlcnlRdWV1ZXx8KHRoaXMuX2RlbGl2ZXJ5UXVldWU9bmV3IEMpO2ZvcihsZXQgdCBvZiB0aGlzLl9saXN0ZW5lcnMpdGhpcy5fZGVsaXZlcnlRdWV1ZS5wdXNoKFt0LGVdKTtmb3IobnVsbD09PSh0PXRoaXMuX3BlcmZNb24pfHx2b2lkIDA9PT10fHx0LnN0YXJ0KHRoaXMuX2RlbGl2ZXJ5UXVldWUuc2l6ZSk7dGhpcy5fZGVsaXZlcnlRdWV1ZS5zaXplPjA7KXtjb25zdFtlLHRdPXRoaXMuX2RlbGl2ZXJ5UXVldWUuc2hpZnQoKTt0cnl7ZS5pbnZva2UodCl9Y2F0Y2goZSl7cihlKX19bnVsbD09PShuPXRoaXMuX3BlcmZNb24pfHx2b2lkIDA9PT1ufHxuLnN0b3AoKX19fWZ1bmN0aW9uIHEoZSl7Y29uc3QgdD1bXTtmb3IoY29uc3QgbiBvZiBmdW5jdGlvbihlKXtsZXQgdD1bXSxuPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtmb3IoO09iamVjdC5wcm90b3R5cGUhPT1uOyl0PXQuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG4pKSxuPU9iamVjdC5nZXRQcm90b3R5cGVPZihuKTtyZXR1cm4gdH0oZSkpImZ1bmN0aW9uIj09dHlwZW9mIGVbbl0mJnQucHVzaChuKTtyZXR1cm4gdH1mdW5jdGlvbiBIKGUsdD0iVW5yZWFjaGFibGUiKXt0aHJvdyBuZXcgRXJyb3IodCl9Y2xhc3MgV3tjb25zdHJ1Y3RvcihlKXt0aGlzLmV4ZWN1dG9yPWUsdGhpcy5fZGlkUnVuPSExfWdldFZhbHVlKCl7aWYoIXRoaXMuX2RpZFJ1bil0cnl7dGhpcy5fdmFsdWU9dGhpcy5leGVjdXRvcigpfWNhdGNoKGUpe3RoaXMuX2Vycm9yPWV9ZmluYWxseXt0aGlzLl9kaWRSdW49ITB9aWYodGhpcy5fZXJyb3IpdGhyb3cgdGhpcy5fZXJyb3I7cmV0dXJuIHRoaXMuX3ZhbHVlfWdldCByYXdWYWx1ZSgpe3JldHVybiB0aGlzLl92YWx1ZX19ZnVuY3Rpb24geihlLHQsbj0wLHI9ZS5sZW5ndGgsaT0wLG89dC5sZW5ndGgpe2Zvcig7bjxyJiZpPG87bisrLGkrKyl7bGV0IHI9ZS5jaGFyQ29kZUF0KG4pLG89dC5jaGFyQ29kZUF0KGkpO2lmKHI8bylyZXR1cm4tMTtpZihyPm8pcmV0dXJuIDF9Y29uc3QgYT1yLW4scz1vLWk7cmV0dXJuIGE8cz8tMTphPnM/MTowfWZ1bmN0aW9uICQoZSl7cmV0dXJuIGU+PTk3JiZlPD0xMjJ9ZnVuY3Rpb24gRyhlKXtyZXR1cm4gZT49NjUmJmU8PTkwfWZ1bmN0aW9uIGooZSx0KXtjb25zdCBuPXQubGVuZ3RoO3JldHVybiEodC5sZW5ndGg+ZS5sZW5ndGgpJiYwPT09ZnVuY3Rpb24oZSx0LG49MCxyPWUubGVuZ3RoLGk9MCxvPXQubGVuZ3RoKXtmb3IoO248ciYmaTxvO24rKyxpKyspe2xldCBhPWUuY2hhckNvZGVBdChuKSxzPXQuY2hhckNvZGVBdChpKTtpZihhPT09cyljb250aW51ZTtpZihhPj0xMjh8fHM+PTEyOClyZXR1cm4geihlLnRvTG93ZXJDYXNlKCksdC50b0xvd2VyQ2FzZSgpLG4scixpLG8pOyQoYSkmJihhLT0zMiksJChzKSYmKHMtPTMyKTtjb25zdCBsPWEtcztpZigwIT09bClyZXR1cm4gbH1jb25zdCBhPXItbixzPW8taTtyZXR1cm4gYTxzPy0xOmE+cz8xOjB9KGUsdCwwLG4pfWZ1bmN0aW9uIFkoZSl7cmV0dXJuIDU1Mjk2PD1lJiZlPD01NjMxOX1mdW5jdGlvbiBaKGUsdCxuKXtjb25zdCByPWUuY2hhckNvZGVBdChuKTtpZihZKHIpJiZuKzE8dCl7Y29uc3QgdD1lLmNoYXJDb2RlQXQobisxKTtpZihmdW5jdGlvbihlKXtyZXR1cm4gNTYzMjA8PWUmJmU8PTU3MzQzfSh0KSlyZXR1cm4gdC01NjMyMCsoci01NTI5Njw8MTApKzY1NTM2fXJldHVybiByfWNvbnN0IEo9L15bXHRcblxyXHgyMC1ceDdFXSokLztjbGFzcyBRe2NvbnN0cnVjdG9yKGUpe3RoaXMuY29uZnVzYWJsZURpY3Rpb25hcnk9ZX1zdGF0aWMgZ2V0SW5zdGFuY2UoZSl7cmV0dXJuIFEuY2FjaGUuZ2V0KEFycmF5LmZyb20oZSkpfXN0YXRpYyBnZXRMb2NhbGVzKCl7cmV0dXJuIFEuX2xvY2FsZXMuZ2V0VmFsdWUoKX1pc0FtYmlndW91cyhlKXtyZXR1cm4gdGhpcy5jb25mdXNhYmxlRGljdGlvbmFyeS5oYXMoZSl9Z2V0UHJpbWFyeUNvbmZ1c2FibGUoZSl7cmV0dXJuIHRoaXMuY29uZnVzYWJsZURpY3Rpb25hcnkuZ2V0KGUpfWdldENvbmZ1c2FibGVDb2RlUG9pbnRzKCl7cmV0dXJuIG5ldyBTZXQodGhpcy5jb25mdXNhYmxlRGljdGlvbmFyeS5rZXlzKCkpfX1QPVEsUS5hbWJpZ3VvdXNDaGFyYWN0ZXJEYXRhPW5ldyBXKCgoKT0+SlNPTi5wYXJzZSgneyJfY29tbW9uIjpbODIzMiwzMiw4MjMzLDMyLDU3NjAsMzIsODE5MiwzMiw4MTkzLDMyLDgxOTQsMzIsODE5NSwzMiw4MTk2LDMyLDgxOTcsMzIsODE5OCwzMiw4MjAwLDMyLDgyMDEsMzIsODIwMiwzMiw4Mjg3LDMyLDgxOTksMzIsODIzOSwzMiwyMDQyLDk1LDY1MTAxLDk1LDY1MTAyLDk1LDY1MTAzLDk1LDgyMDgsNDUsODIwOSw0NSw4MjEwLDQ1LDY1MTEyLDQ1LDE3NDgsNDUsODI1OSw0NSw3MjcsNDUsODcyMiw0NSwxMDEzNCw0NSwxMTQ1MCw0NSwxNTQ5LDQ0LDE2NDMsNDQsODIxOCw0NCwxODQsNDQsNDIyMzMsNDQsODk0LDU5LDIzMDcsNTgsMjY5MSw1OCwxNDE3LDU4LDE3OTUsNTgsMTc5Niw1OCw1ODY4LDU4LDY1MDcyLDU4LDYxNDcsNTgsNjE1Myw1OCw4MjgyLDU4LDE0NzUsNTgsNzYwLDU4LDQyODg5LDU4LDg3NTgsNTgsNzIwLDU4LDQyMjM3LDU4LDQ1MSwzMywxMTYwMSwzMyw2NjAsNjMsNTc3LDYzLDI0MjksNjMsNTAzOCw2Myw0MjczMSw2MywxMTkxNDksNDYsODIyOCw0NiwxNzkzLDQ2LDE3OTQsNDYsNDI1MTAsNDYsNjgxNzYsNDYsMTYzMiw0NiwxNzc2LDQ2LDQyMjMyLDQ2LDEzNzMsOTYsNjUyODcsOTYsODIxOSw5Niw4MjQyLDk2LDEzNzAsOTYsMTUyMyw5Niw4MTc1LDk2LDY1MzQ0LDk2LDkwMCw5Niw4MTg5LDk2LDgxMjUsOTYsODEyNyw5Niw4MTkwLDk2LDY5Nyw5Niw4ODQsOTYsNzEyLDk2LDcxNCw5Niw3MTUsOTYsNzU2LDk2LDY5OSw5Niw3MDEsOTYsNzAwLDk2LDcwMiw5Niw0Mjg5Miw5NiwxNDk3LDk2LDIwMzYsOTYsMjAzNyw5Niw1MTk0LDk2LDU4MzYsOTYsOTQwMzMsOTYsOTQwMzQsOTYsNjUzMzksOTEsMTAwODgsNDAsMTAwOTgsNDAsMTIzMDgsNDAsNjQ4MzAsNDAsNjUzNDEsOTMsMTAwODksNDEsMTAwOTksNDEsMTIzMDksNDEsNjQ4MzEsNDEsMTAxMDAsMTIzLDExOTA2MCwxMjMsMTAxMDEsMTI1LDY1MzQyLDk0LDgyNzAsNDIsMTY0NSw0Miw4NzI3LDQyLDY2MzM1LDQyLDU5NDEsNDcsODI1Nyw0Nyw4NzI1LDQ3LDgyNjAsNDcsOTU4NSw0NywxMDE4Nyw0NywxMDc0NCw0NywxMTkzNTQsNDcsMTI3NTUsNDcsMTIzMzksNDcsMTE0NjIsNDcsMjAwMzEsNDcsMTIwMzUsNDcsNjUzNDAsOTIsNjUxMjgsOTIsODcyNiw5MiwxMDE4OSw5MiwxMDc0MSw5MiwxMDc0NSw5MiwxMTkzMTEsOTIsMTE5MzU1LDkyLDEyNzU2LDkyLDIwMDIyLDkyLDEyMDM0LDkyLDQyODcyLDM4LDcwOCw5NCw3MTAsOTQsNTg2OSw0MywxMDEzMyw0Myw2NjIwMyw0Myw4MjQ5LDYwLDEwMDk0LDYwLDcwNiw2MCwxMTkzNTAsNjAsNTE3Niw2MCw1ODEwLDYwLDUxMjAsNjEsMTE4NDAsNjEsMTI0NDgsNjEsNDIyMzksNjEsODI1MCw2MiwxMDA5NSw2Miw3MDcsNjIsMTE5MzUxLDYyLDUxNzEsNjIsOTQwMTUsNjIsODI3NSwxMjYsNzMyLDEyNiw4MTI4LDEyNiw4NzY0LDEyNiw2NTM3MiwxMjQsNjUyOTMsNDUsMTIwNzg0LDUwLDEyMDc5NCw1MCwxMjA4MDQsNTAsMTIwODE0LDUwLDEyMDgyNCw1MCwxMzAwMzQsNTAsNDI4NDIsNTAsNDIzLDUwLDEwMDAsNTAsNDI1NjQsNTAsNTMxMSw1MCw0MjczNSw1MCwxMTkzMDIsNTEsMTIwNzg1LDUxLDEyMDc5NSw1MSwxMjA4MDUsNTEsMTIwODE1LDUxLDEyMDgyNSw1MSwxMzAwMzUsNTEsNDI5MjMsNTEsNTQwLDUxLDQzOSw1MSw0Mjg1OCw1MSwxMTQ2OCw1MSwxMjQ4LDUxLDk0MDExLDUxLDcxODgyLDUxLDEyMDc4Niw1MiwxMjA3OTYsNTIsMTIwODA2LDUyLDEyMDgxNiw1MiwxMjA4MjYsNTIsMTMwMDM2LDUyLDUwNzAsNTIsNzE4NTUsNTIsMTIwNzg3LDUzLDEyMDc5Nyw1MywxMjA4MDcsNTMsMTIwODE3LDUzLDEyMDgyNyw1MywxMzAwMzcsNTMsNDQ0LDUzLDcxODY3LDUzLDEyMDc4OCw1NCwxMjA3OTgsNTQsMTIwODA4LDU0LDEyMDgxOCw1NCwxMjA4MjgsNTQsMTMwMDM4LDU0LDExNDc0LDU0LDUxMDIsNTQsNzE4OTMsNTQsMTE5MzE0LDU1LDEyMDc4OSw1NSwxMjA3OTksNTUsMTIwODA5LDU1LDEyMDgxOSw1NSwxMjA4MjksNTUsMTMwMDM5LDU1LDY2NzcwLDU1LDcxODc4LDU1LDI4MTksNTYsMjUzOCw1NiwyNjY2LDU2LDEyNTEzMSw1NiwxMjA3OTAsNTYsMTIwODAwLDU2LDEyMDgxMCw1NiwxMjA4MjAsNTYsMTIwODMwLDU2LDEzMDA0MCw1Niw1NDcsNTYsNTQ2LDU2LDY2MzMwLDU2LDI2NjMsNTcsMjkyMCw1NywyNTQxLDU3LDM0MzcsNTcsMTIwNzkxLDU3LDEyMDgwMSw1NywxMjA4MTEsNTcsMTIwODIxLDU3LDEyMDgzMSw1NywxMzAwNDEsNTcsNDI4NjIsNTcsMTE0NjYsNTcsNzE4ODQsNTcsNzE4NTIsNTcsNzE4OTQsNTcsOTA4Miw5Nyw2NTM0NSw5NywxMTk4MzQsOTcsMTE5ODg2LDk3LDExOTkzOCw5NywxMTk5OTAsOTcsMTIwMDQyLDk3LDEyMDA5NCw5NywxMjAxNDYsOTcsMTIwMTk4LDk3LDEyMDI1MCw5NywxMjAzMDIsOTcsMTIwMzU0LDk3LDEyMDQwNiw5NywxMjA0NTgsOTcsNTkzLDk3LDk0NSw5NywxMjA1MTQsOTcsMTIwNTcyLDk3LDEyMDYzMCw5NywxMjA2ODgsOTcsMTIwNzQ2LDk3LDY1MzEzLDY1LDExOTgwOCw2NSwxMTk4NjAsNjUsMTE5OTEyLDY1LDExOTk2NCw2NSwxMjAwMTYsNjUsMTIwMDY4LDY1LDEyMDEyMCw2NSwxMjAxNzIsNjUsMTIwMjI0LDY1LDEyMDI3Niw2NSwxMjAzMjgsNjUsMTIwMzgwLDY1LDEyMDQzMiw2NSw5MTMsNjUsMTIwNDg4LDY1LDEyMDU0Niw2NSwxMjA2MDQsNjUsMTIwNjYyLDY1LDEyMDcyMCw2NSw1MDM0LDY1LDU1NzMsNjUsNDIyMjIsNjUsOTQwMTYsNjUsNjYyMDgsNjUsMTE5ODM1LDk4LDExOTg4Nyw5OCwxMTk5MzksOTgsMTE5OTkxLDk4LDEyMDA0Myw5OCwxMjAwOTUsOTgsMTIwMTQ3LDk4LDEyMDE5OSw5OCwxMjAyNTEsOTgsMTIwMzAzLDk4LDEyMDM1NSw5OCwxMjA0MDcsOTgsMTIwNDU5LDk4LDM4OCw5OCw1MDcxLDk4LDUyMzQsOTgsNTU1MSw5OCw2NTMxNCw2Niw4NDkyLDY2LDExOTgwOSw2NiwxMTk4NjEsNjYsMTE5OTEzLDY2LDEyMDAxNyw2NiwxMjAwNjksNjYsMTIwMTIxLDY2LDEyMDE3Myw2NiwxMjAyMjUsNjYsMTIwMjc3LDY2LDEyMDMyOSw2NiwxMjAzODEsNjYsMTIwNDMzLDY2LDQyOTMyLDY2LDkxNCw2NiwxMjA0ODksNjYsMTIwNTQ3LDY2LDEyMDYwNSw2NiwxMjA2NjMsNjYsMTIwNzIxLDY2LDUxMDgsNjYsNTYyMyw2Niw0MjE5Miw2Niw2NjE3OCw2Niw2NjIwOSw2Niw2NjMwNSw2Niw2NTM0Nyw5OSw4NTczLDk5LDExOTgzNiw5OSwxMTk4ODgsOTksMTE5OTQwLDk5LDExOTk5Miw5OSwxMjAwNDQsOTksMTIwMDk2LDk5LDEyMDE0OCw5OSwxMjAyMDAsOTksMTIwMjUyLDk5LDEyMDMwNCw5OSwxMjAzNTYsOTksMTIwNDA4LDk5LDEyMDQ2MCw5OSw3NDI4LDk5LDEwMTAsOTksMTE0MjksOTksNDM5NTEsOTksNjY2MjEsOTksMTI4ODQ0LDY3LDcxOTIyLDY3LDcxOTEzLDY3LDY1MzE1LDY3LDg1NTcsNjcsODQ1MCw2Nyw4NDkzLDY3LDExOTgxMCw2NywxMTk4NjIsNjcsMTE5OTE0LDY3LDExOTk2Niw2NywxMjAwMTgsNjcsMTIwMTc0LDY3LDEyMDIyNiw2NywxMjAyNzgsNjcsMTIwMzMwLDY3LDEyMDM4Miw2NywxMjA0MzQsNjcsMTAxNyw2NywxMTQyOCw2Nyw1MDg3LDY3LDQyMjAyLDY3LDY2MjEwLDY3LDY2MzA2LDY3LDY2NTgxLDY3LDY2ODQ0LDY3LDg1NzQsMTAwLDg1MTgsMTAwLDExOTgzNywxMDAsMTE5ODg5LDEwMCwxMTk5NDEsMTAwLDExOTk5MywxMDAsMTIwMDQ1LDEwMCwxMjAwOTcsMTAwLDEyMDE0OSwxMDAsMTIwMjAxLDEwMCwxMjAyNTMsMTAwLDEyMDMwNSwxMDAsMTIwMzU3LDEwMCwxMjA0MDksMTAwLDEyMDQ2MSwxMDAsMTI4MSwxMDAsNTA5NSwxMDAsNTIzMSwxMDAsNDIxOTQsMTAwLDg1NTgsNjgsODUxNyw2OCwxMTk4MTEsNjgsMTE5ODYzLDY4LDExOTkxNSw2OCwxMTk5NjcsNjgsMTIwMDE5LDY4LDEyMDA3MSw2OCwxMjAxMjMsNjgsMTIwMTc1LDY4LDEyMDIyNyw2OCwxMjAyNzksNjgsMTIwMzMxLDY4LDEyMDM4Myw2OCwxMjA0MzUsNjgsNTAyNCw2OCw1NTk4LDY4LDU2MTAsNjgsNDIxOTUsNjgsODQ5NCwxMDEsNjUzNDksMTAxLDg0OTUsMTAxLDg1MTksMTAxLDExOTgzOCwxMDEsMTE5ODkwLDEwMSwxMTk5NDIsMTAxLDEyMDA0NiwxMDEsMTIwMDk4LDEwMSwxMjAxNTAsMTAxLDEyMDIwMiwxMDEsMTIwMjU0LDEwMSwxMjAzMDYsMTAxLDEyMDM1OCwxMDEsMTIwNDEwLDEwMSwxMjA0NjIsMTAxLDQzODI2LDEwMSwxMjEzLDEwMSw4OTU5LDY5LDY1MzE3LDY5LDg0OTYsNjksMTE5ODEyLDY5LDExOTg2NCw2OSwxMTk5MTYsNjksMTIwMDIwLDY5LDEyMDA3Miw2OSwxMjAxMjQsNjksMTIwMTc2LDY5LDEyMDIyOCw2OSwxMjAyODAsNjksMTIwMzMyLDY5LDEyMDM4NCw2OSwxMjA0MzYsNjksOTE3LDY5LDEyMDQ5Miw2OSwxMjA1NTAsNjksMTIwNjA4LDY5LDEyMDY2Niw2OSwxMjA3MjQsNjksMTE1NzcsNjksNTAzNiw2OSw0MjIyNCw2OSw3MTg0Niw2OSw3MTg1NCw2OSw2NjE4Miw2OSwxMTk4MzksMTAyLDExOTg5MSwxMDIsMTE5OTQzLDEwMiwxMTk5OTUsMTAyLDEyMDA0NywxMDIsMTIwMDk5LDEwMiwxMjAxNTEsMTAyLDEyMDIwMywxMDIsMTIwMjU1LDEwMiwxMjAzMDcsMTAyLDEyMDM1OSwxMDIsMTIwNDExLDEwMiwxMjA0NjMsMTAyLDQzODI5LDEwMiw0MjkwNSwxMDIsMzgzLDEwMiw3ODM3LDEwMiwxNDEyLDEwMiwxMTkzMTUsNzAsODQ5Nyw3MCwxMTk4MTMsNzAsMTE5ODY1LDcwLDExOTkxNyw3MCwxMjAwMjEsNzAsMTIwMDczLDcwLDEyMDEyNSw3MCwxMjAxNzcsNzAsMTIwMjI5LDcwLDEyMDI4MSw3MCwxMjAzMzMsNzAsMTIwMzg1LDcwLDEyMDQzNyw3MCw0MjkwNCw3MCw5ODgsNzAsMTIwNzc4LDcwLDU1NTYsNzAsNDIyMDUsNzAsNzE4NzQsNzAsNzE4NDIsNzAsNjYxODMsNzAsNjYyMTMsNzAsNjY4NTMsNzAsNjUzNTEsMTAzLDg0NTgsMTAzLDExOTg0MCwxMDMsMTE5ODkyLDEwMywxMTk5NDQsMTAzLDEyMDA0OCwxMDMsMTIwMTAwLDEwMywxMjAxNTIsMTAzLDEyMDIwNCwxMDMsMTIwMjU2LDEwMywxMjAzMDgsMTAzLDEyMDM2MCwxMDMsMTIwNDEyLDEwMywxMjA0NjQsMTAzLDYwOSwxMDMsNzU1NSwxMDMsMzk3LDEwMywxNDA5LDEwMywxMTk4MTQsNzEsMTE5ODY2LDcxLDExOTkxOCw3MSwxMTk5NzAsNzEsMTIwMDIyLDcxLDEyMDA3NCw3MSwxMjAxMjYsNzEsMTIwMTc4LDcxLDEyMDIzMCw3MSwxMjAyODIsNzEsMTIwMzM0LDcxLDEyMDM4Niw3MSwxMjA0MzgsNzEsMTI5Miw3MSw1MDU2LDcxLDUxMDcsNzEsNDIxOTgsNzEsNjUzNTIsMTA0LDg0NjIsMTA0LDExOTg0MSwxMDQsMTE5OTQ1LDEwNCwxMTk5OTcsMTA0LDEyMDA0OSwxMDQsMTIwMTAxLDEwNCwxMjAxNTMsMTA0LDEyMDIwNSwxMDQsMTIwMjU3LDEwNCwxMjAzMDksMTA0LDEyMDM2MSwxMDQsMTIwNDEzLDEwNCwxMjA0NjUsMTA0LDEyMTEsMTA0LDEzOTIsMTA0LDUwNTgsMTA0LDY1MzIwLDcyLDg0NTksNzIsODQ2MCw3Miw4NDYxLDcyLDExOTgxNSw3MiwxMTk4NjcsNzIsMTE5OTE5LDcyLDEyMDAyMyw3MiwxMjAxNzksNzIsMTIwMjMxLDcyLDEyMDI4Myw3MiwxMjAzMzUsNzIsMTIwMzg3LDcyLDEyMDQzOSw3Miw5MTksNzIsMTIwNDk0LDcyLDEyMDU1Miw3MiwxMjA2MTAsNzIsMTIwNjY4LDcyLDEyMDcyNiw3MiwxMTQwNiw3Miw1MDUxLDcyLDU1MDAsNzIsNDIyMTUsNzIsNjYyNTUsNzIsNzMxLDEwNSw5MDc1LDEwNSw2NTM1MywxMDUsODU2MCwxMDUsODUwNSwxMDUsODUyMCwxMDUsMTE5ODQyLDEwNSwxMTk4OTQsMTA1LDExOTk0NiwxMDUsMTE5OTk4LDEwNSwxMjAwNTAsMTA1LDEyMDEwMiwxMDUsMTIwMTU0LDEwNSwxMjAyMDYsMTA1LDEyMDI1OCwxMDUsMTIwMzEwLDEwNSwxMjAzNjIsMTA1LDEyMDQxNCwxMDUsMTIwNDY2LDEwNSwxMjA0ODQsMTA1LDYxOCwxMDUsNjE3LDEwNSw5NTMsMTA1LDgxMjYsMTA1LDg5MCwxMDUsMTIwNTIyLDEwNSwxMjA1ODAsMTA1LDEyMDYzOCwxMDUsMTIwNjk2LDEwNSwxMjA3NTQsMTA1LDExMTAsMTA1LDQyNTY3LDEwNSwxMjMxLDEwNSw0Mzg5MywxMDUsNTAyOSwxMDUsNzE4NzUsMTA1LDY1MzU0LDEwNiw4NTIxLDEwNiwxMTk4NDMsMTA2LDExOTg5NSwxMDYsMTE5OTQ3LDEwNiwxMTk5OTksMTA2LDEyMDA1MSwxMDYsMTIwMTAzLDEwNiwxMjAxNTUsMTA2LDEyMDIwNywxMDYsMTIwMjU5LDEwNiwxMjAzMTEsMTA2LDEyMDM2MywxMDYsMTIwNDE1LDEwNiwxMjA0NjcsMTA2LDEwMTEsMTA2LDExMTIsMTA2LDY1MzIyLDc0LDExOTgxNyw3NCwxMTk4NjksNzQsMTE5OTIxLDc0LDExOTk3Myw3NCwxMjAwMjUsNzQsMTIwMDc3LDc0LDEyMDEyOSw3NCwxMjAxODEsNzQsMTIwMjMzLDc0LDEyMDI4NSw3NCwxMjAzMzcsNzQsMTIwMzg5LDc0LDEyMDQ0MSw3NCw0MjkzMCw3NCw4OTUsNzQsMTAzMiw3NCw1MDM1LDc0LDUyNjEsNzQsNDIyMDEsNzQsMTE5ODQ0LDEwNywxMTk4OTYsMTA3LDExOTk0OCwxMDcsMTIwMDAwLDEwNywxMjAwNTIsMTA3LDEyMDEwNCwxMDcsMTIwMTU2LDEwNywxMjAyMDgsMTA3LDEyMDI2MCwxMDcsMTIwMzEyLDEwNywxMjAzNjQsMTA3LDEyMDQxNiwxMDcsMTIwNDY4LDEwNyw4NDkwLDc1LDY1MzIzLDc1LDExOTgxOCw3NSwxMTk4NzAsNzUsMTE5OTIyLDc1LDExOTk3NCw3NSwxMjAwMjYsNzUsMTIwMDc4LDc1LDEyMDEzMCw3NSwxMjAxODIsNzUsMTIwMjM0LDc1LDEyMDI4Niw3NSwxMjAzMzgsNzUsMTIwMzkwLDc1LDEyMDQ0Miw3NSw5MjIsNzUsMTIwNDk3LDc1LDEyMDU1NSw3NSwxMjA2MTMsNzUsMTIwNjcxLDc1LDEyMDcyOSw3NSwxMTQxMiw3NSw1MDk0LDc1LDU4NDUsNzUsNDIxOTksNzUsNjY4NDAsNzUsMTQ3MiwxMDgsODczOSw3Myw5MjEzLDczLDY1NTEyLDczLDE2MzMsMTA4LDE3NzcsNzMsNjYzMzYsMTA4LDEyNTEyNywxMDgsMTIwNzgzLDczLDEyMDc5Myw3MywxMjA4MDMsNzMsMTIwODEzLDczLDEyMDgyMyw3MywxMzAwMzMsNzMsNjUzMjEsNzMsODU0NCw3Myw4NDY0LDczLDg0NjUsNzMsMTE5ODE2LDczLDExOTg2OCw3MywxMTk5MjAsNzMsMTIwMDI0LDczLDEyMDEyOCw3MywxMjAxODAsNzMsMTIwMjMyLDczLDEyMDI4NCw3MywxMjAzMzYsNzMsMTIwMzg4LDczLDEyMDQ0MCw3Myw2NTM1NiwxMDgsODU3Miw3Myw4NDY3LDEwOCwxMTk4NDUsMTA4LDExOTg5NywxMDgsMTE5OTQ5LDEwOCwxMjAwMDEsMTA4LDEyMDA1MywxMDgsMTIwMTA1LDczLDEyMDE1Nyw3MywxMjAyMDksNzMsMTIwMjYxLDczLDEyMDMxMyw3MywxMjAzNjUsNzMsMTIwNDE3LDczLDEyMDQ2OSw3Myw0NDgsNzMsMTIwNDk2LDczLDEyMDU1NCw3MywxMjA2MTIsNzMsMTIwNjcwLDczLDEyMDcyOCw3MywxMTQxMCw3MywxMDMwLDczLDEyMTYsNzMsMTQ5MywxMDgsMTUwMywxMDgsMTU3NSwxMDgsMTI2NDY0LDEwOCwxMjY1OTIsMTA4LDY1MTY2LDEwOCw2NTE2NSwxMDgsMTk5NCwxMDgsMTE1OTksNzMsNTgyNSw3Myw0MjIyNiw3Myw5Mzk5Miw3Myw2NjE4NiwxMjQsNjYzMTMsMTI0LDExOTMzOCw3Niw4NTU2LDc2LDg0NjYsNzYsMTE5ODE5LDc2LDExOTg3MSw3NiwxMTk5MjMsNzYsMTIwMDI3LDc2LDEyMDA3OSw3NiwxMjAxMzEsNzYsMTIwMTgzLDc2LDEyMDIzNSw3NiwxMjAyODcsNzYsMTIwMzM5LDc2LDEyMDM5MSw3NiwxMjA0NDMsNzYsMTE0NzIsNzYsNTA4Niw3Niw1MjkwLDc2LDQyMjA5LDc2LDkzOTc0LDc2LDcxODQzLDc2LDcxODU4LDc2LDY2NTg3LDc2LDY2ODU0LDc2LDY1MzI1LDc3LDg1NTksNzcsODQ5OSw3NywxMTk4MjAsNzcsMTE5ODcyLDc3LDExOTkyNCw3NywxMjAwMjgsNzcsMTIwMDgwLDc3LDEyMDEzMiw3NywxMjAxODQsNzcsMTIwMjM2LDc3LDEyMDI4OCw3NywxMjAzNDAsNzcsMTIwMzkyLDc3LDEyMDQ0NCw3Nyw5MjQsNzcsMTIwNDk5LDc3LDEyMDU1Nyw3NywxMjA2MTUsNzcsMTIwNjczLDc3LDEyMDczMSw3NywxMDE4LDc3LDExNDE2LDc3LDUwNDcsNzcsNTYxNiw3Nyw1ODQ2LDc3LDQyMjA3LDc3LDY2MjI0LDc3LDY2MzIxLDc3LDExOTg0NywxMTAsMTE5ODk5LDExMCwxMTk5NTEsMTEwLDEyMDAwMywxMTAsMTIwMDU1LDExMCwxMjAxMDcsMTEwLDEyMDE1OSwxMTAsMTIwMjExLDExMCwxMjAyNjMsMTEwLDEyMDMxNSwxMTAsMTIwMzY3LDExMCwxMjA0MTksMTEwLDEyMDQ3MSwxMTAsMTQwMCwxMTAsMTQwNCwxMTAsNjUzMjYsNzgsODQ2OSw3OCwxMTk4MjEsNzgsMTE5ODczLDc4LDExOTkyNSw3OCwxMTk5NzcsNzgsMTIwMDI5LDc4LDEyMDA4MSw3OCwxMjAxODUsNzgsMTIwMjM3LDc4LDEyMDI4OSw3OCwxMjAzNDEsNzgsMTIwMzkzLDc4LDEyMDQ0NSw3OCw5MjUsNzgsMTIwNTAwLDc4LDEyMDU1OCw3OCwxMjA2MTYsNzgsMTIwNjc0LDc4LDEyMDczMiw3OCwxMTQxOCw3OCw0MjIwOCw3OCw2NjgzNSw3OCwzMDc0LDExMSwzMjAyLDExMSwzMzMwLDExMSwzNDU4LDExMSwyNDA2LDExMSwyNjYyLDExMSwyNzkwLDExMSwzMDQ2LDExMSwzMTc0LDExMSwzMzAyLDExMSwzNDMwLDExMSwzNjY0LDExMSwzNzkyLDExMSw0MTYwLDExMSwxNjM3LDExMSwxNzgxLDExMSw2NTM1OSwxMTEsODUwMCwxMTEsMTE5ODQ4LDExMSwxMTk5MDAsMTExLDExOTk1MiwxMTEsMTIwMDU2LDExMSwxMjAxMDgsMTExLDEyMDE2MCwxMTEsMTIwMjEyLDExMSwxMjAyNjQsMTExLDEyMDMxNiwxMTEsMTIwMzY4LDExMSwxMjA0MjAsMTExLDEyMDQ3MiwxMTEsNzQzOSwxMTEsNzQ0MSwxMTEsNDM4MzcsMTExLDk1OSwxMTEsMTIwNTI4LDExMSwxMjA1ODYsMTExLDEyMDY0NCwxMTEsMTIwNzAyLDExMSwxMjA3NjAsMTExLDk2MywxMTEsMTIwNTMyLDExMSwxMjA1OTAsMTExLDEyMDY0OCwxMTEsMTIwNzA2LDExMSwxMjA3NjQsMTExLDExNDIzLDExMSw0MzUxLDExMSwxNDEzLDExMSwxNTA1LDExMSwxNjA3LDExMSwxMjY1MDAsMTExLDEyNjU2NCwxMTEsMTI2NTk2LDExMSw2NTI1OSwxMTEsNjUyNjAsMTExLDY1MjU4LDExMSw2NTI1NywxMTEsMTcyNiwxMTEsNjQ0MjgsMTExLDY0NDI5LDExMSw2NDQyNywxMTEsNjQ0MjYsMTExLDE3MjksMTExLDY0NDI0LDExMSw2NDQyNSwxMTEsNjQ0MjMsMTExLDY0NDIyLDExMSwxNzQ5LDExMSwzMzYwLDExMSw0MTI1LDExMSw2Njc5NCwxMTEsNzE4ODAsMTExLDcxODk1LDExMSw2NjYwNCwxMTEsMTk4NCw3OSwyNTM0LDc5LDI5MTgsNzksMTIyOTUsNzksNzA4NjQsNzksNzE5MDQsNzksMTIwNzgyLDc5LDEyMDc5Miw3OSwxMjA4MDIsNzksMTIwODEyLDc5LDEyMDgyMiw3OSwxMzAwMzIsNzksNjUzMjcsNzksMTE5ODIyLDc5LDExOTg3NCw3OSwxMTk5MjYsNzksMTE5OTc4LDc5LDEyMDAzMCw3OSwxMjAwODIsNzksMTIwMTM0LDc5LDEyMDE4Niw3OSwxMjAyMzgsNzksMTIwMjkwLDc5LDEyMDM0Miw3OSwxMjAzOTQsNzksMTIwNDQ2LDc5LDkyNyw3OSwxMjA1MDIsNzksMTIwNTYwLDc5LDEyMDYxOCw3OSwxMjA2NzYsNzksMTIwNzM0LDc5LDExNDIyLDc5LDEzNjUsNzksMTE2MDQsNzksNDgxNiw3OSwyODQ4LDc5LDY2NzU0LDc5LDQyMjI3LDc5LDcxODYxLDc5LDY2MTk0LDc5LDY2MjE5LDc5LDY2NTY0LDc5LDY2ODM4LDc5LDkwNzYsMTEyLDY1MzYwLDExMiwxMTk4NDksMTEyLDExOTkwMSwxMTIsMTE5OTUzLDExMiwxMjAwMDUsMTEyLDEyMDA1NywxMTIsMTIwMTA5LDExMiwxMjAxNjEsMTEyLDEyMDIxMywxMTIsMTIwMjY1LDExMiwxMjAzMTcsMTEyLDEyMDM2OSwxMTIsMTIwNDIxLDExMiwxMjA0NzMsMTEyLDk2MSwxMTIsMTIwNTMwLDExMiwxMjA1NDQsMTEyLDEyMDU4OCwxMTIsMTIwNjAyLDExMiwxMjA2NDYsMTEyLDEyMDY2MCwxMTIsMTIwNzA0LDExMiwxMjA3MTgsMTEyLDEyMDc2MiwxMTIsMTIwNzc2LDExMiwxMTQyNywxMTIsNjUzMjgsODAsODQ3Myw4MCwxMTk4MjMsODAsMTE5ODc1LDgwLDExOTkyNyw4MCwxMTk5NzksODAsMTIwMDMxLDgwLDEyMDA4Myw4MCwxMjAxODcsODAsMTIwMjM5LDgwLDEyMDI5MSw4MCwxMjAzNDMsODAsMTIwMzk1LDgwLDEyMDQ0Nyw4MCw5MjksODAsMTIwNTA0LDgwLDEyMDU2Miw4MCwxMjA2MjAsODAsMTIwNjc4LDgwLDEyMDczNiw4MCwxMTQyNiw4MCw1MDkwLDgwLDUyMjksODAsNDIxOTMsODAsNjYxOTcsODAsMTE5ODUwLDExMywxMTk5MDIsMTEzLDExOTk1NCwxMTMsMTIwMDA2LDExMywxMjAwNTgsMTEzLDEyMDExMCwxMTMsMTIwMTYyLDExMywxMjAyMTQsMTEzLDEyMDI2NiwxMTMsMTIwMzE4LDExMywxMjAzNzAsMTEzLDEyMDQyMiwxMTMsMTIwNDc0LDExMywxMzA3LDExMywxMzc5LDExMywxMzgyLDExMyw4NDc0LDgxLDExOTgyNCw4MSwxMTk4NzYsODEsMTE5OTI4LDgxLDExOTk4MCw4MSwxMjAwMzIsODEsMTIwMDg0LDgxLDEyMDE4OCw4MSwxMjAyNDAsODEsMTIwMjkyLDgxLDEyMDM0NCw4MSwxMjAzOTYsODEsMTIwNDQ4LDgxLDExNjA1LDgxLDExOTg1MSwxMTQsMTE5OTAzLDExNCwxMTk5NTUsMTE0LDEyMDAwNywxMTQsMTIwMDU5LDExNCwxMjAxMTEsMTE0LDEyMDE2MywxMTQsMTIwMjE1LDExNCwxMjAyNjcsMTE0LDEyMDMxOSwxMTQsMTIwMzcxLDExNCwxMjA0MjMsMTE0LDEyMDQ3NSwxMTQsNDM4NDcsMTE0LDQzODQ4LDExNCw3NDYyLDExNCwxMTM5NywxMTQsNDM5MDUsMTE0LDExOTMxOCw4Miw4NDc1LDgyLDg0NzYsODIsODQ3Nyw4MiwxMTk4MjUsODIsMTE5ODc3LDgyLDExOTkyOSw4MiwxMjAwMzMsODIsMTIwMTg5LDgyLDEyMDI0MSw4MiwxMjAyOTMsODIsMTIwMzQ1LDgyLDEyMDM5Nyw4MiwxMjA0NDksODIsNDIyLDgyLDUwMjUsODIsNTA3NCw4Miw2Njc0MCw4Miw1NTExLDgyLDQyMjExLDgyLDk0MDA1LDgyLDY1MzYzLDExNSwxMTk4NTIsMTE1LDExOTkwNCwxMTUsMTE5OTU2LDExNSwxMjAwMDgsMTE1LDEyMDA2MCwxMTUsMTIwMTEyLDExNSwxMjAxNjQsMTE1LDEyMDIxNiwxMTUsMTIwMjY4LDExNSwxMjAzMjAsMTE1LDEyMDM3MiwxMTUsMTIwNDI0LDExNSwxMjA0NzYsMTE1LDQyODAxLDExNSw0NDUsMTE1LDExMDksMTE1LDQzOTQ2LDExNSw3MTg3MywxMTUsNjY2MzIsMTE1LDY1MzMxLDgzLDExOTgyNiw4MywxMTk4NzgsODMsMTE5OTMwLDgzLDExOTk4Miw4MywxMjAwMzQsODMsMTIwMDg2LDgzLDEyMDEzOCw4MywxMjAxOTAsODMsMTIwMjQyLDgzLDEyMDI5NCw4MywxMjAzNDYsODMsMTIwMzk4LDgzLDEyMDQ1MCw4MywxMDI5LDgzLDEzNTksODMsNTA3Nyw4Myw1MDgyLDgzLDQyMjEwLDgzLDk0MDEwLDgzLDY2MTk4LDgzLDY2NTkyLDgzLDExOTg1MywxMTYsMTE5OTA1LDExNiwxMTk5NTcsMTE2LDEyMDAwOSwxMTYsMTIwMDYxLDExNiwxMjAxMTMsMTE2LDEyMDE2NSwxMTYsMTIwMjE3LDExNiwxMjAyNjksMTE2LDEyMDMyMSwxMTYsMTIwMzczLDExNiwxMjA0MjUsMTE2LDEyMDQ3NywxMTYsODg2OCw4NCwxMDIwMSw4NCwxMjg4NzIsODQsNjUzMzIsODQsMTE5ODI3LDg0LDExOTg3OSw4NCwxMTk5MzEsODQsMTE5OTgzLDg0LDEyMDAzNSw4NCwxMjAwODcsODQsMTIwMTM5LDg0LDEyMDE5MSw4NCwxMjAyNDMsODQsMTIwMjk1LDg0LDEyMDM0Nyw4NCwxMjAzOTksODQsMTIwNDUxLDg0LDkzMiw4NCwxMjA1MDcsODQsMTIwNTY1LDg0LDEyMDYyMyw4NCwxMjA2ODEsODQsMTIwNzM5LDg0LDExNDMwLDg0LDUwMjYsODQsNDIxOTYsODQsOTM5NjIsODQsNzE4NjgsODQsNjYxOTksODQsNjYyMjUsODQsNjYzMjUsODQsMTE5ODU0LDExNywxMTk5MDYsMTE3LDExOTk1OCwxMTcsMTIwMDEwLDExNywxMjAwNjIsMTE3LDEyMDExNCwxMTcsMTIwMTY2LDExNywxMjAyMTgsMTE3LDEyMDI3MCwxMTcsMTIwMzIyLDExNywxMjAzNzQsMTE3LDEyMDQyNiwxMTcsMTIwNDc4LDExNyw0MjkxMSwxMTcsNzQ1MiwxMTcsNDM4NTQsMTE3LDQzODU4LDExNyw2NTEsMTE3LDk2NSwxMTcsMTIwNTM0LDExNywxMjA1OTIsMTE3LDEyMDY1MCwxMTcsMTIwNzA4LDExNywxMjA3NjYsMTE3LDE0MDUsMTE3LDY2ODA2LDExNyw3MTg5NiwxMTcsODc0Niw4NSw4ODk5LDg1LDExOTgyOCw4NSwxMTk4ODAsODUsMTE5OTMyLDg1LDExOTk4NCw4NSwxMjAwMzYsODUsMTIwMDg4LDg1LDEyMDE0MCw4NSwxMjAxOTIsODUsMTIwMjQ0LDg1LDEyMDI5Niw4NSwxMjAzNDgsODUsMTIwNDAwLDg1LDEyMDQ1Miw4NSwxMzU3LDg1LDQ2MDgsODUsNjY3NjYsODUsNTE5Niw4NSw0MjIyOCw4NSw5NDAxOCw4NSw3MTg2NCw4NSw4NzQ0LDExOCw4ODk3LDExOCw2NTM2NiwxMTgsODU2NCwxMTgsMTE5ODU1LDExOCwxMTk5MDcsMTE4LDExOTk1OSwxMTgsMTIwMDExLDExOCwxMjAwNjMsMTE4LDEyMDExNSwxMTgsMTIwMTY3LDExOCwxMjAyMTksMTE4LDEyMDI3MSwxMTgsMTIwMzIzLDExOCwxMjAzNzUsMTE4LDEyMDQyNywxMTgsMTIwNDc5LDExOCw3NDU2LDExOCw5NTcsMTE4LDEyMDUyNiwxMTgsMTIwNTg0LDExOCwxMjA2NDIsMTE4LDEyMDcwMCwxMTgsMTIwNzU4LDExOCwxMTQxLDExOCwxNDk2LDExOCw3MTQzMCwxMTgsNDM5NDUsMTE4LDcxODcyLDExOCwxMTkzMDksODYsMTYzOSw4NiwxNzgzLDg2LDg1NDgsODYsMTE5ODI5LDg2LDExOTg4MSw4NiwxMTk5MzMsODYsMTE5OTg1LDg2LDEyMDAzNyw4NiwxMjAwODksODYsMTIwMTQxLDg2LDEyMDE5Myw4NiwxMjAyNDUsODYsMTIwMjk3LDg2LDEyMDM0OSw4NiwxMjA0MDEsODYsMTIwNDUzLDg2LDExNDAsODYsMTE1NzYsODYsNTA4MSw4Niw1MTY3LDg2LDQyNzE5LDg2LDQyMjE0LDg2LDkzOTYwLDg2LDcxODQwLDg2LDY2ODQ1LDg2LDYyMywxMTksMTE5ODU2LDExOSwxMTk5MDgsMTE5LDExOTk2MCwxMTksMTIwMDEyLDExOSwxMjAwNjQsMTE5LDEyMDExNiwxMTksMTIwMTY4LDExOSwxMjAyMjAsMTE5LDEyMDI3MiwxMTksMTIwMzI0LDExOSwxMjAzNzYsMTE5LDEyMDQyOCwxMTksMTIwNDgwLDExOSw3NDU3LDExOSwxMTIxLDExOSwxMzA5LDExOSwxMzc3LDExOSw3MTQzNCwxMTksNzE0MzgsMTE5LDcxNDM5LDExOSw0MzkwNywxMTksNzE5MTksODcsNzE5MTAsODcsMTE5ODMwLDg3LDExOTg4Miw4NywxMTk5MzQsODcsMTE5OTg2LDg3LDEyMDAzOCw4NywxMjAwOTAsODcsMTIwMTQyLDg3LDEyMDE5NCw4NywxMjAyNDYsODcsMTIwMjk4LDg3LDEyMDM1MCw4NywxMjA0MDIsODcsMTIwNDU0LDg3LDEzMDgsODcsNTA0Myw4Nyw1MDc2LDg3LDQyMjE4LDg3LDU3NDIsMTIwLDEwNTM5LDEyMCwxMDU0MCwxMjAsMTA3OTksMTIwLDY1MzY4LDEyMCw4NTY5LDEyMCwxMTk4NTcsMTIwLDExOTkwOSwxMjAsMTE5OTYxLDEyMCwxMjAwMTMsMTIwLDEyMDA2NSwxMjAsMTIwMTE3LDEyMCwxMjAxNjksMTIwLDEyMDIyMSwxMjAsMTIwMjczLDEyMCwxMjAzMjUsMTIwLDEyMDM3NywxMjAsMTIwNDI5LDEyMCwxMjA0ODEsMTIwLDU0NDEsMTIwLDU1MDEsMTIwLDU3NDEsODgsOTU4Nyw4OCw2NjMzOCw4OCw3MTkxNiw4OCw2NTMzNiw4OCw4NTUzLDg4LDExOTgzMSw4OCwxMTk4ODMsODgsMTE5OTM1LDg4LDExOTk4Nyw4OCwxMjAwMzksODgsMTIwMDkxLDg4LDEyMDE0Myw4OCwxMjAxOTUsODgsMTIwMjQ3LDg4LDEyMDI5OSw4OCwxMjAzNTEsODgsMTIwNDAzLDg4LDEyMDQ1NSw4OCw0MjkzMSw4OCw5MzUsODgsMTIwNTEwLDg4LDEyMDU2OCw4OCwxMjA2MjYsODgsMTIwNjg0LDg4LDEyMDc0Miw4OCwxMTQzNiw4OCwxMTYxMyw4OCw1ODE1LDg4LDQyMjE5LDg4LDY2MTkyLDg4LDY2MjI4LDg4LDY2MzI3LDg4LDY2ODU1LDg4LDYxMSwxMjEsNzU2NCwxMjEsNjUzNjksMTIxLDExOTg1OCwxMjEsMTE5OTEwLDEyMSwxMTk5NjIsMTIxLDEyMDAxNCwxMjEsMTIwMDY2LDEyMSwxMjAxMTgsMTIxLDEyMDE3MCwxMjEsMTIwMjIyLDEyMSwxMjAyNzQsMTIxLDEyMDMyNiwxMjEsMTIwMzc4LDEyMSwxMjA0MzAsMTIxLDEyMDQ4MiwxMjEsNjU1LDEyMSw3OTM1LDEyMSw0Mzg2NiwxMjEsOTQ3LDEyMSw4NTA5LDEyMSwxMjA1MTYsMTIxLDEyMDU3NCwxMjEsMTIwNjMyLDEyMSwxMjA2OTAsMTIxLDEyMDc0OCwxMjEsMTE5OSwxMjEsNDMyNywxMjEsNzE5MDAsMTIxLDY1MzM3LDg5LDExOTgzMiw4OSwxMTk4ODQsODksMTE5OTM2LDg5LDExOTk4OCw4OSwxMjAwNDAsODksMTIwMDkyLDg5LDEyMDE0NCw4OSwxMjAxOTYsODksMTIwMjQ4LDg5LDEyMDMwMCw4OSwxMjAzNTIsODksMTIwNDA0LDg5LDEyMDQ1Niw4OSw5MzMsODksOTc4LDg5LDEyMDUwOCw4OSwxMjA1NjYsODksMTIwNjI0LDg5LDEyMDY4Miw4OSwxMjA3NDAsODksMTE0MzIsODksMTE5OCw4OSw1MDMzLDg5LDUwNTMsODksNDIyMjAsODksOTQwMTksODksNzE4NDQsODksNjYyMjYsODksMTE5ODU5LDEyMiwxMTk5MTEsMTIyLDExOTk2MywxMjIsMTIwMDE1LDEyMiwxMjAwNjcsMTIyLDEyMDExOSwxMjIsMTIwMTcxLDEyMiwxMjAyMjMsMTIyLDEyMDI3NSwxMjIsMTIwMzI3LDEyMiwxMjAzNzksMTIyLDEyMDQzMSwxMjIsMTIwNDgzLDEyMiw3NDU4LDEyMiw0MzkyMywxMjIsNzE4NzYsMTIyLDY2MjkzLDkwLDcxOTA5LDkwLDY1MzM4LDkwLDg0ODQsOTAsODQ4OCw5MCwxMTk4MzMsOTAsMTE5ODg1LDkwLDExOTkzNyw5MCwxMTk5ODksOTAsMTIwMDQxLDkwLDEyMDE5Nyw5MCwxMjAyNDksOTAsMTIwMzAxLDkwLDEyMDM1Myw5MCwxMjA0MDUsOTAsMTIwNDU3LDkwLDkxOCw5MCwxMjA0OTMsOTAsMTIwNTUxLDkwLDEyMDYwOSw5MCwxMjA2NjcsOTAsMTIwNzI1LDkwLDUwNTksOTAsNDIyMDQsOTAsNzE4NDksOTAsNjUyODIsMzQsNjUyODQsMzYsNjUyODUsMzcsNjUyODYsMzgsNjUyOTAsNDIsNjUyOTEsNDMsNjUyOTQsNDYsNjUyOTUsNDcsNjUyOTYsNDgsNjUyOTcsNDksNjUyOTgsNTAsNjUyOTksNTEsNjUzMDAsNTIsNjUzMDEsNTMsNjUzMDIsNTQsNjUzMDMsNTUsNjUzMDQsNTYsNjUzMDUsNTcsNjUzMDgsNjAsNjUzMDksNjEsNjUzMTAsNjIsNjUzMTIsNjQsNjUzMTYsNjgsNjUzMTgsNzAsNjUzMTksNzEsNjUzMjQsNzYsNjUzMjksODEsNjUzMzAsODIsNjUzMzMsODUsNjUzMzQsODYsNjUzMzUsODcsNjUzNDMsOTUsNjUzNDYsOTgsNjUzNDgsMTAwLDY1MzUwLDEwMiw2NTM1NSwxMDcsNjUzNTcsMTA5LDY1MzU4LDExMCw2NTM2MSwxMTMsNjUzNjIsMTE0LDY1MzY0LDExNiw2NTM2NSwxMTcsNjUzNjcsMTE5LDY1MzcwLDEyMiw2NTM3MSwxMjMsNjUzNzMsMTI1XSwiX2RlZmF1bHQiOlsxNjAsMzIsODIxMSw0NSw2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwiY3MiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sImRlIjpbNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyMTYsOTYsODIxNyw5Niw4MjQ1LDk2LDE4MCw5NiwxMjQ5NCw0NywxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJlcyI6WzgyMTEsNDUsNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJmciI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyNDUsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJpdCI6WzE2MCwzMiw4MjExLDQ1LDY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwiamEiOls4MjExLDQ1LDY1MzA2LDU4LDY1MjgxLDMzLDgyMTYsOTYsODIxNyw5Niw4MjQ1LDk2LDE4MCw5NiwxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwyMTUsMTIwLDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI5Miw0NCw2NTMwNyw1OV0sImtvIjpbODIxMSw0NSw2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJwbCI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJwdC1CUiI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJxcHMtcGxvYyI6WzE2MCwzMiw4MjExLDQ1LDY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJydSI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMzA1LDEwNSw5MjEsNzMsMTAwOSwxMTIsMjE1LDEyMCw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sInRyIjpbMTYwLDMyLDgyMTEsNDUsNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwyMTUsMTIwLDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sInpoLWhhbnMiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODgsNDAsNjUyODksNDFdLCJ6aC1oYW50IjpbODIxMSw0NSw2NTM3NCwxMjYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1MzA3LDU5XX0nKSkpLFEuY2FjaGU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuY29tcHV0ZUZuPWUsdGhpcy5sYXN0Q2FjaGU9dm9pZCAwLHRoaXMubGFzdEFyZ0tleT12b2lkIDB9Z2V0KGUpe2NvbnN0IHQ9SlNPTi5zdHJpbmdpZnkoZSk7cmV0dXJuIHRoaXMubGFzdEFyZ0tleSE9PXQmJih0aGlzLmxhc3RBcmdLZXk9dCx0aGlzLmxhc3RDYWNoZT10aGlzLmNvbXB1dGVGbihlKSksdGhpcy5sYXN0Q2FjaGV9fSgoZT0+e2Z1bmN0aW9uIHQoZSl7Y29uc3QgdD1uZXcgTWFwO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bis9Mil0LnNldChlW25dLGVbbisxXSk7cmV0dXJuIHR9ZnVuY3Rpb24gbihlLHQpe2lmKCFlKXJldHVybiB0O2NvbnN0IG49bmV3IE1hcDtmb3IoY29uc3RbcixpXW9mIGUpdC5oYXMocikmJm4uc2V0KHIsaSk7cmV0dXJuIG59Y29uc3Qgcj1QLmFtYmlndW91c0NoYXJhY3RlckRhdGEuZ2V0VmFsdWUoKTtsZXQgaSxvPWUuZmlsdGVyKChlPT4hZS5zdGFydHNXaXRoKCJfIikmJmUgaW4gcikpOzA9PT1vLmxlbmd0aCYmKG89WyJfZGVmYXVsdCJdKTtmb3IoY29uc3QgZSBvZiBvKXtpPW4oaSx0KHJbZV0pKX1jb25zdCBhPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1uZXcgTWFwKGUpO2Zvcihjb25zdFtlLHJdb2YgdCluLnNldChlLHIpO3JldHVybiBufSh0KHIuX2NvbW1vbiksaSk7cmV0dXJuIG5ldyBRKGEpfSkpLFEuX2xvY2FsZXM9bmV3IFcoKCgpPT5PYmplY3Qua2V5cyhRLmFtYmlndW91c0NoYXJhY3RlckRhdGEuZ2V0VmFsdWUoKSkuZmlsdGVyKChlPT4hZS5zdGFydHNXaXRoKCJfIikpKSkpO2NsYXNzIFh7c3RhdGljIGdldFJhd0RhdGEoKXtyZXR1cm4gSlNPTi5wYXJzZSgiWzksMTAsMTEsMTIsMTMsMzIsMTI3LDE2MCwxNzMsODQ3LDE1NjQsNDQ0Nyw0NDQ4LDYwNjgsNjA2OSw2MTU1LDYxNTYsNjE1Nyw2MTU4LDczNTUsNzM1Niw4MTkyLDgxOTMsODE5NCw4MTk1LDgxOTYsODE5Nyw4MTk4LDgxOTksODIwMCw4MjAxLDgyMDIsODIwMyw4MjA0LDgyMDUsODIwNiw4MjA3LDgyMzQsODIzNSw4MjM2LDgyMzcsODIzOCw4MjM5LDgyODcsODI4OCw4Mjg5LDgyOTAsODI5MSw4MjkyLDgyOTMsODI5NCw4Mjk1LDgyOTYsODI5Nyw4Mjk4LDgyOTksODMwMCw4MzAxLDgzMDIsODMwMywxMDI0MCwxMjI4OCwxMjY0NCw2NTAyNCw2NTAyNSw2NTAyNiw2NTAyNyw2NTAyOCw2NTAyOSw2NTAzMCw2NTAzMSw2NTAzMiw2NTAzMyw2NTAzNCw2NTAzNSw2NTAzNiw2NTAzNyw2NTAzOCw2NTAzOSw2NTI3OSw2NTQ0MCw2NTUyMCw2NTUyMSw2NTUyMiw2NTUyMyw2NTUyNCw2NTUyNSw2NTUyNiw2NTUyNyw2NTUyOCw2NTUzMiw3ODg0NCwxMTkxNTUsMTE5MTU2LDExOTE1NywxMTkxNTgsMTE5MTU5LDExOTE2MCwxMTkxNjEsMTE5MTYyLDkxNzUwNCw5MTc1MDUsOTE3NTA2LDkxNzUwNyw5MTc1MDgsOTE3NTA5LDkxNzUxMCw5MTc1MTEsOTE3NTEyLDkxNzUxMyw5MTc1MTQsOTE3NTE1LDkxNzUxNiw5MTc1MTcsOTE3NTE4LDkxNzUxOSw5MTc1MjAsOTE3NTIxLDkxNzUyMiw5MTc1MjMsOTE3NTI0LDkxNzUyNSw5MTc1MjYsOTE3NTI3LDkxNzUyOCw5MTc1MjksOTE3NTMwLDkxNzUzMSw5MTc1MzIsOTE3NTMzLDkxNzUzNCw5MTc1MzUsOTE3NTM2LDkxNzUzNyw5MTc1MzgsOTE3NTM5LDkxNzU0MCw5MTc1NDEsOTE3NTQyLDkxNzU0Myw5MTc1NDQsOTE3NTQ1LDkxNzU0Niw5MTc1NDcsOTE3NTQ4LDkxNzU0OSw5MTc1NTAsOTE3NTUxLDkxNzU1Miw5MTc1NTMsOTE3NTU0LDkxNzU1NSw5MTc1NTYsOTE3NTU3LDkxNzU1OCw5MTc1NTksOTE3NTYwLDkxNzU2MSw5MTc1NjIsOTE3NTYzLDkxNzU2NCw5MTc1NjUsOTE3NTY2LDkxNzU2Nyw5MTc1NjgsOTE3NTY5LDkxNzU3MCw5MTc1NzEsOTE3NTcyLDkxNzU3Myw5MTc1NzQsOTE3NTc1LDkxNzU3Niw5MTc1NzcsOTE3NTc4LDkxNzU3OSw5MTc1ODAsOTE3NTgxLDkxNzU4Miw5MTc1ODMsOTE3NTg0LDkxNzU4NSw5MTc1ODYsOTE3NTg3LDkxNzU4OCw5MTc1ODksOTE3NTkwLDkxNzU5MSw5MTc1OTIsOTE3NTkzLDkxNzU5NCw5MTc1OTUsOTE3NTk2LDkxNzU5Nyw5MTc1OTgsOTE3NTk5LDkxNzYwMCw5MTc2MDEsOTE3NjAyLDkxNzYwMyw5MTc2MDQsOTE3NjA1LDkxNzYwNiw5MTc2MDcsOTE3NjA4LDkxNzYwOSw5MTc2MTAsOTE3NjExLDkxNzYxMiw5MTc2MTMsOTE3NjE0LDkxNzYxNSw5MTc2MTYsOTE3NjE3LDkxNzYxOCw5MTc2MTksOTE3NjIwLDkxNzYyMSw5MTc2MjIsOTE3NjIzLDkxNzYyNCw5MTc2MjUsOTE3NjI2LDkxNzYyNyw5MTc2MjgsOTE3NjI5LDkxNzYzMCw5MTc2MzEsOTE3NzYwLDkxNzc2MSw5MTc3NjIsOTE3NzYzLDkxNzc2NCw5MTc3NjUsOTE3NzY2LDkxNzc2Nyw5MTc3NjgsOTE3NzY5LDkxNzc3MCw5MTc3NzEsOTE3NzcyLDkxNzc3Myw5MTc3NzQsOTE3Nzc1LDkxNzc3Niw5MTc3NzcsOTE3Nzc4LDkxNzc3OSw5MTc3ODAsOTE3NzgxLDkxNzc4Miw5MTc3ODMsOTE3Nzg0LDkxNzc4NSw5MTc3ODYsOTE3Nzg3LDkxNzc4OCw5MTc3ODksOTE3NzkwLDkxNzc5MSw5MTc3OTIsOTE3NzkzLDkxNzc5NCw5MTc3OTUsOTE3Nzk2LDkxNzc5Nyw5MTc3OTgsOTE3Nzk5LDkxNzgwMCw5MTc4MDEsOTE3ODAyLDkxNzgwMyw5MTc4MDQsOTE3ODA1LDkxNzgwNiw5MTc4MDcsOTE3ODA4LDkxNzgwOSw5MTc4MTAsOTE3ODExLDkxNzgxMiw5MTc4MTMsOTE3ODE0LDkxNzgxNSw5MTc4MTYsOTE3ODE3LDkxNzgxOCw5MTc4MTksOTE3ODIwLDkxNzgyMSw5MTc4MjIsOTE3ODIzLDkxNzgyNCw5MTc4MjUsOTE3ODI2LDkxNzgyNyw5MTc4MjgsOTE3ODI5LDkxNzgzMCw5MTc4MzEsOTE3ODMyLDkxNzgzMyw5MTc4MzQsOTE3ODM1LDkxNzgzNiw5MTc4MzcsOTE3ODM4LDkxNzgzOSw5MTc4NDAsOTE3ODQxLDkxNzg0Miw5MTc4NDMsOTE3ODQ0LDkxNzg0NSw5MTc4NDYsOTE3ODQ3LDkxNzg0OCw5MTc4NDksOTE3ODUwLDkxNzg1MSw5MTc4NTIsOTE3ODUzLDkxNzg1NCw5MTc4NTUsOTE3ODU2LDkxNzg1Nyw5MTc4NTgsOTE3ODU5LDkxNzg2MCw5MTc4NjEsOTE3ODYyLDkxNzg2Myw5MTc4NjQsOTE3ODY1LDkxNzg2Niw5MTc4NjcsOTE3ODY4LDkxNzg2OSw5MTc4NzAsOTE3ODcxLDkxNzg3Miw5MTc4NzMsOTE3ODc0LDkxNzg3NSw5MTc4NzYsOTE3ODc3LDkxNzg3OCw5MTc4NzksOTE3ODgwLDkxNzg4MSw5MTc4ODIsOTE3ODgzLDkxNzg4NCw5MTc4ODUsOTE3ODg2LDkxNzg4Nyw5MTc4ODgsOTE3ODg5LDkxNzg5MCw5MTc4OTEsOTE3ODkyLDkxNzg5Myw5MTc4OTQsOTE3ODk1LDkxNzg5Niw5MTc4OTcsOTE3ODk4LDkxNzg5OSw5MTc5MDAsOTE3OTAxLDkxNzkwMiw5MTc5MDMsOTE3OTA0LDkxNzkwNSw5MTc5MDYsOTE3OTA3LDkxNzkwOCw5MTc5MDksOTE3OTEwLDkxNzkxMSw5MTc5MTIsOTE3OTEzLDkxNzkxNCw5MTc5MTUsOTE3OTE2LDkxNzkxNyw5MTc5MTgsOTE3OTE5LDkxNzkyMCw5MTc5MjEsOTE3OTIyLDkxNzkyMyw5MTc5MjQsOTE3OTI1LDkxNzkyNiw5MTc5MjcsOTE3OTI4LDkxNzkyOSw5MTc5MzAsOTE3OTMxLDkxNzkzMiw5MTc5MzMsOTE3OTM0LDkxNzkzNSw5MTc5MzYsOTE3OTM3LDkxNzkzOCw5MTc5MzksOTE3OTQwLDkxNzk0MSw5MTc5NDIsOTE3OTQzLDkxNzk0NCw5MTc5NDUsOTE3OTQ2LDkxNzk0Nyw5MTc5NDgsOTE3OTQ5LDkxNzk1MCw5MTc5NTEsOTE3OTUyLDkxNzk1Myw5MTc5NTQsOTE3OTU1LDkxNzk1Niw5MTc5NTcsOTE3OTU4LDkxNzk1OSw5MTc5NjAsOTE3OTYxLDkxNzk2Miw5MTc5NjMsOTE3OTY0LDkxNzk2NSw5MTc5NjYsOTE3OTY3LDkxNzk2OCw5MTc5NjksOTE3OTcwLDkxNzk3MSw5MTc5NzIsOTE3OTczLDkxNzk3NCw5MTc5NzUsOTE3OTc2LDkxNzk3Nyw5MTc5NzgsOTE3OTc5LDkxNzk4MCw5MTc5ODEsOTE3OTgyLDkxNzk4Myw5MTc5ODQsOTE3OTg1LDkxNzk4Niw5MTc5ODcsOTE3OTg4LDkxNzk4OSw5MTc5OTAsOTE3OTkxLDkxNzk5Miw5MTc5OTMsOTE3OTk0LDkxNzk5NSw5MTc5OTYsOTE3OTk3LDkxNzk5OCw5MTc5OTldIil9c3RhdGljIGdldERhdGEoKXtyZXR1cm4gdGhpcy5fZGF0YXx8KHRoaXMuX2RhdGE9bmV3IFNldChYLmdldFJhd0RhdGEoKSkpLHRoaXMuX2RhdGF9c3RhdGljIGlzSW52aXNpYmxlQ2hhcmFjdGVyKGUpe3JldHVybiBYLmdldERhdGEoKS5oYXMoZSl9c3RhdGljIGdldCBjb2RlUG9pbnRzKCl7cmV0dXJuIFguZ2V0RGF0YSgpfX1YLl9kYXRhPXZvaWQgMDtjbGFzcyBlZXtjb25zdHJ1Y3RvcihlLHQsbixyKXt0aGlzLnZzV29ya2VyPWUsdGhpcy5yZXE9dCx0aGlzLm1ldGhvZD1uLHRoaXMuYXJncz1yLHRoaXMudHlwZT0wfX1jbGFzcyB0ZXtjb25zdHJ1Y3RvcihlLHQsbixyKXt0aGlzLnZzV29ya2VyPWUsdGhpcy5zZXE9dCx0aGlzLnJlcz1uLHRoaXMuZXJyPXIsdGhpcy50eXBlPTF9fWNsYXNzIG5le2NvbnN0cnVjdG9yKGUsdCxuLHIpe3RoaXMudnNXb3JrZXI9ZSx0aGlzLnJlcT10LHRoaXMuZXZlbnROYW1lPW4sdGhpcy5hcmc9cix0aGlzLnR5cGU9Mn19Y2xhc3MgcmV7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMudnNXb3JrZXI9ZSx0aGlzLnJlcT10LHRoaXMuZXZlbnQ9bix0aGlzLnR5cGU9M319Y2xhc3MgaWV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnZzV29ya2VyPWUsdGhpcy5yZXE9dCx0aGlzLnR5cGU9NH19Y2xhc3Mgb2V7Y29uc3RydWN0b3IoZSl7dGhpcy5fd29ya2VySWQ9LTEsdGhpcy5faGFuZGxlcj1lLHRoaXMuX2xhc3RTZW50UmVxPTAsdGhpcy5fcGVuZGluZ1JlcGxpZXM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9wZW5kaW5nRW1pdHRlcnM9bmV3IE1hcCx0aGlzLl9wZW5kaW5nRXZlbnRzPW5ldyBNYXB9c2V0V29ya2VySWQoZSl7dGhpcy5fd29ya2VySWQ9ZX1zZW5kTWVzc2FnZShlLHQpe2NvbnN0IG49U3RyaW5nKCsrdGhpcy5fbGFzdFNlbnRSZXEpO3JldHVybiBuZXcgUHJvbWlzZSgoKHIsaSk9Pnt0aGlzLl9wZW5kaW5nUmVwbGllc1tuXT17cmVzb2x2ZTpyLHJlamVjdDppfSx0aGlzLl9zZW5kKG5ldyBlZSh0aGlzLl93b3JrZXJJZCxuLGUsdCkpfSkpfWxpc3RlbihlLHQpe2xldCBuPW51bGw7Y29uc3Qgcj1uZXcgVSh7b25GaXJzdExpc3RlbmVyQWRkOigpPT57bj1TdHJpbmcoKyt0aGlzLl9sYXN0U2VudFJlcSksdGhpcy5fcGVuZGluZ0VtaXR0ZXJzLnNldChuLHIpLHRoaXMuX3NlbmQobmV3IG5lKHRoaXMuX3dvcmtlcklkLG4sZSx0KSl9LG9uTGFzdExpc3RlbmVyUmVtb3ZlOigpPT57dGhpcy5fcGVuZGluZ0VtaXR0ZXJzLmRlbGV0ZShuKSx0aGlzLl9zZW5kKG5ldyBpZSh0aGlzLl93b3JrZXJJZCxuKSksbj1udWxsfX0pO3JldHVybiByLmV2ZW50fWhhbmRsZU1lc3NhZ2UoZSl7ZSYmZS52c1dvcmtlciYmKC0xIT09dGhpcy5fd29ya2VySWQmJmUudnNXb3JrZXIhPT10aGlzLl93b3JrZXJJZHx8dGhpcy5faGFuZGxlTWVzc2FnZShlKSl9X2hhbmRsZU1lc3NhZ2UoZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSAxOnJldHVybiB0aGlzLl9oYW5kbGVSZXBseU1lc3NhZ2UoZSk7Y2FzZSAwOnJldHVybiB0aGlzLl9oYW5kbGVSZXF1ZXN0TWVzc2FnZShlKTtjYXNlIDI6cmV0dXJuIHRoaXMuX2hhbmRsZVN1YnNjcmliZUV2ZW50TWVzc2FnZShlKTtjYXNlIDM6cmV0dXJuIHRoaXMuX2hhbmRsZUV2ZW50TWVzc2FnZShlKTtjYXNlIDQ6cmV0dXJuIHRoaXMuX2hhbmRsZVVuc3Vic2NyaWJlRXZlbnRNZXNzYWdlKGUpfX1faGFuZGxlUmVwbHlNZXNzYWdlKGUpe2lmKCF0aGlzLl9wZW5kaW5nUmVwbGllc1tlLnNlcV0pcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJHb3QgcmVwbHkgdG8gdW5rbm93biBzZXEiKTtsZXQgdD10aGlzLl9wZW5kaW5nUmVwbGllc1tlLnNlcV07aWYoZGVsZXRlIHRoaXMuX3BlbmRpbmdSZXBsaWVzW2Uuc2VxXSxlLmVycil7bGV0IG49ZS5lcnI7cmV0dXJuIGUuZXJyLiRpc0Vycm9yJiYobj1uZXcgRXJyb3Isbi5uYW1lPWUuZXJyLm5hbWUsbi5tZXNzYWdlPWUuZXJyLm1lc3NhZ2Usbi5zdGFjaz1lLmVyci5zdGFjayksdm9pZCB0LnJlamVjdChuKX10LnJlc29sdmUoZS5yZXMpfV9oYW5kbGVSZXF1ZXN0TWVzc2FnZShlKXtsZXQgdD1lLnJlcTt0aGlzLl9oYW5kbGVyLmhhbmRsZU1lc3NhZ2UoZS5tZXRob2QsZS5hcmdzKS50aGVuKChlPT57dGhpcy5fc2VuZChuZXcgdGUodGhpcy5fd29ya2VySWQsdCxlLHZvaWQgMCkpfSksKGU9PntlLmRldGFpbCBpbnN0YW5jZW9mIEVycm9yJiYoZS5kZXRhaWw9aShlLmRldGFpbCkpLHRoaXMuX3NlbmQobmV3IHRlKHRoaXMuX3dvcmtlcklkLHQsdm9pZCAwLGkoZSkpKX0pKX1faGFuZGxlU3Vic2NyaWJlRXZlbnRNZXNzYWdlKGUpe2NvbnN0IHQ9ZS5yZXEsbj10aGlzLl9oYW5kbGVyLmhhbmRsZUV2ZW50KGUuZXZlbnROYW1lLGUuYXJnKSgoZT0+e3RoaXMuX3NlbmQobmV3IHJlKHRoaXMuX3dvcmtlcklkLHQsZSkpfSkpO3RoaXMuX3BlbmRpbmdFdmVudHMuc2V0KHQsbil9X2hhbmRsZUV2ZW50TWVzc2FnZShlKXt0aGlzLl9wZW5kaW5nRW1pdHRlcnMuaGFzKGUucmVxKT90aGlzLl9wZW5kaW5nRW1pdHRlcnMuZ2V0KGUucmVxKS5maXJlKGUuZXZlbnQpOmNvbnNvbGUud2FybigiR290IGV2ZW50IGZvciB1bmtub3duIHJlcSIpfV9oYW5kbGVVbnN1YnNjcmliZUV2ZW50TWVzc2FnZShlKXt0aGlzLl9wZW5kaW5nRXZlbnRzLmhhcyhlLnJlcSk/KHRoaXMuX3BlbmRpbmdFdmVudHMuZ2V0KGUucmVxKS5kaXNwb3NlKCksdGhpcy5fcGVuZGluZ0V2ZW50cy5kZWxldGUoZS5yZXEpKTpjb25zb2xlLndhcm4oIkdvdCB1bnN1YnNjcmliZSBmb3IgdW5rbm93biByZXEiKX1fc2VuZChlKXtsZXQgdD1bXTtpZigwPT09ZS50eXBlKWZvcihsZXQgbj0wO248ZS5hcmdzLmxlbmd0aDtuKyspZS5hcmdzW25daW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmdC5wdXNoKGUuYXJnc1tuXSk7ZWxzZSAxPT09ZS50eXBlJiZlLnJlcyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiZ0LnB1c2goZS5yZXMpO3RoaXMuX2hhbmRsZXIuc2VuZE1lc3NhZ2UoZSx0KX19ZnVuY3Rpb24gYWUoZSl7cmV0dXJuIm8iPT09ZVswXSYmIm4iPT09ZVsxXSYmRyhlLmNoYXJDb2RlQXQoMikpfWZ1bmN0aW9uIHNlKGUpe3JldHVybi9eb25EeW5hbWljLy50ZXN0KGUpJiZHKGUuY2hhckNvZGVBdCg5KSl9Y2xhc3MgbGV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9yZXF1ZXN0SGFuZGxlckZhY3Rvcnk9dCx0aGlzLl9yZXF1ZXN0SGFuZGxlcj1udWxsLHRoaXMuX3Byb3RvY29sPW5ldyBvZSh7c2VuZE1lc3NhZ2U6KHQsbik9PntlKHQsbil9LGhhbmRsZU1lc3NhZ2U6KGUsdCk9PnRoaXMuX2hhbmRsZU1lc3NhZ2UoZSx0KSxoYW5kbGVFdmVudDooZSx0KT0+dGhpcy5faGFuZGxlRXZlbnQoZSx0KX0pfW9ubWVzc2FnZShlKXt0aGlzLl9wcm90b2NvbC5oYW5kbGVNZXNzYWdlKGUpfV9oYW5kbGVNZXNzYWdlKGUsdCl7aWYoIiRpbml0aWFsaXplIj09PWUpcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZSh0WzBdLHRbMV0sdFsyXSx0WzNdKTtpZighdGhpcy5fcmVxdWVzdEhhbmRsZXJ8fCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLl9yZXF1ZXN0SGFuZGxlcltlXSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJNaXNzaW5nIHJlcXVlc3RIYW5kbGVyIG9yIG1ldGhvZDogIitlKSk7dHJ5e3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fcmVxdWVzdEhhbmRsZXJbZV0uYXBwbHkodGhpcy5fcmVxdWVzdEhhbmRsZXIsdCkpfWNhdGNoKGUpe3JldHVybiBQcm9taXNlLnJlamVjdChlKX19X2hhbmRsZUV2ZW50KGUsdCl7aWYoIXRoaXMuX3JlcXVlc3RIYW5kbGVyKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyByZXF1ZXN0SGFuZGxlciIpO2lmKHNlKGUpKXtjb25zdCBuPXRoaXMuX3JlcXVlc3RIYW5kbGVyW2VdLmNhbGwodGhpcy5fcmVxdWVzdEhhbmRsZXIsdCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGR5bmFtaWMgZXZlbnQgJHtlfSBvbiByZXF1ZXN0IGhhbmRsZXIuYCk7cmV0dXJuIG59aWYoYWUoZSkpe2NvbnN0IHQ9dGhpcy5fcmVxdWVzdEhhbmRsZXJbZV07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIGV2ZW50ICR7ZX0gb24gcmVxdWVzdCBoYW5kbGVyLmApO3JldHVybiB0fXRocm93IG5ldyBFcnJvcihgTWFsZm9ybWVkIGV2ZW50IG5hbWUgJHtlfWApfWluaXRpYWxpemUoZSx0LG4scil7dGhpcy5fcHJvdG9jb2wuc2V0V29ya2VySWQoZSk7Y29uc3QgaT1mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1lPT5mdW5jdGlvbigpe2NvbnN0IG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3JldHVybiB0KGUsbil9LGk9ZT0+ZnVuY3Rpb24odCl7cmV0dXJuIG4oZSx0KX07bGV0IG89e307Zm9yKGNvbnN0IHQgb2YgZSlzZSh0KT9vW3RdPWkodCk6YWUodCk/b1t0XT1uKHQsdm9pZCAwKTpvW3RdPXIodCk7cmV0dXJuIG99KHIsKChlLHQpPT50aGlzLl9wcm90b2NvbC5zZW5kTWVzc2FnZShlLHQpKSwoKGUsdCk9PnRoaXMuX3Byb3RvY29sLmxpc3RlbihlLHQpKSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RIYW5kbGVyRmFjdG9yeT8odGhpcy5fcmVxdWVzdEhhbmRsZXI9dGhpcy5fcmVxdWVzdEhhbmRsZXJGYWN0b3J5KGkpLFByb21pc2UucmVzb2x2ZShxKHRoaXMuX3JlcXVlc3RIYW5kbGVyKSkpOih0JiYodm9pZCAwIT09dC5iYXNlVXJsJiZkZWxldGUgdC5iYXNlVXJsLHZvaWQgMCE9PXQucGF0aHMmJnZvaWQgMCE9PXQucGF0aHMudnMmJmRlbGV0ZSB0LnBhdGhzLnZzLHZvaWQgMCE9PXR5cGVvZiB0LnRydXN0ZWRUeXBlc1BvbGljeSYmZGVsZXRlIHQudHJ1c3RlZFR5cGVzUG9saWN5LHQuY2F0Y2hFcnJvcj0hMCxBLnJlcXVpcmUuY29uZmlnKHQpKSxuZXcgUHJvbWlzZSgoKGUsdCk9PnsoMCxBLnJlcXVpcmUpKFtuXSwobj0+e3RoaXMuX3JlcXVlc3RIYW5kbGVyPW4uY3JlYXRlKGkpLHRoaXMuX3JlcXVlc3RIYW5kbGVyP2UocSh0aGlzLl9yZXF1ZXN0SGFuZGxlcikpOnQobmV3IEVycm9yKCJObyBSZXF1ZXN0SGFuZGxlciEiKSl9KSx0KX0pKSl9fWNsYXNzIGNle2NvbnN0cnVjdG9yKGUsdCxuLHIpe3RoaXMub3JpZ2luYWxTdGFydD1lLHRoaXMub3JpZ2luYWxMZW5ndGg9dCx0aGlzLm1vZGlmaWVkU3RhcnQ9bix0aGlzLm1vZGlmaWVkTGVuZ3RoPXJ9Z2V0T3JpZ2luYWxFbmQoKXtyZXR1cm4gdGhpcy5vcmlnaW5hbFN0YXJ0K3RoaXMub3JpZ2luYWxMZW5ndGh9Z2V0TW9kaWZpZWRFbmQoKXtyZXR1cm4gdGhpcy5tb2RpZmllZFN0YXJ0K3RoaXMubW9kaWZpZWRMZW5ndGh9fWZ1bmN0aW9uIHVlKGUsdCl7cmV0dXJuKHQ8PDUpLXQrZXwwfWZ1bmN0aW9uIGhlKGUsdCl7dD11ZSgxNDk0MTcsdCk7Zm9yKGxldCBuPTAscj1lLmxlbmd0aDtuPHI7bisrKXQ9dWUoZS5jaGFyQ29kZUF0KG4pLHQpO3JldHVybiB0fWNsYXNzIGRle2NvbnN0cnVjdG9yKGUpe3RoaXMuc291cmNlPWV9Z2V0RWxlbWVudHMoKXtjb25zdCBlPXRoaXMuc291cmNlLHQ9bmV3IEludDMyQXJyYXkoZS5sZW5ndGgpO2ZvcihsZXQgbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl0W25dPWUuY2hhckNvZGVBdChuKTtyZXR1cm4gdH19ZnVuY3Rpb24gZmUoZSx0LG4pe3JldHVybiBuZXcgQ2UobmV3IGRlKGUpLG5ldyBkZSh0KSkuQ29tcHV0ZURpZmYobikuY2hhbmdlc31jbGFzcyBtZXtzdGF0aWMgQXNzZXJ0KGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKHQpfX1jbGFzcyBnZXtzdGF0aWMgQ29weShlLHQsbixyLGkpe2ZvcihsZXQgbz0wO288aTtvKyspbltyK29dPWVbdCtvXX1zdGF0aWMgQ29weTIoZSx0LG4scixpKXtmb3IobGV0IG89MDtvPGk7bysrKW5bcitvXT1lW3Qrb119fWNsYXNzIHBle2NvbnN0cnVjdG9yKCl7dGhpcy5tX2NoYW5nZXM9W10sdGhpcy5tX29yaWdpbmFsU3RhcnQ9MTA3Mzc0MTgyNCx0aGlzLm1fbW9kaWZpZWRTdGFydD0xMDczNzQxODI0LHRoaXMubV9vcmlnaW5hbENvdW50PTAsdGhpcy5tX21vZGlmaWVkQ291bnQ9MH1NYXJrTmV4dENoYW5nZSgpeyh0aGlzLm1fb3JpZ2luYWxDb3VudD4wfHx0aGlzLm1fbW9kaWZpZWRDb3VudD4wKSYmdGhpcy5tX2NoYW5nZXMucHVzaChuZXcgY2UodGhpcy5tX29yaWdpbmFsU3RhcnQsdGhpcy5tX29yaWdpbmFsQ291bnQsdGhpcy5tX21vZGlmaWVkU3RhcnQsdGhpcy5tX21vZGlmaWVkQ291bnQpKSx0aGlzLm1fb3JpZ2luYWxDb3VudD0wLHRoaXMubV9tb2RpZmllZENvdW50PTAsdGhpcy5tX29yaWdpbmFsU3RhcnQ9MTA3Mzc0MTgyNCx0aGlzLm1fbW9kaWZpZWRTdGFydD0xMDczNzQxODI0fUFkZE9yaWdpbmFsRWxlbWVudChlLHQpe3RoaXMubV9vcmlnaW5hbFN0YXJ0PU1hdGgubWluKHRoaXMubV9vcmlnaW5hbFN0YXJ0LGUpLHRoaXMubV9tb2RpZmllZFN0YXJ0PU1hdGgubWluKHRoaXMubV9tb2RpZmllZFN0YXJ0LHQpLHRoaXMubV9vcmlnaW5hbENvdW50Kyt9QWRkTW9kaWZpZWRFbGVtZW50KGUsdCl7dGhpcy5tX29yaWdpbmFsU3RhcnQ9TWF0aC5taW4odGhpcy5tX29yaWdpbmFsU3RhcnQsZSksdGhpcy5tX21vZGlmaWVkU3RhcnQ9TWF0aC5taW4odGhpcy5tX21vZGlmaWVkU3RhcnQsdCksdGhpcy5tX21vZGlmaWVkQ291bnQrK31nZXRDaGFuZ2VzKCl7cmV0dXJuKHRoaXMubV9vcmlnaW5hbENvdW50PjB8fHRoaXMubV9tb2RpZmllZENvdW50PjApJiZ0aGlzLk1hcmtOZXh0Q2hhbmdlKCksdGhpcy5tX2NoYW5nZXN9Z2V0UmV2ZXJzZUNoYW5nZXMoKXtyZXR1cm4odGhpcy5tX29yaWdpbmFsQ291bnQ+MHx8dGhpcy5tX21vZGlmaWVkQ291bnQ+MCkmJnRoaXMuTWFya05leHRDaGFuZ2UoKSx0aGlzLm1fY2hhbmdlcy5yZXZlcnNlKCksdGhpcy5tX2NoYW5nZXN9fWNsYXNzIENle2NvbnN0cnVjdG9yKGUsdCxuPW51bGwpe3RoaXMuQ29udGludWVQcm9jZXNzaW5nUHJlZGljYXRlPW4sdGhpcy5fb3JpZ2luYWxTZXF1ZW5jZT1lLHRoaXMuX21vZGlmaWVkU2VxdWVuY2U9dDtjb25zdFtyLGksb109Q2UuX2dldEVsZW1lbnRzKGUpLFthLHMsbF09Q2UuX2dldEVsZW1lbnRzKHQpO3RoaXMuX2hhc1N0cmluZ3M9byYmbCx0aGlzLl9vcmlnaW5hbFN0cmluZ0VsZW1lbnRzPXIsdGhpcy5fb3JpZ2luYWxFbGVtZW50c09ySGFzaD1pLHRoaXMuX21vZGlmaWVkU3RyaW5nRWxlbWVudHM9YSx0aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoPXMsdGhpcy5tX2ZvcndhcmRIaXN0b3J5PVtdLHRoaXMubV9yZXZlcnNlSGlzdG9yeT1bXX1zdGF0aWMgX2lzU3RyaW5nQXJyYXkoZSl7cmV0dXJuIGUubGVuZ3RoPjAmJiJzdHJpbmciPT10eXBlb2YgZVswXX1zdGF0aWMgX2dldEVsZW1lbnRzKGUpe2NvbnN0IHQ9ZS5nZXRFbGVtZW50cygpO2lmKENlLl9pc1N0cmluZ0FycmF5KHQpKXtjb25zdCBlPW5ldyBJbnQzMkFycmF5KHQubGVuZ3RoKTtmb3IobGV0IG49MCxyPXQubGVuZ3RoO248cjtuKyspZVtuXT1oZSh0W25dLDApO3JldHVyblt0LGUsITBdfXJldHVybiB0IGluc3RhbmNlb2YgSW50MzJBcnJheT9bW10sdCwhMV06W1tdLG5ldyBJbnQzMkFycmF5KHQpLCExXX1FbGVtZW50c0FyZUVxdWFsKGUsdCl7cmV0dXJuIHRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2hbZV09PT10aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoW3RdJiYoIXRoaXMuX2hhc1N0cmluZ3N8fHRoaXMuX29yaWdpbmFsU3RyaW5nRWxlbWVudHNbZV09PT10aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzW3RdKX1FbGVtZW50c0FyZVN0cmljdEVxdWFsKGUsdCl7aWYoIXRoaXMuRWxlbWVudHNBcmVFcXVhbChlLHQpKXJldHVybiExO3JldHVybiBDZS5fZ2V0U3RyaWN0RWxlbWVudCh0aGlzLl9vcmlnaW5hbFNlcXVlbmNlLGUpPT09Q2UuX2dldFN0cmljdEVsZW1lbnQodGhpcy5fbW9kaWZpZWRTZXF1ZW5jZSx0KX1zdGF0aWMgX2dldFN0cmljdEVsZW1lbnQoZSx0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRTdHJpY3RFbGVtZW50P2UuZ2V0U3RyaWN0RWxlbWVudCh0KTpudWxsfU9yaWdpbmFsRWxlbWVudHNBcmVFcXVhbChlLHQpe3JldHVybiB0aGlzLl9vcmlnaW5hbEVsZW1lbnRzT3JIYXNoW2VdPT09dGhpcy5fb3JpZ2luYWxFbGVtZW50c09ySGFzaFt0XSYmKCF0aGlzLl9oYXNTdHJpbmdzfHx0aGlzLl9vcmlnaW5hbFN0cmluZ0VsZW1lbnRzW2VdPT09dGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50c1t0XSl9TW9kaWZpZWRFbGVtZW50c0FyZUVxdWFsKGUsdCl7cmV0dXJuIHRoaXMuX21vZGlmaWVkRWxlbWVudHNPckhhc2hbZV09PT10aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoW3RdJiYoIXRoaXMuX2hhc1N0cmluZ3N8fHRoaXMuX21vZGlmaWVkU3RyaW5nRWxlbWVudHNbZV09PT10aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzW3RdKX1Db21wdXRlRGlmZihlKXtyZXR1cm4gdGhpcy5fQ29tcHV0ZURpZmYoMCx0aGlzLl9vcmlnaW5hbEVsZW1lbnRzT3JIYXNoLmxlbmd0aC0xLDAsdGhpcy5fbW9kaWZpZWRFbGVtZW50c09ySGFzaC5sZW5ndGgtMSxlKX1fQ29tcHV0ZURpZmYoZSx0LG4scixpKXtjb25zdCBvPVshMV07bGV0IGE9dGhpcy5Db21wdXRlRGlmZlJlY3Vyc2l2ZShlLHQsbixyLG8pO3JldHVybiBpJiYoYT10aGlzLlByZXR0aWZ5Q2hhbmdlcyhhKSkse3F1aXRFYXJseTpvWzBdLGNoYW5nZXM6YX19Q29tcHV0ZURpZmZSZWN1cnNpdmUoZSx0LG4scixpKXtmb3IoaVswXT0hMTtlPD10JiZuPD1yJiZ0aGlzLkVsZW1lbnRzQXJlRXF1YWwoZSxuKTspZSsrLG4rKztmb3IoO3Q+PWUmJnI+PW4mJnRoaXMuRWxlbWVudHNBcmVFcXVhbCh0LHIpOyl0LS0sci0tO2lmKGU+dHx8bj5yKXtsZXQgaTtyZXR1cm4gbjw9cj8obWUuQXNzZXJ0KGU9PT10KzEsIm9yaWdpbmFsU3RhcnQgc2hvdWxkIG9ubHkgYmUgb25lIG1vcmUgdGhhbiBvcmlnaW5hbEVuZCIpLGk9W25ldyBjZShlLDAsbixyLW4rMSldKTplPD10PyhtZS5Bc3NlcnQobj09PXIrMSwibW9kaWZpZWRTdGFydCBzaG91bGQgb25seSBiZSBvbmUgbW9yZSB0aGFuIG1vZGlmaWVkRW5kIiksaT1bbmV3IGNlKGUsdC1lKzEsbiwwKV0pOihtZS5Bc3NlcnQoZT09PXQrMSwib3JpZ2luYWxTdGFydCBzaG91bGQgb25seSBiZSBvbmUgbW9yZSB0aGFuIG9yaWdpbmFsRW5kIiksbWUuQXNzZXJ0KG49PT1yKzEsIm1vZGlmaWVkU3RhcnQgc2hvdWxkIG9ubHkgYmUgb25lIG1vcmUgdGhhbiBtb2RpZmllZEVuZCIpLGk9W10pLGl9Y29uc3Qgbz1bMF0sYT1bMF0scz10aGlzLkNvbXB1dGVSZWN1cnNpb25Qb2ludChlLHQsbixyLG8sYSxpKSxsPW9bMF0sYz1hWzBdO2lmKG51bGwhPT1zKXJldHVybiBzO2lmKCFpWzBdKXtjb25zdCBvPXRoaXMuQ29tcHV0ZURpZmZSZWN1cnNpdmUoZSxsLG4sYyxpKTtsZXQgYT1bXTtyZXR1cm4gYT1pWzBdP1tuZXcgY2UobCsxLHQtKGwrMSkrMSxjKzEsci0oYysxKSsxKV06dGhpcy5Db21wdXRlRGlmZlJlY3Vyc2l2ZShsKzEsdCxjKzEscixpKSx0aGlzLkNvbmNhdGVuYXRlQ2hhbmdlcyhvLGEpfXJldHVybltuZXcgY2UoZSx0LWUrMSxuLHItbisxKV19V0FMS1RSQUNFKGUsdCxuLHIsaSxvLGEscyxsLGMsdSxoLGQsZixtLGcscCxDKXtsZXQgYj1udWxsLHc9bnVsbCxfPW5ldyBwZSx5PXQsUz1uLHY9ZFswXS1nWzBdLXIsTD0tMTA3Mzc0MTgyNCxOPXRoaXMubV9mb3J3YXJkSGlzdG9yeS5sZW5ndGgtMTtkb3tjb25zdCB0PXYrZTt0PT09eXx8dDxTJiZsW3QtMV08bFt0KzFdPyhmPSh1PWxbdCsxXSktdi1yLHU8TCYmXy5NYXJrTmV4dENoYW5nZSgpLEw9dSxfLkFkZE1vZGlmaWVkRWxlbWVudCh1KzEsZiksdj10KzEtZSk6KGY9KHU9bFt0LTFdKzEpLXYtcix1PEwmJl8uTWFya05leHRDaGFuZ2UoKSxMPXUtMSxfLkFkZE9yaWdpbmFsRWxlbWVudCh1LGYrMSksdj10LTEtZSksTj49MCYmKGU9KGw9dGhpcy5tX2ZvcndhcmRIaXN0b3J5W05dKVswXSx5PTEsUz1sLmxlbmd0aC0xKX13aGlsZSgtLU4+PS0xKTtpZihiPV8uZ2V0UmV2ZXJzZUNoYW5nZXMoKSxDWzBdKXtsZXQgZT1kWzBdKzEsdD1nWzBdKzE7aWYobnVsbCE9PWImJmIubGVuZ3RoPjApe2NvbnN0IG49YltiLmxlbmd0aC0xXTtlPU1hdGgubWF4KGUsbi5nZXRPcmlnaW5hbEVuZCgpKSx0PU1hdGgubWF4KHQsbi5nZXRNb2RpZmllZEVuZCgpKX13PVtuZXcgY2UoZSxoLWUrMSx0LG0tdCsxKV19ZWxzZXtfPW5ldyBwZSx5PW8sUz1hLHY9ZFswXS1nWzBdLXMsTD0xMDczNzQxODI0LE49cD90aGlzLm1fcmV2ZXJzZUhpc3RvcnkubGVuZ3RoLTE6dGhpcy5tX3JldmVyc2VIaXN0b3J5Lmxlbmd0aC0yO2Rve2NvbnN0IGU9ditpO2U9PT15fHxlPFMmJmNbZS0xXT49Y1tlKzFdPyhmPSh1PWNbZSsxXS0xKS12LXMsdT5MJiZfLk1hcmtOZXh0Q2hhbmdlKCksTD11KzEsXy5BZGRPcmlnaW5hbEVsZW1lbnQodSsxLGYrMSksdj1lKzEtaSk6KGY9KHU9Y1tlLTFdKS12LXMsdT5MJiZfLk1hcmtOZXh0Q2hhbmdlKCksTD11LF8uQWRkTW9kaWZpZWRFbGVtZW50KHUrMSxmKzEpLHY9ZS0xLWkpLE4+PTAmJihpPShjPXRoaXMubV9yZXZlcnNlSGlzdG9yeVtOXSlbMF0seT0xLFM9Yy5sZW5ndGgtMSl9d2hpbGUoLS1OPj0tMSk7dz1fLmdldENoYW5nZXMoKX1yZXR1cm4gdGhpcy5Db25jYXRlbmF0ZUNoYW5nZXMoYix3KX1Db21wdXRlUmVjdXJzaW9uUG9pbnQoZSx0LG4scixpLG8sYSl7bGV0IHM9MCxsPTAsYz0wLHU9MCxoPTAsZD0wO2UtLSxuLS0saVswXT0wLG9bMF09MCx0aGlzLm1fZm9yd2FyZEhpc3Rvcnk9W10sdGhpcy5tX3JldmVyc2VIaXN0b3J5PVtdO2NvbnN0IGY9dC1lKyhyLW4pLG09ZisxLGc9bmV3IEludDMyQXJyYXkobSkscD1uZXcgSW50MzJBcnJheShtKSxDPXItbixiPXQtZSx3PWUtbixfPXQtcix5PShiLUMpJTI9PTA7Z1tDXT1lLHBbYl09dCxhWzBdPSExO2ZvcihsZXQgUz0xO1M8PWYvMisxO1MrKyl7bGV0IGY9MCx2PTA7Yz10aGlzLkNsaXBEaWFnb25hbEJvdW5kKEMtUyxTLEMsbSksdT10aGlzLkNsaXBEaWFnb25hbEJvdW5kKEMrUyxTLEMsbSk7Zm9yKGxldCBlPWM7ZTw9dTtlKz0yKXtzPWU9PT1jfHxlPHUmJmdbZS0xXTxnW2UrMV0/Z1tlKzFdOmdbZS0xXSsxLGw9cy0oZS1DKS13O2NvbnN0IG49cztmb3IoO3M8dCYmbDxyJiZ0aGlzLkVsZW1lbnRzQXJlRXF1YWwocysxLGwrMSk7KXMrKyxsKys7aWYoZ1tlXT1zLHMrbD5mK3YmJihmPXMsdj1sKSwheSYmTWF0aC5hYnMoZS1iKTw9Uy0xJiZzPj1wW2VdKXJldHVybiBpWzBdPXMsb1swXT1sLG48PXBbZV0mJlM8PTE0NDg/dGhpcy5XQUxLVFJBQ0UoQyxjLHUsdyxiLGgsZCxfLGcscCxzLHQsaSxsLHIsbyx5LGEpOm51bGx9Y29uc3QgTD0oZi1lKyh2LW4pLVMpLzI7aWYobnVsbCE9PXRoaXMuQ29udGludWVQcm9jZXNzaW5nUHJlZGljYXRlJiYhdGhpcy5Db250aW51ZVByb2Nlc3NpbmdQcmVkaWNhdGUoZixMKSlyZXR1cm4gYVswXT0hMCxpWzBdPWYsb1swXT12LEw+MCYmUzw9MTQ0OD90aGlzLldBTEtUUkFDRShDLGMsdSx3LGIsaCxkLF8sZyxwLHMsdCxpLGwscixvLHksYSk6KGUrKyxuKyssW25ldyBjZShlLHQtZSsxLG4sci1uKzEpXSk7aD10aGlzLkNsaXBEaWFnb25hbEJvdW5kKGItUyxTLGIsbSksZD10aGlzLkNsaXBEaWFnb25hbEJvdW5kKGIrUyxTLGIsbSk7Zm9yKGxldCBmPWg7Zjw9ZDtmKz0yKXtzPWY9PT1ofHxmPGQmJnBbZi0xXT49cFtmKzFdP3BbZisxXS0xOnBbZi0xXSxsPXMtKGYtYiktXztjb25zdCBtPXM7Zm9yKDtzPmUmJmw+biYmdGhpcy5FbGVtZW50c0FyZUVxdWFsKHMsbCk7KXMtLSxsLS07aWYocFtmXT1zLHkmJk1hdGguYWJzKGYtQyk8PVMmJnM8PWdbZl0pcmV0dXJuIGlbMF09cyxvWzBdPWwsbT49Z1tmXSYmUzw9MTQ0OD90aGlzLldBTEtUUkFDRShDLGMsdSx3LGIsaCxkLF8sZyxwLHMsdCxpLGwscixvLHksYSk6bnVsbH1pZihTPD0xNDQ3KXtsZXQgZT1uZXcgSW50MzJBcnJheSh1LWMrMik7ZVswXT1DLWMrMSxnZS5Db3B5MihnLGMsZSwxLHUtYysxKSx0aGlzLm1fZm9yd2FyZEhpc3RvcnkucHVzaChlKSxlPW5ldyBJbnQzMkFycmF5KGQtaCsyKSxlWzBdPWItaCsxLGdlLkNvcHkyKHAsaCxlLDEsZC1oKzEpLHRoaXMubV9yZXZlcnNlSGlzdG9yeS5wdXNoKGUpfX1yZXR1cm4gdGhpcy5XQUxLVFJBQ0UoQyxjLHUsdyxiLGgsZCxfLGcscCxzLHQsaSxsLHIsbyx5LGEpfVByZXR0aWZ5Q2hhbmdlcyhlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdLHI9dDxlLmxlbmd0aC0xP2VbdCsxXS5vcmlnaW5hbFN0YXJ0OnRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2gubGVuZ3RoLGk9dDxlLmxlbmd0aC0xP2VbdCsxXS5tb2RpZmllZFN0YXJ0OnRoaXMuX21vZGlmaWVkRWxlbWVudHNPckhhc2gubGVuZ3RoLG89bi5vcmlnaW5hbExlbmd0aD4wLGE9bi5tb2RpZmllZExlbmd0aD4wO2Zvcig7bi5vcmlnaW5hbFN0YXJ0K24ub3JpZ2luYWxMZW5ndGg8ciYmbi5tb2RpZmllZFN0YXJ0K24ubW9kaWZpZWRMZW5ndGg8aSYmKCFvfHx0aGlzLk9yaWdpbmFsRWxlbWVudHNBcmVFcXVhbChuLm9yaWdpbmFsU3RhcnQsbi5vcmlnaW5hbFN0YXJ0K24ub3JpZ2luYWxMZW5ndGgpKSYmKCFhfHx0aGlzLk1vZGlmaWVkRWxlbWVudHNBcmVFcXVhbChuLm1vZGlmaWVkU3RhcnQsbi5tb2RpZmllZFN0YXJ0K24ubW9kaWZpZWRMZW5ndGgpKTspe2NvbnN0IGU9dGhpcy5FbGVtZW50c0FyZVN0cmljdEVxdWFsKG4ub3JpZ2luYWxTdGFydCxuLm1vZGlmaWVkU3RhcnQpO2lmKHRoaXMuRWxlbWVudHNBcmVTdHJpY3RFcXVhbChuLm9yaWdpbmFsU3RhcnQrbi5vcmlnaW5hbExlbmd0aCxuLm1vZGlmaWVkU3RhcnQrbi5tb2RpZmllZExlbmd0aCkmJiFlKWJyZWFrO24ub3JpZ2luYWxTdGFydCsrLG4ubW9kaWZpZWRTdGFydCsrfWxldCBzPVtudWxsXTt0PGUubGVuZ3RoLTEmJnRoaXMuQ2hhbmdlc092ZXJsYXAoZVt0XSxlW3QrMV0scykmJihlW3RdPXNbMF0sZS5zcGxpY2UodCsxLDEpLHQtLSl9Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDt0LS0pe2NvbnN0IG49ZVt0XTtsZXQgcj0wLGk9MDtpZih0PjApe2NvbnN0IG49ZVt0LTFdO3I9bi5vcmlnaW5hbFN0YXJ0K24ub3JpZ2luYWxMZW5ndGgsaT1uLm1vZGlmaWVkU3RhcnQrbi5tb2RpZmllZExlbmd0aH1jb25zdCBvPW4ub3JpZ2luYWxMZW5ndGg+MCxhPW4ubW9kaWZpZWRMZW5ndGg+MDtsZXQgcz0wLGw9dGhpcy5fYm91bmRhcnlTY29yZShuLm9yaWdpbmFsU3RhcnQsbi5vcmlnaW5hbExlbmd0aCxuLm1vZGlmaWVkU3RhcnQsbi5tb2RpZmllZExlbmd0aCk7Zm9yKGxldCBlPTE7O2UrKyl7Y29uc3QgdD1uLm9yaWdpbmFsU3RhcnQtZSxjPW4ubW9kaWZpZWRTdGFydC1lO2lmKHQ8cnx8YzxpKWJyZWFrO2lmKG8mJiF0aGlzLk9yaWdpbmFsRWxlbWVudHNBcmVFcXVhbCh0LHQrbi5vcmlnaW5hbExlbmd0aCkpYnJlYWs7aWYoYSYmIXRoaXMuTW9kaWZpZWRFbGVtZW50c0FyZUVxdWFsKGMsYytuLm1vZGlmaWVkTGVuZ3RoKSlicmVhaztjb25zdCB1PSh0PT09ciYmYz09PWk/NTowKSt0aGlzLl9ib3VuZGFyeVNjb3JlKHQsbi5vcmlnaW5hbExlbmd0aCxjLG4ubW9kaWZpZWRMZW5ndGgpO3U+bCYmKGw9dSxzPWUpfW4ub3JpZ2luYWxTdGFydC09cyxuLm1vZGlmaWVkU3RhcnQtPXM7Y29uc3QgYz1bbnVsbF07dD4wJiZ0aGlzLkNoYW5nZXNPdmVybGFwKGVbdC0xXSxlW3RdLGMpJiYoZVt0LTFdPWNbMF0sZS5zcGxpY2UodCwxKSx0KyspfWlmKHRoaXMuX2hhc1N0cmluZ3MpZm9yKGxldCB0PTEsbj1lLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPWVbdC0xXSxyPWVbdF0saT1yLm9yaWdpbmFsU3RhcnQtbi5vcmlnaW5hbFN0YXJ0LW4ub3JpZ2luYWxMZW5ndGgsbz1uLm9yaWdpbmFsU3RhcnQsYT1yLm9yaWdpbmFsU3RhcnQrci5vcmlnaW5hbExlbmd0aCxzPWEtbyxsPW4ubW9kaWZpZWRTdGFydCxjPXIubW9kaWZpZWRTdGFydCtyLm1vZGlmaWVkTGVuZ3RoLHU9Yy1sO2lmKGk8NSYmczwyMCYmdTwyMCl7Y29uc3QgZT10aGlzLl9maW5kQmV0dGVyQ29udGlndW91c1NlcXVlbmNlKG8scyxsLHUsaSk7aWYoZSl7Y29uc3RbdCxvXT1lO3Q9PT1uLm9yaWdpbmFsU3RhcnQrbi5vcmlnaW5hbExlbmd0aCYmbz09PW4ubW9kaWZpZWRTdGFydCtuLm1vZGlmaWVkTGVuZ3RofHwobi5vcmlnaW5hbExlbmd0aD10LW4ub3JpZ2luYWxTdGFydCxuLm1vZGlmaWVkTGVuZ3RoPW8tbi5tb2RpZmllZFN0YXJ0LHIub3JpZ2luYWxTdGFydD10K2ksci5tb2RpZmllZFN0YXJ0PW8raSxyLm9yaWdpbmFsTGVuZ3RoPWEtci5vcmlnaW5hbFN0YXJ0LHIubW9kaWZpZWRMZW5ndGg9Yy1yLm1vZGlmaWVkU3RhcnQpfX19cmV0dXJuIGV9X2ZpbmRCZXR0ZXJDb250aWd1b3VzU2VxdWVuY2UoZSx0LG4scixpKXtpZih0PGl8fHI8aSlyZXR1cm4gbnVsbDtjb25zdCBvPWUrdC1pKzEsYT1uK3ItaSsxO2xldCBzPTAsbD0wLGM9MDtmb3IobGV0IHQ9ZTt0PG87dCsrKWZvcihsZXQgZT1uO2U8YTtlKyspe2NvbnN0IG49dGhpcy5fY29udGlndW91c1NlcXVlbmNlU2NvcmUodCxlLGkpO24+MCYmbj5zJiYocz1uLGw9dCxjPWUpfXJldHVybiBzPjA/W2wsY106bnVsbH1fY29udGlndW91c1NlcXVlbmNlU2NvcmUoZSx0LG4pe2xldCByPTA7Zm9yKGxldCBpPTA7aTxuO2krKyl7aWYoIXRoaXMuRWxlbWVudHNBcmVFcXVhbChlK2ksdCtpKSlyZXR1cm4gMDtyKz10aGlzLl9vcmlnaW5hbFN0cmluZ0VsZW1lbnRzW2UraV0ubGVuZ3RofXJldHVybiByfV9PcmlnaW5hbElzQm91bmRhcnkoZSl7cmV0dXJuIGU8PTB8fGU+PXRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2gubGVuZ3RoLTF8fHRoaXMuX2hhc1N0cmluZ3MmJi9eXHMqJC8udGVzdCh0aGlzLl9vcmlnaW5hbFN0cmluZ0VsZW1lbnRzW2VdKX1fT3JpZ2luYWxSZWdpb25Jc0JvdW5kYXJ5KGUsdCl7aWYodGhpcy5fT3JpZ2luYWxJc0JvdW5kYXJ5KGUpfHx0aGlzLl9PcmlnaW5hbElzQm91bmRhcnkoZS0xKSlyZXR1cm4hMDtpZih0PjApe2NvbnN0IG49ZSt0O2lmKHRoaXMuX09yaWdpbmFsSXNCb3VuZGFyeShuLTEpfHx0aGlzLl9PcmlnaW5hbElzQm91bmRhcnkobikpcmV0dXJuITB9cmV0dXJuITF9X01vZGlmaWVkSXNCb3VuZGFyeShlKXtyZXR1cm4gZTw9MHx8ZT49dGhpcy5fbW9kaWZpZWRFbGVtZW50c09ySGFzaC5sZW5ndGgtMXx8dGhpcy5faGFzU3RyaW5ncyYmL15ccyokLy50ZXN0KHRoaXMuX21vZGlmaWVkU3RyaW5nRWxlbWVudHNbZV0pfV9Nb2RpZmllZFJlZ2lvbklzQm91bmRhcnkoZSx0KXtpZih0aGlzLl9Nb2RpZmllZElzQm91bmRhcnkoZSl8fHRoaXMuX01vZGlmaWVkSXNCb3VuZGFyeShlLTEpKXJldHVybiEwO2lmKHQ+MCl7Y29uc3Qgbj1lK3Q7aWYodGhpcy5fTW9kaWZpZWRJc0JvdW5kYXJ5KG4tMSl8fHRoaXMuX01vZGlmaWVkSXNCb3VuZGFyeShuKSlyZXR1cm4hMH1yZXR1cm4hMX1fYm91bmRhcnlTY29yZShlLHQsbixyKXtyZXR1cm4odGhpcy5fT3JpZ2luYWxSZWdpb25Jc0JvdW5kYXJ5KGUsdCk/MTowKSsodGhpcy5fTW9kaWZpZWRSZWdpb25Jc0JvdW5kYXJ5KG4scik/MTowKX1Db25jYXRlbmF0ZUNoYW5nZXMoZSx0KXtsZXQgbj1bXTtpZigwPT09ZS5sZW5ndGh8fDA9PT10Lmxlbmd0aClyZXR1cm4gdC5sZW5ndGg+MD90OmU7aWYodGhpcy5DaGFuZ2VzT3ZlcmxhcChlW2UubGVuZ3RoLTFdLHRbMF0sbikpe2NvbnN0IHI9bmV3IEFycmF5KGUubGVuZ3RoK3QubGVuZ3RoLTEpO3JldHVybiBnZS5Db3B5KGUsMCxyLDAsZS5sZW5ndGgtMSkscltlLmxlbmd0aC0xXT1uWzBdLGdlLkNvcHkodCwxLHIsZS5sZW5ndGgsdC5sZW5ndGgtMSkscn17Y29uc3Qgbj1uZXcgQXJyYXkoZS5sZW5ndGgrdC5sZW5ndGgpO3JldHVybiBnZS5Db3B5KGUsMCxuLDAsZS5sZW5ndGgpLGdlLkNvcHkodCwwLG4sZS5sZW5ndGgsdC5sZW5ndGgpLG59fUNoYW5nZXNPdmVybGFwKGUsdCxuKXtpZihtZS5Bc3NlcnQoZS5vcmlnaW5hbFN0YXJ0PD10Lm9yaWdpbmFsU3RhcnQsIkxlZnQgY2hhbmdlIGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmlnaHQgY2hhbmdlIiksbWUuQXNzZXJ0KGUubW9kaWZpZWRTdGFydDw9dC5tb2RpZmllZFN0YXJ0LCJMZWZ0IGNoYW5nZSBpcyBub3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHJpZ2h0IGNoYW5nZSIpLGUub3JpZ2luYWxTdGFydCtlLm9yaWdpbmFsTGVuZ3RoPj10Lm9yaWdpbmFsU3RhcnR8fGUubW9kaWZpZWRTdGFydCtlLm1vZGlmaWVkTGVuZ3RoPj10Lm1vZGlmaWVkU3RhcnQpe2NvbnN0IHI9ZS5vcmlnaW5hbFN0YXJ0O2xldCBpPWUub3JpZ2luYWxMZW5ndGg7Y29uc3Qgbz1lLm1vZGlmaWVkU3RhcnQ7bGV0IGE9ZS5tb2RpZmllZExlbmd0aDtyZXR1cm4gZS5vcmlnaW5hbFN0YXJ0K2Uub3JpZ2luYWxMZW5ndGg+PXQub3JpZ2luYWxTdGFydCYmKGk9dC5vcmlnaW5hbFN0YXJ0K3Qub3JpZ2luYWxMZW5ndGgtZS5vcmlnaW5hbFN0YXJ0KSxlLm1vZGlmaWVkU3RhcnQrZS5tb2RpZmllZExlbmd0aD49dC5tb2RpZmllZFN0YXJ0JiYoYT10Lm1vZGlmaWVkU3RhcnQrdC5tb2RpZmllZExlbmd0aC1lLm1vZGlmaWVkU3RhcnQpLG5bMF09bmV3IGNlKHIsaSxvLGEpLCEwfXJldHVybiBuWzBdPW51bGwsITF9Q2xpcERpYWdvbmFsQm91bmQoZSx0LG4scil7aWYoZT49MCYmZTxyKXJldHVybiBlO2NvbnN0IGk9dCUyPT0wO2lmKGU8MCl7cmV0dXJuIGk9PT0obiUyPT0wKT8wOjF9cmV0dXJuIGk9PT0oKHItbi0xKSUyPT0wKT9yLTE6ci0yfX1sZXQgYmU7aWYodm9pZCAwIT09QS52c2NvZGUmJnZvaWQgMCE9PUEudnNjb2RlLnByb2Nlc3Mpe2NvbnN0IGU9QS52c2NvZGUucHJvY2VzcztiZT17Z2V0IHBsYXRmb3JtKCl7cmV0dXJuIGUucGxhdGZvcm19LGdldCBhcmNoKCl7cmV0dXJuIGUuYXJjaH0sZ2V0IGVudigpe3JldHVybiBlLmVudn0sY3dkOigpPT5lLmN3ZCgpfX1lbHNlIGJlPSJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2Vzcz97Z2V0IHBsYXRmb3JtKCl7cmV0dXJuIHByb2Nlc3MucGxhdGZvcm19LGdldCBhcmNoKCl7cmV0dXJuIHByb2Nlc3MuYXJjaH0sZ2V0IGVudigpe3JldHVybiBwcm9jZXNzLmVudn0sY3dkOigpPT5wcm9jZXNzLmVudi5WU0NPREVfQ1dEfHxwcm9jZXNzLmN3ZCgpfTp7Z2V0IHBsYXRmb3JtKCl7cmV0dXJuIFI/IndpbjMyIjp4PyJkYXJ3aW4iOiJsaW51eCJ9LGdldCBhcmNoKCl7fSxnZXQgZW52KCl7cmV0dXJue319LGN3ZDooKT0+Ii8ifTtjb25zdCB3ZT1iZS5jd2QsX2U9YmUuZW52LHllPWJlLnBsYXRmb3JtLFNlPTQ2LHZlPTQ3LExlPTkyLE5lPTU4O2NsYXNzIEVlIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0LG4pe2xldCByOyJzdHJpbmciPT10eXBlb2YgdCYmMD09PXQuaW5kZXhPZigibm90ICIpPyhyPSJtdXN0IG5vdCBiZSIsdD10LnJlcGxhY2UoL15ub3QgLywiIikpOnI9Im11c3QgYmUiO2NvbnN0IGk9LTEhPT1lLmluZGV4T2YoIi4iKT8icHJvcGVydHkiOiJhcmd1bWVudCI7bGV0IG89YFRoZSAiJHtlfSIgJHtpfSAke3J9IG9mIHR5cGUgJHt0fWA7bys9Ii4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBuLHN1cGVyKG8pLHRoaXMuY29kZT0iRVJSX0lOVkFMSURfQVJHX1RZUEUifX1mdW5jdGlvbiBBZShlLHQpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRWUodCwic3RyaW5nIixlKX1mdW5jdGlvbiBrZShlKXtyZXR1cm4gZT09PXZlfHxlPT09TGV9ZnVuY3Rpb24gTWUoZSl7cmV0dXJuIGU9PT12ZX1mdW5jdGlvbiBSZShlKXtyZXR1cm4gZT49NjUmJmU8PTkwfHxlPj05NyYmZTw9MTIyfWZ1bmN0aW9uIHhlKGUsdCxuLHIpe2xldCBpPSIiLG89MCxhPS0xLHM9MCxsPTA7Zm9yKGxldCBjPTA7Yzw9ZS5sZW5ndGg7KytjKXtpZihjPGUubGVuZ3RoKWw9ZS5jaGFyQ29kZUF0KGMpO2Vsc2V7aWYocihsKSlicmVhaztsPXZlfWlmKHIobCkpe2lmKGE9PT1jLTF8fDE9PT1zKTtlbHNlIGlmKDI9PT1zKXtpZihpLmxlbmd0aDwyfHwyIT09b3x8aS5jaGFyQ29kZUF0KGkubGVuZ3RoLTEpIT09U2V8fGkuY2hhckNvZGVBdChpLmxlbmd0aC0yKSE9PVNlKXtpZihpLmxlbmd0aD4yKXtjb25zdCBlPWkubGFzdEluZGV4T2Yobik7LTE9PT1lPyhpPSIiLG89MCk6KGk9aS5zbGljZSgwLGUpLG89aS5sZW5ndGgtMS1pLmxhc3RJbmRleE9mKG4pKSxhPWMscz0wO2NvbnRpbnVlfWlmKDAhPT1pLmxlbmd0aCl7aT0iIixvPTAsYT1jLHM9MDtjb250aW51ZX19dCYmKGkrPWkubGVuZ3RoPjA/YCR7bn0uLmA6Ii4uIixvPTIpfWVsc2UgaS5sZW5ndGg+MD9pKz1gJHtufSR7ZS5zbGljZShhKzEsYyl9YDppPWUuc2xpY2UoYSsxLGMpLG89Yy1hLTE7YT1jLHM9MH1lbHNlIGw9PT1TZSYmLTEhPT1zPysrczpzPS0xfXJldHVybiBpfWZ1bmN0aW9uIEllKGUsdCl7aWYobnVsbD09PXR8fCJvYmplY3QiIT10eXBlb2YgdCl0aHJvdyBuZXcgRWUoInBhdGhPYmplY3QiLCJPYmplY3QiLHQpO2NvbnN0IG49dC5kaXJ8fHQucm9vdCxyPXQuYmFzZXx8YCR7dC5uYW1lfHwiIn0ke3QuZXh0fHwiIn1gO3JldHVybiBuP249PT10LnJvb3Q/YCR7bn0ke3J9YDpgJHtufSR7ZX0ke3J9YDpyfWNvbnN0IE9lPXtyZXNvbHZlKC4uLmUpe2xldCB0PSIiLG49IiIscj0hMTtmb3IobGV0IGk9ZS5sZW5ndGgtMTtpPj0tMTtpLS0pe2xldCBvO2lmKGk+PTApe2lmKG89ZVtpXSxBZShvLCJwYXRoIiksMD09PW8ubGVuZ3RoKWNvbnRpbnVlfWVsc2UgMD09PXQubGVuZ3RoP289d2UoKToobz1fZVtgPSR7dH1gXXx8d2UoKSwodm9pZCAwPT09b3x8by5zbGljZSgwLDIpLnRvTG93ZXJDYXNlKCkhPT10LnRvTG93ZXJDYXNlKCkmJm8uY2hhckNvZGVBdCgyKT09PUxlKSYmKG89YCR7dH1cXGApKTtjb25zdCBhPW8ubGVuZ3RoO2xldCBzPTAsbD0iIixjPSExO2NvbnN0IHU9by5jaGFyQ29kZUF0KDApO2lmKDE9PT1hKWtlKHUpJiYocz0xLGM9ITApO2Vsc2UgaWYoa2UodSkpaWYoYz0hMCxrZShvLmNoYXJDb2RlQXQoMSkpKXtsZXQgZT0yLHQ9ZTtmb3IoO2U8YSYmIWtlKG8uY2hhckNvZGVBdChlKSk7KWUrKztpZihlPGEmJmUhPT10KXtjb25zdCBuPW8uc2xpY2UodCxlKTtmb3IodD1lO2U8YSYma2Uoby5jaGFyQ29kZUF0KGUpKTspZSsrO2lmKGU8YSYmZSE9PXQpe2Zvcih0PWU7ZTxhJiYha2Uoby5jaGFyQ29kZUF0KGUpKTspZSsrO2UhPT1hJiZlPT09dHx8KGw9YFxcXFwke259XFwke28uc2xpY2UodCxlKX1gLHM9ZSl9fX1lbHNlIHM9MTtlbHNlIFJlKHUpJiZvLmNoYXJDb2RlQXQoMSk9PT1OZSYmKGw9by5zbGljZSgwLDIpLHM9MixhPjImJmtlKG8uY2hhckNvZGVBdCgyKSkmJihjPSEwLHM9MykpO2lmKGwubGVuZ3RoPjApaWYodC5sZW5ndGg+MCl7aWYobC50b0xvd2VyQ2FzZSgpIT09dC50b0xvd2VyQ2FzZSgpKWNvbnRpbnVlfWVsc2UgdD1sO2lmKHIpe2lmKHQubGVuZ3RoPjApYnJlYWt9ZWxzZSBpZihuPWAke28uc2xpY2Uocyl9XFwke259YCxyPWMsYyYmdC5sZW5ndGg+MClicmVha31yZXR1cm4gbj14ZShuLCFyLCJcXCIsa2UpLHI/YCR7dH1cXCR7bn1gOmAke3R9JHtufWB8fCIuIn0sbm9ybWFsaXplKGUpe0FlKGUsInBhdGgiKTtjb25zdCB0PWUubGVuZ3RoO2lmKDA9PT10KXJldHVybiIuIjtsZXQgbixyPTAsaT0hMTtjb25zdCBvPWUuY2hhckNvZGVBdCgwKTtpZigxPT09dClyZXR1cm4gTWUobyk/IlxcIjplO2lmKGtlKG8pKWlmKGk9ITAsa2UoZS5jaGFyQ29kZUF0KDEpKSl7bGV0IGk9MixvPWk7Zm9yKDtpPHQmJiFrZShlLmNoYXJDb2RlQXQoaSkpOylpKys7aWYoaTx0JiZpIT09byl7Y29uc3QgYT1lLnNsaWNlKG8saSk7Zm9yKG89aTtpPHQmJmtlKGUuY2hhckNvZGVBdChpKSk7KWkrKztpZihpPHQmJmkhPT1vKXtmb3Iobz1pO2k8dCYmIWtlKGUuY2hhckNvZGVBdChpKSk7KWkrKztpZihpPT09dClyZXR1cm5gXFxcXCR7YX1cXCR7ZS5zbGljZShvKX1cXGA7aSE9PW8mJihuPWBcXFxcJHthfVxcJHtlLnNsaWNlKG8saSl9YCxyPWkpfX19ZWxzZSByPTE7ZWxzZSBSZShvKSYmZS5jaGFyQ29kZUF0KDEpPT09TmUmJihuPWUuc2xpY2UoMCwyKSxyPTIsdD4yJiZrZShlLmNoYXJDb2RlQXQoMikpJiYoaT0hMCxyPTMpKTtsZXQgYT1yPHQ/eGUoZS5zbGljZShyKSwhaSwiXFwiLGtlKToiIjtyZXR1cm4gMCE9PWEubGVuZ3RofHxpfHwoYT0iLiIpLGEubGVuZ3RoPjAmJmtlKGUuY2hhckNvZGVBdCh0LTEpKSYmKGErPSJcXCIpLHZvaWQgMD09PW4/aT9gXFwke2F9YDphOmk/YCR7bn1cXCR7YX1gOmAke259JHthfWB9LGlzQWJzb2x1dGUoZSl7QWUoZSwicGF0aCIpO2NvbnN0IHQ9ZS5sZW5ndGg7aWYoMD09PXQpcmV0dXJuITE7Y29uc3Qgbj1lLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGtlKG4pfHx0PjImJlJlKG4pJiZlLmNoYXJDb2RlQXQoMSk9PT1OZSYma2UoZS5jaGFyQ29kZUF0KDIpKX0sam9pbiguLi5lKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIi4iO2xldCB0LG47Zm9yKGxldCByPTA7cjxlLmxlbmd0aDsrK3Ipe2NvbnN0IGk9ZVtyXTtBZShpLCJwYXRoIiksaS5sZW5ndGg+MCYmKHZvaWQgMD09PXQ/dD1uPWk6dCs9YFxcJHtpfWApfWlmKHZvaWQgMD09PXQpcmV0dXJuIi4iO2xldCByPSEwLGk9MDtpZigic3RyaW5nIj09dHlwZW9mIG4mJmtlKG4uY2hhckNvZGVBdCgwKSkpeysraTtjb25zdCBlPW4ubGVuZ3RoO2U+MSYma2Uobi5jaGFyQ29kZUF0KDEpKSYmKCsraSxlPjImJihrZShuLmNoYXJDb2RlQXQoMikpPysraTpyPSExKSl9aWYocil7Zm9yKDtpPHQubGVuZ3RoJiZrZSh0LmNoYXJDb2RlQXQoaSkpOylpKys7aT49MiYmKHQ9YFxcJHt0LnNsaWNlKGkpfWApfXJldHVybiBPZS5ub3JtYWxpemUodCl9LHJlbGF0aXZlKGUsdCl7aWYoQWUoZSwiZnJvbSIpLEFlKHQsInRvIiksZT09PXQpcmV0dXJuIiI7Y29uc3Qgbj1PZS5yZXNvbHZlKGUpLHI9T2UucmVzb2x2ZSh0KTtpZihuPT09cilyZXR1cm4iIjtpZigoZT1uLnRvTG93ZXJDYXNlKCkpPT09KHQ9ci50b0xvd2VyQ2FzZSgpKSlyZXR1cm4iIjtsZXQgaT0wO2Zvcig7aTxlLmxlbmd0aCYmZS5jaGFyQ29kZUF0KGkpPT09TGU7KWkrKztsZXQgbz1lLmxlbmd0aDtmb3IoO28tMT5pJiZlLmNoYXJDb2RlQXQoby0xKT09PUxlOylvLS07Y29uc3QgYT1vLWk7bGV0IHM9MDtmb3IoO3M8dC5sZW5ndGgmJnQuY2hhckNvZGVBdChzKT09PUxlOylzKys7bGV0IGw9dC5sZW5ndGg7Zm9yKDtsLTE+cyYmdC5jaGFyQ29kZUF0KGwtMSk9PT1MZTspbC0tO2NvbnN0IGM9bC1zLHU9YTxjP2E6YztsZXQgaD0tMSxkPTA7Zm9yKDtkPHU7ZCsrKXtjb25zdCBuPWUuY2hhckNvZGVBdChpK2QpO2lmKG4hPT10LmNoYXJDb2RlQXQocytkKSlicmVhaztuPT09TGUmJihoPWQpfWlmKGQhPT11KXtpZigtMT09PWgpcmV0dXJuIHJ9ZWxzZXtpZihjPnUpe2lmKHQuY2hhckNvZGVBdChzK2QpPT09TGUpcmV0dXJuIHIuc2xpY2UocytkKzEpO2lmKDI9PT1kKXJldHVybiByLnNsaWNlKHMrZCl9YT51JiYoZS5jaGFyQ29kZUF0KGkrZCk9PT1MZT9oPWQ6Mj09PWQmJihoPTMpKSwtMT09PWgmJihoPTApfWxldCBmPSIiO2ZvcihkPWkraCsxO2Q8PW87KytkKWQhPT1vJiZlLmNoYXJDb2RlQXQoZCkhPT1MZXx8KGYrPTA9PT1mLmxlbmd0aD8iLi4iOiJcXC4uIik7cmV0dXJuIHMrPWgsZi5sZW5ndGg+MD9gJHtmfSR7ci5zbGljZShzLGwpfWA6KHIuY2hhckNvZGVBdChzKT09PUxlJiYrK3Msci5zbGljZShzLGwpKX0sdG9OYW1lc3BhY2VkUGF0aChlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIGU7aWYoMD09PWUubGVuZ3RoKXJldHVybiIiO2NvbnN0IHQ9T2UucmVzb2x2ZShlKTtpZih0Lmxlbmd0aDw9MilyZXR1cm4gZTtpZih0LmNoYXJDb2RlQXQoMCk9PT1MZSl7aWYodC5jaGFyQ29kZUF0KDEpPT09TGUpe2NvbnN0IGU9dC5jaGFyQ29kZUF0KDIpO2lmKDYzIT09ZSYmZSE9PVNlKXJldHVybmBcXFxcP1xcVU5DXFwke3Quc2xpY2UoMil9YH19ZWxzZSBpZihSZSh0LmNoYXJDb2RlQXQoMCkpJiZ0LmNoYXJDb2RlQXQoMSk9PT1OZSYmdC5jaGFyQ29kZUF0KDIpPT09TGUpcmV0dXJuYFxcXFw/XFwke3R9YDtyZXR1cm4gZX0sZGlybmFtZShlKXtBZShlLCJwYXRoIik7Y29uc3QgdD1lLmxlbmd0aDtpZigwPT09dClyZXR1cm4iLiI7bGV0IG49LTEscj0wO2NvbnN0IGk9ZS5jaGFyQ29kZUF0KDApO2lmKDE9PT10KXJldHVybiBrZShpKT9lOiIuIjtpZihrZShpKSl7aWYobj1yPTEsa2UoZS5jaGFyQ29kZUF0KDEpKSl7bGV0IGk9MixvPWk7Zm9yKDtpPHQmJiFrZShlLmNoYXJDb2RlQXQoaSkpOylpKys7aWYoaTx0JiZpIT09byl7Zm9yKG89aTtpPHQmJmtlKGUuY2hhckNvZGVBdChpKSk7KWkrKztpZihpPHQmJmkhPT1vKXtmb3Iobz1pO2k8dCYmIWtlKGUuY2hhckNvZGVBdChpKSk7KWkrKztpZihpPT09dClyZXR1cm4gZTtpIT09byYmKG49cj1pKzEpfX19fWVsc2UgUmUoaSkmJmUuY2hhckNvZGVBdCgxKT09PU5lJiYobj10PjImJmtlKGUuY2hhckNvZGVBdCgyKSk/MzoyLHI9bik7bGV0IG89LTEsYT0hMDtmb3IobGV0IG49dC0xO24+PXI7LS1uKWlmKGtlKGUuY2hhckNvZGVBdChuKSkpe2lmKCFhKXtvPW47YnJlYWt9fWVsc2UgYT0hMTtpZigtMT09PW8pe2lmKC0xPT09bilyZXR1cm4iLiI7bz1ufXJldHVybiBlLnNsaWNlKDAsbyl9LGJhc2VuYW1lKGUsdCl7dm9pZCAwIT09dCYmQWUodCwiZXh0IiksQWUoZSwicGF0aCIpO2xldCBuLHI9MCxpPS0xLG89ITA7aWYoZS5sZW5ndGg+PTImJlJlKGUuY2hhckNvZGVBdCgwKSkmJmUuY2hhckNvZGVBdCgxKT09PU5lJiYocj0yKSx2b2lkIDAhPT10JiZ0Lmxlbmd0aD4wJiZ0Lmxlbmd0aDw9ZS5sZW5ndGgpe2lmKHQ9PT1lKXJldHVybiIiO2xldCBhPXQubGVuZ3RoLTEscz0tMTtmb3Iobj1lLmxlbmd0aC0xO24+PXI7LS1uKXtjb25zdCBsPWUuY2hhckNvZGVBdChuKTtpZihrZShsKSl7aWYoIW8pe3I9bisxO2JyZWFrfX1lbHNlLTE9PT1zJiYobz0hMSxzPW4rMSksYT49MCYmKGw9PT10LmNoYXJDb2RlQXQoYSk/LTE9PS0tYSYmKGk9bik6KGE9LTEsaT1zKSl9cmV0dXJuIHI9PT1pP2k9czotMT09PWkmJihpPWUubGVuZ3RoKSxlLnNsaWNlKHIsaSl9Zm9yKG49ZS5sZW5ndGgtMTtuPj1yOy0tbilpZihrZShlLmNoYXJDb2RlQXQobikpKXtpZighbyl7cj1uKzE7YnJlYWt9fWVsc2UtMT09PWkmJihvPSExLGk9bisxKTtyZXR1cm4tMT09PWk/IiI6ZS5zbGljZShyLGkpfSxleHRuYW1lKGUpe0FlKGUsInBhdGgiKTtsZXQgdD0wLG49LTEscj0wLGk9LTEsbz0hMCxhPTA7ZS5sZW5ndGg+PTImJmUuY2hhckNvZGVBdCgxKT09PU5lJiZSZShlLmNoYXJDb2RlQXQoMCkpJiYodD1yPTIpO2ZvcihsZXQgcz1lLmxlbmd0aC0xO3M+PXQ7LS1zKXtjb25zdCB0PWUuY2hhckNvZGVBdChzKTtpZihrZSh0KSl7aWYoIW8pe3I9cysxO2JyZWFrfX1lbHNlLTE9PT1pJiYobz0hMSxpPXMrMSksdD09PVNlPy0xPT09bj9uPXM6MSE9PWEmJihhPTEpOi0xIT09biYmKGE9LTEpfXJldHVybi0xPT09bnx8LTE9PT1pfHwwPT09YXx8MT09PWEmJm49PT1pLTEmJm49PT1yKzE/IiI6ZS5zbGljZShuLGkpfSxmb3JtYXQ6SWUuYmluZChudWxsLCJcXCIpLHBhcnNlKGUpe0FlKGUsInBhdGgiKTtjb25zdCB0PXtyb290OiIiLGRpcjoiIixiYXNlOiIiLGV4dDoiIixuYW1lOiIifTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIHQ7Y29uc3Qgbj1lLmxlbmd0aDtsZXQgcj0wLGk9ZS5jaGFyQ29kZUF0KDApO2lmKDE9PT1uKXJldHVybiBrZShpKT8odC5yb290PXQuZGlyPWUsdCk6KHQuYmFzZT10Lm5hbWU9ZSx0KTtpZihrZShpKSl7aWYocj0xLGtlKGUuY2hhckNvZGVBdCgxKSkpe2xldCB0PTIsaT10O2Zvcig7dDxuJiYha2UoZS5jaGFyQ29kZUF0KHQpKTspdCsrO2lmKHQ8biYmdCE9PWkpe2ZvcihpPXQ7dDxuJiZrZShlLmNoYXJDb2RlQXQodCkpOyl0Kys7aWYodDxuJiZ0IT09aSl7Zm9yKGk9dDt0PG4mJiFrZShlLmNoYXJDb2RlQXQodCkpOyl0Kys7dD09PW4/cj10OnQhPT1pJiYocj10KzEpfX19fWVsc2UgaWYoUmUoaSkmJmUuY2hhckNvZGVBdCgxKT09PU5lKXtpZihuPD0yKXJldHVybiB0LnJvb3Q9dC5kaXI9ZSx0O2lmKHI9MixrZShlLmNoYXJDb2RlQXQoMikpKXtpZigzPT09bilyZXR1cm4gdC5yb290PXQuZGlyPWUsdDtyPTN9fXI+MCYmKHQucm9vdD1lLnNsaWNlKDAscikpO2xldCBvPS0xLGE9cixzPS0xLGw9ITAsYz1lLmxlbmd0aC0xLHU9MDtmb3IoO2M+PXI7LS1jKWlmKGk9ZS5jaGFyQ29kZUF0KGMpLGtlKGkpKXtpZighbCl7YT1jKzE7YnJlYWt9fWVsc2UtMT09PXMmJihsPSExLHM9YysxKSxpPT09U2U/LTE9PT1vP289YzoxIT09dSYmKHU9MSk6LTEhPT1vJiYodT0tMSk7cmV0dXJuLTEhPT1zJiYoLTE9PT1vfHwwPT09dXx8MT09PXUmJm89PT1zLTEmJm89PT1hKzE/dC5iYXNlPXQubmFtZT1lLnNsaWNlKGEscyk6KHQubmFtZT1lLnNsaWNlKGEsbyksdC5iYXNlPWUuc2xpY2UoYSxzKSx0LmV4dD1lLnNsaWNlKG8scykpKSx0LmRpcj1hPjAmJmEhPT1yP2Uuc2xpY2UoMCxhLTEpOnQucm9vdCx0fSxzZXA6IlxcIixkZWxpbWl0ZXI6IjsiLHdpbjMyOm51bGwscG9zaXg6bnVsbH0sRGU9e3Jlc29sdmUoLi4uZSl7bGV0IHQ9IiIsbj0hMTtmb3IobGV0IHI9ZS5sZW5ndGgtMTtyPj0tMSYmIW47ci0tKXtjb25zdCBpPXI+PTA/ZVtyXTp3ZSgpO0FlKGksInBhdGgiKSwwIT09aS5sZW5ndGgmJih0PWAke2l9LyR7dH1gLG49aS5jaGFyQ29kZUF0KDApPT09dmUpfXJldHVybiB0PXhlKHQsIW4sIi8iLE1lKSxuP2AvJHt0fWA6dC5sZW5ndGg+MD90OiIuIn0sbm9ybWFsaXplKGUpe2lmKEFlKGUsInBhdGgiKSwwPT09ZS5sZW5ndGgpcmV0dXJuIi4iO2NvbnN0IHQ9ZS5jaGFyQ29kZUF0KDApPT09dmUsbj1lLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSk9PT12ZTtyZXR1cm4gMD09PShlPXhlKGUsIXQsIi8iLE1lKSkubGVuZ3RoP3Q/Ii8iOm4/Ii4vIjoiLiI6KG4mJihlKz0iLyIpLHQ/YC8ke2V9YDplKX0saXNBYnNvbHV0ZTplPT4oQWUoZSwicGF0aCIpLGUubGVuZ3RoPjAmJmUuY2hhckNvZGVBdCgwKT09PXZlKSxqb2luKC4uLmUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4iLiI7bGV0IHQ7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDsrK24pe2NvbnN0IHI9ZVtuXTtBZShyLCJwYXRoIiksci5sZW5ndGg+MCYmKHZvaWQgMD09PXQ/dD1yOnQrPWAvJHtyfWApfXJldHVybiB2b2lkIDA9PT10PyIuIjpEZS5ub3JtYWxpemUodCl9LHJlbGF0aXZlKGUsdCl7aWYoQWUoZSwiZnJvbSIpLEFlKHQsInRvIiksZT09PXQpcmV0dXJuIiI7aWYoKGU9RGUucmVzb2x2ZShlKSk9PT0odD1EZS5yZXNvbHZlKHQpKSlyZXR1cm4iIjtjb25zdCBuPWUubGVuZ3RoLHI9bi0xLGk9dC5sZW5ndGgtMSxvPXI8aT9yOmk7bGV0IGE9LTEscz0wO2Zvcig7czxvO3MrKyl7Y29uc3Qgbj1lLmNoYXJDb2RlQXQoMStzKTtpZihuIT09dC5jaGFyQ29kZUF0KDErcykpYnJlYWs7bj09PXZlJiYoYT1zKX1pZihzPT09bylpZihpPm8pe2lmKHQuY2hhckNvZGVBdCgxK3MpPT09dmUpcmV0dXJuIHQuc2xpY2UoMStzKzEpO2lmKDA9PT1zKXJldHVybiB0LnNsaWNlKDErcyl9ZWxzZSByPm8mJihlLmNoYXJDb2RlQXQoMStzKT09PXZlP2E9czowPT09cyYmKGE9MCkpO2xldCBsPSIiO2ZvcihzPTErYSsxO3M8PW47KytzKXMhPT1uJiZlLmNoYXJDb2RlQXQocykhPT12ZXx8KGwrPTA9PT1sLmxlbmd0aD8iLi4iOiIvLi4iKTtyZXR1cm5gJHtsfSR7dC5zbGljZSgxK2EpfWB9LHRvTmFtZXNwYWNlZFBhdGg6ZT0+ZSxkaXJuYW1lKGUpe2lmKEFlKGUsInBhdGgiKSwwPT09ZS5sZW5ndGgpcmV0dXJuIi4iO2NvbnN0IHQ9ZS5jaGFyQ29kZUF0KDApPT09dmU7bGV0IG49LTEscj0hMDtmb3IobGV0IHQ9ZS5sZW5ndGgtMTt0Pj0xOy0tdClpZihlLmNoYXJDb2RlQXQodCk9PT12ZSl7aWYoIXIpe249dDticmVha319ZWxzZSByPSExO3JldHVybi0xPT09bj90PyIvIjoiLiI6dCYmMT09PW4/Ii8vIjplLnNsaWNlKDAsbil9LGJhc2VuYW1lKGUsdCl7dm9pZCAwIT09dCYmQWUodCwiZXh0IiksQWUoZSwicGF0aCIpO2xldCBuLHI9MCxpPS0xLG89ITA7aWYodm9pZCAwIT09dCYmdC5sZW5ndGg+MCYmdC5sZW5ndGg8PWUubGVuZ3RoKXtpZih0PT09ZSlyZXR1cm4iIjtsZXQgYT10Lmxlbmd0aC0xLHM9LTE7Zm9yKG49ZS5sZW5ndGgtMTtuPj0wOy0tbil7Y29uc3QgbD1lLmNoYXJDb2RlQXQobik7aWYobD09PXZlKXtpZighbyl7cj1uKzE7YnJlYWt9fWVsc2UtMT09PXMmJihvPSExLHM9bisxKSxhPj0wJiYobD09PXQuY2hhckNvZGVBdChhKT8tMT09LS1hJiYoaT1uKTooYT0tMSxpPXMpKX1yZXR1cm4gcj09PWk/aT1zOi0xPT09aSYmKGk9ZS5sZW5ndGgpLGUuc2xpY2UocixpKX1mb3Iobj1lLmxlbmd0aC0xO24+PTA7LS1uKWlmKGUuY2hhckNvZGVBdChuKT09PXZlKXtpZighbyl7cj1uKzE7YnJlYWt9fWVsc2UtMT09PWkmJihvPSExLGk9bisxKTtyZXR1cm4tMT09PWk/IiI6ZS5zbGljZShyLGkpfSxleHRuYW1lKGUpe0FlKGUsInBhdGgiKTtsZXQgdD0tMSxuPTAscj0tMSxpPSEwLG89MDtmb3IobGV0IGE9ZS5sZW5ndGgtMTthPj0wOy0tYSl7Y29uc3Qgcz1lLmNoYXJDb2RlQXQoYSk7aWYocyE9PXZlKS0xPT09ciYmKGk9ITEscj1hKzEpLHM9PT1TZT8tMT09PXQ/dD1hOjEhPT1vJiYobz0xKTotMSE9PXQmJihvPS0xKTtlbHNlIGlmKCFpKXtuPWErMTticmVha319cmV0dXJuLTE9PT10fHwtMT09PXJ8fDA9PT1vfHwxPT09byYmdD09PXItMSYmdD09PW4rMT8iIjplLnNsaWNlKHQscil9LGZvcm1hdDpJZS5iaW5kKG51bGwsIi8iKSxwYXJzZShlKXtBZShlLCJwYXRoIik7Y29uc3QgdD17cm9vdDoiIixkaXI6IiIsYmFzZToiIixleHQ6IiIsbmFtZToiIn07aWYoMD09PWUubGVuZ3RoKXJldHVybiB0O2NvbnN0IG49ZS5jaGFyQ29kZUF0KDApPT09dmU7bGV0IHI7bj8odC5yb290PSIvIixyPTEpOnI9MDtsZXQgaT0tMSxvPTAsYT0tMSxzPSEwLGw9ZS5sZW5ndGgtMSxjPTA7Zm9yKDtsPj1yOy0tbCl7Y29uc3QgdD1lLmNoYXJDb2RlQXQobCk7aWYodCE9PXZlKS0xPT09YSYmKHM9ITEsYT1sKzEpLHQ9PT1TZT8tMT09PWk/aT1sOjEhPT1jJiYoYz0xKTotMSE9PWkmJihjPS0xKTtlbHNlIGlmKCFzKXtvPWwrMTticmVha319aWYoLTEhPT1hKXtjb25zdCByPTA9PT1vJiZuPzE6bzstMT09PWl8fDA9PT1jfHwxPT09YyYmaT09PWEtMSYmaT09PW8rMT90LmJhc2U9dC5uYW1lPWUuc2xpY2UocixhKToodC5uYW1lPWUuc2xpY2UocixpKSx0LmJhc2U9ZS5zbGljZShyLGEpLHQuZXh0PWUuc2xpY2UoaSxhKSl9cmV0dXJuIG8+MD90LmRpcj1lLnNsaWNlKDAsby0xKTpuJiYodC5kaXI9Ii8iKSx0fSxzZXA6Ii8iLGRlbGltaXRlcjoiOiIsd2luMzI6bnVsbCxwb3NpeDpudWxsfTtEZS53aW4zMj1PZS53aW4zMj1PZSxEZS5wb3NpeD1PZS5wb3NpeD1EZSwid2luMzIiPT09eWU/T2Uubm9ybWFsaXplOkRlLm5vcm1hbGl6ZSwid2luMzIiPT09eWU/T2UucmVzb2x2ZTpEZS5yZXNvbHZlLCJ3aW4zMiI9PT15ZT9PZS5yZWxhdGl2ZTpEZS5yZWxhdGl2ZSwid2luMzIiPT09eWU/T2UuZGlybmFtZTpEZS5kaXJuYW1lLCJ3aW4zMiI9PT15ZT9PZS5iYXNlbmFtZTpEZS5iYXNlbmFtZSwid2luMzIiPT09eWU/T2UuZXh0bmFtZTpEZS5leHRuYW1lLCJ3aW4zMiI9PT15ZT9PZS5zZXA6RGUuc2VwO2NvbnN0IEtlPS9eXHdbXHdcZCsuLV0qJC8sVGU9L15cLy8sUGU9L15cL1wvLztmdW5jdGlvbiBGZShlLHQpe2lmKCFlLnNjaGVtZSYmdCl0aHJvdyBuZXcgRXJyb3IoYFtVcmlFcnJvcl06IFNjaGVtZSBpcyBtaXNzaW5nOiB7c2NoZW1lOiAiIiwgYXV0aG9yaXR5OiAiJHtlLmF1dGhvcml0eX0iLCBwYXRoOiAiJHtlLnBhdGh9IiwgcXVlcnk6ICIke2UucXVlcnl9IiwgZnJhZ21lbnQ6ICIke2UuZnJhZ21lbnR9In1gKTtpZihlLnNjaGVtZSYmIUtlLnRlc3QoZS5zY2hlbWUpKXRocm93IG5ldyBFcnJvcigiW1VyaUVycm9yXTogU2NoZW1lIGNvbnRhaW5zIGlsbGVnYWwgY2hhcmFjdGVycy4iKTtpZihlLnBhdGgpaWYoZS5hdXRob3JpdHkpe2lmKCFUZS50ZXN0KGUucGF0aCkpdGhyb3cgbmV3IEVycm9yKCdbVXJpRXJyb3JdOiBJZiBhIFVSSSBjb250YWlucyBhbiBhdXRob3JpdHkgY29tcG9uZW50LCB0aGVuIHRoZSBwYXRoIGNvbXBvbmVudCBtdXN0IGVpdGhlciBiZSBlbXB0eSBvciBiZWdpbiB3aXRoIGEgc2xhc2ggKCIvIikgY2hhcmFjdGVyJyl9ZWxzZSBpZihQZS50ZXN0KGUucGF0aCkpdGhyb3cgbmV3IEVycm9yKCdbVXJpRXJyb3JdOiBJZiBhIFVSSSBkb2VzIG5vdCBjb250YWluIGFuIGF1dGhvcml0eSBjb21wb25lbnQsIHRoZW4gdGhlIHBhdGggY2Fubm90IGJlZ2luIHdpdGggdHdvIHNsYXNoIGNoYXJhY3RlcnMgKCIvLyIpJyl9Y29uc3QgVmU9IiIsQmU9Ii8iLFVlPS9eKChbXjovPyNdKz8pOik/KFwvXC8oW14vPyNdKikpPyhbXj8jXSopKFw/KFteI10qKSk/KCMoLiopKT8vO2NsYXNzIHFle2NvbnN0cnVjdG9yKGUsdCxuLHIsaSxvPSExKXsib2JqZWN0Ij09dHlwZW9mIGU/KHRoaXMuc2NoZW1lPWUuc2NoZW1lfHxWZSx0aGlzLmF1dGhvcml0eT1lLmF1dGhvcml0eXx8VmUsdGhpcy5wYXRoPWUucGF0aHx8VmUsdGhpcy5xdWVyeT1lLnF1ZXJ5fHxWZSx0aGlzLmZyYWdtZW50PWUuZnJhZ21lbnR8fFZlKToodGhpcy5zY2hlbWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8dD9lOiJmaWxlIn0oZSxvKSx0aGlzLmF1dGhvcml0eT10fHxWZSx0aGlzLnBhdGg9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJodHRwcyI6Y2FzZSJodHRwIjpjYXNlImZpbGUiOnQ/dFswXSE9PUJlJiYodD1CZSt0KTp0PUJlfXJldHVybiB0fSh0aGlzLnNjaGVtZSxufHxWZSksdGhpcy5xdWVyeT1yfHxWZSx0aGlzLmZyYWdtZW50PWl8fFZlLEZlKHRoaXMsbykpfXN0YXRpYyBpc1VyaShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHFlfHwhIWUmJigic3RyaW5nIj09dHlwZW9mIGUuYXV0aG9yaXR5JiYic3RyaW5nIj09dHlwZW9mIGUuZnJhZ21lbnQmJiJzdHJpbmciPT10eXBlb2YgZS5wYXRoJiYic3RyaW5nIj09dHlwZW9mIGUucXVlcnkmJiJzdHJpbmciPT10eXBlb2YgZS5zY2hlbWUmJiJzdHJpbmciPT10eXBlb2YgZS5mc1BhdGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLndpdGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnRvU3RyaW5nKX1nZXQgZnNQYXRoKCl7cmV0dXJuIGplKHRoaXMsITEpfXdpdGgoZSl7aWYoIWUpcmV0dXJuIHRoaXM7bGV0e3NjaGVtZTp0LGF1dGhvcml0eTpuLHBhdGg6cixxdWVyeTppLGZyYWdtZW50Om99PWU7cmV0dXJuIHZvaWQgMD09PXQ/dD10aGlzLnNjaGVtZTpudWxsPT09dCYmKHQ9VmUpLHZvaWQgMD09PW4/bj10aGlzLmF1dGhvcml0eTpudWxsPT09biYmKG49VmUpLHZvaWQgMD09PXI/cj10aGlzLnBhdGg6bnVsbD09PXImJihyPVZlKSx2b2lkIDA9PT1pP2k9dGhpcy5xdWVyeTpudWxsPT09aSYmKGk9VmUpLHZvaWQgMD09PW8/bz10aGlzLmZyYWdtZW50Om51bGw9PT1vJiYobz1WZSksdD09PXRoaXMuc2NoZW1lJiZuPT09dGhpcy5hdXRob3JpdHkmJnI9PT10aGlzLnBhdGgmJmk9PT10aGlzLnF1ZXJ5JiZvPT09dGhpcy5mcmFnbWVudD90aGlzOm5ldyBXZSh0LG4scixpLG8pfXN0YXRpYyBwYXJzZShlLHQ9ITEpe2NvbnN0IG49VWUuZXhlYyhlKTtyZXR1cm4gbj9uZXcgV2UoblsyXXx8VmUsUWUobls0XXx8VmUpLFFlKG5bNV18fFZlKSxRZShuWzddfHxWZSksUWUobls5XXx8VmUpLHQpOm5ldyBXZShWZSxWZSxWZSxWZSxWZSl9c3RhdGljIGZpbGUoZSl7bGV0IHQ9VmU7aWYoUiYmKGU9ZS5yZXBsYWNlKC9cXC9nLEJlKSksZVswXT09PUJlJiZlWzFdPT09QmUpe2NvbnN0IG49ZS5pbmRleE9mKEJlLDIpOy0xPT09bj8odD1lLnN1YnN0cmluZygyKSxlPUJlKToodD1lLnN1YnN0cmluZygyLG4pLGU9ZS5zdWJzdHJpbmcobil8fEJlKX1yZXR1cm4gbmV3IFdlKCJmaWxlIix0LGUsVmUsVmUpfXN0YXRpYyBmcm9tKGUpe2NvbnN0IHQ9bmV3IFdlKGUuc2NoZW1lLGUuYXV0aG9yaXR5LGUucGF0aCxlLnF1ZXJ5LGUuZnJhZ21lbnQpO3JldHVybiBGZSh0LCEwKSx0fXN0YXRpYyBqb2luUGF0aChlLC4uLnQpe2lmKCFlLnBhdGgpdGhyb3cgbmV3IEVycm9yKCJbVXJpRXJyb3JdOiBjYW5ub3QgY2FsbCBqb2luUGF0aCBvbiBVUkkgd2l0aG91dCBwYXRoIik7bGV0IG47cmV0dXJuIG49UiYmImZpbGUiPT09ZS5zY2hlbWU/cWUuZmlsZShPZS5qb2luKGplKGUsITApLC4uLnQpKS5wYXRoOkRlLmpvaW4oZS5wYXRoLC4uLnQpLGUud2l0aCh7cGF0aDpufSl9dG9TdHJpbmcoZT0hMSl7cmV0dXJuIFllKHRoaXMsZSl9dG9KU09OKCl7cmV0dXJuIHRoaXN9c3RhdGljIHJldml2ZShlKXtpZihlKXtpZihlIGluc3RhbmNlb2YgcWUpcmV0dXJuIGU7e2NvbnN0IHQ9bmV3IFdlKGUpO3JldHVybiB0Ll9mb3JtYXR0ZWQ9ZS5leHRlcm5hbCx0Ll9mc1BhdGg9ZS5fc2VwPT09SGU/ZS5mc1BhdGg6bnVsbCx0fX1yZXR1cm4gZX19Y29uc3QgSGU9Uj8xOnZvaWQgMDtjbGFzcyBXZSBleHRlbmRzIHFle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9mb3JtYXR0ZWQ9bnVsbCx0aGlzLl9mc1BhdGg9bnVsbH1nZXQgZnNQYXRoKCl7cmV0dXJuIHRoaXMuX2ZzUGF0aHx8KHRoaXMuX2ZzUGF0aD1qZSh0aGlzLCExKSksdGhpcy5fZnNQYXRofXRvU3RyaW5nKGU9ITEpe3JldHVybiBlP1llKHRoaXMsITApOih0aGlzLl9mb3JtYXR0ZWR8fCh0aGlzLl9mb3JtYXR0ZWQ9WWUodGhpcywhMSkpLHRoaXMuX2Zvcm1hdHRlZCl9dG9KU09OKCl7Y29uc3QgZT17JG1pZDoxfTtyZXR1cm4gdGhpcy5fZnNQYXRoJiYoZS5mc1BhdGg9dGhpcy5fZnNQYXRoLGUuX3NlcD1IZSksdGhpcy5fZm9ybWF0dGVkJiYoZS5leHRlcm5hbD10aGlzLl9mb3JtYXR0ZWQpLHRoaXMucGF0aCYmKGUucGF0aD10aGlzLnBhdGgpLHRoaXMuc2NoZW1lJiYoZS5zY2hlbWU9dGhpcy5zY2hlbWUpLHRoaXMuYXV0aG9yaXR5JiYoZS5hdXRob3JpdHk9dGhpcy5hdXRob3JpdHkpLHRoaXMucXVlcnkmJihlLnF1ZXJ5PXRoaXMucXVlcnkpLHRoaXMuZnJhZ21lbnQmJihlLmZyYWdtZW50PXRoaXMuZnJhZ21lbnQpLGV9fWNvbnN0IHplPXs1ODoiJTNBIiw0NzoiJTJGIiw2MzoiJTNGIiwzNToiJTIzIiw5MToiJTVCIiw5MzoiJTVEIiw2NDoiJTQwIiwzMzoiJTIxIiwzNjoiJTI0IiwzODoiJTI2IiwzOToiJTI3Iiw0MDoiJTI4Iiw0MToiJTI5Iiw0MjoiJTJBIiw0MzoiJTJCIiw0NDoiJTJDIiw1OToiJTNCIiw2MToiJTNEIiwzMjoiJTIwIn07ZnVuY3Rpb24gJGUoZSx0KXtsZXQgbixyPS0xO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXtjb25zdCBvPWUuY2hhckNvZGVBdChpKTtpZihvPj05NyYmbzw9MTIyfHxvPj02NSYmbzw9OTB8fG8+PTQ4JiZvPD01N3x8NDU9PT1vfHw0Nj09PW98fDk1PT09b3x8MTI2PT09b3x8dCYmNDc9PT1vKS0xIT09ciYmKG4rPWVuY29kZVVSSUNvbXBvbmVudChlLnN1YnN0cmluZyhyLGkpKSxyPS0xKSx2b2lkIDAhPT1uJiYobis9ZS5jaGFyQXQoaSkpO2Vsc2V7dm9pZCAwPT09biYmKG49ZS5zdWJzdHIoMCxpKSk7Y29uc3QgdD16ZVtvXTt2b2lkIDAhPT10PygtMSE9PXImJihuKz1lbmNvZGVVUklDb21wb25lbnQoZS5zdWJzdHJpbmcocixpKSkscj0tMSksbis9dCk6LTE9PT1yJiYocj1pKX19cmV0dXJuLTEhPT1yJiYobis9ZW5jb2RlVVJJQ29tcG9uZW50KGUuc3Vic3RyaW5nKHIpKSksdm9pZCAwIT09bj9uOmV9ZnVuY3Rpb24gR2UoZSl7bGV0IHQ7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2NvbnN0IHI9ZS5jaGFyQ29kZUF0KG4pOzM1PT09cnx8NjM9PT1yPyh2b2lkIDA9PT10JiYodD1lLnN1YnN0cigwLG4pKSx0Kz16ZVtyXSk6dm9pZCAwIT09dCYmKHQrPWVbbl0pfXJldHVybiB2b2lkIDAhPT10P3Q6ZX1mdW5jdGlvbiBqZShlLHQpe2xldCBuO3JldHVybiBuPWUuYXV0aG9yaXR5JiZlLnBhdGgubGVuZ3RoPjEmJiJmaWxlIj09PWUuc2NoZW1lP2AvLyR7ZS5hdXRob3JpdHl9JHtlLnBhdGh9YDo0Nz09PWUucGF0aC5jaGFyQ29kZUF0KDApJiYoZS5wYXRoLmNoYXJDb2RlQXQoMSk+PTY1JiZlLnBhdGguY2hhckNvZGVBdCgxKTw9OTB8fGUucGF0aC5jaGFyQ29kZUF0KDEpPj05NyYmZS5wYXRoLmNoYXJDb2RlQXQoMSk8PTEyMikmJjU4PT09ZS5wYXRoLmNoYXJDb2RlQXQoMik/dD9lLnBhdGguc3Vic3RyKDEpOmUucGF0aFsxXS50b0xvd2VyQ2FzZSgpK2UucGF0aC5zdWJzdHIoMik6ZS5wYXRoLFImJihuPW4ucmVwbGFjZSgvXC8vZywiXFwiKSksbn1mdW5jdGlvbiBZZShlLHQpe2NvbnN0IG49dD9HZTokZTtsZXQgcj0iIix7c2NoZW1lOmksYXV0aG9yaXR5Om8scGF0aDphLHF1ZXJ5OnMsZnJhZ21lbnQ6bH09ZTtpZihpJiYocis9aSxyKz0iOiIpLChvfHwiZmlsZSI9PT1pKSYmKHIrPUJlLHIrPUJlKSxvKXtsZXQgZT1vLmluZGV4T2YoIkAiKTtpZigtMSE9PWUpe2NvbnN0IHQ9by5zdWJzdHIoMCxlKTtvPW8uc3Vic3RyKGUrMSksZT10LmluZGV4T2YoIjoiKSwtMT09PWU/cis9bih0LCExKToocis9bih0LnN1YnN0cigwLGUpLCExKSxyKz0iOiIscis9bih0LnN1YnN0cihlKzEpLCExKSkscis9IkAifW89by50b0xvd2VyQ2FzZSgpLGU9by5pbmRleE9mKCI6IiksLTE9PT1lP3IrPW4obywhMSk6KHIrPW4oby5zdWJzdHIoMCxlKSwhMSkscis9by5zdWJzdHIoZSkpfWlmKGEpe2lmKGEubGVuZ3RoPj0zJiY0Nz09PWEuY2hhckNvZGVBdCgwKSYmNTg9PT1hLmNoYXJDb2RlQXQoMikpe2NvbnN0IGU9YS5jaGFyQ29kZUF0KDEpO2U+PTY1JiZlPD05MCYmKGE9YC8ke1N0cmluZy5mcm9tQ2hhckNvZGUoZSszMil9OiR7YS5zdWJzdHIoMyl9YCl9ZWxzZSBpZihhLmxlbmd0aD49MiYmNTg9PT1hLmNoYXJDb2RlQXQoMSkpe2NvbnN0IGU9YS5jaGFyQ29kZUF0KDApO2U+PTY1JiZlPD05MCYmKGE9YCR7U3RyaW5nLmZyb21DaGFyQ29kZShlKzMyKX06JHthLnN1YnN0cigyKX1gKX1yKz1uKGEsITApfXJldHVybiBzJiYocis9Ij8iLHIrPW4ocywhMSkpLGwmJihyKz0iIyIscis9dD9sOiRlKGwsITEpKSxyfWZ1bmN0aW9uIFplKGUpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGUpfWNhdGNoKHQpe3JldHVybiBlLmxlbmd0aD4zP2Uuc3Vic3RyKDAsMykrWmUoZS5zdWJzdHIoMykpOmV9fWNvbnN0IEplPS8oJVswLTlBLVphLXpdWzAtOUEtWmEtel0pKy9nO2Z1bmN0aW9uIFFlKGUpe3JldHVybiBlLm1hdGNoKEplKT9lLnJlcGxhY2UoSmUsKGU9PlplKGUpKSk6ZX1jbGFzcyBYZXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMubGluZU51bWJlcj1lLHRoaXMuY29sdW1uPXR9d2l0aChlPXRoaXMubGluZU51bWJlcix0PXRoaXMuY29sdW1uKXtyZXR1cm4gZT09PXRoaXMubGluZU51bWJlciYmdD09PXRoaXMuY29sdW1uP3RoaXM6bmV3IFhlKGUsdCl9ZGVsdGEoZT0wLHQ9MCl7cmV0dXJuIHRoaXMud2l0aCh0aGlzLmxpbmVOdW1iZXIrZSx0aGlzLmNvbHVtbit0KX1lcXVhbHMoZSl7cmV0dXJuIFhlLmVxdWFscyh0aGlzLGUpfXN0YXRpYyBlcXVhbHMoZSx0KXtyZXR1cm4hZSYmIXR8fCEhZSYmISF0JiZlLmxpbmVOdW1iZXI9PT10LmxpbmVOdW1iZXImJmUuY29sdW1uPT09dC5jb2x1bW59aXNCZWZvcmUoZSl7cmV0dXJuIFhlLmlzQmVmb3JlKHRoaXMsZSl9c3RhdGljIGlzQmVmb3JlKGUsdCl7cmV0dXJuIGUubGluZU51bWJlcjx0LmxpbmVOdW1iZXJ8fCEodC5saW5lTnVtYmVyPGUubGluZU51bWJlcikmJmUuY29sdW1uPHQuY29sdW1ufWlzQmVmb3JlT3JFcXVhbChlKXtyZXR1cm4gWGUuaXNCZWZvcmVPckVxdWFsKHRoaXMsZSl9c3RhdGljIGlzQmVmb3JlT3JFcXVhbChlLHQpe3JldHVybiBlLmxpbmVOdW1iZXI8dC5saW5lTnVtYmVyfHwhKHQubGluZU51bWJlcjxlLmxpbmVOdW1iZXIpJiZlLmNvbHVtbjw9dC5jb2x1bW59c3RhdGljIGNvbXBhcmUoZSx0KXtjb25zdCBuPTB8ZS5saW5lTnVtYmVyLHI9MHx0LmxpbmVOdW1iZXI7aWYobj09PXIpe3JldHVybigwfGUuY29sdW1uKS0oMHx0LmNvbHVtbil9cmV0dXJuIG4tcn1jbG9uZSgpe3JldHVybiBuZXcgWGUodGhpcy5saW5lTnVtYmVyLHRoaXMuY29sdW1uKX10b1N0cmluZygpe3JldHVybiIoIit0aGlzLmxpbmVOdW1iZXIrIiwiK3RoaXMuY29sdW1uKyIpIn1zdGF0aWMgbGlmdChlKXtyZXR1cm4gbmV3IFhlKGUubGluZU51bWJlcixlLmNvbHVtbil9c3RhdGljIGlzSVBvc2l0aW9uKGUpe3JldHVybiBlJiYibnVtYmVyIj09dHlwZW9mIGUubGluZU51bWJlciYmIm51bWJlciI9PXR5cGVvZiBlLmNvbHVtbn19Y2xhc3MgZXR7Y29uc3RydWN0b3IoZSx0LG4scil7ZT5ufHxlPT09biYmdD5yPyh0aGlzLnN0YXJ0TGluZU51bWJlcj1uLHRoaXMuc3RhcnRDb2x1bW49cix0aGlzLmVuZExpbmVOdW1iZXI9ZSx0aGlzLmVuZENvbHVtbj10KToodGhpcy5zdGFydExpbmVOdW1iZXI9ZSx0aGlzLnN0YXJ0Q29sdW1uPXQsdGhpcy5lbmRMaW5lTnVtYmVyPW4sdGhpcy5lbmRDb2x1bW49cil9aXNFbXB0eSgpe3JldHVybiBldC5pc0VtcHR5KHRoaXMpfXN0YXRpYyBpc0VtcHR5KGUpe3JldHVybiBlLnN0YXJ0TGluZU51bWJlcj09PWUuZW5kTGluZU51bWJlciYmZS5zdGFydENvbHVtbj09PWUuZW5kQ29sdW1ufWNvbnRhaW5zUG9zaXRpb24oZSl7cmV0dXJuIGV0LmNvbnRhaW5zUG9zaXRpb24odGhpcyxlKX1zdGF0aWMgY29udGFpbnNQb3NpdGlvbihlLHQpe3JldHVybiEodC5saW5lTnVtYmVyPGUuc3RhcnRMaW5lTnVtYmVyfHx0LmxpbmVOdW1iZXI+ZS5lbmRMaW5lTnVtYmVyKSYmKCEodC5saW5lTnVtYmVyPT09ZS5zdGFydExpbmVOdW1iZXImJnQuY29sdW1uPGUuc3RhcnRDb2x1bW4pJiYhKHQubGluZU51bWJlcj09PWUuZW5kTGluZU51bWJlciYmdC5jb2x1bW4+ZS5lbmRDb2x1bW4pKX1zdGF0aWMgc3RyaWN0Q29udGFpbnNQb3NpdGlvbihlLHQpe3JldHVybiEodC5saW5lTnVtYmVyPGUuc3RhcnRMaW5lTnVtYmVyfHx0LmxpbmVOdW1iZXI+ZS5lbmRMaW5lTnVtYmVyKSYmKCEodC5saW5lTnVtYmVyPT09ZS5zdGFydExpbmVOdW1iZXImJnQuY29sdW1uPD1lLnN0YXJ0Q29sdW1uKSYmISh0LmxpbmVOdW1iZXI9PT1lLmVuZExpbmVOdW1iZXImJnQuY29sdW1uPj1lLmVuZENvbHVtbikpfWNvbnRhaW5zUmFuZ2UoZSl7cmV0dXJuIGV0LmNvbnRhaW5zUmFuZ2UodGhpcyxlKX1zdGF0aWMgY29udGFpbnNSYW5nZShlLHQpe3JldHVybiEodC5zdGFydExpbmVOdW1iZXI8ZS5zdGFydExpbmVOdW1iZXJ8fHQuZW5kTGluZU51bWJlcjxlLnN0YXJ0TGluZU51bWJlcikmJighKHQuc3RhcnRMaW5lTnVtYmVyPmUuZW5kTGluZU51bWJlcnx8dC5lbmRMaW5lTnVtYmVyPmUuZW5kTGluZU51bWJlcikmJighKHQuc3RhcnRMaW5lTnVtYmVyPT09ZS5zdGFydExpbmVOdW1iZXImJnQuc3RhcnRDb2x1bW48ZS5zdGFydENvbHVtbikmJiEodC5lbmRMaW5lTnVtYmVyPT09ZS5lbmRMaW5lTnVtYmVyJiZ0LmVuZENvbHVtbj5lLmVuZENvbHVtbikpKX1zdHJpY3RDb250YWluc1JhbmdlKGUpe3JldHVybiBldC5zdHJpY3RDb250YWluc1JhbmdlKHRoaXMsZSl9c3RhdGljIHN0cmljdENvbnRhaW5zUmFuZ2UoZSx0KXtyZXR1cm4hKHQuc3RhcnRMaW5lTnVtYmVyPGUuc3RhcnRMaW5lTnVtYmVyfHx0LmVuZExpbmVOdW1iZXI8ZS5zdGFydExpbmVOdW1iZXIpJiYoISh0LnN0YXJ0TGluZU51bWJlcj5lLmVuZExpbmVOdW1iZXJ8fHQuZW5kTGluZU51bWJlcj5lLmVuZExpbmVOdW1iZXIpJiYoISh0LnN0YXJ0TGluZU51bWJlcj09PWUuc3RhcnRMaW5lTnVtYmVyJiZ0LnN0YXJ0Q29sdW1uPD1lLnN0YXJ0Q29sdW1uKSYmISh0LmVuZExpbmVOdW1iZXI9PT1lLmVuZExpbmVOdW1iZXImJnQuZW5kQ29sdW1uPj1lLmVuZENvbHVtbikpKX1wbHVzUmFuZ2UoZSl7cmV0dXJuIGV0LnBsdXNSYW5nZSh0aGlzLGUpfXN0YXRpYyBwbHVzUmFuZ2UoZSx0KXtsZXQgbixyLGksbztyZXR1cm4gdC5zdGFydExpbmVOdW1iZXI8ZS5zdGFydExpbmVOdW1iZXI/KG49dC5zdGFydExpbmVOdW1iZXIscj10LnN0YXJ0Q29sdW1uKTp0LnN0YXJ0TGluZU51bWJlcj09PWUuc3RhcnRMaW5lTnVtYmVyPyhuPXQuc3RhcnRMaW5lTnVtYmVyLHI9TWF0aC5taW4odC5zdGFydENvbHVtbixlLnN0YXJ0Q29sdW1uKSk6KG49ZS5zdGFydExpbmVOdW1iZXIscj1lLnN0YXJ0Q29sdW1uKSx0LmVuZExpbmVOdW1iZXI+ZS5lbmRMaW5lTnVtYmVyPyhpPXQuZW5kTGluZU51bWJlcixvPXQuZW5kQ29sdW1uKTp0LmVuZExpbmVOdW1iZXI9PT1lLmVuZExpbmVOdW1iZXI/KGk9dC5lbmRMaW5lTnVtYmVyLG89TWF0aC5tYXgodC5lbmRDb2x1bW4sZS5lbmRDb2x1bW4pKTooaT1lLmVuZExpbmVOdW1iZXIsbz1lLmVuZENvbHVtbiksbmV3IGV0KG4scixpLG8pfWludGVyc2VjdFJhbmdlcyhlKXtyZXR1cm4gZXQuaW50ZXJzZWN0UmFuZ2VzKHRoaXMsZSl9c3RhdGljIGludGVyc2VjdFJhbmdlcyhlLHQpe2xldCBuPWUuc3RhcnRMaW5lTnVtYmVyLHI9ZS5zdGFydENvbHVtbixpPWUuZW5kTGluZU51bWJlcixvPWUuZW5kQ29sdW1uLGE9dC5zdGFydExpbmVOdW1iZXIscz10LnN0YXJ0Q29sdW1uLGw9dC5lbmRMaW5lTnVtYmVyLGM9dC5lbmRDb2x1bW47cmV0dXJuIG48YT8obj1hLHI9cyk6bj09PWEmJihyPU1hdGgubWF4KHIscykpLGk+bD8oaT1sLG89Yyk6aT09PWwmJihvPU1hdGgubWluKG8sYykpLG4+aXx8bj09PWkmJnI+bz9udWxsOm5ldyBldChuLHIsaSxvKX1lcXVhbHNSYW5nZShlKXtyZXR1cm4gZXQuZXF1YWxzUmFuZ2UodGhpcyxlKX1zdGF0aWMgZXF1YWxzUmFuZ2UoZSx0KXtyZXR1cm4hIWUmJiEhdCYmZS5zdGFydExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlciYmZS5zdGFydENvbHVtbj09PXQuc3RhcnRDb2x1bW4mJmUuZW5kTGluZU51bWJlcj09PXQuZW5kTGluZU51bWJlciYmZS5lbmRDb2x1bW49PT10LmVuZENvbHVtbn1nZXRFbmRQb3NpdGlvbigpe3JldHVybiBldC5nZXRFbmRQb3NpdGlvbih0aGlzKX1zdGF0aWMgZ2V0RW5kUG9zaXRpb24oZSl7cmV0dXJuIG5ldyBYZShlLmVuZExpbmVOdW1iZXIsZS5lbmRDb2x1bW4pfWdldFN0YXJ0UG9zaXRpb24oKXtyZXR1cm4gZXQuZ2V0U3RhcnRQb3NpdGlvbih0aGlzKX1zdGF0aWMgZ2V0U3RhcnRQb3NpdGlvbihlKXtyZXR1cm4gbmV3IFhlKGUuc3RhcnRMaW5lTnVtYmVyLGUuc3RhcnRDb2x1bW4pfXRvU3RyaW5nKCl7cmV0dXJuIlsiK3RoaXMuc3RhcnRMaW5lTnVtYmVyKyIsIit0aGlzLnN0YXJ0Q29sdW1uKyIgLT4gIit0aGlzLmVuZExpbmVOdW1iZXIrIiwiK3RoaXMuZW5kQ29sdW1uKyJdIn1zZXRFbmRQb3NpdGlvbihlLHQpe3JldHVybiBuZXcgZXQodGhpcy5zdGFydExpbmVOdW1iZXIsdGhpcy5zdGFydENvbHVtbixlLHQpfXNldFN0YXJ0UG9zaXRpb24oZSx0KXtyZXR1cm4gbmV3IGV0KGUsdCx0aGlzLmVuZExpbmVOdW1iZXIsdGhpcy5lbmRDb2x1bW4pfWNvbGxhcHNlVG9TdGFydCgpe3JldHVybiBldC5jb2xsYXBzZVRvU3RhcnQodGhpcyl9c3RhdGljIGNvbGxhcHNlVG9TdGFydChlKXtyZXR1cm4gbmV3IGV0KGUuc3RhcnRMaW5lTnVtYmVyLGUuc3RhcnRDb2x1bW4sZS5zdGFydExpbmVOdW1iZXIsZS5zdGFydENvbHVtbil9c3RhdGljIGZyb21Qb3NpdGlvbnMoZSx0PWUpe3JldHVybiBuZXcgZXQoZS5saW5lTnVtYmVyLGUuY29sdW1uLHQubGluZU51bWJlcix0LmNvbHVtbil9c3RhdGljIGxpZnQoZSl7cmV0dXJuIGU/bmV3IGV0KGUuc3RhcnRMaW5lTnVtYmVyLGUuc3RhcnRDb2x1bW4sZS5lbmRMaW5lTnVtYmVyLGUuZW5kQ29sdW1uKTpudWxsfXN0YXRpYyBpc0lSYW5nZShlKXtyZXR1cm4gZSYmIm51bWJlciI9PXR5cGVvZiBlLnN0YXJ0TGluZU51bWJlciYmIm51bWJlciI9PXR5cGVvZiBlLnN0YXJ0Q29sdW1uJiYibnVtYmVyIj09dHlwZW9mIGUuZW5kTGluZU51bWJlciYmIm51bWJlciI9PXR5cGVvZiBlLmVuZENvbHVtbn1zdGF0aWMgYXJlSW50ZXJzZWN0aW5nT3JUb3VjaGluZyhlLHQpe3JldHVybiEoZS5lbmRMaW5lTnVtYmVyPHQuc3RhcnRMaW5lTnVtYmVyfHxlLmVuZExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlciYmZS5lbmRDb2x1bW48dC5zdGFydENvbHVtbikmJiEodC5lbmRMaW5lTnVtYmVyPGUuc3RhcnRMaW5lTnVtYmVyfHx0LmVuZExpbmVOdW1iZXI9PT1lLnN0YXJ0TGluZU51bWJlciYmdC5lbmRDb2x1bW48ZS5zdGFydENvbHVtbil9c3RhdGljIGFyZUludGVyc2VjdGluZyhlLHQpe3JldHVybiEoZS5lbmRMaW5lTnVtYmVyPHQuc3RhcnRMaW5lTnVtYmVyfHxlLmVuZExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlciYmZS5lbmRDb2x1bW48PXQuc3RhcnRDb2x1bW4pJiYhKHQuZW5kTGluZU51bWJlcjxlLnN0YXJ0TGluZU51bWJlcnx8dC5lbmRMaW5lTnVtYmVyPT09ZS5zdGFydExpbmVOdW1iZXImJnQuZW5kQ29sdW1uPD1lLnN0YXJ0Q29sdW1uKX1zdGF0aWMgY29tcGFyZVJhbmdlc1VzaW5nU3RhcnRzKGUsdCl7aWYoZSYmdCl7Y29uc3Qgbj0wfGUuc3RhcnRMaW5lTnVtYmVyLHI9MHx0LnN0YXJ0TGluZU51bWJlcjtpZihuPT09cil7Y29uc3Qgbj0wfGUuc3RhcnRDb2x1bW4scj0wfHQuc3RhcnRDb2x1bW47aWYobj09PXIpe2NvbnN0IG49MHxlLmVuZExpbmVOdW1iZXIscj0wfHQuZW5kTGluZU51bWJlcjtpZihuPT09cil7cmV0dXJuKDB8ZS5lbmRDb2x1bW4pLSgwfHQuZW5kQ29sdW1uKX1yZXR1cm4gbi1yfXJldHVybiBuLXJ9cmV0dXJuIG4tcn1yZXR1cm4oZT8xOjApLSh0PzE6MCl9c3RhdGljIGNvbXBhcmVSYW5nZXNVc2luZ0VuZHMoZSx0KXtyZXR1cm4gZS5lbmRMaW5lTnVtYmVyPT09dC5lbmRMaW5lTnVtYmVyP2UuZW5kQ29sdW1uPT09dC5lbmRDb2x1bW4/ZS5zdGFydExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlcj9lLnN0YXJ0Q29sdW1uLXQuc3RhcnRDb2x1bW46ZS5zdGFydExpbmVOdW1iZXItdC5zdGFydExpbmVOdW1iZXI6ZS5lbmRDb2x1bW4tdC5lbmRDb2x1bW46ZS5lbmRMaW5lTnVtYmVyLXQuZW5kTGluZU51bWJlcn1zdGF0aWMgc3BhbnNNdWx0aXBsZUxpbmVzKGUpe3JldHVybiBlLmVuZExpbmVOdW1iZXI+ZS5zdGFydExpbmVOdW1iZXJ9dG9KU09OKCl7cmV0dXJuIHRoaXN9fWZ1bmN0aW9uIHR0KGUsdCxuLHIpe3JldHVybiBuZXcgQ2UoZSx0LG4pLkNvbXB1dGVEaWZmKHIpfWNsYXNzIG50e2NvbnN0cnVjdG9yKGUpe2NvbnN0IHQ9W10sbj1bXTtmb3IobGV0IHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspdFtyXT1zdChlW3JdLDEpLG5bcl09bHQoZVtyXSwxKTt0aGlzLmxpbmVzPWUsdGhpcy5fc3RhcnRDb2x1bW5zPXQsdGhpcy5fZW5kQ29sdW1ucz1ufWdldEVsZW1lbnRzKCl7Y29uc3QgZT1bXTtmb3IobGV0IHQ9MCxuPXRoaXMubGluZXMubGVuZ3RoO3Q8bjt0KyspZVt0XT10aGlzLmxpbmVzW3RdLnN1YnN0cmluZyh0aGlzLl9zdGFydENvbHVtbnNbdF0tMSx0aGlzLl9lbmRDb2x1bW5zW3RdLTEpO3JldHVybiBlfWdldFN0cmljdEVsZW1lbnQoZSl7cmV0dXJuIHRoaXMubGluZXNbZV19Z2V0U3RhcnRMaW5lTnVtYmVyKGUpe3JldHVybiBlKzF9Z2V0RW5kTGluZU51bWJlcihlKXtyZXR1cm4gZSsxfWNyZWF0ZUNoYXJTZXF1ZW5jZShlLHQsbil7Y29uc3Qgcj1bXSxpPVtdLG89W107bGV0IGE9MDtmb3IobGV0IHM9dDtzPD1uO3MrKyl7Y29uc3QgdD10aGlzLmxpbmVzW3NdLG49ZT90aGlzLl9zdGFydENvbHVtbnNbc106MSxsPWU/dGhpcy5fZW5kQ29sdW1uc1tzXTp0Lmxlbmd0aCsxO2ZvcihsZXQgZT1uO2U8bDtlKyspclthXT10LmNoYXJDb2RlQXQoZS0xKSxpW2FdPXMrMSxvW2FdPWUsYSsrfXJldHVybiBuZXcgcnQocixpLG8pfX1jbGFzcyBydHtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5fY2hhckNvZGVzPWUsdGhpcy5fbGluZU51bWJlcnM9dCx0aGlzLl9jb2x1bW5zPW59Z2V0RWxlbWVudHMoKXtyZXR1cm4gdGhpcy5fY2hhckNvZGVzfWdldFN0YXJ0TGluZU51bWJlcihlKXtyZXR1cm4gdGhpcy5fbGluZU51bWJlcnNbZV19Z2V0U3RhcnRDb2x1bW4oZSl7cmV0dXJuIHRoaXMuX2NvbHVtbnNbZV19Z2V0RW5kTGluZU51bWJlcihlKXtyZXR1cm4gdGhpcy5fbGluZU51bWJlcnNbZV19Z2V0RW5kQ29sdW1uKGUpe3JldHVybiB0aGlzLl9jb2x1bW5zW2VdKzF9fWNsYXNzIGl0e2NvbnN0cnVjdG9yKGUsdCxuLHIsaSxvLGEscyl7dGhpcy5vcmlnaW5hbFN0YXJ0TGluZU51bWJlcj1lLHRoaXMub3JpZ2luYWxTdGFydENvbHVtbj10LHRoaXMub3JpZ2luYWxFbmRMaW5lTnVtYmVyPW4sdGhpcy5vcmlnaW5hbEVuZENvbHVtbj1yLHRoaXMubW9kaWZpZWRTdGFydExpbmVOdW1iZXI9aSx0aGlzLm1vZGlmaWVkU3RhcnRDb2x1bW49byx0aGlzLm1vZGlmaWVkRW5kTGluZU51bWJlcj1hLHRoaXMubW9kaWZpZWRFbmRDb2x1bW49c31zdGF0aWMgY3JlYXRlRnJvbURpZmZDaGFuZ2UoZSx0LG4pe2xldCByLGksbyxhLHMsbCxjLHU7cmV0dXJuIDA9PT1lLm9yaWdpbmFsTGVuZ3RoPyhyPTAsaT0wLG89MCxhPTApOihyPXQuZ2V0U3RhcnRMaW5lTnVtYmVyKGUub3JpZ2luYWxTdGFydCksaT10LmdldFN0YXJ0Q29sdW1uKGUub3JpZ2luYWxTdGFydCksbz10LmdldEVuZExpbmVOdW1iZXIoZS5vcmlnaW5hbFN0YXJ0K2Uub3JpZ2luYWxMZW5ndGgtMSksYT10LmdldEVuZENvbHVtbihlLm9yaWdpbmFsU3RhcnQrZS5vcmlnaW5hbExlbmd0aC0xKSksMD09PWUubW9kaWZpZWRMZW5ndGg/KHM9MCxsPTAsYz0wLHU9MCk6KHM9bi5nZXRTdGFydExpbmVOdW1iZXIoZS5tb2RpZmllZFN0YXJ0KSxsPW4uZ2V0U3RhcnRDb2x1bW4oZS5tb2RpZmllZFN0YXJ0KSxjPW4uZ2V0RW5kTGluZU51bWJlcihlLm1vZGlmaWVkU3RhcnQrZS5tb2RpZmllZExlbmd0aC0xKSx1PW4uZ2V0RW5kQ29sdW1uKGUubW9kaWZpZWRTdGFydCtlLm1vZGlmaWVkTGVuZ3RoLTEpKSxuZXcgaXQocixpLG8sYSxzLGwsYyx1KX19Y2xhc3Mgb3R7Y29uc3RydWN0b3IoZSx0LG4scixpKXt0aGlzLm9yaWdpbmFsU3RhcnRMaW5lTnVtYmVyPWUsdGhpcy5vcmlnaW5hbEVuZExpbmVOdW1iZXI9dCx0aGlzLm1vZGlmaWVkU3RhcnRMaW5lTnVtYmVyPW4sdGhpcy5tb2RpZmllZEVuZExpbmVOdW1iZXI9cix0aGlzLmNoYXJDaGFuZ2VzPWl9c3RhdGljIGNyZWF0ZUZyb21EaWZmUmVzdWx0KGUsdCxuLHIsaSxvLGEpe2xldCBzLGwsYyx1LGg7aWYoMD09PXQub3JpZ2luYWxMZW5ndGg/KHM9bi5nZXRTdGFydExpbmVOdW1iZXIodC5vcmlnaW5hbFN0YXJ0KS0xLGw9MCk6KHM9bi5nZXRTdGFydExpbmVOdW1iZXIodC5vcmlnaW5hbFN0YXJ0KSxsPW4uZ2V0RW5kTGluZU51bWJlcih0Lm9yaWdpbmFsU3RhcnQrdC5vcmlnaW5hbExlbmd0aC0xKSksMD09PXQubW9kaWZpZWRMZW5ndGg/KGM9ci5nZXRTdGFydExpbmVOdW1iZXIodC5tb2RpZmllZFN0YXJ0KS0xLHU9MCk6KGM9ci5nZXRTdGFydExpbmVOdW1iZXIodC5tb2RpZmllZFN0YXJ0KSx1PXIuZ2V0RW5kTGluZU51bWJlcih0Lm1vZGlmaWVkU3RhcnQrdC5tb2RpZmllZExlbmd0aC0xKSksbyYmdC5vcmlnaW5hbExlbmd0aD4wJiZ0Lm9yaWdpbmFsTGVuZ3RoPDIwJiZ0Lm1vZGlmaWVkTGVuZ3RoPjAmJnQubW9kaWZpZWRMZW5ndGg8MjAmJmkoKSl7Y29uc3Qgbz1uLmNyZWF0ZUNoYXJTZXF1ZW5jZShlLHQub3JpZ2luYWxTdGFydCx0Lm9yaWdpbmFsU3RhcnQrdC5vcmlnaW5hbExlbmd0aC0xKSxzPXIuY3JlYXRlQ2hhclNlcXVlbmNlKGUsdC5tb2RpZmllZFN0YXJ0LHQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoLTEpO2xldCBsPXR0KG8scyxpLCEwKS5jaGFuZ2VzO2EmJihsPWZ1bmN0aW9uKGUpe2lmKGUubGVuZ3RoPD0xKXJldHVybiBlO2NvbnN0IHQ9W2VbMF1dO2xldCBuPXRbMF07Zm9yKGxldCByPTEsaT1lLmxlbmd0aDtyPGk7cisrKXtjb25zdCBpPWVbcl0sbz1pLm9yaWdpbmFsU3RhcnQtKG4ub3JpZ2luYWxTdGFydCtuLm9yaWdpbmFsTGVuZ3RoKSxhPWkubW9kaWZpZWRTdGFydC0obi5tb2RpZmllZFN0YXJ0K24ubW9kaWZpZWRMZW5ndGgpO01hdGgubWluKG8sYSk8Mz8obi5vcmlnaW5hbExlbmd0aD1pLm9yaWdpbmFsU3RhcnQraS5vcmlnaW5hbExlbmd0aC1uLm9yaWdpbmFsU3RhcnQsbi5tb2RpZmllZExlbmd0aD1pLm1vZGlmaWVkU3RhcnQraS5tb2RpZmllZExlbmd0aC1uLm1vZGlmaWVkU3RhcnQpOih0LnB1c2goaSksbj1pKX1yZXR1cm4gdH0obCkpLGg9W107Zm9yKGxldCBlPTAsdD1sLmxlbmd0aDtlPHQ7ZSsrKWgucHVzaChpdC5jcmVhdGVGcm9tRGlmZkNoYW5nZShsW2VdLG8scykpfXJldHVybiBuZXcgb3QocyxsLGMsdSxoKX19Y2xhc3MgYXR7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzPW4uc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzLHRoaXMuc2hvdWxkUG9zdFByb2Nlc3NDaGFyQ2hhbmdlcz1uLnNob3VsZFBvc3RQcm9jZXNzQ2hhckNoYW5nZXMsdGhpcy5zaG91bGRJZ25vcmVUcmltV2hpdGVzcGFjZT1uLnNob3VsZElnbm9yZVRyaW1XaGl0ZXNwYWNlLHRoaXMuc2hvdWxkTWFrZVByZXR0eURpZmY9bi5zaG91bGRNYWtlUHJldHR5RGlmZix0aGlzLm9yaWdpbmFsTGluZXM9ZSx0aGlzLm1vZGlmaWVkTGluZXM9dCx0aGlzLm9yaWdpbmFsPW5ldyBudChlKSx0aGlzLm1vZGlmaWVkPW5ldyBudCh0KSx0aGlzLmNvbnRpbnVlTGluZURpZmY9Y3Qobi5tYXhDb21wdXRhdGlvblRpbWUpLHRoaXMuY29udGludWVDaGFyRGlmZj1jdCgwPT09bi5tYXhDb21wdXRhdGlvblRpbWU/MDpNYXRoLm1pbihuLm1heENvbXB1dGF0aW9uVGltZSw1ZTMpKX1jb21wdXRlRGlmZigpe2lmKDE9PT10aGlzLm9yaWdpbmFsLmxpbmVzLmxlbmd0aCYmMD09PXRoaXMub3JpZ2luYWwubGluZXNbMF0ubGVuZ3RoKXJldHVybiAxPT09dGhpcy5tb2RpZmllZC5saW5lcy5sZW5ndGgmJjA9PT10aGlzLm1vZGlmaWVkLmxpbmVzWzBdLmxlbmd0aD97cXVpdEVhcmx5OiExLGNoYW5nZXM6W119OntxdWl0RWFybHk6ITEsY2hhbmdlczpbe29yaWdpbmFsU3RhcnRMaW5lTnVtYmVyOjEsb3JpZ2luYWxFbmRMaW5lTnVtYmVyOjEsbW9kaWZpZWRTdGFydExpbmVOdW1iZXI6MSxtb2RpZmllZEVuZExpbmVOdW1iZXI6dGhpcy5tb2RpZmllZC5saW5lcy5sZW5ndGgsY2hhckNoYW5nZXM6W3ttb2RpZmllZEVuZENvbHVtbjowLG1vZGlmaWVkRW5kTGluZU51bWJlcjowLG1vZGlmaWVkU3RhcnRDb2x1bW46MCxtb2RpZmllZFN0YXJ0TGluZU51bWJlcjowLG9yaWdpbmFsRW5kQ29sdW1uOjAsb3JpZ2luYWxFbmRMaW5lTnVtYmVyOjAsb3JpZ2luYWxTdGFydENvbHVtbjowLG9yaWdpbmFsU3RhcnRMaW5lTnVtYmVyOjB9XX1dfTtpZigxPT09dGhpcy5tb2RpZmllZC5saW5lcy5sZW5ndGgmJjA9PT10aGlzLm1vZGlmaWVkLmxpbmVzWzBdLmxlbmd0aClyZXR1cm57cXVpdEVhcmx5OiExLGNoYW5nZXM6W3tvcmlnaW5hbFN0YXJ0TGluZU51bWJlcjoxLG9yaWdpbmFsRW5kTGluZU51bWJlcjp0aGlzLm9yaWdpbmFsLmxpbmVzLmxlbmd0aCxtb2RpZmllZFN0YXJ0TGluZU51bWJlcjoxLG1vZGlmaWVkRW5kTGluZU51bWJlcjoxLGNoYXJDaGFuZ2VzOlt7bW9kaWZpZWRFbmRDb2x1bW46MCxtb2RpZmllZEVuZExpbmVOdW1iZXI6MCxtb2RpZmllZFN0YXJ0Q29sdW1uOjAsbW9kaWZpZWRTdGFydExpbmVOdW1iZXI6MCxvcmlnaW5hbEVuZENvbHVtbjowLG9yaWdpbmFsRW5kTGluZU51bWJlcjowLG9yaWdpbmFsU3RhcnRDb2x1bW46MCxvcmlnaW5hbFN0YXJ0TGluZU51bWJlcjowfV19XX07Y29uc3QgZT10dCh0aGlzLm9yaWdpbmFsLHRoaXMubW9kaWZpZWQsdGhpcy5jb250aW51ZUxpbmVEaWZmLHRoaXMuc2hvdWxkTWFrZVByZXR0eURpZmYpLHQ9ZS5jaGFuZ2VzLG49ZS5xdWl0RWFybHk7aWYodGhpcy5zaG91bGRJZ25vcmVUcmltV2hpdGVzcGFjZSl7Y29uc3QgZT1bXTtmb3IobGV0IG49MCxyPXQubGVuZ3RoO248cjtuKyspZS5wdXNoKG90LmNyZWF0ZUZyb21EaWZmUmVzdWx0KHRoaXMuc2hvdWxkSWdub3JlVHJpbVdoaXRlc3BhY2UsdFtuXSx0aGlzLm9yaWdpbmFsLHRoaXMubW9kaWZpZWQsdGhpcy5jb250aW51ZUNoYXJEaWZmLHRoaXMuc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzLHRoaXMuc2hvdWxkUG9zdFByb2Nlc3NDaGFyQ2hhbmdlcykpO3JldHVybntxdWl0RWFybHk6bixjaGFuZ2VzOmV9fWNvbnN0IHI9W107bGV0IGk9MCxvPTA7Zm9yKGxldCBlPS0xLG49dC5sZW5ndGg7ZTxuO2UrKyl7Y29uc3QgYT1lKzE8bj90W2UrMV06bnVsbCxzPWE/YS5vcmlnaW5hbFN0YXJ0OnRoaXMub3JpZ2luYWxMaW5lcy5sZW5ndGgsbD1hP2EubW9kaWZpZWRTdGFydDp0aGlzLm1vZGlmaWVkTGluZXMubGVuZ3RoO2Zvcig7aTxzJiZvPGw7KXtjb25zdCBlPXRoaXMub3JpZ2luYWxMaW5lc1tpXSx0PXRoaXMubW9kaWZpZWRMaW5lc1tvXTtpZihlIT09dCl7e2xldCBuPXN0KGUsMSksYT1zdCh0LDEpO2Zvcig7bj4xJiZhPjE7KXtpZihlLmNoYXJDb2RlQXQobi0yKSE9PXQuY2hhckNvZGVBdChhLTIpKWJyZWFrO24tLSxhLS19KG4+MXx8YT4xKSYmdGhpcy5fcHVzaFRyaW1XaGl0ZXNwYWNlQ2hhckNoYW5nZShyLGkrMSwxLG4sbysxLDEsYSl9e2xldCBuPWx0KGUsMSksYT1sdCh0LDEpO2NvbnN0IHM9ZS5sZW5ndGgrMSxsPXQubGVuZ3RoKzE7Zm9yKDtuPHMmJmE8bDspe2lmKGUuY2hhckNvZGVBdChuLTEpIT09ZS5jaGFyQ29kZUF0KGEtMSkpYnJlYWs7bisrLGErK30objxzfHxhPGwpJiZ0aGlzLl9wdXNoVHJpbVdoaXRlc3BhY2VDaGFyQ2hhbmdlKHIsaSsxLG4scyxvKzEsYSxsKX19aSsrLG8rK31hJiYoci5wdXNoKG90LmNyZWF0ZUZyb21EaWZmUmVzdWx0KHRoaXMuc2hvdWxkSWdub3JlVHJpbVdoaXRlc3BhY2UsYSx0aGlzLm9yaWdpbmFsLHRoaXMubW9kaWZpZWQsdGhpcy5jb250aW51ZUNoYXJEaWZmLHRoaXMuc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzLHRoaXMuc2hvdWxkUG9zdFByb2Nlc3NDaGFyQ2hhbmdlcykpLGkrPWEub3JpZ2luYWxMZW5ndGgsbys9YS5tb2RpZmllZExlbmd0aCl9cmV0dXJue3F1aXRFYXJseTpuLGNoYW5nZXM6cn19X3B1c2hUcmltV2hpdGVzcGFjZUNoYXJDaGFuZ2UoZSx0LG4scixpLG8sYSl7aWYodGhpcy5fbWVyZ2VUcmltV2hpdGVzcGFjZUNoYXJDaGFuZ2UoZSx0LG4scixpLG8sYSkpcmV0dXJuO2xldCBzO3RoaXMuc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzJiYocz1bbmV3IGl0KHQsbix0LHIsaSxvLGksYSldKSxlLnB1c2gobmV3IG90KHQsdCxpLGkscykpfV9tZXJnZVRyaW1XaGl0ZXNwYWNlQ2hhckNoYW5nZShlLHQsbixyLGksbyxhKXtjb25zdCBzPWUubGVuZ3RoO2lmKDA9PT1zKXJldHVybiExO2NvbnN0IGw9ZVtzLTFdO3JldHVybiAwIT09bC5vcmlnaW5hbEVuZExpbmVOdW1iZXImJjAhPT1sLm1vZGlmaWVkRW5kTGluZU51bWJlciYmKGwub3JpZ2luYWxFbmRMaW5lTnVtYmVyKzE9PT10JiZsLm1vZGlmaWVkRW5kTGluZU51bWJlcisxPT09aSYmKGwub3JpZ2luYWxFbmRMaW5lTnVtYmVyPXQsbC5tb2RpZmllZEVuZExpbmVOdW1iZXI9aSx0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyYmbC5jaGFyQ2hhbmdlcyYmbC5jaGFyQ2hhbmdlcy5wdXNoKG5ldyBpdCh0LG4sdCxyLGksbyxpLGEpKSwhMCkpfX1mdW5jdGlvbiBzdChlLHQpe2NvbnN0IG49ZnVuY3Rpb24oZSl7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPWUuY2hhckNvZGVBdCh0KTtpZigzMiE9PW4mJjkhPT1uKXJldHVybiB0fXJldHVybi0xfShlKTtyZXR1cm4tMT09PW4/dDpuKzF9ZnVuY3Rpb24gbHQoZSx0KXtjb25zdCBuPWZ1bmN0aW9uKGUsdD1lLmxlbmd0aC0xKXtmb3IobGV0IG49dDtuPj0wO24tLSl7Y29uc3QgdD1lLmNoYXJDb2RlQXQobik7aWYoMzIhPT10JiY5IT09dClyZXR1cm4gbn1yZXR1cm4tMX0oZSk7cmV0dXJuLTE9PT1uP3Q6bisyfWZ1bmN0aW9uIGN0KGUpe2lmKDA9PT1lKXJldHVybigpPT4hMDtjb25zdCB0PURhdGUubm93KCk7cmV0dXJuKCk9PkRhdGUubm93KCktdDxlfWZ1bmN0aW9uIHV0KGUpe3JldHVybiBlPDA/MDplPjI1NT8yNTU6MHxlfWZ1bmN0aW9uIGh0KGUpe3JldHVybiBlPDA/MDplPjQyOTQ5NjcyOTU/NDI5NDk2NzI5NTowfGV9Y2xhc3MgZHR7Y29uc3RydWN0b3IoZSl7dGhpcy52YWx1ZXM9ZSx0aGlzLnByZWZpeFN1bT1uZXcgVWludDMyQXJyYXkoZS5sZW5ndGgpLHRoaXMucHJlZml4U3VtVmFsaWRJbmRleD1uZXcgSW50MzJBcnJheSgxKSx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF09LTF9aW5zZXJ0VmFsdWVzKGUsdCl7ZT1odChlKTtjb25zdCBuPXRoaXMudmFsdWVzLHI9dGhpcy5wcmVmaXhTdW0saT10Lmxlbmd0aDtyZXR1cm4gMCE9PWkmJih0aGlzLnZhbHVlcz1uZXcgVWludDMyQXJyYXkobi5sZW5ndGgraSksdGhpcy52YWx1ZXMuc2V0KG4uc3ViYXJyYXkoMCxlKSwwKSx0aGlzLnZhbHVlcy5zZXQobi5zdWJhcnJheShlKSxlK2kpLHRoaXMudmFsdWVzLnNldCh0LGUpLGUtMTx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0mJih0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF09ZS0xKSx0aGlzLnByZWZpeFN1bT1uZXcgVWludDMyQXJyYXkodGhpcy52YWx1ZXMubGVuZ3RoKSx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0+PTAmJnRoaXMucHJlZml4U3VtLnNldChyLnN1YmFycmF5KDAsdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdKzEpKSwhMCl9c2V0VmFsdWUoZSx0KXtyZXR1cm4gZT1odChlKSx0PWh0KHQpLHRoaXMudmFsdWVzW2VdIT09dCYmKHRoaXMudmFsdWVzW2VdPXQsZS0xPHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSYmKHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXT1lLTEpLCEwKX1yZW1vdmVWYWx1ZXMoZSx0KXtlPWh0KGUpLHQ9aHQodCk7Y29uc3Qgbj10aGlzLnZhbHVlcyxyPXRoaXMucHJlZml4U3VtO2lmKGU+PW4ubGVuZ3RoKXJldHVybiExO2NvbnN0IGk9bi5sZW5ndGgtZTtyZXR1cm4gdD49aSYmKHQ9aSksMCE9PXQmJih0aGlzLnZhbHVlcz1uZXcgVWludDMyQXJyYXkobi5sZW5ndGgtdCksdGhpcy52YWx1ZXMuc2V0KG4uc3ViYXJyYXkoMCxlKSwwKSx0aGlzLnZhbHVlcy5zZXQobi5zdWJhcnJheShlK3QpLGUpLHRoaXMucHJlZml4U3VtPW5ldyBVaW50MzJBcnJheSh0aGlzLnZhbHVlcy5sZW5ndGgpLGUtMTx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0mJih0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF09ZS0xKSx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0+PTAmJnRoaXMucHJlZml4U3VtLnNldChyLnN1YmFycmF5KDAsdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdKzEpKSwhMCl9Z2V0VG90YWxTdW0oKXtyZXR1cm4gMD09PXRoaXMudmFsdWVzLmxlbmd0aD8wOnRoaXMuX2dldFByZWZpeFN1bSh0aGlzLnZhbHVlcy5sZW5ndGgtMSl9Z2V0UHJlZml4U3VtKGUpe3JldHVybiBlPDA/MDooZT1odChlKSx0aGlzLl9nZXRQcmVmaXhTdW0oZSkpfV9nZXRQcmVmaXhTdW0oZSl7aWYoZTw9dGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdKXJldHVybiB0aGlzLnByZWZpeFN1bVtlXTtsZXQgdD10aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0rMTswPT09dCYmKHRoaXMucHJlZml4U3VtWzBdPXRoaXMudmFsdWVzWzBdLHQrKyksZT49dGhpcy52YWx1ZXMubGVuZ3RoJiYoZT10aGlzLnZhbHVlcy5sZW5ndGgtMSk7Zm9yKGxldCBuPXQ7bjw9ZTtuKyspdGhpcy5wcmVmaXhTdW1bbl09dGhpcy5wcmVmaXhTdW1bbi0xXSt0aGlzLnZhbHVlc1tuXTtyZXR1cm4gdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdPU1hdGgubWF4KHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSxlKSx0aGlzLnByZWZpeFN1bVtlXX1nZXRJbmRleE9mKGUpe2U9TWF0aC5mbG9vcihlKSx0aGlzLmdldFRvdGFsU3VtKCk7bGV0IHQ9MCxuPXRoaXMudmFsdWVzLmxlbmd0aC0xLHI9MCxpPTAsbz0wO2Zvcig7dDw9bjspaWYocj10KyhuLXQpLzJ8MCxpPXRoaXMucHJlZml4U3VtW3JdLG89aS10aGlzLnZhbHVlc1tyXSxlPG8pbj1yLTE7ZWxzZXtpZighKGU+PWkpKWJyZWFrO3Q9cisxfXJldHVybiBuZXcgZnQocixlLW8pfX1jbGFzcyBmdHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuaW5kZXg9ZSx0aGlzLnJlbWFpbmRlcj10LHRoaXMuX3ByZWZpeFN1bUluZGV4T2ZSZXN1bHRCcmFuZD12b2lkIDAsdGhpcy5pbmRleD1lLHRoaXMucmVtYWluZGVyPXR9fWNvbnN0IG10PWZ1bmN0aW9uKGU9IiIpe2xldCB0PSIoLT9cXGQqXFwuXFxkXFx3Kil8KFteIjtmb3IoY29uc3QgbiBvZiJgfiFAIyQlXiYqKCktPStbe119XFx8OzonXCIsLjw+Lz8iKWUuaW5kZXhPZihuKT49MHx8KHQrPSJcXCIrbik7cmV0dXJuIHQrPSJcXHNdKykiLG5ldyBSZWdFeHAodCwiZyIpfSgpO2NvbnN0IGd0PXttYXhMZW46MWUzLHdpbmRvd1NpemU6MTUsdGltZUJ1ZGdldDoxNTB9O2Z1bmN0aW9uIHB0KGUsdCxuLHIsaT1ndCl7aWYobi5sZW5ndGg+aS5tYXhMZW4pe2xldCBvPWUtaS5tYXhMZW4vMjtyZXR1cm4gbzwwP289MDpyKz1vLHB0KGUsdCxuPW4uc3Vic3RyaW5nKG8sZStpLm1heExlbi8yKSxyLGkpfWNvbnN0IG89RGF0ZS5ub3coKSxhPWUtMS1yO2xldCBzPS0xLGw9bnVsbDtmb3IobGV0IGU9MTshKERhdGUubm93KCktbz49aS50aW1lQnVkZ2V0KTtlKyspe2NvbnN0IHI9YS1pLndpbmRvd1NpemUqZTt0Lmxhc3RJbmRleD1NYXRoLm1heCgwLHIpO2NvbnN0IG89Q3QodCxuLGEscyk7aWYoIW8mJmwpYnJlYWs7aWYobD1vLHI8PTApYnJlYWs7cz1yfWlmKGwpe2NvbnN0IGU9e3dvcmQ6bFswXSxzdGFydENvbHVtbjpyKzErbC5pbmRleCxlbmRDb2x1bW46cisxK2wuaW5kZXgrbFswXS5sZW5ndGh9O3JldHVybiB0Lmxhc3RJbmRleD0wLGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQ3QoZSx0LG4scil7bGV0IGk7Zm9yKDtpPWUuZXhlYyh0KTspe2NvbnN0IHQ9aS5pbmRleHx8MDtpZih0PD1uJiZlLmxhc3RJbmRleD49bilyZXR1cm4gaTtpZihyPjAmJnQ+cilyZXR1cm4gbnVsbH1yZXR1cm4gbnVsbH1jbGFzcyBidHtjb25zdHJ1Y3RvcihlKXtjb25zdCB0PXV0KGUpO3RoaXMuX2RlZmF1bHRWYWx1ZT10LHRoaXMuX2FzY2lpTWFwPWJ0Ll9jcmVhdGVBc2NpaU1hcCh0KSx0aGlzLl9tYXA9bmV3IE1hcH1zdGF0aWMgX2NyZWF0ZUFzY2lpTWFwKGUpe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoMjU2KTtmb3IobGV0IG49MDtuPDI1NjtuKyspdFtuXT1lO3JldHVybiB0fXNldChlLHQpe2NvbnN0IG49dXQodCk7ZT49MCYmZTwyNTY/dGhpcy5fYXNjaWlNYXBbZV09bjp0aGlzLl9tYXAuc2V0KGUsbil9Z2V0KGUpe3JldHVybiBlPj0wJiZlPDI1Nj90aGlzLl9hc2NpaU1hcFtlXTp0aGlzLl9tYXAuZ2V0KGUpfHx0aGlzLl9kZWZhdWx0VmFsdWV9fWNsYXNzIHd0e2NvbnN0cnVjdG9yKGUsdCxuKXtjb25zdCByPW5ldyBVaW50OEFycmF5KGUqdCk7Zm9yKGxldCBpPTAsbz1lKnQ7aTxvO2krKylyW2ldPW47dGhpcy5fZGF0YT1yLHRoaXMucm93cz1lLHRoaXMuY29scz10fWdldChlLHQpe3JldHVybiB0aGlzLl9kYXRhW2UqdGhpcy5jb2xzK3RdfXNldChlLHQsbil7dGhpcy5fZGF0YVtlKnRoaXMuY29scyt0XT1ufX1jbGFzcyBfdHtjb25zdHJ1Y3RvcihlKXtsZXQgdD0wLG49MDtmb3IobGV0IHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspe2NvbnN0W2ksbyxhXT1lW3JdO28+dCYmKHQ9byksaT5uJiYobj1pKSxhPm4mJihuPWEpfXQrKyxuKys7Y29uc3Qgcj1uZXcgd3Qobix0LDApO2ZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyl7Y29uc3RbbixpLG9dPWVbdF07ci5zZXQobixpLG8pfXRoaXMuX3N0YXRlcz1yLHRoaXMuX21heENoYXJDb2RlPXR9bmV4dFN0YXRlKGUsdCl7cmV0dXJuIHQ8MHx8dD49dGhpcy5fbWF4Q2hhckNvZGU/MDp0aGlzLl9zdGF0ZXMuZ2V0KGUsdCl9fWxldCB5dD1udWxsO2xldCBTdD1udWxsO2NsYXNzIHZ0e3N0YXRpYyBfY3JlYXRlTGluayhlLHQsbixyLGkpe2xldCBvPWktMTtkb3tjb25zdCBuPXQuY2hhckNvZGVBdChvKTtpZigyIT09ZS5nZXQobikpYnJlYWs7by0tfXdoaWxlKG8+cik7aWYocj4wKXtjb25zdCBlPXQuY2hhckNvZGVBdChyLTEpLG49dC5jaGFyQ29kZUF0KG8pOyg0MD09PWUmJjQxPT09bnx8OTE9PT1lJiY5Mz09PW58fDEyMz09PWUmJjEyNT09PW4pJiZvLS19cmV0dXJue3JhbmdlOntzdGFydExpbmVOdW1iZXI6bixzdGFydENvbHVtbjpyKzEsZW5kTGluZU51bWJlcjpuLGVuZENvbHVtbjpvKzJ9LHVybDp0LnN1YnN0cmluZyhyLG8rMSl9fXN0YXRpYyBjb21wdXRlTGlua3MoZSx0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PT15dCYmKHl0PW5ldyBfdChbWzEsMTA0LDJdLFsxLDcyLDJdLFsxLDEwMiw2XSxbMSw3MCw2XSxbMiwxMTYsM10sWzIsODQsM10sWzMsMTE2LDRdLFszLDg0LDRdLFs0LDExMiw1XSxbNCw4MCw1XSxbNSwxMTUsOV0sWzUsODMsOV0sWzUsNTgsMTBdLFs2LDEwNSw3XSxbNiw3Myw3XSxbNywxMDgsOF0sWzcsNzYsOF0sWzgsMTAxLDldLFs4LDY5LDldLFs5LDU4LDEwXSxbMTAsNDcsMTFdLFsxMSw0NywxMl1dKSkseXR9KCkpe2NvbnN0IG49ZnVuY3Rpb24oKXtpZihudWxsPT09U3Qpe1N0PW5ldyBidCgwKTtjb25zdCBlPSIgXHQ8PidcIuOAgeOAgu+9oe+9pO+8jO+8ju+8mu+8m+KAmOOAiOOAjOOAjuOAlO+8iO+8u++9m++9ou+9o++9ne+8ve+8ieOAleOAj+OAjeOAieKAme+9gO+9nuKApiI7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspU3Quc2V0KGUuY2hhckNvZGVBdCh0KSwxKTtjb25zdCB0PSIuLDsiO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKVN0LnNldCh0LmNoYXJDb2RlQXQoZSksMil9cmV0dXJuIFN0fSgpLHI9W107Zm9yKGxldCBpPTEsbz1lLmdldExpbmVDb3VudCgpO2k8PW87aSsrKXtjb25zdCBvPWUuZ2V0TGluZUNvbnRlbnQoaSksYT1vLmxlbmd0aDtsZXQgcz0wLGw9MCxjPTAsdT0xLGg9ITEsZD0hMSxmPSExLG09ITE7Zm9yKDtzPGE7KXtsZXQgZT0hMTtjb25zdCBhPW8uY2hhckNvZGVBdChzKTtpZigxMz09PXUpe2xldCB0O3N3aXRjaChhKXtjYXNlIDQwOmg9ITAsdD0wO2JyZWFrO2Nhc2UgNDE6dD1oPzA6MTticmVhaztjYXNlIDkxOmY9ITAsZD0hMCx0PTA7YnJlYWs7Y2FzZSA5MzpmPSExLHQ9ZD8wOjE7YnJlYWs7Y2FzZSAxMjM6bT0hMCx0PTA7YnJlYWs7Y2FzZSAxMjU6dD1tPzA6MTticmVhaztjYXNlIDM5OnQ9MzQ9PT1jfHw5Nj09PWM/MDoxO2JyZWFrO2Nhc2UgMzQ6dD0zOT09PWN8fDk2PT09Yz8wOjE7YnJlYWs7Y2FzZSA5Njp0PTM5PT09Y3x8MzQ9PT1jPzA6MTticmVhaztjYXNlIDQyOnQ9NDI9PT1jPzE6MDticmVhaztjYXNlIDEyNDp0PTEyND09PWM/MTowO2JyZWFrO2Nhc2UgMzI6dD1mPzA6MTticmVhaztkZWZhdWx0OnQ9bi5nZXQoYSl9MT09PXQmJihyLnB1c2godnQuX2NyZWF0ZUxpbmsobixvLGksbCxzKSksZT0hMCl9ZWxzZSBpZigxMj09PXUpe2xldCB0OzkxPT09YT8oZD0hMCx0PTApOnQ9bi5nZXQoYSksMT09PXQ/ZT0hMDp1PTEzfWVsc2UgdT10Lm5leHRTdGF0ZSh1LGEpLDA9PT11JiYoZT0hMCk7ZSYmKHU9MSxoPSExLGQ9ITEsbT0hMSxsPXMrMSxjPWEpLHMrK30xMz09PXUmJnIucHVzaCh2dC5fY3JlYXRlTGluayhuLG8saSxsLGEpKX1yZXR1cm4gcn19Y2xhc3MgTHR7Y29uc3RydWN0b3IoKXt0aGlzLl9kZWZhdWx0VmFsdWVTZXQ9W1sidHJ1ZSIsImZhbHNlIl0sWyJUcnVlIiwiRmFsc2UiXSxbIlByaXZhdGUiLCJQdWJsaWMiLCJGcmllbmQiLCJSZWFkT25seSIsIlBhcnRpYWwiLCJQcm90ZWN0ZWQiLCJXcml0ZU9ubHkiXSxbInB1YmxpYyIsInByb3RlY3RlZCIsInByaXZhdGUiXV19bmF2aWdhdGVWYWx1ZVNldChlLHQsbixyLGkpe2lmKGUmJnQpe2NvbnN0IG49dGhpcy5kb05hdmlnYXRlVmFsdWVTZXQodCxpKTtpZihuKXJldHVybntyYW5nZTplLHZhbHVlOm59fWlmKG4mJnIpe2NvbnN0IGU9dGhpcy5kb05hdmlnYXRlVmFsdWVTZXQocixpKTtpZihlKXJldHVybntyYW5nZTpuLHZhbHVlOmV9fXJldHVybiBudWxsfWRvTmF2aWdhdGVWYWx1ZVNldChlLHQpe2NvbnN0IG49dGhpcy5udW1iZXJSZXBsYWNlKGUsdCk7cmV0dXJuIG51bGwhPT1uP246dGhpcy50ZXh0UmVwbGFjZShlLHQpfW51bWJlclJlcGxhY2UoZSx0KXtjb25zdCBuPU1hdGgucG93KDEwLGUubGVuZ3RoLShlLmxhc3RJbmRleE9mKCIuIikrMSkpO2xldCByPU51bWJlcihlKSxpPXBhcnNlRmxvYXQoZSk7cmV0dXJuIGlzTmFOKHIpfHxpc05hTihpKXx8ciE9PWk/bnVsbDowIT09cnx8dD8ocj1NYXRoLmZsb29yKHIqbikscis9dD9uOi1uLFN0cmluZyhyL24pKTpudWxsfXRleHRSZXBsYWNlKGUsdCl7cmV0dXJuIHRoaXMudmFsdWVTZXRzUmVwbGFjZSh0aGlzLl9kZWZhdWx0VmFsdWVTZXQsZSx0KX12YWx1ZVNldHNSZXBsYWNlKGUsdCxuKXtsZXQgcj1udWxsO2ZvcihsZXQgaT0wLG89ZS5sZW5ndGg7bnVsbD09PXImJmk8bztpKyspcj10aGlzLnZhbHVlU2V0UmVwbGFjZShlW2ldLHQsbik7cmV0dXJuIHJ9dmFsdWVTZXRSZXBsYWNlKGUsdCxuKXtsZXQgcj1lLmluZGV4T2YodCk7cmV0dXJuIHI+PTA/KHIrPW4/MTotMSxyPDA/cj1lLmxlbmd0aC0xOnIlPWUubGVuZ3RoLGVbcl0pOm51bGx9fUx0LklOU1RBTkNFPW5ldyBMdDtjb25zdCBOdD1PYmplY3QuZnJlZXplKChmdW5jdGlvbihlLHQpe2NvbnN0IG49c2V0VGltZW91dChlLmJpbmQodCksMCk7cmV0dXJue2Rpc3Bvc2UoKXtjbGVhclRpbWVvdXQobil9fX0pKTt2YXIgRXQ7IWZ1bmN0aW9uKGUpe2UuaXNDYW5jZWxsYXRpb25Ub2tlbj1mdW5jdGlvbih0KXtyZXR1cm4gdD09PWUuTm9uZXx8dD09PWUuQ2FuY2VsbGVkfHwodCBpbnN0YW5jZW9mIEF0fHwhKCF0fHwib2JqZWN0IiE9dHlwZW9mIHQpJiYoImJvb2xlYW4iPT10eXBlb2YgdC5pc0NhbmNlbGxhdGlvblJlcXVlc3RlZCYmImZ1bmN0aW9uIj09dHlwZW9mIHQub25DYW5jZWxsYXRpb25SZXF1ZXN0ZWQpKX0sZS5Ob25lPU9iamVjdC5mcmVlemUoe2lzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkOiExLG9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkOlQuTm9uZX0pLGUuQ2FuY2VsbGVkPU9iamVjdC5mcmVlemUoe2lzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkOiEwLG9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkOk50fSl9KEV0fHwoRXQ9e30pKTtjbGFzcyBBdHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2lzQ2FuY2VsbGVkPSExLHRoaXMuX2VtaXR0ZXI9bnVsbH1jYW5jZWwoKXt0aGlzLl9pc0NhbmNlbGxlZHx8KHRoaXMuX2lzQ2FuY2VsbGVkPSEwLHRoaXMuX2VtaXR0ZXImJih0aGlzLl9lbWl0dGVyLmZpcmUodm9pZCAwKSx0aGlzLmRpc3Bvc2UoKSkpfWdldCBpc0NhbmNlbGxhdGlvblJlcXVlc3RlZCgpe3JldHVybiB0aGlzLl9pc0NhbmNlbGxlZH1nZXQgb25DYW5jZWxsYXRpb25SZXF1ZXN0ZWQoKXtyZXR1cm4gdGhpcy5faXNDYW5jZWxsZWQ/TnQ6KHRoaXMuX2VtaXR0ZXJ8fCh0aGlzLl9lbWl0dGVyPW5ldyBVKSx0aGlzLl9lbWl0dGVyLmV2ZW50KX1kaXNwb3NlKCl7dGhpcy5fZW1pdHRlciYmKHRoaXMuX2VtaXR0ZXIuZGlzcG9zZSgpLHRoaXMuX2VtaXR0ZXI9bnVsbCl9fWNsYXNzIGt0e2NvbnN0cnVjdG9yKGUpe3RoaXMuX3Rva2VuPXZvaWQgMCx0aGlzLl9wYXJlbnRMaXN0ZW5lcj12b2lkIDAsdGhpcy5fcGFyZW50TGlzdGVuZXI9ZSYmZS5vbkNhbmNlbGxhdGlvblJlcXVlc3RlZCh0aGlzLmNhbmNlbCx0aGlzKX1nZXQgdG9rZW4oKXtyZXR1cm4gdGhpcy5fdG9rZW58fCh0aGlzLl90b2tlbj1uZXcgQXQpLHRoaXMuX3Rva2VufWNhbmNlbCgpe3RoaXMuX3Rva2VuP3RoaXMuX3Rva2VuIGluc3RhbmNlb2YgQXQmJnRoaXMuX3Rva2VuLmNhbmNlbCgpOnRoaXMuX3Rva2VuPUV0LkNhbmNlbGxlZH1kaXNwb3NlKGU9ITEpe2UmJnRoaXMuY2FuY2VsKCksdGhpcy5fcGFyZW50TGlzdGVuZXImJnRoaXMuX3BhcmVudExpc3RlbmVyLmRpc3Bvc2UoKSx0aGlzLl90b2tlbj90aGlzLl90b2tlbiBpbnN0YW5jZW9mIEF0JiZ0aGlzLl90b2tlbi5kaXNwb3NlKCk6dGhpcy5fdG9rZW49RXQuTm9uZX19Y2xhc3MgTXR7Y29uc3RydWN0b3IoKXt0aGlzLl9rZXlDb2RlVG9TdHI9W10sdGhpcy5fc3RyVG9LZXlDb2RlPU9iamVjdC5jcmVhdGUobnVsbCl9ZGVmaW5lKGUsdCl7dGhpcy5fa2V5Q29kZVRvU3RyW2VdPXQsdGhpcy5fc3RyVG9LZXlDb2RlW3QudG9Mb3dlckNhc2UoKV09ZX1rZXlDb2RlVG9TdHIoZSl7cmV0dXJuIHRoaXMuX2tleUNvZGVUb1N0cltlXX1zdHJUb0tleUNvZGUoZSl7cmV0dXJuIHRoaXMuX3N0clRvS2V5Q29kZVtlLnRvTG93ZXJDYXNlKCldfHwwfX1jb25zdCBSdD1uZXcgTXQseHQ9bmV3IE10LEl0PW5ldyBNdCxPdD1uZXcgQXJyYXkoMjMwKSxEdD1PYmplY3QuY3JlYXRlKG51bGwpLEt0PU9iamVjdC5jcmVhdGUobnVsbCk7dmFyIFR0OyFmdW5jdGlvbigpe2NvbnN0IGU9IiIsdD1bWzAsMSwwLCJOb25lIiwwLCJ1bmtub3duIiwwLCJWS19VTktOT1dOIixlLGVdLFswLDEsMSwiSHlwZXIiLDAsZSwwLGUsZSxlXSxbMCwxLDIsIlN1cGVyIiwwLGUsMCxlLGUsZV0sWzAsMSwzLCJGbiIsMCxlLDAsZSxlLGVdLFswLDEsNCwiRm5Mb2NrIiwwLGUsMCxlLGUsZV0sWzAsMSw1LCJTdXNwZW5kIiwwLGUsMCxlLGUsZV0sWzAsMSw2LCJSZXN1bWUiLDAsZSwwLGUsZSxlXSxbMCwxLDcsIlR1cmJvIiwwLGUsMCxlLGUsZV0sWzAsMSw4LCJTbGVlcCIsMCxlLDAsIlZLX1NMRUVQIixlLGVdLFswLDEsOSwiV2FrZVVwIiwwLGUsMCxlLGUsZV0sWzMxLDAsMTAsIktleUEiLDMxLCJBIiw2NSwiVktfQSIsZSxlXSxbMzIsMCwxMSwiS2V5QiIsMzIsIkIiLDY2LCJWS19CIixlLGVdLFszMywwLDEyLCJLZXlDIiwzMywiQyIsNjcsIlZLX0MiLGUsZV0sWzM0LDAsMTMsIktleUQiLDM0LCJEIiw2OCwiVktfRCIsZSxlXSxbMzUsMCwxNCwiS2V5RSIsMzUsIkUiLDY5LCJWS19FIixlLGVdLFszNiwwLDE1LCJLZXlGIiwzNiwiRiIsNzAsIlZLX0YiLGUsZV0sWzM3LDAsMTYsIktleUciLDM3LCJHIiw3MSwiVktfRyIsZSxlXSxbMzgsMCwxNywiS2V5SCIsMzgsIkgiLDcyLCJWS19IIixlLGVdLFszOSwwLDE4LCJLZXlJIiwzOSwiSSIsNzMsIlZLX0kiLGUsZV0sWzQwLDAsMTksIktleUoiLDQwLCJKIiw3NCwiVktfSiIsZSxlXSxbNDEsMCwyMCwiS2V5SyIsNDEsIksiLDc1LCJWS19LIixlLGVdLFs0MiwwLDIxLCJLZXlMIiw0MiwiTCIsNzYsIlZLX0wiLGUsZV0sWzQzLDAsMjIsIktleU0iLDQzLCJNIiw3NywiVktfTSIsZSxlXSxbNDQsMCwyMywiS2V5TiIsNDQsIk4iLDc4LCJWS19OIixlLGVdLFs0NSwwLDI0LCJLZXlPIiw0NSwiTyIsNzksIlZLX08iLGUsZV0sWzQ2LDAsMjUsIktleVAiLDQ2LCJQIiw4MCwiVktfUCIsZSxlXSxbNDcsMCwyNiwiS2V5USIsNDcsIlEiLDgxLCJWS19RIixlLGVdLFs0OCwwLDI3LCJLZXlSIiw0OCwiUiIsODIsIlZLX1IiLGUsZV0sWzQ5LDAsMjgsIktleVMiLDQ5LCJTIiw4MywiVktfUyIsZSxlXSxbNTAsMCwyOSwiS2V5VCIsNTAsIlQiLDg0LCJWS19UIixlLGVdLFs1MSwwLDMwLCJLZXlVIiw1MSwiVSIsODUsIlZLX1UiLGUsZV0sWzUyLDAsMzEsIktleVYiLDUyLCJWIiw4NiwiVktfViIsZSxlXSxbNTMsMCwzMiwiS2V5VyIsNTMsIlciLDg3LCJWS19XIixlLGVdLFs1NCwwLDMzLCJLZXlYIiw1NCwiWCIsODgsIlZLX1giLGUsZV0sWzU1LDAsMzQsIktleVkiLDU1LCJZIiw4OSwiVktfWSIsZSxlXSxbNTYsMCwzNSwiS2V5WiIsNTYsIloiLDkwLCJWS19aIixlLGVdLFsyMiwwLDM2LCJEaWdpdDEiLDIyLCIxIiw0OSwiVktfMSIsZSxlXSxbMjMsMCwzNywiRGlnaXQyIiwyMywiMiIsNTAsIlZLXzIiLGUsZV0sWzI0LDAsMzgsIkRpZ2l0MyIsMjQsIjMiLDUxLCJWS18zIixlLGVdLFsyNSwwLDM5LCJEaWdpdDQiLDI1LCI0Iiw1MiwiVktfNCIsZSxlXSxbMjYsMCw0MCwiRGlnaXQ1IiwyNiwiNSIsNTMsIlZLXzUiLGUsZV0sWzI3LDAsNDEsIkRpZ2l0NiIsMjcsIjYiLDU0LCJWS182IixlLGVdLFsyOCwwLDQyLCJEaWdpdDciLDI4LCI3Iiw1NSwiVktfNyIsZSxlXSxbMjksMCw0MywiRGlnaXQ4IiwyOSwiOCIsNTYsIlZLXzgiLGUsZV0sWzMwLDAsNDQsIkRpZ2l0OSIsMzAsIjkiLDU3LCJWS185IixlLGVdLFsyMSwwLDQ1LCJEaWdpdDAiLDIxLCIwIiw0OCwiVktfMCIsZSxlXSxbMywxLDQ2LCJFbnRlciIsMywiRW50ZXIiLDEzLCJWS19SRVRVUk4iLGUsZV0sWzksMSw0NywiRXNjYXBlIiw5LCJFc2NhcGUiLDI3LCJWS19FU0NBUEUiLGUsZV0sWzEsMSw0OCwiQmFja3NwYWNlIiwxLCJCYWNrc3BhY2UiLDgsIlZLX0JBQ0siLGUsZV0sWzIsMSw0OSwiVGFiIiwyLCJUYWIiLDksIlZLX1RBQiIsZSxlXSxbMTAsMSw1MCwiU3BhY2UiLDEwLCJTcGFjZSIsMzIsIlZLX1NQQUNFIixlLGVdLFs4MywwLDUxLCJNaW51cyIsODMsIi0iLDE4OSwiVktfT0VNX01JTlVTIiwiLSIsIk9FTV9NSU5VUyJdLFs4MSwwLDUyLCJFcXVhbCIsODEsIj0iLDE4NywiVktfT0VNX1BMVVMiLCI9IiwiT0VNX1BMVVMiXSxbODcsMCw1MywiQnJhY2tldExlZnQiLDg3LCJbIiwyMTksIlZLX09FTV80IiwiWyIsIk9FTV80Il0sWzg5LDAsNTQsIkJyYWNrZXRSaWdodCIsODksIl0iLDIyMSwiVktfT0VNXzYiLCJdIiwiT0VNXzYiXSxbODgsMCw1NSwiQmFja3NsYXNoIiw4OCwiXFwiLDIyMCwiVktfT0VNXzUiLCJcXCIsIk9FTV81Il0sWzAsMCw1NiwiSW50bEhhc2giLDAsZSwwLGUsZSxlXSxbODAsMCw1NywiU2VtaWNvbG9uIiw4MCwiOyIsMTg2LCJWS19PRU1fMSIsIjsiLCJPRU1fMSJdLFs5MCwwLDU4LCJRdW90ZSIsOTAsIiciLDIyMiwiVktfT0VNXzciLCInIiwiT0VNXzciXSxbODYsMCw1OSwiQmFja3F1b3RlIiw4NiwiYCIsMTkyLCJWS19PRU1fMyIsImAiLCJPRU1fMyJdLFs4MiwwLDYwLCJDb21tYSIsODIsIiwiLDE4OCwiVktfT0VNX0NPTU1BIiwiLCIsIk9FTV9DT01NQSJdLFs4NCwwLDYxLCJQZXJpb2QiLDg0LCIuIiwxOTAsIlZLX09FTV9QRVJJT0QiLCIuIiwiT0VNX1BFUklPRCJdLFs4NSwwLDYyLCJTbGFzaCIsODUsIi8iLDE5MSwiVktfT0VNXzIiLCIvIiwiT0VNXzIiXSxbOCwxLDYzLCJDYXBzTG9jayIsOCwiQ2Fwc0xvY2siLDIwLCJWS19DQVBJVEFMIixlLGVdLFs1OSwxLDY0LCJGMSIsNTksIkYxIiwxMTIsIlZLX0YxIixlLGVdLFs2MCwxLDY1LCJGMiIsNjAsIkYyIiwxMTMsIlZLX0YyIixlLGVdLFs2MSwxLDY2LCJGMyIsNjEsIkYzIiwxMTQsIlZLX0YzIixlLGVdLFs2MiwxLDY3LCJGNCIsNjIsIkY0IiwxMTUsIlZLX0Y0IixlLGVdLFs2MywxLDY4LCJGNSIsNjMsIkY1IiwxMTYsIlZLX0Y1IixlLGVdLFs2NCwxLDY5LCJGNiIsNjQsIkY2IiwxMTcsIlZLX0Y2IixlLGVdLFs2NSwxLDcwLCJGNyIsNjUsIkY3IiwxMTgsIlZLX0Y3IixlLGVdLFs2NiwxLDcxLCJGOCIsNjYsIkY4IiwxMTksIlZLX0Y4IixlLGVdLFs2NywxLDcyLCJGOSIsNjcsIkY5IiwxMjAsIlZLX0Y5IixlLGVdLFs2OCwxLDczLCJGMTAiLDY4LCJGMTAiLDEyMSwiVktfRjEwIixlLGVdLFs2OSwxLDc0LCJGMTEiLDY5LCJGMTEiLDEyMiwiVktfRjExIixlLGVdLFs3MCwxLDc1LCJGMTIiLDcwLCJGMTIiLDEyMywiVktfRjEyIixlLGVdLFswLDEsNzYsIlByaW50U2NyZWVuIiwwLGUsMCxlLGUsZV0sWzc5LDEsNzcsIlNjcm9sbExvY2siLDc5LCJTY3JvbGxMb2NrIiwxNDUsIlZLX1NDUk9MTCIsZSxlXSxbNywxLDc4LCJQYXVzZSIsNywiUGF1c2VCcmVhayIsMTksIlZLX1BBVVNFIixlLGVdLFsxOSwxLDc5LCJJbnNlcnQiLDE5LCJJbnNlcnQiLDQ1LCJWS19JTlNFUlQiLGUsZV0sWzE0LDEsODAsIkhvbWUiLDE0LCJIb21lIiwzNiwiVktfSE9NRSIsZSxlXSxbMTEsMSw4MSwiUGFnZVVwIiwxMSwiUGFnZVVwIiwzMywiVktfUFJJT1IiLGUsZV0sWzIwLDEsODIsIkRlbGV0ZSIsMjAsIkRlbGV0ZSIsNDYsIlZLX0RFTEVURSIsZSxlXSxbMTMsMSw4MywiRW5kIiwxMywiRW5kIiwzNSwiVktfRU5EIixlLGVdLFsxMiwxLDg0LCJQYWdlRG93biIsMTIsIlBhZ2VEb3duIiwzNCwiVktfTkVYVCIsZSxlXSxbMTcsMSw4NSwiQXJyb3dSaWdodCIsMTcsIlJpZ2h0QXJyb3ciLDM5LCJWS19SSUdIVCIsIlJpZ2h0IixlXSxbMTUsMSw4NiwiQXJyb3dMZWZ0IiwxNSwiTGVmdEFycm93IiwzNywiVktfTEVGVCIsIkxlZnQiLGVdLFsxOCwxLDg3LCJBcnJvd0Rvd24iLDE4LCJEb3duQXJyb3ciLDQwLCJWS19ET1dOIiwiRG93biIsZV0sWzE2LDEsODgsIkFycm93VXAiLDE2LCJVcEFycm93IiwzOCwiVktfVVAiLCJVcCIsZV0sWzc4LDEsODksIk51bUxvY2siLDc4LCJOdW1Mb2NrIiwxNDQsIlZLX05VTUxPQ0siLGUsZV0sWzEwOCwxLDkwLCJOdW1wYWREaXZpZGUiLDEwOCwiTnVtUGFkX0RpdmlkZSIsMTExLCJWS19ESVZJREUiLGUsZV0sWzEwMywxLDkxLCJOdW1wYWRNdWx0aXBseSIsMTAzLCJOdW1QYWRfTXVsdGlwbHkiLDEwNiwiVktfTVVMVElQTFkiLGUsZV0sWzEwNiwxLDkyLCJOdW1wYWRTdWJ0cmFjdCIsMTA2LCJOdW1QYWRfU3VidHJhY3QiLDEwOSwiVktfU1VCVFJBQ1QiLGUsZV0sWzEwNCwxLDkzLCJOdW1wYWRBZGQiLDEwNCwiTnVtUGFkX0FkZCIsMTA3LCJWS19BREQiLGUsZV0sWzMsMSw5NCwiTnVtcGFkRW50ZXIiLDMsZSwwLGUsZSxlXSxbOTQsMSw5NSwiTnVtcGFkMSIsOTQsIk51bVBhZDEiLDk3LCJWS19OVU1QQUQxIixlLGVdLFs5NSwxLDk2LCJOdW1wYWQyIiw5NSwiTnVtUGFkMiIsOTgsIlZLX05VTVBBRDIiLGUsZV0sWzk2LDEsOTcsIk51bXBhZDMiLDk2LCJOdW1QYWQzIiw5OSwiVktfTlVNUEFEMyIsZSxlXSxbOTcsMSw5OCwiTnVtcGFkNCIsOTcsIk51bVBhZDQiLDEwMCwiVktfTlVNUEFENCIsZSxlXSxbOTgsMSw5OSwiTnVtcGFkNSIsOTgsIk51bVBhZDUiLDEwMSwiVktfTlVNUEFENSIsZSxlXSxbOTksMSwxMDAsIk51bXBhZDYiLDk5LCJOdW1QYWQ2IiwxMDIsIlZLX05VTVBBRDYiLGUsZV0sWzEwMCwxLDEwMSwiTnVtcGFkNyIsMTAwLCJOdW1QYWQ3IiwxMDMsIlZLX05VTVBBRDciLGUsZV0sWzEwMSwxLDEwMiwiTnVtcGFkOCIsMTAxLCJOdW1QYWQ4IiwxMDQsIlZLX05VTVBBRDgiLGUsZV0sWzEwMiwxLDEwMywiTnVtcGFkOSIsMTAyLCJOdW1QYWQ5IiwxMDUsIlZLX05VTVBBRDkiLGUsZV0sWzkzLDEsMTA0LCJOdW1wYWQwIiw5MywiTnVtUGFkMCIsOTYsIlZLX05VTVBBRDAiLGUsZV0sWzEwNywxLDEwNSwiTnVtcGFkRGVjaW1hbCIsMTA3LCJOdW1QYWRfRGVjaW1hbCIsMTEwLCJWS19ERUNJTUFMIixlLGVdLFs5MiwwLDEwNiwiSW50bEJhY2tzbGFzaCIsOTIsIk9FTV8xMDIiLDIyNiwiVktfT0VNXzEwMiIsZSxlXSxbNTgsMSwxMDcsIkNvbnRleHRNZW51Iiw1OCwiQ29udGV4dE1lbnUiLDkzLGUsZSxlXSxbMCwxLDEwOCwiUG93ZXIiLDAsZSwwLGUsZSxlXSxbMCwxLDEwOSwiTnVtcGFkRXF1YWwiLDAsZSwwLGUsZSxlXSxbNzEsMSwxMTAsIkYxMyIsNzEsIkYxMyIsMTI0LCJWS19GMTMiLGUsZV0sWzcyLDEsMTExLCJGMTQiLDcyLCJGMTQiLDEyNSwiVktfRjE0IixlLGVdLFs3MywxLDExMiwiRjE1Iiw3MywiRjE1IiwxMjYsIlZLX0YxNSIsZSxlXSxbNzQsMSwxMTMsIkYxNiIsNzQsIkYxNiIsMTI3LCJWS19GMTYiLGUsZV0sWzc1LDEsMTE0LCJGMTciLDc1LCJGMTciLDEyOCwiVktfRjE3IixlLGVdLFs3NiwxLDExNSwiRjE4Iiw3NiwiRjE4IiwxMjksIlZLX0YxOCIsZSxlXSxbNzcsMSwxMTYsIkYxOSIsNzcsIkYxOSIsMTMwLCJWS19GMTkiLGUsZV0sWzAsMSwxMTcsIkYyMCIsMCxlLDAsIlZLX0YyMCIsZSxlXSxbMCwxLDExOCwiRjIxIiwwLGUsMCwiVktfRjIxIixlLGVdLFswLDEsMTE5LCJGMjIiLDAsZSwwLCJWS19GMjIiLGUsZV0sWzAsMSwxMjAsIkYyMyIsMCxlLDAsIlZLX0YyMyIsZSxlXSxbMCwxLDEyMSwiRjI0IiwwLGUsMCwiVktfRjI0IixlLGVdLFswLDEsMTIyLCJPcGVuIiwwLGUsMCxlLGUsZV0sWzAsMSwxMjMsIkhlbHAiLDAsZSwwLGUsZSxlXSxbMCwxLDEyNCwiU2VsZWN0IiwwLGUsMCxlLGUsZV0sWzAsMSwxMjUsIkFnYWluIiwwLGUsMCxlLGUsZV0sWzAsMSwxMjYsIlVuZG8iLDAsZSwwLGUsZSxlXSxbMCwxLDEyNywiQ3V0IiwwLGUsMCxlLGUsZV0sWzAsMSwxMjgsIkNvcHkiLDAsZSwwLGUsZSxlXSxbMCwxLDEyOSwiUGFzdGUiLDAsZSwwLGUsZSxlXSxbMCwxLDEzMCwiRmluZCIsMCxlLDAsZSxlLGVdLFswLDEsMTMxLCJBdWRpb1ZvbHVtZU11dGUiLDExMiwiQXVkaW9Wb2x1bWVNdXRlIiwxNzMsIlZLX1ZPTFVNRV9NVVRFIixlLGVdLFswLDEsMTMyLCJBdWRpb1ZvbHVtZVVwIiwxMTMsIkF1ZGlvVm9sdW1lVXAiLDE3NSwiVktfVk9MVU1FX1VQIixlLGVdLFswLDEsMTMzLCJBdWRpb1ZvbHVtZURvd24iLDExNCwiQXVkaW9Wb2x1bWVEb3duIiwxNzQsIlZLX1ZPTFVNRV9ET1dOIixlLGVdLFsxMDUsMSwxMzQsIk51bXBhZENvbW1hIiwxMDUsIk51bVBhZF9TZXBhcmF0b3IiLDEwOCwiVktfU0VQQVJBVE9SIixlLGVdLFsxMTAsMCwxMzUsIkludGxSbyIsMTEwLCJBQk5UX0MxIiwxOTMsIlZLX0FCTlRfQzEiLGUsZV0sWzAsMSwxMzYsIkthbmFNb2RlIiwwLGUsMCxlLGUsZV0sWzAsMCwxMzcsIkludGxZZW4iLDAsZSwwLGUsZSxlXSxbMCwxLDEzOCwiQ29udmVydCIsMCxlLDAsZSxlLGVdLFswLDEsMTM5LCJOb25Db252ZXJ0IiwwLGUsMCxlLGUsZV0sWzAsMSwxNDAsIkxhbmcxIiwwLGUsMCxlLGUsZV0sWzAsMSwxNDEsIkxhbmcyIiwwLGUsMCxlLGUsZV0sWzAsMSwxNDIsIkxhbmczIiwwLGUsMCxlLGUsZV0sWzAsMSwxNDMsIkxhbmc0IiwwLGUsMCxlLGUsZV0sWzAsMSwxNDQsIkxhbmc1IiwwLGUsMCxlLGUsZV0sWzAsMSwxNDUsIkFib3J0IiwwLGUsMCxlLGUsZV0sWzAsMSwxNDYsIlByb3BzIiwwLGUsMCxlLGUsZV0sWzAsMSwxNDcsIk51bXBhZFBhcmVuTGVmdCIsMCxlLDAsZSxlLGVdLFswLDEsMTQ4LCJOdW1wYWRQYXJlblJpZ2h0IiwwLGUsMCxlLGUsZV0sWzAsMSwxNDksIk51bXBhZEJhY2tzcGFjZSIsMCxlLDAsZSxlLGVdLFswLDEsMTUwLCJOdW1wYWRNZW1vcnlTdG9yZSIsMCxlLDAsZSxlLGVdLFswLDEsMTUxLCJOdW1wYWRNZW1vcnlSZWNhbGwiLDAsZSwwLGUsZSxlXSxbMCwxLDE1MiwiTnVtcGFkTWVtb3J5Q2xlYXIiLDAsZSwwLGUsZSxlXSxbMCwxLDE1MywiTnVtcGFkTWVtb3J5QWRkIiwwLGUsMCxlLGUsZV0sWzAsMSwxNTQsIk51bXBhZE1lbW9yeVN1YnRyYWN0IiwwLGUsMCxlLGUsZV0sWzAsMSwxNTUsIk51bXBhZENsZWFyIiwxMjYsIkNsZWFyIiwxMiwiVktfQ0xFQVIiLGUsZV0sWzAsMSwxNTYsIk51bXBhZENsZWFyRW50cnkiLDAsZSwwLGUsZSxlXSxbNSwxLDAsZSw1LCJDdHJsIiwxNywiVktfQ09OVFJPTCIsZSxlXSxbNCwxLDAsZSw0LCJTaGlmdCIsMTYsIlZLX1NISUZUIixlLGVdLFs2LDEsMCxlLDYsIkFsdCIsMTgsIlZLX01FTlUiLGUsZV0sWzU3LDEsMCxlLDU3LCJNZXRhIiwwLCJWS19DT01NQU5EIixlLGVdLFs1LDEsMTU3LCJDb250cm9sTGVmdCIsNSxlLDAsIlZLX0xDT05UUk9MIixlLGVdLFs0LDEsMTU4LCJTaGlmdExlZnQiLDQsZSwwLCJWS19MU0hJRlQiLGUsZV0sWzYsMSwxNTksIkFsdExlZnQiLDYsZSwwLCJWS19MTUVOVSIsZSxlXSxbNTcsMSwxNjAsIk1ldGFMZWZ0Iiw1NyxlLDAsIlZLX0xXSU4iLGUsZV0sWzUsMSwxNjEsIkNvbnRyb2xSaWdodCIsNSxlLDAsIlZLX1JDT05UUk9MIixlLGVdLFs0LDEsMTYyLCJTaGlmdFJpZ2h0Iiw0LGUsMCwiVktfUlNISUZUIixlLGVdLFs2LDEsMTYzLCJBbHRSaWdodCIsNixlLDAsIlZLX1JNRU5VIixlLGVdLFs1NywxLDE2NCwiTWV0YVJpZ2h0Iiw1NyxlLDAsIlZLX1JXSU4iLGUsZV0sWzAsMSwxNjUsIkJyaWdodG5lc3NVcCIsMCxlLDAsZSxlLGVdLFswLDEsMTY2LCJCcmlnaHRuZXNzRG93biIsMCxlLDAsZSxlLGVdLFswLDEsMTY3LCJNZWRpYVBsYXkiLDAsZSwwLGUsZSxlXSxbMCwxLDE2OCwiTWVkaWFSZWNvcmQiLDAsZSwwLGUsZSxlXSxbMCwxLDE2OSwiTWVkaWFGYXN0Rm9yd2FyZCIsMCxlLDAsZSxlLGVdLFswLDEsMTcwLCJNZWRpYVJld2luZCIsMCxlLDAsZSxlLGVdLFsxMTQsMSwxNzEsIk1lZGlhVHJhY2tOZXh0IiwxMTksIk1lZGlhVHJhY2tOZXh0IiwxNzYsIlZLX01FRElBX05FWFRfVFJBQ0siLGUsZV0sWzExNSwxLDE3MiwiTWVkaWFUcmFja1ByZXZpb3VzIiwxMjAsIk1lZGlhVHJhY2tQcmV2aW91cyIsMTc3LCJWS19NRURJQV9QUkVWX1RSQUNLIixlLGVdLFsxMTYsMSwxNzMsIk1lZGlhU3RvcCIsMTIxLCJNZWRpYVN0b3AiLDE3OCwiVktfTUVESUFfU1RPUCIsZSxlXSxbMCwxLDE3NCwiRWplY3QiLDAsZSwwLGUsZSxlXSxbMTE3LDEsMTc1LCJNZWRpYVBsYXlQYXVzZSIsMTIyLCJNZWRpYVBsYXlQYXVzZSIsMTc5LCJWS19NRURJQV9QTEFZX1BBVVNFIixlLGVdLFswLDEsMTc2LCJNZWRpYVNlbGVjdCIsMTIzLCJMYXVuY2hNZWRpYVBsYXllciIsMTgxLCJWS19NRURJQV9MQVVOQ0hfTUVESUFfU0VMRUNUIixlLGVdLFswLDEsMTc3LCJMYXVuY2hNYWlsIiwxMjQsIkxhdW5jaE1haWwiLDE4MCwiVktfTUVESUFfTEFVTkNIX01BSUwiLGUsZV0sWzAsMSwxNzgsIkxhdW5jaEFwcDIiLDEyNSwiTGF1bmNoQXBwMiIsMTgzLCJWS19NRURJQV9MQVVOQ0hfQVBQMiIsZSxlXSxbMCwxLDE3OSwiTGF1bmNoQXBwMSIsMCxlLDAsIlZLX01FRElBX0xBVU5DSF9BUFAxIixlLGVdLFswLDEsMTgwLCJTZWxlY3RUYXNrIiwwLGUsMCxlLGUsZV0sWzAsMSwxODEsIkxhdW5jaFNjcmVlblNhdmVyIiwwLGUsMCxlLGUsZV0sWzAsMSwxODIsIkJyb3dzZXJTZWFyY2giLDExNSwiQnJvd3NlclNlYXJjaCIsMTcwLCJWS19CUk9XU0VSX1NFQVJDSCIsZSxlXSxbMCwxLDE4MywiQnJvd3NlckhvbWUiLDExNiwiQnJvd3NlckhvbWUiLDE3MiwiVktfQlJPV1NFUl9IT01FIixlLGVdLFsxMTIsMSwxODQsIkJyb3dzZXJCYWNrIiwxMTcsIkJyb3dzZXJCYWNrIiwxNjYsIlZLX0JST1dTRVJfQkFDSyIsZSxlXSxbMTEzLDEsMTg1LCJCcm93c2VyRm9yd2FyZCIsMTE4LCJCcm93c2VyRm9yd2FyZCIsMTY3LCJWS19CUk9XU0VSX0ZPUldBUkQiLGUsZV0sWzAsMSwxODYsIkJyb3dzZXJTdG9wIiwwLGUsMCwiVktfQlJPV1NFUl9TVE9QIixlLGVdLFswLDEsMTg3LCJCcm93c2VyUmVmcmVzaCIsMCxlLDAsIlZLX0JST1dTRVJfUkVGUkVTSCIsZSxlXSxbMCwxLDE4OCwiQnJvd3NlckZhdm9yaXRlcyIsMCxlLDAsIlZLX0JST1dTRVJfRkFWT1JJVEVTIixlLGVdLFswLDEsMTg5LCJab29tVG9nZ2xlIiwwLGUsMCxlLGUsZV0sWzAsMSwxOTAsIk1haWxSZXBseSIsMCxlLDAsZSxlLGVdLFswLDEsMTkxLCJNYWlsRm9yd2FyZCIsMCxlLDAsZSxlLGVdLFswLDEsMTkyLCJNYWlsU2VuZCIsMCxlLDAsZSxlLGVdLFsxMDksMSwwLGUsMTA5LCJLZXlJbkNvbXBvc2l0aW9uIiwyMjksZSxlLGVdLFsxMTEsMSwwLGUsMTExLCJBQk5UX0MyIiwxOTQsIlZLX0FCTlRfQzIiLGUsZV0sWzkxLDEsMCxlLDkxLCJPRU1fOCIsMjIzLCJWS19PRU1fOCIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfS0FOQSIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfSEFOR1VMIixlLGVdLFswLDEsMCxlLDAsZSwwLCJWS19KVU5KQSIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfRklOQUwiLGUsZV0sWzAsMSwwLGUsMCxlLDAsIlZLX0hBTkpBIixlLGVdLFswLDEsMCxlLDAsZSwwLCJWS19LQU5KSSIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfQ09OVkVSVCIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfTk9OQ09OVkVSVCIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfQUNDRVBUIixlLGVdLFswLDEsMCxlLDAsZSwwLCJWS19NT0RFQ0hBTkdFIixlLGVdLFswLDEsMCxlLDAsZSwwLCJWS19TRUxFQ1QiLGUsZV0sWzAsMSwwLGUsMCxlLDAsIlZLX1BSSU5UIixlLGVdLFswLDEsMCxlLDAsZSwwLCJWS19FWEVDVVRFIixlLGVdLFswLDEsMCxlLDAsZSwwLCJWS19TTkFQU0hPVCIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfSEVMUCIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfQVBQUyIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfUFJPQ0VTU0tFWSIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfUEFDS0VUIixlLGVdLFswLDEsMCxlLDAsZSwwLCJWS19EQkVfU0JDU0NIQVIiLGUsZV0sWzAsMSwwLGUsMCxlLDAsIlZLX0RCRV9EQkNTQ0hBUiIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfQVRUTiIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfQ1JTRUwiLGUsZV0sWzAsMSwwLGUsMCxlLDAsIlZLX0VYU0VMIixlLGVdLFswLDEsMCxlLDAsZSwwLCJWS19FUkVPRiIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfUExBWSIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfWk9PTSIsZSxlXSxbMCwxLDAsZSwwLGUsMCwiVktfTk9OQU1FIixlLGVdLFswLDEsMCxlLDAsZSwwLCJWS19QQTEiLGUsZV0sWzAsMSwwLGUsMCxlLDAsIlZLX09FTV9DTEVBUiIsZSxlXV07bGV0IG49W10scj1bXTtmb3IoY29uc3QgZSBvZiB0KXtjb25zdFt0LGksbyxhLHMsbCxjLHUsaCxkXT1lO2lmKHJbb118fChyW29dPSEwLER0W2FdPW8sS3RbYS50b0xvd2VyQ2FzZSgpXT1vKSwhbltzXSl7aWYobltzXT0hMCwhbCl0aHJvdyBuZXcgRXJyb3IoYFN0cmluZyByZXByZXNlbnRhdGlvbiBtaXNzaW5nIGZvciBrZXkgY29kZSAke3N9IGFyb3VuZCBzY2FuIGNvZGUgJHthfWApO1J0LmRlZmluZShzLGwpLHh0LmRlZmluZShzLGh8fGwpLEl0LmRlZmluZShzLGR8fGh8fGwpfWMmJihPdFtjXT1zKX19KCksZnVuY3Rpb24oZSl7ZS50b1N0cmluZz1mdW5jdGlvbihlKXtyZXR1cm4gUnQua2V5Q29kZVRvU3RyKGUpfSxlLmZyb21TdHJpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuIFJ0LnN0clRvS2V5Q29kZShlKX0sZS50b1VzZXJTZXR0aW5nc1VTPWZ1bmN0aW9uKGUpe3JldHVybiB4dC5rZXlDb2RlVG9TdHIoZSl9LGUudG9Vc2VyU2V0dGluZ3NHZW5lcmFsPWZ1bmN0aW9uKGUpe3JldHVybiBJdC5rZXlDb2RlVG9TdHIoZSl9LGUuZnJvbVVzZXJTZXR0aW5ncz1mdW5jdGlvbihlKXtyZXR1cm4geHQuc3RyVG9LZXlDb2RlKGUpfHxJdC5zdHJUb0tleUNvZGUoZSl9LGUudG9FbGVjdHJvbkFjY2VsZXJhdG9yPWZ1bmN0aW9uKGUpe2lmKGU+PTkzJiZlPD0xMDgpcmV0dXJuIG51bGw7c3dpdGNoKGUpe2Nhc2UgMTY6cmV0dXJuIlVwIjtjYXNlIDE4OnJldHVybiJEb3duIjtjYXNlIDE1OnJldHVybiJMZWZ0IjtjYXNlIDE3OnJldHVybiJSaWdodCJ9cmV0dXJuIFJ0LmtleUNvZGVUb1N0cihlKX19KFR0fHwoVHQ9e30pKTtjbGFzcyBQdCBleHRlbmRzIGV0e2NvbnN0cnVjdG9yKGUsdCxuLHIpe3N1cGVyKGUsdCxuLHIpLHRoaXMuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyPWUsdGhpcy5zZWxlY3Rpb25TdGFydENvbHVtbj10LHRoaXMucG9zaXRpb25MaW5lTnVtYmVyPW4sdGhpcy5wb3NpdGlvbkNvbHVtbj1yfXRvU3RyaW5nKCl7cmV0dXJuIlsiK3RoaXMuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyKyIsIit0aGlzLnNlbGVjdGlvblN0YXJ0Q29sdW1uKyIgLT4gIit0aGlzLnBvc2l0aW9uTGluZU51bWJlcisiLCIrdGhpcy5wb3NpdGlvbkNvbHVtbisiXSJ9ZXF1YWxzU2VsZWN0aW9uKGUpe3JldHVybiBQdC5zZWxlY3Rpb25zRXF1YWwodGhpcyxlKX1zdGF0aWMgc2VsZWN0aW9uc0VxdWFsKGUsdCl7cmV0dXJuIGUuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyPT09dC5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXImJmUuc2VsZWN0aW9uU3RhcnRDb2x1bW49PT10LnNlbGVjdGlvblN0YXJ0Q29sdW1uJiZlLnBvc2l0aW9uTGluZU51bWJlcj09PXQucG9zaXRpb25MaW5lTnVtYmVyJiZlLnBvc2l0aW9uQ29sdW1uPT09dC5wb3NpdGlvbkNvbHVtbn1nZXREaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXI9PT10aGlzLnN0YXJ0TGluZU51bWJlciYmdGhpcy5zZWxlY3Rpb25TdGFydENvbHVtbj09PXRoaXMuc3RhcnRDb2x1bW4/MDoxfXNldEVuZFBvc2l0aW9uKGUsdCl7cmV0dXJuIDA9PT10aGlzLmdldERpcmVjdGlvbigpP25ldyBQdCh0aGlzLnN0YXJ0TGluZU51bWJlcix0aGlzLnN0YXJ0Q29sdW1uLGUsdCk6bmV3IFB0KGUsdCx0aGlzLnN0YXJ0TGluZU51bWJlcix0aGlzLnN0YXJ0Q29sdW1uKX1nZXRQb3NpdGlvbigpe3JldHVybiBuZXcgWGUodGhpcy5wb3NpdGlvbkxpbmVOdW1iZXIsdGhpcy5wb3NpdGlvbkNvbHVtbil9Z2V0U2VsZWN0aW9uU3RhcnQoKXtyZXR1cm4gbmV3IFhlKHRoaXMuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyLHRoaXMuc2VsZWN0aW9uU3RhcnRDb2x1bW4pfXNldFN0YXJ0UG9zaXRpb24oZSx0KXtyZXR1cm4gMD09PXRoaXMuZ2V0RGlyZWN0aW9uKCk/bmV3IFB0KGUsdCx0aGlzLmVuZExpbmVOdW1iZXIsdGhpcy5lbmRDb2x1bW4pOm5ldyBQdCh0aGlzLmVuZExpbmVOdW1iZXIsdGhpcy5lbmRDb2x1bW4sZSx0KX1zdGF0aWMgZnJvbVBvc2l0aW9ucyhlLHQ9ZSl7cmV0dXJuIG5ldyBQdChlLmxpbmVOdW1iZXIsZS5jb2x1bW4sdC5saW5lTnVtYmVyLHQuY29sdW1uKX1zdGF0aWMgZnJvbVJhbmdlKGUsdCl7cmV0dXJuIDA9PT10P25ldyBQdChlLnN0YXJ0TGluZU51bWJlcixlLnN0YXJ0Q29sdW1uLGUuZW5kTGluZU51bWJlcixlLmVuZENvbHVtbik6bmV3IFB0KGUuZW5kTGluZU51bWJlcixlLmVuZENvbHVtbixlLnN0YXJ0TGluZU51bWJlcixlLnN0YXJ0Q29sdW1uKX1zdGF0aWMgbGlmdFNlbGVjdGlvbihlKXtyZXR1cm4gbmV3IFB0KGUuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyLGUuc2VsZWN0aW9uU3RhcnRDb2x1bW4sZS5wb3NpdGlvbkxpbmVOdW1iZXIsZS5wb3NpdGlvbkNvbHVtbil9c3RhdGljIHNlbGVjdGlvbnNBcnJFcXVhbChlLHQpe2lmKGUmJiF0fHwhZSYmdClyZXR1cm4hMTtpZighZSYmIXQpcmV0dXJuITA7aWYoZS5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IG49MCxyPWUubGVuZ3RoO248cjtuKyspaWYoIXRoaXMuc2VsZWN0aW9uc0VxdWFsKGVbbl0sdFtuXSkpcmV0dXJuITE7cmV0dXJuITB9c3RhdGljIGlzSVNlbGVjdGlvbihlKXtyZXR1cm4gZSYmIm51bWJlciI9PXR5cGVvZiBlLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlciYmIm51bWJlciI9PXR5cGVvZiBlLnNlbGVjdGlvblN0YXJ0Q29sdW1uJiYibnVtYmVyIj09dHlwZW9mIGUucG9zaXRpb25MaW5lTnVtYmVyJiYibnVtYmVyIj09dHlwZW9mIGUucG9zaXRpb25Db2x1bW59c3RhdGljIGNyZWF0ZVdpdGhEaXJlY3Rpb24oZSx0LG4scixpKXtyZXR1cm4gMD09PWk/bmV3IFB0KGUsdCxuLHIpOm5ldyBQdChuLHIsZSx0KX19dmFyIEZ0LFZ0LEJ0LFV0LHF0LEh0LFd0LHp0LCR0LEd0LGp0LFl0LFp0LEp0LFF0LFh0LGVuLHRuLG5uLHJuLG9uLGFuLHNuLGxuLGNuLHVuLGhuLGRuLGZuLG1uLGduLHBuLENuLGJuLHduLF9uLHluLFNuLHZuLExuLE5uLEVuLEFuLGtuLE1uLFJuLHhuLEluLE9uLERuLEtuLFRuLFBuLEZuLFZuLEJuLFVuLHFuLEhuLFduLHpuLCRuLEduLGpuLFluLFpuLEpuPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLG8pe2Z1bmN0aW9uIGEoZSl7dHJ5e2woci5uZXh0KGUpKX1jYXRjaChlKXtvKGUpfX1mdW5jdGlvbiBzKGUpe3RyeXtsKHIudGhyb3coZSkpfWNhdGNoKGUpe28oZSl9fWZ1bmN0aW9uIGwoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKGEscyl9bCgocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfTtjbGFzcyBRbiBleHRlbmRzIG17Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKCksdGhpcy5fcmVnaXN0cnk9ZSx0aGlzLl9sYW5ndWFnZUlkPXQsdGhpcy5fZmFjdG9yeT1uLHRoaXMuX2lzRGlzcG9zZWQ9ITEsdGhpcy5fcmVzb2x2ZVByb21pc2U9bnVsbCx0aGlzLl9pc1Jlc29sdmVkPSExfWdldCBpc1Jlc29sdmVkKCl7cmV0dXJuIHRoaXMuX2lzUmVzb2x2ZWR9ZGlzcG9zZSgpe3RoaXMuX2lzRGlzcG9zZWQ9ITAsc3VwZXIuZGlzcG9zZSgpfXJlc29sdmUoKXtyZXR1cm4gSm4odGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fcmVzb2x2ZVByb21pc2V8fCh0aGlzLl9yZXNvbHZlUHJvbWlzZT10aGlzLl9jcmVhdGUoKSksdGhpcy5fcmVzb2x2ZVByb21pc2V9KSl9X2NyZWF0ZSgpe3JldHVybiBKbih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9eWllbGQgUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2ZhY3RvcnkuY3JlYXRlVG9rZW5pemF0aW9uU3VwcG9ydCgpKTt0aGlzLl9pc1Jlc29sdmVkPSEwLGUmJiF0aGlzLl9pc0Rpc3Bvc2VkJiZ0aGlzLl9yZWdpc3Rlcih0aGlzLl9yZWdpc3RyeS5yZWdpc3Rlcih0aGlzLl9sYW5ndWFnZUlkLGUpKX0pKX19Y2xhc3MgWG57Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuaWQ9ZSx0aGlzLmRlZmluaXRpb249dCx0aGlzLmRlc2NyaXB0aW9uPW4sWG4uX2FsbENvZGljb25zLnB1c2godGhpcyl9Z2V0IGNsYXNzTmFtZXMoKXtyZXR1cm4iY29kaWNvbiBjb2RpY29uLSIrdGhpcy5pZH1nZXQgY2xhc3NOYW1lc0FycmF5KCl7cmV0dXJuWyJjb2RpY29uIiwiY29kaWNvbi0iK3RoaXMuaWRdfWdldCBjc3NTZWxlY3Rvcigpe3JldHVybiIuY29kaWNvbi5jb2RpY29uLSIrdGhpcy5pZH1zdGF0aWMgZ2V0QWxsKCl7cmV0dXJuIFhuLl9hbGxDb2RpY29uc319WG4uX2FsbENvZGljb25zPVtdLFhuLmFkZD1uZXcgWG4oImFkZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2MCJ9KSxYbi5wbHVzPW5ldyBYbigicGx1cyIsWG4uYWRkLmRlZmluaXRpb24pLFhuLmdpc3ROZXc9bmV3IFhuKCJnaXN0LW5ldyIsWG4uYWRkLmRlZmluaXRpb24pLFhuLnJlcG9DcmVhdGU9bmV3IFhuKCJyZXBvLWNyZWF0ZSIsWG4uYWRkLmRlZmluaXRpb24pLFhuLmxpZ2h0YnVsYj1uZXcgWG4oImxpZ2h0YnVsYiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2MSJ9KSxYbi5saWdodEJ1bGI9bmV3IFhuKCJsaWdodC1idWxiIix7Zm9udENoYXJhY3RlcjoiXFxlYTYxIn0pLFhuLnJlcG89bmV3IFhuKCJyZXBvIix7Zm9udENoYXJhY3RlcjoiXFxlYTYyIn0pLFhuLnJlcG9EZWxldGU9bmV3IFhuKCJyZXBvLWRlbGV0ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2MiJ9KSxYbi5naXN0Rm9yaz1uZXcgWG4oImdpc3QtZm9yayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2MyJ9KSxYbi5yZXBvRm9ya2VkPW5ldyBYbigicmVwby1mb3JrZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjMifSksWG4uZ2l0UHVsbFJlcXVlc3Q9bmV3IFhuKCJnaXQtcHVsbC1yZXF1ZXN0Iix7Zm9udENoYXJhY3RlcjoiXFxlYTY0In0pLFhuLmdpdFB1bGxSZXF1ZXN0QWJhbmRvbmVkPW5ldyBYbigiZ2l0LXB1bGwtcmVxdWVzdC1hYmFuZG9uZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjQifSksWG4ucmVjb3JkS2V5cz1uZXcgWG4oInJlY29yZC1rZXlzIix7Zm9udENoYXJhY3RlcjoiXFxlYTY1In0pLFhuLmtleWJvYXJkPW5ldyBYbigia2V5Ym9hcmQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjUifSksWG4udGFnPW5ldyBYbigidGFnIix7Zm9udENoYXJhY3RlcjoiXFxlYTY2In0pLFhuLnRhZ0FkZD1uZXcgWG4oInRhZy1hZGQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjYifSksWG4udGFnUmVtb3ZlPW5ldyBYbigidGFnLXJlbW92ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2NiJ9KSxYbi5wZXJzb249bmV3IFhuKCJwZXJzb24iLHtmb250Q2hhcmFjdGVyOiJcXGVhNjcifSksWG4ucGVyc29uRm9sbG93PW5ldyBYbigicGVyc29uLWZvbGxvdyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2NyJ9KSxYbi5wZXJzb25PdXRsaW5lPW5ldyBYbigicGVyc29uLW91dGxpbmUiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjcifSksWG4ucGVyc29uRmlsbGVkPW5ldyBYbigicGVyc29uLWZpbGxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2NyJ9KSxYbi5naXRCcmFuY2g9bmV3IFhuKCJnaXQtYnJhbmNoIix7Zm9udENoYXJhY3RlcjoiXFxlYTY4In0pLFhuLmdpdEJyYW5jaENyZWF0ZT1uZXcgWG4oImdpdC1icmFuY2gtY3JlYXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYTY4In0pLFhuLmdpdEJyYW5jaERlbGV0ZT1uZXcgWG4oImdpdC1icmFuY2gtZGVsZXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYTY4In0pLFhuLnNvdXJjZUNvbnRyb2w9bmV3IFhuKCJzb3VyY2UtY29udHJvbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2OCJ9KSxYbi5taXJyb3I9bmV3IFhuKCJtaXJyb3IiLHtmb250Q2hhcmFjdGVyOiJcXGVhNjkifSksWG4ubWlycm9yUHVibGljPW5ldyBYbigibWlycm9yLXB1YmxpYyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2OSJ9KSxYbi5zdGFyPW5ldyBYbigic3RhciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2YSJ9KSxYbi5zdGFyQWRkPW5ldyBYbigic3Rhci1hZGQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNmEifSksWG4uc3RhckRlbGV0ZT1uZXcgWG4oInN0YXItZGVsZXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYTZhIn0pLFhuLnN0YXJFbXB0eT1uZXcgWG4oInN0YXItZW1wdHkiLHtmb250Q2hhcmFjdGVyOiJcXGVhNmEifSksWG4uY29tbWVudD1uZXcgWG4oImNvbW1lbnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNmIifSksWG4uY29tbWVudEFkZD1uZXcgWG4oImNvbW1lbnQtYWRkIix7Zm9udENoYXJhY3RlcjoiXFxlYTZiIn0pLFhuLmFsZXJ0PW5ldyBYbigiYWxlcnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNmMifSksWG4ud2FybmluZz1uZXcgWG4oIndhcm5pbmciLHtmb250Q2hhcmFjdGVyOiJcXGVhNmMifSksWG4uc2VhcmNoPW5ldyBYbigic2VhcmNoIix7Zm9udENoYXJhY3RlcjoiXFxlYTZkIn0pLFhuLnNlYXJjaFNhdmU9bmV3IFhuKCJzZWFyY2gtc2F2ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2ZCJ9KSxYbi5sb2dPdXQ9bmV3IFhuKCJsb2ctb3V0Iix7Zm9udENoYXJhY3RlcjoiXFxlYTZlIn0pLFhuLnNpZ25PdXQ9bmV3IFhuKCJzaWduLW91dCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2ZSJ9KSxYbi5sb2dJbj1uZXcgWG4oImxvZy1pbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE2ZiJ9KSxYbi5zaWduSW49bmV3IFhuKCJzaWduLWluIix7Zm9udENoYXJhY3RlcjoiXFxlYTZmIn0pLFhuLmV5ZT1uZXcgWG4oImV5ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3MCJ9KSxYbi5leWVVbndhdGNoPW5ldyBYbigiZXllLXVud2F0Y2giLHtmb250Q2hhcmFjdGVyOiJcXGVhNzAifSksWG4uZXllV2F0Y2g9bmV3IFhuKCJleWUtd2F0Y2giLHtmb250Q2hhcmFjdGVyOiJcXGVhNzAifSksWG4uY2lyY2xlRmlsbGVkPW5ldyBYbigiY2lyY2xlLWZpbGxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3MSJ9KSxYbi5wcmltaXRpdmVEb3Q9bmV3IFhuKCJwcmltaXRpdmUtZG90Iix7Zm9udENoYXJhY3RlcjoiXFxlYTcxIn0pLFhuLmNsb3NlRGlydHk9bmV3IFhuKCJjbG9zZS1kaXJ0eSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3MSJ9KSxYbi5kZWJ1Z0JyZWFrcG9pbnQ9bmV3IFhuKCJkZWJ1Zy1icmVha3BvaW50Iix7Zm9udENoYXJhY3RlcjoiXFxlYTcxIn0pLFhuLmRlYnVnQnJlYWtwb2ludERpc2FibGVkPW5ldyBYbigiZGVidWctYnJlYWtwb2ludC1kaXNhYmxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3MSJ9KSxYbi5kZWJ1Z0hpbnQ9bmV3IFhuKCJkZWJ1Zy1oaW50Iix7Zm9udENoYXJhY3RlcjoiXFxlYTcxIn0pLFhuLnByaW1pdGl2ZVNxdWFyZT1uZXcgWG4oInByaW1pdGl2ZS1zcXVhcmUiLHtmb250Q2hhcmFjdGVyOiJcXGVhNzIifSksWG4uZWRpdD1uZXcgWG4oImVkaXQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNzMifSksWG4ucGVuY2lsPW5ldyBYbigicGVuY2lsIix7Zm9udENoYXJhY3RlcjoiXFxlYTczIn0pLFhuLmluZm89bmV3IFhuKCJpbmZvIix7Zm9udENoYXJhY3RlcjoiXFxlYTc0In0pLFhuLmlzc3VlT3BlbmVkPW5ldyBYbigiaXNzdWUtb3BlbmVkIix7Zm9udENoYXJhY3RlcjoiXFxlYTc0In0pLFhuLmdpc3RQcml2YXRlPW5ldyBYbigiZ2lzdC1wcml2YXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYTc1In0pLFhuLmdpdEZvcmtQcml2YXRlPW5ldyBYbigiZ2l0LWZvcmstcHJpdmF0ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NSJ9KSxYbi5sb2NrPW5ldyBYbigibG9jayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NSJ9KSxYbi5taXJyb3JQcml2YXRlPW5ldyBYbigibWlycm9yLXByaXZhdGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhNzUifSksWG4uY2xvc2U9bmV3IFhuKCJjbG9zZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NiJ9KSxYbi5yZW1vdmVDbG9zZT1uZXcgWG4oInJlbW92ZS1jbG9zZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NiJ9KSxYbi54PW5ldyBYbigieCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NiJ9KSxYbi5yZXBvU3luYz1uZXcgWG4oInJlcG8tc3luYyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NyJ9KSxYbi5zeW5jPW5ldyBYbigic3luYyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3NyJ9KSxYbi5jbG9uZT1uZXcgWG4oImNsb25lIix7Zm9udENoYXJhY3RlcjoiXFxlYTc4In0pLFhuLmRlc2t0b3BEb3dubG9hZD1uZXcgWG4oImRlc2t0b3AtZG93bmxvYWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhNzgifSksWG4uYmVha2VyPW5ldyBYbigiYmVha2VyIix7Zm9udENoYXJhY3RlcjoiXFxlYTc5In0pLFhuLm1pY3Jvc2NvcGU9bmV3IFhuKCJtaWNyb3Njb3BlIix7Zm9udENoYXJhY3RlcjoiXFxlYTc5In0pLFhuLnZtPW5ldyBYbigidm0iLHtmb250Q2hhcmFjdGVyOiJcXGVhN2EifSksWG4uZGV2aWNlRGVza3RvcD1uZXcgWG4oImRldmljZS1kZXNrdG9wIix7Zm9udENoYXJhY3RlcjoiXFxlYTdhIn0pLFhuLmZpbGU9bmV3IFhuKCJmaWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYTdiIn0pLFhuLmZpbGVUZXh0PW5ldyBYbigiZmlsZS10ZXh0Iix7Zm9udENoYXJhY3RlcjoiXFxlYTdiIn0pLFhuLm1vcmU9bmV3IFhuKCJtb3JlIix7Zm9udENoYXJhY3RlcjoiXFxlYTdjIn0pLFhuLmVsbGlwc2lzPW5ldyBYbigiZWxsaXBzaXMiLHtmb250Q2hhcmFjdGVyOiJcXGVhN2MifSksWG4ua2ViYWJIb3Jpem9udGFsPW5ldyBYbigia2ViYWItaG9yaXpvbnRhbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3YyJ9KSxYbi5tYWlsUmVwbHk9bmV3IFhuKCJtYWlsLXJlcGx5Iix7Zm9udENoYXJhY3RlcjoiXFxlYTdkIn0pLFhuLnJlcGx5PW5ldyBYbigicmVwbHkiLHtmb250Q2hhcmFjdGVyOiJcXGVhN2QifSksWG4ub3JnYW5pemF0aW9uPW5ldyBYbigib3JnYW5pemF0aW9uIix7Zm9udENoYXJhY3RlcjoiXFxlYTdlIn0pLFhuLm9yZ2FuaXphdGlvbkZpbGxlZD1uZXcgWG4oIm9yZ2FuaXphdGlvbi1maWxsZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhN2UifSksWG4ub3JnYW5pemF0aW9uT3V0bGluZT1uZXcgWG4oIm9yZ2FuaXphdGlvbi1vdXRsaW5lIix7Zm9udENoYXJhY3RlcjoiXFxlYTdlIn0pLFhuLm5ld0ZpbGU9bmV3IFhuKCJuZXctZmlsZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE3ZiJ9KSxYbi5maWxlQWRkPW5ldyBYbigiZmlsZS1hZGQiLHtmb250Q2hhcmFjdGVyOiJcXGVhN2YifSksWG4ubmV3Rm9sZGVyPW5ldyBYbigibmV3LWZvbGRlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4MCJ9KSxYbi5maWxlRGlyZWN0b3J5Q3JlYXRlPW5ldyBYbigiZmlsZS1kaXJlY3RvcnktY3JlYXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYTgwIn0pLFhuLnRyYXNoPW5ldyBYbigidHJhc2giLHtmb250Q2hhcmFjdGVyOiJcXGVhODEifSksWG4udHJhc2hjYW49bmV3IFhuKCJ0cmFzaGNhbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4MSJ9KSxYbi5oaXN0b3J5PW5ldyBYbigiaGlzdG9yeSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4MiJ9KSxYbi5jbG9jaz1uZXcgWG4oImNsb2NrIix7Zm9udENoYXJhY3RlcjoiXFxlYTgyIn0pLFhuLmZvbGRlcj1uZXcgWG4oImZvbGRlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4MyJ9KSxYbi5maWxlRGlyZWN0b3J5PW5ldyBYbigiZmlsZS1kaXJlY3RvcnkiLHtmb250Q2hhcmFjdGVyOiJcXGVhODMifSksWG4uc3ltYm9sRm9sZGVyPW5ldyBYbigic3ltYm9sLWZvbGRlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4MyJ9KSxYbi5sb2dvR2l0aHViPW5ldyBYbigibG9nby1naXRodWIiLHtmb250Q2hhcmFjdGVyOiJcXGVhODQifSksWG4ubWFya0dpdGh1Yj1uZXcgWG4oIm1hcmstZ2l0aHViIix7Zm9udENoYXJhY3RlcjoiXFxlYTg0In0pLFhuLmdpdGh1Yj1uZXcgWG4oImdpdGh1YiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4NCJ9KSxYbi50ZXJtaW5hbD1uZXcgWG4oInRlcm1pbmFsIix7Zm9udENoYXJhY3RlcjoiXFxlYTg1In0pLFhuLmNvbnNvbGU9bmV3IFhuKCJjb25zb2xlIix7Zm9udENoYXJhY3RlcjoiXFxlYTg1In0pLFhuLnJlcGw9bmV3IFhuKCJyZXBsIix7Zm9udENoYXJhY3RlcjoiXFxlYTg1In0pLFhuLnphcD1uZXcgWG4oInphcCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4NiJ9KSxYbi5zeW1ib2xFdmVudD1uZXcgWG4oInN5bWJvbC1ldmVudCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4NiJ9KSxYbi5lcnJvcj1uZXcgWG4oImVycm9yIix7Zm9udENoYXJhY3RlcjoiXFxlYTg3In0pLFhuLnN0b3A9bmV3IFhuKCJzdG9wIix7Zm9udENoYXJhY3RlcjoiXFxlYTg3In0pLFhuLnZhcmlhYmxlPW5ldyBYbigidmFyaWFibGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhODgifSksWG4uc3ltYm9sVmFyaWFibGU9bmV3IFhuKCJzeW1ib2wtdmFyaWFibGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhODgifSksWG4uYXJyYXk9bmV3IFhuKCJhcnJheSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4YSJ9KSxYbi5zeW1ib2xBcnJheT1uZXcgWG4oInN5bWJvbC1hcnJheSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4YSJ9KSxYbi5zeW1ib2xNb2R1bGU9bmV3IFhuKCJzeW1ib2wtbW9kdWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYThiIn0pLFhuLnN5bWJvbFBhY2thZ2U9bmV3IFhuKCJzeW1ib2wtcGFja2FnZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4YiJ9KSxYbi5zeW1ib2xOYW1lc3BhY2U9bmV3IFhuKCJzeW1ib2wtbmFtZXNwYWNlIix7Zm9udENoYXJhY3RlcjoiXFxlYThiIn0pLFhuLnN5bWJvbE9iamVjdD1uZXcgWG4oInN5bWJvbC1vYmplY3QiLHtmb250Q2hhcmFjdGVyOiJcXGVhOGIifSksWG4uc3ltYm9sTWV0aG9kPW5ldyBYbigic3ltYm9sLW1ldGhvZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4YyJ9KSxYbi5zeW1ib2xGdW5jdGlvbj1uZXcgWG4oInN5bWJvbC1mdW5jdGlvbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4YyJ9KSxYbi5zeW1ib2xDb25zdHJ1Y3Rvcj1uZXcgWG4oInN5bWJvbC1jb25zdHJ1Y3RvciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE4YyJ9KSxYbi5zeW1ib2xCb29sZWFuPW5ldyBYbigic3ltYm9sLWJvb2xlYW4iLHtmb250Q2hhcmFjdGVyOiJcXGVhOGYifSksWG4uc3ltYm9sTnVsbD1uZXcgWG4oInN5bWJvbC1udWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYThmIn0pLFhuLnN5bWJvbE51bWVyaWM9bmV3IFhuKCJzeW1ib2wtbnVtZXJpYyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MCJ9KSxYbi5zeW1ib2xOdW1iZXI9bmV3IFhuKCJzeW1ib2wtbnVtYmVyIix7Zm9udENoYXJhY3RlcjoiXFxlYTkwIn0pLFhuLnN5bWJvbFN0cnVjdHVyZT1uZXcgWG4oInN5bWJvbC1zdHJ1Y3R1cmUiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTEifSksWG4uc3ltYm9sU3RydWN0PW5ldyBYbigic3ltYm9sLXN0cnVjdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MSJ9KSxYbi5zeW1ib2xQYXJhbWV0ZXI9bmV3IFhuKCJzeW1ib2wtcGFyYW1ldGVyIix7Zm9udENoYXJhY3RlcjoiXFxlYTkyIn0pLFhuLnN5bWJvbFR5cGVQYXJhbWV0ZXI9bmV3IFhuKCJzeW1ib2wtdHlwZS1wYXJhbWV0ZXIiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTIifSksWG4uc3ltYm9sS2V5PW5ldyBYbigic3ltYm9sLWtleSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5MyJ9KSxYbi5zeW1ib2xUZXh0PW5ldyBYbigic3ltYm9sLXRleHQiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTMifSksWG4uc3ltYm9sUmVmZXJlbmNlPW5ldyBYbigic3ltYm9sLXJlZmVyZW5jZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5NCJ9KSxYbi5nb1RvRmlsZT1uZXcgWG4oImdvLXRvLWZpbGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTQifSksWG4uc3ltYm9sRW51bT1uZXcgWG4oInN5bWJvbC1lbnVtIix7Zm9udENoYXJhY3RlcjoiXFxlYTk1In0pLFhuLnN5bWJvbFZhbHVlPW5ldyBYbigic3ltYm9sLXZhbHVlIix7Zm9udENoYXJhY3RlcjoiXFxlYTk1In0pLFhuLnN5bWJvbFJ1bGVyPW5ldyBYbigic3ltYm9sLXJ1bGVyIix7Zm9udENoYXJhY3RlcjoiXFxlYTk2In0pLFhuLnN5bWJvbFVuaXQ9bmV3IFhuKCJzeW1ib2wtdW5pdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5NiJ9KSxYbi5hY3RpdmF0ZUJyZWFrcG9pbnRzPW5ldyBYbigiYWN0aXZhdGUtYnJlYWtwb2ludHMiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTcifSksWG4uYXJjaGl2ZT1uZXcgWG4oImFyY2hpdmUiLHtmb250Q2hhcmFjdGVyOiJcXGVhOTgifSksWG4uYXJyb3dCb3RoPW5ldyBYbigiYXJyb3ctYm90aCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5OSJ9KSxYbi5hcnJvd0Rvd249bmV3IFhuKCJhcnJvdy1kb3duIix7Zm9udENoYXJhY3RlcjoiXFxlYTlhIn0pLFhuLmFycm93TGVmdD1uZXcgWG4oImFycm93LWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhOWIifSksWG4uYXJyb3dSaWdodD1uZXcgWG4oImFycm93LXJpZ2h0Iix7Zm9udENoYXJhY3RlcjoiXFxlYTljIn0pLFhuLmFycm93U21hbGxEb3duPW5ldyBYbigiYXJyb3ctc21hbGwtZG93biIse2ZvbnRDaGFyYWN0ZXI6IlxcZWE5ZCJ9KSxYbi5hcnJvd1NtYWxsTGVmdD1uZXcgWG4oImFycm93LXNtYWxsLWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhOWUifSksWG4uYXJyb3dTbWFsbFJpZ2h0PW5ldyBYbigiYXJyb3ctc21hbGwtcmlnaHQiLHtmb250Q2hhcmFjdGVyOiJcXGVhOWYifSksWG4uYXJyb3dTbWFsbFVwPW5ldyBYbigiYXJyb3ctc21hbGwtdXAiLHtmb250Q2hhcmFjdGVyOiJcXGVhYTAifSksWG4uYXJyb3dVcD1uZXcgWG4oImFycm93LXVwIix7Zm9udENoYXJhY3RlcjoiXFxlYWExIn0pLFhuLmJlbGw9bmV3IFhuKCJiZWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYWEyIn0pLFhuLmJvbGQ9bmV3IFhuKCJib2xkIix7Zm9udENoYXJhY3RlcjoiXFxlYWEzIn0pLFhuLmJvb2s9bmV3IFhuKCJib29rIix7Zm9udENoYXJhY3RlcjoiXFxlYWE0In0pLFhuLmJvb2ttYXJrPW5ldyBYbigiYm9va21hcmsiLHtmb250Q2hhcmFjdGVyOiJcXGVhYTUifSksWG4uZGVidWdCcmVha3BvaW50Q29uZGl0aW9uYWxVbnZlcmlmaWVkPW5ldyBYbigiZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbC11bnZlcmlmaWVkIix7Zm9udENoYXJhY3RlcjoiXFxlYWE2In0pLFhuLmRlYnVnQnJlYWtwb2ludENvbmRpdGlvbmFsPW5ldyBYbigiZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhNyJ9KSxYbi5kZWJ1Z0JyZWFrcG9pbnRDb25kaXRpb25hbERpc2FibGVkPW5ldyBYbigiZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbC1kaXNhYmxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhNyJ9KSxYbi5kZWJ1Z0JyZWFrcG9pbnREYXRhVW52ZXJpZmllZD1uZXcgWG4oImRlYnVnLWJyZWFrcG9pbnQtZGF0YS11bnZlcmlmaWVkIix7Zm9udENoYXJhY3RlcjoiXFxlYWE4In0pLFhuLmRlYnVnQnJlYWtwb2ludERhdGE9bmV3IFhuKCJkZWJ1Zy1icmVha3BvaW50LWRhdGEiLHtmb250Q2hhcmFjdGVyOiJcXGVhYTkifSksWG4uZGVidWdCcmVha3BvaW50RGF0YURpc2FibGVkPW5ldyBYbigiZGVidWctYnJlYWtwb2ludC1kYXRhLWRpc2FibGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYWE5In0pLFhuLmRlYnVnQnJlYWtwb2ludExvZ1VudmVyaWZpZWQ9bmV3IFhuKCJkZWJ1Zy1icmVha3BvaW50LWxvZy11bnZlcmlmaWVkIix7Zm9udENoYXJhY3RlcjoiXFxlYWFhIn0pLFhuLmRlYnVnQnJlYWtwb2ludExvZz1uZXcgWG4oImRlYnVnLWJyZWFrcG9pbnQtbG9nIix7Zm9udENoYXJhY3RlcjoiXFxlYWFiIn0pLFhuLmRlYnVnQnJlYWtwb2ludExvZ0Rpc2FibGVkPW5ldyBYbigiZGVidWctYnJlYWtwb2ludC1sb2ctZGlzYWJsZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhYWIifSksWG4uYnJpZWZjYXNlPW5ldyBYbigiYnJpZWZjYXNlIix7Zm9udENoYXJhY3RlcjoiXFxlYWFjIn0pLFhuLmJyb2FkY2FzdD1uZXcgWG4oImJyb2FkY2FzdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhZCJ9KSxYbi5icm93c2VyPW5ldyBYbigiYnJvd3NlciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFhZSJ9KSxYbi5idWc9bmV3IFhuKCJidWciLHtmb250Q2hhcmFjdGVyOiJcXGVhYWYifSksWG4uY2FsZW5kYXI9bmV3IFhuKCJjYWxlbmRhciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFiMCJ9KSxYbi5jYXNlU2Vuc2l0aXZlPW5ldyBYbigiY2FzZS1zZW5zaXRpdmUiLHtmb250Q2hhcmFjdGVyOiJcXGVhYjEifSksWG4uY2hlY2s9bmV3IFhuKCJjaGVjayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFiMiJ9KSxYbi5jaGVja2xpc3Q9bmV3IFhuKCJjaGVja2xpc3QiLHtmb250Q2hhcmFjdGVyOiJcXGVhYjMifSksWG4uY2hldnJvbkRvd249bmV3IFhuKCJjaGV2cm9uLWRvd24iLHtmb250Q2hhcmFjdGVyOiJcXGVhYjQifSksWG4uZHJvcERvd25CdXR0b249bmV3IFhuKCJkcm9wLWRvd24tYnV0dG9uIixYbi5jaGV2cm9uRG93bi5kZWZpbml0aW9uKSxYbi5jaGV2cm9uTGVmdD1uZXcgWG4oImNoZXZyb24tbGVmdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFiNSJ9KSxYbi5jaGV2cm9uUmlnaHQ9bmV3IFhuKCJjaGV2cm9uLXJpZ2h0Iix7Zm9udENoYXJhY3RlcjoiXFxlYWI2In0pLFhuLmNoZXZyb25VcD1uZXcgWG4oImNoZXZyb24tdXAiLHtmb250Q2hhcmFjdGVyOiJcXGVhYjcifSksWG4uY2hyb21lQ2xvc2U9bmV3IFhuKCJjaHJvbWUtY2xvc2UiLHtmb250Q2hhcmFjdGVyOiJcXGVhYjgifSksWG4uY2hyb21lTWF4aW1pemU9bmV3IFhuKCJjaHJvbWUtbWF4aW1pemUiLHtmb250Q2hhcmFjdGVyOiJcXGVhYjkifSksWG4uY2hyb21lTWluaW1pemU9bmV3IFhuKCJjaHJvbWUtbWluaW1pemUiLHtmb250Q2hhcmFjdGVyOiJcXGVhYmEifSksWG4uY2hyb21lUmVzdG9yZT1uZXcgWG4oImNocm9tZS1yZXN0b3JlIix7Zm9udENoYXJhY3RlcjoiXFxlYWJiIn0pLFhuLmNpcmNsZU91dGxpbmU9bmV3IFhuKCJjaXJjbGUtb3V0bGluZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFiYyJ9KSxYbi5kZWJ1Z0JyZWFrcG9pbnRVbnZlcmlmaWVkPW5ldyBYbigiZGVidWctYnJlYWtwb2ludC11bnZlcmlmaWVkIix7Zm9udENoYXJhY3RlcjoiXFxlYWJjIn0pLFhuLmNpcmNsZVNsYXNoPW5ldyBYbigiY2lyY2xlLXNsYXNoIix7Zm9udENoYXJhY3RlcjoiXFxlYWJkIn0pLFhuLmNpcmN1aXRCb2FyZD1uZXcgWG4oImNpcmN1aXQtYm9hcmQiLHtmb250Q2hhcmFjdGVyOiJcXGVhYmUifSksWG4uY2xlYXJBbGw9bmV3IFhuKCJjbGVhci1hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGVhYmYifSksWG4uY2xpcHB5PW5ldyBYbigiY2xpcHB5Iix7Zm9udENoYXJhY3RlcjoiXFxlYWMwIn0pLFhuLmNsb3NlQWxsPW5ldyBYbigiY2xvc2UtYWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYWMxIn0pLFhuLmNsb3VkRG93bmxvYWQ9bmV3IFhuKCJjbG91ZC1kb3dubG9hZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFjMiJ9KSxYbi5jbG91ZFVwbG9hZD1uZXcgWG4oImNsb3VkLXVwbG9hZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFjMyJ9KSxYbi5jb2RlPW5ldyBYbigiY29kZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFjNCJ9KSxYbi5jb2xsYXBzZUFsbD1uZXcgWG4oImNvbGxhcHNlLWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFjNSJ9KSxYbi5jb2xvck1vZGU9bmV3IFhuKCJjb2xvci1tb2RlIix7Zm9udENoYXJhY3RlcjoiXFxlYWM2In0pLFhuLmNvbW1lbnREaXNjdXNzaW9uPW5ldyBYbigiY29tbWVudC1kaXNjdXNzaW9uIix7Zm9udENoYXJhY3RlcjoiXFxlYWM3In0pLFhuLmNvbXBhcmVDaGFuZ2VzPW5ldyBYbigiY29tcGFyZS1jaGFuZ2VzIix7Zm9udENoYXJhY3RlcjoiXFxlYWZkIn0pLFhuLmNyZWRpdENhcmQ9bmV3IFhuKCJjcmVkaXQtY2FyZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFjOSJ9KSxYbi5kYXNoPW5ldyBYbigiZGFzaCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFjYyJ9KSxYbi5kYXNoYm9hcmQ9bmV3IFhuKCJkYXNoYm9hcmQiLHtmb250Q2hhcmFjdGVyOiJcXGVhY2QifSksWG4uZGF0YWJhc2U9bmV3IFhuKCJkYXRhYmFzZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFjZSJ9KSxYbi5kZWJ1Z0NvbnRpbnVlPW5ldyBYbigiZGVidWctY29udGludWUiLHtmb250Q2hhcmFjdGVyOiJcXGVhY2YifSksWG4uZGVidWdEaXNjb25uZWN0PW5ldyBYbigiZGVidWctZGlzY29ubmVjdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkMCJ9KSxYbi5kZWJ1Z1BhdXNlPW5ldyBYbigiZGVidWctcGF1c2UiLHtmb250Q2hhcmFjdGVyOiJcXGVhZDEifSksWG4uZGVidWdSZXN0YXJ0PW5ldyBYbigiZGVidWctcmVzdGFydCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkMiJ9KSxYbi5kZWJ1Z1N0YXJ0PW5ldyBYbigiZGVidWctc3RhcnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZDMifSksWG4uZGVidWdTdGVwSW50bz1uZXcgWG4oImRlYnVnLXN0ZXAtaW50byIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkNCJ9KSxYbi5kZWJ1Z1N0ZXBPdXQ9bmV3IFhuKCJkZWJ1Zy1zdGVwLW91dCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkNSJ9KSxYbi5kZWJ1Z1N0ZXBPdmVyPW5ldyBYbigiZGVidWctc3RlcC1vdmVyIix7Zm9udENoYXJhY3RlcjoiXFxlYWQ2In0pLFhuLmRlYnVnU3RvcD1uZXcgWG4oImRlYnVnLXN0b3AiLHtmb250Q2hhcmFjdGVyOiJcXGVhZDcifSksWG4uZGVidWc9bmV3IFhuKCJkZWJ1ZyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkOCJ9KSxYbi5kZXZpY2VDYW1lcmFWaWRlbz1uZXcgWG4oImRldmljZS1jYW1lcmEtdmlkZW8iLHtmb250Q2hhcmFjdGVyOiJcXGVhZDkifSksWG4uZGV2aWNlQ2FtZXJhPW5ldyBYbigiZGV2aWNlLWNhbWVyYSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkYSJ9KSxYbi5kZXZpY2VNb2JpbGU9bmV3IFhuKCJkZXZpY2UtbW9iaWxlIix7Zm9udENoYXJhY3RlcjoiXFxlYWRiIn0pLFhuLmRpZmZBZGRlZD1uZXcgWG4oImRpZmYtYWRkZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZGMifSksWG4uZGlmZklnbm9yZWQ9bmV3IFhuKCJkaWZmLWlnbm9yZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZGQifSksWG4uZGlmZk1vZGlmaWVkPW5ldyBYbigiZGlmZi1tb2RpZmllZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkZSJ9KSxYbi5kaWZmUmVtb3ZlZD1uZXcgWG4oImRpZmYtcmVtb3ZlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFkZiJ9KSxYbi5kaWZmUmVuYW1lZD1uZXcgWG4oImRpZmYtcmVuYW1lZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFlMCJ9KSxYbi5kaWZmPW5ldyBYbigiZGlmZiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFlMSJ9KSxYbi5kaXNjYXJkPW5ldyBYbigiZGlzY2FyZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFlMiJ9KSxYbi5lZGl0b3JMYXlvdXQ9bmV3IFhuKCJlZGl0b3ItbGF5b3V0Iix7Zm9udENoYXJhY3RlcjoiXFxlYWUzIn0pLFhuLmVtcHR5V2luZG93PW5ldyBYbigiZW1wdHktd2luZG93Iix7Zm9udENoYXJhY3RlcjoiXFxlYWU0In0pLFhuLmV4Y2x1ZGU9bmV3IFhuKCJleGNsdWRlIix7Zm9udENoYXJhY3RlcjoiXFxlYWU1In0pLFhuLmV4dGVuc2lvbnM9bmV3IFhuKCJleHRlbnNpb25zIix7Zm9udENoYXJhY3RlcjoiXFxlYWU2In0pLFhuLmV5ZUNsb3NlZD1uZXcgWG4oImV5ZS1jbG9zZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZTcifSksWG4uZmlsZUJpbmFyeT1uZXcgWG4oImZpbGUtYmluYXJ5Iix7Zm9udENoYXJhY3RlcjoiXFxlYWU4In0pLFhuLmZpbGVDb2RlPW5ldyBYbigiZmlsZS1jb2RlIix7Zm9udENoYXJhY3RlcjoiXFxlYWU5In0pLFhuLmZpbGVNZWRpYT1uZXcgWG4oImZpbGUtbWVkaWEiLHtmb250Q2hhcmFjdGVyOiJcXGVhZWEifSksWG4uZmlsZVBkZj1uZXcgWG4oImZpbGUtcGRmIix7Zm9udENoYXJhY3RlcjoiXFxlYWViIn0pLFhuLmZpbGVTdWJtb2R1bGU9bmV3IFhuKCJmaWxlLXN1Ym1vZHVsZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFlYyJ9KSxYbi5maWxlU3ltbGlua0RpcmVjdG9yeT1uZXcgWG4oImZpbGUtc3ltbGluay1kaXJlY3RvcnkiLHtmb250Q2hhcmFjdGVyOiJcXGVhZWQifSksWG4uZmlsZVN5bWxpbmtGaWxlPW5ldyBYbigiZmlsZS1zeW1saW5rLWZpbGUiLHtmb250Q2hhcmFjdGVyOiJcXGVhZWUifSksWG4uZmlsZVppcD1uZXcgWG4oImZpbGUtemlwIix7Zm9udENoYXJhY3RlcjoiXFxlYWVmIn0pLFhuLmZpbGVzPW5ldyBYbigiZmlsZXMiLHtmb250Q2hhcmFjdGVyOiJcXGVhZjAifSksWG4uZmlsdGVyPW5ldyBYbigiZmlsdGVyIix7Zm9udENoYXJhY3RlcjoiXFxlYWYxIn0pLFhuLmZsYW1lPW5ldyBYbigiZmxhbWUiLHtmb250Q2hhcmFjdGVyOiJcXGVhZjIifSksWG4uZm9sZERvd249bmV3IFhuKCJmb2xkLWRvd24iLHtmb250Q2hhcmFjdGVyOiJcXGVhZjMifSksWG4uZm9sZFVwPW5ldyBYbigiZm9sZC11cCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFmNCJ9KSxYbi5mb2xkPW5ldyBYbigiZm9sZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWFmNSJ9KSxYbi5mb2xkZXJBY3RpdmU9bmV3IFhuKCJmb2xkZXItYWN0aXZlIix7Zm9udENoYXJhY3RlcjoiXFxlYWY2In0pLFhuLmZvbGRlck9wZW5lZD1uZXcgWG4oImZvbGRlci1vcGVuZWQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZjcifSksWG4uZ2Vhcj1uZXcgWG4oImdlYXIiLHtmb250Q2hhcmFjdGVyOiJcXGVhZjgifSksWG4uZ2lmdD1uZXcgWG4oImdpZnQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZjkifSksWG4uZ2lzdFNlY3JldD1uZXcgWG4oImdpc3Qtc2VjcmV0Iix7Zm9udENoYXJhY3RlcjoiXFxlYWZhIn0pLFhuLmdpc3Q9bmV3IFhuKCJnaXN0Iix7Zm9udENoYXJhY3RlcjoiXFxlYWZiIn0pLFhuLmdpdENvbW1pdD1uZXcgWG4oImdpdC1jb21taXQiLHtmb250Q2hhcmFjdGVyOiJcXGVhZmMifSksWG4uZ2l0Q29tcGFyZT1uZXcgWG4oImdpdC1jb21wYXJlIix7Zm9udENoYXJhY3RlcjoiXFxlYWZkIn0pLFhuLmdpdE1lcmdlPW5ldyBYbigiZ2l0LW1lcmdlIix7Zm9udENoYXJhY3RlcjoiXFxlYWZlIn0pLFhuLmdpdGh1YkFjdGlvbj1uZXcgWG4oImdpdGh1Yi1hY3Rpb24iLHtmb250Q2hhcmFjdGVyOiJcXGVhZmYifSksWG4uZ2l0aHViQWx0PW5ldyBYbigiZ2l0aHViLWFsdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIwMCJ9KSxYbi5nbG9iZT1uZXcgWG4oImdsb2JlIix7Zm9udENoYXJhY3RlcjoiXFxlYjAxIn0pLFhuLmdyYWJiZXI9bmV3IFhuKCJncmFiYmVyIix7Zm9udENoYXJhY3RlcjoiXFxlYjAyIn0pLFhuLmdyYXBoPW5ldyBYbigiZ3JhcGgiLHtmb250Q2hhcmFjdGVyOiJcXGViMDMifSksWG4uZ3JpcHBlcj1uZXcgWG4oImdyaXBwZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViMDQifSksWG4uaGVhcnQ9bmV3IFhuKCJoZWFydCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIwNSJ9KSxYbi5ob21lPW5ldyBYbigiaG9tZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIwNiJ9KSxYbi5ob3Jpem9udGFsUnVsZT1uZXcgWG4oImhvcml6b250YWwtcnVsZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIwNyJ9KSxYbi5odWJvdD1uZXcgWG4oImh1Ym90Iix7Zm9udENoYXJhY3RlcjoiXFxlYjA4In0pLFhuLmluYm94PW5ldyBYbigiaW5ib3giLHtmb250Q2hhcmFjdGVyOiJcXGViMDkifSksWG4uaXNzdWVDbG9zZWQ9bmV3IFhuKCJpc3N1ZS1jbG9zZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViYTQifSksWG4uaXNzdWVSZW9wZW5lZD1uZXcgWG4oImlzc3VlLXJlb3BlbmVkIix7Zm9udENoYXJhY3RlcjoiXFxlYjBiIn0pLFhuLmlzc3Vlcz1uZXcgWG4oImlzc3VlcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIwYyJ9KSxYbi5pdGFsaWM9bmV3IFhuKCJpdGFsaWMiLHtmb250Q2hhcmFjdGVyOiJcXGViMGQifSksWG4uamVyc2V5PW5ldyBYbigiamVyc2V5Iix7Zm9udENoYXJhY3RlcjoiXFxlYjBlIn0pLFhuLmpzb249bmV3IFhuKCJqc29uIix7Zm9udENoYXJhY3RlcjoiXFxlYjBmIn0pLFhuLmtlYmFiVmVydGljYWw9bmV3IFhuKCJrZWJhYi12ZXJ0aWNhbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxMCJ9KSxYbi5rZXk9bmV3IFhuKCJrZXkiLHtmb250Q2hhcmFjdGVyOiJcXGViMTEifSksWG4ubGF3PW5ldyBYbigibGF3Iix7Zm9udENoYXJhY3RlcjoiXFxlYjEyIn0pLFhuLmxpZ2h0YnVsYkF1dG9maXg9bmV3IFhuKCJsaWdodGJ1bGItYXV0b2ZpeCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxMyJ9KSxYbi5saW5rRXh0ZXJuYWw9bmV3IFhuKCJsaW5rLWV4dGVybmFsIix7Zm9udENoYXJhY3RlcjoiXFxlYjE0In0pLFhuLmxpbms9bmV3IFhuKCJsaW5rIix7Zm9udENoYXJhY3RlcjoiXFxlYjE1In0pLFhuLmxpc3RPcmRlcmVkPW5ldyBYbigibGlzdC1vcmRlcmVkIix7Zm9udENoYXJhY3RlcjoiXFxlYjE2In0pLFhuLmxpc3RVbm9yZGVyZWQ9bmV3IFhuKCJsaXN0LXVub3JkZXJlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxNyJ9KSxYbi5saXZlU2hhcmU9bmV3IFhuKCJsaXZlLXNoYXJlIix7Zm9udENoYXJhY3RlcjoiXFxlYjE4In0pLFhuLmxvYWRpbmc9bmV3IFhuKCJsb2FkaW5nIix7Zm9udENoYXJhY3RlcjoiXFxlYjE5In0pLFhuLmxvY2F0aW9uPW5ldyBYbigibG9jYXRpb24iLHtmb250Q2hhcmFjdGVyOiJcXGViMWEifSksWG4ubWFpbFJlYWQ9bmV3IFhuKCJtYWlsLXJlYWQiLHtmb250Q2hhcmFjdGVyOiJcXGViMWIifSksWG4ubWFpbD1uZXcgWG4oIm1haWwiLHtmb250Q2hhcmFjdGVyOiJcXGViMWMifSksWG4ubWFya2Rvd249bmV3IFhuKCJtYXJrZG93biIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIxZCJ9KSxYbi5tZWdhcGhvbmU9bmV3IFhuKCJtZWdhcGhvbmUiLHtmb250Q2hhcmFjdGVyOiJcXGViMWUifSksWG4ubWVudGlvbj1uZXcgWG4oIm1lbnRpb24iLHtmb250Q2hhcmFjdGVyOiJcXGViMWYifSksWG4ubWlsZXN0b25lPW5ldyBYbigibWlsZXN0b25lIix7Zm9udENoYXJhY3RlcjoiXFxlYjIwIn0pLFhuLm1vcnRhckJvYXJkPW5ldyBYbigibW9ydGFyLWJvYXJkIix7Zm9udENoYXJhY3RlcjoiXFxlYjIxIn0pLFhuLm1vdmU9bmV3IFhuKCJtb3ZlIix7Zm9udENoYXJhY3RlcjoiXFxlYjIyIn0pLFhuLm11bHRpcGxlV2luZG93cz1uZXcgWG4oIm11bHRpcGxlLXdpbmRvd3MiLHtmb250Q2hhcmFjdGVyOiJcXGViMjMifSksWG4ubXV0ZT1uZXcgWG4oIm11dGUiLHtmb250Q2hhcmFjdGVyOiJcXGViMjQifSksWG4ubm9OZXdsaW5lPW5ldyBYbigibm8tbmV3bGluZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyNSJ9KSxYbi5ub3RlPW5ldyBYbigibm90ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyNiJ9KSxYbi5vY3RvZmFjZT1uZXcgWG4oIm9jdG9mYWNlIix7Zm9udENoYXJhY3RlcjoiXFxlYjI3In0pLFhuLm9wZW5QcmV2aWV3PW5ldyBYbigib3Blbi1wcmV2aWV3Iix7Zm9udENoYXJhY3RlcjoiXFxlYjI4In0pLFhuLnBhY2thZ2VfPW5ldyBYbigicGFja2FnZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyOSJ9KSxYbi5wYWludGNhbj1uZXcgWG4oInBhaW50Y2FuIix7Zm9udENoYXJhY3RlcjoiXFxlYjJhIn0pLFhuLnBpbj1uZXcgWG4oInBpbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyYiJ9KSxYbi5wbGF5PW5ldyBYbigicGxheSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyYyJ9KSxYbi5ydW49bmV3IFhuKCJydW4iLHtmb250Q2hhcmFjdGVyOiJcXGViMmMifSksWG4ucGx1Zz1uZXcgWG4oInBsdWciLHtmb250Q2hhcmFjdGVyOiJcXGViMmQifSksWG4ucHJlc2VydmVDYXNlPW5ldyBYbigicHJlc2VydmUtY2FzZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyZSJ9KSxYbi5wcmV2aWV3PW5ldyBYbigicHJldmlldyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIyZiJ9KSxYbi5wcm9qZWN0PW5ldyBYbigicHJvamVjdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIzMCJ9KSxYbi5wdWxzZT1uZXcgWG4oInB1bHNlIix7Zm9udENoYXJhY3RlcjoiXFxlYjMxIn0pLFhuLnF1ZXN0aW9uPW5ldyBYbigicXVlc3Rpb24iLHtmb250Q2hhcmFjdGVyOiJcXGViMzIifSksWG4ucXVvdGU9bmV3IFhuKCJxdW90ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIzMyJ9KSxYbi5yYWRpb1Rvd2VyPW5ldyBYbigicmFkaW8tdG93ZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViMzQifSksWG4ucmVhY3Rpb25zPW5ldyBYbigicmVhY3Rpb25zIix7Zm9udENoYXJhY3RlcjoiXFxlYjM1In0pLFhuLnJlZmVyZW5jZXM9bmV3IFhuKCJyZWZlcmVuY2VzIix7Zm9udENoYXJhY3RlcjoiXFxlYjM2In0pLFhuLnJlZnJlc2g9bmV3IFhuKCJyZWZyZXNoIix7Zm9udENoYXJhY3RlcjoiXFxlYjM3In0pLFhuLnJlZ2V4PW5ldyBYbigicmVnZXgiLHtmb250Q2hhcmFjdGVyOiJcXGViMzgifSksWG4ucmVtb3RlRXhwbG9yZXI9bmV3IFhuKCJyZW1vdGUtZXhwbG9yZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViMzkifSksWG4ucmVtb3RlPW5ldyBYbigicmVtb3RlIix7Zm9udENoYXJhY3RlcjoiXFxlYjNhIn0pLFhuLnJlbW92ZT1uZXcgWG4oInJlbW92ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIzYiJ9KSxYbi5yZXBsYWNlQWxsPW5ldyBYbigicmVwbGFjZS1hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGViM2MifSksWG4ucmVwbGFjZT1uZXcgWG4oInJlcGxhY2UiLHtmb250Q2hhcmFjdGVyOiJcXGViM2QifSksWG4ucmVwb0Nsb25lPW5ldyBYbigicmVwby1jbG9uZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWIzZSJ9KSxYbi5yZXBvRm9yY2VQdXNoPW5ldyBYbigicmVwby1mb3JjZS1wdXNoIix7Zm9udENoYXJhY3RlcjoiXFxlYjNmIn0pLFhuLnJlcG9QdWxsPW5ldyBYbigicmVwby1wdWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYjQwIn0pLFhuLnJlcG9QdXNoPW5ldyBYbigicmVwby1wdXNoIix7Zm9udENoYXJhY3RlcjoiXFxlYjQxIn0pLFhuLnJlcG9ydD1uZXcgWG4oInJlcG9ydCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0MiJ9KSxYbi5yZXF1ZXN0Q2hhbmdlcz1uZXcgWG4oInJlcXVlc3QtY2hhbmdlcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0MyJ9KSxYbi5yb2NrZXQ9bmV3IFhuKCJyb2NrZXQiLHtmb250Q2hhcmFjdGVyOiJcXGViNDQifSksWG4ucm9vdEZvbGRlck9wZW5lZD1uZXcgWG4oInJvb3QtZm9sZGVyLW9wZW5lZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0NSJ9KSxYbi5yb290Rm9sZGVyPW5ldyBYbigicm9vdC1mb2xkZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViNDYifSksWG4ucnNzPW5ldyBYbigicnNzIix7Zm9udENoYXJhY3RlcjoiXFxlYjQ3In0pLFhuLnJ1Ynk9bmV3IFhuKCJydWJ5Iix7Zm9udENoYXJhY3RlcjoiXFxlYjQ4In0pLFhuLnNhdmVBbGw9bmV3IFhuKCJzYXZlLWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0OSJ9KSxYbi5zYXZlQXM9bmV3IFhuKCJzYXZlLWFzIix7Zm9udENoYXJhY3RlcjoiXFxlYjRhIn0pLFhuLnNhdmU9bmV3IFhuKCJzYXZlIix7Zm9udENoYXJhY3RlcjoiXFxlYjRiIn0pLFhuLnNjcmVlbkZ1bGw9bmV3IFhuKCJzY3JlZW4tZnVsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0YyJ9KSxYbi5zY3JlZW5Ob3JtYWw9bmV3IFhuKCJzY3JlZW4tbm9ybWFsIix7Zm9udENoYXJhY3RlcjoiXFxlYjRkIn0pLFhuLnNlYXJjaFN0b3A9bmV3IFhuKCJzZWFyY2gtc3RvcCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI0ZSJ9KSxYbi5zZXJ2ZXI9bmV3IFhuKCJzZXJ2ZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViNTAifSksWG4uc2V0dGluZ3NHZWFyPW5ldyBYbigic2V0dGluZ3MtZ2VhciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1MSJ9KSxYbi5zZXR0aW5ncz1uZXcgWG4oInNldHRpbmdzIix7Zm9udENoYXJhY3RlcjoiXFxlYjUyIn0pLFhuLnNoaWVsZD1uZXcgWG4oInNoaWVsZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1MyJ9KSxYbi5zbWlsZXk9bmV3IFhuKCJzbWlsZXkiLHtmb250Q2hhcmFjdGVyOiJcXGViNTQifSksWG4uc29ydFByZWNlZGVuY2U9bmV3IFhuKCJzb3J0LXByZWNlZGVuY2UiLHtmb250Q2hhcmFjdGVyOiJcXGViNTUifSksWG4uc3BsaXRIb3Jpem9udGFsPW5ldyBYbigic3BsaXQtaG9yaXpvbnRhbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1NiJ9KSxYbi5zcGxpdFZlcnRpY2FsPW5ldyBYbigic3BsaXQtdmVydGljYWwiLHtmb250Q2hhcmFjdGVyOiJcXGViNTcifSksWG4uc3F1aXJyZWw9bmV3IFhuKCJzcXVpcnJlbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1OCJ9KSxYbi5zdGFyRnVsbD1uZXcgWG4oInN0YXItZnVsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1OSJ9KSxYbi5zdGFySGFsZj1uZXcgWG4oInN0YXItaGFsZiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1YSJ9KSxYbi5zeW1ib2xDbGFzcz1uZXcgWG4oInN5bWJvbC1jbGFzcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1YiJ9KSxYbi5zeW1ib2xDb2xvcj1uZXcgWG4oInN5bWJvbC1jb2xvciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1YyJ9KSxYbi5zeW1ib2xDdXN0b21Db2xvcj1uZXcgWG4oInN5bWJvbC1jdXN0b21jb2xvciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1YyJ9KSxYbi5zeW1ib2xDb25zdGFudD1uZXcgWG4oInN5bWJvbC1jb25zdGFudCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI1ZCJ9KSxYbi5zeW1ib2xFbnVtTWVtYmVyPW5ldyBYbigic3ltYm9sLWVudW0tbWVtYmVyIix7Zm9udENoYXJhY3RlcjoiXFxlYjVlIn0pLFhuLnN5bWJvbEZpZWxkPW5ldyBYbigic3ltYm9sLWZpZWxkIix7Zm9udENoYXJhY3RlcjoiXFxlYjVmIn0pLFhuLnN5bWJvbEZpbGU9bmV3IFhuKCJzeW1ib2wtZmlsZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI2MCJ9KSxYbi5zeW1ib2xJbnRlcmZhY2U9bmV3IFhuKCJzeW1ib2wtaW50ZXJmYWNlIix7Zm9udENoYXJhY3RlcjoiXFxlYjYxIn0pLFhuLnN5bWJvbEtleXdvcmQ9bmV3IFhuKCJzeW1ib2wta2V5d29yZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI2MiJ9KSxYbi5zeW1ib2xNaXNjPW5ldyBYbigic3ltYm9sLW1pc2MiLHtmb250Q2hhcmFjdGVyOiJcXGViNjMifSksWG4uc3ltYm9sT3BlcmF0b3I9bmV3IFhuKCJzeW1ib2wtb3BlcmF0b3IiLHtmb250Q2hhcmFjdGVyOiJcXGViNjQifSksWG4uc3ltYm9sUHJvcGVydHk9bmV3IFhuKCJzeW1ib2wtcHJvcGVydHkiLHtmb250Q2hhcmFjdGVyOiJcXGViNjUifSksWG4ud3JlbmNoPW5ldyBYbigid3JlbmNoIix7Zm9udENoYXJhY3RlcjoiXFxlYjY1In0pLFhuLndyZW5jaFN1YmFjdGlvbj1uZXcgWG4oIndyZW5jaC1zdWJhY3Rpb24iLHtmb250Q2hhcmFjdGVyOiJcXGViNjUifSksWG4uc3ltYm9sU25pcHBldD1uZXcgWG4oInN5bWJvbC1zbmlwcGV0Iix7Zm9udENoYXJhY3RlcjoiXFxlYjY2In0pLFhuLnRhc2tsaXN0PW5ldyBYbigidGFza2xpc3QiLHtmb250Q2hhcmFjdGVyOiJcXGViNjcifSksWG4udGVsZXNjb3BlPW5ldyBYbigidGVsZXNjb3BlIix7Zm9udENoYXJhY3RlcjoiXFxlYjY4In0pLFhuLnRleHRTaXplPW5ldyBYbigidGV4dC1zaXplIix7Zm9udENoYXJhY3RlcjoiXFxlYjY5In0pLFhuLnRocmVlQmFycz1uZXcgWG4oInRocmVlLWJhcnMiLHtmb250Q2hhcmFjdGVyOiJcXGViNmEifSksWG4udGh1bWJzZG93bj1uZXcgWG4oInRodW1ic2Rvd24iLHtmb250Q2hhcmFjdGVyOiJcXGViNmIifSksWG4udGh1bWJzdXA9bmV3IFhuKCJ0aHVtYnN1cCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI2YyJ9KSxYbi50b29scz1uZXcgWG4oInRvb2xzIix7Zm9udENoYXJhY3RlcjoiXFxlYjZkIn0pLFhuLnRyaWFuZ2xlRG93bj1uZXcgWG4oInRyaWFuZ2xlLWRvd24iLHtmb250Q2hhcmFjdGVyOiJcXGViNmUifSksWG4udHJpYW5nbGVMZWZ0PW5ldyBYbigidHJpYW5nbGUtbGVmdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI2ZiJ9KSxYbi50cmlhbmdsZVJpZ2h0PW5ldyBYbigidHJpYW5nbGUtcmlnaHQiLHtmb250Q2hhcmFjdGVyOiJcXGViNzAifSksWG4udHJpYW5nbGVVcD1uZXcgWG4oInRyaWFuZ2xlLXVwIix7Zm9udENoYXJhY3RlcjoiXFxlYjcxIn0pLFhuLnR3aXR0ZXI9bmV3IFhuKCJ0d2l0dGVyIix7Zm9udENoYXJhY3RlcjoiXFxlYjcyIn0pLFhuLnVuZm9sZD1uZXcgWG4oInVuZm9sZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3MyJ9KSxYbi51bmxvY2s9bmV3IFhuKCJ1bmxvY2siLHtmb250Q2hhcmFjdGVyOiJcXGViNzQifSksWG4udW5tdXRlPW5ldyBYbigidW5tdXRlIix7Zm9udENoYXJhY3RlcjoiXFxlYjc1In0pLFhuLnVudmVyaWZpZWQ9bmV3IFhuKCJ1bnZlcmlmaWVkIix7Zm9udENoYXJhY3RlcjoiXFxlYjc2In0pLFhuLnZlcmlmaWVkPW5ldyBYbigidmVyaWZpZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViNzcifSksWG4udmVyc2lvbnM9bmV3IFhuKCJ2ZXJzaW9ucyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3OCJ9KSxYbi52bUFjdGl2ZT1uZXcgWG4oInZtLWFjdGl2ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3OSJ9KSxYbi52bU91dGxpbmU9bmV3IFhuKCJ2bS1vdXRsaW5lIix7Zm9udENoYXJhY3RlcjoiXFxlYjdhIn0pLFhuLnZtUnVubmluZz1uZXcgWG4oInZtLXJ1bm5pbmciLHtmb250Q2hhcmFjdGVyOiJcXGViN2IifSksWG4ud2F0Y2g9bmV3IFhuKCJ3YXRjaCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3YyJ9KSxYbi53aGl0ZXNwYWNlPW5ldyBYbigid2hpdGVzcGFjZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3ZCJ9KSxYbi53aG9sZVdvcmQ9bmV3IFhuKCJ3aG9sZS13b3JkIix7Zm9udENoYXJhY3RlcjoiXFxlYjdlIn0pLFhuLndpbmRvdz1uZXcgWG4oIndpbmRvdyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI3ZiJ9KSxYbi53b3JkV3JhcD1uZXcgWG4oIndvcmQtd3JhcCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4MCJ9KSxYbi56b29tSW49bmV3IFhuKCJ6b29tLWluIix7Zm9udENoYXJhY3RlcjoiXFxlYjgxIn0pLFhuLnpvb21PdXQ9bmV3IFhuKCJ6b29tLW91dCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4MiJ9KSxYbi5saXN0RmlsdGVyPW5ldyBYbigibGlzdC1maWx0ZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViODMifSksWG4ubGlzdEZsYXQ9bmV3IFhuKCJsaXN0LWZsYXQiLHtmb250Q2hhcmFjdGVyOiJcXGViODQifSksWG4ubGlzdFNlbGVjdGlvbj1uZXcgWG4oImxpc3Qtc2VsZWN0aW9uIix7Zm9udENoYXJhY3RlcjoiXFxlYjg1In0pLFhuLnNlbGVjdGlvbj1uZXcgWG4oInNlbGVjdGlvbiIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4NSJ9KSxYbi5saXN0VHJlZT1uZXcgWG4oImxpc3QtdHJlZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4NiJ9KSxYbi5kZWJ1Z0JyZWFrcG9pbnRGdW5jdGlvblVudmVyaWZpZWQ9bmV3IFhuKCJkZWJ1Zy1icmVha3BvaW50LWZ1bmN0aW9uLXVudmVyaWZpZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViODcifSksWG4uZGVidWdCcmVha3BvaW50RnVuY3Rpb249bmV3IFhuKCJkZWJ1Zy1icmVha3BvaW50LWZ1bmN0aW9uIix7Zm9udENoYXJhY3RlcjoiXFxlYjg4In0pLFhuLmRlYnVnQnJlYWtwb2ludEZ1bmN0aW9uRGlzYWJsZWQ9bmV3IFhuKCJkZWJ1Zy1icmVha3BvaW50LWZ1bmN0aW9uLWRpc2FibGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYjg4In0pLFhuLmRlYnVnU3RhY2tmcmFtZUFjdGl2ZT1uZXcgWG4oImRlYnVnLXN0YWNrZnJhbWUtYWN0aXZlIix7Zm9udENoYXJhY3RlcjoiXFxlYjg5In0pLFhuLmRlYnVnU3RhY2tmcmFtZURvdD1uZXcgWG4oImRlYnVnLXN0YWNrZnJhbWUtZG90Iix7Zm9udENoYXJhY3RlcjoiXFxlYjhhIn0pLFhuLmRlYnVnU3RhY2tmcmFtZT1uZXcgWG4oImRlYnVnLXN0YWNrZnJhbWUiLHtmb250Q2hhcmFjdGVyOiJcXGViOGIifSksWG4uZGVidWdTdGFja2ZyYW1lRm9jdXNlZD1uZXcgWG4oImRlYnVnLXN0YWNrZnJhbWUtZm9jdXNlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4YiJ9KSxYbi5kZWJ1Z0JyZWFrcG9pbnRVbnN1cHBvcnRlZD1uZXcgWG4oImRlYnVnLWJyZWFrcG9pbnQtdW5zdXBwb3J0ZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViOGMifSksWG4uc3ltYm9sU3RyaW5nPW5ldyBYbigic3ltYm9sLXN0cmluZyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4ZCJ9KSxYbi5kZWJ1Z1JldmVyc2VDb250aW51ZT1uZXcgWG4oImRlYnVnLXJldmVyc2UtY29udGludWUiLHtmb250Q2hhcmFjdGVyOiJcXGViOGUifSksWG4uZGVidWdTdGVwQmFjaz1uZXcgWG4oImRlYnVnLXN0ZXAtYmFjayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI4ZiJ9KSxYbi5kZWJ1Z1Jlc3RhcnRGcmFtZT1uZXcgWG4oImRlYnVnLXJlc3RhcnQtZnJhbWUiLHtmb250Q2hhcmFjdGVyOiJcXGViOTAifSksWG4uY2FsbEluY29taW5nPW5ldyBYbigiY2FsbC1pbmNvbWluZyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5MiJ9KSxYbi5jYWxsT3V0Z29pbmc9bmV3IFhuKCJjYWxsLW91dGdvaW5nIix7Zm9udENoYXJhY3RlcjoiXFxlYjkzIn0pLFhuLm1lbnU9bmV3IFhuKCJtZW51Iix7Zm9udENoYXJhY3RlcjoiXFxlYjk0In0pLFhuLmV4cGFuZEFsbD1uZXcgWG4oImV4cGFuZC1hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGViOTUifSksWG4uZmVlZGJhY2s9bmV3IFhuKCJmZWVkYmFjayIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5NiJ9KSxYbi5ncm91cEJ5UmVmVHlwZT1uZXcgWG4oImdyb3VwLWJ5LXJlZi10eXBlIix7Zm9udENoYXJhY3RlcjoiXFxlYjk3In0pLFhuLnVuZ3JvdXBCeVJlZlR5cGU9bmV3IFhuKCJ1bmdyb3VwLWJ5LXJlZi10eXBlIix7Zm9udENoYXJhY3RlcjoiXFxlYjk4In0pLFhuLmFjY291bnQ9bmV3IFhuKCJhY2NvdW50Iix7Zm9udENoYXJhY3RlcjoiXFxlYjk5In0pLFhuLmJlbGxEb3Q9bmV3IFhuKCJiZWxsLWRvdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5YSJ9KSxYbi5kZWJ1Z0NvbnNvbGU9bmV3IFhuKCJkZWJ1Zy1jb25zb2xlIix7Zm9udENoYXJhY3RlcjoiXFxlYjliIn0pLFhuLmxpYnJhcnk9bmV3IFhuKCJsaWJyYXJ5Iix7Zm9udENoYXJhY3RlcjoiXFxlYjljIn0pLFhuLm91dHB1dD1uZXcgWG4oIm91dHB1dCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5ZCJ9KSxYbi5ydW5BbGw9bmV3IFhuKCJydW4tYWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYjllIn0pLFhuLnN5bmNJZ25vcmVkPW5ldyBYbigic3luYy1pZ25vcmVkIix7Zm9udENoYXJhY3RlcjoiXFxlYjlmIn0pLFhuLnBpbm5lZD1uZXcgWG4oInBpbm5lZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhMCJ9KSxYbi5naXRodWJJbnZlcnRlZD1uZXcgWG4oImdpdGh1Yi1pbnZlcnRlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhMSJ9KSxYbi5kZWJ1Z0FsdD1uZXcgWG4oImRlYnVnLWFsdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWI5MSJ9KSxYbi5zZXJ2ZXJQcm9jZXNzPW5ldyBYbigic2VydmVyLXByb2Nlc3MiLHtmb250Q2hhcmFjdGVyOiJcXGViYTIifSksWG4uc2VydmVyRW52aXJvbm1lbnQ9bmV3IFhuKCJzZXJ2ZXItZW52aXJvbm1lbnQiLHtmb250Q2hhcmFjdGVyOiJcXGViYTMifSksWG4ucGFzcz1uZXcgWG4oInBhc3MiLHtmb250Q2hhcmFjdGVyOiJcXGViYTQifSksWG4uc3RvcENpcmNsZT1uZXcgWG4oInN0b3AtY2lyY2xlIix7Zm9udENoYXJhY3RlcjoiXFxlYmE1In0pLFhuLnBsYXlDaXJjbGU9bmV3IFhuKCJwbGF5LWNpcmNsZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhNiJ9KSxYbi5yZWNvcmQ9bmV3IFhuKCJyZWNvcmQiLHtmb250Q2hhcmFjdGVyOiJcXGViYTcifSksWG4uZGVidWdBbHRTbWFsbD1uZXcgWG4oImRlYnVnLWFsdC1zbWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhOCJ9KSxYbi52bUNvbm5lY3Q9bmV3IFhuKCJ2bS1jb25uZWN0Iix7Zm9udENoYXJhY3RlcjoiXFxlYmE5In0pLFhuLmNsb3VkPW5ldyBYbigiY2xvdWQiLHtmb250Q2hhcmFjdGVyOiJcXGViYWEifSksWG4ubWVyZ2U9bmV3IFhuKCJtZXJnZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJhYiJ9KSxYbi5leHBvcnRJY29uPW5ldyBYbigiZXhwb3J0Iix7Zm9udENoYXJhY3RlcjoiXFxlYmFjIn0pLFhuLmdyYXBoTGVmdD1uZXcgWG4oImdyYXBoLWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGViYWQifSksWG4ubWFnbmV0PW5ldyBYbigibWFnbmV0Iix7Zm9udENoYXJhY3RlcjoiXFxlYmFlIn0pLFhuLm5vdGVib29rPW5ldyBYbigibm90ZWJvb2siLHtmb250Q2hhcmFjdGVyOiJcXGViYWYifSksWG4ucmVkbz1uZXcgWG4oInJlZG8iLHtmb250Q2hhcmFjdGVyOiJcXGViYjAifSksWG4uY2hlY2tBbGw9bmV3IFhuKCJjaGVjay1hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGViYjEifSksWG4ucGlubmVkRGlydHk9bmV3IFhuKCJwaW5uZWQtZGlydHkiLHtmb250Q2hhcmFjdGVyOiJcXGViYjIifSksWG4ucGFzc0ZpbGxlZD1uZXcgWG4oInBhc3MtZmlsbGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYmIzIn0pLFhuLmNpcmNsZUxhcmdlRmlsbGVkPW5ldyBYbigiY2lyY2xlLWxhcmdlLWZpbGxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiNCJ9KSxYbi5jaXJjbGVMYXJnZU91dGxpbmU9bmV3IFhuKCJjaXJjbGUtbGFyZ2Utb3V0bGluZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiNSJ9KSxYbi5jb21iaW5lPW5ldyBYbigiY29tYmluZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiNiJ9KSxYbi5nYXRoZXI9bmV3IFhuKCJnYXRoZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViYjYifSksWG4udGFibGU9bmV3IFhuKCJ0YWJsZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiNyJ9KSxYbi52YXJpYWJsZUdyb3VwPW5ldyBYbigidmFyaWFibGUtZ3JvdXAiLHtmb250Q2hhcmFjdGVyOiJcXGViYjgifSksWG4udHlwZUhpZXJhcmNoeT1uZXcgWG4oInR5cGUtaGllcmFyY2h5Iix7Zm9udENoYXJhY3RlcjoiXFxlYmI5In0pLFhuLnR5cGVIaWVyYXJjaHlTdWI9bmV3IFhuKCJ0eXBlLWhpZXJhcmNoeS1zdWIiLHtmb250Q2hhcmFjdGVyOiJcXGViYmEifSksWG4udHlwZUhpZXJhcmNoeVN1cGVyPW5ldyBYbigidHlwZS1oaWVyYXJjaHktc3VwZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViYmIifSksWG4uZ2l0UHVsbFJlcXVlc3RDcmVhdGU9bmV3IFhuKCJnaXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiYyJ9KSxYbi5ydW5BYm92ZT1uZXcgWG4oInJ1bi1hYm92ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiZCJ9KSxYbi5ydW5CZWxvdz1uZXcgWG4oInJ1bi1iZWxvdyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJiZSJ9KSxYbi5ub3RlYm9va1RlbXBsYXRlPW5ldyBYbigibm90ZWJvb2stdGVtcGxhdGUiLHtmb250Q2hhcmFjdGVyOiJcXGViYmYifSksWG4uZGVidWdSZXJ1bj1uZXcgWG4oImRlYnVnLXJlcnVuIix7Zm9udENoYXJhY3RlcjoiXFxlYmMwIn0pLFhuLndvcmtzcGFjZVRydXN0ZWQ9bmV3IFhuKCJ3b3Jrc3BhY2UtdHJ1c3RlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjMSJ9KSxYbi53b3Jrc3BhY2VVbnRydXN0ZWQ9bmV3IFhuKCJ3b3Jrc3BhY2UtdW50cnVzdGVkIix7Zm9udENoYXJhY3RlcjoiXFxlYmMyIn0pLFhuLndvcmtzcGFjZVVuc3BlY2lmaWVkPW5ldyBYbigid29ya3NwYWNlLXVuc3BlY2lmaWVkIix7Zm9udENoYXJhY3RlcjoiXFxlYmMzIn0pLFhuLnRlcm1pbmFsQ21kPW5ldyBYbigidGVybWluYWwtY21kIix7Zm9udENoYXJhY3RlcjoiXFxlYmM0In0pLFhuLnRlcm1pbmFsRGViaWFuPW5ldyBYbigidGVybWluYWwtZGViaWFuIix7Zm9udENoYXJhY3RlcjoiXFxlYmM1In0pLFhuLnRlcm1pbmFsTGludXg9bmV3IFhuKCJ0ZXJtaW5hbC1saW51eCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjNiJ9KSxYbi50ZXJtaW5hbFBvd2Vyc2hlbGw9bmV3IFhuKCJ0ZXJtaW5hbC1wb3dlcnNoZWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYmM3In0pLFhuLnRlcm1pbmFsVG11eD1uZXcgWG4oInRlcm1pbmFsLXRtdXgiLHtmb250Q2hhcmFjdGVyOiJcXGViYzgifSksWG4udGVybWluYWxVYnVudHU9bmV3IFhuKCJ0ZXJtaW5hbC11YnVudHUiLHtmb250Q2hhcmFjdGVyOiJcXGViYzkifSksWG4udGVybWluYWxCYXNoPW5ldyBYbigidGVybWluYWwtYmFzaCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjYSJ9KSxYbi5hcnJvd1N3YXA9bmV3IFhuKCJhcnJvdy1zd2FwIix7Zm9udENoYXJhY3RlcjoiXFxlYmNiIn0pLFhuLmNvcHk9bmV3IFhuKCJjb3B5Iix7Zm9udENoYXJhY3RlcjoiXFxlYmNjIn0pLFhuLnBlcnNvbkFkZD1uZXcgWG4oInBlcnNvbi1hZGQiLHtmb250Q2hhcmFjdGVyOiJcXGViY2QifSksWG4uZmlsdGVyRmlsbGVkPW5ldyBYbigiZmlsdGVyLWZpbGxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjZSJ9KSxYbi53YW5kPW5ldyBYbigid2FuZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJjZiJ9KSxYbi5kZWJ1Z0xpbmVCeUxpbmU9bmV3IFhuKCJkZWJ1Zy1saW5lLWJ5LWxpbmUiLHtmb250Q2hhcmFjdGVyOiJcXGViZDAifSksWG4uaW5zcGVjdD1uZXcgWG4oImluc3BlY3QiLHtmb250Q2hhcmFjdGVyOiJcXGViZDEifSksWG4ubGF5ZXJzPW5ldyBYbigibGF5ZXJzIix7Zm9udENoYXJhY3RlcjoiXFxlYmQyIn0pLFhuLmxheWVyc0RvdD1uZXcgWG4oImxheWVycy1kb3QiLHtmb250Q2hhcmFjdGVyOiJcXGViZDMifSksWG4ubGF5ZXJzQWN0aXZlPW5ldyBYbigibGF5ZXJzLWFjdGl2ZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJkNCJ9KSxYbi5jb21wYXNzPW5ldyBYbigiY29tcGFzcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJkNSJ9KSxYbi5jb21wYXNzRG90PW5ldyBYbigiY29tcGFzcy1kb3QiLHtmb250Q2hhcmFjdGVyOiJcXGViZDYifSksWG4uY29tcGFzc0FjdGl2ZT1uZXcgWG4oImNvbXBhc3MtYWN0aXZlIix7Zm9udENoYXJhY3RlcjoiXFxlYmQ3In0pLFhuLmF6dXJlPW5ldyBYbigiYXp1cmUiLHtmb250Q2hhcmFjdGVyOiJcXGViZDgifSksWG4uaXNzdWVEcmFmdD1uZXcgWG4oImlzc3VlLWRyYWZ0Iix7Zm9udENoYXJhY3RlcjoiXFxlYmQ5In0pLFhuLmdpdFB1bGxSZXF1ZXN0Q2xvc2VkPW5ldyBYbigiZ2l0LXB1bGwtcmVxdWVzdC1jbG9zZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViZGEifSksWG4uZ2l0UHVsbFJlcXVlc3REcmFmdD1uZXcgWG4oImdpdC1wdWxsLXJlcXVlc3QtZHJhZnQiLHtmb250Q2hhcmFjdGVyOiJcXGViZGIifSksWG4uZGVidWdBbGw9bmV3IFhuKCJkZWJ1Zy1hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGViZGMifSksWG4uZGVidWdDb3ZlcmFnZT1uZXcgWG4oImRlYnVnLWNvdmVyYWdlIix7Zm9udENoYXJhY3RlcjoiXFxlYmRkIn0pLFhuLnJ1bkVycm9ycz1uZXcgWG4oInJ1bi1lcnJvcnMiLHtmb250Q2hhcmFjdGVyOiJcXGViZGUifSksWG4uZm9sZGVyTGlicmFyeT1uZXcgWG4oImZvbGRlci1saWJyYXJ5Iix7Zm9udENoYXJhY3RlcjoiXFxlYmRmIn0pLFhuLmRlYnVnQ29udGludWVTbWFsbD1uZXcgWG4oImRlYnVnLWNvbnRpbnVlLXNtYWxsIix7Zm9udENoYXJhY3RlcjoiXFxlYmUwIn0pLFhuLmJlYWtlclN0b3A9bmV3IFhuKCJiZWFrZXItc3RvcCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlMSJ9KSxYbi5ncmFwaExpbmU9bmV3IFhuKCJncmFwaC1saW5lIix7Zm9udENoYXJhY3RlcjoiXFxlYmUyIn0pLFhuLmdyYXBoU2NhdHRlcj1uZXcgWG4oImdyYXBoLXNjYXR0ZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViZTMifSksWG4ucGllQ2hhcnQ9bmV3IFhuKCJwaWUtY2hhcnQiLHtmb250Q2hhcmFjdGVyOiJcXGViZTQifSksWG4uYnJhY2tldD1uZXcgWG4oImJyYWNrZXQiLFhuLmpzb24uZGVmaW5pdGlvbiksWG4uYnJhY2tldERvdD1uZXcgWG4oImJyYWNrZXQtZG90Iix7Zm9udENoYXJhY3RlcjoiXFxlYmU1In0pLFhuLmJyYWNrZXRFcnJvcj1uZXcgWG4oImJyYWNrZXQtZXJyb3IiLHtmb250Q2hhcmFjdGVyOiJcXGViZTYifSksWG4ubG9ja1NtYWxsPW5ldyBYbigibG9jay1zbWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlNyJ9KSxYbi5henVyZURldm9wcz1uZXcgWG4oImF6dXJlLWRldm9wcyIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlOCJ9KSxYbi52ZXJpZmllZEZpbGxlZD1uZXcgWG4oInZlcmlmaWVkLWZpbGxlZCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlOSJ9KSxYbi5uZXdMaW5lPW5ldyBYbigibmV3bGluZSIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlYSJ9KSxYbi5sYXlvdXQ9bmV3IFhuKCJsYXlvdXQiLHtmb250Q2hhcmFjdGVyOiJcXGViZWIifSksWG4ubGF5b3V0QWN0aXZpdHliYXJMZWZ0PW5ldyBYbigibGF5b3V0LWFjdGl2aXR5YmFyLWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGViZWMifSksWG4ubGF5b3V0QWN0aXZpdHliYXJSaWdodD1uZXcgWG4oImxheW91dC1hY3Rpdml0eWJhci1yaWdodCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlZCJ9KSxYbi5sYXlvdXRQYW5lbExlZnQ9bmV3IFhuKCJsYXlvdXQtcGFuZWwtbGVmdCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJlZSJ9KSxYbi5sYXlvdXRQYW5lbENlbnRlcj1uZXcgWG4oImxheW91dC1wYW5lbC1jZW50ZXIiLHtmb250Q2hhcmFjdGVyOiJcXGViZWYifSksWG4ubGF5b3V0UGFuZWxKdXN0aWZ5PW5ldyBYbigibGF5b3V0LXBhbmVsLWp1c3RpZnkiLHtmb250Q2hhcmFjdGVyOiJcXGViZjAifSksWG4ubGF5b3V0UGFuZWxSaWdodD1uZXcgWG4oImxheW91dC1wYW5lbC1yaWdodCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmMSJ9KSxYbi5sYXlvdXRQYW5lbD1uZXcgWG4oImxheW91dC1wYW5lbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmMiJ9KSxYbi5sYXlvdXRTaWRlYmFyTGVmdD1uZXcgWG4oImxheW91dC1zaWRlYmFyLWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGViZjMifSksWG4ubGF5b3V0U2lkZWJhclJpZ2h0PW5ldyBYbigibGF5b3V0LXNpZGViYXItcmlnaHQiLHtmb250Q2hhcmFjdGVyOiJcXGViZjQifSksWG4ubGF5b3V0U3RhdHVzYmFyPW5ldyBYbigibGF5b3V0LXN0YXR1c2JhciIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmNSJ9KSxYbi5sYXlvdXRNZW51YmFyPW5ldyBYbigibGF5b3V0LW1lbnViYXIiLHtmb250Q2hhcmFjdGVyOiJcXGViZjYifSksWG4ubGF5b3V0Q2VudGVyZWQ9bmV3IFhuKCJsYXlvdXQtY2VudGVyZWQiLHtmb250Q2hhcmFjdGVyOiJcXGViZjcifSksWG4udGFyZ2V0PW5ldyBYbigidGFyZ2V0Iix7Zm9udENoYXJhY3RlcjoiXFxlYmY4In0pLFhuLmluZGVudD1uZXcgWG4oImluZGVudCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmOSJ9KSxYbi5yZWNvcmRTbWFsbD1uZXcgWG4oInJlY29yZC1zbWFsbCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmYSJ9KSxYbi5lcnJvclNtYWxsPW5ldyBYbigiZXJyb3Itc21hbGwiLHtmb250Q2hhcmFjdGVyOiJcXGViZmIifSksWG4uYXJyb3dDaXJjbGVEb3duPW5ldyBYbigiYXJyb3ctY2lyY2xlLWRvd24iLHtmb250Q2hhcmFjdGVyOiJcXGViZmMifSksWG4uYXJyb3dDaXJjbGVMZWZ0PW5ldyBYbigiYXJyb3ctY2lyY2xlLWxlZnQiLHtmb250Q2hhcmFjdGVyOiJcXGViZmQifSksWG4uYXJyb3dDaXJjbGVSaWdodD1uZXcgWG4oImFycm93LWNpcmNsZS1yaWdodCIse2ZvbnRDaGFyYWN0ZXI6IlxcZWJmZSJ9KSxYbi5hcnJvd0NpcmNsZVVwPW5ldyBYbigiYXJyb3ctY2lyY2xlLXVwIix7Zm9udENoYXJhY3RlcjoiXFxlYmZmIn0pLFhuLmRpYWxvZ0Vycm9yPW5ldyBYbigiZGlhbG9nLWVycm9yIixYbi5lcnJvci5kZWZpbml0aW9uKSxYbi5kaWFsb2dXYXJuaW5nPW5ldyBYbigiZGlhbG9nLXdhcm5pbmciLFhuLndhcm5pbmcuZGVmaW5pdGlvbiksWG4uZGlhbG9nSW5mbz1uZXcgWG4oImRpYWxvZy1pbmZvIixYbi5pbmZvLmRlZmluaXRpb24pLFhuLmRpYWxvZ0Nsb3NlPW5ldyBYbigiZGlhbG9nLWNsb3NlIixYbi5jbG9zZS5kZWZpbml0aW9uKSxYbi50cmVlSXRlbUV4cGFuZGVkPW5ldyBYbigidHJlZS1pdGVtLWV4cGFuZGVkIixYbi5jaGV2cm9uRG93bi5kZWZpbml0aW9uKSxYbi50cmVlRmlsdGVyT25UeXBlT249bmV3IFhuKCJ0cmVlLWZpbHRlci1vbi10eXBlLW9uIixYbi5saXN0RmlsdGVyLmRlZmluaXRpb24pLFhuLnRyZWVGaWx0ZXJPblR5cGVPZmY9bmV3IFhuKCJ0cmVlLWZpbHRlci1vbi10eXBlLW9mZiIsWG4ubGlzdFNlbGVjdGlvbi5kZWZpbml0aW9uKSxYbi50cmVlRmlsdGVyQ2xlYXI9bmV3IFhuKCJ0cmVlLWZpbHRlci1jbGVhciIsWG4uY2xvc2UuZGVmaW5pdGlvbiksWG4udHJlZUl0ZW1Mb2FkaW5nPW5ldyBYbigidHJlZS1pdGVtLWxvYWRpbmciLFhuLmxvYWRpbmcuZGVmaW5pdGlvbiksWG4ubWVudVNlbGVjdGlvbj1uZXcgWG4oIm1lbnUtc2VsZWN0aW9uIixYbi5jaGVjay5kZWZpbml0aW9uKSxYbi5tZW51U3VibWVudT1uZXcgWG4oIm1lbnUtc3VibWVudSIsWG4uY2hldnJvblJpZ2h0LmRlZmluaXRpb24pLFhuLm1lbnVCYXJNb3JlPW5ldyBYbigibWVudWJhci1tb3JlIixYbi5tb3JlLmRlZmluaXRpb24pLFhuLnNjcm9sbGJhckJ1dHRvbkxlZnQ9bmV3IFhuKCJzY3JvbGxiYXItYnV0dG9uLWxlZnQiLFhuLnRyaWFuZ2xlTGVmdC5kZWZpbml0aW9uKSxYbi5zY3JvbGxiYXJCdXR0b25SaWdodD1uZXcgWG4oInNjcm9sbGJhci1idXR0b24tcmlnaHQiLFhuLnRyaWFuZ2xlUmlnaHQuZGVmaW5pdGlvbiksWG4uc2Nyb2xsYmFyQnV0dG9uVXA9bmV3IFhuKCJzY3JvbGxiYXItYnV0dG9uLXVwIixYbi50cmlhbmdsZVVwLmRlZmluaXRpb24pLFhuLnNjcm9sbGJhckJ1dHRvbkRvd249bmV3IFhuKCJzY3JvbGxiYXItYnV0dG9uLWRvd24iLFhuLnRyaWFuZ2xlRG93bi5kZWZpbml0aW9uKSxYbi50b29sQmFyTW9yZT1uZXcgWG4oInRvb2xiYXItbW9yZSIsWG4ubW9yZS5kZWZpbml0aW9uKSxYbi5xdWlja0lucHV0QmFjaz1uZXcgWG4oInF1aWNrLWlucHV0LWJhY2siLFhuLmFycm93TGVmdC5kZWZpbml0aW9uKSxmdW5jdGlvbihlKXtlLmljb25OYW1lU2VnbWVudD0iW0EtWmEtejAtOV0rIixlLmljb25OYW1lRXhwcmVzc2lvbj0iW0EtWmEtejAtOS1dKyIsZS5pY29uTW9kaWZpZXJFeHByZXNzaW9uPSJ+W0EtWmEtel0rIixlLmljb25OYW1lQ2hhcmFjdGVyPSJbQS1aYS16MC05fi1dIjtjb25zdCB0PW5ldyBSZWdFeHAoYF4oJHtlLmljb25OYW1lRXhwcmVzc2lvbn0pKCR7ZS5pY29uTW9kaWZpZXJFeHByZXNzaW9ufSk/JGApO2Z1bmN0aW9uIG4oZSl7aWYoZSBpbnN0YW5jZW9mIFhuKXJldHVyblsiY29kaWNvbiIsImNvZGljb24tIitlLmlkXTtjb25zdCByPXQuZXhlYyhlLmlkKTtpZighcilyZXR1cm4gbihYbi5lcnJvcik7bGV0WyxpLG9dPXI7Y29uc3QgYT1bImNvZGljb24iLCJjb2RpY29uLSIraV07cmV0dXJuIG8mJmEucHVzaCgiY29kaWNvbi1tb2RpZmllci0iK28uc3Vic3RyKDEpKSxhfWUuYXNDbGFzc05hbWVBcnJheT1uLGUuYXNDbGFzc05hbWU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSkuam9pbigiICIpfSxlLmFzQ1NTU2VsZWN0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIi4iK24oZSkuam9pbigiLiIpfX0oRnR8fChGdD17fSkpO2NsYXNzIGVye2NvbnN0cnVjdG9yKGUsdCxuKXt0aGlzLl90b2tlbkJyYW5kPXZvaWQgMCx0aGlzLm9mZnNldD1lLHRoaXMudHlwZT10LHRoaXMubGFuZ3VhZ2U9bn10b1N0cmluZygpe3JldHVybiIoIit0aGlzLm9mZnNldCsiLCAiK3RoaXMudHlwZSsiKSJ9fWNsYXNzIHRye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fdG9rZW5pemF0aW9uUmVzdWx0QnJhbmQ9dm9pZCAwLHRoaXMudG9rZW5zPWUsdGhpcy5lbmRTdGF0ZT10fX1jbGFzcyBucntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2VuY29kZWRUb2tlbml6YXRpb25SZXN1bHRCcmFuZD12b2lkIDAsdGhpcy50b2tlbnM9ZSx0aGlzLmVuZFN0YXRlPXR9fSFmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBNYXA7dC5zZXQoMCxYbi5zeW1ib2xNZXRob2QpLHQuc2V0KDEsWG4uc3ltYm9sRnVuY3Rpb24pLHQuc2V0KDIsWG4uc3ltYm9sQ29uc3RydWN0b3IpLHQuc2V0KDMsWG4uc3ltYm9sRmllbGQpLHQuc2V0KDQsWG4uc3ltYm9sVmFyaWFibGUpLHQuc2V0KDUsWG4uc3ltYm9sQ2xhc3MpLHQuc2V0KDYsWG4uc3ltYm9sU3RydWN0KSx0LnNldCg3LFhuLnN5bWJvbEludGVyZmFjZSksdC5zZXQoOCxYbi5zeW1ib2xNb2R1bGUpLHQuc2V0KDksWG4uc3ltYm9sUHJvcGVydHkpLHQuc2V0KDEwLFhuLnN5bWJvbEV2ZW50KSx0LnNldCgxMSxYbi5zeW1ib2xPcGVyYXRvciksdC5zZXQoMTIsWG4uc3ltYm9sVW5pdCksdC5zZXQoMTMsWG4uc3ltYm9sVmFsdWUpLHQuc2V0KDE1LFhuLnN5bWJvbEVudW0pLHQuc2V0KDE0LFhuLnN5bWJvbENvbnN0YW50KSx0LnNldCgxNSxYbi5zeW1ib2xFbnVtKSx0LnNldCgxNixYbi5zeW1ib2xFbnVtTWVtYmVyKSx0LnNldCgxNyxYbi5zeW1ib2xLZXl3b3JkKSx0LnNldCgyNyxYbi5zeW1ib2xTbmlwcGV0KSx0LnNldCgxOCxYbi5zeW1ib2xUZXh0KSx0LnNldCgxOSxYbi5zeW1ib2xDb2xvciksdC5zZXQoMjAsWG4uc3ltYm9sRmlsZSksdC5zZXQoMjEsWG4uc3ltYm9sUmVmZXJlbmNlKSx0LnNldCgyMixYbi5zeW1ib2xDdXN0b21Db2xvciksdC5zZXQoMjMsWG4uc3ltYm9sRm9sZGVyKSx0LnNldCgyNCxYbi5zeW1ib2xUeXBlUGFyYW1ldGVyKSx0LnNldCgyNSxYbi5hY2NvdW50KSx0LnNldCgyNixYbi5pc3N1ZXMpLGUudG9JY29uPWZ1bmN0aW9uKGUpe2xldCBuPXQuZ2V0KGUpO3JldHVybiBufHwoY29uc29sZS5pbmZvKCJObyBjb2RpY29uIGZvdW5kIGZvciBDb21wbGV0aW9uSXRlbUtpbmQgIitlKSxuPVhuLnN5bWJvbFByb3BlcnR5KSxufTtjb25zdCBuPW5ldyBNYXA7bi5zZXQoIm1ldGhvZCIsMCksbi5zZXQoImZ1bmN0aW9uIiwxKSxuLnNldCgiY29uc3RydWN0b3IiLDIpLG4uc2V0KCJmaWVsZCIsMyksbi5zZXQoInZhcmlhYmxlIiw0KSxuLnNldCgiY2xhc3MiLDUpLG4uc2V0KCJzdHJ1Y3QiLDYpLG4uc2V0KCJpbnRlcmZhY2UiLDcpLG4uc2V0KCJtb2R1bGUiLDgpLG4uc2V0KCJwcm9wZXJ0eSIsOSksbi5zZXQoImV2ZW50IiwxMCksbi5zZXQoIm9wZXJhdG9yIiwxMSksbi5zZXQoInVuaXQiLDEyKSxuLnNldCgidmFsdWUiLDEzKSxuLnNldCgiY29uc3RhbnQiLDE0KSxuLnNldCgiZW51bSIsMTUpLG4uc2V0KCJlbnVtLW1lbWJlciIsMTYpLG4uc2V0KCJlbnVtTWVtYmVyIiwxNiksbi5zZXQoImtleXdvcmQiLDE3KSxuLnNldCgic25pcHBldCIsMjcpLG4uc2V0KCJ0ZXh0IiwxOCksbi5zZXQoImNvbG9yIiwxOSksbi5zZXQoImZpbGUiLDIwKSxuLnNldCgicmVmZXJlbmNlIiwyMSksbi5zZXQoImN1c3RvbWNvbG9yIiwyMiksbi5zZXQoImZvbGRlciIsMjMpLG4uc2V0KCJ0eXBlLXBhcmFtZXRlciIsMjQpLG4uc2V0KCJ0eXBlUGFyYW1ldGVyIiwyNCksbi5zZXQoImFjY291bnQiLDI1KSxuLnNldCgiaXNzdWUiLDI2KSxlLmZyb21TdHJpbmc9ZnVuY3Rpb24oZSx0KXtsZXQgcj1uLmdldChlKTtyZXR1cm4gdm9pZCAwIT09cnx8dHx8KHI9OSkscn19KFZ0fHwoVnQ9e30pKSxmdW5jdGlvbihlKXtlW2UuQXV0b21hdGljPTBdPSJBdXRvbWF0aWMiLGVbZS5FeHBsaWNpdD0xXT0iRXhwbGljaXQifShCdHx8KEJ0PXt9KSksZnVuY3Rpb24oZSl7ZVtlLkludm9rZT0xXT0iSW52b2tlIixlW2UuVHJpZ2dlckNoYXJhY3Rlcj0yXT0iVHJpZ2dlckNoYXJhY3RlciIsZVtlLkNvbnRlbnRDaGFuZ2U9M109IkNvbnRlbnRDaGFuZ2UifShVdHx8KFV0PXt9KSksZnVuY3Rpb24oZSl7ZVtlLlRleHQ9MF09IlRleHQiLGVbZS5SZWFkPTFdPSJSZWFkIixlW2UuV3JpdGU9Ml09IldyaXRlIn0ocXR8fChxdD17fSkpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IE1hcDt0LnNldCgwLFhuLnN5bWJvbEZpbGUpLHQuc2V0KDEsWG4uc3ltYm9sTW9kdWxlKSx0LnNldCgyLFhuLnN5bWJvbE5hbWVzcGFjZSksdC5zZXQoMyxYbi5zeW1ib2xQYWNrYWdlKSx0LnNldCg0LFhuLnN5bWJvbENsYXNzKSx0LnNldCg1LFhuLnN5bWJvbE1ldGhvZCksdC5zZXQoNixYbi5zeW1ib2xQcm9wZXJ0eSksdC5zZXQoNyxYbi5zeW1ib2xGaWVsZCksdC5zZXQoOCxYbi5zeW1ib2xDb25zdHJ1Y3RvciksdC5zZXQoOSxYbi5zeW1ib2xFbnVtKSx0LnNldCgxMCxYbi5zeW1ib2xJbnRlcmZhY2UpLHQuc2V0KDExLFhuLnN5bWJvbEZ1bmN0aW9uKSx0LnNldCgxMixYbi5zeW1ib2xWYXJpYWJsZSksdC5zZXQoMTMsWG4uc3ltYm9sQ29uc3RhbnQpLHQuc2V0KDE0LFhuLnN5bWJvbFN0cmluZyksdC5zZXQoMTUsWG4uc3ltYm9sTnVtYmVyKSx0LnNldCgxNixYbi5zeW1ib2xCb29sZWFuKSx0LnNldCgxNyxYbi5zeW1ib2xBcnJheSksdC5zZXQoMTgsWG4uc3ltYm9sT2JqZWN0KSx0LnNldCgxOSxYbi5zeW1ib2xLZXkpLHQuc2V0KDIwLFhuLnN5bWJvbE51bGwpLHQuc2V0KDIxLFhuLnN5bWJvbEVudW1NZW1iZXIpLHQuc2V0KDIyLFhuLnN5bWJvbFN0cnVjdCksdC5zZXQoMjMsWG4uc3ltYm9sRXZlbnQpLHQuc2V0KDI0LFhuLnN5bWJvbE9wZXJhdG9yKSx0LnNldCgyNSxYbi5zeW1ib2xUeXBlUGFyYW1ldGVyKSxlLnRvSWNvbj1mdW5jdGlvbihlKXtsZXQgbj10LmdldChlKTtyZXR1cm4gbnx8KGNvbnNvbGUuaW5mbygiTm8gY29kaWNvbiBmb3VuZCBmb3IgU3ltYm9sS2luZCAiK2UpLG49WG4uc3ltYm9sUHJvcGVydHkpLG59fShIdHx8KEh0PXt9KSksZnVuY3Rpb24oZSl7ZS5pcz1mdW5jdGlvbihlKXtyZXR1cm4hKCFlfHwib2JqZWN0IiE9dHlwZW9mIGUpJiYoInN0cmluZyI9PXR5cGVvZiBlLmlkJiYic3RyaW5nIj09dHlwZW9mIGUudGl0bGUpfX0oV3R8fChXdD17fSkpLGZ1bmN0aW9uKGUpe2VbZS5UeXBlPTFdPSJUeXBlIixlW2UuUGFyYW1ldGVyPTJdPSJQYXJhbWV0ZXIifSh6dHx8KHp0PXt9KSksbmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fbWFwPW5ldyBNYXAsdGhpcy5fZmFjdG9yaWVzPW5ldyBNYXAsdGhpcy5fb25EaWRDaGFuZ2U9bmV3IFUsdGhpcy5vbkRpZENoYW5nZT10aGlzLl9vbkRpZENoYW5nZS5ldmVudCx0aGlzLl9jb2xvck1hcD1udWxsfWZpcmUoZSl7dGhpcy5fb25EaWRDaGFuZ2UuZmlyZSh7Y2hhbmdlZExhbmd1YWdlczplLGNoYW5nZWRDb2xvck1hcDohMX0pfXJlZ2lzdGVyKGUsdCl7cmV0dXJuIHRoaXMuX21hcC5zZXQoZSx0KSx0aGlzLmZpcmUoW2VdKSxkKCgoKT0+e3RoaXMuX21hcC5nZXQoZSk9PT10JiYodGhpcy5fbWFwLmRlbGV0ZShlKSx0aGlzLmZpcmUoW2VdKSl9KSl9cmVnaXN0ZXJGYWN0b3J5KGUsdCl7dmFyIG47bnVsbD09PShuPXRoaXMuX2ZhY3Rvcmllcy5nZXQoZSkpfHx2b2lkIDA9PT1ufHxuLmRpc3Bvc2UoKTtjb25zdCByPW5ldyBRbih0aGlzLGUsdCk7cmV0dXJuIHRoaXMuX2ZhY3Rvcmllcy5zZXQoZSxyKSxkKCgoKT0+e2NvbnN0IHQ9dGhpcy5fZmFjdG9yaWVzLmdldChlKTt0JiZ0PT09ciYmKHRoaXMuX2ZhY3Rvcmllcy5kZWxldGUoZSksdC5kaXNwb3NlKCkpfSkpfWdldE9yQ3JlYXRlKGUpe3JldHVybiBKbih0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9dGhpcy5nZXQoZSk7aWYodClyZXR1cm4gdDtjb25zdCBuPXRoaXMuX2ZhY3Rvcmllcy5nZXQoZSk7cmV0dXJuIW58fG4uaXNSZXNvbHZlZD9udWxsOih5aWVsZCBuLnJlc29sdmUoKSx0aGlzLmdldChlKSl9KSl9Z2V0KGUpe3JldHVybiB0aGlzLl9tYXAuZ2V0KGUpfHxudWxsfWlzUmVzb2x2ZWQoZSl7aWYodGhpcy5nZXQoZSkpcmV0dXJuITA7Y29uc3QgdD10aGlzLl9mYWN0b3JpZXMuZ2V0KGUpO3JldHVybiEodCYmIXQuaXNSZXNvbHZlZCl9c2V0Q29sb3JNYXAoZSl7dGhpcy5fY29sb3JNYXA9ZSx0aGlzLl9vbkRpZENoYW5nZS5maXJlKHtjaGFuZ2VkTGFuZ3VhZ2VzOkFycmF5LmZyb20odGhpcy5fbWFwLmtleXMoKSksY2hhbmdlZENvbG9yTWFwOiEwfSl9Z2V0Q29sb3JNYXAoKXtyZXR1cm4gdGhpcy5fY29sb3JNYXB9Z2V0RGVmYXVsdEJhY2tncm91bmQoKXtyZXR1cm4gdGhpcy5fY29sb3JNYXAmJnRoaXMuX2NvbG9yTWFwLmxlbmd0aD4yP3RoaXMuX2NvbG9yTWFwWzJdOm51bGx9fSxmdW5jdGlvbihlKXtlW2UuVW5rbm93bj0wXT0iVW5rbm93biIsZVtlLkRpc2FibGVkPTFdPSJEaXNhYmxlZCIsZVtlLkVuYWJsZWQ9Ml09IkVuYWJsZWQifSgkdHx8KCR0PXt9KSksZnVuY3Rpb24oZSl7ZVtlLk5vbmU9MF09Ik5vbmUiLGVbZS5EZWZhdWx0Rm9yZWdyb3VuZD0xXT0iRGVmYXVsdEZvcmVncm91bmQiLGVbZS5EZWZhdWx0QmFja2dyb3VuZD0yXT0iRGVmYXVsdEJhY2tncm91bmQifShHdHx8KEd0PXt9KSksZnVuY3Rpb24oZSl7ZS5EQVJLPSJkYXJrIixlLkxJR0hUPSJsaWdodCIsZS5ISUdIX0NPTlRSQVNUPSJoYyJ9KGp0fHwoanQ9e30pKSxmdW5jdGlvbihlKXtlW2UuS2VlcFdoaXRlc3BhY2U9MV09IktlZXBXaGl0ZXNwYWNlIixlW2UuSW5zZXJ0QXNTbmlwcGV0PTRdPSJJbnNlcnRBc1NuaXBwZXQifShZdHx8KFl0PXt9KSksZnVuY3Rpb24oZSl7ZVtlLk1ldGhvZD0wXT0iTWV0aG9kIixlW2UuRnVuY3Rpb249MV09IkZ1bmN0aW9uIixlW2UuQ29uc3RydWN0b3I9Ml09IkNvbnN0cnVjdG9yIixlW2UuRmllbGQ9M109IkZpZWxkIixlW2UuVmFyaWFibGU9NF09IlZhcmlhYmxlIixlW2UuQ2xhc3M9NV09IkNsYXNzIixlW2UuU3RydWN0PTZdPSJTdHJ1Y3QiLGVbZS5JbnRlcmZhY2U9N109IkludGVyZmFjZSIsZVtlLk1vZHVsZT04XT0iTW9kdWxlIixlW2UuUHJvcGVydHk9OV09IlByb3BlcnR5IixlW2UuRXZlbnQ9MTBdPSJFdmVudCIsZVtlLk9wZXJhdG9yPTExXT0iT3BlcmF0b3IiLGVbZS5Vbml0PTEyXT0iVW5pdCIsZVtlLlZhbHVlPTEzXT0iVmFsdWUiLGVbZS5Db25zdGFudD0xNF09IkNvbnN0YW50IixlW2UuRW51bT0xNV09IkVudW0iLGVbZS5FbnVtTWVtYmVyPTE2XT0iRW51bU1lbWJlciIsZVtlLktleXdvcmQ9MTddPSJLZXl3b3JkIixlW2UuVGV4dD0xOF09IlRleHQiLGVbZS5Db2xvcj0xOV09IkNvbG9yIixlW2UuRmlsZT0yMF09IkZpbGUiLGVbZS5SZWZlcmVuY2U9MjFdPSJSZWZlcmVuY2UiLGVbZS5DdXN0b21jb2xvcj0yMl09IkN1c3RvbWNvbG9yIixlW2UuRm9sZGVyPTIzXT0iRm9sZGVyIixlW2UuVHlwZVBhcmFtZXRlcj0yNF09IlR5cGVQYXJhbWV0ZXIiLGVbZS5Vc2VyPTI1XT0iVXNlciIsZVtlLklzc3VlPTI2XT0iSXNzdWUiLGVbZS5TbmlwcGV0PTI3XT0iU25pcHBldCJ9KFp0fHwoWnQ9e30pKSxmdW5jdGlvbihlKXtlW2UuRGVwcmVjYXRlZD0xXT0iRGVwcmVjYXRlZCJ9KEp0fHwoSnQ9e30pKSxmdW5jdGlvbihlKXtlW2UuSW52b2tlPTBdPSJJbnZva2UiLGVbZS5UcmlnZ2VyQ2hhcmFjdGVyPTFdPSJUcmlnZ2VyQ2hhcmFjdGVyIixlW2UuVHJpZ2dlckZvckluY29tcGxldGVDb21wbGV0aW9ucz0yXT0iVHJpZ2dlckZvckluY29tcGxldGVDb21wbGV0aW9ucyJ9KFF0fHwoUXQ9e30pKSxmdW5jdGlvbihlKXtlW2UuQVBQTElDQVRJT049MV09IkFQUExJQ0FUSU9OIixlW2UuTUFDSElORT0yXT0iTUFDSElORSIsZVtlLldJTkRPVz0zXT0iV0lORE9XIixlW2UuUkVTT1VSQ0U9NF09IlJFU09VUkNFIixlW2UuTEFOR1VBR0VfT1ZFUlJJREFCTEU9NV09IkxBTkdVQUdFX09WRVJSSURBQkxFIixlW2UuTUFDSElORV9PVkVSUklEQUJMRT02XT0iTUFDSElORV9PVkVSUklEQUJMRSJ9KFh0fHwoWHQ9e30pKSxmdW5jdGlvbihlKXtlW2UuVVNFUj0xXT0iVVNFUiIsZVtlLlVTRVJfTE9DQUw9Ml09IlVTRVJfTE9DQUwiLGVbZS5VU0VSX1JFTU9URT0zXT0iVVNFUl9SRU1PVEUiLGVbZS5XT1JLU1BBQ0U9NF09IldPUktTUEFDRSIsZVtlLldPUktTUEFDRV9GT0xERVI9NV09IldPUktTUEFDRV9GT0xERVIiLGVbZS5ERUZBVUxUPTZdPSJERUZBVUxUIixlW2UuTUVNT1JZPTddPSJNRU1PUlkifShlbnx8KGVuPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkVYQUNUPTBdPSJFWEFDVCIsZVtlLkFCT1ZFPTFdPSJBQk9WRSIsZVtlLkJFTE9XPTJdPSJCRUxPVyJ9KHRufHwodG49e30pKSxmdW5jdGlvbihlKXtlW2UuRmFsc2U9MF09IkZhbHNlIixlW2UuVHJ1ZT0xXT0iVHJ1ZSIsZVtlLkRlZmluZWQ9Ml09IkRlZmluZWQiLGVbZS5Ob3Q9M109Ik5vdCIsZVtlLkVxdWFscz00XT0iRXF1YWxzIixlW2UuTm90RXF1YWxzPTVdPSJOb3RFcXVhbHMiLGVbZS5BbmQ9Nl09IkFuZCIsZVtlLlJlZ2V4PTddPSJSZWdleCIsZVtlLk5vdFJlZ2V4PThdPSJOb3RSZWdleCIsZVtlLk9yPTldPSJPciIsZVtlLkluPTEwXT0iSW4iLGVbZS5Ob3RJbj0xMV09Ik5vdEluIixlW2UuR3JlYXRlcj0xMl09IkdyZWF0ZXIiLGVbZS5HcmVhdGVyRXF1YWxzPTEzXT0iR3JlYXRlckVxdWFscyIsZVtlLlNtYWxsZXI9MTRdPSJTbWFsbGVyIixlW2UuU21hbGxlckVxdWFscz0xNV09IlNtYWxsZXJFcXVhbHMifShubnx8KG5uPXt9KSksZnVuY3Rpb24oZSl7ZVtlLk5vdFNldD0wXT0iTm90U2V0IixlW2UuQ29udGVudEZsdXNoPTFdPSJDb250ZW50Rmx1c2giLGVbZS5SZWNvdmVyRnJvbU1hcmtlcnM9Ml09IlJlY292ZXJGcm9tTWFya2VycyIsZVtlLkV4cGxpY2l0PTNdPSJFeHBsaWNpdCIsZVtlLlBhc3RlPTRdPSJQYXN0ZSIsZVtlLlVuZG89NV09IlVuZG8iLGVbZS5SZWRvPTZdPSJSZWRvIn0ocm58fChybj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5MRj0xXT0iTEYiLGVbZS5DUkxGPTJdPSJDUkxGIn0ob258fChvbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5UZXh0PTBdPSJUZXh0IixlW2UuUmVhZD0xXT0iUmVhZCIsZVtlLldyaXRlPTJdPSJXcml0ZSJ9KGFufHwoYW49e30pKSxmdW5jdGlvbihlKXtlLk11bHRpbGluZT0ibXVsdGlsaW5lVGV4dCIsZS5TaW5nbGVsaW5lPSJzaW5nbGVsaW5lVGV4dCJ9KHNufHwoc249e30pKSxmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLktlZXA9MV09IktlZXAiLGVbZS5CcmFja2V0cz0yXT0iQnJhY2tldHMiLGVbZS5BZHZhbmNlZD0zXT0iQWR2YW5jZWQiLGVbZS5GdWxsPTRdPSJGdWxsIn0obG58fChsbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5hY2NlcHRTdWdnZXN0aW9uT25Db21taXRDaGFyYWN0ZXI9MF09ImFjY2VwdFN1Z2dlc3Rpb25PbkNvbW1pdENoYXJhY3RlciIsZVtlLmFjY2VwdFN1Z2dlc3Rpb25PbkVudGVyPTFdPSJhY2NlcHRTdWdnZXN0aW9uT25FbnRlciIsZVtlLmFjY2Vzc2liaWxpdHlTdXBwb3J0PTJdPSJhY2Nlc3NpYmlsaXR5U3VwcG9ydCIsZVtlLmFjY2Vzc2liaWxpdHlQYWdlU2l6ZT0zXT0iYWNjZXNzaWJpbGl0eVBhZ2VTaXplIixlW2UuYXJpYUxhYmVsPTRdPSJhcmlhTGFiZWwiLGVbZS5hdXRvQ2xvc2luZ0JyYWNrZXRzPTVdPSJhdXRvQ2xvc2luZ0JyYWNrZXRzIixlW2UuYXV0b0Nsb3NpbmdEZWxldGU9Nl09ImF1dG9DbG9zaW5nRGVsZXRlIixlW2UuYXV0b0Nsb3NpbmdPdmVydHlwZT03XT0iYXV0b0Nsb3NpbmdPdmVydHlwZSIsZVtlLmF1dG9DbG9zaW5nUXVvdGVzPThdPSJhdXRvQ2xvc2luZ1F1b3RlcyIsZVtlLmF1dG9JbmRlbnQ9OV09ImF1dG9JbmRlbnQiLGVbZS5hdXRvbWF0aWNMYXlvdXQ9MTBdPSJhdXRvbWF0aWNMYXlvdXQiLGVbZS5hdXRvU3Vycm91bmQ9MTFdPSJhdXRvU3Vycm91bmQiLGVbZS5icmFja2V0UGFpckNvbG9yaXphdGlvbj0xMl09ImJyYWNrZXRQYWlyQ29sb3JpemF0aW9uIixlW2UuZ3VpZGVzPTEzXT0iZ3VpZGVzIixlW2UuY29kZUxlbnM9MTRdPSJjb2RlTGVucyIsZVtlLmNvZGVMZW5zRm9udEZhbWlseT0xNV09ImNvZGVMZW5zRm9udEZhbWlseSIsZVtlLmNvZGVMZW5zRm9udFNpemU9MTZdPSJjb2RlTGVuc0ZvbnRTaXplIixlW2UuY29sb3JEZWNvcmF0b3JzPTE3XT0iY29sb3JEZWNvcmF0b3JzIixlW2UuY29sdW1uU2VsZWN0aW9uPTE4XT0iY29sdW1uU2VsZWN0aW9uIixlW2UuY29tbWVudHM9MTldPSJjb21tZW50cyIsZVtlLmNvbnRleHRtZW51PTIwXT0iY29udGV4dG1lbnUiLGVbZS5jb3B5V2l0aFN5bnRheEhpZ2hsaWdodGluZz0yMV09ImNvcHlXaXRoU3ludGF4SGlnaGxpZ2h0aW5nIixlW2UuY3Vyc29yQmxpbmtpbmc9MjJdPSJjdXJzb3JCbGlua2luZyIsZVtlLmN1cnNvclNtb290aENhcmV0QW5pbWF0aW9uPTIzXT0iY3Vyc29yU21vb3RoQ2FyZXRBbmltYXRpb24iLGVbZS5jdXJzb3JTdHlsZT0yNF09ImN1cnNvclN0eWxlIixlW2UuY3Vyc29yU3Vycm91bmRpbmdMaW5lcz0yNV09ImN1cnNvclN1cnJvdW5kaW5nTGluZXMiLGVbZS5jdXJzb3JTdXJyb3VuZGluZ0xpbmVzU3R5bGU9MjZdPSJjdXJzb3JTdXJyb3VuZGluZ0xpbmVzU3R5bGUiLGVbZS5jdXJzb3JXaWR0aD0yN109ImN1cnNvcldpZHRoIixlW2UuZGlzYWJsZUxheWVySGludGluZz0yOF09ImRpc2FibGVMYXllckhpbnRpbmciLGVbZS5kaXNhYmxlTW9ub3NwYWNlT3B0aW1pemF0aW9ucz0yOV09ImRpc2FibGVNb25vc3BhY2VPcHRpbWl6YXRpb25zIixlW2UuZG9tUmVhZE9ubHk9MzBdPSJkb21SZWFkT25seSIsZVtlLmRyYWdBbmREcm9wPTMxXT0iZHJhZ0FuZERyb3AiLGVbZS5lbXB0eVNlbGVjdGlvbkNsaXBib2FyZD0zMl09ImVtcHR5U2VsZWN0aW9uQ2xpcGJvYXJkIixlW2UuZXh0cmFFZGl0b3JDbGFzc05hbWU9MzNdPSJleHRyYUVkaXRvckNsYXNzTmFtZSIsZVtlLmZhc3RTY3JvbGxTZW5zaXRpdml0eT0zNF09ImZhc3RTY3JvbGxTZW5zaXRpdml0eSIsZVtlLmZpbmQ9MzVdPSJmaW5kIixlW2UuZml4ZWRPdmVyZmxvd1dpZGdldHM9MzZdPSJmaXhlZE92ZXJmbG93V2lkZ2V0cyIsZVtlLmZvbGRpbmc9MzddPSJmb2xkaW5nIixlW2UuZm9sZGluZ1N0cmF0ZWd5PTM4XT0iZm9sZGluZ1N0cmF0ZWd5IixlW2UuZm9sZGluZ0hpZ2hsaWdodD0zOV09ImZvbGRpbmdIaWdobGlnaHQiLGVbZS5mb2xkaW5nSW1wb3J0c0J5RGVmYXVsdD00MF09ImZvbGRpbmdJbXBvcnRzQnlEZWZhdWx0IixlW2UuZm9sZGluZ01heGltdW1SZWdpb25zPTQxXT0iZm9sZGluZ01heGltdW1SZWdpb25zIixlW2UudW5mb2xkT25DbGlja0FmdGVyRW5kT2ZMaW5lPTQyXT0idW5mb2xkT25DbGlja0FmdGVyRW5kT2ZMaW5lIixlW2UuZm9udEZhbWlseT00M109ImZvbnRGYW1pbHkiLGVbZS5mb250SW5mbz00NF09ImZvbnRJbmZvIixlW2UuZm9udExpZ2F0dXJlcz00NV09ImZvbnRMaWdhdHVyZXMiLGVbZS5mb250U2l6ZT00Nl09ImZvbnRTaXplIixlW2UuZm9udFdlaWdodD00N109ImZvbnRXZWlnaHQiLGVbZS5mb3JtYXRPblBhc3RlPTQ4XT0iZm9ybWF0T25QYXN0ZSIsZVtlLmZvcm1hdE9uVHlwZT00OV09ImZvcm1hdE9uVHlwZSIsZVtlLmdseXBoTWFyZ2luPTUwXT0iZ2x5cGhNYXJnaW4iLGVbZS5nb3RvTG9jYXRpb249NTFdPSJnb3RvTG9jYXRpb24iLGVbZS5oaWRlQ3Vyc29ySW5PdmVydmlld1J1bGVyPTUyXT0iaGlkZUN1cnNvckluT3ZlcnZpZXdSdWxlciIsZVtlLmhvdmVyPTUzXT0iaG92ZXIiLGVbZS5pbkRpZmZFZGl0b3I9NTRdPSJpbkRpZmZFZGl0b3IiLGVbZS5pbmxpbmVTdWdnZXN0PTU1XT0iaW5saW5lU3VnZ2VzdCIsZVtlLmxldHRlclNwYWNpbmc9NTZdPSJsZXR0ZXJTcGFjaW5nIixlW2UubGlnaHRidWxiPTU3XT0ibGlnaHRidWxiIixlW2UubGluZURlY29yYXRpb25zV2lkdGg9NThdPSJsaW5lRGVjb3JhdGlvbnNXaWR0aCIsZVtlLmxpbmVIZWlnaHQ9NTldPSJsaW5lSGVpZ2h0IixlW2UubGluZU51bWJlcnM9NjBdPSJsaW5lTnVtYmVycyIsZVtlLmxpbmVOdW1iZXJzTWluQ2hhcnM9NjFdPSJsaW5lTnVtYmVyc01pbkNoYXJzIixlW2UubGlua2VkRWRpdGluZz02Ml09ImxpbmtlZEVkaXRpbmciLGVbZS5saW5rcz02M109ImxpbmtzIixlW2UubWF0Y2hCcmFja2V0cz02NF09Im1hdGNoQnJhY2tldHMiLGVbZS5taW5pbWFwPTY1XT0ibWluaW1hcCIsZVtlLm1vdXNlU3R5bGU9NjZdPSJtb3VzZVN0eWxlIixlW2UubW91c2VXaGVlbFNjcm9sbFNlbnNpdGl2aXR5PTY3XT0ibW91c2VXaGVlbFNjcm9sbFNlbnNpdGl2aXR5IixlW2UubW91c2VXaGVlbFpvb209NjhdPSJtb3VzZVdoZWVsWm9vbSIsZVtlLm11bHRpQ3Vyc29yTWVyZ2VPdmVybGFwcGluZz02OV09Im11bHRpQ3Vyc29yTWVyZ2VPdmVybGFwcGluZyIsZVtlLm11bHRpQ3Vyc29yTW9kaWZpZXI9NzBdPSJtdWx0aUN1cnNvck1vZGlmaWVyIixlW2UubXVsdGlDdXJzb3JQYXN0ZT03MV09Im11bHRpQ3Vyc29yUGFzdGUiLGVbZS5vY2N1cnJlbmNlc0hpZ2hsaWdodD03Ml09Im9jY3VycmVuY2VzSGlnaGxpZ2h0IixlW2Uub3ZlcnZpZXdSdWxlckJvcmRlcj03M109Im92ZXJ2aWV3UnVsZXJCb3JkZXIiLGVbZS5vdmVydmlld1J1bGVyTGFuZXM9NzRdPSJvdmVydmlld1J1bGVyTGFuZXMiLGVbZS5wYWRkaW5nPTc1XT0icGFkZGluZyIsZVtlLnBhcmFtZXRlckhpbnRzPTc2XT0icGFyYW1ldGVySGludHMiLGVbZS5wZWVrV2lkZ2V0RGVmYXVsdEZvY3VzPTc3XT0icGVla1dpZGdldERlZmF1bHRGb2N1cyIsZVtlLmRlZmluaXRpb25MaW5rT3BlbnNJblBlZWs9NzhdPSJkZWZpbml0aW9uTGlua09wZW5zSW5QZWVrIixlW2UucXVpY2tTdWdnZXN0aW9ucz03OV09InF1aWNrU3VnZ2VzdGlvbnMiLGVbZS5xdWlja1N1Z2dlc3Rpb25zRGVsYXk9ODBdPSJxdWlja1N1Z2dlc3Rpb25zRGVsYXkiLGVbZS5yZWFkT25seT04MV09InJlYWRPbmx5IixlW2UucmVuYW1lT25UeXBlPTgyXT0icmVuYW1lT25UeXBlIixlW2UucmVuZGVyQ29udHJvbENoYXJhY3RlcnM9ODNdPSJyZW5kZXJDb250cm9sQ2hhcmFjdGVycyIsZVtlLnJlbmRlckZpbmFsTmV3bGluZT04NF09InJlbmRlckZpbmFsTmV3bGluZSIsZVtlLnJlbmRlckxpbmVIaWdobGlnaHQ9ODVdPSJyZW5kZXJMaW5lSGlnaGxpZ2h0IixlW2UucmVuZGVyTGluZUhpZ2hsaWdodE9ubHlXaGVuRm9jdXM9ODZdPSJyZW5kZXJMaW5lSGlnaGxpZ2h0T25seVdoZW5Gb2N1cyIsZVtlLnJlbmRlclZhbGlkYXRpb25EZWNvcmF0aW9ucz04N109InJlbmRlclZhbGlkYXRpb25EZWNvcmF0aW9ucyIsZVtlLnJlbmRlcldoaXRlc3BhY2U9ODhdPSJyZW5kZXJXaGl0ZXNwYWNlIixlW2UucmV2ZWFsSG9yaXpvbnRhbFJpZ2h0UGFkZGluZz04OV09InJldmVhbEhvcml6b250YWxSaWdodFBhZGRpbmciLGVbZS5yb3VuZGVkU2VsZWN0aW9uPTkwXT0icm91bmRlZFNlbGVjdGlvbiIsZVtlLnJ1bGVycz05MV09InJ1bGVycyIsZVtlLnNjcm9sbGJhcj05Ml09InNjcm9sbGJhciIsZVtlLnNjcm9sbEJleW9uZExhc3RDb2x1bW49OTNdPSJzY3JvbGxCZXlvbmRMYXN0Q29sdW1uIixlW2Uuc2Nyb2xsQmV5b25kTGFzdExpbmU9OTRdPSJzY3JvbGxCZXlvbmRMYXN0TGluZSIsZVtlLnNjcm9sbFByZWRvbWluYW50QXhpcz05NV09InNjcm9sbFByZWRvbWluYW50QXhpcyIsZVtlLnNlbGVjdGlvbkNsaXBib2FyZD05Nl09InNlbGVjdGlvbkNsaXBib2FyZCIsZVtlLnNlbGVjdGlvbkhpZ2hsaWdodD05N109InNlbGVjdGlvbkhpZ2hsaWdodCIsZVtlLnNlbGVjdE9uTGluZU51bWJlcnM9OThdPSJzZWxlY3RPbkxpbmVOdW1iZXJzIixlW2Uuc2hvd0ZvbGRpbmdDb250cm9scz05OV09InNob3dGb2xkaW5nQ29udHJvbHMiLGVbZS5zaG93VW51c2VkPTEwMF09InNob3dVbnVzZWQiLGVbZS5zbmlwcGV0U3VnZ2VzdGlvbnM9MTAxXT0ic25pcHBldFN1Z2dlc3Rpb25zIixlW2Uuc21hcnRTZWxlY3Q9MTAyXT0ic21hcnRTZWxlY3QiLGVbZS5zbW9vdGhTY3JvbGxpbmc9MTAzXT0ic21vb3RoU2Nyb2xsaW5nIixlW2Uuc3RpY2t5VGFiU3RvcHM9MTA0XT0ic3RpY2t5VGFiU3RvcHMiLGVbZS5zdG9wUmVuZGVyaW5nTGluZUFmdGVyPTEwNV09InN0b3BSZW5kZXJpbmdMaW5lQWZ0ZXIiLGVbZS5zdWdnZXN0PTEwNl09InN1Z2dlc3QiLGVbZS5zdWdnZXN0Rm9udFNpemU9MTA3XT0ic3VnZ2VzdEZvbnRTaXplIixlW2Uuc3VnZ2VzdExpbmVIZWlnaHQ9MTA4XT0ic3VnZ2VzdExpbmVIZWlnaHQiLGVbZS5zdWdnZXN0T25UcmlnZ2VyQ2hhcmFjdGVycz0xMDldPSJzdWdnZXN0T25UcmlnZ2VyQ2hhcmFjdGVycyIsZVtlLnN1Z2dlc3RTZWxlY3Rpb249MTEwXT0ic3VnZ2VzdFNlbGVjdGlvbiIsZVtlLnRhYkNvbXBsZXRpb249MTExXT0idGFiQ29tcGxldGlvbiIsZVtlLnRhYkluZGV4PTExMl09InRhYkluZGV4IixlW2UudW5pY29kZUhpZ2hsaWdodGluZz0xMTNdPSJ1bmljb2RlSGlnaGxpZ2h0aW5nIixlW2UudW51c3VhbExpbmVUZXJtaW5hdG9ycz0xMTRdPSJ1bnVzdWFsTGluZVRlcm1pbmF0b3JzIixlW2UudXNlU2hhZG93RE9NPTExNV09InVzZVNoYWRvd0RPTSIsZVtlLnVzZVRhYlN0b3BzPTExNl09InVzZVRhYlN0b3BzIixlW2Uud29yZFNlcGFyYXRvcnM9MTE3XT0id29yZFNlcGFyYXRvcnMiLGVbZS53b3JkV3JhcD0xMThdPSJ3b3JkV3JhcCIsZVtlLndvcmRXcmFwQnJlYWtBZnRlckNoYXJhY3RlcnM9MTE5XT0id29yZFdyYXBCcmVha0FmdGVyQ2hhcmFjdGVycyIsZVtlLndvcmRXcmFwQnJlYWtCZWZvcmVDaGFyYWN0ZXJzPTEyMF09IndvcmRXcmFwQnJlYWtCZWZvcmVDaGFyYWN0ZXJzIixlW2Uud29yZFdyYXBDb2x1bW49MTIxXT0id29yZFdyYXBDb2x1bW4iLGVbZS53b3JkV3JhcE92ZXJyaWRlMT0xMjJdPSJ3b3JkV3JhcE92ZXJyaWRlMSIsZVtlLndvcmRXcmFwT3ZlcnJpZGUyPTEyM109IndvcmRXcmFwT3ZlcnJpZGUyIixlW2Uud3JhcHBpbmdJbmRlbnQ9MTI0XT0id3JhcHBpbmdJbmRlbnQiLGVbZS53cmFwcGluZ1N0cmF0ZWd5PTEyNV09IndyYXBwaW5nU3RyYXRlZ3kiLGVbZS5zaG93RGVwcmVjYXRlZD0xMjZdPSJzaG93RGVwcmVjYXRlZCIsZVtlLmlubGF5SGludHM9MTI3XT0iaW5sYXlIaW50cyIsZVtlLmVkaXRvckNsYXNzTmFtZT0xMjhdPSJlZGl0b3JDbGFzc05hbWUiLGVbZS5waXhlbFJhdGlvPTEyOV09InBpeGVsUmF0aW8iLGVbZS50YWJGb2N1c01vZGU9MTMwXT0idGFiRm9jdXNNb2RlIixlW2UubGF5b3V0SW5mbz0xMzFdPSJsYXlvdXRJbmZvIixlW2Uud3JhcHBpbmdJbmZvPTEzMl09IndyYXBwaW5nSW5mbyJ9KGNufHwoY249e30pKSxmdW5jdGlvbihlKXtlW2UuVGV4dERlZmluZWQ9MF09IlRleHREZWZpbmVkIixlW2UuTEY9MV09IkxGIixlW2UuQ1JMRj0yXT0iQ1JMRiJ9KHVufHwodW49e30pKSxmdW5jdGlvbihlKXtlW2UuTEY9MF09IkxGIixlW2UuQ1JMRj0xXT0iQ1JMRiJ9KGhufHwoaG49e30pKSxmdW5jdGlvbihlKXtlW2UuU3lzdGVtPTBdPSJTeXN0ZW0iLGVbZS5Vc2VyPTFdPSJVc2VyIn0oZG58fChkbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuSW5kZW50PTFdPSJJbmRlbnQiLGVbZS5JbmRlbnRPdXRkZW50PTJdPSJJbmRlbnRPdXRkZW50IixlW2UuT3V0ZGVudD0zXT0iT3V0ZGVudCJ9KGZufHwoZm49e30pKSxmdW5jdGlvbihlKXtlW2UuQm90aD0wXT0iQm90aCIsZVtlLlJpZ2h0PTFdPSJSaWdodCIsZVtlLkxlZnQ9Ml09IkxlZnQiLGVbZS5Ob25lPTNdPSJOb25lIn0obW58fChtbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5UeXBlPTFdPSJUeXBlIixlW2UuUGFyYW1ldGVyPTJdPSJQYXJhbWV0ZXIifShnbnx8KGduPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkF1dG9tYXRpYz0wXT0iQXV0b21hdGljIixlW2UuRXhwbGljaXQ9MV09IkV4cGxpY2l0In0ocG58fChwbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5EZXBlbmRzT25LYkxheW91dD0tMV09IkRlcGVuZHNPbktiTGF5b3V0IixlW2UuVW5rbm93bj0wXT0iVW5rbm93biIsZVtlLkJhY2tzcGFjZT0xXT0iQmFja3NwYWNlIixlW2UuVGFiPTJdPSJUYWIiLGVbZS5FbnRlcj0zXT0iRW50ZXIiLGVbZS5TaGlmdD00XT0iU2hpZnQiLGVbZS5DdHJsPTVdPSJDdHJsIixlW2UuQWx0PTZdPSJBbHQiLGVbZS5QYXVzZUJyZWFrPTddPSJQYXVzZUJyZWFrIixlW2UuQ2Fwc0xvY2s9OF09IkNhcHNMb2NrIixlW2UuRXNjYXBlPTldPSJFc2NhcGUiLGVbZS5TcGFjZT0xMF09IlNwYWNlIixlW2UuUGFnZVVwPTExXT0iUGFnZVVwIixlW2UuUGFnZURvd249MTJdPSJQYWdlRG93biIsZVtlLkVuZD0xM109IkVuZCIsZVtlLkhvbWU9MTRdPSJIb21lIixlW2UuTGVmdEFycm93PTE1XT0iTGVmdEFycm93IixlW2UuVXBBcnJvdz0xNl09IlVwQXJyb3ciLGVbZS5SaWdodEFycm93PTE3XT0iUmlnaHRBcnJvdyIsZVtlLkRvd25BcnJvdz0xOF09IkRvd25BcnJvdyIsZVtlLkluc2VydD0xOV09Ikluc2VydCIsZVtlLkRlbGV0ZT0yMF09IkRlbGV0ZSIsZVtlLkRpZ2l0MD0yMV09IkRpZ2l0MCIsZVtlLkRpZ2l0MT0yMl09IkRpZ2l0MSIsZVtlLkRpZ2l0Mj0yM109IkRpZ2l0MiIsZVtlLkRpZ2l0Mz0yNF09IkRpZ2l0MyIsZVtlLkRpZ2l0ND0yNV09IkRpZ2l0NCIsZVtlLkRpZ2l0NT0yNl09IkRpZ2l0NSIsZVtlLkRpZ2l0Nj0yN109IkRpZ2l0NiIsZVtlLkRpZ2l0Nz0yOF09IkRpZ2l0NyIsZVtlLkRpZ2l0OD0yOV09IkRpZ2l0OCIsZVtlLkRpZ2l0OT0zMF09IkRpZ2l0OSIsZVtlLktleUE9MzFdPSJLZXlBIixlW2UuS2V5Qj0zMl09IktleUIiLGVbZS5LZXlDPTMzXT0iS2V5QyIsZVtlLktleUQ9MzRdPSJLZXlEIixlW2UuS2V5RT0zNV09IktleUUiLGVbZS5LZXlGPTM2XT0iS2V5RiIsZVtlLktleUc9MzddPSJLZXlHIixlW2UuS2V5SD0zOF09IktleUgiLGVbZS5LZXlJPTM5XT0iS2V5SSIsZVtlLktleUo9NDBdPSJLZXlKIixlW2UuS2V5Sz00MV09IktleUsiLGVbZS5LZXlMPTQyXT0iS2V5TCIsZVtlLktleU09NDNdPSJLZXlNIixlW2UuS2V5Tj00NF09IktleU4iLGVbZS5LZXlPPTQ1XT0iS2V5TyIsZVtlLktleVA9NDZdPSJLZXlQIixlW2UuS2V5UT00N109IktleVEiLGVbZS5LZXlSPTQ4XT0iS2V5UiIsZVtlLktleVM9NDldPSJLZXlTIixlW2UuS2V5VD01MF09IktleVQiLGVbZS5LZXlVPTUxXT0iS2V5VSIsZVtlLktleVY9NTJdPSJLZXlWIixlW2UuS2V5Vz01M109IktleVciLGVbZS5LZXlYPTU0XT0iS2V5WCIsZVtlLktleVk9NTVdPSJLZXlZIixlW2UuS2V5Wj01Nl09IktleVoiLGVbZS5NZXRhPTU3XT0iTWV0YSIsZVtlLkNvbnRleHRNZW51PTU4XT0iQ29udGV4dE1lbnUiLGVbZS5GMT01OV09IkYxIixlW2UuRjI9NjBdPSJGMiIsZVtlLkYzPTYxXT0iRjMiLGVbZS5GND02Ml09IkY0IixlW2UuRjU9NjNdPSJGNSIsZVtlLkY2PTY0XT0iRjYiLGVbZS5GNz02NV09IkY3IixlW2UuRjg9NjZdPSJGOCIsZVtlLkY5PTY3XT0iRjkiLGVbZS5GMTA9NjhdPSJGMTAiLGVbZS5GMTE9NjldPSJGMTEiLGVbZS5GMTI9NzBdPSJGMTIiLGVbZS5GMTM9NzFdPSJGMTMiLGVbZS5GMTQ9NzJdPSJGMTQiLGVbZS5GMTU9NzNdPSJGMTUiLGVbZS5GMTY9NzRdPSJGMTYiLGVbZS5GMTc9NzVdPSJGMTciLGVbZS5GMTg9NzZdPSJGMTgiLGVbZS5GMTk9NzddPSJGMTkiLGVbZS5OdW1Mb2NrPTc4XT0iTnVtTG9jayIsZVtlLlNjcm9sbExvY2s9NzldPSJTY3JvbGxMb2NrIixlW2UuU2VtaWNvbG9uPTgwXT0iU2VtaWNvbG9uIixlW2UuRXF1YWw9ODFdPSJFcXVhbCIsZVtlLkNvbW1hPTgyXT0iQ29tbWEiLGVbZS5NaW51cz04M109Ik1pbnVzIixlW2UuUGVyaW9kPTg0XT0iUGVyaW9kIixlW2UuU2xhc2g9ODVdPSJTbGFzaCIsZVtlLkJhY2txdW90ZT04Nl09IkJhY2txdW90ZSIsZVtlLkJyYWNrZXRMZWZ0PTg3XT0iQnJhY2tldExlZnQiLGVbZS5CYWNrc2xhc2g9ODhdPSJCYWNrc2xhc2giLGVbZS5CcmFja2V0UmlnaHQ9ODldPSJCcmFja2V0UmlnaHQiLGVbZS5RdW90ZT05MF09IlF1b3RlIixlW2UuT0VNXzg9OTFdPSJPRU1fOCIsZVtlLkludGxCYWNrc2xhc2g9OTJdPSJJbnRsQmFja3NsYXNoIixlW2UuTnVtcGFkMD05M109Ik51bXBhZDAiLGVbZS5OdW1wYWQxPTk0XT0iTnVtcGFkMSIsZVtlLk51bXBhZDI9OTVdPSJOdW1wYWQyIixlW2UuTnVtcGFkMz05Nl09Ik51bXBhZDMiLGVbZS5OdW1wYWQ0PTk3XT0iTnVtcGFkNCIsZVtlLk51bXBhZDU9OThdPSJOdW1wYWQ1IixlW2UuTnVtcGFkNj05OV09Ik51bXBhZDYiLGVbZS5OdW1wYWQ3PTEwMF09Ik51bXBhZDciLGVbZS5OdW1wYWQ4PTEwMV09Ik51bXBhZDgiLGVbZS5OdW1wYWQ5PTEwMl09Ik51bXBhZDkiLGVbZS5OdW1wYWRNdWx0aXBseT0xMDNdPSJOdW1wYWRNdWx0aXBseSIsZVtlLk51bXBhZEFkZD0xMDRdPSJOdW1wYWRBZGQiLGVbZS5OVU1QQURfU0VQQVJBVE9SPTEwNV09Ik5VTVBBRF9TRVBBUkFUT1IiLGVbZS5OdW1wYWRTdWJ0cmFjdD0xMDZdPSJOdW1wYWRTdWJ0cmFjdCIsZVtlLk51bXBhZERlY2ltYWw9MTA3XT0iTnVtcGFkRGVjaW1hbCIsZVtlLk51bXBhZERpdmlkZT0xMDhdPSJOdW1wYWREaXZpZGUiLGVbZS5LRVlfSU5fQ09NUE9TSVRJT049MTA5XT0iS0VZX0lOX0NPTVBPU0lUSU9OIixlW2UuQUJOVF9DMT0xMTBdPSJBQk5UX0MxIixlW2UuQUJOVF9DMj0xMTFdPSJBQk5UX0MyIixlW2UuQXVkaW9Wb2x1bWVNdXRlPTExMl09IkF1ZGlvVm9sdW1lTXV0ZSIsZVtlLkF1ZGlvVm9sdW1lVXA9MTEzXT0iQXVkaW9Wb2x1bWVVcCIsZVtlLkF1ZGlvVm9sdW1lRG93bj0xMTRdPSJBdWRpb1ZvbHVtZURvd24iLGVbZS5Ccm93c2VyU2VhcmNoPTExNV09IkJyb3dzZXJTZWFyY2giLGVbZS5Ccm93c2VySG9tZT0xMTZdPSJCcm93c2VySG9tZSIsZVtlLkJyb3dzZXJCYWNrPTExN109IkJyb3dzZXJCYWNrIixlW2UuQnJvd3NlckZvcndhcmQ9MTE4XT0iQnJvd3NlckZvcndhcmQiLGVbZS5NZWRpYVRyYWNrTmV4dD0xMTldPSJNZWRpYVRyYWNrTmV4dCIsZVtlLk1lZGlhVHJhY2tQcmV2aW91cz0xMjBdPSJNZWRpYVRyYWNrUHJldmlvdXMiLGVbZS5NZWRpYVN0b3A9MTIxXT0iTWVkaWFTdG9wIixlW2UuTWVkaWFQbGF5UGF1c2U9MTIyXT0iTWVkaWFQbGF5UGF1c2UiLGVbZS5MYXVuY2hNZWRpYVBsYXllcj0xMjNdPSJMYXVuY2hNZWRpYVBsYXllciIsZVtlLkxhdW5jaE1haWw9MTI0XT0iTGF1bmNoTWFpbCIsZVtlLkxhdW5jaEFwcDI9MTI1XT0iTGF1bmNoQXBwMiIsZVtlLkNsZWFyPTEyNl09IkNsZWFyIixlW2UuTUFYX1ZBTFVFPTEyN109Ik1BWF9WQUxVRSJ9KENufHwoQ249e30pKSxmdW5jdGlvbihlKXtlW2UuRGVmYXVsdD0xXT0iRGVmYXVsdCIsZVtlLlVzZXI9Ml09IlVzZXIifShibnx8KGJuPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkVkaXRvckNvcmU9MF09IkVkaXRvckNvcmUiLGVbZS5FZGl0b3JDb250cmliPTEwMF09IkVkaXRvckNvbnRyaWIiLGVbZS5Xb3JrYmVuY2hDb250cmliPTIwMF09IldvcmtiZW5jaENvbnRyaWIiLGVbZS5CdWlsdGluRXh0ZW5zaW9uPTMwMF09IkJ1aWx0aW5FeHRlbnNpb24iLGVbZS5FeHRlcm5hbEV4dGVuc2lvbj00MDBdPSJFeHRlcm5hbEV4dGVuc2lvbiJ9KHdufHwod249e30pKSxmdW5jdGlvbihlKXtlW2UuTnVsbD0wXT0iTnVsbCIsZVtlLlBsYWluVGV4dD0xXT0iUGxhaW5UZXh0In0oX258fChfbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5UcmFjZT0wXT0iVHJhY2UiLGVbZS5EZWJ1Zz0xXT0iRGVidWciLGVbZS5JbmZvPTJdPSJJbmZvIixlW2UuV2FybmluZz0zXT0iV2FybmluZyIsZVtlLkVycm9yPTRdPSJFcnJvciIsZVtlLkNyaXRpY2FsPTVdPSJDcml0aWNhbCIsZVtlLk9mZj02XT0iT2ZmIn0oeW58fCh5bj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5QYXJhZ3JhcGg9MF09IlBhcmFncmFwaCIsZVtlLkJyZWFrPTFdPSJCcmVhayJ9KFNufHwoU249e30pKSxmdW5jdGlvbihlKXtlW2UuSGludD0xXT0iSGludCIsZVtlLkluZm89Ml09IkluZm8iLGVbZS5XYXJuaW5nPTRdPSJXYXJuaW5nIixlW2UuRXJyb3I9OF09IkVycm9yIn0odm58fCh2bj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5Vbm5lY2Vzc2FyeT0xXT0iVW5uZWNlc3NhcnkiLGVbZS5EZXByZWNhdGVkPTJdPSJEZXByZWNhdGVkIn0oTG58fChMbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5JbmxpbmU9MV09IklubGluZSIsZVtlLkd1dHRlcj0yXT0iR3V0dGVyIn0oTm58fChObj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5VTktOT1dOPTBdPSJVTktOT1dOIixlW2UuVEVYVEFSRUE9MV09IlRFWFRBUkVBIixlW2UuR1VUVEVSX0dMWVBIX01BUkdJTj0yXT0iR1VUVEVSX0dMWVBIX01BUkdJTiIsZVtlLkdVVFRFUl9MSU5FX05VTUJFUlM9M109IkdVVFRFUl9MSU5FX05VTUJFUlMiLGVbZS5HVVRURVJfTElORV9ERUNPUkFUSU9OUz00XT0iR1VUVEVSX0xJTkVfREVDT1JBVElPTlMiLGVbZS5HVVRURVJfVklFV19aT05FPTVdPSJHVVRURVJfVklFV19aT05FIixlW2UuQ09OVEVOVF9URVhUPTZdPSJDT05URU5UX1RFWFQiLGVbZS5DT05URU5UX0VNUFRZPTddPSJDT05URU5UX0VNUFRZIixlW2UuQ09OVEVOVF9WSUVXX1pPTkU9OF09IkNPTlRFTlRfVklFV19aT05FIixlW2UuQ09OVEVOVF9XSURHRVQ9OV09IkNPTlRFTlRfV0lER0VUIixlW2UuT1ZFUlZJRVdfUlVMRVI9MTBdPSJPVkVSVklFV19SVUxFUiIsZVtlLlNDUk9MTEJBUj0xMV09IlNDUk9MTEJBUiIsZVtlLk9WRVJMQVlfV0lER0VUPTEyXT0iT1ZFUkxBWV9XSURHRVQiLGVbZS5PVVRTSURFX0VESVRPUj0xM109Ik9VVFNJREVfRURJVE9SIn0oRW58fChFbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5XaW5kb3dzPTFdPSJXaW5kb3dzIixlW2UuTWFjaW50b3NoPTJdPSJNYWNpbnRvc2giLGVbZS5MaW51eD0zXT0iTGludXgifShBbnx8KEFuPXt9KSksZnVuY3Rpb24oZSl7ZVtlLlRPUF9SSUdIVF9DT1JORVI9MF09IlRPUF9SSUdIVF9DT1JORVIiLGVbZS5CT1RUT01fUklHSFRfQ09STkVSPTFdPSJCT1RUT01fUklHSFRfQ09STkVSIixlW2UuVE9QX0NFTlRFUj0yXT0iVE9QX0NFTlRFUiJ9KGtufHwoa249e30pKSxmdW5jdGlvbihlKXtlW2UuTGVmdD0xXT0iTGVmdCIsZVtlLkNlbnRlcj0yXT0iQ2VudGVyIixlW2UuUmlnaHQ9NF09IlJpZ2h0IixlW2UuRnVsbD03XT0iRnVsbCJ9KE1ufHwoTW49e30pKSxmdW5jdGlvbihlKXtlW2UuTGVmdD0wXT0iTGVmdCIsZVtlLlJpZ2h0PTFdPSJSaWdodCIsZVtlLk5vbmU9Ml09Ik5vbmUifShSbnx8KFJuPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkV4cGxvcmVyPTFdPSJFeHBsb3JlciIsZVtlLlNjbT0zXT0iU2NtIixlW2UuRXh0ZW5zaW9ucz01XT0iRXh0ZW5zaW9ucyIsZVtlLldpbmRvdz0xMF09IldpbmRvdyIsZVtlLk5vdGlmaWNhdGlvbj0xNV09Ik5vdGlmaWNhdGlvbiIsZVtlLkRpYWxvZz0yMF09IkRpYWxvZyJ9KHhufHwoeG49e30pKSxmdW5jdGlvbihlKXtlW2UuT2ZmPTBdPSJPZmYiLGVbZS5Pbj0xXT0iT24iLGVbZS5SZWxhdGl2ZT0yXT0iUmVsYXRpdmUiLGVbZS5JbnRlcnZhbD0zXT0iSW50ZXJ2YWwiLGVbZS5DdXN0b209NF09IkN1c3RvbSJ9KElufHwoSW49e30pKSxmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLlRleHQ9MV09IlRleHQiLGVbZS5CbG9ja3M9Ml09IkJsb2NrcyJ9KE9ufHwoT249e30pKSxmdW5jdGlvbihlKXtlW2UuRGVwZW5kc09uS2JMYXlvdXQ9LTFdPSJEZXBlbmRzT25LYkxheW91dCIsZVtlLk5vbmU9MF09Ik5vbmUiLGVbZS5IeXBlcj0xXT0iSHlwZXIiLGVbZS5TdXBlcj0yXT0iU3VwZXIiLGVbZS5Gbj0zXT0iRm4iLGVbZS5GbkxvY2s9NF09IkZuTG9jayIsZVtlLlN1c3BlbmQ9NV09IlN1c3BlbmQiLGVbZS5SZXN1bWU9Nl09IlJlc3VtZSIsZVtlLlR1cmJvPTddPSJUdXJibyIsZVtlLlNsZWVwPThdPSJTbGVlcCIsZVtlLldha2VVcD05XT0iV2FrZVVwIixlW2UuS2V5QT0xMF09IktleUEiLGVbZS5LZXlCPTExXT0iS2V5QiIsZVtlLktleUM9MTJdPSJLZXlDIixlW2UuS2V5RD0xM109IktleUQiLGVbZS5LZXlFPTE0XT0iS2V5RSIsZVtlLktleUY9MTVdPSJLZXlGIixlW2UuS2V5Rz0xNl09IktleUciLGVbZS5LZXlIPTE3XT0iS2V5SCIsZVtlLktleUk9MThdPSJLZXlJIixlW2UuS2V5Sj0xOV09IktleUoiLGVbZS5LZXlLPTIwXT0iS2V5SyIsZVtlLktleUw9MjFdPSJLZXlMIixlW2UuS2V5TT0yMl09IktleU0iLGVbZS5LZXlOPTIzXT0iS2V5TiIsZVtlLktleU89MjRdPSJLZXlPIixlW2UuS2V5UD0yNV09IktleVAiLGVbZS5LZXlRPTI2XT0iS2V5USIsZVtlLktleVI9MjddPSJLZXlSIixlW2UuS2V5Uz0yOF09IktleVMiLGVbZS5LZXlUPTI5XT0iS2V5VCIsZVtlLktleVU9MzBdPSJLZXlVIixlW2UuS2V5Vj0zMV09IktleVYiLGVbZS5LZXlXPTMyXT0iS2V5VyIsZVtlLktleVg9MzNdPSJLZXlYIixlW2UuS2V5WT0zNF09IktleVkiLGVbZS5LZXlaPTM1XT0iS2V5WiIsZVtlLkRpZ2l0MT0zNl09IkRpZ2l0MSIsZVtlLkRpZ2l0Mj0zN109IkRpZ2l0MiIsZVtlLkRpZ2l0Mz0zOF09IkRpZ2l0MyIsZVtlLkRpZ2l0ND0zOV09IkRpZ2l0NCIsZVtlLkRpZ2l0NT00MF09IkRpZ2l0NSIsZVtlLkRpZ2l0Nj00MV09IkRpZ2l0NiIsZVtlLkRpZ2l0Nz00Ml09IkRpZ2l0NyIsZVtlLkRpZ2l0OD00M109IkRpZ2l0OCIsZVtlLkRpZ2l0OT00NF09IkRpZ2l0OSIsZVtlLkRpZ2l0MD00NV09IkRpZ2l0MCIsZVtlLkVudGVyPTQ2XT0iRW50ZXIiLGVbZS5Fc2NhcGU9NDddPSJFc2NhcGUiLGVbZS5CYWNrc3BhY2U9NDhdPSJCYWNrc3BhY2UiLGVbZS5UYWI9NDldPSJUYWIiLGVbZS5TcGFjZT01MF09IlNwYWNlIixlW2UuTWludXM9NTFdPSJNaW51cyIsZVtlLkVxdWFsPTUyXT0iRXF1YWwiLGVbZS5CcmFja2V0TGVmdD01M109IkJyYWNrZXRMZWZ0IixlW2UuQnJhY2tldFJpZ2h0PTU0XT0iQnJhY2tldFJpZ2h0IixlW2UuQmFja3NsYXNoPTU1XT0iQmFja3NsYXNoIixlW2UuSW50bEhhc2g9NTZdPSJJbnRsSGFzaCIsZVtlLlNlbWljb2xvbj01N109IlNlbWljb2xvbiIsZVtlLlF1b3RlPTU4XT0iUXVvdGUiLGVbZS5CYWNrcXVvdGU9NTldPSJCYWNrcXVvdGUiLGVbZS5Db21tYT02MF09IkNvbW1hIixlW2UuUGVyaW9kPTYxXT0iUGVyaW9kIixlW2UuU2xhc2g9NjJdPSJTbGFzaCIsZVtlLkNhcHNMb2NrPTYzXT0iQ2Fwc0xvY2siLGVbZS5GMT02NF09IkYxIixlW2UuRjI9NjVdPSJGMiIsZVtlLkYzPTY2XT0iRjMiLGVbZS5GND02N109IkY0IixlW2UuRjU9NjhdPSJGNSIsZVtlLkY2PTY5XT0iRjYiLGVbZS5GNz03MF09IkY3IixlW2UuRjg9NzFdPSJGOCIsZVtlLkY5PTcyXT0iRjkiLGVbZS5GMTA9NzNdPSJGMTAiLGVbZS5GMTE9NzRdPSJGMTEiLGVbZS5GMTI9NzVdPSJGMTIiLGVbZS5QcmludFNjcmVlbj03Nl09IlByaW50U2NyZWVuIixlW2UuU2Nyb2xsTG9jaz03N109IlNjcm9sbExvY2siLGVbZS5QYXVzZT03OF09IlBhdXNlIixlW2UuSW5zZXJ0PTc5XT0iSW5zZXJ0IixlW2UuSG9tZT04MF09IkhvbWUiLGVbZS5QYWdlVXA9ODFdPSJQYWdlVXAiLGVbZS5EZWxldGU9ODJdPSJEZWxldGUiLGVbZS5FbmQ9ODNdPSJFbmQiLGVbZS5QYWdlRG93bj04NF09IlBhZ2VEb3duIixlW2UuQXJyb3dSaWdodD04NV09IkFycm93UmlnaHQiLGVbZS5BcnJvd0xlZnQ9ODZdPSJBcnJvd0xlZnQiLGVbZS5BcnJvd0Rvd249ODddPSJBcnJvd0Rvd24iLGVbZS5BcnJvd1VwPTg4XT0iQXJyb3dVcCIsZVtlLk51bUxvY2s9ODldPSJOdW1Mb2NrIixlW2UuTnVtcGFkRGl2aWRlPTkwXT0iTnVtcGFkRGl2aWRlIixlW2UuTnVtcGFkTXVsdGlwbHk9OTFdPSJOdW1wYWRNdWx0aXBseSIsZVtlLk51bXBhZFN1YnRyYWN0PTkyXT0iTnVtcGFkU3VidHJhY3QiLGVbZS5OdW1wYWRBZGQ9OTNdPSJOdW1wYWRBZGQiLGVbZS5OdW1wYWRFbnRlcj05NF09Ik51bXBhZEVudGVyIixlW2UuTnVtcGFkMT05NV09Ik51bXBhZDEiLGVbZS5OdW1wYWQyPTk2XT0iTnVtcGFkMiIsZVtlLk51bXBhZDM9OTddPSJOdW1wYWQzIixlW2UuTnVtcGFkND05OF09Ik51bXBhZDQiLGVbZS5OdW1wYWQ1PTk5XT0iTnVtcGFkNSIsZVtlLk51bXBhZDY9MTAwXT0iTnVtcGFkNiIsZVtlLk51bXBhZDc9MTAxXT0iTnVtcGFkNyIsZVtlLk51bXBhZDg9MTAyXT0iTnVtcGFkOCIsZVtlLk51bXBhZDk9MTAzXT0iTnVtcGFkOSIsZVtlLk51bXBhZDA9MTA0XT0iTnVtcGFkMCIsZVtlLk51bXBhZERlY2ltYWw9MTA1XT0iTnVtcGFkRGVjaW1hbCIsZVtlLkludGxCYWNrc2xhc2g9MTA2XT0iSW50bEJhY2tzbGFzaCIsZVtlLkNvbnRleHRNZW51PTEwN109IkNvbnRleHRNZW51IixlW2UuUG93ZXI9MTA4XT0iUG93ZXIiLGVbZS5OdW1wYWRFcXVhbD0xMDldPSJOdW1wYWRFcXVhbCIsZVtlLkYxMz0xMTBdPSJGMTMiLGVbZS5GMTQ9MTExXT0iRjE0IixlW2UuRjE1PTExMl09IkYxNSIsZVtlLkYxNj0xMTNdPSJGMTYiLGVbZS5GMTc9MTE0XT0iRjE3IixlW2UuRjE4PTExNV09IkYxOCIsZVtlLkYxOT0xMTZdPSJGMTkiLGVbZS5GMjA9MTE3XT0iRjIwIixlW2UuRjIxPTExOF09IkYyMSIsZVtlLkYyMj0xMTldPSJGMjIiLGVbZS5GMjM9MTIwXT0iRjIzIixlW2UuRjI0PTEyMV09IkYyNCIsZVtlLk9wZW49MTIyXT0iT3BlbiIsZVtlLkhlbHA9MTIzXT0iSGVscCIsZVtlLlNlbGVjdD0xMjRdPSJTZWxlY3QiLGVbZS5BZ2Fpbj0xMjVdPSJBZ2FpbiIsZVtlLlVuZG89MTI2XT0iVW5kbyIsZVtlLkN1dD0xMjddPSJDdXQiLGVbZS5Db3B5PTEyOF09IkNvcHkiLGVbZS5QYXN0ZT0xMjldPSJQYXN0ZSIsZVtlLkZpbmQ9MTMwXT0iRmluZCIsZVtlLkF1ZGlvVm9sdW1lTXV0ZT0xMzFdPSJBdWRpb1ZvbHVtZU11dGUiLGVbZS5BdWRpb1ZvbHVtZVVwPTEzMl09IkF1ZGlvVm9sdW1lVXAiLGVbZS5BdWRpb1ZvbHVtZURvd249MTMzXT0iQXVkaW9Wb2x1bWVEb3duIixlW2UuTnVtcGFkQ29tbWE9MTM0XT0iTnVtcGFkQ29tbWEiLGVbZS5JbnRsUm89MTM1XT0iSW50bFJvIixlW2UuS2FuYU1vZGU9MTM2XT0iS2FuYU1vZGUiLGVbZS5JbnRsWWVuPTEzN109IkludGxZZW4iLGVbZS5Db252ZXJ0PTEzOF09IkNvbnZlcnQiLGVbZS5Ob25Db252ZXJ0PTEzOV09Ik5vbkNvbnZlcnQiLGVbZS5MYW5nMT0xNDBdPSJMYW5nMSIsZVtlLkxhbmcyPTE0MV09IkxhbmcyIixlW2UuTGFuZzM9MTQyXT0iTGFuZzMiLGVbZS5MYW5nND0xNDNdPSJMYW5nNCIsZVtlLkxhbmc1PTE0NF09Ikxhbmc1IixlW2UuQWJvcnQ9MTQ1XT0iQWJvcnQiLGVbZS5Qcm9wcz0xNDZdPSJQcm9wcyIsZVtlLk51bXBhZFBhcmVuTGVmdD0xNDddPSJOdW1wYWRQYXJlbkxlZnQiLGVbZS5OdW1wYWRQYXJlblJpZ2h0PTE0OF09Ik51bXBhZFBhcmVuUmlnaHQiLGVbZS5OdW1wYWRCYWNrc3BhY2U9MTQ5XT0iTnVtcGFkQmFja3NwYWNlIixlW2UuTnVtcGFkTWVtb3J5U3RvcmU9MTUwXT0iTnVtcGFkTWVtb3J5U3RvcmUiLGVbZS5OdW1wYWRNZW1vcnlSZWNhbGw9MTUxXT0iTnVtcGFkTWVtb3J5UmVjYWxsIixlW2UuTnVtcGFkTWVtb3J5Q2xlYXI9MTUyXT0iTnVtcGFkTWVtb3J5Q2xlYXIiLGVbZS5OdW1wYWRNZW1vcnlBZGQ9MTUzXT0iTnVtcGFkTWVtb3J5QWRkIixlW2UuTnVtcGFkTWVtb3J5U3VidHJhY3Q9MTU0XT0iTnVtcGFkTWVtb3J5U3VidHJhY3QiLGVbZS5OdW1wYWRDbGVhcj0xNTVdPSJOdW1wYWRDbGVhciIsZVtlLk51bXBhZENsZWFyRW50cnk9MTU2XT0iTnVtcGFkQ2xlYXJFbnRyeSIsZVtlLkNvbnRyb2xMZWZ0PTE1N109IkNvbnRyb2xMZWZ0IixlW2UuU2hpZnRMZWZ0PTE1OF09IlNoaWZ0TGVmdCIsZVtlLkFsdExlZnQ9MTU5XT0iQWx0TGVmdCIsZVtlLk1ldGFMZWZ0PTE2MF09Ik1ldGFMZWZ0IixlW2UuQ29udHJvbFJpZ2h0PTE2MV09IkNvbnRyb2xSaWdodCIsZVtlLlNoaWZ0UmlnaHQ9MTYyXT0iU2hpZnRSaWdodCIsZVtlLkFsdFJpZ2h0PTE2M109IkFsdFJpZ2h0IixlW2UuTWV0YVJpZ2h0PTE2NF09Ik1ldGFSaWdodCIsZVtlLkJyaWdodG5lc3NVcD0xNjVdPSJCcmlnaHRuZXNzVXAiLGVbZS5CcmlnaHRuZXNzRG93bj0xNjZdPSJCcmlnaHRuZXNzRG93biIsZVtlLk1lZGlhUGxheT0xNjddPSJNZWRpYVBsYXkiLGVbZS5NZWRpYVJlY29yZD0xNjhdPSJNZWRpYVJlY29yZCIsZVtlLk1lZGlhRmFzdEZvcndhcmQ9MTY5XT0iTWVkaWFGYXN0Rm9yd2FyZCIsZVtlLk1lZGlhUmV3aW5kPTE3MF09Ik1lZGlhUmV3aW5kIixlW2UuTWVkaWFUcmFja05leHQ9MTcxXT0iTWVkaWFUcmFja05leHQiLGVbZS5NZWRpYVRyYWNrUHJldmlvdXM9MTcyXT0iTWVkaWFUcmFja1ByZXZpb3VzIixlW2UuTWVkaWFTdG9wPTE3M109Ik1lZGlhU3RvcCIsZVtlLkVqZWN0PTE3NF09IkVqZWN0IixlW2UuTWVkaWFQbGF5UGF1c2U9MTc1XT0iTWVkaWFQbGF5UGF1c2UiLGVbZS5NZWRpYVNlbGVjdD0xNzZdPSJNZWRpYVNlbGVjdCIsZVtlLkxhdW5jaE1haWw9MTc3XT0iTGF1bmNoTWFpbCIsZVtlLkxhdW5jaEFwcDI9MTc4XT0iTGF1bmNoQXBwMiIsZVtlLkxhdW5jaEFwcDE9MTc5XT0iTGF1bmNoQXBwMSIsZVtlLlNlbGVjdFRhc2s9MTgwXT0iU2VsZWN0VGFzayIsZVtlLkxhdW5jaFNjcmVlblNhdmVyPTE4MV09IkxhdW5jaFNjcmVlblNhdmVyIixlW2UuQnJvd3NlclNlYXJjaD0xODJdPSJCcm93c2VyU2VhcmNoIixlW2UuQnJvd3NlckhvbWU9MTgzXT0iQnJvd3NlckhvbWUiLGVbZS5Ccm93c2VyQmFjaz0xODRdPSJCcm93c2VyQmFjayIsZVtlLkJyb3dzZXJGb3J3YXJkPTE4NV09IkJyb3dzZXJGb3J3YXJkIixlW2UuQnJvd3NlclN0b3A9MTg2XT0iQnJvd3NlclN0b3AiLGVbZS5Ccm93c2VyUmVmcmVzaD0xODddPSJCcm93c2VyUmVmcmVzaCIsZVtlLkJyb3dzZXJGYXZvcml0ZXM9MTg4XT0iQnJvd3NlckZhdm9yaXRlcyIsZVtlLlpvb21Ub2dnbGU9MTg5XT0iWm9vbVRvZ2dsZSIsZVtlLk1haWxSZXBseT0xOTBdPSJNYWlsUmVwbHkiLGVbZS5NYWlsRm9yd2FyZD0xOTFdPSJNYWlsRm9yd2FyZCIsZVtlLk1haWxTZW5kPTE5Ml09Ik1haWxTZW5kIixlW2UuTUFYX1ZBTFVFPTE5M109Ik1BWF9WQUxVRSJ9KERufHwoRG49e30pKSxmdW5jdGlvbihlKXtlW2UuU21vb3RoPTBdPSJTbW9vdGgiLGVbZS5JbW1lZGlhdGU9MV09IkltbWVkaWF0ZSJ9KEtufHwoS249e30pKSxmdW5jdGlvbihlKXtlW2UuQXV0bz0xXT0iQXV0byIsZVtlLkhpZGRlbj0yXT0iSGlkZGVuIixlW2UuVmlzaWJsZT0zXT0iVmlzaWJsZSJ9KFRufHwoVG49e30pKSxmdW5jdGlvbihlKXtlW2UuTFRSPTBdPSJMVFIiLGVbZS5SVEw9MV09IlJUTCJ9KFBufHwoUG49e30pKSxmdW5jdGlvbihlKXtlW2UuSW52b2tlPTFdPSJJbnZva2UiLGVbZS5UcmlnZ2VyQ2hhcmFjdGVyPTJdPSJUcmlnZ2VyQ2hhcmFjdGVyIixlW2UuQ29udGVudENoYW5nZT0zXT0iQ29udGVudENoYW5nZSJ9KEZufHwoRm49e30pKSxmdW5jdGlvbihlKXtlW2UuVG9wPTBdPSJUb3AiLGVbZS5JbmxpbmU9MV09IklubGluZSIsZVtlLkJvdHRvbT0yXT0iQm90dG9tIn0oVm58fChWbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5Vc2VyPTFdPSJVc2VyIixlW2UuV29ya3NwYWNlPTJdPSJXb3Jrc3BhY2UiLGVbZS5FeHRlbnNpb249M109IkV4dGVuc2lvbiJ9KEJufHwoQm49e30pKSxmdW5jdGlvbihlKXtlW2UuT3RoZXI9MF09Ik90aGVyIixlW2UuQ29tbWVudD0xXT0iQ29tbWVudCIsZVtlLlN0cmluZz0yXT0iU3RyaW5nIixlW2UuUmVnRXg9M109IlJlZ0V4In0oVW58fChVbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5GaWxlPTBdPSJGaWxlIixlW2UuTW9kdWxlPTFdPSJNb2R1bGUiLGVbZS5OYW1lc3BhY2U9Ml09Ik5hbWVzcGFjZSIsZVtlLlBhY2thZ2U9M109IlBhY2thZ2UiLGVbZS5DbGFzcz00XT0iQ2xhc3MiLGVbZS5NZXRob2Q9NV09Ik1ldGhvZCIsZVtlLlByb3BlcnR5PTZdPSJQcm9wZXJ0eSIsZVtlLkZpZWxkPTddPSJGaWVsZCIsZVtlLkNvbnN0cnVjdG9yPThdPSJDb25zdHJ1Y3RvciIsZVtlLkVudW09OV09IkVudW0iLGVbZS5JbnRlcmZhY2U9MTBdPSJJbnRlcmZhY2UiLGVbZS5GdW5jdGlvbj0xMV09IkZ1bmN0aW9uIixlW2UuVmFyaWFibGU9MTJdPSJWYXJpYWJsZSIsZVtlLkNvbnN0YW50PTEzXT0iQ29uc3RhbnQiLGVbZS5TdHJpbmc9MTRdPSJTdHJpbmciLGVbZS5OdW1iZXI9MTVdPSJOdW1iZXIiLGVbZS5Cb29sZWFuPTE2XT0iQm9vbGVhbiIsZVtlLkFycmF5PTE3XT0iQXJyYXkiLGVbZS5PYmplY3Q9MThdPSJPYmplY3QiLGVbZS5LZXk9MTldPSJLZXkiLGVbZS5OdWxsPTIwXT0iTnVsbCIsZVtlLkVudW1NZW1iZXI9MjFdPSJFbnVtTWVtYmVyIixlW2UuU3RydWN0PTIyXT0iU3RydWN0IixlW2UuRXZlbnQ9MjNdPSJFdmVudCIsZVtlLk9wZXJhdG9yPTI0XT0iT3BlcmF0b3IiLGVbZS5UeXBlUGFyYW1ldGVyPTI1XT0iVHlwZVBhcmFtZXRlciJ9KHFufHwocW49e30pKSxmdW5jdGlvbihlKXtlW2UuRGVwcmVjYXRlZD0xXT0iRGVwcmVjYXRlZCJ9KEhufHwoSG49e30pKSxmdW5jdGlvbihlKXtlW2UuSGlkZGVuPTBdPSJIaWRkZW4iLGVbZS5CbGluaz0xXT0iQmxpbmsiLGVbZS5TbW9vdGg9Ml09IlNtb290aCIsZVtlLlBoYXNlPTNdPSJQaGFzZSIsZVtlLkV4cGFuZD00XT0iRXhwYW5kIixlW2UuU29saWQ9NV09IlNvbGlkIn0oV258fChXbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5MaW5lPTFdPSJMaW5lIixlW2UuQmxvY2s9Ml09IkJsb2NrIixlW2UuVW5kZXJsaW5lPTNdPSJVbmRlcmxpbmUiLGVbZS5MaW5lVGhpbj00XT0iTGluZVRoaW4iLGVbZS5CbG9ja091dGxpbmU9NV09IkJsb2NrT3V0bGluZSIsZVtlLlVuZGVybGluZVRoaW49Nl09IlVuZGVybGluZVRoaW4ifSh6bnx8KHpuPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkNlbnRlcj0wXT0iQ2VudGVyIixlW2UuQ2VudGVySWZPdXRzaWRlVmlld3BvcnQ9MV09IkNlbnRlcklmT3V0c2lkZVZpZXdwb3J0IixlW2UuTmVhclRvcD0yXT0iTmVhclRvcCIsZVtlLk5lYXJUb3BJZk91dHNpZGVWaWV3cG9ydD0zXT0iTmVhclRvcElmT3V0c2lkZVZpZXdwb3J0In0oJG58fCgkbj17fSkpLGZ1bmN0aW9uKGUpe2UuUFJPR1JBTU1BVElDPSJhcGkiLGUuTkFWSUdBVElPTj0iY29kZS5uYXZpZ2F0aW9uIixlLkpVTVA9ImNvZGUuanVtcCJ9KEdufHwoR249e30pKSxmdW5jdGlvbihlKXtlW2UuQWx3YXlzR3Jvd3NXaGVuVHlwaW5nQXRFZGdlcz0wXT0iQWx3YXlzR3Jvd3NXaGVuVHlwaW5nQXRFZGdlcyIsZVtlLk5ldmVyR3Jvd3NXaGVuVHlwaW5nQXRFZGdlcz0xXT0iTmV2ZXJHcm93c1doZW5UeXBpbmdBdEVkZ2VzIixlW2UuR3Jvd3NPbmx5V2hlblR5cGluZ0JlZm9yZT0yXT0iR3Jvd3NPbmx5V2hlblR5cGluZ0JlZm9yZSIsZVtlLkdyb3dzT25seVdoZW5UeXBpbmdBZnRlcj0zXT0iR3Jvd3NPbmx5V2hlblR5cGluZ0FmdGVyIn0oam58fChqbj17fSkpLGZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuU2FtZT0xXT0iU2FtZSIsZVtlLkluZGVudD0yXT0iSW5kZW50IixlW2UuRGVlcEluZGVudD0zXT0iRGVlcEluZGVudCJ9KFlufHwoWW49e30pKTtjbGFzcyBycntjb25zdHJ1Y3Rvcigpe3RoaXNbWm5dPSJMaW5rZWRNYXAiLHRoaXMuX21hcD1uZXcgTWFwLHRoaXMuX2hlYWQ9dm9pZCAwLHRoaXMuX3RhaWw9dm9pZCAwLHRoaXMuX3NpemU9MCx0aGlzLl9zdGF0ZT0wfWNsZWFyKCl7dGhpcy5fbWFwLmNsZWFyKCksdGhpcy5faGVhZD12b2lkIDAsdGhpcy5fdGFpbD12b2lkIDAsdGhpcy5fc2l6ZT0wLHRoaXMuX3N0YXRlKyt9aXNFbXB0eSgpe3JldHVybiF0aGlzLl9oZWFkJiYhdGhpcy5fdGFpbH1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLl9zaXplfWdldCBmaXJzdCgpe3ZhciBlO3JldHVybiBudWxsPT09KGU9dGhpcy5faGVhZCl8fHZvaWQgMD09PWU/dm9pZCAwOmUudmFsdWV9Z2V0IGxhc3QoKXt2YXIgZTtyZXR1cm4gbnVsbD09PShlPXRoaXMuX3RhaWwpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnZhbHVlfWhhcyhlKXtyZXR1cm4gdGhpcy5fbWFwLmhhcyhlKX1nZXQoZSx0PTApe2NvbnN0IG49dGhpcy5fbWFwLmdldChlKTtpZihuKXJldHVybiAwIT09dCYmdGhpcy50b3VjaChuLHQpLG4udmFsdWV9c2V0KGUsdCxuPTApe2xldCByPXRoaXMuX21hcC5nZXQoZSk7aWYocilyLnZhbHVlPXQsMCE9PW4mJnRoaXMudG91Y2gocixuKTtlbHNle3N3aXRjaChyPXtrZXk6ZSx2YWx1ZTp0LG5leHQ6dm9pZCAwLHByZXZpb3VzOnZvaWQgMH0sbil7Y2FzZSAwOmNhc2UgMjpkZWZhdWx0OnRoaXMuYWRkSXRlbUxhc3Qocik7YnJlYWs7Y2FzZSAxOnRoaXMuYWRkSXRlbUZpcnN0KHIpfXRoaXMuX21hcC5zZXQoZSxyKSx0aGlzLl9zaXplKyt9cmV0dXJuIHRoaXN9ZGVsZXRlKGUpe3JldHVybiEhdGhpcy5yZW1vdmUoZSl9cmVtb3ZlKGUpe2NvbnN0IHQ9dGhpcy5fbWFwLmdldChlKTtpZih0KXJldHVybiB0aGlzLl9tYXAuZGVsZXRlKGUpLHRoaXMucmVtb3ZlSXRlbSh0KSx0aGlzLl9zaXplLS0sdC52YWx1ZX1zaGlmdCgpe2lmKCF0aGlzLl9oZWFkJiYhdGhpcy5fdGFpbClyZXR1cm47aWYoIXRoaXMuX2hlYWR8fCF0aGlzLl90YWlsKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsaXN0Iik7Y29uc3QgZT10aGlzLl9oZWFkO3JldHVybiB0aGlzLl9tYXAuZGVsZXRlKGUua2V5KSx0aGlzLnJlbW92ZUl0ZW0oZSksdGhpcy5fc2l6ZS0tLGUudmFsdWV9Zm9yRWFjaChlLHQpe2NvbnN0IG49dGhpcy5fc3RhdGU7bGV0IHI9dGhpcy5faGVhZDtmb3IoO3I7KXtpZih0P2UuYmluZCh0KShyLnZhbHVlLHIua2V5LHRoaXMpOmUoci52YWx1ZSxyLmtleSx0aGlzKSx0aGlzLl9zdGF0ZSE9PW4pdGhyb3cgbmV3IEVycm9yKCJMaW5rZWRNYXAgZ290IG1vZGlmaWVkIGR1cmluZyBpdGVyYXRpb24uIik7cj1yLm5leHR9fWtleXMoKXtjb25zdCBlPXRoaXMsdD10aGlzLl9zdGF0ZTtsZXQgbj10aGlzLl9oZWFkO2NvbnN0IHI9e1tTeW1ib2wuaXRlcmF0b3JdOigpPT5yLG5leHQoKXtpZihlLl9zdGF0ZSE9PXQpdGhyb3cgbmV3IEVycm9yKCJMaW5rZWRNYXAgZ290IG1vZGlmaWVkIGR1cmluZyBpdGVyYXRpb24uIik7aWYobil7Y29uc3QgZT17dmFsdWU6bi5rZXksZG9uZTohMX07cmV0dXJuIG49bi5uZXh0LGV9cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX19O3JldHVybiByfXZhbHVlcygpe2NvbnN0IGU9dGhpcyx0PXRoaXMuX3N0YXRlO2xldCBuPXRoaXMuX2hlYWQ7Y29uc3Qgcj17W1N5bWJvbC5pdGVyYXRvcl06KCk9PnIsbmV4dCgpe2lmKGUuX3N0YXRlIT09dCl0aHJvdyBuZXcgRXJyb3IoIkxpbmtlZE1hcCBnb3QgbW9kaWZpZWQgZHVyaW5nIGl0ZXJhdGlvbi4iKTtpZihuKXtjb25zdCBlPXt2YWx1ZTpuLnZhbHVlLGRvbmU6ITF9O3JldHVybiBuPW4ubmV4dCxlfXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19fTtyZXR1cm4gcn1lbnRyaWVzKCl7Y29uc3QgZT10aGlzLHQ9dGhpcy5fc3RhdGU7bGV0IG49dGhpcy5faGVhZDtjb25zdCByPXtbU3ltYm9sLml0ZXJhdG9yXTooKT0+cixuZXh0KCl7aWYoZS5fc3RhdGUhPT10KXRocm93IG5ldyBFcnJvcigiTGlua2VkTWFwIGdvdCBtb2RpZmllZCBkdXJpbmcgaXRlcmF0aW9uLiIpO2lmKG4pe2NvbnN0IGU9e3ZhbHVlOltuLmtleSxuLnZhbHVlXSxkb25lOiExfTtyZXR1cm4gbj1uLm5leHQsZX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fX07cmV0dXJuIHJ9Wyhabj1TeW1ib2wudG9TdHJpbmdUYWcsU3ltYm9sLml0ZXJhdG9yKV0oKXtyZXR1cm4gdGhpcy5lbnRyaWVzKCl9dHJpbU9sZChlKXtpZihlPj10aGlzLnNpemUpcmV0dXJuO2lmKDA9PT1lKXJldHVybiB2b2lkIHRoaXMuY2xlYXIoKTtsZXQgdD10aGlzLl9oZWFkLG49dGhpcy5zaXplO2Zvcig7dCYmbj5lOyl0aGlzLl9tYXAuZGVsZXRlKHQua2V5KSx0PXQubmV4dCxuLS07dGhpcy5faGVhZD10LHRoaXMuX3NpemU9bix0JiYodC5wcmV2aW91cz12b2lkIDApLHRoaXMuX3N0YXRlKyt9YWRkSXRlbUZpcnN0KGUpe2lmKHRoaXMuX2hlYWR8fHRoaXMuX3RhaWwpe2lmKCF0aGlzLl9oZWFkKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsaXN0Iik7ZS5uZXh0PXRoaXMuX2hlYWQsdGhpcy5faGVhZC5wcmV2aW91cz1lfWVsc2UgdGhpcy5fdGFpbD1lO3RoaXMuX2hlYWQ9ZSx0aGlzLl9zdGF0ZSsrfWFkZEl0ZW1MYXN0KGUpe2lmKHRoaXMuX2hlYWR8fHRoaXMuX3RhaWwpe2lmKCF0aGlzLl90YWlsKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsaXN0Iik7ZS5wcmV2aW91cz10aGlzLl90YWlsLHRoaXMuX3RhaWwubmV4dD1lfWVsc2UgdGhpcy5faGVhZD1lO3RoaXMuX3RhaWw9ZSx0aGlzLl9zdGF0ZSsrfXJlbW92ZUl0ZW0oZSl7aWYoZT09PXRoaXMuX2hlYWQmJmU9PT10aGlzLl90YWlsKXRoaXMuX2hlYWQ9dm9pZCAwLHRoaXMuX3RhaWw9dm9pZCAwO2Vsc2UgaWYoZT09PXRoaXMuX2hlYWQpe2lmKCFlLm5leHQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGxpc3QiKTtlLm5leHQucHJldmlvdXM9dm9pZCAwLHRoaXMuX2hlYWQ9ZS5uZXh0fWVsc2UgaWYoZT09PXRoaXMuX3RhaWwpe2lmKCFlLnByZXZpb3VzKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsaXN0Iik7ZS5wcmV2aW91cy5uZXh0PXZvaWQgMCx0aGlzLl90YWlsPWUucHJldmlvdXN9ZWxzZXtjb25zdCB0PWUubmV4dCxuPWUucHJldmlvdXM7aWYoIXR8fCFuKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsaXN0Iik7dC5wcmV2aW91cz1uLG4ubmV4dD10fWUubmV4dD12b2lkIDAsZS5wcmV2aW91cz12b2lkIDAsdGhpcy5fc3RhdGUrK310b3VjaChlLHQpe2lmKCF0aGlzLl9oZWFkfHwhdGhpcy5fdGFpbCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbGlzdCIpO2lmKDE9PT10fHwyPT09dClpZigxPT09dCl7aWYoZT09PXRoaXMuX2hlYWQpcmV0dXJuO2NvbnN0IHQ9ZS5uZXh0LG49ZS5wcmV2aW91cztlPT09dGhpcy5fdGFpbD8obi5uZXh0PXZvaWQgMCx0aGlzLl90YWlsPW4pOih0LnByZXZpb3VzPW4sbi5uZXh0PXQpLGUucHJldmlvdXM9dm9pZCAwLGUubmV4dD10aGlzLl9oZWFkLHRoaXMuX2hlYWQucHJldmlvdXM9ZSx0aGlzLl9oZWFkPWUsdGhpcy5fc3RhdGUrK31lbHNlIGlmKDI9PT10KXtpZihlPT09dGhpcy5fdGFpbClyZXR1cm47Y29uc3QgdD1lLm5leHQsbj1lLnByZXZpb3VzO2U9PT10aGlzLl9oZWFkPyh0LnByZXZpb3VzPXZvaWQgMCx0aGlzLl9oZWFkPXQpOih0LnByZXZpb3VzPW4sbi5uZXh0PXQpLGUubmV4dD12b2lkIDAsZS5wcmV2aW91cz10aGlzLl90YWlsLHRoaXMuX3RhaWwubmV4dD1lLHRoaXMuX3RhaWw9ZSx0aGlzLl9zdGF0ZSsrfX10b0pTT04oKXtjb25zdCBlPVtdO3JldHVybiB0aGlzLmZvckVhY2goKCh0LG4pPT57ZS5wdXNoKFtuLHRdKX0pKSxlfWZyb21KU09OKGUpe3RoaXMuY2xlYXIoKTtmb3IoY29uc3RbdCxuXW9mIGUpdGhpcy5zZXQodCxuKX19ZnVuY3Rpb24gaXIoZSx0LG4pe2lmKCFufHxuLmxlbmd0aDx0Lmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgcjtyZXR1cm4gcj1lP2oobix0KTowPT09bi5pbmRleE9mKHQpLHI/dC5sZW5ndGg+MD9be3N0YXJ0OjAsZW5kOnQubGVuZ3RofV06W106bnVsbH1pci5iaW5kKHZvaWQgMCwhMSksaXIuYmluZCh2b2lkIDAsITApO2NvbnN0IG9yPW5ldyBTZXQ7IigpW117fTw+YCdcIi0vOzosLj8hIi5zcGxpdCgiIikuZm9yRWFjaCgoZT0+b3IuYWRkKGUuY2hhckNvZGVBdCgwKSkpKSxuZXcgY2xhc3MgZXh0ZW5kcyBycntjb25zdHJ1Y3RvcihlLHQ9MSl7c3VwZXIoKSx0aGlzLl9saW1pdD1lLHRoaXMuX3JhdGlvPU1hdGgubWluKE1hdGgubWF4KDAsdCksMSl9Z2V0IGxpbWl0KCl7cmV0dXJuIHRoaXMuX2xpbWl0fXNldCBsaW1pdChlKXt0aGlzLl9saW1pdD1lLHRoaXMuY2hlY2tUcmltKCl9Z2V0KGUsdD0yKXtyZXR1cm4gc3VwZXIuZ2V0KGUsdCl9cGVlayhlKXtyZXR1cm4gc3VwZXIuZ2V0KGUsMCl9c2V0KGUsdCl7cmV0dXJuIHN1cGVyLnNldChlLHQsMiksdGhpcy5jaGVja1RyaW0oKSx0aGlzfWNoZWNrVHJpbSgpe3RoaXMuc2l6ZT50aGlzLl9saW1pdCYmdGhpcy50cmltT2xkKE1hdGgucm91bmQodGhpcy5fbGltaXQqdGhpcy5fcmF0aW8pKX19KDFlNCk7ZnVuY3Rpb24gYXIoKXtjb25zdCBlPVtdLHQ9W107Zm9yKGxldCBlPTA7ZTw9MTI4O2UrKyl0W2VdPTA7Zm9yKGxldCBuPTA7bjw9MTI4O24rKyllLnB1c2godC5zbGljZSgwKSk7cmV0dXJuIGV9dmFyIHNyO2FyKCksYXIoKSxhcigpLGZ1bmN0aW9uKGUpe2UuRGVmYXVsdD1bLTEwMCwwXSxlLmlzRGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4hZXx8Mj09PWUubGVuZ3RoJiYtMTAwPT09ZVswXSYmMD09PWVbMV19fShzcnx8KHNyPXt9KSk7Y29uc3QgbHI9bmV3IFJlZ0V4cChgXFwkXFwoJHtGdC5pY29uTmFtZUV4cHJlc3Npb259KD86JHtGdC5pY29uTW9kaWZpZXJFeHByZXNzaW9ufSk/XFwpYCwiZyIpO25ldyBSZWdFeHAoRnQuaWNvbk5hbWVDaGFyYWN0ZXIpO2NvbnN0IGNyPW5ldyBSZWdFeHAoYChcXFxcKT8ke2xyLnNvdXJjZX1gLCJnIik7bmV3IFJlZ0V4cChgXFxcXCR7bHIuc291cmNlfWAsImciKSxuZXcgUmVnRXhwKGAoXFxzKT8oXFxcXCk/JHtsci5zb3VyY2V9KFxccyk/YCwiZyIpO2NsYXNzIHVye2NvbnN0cnVjdG9yKGU9IiIsdD0hMSl7dmFyIG4scixpLG87aWYodGhpcy52YWx1ZT1lLCJzdHJpbmciIT10eXBlb2YgdGhpcy52YWx1ZSl0aHJvdyhvPSJ2YWx1ZSIpP25ldyBFcnJvcihgSWxsZWdhbCBhcmd1bWVudDogJHtvfWApOm5ldyBFcnJvcigiSWxsZWdhbCBhcmd1bWVudCIpOyJib29sZWFuIj09dHlwZW9mIHQ/KHRoaXMuaXNUcnVzdGVkPXQsdGhpcy5zdXBwb3J0VGhlbWVJY29ucz0hMSx0aGlzLnN1cHBvcnRIdG1sPSExKToodGhpcy5pc1RydXN0ZWQ9bnVsbCE9PShuPXQuaXNUcnVzdGVkKSYmdm9pZCAwIT09bj9uOnZvaWQgMCx0aGlzLnN1cHBvcnRUaGVtZUljb25zPW51bGwhPT0ocj10LnN1cHBvcnRUaGVtZUljb25zKSYmdm9pZCAwIT09ciYmcix0aGlzLnN1cHBvcnRIdG1sPW51bGwhPT0oaT10LnN1cHBvcnRIdG1sKSYmdm9pZCAwIT09aSYmaSl9YXBwZW5kVGV4dChlLHQ9MCl7dmFyIG47cmV0dXJuIHRoaXMudmFsdWUrPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1tcXGAqX3t9W1xdKCkjK1wtIV0vZywiXFwkJiIpfSh0aGlzLnN1cHBvcnRUaGVtZUljb25zPyhuPWUsbi5yZXBsYWNlKGNyLCgoZSx0KT0+dD9lOmBcXCR7ZX1gKSkpOmUpLnJlcGxhY2UoLyhbIFx0XSspL2csKChlLHQpPT4iJm5ic3A7Ii5yZXBlYXQodC5sZW5ndGgpKSkucmVwbGFjZSgvXD4vZ20sIlxcPiIpLnJlcGxhY2UoL1xuL2csMT09PXQ/IlxcXG4iOiJcblxuIiksdGhpc31hcHBlbmRNYXJrZG93bihlKXtyZXR1cm4gdGhpcy52YWx1ZSs9ZSx0aGlzfWFwcGVuZENvZGVibG9jayhlLHQpe3JldHVybiB0aGlzLnZhbHVlKz0iXG5gYGAiLHRoaXMudmFsdWUrPWUsdGhpcy52YWx1ZSs9IlxuIix0aGlzLnZhbHVlKz10LHRoaXMudmFsdWUrPSJcbmBgYFxuIix0aGlzfX12YXIgaHIsZHI7ZnVuY3Rpb24gZnIoZSx0LG4pe3RbaHIuRElfVEFSR0VUXT09PXQ/dFtoci5ESV9ERVBFTkRFTkNJRVNdLnB1c2goe2lkOmUsaW5kZXg6bn0pOih0W2hyLkRJX0RFUEVOREVOQ0lFU109W3tpZDplLGluZGV4Om59XSx0W2hyLkRJX1RBUkdFVF09dCl9ZnVuY3Rpb24gbXIoZSl7aWYoaHIuc2VydmljZUlkcy5oYXMoZSkpcmV0dXJuIGhyLnNlcnZpY2VJZHMuZ2V0KGUpO2NvbnN0IHQ9ZnVuY3Rpb24oZSxuLHIpe2lmKDMhPT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQElTZXJ2aWNlTmFtZS1kZWNvcmF0b3IgY2FuIG9ubHkgYmUgdXNlZCB0byBkZWNvcmF0ZSBhIHBhcmFtZXRlciIpO2ZyKHQsZSxyKX07cmV0dXJuIHQudG9TdHJpbmc9KCk9PmUsaHIuc2VydmljZUlkcy5zZXQoZSx0KSx0fSFmdW5jdGlvbihlKXtlLnNlcnZpY2VJZHM9bmV3IE1hcCxlLkRJX1RBUkdFVD0iJGRpJHRhcmdldCIsZS5ESV9ERVBFTkRFTkNJRVM9IiRkaSRkZXBlbmRlbmNpZXMiLGUuZ2V0U2VydmljZURlcGVuZGVuY2llcz1mdW5jdGlvbih0KXtyZXR1cm4gdFtlLkRJX0RFUEVOREVOQ0lFU118fFtdfX0oaHJ8fChocj17fSkpLG1yKCJpbnN0YW50aWF0aW9uU2VydmljZSIpLG1yKCJsb2dTZXJ2aWNlIiksbXIoImxvZ2dlclNlcnZpY2UiKSxmdW5jdGlvbihlKXtlW2UuVHJhY2U9MF09IlRyYWNlIixlW2UuRGVidWc9MV09IkRlYnVnIixlW2UuSW5mbz0yXT0iSW5mbyIsZVtlLldhcm5pbmc9M109Ildhcm5pbmciLGVbZS5FcnJvcj00XT0iRXJyb3IiLGVbZS5Dcml0aWNhbD01XT0iQ3JpdGljYWwiLGVbZS5PZmY9Nl09Ik9mZiJ9KGRyfHwoZHI9e30pKTtjb25zdCBncj1kci5JbmZvO2NsYXNzIHByIGV4dGVuZHMgbXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5sZXZlbD1ncix0aGlzLl9vbkRpZENoYW5nZUxvZ0xldmVsPXRoaXMuX3JlZ2lzdGVyKG5ldyBVKSx0aGlzLm9uRGlkQ2hhbmdlTG9nTGV2ZWw9dGhpcy5fb25EaWRDaGFuZ2VMb2dMZXZlbC5ldmVudH1zZXRMZXZlbChlKXt0aGlzLmxldmVsIT09ZSYmKHRoaXMubGV2ZWw9ZSx0aGlzLl9vbkRpZENoYW5nZUxvZ0xldmVsLmZpcmUodGhpcy5sZXZlbCkpfWdldExldmVsKCl7cmV0dXJuIHRoaXMubGV2ZWx9fWNsYXNzIENyIGV4dGVuZHMgcHJ7Y29uc3RydWN0b3IoZT1ncil7c3VwZXIoKSx0aGlzLnNldExldmVsKGUpfXRyYWNlKGUsLi4udCl7dGhpcy5nZXRMZXZlbCgpPD1kci5UcmFjZSYmY29uc29sZS5sb2coIiVjVFJBQ0UiLCJjb2xvcjogIzg4OCIsZSwuLi50KX1kZWJ1ZyhlLC4uLnQpe3RoaXMuZ2V0TGV2ZWwoKTw9ZHIuRGVidWcmJmNvbnNvbGUubG9nKCIlY0RFQlVHIiwiYmFja2dyb3VuZDogI2VlZTsgY29sb3I6ICM4ODgiLGUsLi4udCl9aW5mbyhlLC4uLnQpe3RoaXMuZ2V0TGV2ZWwoKTw9ZHIuSW5mbyYmY29uc29sZS5sb2coIiVjIElORk8iLCJjb2xvcjogIzMzZiIsZSwuLi50KX13YXJuKGUsLi4udCl7dGhpcy5nZXRMZXZlbCgpPD1kci5XYXJuaW5nJiZjb25zb2xlLmxvZygiJWMgV0FSTiIsImNvbG9yOiAjOTkzIixlLC4uLnQpfWVycm9yKGUsLi4udCl7dGhpcy5nZXRMZXZlbCgpPD1kci5FcnJvciYmY29uc29sZS5sb2coIiVjICBFUlIiLCJjb2xvcjogI2YzMyIsZSwuLi50KX1jcml0aWNhbChlLC4uLnQpe3RoaXMuZ2V0TGV2ZWwoKTw9ZHIuQ3JpdGljYWwmJmNvbnNvbGUubG9nKCIlY0NSSVRJIiwiYmFja2dyb3VuZDogI2YzMzsgY29sb3I6IHdoaXRlIixlLC4uLnQpfWRpc3Bvc2UoKXt9Zmx1c2goKXt9fWNsYXNzIGJye3N0YXRpYyBjaG9yZChlLHQpe3JldHVybiBmdW5jdGlvbihlLHQpe3JldHVybihlfCg2NTUzNSZ0KTw8MTY+Pj4wKT4+PjB9KGUsdCl9fXZhciB3cixfcix5cjtmdW5jdGlvbiBTcihlLHQsbixyLGkpe3JldHVybiBmdW5jdGlvbihlLHQsbixyLGkpe2lmKDA9PT1yKXJldHVybiEwO2NvbnN0IG89dC5jaGFyQ29kZUF0KHItMSk7aWYoMCE9PWUuZ2V0KG8pKXJldHVybiEwO2lmKDEzPT09b3x8MTA9PT1vKXJldHVybiEwO2lmKGk+MCl7Y29uc3Qgbj10LmNoYXJDb2RlQXQocik7aWYoMCE9PWUuZ2V0KG4pKXJldHVybiEwfXJldHVybiExfShlLHQsMCxyLGkpJiZmdW5jdGlvbihlLHQsbixyLGkpe2lmKHIraT09PW4pcmV0dXJuITA7Y29uc3Qgbz10LmNoYXJDb2RlQXQocitpKTtpZigwIT09ZS5nZXQobykpcmV0dXJuITA7aWYoMTM9PT1vfHwxMD09PW8pcmV0dXJuITA7aWYoaT4wKXtjb25zdCBuPXQuY2hhckNvZGVBdChyK2ktMSk7aWYoMCE9PWUuZ2V0KG4pKXJldHVybiEwfXJldHVybiExfShlLHQsbixyLGkpfWJyLkN0cmxDbWQ9MjA0OCxici5TaGlmdD0xMDI0LGJyLkFsdD01MTIsYnIuV2luQ3RybD0yNTYsZnVuY3Rpb24oZSl7ZVtlLkxlZnQ9MV09IkxlZnQiLGVbZS5DZW50ZXI9Ml09IkNlbnRlciIsZVtlLlJpZ2h0PTRdPSJSaWdodCIsZVtlLkZ1bGw9N109IkZ1bGwifSh3cnx8KHdyPXt9KSksZnVuY3Rpb24oZSl7ZVtlLklubGluZT0xXT0iSW5saW5lIixlW2UuR3V0dGVyPTJdPSJHdXR0ZXIifShfcnx8KF9yPXt9KSksZnVuY3Rpb24oZSl7ZVtlLkJvdGg9MF09IkJvdGgiLGVbZS5SaWdodD0xXT0iUmlnaHQiLGVbZS5MZWZ0PTJdPSJMZWZ0IixlW2UuTm9uZT0zXT0iTm9uZSJ9KHlyfHwoeXI9e30pKTtjbGFzcyB2cntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX3dvcmRTZXBhcmF0b3JzPWUsdGhpcy5fc2VhcmNoUmVnZXg9dCx0aGlzLl9wcmV2TWF0Y2hTdGFydEluZGV4PS0xLHRoaXMuX3ByZXZNYXRjaExlbmd0aD0wfXJlc2V0KGUpe3RoaXMuX3NlYXJjaFJlZ2V4Lmxhc3RJbmRleD1lLHRoaXMuX3ByZXZNYXRjaFN0YXJ0SW5kZXg9LTEsdGhpcy5fcHJldk1hdGNoTGVuZ3RoPTB9bmV4dChlKXtjb25zdCB0PWUubGVuZ3RoO2xldCBuO2Rve2lmKHRoaXMuX3ByZXZNYXRjaFN0YXJ0SW5kZXgrdGhpcy5fcHJldk1hdGNoTGVuZ3RoPT09dClyZXR1cm4gbnVsbDtpZihuPXRoaXMuX3NlYXJjaFJlZ2V4LmV4ZWMoZSksIW4pcmV0dXJuIG51bGw7Y29uc3Qgcj1uLmluZGV4LGk9blswXS5sZW5ndGg7aWYocj09PXRoaXMuX3ByZXZNYXRjaFN0YXJ0SW5kZXgmJmk9PT10aGlzLl9wcmV2TWF0Y2hMZW5ndGgpe2lmKDA9PT1pKXtaKGUsdCx0aGlzLl9zZWFyY2hSZWdleC5sYXN0SW5kZXgpPjY1NTM1P3RoaXMuX3NlYXJjaFJlZ2V4Lmxhc3RJbmRleCs9Mjp0aGlzLl9zZWFyY2hSZWdleC5sYXN0SW5kZXgrPTE7Y29udGludWV9cmV0dXJuIG51bGx9aWYodGhpcy5fcHJldk1hdGNoU3RhcnRJbmRleD1yLHRoaXMuX3ByZXZNYXRjaExlbmd0aD1pLCF0aGlzLl93b3JkU2VwYXJhdG9yc3x8U3IodGhpcy5fd29yZFNlcGFyYXRvcnMsZSx0LHIsaSkpcmV0dXJuIG59d2hpbGUobik7cmV0dXJuIG51bGx9fWNsYXNzIExye2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz1lLHRoaXMuYWxsb3dlZENvZGVQb2ludHM9bmV3IFNldChlLmFsbG93ZWRDb2RlUG9pbnRzKSx0aGlzLmFtYmlndW91c0NoYXJhY3RlcnM9US5nZXRJbnN0YW5jZShuZXcgU2V0KGUuYWxsb3dlZExvY2FsZXMpKX1nZXRDYW5kaWRhdGVDb2RlUG9pbnRzKCl7aWYodGhpcy5vcHRpb25zLm5vbkJhc2ljQVNDSUkpcmV0dXJuImFsbE5vbkJhc2ljQXNjaWkiO2NvbnN0IGU9bmV3IFNldDtpZih0aGlzLm9wdGlvbnMuaW52aXNpYmxlQ2hhcmFjdGVycylmb3IoY29uc3QgdCBvZiBYLmNvZGVQb2ludHMpTnIoU3RyaW5nLmZyb21Db2RlUG9pbnQodCkpfHxlLmFkZCh0KTtpZih0aGlzLm9wdGlvbnMuYW1iaWd1b3VzQ2hhcmFjdGVycylmb3IoY29uc3QgdCBvZiB0aGlzLmFtYmlndW91c0NoYXJhY3RlcnMuZ2V0Q29uZnVzYWJsZUNvZGVQb2ludHMoKSllLmFkZCh0KTtmb3IoY29uc3QgdCBvZiB0aGlzLmFsbG93ZWRDb2RlUG9pbnRzKWUuZGVsZXRlKHQpO3JldHVybiBlfXNob3VsZEhpZ2hsaWdodE5vbkJhc2ljQVNDSUkoZSx0KXtjb25zdCBuPWUuY29kZVBvaW50QXQoMCk7aWYodGhpcy5hbGxvd2VkQ29kZVBvaW50cy5oYXMobikpcmV0dXJuIDA7aWYodGhpcy5vcHRpb25zLm5vbkJhc2ljQVNDSUkpcmV0dXJuIDE7bGV0IHI9ITEsaT0hMTtpZih0KWZvcihsZXQgZSBvZiB0KXtjb25zdCB0PWUuY29kZVBvaW50QXQoMCksbj0obz1lLEoudGVzdChvKSk7cj1yfHxuLG58fHRoaXMuYW1iaWd1b3VzQ2hhcmFjdGVycy5pc0FtYmlndW91cyh0KXx8WC5pc0ludmlzaWJsZUNoYXJhY3Rlcih0KXx8KGk9ITApfXZhciBvO3JldHVybiFyJiZpPzA6dGhpcy5vcHRpb25zLmludmlzaWJsZUNoYXJhY3RlcnMmJiFOcihlKSYmWC5pc0ludmlzaWJsZUNoYXJhY3RlcihuKT8yOnRoaXMub3B0aW9ucy5hbWJpZ3VvdXNDaGFyYWN0ZXJzJiZ0aGlzLmFtYmlndW91c0NoYXJhY3RlcnMuaXNBbWJpZ3VvdXMobik/MzowfX1mdW5jdGlvbiBOcihlKXtyZXR1cm4iICI9PT1lfHwiXG4iPT09ZXx8Ilx0Ij09PWV9dmFyIEVyPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLG8pe2Z1bmN0aW9uIGEoZSl7dHJ5e2woci5uZXh0KGUpKX1jYXRjaChlKXtvKGUpfX1mdW5jdGlvbiBzKGUpe3RyeXtsKHIudGhyb3coZSkpfWNhdGNoKGUpe28oZSl9fWZ1bmN0aW9uIGwoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKGEscyl9bCgocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfTtjbGFzcyBBciBleHRlbmRzIGNsYXNze2NvbnN0cnVjdG9yKGUsdCxuLHIpe3RoaXMuX3VyaT1lLHRoaXMuX2xpbmVzPXQsdGhpcy5fZW9sPW4sdGhpcy5fdmVyc2lvbklkPXIsdGhpcy5fbGluZVN0YXJ0cz1udWxsLHRoaXMuX2NhY2hlZFRleHRWYWx1ZT1udWxsfWRpc3Bvc2UoKXt0aGlzLl9saW5lcy5sZW5ndGg9MH1nZXQgdmVyc2lvbigpe3JldHVybiB0aGlzLl92ZXJzaW9uSWR9Z2V0VGV4dCgpe3JldHVybiBudWxsPT09dGhpcy5fY2FjaGVkVGV4dFZhbHVlJiYodGhpcy5fY2FjaGVkVGV4dFZhbHVlPXRoaXMuX2xpbmVzLmpvaW4odGhpcy5fZW9sKSksdGhpcy5fY2FjaGVkVGV4dFZhbHVlfW9uRXZlbnRzKGUpe2UuZW9sJiZlLmVvbCE9PXRoaXMuX2VvbCYmKHRoaXMuX2VvbD1lLmVvbCx0aGlzLl9saW5lU3RhcnRzPW51bGwpO2NvbnN0IHQ9ZS5jaGFuZ2VzO2Zvcihjb25zdCBlIG9mIHQpdGhpcy5fYWNjZXB0RGVsZXRlUmFuZ2UoZS5yYW5nZSksdGhpcy5fYWNjZXB0SW5zZXJ0VGV4dChuZXcgWGUoZS5yYW5nZS5zdGFydExpbmVOdW1iZXIsZS5yYW5nZS5zdGFydENvbHVtbiksZS50ZXh0KTt0aGlzLl92ZXJzaW9uSWQ9ZS52ZXJzaW9uSWQsdGhpcy5fY2FjaGVkVGV4dFZhbHVlPW51bGx9X2Vuc3VyZUxpbmVTdGFydHMoKXtpZighdGhpcy5fbGluZVN0YXJ0cyl7Y29uc3QgZT10aGlzLl9lb2wubGVuZ3RoLHQ9dGhpcy5fbGluZXMubGVuZ3RoLG49bmV3IFVpbnQzMkFycmF5KHQpO2ZvcihsZXQgcj0wO3I8dDtyKyspbltyXT10aGlzLl9saW5lc1tyXS5sZW5ndGgrZTt0aGlzLl9saW5lU3RhcnRzPW5ldyBkdChuKX19X3NldExpbmVUZXh0KGUsdCl7dGhpcy5fbGluZXNbZV09dCx0aGlzLl9saW5lU3RhcnRzJiZ0aGlzLl9saW5lU3RhcnRzLnNldFZhbHVlKGUsdGhpcy5fbGluZXNbZV0ubGVuZ3RoK3RoaXMuX2VvbC5sZW5ndGgpfV9hY2NlcHREZWxldGVSYW5nZShlKXtpZihlLnN0YXJ0TGluZU51bWJlciE9PWUuZW5kTGluZU51bWJlcil0aGlzLl9zZXRMaW5lVGV4dChlLnN0YXJ0TGluZU51bWJlci0xLHRoaXMuX2xpbmVzW2Uuc3RhcnRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZygwLGUuc3RhcnRDb2x1bW4tMSkrdGhpcy5fbGluZXNbZS5lbmRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZyhlLmVuZENvbHVtbi0xKSksdGhpcy5fbGluZXMuc3BsaWNlKGUuc3RhcnRMaW5lTnVtYmVyLGUuZW5kTGluZU51bWJlci1lLnN0YXJ0TGluZU51bWJlciksdGhpcy5fbGluZVN0YXJ0cyYmdGhpcy5fbGluZVN0YXJ0cy5yZW1vdmVWYWx1ZXMoZS5zdGFydExpbmVOdW1iZXIsZS5lbmRMaW5lTnVtYmVyLWUuc3RhcnRMaW5lTnVtYmVyKTtlbHNle2lmKGUuc3RhcnRDb2x1bW49PT1lLmVuZENvbHVtbilyZXR1cm47dGhpcy5fc2V0TGluZVRleHQoZS5zdGFydExpbmVOdW1iZXItMSx0aGlzLl9saW5lc1tlLnN0YXJ0TGluZU51bWJlci0xXS5zdWJzdHJpbmcoMCxlLnN0YXJ0Q29sdW1uLTEpK3RoaXMuX2xpbmVzW2Uuc3RhcnRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZyhlLmVuZENvbHVtbi0xKSl9fV9hY2NlcHRJbnNlcnRUZXh0KGUsdCl7aWYoMD09PXQubGVuZ3RoKXJldHVybjtjb25zdCBuPXQuc3BsaXQoL1xyXG58XHJ8XG4vKTtpZigxPT09bi5sZW5ndGgpcmV0dXJuIHZvaWQgdGhpcy5fc2V0TGluZVRleHQoZS5saW5lTnVtYmVyLTEsdGhpcy5fbGluZXNbZS5saW5lTnVtYmVyLTFdLnN1YnN0cmluZygwLGUuY29sdW1uLTEpK25bMF0rdGhpcy5fbGluZXNbZS5saW5lTnVtYmVyLTFdLnN1YnN0cmluZyhlLmNvbHVtbi0xKSk7bltuLmxlbmd0aC0xXSs9dGhpcy5fbGluZXNbZS5saW5lTnVtYmVyLTFdLnN1YnN0cmluZyhlLmNvbHVtbi0xKSx0aGlzLl9zZXRMaW5lVGV4dChlLmxpbmVOdW1iZXItMSx0aGlzLl9saW5lc1tlLmxpbmVOdW1iZXItMV0uc3Vic3RyaW5nKDAsZS5jb2x1bW4tMSkrblswXSk7Y29uc3Qgcj1uZXcgVWludDMyQXJyYXkobi5sZW5ndGgtMSk7Zm9yKGxldCB0PTE7dDxuLmxlbmd0aDt0KyspdGhpcy5fbGluZXMuc3BsaWNlKGUubGluZU51bWJlcit0LTEsMCxuW3RdKSxyW3QtMV09blt0XS5sZW5ndGgrdGhpcy5fZW9sLmxlbmd0aDt0aGlzLl9saW5lU3RhcnRzJiZ0aGlzLl9saW5lU3RhcnRzLmluc2VydFZhbHVlcyhlLmxpbmVOdW1iZXIscil9fXtnZXQgdXJpKCl7cmV0dXJuIHRoaXMuX3VyaX1nZXQgZW9sKCl7cmV0dXJuIHRoaXMuX2VvbH1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLmdldFRleHQoKX1nZXRMaW5lc0NvbnRlbnQoKXtyZXR1cm4gdGhpcy5fbGluZXMuc2xpY2UoMCl9Z2V0TGluZUNvdW50KCl7cmV0dXJuIHRoaXMuX2xpbmVzLmxlbmd0aH1nZXRMaW5lQ29udGVudChlKXtyZXR1cm4gdGhpcy5fbGluZXNbZS0xXX1nZXRXb3JkQXRQb3NpdGlvbihlLHQpe2NvbnN0IG49cHQoZS5jb2x1bW4sZnVuY3Rpb24oZSl7bGV0IHQ9bXQ7aWYoZSYmZSBpbnN0YW5jZW9mIFJlZ0V4cClpZihlLmdsb2JhbCl0PWU7ZWxzZXtsZXQgbj0iZyI7ZS5pZ25vcmVDYXNlJiYobis9ImkiKSxlLm11bHRpbGluZSYmKG4rPSJtIiksZS51bmljb2RlJiYobis9InUiKSx0PW5ldyBSZWdFeHAoZS5zb3VyY2Usbil9cmV0dXJuIHQubGFzdEluZGV4PTAsdH0odCksdGhpcy5fbGluZXNbZS5saW5lTnVtYmVyLTFdLDApO3JldHVybiBuP25ldyBldChlLmxpbmVOdW1iZXIsbi5zdGFydENvbHVtbixlLmxpbmVOdW1iZXIsbi5lbmRDb2x1bW4pOm51bGx9d29yZHMoZSl7Y29uc3QgdD10aGlzLl9saW5lcyxuPXRoaXMuX3dvcmRlbml6ZS5iaW5kKHRoaXMpO2xldCByPTAsaT0iIixvPTAsYT1bXTtyZXR1cm57KltTeW1ib2wuaXRlcmF0b3JdKCl7Zm9yKDs7KWlmKG88YS5sZW5ndGgpe2NvbnN0IGU9aS5zdWJzdHJpbmcoYVtvXS5zdGFydCxhW29dLmVuZCk7bys9MSx5aWVsZCBlfWVsc2V7aWYoIShyPHQubGVuZ3RoKSlicmVhaztpPXRbcl0sYT1uKGksZSksbz0wLHIrPTF9fX19Z2V0TGluZVdvcmRzKGUsdCl7Y29uc3Qgbj10aGlzLl9saW5lc1tlLTFdLHI9dGhpcy5fd29yZGVuaXplKG4sdCksaT1bXTtmb3IoY29uc3QgZSBvZiByKWkucHVzaCh7d29yZDpuLnN1YnN0cmluZyhlLnN0YXJ0LGUuZW5kKSxzdGFydENvbHVtbjplLnN0YXJ0KzEsZW5kQ29sdW1uOmUuZW5kKzF9KTtyZXR1cm4gaX1fd29yZGVuaXplKGUsdCl7Y29uc3Qgbj1bXTtsZXQgcjtmb3IodC5sYXN0SW5kZXg9MDsocj10LmV4ZWMoZSkpJiYwIT09clswXS5sZW5ndGg7KW4ucHVzaCh7c3RhcnQ6ci5pbmRleCxlbmQ6ci5pbmRleCtyWzBdLmxlbmd0aH0pO3JldHVybiBufWdldFZhbHVlSW5SYW5nZShlKXtpZigoZT10aGlzLl92YWxpZGF0ZVJhbmdlKGUpKS5zdGFydExpbmVOdW1iZXI9PT1lLmVuZExpbmVOdW1iZXIpcmV0dXJuIHRoaXMuX2xpbmVzW2Uuc3RhcnRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZyhlLnN0YXJ0Q29sdW1uLTEsZS5lbmRDb2x1bW4tMSk7Y29uc3QgdD10aGlzLl9lb2wsbj1lLnN0YXJ0TGluZU51bWJlci0xLHI9ZS5lbmRMaW5lTnVtYmVyLTEsaT1bXTtpLnB1c2godGhpcy5fbGluZXNbbl0uc3Vic3RyaW5nKGUuc3RhcnRDb2x1bW4tMSkpO2ZvcihsZXQgZT1uKzE7ZTxyO2UrKylpLnB1c2godGhpcy5fbGluZXNbZV0pO3JldHVybiBpLnB1c2godGhpcy5fbGluZXNbcl0uc3Vic3RyaW5nKDAsZS5lbmRDb2x1bW4tMSkpLGkuam9pbih0KX1vZmZzZXRBdChlKXtyZXR1cm4gZT10aGlzLl92YWxpZGF0ZVBvc2l0aW9uKGUpLHRoaXMuX2Vuc3VyZUxpbmVTdGFydHMoKSx0aGlzLl9saW5lU3RhcnRzLmdldFByZWZpeFN1bShlLmxpbmVOdW1iZXItMikrKGUuY29sdW1uLTEpfXBvc2l0aW9uQXQoZSl7ZT1NYXRoLmZsb29yKGUpLGU9TWF0aC5tYXgoMCxlKSx0aGlzLl9lbnN1cmVMaW5lU3RhcnRzKCk7Y29uc3QgdD10aGlzLl9saW5lU3RhcnRzLmdldEluZGV4T2YoZSksbj10aGlzLl9saW5lc1t0LmluZGV4XS5sZW5ndGg7cmV0dXJue2xpbmVOdW1iZXI6MSt0LmluZGV4LGNvbHVtbjoxK01hdGgubWluKHQucmVtYWluZGVyLG4pfX1fdmFsaWRhdGVSYW5nZShlKXtjb25zdCB0PXRoaXMuX3ZhbGlkYXRlUG9zaXRpb24oe2xpbmVOdW1iZXI6ZS5zdGFydExpbmVOdW1iZXIsY29sdW1uOmUuc3RhcnRDb2x1bW59KSxuPXRoaXMuX3ZhbGlkYXRlUG9zaXRpb24oe2xpbmVOdW1iZXI6ZS5lbmRMaW5lTnVtYmVyLGNvbHVtbjplLmVuZENvbHVtbn0pO3JldHVybiB0LmxpbmVOdW1iZXIhPT1lLnN0YXJ0TGluZU51bWJlcnx8dC5jb2x1bW4hPT1lLnN0YXJ0Q29sdW1ufHxuLmxpbmVOdW1iZXIhPT1lLmVuZExpbmVOdW1iZXJ8fG4uY29sdW1uIT09ZS5lbmRDb2x1bW4/e3N0YXJ0TGluZU51bWJlcjp0LmxpbmVOdW1iZXIsc3RhcnRDb2x1bW46dC5jb2x1bW4sZW5kTGluZU51bWJlcjpuLmxpbmVOdW1iZXIsZW5kQ29sdW1uOm4uY29sdW1ufTplfV92YWxpZGF0ZVBvc2l0aW9uKGUpe2lmKCFYZS5pc0lQb3NpdGlvbihlKSl0aHJvdyBuZXcgRXJyb3IoImJhZCBwb3NpdGlvbiIpO2xldHtsaW5lTnVtYmVyOnQsY29sdW1uOm59PWUscj0hMTtpZih0PDEpdD0xLG49MSxyPSEwO2Vsc2UgaWYodD50aGlzLl9saW5lcy5sZW5ndGgpdD10aGlzLl9saW5lcy5sZW5ndGgsbj10aGlzLl9saW5lc1t0LTFdLmxlbmd0aCsxLHI9ITA7ZWxzZXtjb25zdCBlPXRoaXMuX2xpbmVzW3QtMV0ubGVuZ3RoKzE7bjwxPyhuPTEscj0hMCk6bj5lJiYobj1lLHI9ITApfXJldHVybiByP3tsaW5lTnVtYmVyOnQsY29sdW1uOm59OmV9fWNsYXNzIGtye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5faG9zdD1lLHRoaXMuX21vZGVscz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2ZvcmVpZ25Nb2R1bGVGYWN0b3J5PXQsdGhpcy5fZm9yZWlnbk1vZHVsZT1udWxsfWRpc3Bvc2UoKXt0aGlzLl9tb2RlbHM9T2JqZWN0LmNyZWF0ZShudWxsKX1fZ2V0TW9kZWwoZSl7cmV0dXJuIHRoaXMuX21vZGVsc1tlXX1fZ2V0TW9kZWxzKCl7Y29uc3QgZT1bXTtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5fbW9kZWxzKS5mb3JFYWNoKCh0PT5lLnB1c2godGhpcy5fbW9kZWxzW3RdKSkpLGV9YWNjZXB0TmV3TW9kZWwoZSl7dGhpcy5fbW9kZWxzW2UudXJsXT1uZXcgQXIocWUucGFyc2UoZS51cmwpLGUubGluZXMsZS5FT0wsZS52ZXJzaW9uSWQpfWFjY2VwdE1vZGVsQ2hhbmdlZChlLHQpe2lmKCF0aGlzLl9tb2RlbHNbZV0pcmV0dXJuO3RoaXMuX21vZGVsc1tlXS5vbkV2ZW50cyh0KX1hY2NlcHRSZW1vdmVkTW9kZWwoZSl7dGhpcy5fbW9kZWxzW2VdJiZkZWxldGUgdGhpcy5fbW9kZWxzW2VdfWNvbXB1dGVVbmljb2RlSGlnaGxpZ2h0cyhlLHQsbil7cmV0dXJuIEVyKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3Qgcj10aGlzLl9nZXRNb2RlbChlKTtyZXR1cm4gcj9jbGFzc3tzdGF0aWMgY29tcHV0ZVVuaWNvZGVIaWdobGlnaHRzKGUsdCxuKXtjb25zdCByPW4/bi5zdGFydExpbmVOdW1iZXI6MSxpPW4/bi5lbmRMaW5lTnVtYmVyOmUuZ2V0TGluZUNvdW50KCksbz1uZXcgTHIodCksYT1vLmdldENhbmRpZGF0ZUNvZGVQb2ludHMoKTtsZXQgczt2YXIgbDtzPSJhbGxOb25CYXNpY0FzY2lpIj09PWE/bmV3IFJlZ0V4cCgiW15cXHRcXG5cXHJcXHgyMC1cXHg3RV0iLCJnIik6bmV3IFJlZ0V4cChgWyR7bD1BcnJheS5mcm9tKGEpLm1hcCgoZT0+U3RyaW5nLmZyb21Db2RlUG9pbnQoZSkpKS5qb2luKCIiKSxsLnJlcGxhY2UoL1tcXFx7XH1cKlwrXD9cfFxeXCRcLlxbXF1cKFwpXS9nLCJcXCQmIil9XWAsImciKTtjb25zdCBjPW5ldyB2cihudWxsLHMpLHU9W107bGV0IGgsZD0hMSxmPTAsbT0wLGc9MDtlOmZvcihsZXQgdD1yLG49aTt0PD1uO3QrKyl7Y29uc3Qgbj1lLmdldExpbmVDb250ZW50KHQpLHI9bi5sZW5ndGg7Yy5yZXNldCgwKTtkb3tpZihoPWMubmV4dChuKSxoKXtsZXQgZT1oLmluZGV4LGk9aC5pbmRleCtoWzBdLmxlbmd0aDtlPjAmJlkobi5jaGFyQ29kZUF0KGUtMSkpJiZlLS0saSsxPHImJlkobi5jaGFyQ29kZUF0KGktMSkpJiZpKys7Y29uc3QgYT1uLnN1YnN0cmluZyhlLGkpLHM9cHQoZSsxLG10LG4sMCksbD1vLnNob3VsZEhpZ2hsaWdodE5vbkJhc2ljQVNDSUkoYSxzP3Mud29yZDpudWxsKTtpZigwIT09bCl7Mz09PWw/ZisrOjI9PT1sP20rKzoxPT09bD9nKys6SCgpO2NvbnN0IG49MWUzO2lmKHUubGVuZ3RoPj1uKXtkPSEwO2JyZWFrIGV9dS5wdXNoKG5ldyBldCh0LGUrMSx0LGkrMSkpfX19d2hpbGUoaCl9cmV0dXJue3Jhbmdlczp1LGhhc01vcmU6ZCxhbWJpZ3VvdXNDaGFyYWN0ZXJDb3VudDpmLGludmlzaWJsZUNoYXJhY3RlckNvdW50Om0sbm9uQmFzaWNBc2NpaUNoYXJhY3RlckNvdW50Omd9fXN0YXRpYyBjb21wdXRlVW5pY29kZUhpZ2hsaWdodFJlYXNvbihlLHQpe2NvbnN0IG49bmV3IExyKHQpO3N3aXRjaChuLnNob3VsZEhpZ2hsaWdodE5vbkJhc2ljQVNDSUkoZSxudWxsKSl7Y2FzZSAwOnJldHVybiBudWxsO2Nhc2UgMjpyZXR1cm57a2luZDoxfTtjYXNlIDM6e2NvbnN0IHI9ZS5jb2RlUG9pbnRBdCgwKSxpPW4uYW1iaWd1b3VzQ2hhcmFjdGVycy5nZXRQcmltYXJ5Q29uZnVzYWJsZShyKSxvPVEuZ2V0TG9jYWxlcygpLmZpbHRlcigoZT0+IVEuZ2V0SW5zdGFuY2UobmV3IFNldChbLi4udC5hbGxvd2VkTG9jYWxlcyxlXSkpLmlzQW1iaWd1b3VzKHIpKSk7cmV0dXJue2tpbmQ6MCxjb25mdXNhYmxlV2l0aDpTdHJpbmcuZnJvbUNvZGVQb2ludChpKSxub3RBbWJpZ3VvdXNJbkxvY2FsZXM6b319Y2FzZSAxOnJldHVybntraW5kOjJ9fX19LmNvbXB1dGVVbmljb2RlSGlnaGxpZ2h0cyhyLHQsbik6e3JhbmdlczpbXSxoYXNNb3JlOiExLGFtYmlndW91c0NoYXJhY3RlckNvdW50OjAsaW52aXNpYmxlQ2hhcmFjdGVyQ291bnQ6MCxub25CYXNpY0FzY2lpQ2hhcmFjdGVyQ291bnQ6MH19KSl9Y29tcHV0ZURpZmYoZSx0LG4scil7cmV0dXJuIEVyKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgaT10aGlzLl9nZXRNb2RlbChlKSxvPXRoaXMuX2dldE1vZGVsKHQpO2lmKCFpfHwhbylyZXR1cm4gbnVsbDtjb25zdCBhPWkuZ2V0TGluZXNDb250ZW50KCkscz1vLmdldExpbmVzQ29udGVudCgpLGw9bmV3IGF0KGEscyx7c2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzOiEwLHNob3VsZFBvc3RQcm9jZXNzQ2hhckNoYW5nZXM6ITAsc2hvdWxkSWdub3JlVHJpbVdoaXRlc3BhY2U6bixzaG91bGRNYWtlUHJldHR5RGlmZjohMCxtYXhDb21wdXRhdGlvblRpbWU6cn0pLmNvbXB1dGVEaWZmKCksYz0hKGwuY2hhbmdlcy5sZW5ndGg+MCkmJnRoaXMuX21vZGVsc0FyZUlkZW50aWNhbChpLG8pO3JldHVybntxdWl0RWFybHk6bC5xdWl0RWFybHksaWRlbnRpY2FsOmMsY2hhbmdlczpsLmNoYW5nZXN9fSkpfV9tb2RlbHNBcmVJZGVudGljYWwoZSx0KXtjb25zdCBuPWUuZ2V0TGluZUNvdW50KCk7aWYobiE9PXQuZ2V0TGluZUNvdW50KCkpcmV0dXJuITE7Zm9yKGxldCByPTE7cjw9bjtyKyspe2lmKGUuZ2V0TGluZUNvbnRlbnQocikhPT10LmdldExpbmVDb250ZW50KHIpKXJldHVybiExfXJldHVybiEwfWNvbXB1dGVNb3JlTWluaW1hbEVkaXRzKGUsdCl7cmV0dXJuIEVyKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3Qgbj10aGlzLl9nZXRNb2RlbChlKTtpZighbilyZXR1cm4gdDtjb25zdCByPVtdO2xldCBpO3Q9dC5zbGljZSgwKS5zb3J0KCgoZSx0KT0+e2lmKGUucmFuZ2UmJnQucmFuZ2UpcmV0dXJuIGV0LmNvbXBhcmVSYW5nZXNVc2luZ1N0YXJ0cyhlLnJhbmdlLHQucmFuZ2UpO3JldHVybihlLnJhbmdlPzA6MSktKHQucmFuZ2U/MDoxKX0pKTtmb3IobGV0e3JhbmdlOmUsdGV4dDpvLGVvbDphfW9mIHQpe2lmKCJudW1iZXIiPT10eXBlb2YgYSYmKGk9YSksZXQuaXNFbXB0eShlKSYmIW8pY29udGludWU7Y29uc3QgdD1uLmdldFZhbHVlSW5SYW5nZShlKTtpZihvPW8ucmVwbGFjZSgvXHJcbnxcbnxcci9nLG4uZW9sKSx0PT09byljb250aW51ZTtpZihNYXRoLm1heChvLmxlbmd0aCx0Lmxlbmd0aCk+a3IuX2RpZmZMaW1pdCl7ci5wdXNoKHtyYW5nZTplLHRleHQ6b30pO2NvbnRpbnVlfWNvbnN0IHM9ZmUodCxvLCExKSxsPW4ub2Zmc2V0QXQoZXQubGlmdChlKS5nZXRTdGFydFBvc2l0aW9uKCkpO2Zvcihjb25zdCBlIG9mIHMpe2NvbnN0IHQ9bi5wb3NpdGlvbkF0KGwrZS5vcmlnaW5hbFN0YXJ0KSxpPW4ucG9zaXRpb25BdChsK2Uub3JpZ2luYWxTdGFydCtlLm9yaWdpbmFsTGVuZ3RoKSxhPXt0ZXh0Om8uc3Vic3RyKGUubW9kaWZpZWRTdGFydCxlLm1vZGlmaWVkTGVuZ3RoKSxyYW5nZTp7c3RhcnRMaW5lTnVtYmVyOnQubGluZU51bWJlcixzdGFydENvbHVtbjp0LmNvbHVtbixlbmRMaW5lTnVtYmVyOmkubGluZU51bWJlcixlbmRDb2x1bW46aS5jb2x1bW59fTtuLmdldFZhbHVlSW5SYW5nZShhLnJhbmdlKSE9PWEudGV4dCYmci5wdXNoKGEpfX1yZXR1cm4ibnVtYmVyIj09dHlwZW9mIGkmJnIucHVzaCh7ZW9sOmksdGV4dDoiIixyYW5nZTp7c3RhcnRMaW5lTnVtYmVyOjAsc3RhcnRDb2x1bW46MCxlbmRMaW5lTnVtYmVyOjAsZW5kQ29sdW1uOjB9fSkscn0pKX1jb21wdXRlTGlua3MoZSl7cmV0dXJuIEVyKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD10aGlzLl9nZXRNb2RlbChlKTtyZXR1cm4gdD9mdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuZ2V0TGluZUNvdW50JiYiZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRMaW5lQ29udGVudD92dC5jb21wdXRlTGlua3MoZSk6W119KHQpOm51bGx9KSl9dGV4dHVhbFN1Z2dlc3QoZSx0LG4scil7cmV0dXJuIEVyKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgaT1uZXcgSyghMCksbz1uZXcgUmVnRXhwKG4sciksYT1uZXcgU2V0O2U6Zm9yKGxldCBuIG9mIGUpe2NvbnN0IGU9dGhpcy5fZ2V0TW9kZWwobik7aWYoZSlmb3IobGV0IG4gb2YgZS53b3JkcyhvKSlpZihuIT09dCYmaXNOYU4oTnVtYmVyKG4pKSYmKGEuYWRkKG4pLGEuc2l6ZT5rci5fc3VnZ2VzdGlvbnNMaW1pdCkpYnJlYWsgZX1yZXR1cm57d29yZHM6QXJyYXkuZnJvbShhKSxkdXJhdGlvbjppLmVsYXBzZWQoKX19KSl9Y29tcHV0ZVdvcmRSYW5nZXMoZSx0LG4scil7cmV0dXJuIEVyKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgaT10aGlzLl9nZXRNb2RlbChlKTtpZighaSlyZXR1cm4gT2JqZWN0LmNyZWF0ZShudWxsKTtjb25zdCBvPW5ldyBSZWdFeHAobixyKSxhPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBlPXQuc3RhcnRMaW5lTnVtYmVyO2U8dC5lbmRMaW5lTnVtYmVyO2UrKyl7Y29uc3QgdD1pLmdldExpbmVXb3JkcyhlLG8pO2Zvcihjb25zdCBuIG9mIHQpe2lmKCFpc05hTihOdW1iZXIobi53b3JkKSkpY29udGludWU7bGV0IHQ9YVtuLndvcmRdO3R8fCh0PVtdLGFbbi53b3JkXT10KSx0LnB1c2goe3N0YXJ0TGluZU51bWJlcjplLHN0YXJ0Q29sdW1uOm4uc3RhcnRDb2x1bW4sZW5kTGluZU51bWJlcjplLGVuZENvbHVtbjpuLmVuZENvbHVtbn0pfX1yZXR1cm4gYX0pKX1uYXZpZ2F0ZVZhbHVlU2V0KGUsdCxuLHIsaSl7cmV0dXJuIEVyKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3Qgbz10aGlzLl9nZXRNb2RlbChlKTtpZighbylyZXR1cm4gbnVsbDtjb25zdCBhPW5ldyBSZWdFeHAocixpKTt0LnN0YXJ0Q29sdW1uPT09dC5lbmRDb2x1bW4mJih0PXtzdGFydExpbmVOdW1iZXI6dC5zdGFydExpbmVOdW1iZXIsc3RhcnRDb2x1bW46dC5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOnQuZW5kTGluZU51bWJlcixlbmRDb2x1bW46dC5lbmRDb2x1bW4rMX0pO2NvbnN0IHM9by5nZXRWYWx1ZUluUmFuZ2UodCksbD1vLmdldFdvcmRBdFBvc2l0aW9uKHtsaW5lTnVtYmVyOnQuc3RhcnRMaW5lTnVtYmVyLGNvbHVtbjp0LnN0YXJ0Q29sdW1ufSxhKTtpZighbClyZXR1cm4gbnVsbDtjb25zdCBjPW8uZ2V0VmFsdWVJblJhbmdlKGwpO3JldHVybiBMdC5JTlNUQU5DRS5uYXZpZ2F0ZVZhbHVlU2V0KHQscyxsLGMsbil9KSl9bG9hZEZvcmVpZ25Nb2R1bGUoZSx0LG4pe2NvbnN0IHI9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWU9PmZ1bmN0aW9uKCl7Y29uc3Qgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7cmV0dXJuIHQoZSxuKX07bGV0IHI9e307Zm9yKGNvbnN0IHQgb2YgZSlyW3RdPW4odCk7cmV0dXJuIHJ9KG4sKChlLHQpPT50aGlzLl9ob3N0LmZocihlLHQpKSksaT17aG9zdDpyLGdldE1pcnJvck1vZGVsczooKT0+dGhpcy5fZ2V0TW9kZWxzKCl9O3JldHVybiB0aGlzLl9mb3JlaWduTW9kdWxlRmFjdG9yeT8odGhpcy5fZm9yZWlnbk1vZHVsZT10aGlzLl9mb3JlaWduTW9kdWxlRmFjdG9yeShpLHQpLFByb21pc2UucmVzb2x2ZShxKHRoaXMuX2ZvcmVpZ25Nb2R1bGUpKSk6UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJVbmV4cGVjdGVkIHVzYWdlIikpfWZtcihlLHQpe2lmKCF0aGlzLl9mb3JlaWduTW9kdWxlfHwiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5fZm9yZWlnbk1vZHVsZVtlXSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJNaXNzaW5nIHJlcXVlc3RIYW5kbGVyIG9yIG1ldGhvZDogIitlKSk7dHJ5e3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fZm9yZWlnbk1vZHVsZVtlXS5hcHBseSh0aGlzLl9mb3JlaWduTW9kdWxlLHQpKX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9fX1rci5fZGlmZkxpbWl0PTFlNSxrci5fc3VnZ2VzdGlvbnNMaW1pdD0xZTQsImZ1bmN0aW9uIj09dHlwZW9mIGltcG9ydFNjcmlwdHMmJihBLm1vbmFjbz17ZWRpdG9yOnZvaWQgMCxsYW5ndWFnZXM6dm9pZCAwLGV4dHJhOnZvaWQgMCxDYW5jZWxsYXRpb25Ub2tlblNvdXJjZTprdCxFbWl0dGVyOlUsS2V5Q29kZTpDbixLZXlNb2Q6YnIsUG9zaXRpb246WGUsUmFuZ2U6ZXQsU2VsZWN0aW9uOlB0LFVyaTpxZSxUb2tlbjplcixNYXJrZG93blN0cmluZzp1cixNYXJrZG93blN0cmluZ1RleHROZXdsaW5lU3R5bGU6U24sRGlzcG9zYWJsZTptLERpc3Bvc2FibGVTdG9yZTpmLEVycm9ySGFuZGxlcjp0LEFic3RyYWN0TG9nZ2VyOnByLENvbnNvbGVMb2dnZXI6Q3IsVG9rZW5pemF0aW9uUmVzdWx0OnRyLEVuY29kZWRUb2tlbml6YXRpb25SZXN1bHQ6bnIsU2VsZWN0aW9uRGlyZWN0aW9uOlBuLE1hcmtlclNldmVyaXR5OnZuLE1hcmtlclRhZzpMbixMb2dMZXZlbDp5bixlcnJvckhhbmRsZXI6bn0pO2xldCBNcj0hMTtmdW5jdGlvbiBScihlKXtpZihNcilyZXR1cm47TXI9ITA7Y29uc3QgdD1uZXcgbGUoKGU9PntzZWxmLnBvc3RNZXNzYWdlKGUpfSksKHQ9Pm5ldyBrcih0LGUpKSk7c2VsZi5vbm1lc3NhZ2U9ZT0+e3Qub25tZXNzYWdlKGUuZGF0YSl9fXJldHVybiBzZWxmLm9ubWVzc2FnZT1lPT57TXJ8fFJyKG51bGwpfSxlLmluaXRpYWxpemU9UnIsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGV9KHt9KTsKCg==', null, false);
32
32
  /* eslint-enable */
33
33
 
34
34
  const workerLoaders = {