<?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>129095</bug_id>
          
          <creation_ts>2014-02-20 04:11:06 -0800</creation_ts>
          <short_desc>Web Inspector: allow drag-to-adjust on angle input of gradients editor</short_desc>
          <delta_ts>2014-02-22 07:23:54 -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</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>119686</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>982780</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2014-02-20 04:11:06 -0800</bug_when>
    <thetext>The patch for https://bugs.webkit.org/show_bug.cgi?id=119686 will provide a new gradients editor but its angle input doesn&apos;t support drag-to-adjust the way numbers in CodeMirror editors allow. This would be a great way to adjust the angle, so we should support a similar system. This will likely mean that we&apos;d have to generalize CodeMirrorDragToAlterNumberController to work with CodeMirror editors as well as other types of text values, probably with a simple delegate system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982781</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-20 04:11:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/16120195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982782</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-20 04:11:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/16120196&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983183</commentid>
    <comment_count>3</comment_count>
      <attachid>224856</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2014-02-21 05:41:56 -0800</bug_when>
    <thetext>Created attachment 224856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983572</commentid>
    <comment_count>4</comment_count>
      <attachid>224856</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-22 07:23:52 -0800</bug_when>
    <thetext>Comment on attachment 224856
Patch

Clearing flags on attachment: 224856

Committed r164540: &lt;http://trac.webkit.org/changeset/164540&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983573</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-22 07:23:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224856</attachid>
            <date>2014-02-21 05:41:56 -0800</date>
            <delta_ts>2014-02-22 07:23:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129095-20140221144152.patch</filename>
            <type>text/plain</type>
            <size>35126</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA5
