<?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>168847</bug_id>
          
          <creation_ts>2017-02-24 14:33:08 -0800</creation_ts>
          <short_desc>[css-align] Implement the place-items shorthand</short_desc>
          <delta_ts>2017-04-05 13:44:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.chromium.org/p/chromium/issues/detail?id=668639</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>168845</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Javier Fernandez">jfernandez</reporter>
          <assigned_to name="Javier Fernandez">jfernandez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1280881</commentid>
    <comment_count>0</comment_count>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2017-02-24 14:33:08 -0800</bug_when>
    <thetext>Spec: 

https://drafts.csswg.org/css-align/#place-items-property
 
Note that the syntax has just been discussed on the CSS WG.

Check the last comments on this issue before implementing them:
https://github.com/w3c/csswg-drafts/issues/595#issuecomment-262709407</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294432</commentid>
    <comment_count>1</comment_count>
      <attachid>306269</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2017-04-05 01:20:55 -0700</bug_when>
    <thetext>Created attachment 306269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294439</commentid>
    <comment_count>2</comment_count>
      <attachid>306272</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2017-04-05 01:39:43 -0700</bug_when>
    <thetext>Created attachment 306272
Patch

Fixed build errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294453</commentid>
    <comment_count>3</comment_count>
      <attachid>306276</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2017-04-05 02:37:05 -0700</bug_when>
    <thetext>Created attachment 306276
Patch

Fixed layout tests errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294604</commentid>
    <comment_count>4</comment_count>
      <attachid>306276</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2017-04-05 13:08:34 -0700</bug_when>
    <thetext>Comment on attachment 306276
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294617</commentid>
    <comment_count>5</comment_count>
      <attachid>306276</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-05 13:44:14 -0700</bug_when>
    <thetext>Comment on attachment 306276
Patch

Clearing flags on attachment: 306276

Committed r214966: &lt;http://trac.webkit.org/changeset/214966&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294618</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-05 13:44:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306269</attachid>
            <date>2017-04-05 01:20:55 -0700</date>
            <delta_ts>2017-04-05 01:39:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168847-20170405102053.patch</filename>
            <type>text/plain</type>
            <size>24218</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0ODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFjYTUwNTE2M2M1MTk4
