<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>73442</bug_id>
          
          <creation_ts>2011-11-30 06:54:57 -0800</creation_ts>
          <short_desc>Web Inspector: query backend for capabilities explicitly.</short_desc>
          <delta_ts>2011-12-01 04:52:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>511713</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-30 06:54:57 -0800</bug_when>
    <thetext>This change removes the hardcoded Capabilities values in favor of explicit query commands issued against the server. I&apos;ll remove the Meta agent in subsequent change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511722</commentid>
    <comment_count>1</comment_count>
      <attachid>117187</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-30 07:10:37 -0800</bug_when>
    <thetext>Created attachment 117187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511753</commentid>
    <comment_count>2</comment_count>
      <attachid>117187</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-30 08:06:57 -0800</bug_when>
    <thetext>Comment on attachment 117187
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=117187&amp;action=review

&gt; Source/WebCore/bindings/js/ScriptDebugServer.h:87
&gt; +    bool causesRecompilation() { return true; }

recompilesSourcesOnStart

&gt; Source/WebCore/bindings/js/ScriptProfiler.h:58
&gt; +    static bool causesRecompilation() { return true; }

Same here, the name is confusing.

&gt; Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js:157
&gt; +InspectorFrontendHost.isStub = true;

This should go in the InspectorFrontendHostStub constructor or even prototype.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512590</commentid>
    <comment_count>3</comment_count>
      <attachid>117373</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-01 00:49:12 -0800</bug_when>
    <thetext>Created attachment 117373
[Patch] rebaselined</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512667</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-01 03:33:28 -0800</bug_when>
    <thetext>Committed r101651: &lt;http://trac.webkit.org/changeset/101651&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117187</attachid>
            <date>2011-11-30 07:10:37 -0800</date>
            <delta_ts>2011-12-01 00:49:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73442-20111130191034.patch</filename>
            <type>text/plain</type>
            <size>40237</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY5MjZiNDJiYmY0NGQ5