NmU4YjI4MTNhMWJkZGRiYjM4ZGZkNWMyZjFlNjg1NzM4NzllNjkxLi4xMWI2MzNlZDBhM2NlN2Q1
MTRkMjIyNjc5NjUyNWM5ZTA1M2Y0MjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NyBAQAorMjAxNC0wMi0yMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9y
Zz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhbGxvdyBkcmFnLXRvLWFkanVzdCBvbiBhbmds
ZSBpbnB1dCBvZiBncmFkaWVudHMgZWRpdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkwOTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgQ29kZU1pcnJvckRyYWdUb0FsdGVyTnVtYmVyQ29u
dHJvbGxlciB0byBDb2RlTWlycm9yRHJhZ1RvQWRqdXN0TnVtYmVyQ29udHJvbGxlciBhbmQgbW92
ZQorICAgICAgICB0aGUgY29yZSBsb2dpYyBvZiBhIGRyYWctdG8tYWRqdXN0IGJlaGF2aW9yIG91
dCBvZiBpdCB0byBhIG5ldyBnZW5lcmljIGNsYXNzIERyYWdUb0FkanVzdENvbnRyb2xsZXIuCisg
ICAgICAgIFdlIHVzZSB0aGlzIG5ldyBjbGFzcyBmcm9tIENvZGVNaXJyb3JHcmFkaWVudEVkaXRp
bmdDb250cm9sbGVyIHRvIHByb3ZpZGUgZHJhZy10by1hZGp1c3QgYmVoYXZpb3IKKyAgICAgICAg
aW4gdGhlIGFuZ2xlIGlucHV0IGZpZWxkIG9mIHRoZSBncmFkaWVudCBlZGl0b3IgYW5kIGFsc28g
YXMgYSBzdXBwb3J0aW5nIG9iamVjdCBmb3IgdGhlIENvZGVNaXJyb3ItCisgICAgICAgIHNwZWNp
ZmljIGNsYXNzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db2RlTWlycm9yRHJhZ1RvQWRq
dXN0TnVtYmVyQ29udHJvbGxlci5jc3M6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db2RlTWlycm9yRHJhZ1RvQWx0ZXJOdW1iZXJDb250cm9sbGVyLmNz
cy4KKyAgICAgICAgKC5Db2RlTWlycm9yLmRyYWctdG8tYWRqdXN0IC5Db2RlTWlycm9yLWxpbmVz
KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29kZU1pcnJvckRyYWdUb0FkanVzdE51bWJl
ckNvbnRyb2xsZXIuanM6IEFkZGVkLgorICAgICAgICBSZW1vdmVkIHRoZSBVSSBsb2dpYyBhbmQg
dXNlIHRoZSBuZXcgRHJhZ1RvQWRqdXN0Q29udHJvbGxlciBhcyBhIHN1cHBvcnRpbmcgb2JqZWN0
IGluc3RlYWQuIFdlIGltcGxlbWVudAorICAgICAgICB0aGUgdmFyaW91cyBEcmFnVG9BZGp1c3RD
b250cm9sbGVyIGRlbGVnYXRlIG1ldGhvZHMgaW4gb3JkZXIgdG8gY3VzdG9taXplIGl0cyBiZWhh
dmlvciB0byB3b3JrIHdpdGhpbiB0aGUKKyAgICAgICAgY29udGV4dCBvZiBhIENvZGVNaXJyb3Ig
ZWRpdG9yLCBzcGVjaWZpY2FsbHkgdG8gcHJldmVudCBhY3RpdmF0aW9uIHdoZW4gdGhlIGVkaXRv
ciBpcyByZWFkLW9ubHkgYW5kIHRvCisgICAgICAgIHByZXZlbnQgYWRqdXN0bWVudCB3aGVuIHRo
ZSBob3ZlcmVkIHRva2VuIGlzbid0IGEgbnVtYmVyLgorCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q29kZU1pcnJvckRyYWdUb0FkanVzdE51bWJlckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvZGVNaXJyb3JEcmFnVG9BZGp1c3ROdW1iZXJDb250cm9sbGVyLnByb3RvdHlwZS5n
ZXQgZW5hYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckRyYWdUb0FkanVz
dE51bWJlckNvbnRyb2xsZXIucHJvdG90eXBlLnNldCBlbmFibGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db2RlTWlycm9yRHJhZ1RvQWRqdXN0TnVtYmVyQ29udHJvbGxlci5wcm90b3R5cGUu
ZHJhZ1RvQWRqdXN0Q29udHJvbGxlckFjdGl2ZVN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29kZU1pcnJvckRyYWdUb0FkanVzdE51bWJlckNvbnRyb2xsZXIucHJvdG90eXBl
LmRyYWdUb0FkanVzdENvbnRyb2xsZXJDYW5CZUFjdGl2YXRlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29kZU1pcnJvckRyYWdUb0FkanVzdE51bWJlckNvbnRyb2xsZXIucHJvdG90eXBlLmRy
YWdUb0FkanVzdENvbnRyb2xsZXJDYW5CZUFkanVzdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db2RlTWlycm9yRHJhZ1RvQWRqdXN0TnVtYmVyQ29udHJvbGxlci5wcm90b3R5cGUuZHJhZ1Rv
QWRqdXN0Q29udHJvbGxlcldhc0FkanVzdGVkQnlBbW91bnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvZGVNaXJyb3JEcmFnVG9BZGp1c3ROdW1iZXJDb250cm9sbGVyLnByb3RvdHlwZS5kcmFn
VG9BZGp1c3RDb250cm9sbGVyRGlkUmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVN
aXJyb3JEcmFnVG9BZGp1c3ROdW1iZXJDb250cm9sbGVyLnByb3RvdHlwZS5kcmFnVG9BZGp1c3RD
b250cm9sbGVyQ2FuQWRqdXN0T2JqZWN0QXRQb2ludCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL0NvZGVNaXJyb3JHcmFkaWVudEVkaXRpbmdDb250cm9sbGVyLmNzczoKKyAgICAgICAgKC5n
cmFkaWVudC1lZGl0aW5nLWNvbnRyb2xsZXIgPiBsYWJlbC5kcmFnLXRvLWFkanVzdCA+IGlucHV0
KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29kZU1pcnJvckdyYWRpZW50RWRpdGluZ0Nv
bnRyb2xsZXIuanM6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgRHJhZ1RvQWRqdXN0Q29udHJvbGxl
ciB0byBtYWtlIHRoZSBhbmdsZSBpbnB1dCBmaWVsZCB2YWx1ZSBhZGp1c3RhYmxlIGJ5IGRyYWdn
aW5nLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckdyYWRpZW50RWRpdGluZ0Nv
bnRyb2xsZXIucHJvdG90eXBlLnBvcG92ZXJXaWxsUHJlc2VudCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29kZU1pcnJvckdyYWRpZW50RWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLmRyYWdU
b0FkanVzdENvbnRyb2xsZXJXYXNBZGp1c3RlZEJ5QW1vdW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUuX2hhbmRs
ZUlucHV0RXZlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JHcmFkaWVudEVk
aXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5fYW5nbGVJbnB1dFZhbHVlRGlkQ2hhbmdlKToKKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvRHJhZ1RvQWRqdXN0Q29udHJvbGxlci5qczogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvZGVNaXJyb3JEcmFn
VG9BbHRlck51bWJlckNvbnRyb2xsZXIuanMuCisgICAgICAgIE5ldyBEcmFnVG9BZGp1c3RDb250
cm9sbGVyIGNsYXNzIGV4cG9zaW5nIG9ubHkgdGhlIGNvcmUgVUkgbG9naWMgb2YgYSBkcmFnLXRv
LWFkanVzdCBiZWhhdmlvciBpbiB0aGUgY29udGV4dAorICAgICAgICBvZiBhIERPTSBlbGVtZW50
LCBleHBvc2luZyBhIGZldyBkZWxlZ2F0aW9uIG1ldGhvZHMgdG8gY3VzdG9taXplIHRoZSBjb250
cm9sbGVyJ3MgYmVoYXZpb3I6CisKKyAgICAgICAgLSBkcmFnVG9BZGp1c3RDb250cm9sbGVyQWN0
aXZlU3RhdGVDaGFuZ2VkKCkgbm90aWZpZXMgdGhhdCB0aGUgLmFjdGl2ZSBwcm9wZXJ0eSBoYXMg
Y2hhbmdlZCwgYWxsb3dpbmcgYnJpbmd1cAorICAgICAgICBhbmQgY2xlYW51cCB3b3JrIHRvIGJl
IHBlcmZvcm1lZC4KKworICAgICAgICAtIGRyYWdUb0FkanVzdENvbnRyb2xsZXJEaWRSZXNldCgp
IG5vdGlmaWVzIHRoYXQgdGhlIHZhcmlvdXMgdHJhY2tpbmcgc3RhdGVzIG9mIHRoZSBjb250cm9s
bGVyIGhhdmUgYmVlbiByZXNldAorICAgICAgICBhbGxvd2luZyBvdGhlciBzdGF0ZSBvYmplY3Rz
IHVzZWQgYnkgY2xpZW50cyB0byBiZSBjbGVhcmVkLgorCisgICAgICAgIC0gZHJhZ1RvQWRqdXN0
Q29udHJvbGxlckNhbkJlQWN0aXZhdGVkKCkgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBj
b250cm9sbGVyIG1heSBlbnRlciB0aGUgYWN0aXZlIHN0YXRlIHVwb24KKyAgICAgICAgZmlyc3Qg
aG92ZXJpbmcgdGhlIHRhcmdldCBlbGVtZW50LgorCisgICAgICAgIC0gZHJhZ1RvQWRqdXN0Q29u
dHJvbGxlckNhbkJlQWRqdXN0ZWQoKSBpcyB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgYWRqdXN0bWVu
dCBjYW4gYmUgcGVyZm9ybWVkIGF0IHRoZSBtb21lbnQgd2hlbgorICAgICAgICB0aGUgdXNlciBh
Y3R1YWxseSBpcyBhYm91dCB0byBlbmdhZ2UgaW4gYSBkcmFnLXRvLWFkanVzdCBpbnRlcmFjdGlv
bi4KKworICAgICAgICAtIGRyYWdUb0FkanVzdENvbnRyb2xsZXJDYW5BZGp1c3RPYmplY3RBdFBv
aW50KCkgaXMgdXNlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBvYmplY3QgYXQgdGhlIHByb3ZpZGVk
IHBvaW50IChtb3VzZQorICAgICAgICBsb2NhdGlvbikgaXMgYW4gYWRqdXN0YWJsZSB2YWx1ZS4K
KworICAgICAgICAtIGRyYWdUb0FkanVzdENvbnRyb2xsZXJXYXNBZGp1c3RlZEJ5QW1vdW50KCkg
bm90aWZpZXMgdGhhdCB0aGVyZSBpcyBhIG5ldyBhbW91bnQgdG8gYWRkIHRvIHRoZSBjdXJyZW50
IHZhbHVlCisgICAgICAgIGZvbGxvd2luZyBhIGRyYWctdG8tYWRqdXN0IGludGVyYWN0aW9uLgor
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRHJhZ1RvQWRqdXN0Q29udHJvbGxlcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRHJhZ1RvQWRqdXN0Q29udHJvbGxlci5wcm90b3R5cGUuZ2V0IGVsZW1l
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYWdUb0FkanVzdENvbnRyb2xsZXIucHJvdG90
eXBlLnNldCBlbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmFnVG9BZGp1c3RDb250
cm9sbGVyLnByb3RvdHlwZS5zZXQgZW5hYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRHJh
Z1RvQWRqdXN0Q29udHJvbGxlci5wcm90b3R5cGUuZ2V0IGFjdGl2ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRHJhZ1RvQWRqdXN0Q29udHJvbGxlci5wcm90b3R5cGUuc2V0IGFjdGl2ZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRHJhZ1RvQWRqdXN0Q29udHJvbGxlci5wcm90b3R5cGUucmVz
ZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYWdUb0FkanVzdENvbnRyb2xsZXIucHJvdG90
eXBlLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmFnVG9BZGp1c3RDb250
cm9sbGVyLnByb3RvdHlwZS5fc2V0RHJhZ2dpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRy
YWdUb0FkanVzdENvbnRyb2xsZXIucHJvdG90eXBlLl9zZXRUcmFja3NNb3VzZUNsaWNrQW5kRHJh
Zyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRHJhZ1RvQWRqdXN0Q29udHJvbGxlci5wcm90b3R5
cGUuX21vZGlmaWVyc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRHJhZ1RvQWRq
dXN0Q29udHJvbGxlci5wcm90b3R5cGUuX21vdXNlTW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRyYWdUb0FkanVzdENvbnRyb2xsZXIucHJvdG90eXBlLl9tb3VzZVdhc1ByZXNzZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYWdUb0FkanVzdENvbnRyb2xsZXIucHJvdG90eXBlLl9t
b3VzZVdhc0RyYWdnZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYWdUb0FkanVzdENvbnRy
b2xsZXIucHJvdG90eXBlLl9tb3VzZVdhc1JlbGVhc2VkKToKKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvTWFpbi5odG1sOgorICAgICAgICBMaW5rIGluIG5ldyBzb3VyY2UgZmlsZXMuCisKIDIw
MTQtMDItMjAgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogcmljaCBlZGl0aW5nIG9mIENTUyBncmFkaWVudHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvZGVNaXJyb3JEcmFnVG9BZGp1
c3ROdW1iZXJDb250cm9sbGVyLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvZGVNaXJyb3JEcmFnVG9BZGp1c3ROdW1iZXJDb250cm9sbGVyLmNzcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNjdkNmIzNjFmMzRmM2Y0NmUzNzA3NDVmMjcwZDQ3ODYxOGRiNzFlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29kZU1pcnJvckRyYWdU
b0FkanVzdE51bWJlckNvbnRyb2xsZXIuY3NzCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisuQ29kZU1pcnJvci5kcmFnLXRvLWFkanVzdCAuQ29kZU1pcnJvci1saW5lcyB7CisgICAgY3Vy
c29yOiBjb2wtcmVzaXplOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29kZU1pcnJvckRyYWdUb0FkanVzdE51bWJlckNvbnRyb2xsZXIuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2RlTWlycm9yRHJhZ1RvQWRqdXN0
TnVtYmVyQ29udHJvbGxlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjljZTI1MmUzNGE2YmQyMzgxNDhlMmE4
NDcwYmVmYTNkYjM5ZTVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29kZU1pcnJvckRyYWdUb0FkanVzdE51bWJlckNvbnRyb2xsZXIuanMK
QEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckRy
YWdUb0FkanVzdE51bWJlckNvbnRyb2xsZXIgPSBmdW5jdGlvbihjb2RlTWlycm9yKQoreworICAg
IHRoaXMuX2NvZGVNaXJyb3IgPSBjb2RlTWlycm9yOworCisgICAgdGhpcy5fZHJhZ1RvQWRqdXN0
Q29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuRHJhZ1RvQWRqdXN0Q29udHJvbGxlcih0aGlz
KTsKK307CisKK1dlYkluc3BlY3Rvci5Db2RlTWlycm9yRHJhZ1RvQWRqdXN0TnVtYmVyQ29udHJv
bGxlci5wcm90b3R5cGUgPSB7CisgICAgY29uc3RydWN0b3I6IFdlYkluc3BlY3Rvci5Db2RlTWly
cm9yRHJhZ1RvQWRqdXN0TnVtYmVyQ29udHJvbGxlciwKKworICAgIC8vIFB1YmxpYworCisgICAg
Z2V0IGVuYWJsZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2RyYWdUb0FkanVzdENv
bnRyb2xsZXIuZW5hYmxlZDsKKyAgICB9LAorCisgICAgc2V0IGVuYWJsZWQoZW5hYmxlZCkKKyAg
ICB7CisgICAgICAgIGlmICh0aGlzLmVuYWJsZWQgPT09IGVuYWJsZWQpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIAorICAgICAgICB0aGlzLl9kcmFnVG9BZGp1c3RDb250cm9sbGVyLmVs
ZW1lbnQgPSB0aGlzLl9jb2RlTWlycm9yLmdldFdyYXBwZXJFbGVtZW50KCk7CisgICAgICAgIHRo
aXMuX2RyYWdUb0FkanVzdENvbnRyb2xsZXIuZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgfSwKKwor
ICAgIC8vIFByb3RlY3RlZAorCisgICAgZHJhZ1RvQWRqdXN0Q29udHJvbGxlckFjdGl2ZVN0YXRl
Q2hhbmdlZDogZnVuY3Rpb24oZHJhZ1RvQWRqdXN0Q29udHJvbGxlcikKKyAgICB7CisgICAgICAg
IGlmICghZHJhZ1RvQWRqdXN0Q29udHJvbGxlci5hY3RpdmUpCisgICAgICAgICAgICB0aGlzLl9o
b3ZlcmVkVG9rZW5JbmZvID0gbnVsbDsKKyAgICB9LAorCisgICAgZHJhZ1RvQWRqdXN0Q29udHJv
bGxlckNhbkJlQWN0aXZhdGVkOiBmdW5jdGlvbihkcmFnVG9BZGp1c3RDb250cm9sbGVyKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICF0aGlzLl9jb2RlTWlycm9yLmdldE9wdGlvbigicmVhZE9ubHki
KTsKKyAgICB9LAorCisgICAgZHJhZ1RvQWRqdXN0Q29udHJvbGxlckNhbkJlQWRqdXN0ZWQ6IGZ1
bmN0aW9uKGRyYWdUb0FkanVzdENvbnRyb2xsZXIpCisgICAgeworCisgICAgICAgIHJldHVybiB0
aGlzLl9ob3ZlcmVkVG9rZW5JbmZvICYmIHRoaXMuX2hvdmVyZWRUb2tlbkluZm8uY29udGFpbnNO
dW1iZXI7CisgICAgfSwKKworICAgIGRyYWdUb0FkanVzdENvbnRyb2xsZXJXYXNBZGp1c3RlZEJ5
QW1vdW50OiBmdW5jdGlvbihkcmFnVG9BZGp1c3RDb250cm9sbGVyLCBhbW91bnQpCisgICAgewor
ICAgICAgICB0aGlzLl9jb2RlTWlycm9yLmFsdGVyTnVtYmVySW5SYW5nZShhbW91bnQsIHRoaXMu
X2hvdmVyZWRUb2tlbkluZm8uc3RhcnRQb3NpdGlvbiwgdGhpcy5faG92ZXJlZFRva2VuSW5mby5l
bmRQb3NpdGlvbiwgZmFsc2UpOworICAgIH0sCisKKyAgICBkcmFnVG9BZGp1c3RDb250cm9sbGVy
RGlkUmVzZXQ6IGZ1bmN0aW9uKGRyYWdUb0FkanVzdENvbnRyb2xsZXIpCisgICAgeworICAgICAg
ICB0aGlzLl9ob3ZlcmVkVG9rZW5JbmZvID0gbnVsbDsKKyAgICB9LAorCisgICAgZHJhZ1RvQWRq
dXN0Q29udHJvbGxlckNhbkFkanVzdE9iamVjdEF0UG9pbnQ6IGZ1bmN0aW9uKGRyYWdUb0FkanVz
dENvbnRyb2xsZXIsIHBvaW50KQorICAgIHsKKyAgICAgICAgdmFyIHBvc2l0aW9uID0gdGhpcy5f
Y29kZU1pcnJvci5jb29yZHNDaGFyKHtsZWZ0OiBwb2ludC54LCB0b3A6IHBvaW50Lnl9KTsKKyAg
ICAgICAgdmFyIHRva2VuID0gdGhpcy5fY29kZU1pcnJvci5nZXRUb2tlbkF0KHBvc2l0aW9uKTsK
KworICAgICAgICBpZiAoIXRva2VuIHx8ICF0b2tlbi50eXBlIHx8ICF0b2tlbi5zdHJpbmcpIHsK
KyAgICAgICAgICAgIGlmICh0aGlzLl9ob3ZlcmVkVG9rZW5JbmZvKQorICAgICAgICAgICAgICAg
IGRyYWdUb0FkanVzdENvbnRyb2xsZXIucmVzZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0b3AgcmlnaHQgaGVyZSBpZiB3ZSdyZSBob3Zl
cmluZyB0aGUgc2FtZSB0b2tlbiBhcyB3ZSB3ZXJlIGxhc3QgdGltZS4KKyAgICAgICAgaWYgKHRo
aXMuX2hvdmVyZWRUb2tlbkluZm8gJiYgdGhpcy5faG92ZXJlZFRva2VuSW5mby5saW5lID09PSBw
b3NpdGlvbi5saW5lICYmCisgICAgICAgICAgICB0aGlzLl9ob3ZlcmVkVG9rZW5JbmZvLnRva2Vu
LnN0YXJ0ID09PSB0b2tlbi5zdGFydCAmJiB0aGlzLl9ob3ZlcmVkVG9rZW5JbmZvLnRva2VuLmVu
ZCA9PT0gdG9rZW4uZW5kKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2hvdmVyZWRUb2tlbklu
Zm8udG9rZW4udHlwZS5pbmRleE9mKCJudW1iZXIiKSAhPT0gLTE7CisKKyAgICAgICAgdmFyIGNv
bnRhaW5zTnVtYmVyID0gdG9rZW4udHlwZS5pbmRleE9mKCJudW1iZXIiKSAhPT0gLTE7CisgICAg
ICAgIHRoaXMuX2hvdmVyZWRUb2tlbkluZm8gPSB7CisgICAgICAgICAgICB0b2tlbjogdG9rZW4s
CisgICAgICAgICAgICBsaW5lOiBwb3NpdGlvbi5saW5lLAorICAgICAgICAgICAgY29udGFpbnNO
dW1iZXI6IGNvbnRhaW5zTnVtYmVyLAorICAgICAgICAgICAgc3RhcnRQb3NpdGlvbjogeworICAg
ICAgICAgICAgICAgIGNoOiB0b2tlbi5zdGFydCwKKyAgICAgICAgICAgICAgICBsaW5lOiBwb3Np
dGlvbi5saW5lCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZW5kUG9zaXRpb246IHsKKyAg
ICAgICAgICAgICAgICBjaDogdG9rZW4uZW5kLAorICAgICAgICAgICAgICAgIGxpbmU6IHBvc2l0
aW9uLmxpbmUKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHJl
dHVybiBjb250YWluc051bWJlcjsKKyAgICB9Cit9OworCitDb2RlTWlycm9yLmRlZmluZU9wdGlv
bigiZHJhZ1RvQWRqdXN0TnVtYmVycyIsIHRydWUsIGZ1bmN0aW9uKGNvZGVNaXJyb3IsIHZhbHVl
LCBvbGRWYWx1ZSkgeworICAgIGlmICghY29kZU1pcnJvci5kcmFnVG9BZGp1c3ROdW1iZXJDb250
cm9sbGVyKQorICAgICAgICBjb2RlTWlycm9yLmRyYWdUb0FkanVzdE51bWJlckNvbnRyb2xsZXIg
PSBuZXcgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JEcmFnVG9BZGp1c3ROdW1iZXJDb250cm9sbGVy
KGNvZGVNaXJyb3IpOworICAgIGNvZGVNaXJyb3IuZHJhZ1RvQWRqdXN0TnVtYmVyQ29udHJvbGxl
ci5lbmFibGVkID0gdmFsdWU7Cit9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvZGVNaXJyb3JEcmFnVG9BbHRlck51bWJlckNvbnRyb2xsZXIuY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29kZU1pcnJvckRyYWdUb0Fs
dGVyTnVtYmVyQ29udHJvbGxlci5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2
N2Q2YjM2MWYzNGYzZjQ2ZTM3MDc0NWYyNzBkNDc4NjE4ZGI3MWUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29kZU1pcnJvckRyYWdUb0FsdGVyTnVtYmVyQ29udHJvbGxlci5jc3MKKysrIC9k
ZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLkNvZGVNaXJyb3IuZHJhZy10
by1hZGp1c3QgLkNvZGVNaXJyb3ItbGluZXMgewotICAgIGN1cnNvcjogY29sLXJlc2l6ZTsKLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvZGVNaXJy
b3JEcmFnVG9BbHRlck51bWJlckNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db2RlTWlycm9yRHJhZ1RvQWx0ZXJOdW1iZXJDb250cm9sbGVyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmEwMDk1ZmFhYzY2NTdjNGQ3N2M3NGE4NjFl
MTVjY2Y2MjE3ZjRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvZGVNaXJyb3JEcmFnVG9B
bHRlck51bWJlckNvbnRyb2xsZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMzQgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLVdlYkluc3BlY3Rvci5Db2RlTWlycm9yRHJhZ1RvQWx0ZXJOdW1iZXJDb250
cm9sbGVyID0gZnVuY3Rpb24oY29kZU1pcnJvcikKLXsKLSAgICB0aGlzLl9jb2RlTWlycm9yID0g
Y29kZU1pcnJvcjsKLSAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTsKLSAgICB0aGlzLl9kcmFnZ2lu
ZyA9IGZhbHNlOwotICAgIHRoaXMuX2VuYWJsZWQgPSBmYWxzZTsKLSAgICB0aGlzLl90cmFja3NN
b3VzZUNsaWNrQW5kRHJhZyA9IGZhbHNlOwotfTsKLQotV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JE
cmFnVG9BbHRlck51bWJlckNvbnRyb2xsZXIuU3R5bGVDbGFzc05hbWUgPSAiZHJhZy10by1hZGp1
c3QiOwotCi1XZWJJbnNwZWN0b3IuQ29kZU1pcnJvckRyYWdUb0FsdGVyTnVtYmVyQ29udHJvbGxl
ci5wcm90b3R5cGUgPSB7Ci0gICAgY29uc3RydWN0b3I6IFdlYkluc3BlY3Rvci5Db2RlTWlycm9y
RHJhZ1RvQWx0ZXJOdW1iZXJDb250cm9sbGVyLAotCi0gICAgLy8gUHVibGljCi0KLSAgICBzZXQg
ZW5hYmxlZChlbmFibGVkKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2VuYWJsZWQgPT09IGVu
YWJsZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fZWxlbWVudCA9IHRo
aXMuX2NvZGVNaXJyb3IuZ2V0V3JhcHBlckVsZW1lbnQoKTsKLQotICAgICAgICBpZiAoZW5hYmxl
ZCkgewotICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVu
dGVyIiwgdGhpcyk7Ci0gICAgICAgICAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
Im1vdXNlbGVhdmUiLCB0aGlzKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMu
X2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIHRoaXMpOwotICAgICAg
ICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhp
cyk7Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAgLy8gUHJvdGVjdGVkCi0KLSAgICBoYW5kbGVF
dmVudDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICBzd2l0Y2goZXZlbnQudHlwZSkg
ewotICAgICAgICBjYXNlICJtb3VzZWVudGVyIjoKLSAgICAgICAgICAgIGlmICghdGhpcy5fZHJh
Z2dpbmcpCi0gICAgICAgICAgICAgICAgdGhpcy5fc2V0QWN0aXZlKHRydWUpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIm1vdXNlbGVhdmUiOgotICAgICAgICAgICAgaWYgKCF0
aGlzLl9kcmFnZ2luZykKLSAgICAgICAgICAgICAgICB0aGlzLl9zZXRBY3RpdmUoZmFsc2UpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIm1vdXNlbW92ZSI6Ci0gICAgICAgICAg
ICBpZiAodGhpcy5fZHJhZ2dpbmcpCi0gICAgICAgICAgICAgICAgdGhpcy5fbW91c2VXYXNEcmFn
Z2VkKGV2ZW50KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0aGlzLl9tb3Vz
ZU1vdmVkKGV2ZW50KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJtb3VzZWRv
d24iOgotICAgICAgICAgICAgdGhpcy5fbW91c2VXYXNQcmVzc2VkKGV2ZW50KTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlICJtb3VzZXVwIjoKLSAgICAgICAgICAgIHRoaXMuX21v
dXNlV2FzUmVsZWFzZWQoZXZlbnQpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
ImNvbnRleHRtZW51IjoKLSAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICAvLyBQcml2YXRlCi0KLSAg
ICBfc2V0QWN0aXZlOiBmdW5jdGlvbihhY3RpdmUpCi0gICAgewotICAgICAgICBpZiAodGhpcy5f
YWN0aXZlID09PSBhY3RpdmUgfHwgdGhpcy5fY29kZU1pcnJvci5nZXRPcHRpb24oInJlYWRPbmx5
IikpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGFjdGl2ZSkgewotICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLm5vdGlmaWNhdGlvbnMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuTm90aWZpY2F0aW9uLkdsb2JhbE1vZGlmaWVyS2V5c0RpZENoYW5nZSwgdGhpcy5fbW9k
aWZpZXJzRGlkQ2hhbmdlLCB0aGlzKTsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBXZWJJbnNwZWN0b3Iubm90aWZpY2F0aW9ucy5yZW1vdmVFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5Ob3RpZmljYXRpb24uR2xvYmFsTW9kaWZpZXJLZXlzRGlkQ2hhbmdlLCB0aGlzLl9t
b2RpZmllcnNEaWRDaGFuZ2UsIHRoaXMpOwotICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5yZW1v
dmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzKTsKLSAgICAgICAgICAgIHRoaXMuX2hv
dmVyZWRUb2tlbkluZm8gPSBudWxsOwotICAgICAgICAgICAgdGhpcy5fc2V0VHJhY2tzTW91c2VD
bGlja0FuZERyYWcoZmFsc2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fYWN0aXZlID0g
YWN0aXZlOwotICAgIH0sCi0KLSAgICBfc2V0RHJhZ2dpbmc6IGZ1bmN0aW9uKGRyYWdnaW5nKQot
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2RyYWdnaW5nID09PSBkcmFnZ2luZykKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHdpbmRvdy5ldmVu
dCk7Ci0gICAgICAgIGlmIChkcmFnZ2luZykKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5lbGVt
ZW50RHJhZ1N0YXJ0KHRoaXMuX2VsZW1lbnQsIHRoaXMsIHRoaXMsIHdpbmRvdy5ldmVudCwgImNv
bC1yZXNpemUiLCB3aW5kb3cpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZWxlbWVudERyYWdFbmQod2luZG93LmV2ZW50KTsKLQotICAgICAgICB0aGlzLl9kcmFnZ2lu
ZyA9IGRyYWdnaW5nOwotICAgIH0sCi0KLSAgICBfc2V0VHJhY2tzTW91c2VDbGlja0FuZERyYWc6
IGZ1bmN0aW9uKHRyYWNrc01vdXNlQ2xpY2tBbmREcmFnKQotICAgIHsKLSAgICAgICAgaWYgKHRo
aXMuX3RyYWNrc01vdXNlQ2xpY2tBbmREcmFnID09PSB0cmFja3NNb3VzZUNsaWNrQW5kRHJhZykK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIGlmICh0cmFja3NNb3VzZUNs
aWNrQW5kRHJhZykgewotICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdl
Ykluc3BlY3Rvci5Db2RlTWlycm9yRHJhZ1RvQWx0ZXJOdW1iZXJDb250cm9sbGVyLlN0eWxlQ2xh
c3NOYW1lKTsKLSAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24i
LCB0aGlzLCB0cnVlKTsKLSAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjb250
ZXh0bWVudSIsIHRoaXMsIHRydWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhp
cy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yRHJhZ1Rv
QWx0ZXJOdW1iZXJDb250cm9sbGVyLlN0eWxlQ2xhc3NOYW1lKTsKLSAgICAgICAgICAgIHdpbmRv
dy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLCB0cnVlKTsKLSAgICAgICAg
ICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMsIHRydWUp
OwotICAgICAgICAgICAgdGhpcy5fc2V0RHJhZ2dpbmcoZmFsc2UpOwotICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICB0aGlzLl90cmFja3NNb3VzZUNsaWNrQW5kRHJhZyA9IHRyYWNrc01vdXNl
Q2xpY2tBbmREcmFnOwotICAgIH0sCi0KLSAgICBfbW9kaWZpZXJzRGlkQ2hhbmdlOiBmdW5jdGlv
bihldmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3NldFRyYWNrc01vdXNlQ2xpY2tBbmREcmFn
KHRoaXMuX2hvdmVyZWRUb2tlbkluZm8gJiYgdGhpcy5faG92ZXJlZFRva2VuSW5mby5jb250YWlu
c051bWJlciAmJiBXZWJJbnNwZWN0b3IubW9kaWZpZXJLZXlzLmFsdEtleSk7Ci0gICAgfSwKLSAg
ICAKLSAgICBfbW91c2VNb3ZlZDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB2YXIg
cG9zaXRpb24gPSB0aGlzLl9jb2RlTWlycm9yLmNvb3Jkc0NoYXIoe2xlZnQ6IGV2ZW50LnBhZ2VY
LCB0b3A6IGV2ZW50LnBhZ2VZfSk7Ci0gICAgICAgIHZhciB0b2tlbiA9IHRoaXMuX2NvZGVNaXJy
b3IuZ2V0VG9rZW5BdChwb3NpdGlvbik7Ci0KLSAgICAgICAgaWYgKCF0b2tlbiB8fCAhdG9rZW4u
dHlwZSB8fCAhdG9rZW4uc3RyaW5nKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5faG92ZXJlZFRv
a2VuSW5mbykKLSAgICAgICAgICAgICAgICB0aGlzLl9yZXNldCgpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gU3RvcCByaWdodCBoZXJlIGlmIHdlJ3JlIGhv
dmVyaW5nIHRoZSBzYW1lIHRva2VuIGFzIHdlIHdlcmUgbGFzdCB0aW1lLgotICAgICAgICBpZiAo
dGhpcy5faG92ZXJlZFRva2VuSW5mbyAmJiB0aGlzLl9ob3ZlcmVkVG9rZW5JbmZvLmxpbmUgPT09
IHBvc2l0aW9uLmxpbmUgJiYKLSAgICAgICAgICAgIHRoaXMuX2hvdmVyZWRUb2tlbkluZm8udG9r
ZW4uc3RhcnQgPT09IHRva2VuLnN0YXJ0ICYmIHRoaXMuX2hvdmVyZWRUb2tlbkluZm8udG9rZW4u
ZW5kID09PSB0b2tlbi5lbmQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIGNv
bnRhaW5zTnVtYmVyID0gdG9rZW4udHlwZS5pbmRleE9mKCJudW1iZXIiKSAhPT0gLTE7Ci0gICAg
ICAgIHRoaXMuX2hvdmVyZWRUb2tlbkluZm8gPSB7Ci0gICAgICAgICAgICB0b2tlbjogdG9rZW4s
Ci0gICAgICAgICAgICBsaW5lOiBwb3NpdGlvbi5saW5lLAotICAgICAgICAgICAgY29udGFpbnNO
dW1iZXI6IGNvbnRhaW5zTnVtYmVyLAotICAgICAgICAgICAgc3RhcnRQb3NpdGlvbjogewotICAg
ICAgICAgICAgICAgIGNoOiB0b2tlbi5zdGFydCwKLSAgICAgICAgICAgICAgICBsaW5lOiBwb3Np
dGlvbi5saW5lCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZW5kUG9zaXRpb246IHsKLSAg
ICAgICAgICAgICAgICBjaDogdG9rZW4uZW5kLAotICAgICAgICAgICAgICAgIGxpbmU6IHBvc2l0
aW9uLmxpbmUKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICB0aGlzLl9zZXRU
cmFja3NNb3VzZUNsaWNrQW5kRHJhZyhjb250YWluc051bWJlciAmJiBldmVudC5hbHRLZXkpOwot
ICAgIH0sCi0gICAgCi0gICAgX21vdXNlV2FzUHJlc3NlZDogZnVuY3Rpb24oZXZlbnQpCi0gICAg
ewotICAgICAgICB0aGlzLl9sYXN0WCA9IGV2ZW50LnNjcmVlblg7Ci0KLSAgICAgICAgdGhpcy5f
c2V0RHJhZ2dpbmcodHJ1ZSk7Ci0KLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAg
ICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgfSwKLQotICAgIF9tb3VzZVdhc0Ry
YWdnZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFyIHggPSBldmVudC5zY3Jl
ZW5YOwotICAgICAgICB2YXIgYW1vdW50ID0geCAtIHRoaXMuX2xhc3RYOwotCi0gICAgICAgIGlm
IChNYXRoLmFicyhhbW91bnQpIDwgMSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0
aGlzLl9sYXN0WCA9IHg7Ci0KLSAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpCi0gICAgICAgICAg
ICBhbW91bnQgLz0gMTA7Ci0gICAgICAgIGVsc2UgaWYgKGV2ZW50LnNoaWZ0S2V5KQotICAgICAg
ICAgICAgYW1vdW50ICo9IDEwOwotCi0gICAgICAgIHRoaXMuX2NvZGVNaXJyb3IuYWx0ZXJOdW1i
ZXJJblJhbmdlKGFtb3VudCwgdGhpcy5faG92ZXJlZFRva2VuSW5mby5zdGFydFBvc2l0aW9uLCB0
aGlzLl9ob3ZlcmVkVG9rZW5JbmZvLmVuZFBvc2l0aW9uLCBmYWxzZSk7Ci0KLSAgICAgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0g
ICAgfSwKLQotICAgIF9tb3VzZVdhc1JlbGVhc2VkOiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX3NldERyYWdnaW5nKGZhbHNlKTsKLQotICAgICAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOwotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLQotICAgICAgICB0
aGlzLl9yZXNldCgpOwotICAgIH0sCi0gICAgCi0gICAgX3Jlc2V0OiBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICB0aGlzLl9ob3ZlcmVkVG9rZW5JbmZvID0gbnVsbDsKLSAgICAgICAgdGhpcy5f
c2V0VHJhY2tzTW91c2VDbGlja0FuZERyYWcoZmFsc2UpOwotICAgICAgICB0aGlzLl9lbGVtZW50
LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JEcmFnVG9BbHRlck51bWJl
ckNvbnRyb2xsZXIuU3R5bGVDbGFzc05hbWUpOwotICAgIH0KLX07Ci0KLUNvZGVNaXJyb3IuZGVm
aW5lT3B0aW9uKCJkcmFnVG9BZGp1c3ROdW1iZXJzIiwgdHJ1ZSwgZnVuY3Rpb24oY29kZU1pcnJv
ciwgdmFsdWUsIG9sZFZhbHVlKSB7Ci0gICAgaWYgKCFjb2RlTWlycm9yLmRyYWdUb0FsdGVyTnVt
YmVyQ29udHJvbGxlcikKLSAgICAgICAgY29kZU1pcnJvci5kcmFnVG9BbHRlck51bWJlckNvbnRy
b2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JEcmFnVG9BbHRlck51bWJlckNvbnRy
b2xsZXIoY29kZU1pcnJvcik7Ci0gICAgY29kZU1pcnJvci5kcmFnVG9BbHRlck51bWJlckNvbnRy
b2xsZXIuZW5hYmxlZCA9IHZhbHVlOwotfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29udHJvbGxlci5j
c3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2RlTWlycm9yR3JhZGll
bnRFZGl0aW5nQ29udHJvbGxlci5jc3MKaW5kZXggNmYwNjUxZjA3MmQ2Yjc5MGU1NWMxN2Q0YmM3
ZGVjYzQwNzA2NjI3Yi4uZGMyNDZjZmEwMDkwNzQ4MjQxYWM1ZDU1NWQzYzA1NTRkOTJkNjkyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29kZU1pcnJv
ckdyYWRpZW50RWRpdGluZ0NvbnRyb2xsZXIuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvZGVNaXJyb3JHcmFkaWVudEVkaXRpbmdDb250cm9sbGVyLmNzcwpA
QCAtMTEyLDMgKzExMiw4IEBACiAgICAgZm9udC1zaXplOiAxM3B4OwogICAgIHRleHQtYWxpZ246
IHJpZ2h0OwogfQorCisuZ3JhZGllbnQtZWRpdGluZy1jb250cm9sbGVyID4gbGFiZWwuZHJhZy10
by1hZGp1c3QsCisuZ3JhZGllbnQtZWRpdGluZy1jb250cm9sbGVyID4gbGFiZWwuZHJhZy10by1h
ZGp1c3QgPiBpbnB1dCB7CisgICAgY3Vyc29yOiBjb2wtcmVzaXplOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29kZU1pcnJvckdyYWRpZW50RWRp
dGluZ0NvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29udHJvbGxlci5qcwppbmRleCA0NWIxMDY2MWFiMzU4
MzUxZjI5YzllYzk5NGMwMTVkOTkwODlkYTczLi42MmIwNDA0YTM5NTFlOTAyMmY3YTE5ZWFiMWJk
ZDhjNWI1ZGFhZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29u
dHJvbGxlci5qcwpAQCAtMTE0LDYgKzExNCwxMCBAQCBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckdy
YWRpZW50RWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9hbmds
ZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgdGhpcyk7CiAgICAgICAgIGFuZ2xlTGFi
ZWwuYXBwZW5kQ2hpbGQodGhpcy5fYW5nbGVJbnB1dCk7CiAKKyAgICAgICAgdmFyIGRyYWdUb0Fk
anVzdENvbnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRyYWdUb0FkanVzdENvbnRyb2xsZXIo
dGhpcyk7CisgICAgICAgIGRyYWdUb0FkanVzdENvbnRyb2xsZXIuZWxlbWVudCA9IGFuZ2xlTGFi
ZWw7CisgICAgICAgIGRyYWdUb0FkanVzdENvbnRyb2xsZXIuZW5hYmxlZCA9IHRydWU7CisKICAg
ICAgICAgdGhpcy5fdXBkYXRlQ1NTQ2xhc3NGb3JHcmFkaWVudFR5cGUoKTsKIAogICAgICAgICBw
b3BvdmVyLmNvbnRlbnQgPSB0aGlzLl9jb250YWluZXI7CkBAIC0xNjMsNiArMTY3LDE2IEBAIFdl
Ykluc3BlY3Rvci5Db2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGUoKTsKICAgICB9LAogCisgICAgZHJhZ1Rv
QWRqdXN0Q29udHJvbGxlcldhc0FkanVzdGVkQnlBbW91bnQ6IGZ1bmN0aW9uKGRyYWdUb0FkanVz
dENvbnRyb2xsZXIsIGFtb3VudCkKKyAgICB7CisgICAgICAgIHZhciBhbmdsZSA9IHBhcnNlRmxv
YXQodGhpcy5fYW5nbGVJbnB1dC52YWx1ZSkgKyBhbW91bnQ7CisgICAgICAgIGlmIChNYXRoLnJv
dW5kKGFuZ2xlKSAhPT0gYW5nbGUpCisgICAgICAgICAgICBhbmdsZSA9IGFuZ2xlLnRvRml4ZWQo
MSk7CisKKyAgICAgICAgdGhpcy5fYW5nbGVJbnB1dC52YWx1ZSA9IGFuZ2xlOworICAgICAgICB0
aGlzLl9hbmdsZUlucHV0VmFsdWVEaWRDaGFuZ2UoYW5nbGUpOworICAgIH0sCisKICAgICAvLyBQ
cml2YXRlCiAKICAgICBfaGFuZGxlSW5wdXRFdmVudDogZnVuY3Rpb24oZXZlbnQpCkBAIC0xNzEs
NiArMTg1LDExIEBAIFdlYkluc3BlY3Rvci5Db2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29udHJv
bGxlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChpc05hTihhbmdsZSkpCiAgICAgICAgICAg
ICByZXR1cm47CiAKKyAgICAgICAgdGhpcy5fYW5nbGVJbnB1dFZhbHVlRGlkQ2hhbmdlKGFuZ2xl
KTsKKyAgICB9LAorCisgICAgX2FuZ2xlSW5wdXRWYWx1ZURpZENoYW5nZTogZnVuY3Rpb24oYW5n
bGUpCisgICAgewogICAgICAgICB0aGlzLnZhbHVlLmFuZ2xlID0gYW5nbGU7CiAgICAgICAgIHRo
aXMudGV4dCA9IHRoaXMudmFsdWUudG9TdHJpbmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRHJhZ1RvQWRqdXN0Q29udHJvbGxlci5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RyYWdUb0FkanVzdENvbnRyb2xsZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzM5NmM5OGJkMGFmZDA0ZjI0YjM2YzMyMmQ5MTljODViZjZkNzJjMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Ry
YWdUb0FkanVzdENvbnRyb2xsZXIuanMKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQW50b2luZSBRdWludAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuRHJhZ1Rv
QWRqdXN0Q29udHJvbGxlciA9IGZ1bmN0aW9uKGRlbGVnYXRlKQoreworICAgIHRoaXMuX2RlbGVn
YXRlID0gZGVsZWdhdGU7CisKKyAgICB0aGlzLl9lbGVtZW50ID0gbnVsbDsKKyAgICB0aGlzLl9h
Y3RpdmUgPSBmYWxzZTsKKyAgICB0aGlzLl9lbmFibGVkID0gZmFsc2U7CisgICAgdGhpcy5fZHJh
Z2dpbmcgPSBmYWxzZTsKKyAgICB0aGlzLl90cmFja3NNb3VzZUNsaWNrQW5kRHJhZyA9IGZhbHNl
OworfTsKKworV2ViSW5zcGVjdG9yLkRyYWdUb0FkanVzdENvbnRyb2xsZXIuU3R5bGVDbGFzc05h
bWUgPSAiZHJhZy10by1hZGp1c3QiOworCitXZWJJbnNwZWN0b3IuRHJhZ1RvQWRqdXN0Q29udHJv
bGxlci5wcm90b3R5cGUgPSB7CisgICAgY29uc3RydWN0b3I6IFdlYkluc3BlY3Rvci5EcmFnVG9B
ZGp1c3RDb250cm9sbGVyLAorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgZWxlbWVudCgpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKKyAgICB9LAorCisgICAgc2V0IGVs
ZW1lbnQoZWxlbWVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50Owor
ICAgIH0sCisKKyAgICBzZXQgZW5hYmxlZChlbmFibGVkKQorICAgIHsKKyAgICAgICAgaWYgKHRo
aXMuX2VuYWJsZWQgPT09IGVuYWJsZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aWYgKGVuYWJsZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigibW91c2VlbnRlciIsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICB0aGlzLl9lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCB0aGlz
KTsKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vs
ZWF2ZSIsIHRoaXMpOworICAgICAgICB9CisgICAgfSwKKworICAgIGdldCBhY3RpdmUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTsKKyAgICB9LAorCisgICAgc2V0IGFjdGl2
ZShhY3RpdmUpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2VsZW1lbnQpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIAorICAgICAgICBpZiAodGhpcy5fYWN0aXZlID09PSBhY3RpdmUp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGFjdGl2ZSkgeworICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLm5vdGlmaWNhdGlvbnMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTm90aWZpY2F0aW9uLkdsb2JhbE1vZGlmaWVyS2V5c0RpZENoYW5nZSwgdGhpcy5fbW9kaWZp
ZXJzRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3Iubm90aWZpY2F0aW9ucy5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5Ob3RpZmljYXRpb24uR2xvYmFsTW9kaWZpZXJLZXlzRGlkQ2hhbmdlLCB0aGlzLl9tb2Rp
ZmllcnNEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmVF
dmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX3NldFRy
YWNrc01vdXNlQ2xpY2tBbmREcmFnKGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMu
X2FjdGl2ZSA9IGFjdGl2ZTsKKworICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9m
IHRoaXMuX2RlbGVnYXRlLmRyYWdUb0FkanVzdENvbnRyb2xsZXJBY3RpdmVTdGF0ZUNoYW5nZWQg
PT09ICJmdW5jdGlvbiIpCisgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5kcmFnVG9BZGp1c3RD
b250cm9sbGVyQWN0aXZlU3RhdGVDaGFuZ2VkKHRoaXMpOworICAgIH0sCisKKyAgICByZXNldDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2V0VHJhY2tzTW91c2VDbGlja0FuZERy
YWcoZmFsc2UpOworICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoV2ViSW5z
cGVjdG9yLkRyYWdUb0FkanVzdENvbnRyb2xsZXIuU3R5bGVDbGFzc05hbWUpOworCisgICAgICAg
IGlmICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZHJhZ1RvQWRqdXN0
Q29udHJvbGxlckRpZFJlc2V0ID09PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAgdGhpcy5fZGVs
ZWdhdGUuZHJhZ1RvQWRqdXN0Q29udHJvbGxlckRpZFJlc2V0KHRoaXMpOworICAgIH0sCisKKyAg
ICAvLyBQcm90ZWN0ZWQKKworICAgIGhhbmRsZUV2ZW50OiBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIHN3aXRjaChldmVudC50eXBlKSB7CisgICAgICAgIGNhc2UgIm1vdXNlZW50ZXIi
OgorICAgICAgICAgICAgaWYgKCF0aGlzLl9kcmFnZ2luZykgeworICAgICAgICAgICAgICAgIGlm
ICh0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZHJhZ1RvQWRqdXN0Q29u
dHJvbGxlckNhbkJlQWN0aXZhdGVkID09PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAgICAgICAg
ICB0aGlzLmFjdGl2ZSA9IHRoaXMuX2RlbGVnYXRlLmRyYWdUb0FkanVzdENvbnRyb2xsZXJDYW5C
ZUFjdGl2YXRlZCh0aGlzKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlICJtb3VzZWxlYXZlIjoKKyAgICAgICAgICAgIGlmICghdGhpcy5fZHJh
Z2dpbmcpCisgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlICJtb3VzZW1vdmUiOgorICAgICAgICAgICAgaWYgKHRoaXMu
X2RyYWdnaW5nKQorICAgICAgICAgICAgICAgIHRoaXMuX21vdXNlV2FzRHJhZ2dlZChldmVudCk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGhpcy5fbW91c2VNb3ZlZChldmVu
dCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKKyAgICAg
ICAgICAgIHRoaXMuX21vdXNlV2FzUHJlc3NlZChldmVudCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAibW91c2V1cCI6CisgICAgICAgICAgICB0aGlzLl9tb3VzZVdhc1JlbGVh
c2VkKGV2ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJjb250ZXh0bWVu
dSI6CisgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3NldERyYWdn
aW5nOiBmdW5jdGlvbihkcmFnZ2luZykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9kcmFnZ2lu
ZyA9PT0gZHJhZ2dpbmcpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBj
b25zb2xlLmFzc2VydCh3aW5kb3cuZXZlbnQpOworICAgICAgICBpZiAoZHJhZ2dpbmcpCisgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZWxlbWVudERyYWdTdGFydCh0aGlzLl9lbGVtZW50LCB0aGlz
LCB0aGlzLCB3aW5kb3cuZXZlbnQsICJjb2wtcmVzaXplIiwgd2luZG93KTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmVsZW1lbnREcmFnRW5kKHdpbmRvdy5ldmVudCk7
CisKKyAgICAgICAgdGhpcy5fZHJhZ2dpbmcgPSBkcmFnZ2luZzsKKyAgICB9LAorCisgICAgX3Nl
dFRyYWNrc01vdXNlQ2xpY2tBbmREcmFnOiBmdW5jdGlvbih0cmFja3NNb3VzZUNsaWNrQW5kRHJh
ZykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl90cmFja3NNb3VzZUNsaWNrQW5kRHJhZyA9PT0g
dHJhY2tzTW91c2VDbGlja0FuZERyYWcpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAor
ICAgICAgICBpZiAodHJhY2tzTW91c2VDbGlja0FuZERyYWcpIHsKKyAgICAgICAgICAgIHRoaXMu
X2VsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuRHJhZ1RvQWRqdXN0Q29udHJvbGxl
ci5TdHlsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bW91c2Vkb3duIiwgdGhpcywgdHJ1ZSk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLCB0cnVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuRHJhZ1Rv
QWRqdXN0Q29udHJvbGxlci5TdHlsZUNsYXNzTmFtZSk7CisgICAgICAgICAgICB3aW5kb3cucmVt
b3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcywgdHJ1ZSk7CisgICAgICAgICAgICB3
aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLCB0cnVlKTsKKyAg
ICAgICAgICAgIHRoaXMuX3NldERyYWdnaW5nKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgdGhpcy5fdHJhY2tzTW91c2VDbGlja0FuZERyYWcgPSB0cmFja3NNb3VzZUNsaWNr
QW5kRHJhZzsKKyAgICB9LAorCisgICAgX21vZGlmaWVyc0RpZENoYW5nZTogZnVuY3Rpb24oZXZl
bnQpCisgICAgeworICAgICAgICB2YXIgY2FuQmVBZGp1c3RlZCA9IFdlYkluc3BlY3Rvci5tb2Rp
ZmllcktleXMuYWx0S2V5OworICAgICAgICBpZiAoY2FuQmVBZGp1c3RlZCAmJiB0aGlzLl9kZWxl
Z2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVsZWdhdGUuZHJhZ1RvQWRqdXN0Q29udHJvbGxlckNhbkJl
QWRqdXN0ZWQgPT09ICJmdW5jdGlvbiIpCisgICAgICAgICAgICBjYW5CZUFkanVzdGVkID0gdGhp
cy5fZGVsZWdhdGUuZHJhZ1RvQWRqdXN0Q29udHJvbGxlckNhbkJlQWRqdXN0ZWQodGhpcyk7CisK
KyAgICAgICAgdGhpcy5fc2V0VHJhY2tzTW91c2VDbGlja0FuZERyYWcoY2FuQmVBZGp1c3RlZCk7
CisgICAgfSwKKyAgICAKKyAgICBfbW91c2VNb3ZlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICB2YXIgY2FuQmVBZGp1c3RlZCA9IGV2ZW50LmFsdEtleTsKKyAgICAgICAgaWYgKGNh
bkJlQWRqdXN0ZWQgJiYgdGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmRy
YWdUb0FkanVzdENvbnRyb2xsZXJDYW5BZGp1c3RPYmplY3RBdFBvaW50ID09PSAiZnVuY3Rpb24i
KQorICAgICAgICAgICAgY2FuQmVBZGp1c3RlZCA9IHRoaXMuX2RlbGVnYXRlLmRyYWdUb0FkanVz
dENvbnRyb2xsZXJDYW5BZGp1c3RPYmplY3RBdFBvaW50KHRoaXMsIFdlYkluc3BlY3Rvci5Qb2lu
dC5mcm9tRXZlbnQoZXZlbnQpKTsKKworICAgICAgICB0aGlzLl9zZXRUcmFja3NNb3VzZUNsaWNr
QW5kRHJhZyhjYW5CZUFkanVzdGVkKTsKKyAgICB9LAorICAgIAorICAgIF9tb3VzZVdhc1ByZXNz
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fbGFzdFggPSBldmVudC5z
Y3JlZW5YOworCisgICAgICAgIHRoaXMuX3NldERyYWdnaW5nKHRydWUpOworCisgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwor
ICAgIH0sCisKKyAgICBfbW91c2VXYXNEcmFnZ2VkOiBmdW5jdGlvbihldmVudCkKKyAgICB7Cisg
ICAgICAgIHZhciB4ID0gZXZlbnQuc2NyZWVuWDsKKyAgICAgICAgdmFyIGFtb3VudCA9IHggLSB0
aGlzLl9sYXN0WDsKKworICAgICAgICBpZiAoTWF0aC5hYnMoYW1vdW50KSA8IDEpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fbGFzdFggPSB4OworCisgICAgICAgIGlmIChl
dmVudC5jdHJsS2V5KQorICAgICAgICAgICAgYW1vdW50IC89IDEwOworICAgICAgICBlbHNlIGlm
IChldmVudC5zaGlmdEtleSkKKyAgICAgICAgICAgIGFtb3VudCAqPSAxMDsKKworICAgICAgICBp
ZiAodGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVnYXRlLmRyYWdUb0FkanVzdENv
bnRyb2xsZXJXYXNBZGp1c3RlZEJ5QW1vdW50ID09PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAg
dGhpcy5fZGVsZWdhdGUuZHJhZ1RvQWRqdXN0Q29udHJvbGxlcldhc0FkanVzdGVkQnlBbW91bnQo
dGhpcywgYW1vdW50KTsKKworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAg
ICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICB9LAorCisgICAgX21vdXNlV2FzUmVsZWFz
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fc2V0RHJhZ2dpbmcoZmFs
c2UpOworCisgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIGV2ZW50LnN0
b3BQcm9wYWdhdGlvbigpOworCisgICAgICAgIHRoaXMucmVzZXQoKTsKKyAgICB9Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDU4OGU0
NzEwYzE1MTNiZGY2M2I5NGMwYWE1NDI0NDJmOTllZDkxN2EuLmRhYjI2M2E3YWFmMzQ3NWYzM2Zj
MThlMzFmNGMyMzdmN2NkZDIyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9NYWluLmh0bWwKQEAgLTEzMCw3ICsxMzAsNyBAQAogICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iQ29sb3JQaWNrZXIuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9IkdyYWRpZW50U2xpZGVyLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJDb2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29udHJvbGxlci5jc3MiPgotICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iQ29kZU1pcnJvckRyYWdUb0FsdGVyTnVtYmVyQ29u
dHJvbGxlci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iQ29kZU1pcnJv
ckRyYWdUb0FkanVzdE51bWJlckNvbnRyb2xsZXIuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IkdvVG9MaW5lRGlhbG9nLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJIb3Zlck1lbnUuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9IkNvbXB1dGVkU3R5bGVEZXRhaWxzUGFuZWwuY3NzIj4KQEAgLTE2MSw3ICsxNjEsOCBAQAog
ICAgIDxzY3JpcHQgc3JjPSJVUkxVdGlsaXRpZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJNZXNzYWdlRGlzcGF0Y2hlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik9i
amVjdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNvZGVNaXJyb3JEcmFnVG9BbHRl
ck51bWJlckNvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJEcmFnVG9B
ZGp1c3RDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQ29kZU1pcnJv
ckRyYWdUb0FkanVzdE51bWJlckNvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb2RlTWlycm9yQWRkaXRpb25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
U2V0dGluZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ikluc3BlY3RvckJhY2tlbmQu
anMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>