ODNjN2VmZWE3MDFkYmQzMjVkNWU4NTMzMi4uMDJkMDA4NWZlN2U1YjYzMzA2MmRlNTk0YzcxMDQ2
NTgzY2VhNDYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE3LTA0LTA0ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtYWxp
Z25dIEltcGxlbWVudCB0aGUgcGxhY2UtaXRlbXMgc2hvcnRoYW5kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4NDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgQ1NTIEJveCBBbGlnbm1lbnQgc3Bl
Y2lmaWNhdGlvbiBkZWZpbmVzIGEgbmV3IHNob3J0aGFuZCB0byBzZXQgdGhlCisgICAgICAgIENv
bnRlbnQgQWxpZ25tZW50IHByb3BlcnRpZXMgKGFsaWduLWl0ZW1zIGFuZCBqdXN0aWZ5LWl0ZW1z
KSBhdCB0aGUKKyAgICAgICAgc2FtZSB0aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcHJvdmlk
ZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDU1MgcGFyc2luZyBsb2dpYyBhbmQgdGhlCisg
ICAgICAgIHJlcXVpcmVkIHJlZ3Jlc3Npb24gdGVzdHMuIEZvciB0aGUgdGltZSBiZWluZywgYXMg
aXQgaGFwcGVucyB3aXRoIHRoZQorICAgICAgICByZXN0IG9mIHRoZSBuZXcgYWxpZ25tZW50IHBy
b3BlcnRpZXMsIHRoZSBuZXcgcGFyc2luZyBsb2dpYyBpcworICAgICAgICBpbXBsZW1lbnRlZCBi
ZWhpbmQgdGhlIENTUyBHcmlkIExheW91dCBydW50aW1lIGZsYWcuCisKKyAgICAgICAgVGVzdDog
Y3NzMy9wYXJzZS1wbGFjZS1pdGVtcy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRy
YWN0b3I6OnByb3BlcnR5VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0aWVzLmpzb246
CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVQcm9wZXJ0aWVzOjpnZXRBbGlnbm1lbnRTaG9ydGhhbmRWYWx1ZSk6CisgICAgICAgICogY3Nz
L1N0eWxlUHJvcGVydGllcy5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBdXRvT3JOb3JtYWxPclN0cmV0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3VtZVNlbGZQb3NpdGlvbk92ZXJmbG93UG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3VtZVNpbXBsaWZpZWRJdGVtUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVQbGFjZUl0ZW1zU2hvcnRoYW5kKToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmg6CisKIDIwMTctMDQtMDQg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgV2luZG93cyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDdmOGY3OWM1NzVlMTQ3ZTNlMDBlMmNiMmJi
OTI3OGUwMWI5ZWQ3ODUuLmY5YTk3MzNlNjBkZjViMWUyNTVhYWM3NzYwMmRmMjJkYmUzYTA4MTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC0zMjcsNiArMzI3LDcgQEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29t
cHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlKdXN0aWZ5U2VsZiwKICAgICBD
U1NQcm9wZXJ0eUp1c3RpZnlJdGVtcywKICAgICBDU1NQcm9wZXJ0eVBsYWNlQ29udGVudCwKKyAg
ICBDU1NQcm9wZXJ0eVBsYWNlSXRlbXMsCiAjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKICAg
ICBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyLAogI2VuZGlmCkBAIC0yOTUwLDYgKzI5
NTEsOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELAogICAgICAgICAgICAgcmV0dXJuIHZhbHVl
Rm9ySXRlbVBvc2l0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KHJlc29sdmVKdXN0aWZ5U2VsZkF1
dG8oc3R5bGUtPmp1c3RpZnlTZWxmKCksIHN0eWxlZEVsZW1lbnQtPnBhcmVudE5vZGUoKSkpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGxhY2VDb250ZW50OgogICAgICAgICAgICAgcmV0dXJu
IGdldENTU1Byb3BlcnR5VmFsdWVzRm9yU2hvcnRoYW5kUHJvcGVydGllcyhwbGFjZUNvbnRlbnRT
aG9ydGhhbmQoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQbGFjZUl0ZW1zOgorICAgICAg
ICAgICAgcmV0dXJuIGdldENTU1Byb3BlcnR5VmFsdWVzRm9yU2hvcnRoYW5kUHJvcGVydGllcyhw
bGFjZUl0ZW1zU2hvcnRoYW5kKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3JkZXI6CiAg
ICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLT5vcmRlcigp
LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlGbG9hdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpz
b24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IGI5ZDY5OTIw
MThiZWU0ODI4ZmE1YjE4OTMyZTdhODJmNzQ4OTFjYjEuLjM3NzMwYjZkZWVhZDg4YzZhMDNjZDIz
NTQxZTA5MzI5NDM2MjFkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpA
QCAtNDY3Nyw2ICs0Njc3LDE4IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3
dy53My5vcmcvVFIvY3NzLWFsaWduLTMvI3Byb3BkZWYtcGxhY2UtY29udGVudCIKICAgICAgICAg
ICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgInBsYWNlLWl0ZW1zIjogeworICAgICAgICAgICAg
ImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwor
ICAgICAgICAgICAgICAgICAgICAiYWxpZ24taXRlbXMiLAorICAgICAgICAgICAgICAgICAgICAi
anVzdGlmeS1pdGVtcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNz
cy1hbGlnbiIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLWFsaWduLTMvI3Byb3BkZWYtcGxhY2UtaXRlbXMiCisgICAgICAgICAgICB9CisgICAg
ICAgIH0sCiAgICAgICAgICJncmlkIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGll
cyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBkYTE4NDlhYWI0ZWZlMDViMDYwMTVkZDIwYzVjZTIyODM5
MTdkZDZlLi44MDZjZGZiMjE4MmZmNjEwZTg1NzRmNDU2N2U5ZDNhOGE4NzA1ZjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMTg2LDcgKzE4Niw5IEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlEKSBjb25zdAogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkUm93OgogICAgICAgICByZXR1cm4g
Z2V0U2hvcnRoYW5kVmFsdWUoZ3JpZFJvd1Nob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3Bl
cnR5UGxhY2VDb250ZW50OgotICAgICAgICByZXR1cm4gcGxhY2VDb250ZW50UHJvcGVydHlWYWx1
ZSgpOworICAgICAgICByZXR1cm4gZ2V0QWxpZ25tZW50U2hvcnRoYW5kVmFsdWUocGxhY2VJdGVt
c1Nob3J0aGFuZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5UGxhY2VJdGVtczoKKyAgICAgICAg
cmV0dXJuIGdldEFsaWdubWVudFNob3J0aGFuZFZhbHVlKHBsYWNlSXRlbXNTaG9ydGhhbmQoKSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6CiAgICAgICAgIHJldHVybiBmb250VmFsdWUoKTsK
ICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luOgpAQCAtNTgzLDExICs1ODUsMTEgQEAgU3RyaW5n
IFN0eWxlUHJvcGVydGllczo6Z2V0Q29tbW9uVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZCYgc2hvcnRoYW5kKQogICAgIHJldHVybiByZXM7CiB9CiAKLVN0cmluZyBTdHlsZVByb3Bl
cnRpZXM6OnBsYWNlQ29udGVudFByb3BlcnR5VmFsdWUoKSBjb25zdAorU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6Z2V0QWxpZ25tZW50U2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZCYgc2hvcnRoYW5kKSBjb25zdAogewotICAgIFN0cmluZyB2YWx1ZSA9IGdldENvbW1v
blZhbHVlKHBsYWNlQ29udGVudFNob3J0aGFuZCgpKTsKKyAgICBTdHJpbmcgdmFsdWUgPSBnZXRD
b21tb25WYWx1ZShzaG9ydGhhbmQpOwogICAgIGlmICh2YWx1ZS5pc051bGwoKSB8fCB2YWx1ZS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZShwbGFjZUNvbnRlbnRT
aG9ydGhhbmQoKSk7CisgICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZShzaG9ydGhhbmQp
OwogICAgIHJldHVybiB2YWx1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5o
CmluZGV4IDQ4MWZhNzk3NDk0YTE2ZWI1YWM0NGNiZTk5MzYyMDEzM2RkZjc2NDIuLmZkOWZjYTMw
MmUzNjg5YTRlZjdkYzhhMWE3NzhlZjY5MWU1OWRmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmgKQEAgLTE1Nyw3ICsxNTcsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IFN0cmluZyBnZXRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJikg
Y29uc3Q7CiAgICAgU3RyaW5nIGdldENvbW1vblZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQmKSBjb25zdDsKLSAgICBTdHJpbmcgcGxhY2VDb250ZW50UHJvcGVydHlWYWx1ZSgpIGNv
bnN0OworICAgIFN0cmluZyBnZXRBbGlnbm1lbnRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kJikgY29uc3Q7CiAgICAgZW51bSBDb21tb25WYWx1ZU1vZGUgeyBPbWl0
VW5jb21tb25WYWx1ZXMsIFJldHVybk51bGxPblVuY29tbW9uVmFsdWVzIH07CiAgICAgU3RyaW5n
IGJvcmRlclByb3BlcnR5VmFsdWUoQ29tbW9uVmFsdWVNb2RlKSBjb25zdDsKICAgICBTdHJpbmcg
Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5j
cHAKaW5kZXggZjI3NDU1ZjEzNzZiYjc5N2RjMDYyMmQ3ZTRiNWYxOGU1MTlhYTVkMS4uYmEwM2Y5
MDgxMmQ1ZDkwMjAxMDQ2NjBkMWEwZTc2M2JmZDBjNzAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTI2MTksNiArMjYxOSwxMSBA
QCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lU2hhcGVPdXRzaWRlKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDUwogICAgIHJldHVybiBsaXN0OwogfQogCitib29sIGlz
QXV0b09yTm9ybWFsT3JTdHJldGNoKENTU1ZhbHVlSUQgaWQpCit7CisgICAgcmV0dXJuIGlkZW50
TWF0Y2hlczxDU1NWYWx1ZUF1dG8sIENTU1ZhbHVlTm9ybWFsLCBDU1NWYWx1ZVN0cmV0Y2g+KGlk
KTsKK30KKwogc3RhdGljIGJvb2wgaXNDb250ZW50RGlzdHJpYnV0aW9uS2V5d29yZChDU1NWYWx1
ZUlEIGlkKQogewogICAgIHJldHVybiBpZGVudE1hdGNoZXM8Q1NTVmFsdWVTcGFjZUJldHdlZW4s
IENTU1ZhbHVlU3BhY2VBcm91bmQsIENTU1ZhbHVlU3BhY2VFdmVubHksIENTU1ZhbHVlU3RyZXRj
aD4oaWQpOwpAQCAtMzA3NSw3ICszMDgwLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gY29uc3VtZVNlbGZQb3NpdGlvbktleXdvcmQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYKIHN0
YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVTZWxmUG9zaXRpb25PdmVyZmxvd1Bvc2l0aW9u
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIENTU1ZhbHVlSUQgaWQgPSByYW5n
ZS5wZWVrKCkuaWQoKTsKLSAgICBpZiAoaWRlbnRNYXRjaGVzPENTU1ZhbHVlQXV0bywgQ1NTVmFs
dWVOb3JtYWwsIENTU1ZhbHVlU3RyZXRjaD4oaWQpKQorICAgIGlmIChpc0F1dG9Pck5vcm1hbE9y
U3RyZXRjaChpZCkpCiAgICAgICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2UpOwogCiAgICAg
aWYgKGlzQmFzZWxpbmVLZXl3b3JkKGlkKSkKQEAgLTU1MDUsNiArNTUxMCw0MSBAQCBib29sIENT
U1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lUGxhY2VDb250ZW50U2hvcnRoYW5kKGJvb2wgaW1wb3J0
YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25z
dW1lU2ltcGxpZmllZEl0ZW1Qb3NpdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sK
KyAgICBDU1NWYWx1ZUlEIGlkID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAgaWYgKGlzQXV0b09y
Tm9ybWFsT3JTdHJldGNoKGlkKSkKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7
CisKKyAgICBpZiAoaXNCYXNlbGluZUtleXdvcmQoaWQpKQorICAgICAgICByZXR1cm4gY29uc3Vt
ZUJhc2VsaW5lS2V5d29yZChyYW5nZSk7CisKKyAgICByZXR1cm4gY29uc3VtZVNlbGZQb3NpdGlv
bktleXdvcmQocmFuZ2UpOworfQorCitib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lUGxh
Y2VJdGVtc1Nob3J0aGFuZChib29sIGltcG9ydGFudCkKK3sKKyAgICBBU1NFUlQoc2hvcnRoYW5k
Rm9yUHJvcGVydHkoQ1NTUHJvcGVydHlQbGFjZUl0ZW1zKS5sZW5ndGgoKSA9PSAyKTsKKworICAg
IC8vIGFsaWduLWl0ZW1zIHByb3BlcnR5IGRvZXMgbm90IGFsbG93IHRoZSAnYXV0bycgdmFsdWUu
CisgICAgaWYgKGlkZW50TWF0Y2hlczxDU1NWYWx1ZUF1dG8+KG1fcmFuZ2UucGVlaygpLmlkKCkp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IGFsaWduSXRl
bXNWYWx1ZSA9IGNvbnN1bWVTaW1wbGlmaWVkSXRlbVBvc2l0aW9uKG1fcmFuZ2UpOworICAgIGlm
ICghYWxpZ25JdGVtc1ZhbHVlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgUmVmUHRyPENT
U1ZhbHVlPiBqdXN0aWZ5SXRlbXNWYWx1ZSA9IG1fcmFuZ2UuYXRFbmQoKSA/IGFsaWduSXRlbXNW
YWx1ZSA6IGNvbnN1bWVTaW1wbGlmaWVkSXRlbVBvc2l0aW9uKG1fcmFuZ2UpOworICAgIGlmICgh
anVzdGlmeUl0ZW1zVmFsdWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghbV9y
YW5nZS5hdEVuZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhZGRQcm9wZXJ0eShD
U1NQcm9wZXJ0eUFsaWduSXRlbXMsIENTU1Byb3BlcnR5UGxhY2VJdGVtcywgYWxpZ25JdGVtc1Zh
bHVlLnJlbGVhc2VOb25OdWxsKCksIGltcG9ydGFudCk7CisgICAgYWRkUHJvcGVydHkoQ1NTUHJv
cGVydHlKdXN0aWZ5SXRlbXMsIENTU1Byb3BlcnR5UGxhY2VJdGVtcywganVzdGlmeUl0ZW1zVmFs
dWUucmVsZWFzZU5vbk51bGwoKSwgaW1wb3J0YW50KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
Ym9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgc3dpdGNoIChwcm9wZXJ0eSkgewpAQCAtNTY4
OCw2ICs1NzI4LDggQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIHJldHVybiBjb25z
dW1lR3JpZFNob3J0aGFuZChpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlQbGFjZUNv
bnRlbnQ6CiAgICAgICAgIHJldHVybiBjb25zdW1lUGxhY2VDb250ZW50U2hvcnRoYW5kKGltcG9y
dGFudCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVBsYWNlSXRlbXM6CisgICAgICAgIHJldHVybiBj
b25zdW1lUGxhY2VJdGVtc1Nob3J0aGFuZChpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNYXJxdWVlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNob3J0aGFuZEdyZWVkaWx5
KHdlYmtpdE1hcnF1ZWVTaG9ydGhhbmQoKSwgaW1wb3J0YW50KTsKICAgICBkZWZhdWx0OgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCmluZGV4IGJkZGUx
OWMxNTY2MzdhOTc2OWU1MzUzNzllNDdmYjhjNzg4ZTY3MGIuLjEwMjY5Y2Q0MGMwNDEzMjU0MGVi
MzQ1NzllOWVjNDgyMTBiMDE4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VyLmgKQEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNv
bnN1bWVHcmlkQXJlYVNob3J0aGFuZChib29sIGltcG9ydGFudCk7CiAKICAgICBib29sIGNvbnN1
bWVQbGFjZUNvbnRlbnRTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOworICAgIGJvb2wgY29uc3Vt
ZVBsYWNlSXRlbXNTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwogCiAgICAgYm9vbCBjb25zdW1l
Rm9udChib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBjb25zdW1lRm9udFZhcmlhbnRTaG9ydGhh
bmQoYm9vbCBpbXBvcnRhbnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFjMzYwNDc5Njc0MDk0MzMxMTE0NGFlMGQxZjdh
MmI1ODBiMTcxMjIuLjI4ZDA0NTJmNzkxZmM5NmUxNGI2MzJhZjcwOTljYWQ0Mjc2NDM1ZWEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNC0wNCAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJu
YW5kZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWFsaWduXSBJbXBsZW1lbnQgdGhlIHBs
YWNlLWl0ZW1zIHNob3J0aGFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY4ODQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVncmVzc2lvbiB0ZXN0cyBmb3IgdGhlIG5ldyBwbGFjZS1jb250ZW50IGFs
aWdubWVudCBzaG9ydGhhbmQuCisKKyAgICAgICAgKiBjc3MzL3BhcnNlLXBsYWNlLWl0ZW1zLmh0
bWw6IEFkZGVkLgorCiAyMDE3LTA0LTAzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlLWFkZGluZyBmbGFreSB0aW1lb3V0IGV4cGVjdGF0aW9uIGZvciBo
dHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJl
c291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL3BhcnNlLXBsYWNlLWl0ZW1zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMv
cGFyc2UtcGxhY2UtaXRlbXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzNjNiYzhkY2YzZTY5
N2UxNDNkMTJhOTFiYzYyZjJiZjdmYzQ1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL3BhcnNlLXBsYWNlLWl0ZW1zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitU
ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBuZXcgcGxhY2UtaXRlbXMgYWxpZ25tZW50IHNob3J0aGFu
ZCBpcyBwYXJzZWQgYXMgZXhwZWN0ZWQgYW5kIGNvcnJlY3RseSBzZXRzIHRoZSBsb25naGFuZCB2
YWx1ZXMuCisKKworUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNl
LWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ25vcm1hbCcgdmFsdWUg
dGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBs
YWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ2NlbnRlciBhdXRv
JyB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFs
dWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnYmFz
ZWxpbmUnIHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRl
ZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5n
ICdmaXJzdCBiYXNlbGluZScgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcg
dGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3
aGVuIHNldHRpbmcgJ2xhc3QgYmFzZWxpbmUnIHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVz
dCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHBy
b3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzdGFydCcgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBU
ZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQg
cHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ2ZsZXgtc3RhcnQnIHZhbHVlIHRocm91Z2ggQ1NTLiAK
K1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxv
bmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdlbmQnIHZhbHVlIHRocm91Z2ggQ1NTLiAK
K1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxv
bmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzZWxmLXN0YXJ0JyB2YWx1ZSB0aHJvdWdo
IENTUy4gCitQQVNTIFRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRl
bXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnc3RyZXRjaCcgdmFsdWUgdGhy
b3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNl
LWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ3N0YXJ0IGVuZCcgdmFs
dWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9m
IHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ3N0YXJ0IHNl
bGYtZW5kJyB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0
ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGlu
ZyAnc3RhcnQgYmFzZWxpbmUnIHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBzZXR0aW5n
ICcnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3Qgc2V0dGluZyAn
YXV0bycgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBzZXR0aW5n
ICdub25lJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IHNldHRp
bmcgJ3NhZmUnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3Qgc2V0
dGluZyAnc3RhcnQgc2FmZScgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1Mg
VGVzdCBzZXR0aW5nICdiYXNlbGluZSBzYWZlJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBD
U1MuIAorUEFTUyBUZXN0IHNldHRpbmcgJ3N0YXJ0IGVuZCBsZWZ0JyBhcyBpbmNvcnJlY3QgdmFs
dWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IHNldHRpbmcgdmFsdWVzIHRocm91Z2ggSlMuIAor
UEFTUyBUZXN0IHNldHRpbmcgaW5jb3JyZWN0IHZhbHVlcyB0aHJvdWdoIEpTLiAKK1BBU1MgVGVz
dCB0aGUgJ2luaXRpYWwnIHZhbHVlIG9mIHRoZSBwbGFjZS1pdGVtcyBzaG9ydGhhbmQgYW5kIGl0
cyBsb25naGFuZCBwcm9wZXJ0aWVzJyBDb21wdXRlZCB2YWx1ZSAKK1BBU1MgVGVzdCB0aGUgJ2lu
aGVyaXQnIHZhbHVlIG9mIHRoZSBwbGFjZS1pdGVtcyBzaG9ydGhhbmQgYW5kIGl0cyBsb25naGFu
ZCBwcm9wZXJ0aWVzJyBDb21wdXRlZCB2YWx1ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9wYXJzZS1wbGFjZS1pdGVtcy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9wYXJzZS1wbGFj
ZS1pdGVtcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYzg3MjIyYzcxZDg1YjQ1ODc5ODI0MzBiNWQ5Yzg0
ZWQzZTc1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3BhcnNlLXBsYWNl
LWl0ZW1zLmh0bWwKQEAgLTAsMCArMSwyNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KKyNwbGFjZUl0ZW1zTm9ybWFsIHsKKyAgcGxhY2UtaXRlbXM6IG5vcm1h
bDsKK30KKyNwbGFjZUl0ZW1zQ2VudGVyQXV0byB7CisgIHBsYWNlLWl0ZW1zOiBjZW50ZXIgYXV0
bzsKK30KKyNwbGFjZUl0ZW1zQmFzZWxpbmUgeworICBwbGFjZS1pdGVtczogYmFzZWxpbmU7Cit9
CisjcGxhY2VJdGVtc0ZpcnN0QmFzZWxpbmUgeworICBwbGFjZS1pdGVtczogZmlyc3QgYmFzZWxp
bmU7Cit9CisjcGxhY2VJdGVtc0xhc3RCYXNlbGluZSB7CisgIHBsYWNlLWl0ZW1zOiBsYXN0IGJh
c2VsaW5lOworfQorI3BsYWNlSXRlbXNTdGFydCB7CisgIHBsYWNlLWl0ZW1zOiBzdGFydDsKK30K
KyNwbGFjZUl0ZW1zRmxleFN0YXJ0IHsKKyAgcGxhY2UtaXRlbXM6IGZsZXgtc3RhcnQ7Cit9Cisj
cGxhY2VJdGVtc0VuZCB7CisgIHBsYWNlLWl0ZW1zOiBlbmQ7Cit9CisjcGxhY2VJdGVtc1NlbGZT
dGFydCB7CisgIHBsYWNlLWl0ZW1zOiBzZWxmLXN0YXJ0OworfQorI3BsYWNlSXRlbXNTdHJldGNo
IHsKKyAgcGxhY2UtaXRlbXM6IHN0cmV0Y2g7Cit9CisjcGxhY2VJdGVtc1N0YXJ0RW5kIHsKKyAg
cGxhY2UtaXRlbXM6IHN0YXJ0IGVuZDsKK30KKyNwbGFjZUl0ZW1zU3RhcnRTZWxmRW5kIHsKKyAg
cGxhY2UtaXRlbXM6IHN0YXJ0IHNlbGYtZW5kOworfQorI3BsYWNlSXRlbXNTdGFydEJhc2VsaW5l
IHsKKyAgcGxhY2UtaXRlbXM6IHN0YXJ0IGJhc2VsaW5lOworfQorCis8IS0tIEludmFsaWQgQ1NT
IGNhc2VzIC0tPgorI3BsYWNlSXRlbXNFbXB0eSB7CisgIHBsYWNlLWl0ZW1zOjsKK30KKyNwbGFj
ZUl0ZW1zQXV0byB7CisgIHBsYWNlLWl0ZW1zOiBhdXRvOworfQorI3BsYWNlSXRlbXNOb25lIHsK
KyAgcGxhY2UtaXRlbXM6IG5vbmU7Cit9CisjcGxhY2VJdGVtc1NhZmUgeworICBwbGFjZS1pdGVt
czogc2FmZTsKK30KKyNwbGFjZUl0ZW1zU3RhcnRTYWZlIHsKKyAgcGxhY2UtaXRlbXM6IHN0YXJ0
IHNhZmU7Cit9CisjcGxhY2VJdGVtc1N0YXJ0RW5kTGVmdCB7CisgIHBsYWNlLWl0ZW1zOiBzdGFy
dCBlbmQgbGVmdDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbGlnbm1lbnQt
cGFyc2luZy11dGlscy10aC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHA+VGVz
dCB0byB2ZXJpZnkgdGhhdCB0aGUgbmV3IHBsYWNlLWl0ZW1zIGFsaWdubWVudCBzaG9ydGhhbmQg
aXMgcGFyc2VkIGFzIGV4cGVjdGVkIGFuZCBjb3JyZWN0bHkgc2V0cyB0aGUgbG9uZ2hhbmQgdmFs
dWVzLjwvcD4KKyAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKworICA8ZGl2IGlkPSJwbGFjZUl0ZW1z
Tm9ybWFsIj48L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc0NlbnRlckF1dG8iPjwvZGl2Pgor
ICA8ZGl2IGlkPSJwbGFjZUl0ZW1zQmFzZWxpbmUiPjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0
ZW1zRmlyc3RCYXNlbGluZSI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNMYXN0QmFzZWxp
bmUiPjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1zU3RhcnQiPjwvZGl2PgorICA8ZGl2IGlk
PSJwbGFjZUl0ZW1zRmxleFN0YXJ0Ij48L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc0VuZCI+
PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNTZWxmU3RhcnQiPjwvZGl2PgorICA8ZGl2IGlk
PSJwbGFjZUl0ZW1zU3RyZXRjaCI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNTdGFydEVu
ZCI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNTdGFydFNlbGZFbmQiPjwvZGl2PgorICA8
ZGl2IGlkPSJwbGFjZUl0ZW1zU3RhcnRCYXNlbGluZSI+PC9kaXY+CisKKyAgPGRpdiBpZD0icGxh
Y2VJdGVtc0VtcHR5Ij48L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc0F1dG8iPjwvZGl2Pgor
ICA8ZGl2IGlkPSJwbGFjZUl0ZW1zTm9uZSI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNT
YWZlIj48L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc1N0YXJ0U2FmZSI+PC9kaXY+CisgIDxk
aXYgaWQ9InBsYWNlSXRlbXNCYXNlbGluZVNhZmUiPjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0
ZW1zU3RhcnRFbmRMZWZ0Ij48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjaGVja1BsYWNlSXRl
bXNWYWx1ZXMoZWxlbWVudCwgdmFsdWUsIGFsaWduVmFsdWUsIGp1c3RpZnlWYWx1ZSkgeworICB2
YXIgcmVzID0gdmFsdWUuc3BsaXQoIiAiKTsKKyAgaWYgKHJlcy5sZW5ndGggPCAyKQorICAgIHJl
c1sxXSA9IHJlc1swXTsKKyAgY2hlY2tWYWx1ZXMoZWxlbWVudCwgImFsaWduSXRlbXMiLCAiYWxp
Z24taXRlbXMiLCByZXNbMF0sIGFsaWduVmFsdWUpOworICBjaGVja1ZhbHVlcyhlbGVtZW50LCAi
anVzdGlmeUl0ZW1zIiwgImp1c3RpZnktaXRlbXMiLCByZXNbMV0sIGp1c3RpZnlWYWx1ZSk7Cit9
CisKK2Z1bmN0aW9uIGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0pTKHZhbHVlLCBhbGlnblZhbHVlLCBq
dXN0aWZ5VmFsdWUpCit7CisgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgZWxlbWVudC5zdHls
ZS5wbGFjZUl0ZW1zID0gdmFsdWU7CisgIGNoZWNrVmFsdWVzKGVsZW1lbnQsICJwbGFjZUl0ZW1z
IiwgInBsYWNlLWl0ZW1zIiwgdmFsdWUsIGFsaWduVmFsdWUgKyAnICcgKyBqdXN0aWZ5VmFsdWUp
CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhlbGVtZW50LCB2YWx1ZSwgYWxpZ25WYWx1ZSwganVz
dGlmeVZhbHVlKQorfQorCitmdW5jdGlvbiBjaGVja1BsYWNlSXRlbXNWYWx1ZXNCYWRKUyh2YWx1
ZSkKK3sKKyAgZWxlbWVudC5zdHlsZS5wbGFjZUl0ZW1zID0gIiI7CisgIGVsZW1lbnQuc3R5bGUu
cGxhY2VJdGVtcyA9IHZhbHVlOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMoZWxlbWVudCwgIiIs
ICJub3JtYWwiLCAibm9ybWFsIikKK30KKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1
ZXMocGxhY2VJdGVtc05vcm1hbCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgIm5v
cm1hbCBub3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNOb3JtYWws
ICIiLCAibm9ybWFsIiwgIm5vcm1hbCIpOworfSwgIlRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQg
VmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAn
bm9ybWFsJyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hl
Y2tWYWx1ZXMocGxhY2VJdGVtc0NlbnRlckF1dG8sICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1z
IiwgIiIsICJjZW50ZXIgbm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0
ZW1zQ2VudGVyQXV0bywgIiIsICJjZW50ZXIiLCAibm9ybWFsIik7Cit9LCAiVGVzdCBnZXR0aW5n
IHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMg
d2hlbiBzZXR0aW5nICdjZW50ZXIgYXV0bycgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNCYXNlbGluZSwgInBsYWNlSXRl
bXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgImJhc2VsaW5lIGJhc2VsaW5lIik7CisgIGNoZWNrUGxh
Y2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zQmFzZWxpbmUsICIiLCAiYmFzZWxpbmUiLCAiYmFzZWxp
bmUiKTsKK30sICJUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1z
J3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ2Jhc2VsaW5lJyB2YWx1ZSB0aHJv
dWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVt
c0ZpcnN0QmFzZWxpbmUsICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJiYXNlbGlu
ZSBiYXNlbGluZSIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc0ZpcnN0QmFz
ZWxpbmUsICIiLCAiYmFzZWxpbmUiLCAiYmFzZWxpbmUiKTsKK30sICJUZXN0IGdldHRpbmcgdGhl
IENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVu
IHNldHRpbmcgJ2ZpcnN0IGJhc2VsaW5lJyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChm
dW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc0xhc3RCYXNlbGluZSwgInBsYWNl
SXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgImxhc3QgYmFzZWxpbmUgbGFzdCBiYXNlbGluZSIp
OworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc0xhc3RCYXNlbGluZSwgIiIsICJs
YXN0IGJhc2VsaW5lIiwgImxhc3QgYmFzZWxpbmUiKTsKK30sICJUZXN0IGdldHRpbmcgdGhlIENv
bXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNl
dHRpbmcgJ2xhc3QgYmFzZWxpbmUnIHZhbHVlIHRocm91Z2ggQ1NTLiIpOworCit0ZXN0KGZ1bmN0
aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zU3RhcnQsICJwbGFjZUl0ZW1zIiwgInBs
YWNlLWl0ZW1zIiwgIiIsICJzdGFydCBzdGFydCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMo
cGxhY2VJdGVtc1N0YXJ0LCAiIiwgInN0YXJ0IiwgInN0YXJ0Iik7Cit9LCAiVGVzdCBnZXR0aW5n
IHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMg
d2hlbiBzZXR0aW5nICdzdGFydCcgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNGbGV4U3RhcnQsICJwbGFjZUl0ZW1zIiwg
InBsYWNlLWl0ZW1zIiwgIiIsICJmbGV4LXN0YXJ0IGZsZXgtc3RhcnQiKTsKKyAgY2hlY2tQbGFj
ZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNGbGV4U3RhcnQsICIiLCAiZmxleC1zdGFydCIsICJmbGV4
LXN0YXJ0Iik7Cit9LCAiVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1p
dGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdmbGV4LXN0YXJ0JyB2YWx1
ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxh
Y2VJdGVtc0VuZCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgImVuZCBlbmQiKTsK
KyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNFbmQsICIiLCAiZW5kIiwgImVuZCIp
OworfSwgIlRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBs
b25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnZW5kJyB2YWx1ZSB0aHJvdWdoIENTUy4i
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc1NlbGZTdGFy
dCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgInNlbGYtc3RhcnQgc2VsZi1zdGFy
dCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc1NlbGZTdGFydCwgIiIsICJz
ZWxmLXN0YXJ0IiwgInNlbGYtc3RhcnQiKTsKK30sICJUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVk
IFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcg
J3NlbGYtc3RhcnQnIHZhbHVlIHRocm91Z2ggQ1NTLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgewor
ICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zU3RyZXRjaCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRl
bXMiLCAiIiwgInN0cmV0Y2ggc3RyZXRjaCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxh
Y2VJdGVtc1N0cmV0Y2gsICIiLCAic3RyZXRjaCIsICJzdHJldGNoIik7Cit9LCAiVGVzdCBnZXR0
aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRp
ZXMgd2hlbiBzZXR0aW5nICdzdHJldGNoJyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChm
dW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0RW5kLCAicGxhY2VJdGVt
cyIsICJwbGFjZS1pdGVtcyIsICIiLCAic3RhcnQgZW5kIik7CisgIGNoZWNrUGxhY2VJdGVtc1Zh
bHVlcyhwbGFjZUl0ZW1zU3RhcnRFbmQsICIiLCAic3RhcnQiLCAiZW5kIik7Cit9LCAiVGVzdCBn
ZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3Bl
cnRpZXMgd2hlbiBzZXR0aW5nICdzdGFydCBlbmQnIHZhbHVlIHRocm91Z2ggQ1NTLiIpOworCit0
ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zU3RhcnRTZWxmRW5kLCAi
cGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAic3RhcnQgc2VsZi1lbmQiKTsKKyAgY2hl
Y2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNTdGFydFNlbGZFbmQsICIiLCAic3RhcnQiLCAi
c2VsZi1lbmQiKTsKK30sICJUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNl
LWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ3N0YXJ0IHNlbGYtZW5k
JyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1
ZXMocGxhY2VJdGVtc1N0YXJ0QmFzZWxpbmUsICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwg
IiIsICJzdGFydCBiYXNlbGluZSIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVt
c1N0YXJ0QmFzZWxpbmUsICIiLCAic3RhcnQiLCAiYmFzZWxpbmUiKTsKK30sICJUZXN0IGdldHRp
bmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGll
cyB3aGVuIHNldHRpbmcgJ3N0YXJ0IGJhc2VsaW5lJyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc0F1dG8sICJwbGFjZUl0
ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJub3JtYWwgbm9ybWFsIik7CisgIGNoZWNrUGxhY2VJ
dGVtc1ZhbHVlcyhwbGFjZUl0ZW1zQXV0bywgIiIsICJub3JtYWwiLCAibm9ybWFsIik7Cit9LCAi
VGVzdCBzZXR0aW5nICcnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVz
dChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc0F1dG8sICJwbGFjZUl0ZW1z
IiwgInBsYWNlLWl0ZW1zIiwgIiIsICJub3JtYWwgbm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVt
c1ZhbHVlcyhwbGFjZUl0ZW1zQXV0bywgIiIsICJub3JtYWwiLCAibm9ybWFsIik7Cit9LCAiVGVz
dCBzZXR0aW5nICdhdXRvJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNOb25lLCAicGxhY2VJdGVt
cyIsICJwbGFjZS1pdGVtcyIsICIiLCAibm9ybWFsIG5vcm1hbCIpOworICBjaGVja1BsYWNlSXRl
bXNWYWx1ZXMocGxhY2VJdGVtc05vbmUsICIiLCAibm9ybWFsIiwgIm5vcm1hbCIpOworfSwgIlRl
c3Qgc2V0dGluZyAnbm9uZScgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91Z2ggQ1NTLiIpOworCit0
ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zU2FmZSwgInBsYWNlSXRl
bXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgIm5vcm1hbCBub3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0
ZW1zVmFsdWVzKHBsYWNlSXRlbXNTYWZlLCAiIiwgIm5vcm1hbCIsICJub3JtYWwiKTsKK30sICJU
ZXN0IHNldHRpbmcgJ3NhZmUnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0U2FmZSwgInBs
YWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgIm5vcm1hbCBub3JtYWwiKTsKKyAgY2hlY2tQ
bGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNTdGFydFNhZmUsICIiLCAibm9ybWFsIiwgIm5vcm1h
bCIpOworfSwgIlRlc3Qgc2V0dGluZyAnc3RhcnQgc2FmZScgYXMgaW5jb3JyZWN0IHZhbHVlIHRo
cm91Z2ggQ1NTLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0
ZW1zU3RhcnRTYWZlLCAicGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAibm9ybWFsIG5v
cm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0U2FmZSwgIiIs
ICJub3JtYWwiLCAibm9ybWFsIik7Cit9LCAiVGVzdCBzZXR0aW5nICdiYXNlbGluZSBzYWZlJyBh
cyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
IGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNTdGFydEVuZExlZnQsICJwbGFjZUl0ZW1zIiwgInBsYWNl
LWl0ZW1zIiwgIiIsICJub3JtYWwgbm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhw
bGFjZUl0ZW1zU3RhcnRFbmRMZWZ0LCAiIiwgIm5vcm1hbCIsICJub3JtYWwiKTsKK30sICJUZXN0
IHNldHRpbmcgJ3N0YXJ0IGVuZCBsZWZ0JyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1Mu
Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0pTKCJjZW50
ZXIiLCAiY2VudGVyIiwgImNlbnRlciIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXNKUygiY2Vu
dGVyIHN0YXJ0IiwgImNlbnRlciIsICJzdGFydCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXNK
Uygic2VsZi1zdGFydCBlbmQiLCAic2VsZi1zdGFydCIsICJlbmQiKTsKKyAgY2hlY2tQbGFjZUl0
ZW1zVmFsdWVzSlMoIm5vcm1hbCBlbmQiLCAibm9ybWFsIiwgImVuZCIpOworfSwgIlRlc3Qgc2V0
dGluZyB2YWx1ZXMgdGhyb3VnaCBKUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tQ
bGFjZUl0ZW1zVmFsdWVzQmFkSlMoImF1dG8gbm9ybWFsIiwgIm5vcm1hbCIsICJub3JtYWwiKTsK
KyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzQmFkSlMoInNwYWNlLWJldHdlZW4iLCAibm9ybWFsIiwg
Im5vcm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXNCYWRKUygiY2VudGVyIHNhZmUiLCAi
bm9ybWFsIiwgIm5vcm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXNCYWRKUygiY2VudGVy
IHNlbGYtc3RhcnQgY2VudGVyIiwgIm5vcm1hbCIsICJub3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0
ZW1zVmFsdWVzQmFkSlMoImFzcnQiLCAibm9ybWFsIiwgIm5vcm1hbCIpOworICBjaGVja1BsYWNl
SXRlbXNWYWx1ZXNCYWRKUygiYXV0byIsICJub3JtYWwiLCAibm9ybWFsIik7CisgIGNoZWNrUGxh
Y2VJdGVtc1ZhbHVlc0JhZEpTKCIxMHB4IiwgIm5vcm1hbCIsICJub3JtYWwiKTsKKyAgY2hlY2tQ
bGFjZUl0ZW1zVmFsdWVzQmFkSlMoInN0cmV0Y2ggc2FmZSIsICJub3JtYWwiLCAibm9ybWFsIik7
CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0JhZEpTKCJzZWxmLXN0YXJ0IHN0YXJ0IGVuZCIsICJu
b3JtYWwiLCAibm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0JhZEpTKCIiLCAibm9y
bWFsIiwgIm5vcm1hbCIpOworfSwgIlRlc3Qgc2V0dGluZyBpbmNvcnJlY3QgdmFsdWVzIHRocm91
Z2ggSlMuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsK
KyAgY2hlY2tWYWx1ZXMoZWxlbWVudCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwg
Im5vcm1hbCBub3JtYWwiKTsKKyAgZWxlbWVudC5zdHlsZS5wbGFjZUl0ZW1zID0gImNlbnRlciI7
CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhlbGVtZW50LCAiY2VudGVyIiwgImNlbnRlciIsICJj
ZW50ZXIiKTsKKyAgZWxlbWVudC5zdHlsZS5wbGFjZUl0ZW1zID0gImluaXRpYWwiOworICBjaGVj
a1ZhbHVlcyhlbGVtZW50LCAicGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICJpbml0aWFsIiwg
Im5vcm1hbCBub3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKGVsZW1lbnQsICJpbml0
aWFsIiwgIm5vcm1hbCIsICJub3JtYWwiKTsKK30sICJUZXN0IHRoZSAnaW5pdGlhbCcgdmFsdWUg
b2YgdGhlIHBsYWNlLWl0ZW1zIHNob3J0aGFuZCBhbmQgaXRzIGxvbmdoYW5kIHByb3BlcnRpZXMn
IENvbXB1dGVkIHZhbHVlIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGRvY3VtZW50LmJvZHku
c3R5bGUucGxhY2VJdGVtcyA9ICJzdGFydCI7CisgIHZhciBhbm90aGVyRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFu
b3RoZXJFbGVtZW50KTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKGFub3RoZXJFbGVtZW50LCAi
IiwgIm5vcm1hbCIsICJub3JtYWwiKTsKKyAgYW5vdGhlckVsZW1lbnQuc3R5bGUucGxhY2VJdGVt
cyA9ICJpbmhlcml0IjsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKGFub3RoZXJFbGVtZW50LCAi
aW5oZXJpdCIsICJzdGFydCIsICJzdGFydCIpOworfSwgIlRlc3QgdGhlICdpbmhlcml0JyB2YWx1
ZSBvZiB0aGUgcGxhY2UtaXRlbXMgc2hvcnRoYW5kIGFuZCBpdHMgbG9uZ2hhbmQgcHJvcGVydGll
cycgQ29tcHV0ZWQgdmFsdWUiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306272</attachid>
            <date>2017-04-05 01:39:43 -0700</date>
            <delta_ts>2017-04-05 02:37:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168847-20170405103941.patch</filename>
            <type>text/plain</type>
            <size>24225</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0ODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFjYTUwNTE2M2M1MTk4