YjY2YmI3NzMzODYwMTI4YWI5NTE0OGQ5OC4uNjkyZGNlODhkY2M2OTRhMzhkNjVhMTQ0ZWQyMWUz
YWM1OTEyOTBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc0IEBACiAyMDExLTExLTMwICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9y
OiBxdWVyeSBiYWNrZW5kIGZvciBjYXBhYmlsaXRpZXMgZXhwbGljaXRseS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQyCisKKyAgICAgICAgVGhp
cyBjaGFuZ2UgcmVtb3ZlcyB0aGUgaGFyZGNvZGVkIENhcGFiaWxpdGllcyB2YWx1ZXMgaW4gZmF2
b3Igb2YKKyAgICAgICAgZXhwbGljaXQgcXVlcnkgY29tbWFuZHMgaXNzdWVkIGFnYWluc3QgdGhl
IGJhY2tlbmQuIEknbGwgcmVtb3ZlIHRoZQorICAgICAgICBNZXRhIGFnZW50IGluIGEgc3Vic2Vx
dWVudCBjaGFuZ2UuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNhdXNlc1JlY29tcGlsYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OnN1cHBvcnRzTmF0aXZlQnJlYWtwb2ludHMpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRQcm9maWxlcjo6Y2F1c2VzUmVjb21waWxhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRQcm9maWxlcjo6aXNTYW1wbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9m
aWxlcjo6aGFzSGVhcFByb2ZpbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHREZWJ1
Z1NlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNhdXNlc1Jl
Y29tcGlsYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OnN1cHBv
cnRzTmF0aXZlQnJlYWtwb2ludHMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2Zp
bGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6Y2F1c2VzUmVjb21waWxh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6aXNTYW1wbGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6aGFzSGVhcFByb2ZpbGVyKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpjYW5DbGVh
ckJyb3dzZXJDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OmNhbkNs
ZWFyQnJvd3NlckNvb2tpZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNh
dXNlc1JlY29tcGlsYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6Y2FuU2V0U2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OnN1cHBvcnRzTmF0aXZlQnJlYWtwb2ludHMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6Y2F1c2VzUmVjb21waWxhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JQcm9maWxlckFnZW50Ojppc1NhbXBsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ6Omhhc0hlYXBQcm9maWxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JQcm9maWxlckFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9m
aWxlckFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBy
b2ZpbGVyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjYW5DbGVh
ckJyb3dzZXJDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpjYW5DbGVhckJyb3dzZXJDb29raWVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJN
b2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5lbmFibGVEZWJ1Z2dlcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuY2FuU2V0U2NyaXB0
U291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5k
SG9zdFN0dWIuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0l0ZW1WaWV3KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrTG9nVmlldy5vbkNhbkNsZWFyQnJvd3NlckNhY2hlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5vbkNhbkNsZWFyQnJvd3NlckNvb2tpZXMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUuX2NvbnRleHRNZW51KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3JlcG9ydEhlYXBTbmFwc2hvdFByb2dyZXNzKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvU2V0dGluZ3NTY3JlZW4uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NT
Y3JlZW4pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLmdldCBpbnNwZWN0ZWRQYWdlRG9tYWluKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LmRvTG9hZGVkRG9uZSk6CisKKzIwMTEtMTEtMzAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBn
b29nbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgZGVmZXJyZWQg
YmFja2VuZC0+ZnJvbnQtZW5kIGNvbW1hbmRzIHByb2Nlc3NpbmcuCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQzOQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDA0MDU5ZmI1N2U4ZmZmZWI1Nzc5NjQxYzkxOGNjMmUyMzBlZmIyOTYuLjgy
YmZiZDQ0ZjgzNmVlZmIyMzU0ODg0MTJlMzVjMmFiNDJmMzAwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTEtMTEtMzAgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHF1ZXJ5IGJhY2tl
bmQgZm9yIGNhcGFiaWxpdGllcyBleHBsaWNpdGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6Y2FuQ2xlYXJCcm93c2VyQ2FjaGUp
OgorICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnRJbXBsOjpjYW5DbGVhckJyb3dzZXJD
b29raWVzKToKKyAgICAgICAgKiBzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAq
IHNyYy9qcy9EZXZUb29scy5qczoKKworMjAxMS0xMS0zMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxk
bWFuQGdvb2dsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogZ2V0IHJpZCBvZiBkZWZl
cnJlZCBiYWNrZW5kLT5mcm9udC1lbmQgY29tbWFuZHMgcHJvY2Vzc2luZy4KICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDM5CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4IDdmOGNiMDU0Njky
NjM4NTIzNjUwNGNiYzBlZTJiY2RjYzAxYjdhYWUuLjI0OTRjMjA3NTQ0ZmY4MGI3OTU2MmMwMDUx
MDM0YjBhZmM1YTU1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
RGVidWdTZXJ2ZXIuaApAQCAtODQsNiArODQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5TZXRT
Y3JpcHRTb3VyY2UoKTsKICAgICBib29sIHNldFNjcmlwdFNvdXJjZShjb25zdCBTdHJpbmcmIHNv
dXJjZUlELCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQsIGJvb2wgcHJldmlldywgU3RyaW5nKiBl
cnJvciwgU2NyaXB0VmFsdWUqIG5ld0NhbGxGcmFtZXMsIFNjcmlwdE9iamVjdCogcmVzdWx0KTsK
IAorICAgIGJvb2wgY2F1c2VzUmVjb21waWxhdGlvbigpIHsgcmV0dXJuIHRydWU7IH0KKyAgICBi
b29sIHN1cHBvcnRzTmF0aXZlQnJlYWtwb2ludHMoKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAg
dm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVj
b21waWxlQWxsSlNGdW5jdGlvbnMoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+KiA9IDApID0gMDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVyLmgKaW5kZXggZWY2
OGFhZjYxMTU2MjBhMjBkZWVhZTgzZjY4N2VlZDkxY2MxZTNmZC4uOGJiMDVjNGJjNGNmMDc0NWMw
MmU2YWZiMzMxNWEyNWRjMGExMjlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0UHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRQcm9maWxlci5oCkBAIC01NSw2ICs1NSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBzdGFydChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+IHN0b3AoU2NyaXB0U3RhdGUqIHN0YXRlLCBj
b25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTY3JpcHRIZWFwU25h
cHNob3Q+IHRha2VIZWFwU25hcHNob3QoY29uc3QgU3RyaW5nJiwgSGVhcFNuYXBzaG90UHJvZ3Jl
c3MqKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIGJvb2wgY2F1c2VzUmVjb21waWxhdGlvbigp
IHsgcmV0dXJuIHRydWU7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1NhbXBsaW5nKCkgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBoYXNIZWFwUHJvZmlsZXIoKSB7IHJldHVybiBmYWxz
ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmgKaW5kZXggYzM5MjBlYzU0ZDk3M2MzZGRhZTA1
NTk3YTc2NzRkYWRjYTQyMzQzMC4uY2FjMDUwZGE1MDQxNDVmOTRlMWZjY2MyMDBmZmVkMTBjNjgz
MWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdT
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZl
ci5oCkBAIC03OCw2ICs3OCw5IEBAIHB1YmxpYzoKICAgICBib29sIGNhblNldFNjcmlwdFNvdXJj
ZSgpOwogICAgIGJvb2wgc2V0U2NyaXB0U291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlSUQsIGNv
bnN0IFN0cmluZyYgbmV3Q29udGVudCwgYm9vbCBwcmV2aWV3LCBTdHJpbmcqIGVycm9yLCBTY3Jp
cHRWYWx1ZSogbmV3Q2FsbEZyYW1lcywgU2NyaXB0T2JqZWN0KiByZXN1bHQpOwogCisgICAgYm9v
bCBjYXVzZXNSZWNvbXBpbGF0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHN1cHBv
cnRzTmF0aXZlQnJlYWtwb2ludHMoKSB7IHJldHVybiB0cnVlOyB9CisKICAgICB2b2lkIHJlY29t
cGlsZUFsbEpTRnVuY3Rpb25zU29vbigpIHsgfQogICAgIHZvaWQgcmVjb21waWxlQWxsSlNGdW5j
dGlvbnMoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+KiA9IDApIHsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuaAppbmRleCAxMTRhYWUwNzlmNDc3OGEyODRj
MmEwM2RlYmU2Y2QwNzQwNWI2ZmRiLi43MTA2ZDdjZGJhNTA1MTg3YTY0ZmUwODMzNDRlYjY5OTBk
M2Q0ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9m
aWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmgK
QEAgLTU5LDYgKzU5LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHN0YXJ0KFNjcmlwdFN0
YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U2NyaXB0UHJvZmlsZT4gc3RvcChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgdGl0
bGUpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmlwdEhlYXBTbmFwc2hvdD4gdGFrZUhlYXBT
bmFwc2hvdChjb25zdCBTdHJpbmcmIHRpdGxlLCBIZWFwU25hcHNob3RQcm9ncmVzcyopOworICAg
IHN0YXRpYyBib29sIGNhdXNlc1JlY29tcGlsYXRpb24oKSB7IHJldHVybiBmYWxzZTsgfQorICAg
IHN0YXRpYyBib29sIGlzU2FtcGxpbmcoKSB7IHJldHVybiB0cnVlOyB9CisgICAgc3RhdGljIGJv
b2wgaGFzSGVhcFByb2ZpbGVyKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyB2b2lkIGlu
aXRpYWxpemUoKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpp
bmRleCA1YWI5MTA4NjdmZTc0NDc4OWRiNTFhMzQ0ODM5NTgwNzJiNjI1ZDQwLi4zMThhNWEwZGM0
MTU5NDk4MDJmYWYzYjg5ZTg5MTNlMGM2ODVhM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uCkBAIC02NjQsMTAgKzY2NCwyNCBAQAogICAgICAgICAgICAgICAgIF0K
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAi
Y2FuQ2xlYXJCcm93c2VyQ2FjaGUiLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJU
ZWxscyB3aGV0aGVyIGNsZWFyaW5nIGJyb3dzZXIgY2FjaGUgaXMgc3VwcG9ydGVkLiIsCisgICAg
ICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
cmVzdWx0IiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlmIGJyb3dz
ZXIgY2FjaGUgY2FuIGJlIGNsZWFyZWQuIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJjbGVhckJyb3dz
ZXJDYWNoZSIsCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNsZWFycyBicm93c2Vy
IGNhY2hlLiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAiY2FuQ2xlYXJCcm93c2VyQ29va2llcyIsCisgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlRlbGxzIHdoZXRoZXIgY2xlYXJpbmcgYnJvd3NlciBjb29raWVzIGlzIHN1cHBv
cnRlZC4iLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInJlc3VsdCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAi
VHJ1ZSBpZiBicm93c2VyIGNvb2tpZXMgY2FuIGJlIGNsZWFyZWQuIiB9CisgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFt
ZSI6ICJjbGVhckJyb3dzZXJDb29raWVzIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQ2xlYXJzIGJyb3dzZXIgY29va2llcy4iCiAgICAgICAgICAgICB9LApAQCAtMTgxOSw2ICsx
ODMzLDIyIEBACiAgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5kcyI6IFsKICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJjYXVzZXNSZWNvbXBpbGF0aW9uIiwKKyAgICAg
ICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgZW5hYmxp
bmcgZGVidWdnZXIgY2F1c2VzIHNjcmlwdHMgcmVjb21waWxhdGlvbi4iIH0KKyAgICAgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAorICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJUZWxscyB3aGV0aGVyIGVuYWJsaW5nIGRlYnVnZ2VyIGNhdXNlcyBz
Y3JpcHRzIHJlY29tcGlsYXRpb24uIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAibmFtZSI6ICJzdXBwb3J0c05hdGl2ZUJyZWFrcG9pbnRzIiwKKyAgICAg
ICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgZGVidWdn
ZXIgc3VwcG9ydHMgbmF0aXZlIGJyZWFrcG9pbnRzLiIgfQorICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIlRlbGxzIHdoZXRoZXIgZGVidWdnZXIgc3VwcG9ydHMgbmF0aXZlIGJyZWFrcG9pbnRz
LiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUi
OiAiZW5hYmxlIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBkZWJ1
Z2dlciBmb3IgdGhlIGdpdmVuIHBhZ2UuIENsaWVudHMgc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0
aGUgZGVidWdnaW5nIGhhcyBiZWVuIGVuYWJsZWQgdW50aWwgdGhlIHJlc3VsdCBmb3IgdGhpcyBj
b21tYW5kIGlzIHJlY2VpdmVkLiIKICAgICAgICAgICAgIH0sCkBAIC0xOTA4LDYgKzE5MzgsMTMg
QEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2VhcmNoZXMgZm9yIGdpdmVuIHN0
cmluZyBpbiBzY3JpcHQgY29udGVudC4iCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICJuYW1lIjogImNhblNldFNjcmlwdFNvdXJjZSIsCisgICAgICAgICAg
ICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0
IiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlmIDxjb2RlPnNldFNj
cmlwdFNvdXJjZTwvY29kZT4gaXMgc3VwcG9ydGVkLiIgfQorICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRlbGxzIHdoZXRoZXIgPGNvZGU+c2V0U2Ny
aXB0U291cmNlPC9jb2RlPiBpcyBzdXBwb3J0ZWQuIgorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRTY3JpcHRTb3VyY2UiLAogICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhl
IHNjcmlwdCB0byBlZGl0LiIgfSwKQEAgLTIwOTEsMTggKzIxMjgsMzAgQEAKICAgICAgICAgXSwK
ICAgICAgICAgImNvbW1hbmRzIjogWwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJu
YW1lIjogImVuYWJsZSIKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJjYXVzZXNSZWNvbXBpbGF0
aW9uIiwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJyZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiB9CisgICAgICAgICAgICAgICAg
XQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6
ICJkaXNhYmxlIgorICAgICAgICAgICAgICAgICJuYW1lIjogImlzU2FtcGxpbmciLAorICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJl
c3VsdCIsICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAgICAgICAgICAgICBdCiAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogImlzRW5hYmxlZCIs
CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiaGFzSGVhcFByb2ZpbGVyIiwKICAgICAgICAgICAg
ICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdGF0ZSIs
ICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1
bHQiLCAidHlwZSI6ICJib29sZWFuIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAg
fSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImRpc2Fi
bGUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1l
IjogInN0YXJ0IgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKQEAgLTIxNTIsMTIgKzIy
MDEsNiBAQAogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICJuYW1lIjogInByb2ZpbGVyV2FzRW5hYmxlZCIKLSAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAicHJvZmlsZXJXYXNE
aXNhYmxlZCIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
Im5hbWUiOiAiYWRkUHJvZmlsZUhlYWRlciIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVhZGVyIiwgIiRyZWYiOiAiUHJv
ZmlsZUhlYWRlciIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5o
CmluZGV4IDgzYWIyMzJmNjM2NzU0MjY0NDJmZjBjMDgxMzg2ZTIzMTYzMDg5NjYuLjUzYjU1YzVl
YWJiMTcwNDdkYjI1NDcyNjhmOTZmNGI3YTZkMTQ3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTUwLDcgKzUwLDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBoaWdobGlnaHQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhpZGVIaWdobGln
aHQoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ2xlYXJCcm93c2VyQ2FjaGUoKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDYWNoZSgpIHsgfQor
ICAgIHZpcnR1YWwgYm9vbCBjYW5DbGVhckJyb3dzZXJDb29raWVzKCkgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCcm93c2VyQ29va2llcygpIHsgfQogCiAgICAgYm9v
bCBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQYWdlKFBhZ2UqIGZyb250ZW5kUGFnZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBmZjZhYzgyMzNkNTBiYmExMDY1NmVhNTNm
YzFjY2FiNjE4OWI4Y2FlLi4yMjIxZWMyNTI5ZDEwNjQ5ZGNiZDAyMmU1NzU1Y2Y5NTJmYjFhMDQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuY3BwCkBAIC05OSwxMCArOTksMTkgQEAgYm9vbCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjplbmFibGVkKCkKICAgICByZXR1cm4gbV9zdGF0ZS0+Z2V0Qm9vbGVhbihEZWJ1Z2dlckFnZW50
U3RhdGU6OmRlYnVnZ2VyRW5hYmxlZCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6Z2V0QWdlbnRDYXBhYmlsaXRpZXMoSW5zcGVjdG9yQXJyYXkqIGNhcGFiaWxpdGllcykKK3Zv
aWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y2F1c2VzUmVjb21waWxhdGlvbihFcnJvclN0cmlu
ZyosIGJvb2wqIHJlc3VsdCkKIHsKLSAgICBpZiAoc2NyaXB0RGVidWdTZXJ2ZXIoKS5jYW5TZXRT
Y3JpcHRTb3VyY2UoKSkKLSAgICAgICAgY2FwYWJpbGl0aWVzLT5wdXNoU3RyaW5nKEluc3BlY3Rv
ckZyb250ZW5kOjpEZWJ1Z2dlcjo6Y2FwYWJpbGl0eVNldFNjcmlwdFNvdXJjZSk7CisgICAgKnJl
c3VsdCA9IHNjcmlwdERlYnVnU2VydmVyKCkuY2F1c2VzUmVjb21waWxhdGlvbigpOworfQorCit2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNhblNldFNjcmlwdFNvdXJjZShFcnJvclN0cmlu
ZyosIGJvb2wqIHJlc3VsdCkKK3sKKyAgICAqcmVzdWx0ID0gc2NyaXB0RGVidWdTZXJ2ZXIoKS5j
YW5TZXRTY3JpcHRTb3VyY2UoKTsKK30KKwordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpz
dXBwb3J0c05hdGl2ZUJyZWFrcG9pbnRzKEVycm9yU3RyaW5nKiwgYm9vbCogcmVzdWx0KQorewor
ICAgICpyZXN1bHQgPSBzY3JpcHREZWJ1Z1NlcnZlcigpLnN1cHBvcnRzTmF0aXZlQnJlYWtwb2lu
dHMoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjplbmFibGUoRXJyb3JTdHJp
bmcqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmgKaW5kZXggNDNkYTIxYTU1MDQ1NmJmYTk1YjE3YmY1ZGU4NjgwYTNjNjBlZDc2OS4uYmEy
NDJkYzdjNWIyZDY3MjNjY2NmYzliZTYzMjdhMWU5YjM3N2Q1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC02NSwxMyArNjUs
MTYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+SW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpOwog
CisgICAgdm9pZCBjYXVzZXNSZWNvbXBpbGF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCopOworICAg
IHZvaWQgY2FuU2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgYm9vbCopOworICAgIHZvaWQg
c3VwcG9ydHNOYXRpdmVCcmVha3BvaW50cyhFcnJvclN0cmluZyosIGJvb2wqKTsKKwogICAgIHZv
aWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAgIHZpcnR1YWwgdm9pZCByZXN0b3Jl
KCk7Ci0gICAgdmlydHVhbCB2b2lkIGdldEFnZW50Q2FwYWJpbGl0aWVzKEluc3BlY3RvckFycmF5
Kik7CiAKICAgICB2b2lkIGRpZENsZWFyTWFpbkZyYW1lV2luZG93T2JqZWN0KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApp
bmRleCBlZDM0MTcyYzQyMGIwODEwODgzNzVhMTJkYjE2NjM4ODM2NGRkMmUxLi4yMjI4MjIzMjRh
Mjk1MzY5NGRkZDg5Zjg2ZGIwYTZmZTgzOGRjMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCkBAIC0xMzcsNiArMTM3LDIy
IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpj
cmVhdGVTbmFwc2hvdEhlYWRlcihjb25zdCBTCiAgICAgcmV0dXJuIGhlYWRlcjsKIH0KIAorCit2
b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNhdXNlc1JlY29tcGlsYXRpb24oRXJyb3JTdHJp
bmcqLCBib29sKiByZXN1bHQpCit7CisgICAgKnJlc3VsdCA9IFNjcmlwdFByb2ZpbGVyOjpjYXVz
ZXNSZWNvbXBpbGF0aW9uKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6aXNT
YW1wbGluZyhFcnJvclN0cmluZyosIGJvb2wqIHJlc3VsdCkKK3sKKyAgICAqcmVzdWx0ID0gU2Ny
aXB0UHJvZmlsZXI6OmlzU2FtcGxpbmcoKTsKK30KKwordm9pZCBJbnNwZWN0b3JQcm9maWxlckFn
ZW50OjpoYXNIZWFwUHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBib29sKiByZXN1bHQpCit7CisgICAg
KnJlc3VsdCA9IFNjcmlwdFByb2ZpbGVyOjpoYXNIZWFwUHJvZmlsZXIoKTsKK30KKwogdm9pZCBJ
bnNwZWN0b3JQcm9maWxlckFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqKQogewogICAgIGlmIChl
bmFibGVkKCkpCkBAIC0xNTcsOCArMTczLDYgQEAgdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50
OjpkaXNhYmxlKCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZW5hYmxlZCA9IGZhbHNlOwogICAg
IFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkucmVjb21waWxlQWxsSlNGdW5jdGlvbnNT
b29uKCk7Ci0gICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJvbnRlbmQtPnByb2ZpbGVy
V2FzRGlzYWJsZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjplbmFibGUo
Ym9vbCBza2lwUmVjb21waWxlKQpAQCAtMTY4LDggKzE4Miw2IEBAIHZvaWQgSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6ZW5hYmxlKGJvb2wgc2tpcFJlY29tcGlsZSkKICAgICBtX2VuYWJsZWQgPSB0
cnVlOwogICAgIGlmICghc2tpcFJlY29tcGlsZSkKICAgICAgICAgUGFnZVNjcmlwdERlYnVnU2Vy
dmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAgICBpZiAobV9m
cm9udGVuZCkKLSAgICAgICAgbV9mcm9udGVuZC0+cHJvZmlsZXJXYXNFbmFibGVkKCk7CiB9CiAK
IFN0cmluZyBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpnZXRDdXJyZW50VXNlckluaXRpYXRlZFBy
b2ZpbGVOYW1lKGJvb2wgaW5jcmVtZW50UHJvZmlsZU51bWJlcikKQEAgLTI2MSw3ICsyNzMsNiBA
QCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm9maWxlcygpCiB2
b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5k
KiBmcm9udGVuZCkKIHsKICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPnByb2ZpbGVyKCk7Ci0g
ICAgcmVzdG9yZUVuYWJsZW1lbnQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50
OjpjbGVhckZyb250ZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudC5oCmluZGV4IDE0MDY0YzY2NWFmNmUwZTdmMTkzOTc3YjA5NzFjMTc0
N2JmNDQ3MTIuLmQ0NzMzOTBhMzcyMThlZjc4N2ZmNDU2ZDU1OTZlM2FiMjkyZTBhYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaApA
QCAtNjgsOSArNjgsMTIgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJQcm9maWxlcyhFcnJvclN0
cmluZyopIHsgcmVzZXRTdGF0ZSgpOyB9CiAgICAgdm9pZCByZXNldFN0YXRlKCk7CiAKKyAgICB2
b2lkIGNhdXNlc1JlY29tcGlsYXRpb24oRXJyb3JTdHJpbmcqLCBib29sKik7CisgICAgdm9pZCBp
c1NhbXBsaW5nKEVycm9yU3RyaW5nKiwgYm9vbCopOworICAgIHZvaWQgaGFzSGVhcFByb2ZpbGVy
KEVycm9yU3RyaW5nKiwgYm9vbCopOworCiAgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsK
ICAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKLSAgICB2b2lkIGlzRW5hYmxlZChFcnJv
clN0cmluZyosIGJvb2wqIHJlc3VsdCkgeyAqcmVzdWx0ID0gZW5hYmxlZCgpOyB9CiAgICAgdm9p
ZCBzdGFydChFcnJvclN0cmluZyogPSAwKTsKICAgICB2b2lkIHN0b3AoRXJyb3JTdHJpbmcqID0g
MCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50LmNwcAppbmRleCBkZjg0NTE5NDdjZjg1NDY4YWE1MjhhNTJjNmFhZTE3MDVlNmU4ZGU2
Li4wMzU0N2YwNjcwMzk5NDY4NzBkYmFlN2MzZDQxYzFlYTJlNmU1ZmYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC01
MDYsMTEgKzUwNiwyMSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmdldFJlc3BvbnNl
Qm9keShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cgogICAgICplcnJvclN0cmlu
ZyA9ICJObyBkYXRhIGZvdW5kIGZvciByZXNvdXJjZSB3aXRoIGdpdmVuIGlkZW50aWZpZXIiOwog
fQogCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNhbkNsZWFyQnJvd3NlckNhY2hlKEVy
cm9yU3RyaW5nKiwgYm9vbCogcmVzdWx0KQoreworICAgICpyZXN1bHQgPSBtX2NsaWVudC0+Y2Fu
Q2xlYXJCcm93c2VyQ2FjaGUoKTsKK30KKwogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpj
bGVhckJyb3dzZXJDYWNoZShFcnJvclN0cmluZyopCiB7CiAgICAgbV9jbGllbnQtPmNsZWFyQnJv
d3NlckNhY2hlKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2FuQ2xlYXJC
cm93c2VyQ29va2llcyhFcnJvclN0cmluZyosIGJvb2wqIHJlc3VsdCkKK3sKKyAgICAqcmVzdWx0
ID0gbV9jbGllbnQtPmNhbkNsZWFyQnJvd3NlckNvb2tpZXMoKTsKK30KKwogdm9pZCBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50OjpjbGVhckJyb3dzZXJDb29raWVzKEVycm9yU3RyaW5nKikKIHsKICAg
ICBtX2NsaWVudC0+Y2xlYXJCcm93c2VyQ29va2llcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggMjgyODk2Nzk3OTdiM2Y4
YTFhN2U0MWQ5OTQ0ZmI5N2EzMmFmYmIxZi4uOGY2Zjc1YmYyN2I4Yjk2NGJkNDMzYzdiODI0N2M5
NjUyYmYxNDI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5oCkBAIC0xMzAsNyArMTMwLDkgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0
UmVzcG9uc2VCb2R5KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0SWQsIFN0cmlu
ZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CiAgICAgdm9pZCBjbGVhckNhY2hlKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRpb25hbFByZXNlcnZlZExvYWRlcklk
KTsKIAorICAgIHZvaWQgY2FuQ2xlYXJCcm93c2VyQ2FjaGUoRXJyb3JTdHJpbmcqLCBib29sKik7
CiAgICAgdm9pZCBjbGVhckJyb3dzZXJDYWNoZShFcnJvclN0cmluZyopOworICAgIHZvaWQgY2Fu
Q2xlYXJCcm93c2VyQ29va2llcyhFcnJvclN0cmluZyosIGJvb2wqKTsKICAgICB2b2lkIGNsZWFy
QnJvd3NlckNvb2tpZXMoRXJyb3JTdHJpbmcqKTsKICAgICB2b2lkIHNldENhY2hlRGlzYWJsZWQo
RXJyb3JTdHJpbmcqLCBib29sIGNhY2hlRGlzYWJsZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggMDc1OTY4YzAy
MTA4MjhkOGY3NGFmNDIxZWEwYTYyMzg4ODQ4M2MxMS4uYTBkMDBjNDBiN2YxMjVhYTNiNDk4Yjkz
MmJkODNkNDVlM2ExZGFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtNDAsNyArNDAsNyBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbCA9IGZ1bmN0aW9uKCkKICAgICAgKi8KICAgICB0aGlzLl9zY3JpcHRzID0g
e307CiAKLSAgICB0aGlzLl9jYXBhYmlsaXRpZXNPYmplY3QgPSB7fTsKKyAgICB0aGlzLl9jYW5T
ZXRTY3JpcHRTb3VyY2UgPSBmYWxzZTsKIAogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJE
ZWJ1Z2dlckRpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlckRpc3BhdGNoZXIodGhp
cykpOwogfQpAQCAtODcsMjIgKzg3LDExIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkJy
ZWFrUmVhc29uID0gewogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewog
ICAgIGVuYWJsZURlYnVnZ2VyOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICAvKioKLSAgICAg
ICAgICogQHBhcmFtIHtQcm90b2NvbC5FcnJvcn0gZXJyb3IKLSAgICAgICAgICogQHBhcmFtIHtB
cnJheS48TWV0YUFnZW50LkRvbWFpbkNhcGFiaWxpdGllcz59IGNhcGFiaWxpdGllcwotICAgICAg
ICAgKi8KLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIGNhcGFiaWxpdGllcykKKyAg
ICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHJlc3VsdCkKICAgICAgICAgewotICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXBhYmlsaXRpZXMubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoY2FwYWJpbGl0aWVzW2ldLmRvbWFpbk5hbWUgIT09ICJEZWJ1Z2dl
ciIpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgdmFy
IGNhcGFiaWxpdGllc0xpc3QgPSBjYXBhYmlsaXRpZXNbaV0uY2FwYWJpbGl0aWVzOwotICAgICAg
ICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY2FwYWJpbGl0aWVzTGlzdC5sZW5ndGg7ICsr
aikKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FwYWJpbGl0aWVzT2JqZWN0W2NhcGFiaWxp
dGllc0xpc3Rbal1dID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX2Nh
blNldFNjcmlwdFNvdXJjZSA9IHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBNZXRhQWdlbnQu
Z2V0Q2FwYWJpbGl0aWVzKFsiRGVidWdnZXIiXSwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAg
ICAgIERlYnVnZ2VyQWdlbnQuY2FuU2V0U2NyaXB0U291cmNlKGNhbGxiYWNrLmJpbmQodGhpcykp
OwogICAgICAgICBEZWJ1Z2dlckFnZW50LmVuYWJsZSh0aGlzLl9kZWJ1Z2dlcldhc0VuYWJsZWQu
YmluZCh0aGlzKSk7CiAgICAgfSwKIApAQCAtMTE2LDcgKzEwNSw3IEBAIFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBjYW5TZXRTY3JpcHRTb3Vy
Y2U6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiAhIXRoaXMuX2NhcGFiaWxpdGll
c09iamVjdFtEZWJ1Z2dlckFnZW50LmNhcGFiaWxpdHlTZXRTY3JpcHRTb3VyY2VdOworICAgICAg
ICByZXR1cm4gdGhpcy5fY2FuU2V0U2NyaXB0U291cmNlOwogICAgIH0sCiAKICAgICBfZGVidWdn
ZXJXYXNFbmFibGVkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMKaW5k
ZXggZWE2MDNlN2Q3NTY3MjQzZWM3NjdhM2IyMDE5MzRkNTc1MWExYWFlYy4uN2JlNzk5YTMyY2Y0
OTk2Mjg5MDVlNWY2NjgzZDNhNGUzNjMxZGVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1
Yi5qcwpAQCAtMTU0LDYgKzE1NCw3IEBAIFdlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9udGVuZEhv
c3RTdHViLnByb3RvdHlwZSA9IHsKIH0KIAogdmFyIEluc3BlY3RvckZyb250ZW5kSG9zdCA9IG5l
dyBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1YigpOworSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmlzU3R1YiA9IHRydWU7CiBQcmVmZXJlbmNlcy5sb2NhbGl6ZVVJID0gZmFsc2U7
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0
d29ya0l0ZW1WaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrSXRlbVZpZXcuanMKaW5kZXggMjBhNzhkOTEzNjNlMWZlNjk3NzFiOTY2NDYxYmEwYTZhYjcx
ZTJlNi4uMTRkMTkzZjM0OTJhZWE1ZGY1MDczMjhlOTRmNzcxNmE4OGQ5ZmQxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcu
anMKQEAgLTQ3LDEyICs0NywxMiBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0l0ZW1WaWV3ID0gZnVu
Y3Rpb24ocmVzb3VyY2UpCiAgICAgdGhpcy5hcHBlbmRUYWIoInByZXZpZXciLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlByZXZpZXciKSwgcHJldmlld1ZpZXcpOwogICAgIHRoaXMuYXBwZW5kVGFi
KCJyZXNwb25zZSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVzcG9uc2UiKSwgcmVzcG9uc2VW
aWV3KTsKIAotICAgIGlmIChDYXBhYmlsaXRpZXMuc2hvd0Nvb2tpZXNUYWIpIHsKKyAgICBpZiAo
cmVzb3VyY2UucmVxdWVzdENvb2tpZXMgfHwgcmVzb3VyY2UucmVzcG9uc2VDb29raWVzKSB7CiAg
ICAgICAgIHRoaXMuX2Nvb2tpZXNWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvb2tp
ZXNWaWV3KHJlc291cmNlKTsKICAgICAgICAgdGhpcy5hcHBlbmRUYWIoImNvb2tpZXMiLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkNvb2tpZXMiKSwgdGhpcy5fY29va2llc1ZpZXcpOwogICAgIH0K
IAotICAgIGlmIChDYXBhYmlsaXRpZXMuc2hvd1RpbWluZ1RhYikgeworICAgIGlmIChyZXNvdXJj
ZS50aW1pbmcpIHsKICAgICAgICAgdmFyIHRpbWluZ1ZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlJl
c291cmNlVGltaW5nVmlldyhyZXNvdXJjZSk7CiAgICAgICAgIHRoaXMuYXBwZW5kVGFiKCJ0aW1p
bmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRpbWluZyIpLCB0aW1pbmdWaWV3KTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQ
YW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVs
LmpzCmluZGV4IDVhZWY2YzJmMjY2N2VmZDQ0OGViZWYzNWVmOGE3MzIzYjAwYTQ4ODIuLjRjZGE3
MWE3NWNkZGRiM2RlNmVhOTg1YmY5MzFmYjc3OTRiMjk3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC02Niw2ICs2Niwx
NyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5z
cGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJl
c291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRE9NQ29udGVudExvYWRlZCwgdGhpcy5fZG9tQ29u
dGVudExvYWRlZEV2ZW50RmlyZWQsIHRoaXMpOwogCiAgICAgdGhpcy5faW5pdGlhbGl6ZVZpZXco
KTsKKyAgICBmdW5jdGlvbiBvbkNhbkNsZWFyQnJvd3NlckNhY2hlKGVycm9yLCByZXN1bHQpCisg
ICAgeworICAgICAgICB0aGlzLl9jYW5DbGVhckJyb3dzZXJDYWNoZSA9IHJlc3VsdDsKKyAgICB9
CisgICAgTmV0d29ya0FnZW50LmNhbkNsZWFyQnJvd3NlckNhY2hlKG9uQ2FuQ2xlYXJCcm93c2Vy
Q2FjaGUuYmluZCh0aGlzKSk7CisKKyAgICBmdW5jdGlvbiBvbkNhbkNsZWFyQnJvd3NlckNvb2tp
ZXMoZXJyb3IsIHJlc3VsdCkKKyAgICB7CisgICAgICAgIHRoaXMuX2NhbkNsZWFyQnJvd3NlckNv
b2tpZXMgPSByZXN1bHQ7CisgICAgfQorICAgIE5ldHdvcmtBZ2VudC5jYW5DbGVhckJyb3dzZXJD
YWNoZShvbkNhbkNsZWFyQnJvd3NlckNvb2tpZXMuYmluZCh0aGlzKSk7CiB9CiAKIFdlYkluc3Bl
Y3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CkBAIC05NDAsMTEgKzk1MSwxMiBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoV2ViSW5zcGVjdG9yLnVz
ZUxvd2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJTYXZlIGFsbCBhcyBIQVIiIDogIlNhdmUgQWxsIGFz
IEhBUiIpLCB0aGlzLl9leHBvcnRBbGwuYmluZCh0aGlzKSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAoQ2FwYWJpbGl0aWVzLmNhbkNsZWFyQ2FjaGVBbmRDb29raWVzKSB7CisgICAgICAgIGlm
ICh0aGlzLl9jYW5DbGVhckJyb3dzZXJDYWNoZSB8fCB0aGlzLl9jYW5DbGVhckJyb3dzZXJDb29r
aWVzKQogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAg
IGlmICh0aGlzLl9jYW5DbGVhckJyb3dzZXJDYWNoZSkKICAgICAgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dlckNh
c2VNZW51VGl0bGVzKCkgPyAiQ2xlYXIgYnJvd3NlciBjYWNoZSIgOiAiQ2xlYXIgQnJvd3NlciBD
YWNoZSIpLCB0aGlzLl9jbGVhckJyb3dzZXJDYWNoZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgaWYg
KHRoaXMuX2NhbkNsZWFyQnJvd3NlckNvb2tpZXMpCiAgICAgICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZyhXZWJJbnNwZWN0b3IudXNlTG93ZXJDYXNl
TWVudVRpdGxlcygpID8gIkNsZWFyIGJyb3dzZXIgY29va2llcyIgOiAiQ2xlYXIgQnJvd3NlciBD
b29raWVzIiksIHRoaXMuX2NsZWFyQnJvd3NlckNvb2tpZXMuYmluZCh0aGlzKSk7Ci0gICAgICAg
IH0KIAogICAgICAgICBjb250ZXh0TWVudS5zaG93KGV2ZW50KTsKICAgICB9LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4
IDFiZDJjMTBiYjVkM2ZhZDQ1OTYzYmRkYzM5NmZmNGQ5MjA2NjdkYzUuLjhkOGE5N2EwMTY4YmQ5
YjU1MzI0YmRlMTc3YTcyNzVhZWJhMGY5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTExOSw3ICsxMTksNyBAQCBX
ZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuZW5hYmxl
VG9nZ2xlQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oIiIsICJlbmFi
bGUtdG9nZ2xlLXN0YXR1cy1iYXItaXRlbSIpOwogICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9u
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUHJvZmlsaW5nLmJpbmQodGhp
cyksIGZhbHNlKTsKLSAgICBpZiAoQ2FwYWJpbGl0aWVzLnByb2ZpbGVyQWx3YXlzRW5hYmxlZCkK
KyAgICBpZiAoIUNhcGFiaWxpdGllcy5wcm9maWxlckNhdXNlc1JlY29tcGlsYXRpb24pCiAgICAg
ICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVu
Iik7CiAKICAgICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3Rh
dHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xlYXIgYWxsIHByb2ZpbGVzLiIp
LCAiY2xlYXItc3RhdHVzLWJhci1pdGVtIik7CkBAIC0xMzEsNyArMTMxLDcgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy53ZWxjb21lVmlldyA9IG5l
dyBXZWJJbnNwZWN0b3IuV2VsY29tZVZpZXcoInByb2ZpbGVzIiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJXZWxjb21lIHRvIHRoZSBQcm9maWxlcyBwYW5lbCIpKTsKIAogICAgIHRoaXMuX3Byb2Zp
bGVzID0gW107Ci0gICAgdGhpcy5fcHJvZmlsZXJFbmFibGVkID0gQ2FwYWJpbGl0aWVzLnByb2Zp
bGVyQWx3YXlzRW5hYmxlZDsKKyAgICB0aGlzLl9wcm9maWxlckVuYWJsZWQgPSAhQ2FwYWJpbGl0
aWVzLnByb2ZpbGVyQ2F1c2VzUmVjb21waWxhdGlvbjsKICAgICB0aGlzLl9yZXNldCgpOwogCiAg
ICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVU
eXBlKCkpOwpAQCAtMTQwLDE1ICsxNDAsOCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9
IGZ1bmN0aW9uKCkKIAogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJQcm9maWxlckRpc3Bh
dGNoZXIobmV3IFdlYkluc3BlY3Rvci5Qcm9maWxlckRpc3BhdGNoZXIodGhpcykpOwogCi0gICAg
aWYgKENhcGFiaWxpdGllcy5wcm9maWxlckFsd2F5c0VuYWJsZWQgfHwgV2ViSW5zcGVjdG9yLnNl
dHRpbmdzLnByb2ZpbGVyRW5hYmxlZC5nZXQoKSkKLSAgICAgICAgUHJvZmlsZXJBZ2VudC5lbmFi
bGUoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgZnVuY3Rpb24gb25Qcm9maWxlckVuZWJsZWQoZXJy
b3IsIHZhbHVlKSB7Ci0gICAgICAgICAgICBpZiAodmFsdWUpCi0gICAgICAgICAgICAgICAgdGhp
cy5fcHJvZmlsZXJXYXNFbmFibGVkKCk7Ci0gICAgICAgIH0KLSAgICAgICAgUHJvZmlsZXJBZ2Vu
dC5pc0VuYWJsZWQob25Qcm9maWxlckVuZWJsZWQuYmluZCh0aGlzKSk7Ci0gICAgfQorICAgIGlm
ICghQ2FwYWJpbGl0aWVzLnByb2ZpbGVyQ2F1c2VzUmVjb21waWxhdGlvbiB8fCBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkLmdldCgpKQorICAgICAgICBQcm9maWxlckFnZW50
LmVuYWJsZSh0aGlzLl9wcm9maWxlcldhc0VuYWJsZWQuYmluZCh0aGlzKSk7CiB9CiAKIFdlYklu
c3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKQEAgLTc5NywxMCArNzkwLDEwIEBA
IFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAg
IGlmICh0aGlzLl9wcm9maWxlckVuYWJsZWQpIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5z
ZXR0aW5ncy5wcm9maWxlckVuYWJsZWQuc2V0KGZhbHNlKTsKLSAgICAgICAgICAgIFByb2ZpbGVy
QWdlbnQuZGlzYWJsZSgpOworICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5kaXNhYmxlKHRoaXMu
X3Byb2ZpbGVyV2FzRGlzYWJsZWQuYmluZCh0aGlzKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkLnNldCghIW9wdGlv
bmFsQWx3YXlzKTsKLSAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuZW5hYmxlKCk7CisgICAgICAg
ICAgICBQcm9maWxlckFnZW50LmVuYWJsZSh0aGlzLl9wcm9maWxlcldhc0VuYWJsZWQuYmluZCh0
aGlzKSk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC04NzcsMjEgKzg3MCw2IEBAIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmIChkb25lID49
IHRvdGFsKQogICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZVByb2ZpbGVIZWFkZXIodGhpcy5f
dGVtcG9yYXJ5VGFraW5nU25hcHNob3QpOwogICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9lbmFi
bGVEZXRhaWxlZEhlYXBQcm9maWxlczogZnVuY3Rpb24ocmVzZXRBZ2VudCkKLSAgICB7Ci0gICAg
ICAgIGlmIChyZXNldEFnZW50KQotICAgICAgICAgICAgdGhpcy5fY2xlYXJQcm9maWxlcygpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9yZXNldCgpOwotICAgICAgICB2YXIgb2xk
UHJvZmlsZVR5cGUgPSB0aGlzLl9wcm9maWxlVHlwZXNCeUlkTWFwW1dlYkluc3BlY3Rvci5EZXRh
aWxlZEhlYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkXTsKLSAgICAgICAgdmFyIHByb2ZpbGVUeXBl
ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90UHJvZmlsZVR5cGUoKTsKLSAgICAg
ICAgcHJvZmlsZVR5cGUudHJlZUVsZW1lbnQgPSBvbGRQcm9maWxlVHlwZS50cmVlRWxlbWVudDsK
LSAgICAgICAgdGhpcy5fcHJvZmlsZVR5cGVzQnlJZE1hcFtwcm9maWxlVHlwZS5pZF0gPSBwcm9m
aWxlVHlwZTsKLSAgICAgICAgQ2FwYWJpbGl0aWVzLmRldGFpbGVkSGVhcFByb2ZpbGVzID0gdHJ1
ZTsKLSAgICAgICAgdGhpcy5kZXRhY2goKTsKLSAgICAgICAgdGhpcy5zaG93KCk7CiAgICAgfQog
fQogCkBAIC05MDQsMTYgKzg4Miw2IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlckRpc3BhdGNoZXIg
PSBmdW5jdGlvbihwcm9maWxlcikKIH0KIAogV2ViSW5zcGVjdG9yLlByb2ZpbGVyRGlzcGF0Y2hl
ci5wcm90b3R5cGUgPSB7Ci0gICAgcHJvZmlsZXJXYXNFbmFibGVkOiBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICB0aGlzLl9wcm9maWxlci5fcHJvZmlsZXJXYXNFbmFibGVkKCk7Ci0gICAgfSwK
LQotICAgIHByb2ZpbGVyV2FzRGlzYWJsZWQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRo
aXMuX3Byb2ZpbGVyLl9wcm9maWxlcldhc0Rpc2FibGVkKCk7Ci0gICAgfSwKLQogICAgIHJlc2V0
UHJvZmlsZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVyLl9yZXNl
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcwppbmRleCAyZjEzYTYxNzIzMjk2ZGYzYjczMGQzMWY2NmE5ODcwZDdmZjRlZTNmLi42
NmFjYTk5MWUxMjY1ZmJiNDJlZjExYTcwYjU4NTExMWI3NTBlN2MwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtNzQsNyAr
NzQsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rpb24ocHJlc2VudGF0aW9u
TW9kZWwpCiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmV2ZW50TGlzdGVuZXJCcmVha3BvaW50
cyA9IG5ldyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzU2lkZWJhclBhbmUo
KTsKICAgICB9CiAKLSAgICBpZiAoQ2FwYWJpbGl0aWVzLmNhbkluc3BlY3RXb3JrZXJzICYmICFX
ZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkpIHsKKyAgICBpZiAo
UHJlZmVyZW5jZXMuZXhwb3NlV29ya2Vyc0luc3BlY3Rpb24gJiYgIVdlYkluc3BlY3Rvci5Xb3Jr
ZXJNYW5hZ2VyLmlzV29ya2VyRnJvbnRlbmQoKSkgewogICAgICAgICBXb3JrZXJBZ2VudC5zZXRX
b3JrZXJJbnNwZWN0aW9uRW5hYmxlZCh0cnVlKTsKICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMu
d29ya2VyTGlzdCA9IG5ldyBXZWJJbnNwZWN0b3IuV29ya2VyTGlzdFNpZGViYXJQYW5lKFdlYklu
c3BlY3Rvci53b3JrZXJNYW5hZ2VyKTsKICAgICB9IGVsc2UKQEAgLTEwMyw3ICsxMDMsNyBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCiAK
ICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFy
QnV0dG9uKCIiLCAiZW5hYmxlLXRvZ2dsZS1zdGF0dXMtYmFyLWl0ZW0iKTsKICAgICB0aGlzLmVu
YWJsZVRvZ2dsZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMudG9nZ2xlRGVi
dWdnaW5nLCB0aGlzKTsKLSAgICBpZiAoQ2FwYWJpbGl0aWVzLmRlYnVnZ2VyQWx3YXlzRW5hYmxl
ZCkKKyAgICBpZiAoIUNhcGFiaWxpdGllcy5kZWJ1Z2dlckNhdXNlc1JlY29tcGlsYXRpb24pCiAg
ICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlk
ZGVuIik7CiAKICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uID0gbmV3IFdlYkluc3Bl
Y3Rvci5TdGF0dXNCYXJCdXR0b24oIiIsICJzY3JpcHRzLXBhdXNlLW9uLWV4Y2VwdGlvbnMtc3Rh
dHVzLWJhci1pdGVtIiwgMyk7CkBAIC0xMTYsNyArMTE2LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbCA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogICAgIHRoaXMuX3NjcmlwdFZp
ZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwogICAgIHRoaXMuX3NjcmlwdFZpZXdTdGF0dXNCYXJJdGVtc0NvbnRhaW5lci5zdHlsZS5kaXNw
bGF5ID0gImlubGluZS1ibG9jayI7CiAKLSAgICB0aGlzLl9kZWJ1Z2dlckVuYWJsZWQgPSBDYXBh
YmlsaXRpZXMuZGVidWdnZXJBbHdheXNFbmFibGVkOworICAgIHRoaXMuX2RlYnVnZ2VyRW5hYmxl
ZCA9ICFDYXBhYmlsaXRpZXMuZGVidWdnZXJDYXVzZXNSZWNvbXBpbGF0aW9uOwogCiAgICAgdGhp
cy5fcmVzZXQoZmFsc2UpOwogCkBAIC0xMzcsNyArMTM3LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbCA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogICAgIHRoaXMuX3ByZXNlbnRh
dGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwuRXZlbnRzLkV4ZWN1dGlvbkxpbmVDaGFuZ2VkLCB0aGlzLl9leGVjdXRpb25MaW5l
Q2hhbmdlZCwgdGhpcyk7CiAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuRGVidWdn
ZXJSZXNldCwgdGhpcy5fcmVzZXQuYmluZCh0aGlzLCBmYWxzZSkpOwogICAgIAotICAgIHZhciBl
bmFibGVEZWJ1Z2dlciA9IENhcGFiaWxpdGllcy5kZWJ1Z2dlckFsd2F5c0VuYWJsZWQgfHwgV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLmRlYnVnZ2VyRW5hYmxlZC5nZXQoKTsKKyAgICB2YXIgZW5hYmxl
RGVidWdnZXIgPSAhQ2FwYWJpbGl0aWVzLmRlYnVnZ2VyQ2F1c2VzUmVjb21waWxhdGlvbiB8fCBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGVidWdnZXJFbmFibGVkLmdldCgpOwogICAgIGlmIChlbmFi
bGVEZWJ1Z2dlcikKICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuZW5hYmxlRGVi
dWdnZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TZXR0aW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGlu
Z3MuanMKaW5kZXggNjNjODUzZjcyNGY2MmRjNTIxMzM4NTM0MzNkOWFkZDkwNDBhZmZlZS4uOWQz
YTlhNGQwMDhhZGQ1MjZkMTc3ZDhlYTIzNGI2MTlkMTNhMWI4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCkBAIC00MywyMSArNDMsMTcgQEAg
dmFyIFByZWZlcmVuY2VzID0gewogICAgIGhhc0V4dGVuc2lvbnM6IGZhbHNlLAogICAgIHNoYXJl
ZFdvcmtlcnNEZWJ1Z05vdGU6IHVuZGVmaW5lZCwKICAgICBsb2NhbGl6ZVVJOiB0cnVlLAorICAg
IGV4cG9zZURpc2FibGVDYWNoZTogZmFsc2UsCisgICAgZXhwb3NlV29ya2Vyc0luc3BlY3Rpb246
IGZhbHNlLAogICAgIGFwcGxpY2F0aW9uVGl0bGU6ICJXZWIgSW5zcGVjdG9yIC0gJXMiCiB9CiAK
IHZhciBDYXBhYmlsaXRpZXMgPSB7CiAgICAgc2FtcGxpbmdDUFVQcm9maWxlcjogZmFsc2UsCi0g
ICAgZGVidWdnZXJBbHdheXNFbmFibGVkOiBmYWxzZSwKLSAgICBwcm9maWxlckFsd2F5c0VuYWJs
ZWQ6IGZhbHNlLAorICAgIGRlYnVnZ2VyQ2F1c2VzUmVjb21waWxhdGlvbjogdHJ1ZSwKKyAgICBw
cm9maWxlckNhdXNlc1JlY29tcGlsYXRpb246IHRydWUsCiAgICAgbmF0aXZlSW5zdHJ1bWVudGF0
aW9uRW5hYmxlZDogZmFsc2UsCi0gICAgc2hvd1RpbWluZ1RhYjogZmFsc2UsCi0gICAgc2hvd0Nv
b2tpZXNUYWI6IGZhbHNlLAotICAgIGhlYXBQcm9maWxlclByZXNlbnQ6IGZhbHNlLAotICAgIGRl
dGFpbGVkSGVhcFByb2ZpbGVzOiBmYWxzZSwKLSAgICBjYW5JbnNwZWN0V29ya2VyczogZmFsc2Us
Ci0gICAgY2FuQ2xlYXJDYWNoZUFuZENvb2tpZXM6IGZhbHNlLAotICAgIGNhbkRpc2FibGVDYWNo
ZTogZmFsc2UKKyAgICBoZWFwUHJvZmlsZXJQcmVzZW50OiBmYWxzZQogfQogCiAvKioKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4u
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpz
CmluZGV4IDkyMjFmNWZiNDZiMmJjZjdlNzk4MTNlOGFiOGQyOWQ0YmE5YTdlNTcuLjUwMGNiZjVj
ZGZjNmYwY2FiMTQ2ZDBmNTMwMWMwNmNlNGNiMTA4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwpAQCAtNTksNyArNTks
NyBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5jdGlvbigpCiAgICAgICAgIF0s
IFdlYkluc3BlY3Rvci5zZXR0aW5ncy50ZXh0RWRpdG9ySW5kZW50KSk7CiAKICAgICBwID0gdGhp
cy5fYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5ldHdvcmsiKSwgdHJ1ZSk7
Ci0gICAgaWYgKENhcGFiaWxpdGllcy5jYW5EaXNhYmxlQ2FjaGUpCisgICAgaWYgKFByZWZlcmVu
Y2VzLmV4cG9zZURpc2FibGVDYWNoZSkKICAgICAgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVh
dGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEaXNhYmxlIGNhY2hlIiks
IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jYWNoZURpc2FibGVkKSk7CiAgICAgcC5hcHBlbmRDaGls
ZCh0aGlzLl9jcmVhdGVVc2VyQWN0aW9uQ29udHJvbCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzCmluZGV4IDgzOWM3MDBhMjFhYTBj
NWVlZTIxYTExNWI2NDQwZmM1NTE4MzU2NzYuLmU0NDA4Y2RlZDhhZGM4MTAxNWQ0NzAyZGFhNTQz
Yzk0ZDM0M2Y0ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGV4dFByb21wdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RleHRQcm9tcHQuanMKQEAgLTkxNiw3ICs5MTYsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dFByb21w
dC5TdWdnZXN0Qm94LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGFib3ZlSGVpZ2h0ID0gYW5j
aG9yQm94Lnk7CiAgICAgICAgIHZhciB1bmRlckhlaWdodCA9IGRvY3VtZW50LmJvZHkub2Zmc2V0
SGVpZ2h0IC0gYW5jaG9yQm94LnkgLSBhbmNob3JCb3guaGVpZ2h0OwogICAgICAgICB2YXIgbWF4
SGVpZ2h0ID0gTWF0aC5tYXgodW5kZXJIZWlnaHQsIGFib3ZlSGVpZ2h0KSAtIHNwYWNlcjsKLSAg
ICAgICAgaGVpZ2h0ID0gTWF0aC5taW4oY29udGVudEhlaWdodCwgbWF4SGVpZ2h0IC0gc3VnZ2Vz
dEJveFBhZGRpbmdZKSArIHN1Z2dlc3RCb3hQYWRkaW5nWTsKKyAgICAgICAgdmFyIGhlaWdodCA9
IE1hdGgubWluKGNvbnRlbnRIZWlnaHQsIG1heEhlaWdodCAtIHN1Z2dlc3RCb3hQYWRkaW5nWSkg
KyBzdWdnZXN0Qm94UGFkZGluZ1k7CiAgICAgICAgIGlmICh1bmRlckhlaWdodCA+PSBhYm92ZUhl
aWdodCkgewogICAgICAgICAgICAgLy8gTG9jYXRlIHRoZSBzdWdnZXN0IGJveCB1bmRlciB0aGUg
YW5jaG9yQm94LgogICAgICAgICAgICAgYm94WSA9IGFuY2hvckJveC55ICsgYW5jaG9yQm94Lmhl
aWdodDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKaW5kZXggOWJjNWExMWQyNGQ0NDVjOWRhMDZjYmNhOTQxZjllZDc1YTE4MDQ2NS4uM2IzYWVh
ZTQ3OWI0YmEzNjIzM2E1Njg4YzRkZTQ2YzBhNzUzY2E0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTI3OCw2ICsyNzgsMTMgQEAg
dmFyIFdlYkluc3BlY3RvciA9IHsKICAgICB7CiAgICAgICAgIHZhciBwYXJzZWRVUkwgPSBXZWJJ
bnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTCAmJiBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVS
TC5hc1BhcnNlZFVSTCgpOwogICAgICAgICByZXR1cm4gcGFyc2VkVVJMID8gcGFyc2VkVVJMLmhv
c3QgOiAiIjsKKyAgICB9LAorCisgICAgX2luaXRpYWxpemVDYXBhYmlsaXR5OiBmdW5jdGlvbihu
YW1lLCBjYWxsYmFjaywgZXJyb3IsIHJlc3VsdCkKKyAgICB7CisgICAgICAgIENhcGFiaWxpdGll
c1tuYW1lXSA9IHJlc3VsdDsKKyAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgY2Fs
bGJhY2soKTsKICAgICB9CiB9CiAKQEAgLTMxNyw4ICszMjQsMjEgQEAgV2ViSW5zcGVjdG9yLmxv
YWRlZCA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9u
KCkKIHsKKyAgICBpZiAoSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlzU3R1YikgeworICAgICAgICBX
ZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lV2l0aENhcGFiaWxpdGllcygpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRlZCgpOworICAgIERl
YnVnZ2VyQWdlbnQuY2F1c2VzUmVjb21waWxhdGlvbihXZWJJbnNwZWN0b3IuX2luaXRpYWxpemVD
YXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAiZGVidWdnZXJDYXVzZXNSZWNvbXBpbGF0aW9u
IiwgbnVsbCkpOworICAgIERlYnVnZ2VyQWdlbnQuc3VwcG9ydHNOYXRpdmVCcmVha3BvaW50cyhX
ZWJJbnNwZWN0b3IuX2luaXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAibmF0
aXZlSW5zdHJ1bWVudGF0aW9uRW5hYmxlZCIsIG51bGwpKTsKKyAgICBQcm9maWxlckFnZW50LmNh
dXNlc1JlY29tcGlsYXRpb24oV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5k
KFdlYkluc3BlY3RvciwgInByb2ZpbGVyQ2F1c2VzUmVjb21waWxhdGlvbiIsIG51bGwpKTsKKyAg
ICBQcm9maWxlckFnZW50LmlzU2FtcGxpbmcoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJp
bGl0eS5iaW5kKFdlYkluc3BlY3RvciwgInNhbXBsaW5nQ1BVUHJvZmlsZXIiLCBudWxsKSk7Cisg
ICAgUHJvZmlsZXJBZ2VudC5oYXNIZWFwUHJvZmlsZXIoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXpl
Q2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgImhlYXBQcm9maWxlclByZXNlbnQiLCBXZWJJ
bnNwZWN0b3IuZG9Mb2FkZWREb25lV2l0aENhcGFiaWxpdGllcy5iaW5kKFdlYkluc3BlY3Rvcikp
KTsKK30KIAorV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZVdpdGhDYXBhYmlsaXRpZXMgPSBmdW5j
dGlvbigpCit7CiAgICAgV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIubG9hZGVkKCk7CiAKICAg
ICBXZWJJbnNwZWN0b3IuaW5zdGFsbFBvcnRTdHlsZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKaW5kZXggOWY1YWFkMTBjZWEx
MDA0ZjBiNGM3ODQ4ZjdlOTIyMDRkZmY5YTVkNS4uY2NlMzNmZTdhNzk2MjViM2YzMGNmYWU1YWMw
NjAyMDE5MzQzNWQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5z
cGVjdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5z
cGVjdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTEwNiwxMiArMTA2LDIyIEBAIHZvaWQgSW5zcGVjdG9y
Q2xpZW50SW1wbDo6dXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUoY29uc3QgV1RGOjpTdHJpbmcm
IGluc3BlY3RvCiAgICAgICAgIGFnZW50LT51cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShpbnNw
ZWN0b3JTdGF0ZSk7CiB9CiAKK2Jvb2wgSW5zcGVjdG9yQ2xpZW50SW1wbDo6Y2FuQ2xlYXJCcm93
c2VyQ2FjaGUoKQoreworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEluc3BlY3RvckNsaWVu
dEltcGw6OmNsZWFyQnJvd3NlckNhY2hlKCkKIHsKICAgICBpZiAoV2ViRGV2VG9vbHNBZ2VudElt
cGwqIGFnZW50ID0gZGV2VG9vbHNBZ2VudCgpKQogICAgICAgICBhZ2VudC0+Y2xlYXJCcm93c2Vy
Q2FjaGUoKTsKIH0KIAorYm9vbCBJbnNwZWN0b3JDbGllbnRJbXBsOjpjYW5DbGVhckJyb3dzZXJD
b29raWVzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBJbnNwZWN0b3JDbGllbnRJ
bXBsOjpjbGVhckJyb3dzZXJDb29raWVzKCkKIHsKICAgICBpZiAoV2ViRGV2VG9vbHNBZ2VudElt
cGwqIGFnZW50ID0gZGV2VG9vbHNBZ2VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCmluZGV4IDBlOTAwYjVmZjM5MWQyZTkwZDc2M2Vh
OGM3ZTUxNzkxYjI4NWU2Y2YuLmIxNmI2ZjQ2ODE4YzMzY2U0Mjk1ZTVmODNhNmE3NWM5YjVlMjFk
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJ
bXBsLmgKQEAgLTU5LDcgKzU5LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUluc3BlY3RvclN0YXRlQ29va2llKGNvbnN0IFdURjo6U3RyaW5nJik7CiAKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuQ2xlYXJCcm93c2VyQ2FjaGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCcm93
c2VyQ2FjaGUoKTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ2xlYXJCcm93c2VyQ29va2llcygpOwog
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCk7CiBwcml2YXRlOgogICAgIFdl
YkRldlRvb2xzQWdlbnRJbXBsKiBkZXZUb29sc0FnZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5qcyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL2pzL0RldlRvb2xzLmpzCmluZGV4IDQ1NTE3N2IyY2NmOGIzNWVhZDJmNzFiYTc4YjMy
ZjA5MzEwYjM2ZTguLmYwMDFjNDhhYWI4MmU5M2E1YTFmMjIxZDg4YmZlYmJmODhlNzBhY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCkBAIC00MSwxOCArNDEs
OCBAQAogICAgIFByZWZlcmVuY2VzLnNoYXJlZFdvcmtlcnNEZWJ1Z05vdGUgPSAiU2hhcmVkIHdv
cmtlcnMgY2FuIGJlIGluc3BlY3RlZCBpbiB0aGUgVGFzayBNYW5hZ2VyIjsKICAgICBQcmVmZXJl
bmNlcy5sb2NhbGl6ZVVJID0gZmFsc2U7CiAgICAgUHJlZmVyZW5jZXMuYXBwbGljYXRpb25UaXRs
ZSA9ICJEZXZlbG9wZXIgVG9vbHMgLSAlcyI7Ci0KLSAgICBDYXBhYmlsaXRpZXMuc2FtcGxpbmdD
UFVQcm9maWxlciA9IHRydWU7Ci0gICAgQ2FwYWJpbGl0aWVzLmhlYXBQcm9maWxlclByZXNlbnQg
PSB0cnVlOwotICAgIENhcGFiaWxpdGllcy5kZXRhaWxlZEhlYXBQcm9maWxlcyA9IHRydWU7Ci0g
ICAgQ2FwYWJpbGl0aWVzLmRlYnVnZ2VyQWx3YXlzRW5hYmxlZCA9IHRydWU7Ci0gICAgQ2FwYWJp
bGl0aWVzLnByb2ZpbGVyQWx3YXlzRW5hYmxlZCA9IHRydWU7Ci0gICAgQ2FwYWJpbGl0aWVzLm5h
dGl2ZUluc3RydW1lbnRhdGlvbkVuYWJsZWQgPSB0cnVlOwotICAgIENhcGFiaWxpdGllcy5zaG93
VGltaW5nVGFiID0gdHJ1ZTsKLSAgICBDYXBhYmlsaXRpZXMuc2hvd0Nvb2tpZXNUYWIgPSB0cnVl
OwotICAgIENhcGFiaWxpdGllcy5jYW5JbnNwZWN0V29ya2VycyA9IHRydWU7Ci0gICAgQ2FwYWJp
bGl0aWVzLmNhbkNsZWFyQ2FjaGVBbmRDb29raWVzID0gdHJ1ZTsKLSAgICBDYXBhYmlsaXRpZXMu
Y2FuRGlzYWJsZUNhY2hlID0gdHJ1ZTsKKyAgICBQcmVmZXJlbmNlcy5leHBvc2VEaXNhYmxlQ2Fj
aGUgPSB0cnVlOworICAgIFByZWZlcmVuY2VzLmV4cG9zZVdvcmtlcnNJbnNwZWN0aW9uID0gdHJ1
ZTsKIH0pKCk7fQogCiAvKiogUGVuZGluZyBXZWJLaXQgdXBzdHJlYW0gYnkgYXBhdmxvdikuIEZp
eGVzIGlmcmFtZSB2cyBkcmFnIHByb2JsZW0uICovCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjAwMmQ0MTg0OGY3YTU0ZjBi
MmZhYzYwZWFkYTE1ZTVhYTBhZGIzZS4uMzNkNmRjZjcyNTRkYTJiYWY0MjIzN2RhYjEwYTg5M2E3
YTgxZDliYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTExLTMwICBQYXZlbCBGZWxkbWFu
ICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBxdWVyeSBi
YWNrZW5kIGZvciBjYXBhYmlsaXRpZXMgZXhwbGljaXRseS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvZGV0YWlsZWQt
aGVhcHNob3RzLXRlc3QuanM6CisKIDIwMTEtMTEtMzAgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3
ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEwMTE3Mik6IEl0IG1hZGUgZmFzdC9k
b20vY2xvbmUtbm9kZS1zdHlsZS5odG1sIGFzc2VydC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtdGVzdC5qcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtdGVzdC5qcwppbmRleCBl
OWNhODA1Mjk3MTVhYzIzMDc4OGYwNjYwY2RlNDZkMjA3MzM4YWFmLi5iZTYzZTg3MTNkZWNkN2M5
NGVjMmNiNDEwY2NiNzZjZjBmNmY4OTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2RldGFpbGVkLWhlYXBzaG90cy10ZXN0LmpzCkBAIC0xMywxMiAr
MTMsNyBAQCBJbnNwZWN0b3JUZXN0LnN0YXJ0UHJvZmlsZXJUZXN0ID0gZnVuY3Rpb24oY2FsbGJh
Y2spCiAgICAgICAgIEluc3BlY3RvclRlc3QuX3BhbmVsUmVzZXQgPSBJbnNwZWN0b3JUZXN0Lm92
ZXJyaWRlKFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcmVzZXQiLCBmdW5jdGlvbigp
e30sIHRydWUpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9y
LkRldGFpbGVkSGVhcHNob3RWaWV3LnByb3RvdHlwZSwgIl91cGRhdGVQZXJjZW50QnV0dG9uIiwg
SW5zcGVjdG9yVGVzdC5fc25hcHNob3RWaWV3U2hvd24sIHRydWUpOwogCi0gICAgICAgIGlmIChD
YXBhYmlsaXRpZXMuZGV0YWlsZWRIZWFwUHJvZmlsZXMpCi0gICAgICAgICAgICBkZXRhaWxlZEhl
YXBQcm9maWxlc0VuYWJsZWQoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcywgIl9wb3B1bGF0
ZVByb2ZpbGVzIiwgZGV0YWlsZWRIZWFwUHJvZmlsZXNFbmFibGVkKTsKLSAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuX2VuYWJsZURldGFpbGVkSGVhcFByb2ZpbGVzKHRy
dWUpOwotICAgICAgICB9CisgICAgICAgIGRldGFpbGVkSGVhcFByb2ZpbGVzRW5hYmxlZCgpOwog
ICAgIH0KIAogICAgIGZ1bmN0aW9uIGRldGFpbGVkSGVhcFByb2ZpbGVzRW5hYmxlZCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117373</attachid>
            <date>2011-12-01 00:49:12 -0800</date>
            <delta_ts>2011-12-01 04:52:23 -0800</delta_ts>
            <desc>[Patch] rebaselined</desc>
            <filename>bug-73442-20111201124909.patch</filename>
            <type>text/plain</type>
            <size>41989</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU5M2U4MmM4ZDNlNjM5