ODNjN2VmZWE3MDFkYmQzMjVkNWU4NTMzMi4uMDJkMDA4NWZlN2U1YjYzMzA2MmRlNTk0YzcxMDQ2
NTgzY2VhNDYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE3LTA0LTA0ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtYWxp
Z25dIEltcGxlbWVudCB0aGUgcGxhY2UtaXRlbXMgc2hvcnRoYW5kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4NDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgQ1NTIEJveCBBbGlnbm1lbnQgc3Bl
Y2lmaWNhdGlvbiBkZWZpbmVzIGEgbmV3IHNob3J0aGFuZCB0byBzZXQgdGhlCisgICAgICAgIENv
bnRlbnQgQWxpZ25tZW50IHByb3BlcnRpZXMgKGFsaWduLWl0ZW1zIGFuZCBqdXN0aWZ5LWl0ZW1z
KSBhdCB0aGUKKyAgICAgICAgc2FtZSB0aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcHJvdmlk
ZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDU1MgcGFyc2luZyBsb2dpYyBhbmQgdGhlCisg
ICAgICAgIHJlcXVpcmVkIHJlZ3Jlc3Npb24gdGVzdHMuIEZvciB0aGUgdGltZSBiZWluZywgYXMg
aXQgaGFwcGVucyB3aXRoIHRoZQorICAgICAgICByZXN0IG9mIHRoZSBuZXcgYWxpZ25tZW50IHBy
b3BlcnRpZXMsIHRoZSBuZXcgcGFyc2luZyBsb2dpYyBpcworICAgICAgICBpbXBsZW1lbnRlZCBi
ZWhpbmQgdGhlIENTUyBHcmlkIExheW91dCBydW50aW1lIGZsYWcuCisKKyAgICAgICAgVGVzdDog
Y3NzMy9wYXJzZS1wbGFjZS1pdGVtcy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRy
YWN0b3I6OnByb3BlcnR5VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0aWVzLmpzb246
CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVQcm9wZXJ0aWVzOjpnZXRBbGlnbm1lbnRTaG9ydGhhbmRWYWx1ZSk6CisgICAgICAgICogY3Nz
L1N0eWxlUHJvcGVydGllcy5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBdXRvT3JOb3JtYWxPclN0cmV0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3VtZVNlbGZQb3NpdGlvbk92ZXJmbG93UG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3VtZVNpbXBsaWZpZWRJdGVtUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVQbGFjZUl0ZW1zU2hvcnRoYW5kKToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmg6CisKIDIwMTctMDQtMDQg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgV2luZG93cyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDdmOGY3OWM1NzVlMTQ3ZTNlMDBlMmNiMmJi
OTI3OGUwMWI5ZWQ3ODUuLmY5YTk3MzNlNjBkZjViMWUyNTVhYWM3NzYwMmRmMjJkYmUzYTA4MTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC0zMjcsNiArMzI3LDcgQEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29t
cHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlKdXN0aWZ5U2VsZiwKICAgICBD
U1NQcm9wZXJ0eUp1c3RpZnlJdGVtcywKICAgICBDU1NQcm9wZXJ0eVBsYWNlQ29udGVudCwKKyAg
ICBDU1NQcm9wZXJ0eVBsYWNlSXRlbXMsCiAjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKICAg
ICBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyLAogI2VuZGlmCkBAIC0yOTUwLDYgKzI5
NTEsOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELAogICAgICAgICAgICAgcmV0dXJuIHZhbHVl
Rm9ySXRlbVBvc2l0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KHJlc29sdmVKdXN0aWZ5U2VsZkF1
dG8oc3R5bGUtPmp1c3RpZnlTZWxmKCksIHN0eWxlZEVsZW1lbnQtPnBhcmVudE5vZGUoKSkpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGxhY2VDb250ZW50OgogICAgICAgICAgICAgcmV0dXJu
IGdldENTU1Byb3BlcnR5VmFsdWVzRm9yU2hvcnRoYW5kUHJvcGVydGllcyhwbGFjZUNvbnRlbnRT
aG9ydGhhbmQoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQbGFjZUl0ZW1zOgorICAgICAg
ICAgICAgcmV0dXJuIGdldENTU1Byb3BlcnR5VmFsdWVzRm9yU2hvcnRoYW5kUHJvcGVydGllcyhw
bGFjZUl0ZW1zU2hvcnRoYW5kKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3JkZXI6CiAg
ICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLT5vcmRlcigp
LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlGbG9hdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpz
b24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IGI5ZDY5OTIw
MThiZWU0ODI4ZmE1YjE4OTMyZTdhODJmNzQ4OTFjYjEuLjM3NzMwYjZkZWVhZDg4YzZhMDNjZDIz
NTQxZTA5MzI5NDM2MjFkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpA
QCAtNDY3Nyw2ICs0Njc3LDE4IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3
dy53My5vcmcvVFIvY3NzLWFsaWduLTMvI3Byb3BkZWYtcGxhY2UtY29udGVudCIKICAgICAgICAg
ICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgInBsYWNlLWl0ZW1zIjogeworICAgICAgICAgICAg
ImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwor
ICAgICAgICAgICAgICAgICAgICAiYWxpZ24taXRlbXMiLAorICAgICAgICAgICAgICAgICAgICAi
anVzdGlmeS1pdGVtcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNz
cy1hbGlnbiIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLWFsaWduLTMvI3Byb3BkZWYtcGxhY2UtaXRlbXMiCisgICAgICAgICAgICB9CisgICAg
ICAgIH0sCiAgICAgICAgICJncmlkIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGll
cyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBkYTE4NDlhYWI0ZWZlMDViMDYwMTVkZDIwYzVjZTIyODM5
MTdkZDZlLi44MDZjZGZiMjE4MmZmNjEwZTg1NzRmNDU2N2U5ZDNhOGE4NzA1ZjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMTg2LDcgKzE4Niw5IEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlEKSBjb25zdAogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkUm93OgogICAgICAgICByZXR1cm4g
Z2V0U2hvcnRoYW5kVmFsdWUoZ3JpZFJvd1Nob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3Bl
cnR5UGxhY2VDb250ZW50OgotICAgICAgICByZXR1cm4gcGxhY2VDb250ZW50UHJvcGVydHlWYWx1
ZSgpOworICAgICAgICByZXR1cm4gZ2V0QWxpZ25tZW50U2hvcnRoYW5kVmFsdWUocGxhY2VJdGVt
c1Nob3J0aGFuZCgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5UGxhY2VJdGVtczoKKyAgICAgICAg
cmV0dXJuIGdldEFsaWdubWVudFNob3J0aGFuZFZhbHVlKHBsYWNlSXRlbXNTaG9ydGhhbmQoKSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6CiAgICAgICAgIHJldHVybiBmb250VmFsdWUoKTsK
ICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luOgpAQCAtNTgzLDExICs1ODUsMTEgQEAgU3RyaW5n
IFN0eWxlUHJvcGVydGllczo6Z2V0Q29tbW9uVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZCYgc2hvcnRoYW5kKQogICAgIHJldHVybiByZXM7CiB9CiAKLVN0cmluZyBTdHlsZVByb3Bl
cnRpZXM6OnBsYWNlQ29udGVudFByb3BlcnR5VmFsdWUoKSBjb25zdAorU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6Z2V0QWxpZ25tZW50U2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZCYgc2hvcnRoYW5kKSBjb25zdAogewotICAgIFN0cmluZyB2YWx1ZSA9IGdldENvbW1v
blZhbHVlKHBsYWNlQ29udGVudFNob3J0aGFuZCgpKTsKKyAgICBTdHJpbmcgdmFsdWUgPSBnZXRD
b21tb25WYWx1ZShzaG9ydGhhbmQpOwogICAgIGlmICh2YWx1ZS5pc051bGwoKSB8fCB2YWx1ZS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZShwbGFjZUNvbnRlbnRT
aG9ydGhhbmQoKSk7CisgICAgICAgIHJldHVybiBnZXRTaG9ydGhhbmRWYWx1ZShzaG9ydGhhbmQp
OwogICAgIHJldHVybiB2YWx1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5o
CmluZGV4IDQ4MWZhNzk3NDk0YTE2ZWI1YWM0NGNiZTk5MzYyMDEzM2RkZjc2NDIuLmZkOWZjYTMw
MmUzNjg5YTRlZjdkYzhhMWE3NzhlZjY5MWU1OWRmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmgKQEAgLTE1Nyw3ICsxNTcsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IFN0cmluZyBnZXRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJikg
Y29uc3Q7CiAgICAgU3RyaW5nIGdldENvbW1vblZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQmKSBjb25zdDsKLSAgICBTdHJpbmcgcGxhY2VDb250ZW50UHJvcGVydHlWYWx1ZSgpIGNv
bnN0OworICAgIFN0cmluZyBnZXRBbGlnbm1lbnRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kJikgY29uc3Q7CiAgICAgZW51bSBDb21tb25WYWx1ZU1vZGUgeyBPbWl0
VW5jb21tb25WYWx1ZXMsIFJldHVybk51bGxPblVuY29tbW9uVmFsdWVzIH07CiAgICAgU3RyaW5n
IGJvcmRlclByb3BlcnR5VmFsdWUoQ29tbW9uVmFsdWVNb2RlKSBjb25zdDsKICAgICBTdHJpbmcg
Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5j
cHAKaW5kZXggZjI3NDU1ZjEzNzZiYjc5N2RjMDYyMmQ3ZTRiNWYxOGU1MTlhYTVkMS4uY2ViM2M4
ZGFkYjlkZGMyYWMwYzVkNzU1Y2E0NmI3ZjBmNWJiY2IwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTI2MTksNiArMjYxOSwxMSBA
QCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lU2hhcGVPdXRzaWRlKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDUwogICAgIHJldHVybiBsaXN0OwogfQogCitzdGF0aWMg
Ym9vbCBpc0F1dG9Pck5vcm1hbE9yU3RyZXRjaChDU1NWYWx1ZUlEIGlkKQoreworICAgIHJldHVy
biBpZGVudE1hdGNoZXM8Q1NTVmFsdWVBdXRvLCBDU1NWYWx1ZU5vcm1hbCwgQ1NTVmFsdWVTdHJl
dGNoPihpZCk7Cit9CisKIHN0YXRpYyBib29sIGlzQ29udGVudERpc3RyaWJ1dGlvbktleXdvcmQo
Q1NTVmFsdWVJRCBpZCkKIHsKICAgICByZXR1cm4gaWRlbnRNYXRjaGVzPENTU1ZhbHVlU3BhY2VC
ZXR3ZWVuLCBDU1NWYWx1ZVNwYWNlQXJvdW5kLCBDU1NWYWx1ZVNwYWNlRXZlbmx5LCBDU1NWYWx1
ZVN0cmV0Y2g+KGlkKTsKQEAgLTMwNzUsNyArMzA4MCw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IGNvbnN1bWVTZWxmUG9zaXRpb25LZXl3b3JkKENTU1BhcnNlclRva2VuUmFu
Z2UmCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lU2VsZlBvc2l0aW9uT3ZlcmZsb3dQ
b3NpdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBDU1NWYWx1ZUlEIGlk
ID0gcmFuZ2UucGVlaygpLmlkKCk7Ci0gICAgaWYgKGlkZW50TWF0Y2hlczxDU1NWYWx1ZUF1dG8s
IENTU1ZhbHVlTm9ybWFsLCBDU1NWYWx1ZVN0cmV0Y2g+KGlkKSkKKyAgICBpZiAoaXNBdXRvT3JO
b3JtYWxPclN0cmV0Y2goaWQpKQogICAgICAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsK
IAogICAgIGlmIChpc0Jhc2VsaW5lS2V5d29yZChpZCkpCkBAIC01NTA1LDYgKzU1MTAsNDEgQEAg
Ym9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZVBsYWNlQ29udGVudFNob3J0aGFuZChib29s
IGltcG9ydGFudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIFJlZlB0cjxDU1NWYWx1
ZT4gY29uc3VtZVNpbXBsaWZpZWRJdGVtUG9zaXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
Z2UpCit7CisgICAgQ1NTVmFsdWVJRCBpZCA9IHJhbmdlLnBlZWsoKS5pZCgpOworICAgIGlmIChp
c0F1dG9Pck5vcm1hbE9yU3RyZXRjaChpZCkpCisgICAgICAgIHJldHVybiBjb25zdW1lSWRlbnQo
cmFuZ2UpOworCisgICAgaWYgKGlzQmFzZWxpbmVLZXl3b3JkKGlkKSkKKyAgICAgICAgcmV0dXJu
IGNvbnN1bWVCYXNlbGluZUtleXdvcmQocmFuZ2UpOworCisgICAgcmV0dXJuIGNvbnN1bWVTZWxm
UG9zaXRpb25LZXl3b3JkKHJhbmdlKTsKK30KKworYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29u
c3VtZVBsYWNlSXRlbXNTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCit7CisgICAgQVNTRVJUKHNo
b3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5UGxhY2VJdGVtcykubGVuZ3RoKCkgPT0gMik7
CisKKyAgICAvLyBhbGlnbi1pdGVtcyBwcm9wZXJ0eSBkb2VzIG5vdCBhbGxvdyB0aGUgJ2F1dG8n
IHZhbHVlLgorICAgIGlmIChpZGVudE1hdGNoZXM8Q1NTVmFsdWVBdXRvPihtX3JhbmdlLnBlZWso
KS5pZCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiBh
bGlnbkl0ZW1zVmFsdWUgPSBjb25zdW1lU2ltcGxpZmllZEl0ZW1Qb3NpdGlvbihtX3JhbmdlKTsK
KyAgICBpZiAoIWFsaWduSXRlbXNWYWx1ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJl
ZlB0cjxDU1NWYWx1ZT4ganVzdGlmeUl0ZW1zVmFsdWUgPSBtX3JhbmdlLmF0RW5kKCkgPyBhbGln
bkl0ZW1zVmFsdWUgOiBjb25zdW1lU2ltcGxpZmllZEl0ZW1Qb3NpdGlvbihtX3JhbmdlKTsKKyAg
ICBpZiAoIWp1c3RpZnlJdGVtc1ZhbHVlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIW1fcmFuZ2UuYXRFbmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYWRkUHJv
cGVydHkoQ1NTUHJvcGVydHlBbGlnbkl0ZW1zLCBDU1NQcm9wZXJ0eVBsYWNlSXRlbXMsIGFsaWdu
SXRlbXNWYWx1ZS5yZWxlYXNlTm9uTnVsbCgpLCBpbXBvcnRhbnQpOworICAgIGFkZFByb3BlcnR5
KENTU1Byb3BlcnR5SnVzdGlmeUl0ZW1zLCBDU1NQcm9wZXJ0eVBsYWNlSXRlbXMsIGp1c3RpZnlJ
dGVtc1ZhbHVlLnJlbGVhc2VOb25OdWxsKCksIGltcG9ydGFudCk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRoYW5kKENTU1Byb3BlcnR5
SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQogewogICAgIHN3aXRjaCAocHJvcGVydHkpIHsK
QEAgLTU2ODgsNiArNTcyOCw4IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2hvcnRo
YW5kKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGJvb2wgaW1wb3J0YW50KQogICAgICAgICByZXR1
cm4gY29uc3VtZUdyaWRTaG9ydGhhbmQoaW1wb3J0YW50KTsKICAgICBjYXNlIENTU1Byb3BlcnR5
UGxhY2VDb250ZW50OgogICAgICAgICByZXR1cm4gY29uc3VtZVBsYWNlQ29udGVudFNob3J0aGFu
ZChpbXBvcnRhbnQpOworICAgIGNhc2UgQ1NTUHJvcGVydHlQbGFjZUl0ZW1zOgorICAgICAgICBy
ZXR1cm4gY29uc3VtZVBsYWNlSXRlbXNTaG9ydGhhbmQoaW1wb3J0YW50KTsKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFycXVlZToKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTaG9ydGhhbmRH
cmVlZGlseSh3ZWJraXRNYXJxdWVlU2hvcnRoYW5kKCksIGltcG9ydGFudCk7CiAgICAgZGVmYXVs
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAppbmRl
eCBiZGRlMTljMTU2NjM3YTk3NjllNTM1Mzc5ZTQ3ZmI4Yzc4OGU2NzBiLi4xMDI2OWNkNDBjMDQx
MzI1NDBlYjM0NTc5ZTllYzQ4MjEwYjAxOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCkBAIC04MSw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBjb25zdW1lR3JpZEFyZWFTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwogCiAgICAgYm9v
bCBjb25zdW1lUGxhY2VDb250ZW50U2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKKyAgICBib29s
IGNvbnN1bWVQbGFjZUl0ZW1zU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKIAogICAgIGJvb2wg
Y29uc3VtZUZvbnQoYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgY29uc3VtZUZvbnRWYXJpYW50
U2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYzM2MDQ3OTY3NDA5NDMzMTExNDRh
ZTBkMWY3YTJiNTgwYjE3MTIyLi4yOGQwNDUyZjc5MWZjOTZlMTRiNjMyYWY3MDk5Y2FkNDI3NjQz
NWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMDQgIEphdmllciBGZXJuYW5kZXog
IDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1hbGlnbl0gSW1wbGVtZW50
IHRoZSBwbGFjZS1pdGVtcyBzaG9ydGhhbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2ODg0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlZ3Jlc3Npb24gdGVzdHMgZm9yIHRoZSBuZXcgcGxhY2UtY29u
dGVudCBhbGlnbm1lbnQgc2hvcnRoYW5kLgorCisgICAgICAgICogY3NzMy9wYXJzZS1wbGFjZS1p
dGVtcy5odG1sOiBBZGRlZC4KKwogMjAxNy0wNC0wMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1hZGRpbmcgZmxha3kgdGltZW91dCBleHBlY3RhdGlv
biBmb3IgaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZh
bGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9wYXJzZS1wbGFjZS1pdGVtcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jc3MzL3BhcnNlLXBsYWNlLWl0ZW1zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzYzYmM4
ZGNmM2U2OTdlMTQzZDEyYTkxYmM2MmYyYmY3ZmM0NTY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9wYXJzZS1wbGFjZS1pdGVtcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
OCBAQAorVGVzdCB0byB2ZXJpZnkgdGhhdCB0aGUgbmV3IHBsYWNlLWl0ZW1zIGFsaWdubWVudCBz
aG9ydGhhbmQgaXMgcGFyc2VkIGFzIGV4cGVjdGVkIGFuZCBjb3JyZWN0bHkgc2V0cyB0aGUgbG9u
Z2hhbmQgdmFsdWVzLgorCisKK1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBv
ZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdub3JtYWwn
IHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1
ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdjZW50
ZXIgYXV0bycgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1
dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRp
bmcgJ2Jhc2VsaW5lJyB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3QgZ2V0dGluZyB0aGUg
Q29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4g
c2V0dGluZyAnZmlyc3QgYmFzZWxpbmUnIHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBn
ZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3Bl
cnRpZXMgd2hlbiBzZXR0aW5nICdsYXN0IGJhc2VsaW5lJyB2YWx1ZSB0aHJvdWdoIENTUy4gCitQ
QVNTIFRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25n
aGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnc3RhcnQnIHZhbHVlIHRocm91Z2ggQ1NTLiAK
K1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxv
bmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdmbGV4LXN0YXJ0JyB2YWx1ZSB0aHJvdWdo
IENTUy4gCitQQVNTIFRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRl
bXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnZW5kJyB2YWx1ZSB0aHJvdWdo
IENTUy4gCitQQVNTIFRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRl
bXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnc2VsZi1zdGFydCcgdmFsdWUg
dGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBs
YWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ3N0cmV0Y2gnIHZh
bHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBv
ZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzdGFydCBl
bmQnIHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBW
YWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdz
dGFydCBzZWxmLWVuZCcgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcgdGhl
IENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVu
IHNldHRpbmcgJ3N0YXJ0IGJhc2VsaW5lJyB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3Qg
c2V0dGluZyAnJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IHNl
dHRpbmcgJ2F1dG8nIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3Qg
c2V0dGluZyAnbm9uZScgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVz
dCBzZXR0aW5nICdzYWZlJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBU
ZXN0IHNldHRpbmcgJ3N0YXJ0IHNhZmUnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4g
CitQQVNTIFRlc3Qgc2V0dGluZyAnYmFzZWxpbmUgc2FmZScgYXMgaW5jb3JyZWN0IHZhbHVlIHRo
cm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBzZXR0aW5nICdzdGFydCBlbmQgbGVmdCcgYXMgaW5jb3Jy
ZWN0IHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBzZXR0aW5nIHZhbHVlcyB0aHJvdWdo
IEpTLiAKK1BBU1MgVGVzdCBzZXR0aW5nIGluY29ycmVjdCB2YWx1ZXMgdGhyb3VnaCBKUy4gCitQ
QVNTIFRlc3QgdGhlICdpbml0aWFsJyB2YWx1ZSBvZiB0aGUgcGxhY2UtaXRlbXMgc2hvcnRoYW5k
IGFuZCBpdHMgbG9uZ2hhbmQgcHJvcGVydGllcycgQ29tcHV0ZWQgdmFsdWUgCitQQVNTIFRlc3Qg
dGhlICdpbmhlcml0JyB2YWx1ZSBvZiB0aGUgcGxhY2UtaXRlbXMgc2hvcnRoYW5kIGFuZCBpdHMg
bG9uZ2hhbmQgcHJvcGVydGllcycgQ29tcHV0ZWQgdmFsdWUgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvcGFyc2UtcGxhY2UtaXRlbXMuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvcGFy
c2UtcGxhY2UtaXRlbXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWM4NzIyMmM3MWQ4NWI0NTg3OTgyNDMw
YjVkOWM4NGVkM2U3NTQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9wYXJz
ZS1wbGFjZS1pdGVtcy5odG1sCkBAIC0wLDAgKzEsMjYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+CisjcGxhY2VJdGVtc05vcm1hbCB7CisgIHBsYWNlLWl0ZW1z
OiBub3JtYWw7Cit9CisjcGxhY2VJdGVtc0NlbnRlckF1dG8geworICBwbGFjZS1pdGVtczogY2Vu
dGVyIGF1dG87Cit9CisjcGxhY2VJdGVtc0Jhc2VsaW5lIHsKKyAgcGxhY2UtaXRlbXM6IGJhc2Vs
aW5lOworfQorI3BsYWNlSXRlbXNGaXJzdEJhc2VsaW5lIHsKKyAgcGxhY2UtaXRlbXM6IGZpcnN0
IGJhc2VsaW5lOworfQorI3BsYWNlSXRlbXNMYXN0QmFzZWxpbmUgeworICBwbGFjZS1pdGVtczog
bGFzdCBiYXNlbGluZTsKK30KKyNwbGFjZUl0ZW1zU3RhcnQgeworICBwbGFjZS1pdGVtczogc3Rh
cnQ7Cit9CisjcGxhY2VJdGVtc0ZsZXhTdGFydCB7CisgIHBsYWNlLWl0ZW1zOiBmbGV4LXN0YXJ0
OworfQorI3BsYWNlSXRlbXNFbmQgeworICBwbGFjZS1pdGVtczogZW5kOworfQorI3BsYWNlSXRl
bXNTZWxmU3RhcnQgeworICBwbGFjZS1pdGVtczogc2VsZi1zdGFydDsKK30KKyNwbGFjZUl0ZW1z
U3RyZXRjaCB7CisgIHBsYWNlLWl0ZW1zOiBzdHJldGNoOworfQorI3BsYWNlSXRlbXNTdGFydEVu
ZCB7CisgIHBsYWNlLWl0ZW1zOiBzdGFydCBlbmQ7Cit9CisjcGxhY2VJdGVtc1N0YXJ0U2VsZkVu
ZCB7CisgIHBsYWNlLWl0ZW1zOiBzdGFydCBzZWxmLWVuZDsKK30KKyNwbGFjZUl0ZW1zU3RhcnRC
YXNlbGluZSB7CisgIHBsYWNlLWl0ZW1zOiBzdGFydCBiYXNlbGluZTsKK30KKworPCEtLSBJbnZh
bGlkIENTUyBjYXNlcyAtLT4KKyNwbGFjZUl0ZW1zRW1wdHkgeworICBwbGFjZS1pdGVtczo7Cit9
CisjcGxhY2VJdGVtc0F1dG8geworICBwbGFjZS1pdGVtczogYXV0bzsKK30KKyNwbGFjZUl0ZW1z
Tm9uZSB7CisgIHBsYWNlLWl0ZW1zOiBub25lOworfQorI3BsYWNlSXRlbXNTYWZlIHsKKyAgcGxh
Y2UtaXRlbXM6IHNhZmU7Cit9CisjcGxhY2VJdGVtc1N0YXJ0U2FmZSB7CisgIHBsYWNlLWl0ZW1z
OiBzdGFydCBzYWZlOworfQorI3BsYWNlSXRlbXNTdGFydEVuZExlZnQgeworICBwbGFjZS1pdGVt
czogc3RhcnQgZW5kIGxlZnQ7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYWxp
Z25tZW50LXBhcnNpbmctdXRpbHMtdGguanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
IDxwPlRlc3QgdG8gdmVyaWZ5IHRoYXQgdGhlIG5ldyBwbGFjZS1pdGVtcyBhbGlnbm1lbnQgc2hv
cnRoYW5kIGlzIHBhcnNlZCBhcyBleHBlY3RlZCBhbmQgY29ycmVjdGx5IHNldHMgdGhlIGxvbmdo
YW5kIHZhbHVlcy48L3A+CisgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKKyAgPGRpdiBpZD0icGxh
Y2VJdGVtc05vcm1hbCI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNDZW50ZXJBdXRvIj48
L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc0Jhc2VsaW5lIj48L2Rpdj4KKyAgPGRpdiBpZD0i
cGxhY2VJdGVtc0ZpcnN0QmFzZWxpbmUiPjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1zTGFz
dEJhc2VsaW5lIj48L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc1N0YXJ0Ij48L2Rpdj4KKyAg
PGRpdiBpZD0icGxhY2VJdGVtc0ZsZXhTdGFydCI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRl
bXNFbmQiPjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1zU2VsZlN0YXJ0Ij48L2Rpdj4KKyAg
PGRpdiBpZD0icGxhY2VJdGVtc1N0cmV0Y2giPjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1z
U3RhcnRFbmQiPjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1zU3RhcnRTZWxmRW5kIj48L2Rp
dj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc1N0YXJ0QmFzZWxpbmUiPjwvZGl2PgorCisgIDxkaXYg
aWQ9InBsYWNlSXRlbXNFbXB0eSI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNBdXRvIj48
L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc05vbmUiPjwvZGl2PgorICA8ZGl2IGlkPSJwbGFj
ZUl0ZW1zU2FmZSI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNTdGFydFNhZmUiPjwvZGl2
PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1zQmFzZWxpbmVTYWZlIj48L2Rpdj4KKyAgPGRpdiBpZD0i
cGxhY2VJdGVtc1N0YXJ0RW5kTGVmdCI+PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gY2hlY2tQ
bGFjZUl0ZW1zVmFsdWVzKGVsZW1lbnQsIHZhbHVlLCBhbGlnblZhbHVlLCBqdXN0aWZ5VmFsdWUp
IHsKKyAgdmFyIHJlcyA9IHZhbHVlLnNwbGl0KCIgIik7CisgIGlmIChyZXMubGVuZ3RoIDwgMikK
KyAgICByZXNbMV0gPSByZXNbMF07CisgIGNoZWNrVmFsdWVzKGVsZW1lbnQsICJhbGlnbkl0ZW1z
IiwgImFsaWduLWl0ZW1zIiwgcmVzWzBdLCBhbGlnblZhbHVlKTsKKyAgY2hlY2tWYWx1ZXMoZWxl
bWVudCwgImp1c3RpZnlJdGVtcyIsICJqdXN0aWZ5LWl0ZW1zIiwgcmVzWzFdLCBqdXN0aWZ5VmFs
dWUpOworfQorCitmdW5jdGlvbiBjaGVja1BsYWNlSXRlbXNWYWx1ZXNKUyh2YWx1ZSwgYWxpZ25W
YWx1ZSwganVzdGlmeVZhbHVlKQoreworICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgIGVsZW1l
bnQuc3R5bGUucGxhY2VJdGVtcyA9IHZhbHVlOworICBjaGVja1ZhbHVlcyhlbGVtZW50LCAicGxh
Y2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsIHZhbHVlLCBhbGlnblZhbHVlICsgJyAnICsganVzdGlm
eVZhbHVlKQorICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMoZWxlbWVudCwgdmFsdWUsIGFsaWduVmFs
dWUsIGp1c3RpZnlWYWx1ZSkKK30KKworZnVuY3Rpb24gY2hlY2tQbGFjZUl0ZW1zVmFsdWVzQmFk
SlModmFsdWUpCit7CisgIGVsZW1lbnQuc3R5bGUucGxhY2VJdGVtcyA9ICIiOworICBlbGVtZW50
LnN0eWxlLnBsYWNlSXRlbXMgPSB2YWx1ZTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKGVsZW1l
bnQsICIiLCAibm9ybWFsIiwgIm5vcm1hbCIpCit9CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNo
ZWNrVmFsdWVzKHBsYWNlSXRlbXNOb3JtYWwsICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwg
IiIsICJub3JtYWwgbm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1z
Tm9ybWFsLCAiIiwgIm5vcm1hbCIsICJub3JtYWwiKTsKK30sICJUZXN0IGdldHRpbmcgdGhlIENv
bXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNl
dHRpbmcgJ25vcm1hbCcgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7
CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNDZW50ZXJBdXRvLCAicGxhY2VJdGVtcyIsICJwbGFj
ZS1pdGVtcyIsICIiLCAiY2VudGVyIG5vcm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMo
cGxhY2VJdGVtc0NlbnRlckF1dG8sICIiLCAiY2VudGVyIiwgIm5vcm1hbCIpOworfSwgIlRlc3Qg
Z2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9w
ZXJ0aWVzIHdoZW4gc2V0dGluZyAnY2VudGVyIGF1dG8nIHZhbHVlIHRocm91Z2ggQ1NTLiIpOwor
Cit0ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zQmFzZWxpbmUsICJw
bGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJiYXNlbGluZSBiYXNlbGluZSIpOworICBj
aGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc0Jhc2VsaW5lLCAiIiwgImJhc2VsaW5lIiwg
ImJhc2VsaW5lIik7Cit9LCAiVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFj
ZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdiYXNlbGluZScgdmFs
dWUgdGhyb3VnaCBDU1MuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBs
YWNlSXRlbXNGaXJzdEJhc2VsaW5lLCAicGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAi
YmFzZWxpbmUgYmFzZWxpbmUiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNG
aXJzdEJhc2VsaW5lLCAiIiwgImJhc2VsaW5lIiwgImJhc2VsaW5lIik7Cit9LCAiVGVzdCBnZXR0
aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRp
ZXMgd2hlbiBzZXR0aW5nICdmaXJzdCBiYXNlbGluZScgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisK
K3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNMYXN0QmFzZWxpbmUs
ICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJsYXN0IGJhc2VsaW5lIGxhc3QgYmFz
ZWxpbmUiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNMYXN0QmFzZWxpbmUs
ICIiLCAibGFzdCBiYXNlbGluZSIsICJsYXN0IGJhc2VsaW5lIik7Cit9LCAiVGVzdCBnZXR0aW5n
IHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMg
d2hlbiBzZXR0aW5nICdsYXN0IGJhc2VsaW5lJyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVz
dChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0LCAicGxhY2VJdGVt
cyIsICJwbGFjZS1pdGVtcyIsICIiLCAic3RhcnQgc3RhcnQiKTsKKyAgY2hlY2tQbGFjZUl0ZW1z
VmFsdWVzKHBsYWNlSXRlbXNTdGFydCwgIiIsICJzdGFydCIsICJzdGFydCIpOworfSwgIlRlc3Qg
Z2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9w
ZXJ0aWVzIHdoZW4gc2V0dGluZyAnc3RhcnQnIHZhbHVlIHRocm91Z2ggQ1NTLiIpOworCit0ZXN0
KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zRmxleFN0YXJ0LCAicGxhY2VJ
dGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAiZmxleC1zdGFydCBmbGV4LXN0YXJ0Iik7CisgIGNo
ZWNrUGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zRmxleFN0YXJ0LCAiIiwgImZsZXgtc3RhcnQi
LCAiZmxleC1zdGFydCIpOworfSwgIlRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2Yg
cGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnZmxleC1zdGFy
dCcgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFs
dWVzKHBsYWNlSXRlbXNFbmQsICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJlbmQg
ZW5kIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zRW5kLCAiIiwgImVuZCIs
ICJlbmQiKTsKK30sICJUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0
ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ2VuZCcgdmFsdWUgdGhyb3Vn
aCBDU1MuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNT
ZWxmU3RhcnQsICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJzZWxmLXN0YXJ0IHNl
bGYtc3RhcnQiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNTZWxmU3RhcnQs
ICIiLCAic2VsZi1zdGFydCIsICJzZWxmLXN0YXJ0Iik7Cit9LCAiVGVzdCBnZXR0aW5nIHRoZSBD
b21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBz
ZXR0aW5nICdzZWxmLXN0YXJ0JyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlv
bigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc1N0cmV0Y2gsICJwbGFjZUl0ZW1zIiwgInBs
YWNlLWl0ZW1zIiwgIiIsICJzdHJldGNoIHN0cmV0Y2giKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFs
dWVzKHBsYWNlSXRlbXNTdHJldGNoLCAiIiwgInN0cmV0Y2giLCAic3RyZXRjaCIpOworfSwgIlRl
c3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBw
cm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnc3RyZXRjaCcgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisK
K3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNTdGFydEVuZCwgInBs
YWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgInN0YXJ0IGVuZCIpOworICBjaGVja1BsYWNl
SXRlbXNWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0RW5kLCAiIiwgInN0YXJ0IiwgImVuZCIpOworfSwg
IlRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFu
ZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnc3RhcnQgZW5kJyB2YWx1ZSB0aHJvdWdoIENTUy4i
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0U2Vs
ZkVuZCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgInN0YXJ0IHNlbGYtZW5kIik7
CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zU3RhcnRTZWxmRW5kLCAiIiwgInN0
YXJ0IiwgInNlbGYtZW5kIik7Cit9LCAiVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBv
ZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzdGFydCBz
ZWxmLWVuZCcgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNo
ZWNrVmFsdWVzKHBsYWNlSXRlbXNTdGFydEJhc2VsaW5lLCAicGxhY2VJdGVtcyIsICJwbGFjZS1p
dGVtcyIsICIiLCAic3RhcnQgYmFzZWxpbmUiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBs
YWNlSXRlbXNTdGFydEJhc2VsaW5lLCAiIiwgInN0YXJ0IiwgImJhc2VsaW5lIik7Cit9LCAiVGVz
dCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHBy
b3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzdGFydCBiYXNlbGluZScgdmFsdWUgdGhyb3VnaCBDU1Mu
Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNBdXRvLCAi
cGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAibm9ybWFsIG5vcm1hbCIpOworICBjaGVj
a1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc0F1dG8sICIiLCAibm9ybWFsIiwgIm5vcm1hbCIp
OworfSwgIlRlc3Qgc2V0dGluZyAnJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1MuIik7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNBdXRvLCAicGxh
Y2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAibm9ybWFsIG5vcm1hbCIpOworICBjaGVja1Bs
YWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc0F1dG8sICIiLCAibm9ybWFsIiwgIm5vcm1hbCIpOwor
fSwgIlRlc3Qgc2V0dGluZyAnYXV0bycgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91Z2ggQ1NTLiIp
OworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zTm9uZSwgInBs
YWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgIm5vcm1hbCBub3JtYWwiKTsKKyAgY2hlY2tQ
bGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNOb25lLCAiIiwgIm5vcm1hbCIsICJub3JtYWwiKTsK
K30sICJUZXN0IHNldHRpbmcgJ25vbmUnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4i
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc1NhZmUsICJw
bGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJub3JtYWwgbm9ybWFsIik7CisgIGNoZWNr
UGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zU2FmZSwgIiIsICJub3JtYWwiLCAibm9ybWFsIik7
Cit9LCAiVGVzdCBzZXR0aW5nICdzYWZlJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1Mu
Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNTdGFydFNh
ZmUsICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJub3JtYWwgbm9ybWFsIik7Cisg
IGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zU3RhcnRTYWZlLCAiIiwgIm5vcm1hbCIs
ICJub3JtYWwiKTsKK30sICJUZXN0IHNldHRpbmcgJ3N0YXJ0IHNhZmUnIGFzIGluY29ycmVjdCB2
YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMo
cGxhY2VJdGVtc1N0YXJ0U2FmZSwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgIm5v
cm1hbCBub3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNTdGFydFNh
ZmUsICIiLCAibm9ybWFsIiwgIm5vcm1hbCIpOworfSwgIlRlc3Qgc2V0dGluZyAnYmFzZWxpbmUg
c2FmZScgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91Z2ggQ1NTLiIpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zU3RhcnRFbmRMZWZ0LCAicGxhY2VJdGVtcyIs
ICJwbGFjZS1pdGVtcyIsICIiLCAibm9ybWFsIG5vcm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNW
YWx1ZXMocGxhY2VJdGVtc1N0YXJ0RW5kTGVmdCwgIiIsICJub3JtYWwiLCAibm9ybWFsIik7Cit9
LCAiVGVzdCBzZXR0aW5nICdzdGFydCBlbmQgbGVmdCcgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91
Z2ggQ1NTLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXNK
UygiY2VudGVyIiwgImNlbnRlciIsICJjZW50ZXIiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVz
SlMoImNlbnRlciBzdGFydCIsICJjZW50ZXIiLCAic3RhcnQiKTsKKyAgY2hlY2tQbGFjZUl0ZW1z
VmFsdWVzSlMoInNlbGYtc3RhcnQgZW5kIiwgInNlbGYtc3RhcnQiLCAiZW5kIik7CisgIGNoZWNr
UGxhY2VJdGVtc1ZhbHVlc0pTKCJub3JtYWwgZW5kIiwgIm5vcm1hbCIsICJlbmQiKTsKK30sICJU
ZXN0IHNldHRpbmcgdmFsdWVzIHRocm91Z2ggSlMuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
IGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0JhZEpTKCJhdXRvIG5vcm1hbCIsICJub3JtYWwiLCAibm9y
bWFsIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0JhZEpTKCJzcGFjZS1iZXR3ZWVuIiwgIm5v
cm1hbCIsICJub3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzQmFkSlMoImNlbnRlciBz
YWZlIiwgIm5vcm1hbCIsICJub3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzQmFkSlMo
ImNlbnRlciBzZWxmLXN0YXJ0IGNlbnRlciIsICJub3JtYWwiLCAibm9ybWFsIik7CisgIGNoZWNr
UGxhY2VJdGVtc1ZhbHVlc0JhZEpTKCJhc3J0IiwgIm5vcm1hbCIsICJub3JtYWwiKTsKKyAgY2hl
Y2tQbGFjZUl0ZW1zVmFsdWVzQmFkSlMoImF1dG8iLCAibm9ybWFsIiwgIm5vcm1hbCIpOworICBj
aGVja1BsYWNlSXRlbXNWYWx1ZXNCYWRKUygiMTBweCIsICJub3JtYWwiLCAibm9ybWFsIik7Cisg
IGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0JhZEpTKCJzdHJldGNoIHNhZmUiLCAibm9ybWFsIiwgIm5v
cm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXNCYWRKUygic2VsZi1zdGFydCBzdGFydCBl
bmQiLCAibm9ybWFsIiwgIm5vcm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXNCYWRKUygi
IiwgIm5vcm1hbCIsICJub3JtYWwiKTsKK30sICJUZXN0IHNldHRpbmcgaW5jb3JyZWN0IHZhbHVl
cyB0aHJvdWdoIEpTLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CisgIGNoZWNrVmFsdWVzKGVsZW1lbnQsICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1z
IiwgIiIsICJub3JtYWwgbm9ybWFsIik7CisgIGVsZW1lbnQuc3R5bGUucGxhY2VJdGVtcyA9ICJj
ZW50ZXIiOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMoZWxlbWVudCwgImNlbnRlciIsICJjZW50
ZXIiLCAiY2VudGVyIik7CisgIGVsZW1lbnQuc3R5bGUucGxhY2VJdGVtcyA9ICJpbml0aWFsIjsK
KyAgY2hlY2tWYWx1ZXMoZWxlbWVudCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiaW5p
dGlhbCIsICJub3JtYWwgbm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhlbGVtZW50
LCAiaW5pdGlhbCIsICJub3JtYWwiLCAibm9ybWFsIik7Cit9LCAiVGVzdCB0aGUgJ2luaXRpYWwn
IHZhbHVlIG9mIHRoZSBwbGFjZS1pdGVtcyBzaG9ydGhhbmQgYW5kIGl0cyBsb25naGFuZCBwcm9w
ZXJ0aWVzJyBDb21wdXRlZCB2YWx1ZSIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBkb2N1bWVu
dC5ib2R5LnN0eWxlLnBsYWNlSXRlbXMgPSAic3RhcnQiOworICB2YXIgYW5vdGhlckVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChhbm90aGVyRWxlbWVudCk7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhhbm90aGVyRWxl
bWVudCwgIiIsICJub3JtYWwiLCAibm9ybWFsIik7CisgIGFub3RoZXJFbGVtZW50LnN0eWxlLnBs
YWNlSXRlbXMgPSAiaW5oZXJpdCI7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhhbm90aGVyRWxl
bWVudCwgImluaGVyaXQiLCAic3RhcnQiLCAic3RhcnQiKTsKK30sICJUZXN0IHRoZSAnaW5oZXJp
dCcgdmFsdWUgb2YgdGhlIHBsYWNlLWl0ZW1zIHNob3J0aGFuZCBhbmQgaXRzIGxvbmdoYW5kIHBy
b3BlcnRpZXMnIENvbXB1dGVkIHZhbHVlIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306276</attachid>
            <date>2017-04-05 02:37:05 -0700</date>
            <delta_ts>2017-04-05 13:44:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168847-20170405113703.patch</filename>
            <type>text/plain</type>
            <size>24227</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0ODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFjYTUwNTE2M2M1MTk4