ZDE5ZDhkMGZiYWFjYTE2NTdlYjAyYjhiMi4uZWU1YmQ5MDYzZjJiN2Y1ZDhiODFkZGI4NDgyODg4
Zjg0N2VhZDZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDExLTEyLTAxICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBxdWVyeSBiYWNrZW5kIGZvciBjYXBhYmlsaXRpZXMgZXhwbGljaXRseS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmVtb3ZlcyB0
aGUgaGFyZGNvZGVkIENhcGFiaWxpdGllcyB2YWx1ZXMgaW4gZmF2b3Igb2YKKyAgICAgICAgZXhw
bGljaXQgcXVlcnkgY29tbWFuZHMgaXNzdWVkIGFnYWluc3QgdGhlIGJhY2tlbmQuIEknbGwgcmVt
b3ZlIHRoZQorICAgICAgICBNZXRhIGFnZW50IGluIGEgc3Vic2VxdWVudCBjaGFuZ2UuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNhdXNlc1JlY29tcGlsYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OnN1cHBvcnRzTmF0aXZlQnJlYWtwb2ludHMpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRQcm9maWxlcjo6Y2F1c2VzUmVjb21waWxhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRQcm9maWxlcjo6aXNTYW1wbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9m
aWxlcjo6aGFzSGVhcFByb2ZpbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHREZWJ1
Z1NlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNhdXNlc1Jl
Y29tcGlsYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OnN1cHBv
cnRzTmF0aXZlQnJlYWtwb2ludHMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2Zp
bGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6Y2F1c2VzUmVjb21waWxh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6aXNTYW1wbGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6aGFzSGVhcFByb2ZpbGVyKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50OjpjYW5DbGVh
ckJyb3dzZXJDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQ6OmNhbkNs
ZWFyQnJvd3NlckNvb2tpZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3Rv
ckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29u
bmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNo
b3cpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y2F1c2VzUmVjb21waWxhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjYW5TZXRTY3JpcHRTb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c3VwcG9ydHNOYXRpdmVC
cmVha3BvaW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpmcm9udGVu
ZExvYWRlZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y2F1c2VzUmVjb21w
aWxhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50Ojppc1Nh
bXBsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Omhhc0hl
YXBQcm9maWxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpk
aXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmVuYWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzZXRGcm9udGVu
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjYW5DbGVhckJyb3dzZXJDYWNoZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjYW5DbGVhckJyb3dzZXJDb29r
aWVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1vZGVsLnByb3RvdHlwZS5lbmFibGVEZWJ1Z2dlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5wcm90b3R5cGUuY2FuU2V0U2NyaXB0U291cmNlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrSXRlbVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0
d29ya1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3Lm9uQ2Fu
Q2xlYXJCcm93c2VyQ2FjaGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3
Lm9uQ2FuQ2xlYXJCcm93c2VyQ29va2llcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29y
a0xvZ1ZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlw
ZS5fY29udGV4dE1lbnUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5f
cmVwb3J0SGVhcFNuYXBzaG90UHJvZ3Jlc3MpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGlu
Z3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbik6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZ2V0IGlu
c3BlY3RlZFBhZ2VEb21haW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2Fw
YWJpbGl0eSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lKToKKwogMjAxMS0x
Mi0wMSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBFbGVtZW50cyBQYW5lbCBlZGl0IGFzIGh0bWwgbG9va3Mgd2VpcmQgd2l0
aCBhbiBhcnJvdyBpbnNpZGUgZWRpdCBib3guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDJiZTA5YTFhZjU0YTRlYTYzZjhhYjA2YzE0YzFiZDU4NTY4NzM3YTQuLjI2ZGI2MDMzNGM4Yjc5
MjkxNzEzZjJjODM4OTQyZDMwNjUxNmNhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMTItMDEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29n
bGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHF1ZXJ5IGJhY2tlbmQgZm9yIGNhcGFi
aWxpdGllcyBleHBsaWNpdGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzM0NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SW5zcGVjdG9yQ2xpZW50SW1wbDo6Y2FuQ2xlYXJCcm93c2VyQ2FjaGUpOgorICAgICAgICAo
V2ViS2l0OjpJbnNwZWN0b3JDbGllbnRJbXBsOjpjYW5DbGVhckJyb3dzZXJDb29raWVzKToKKyAg
ICAgICAgKiBzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9qcy9EZXZU
b29scy5qczoKKwogMjAxMS0xMS0zMCAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gSW1wcm92ZSB0aWxlIGludmFsaWRhdGlvbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4IDdm
OGNiMDU0NjkyNjM4NTIzNjUwNGNiYzBlZTJiY2RjYzAxYjdhYWUuLjI0OTRjMjA3NTQ0ZmY4MGI3
OTU2MmMwMDUxMDM0YjBhZmM1YTU1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtODQsNiArODQsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCBjYW5TZXRTY3JpcHRTb3VyY2UoKTsKICAgICBib29sIHNldFNjcmlwdFNvdXJjZShjb25zdCBT
dHJpbmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQsIGJvb2wgcHJldmlldywg
U3RyaW5nKiBlcnJvciwgU2NyaXB0VmFsdWUqIG5ld0NhbGxGcmFtZXMsIFNjcmlwdE9iamVjdCog
cmVzdWx0KTsKIAorICAgIGJvb2wgY2F1c2VzUmVjb21waWxhdGlvbigpIHsgcmV0dXJuIHRydWU7
IH0KKyAgICBib29sIHN1cHBvcnRzTmF0aXZlQnJlYWtwb2ludHMoKSB7IHJldHVybiBmYWxzZTsg
fQorCiAgICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+KiA9
IDApID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
UHJvZmlsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVyLmgK
aW5kZXggZWY2OGFhZjYxMTU2MjBhMjBkZWVhZTgzZjY4N2VlZDkxY2MxZTNmZC4uOGJiMDVjNGJj
NGNmMDc0NWMwMmU2YWZiMzMxNWEyNWRjMGExMjlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRQcm9maWxlci5oCkBAIC01NSw2ICs1NSw5IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBzdGFydChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+IHN0b3AoU2NyaXB0U3RhdGUq
IHN0YXRlLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTY3Jp
cHRIZWFwU25hcHNob3Q+IHRha2VIZWFwU25hcHNob3QoY29uc3QgU3RyaW5nJiwgSGVhcFNuYXBz
aG90UHJvZ3Jlc3MqKSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIGJvb2wgY2F1c2VzUmVjb21w
aWxhdGlvbigpIHsgcmV0dXJuIHRydWU7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1NhbXBsaW5nKCkg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICBzdGF0aWMgYm9vbCBoYXNIZWFwUHJvZmlsZXIoKSB7IHJl
dHVybiBmYWxzZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmgKaW5kZXggYzM5MjBlYzU0ZDk3
M2MzZGRhZTA1NTk3YTc2NzRkYWRjYTQyMzQzMC4uY2FjMDUwZGE1MDQxNDVmOTRlMWZjY2MyMDBm
ZmVkMTBjNjgzMWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0RGVidWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRE
ZWJ1Z1NlcnZlci5oCkBAIC03OCw2ICs3OCw5IEBAIHB1YmxpYzoKICAgICBib29sIGNhblNldFNj
cmlwdFNvdXJjZSgpOwogICAgIGJvb2wgc2V0U2NyaXB0U291cmNlKGNvbnN0IFN0cmluZyYgc291
cmNlSUQsIGNvbnN0IFN0cmluZyYgbmV3Q29udGVudCwgYm9vbCBwcmV2aWV3LCBTdHJpbmcqIGVy
cm9yLCBTY3JpcHRWYWx1ZSogbmV3Q2FsbEZyYW1lcywgU2NyaXB0T2JqZWN0KiByZXN1bHQpOwog
CisgICAgYm9vbCBjYXVzZXNSZWNvbXBpbGF0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBi
b29sIHN1cHBvcnRzTmF0aXZlQnJlYWtwb2ludHMoKSB7IHJldHVybiB0cnVlOyB9CisKICAgICB2
b2lkIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpIHsgfQogICAgIHZvaWQgcmVjb21waWxl
QWxsSlNGdW5jdGlvbnMoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+KiA9IDApIHsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuaAppbmRleCAxMTRhYWUwNzlm
NDc3OGEyODRjMmEwM2RlYmU2Y2QwNzQwNWI2ZmRiLi43MTA2ZDdjZGJhNTA1MTg3YTY0ZmUwODMz
NDRlYjY5OTBkM2Q0ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRQcm9maWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFBy
b2ZpbGVyLmgKQEAgLTU5LDYgKzU5LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHN0YXJ0
KFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gc3RvcChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0
cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmlwdEhlYXBTbmFwc2hvdD4g
dGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcmIHRpdGxlLCBIZWFwU25hcHNob3RQcm9ncmVz
cyopOworICAgIHN0YXRpYyBib29sIGNhdXNlc1JlY29tcGlsYXRpb24oKSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHN0YXRpYyBib29sIGlzU2FtcGxpbmcoKSB7IHJldHVybiB0cnVlOyB9CisgICAg
c3RhdGljIGJvb2wgaGFzSGVhcFByb2ZpbGVyKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHN0YXRp
YyB2b2lkIGluaXRpYWxpemUoKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgppbmRleCA1YWI5MTA4NjdmZTc0NDc4OWRiNTFhMzQ0ODM5NTgwNzJiNjI1ZDQwLi4z
MThhNWEwZGM0MTU5NDk4MDJmYWYzYjg5ZTg5MTNlMGM2ODVhM2JkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC02NjQsMTAgKzY2NCwyNCBAQAogICAgICAgICAg
ICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAiY2FuQ2xlYXJCcm93c2VyQ2FjaGUiLAorICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJUZWxscyB3aGV0aGVyIGNsZWFyaW5nIGJyb3dzZXIgY2FjaGUgaXMgc3VwcG9ydGVk
LiIsCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVl
IGlmIGJyb3dzZXIgY2FjaGUgY2FuIGJlIGNsZWFyZWQuIiB9CisgICAgICAgICAgICAgICAgXQor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJj
bGVhckJyb3dzZXJDYWNoZSIsCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNsZWFy
cyBicm93c2VyIGNhY2hlLiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgIm5hbWUiOiAiY2FuQ2xlYXJCcm93c2VyQ29va2llcyIsCisgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlRlbGxzIHdoZXRoZXIgY2xlYXJpbmcgYnJvd3NlciBjb29raWVz
IGlzIHN1cHBvcnRlZC4iLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiVHJ1ZSBpZiBicm93c2VyIGNvb2tpZXMgY2FuIGJlIGNsZWFyZWQuIiB9CisgICAg
ICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAibmFtZSI6ICJjbGVhckJyb3dzZXJDb29raWVzIiwKICAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiQ2xlYXJzIGJyb3dzZXIgY29va2llcy4iCiAgICAgICAgICAgICB9LApAQCAt
MTgxOSw2ICsxODMzLDIyIEBACiAgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5kcyI6IFsKICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJjYXVzZXNSZWNvbXBpbGF0aW9u
IiwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJyZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUg
aWYgZW5hYmxpbmcgZGVidWdnZXIgY2F1c2VzIHNjcmlwdHMgcmVjb21waWxhdGlvbi4iIH0KKyAg
ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAorICAgICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUZWxscyB3aGV0aGVyIGVuYWJsaW5nIGRlYnVnZ2Vy
IGNhdXNlcyBzY3JpcHRzIHJlY29tcGlsYXRpb24uIgorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJzdXBwb3J0c05hdGl2ZUJyZWFrcG9pbnRz
IiwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJyZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUg
aWYgZGVidWdnZXIgc3VwcG9ydHMgbmF0aXZlIGJyZWFrcG9pbnRzLiIgfQorICAgICAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUsCisgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlRlbGxzIHdoZXRoZXIgZGVidWdnZXIgc3VwcG9ydHMgbmF0aXZlIGJy
ZWFrcG9pbnRzLiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiZW5hYmxlIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW5h
YmxlcyBkZWJ1Z2dlciBmb3IgdGhlIGdpdmVuIHBhZ2UuIENsaWVudHMgc2hvdWxkIG5vdCBhc3N1
bWUgdGhhdCB0aGUgZGVidWdnaW5nIGhhcyBiZWVuIGVuYWJsZWQgdW50aWwgdGhlIHJlc3VsdCBm
b3IgdGhpcyBjb21tYW5kIGlzIHJlY2VpdmVkLiIKICAgICAgICAgICAgIH0sCkBAIC0xOTA4LDYg
KzE5MzgsMTMgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2VhcmNoZXMgZm9y
IGdpdmVuIHN0cmluZyBpbiBzY3JpcHQgY29udGVudC4iCiAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImNhblNldFNjcmlwdFNvdXJjZSIsCisg
ICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicmVzdWx0IiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlmIDxj
b2RlPnNldFNjcmlwdFNvdXJjZTwvY29kZT4gaXMgc3VwcG9ydGVkLiIgfQorICAgICAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRlbGxzIHdoZXRoZXIgPGNv
ZGU+c2V0U2NyaXB0U291cmNlPC9jb2RlPiBpcyBzdXBwb3J0ZWQuIgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRTY3JpcHRTb3VyY2Ui
LAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQiLCAiZGVzY3JpcHRpb24iOiAi
SWQgb2YgdGhlIHNjcmlwdCB0byBlZGl0LiIgfSwKQEAgLTIwOTEsMTggKzIxMjgsMzAgQEAKICAg
ICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjogWwogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICJuYW1lIjogImVuYWJsZSIKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJjYXVzZXNS
ZWNvbXBpbGF0aW9uIiwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiB9CisgICAgICAg
ICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAibmFtZSI6ICJkaXNhYmxlIgorICAgICAgICAgICAgICAgICJuYW1lIjogImlzU2FtcGxpbmci
LAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInJlc3VsdCIsICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAgICAgICAgICAgICBdCiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogImlz
RW5hYmxlZCIsCisgICAgICAgICAgICAgICAgIm5hbWUiOiAiaGFzSGVhcFByb2ZpbGVyIiwKICAg
ICAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzdGF0ZSIsICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJyZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiB9CiAgICAgICAgICAgICAgICAgXQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJlbmFi
bGUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1l
IjogImRpc2FibGUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICJuYW1lIjogInN0YXJ0IgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKQEAgLTIx
NTIsMTIgKzIyMDEsNiBAQAogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogInByb2ZpbGVyV2FzRW5hYmxlZCIKLSAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAicHJv
ZmlsZXJXYXNEaXNhYmxlZCIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgIm5hbWUiOiAiYWRkUHJvZmlsZUhlYWRlciIsCiAgICAgICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVhZGVyIiwgIiRy
ZWYiOiAiUHJvZmlsZUhlYWRlciIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5oCmluZGV4IDgzYWIyMzJmNjM2NzU0MjY0NDJmZjBjMDgxMzg2ZTIzMTYzMDg5NjYu
LjUzYjU1YzVlYWJiMTcwNDdkYjI1NDcyNjhmOTZmNGI3YTZkMTQ3YTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTUwLDcgKzUwLDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBoaWdobGlnaHQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhp
ZGVIaWdobGlnaHQoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ2xlYXJCcm93c2VyQ2Fj
aGUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDYWNo
ZSgpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5DbGVhckJyb3dzZXJDb29raWVzKCkgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCcm93c2VyQ29va2llcygpIHsgfQog
CiAgICAgYm9vbCBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQYWdlKFBhZ2UqIGZyb250ZW5k
UGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBmM2EwZDg3Y2ZiODlmODE0ZGEwZmYw
MTM4YTI0NTNjYTZjNDkxYWIxLi5kNjkxM2ZlOThiOWNmNDdmMTNlNTk1ZmI0NTdmMjg0ZDE0NDAz
OGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCkBAIC03Nyw3ICs3Nyw2IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNv
bnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAgLCBt
X3N0YXRlKGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JTdGF0ZShpbnNwZWN0b3JDbGllbnQpKSkKICAg
ICAsIG1fcGFnZShwYWdlKQogICAgICwgbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50
KQotICAgICwgbV9vcGVuaW5nRnJvbnRlbmQoZmFsc2UpCiB7CiAgICAgT3duUHRyPEluc3BlY3Rv
ckFnZW50PiBpbnNwZWN0b3JBZ2VudFB0cihJbnNwZWN0b3JBZ2VudDo6Y3JlYXRlKHBhZ2UsIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IG1fc3RhdGUuZ2V0KCkpKTsKICAgICBtX2luc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRQ
dHIuZ2V0KCk7CkBAIC0xOTAsNyArMTg5LDYgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpk
aWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqIGZyYW1lLCBET01XcmFwcGVyV28KIAog
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoKQogewotICAgIG1fb3Bl
bmluZ0Zyb250ZW5kID0gZmFsc2U7CiAgICAgbV9pbnNwZWN0b3JGcm9udGVuZCA9IGFkb3B0UHRy
KG5ldyBJbnNwZWN0b3JGcm9udGVuZChtX2luc3BlY3RvckNsaWVudCkpOwogICAgIC8vIFdlIGNh
biByZWNvbm5lY3QgdG8gZXhpc3RpbmcgZnJvbnQtZW5kIC0+IHVubXV0ZSBzdGF0ZS4KICAgICBt
X3N0YXRlLT51bm11dGUoKTsKQEAgLTIzNywxNCArMjM1LDExIEBAIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6c2hvdygpCiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChtX29wZW5pbmdGcm9udGVuZCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKG1f
aW5zcGVjdG9yRnJvbnRlbmQpCiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5icmluZ0Zyb250
ZW5kVG9Gcm9udCgpOwogICAgIGVsc2UgewotICAgICAgICBtX29wZW5pbmdGcm9udGVuZCA9IHRy
dWU7CiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5vcGVuSW5zcGVjdG9yRnJvbnRlbmQodGhp
cyk7CisgICAgICAgIGNvbm5lY3RGcm9udGVuZCgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggY2Q2MTQ4NmQ0YTM0
YWJiMjM3NjdmNmJmZGQ2ZTA3ZmNjZDQwMGJmYy4uMDQ5ZTI2MDRmOTk5ODI1ZjViZTljMWI4MmNj
OWYyOTUwMTYwODAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oCkBAIC0xMjQsNyArMTI0LDYgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8SW5z
cGVjdG9yRnJvbnRlbmQ+IG1faW5zcGVjdG9yRnJvbnRlbmQ7CiAgICAgUGFnZSogbV9wYWdlOwog
ICAgIEluc3BlY3RvckNsaWVudCogbV9pbnNwZWN0b3JDbGllbnQ7Ci0gICAgYm9vbCBtX29wZW5p
bmdGcm9udGVuZDsKICAgICB0eXBlZGVmIFZlY3RvcjxPd25QdHI8SW5zcGVjdG9yQmFzZUFnZW50
SW50ZXJmYWNlPiA+IEFnZW50czsKICAgICBBZ2VudHMgbV9hZ2VudHM7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4
IGZmNmFjODIzM2Q1MGJiYTEwNjU2ZWE1M2ZjMWNjYWI2MTg5YjhjYWUuLjIyMjFlYzI1MjlkMTA2
NDlkY2JkMDIyZTU3NTVjZjk1MmZiMWEwNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTk5LDEwICs5OSwxOSBAQCBi
b29sIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmVuYWJsZWQoKQogICAgIHJldHVybiBtX3N0YXRl
LT5nZXRCb29sZWFuKERlYnVnZ2VyQWdlbnRTdGF0ZTo6ZGVidWdnZXJFbmFibGVkKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpnZXRBZ2VudENhcGFiaWxpdGllcyhJbnNwZWN0
b3JBcnJheSogY2FwYWJpbGl0aWVzKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjYXVz
ZXNSZWNvbXBpbGF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCogcmVzdWx0KQogewotICAgIGlmIChz
Y3JpcHREZWJ1Z1NlcnZlcigpLmNhblNldFNjcmlwdFNvdXJjZSgpKQotICAgICAgICBjYXBhYmls
aXRpZXMtPnB1c2hTdHJpbmcoSW5zcGVjdG9yRnJvbnRlbmQ6OkRlYnVnZ2VyOjpjYXBhYmlsaXR5
U2V0U2NyaXB0U291cmNlKTsKKyAgICAqcmVzdWx0ID0gc2NyaXB0RGVidWdTZXJ2ZXIoKS5jYXVz
ZXNSZWNvbXBpbGF0aW9uKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y2Fu
U2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgYm9vbCogcmVzdWx0KQoreworICAgICpyZXN1
bHQgPSBzY3JpcHREZWJ1Z1NlcnZlcigpLmNhblNldFNjcmlwdFNvdXJjZSgpOworfQorCit2b2lk
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnN1cHBvcnRzTmF0aXZlQnJlYWtwb2ludHMoRXJyb3JT
dHJpbmcqLCBib29sKiByZXN1bHQpCit7CisgICAgKnJlc3VsdCA9IHNjcmlwdERlYnVnU2VydmVy
KCkuc3VwcG9ydHNOYXRpdmVCcmVha3BvaW50cygpOwogfQogCiB2b2lkIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCA0M2RhMjFhNTUwNDU2YmZhOTVi
MTdiZjVkZTg2ODBhM2M2MGVkNzY5Li5iYTI0MmRjN2M1YjJkNjcyM2NjY2ZjOWJlNjMyN2ExZTli
Mzc3ZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmgKQEAgLTY1LDEzICs2NSwxNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50KCk7CiAKKyAgICB2b2lkIGNhdXNlc1JlY29tcGlsYXRpb24o
RXJyb3JTdHJpbmcqLCBib29sKik7CisgICAgdm9pZCBjYW5TZXRTY3JpcHRTb3VyY2UoRXJyb3JT
dHJpbmcqLCBib29sKik7CisgICAgdm9pZCBzdXBwb3J0c05hdGl2ZUJyZWFrcG9pbnRzKEVycm9y
U3RyaW5nKiwgYm9vbCopOworCiAgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2
b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVu
ZChJbnNwZWN0b3JGcm9udGVuZCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7
CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0QWdlbnRD
YXBhYmlsaXRpZXMoSW5zcGVjdG9yQXJyYXkqKTsKIAogICAgIHZvaWQgZGlkQ2xlYXJNYWluRnJh
bWVXaW5kb3dPYmplY3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCmluZGV4IGU3Y2U1NWYzNjkxNGE1
MjEyOGZmMTQ5NDE5NDAyYzQxMWNmYzUxYmYuLjFhNWNmMzU3OGUwZjgxNTcxNGYyODNhZTQ1NDNh
OWIxMjAyOGQ4NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAgLTEzMSw3ICsxMzEsNiBAQCB2b2lk
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OndpbmRvd09iamVjdENsZWFyZWQoKQogdm9p
ZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpmcm9udGVuZExvYWRlZCgpCiB7CiAgICAg
YnJpbmdUb0Zyb250KCk7Ci0gICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5jb25uZWN0RnJvbnRl
bmQoKTsKICAgICBtX2Zyb250ZW5kTG9hZGVkID0gdHJ1ZTsKICAgICBpZiAoIW1fZXZhbHVhdGVP
bkxvYWQuaXNFbXB0eSgpKQogICAgICAgICBldmFsdWF0ZU9uTG9hZChtX2V2YWx1YXRlT25Mb2Fk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxl
ckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFn
ZW50LmNwcAppbmRleCBlZDM0MTcyYzQyMGIwODEwODgzNzVhMTJkYjE2NjM4ODM2NGRkMmUxLi4y
MjI4MjIzMjRhMjk1MzY5NGRkZDg5Zjg2ZGIwYTZmZTgzOGRjMjI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCkBAIC0xMzcs
NiArMTM3LDIyIEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JQcm9maWxl
ckFnZW50OjpjcmVhdGVTbmFwc2hvdEhlYWRlcihjb25zdCBTCiAgICAgcmV0dXJuIGhlYWRlcjsK
IH0KIAorCit2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNhdXNlc1JlY29tcGlsYXRpb24o
RXJyb3JTdHJpbmcqLCBib29sKiByZXN1bHQpCit7CisgICAgKnJlc3VsdCA9IFNjcmlwdFByb2Zp
bGVyOjpjYXVzZXNSZWNvbXBpbGF0aW9uKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6aXNTYW1wbGluZyhFcnJvclN0cmluZyosIGJvb2wqIHJlc3VsdCkKK3sKKyAgICAqcmVz
dWx0ID0gU2NyaXB0UHJvZmlsZXI6OmlzU2FtcGxpbmcoKTsKK30KKwordm9pZCBJbnNwZWN0b3JQ
cm9maWxlckFnZW50OjpoYXNIZWFwUHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBib29sKiByZXN1bHQp
Cit7CisgICAgKnJlc3VsdCA9IFNjcmlwdFByb2ZpbGVyOjpoYXNIZWFwUHJvZmlsZXIoKTsKK30K
Kwogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqKQogewog
ICAgIGlmIChlbmFibGVkKCkpCkBAIC0xNTcsOCArMTczLDYgQEAgdm9pZCBJbnNwZWN0b3JQcm9m
aWxlckFnZW50OjpkaXNhYmxlKCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZW5hYmxlZCA9IGZh
bHNlOwogICAgIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkucmVjb21waWxlQWxsSlNG
dW5jdGlvbnNTb29uKCk7Ci0gICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJvbnRlbmQt
PnByb2ZpbGVyV2FzRGlzYWJsZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50
OjplbmFibGUoYm9vbCBza2lwUmVjb21waWxlKQpAQCAtMTY4LDggKzE4Miw2IEBAIHZvaWQgSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKGJvb2wgc2tpcFJlY29tcGlsZSkKICAgICBtX2Vu
YWJsZWQgPSB0cnVlOwogICAgIGlmICghc2tpcFJlY29tcGlsZSkKICAgICAgICAgUGFnZVNjcmlw
dERlYnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKLSAg
ICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgbV9mcm9udGVuZC0+cHJvZmlsZXJXYXNFbmFibGVk
KCk7CiB9CiAKIFN0cmluZyBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpnZXRDdXJyZW50VXNlcklu
aXRpYXRlZFByb2ZpbGVOYW1lKGJvb2wgaW5jcmVtZW50UHJvZmlsZU51bWJlcikKQEAgLTI2MSw3
ICsyNzMsNiBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlc2V0RnJvbnRlbmRQcm9m
aWxlcygpCiB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kKiBmcm9udGVuZCkKIHsKICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPnByb2Zp
bGVyKCk7Ci0gICAgcmVzdG9yZUVuYWJsZW1lbnQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9m
aWxlckFnZW50OjpjbGVhckZyb250ZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCmluZGV4IDE0MDY0YzY2NWFmNmUwZTdmMTkzOTc3
YjA5NzFjMTc0N2JmNDQ3MTIuLmQ0NzMzOTBhMzcyMThlZjc4N2ZmNDU2ZDU1OTZlM2FiMjkyZTBh
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxl
ckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVy
QWdlbnQuaApAQCAtNjgsOSArNjgsMTIgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJQcm9maWxl
cyhFcnJvclN0cmluZyopIHsgcmVzZXRTdGF0ZSgpOyB9CiAgICAgdm9pZCByZXNldFN0YXRlKCk7
CiAKKyAgICB2b2lkIGNhdXNlc1JlY29tcGlsYXRpb24oRXJyb3JTdHJpbmcqLCBib29sKik7Cisg
ICAgdm9pZCBpc1NhbXBsaW5nKEVycm9yU3RyaW5nKiwgYm9vbCopOworICAgIHZvaWQgaGFzSGVh
cFByb2ZpbGVyKEVycm9yU3RyaW5nKiwgYm9vbCopOworCiAgICAgdm9pZCBlbmFibGUoRXJyb3JT
dHJpbmcqKTsKICAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKLSAgICB2b2lkIGlzRW5h
YmxlZChFcnJvclN0cmluZyosIGJvb2wqIHJlc3VsdCkgeyAqcmVzdWx0ID0gZW5hYmxlZCgpOyB9
CiAgICAgdm9pZCBzdGFydChFcnJvclN0cmluZyogPSAwKTsKICAgICB2b2lkIHN0b3AoRXJyb3JT
dHJpbmcqID0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCBkZjg0NTE5NDdjZjg1NDY4YWE1MjhhNTJjNmFhZTE3
MDVlNmU4ZGU2Li4wMzU0N2YwNjcwMzk5NDY4NzBkYmFlN2MzZDQxYzFlYTJlNmU1ZmYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCkBAIC01MDYsMTEgKzUwNiwyMSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Omdl
dFJlc3BvbnNlQm9keShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cgogICAgICpl
cnJvclN0cmluZyA9ICJObyBkYXRhIGZvdW5kIGZvciByZXNvdXJjZSB3aXRoIGdpdmVuIGlkZW50
aWZpZXIiOwogfQogCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNhbkNsZWFyQnJvd3Nl
ckNhY2hlKEVycm9yU3RyaW5nKiwgYm9vbCogcmVzdWx0KQoreworICAgICpyZXN1bHQgPSBtX2Ns
aWVudC0+Y2FuQ2xlYXJCcm93c2VyQ2FjaGUoKTsKK30KKwogdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjpjbGVhckJyb3dzZXJDYWNoZShFcnJvclN0cmluZyopCiB7CiAgICAgbV9jbGllbnQt
PmNsZWFyQnJvd3NlckNhY2hlKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6
Y2FuQ2xlYXJCcm93c2VyQ29va2llcyhFcnJvclN0cmluZyosIGJvb2wqIHJlc3VsdCkKK3sKKyAg
ICAqcmVzdWx0ID0gbV9jbGllbnQtPmNhbkNsZWFyQnJvd3NlckNvb2tpZXMoKTsKK30KKwogdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjbGVhckJyb3dzZXJDb29raWVzKEVycm9yU3RyaW5n
KikKIHsKICAgICBtX2NsaWVudC0+Y2xlYXJCcm93c2VyQ29va2llcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggMjgyODk2
Nzk3OTdiM2Y4YTFhN2U0MWQ5OTQ0ZmI5N2EzMmFmYmIxZi4uOGY2Zjc1YmYyN2I4Yjk2NGJkNDMz
YzdiODI0N2M5NjUyYmYxNDI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC0xMzAsNyArMTMwLDkgQEAgcHVibGljOgogICAg
IHZvaWQgZ2V0UmVzcG9uc2VCb2R5KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiByZXF1ZXN0
SWQsIFN0cmluZyogY29udGVudCwgYm9vbCogYmFzZTY0RW5jb2RlZCk7CiAgICAgdm9pZCBjbGVh
ckNhY2hlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nKiBjb25zdCBvcHRpb25hbFByZXNlcnZl
ZExvYWRlcklkKTsKIAorICAgIHZvaWQgY2FuQ2xlYXJCcm93c2VyQ2FjaGUoRXJyb3JTdHJpbmcq
LCBib29sKik7CiAgICAgdm9pZCBjbGVhckJyb3dzZXJDYWNoZShFcnJvclN0cmluZyopOworICAg
IHZvaWQgY2FuQ2xlYXJCcm93c2VyQ29va2llcyhFcnJvclN0cmluZyosIGJvb2wqKTsKICAgICB2
b2lkIGNsZWFyQnJvd3NlckNvb2tpZXMoRXJyb3JTdHJpbmcqKTsKICAgICB2b2lkIHNldENhY2hl
RGlzYWJsZWQoRXJyb3JTdHJpbmcqLCBib29sIGNhY2hlRGlzYWJsZWQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXgg
MDc1OTY4YzAyMTA4MjhkOGY3NGFmNDIxZWEwYTYyMzg4ODQ4M2MxMS4uYTBkMDBjNDBiN2YxMjVh
YTNiNDk4YjkzMmJkODNkNDVlM2ExZGFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtNDAsNyArNDAsNyBAQCBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNb2RlbCA9IGZ1bmN0aW9uKCkKICAgICAgKi8KICAgICB0aGlzLl9z
Y3JpcHRzID0ge307CiAKLSAgICB0aGlzLl9jYXBhYmlsaXRpZXNPYmplY3QgPSB7fTsKKyAgICB0
aGlzLl9jYW5TZXRTY3JpcHRTb3VyY2UgPSBmYWxzZTsKIAogICAgIEluc3BlY3RvckJhY2tlbmQu
cmVnaXN0ZXJEZWJ1Z2dlckRpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlckRpc3Bh
dGNoZXIodGhpcykpOwogfQpAQCAtODcsMjIgKzg3LDExIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1vZGVsLkJyZWFrUmVhc29uID0gewogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90
eXBlID0gewogICAgIGVuYWJsZURlYnVnZ2VyOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICAv
KioKLSAgICAgICAgICogQHBhcmFtIHtQcm90b2NvbC5FcnJvcn0gZXJyb3IKLSAgICAgICAgICog
QHBhcmFtIHtBcnJheS48TWV0YUFnZW50LkRvbWFpbkNhcGFiaWxpdGllcz59IGNhcGFiaWxpdGll
cwotICAgICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIGNhcGFiaWxp
dGllcykKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHJlc3VsdCkKICAgICAgICAg
ewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXBhYmlsaXRpZXMubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2FwYWJpbGl0aWVzW2ldLmRvbWFpbk5hbWUgIT09
ICJEZWJ1Z2dlciIpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAg
ICAgICAgdmFyIGNhcGFiaWxpdGllc0xpc3QgPSBjYXBhYmlsaXRpZXNbaV0uY2FwYWJpbGl0aWVz
OwotICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY2FwYWJpbGl0aWVzTGlzdC5s
ZW5ndGg7ICsraikKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FwYWJpbGl0aWVzT2JqZWN0
W2NhcGFiaWxpdGllc0xpc3Rbal1dID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHRoaXMuX2NhblNldFNjcmlwdFNvdXJjZSA9IHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBN
ZXRhQWdlbnQuZ2V0Q2FwYWJpbGl0aWVzKFsiRGVidWdnZXIiXSwgY2FsbGJhY2suYmluZCh0aGlz
KSk7CisgICAgICAgIERlYnVnZ2VyQWdlbnQuY2FuU2V0U2NyaXB0U291cmNlKGNhbGxiYWNrLmJp
bmQodGhpcykpOwogICAgICAgICBEZWJ1Z2dlckFnZW50LmVuYWJsZSh0aGlzLl9kZWJ1Z2dlcldh
c0VuYWJsZWQuYmluZCh0aGlzKSk7CiAgICAgfSwKIApAQCAtMTE2LDcgKzEwNSw3IEBAIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBjYW5TZXRT
Y3JpcHRTb3VyY2U6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiAhIXRoaXMuX2Nh
cGFiaWxpdGllc09iamVjdFtEZWJ1Z2dlckFnZW50LmNhcGFiaWxpdHlTZXRTY3JpcHRTb3VyY2Vd
OworICAgICAgICByZXR1cm4gdGhpcy5fY2FuU2V0U2NyaXB0U291cmNlOwogICAgIH0sCiAKICAg
ICBfZGVidWdnZXJXYXNFbmFibGVkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3LmpzCmluZGV4IDIwYTc4ZDkx
MzYzZTFmZTY5NzcxYjk2NjQ2MWJhMGE2YWI3MWUyZTYuLjE0ZDE5M2YzNDkyYWVhNWRmNTA3MzI4
ZTk0Zjc3MTZhODhkOWZkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3LmpzCkBAIC00NywxMiArNDcsMTIgQEAgV2ViSW5z
cGVjdG9yLk5ldHdvcmtJdGVtVmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQogICAgIHRoaXMuYXBw
ZW5kVGFiKCJwcmV2aWV3IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcmV2aWV3IiksIHByZXZp
ZXdWaWV3KTsKICAgICB0aGlzLmFwcGVuZFRhYigicmVzcG9uc2UiLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlJlc3BvbnNlIiksIHJlc3BvbnNlVmlldyk7CiAKLSAgICBpZiAoQ2FwYWJpbGl0aWVz
LnNob3dDb29raWVzVGFiKSB7CisgICAgaWYgKHJlc291cmNlLnJlcXVlc3RDb29raWVzIHx8IHJl
c291cmNlLnJlc3BvbnNlQ29va2llcykgewogICAgICAgICB0aGlzLl9jb29raWVzVmlldyA9IG5l
dyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb29raWVzVmlldyhyZXNvdXJjZSk7CiAgICAgICAgIHRo
aXMuYXBwZW5kVGFiKCJjb29raWVzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb29raWVzIiks
IHRoaXMuX2Nvb2tpZXNWaWV3KTsKICAgICB9CiAKLSAgICBpZiAoQ2FwYWJpbGl0aWVzLnNob3dU
aW1pbmdUYWIpIHsKKyAgICBpZiAocmVzb3VyY2UudGltaW5nKSB7CiAgICAgICAgIHZhciB0aW1p
bmdWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWluZ1ZpZXcocmVzb3VyY2UpOwog
ICAgICAgICB0aGlzLmFwcGVuZFRhYigidGltaW5nIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJU
aW1pbmciKSwgdGltaW5nVmlldyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwppbmRleCA1YWVmNmMyZjI2NjdlZmQ0NDhl
YmVmMzVlZjhhNzMyM2IwMGE0ODgyLi40Y2RhNzFhNzVjZGRkYjNkZTZlYTk4NWJmOTMxZmI3Nzk0
YjI5N2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtQYW5lbC5qcwpAQCAtNjYsNiArNjYsMTcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dW
aWV3ID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkRP
TUNvbnRlbnRMb2FkZWQsIHRoaXMuX2RvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkLCB0aGlzKTsK
IAogICAgIHRoaXMuX2luaXRpYWxpemVWaWV3KCk7CisgICAgZnVuY3Rpb24gb25DYW5DbGVhckJy
b3dzZXJDYWNoZShlcnJvciwgcmVzdWx0KQorICAgIHsKKyAgICAgICAgdGhpcy5fY2FuQ2xlYXJC
cm93c2VyQ2FjaGUgPSByZXN1bHQ7CisgICAgfQorICAgIE5ldHdvcmtBZ2VudC5jYW5DbGVhckJy
b3dzZXJDYWNoZShvbkNhbkNsZWFyQnJvd3NlckNhY2hlLmJpbmQodGhpcykpOworCisgICAgZnVu
Y3Rpb24gb25DYW5DbGVhckJyb3dzZXJDb29raWVzKGVycm9yLCByZXN1bHQpCisgICAgeworICAg
ICAgICB0aGlzLl9jYW5DbGVhckJyb3dzZXJDb29raWVzID0gcmVzdWx0OworICAgIH0KKyAgICBO
ZXR3b3JrQWdlbnQuY2FuQ2xlYXJCcm93c2VyQ2FjaGUob25DYW5DbGVhckJyb3dzZXJDb29raWVz
LmJpbmQodGhpcykpOwogfQogCiBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBl
ID0gewpAQCAtOTQwLDExICs5NTEsMTIgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dlckNhc2VNZW51VGl0bGVzKCkgPyAiU2F2
ZSBhbGwgYXMgSEFSIiA6ICJTYXZlIEFsbCBhcyBIQVIiKSwgdGhpcy5fZXhwb3J0QWxsLmJpbmQo
dGhpcykpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKENhcGFiaWxpdGllcy5jYW5DbGVhckNh
Y2hlQW5kQ29va2llcykgeworICAgICAgICBpZiAodGhpcy5fY2FuQ2xlYXJCcm93c2VyQ2FjaGUg
fHwgdGhpcy5fY2FuQ2xlYXJCcm93c2VyQ29va2llcykKICAgICAgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBpZiAodGhpcy5fY2FuQ2xlYXJCcm93c2VyQ2Fj
aGUpCiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZyhXZWJJbnNwZWN0b3IudXNlTG93ZXJDYXNlTWVudVRpdGxlcygpID8gIkNsZWFyIGJyb3dz
ZXIgY2FjaGUiIDogIkNsZWFyIEJyb3dzZXIgQ2FjaGUiKSwgdGhpcy5fY2xlYXJCcm93c2VyQ2Fj
aGUuYmluZCh0aGlzKSk7CisgICAgICAgIGlmICh0aGlzLl9jYW5DbGVhckJyb3dzZXJDb29raWVz
KQogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoV2ViSW5zcGVjdG9yLnVzZUxvd2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJDbGVhciBicm93c2Vy
IGNvb2tpZXMiIDogIkNsZWFyIEJyb3dzZXIgQ29va2llcyIpLCB0aGlzLl9jbGVhckJyb3dzZXJD
b29raWVzLmJpbmQodGhpcykpOwotICAgICAgICB9CiAKICAgICAgICAgY29udGV4dE1lbnUuc2hv
dyhldmVudCk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbC5qcwppbmRleCAxYmQyYzEwYmI1ZDNmYWQ0NTk2M2JkZGMzOTZm
ZjRkOTIwNjY3ZGM1Li44ZDhhOTdhMDE2OGJkOWI1NTMyNGJkZTE3N2E3Mjc1YWViYTBmOTRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1Bh
bmVsLmpzCkBAIC0xMTksNyArMTE5LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBm
dW5jdGlvbigpCiAKICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0
b3IuU3RhdHVzQmFyQnV0dG9uKCIiLCAiZW5hYmxlLXRvZ2dsZS1zdGF0dXMtYmFyLWl0ZW0iKTsK
ICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRo
aXMuX3RvZ2dsZVByb2ZpbGluZy5iaW5kKHRoaXMpLCBmYWxzZSk7Ci0gICAgaWYgKENhcGFiaWxp
dGllcy5wcm9maWxlckFsd2F5c0VuYWJsZWQpCisgICAgaWYgKCFDYXBhYmlsaXRpZXMucHJvZmls
ZXJDYXVzZXNSZWNvbXBpbGF0aW9uKQogICAgICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi5l
bGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogCiAgICAgdGhpcy5jbGVhclJlc3VsdHNC
dXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkNsZWFyIGFsbCBwcm9maWxlcy4iKSwgImNsZWFyLXN0YXR1cy1iYXItaXRlbSIpOwpA
QCAtMTMxLDcgKzEzMSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24o
KQogICAgIHRoaXMud2VsY29tZVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLldlbGNvbWVWaWV3KCJw
cm9maWxlcyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiV2VsY29tZSB0byB0aGUgUHJvZmlsZXMg
cGFuZWwiKSk7CiAKICAgICB0aGlzLl9wcm9maWxlcyA9IFtdOwotICAgIHRoaXMuX3Byb2ZpbGVy
RW5hYmxlZCA9IENhcGFiaWxpdGllcy5wcm9maWxlckFsd2F5c0VuYWJsZWQ7CisgICAgdGhpcy5f
cHJvZmlsZXJFbmFibGVkID0gIUNhcGFiaWxpdGllcy5wcm9maWxlckNhdXNlc1JlY29tcGlsYXRp
b247CiAgICAgdGhpcy5fcmVzZXQoKTsKIAogICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUo
bmV3IFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZSgpKTsKQEAgLTE0MCwxNSArMTQwLDggQEAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiAKICAgICBJbnNwZWN0b3JC
YWNrZW5kLnJlZ2lzdGVyUHJvZmlsZXJEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuUHJvZmls
ZXJEaXNwYXRjaGVyKHRoaXMpKTsKIAotICAgIGlmIChDYXBhYmlsaXRpZXMucHJvZmlsZXJBbHdh
eXNFbmFibGVkIHx8IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcm9maWxlckVuYWJsZWQuZ2V0KCkp
Ci0gICAgICAgIFByb2ZpbGVyQWdlbnQuZW5hYmxlKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGZ1
bmN0aW9uIG9uUHJvZmlsZXJFbmVibGVkKGVycm9yLCB2YWx1ZSkgewotICAgICAgICAgICAgaWYg
KHZhbHVlKQotICAgICAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVyV2FzRW5hYmxlZCgpOwotICAg
ICAgICB9Ci0gICAgICAgIFByb2ZpbGVyQWdlbnQuaXNFbmFibGVkKG9uUHJvZmlsZXJFbmVibGVk
LmJpbmQodGhpcykpOwotICAgIH0KKyAgICBpZiAoIUNhcGFiaWxpdGllcy5wcm9maWxlckNhdXNl
c1JlY29tcGlsYXRpb24gfHwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLnByb2ZpbGVyRW5hYmxlZC5n
ZXQoKSkKKyAgICAgICAgUHJvZmlsZXJBZ2VudC5lbmFibGUodGhpcy5fcHJvZmlsZXJXYXNFbmFi
bGVkLmJpbmQodGhpcykpOwogfQogCiBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5
cGUgPSB7CkBAIC03OTcsMTAgKzc5MCwxMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBpZiAodGhpcy5fcHJvZmlsZXJFbmFibGVkKSB7
CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkLnNldChm
YWxzZSk7Ci0gICAgICAgICAgICBQcm9maWxlckFnZW50LmRpc2FibGUoKTsKKyAgICAgICAgICAg
IFByb2ZpbGVyQWdlbnQuZGlzYWJsZSh0aGlzLl9wcm9maWxlcldhc0Rpc2FibGVkLmJpbmQodGhp
cykpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdz
LnByb2ZpbGVyRW5hYmxlZC5zZXQoISFvcHRpb25hbEFsd2F5cyk7Ci0gICAgICAgICAgICBQcm9m
aWxlckFnZW50LmVuYWJsZSgpOworICAgICAgICAgICAgUHJvZmlsZXJBZ2VudC5lbmFibGUodGhp
cy5fcHJvZmlsZXJXYXNFbmFibGVkLmJpbmQodGhpcykpOwogICAgICAgICB9CiAgICAgfSwKIApA
QCAtODc3LDIxICs4NzAsNiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBpZiAoZG9uZSA+PSB0b3RhbCkKICAgICAgICAgICAgICAgICB0aGlz
Ll9yZW1vdmVQcm9maWxlSGVhZGVyKHRoaXMuX3RlbXBvcmFyeVRha2luZ1NuYXBzaG90KTsKICAg
ICAgICAgfQotICAgIH0sCi0KLSAgICBfZW5hYmxlRGV0YWlsZWRIZWFwUHJvZmlsZXM6IGZ1bmN0
aW9uKHJlc2V0QWdlbnQpCi0gICAgewotICAgICAgICBpZiAocmVzZXRBZ2VudCkKLSAgICAgICAg
ICAgIHRoaXMuX2NsZWFyUHJvZmlsZXMoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhp
cy5fcmVzZXQoKTsKLSAgICAgICAgdmFyIG9sZFByb2ZpbGVUeXBlID0gdGhpcy5fcHJvZmlsZVR5
cGVzQnlJZE1hcFtXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFByb2ZpbGVUeXBlLlR5cGVJ
ZF07Ci0gICAgICAgIHZhciBwcm9maWxlVHlwZSA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsZWRI
ZWFwc2hvdFByb2ZpbGVUeXBlKCk7Ci0gICAgICAgIHByb2ZpbGVUeXBlLnRyZWVFbGVtZW50ID0g
b2xkUHJvZmlsZVR5cGUudHJlZUVsZW1lbnQ7Ci0gICAgICAgIHRoaXMuX3Byb2ZpbGVUeXBlc0J5
SWRNYXBbcHJvZmlsZVR5cGUuaWRdID0gcHJvZmlsZVR5cGU7Ci0gICAgICAgIENhcGFiaWxpdGll
cy5kZXRhaWxlZEhlYXBQcm9maWxlcyA9IHRydWU7Ci0gICAgICAgIHRoaXMuZGV0YWNoKCk7Ci0g
ICAgICAgIHRoaXMuc2hvdygpOwogICAgIH0KIH0KIApAQCAtOTA0LDE2ICs4ODIsNiBAQCBXZWJJ
bnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRjaGVyID0gZnVuY3Rpb24ocHJvZmlsZXIpCiB9CiAKIFdl
Ykluc3BlY3Rvci5Qcm9maWxlckRpc3BhdGNoZXIucHJvdG90eXBlID0gewotICAgIHByb2ZpbGVy
V2FzRW5hYmxlZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fcHJvZmlsZXIuX3By
b2ZpbGVyV2FzRW5hYmxlZCgpOwotICAgIH0sCi0KLSAgICBwcm9maWxlcldhc0Rpc2FibGVkOiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9wcm9maWxlci5fcHJvZmlsZXJXYXNEaXNh
YmxlZCgpOwotICAgIH0sCi0KICAgICByZXNldFByb2ZpbGVzOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB0aGlzLl9wcm9maWxlci5fcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggMmYxM2E2MTcyMzI5NmRm
M2I3MzBkMzFmNjZhOTg3MGQ3ZmY0ZWUzZi4uNjZhY2E5OTFlMTI2NWZiYjQyZWYxMWE3MGI1ODUx
MTFiNzUwZTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRzUGFuZWwuanMKQEAgLTc0LDcgKzc0LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbCA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogICAgICAgICB0aGlzLnNpZGViYXJQ
YW5lcy5ldmVudExpc3RlbmVyQnJlYWtwb2ludHMgPSBuZXcgV2ViSW5zcGVjdG9yLkV2ZW50TGlz
dGVuZXJCcmVha3BvaW50c1NpZGViYXJQYW5lKCk7CiAgICAgfQogCi0gICAgaWYgKENhcGFiaWxp
dGllcy5jYW5JbnNwZWN0V29ya2VycyAmJiAhV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIuaXNX
b3JrZXJGcm9udGVuZCgpKSB7CisgICAgaWYgKFByZWZlcmVuY2VzLmV4cG9zZVdvcmtlcnNJbnNw
ZWN0aW9uICYmICFXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkp
IHsKICAgICAgICAgV29ya2VyQWdlbnQuc2V0V29ya2VySW5zcGVjdGlvbkVuYWJsZWQodHJ1ZSk7
CiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLndvcmtlckxpc3QgPSBuZXcgV2ViSW5zcGVjdG9y
Lldvcmtlckxpc3RTaWRlYmFyUGFuZShXZWJJbnNwZWN0b3Iud29ya2VyTWFuYWdlcik7CiAgICAg
fSBlbHNlCkBAIC0xMDMsNyArMTAzLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1
bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogCiAgICAgdGhpcy5lbmFibGVUb2dnbGVCdXR0b24g
PSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgImVuYWJsZS10b2dnbGUtc3Rh
dHVzLWJhci1pdGVtIik7CiAgICAgdGhpcy5lbmFibGVUb2dnbGVCdXR0b24uYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLnRvZ2dsZURlYnVnZ2luZywgdGhpcyk7Ci0gICAgaWYgKENhcGFi
aWxpdGllcy5kZWJ1Z2dlckFsd2F5c0VuYWJsZWQpCisgICAgaWYgKCFDYXBhYmlsaXRpZXMuZGVi
dWdnZXJDYXVzZXNSZWNvbXBpbGF0aW9uKQogICAgICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRv
bi5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogCiAgICAgdGhpcy5fcGF1c2VPbkV4
Y2VwdGlvbkJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKCIiLCAic2Ny
aXB0cy1wYXVzZS1vbi1leGNlcHRpb25zLXN0YXR1cy1iYXItaXRlbSIsIDMpOwpAQCAtMTE2LDcg
KzExNiw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbihwcmVzZW50YXRp
b25Nb2RlbCkKICAgICB0aGlzLl9zY3JpcHRWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLl9zY3JpcHRWaWV3U3RhdHVz
QmFySXRlbXNDb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICJpbmxpbmUtYmxvY2siOwogCi0gICAg
dGhpcy5fZGVidWdnZXJFbmFibGVkID0gQ2FwYWJpbGl0aWVzLmRlYnVnZ2VyQWx3YXlzRW5hYmxl
ZDsKKyAgICB0aGlzLl9kZWJ1Z2dlckVuYWJsZWQgPSAhQ2FwYWJpbGl0aWVzLmRlYnVnZ2VyQ2F1
c2VzUmVjb21waWxhdGlvbjsKIAogICAgIHRoaXMuX3Jlc2V0KGZhbHNlKTsKIApAQCAtMTM3LDcg
KzEzNyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbihwcmVzZW50YXRp
b25Nb2RlbCkKICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5FeGVjdXRpb25MaW5l
Q2hhbmdlZCwgdGhpcy5fZXhlY3V0aW9uTGluZUNoYW5nZWQsIHRoaXMpOwogICAgIHRoaXMuX3By
ZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuRXZlbnRzLkRlYnVnZ2VyUmVzZXQsIHRoaXMuX3Jlc2V0LmJpbmQodGhp
cywgZmFsc2UpKTsKICAgICAKLSAgICB2YXIgZW5hYmxlRGVidWdnZXIgPSBDYXBhYmlsaXRpZXMu
ZGVidWdnZXJBbHdheXNFbmFibGVkIHx8IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kZWJ1Z2dlckVu
YWJsZWQuZ2V0KCk7CisgICAgdmFyIGVuYWJsZURlYnVnZ2VyID0gIUNhcGFiaWxpdGllcy5kZWJ1
Z2dlckNhdXNlc1JlY29tcGlsYXRpb24gfHwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRlYnVnZ2Vy
RW5hYmxlZC5nZXQoKTsKICAgICBpZiAoZW5hYmxlRGVidWdnZXIpCiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLmVuYWJsZURlYnVnZ2VyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IDYzYzg1M2Y3MjRmNjJkYzUy
MTMzODUzNDMzZDlhZGQ5MDQwYWZmZWUuLjlkM2E5YTRkMDA4YWRkNTI2ZDE3N2Q4ZWEyMzRiNjE5
ZDEzYTFiODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0
aW5ncy5qcwpAQCAtNDMsMjEgKzQzLDE3IEBAIHZhciBQcmVmZXJlbmNlcyA9IHsKICAgICBoYXNF
eHRlbnNpb25zOiBmYWxzZSwKICAgICBzaGFyZWRXb3JrZXJzRGVidWdOb3RlOiB1bmRlZmluZWQs
CiAgICAgbG9jYWxpemVVSTogdHJ1ZSwKKyAgICBleHBvc2VEaXNhYmxlQ2FjaGU6IGZhbHNlLAor
ICAgIGV4cG9zZVdvcmtlcnNJbnNwZWN0aW9uOiBmYWxzZSwKICAgICBhcHBsaWNhdGlvblRpdGxl
OiAiV2ViIEluc3BlY3RvciAtICVzIgogfQogCiB2YXIgQ2FwYWJpbGl0aWVzID0gewogICAgIHNh
bXBsaW5nQ1BVUHJvZmlsZXI6IGZhbHNlLAotICAgIGRlYnVnZ2VyQWx3YXlzRW5hYmxlZDogZmFs
c2UsCi0gICAgcHJvZmlsZXJBbHdheXNFbmFibGVkOiBmYWxzZSwKKyAgICBkZWJ1Z2dlckNhdXNl
c1JlY29tcGlsYXRpb246IHRydWUsCisgICAgcHJvZmlsZXJDYXVzZXNSZWNvbXBpbGF0aW9uOiB0
cnVlLAogICAgIG5hdGl2ZUluc3RydW1lbnRhdGlvbkVuYWJsZWQ6IGZhbHNlLAotICAgIHNob3dU
aW1pbmdUYWI6IGZhbHNlLAotICAgIHNob3dDb29raWVzVGFiOiBmYWxzZSwKLSAgICBoZWFwUHJv
ZmlsZXJQcmVzZW50OiBmYWxzZSwKLSAgICBkZXRhaWxlZEhlYXBQcm9maWxlczogZmFsc2UsCi0g
ICAgY2FuSW5zcGVjdFdvcmtlcnM6IGZhbHNlLAotICAgIGNhbkNsZWFyQ2FjaGVBbmRDb29raWVz
OiBmYWxzZSwKLSAgICBjYW5EaXNhYmxlQ2FjaGU6IGZhbHNlCisgICAgaGVhcFByb2ZpbGVyUHJl
c2VudDogZmFsc2UKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwppbmRleCA5MjIxZjVmYjQ2YjJiY2Y3ZTc5ODEz
ZThhYjhkMjlkNGJhOWE3ZTU3Li41MDBjYmY1Y2RmYzZmMGNhYjE0NmQwZjUzMDFjMDZjZTRjYjEw
OGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRp
bmdzU2NyZWVuLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0
dGluZ3NTY3JlZW4uanMKQEAgLTU5LDcgKzU5LDcgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2Ny
ZWVuID0gZnVuY3Rpb24oKQogICAgICAgICBdLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudGV4dEVk
aXRvckluZGVudCkpOwogCiAgICAgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24oV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJOZXR3b3JrIiksIHRydWUpOwotICAgIGlmIChDYXBhYmlsaXRpZXMuY2FuRGlz
YWJsZUNhY2hlKQorICAgIGlmIChQcmVmZXJlbmNlcy5leHBvc2VEaXNhYmxlQ2FjaGUpCiAgICAg
ICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiRGlzYWJsZSBjYWNoZSIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY2FjaGVE
aXNhYmxlZCkpOwogICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlVXNlckFjdGlvbkNvbnRy
b2woKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKaW5kZXggOWJjNWExMWQyNGQ0NDVjOWRhMDZjYmNhOTQxZjllZDc1YTE4MDQ2NS4uZjg2
MTNmOTNiM2NkM2JlZWZlOTcxZjZmNGUxMTIzNjYyMDc4NGFmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTI3OCw2ICsyNzgsMTMg
QEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICB7CiAgICAgICAgIHZhciBwYXJzZWRVUkwgPSBX
ZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTCAmJiBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFn
ZVVSTC5hc1BhcnNlZFVSTCgpOwogICAgICAgICByZXR1cm4gcGFyc2VkVVJMID8gcGFyc2VkVVJM
Lmhvc3QgOiAiIjsKKyAgICB9LAorCisgICAgX2luaXRpYWxpemVDYXBhYmlsaXR5OiBmdW5jdGlv
bihuYW1lLCBjYWxsYmFjaywgZXJyb3IsIHJlc3VsdCkKKyAgICB7CisgICAgICAgIENhcGFiaWxp
dGllc1tuYW1lXSA9IHJlc3VsdDsKKyAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAg
Y2FsbGJhY2soKTsKICAgICB9CiB9CiAKQEAgLTMxNywxOCArMzI0LDI2IEBAIFdlYkluc3BlY3Rv
ci5sb2FkZWQgPSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5kb0xvYWRlZERvbmUgPSBmdW5j
dGlvbigpCiB7Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRlZCgpOwotCi0gICAgV2Vi
SW5zcGVjdG9yLldvcmtlck1hbmFnZXIubG9hZGVkKCk7Ci0KKyAgICAvLyBJbnN0YWxsIHN0eWxl
cyBhbmQgdGhlbWVzCiAgICAgV2ViSW5zcGVjdG9yLmluc3RhbGxQb3J0U3R5bGVzKCk7Ci0KICAg
ICBpZiAoV2ViSW5zcGVjdG9yLnNvY2tldCkKICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRTdHls
ZUNsYXNzKCJyZW1vdGUiKTsKIAogICAgIGlmIChXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmpl
Y3QudG9vbGJhckNvbG9yICYmIFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09iamVjdC50ZXh0Q29s
b3IpCiAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRUb29sYmFyQ29sb3JzKFdlYkluc3BlY3Rvci5x
dWVyeVBhcmFtc09iamVjdC50b29sYmFyQ29sb3IsIFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09i
amVjdC50ZXh0Q29sb3IpOwogCisgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRlZCgpOwor
ICAgIFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLmxvYWRlZCgpOworCisgICAgRGVidWdnZXJB
Z2VudC5jYXVzZXNSZWNvbXBpbGF0aW9uKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxp
dHkuYmluZChXZWJJbnNwZWN0b3IsICJkZWJ1Z2dlckNhdXNlc1JlY29tcGlsYXRpb24iLCBudWxs
KSk7CisgICAgRGVidWdnZXJBZ2VudC5zdXBwb3J0c05hdGl2ZUJyZWFrcG9pbnRzKFdlYkluc3Bl
Y3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJuYXRpdmVJbnN0
cnVtZW50YXRpb25FbmFibGVkIiwgbnVsbCkpOworICAgIFByb2ZpbGVyQWdlbnQuY2F1c2VzUmVj
b21waWxhdGlvbihXZWJJbnNwZWN0b3IuX2luaXRpYWxpemVDYXBhYmlsaXR5LmJpbmQoV2ViSW5z
cGVjdG9yLCAicHJvZmlsZXJDYXVzZXNSZWNvbXBpbGF0aW9uIiwgbnVsbCkpOworICAgIFByb2Zp
bGVyQWdlbnQuaXNTYW1wbGluZyhXZWJJbnNwZWN0b3IuX2luaXRpYWxpemVDYXBhYmlsaXR5LmJp
bmQoV2ViSW5zcGVjdG9yLCAic2FtcGxpbmdDUFVQcm9maWxlciIsIG51bGwpKTsKKyAgICBQcm9m
aWxlckFnZW50Lmhhc0hlYXBQcm9maWxlcihXZWJJbnNwZWN0b3IuX2luaXRpYWxpemVDYXBhYmls
aXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAiaGVhcFByb2ZpbGVyUHJlc2VudCIsIFdlYkluc3BlY3Rv
ci5fZG9Mb2FkZWREb25lV2l0aENhcGFiaWxpdGllcy5iaW5kKFdlYkluc3BlY3RvcikpKTsKK30K
KworV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzID0gZnVuY3Rpb24o
KQorewogICAgIFdlYkluc3BlY3Rvci5zaG9ydGN1dHNTY3JlZW4gPSBuZXcgV2ViSW5zcGVjdG9y
LlNob3J0Y3V0c1NjcmVlbigpOwogICAgIHRoaXMuX3JlZ2lzdGVyU2hvcnRjdXRzKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAK
aW5kZXggOWY1YWFkMTBjZWExMDA0ZjBiNGM3ODQ4ZjdlOTIyMDRkZmY5YTVkNS4uY2NlMzNmZTdh
Nzk2MjViM2YzMGNmYWU1YWMwNjAyMDE5MzQzNWQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTEwNiwxMiArMTA2LDIy
IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50SW1wbDo6dXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUo
Y29uc3QgV1RGOjpTdHJpbmcmIGluc3BlY3RvCiAgICAgICAgIGFnZW50LT51cGRhdGVJbnNwZWN0
b3JTdGF0ZUNvb2tpZShpbnNwZWN0b3JTdGF0ZSk7CiB9CiAKK2Jvb2wgSW5zcGVjdG9yQ2xpZW50
SW1wbDo6Y2FuQ2xlYXJCcm93c2VyQ2FjaGUoKQoreworICAgIHJldHVybiB0cnVlOworfQorCiB2
b2lkIEluc3BlY3RvckNsaWVudEltcGw6OmNsZWFyQnJvd3NlckNhY2hlKCkKIHsKICAgICBpZiAo
V2ViRGV2VG9vbHNBZ2VudEltcGwqIGFnZW50ID0gZGV2VG9vbHNBZ2VudCgpKQogICAgICAgICBh
Z2VudC0+Y2xlYXJCcm93c2VyQ2FjaGUoKTsKIH0KIAorYm9vbCBJbnNwZWN0b3JDbGllbnRJbXBs
OjpjYW5DbGVhckJyb3dzZXJDb29raWVzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9p
ZCBJbnNwZWN0b3JDbGllbnRJbXBsOjpjbGVhckJyb3dzZXJDb29raWVzKCkKIHsKICAgICBpZiAo
V2ViRGV2VG9vbHNBZ2VudEltcGwqIGFnZW50ID0gZGV2VG9vbHNBZ2VudCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oCmluZGV4IDBlOTAw
YjVmZjM5MWQyZTkwZDc2M2VhOGM3ZTUxNzkxYjI4NWU2Y2YuLmIxNmI2ZjQ2ODE4YzMzY2U0Mjk1
ZTVmODNhNmE3NWM5YjVlMjFkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0luc3BlY3RvckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JbnNwZWN0b3JDbGllbnRJbXBsLmgKQEAgLTU5LDcgKzU5LDkgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUluc3BlY3RvclN0YXRlQ29va2llKGNvbnN0IFdURjo6U3RyaW5n
Jik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ2xlYXJCcm93c2VyQ2FjaGUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJCcm93c2VyQ2FjaGUoKTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ2xlYXJC
cm93c2VyQ29va2llcygpOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckJyb3dzZXJDb29raWVzKCk7
CiBwcml2YXRlOgogICAgIFdlYkRldlRvb2xzQWdlbnRJbXBsKiBkZXZUb29sc0FnZW50KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5qcyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCmluZGV4IDQ1NTE3N2IyY2Nm
OGIzNWVhZDJmNzFiYTc4YjMyZjA5MzEwYjM2ZTguLmYwMDFjNDhhYWI4MmU5M2E1YTFmMjIxZDg4
YmZlYmJmODhlNzBhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pz
L0RldlRvb2xzLmpzCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xz
LmpzCkBAIC00MSwxOCArNDEsOCBAQAogICAgIFByZWZlcmVuY2VzLnNoYXJlZFdvcmtlcnNEZWJ1
Z05vdGUgPSAiU2hhcmVkIHdvcmtlcnMgY2FuIGJlIGluc3BlY3RlZCBpbiB0aGUgVGFzayBNYW5h
Z2VyIjsKICAgICBQcmVmZXJlbmNlcy5sb2NhbGl6ZVVJID0gZmFsc2U7CiAgICAgUHJlZmVyZW5j
ZXMuYXBwbGljYXRpb25UaXRsZSA9ICJEZXZlbG9wZXIgVG9vbHMgLSAlcyI7Ci0KLSAgICBDYXBh
YmlsaXRpZXMuc2FtcGxpbmdDUFVQcm9maWxlciA9IHRydWU7Ci0gICAgQ2FwYWJpbGl0aWVzLmhl
YXBQcm9maWxlclByZXNlbnQgPSB0cnVlOwotICAgIENhcGFiaWxpdGllcy5kZXRhaWxlZEhlYXBQ
cm9maWxlcyA9IHRydWU7Ci0gICAgQ2FwYWJpbGl0aWVzLmRlYnVnZ2VyQWx3YXlzRW5hYmxlZCA9
IHRydWU7Ci0gICAgQ2FwYWJpbGl0aWVzLnByb2ZpbGVyQWx3YXlzRW5hYmxlZCA9IHRydWU7Ci0g
ICAgQ2FwYWJpbGl0aWVzLm5hdGl2ZUluc3RydW1lbnRhdGlvbkVuYWJsZWQgPSB0cnVlOwotICAg
IENhcGFiaWxpdGllcy5zaG93VGltaW5nVGFiID0gdHJ1ZTsKLSAgICBDYXBhYmlsaXRpZXMuc2hv
d0Nvb2tpZXNUYWIgPSB0cnVlOwotICAgIENhcGFiaWxpdGllcy5jYW5JbnNwZWN0V29ya2VycyA9
IHRydWU7Ci0gICAgQ2FwYWJpbGl0aWVzLmNhbkNsZWFyQ2FjaGVBbmRDb29raWVzID0gdHJ1ZTsK
LSAgICBDYXBhYmlsaXRpZXMuY2FuRGlzYWJsZUNhY2hlID0gdHJ1ZTsKKyAgICBQcmVmZXJlbmNl
cy5leHBvc2VEaXNhYmxlQ2FjaGUgPSB0cnVlOworICAgIFByZWZlcmVuY2VzLmV4cG9zZVdvcmtl
cnNJbnNwZWN0aW9uID0gdHJ1ZTsKIH0pKCk7fQogCiAvKiogUGVuZGluZyBXZWJLaXQgdXBzdHJl
YW0gYnkgYXBhdmxvdikuIEZpeGVzIGlmcmFtZSB2cyBkcmFnIHByb2JsZW0uICovCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MGEwNTk2NjNmODg0NGQzNWNkNzNhMjg0ZDU2N2M0NDA0ZjY2YTU1NS4uMzk3NWI4YjU5ODVlYWEy
OGU1MDgzZTA1OWYyNDlkOWFmYjVjMTJhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTEy
LTAxICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBxdWVyeSBiYWNrZW5kIGZvciBjYXBhYmlsaXRpZXMgZXhwbGljaXRseS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvZmlsZXIvZGV0YWlsZWQtaGVhcHNob3RzLXRlc3QuanM6CisKIDIwMTEtMTItMDEgIEhheWF0
byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBDaHJv
bWl1bSByZWJhc2VsaW5lcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9kZXRhaWxlZC1oZWFwc2hvdHMtdGVzdC5qcwppbmRleCBlOWNhODA1Mjk3MTVhYzIz
MDc4OGYwNjYwY2RlNDZkMjA3MzM4YWFmLi5iZTYzZTg3MTNkZWNkN2M5NGVjMmNiNDEwY2NiNzZj
ZjBmNmY4OTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvZGV0
YWlsZWQtaGVhcHNob3RzLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2RldGFpbGVkLWhlYXBzaG90cy10ZXN0LmpzCkBAIC0xMywxMiArMTMsNyBAQCBJbnNwZWN0
b3JUZXN0LnN0YXJ0UHJvZmlsZXJUZXN0ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgICAgIElu
c3BlY3RvclRlc3QuX3BhbmVsUmVzZXQgPSBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKFdlYkluc3Bl
Y3Rvci5wYW5lbHMucHJvZmlsZXMsICJfcmVzZXQiLCBmdW5jdGlvbigpe30sIHRydWUpOwogICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNo
b3RWaWV3LnByb3RvdHlwZSwgIl91cGRhdGVQZXJjZW50QnV0dG9uIiwgSW5zcGVjdG9yVGVzdC5f
c25hcHNob3RWaWV3U2hvd24sIHRydWUpOwogCi0gICAgICAgIGlmIChDYXBhYmlsaXRpZXMuZGV0
YWlsZWRIZWFwUHJvZmlsZXMpCi0gICAgICAgICAgICBkZXRhaWxlZEhlYXBQcm9maWxlc0VuYWJs
ZWQoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcywgIl9wb3B1bGF0ZVByb2ZpbGVzIiwgZGV0
YWlsZWRIZWFwUHJvZmlsZXNFbmFibGVkKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMucHJvZmlsZXMuX2VuYWJsZURldGFpbGVkSGVhcFByb2ZpbGVzKHRydWUpOwotICAgICAgICB9
CisgICAgICAgIGRldGFpbGVkSGVhcFByb2ZpbGVzRW5hYmxlZCgpOwogICAgIH0KIAogICAgIGZ1
bmN0aW9uIGRldGFpbGVkSGVhcFByb2ZpbGVzRW5hYmxlZCgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>