ODNjN2VmZWE3MDFkYmQzMjVkNWU4NTMzMi4uMDJkMDA4NWZlN2U1YjYzMzA2MmRlNTk0YzcxMDQ2
NTgzY2VhNDYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE3LTA0LTA0ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtYWxp
Z25dIEltcGxlbWVudCB0aGUgcGxhY2UtaXRlbXMgc2hvcnRoYW5kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4NDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgQ1NTIEJveCBBbGlnbm1lbnQgc3Bl
Y2lmaWNhdGlvbiBkZWZpbmVzIGEgbmV3IHNob3J0aGFuZCB0byBzZXQgdGhlCisgICAgICAgIENv
bnRlbnQgQWxpZ25tZW50IHByb3BlcnRpZXMgKGFsaWduLWl0ZW1zIGFuZCBqdXN0aWZ5LWl0ZW1z
KSBhdCB0aGUKKyAgICAgICAgc2FtZSB0aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcHJvdmlk
ZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBDU1MgcGFyc2luZyBsb2dpYyBhbmQgdGhlCisg
ICAgICAgIHJlcXVpcmVkIHJlZ3Jlc3Npb24gdGVzdHMuIEZvciB0aGUgdGltZSBiZWluZywgYXMg
aXQgaGFwcGVucyB3aXRoIHRoZQorICAgICAgICByZXN0IG9mIHRoZSBuZXcgYWxpZ25tZW50IHBy
b3BlcnRpZXMsIHRoZSBuZXcgcGFyc2luZyBsb2dpYyBpcworICAgICAgICBpbXBsZW1lbnRlZCBi
ZWhpbmQgdGhlIENTUyBHcmlkIExheW91dCBydW50aW1lIGZsYWcuCisKKyAgICAgICAgVGVzdDog
Y3NzMy9wYXJzZS1wbGFjZS1pdGVtcy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRy
YWN0b3I6OnByb3BlcnR5VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0aWVzLmpzb246
CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVQcm9wZXJ0aWVzOjpnZXRBbGlnbm1lbnRTaG9ydGhhbmRWYWx1ZSk6CisgICAgICAgICogY3Nz
L1N0eWxlUHJvcGVydGllcy5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBdXRvT3JOb3JtYWxPclN0cmV0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3VtZVNlbGZQb3NpdGlvbk92ZXJmbG93UG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3VtZVNpbXBsaWZpZWRJdGVtUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVQbGFjZUl0ZW1zU2hvcnRoYW5kKToK
KyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmg6CisKIDIwMTctMDQtMDQg
IFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgV2luZG93cyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDdmOGY3OWM1NzVlMTQ3ZTNlMDBlMmNiMmJi
OTI3OGUwMWI5ZWQ3ODUuLmY5YTk3MzNlNjBkZjViMWUyNTVhYWM3NzYwMmRmMjJkYmUzYTA4MTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC0zMjcsNiArMzI3LDcgQEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29t
cHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVydHlKdXN0aWZ5U2VsZiwKICAgICBD
U1NQcm9wZXJ0eUp1c3RpZnlJdGVtcywKICAgICBDU1NQcm9wZXJ0eVBsYWNlQ29udGVudCwKKyAg
ICBDU1NQcm9wZXJ0eVBsYWNlSXRlbXMsCiAjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKICAg
ICBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tkcm9wRmlsdGVyLAogI2VuZGlmCkBAIC0yOTUwLDYgKzI5
NTEsOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELAogICAgICAgICAgICAgcmV0dXJuIHZhbHVl
Rm9ySXRlbVBvc2l0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KHJlc29sdmVKdXN0aWZ5U2VsZkF1
dG8oc3R5bGUtPmp1c3RpZnlTZWxmKCksIHN0eWxlZEVsZW1lbnQtPnBhcmVudE5vZGUoKSkpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGxhY2VDb250ZW50OgogICAgICAgICAgICAgcmV0dXJu
IGdldENTU1Byb3BlcnR5VmFsdWVzRm9yU2hvcnRoYW5kUHJvcGVydGllcyhwbGFjZUNvbnRlbnRT
aG9ydGhhbmQoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQbGFjZUl0ZW1zOgorICAgICAg
ICAgICAgcmV0dXJuIGdldENTU1Byb3BlcnR5VmFsdWVzRm9yU2hvcnRoYW5kUHJvcGVydGllcyhw
bGFjZUl0ZW1zU2hvcnRoYW5kKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5T3JkZXI6CiAg
ICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLT5vcmRlcigp
LCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlGbG9hdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpz
b24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IGI5ZDY5OTIw
MThiZWU0ODI4ZmE1YjE4OTMyZTdhODJmNzQ4OTFjYjEuLjM3NzMwYjZkZWVhZDg4YzZhMDNjZDIz
NTQxZTA5MzI5NDM2MjFkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgpA
QCAtNDY3Nyw2ICs0Njc3LDE4IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3
dy53My5vcmcvVFIvY3NzLWFsaWduLTMvI3Byb3BkZWYtcGxhY2UtY29udGVudCIKICAgICAgICAg
ICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgInBsYWNlLWl0ZW1zIjogeworICAgICAgICAgICAg
ImNvZGVnZW4tcHJvcGVydGllcyI6IHsKKyAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwor
ICAgICAgICAgICAgICAgICAgICAiYWxpZ24taXRlbXMiLAorICAgICAgICAgICAgICAgICAgICAi
anVzdGlmeS1pdGVtcyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgInNwZWNpZmljYXRpb24iOiB7CisgICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNz
cy1hbGlnbiIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLWFsaWduLTMvI3Byb3BkZWYtcGxhY2UtaXRlbXMiCisgICAgICAgICAgICB9CisgICAg
ICAgIH0sCiAgICAgICAgICJncmlkIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGll
cyI6IHsKICAgICAgICAgICAgICAgICAibG9uZ2hhbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBkYTE4NDlhYWI0ZWZlMDViMDYwMTVkZDIwYzVjZTIyODM5
MTdkZDZlLi5hM2ExMGE2N2ZkYjFlMDQwY2Y4NWNjZGM3MjRmZjAxMmEwZTU4OWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMTg2LDcgKzE4Niw5IEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlEKSBjb25zdAogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkUm93OgogICAgICAgICByZXR1cm4g
Z2V0U2hvcnRoYW5kVmFsdWUoZ3JpZFJvd1Nob3J0aGFuZCgpKTsKICAgICBjYXNlIENTU1Byb3Bl
cnR5UGxhY2VDb250ZW50OgotICAgICAgICByZXR1cm4gcGxhY2VDb250ZW50UHJvcGVydHlWYWx1
ZSgpOworICAgICAgICByZXR1cm4gZ2V0QWxpZ25tZW50U2hvcnRoYW5kVmFsdWUocGxhY2VDb250
ZW50U2hvcnRoYW5kKCkpOworICAgIGNhc2UgQ1NTUHJvcGVydHlQbGFjZUl0ZW1zOgorICAgICAg
ICByZXR1cm4gZ2V0QWxpZ25tZW50U2hvcnRoYW5kVmFsdWUocGxhY2VJdGVtc1Nob3J0aGFuZCgp
KTsKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udDoKICAgICAgICAgcmV0dXJuIGZvbnRWYWx1ZSgp
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW46CkBAIC01ODMsMTEgKzU4NSwxMSBAQCBTdHJp
bmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRDb21tb25WYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hv
cnRoYW5kJiBzaG9ydGhhbmQpCiAgICAgcmV0dXJuIHJlczsKIH0KIAotU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6cGxhY2VDb250ZW50UHJvcGVydHlWYWx1ZSgpIGNvbnN0CitTdHJpbmcgU3R5bGVQ
cm9wZXJ0aWVzOjpnZXRBbGlnbm1lbnRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kJiBzaG9ydGhhbmQpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHZhbHVlID0gZ2V0Q29t
bW9uVmFsdWUocGxhY2VDb250ZW50U2hvcnRoYW5kKCkpOworICAgIFN0cmluZyB2YWx1ZSA9IGdl
dENvbW1vblZhbHVlKHNob3J0aGFuZCk7CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpIHx8IHZhbHVl
LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGdldFNob3J0aGFuZFZhbHVlKHBsYWNlQ29udGVu
dFNob3J0aGFuZCgpKTsKKyAgICAgICAgcmV0dXJuIGdldFNob3J0aGFuZFZhbHVlKHNob3J0aGFu
ZCk7CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVz
LmgKaW5kZXggNDgxZmE3OTc0OTRhMTZlYjVhYzQ0Y2JlOTkzNjIwMTMzZGRmNzY0Mi4uZmQ5ZmNh
MzAyZTM2ODlhNGVmN2RjOGExYTc3OGVmNjkxZTU5ZGZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVByb3BlcnRpZXMuaApAQCAtMTU3LDcgKzE1Nyw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAg
ICAgU3RyaW5nIGdldFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQm
KSBjb25zdDsKICAgICBTdHJpbmcgZ2V0Q29tbW9uVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZCYpIGNvbnN0OwotICAgIFN0cmluZyBwbGFjZUNvbnRlbnRQcm9wZXJ0eVZhbHVlKCkg
Y29uc3Q7CisgICAgU3RyaW5nIGdldEFsaWdubWVudFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxl
UHJvcGVydHlTaG9ydGhhbmQmKSBjb25zdDsKICAgICBlbnVtIENvbW1vblZhbHVlTW9kZSB7IE9t
aXRVbmNvbW1vblZhbHVlcywgUmV0dXJuTnVsbE9uVW5jb21tb25WYWx1ZXMgfTsKICAgICBTdHJp
bmcgYm9yZGVyUHJvcGVydHlWYWx1ZShDb21tb25WYWx1ZU1vZGUpIGNvbnN0OwogICAgIFN0cmlu
ZyBnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
LmNwcAppbmRleCBmMjc0NTVmMTM3NmJiNzk3ZGMwNjIyZDdlNGI1ZjE4ZTUxOWFhNWQxLi5jZWIz
YzhkYWRiOWRkYzJhYzBjNWQ3NTVjYTQ2YjdmMGY1YmJjYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjYxOSw2ICsyNjE5LDEx
IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVTaGFwZU91dHNpZGUoQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTCiAgICAgcmV0dXJuIGxpc3Q7CiB9CiAKK3N0YXRp
YyBib29sIGlzQXV0b09yTm9ybWFsT3JTdHJldGNoKENTU1ZhbHVlSUQgaWQpCit7CisgICAgcmV0
dXJuIGlkZW50TWF0Y2hlczxDU1NWYWx1ZUF1dG8sIENTU1ZhbHVlTm9ybWFsLCBDU1NWYWx1ZVN0
cmV0Y2g+KGlkKTsKK30KKwogc3RhdGljIGJvb2wgaXNDb250ZW50RGlzdHJpYnV0aW9uS2V5d29y
ZChDU1NWYWx1ZUlEIGlkKQogewogICAgIHJldHVybiBpZGVudE1hdGNoZXM8Q1NTVmFsdWVTcGFj
ZUJldHdlZW4sIENTU1ZhbHVlU3BhY2VBcm91bmQsIENTU1ZhbHVlU3BhY2VFdmVubHksIENTU1Zh
bHVlU3RyZXRjaD4oaWQpOwpAQCAtMzA3NSw3ICszMDgwLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gY29uc3VtZVNlbGZQb3NpdGlvbktleXdvcmQoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVTZWxmUG9zaXRpb25PdmVyZmxv
d1Bvc2l0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIENTU1ZhbHVlSUQg
aWQgPSByYW5nZS5wZWVrKCkuaWQoKTsKLSAgICBpZiAoaWRlbnRNYXRjaGVzPENTU1ZhbHVlQXV0
bywgQ1NTVmFsdWVOb3JtYWwsIENTU1ZhbHVlU3RyZXRjaD4oaWQpKQorICAgIGlmIChpc0F1dG9P
ck5vcm1hbE9yU3RyZXRjaChpZCkpCiAgICAgICAgIHJldHVybiBjb25zdW1lSWRlbnQocmFuZ2Up
OwogCiAgICAgaWYgKGlzQmFzZWxpbmVLZXl3b3JkKGlkKSkKQEAgLTU1MDUsNiArNTUxMCw0MSBA
QCBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lUGxhY2VDb250ZW50U2hvcnRoYW5kKGJv
b2wgaW1wb3J0YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgUmVmUHRyPENTU1Zh
bHVlPiBjb25zdW1lU2ltcGxpZmllZEl0ZW1Qb3NpdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKK3sKKyAgICBDU1NWYWx1ZUlEIGlkID0gcmFuZ2UucGVlaygpLmlkKCk7CisgICAgaWYg
KGlzQXV0b09yTm9ybWFsT3JTdHJldGNoKGlkKSkKKyAgICAgICAgcmV0dXJuIGNvbnN1bWVJZGVu
dChyYW5nZSk7CisKKyAgICBpZiAoaXNCYXNlbGluZUtleXdvcmQoaWQpKQorICAgICAgICByZXR1
cm4gY29uc3VtZUJhc2VsaW5lS2V5d29yZChyYW5nZSk7CisKKyAgICByZXR1cm4gY29uc3VtZVNl
bGZQb3NpdGlvbktleXdvcmQocmFuZ2UpOworfQorCitib29sIENTU1Byb3BlcnR5UGFyc2VyOjpj
b25zdW1lUGxhY2VJdGVtc1Nob3J0aGFuZChib29sIGltcG9ydGFudCkKK3sKKyAgICBBU1NFUlQo
c2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlQbGFjZUl0ZW1zKS5sZW5ndGgoKSA9PSAy
KTsKKworICAgIC8vIGFsaWduLWl0ZW1zIHByb3BlcnR5IGRvZXMgbm90IGFsbG93IHRoZSAnYXV0
bycgdmFsdWUuCisgICAgaWYgKGlkZW50TWF0Y2hlczxDU1NWYWx1ZUF1dG8+KG1fcmFuZ2UucGVl
aygpLmlkKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+
IGFsaWduSXRlbXNWYWx1ZSA9IGNvbnN1bWVTaW1wbGlmaWVkSXRlbVBvc2l0aW9uKG1fcmFuZ2Up
OworICAgIGlmICghYWxpZ25JdGVtc1ZhbHVlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
UmVmUHRyPENTU1ZhbHVlPiBqdXN0aWZ5SXRlbXNWYWx1ZSA9IG1fcmFuZ2UuYXRFbmQoKSA/IGFs
aWduSXRlbXNWYWx1ZSA6IGNvbnN1bWVTaW1wbGlmaWVkSXRlbVBvc2l0aW9uKG1fcmFuZ2UpOwor
ICAgIGlmICghanVzdGlmeUl0ZW1zVmFsdWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghbV9yYW5nZS5hdEVuZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhZGRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUFsaWduSXRlbXMsIENTU1Byb3BlcnR5UGxhY2VJdGVtcywgYWxp
Z25JdGVtc1ZhbHVlLnJlbGVhc2VOb25OdWxsKCksIGltcG9ydGFudCk7CisgICAgYWRkUHJvcGVy
dHkoQ1NTUHJvcGVydHlKdXN0aWZ5SXRlbXMsIENTU1Byb3BlcnR5UGxhY2VJdGVtcywganVzdGlm
eUl0ZW1zVmFsdWUucmVsZWFzZU5vbk51bGwoKSwgaW1wb3J0YW50KTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9ydGhhbmQoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgc3dpdGNoIChwcm9wZXJ0eSkg
ewpAQCAtNTY4OCw2ICs1NzI4LDggQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaG9y
dGhhbmQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIHJl
dHVybiBjb25zdW1lR3JpZFNob3J0aGFuZChpbXBvcnRhbnQpOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlQbGFjZUNvbnRlbnQ6CiAgICAgICAgIHJldHVybiBjb25zdW1lUGxhY2VDb250ZW50U2hvcnRo
YW5kKGltcG9ydGFudCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVBsYWNlSXRlbXM6CisgICAgICAg
IHJldHVybiBjb25zdW1lUGxhY2VJdGVtc1Nob3J0aGFuZChpbXBvcnRhbnQpOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRNYXJxdWVlOgogICAgICAgICByZXR1cm4gY29uc3VtZVNob3J0aGFu
ZEdyZWVkaWx5KHdlYmtpdE1hcnF1ZWVTaG9ydGhhbmQoKSwgaW1wb3J0YW50KTsKICAgICBkZWZh
dWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCmlu
ZGV4IGJkZGUxOWMxNTY2MzdhOTc2OWU1MzUzNzllNDdmYjhjNzg4ZTY3MGIuLjEwMjY5Y2Q0MGMw
NDEzMjU0MGViMzQ1NzllOWVjNDgyMTBiMDE4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKQEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIGNvbnN1bWVHcmlkQXJlYVNob3J0aGFuZChib29sIGltcG9ydGFudCk7CiAKICAgICBi
b29sIGNvbnN1bWVQbGFjZUNvbnRlbnRTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOworICAgIGJv
b2wgY29uc3VtZVBsYWNlSXRlbXNTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwogCiAgICAgYm9v
bCBjb25zdW1lRm9udChib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBjb25zdW1lRm9udFZhcmlh
bnRTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFjMzYwNDc5Njc0MDk0MzMxMTE0
NGFlMGQxZjdhMmI1ODBiMTcxMjIuLjI4ZDA0NTJmNzkxZmM5NmUxNGI2MzJhZjcwOTljYWQ0Mjc2
NDM1ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNC0wNCAgSmF2aWVyIEZlcm5hbmRl
eiAgPGpmZXJuYW5kZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLWFsaWduXSBJbXBsZW1l
bnQgdGhlIHBsYWNlLWl0ZW1zIHNob3J0aGFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4ODQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVncmVzc2lvbiB0ZXN0cyBmb3IgdGhlIG5ldyBwbGFjZS1j
b250ZW50IGFsaWdubWVudCBzaG9ydGhhbmQuCisKKyAgICAgICAgKiBjc3MzL3BhcnNlLXBsYWNl
LWl0ZW1zLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA0LTAzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJlLWFkZGluZyBmbGFreSB0aW1lb3V0IGV4cGVjdGF0
aW9uIGZvciBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJl
dmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL3BhcnNlLXBsYWNlLWl0ZW1zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NzczMvcGFyc2UtcGxhY2UtaXRlbXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzNjNi
YzhkY2YzZTY5N2UxNDNkMTJhOTFiYzYyZjJiZjdmYzQ1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL3BhcnNlLXBsYWNlLWl0ZW1zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI4IEBACitUZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBuZXcgcGxhY2UtaXRlbXMgYWxpZ25tZW50
IHNob3J0aGFuZCBpcyBwYXJzZWQgYXMgZXhwZWN0ZWQgYW5kIGNvcnJlY3RseSBzZXRzIHRoZSBs
b25naGFuZCB2YWx1ZXMuCisKKworUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVl
IG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ25vcm1h
bCcgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZh
bHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ2Nl
bnRlciBhdXRvJyB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3QgZ2V0dGluZyB0aGUgQ29t
cHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0
dGluZyAnYmFzZWxpbmUnIHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVzdCBnZXR0aW5nIHRo
ZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hl
biBzZXR0aW5nICdmaXJzdCBiYXNlbGluZScgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0
IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJv
cGVydGllcyB3aGVuIHNldHRpbmcgJ2xhc3QgYmFzZWxpbmUnIHZhbHVlIHRocm91Z2ggQ1NTLiAK
K1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxv
bmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzdGFydCcgdmFsdWUgdGhyb3VnaCBDU1Mu
IAorUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3Mg
bG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ2ZsZXgtc3RhcnQnIHZhbHVlIHRocm91
Z2ggQ1NTLiAKK1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1p
dGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdlbmQnIHZhbHVlIHRocm91
Z2ggQ1NTLiAKK1BBU1MgVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1p
dGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzZWxmLXN0YXJ0JyB2YWx1
ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2Yg
cGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnc3RyZXRjaCcg
dmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVl
IG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ3N0YXJ0
IGVuZCcgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVk
IFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcg
J3N0YXJ0IHNlbGYtZW5kJyB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3QgZ2V0dGluZyB0
aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdo
ZW4gc2V0dGluZyAnc3RhcnQgYmFzZWxpbmUnIHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVz
dCBzZXR0aW5nICcnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNTIFRlc3Qg
c2V0dGluZyAnYXV0bycgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91Z2ggQ1NTLiAKK1BBU1MgVGVz
dCBzZXR0aW5nICdub25lJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBU
ZXN0IHNldHRpbmcgJ3NhZmUnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4gCitQQVNT
IFRlc3Qgc2V0dGluZyAnc3RhcnQgc2FmZScgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91Z2ggQ1NT
LiAKK1BBU1MgVGVzdCBzZXR0aW5nICdiYXNlbGluZSBzYWZlJyBhcyBpbmNvcnJlY3QgdmFsdWUg
dGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IHNldHRpbmcgJ3N0YXJ0IGVuZCBsZWZ0JyBhcyBpbmNv
cnJlY3QgdmFsdWUgdGhyb3VnaCBDU1MuIAorUEFTUyBUZXN0IHNldHRpbmcgdmFsdWVzIHRocm91
Z2ggSlMuIAorUEFTUyBUZXN0IHNldHRpbmcgaW5jb3JyZWN0IHZhbHVlcyB0aHJvdWdoIEpTLiAK
K1BBU1MgVGVzdCB0aGUgJ2luaXRpYWwnIHZhbHVlIG9mIHRoZSBwbGFjZS1pdGVtcyBzaG9ydGhh
bmQgYW5kIGl0cyBsb25naGFuZCBwcm9wZXJ0aWVzJyBDb21wdXRlZCB2YWx1ZSAKK1BBU1MgVGVz
dCB0aGUgJ2luaGVyaXQnIHZhbHVlIG9mIHRoZSBwbGFjZS1pdGVtcyBzaG9ydGhhbmQgYW5kIGl0
cyBsb25naGFuZCBwcm9wZXJ0aWVzJyBDb21wdXRlZCB2YWx1ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9wYXJzZS1wbGFjZS1pdGVtcy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9w
YXJzZS1wbGFjZS1pdGVtcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlYzg3MjIyYzcxZDg1YjQ1ODc5ODI0
MzBiNWQ5Yzg0ZWQzZTc1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Bh
cnNlLXBsYWNlLWl0ZW1zLmh0bWwKQEAgLTAsMCArMSwyNjAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyNwbGFjZUl0ZW1zTm9ybWFsIHsKKyAgcGxhY2UtaXRl
bXM6IG5vcm1hbDsKK30KKyNwbGFjZUl0ZW1zQ2VudGVyQXV0byB7CisgIHBsYWNlLWl0ZW1zOiBj
ZW50ZXIgYXV0bzsKK30KKyNwbGFjZUl0ZW1zQmFzZWxpbmUgeworICBwbGFjZS1pdGVtczogYmFz
ZWxpbmU7Cit9CisjcGxhY2VJdGVtc0ZpcnN0QmFzZWxpbmUgeworICBwbGFjZS1pdGVtczogZmly
c3QgYmFzZWxpbmU7Cit9CisjcGxhY2VJdGVtc0xhc3RCYXNlbGluZSB7CisgIHBsYWNlLWl0ZW1z
OiBsYXN0IGJhc2VsaW5lOworfQorI3BsYWNlSXRlbXNTdGFydCB7CisgIHBsYWNlLWl0ZW1zOiBz
dGFydDsKK30KKyNwbGFjZUl0ZW1zRmxleFN0YXJ0IHsKKyAgcGxhY2UtaXRlbXM6IGZsZXgtc3Rh
cnQ7Cit9CisjcGxhY2VJdGVtc0VuZCB7CisgIHBsYWNlLWl0ZW1zOiBlbmQ7Cit9CisjcGxhY2VJ
dGVtc1NlbGZTdGFydCB7CisgIHBsYWNlLWl0ZW1zOiBzZWxmLXN0YXJ0OworfQorI3BsYWNlSXRl
bXNTdHJldGNoIHsKKyAgcGxhY2UtaXRlbXM6IHN0cmV0Y2g7Cit9CisjcGxhY2VJdGVtc1N0YXJ0
RW5kIHsKKyAgcGxhY2UtaXRlbXM6IHN0YXJ0IGVuZDsKK30KKyNwbGFjZUl0ZW1zU3RhcnRTZWxm
RW5kIHsKKyAgcGxhY2UtaXRlbXM6IHN0YXJ0IHNlbGYtZW5kOworfQorI3BsYWNlSXRlbXNTdGFy
dEJhc2VsaW5lIHsKKyAgcGxhY2UtaXRlbXM6IHN0YXJ0IGJhc2VsaW5lOworfQorCis8IS0tIElu
dmFsaWQgQ1NTIGNhc2VzIC0tPgorI3BsYWNlSXRlbXNFbXB0eSB7CisgIHBsYWNlLWl0ZW1zOjsK
K30KKyNwbGFjZUl0ZW1zQXV0byB7CisgIHBsYWNlLWl0ZW1zOiBhdXRvOworfQorI3BsYWNlSXRl
bXNOb25lIHsKKyAgcGxhY2UtaXRlbXM6IG5vbmU7Cit9CisjcGxhY2VJdGVtc1NhZmUgeworICBw
bGFjZS1pdGVtczogc2FmZTsKK30KKyNwbGFjZUl0ZW1zU3RhcnRTYWZlIHsKKyAgcGxhY2UtaXRl
bXM6IHN0YXJ0IHNhZmU7Cit9CisjcGxhY2VJdGVtc1N0YXJ0RW5kTGVmdCB7CisgIHBsYWNlLWl0
ZW1zOiBzdGFydCBlbmQgbGVmdDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9h
bGlnbm1lbnQtcGFyc2luZy11dGlscy10aC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgPHA+VGVzdCB0byB2ZXJpZnkgdGhhdCB0aGUgbmV3IHBsYWNlLWl0ZW1zIGFsaWdubWVudCBz
aG9ydGhhbmQgaXMgcGFyc2VkIGFzIGV4cGVjdGVkIGFuZCBjb3JyZWN0bHkgc2V0cyB0aGUgbG9u
Z2hhbmQgdmFsdWVzLjwvcD4KKyAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKworICA8ZGl2IGlkPSJw
bGFjZUl0ZW1zTm9ybWFsIj48L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc0NlbnRlckF1dG8i
PjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1zQmFzZWxpbmUiPjwvZGl2PgorICA8ZGl2IGlk
PSJwbGFjZUl0ZW1zRmlyc3RCYXNlbGluZSI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNM
YXN0QmFzZWxpbmUiPjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1zU3RhcnQiPjwvZGl2Pgor
ICA8ZGl2IGlkPSJwbGFjZUl0ZW1zRmxleFN0YXJ0Ij48L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJ
dGVtc0VuZCI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNTZWxmU3RhcnQiPjwvZGl2Pgor
ICA8ZGl2IGlkPSJwbGFjZUl0ZW1zU3RyZXRjaCI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRl
bXNTdGFydEVuZCI+PC9kaXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNTdGFydFNlbGZFbmQiPjwv
ZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1zU3RhcnRCYXNlbGluZSI+PC9kaXY+CisKKyAgPGRp
diBpZD0icGxhY2VJdGVtc0VtcHR5Ij48L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc0F1dG8i
PjwvZGl2PgorICA8ZGl2IGlkPSJwbGFjZUl0ZW1zTm9uZSI+PC9kaXY+CisgIDxkaXYgaWQ9InBs
YWNlSXRlbXNTYWZlIj48L2Rpdj4KKyAgPGRpdiBpZD0icGxhY2VJdGVtc1N0YXJ0U2FmZSI+PC9k
aXY+CisgIDxkaXYgaWQ9InBsYWNlSXRlbXNCYXNlbGluZVNhZmUiPjwvZGl2PgorICA8ZGl2IGlk
PSJwbGFjZUl0ZW1zU3RhcnRFbmRMZWZ0Ij48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjaGVj
a1BsYWNlSXRlbXNWYWx1ZXMoZWxlbWVudCwgdmFsdWUsIGFsaWduVmFsdWUsIGp1c3RpZnlWYWx1
ZSkgeworICB2YXIgcmVzID0gdmFsdWUuc3BsaXQoIiAiKTsKKyAgaWYgKHJlcy5sZW5ndGggPCAy
KQorICAgIHJlc1sxXSA9IHJlc1swXTsKKyAgY2hlY2tWYWx1ZXMoZWxlbWVudCwgImFsaWduSXRl
bXMiLCAiYWxpZ24taXRlbXMiLCByZXNbMF0sIGFsaWduVmFsdWUpOworICBjaGVja1ZhbHVlcyhl
bGVtZW50LCAianVzdGlmeUl0ZW1zIiwgImp1c3RpZnktaXRlbXMiLCByZXNbMV0sIGp1c3RpZnlW
YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0pTKHZhbHVlLCBhbGln
blZhbHVlLCBqdXN0aWZ5VmFsdWUpCit7CisgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgZWxl
bWVudC5zdHlsZS5wbGFjZUl0ZW1zID0gdmFsdWU7CisgIGNoZWNrVmFsdWVzKGVsZW1lbnQsICJw
bGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgdmFsdWUsIGFsaWduVmFsdWUgKyAnICcgKyBqdXN0
aWZ5VmFsdWUpCisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhlbGVtZW50LCB2YWx1ZSwgYWxpZ25W
YWx1ZSwganVzdGlmeVZhbHVlKQorfQorCitmdW5jdGlvbiBjaGVja1BsYWNlSXRlbXNWYWx1ZXNC
YWRKUyh2YWx1ZSkKK3sKKyAgZWxlbWVudC5zdHlsZS5wbGFjZUl0ZW1zID0gIiI7CisgIGVsZW1l
bnQuc3R5bGUucGxhY2VJdGVtcyA9IHZhbHVlOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMoZWxl
bWVudCwgIiIsICJub3JtYWwiLCAibm9ybWFsIikKK30KKwordGVzdChmdW5jdGlvbigpIHsKKyAg
Y2hlY2tWYWx1ZXMocGxhY2VJdGVtc05vcm1hbCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMi
LCAiIiwgIm5vcm1hbCBub3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRl
bXNOb3JtYWwsICIiLCAibm9ybWFsIiwgIm5vcm1hbCIpOworfSwgIlRlc3QgZ2V0dGluZyB0aGUg
Q29tcHV0ZWQgVmFsdWUgb2YgcGxhY2UtaXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4g
c2V0dGluZyAnbm9ybWFsJyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigp
IHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc0NlbnRlckF1dG8sICJwbGFjZUl0ZW1zIiwgInBs
YWNlLWl0ZW1zIiwgIiIsICJjZW50ZXIgbm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVl
cyhwbGFjZUl0ZW1zQ2VudGVyQXV0bywgIiIsICJjZW50ZXIiLCAibm9ybWFsIik7Cit9LCAiVGVz
dCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHBy
b3BlcnRpZXMgd2hlbiBzZXR0aW5nICdjZW50ZXIgYXV0bycgdmFsdWUgdGhyb3VnaCBDU1MuIik7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNCYXNlbGluZSwg
InBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgImJhc2VsaW5lIGJhc2VsaW5lIik7Cisg
IGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zQmFzZWxpbmUsICIiLCAiYmFzZWxpbmUi
LCAiYmFzZWxpbmUiKTsKK30sICJUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBs
YWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ2Jhc2VsaW5lJyB2
YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMo
cGxhY2VJdGVtc0ZpcnN0QmFzZWxpbmUsICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIs
ICJiYXNlbGluZSBiYXNlbGluZSIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVt
c0ZpcnN0QmFzZWxpbmUsICIiLCAiYmFzZWxpbmUiLCAiYmFzZWxpbmUiKTsKK30sICJUZXN0IGdl
dHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVy
dGllcyB3aGVuIHNldHRpbmcgJ2ZpcnN0IGJhc2VsaW5lJyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsK
KwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc0xhc3RCYXNlbGlu
ZSwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgImxhc3QgYmFzZWxpbmUgbGFzdCBi
YXNlbGluZSIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc0xhc3RCYXNlbGlu
ZSwgIiIsICJsYXN0IGJhc2VsaW5lIiwgImxhc3QgYmFzZWxpbmUiKTsKK30sICJUZXN0IGdldHRp
bmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGll
cyB3aGVuIHNldHRpbmcgJ2xhc3QgYmFzZWxpbmUnIHZhbHVlIHRocm91Z2ggQ1NTLiIpOworCit0
ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zU3RhcnQsICJwbGFjZUl0
ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJzdGFydCBzdGFydCIpOworICBjaGVja1BsYWNlSXRl
bXNWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0LCAiIiwgInN0YXJ0IiwgInN0YXJ0Iik7Cit9LCAiVGVz
dCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHBy
b3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzdGFydCcgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNGbGV4U3RhcnQsICJwbGFj
ZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJmbGV4LXN0YXJ0IGZsZXgtc3RhcnQiKTsKKyAg
Y2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNGbGV4U3RhcnQsICIiLCAiZmxleC1zdGFy
dCIsICJmbGV4LXN0YXJ0Iik7Cit9LCAiVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBv
ZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdmbGV4LXN0
YXJ0JyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tW
YWx1ZXMocGxhY2VJdGVtc0VuZCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgImVu
ZCBlbmQiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNFbmQsICIiLCAiZW5k
IiwgImVuZCIpOworfSwgIlRlc3QgZ2V0dGluZyB0aGUgQ29tcHV0ZWQgVmFsdWUgb2YgcGxhY2Ut
aXRlbXMncyBsb25naGFuZCBwcm9wZXJ0aWVzIHdoZW4gc2V0dGluZyAnZW5kJyB2YWx1ZSB0aHJv
dWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVt
c1NlbGZTdGFydCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgInNlbGYtc3RhcnQg
c2VsZi1zdGFydCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc1NlbGZTdGFy
dCwgIiIsICJzZWxmLXN0YXJ0IiwgInNlbGYtc3RhcnQiKTsKK30sICJUZXN0IGdldHRpbmcgdGhl
IENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVu
IHNldHRpbmcgJ3NlbGYtc3RhcnQnIHZhbHVlIHRocm91Z2ggQ1NTLiIpOworCit0ZXN0KGZ1bmN0
aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zU3RyZXRjaCwgInBsYWNlSXRlbXMiLCAi
cGxhY2UtaXRlbXMiLCAiIiwgInN0cmV0Y2ggc3RyZXRjaCIpOworICBjaGVja1BsYWNlSXRlbXNW
YWx1ZXMocGxhY2VJdGVtc1N0cmV0Y2gsICIiLCAic3RyZXRjaCIsICJzdHJldGNoIik7Cit9LCAi
VGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdoYW5k
IHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzdHJldGNoJyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsK
KwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0RW5kLCAi
cGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAic3RhcnQgZW5kIik7CisgIGNoZWNrUGxh
Y2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zU3RhcnRFbmQsICIiLCAic3RhcnQiLCAiZW5kIik7Cit9
LCAiVGVzdCBnZXR0aW5nIHRoZSBDb21wdXRlZCBWYWx1ZSBvZiBwbGFjZS1pdGVtcydzIGxvbmdo
YW5kIHByb3BlcnRpZXMgd2hlbiBzZXR0aW5nICdzdGFydCBlbmQnIHZhbHVlIHRocm91Z2ggQ1NT
LiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zU3RhcnRT
ZWxmRW5kLCAicGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAic3RhcnQgc2VsZi1lbmQi
KTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNTdGFydFNlbGZFbmQsICIiLCAi
c3RhcnQiLCAic2VsZi1lbmQiKTsKK30sICJUZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVl
IG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQgcHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ3N0YXJ0
IHNlbGYtZW5kJyB2YWx1ZSB0aHJvdWdoIENTUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
Y2hlY2tWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0QmFzZWxpbmUsICJwbGFjZUl0ZW1zIiwgInBsYWNl
LWl0ZW1zIiwgIiIsICJzdGFydCBiYXNlbGluZSIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMo
cGxhY2VJdGVtc1N0YXJ0QmFzZWxpbmUsICIiLCAic3RhcnQiLCAiYmFzZWxpbmUiKTsKK30sICJU
ZXN0IGdldHRpbmcgdGhlIENvbXB1dGVkIFZhbHVlIG9mIHBsYWNlLWl0ZW1zJ3MgbG9uZ2hhbmQg
cHJvcGVydGllcyB3aGVuIHNldHRpbmcgJ3N0YXJ0IGJhc2VsaW5lJyB2YWx1ZSB0aHJvdWdoIENT
Uy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc0F1dG8s
ICJwbGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJub3JtYWwgbm9ybWFsIik7CisgIGNo
ZWNrUGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zQXV0bywgIiIsICJub3JtYWwiLCAibm9ybWFs
Iik7Cit9LCAiVGVzdCBzZXR0aW5nICcnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENTUy4i
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc0F1dG8sICJw
bGFjZUl0ZW1zIiwgInBsYWNlLWl0ZW1zIiwgIiIsICJub3JtYWwgbm9ybWFsIik7CisgIGNoZWNr
UGxhY2VJdGVtc1ZhbHVlcyhwbGFjZUl0ZW1zQXV0bywgIiIsICJub3JtYWwiLCAibm9ybWFsIik7
Cit9LCAiVGVzdCBzZXR0aW5nICdhdXRvJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1Mu
Iik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNOb25lLCAi
cGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAibm9ybWFsIG5vcm1hbCIpOworICBjaGVj
a1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc05vbmUsICIiLCAibm9ybWFsIiwgIm5vcm1hbCIp
OworfSwgIlRlc3Qgc2V0dGluZyAnbm9uZScgYXMgaW5jb3JyZWN0IHZhbHVlIHRocm91Z2ggQ1NT
LiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVlcyhwbGFjZUl0ZW1zU2FmZSwg
InBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgIm5vcm1hbCBub3JtYWwiKTsKKyAgY2hl
Y2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNTYWZlLCAiIiwgIm5vcm1hbCIsICJub3JtYWwi
KTsKK30sICJUZXN0IHNldHRpbmcgJ3NhZmUnIGFzIGluY29ycmVjdCB2YWx1ZSB0aHJvdWdoIENT
Uy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgY2hlY2tWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0
U2FmZSwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRlbXMiLCAiIiwgIm5vcm1hbCBub3JtYWwiKTsK
KyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKHBsYWNlSXRlbXNTdGFydFNhZmUsICIiLCAibm9ybWFs
IiwgIm5vcm1hbCIpOworfSwgIlRlc3Qgc2V0dGluZyAnc3RhcnQgc2FmZScgYXMgaW5jb3JyZWN0
IHZhbHVlIHRocm91Z2ggQ1NTLiIpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBjaGVja1ZhbHVl
cyhwbGFjZUl0ZW1zU3RhcnRTYWZlLCAicGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICIiLCAi
bm9ybWFsIG5vcm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXMocGxhY2VJdGVtc1N0YXJ0
U2FmZSwgIiIsICJub3JtYWwiLCAibm9ybWFsIik7Cit9LCAiVGVzdCBzZXR0aW5nICdiYXNlbGlu
ZSBzYWZlJyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhyb3VnaCBDU1MuIik7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgIGNoZWNrVmFsdWVzKHBsYWNlSXRlbXNTdGFydEVuZExlZnQsICJwbGFjZUl0ZW1z
IiwgInBsYWNlLWl0ZW1zIiwgIiIsICJub3JtYWwgbm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVt
c1ZhbHVlcyhwbGFjZUl0ZW1zU3RhcnRFbmRMZWZ0LCAiIiwgIm5vcm1hbCIsICJub3JtYWwiKTsK
K30sICJUZXN0IHNldHRpbmcgJ3N0YXJ0IGVuZCBsZWZ0JyBhcyBpbmNvcnJlY3QgdmFsdWUgdGhy
b3VnaCBDU1MuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVl
c0pTKCJjZW50ZXIiLCAiY2VudGVyIiwgImNlbnRlciIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1
ZXNKUygiY2VudGVyIHN0YXJ0IiwgImNlbnRlciIsICJzdGFydCIpOworICBjaGVja1BsYWNlSXRl
bXNWYWx1ZXNKUygic2VsZi1zdGFydCBlbmQiLCAic2VsZi1zdGFydCIsICJlbmQiKTsKKyAgY2hl
Y2tQbGFjZUl0ZW1zVmFsdWVzSlMoIm5vcm1hbCBlbmQiLCAibm9ybWFsIiwgImVuZCIpOworfSwg
IlRlc3Qgc2V0dGluZyB2YWx1ZXMgdGhyb3VnaCBKUy4iKTsKKwordGVzdChmdW5jdGlvbigpIHsK
KyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzQmFkSlMoImF1dG8gbm9ybWFsIiwgIm5vcm1hbCIsICJu
b3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzQmFkSlMoInNwYWNlLWJldHdlZW4iLCAi
bm9ybWFsIiwgIm5vcm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXNCYWRKUygiY2VudGVy
IHNhZmUiLCAibm9ybWFsIiwgIm5vcm1hbCIpOworICBjaGVja1BsYWNlSXRlbXNWYWx1ZXNCYWRK
UygiY2VudGVyIHNlbGYtc3RhcnQgY2VudGVyIiwgIm5vcm1hbCIsICJub3JtYWwiKTsKKyAgY2hl
Y2tQbGFjZUl0ZW1zVmFsdWVzQmFkSlMoImFzcnQiLCAibm9ybWFsIiwgIm5vcm1hbCIpOworICBj
aGVja1BsYWNlSXRlbXNWYWx1ZXNCYWRKUygiYXV0byIsICJub3JtYWwiLCAibm9ybWFsIik7Cisg
IGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0JhZEpTKCIxMHB4IiwgIm5vcm1hbCIsICJub3JtYWwiKTsK
KyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzQmFkSlMoInN0cmV0Y2ggc2FmZSIsICJub3JtYWwiLCAi
bm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0JhZEpTKCJzZWxmLXN0YXJ0IHN0YXJ0
IGVuZCIsICJub3JtYWwiLCAibm9ybWFsIik7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlc0JhZEpT
KCIiLCAibm9ybWFsIiwgIm5vcm1hbCIpOworfSwgIlRlc3Qgc2V0dGluZyBpbmNvcnJlY3QgdmFs
dWVzIHRocm91Z2ggSlMuIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
bGVtZW50KTsKKyAgY2hlY2tWYWx1ZXMoZWxlbWVudCwgInBsYWNlSXRlbXMiLCAicGxhY2UtaXRl
bXMiLCAiIiwgIm5vcm1hbCBub3JtYWwiKTsKKyAgZWxlbWVudC5zdHlsZS5wbGFjZUl0ZW1zID0g
ImNlbnRlciI7CisgIGNoZWNrUGxhY2VJdGVtc1ZhbHVlcyhlbGVtZW50LCAiY2VudGVyIiwgImNl
bnRlciIsICJjZW50ZXIiKTsKKyAgZWxlbWVudC5zdHlsZS5wbGFjZUl0ZW1zID0gImluaXRpYWwi
OworICBjaGVja1ZhbHVlcyhlbGVtZW50LCAicGxhY2VJdGVtcyIsICJwbGFjZS1pdGVtcyIsICJp
bml0aWFsIiwgIm5vcm1hbCBub3JtYWwiKTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKGVsZW1l
bnQsICJpbml0aWFsIiwgIm5vcm1hbCIsICJub3JtYWwiKTsKK30sICJUZXN0IHRoZSAnaW5pdGlh
bCcgdmFsdWUgb2YgdGhlIHBsYWNlLWl0ZW1zIHNob3J0aGFuZCBhbmQgaXRzIGxvbmdoYW5kIHBy
b3BlcnRpZXMnIENvbXB1dGVkIHZhbHVlIik7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGRvY3Vt
ZW50LmJvZHkuc3R5bGUucGxhY2VJdGVtcyA9ICJzdGFydCI7CisgIHZhciBhbm90aGVyRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGFub3RoZXJFbGVtZW50KTsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKGFub3RoZXJF
bGVtZW50LCAiIiwgIm5vcm1hbCIsICJub3JtYWwiKTsKKyAgYW5vdGhlckVsZW1lbnQuc3R5bGUu
cGxhY2VJdGVtcyA9ICJpbmhlcml0IjsKKyAgY2hlY2tQbGFjZUl0ZW1zVmFsdWVzKGFub3RoZXJF
bGVtZW50LCAiaW5oZXJpdCIsICJzdGFydCIsICJzdGFydCIpOworfSwgIlRlc3QgdGhlICdpbmhl
cml0JyB2YWx1ZSBvZiB0aGUgcGxhY2UtaXRlbXMgc2hvcnRoYW5kIGFuZCBpdHMgbG9uZ2hhbmQg
cHJvcGVydGllcycgQ29tcHV0ZWQgdmFsdWUiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>