<?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>122840</bug_id>
          
          <creation_ts>2013-10-15 09:34:53 -0700</creation_ts>
          <short_desc>Add some API tests for Vector, RefPtr, and Ref</short_desc>
          <delta_ts>2013-10-15 11:04:24 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>rakuco</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>939998</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-15 09:34:53 -0700</bug_when>
    <thetext>Add some API tests for Vector, RefPtr, and Ref</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940000</commentid>
    <comment_count>1</comment_count>
      <attachid>214272</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-15 09:35:38 -0700</bug_when>
    <thetext>Created attachment 214272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940002</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-10-15 09:36:24 -0700</bug_when>
    <thetext>I’m going to try adding a PassRef soon, and I wanted a place to put some tests for it. I’ll put more PassRefPtr tests into RefPtr.cpp and I’ll put PassRef tests into Ref.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940027</commentid>
    <comment_count>3</comment_count>
      <attachid>214272</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-10-15 10:55:48 -0700</bug_when>
    <thetext>Comment on attachment 214272
Patch

Sweetness!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940030</commentid>
    <comment_count>4</comment_count>
      <attachid>214272</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-15 11:04:20 -0700</bug_when>
    <thetext>Comment on attachment 214272
Patch

Clearing flags on attachment: 214272

Committed r157453: &lt;http://trac.webkit.org/changeset/157453&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940031</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-15 11:04:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214272</attachid>
            <date>2013-10-15 09:35:38 -0700</date>
            <delta_ts>2013-10-15 11:04:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122840-20131015093538.patch</filename>
            <type>text/plain</type>
            <size>26094</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3Mzg1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjFkMzYyZWY1MTI3Y2IzODJkYjAzY2QxYjhjNTZiZWYw
MmU1YzljMy4uYjY2MmI5OTM4MGMzOWM5MDFhYWRlNDZiZjM4OTI4ZWE5ODE3NGI3MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDEzLTEwLTE1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgc29tZSBBUEkgdGVzdHMgZm9yIFZlY3RvciwgUmVmUHRyLCBhbmQgUmVmCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI4NDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Q01ha2VMaXN0cy50eHQ6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L0dOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkudmN4cHJvai9UZXN0V2ViS2l0QVBJLnZjeHByb2o6IERpdHRvLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS52Y3hwcm9qL1Rlc3RXZWJLaXRBUEkudmN4cHJvai5m
aWx0ZXJzOiBEaXR0by4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9SZWYuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9SZWZMb2dnZXIuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvUmVmUHRyLmNwcDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
VmVjdG9yLmNwcDogQWRkZWQgbW92ZS1vbmx5IGluc2VydCB0ZXN0cy4KKwogMjAxMy0xMC0xMyAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgQ2hy
b21pdW0gc3BlY2lmaWMgY29kZSBmcm9tIGZsYWtpbmVzcyBkYXNoYm9hcmQKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NNYWtlTGlzdHMudHh0CmluZGV4IDRkOWZlZDgyMDU5MDA4ZjAwZTA2YWQwMjJiNzlhZWMxYzBi
MGNmOWQuLjI1Nzg1MThlM2ZjMWFkNzg4ZWY4ODk3MGE4ZTdhZTYzYzFlNzU1YTQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMTA0LDYgKzEwNCw4IEBAIGFkZF9leGVjdXRhYmxl
KHRlc3Rfd3RmCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL01hdGhFeHRyYXMu
Y3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3Bw
CiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1JlZEJsYWNrVHJlZS5jcHAKKyAg
ICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvUmVmLmNwcAorICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dURi9SZWZQdHIuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0v
VGVzdHMvV1RGL1NIQTEuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1Nh
dHVyYXRlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0K
aW5kZXggZjAzM2E3NGY1MGI1NDE5NmVkMmVkNzQzZWVkODdmMTdhNWVkOTdjYy4uZGUyOTFiNzA3
ZmRlODZlNmZlZmRiN2NlNTkzNDg4MjBmZDkwMWVkNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2Vm
aWxlLmFtCkBAIC02Niw2ICs2Niw5IEBAIFByb2dyYW1zX1Rlc3RXZWJLaXRBUElfVGVzdFdURl9T
T1VSQ0VTID0gXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3Iu
Y3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Nb3ZlT25seS5oIFwKIAlUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWRCbGFja1RyZWUuY3BwIFwKKwlUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWYuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9SZWZMb2dnZXIuaCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRy
LmNwcCBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU0hBMS5jcHAgXAogCVRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1NhdHVyYXRlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNw
cCBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAgXApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnZjeHByb2ovVGVz
dFdlYktpdEFQSS52Y3hwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnZj
eHByb2ovVGVzdFdlYktpdEFQSS52Y3hwcm9qCmluZGV4IDc4YTQwNTBjOTk2MWE1Yjk3MTE2ZTZj
NTdhYjgwMzM5YTQ3ZTdlZWIuLmExYzI3NDVmOTMyZWE5ZTNiZWY4MmQ0ZTI3OTM3NzcyNmU2ZTBh
MGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS52Y3hwcm9q
L1Rlc3RXZWJLaXRBUEkudmN4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkudmN4cHJvai9UZXN0V2ViS2l0QVBJLnZjeHByb2oKQEAgLTI5NCw2ICsyOTQsOCBAQAog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cVGVzdHNcV1RGXE1ENS5jcHAiIC8+DQogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cVGVzdHNcV1RGXE1hdGhFeHRyYXMuY3BwIiAvPg0KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFRlc3RzXFdURlxNZWRpYVRpbWUuY3BwIiAvPg0KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFRlc3RzXFdURlxSZWYuY3BwIiAvPg0KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXFRlc3RzXFdURlxSZWZQdHIuY3BwIiAvPg0KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXFRlc3RzXFdURlxTSEExLmNwcCIgLz4NCiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxUZXN0c1xXVEZcU2F0dXJhdGVkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIiAvPg0K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFRlc3RzXFdURlxTdHJpbmdIYXNoZXIuY3BwIiAv
Pg0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS52Y3hwcm9q
L1Rlc3RXZWJLaXRBUEkudmN4cHJvai5maWx0ZXJzIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnZjeHByb2ovVGVzdFdlYktpdEFQSS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggNDMz
MDQ4YWQ2N2Y2NjA1OWNlYmEwOWY0MmY1MTY5NDJmZGU5ODI1NC4uN2I3NDlhMWQ2ZDY2ZDNjZWM0
ZjY3NmI5NTgyYTVkZWZkM2NiNjZhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnZjeHByb2ovVGVzdFdlYktpdEFQSS52Y3hwcm9qLmZpbHRlcnMKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnZjeHByb2ovVGVzdFdlYktpdEFQSS52
Y3hwcm9qLmZpbHRlcnMKQEAgLTYzLDYgKzYzLDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxUZXN0c1xXVEZcTWVkaWFUaW1lLmNwcCI+DQogICAgICAgPEZpbHRlcj5UZXN0c1xXVEY8
L0ZpbHRlcj4NCiAgICAgPC9DbENvbXBpbGU+DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
VGVzdHNcV1RGXFJlZi5jcHAiPg0KKyAgICAgIDxGaWx0ZXI+VGVzdHNcV1RGPC9GaWx0ZXI+DQor
ICAgIDwvQ2xDb21waWxlPg0KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFRlc3RzXFdURlxS
ZWZQdHIuY3BwIj4NCisgICAgICA8RmlsdGVyPlRlc3RzXFdURjwvRmlsdGVyPg0KKyAgICA8L0Ns
Q29tcGlsZT4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxUZXN0c1xXVEZcU0hBMS5jcHAi
Pg0KICAgICAgIDxGaWx0ZXI+VGVzdHNcV1RGPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmQ3OWM5MTlhOWU2NzdhM2ZmNjZjOGY4YjFhNDBh
MDVmZjA2YmQ2Yy4uNmM2YjljM2U2OGRmZjI2YjQ0NzI4OTdiMzZhNTE1NmYyMWJiMzcyOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMyw2ICsxMTMsOCBAQAogCQk5MzMxNDA3QzE3QjQ0
MTkwMDBGMDgzQjEgLyogRGlkTm90SGFuZGxlS2V5RG93bi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMxNDA3QjE3QjQ0MTkwMDBGMDgzQjEgLyog
RGlkTm90SGFuZGxlS2V5RG93bi5jcHAgKi87IH07CiAJCTkzNjEwMDI5MTREQzk1QTcwMDYxMzc5
RCAvKiBsb3RzLW9mLWlmcmFtZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzYxMDAyODE0REM5NTdCMDA2MTM3OUQgLyogbG90cy1v
Zi1pZnJhbWVzLmh0bWwgKi87IH07CiAJCTkzOUJBOTE3MTQxMDM0MTIwMDFBMDFCRCAvKiBEZXZp
Y2VTY2FsZUZhY3Rvck9uQmFjay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzOUJBOTE2MTQxMDM0MTIwMDFBMDFCRCAvKiBEZXZpY2VTY2FsZUZhY3Rv
ck9uQmFjay5tbSAqLzsgfTsKKwkJOTNBNDI3QTkxODBEOUIwNzAwQ0QyNEQ3IC8qIFJlZlB0ci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E0MjdB
ODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAqLzsgfTsKKwkJOTNBNDI3QUIxODBEQTI2
NDAwQ0QyNEQ3IC8qIFJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0E0MjdBQTE4MERBMjY0MDBDRDI0RDcgLyogUmVmLmNwcCAqLzsgfTsKIAkJ
OTNBQkE4MDkxNkREQUI5MTAwMkRCMkZBIC8qIFN0cmluZ0hhc2hlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FCQTgwODE2RERBQjkxMDAyREIy
RkEgLyogU3RyaW5nSGFzaGVyLmNwcCAqLzsgfTsKIAkJOTNBRjRFQ0UxNTA2RjA2NDAwN0ZENTdF
IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlc19CdW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBRjRFQ0QxNTA2
RjA2NDAwN0ZENTdFIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlc19C
dW5kbGUuY3BwICovOyB9OwogCQk5M0FGNEVEMDE1MDZGMTIzMDA3RkQ1N0UgLyogbG90cy1vZi1p
bWFnZXMuaHRtbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBRjRFQ0YxNTA2RjEyMzAwN0ZENTdFIC8qIGxvdHMtb2YtaW1hZ2VzLmh0bWwgKi87IH07
CkBAIC00MTksNiArNDIxLDEwIEBACiAJCTkzMzE0MDdCMTdCNDQxOTAwMEYwODNCMSAvKiBEaWRO
b3RIYW5kbGVLZXlEb3duLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IERpZE5vdEhhbmRsZUtleURvd24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzYxMDAyODE0REM5NTdCMDA2MTM3OUQgLyogbG90cy1vZi1pZnJhbWVzLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAibG90cy1vZi1pZnJhbWVzLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzlCQTkxNjE0MTAzNDEyMDAxQTAxQkQgLyogRGV2aWNlU2NhbGVG
YWN0b3JPbkJhY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
ZXZpY2VTY2FsZUZhY3Rvck9uQmFjay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNBNDI3QTgxODBEOUIwNzAwQ0QyNEQ3IC8qIFJlZlB0ci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZWZQdHIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5M0E0MjdBQTE4MERBMjY0MDBDRDI0RDcgLyogUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQTQyN0FDMTgwREE2MEYwMENEMjRENyAvKiBNb3ZlT25seS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNb3ZlT25seS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0E0MjdBRDE4MERB
NjBGMDBDRDI0RDcgLyogUmVmTG9nZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZkxvZ2dlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0FCQTgwODE2RERBQjkxMDAyREIyRkEgLyog
U3RyaW5nSGFzaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0
cmluZ0hhc2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQUY0RUNBMTUw
NkYwMzUwMDdGRDU3RSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNBRjRFQ0QxNTA2RjA2NDAwN0ZENTdFIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZvckltYWdlc19CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MDgsNyArODE0LDExIEBACiAJCQkJQjQw
MzlGOUMxNUU2RDhCMzAwNzI1NUQ2IC8qIE1hdGhFeHRyYXMuY3BwICovLAogCQkJCUNENTQ5N0Iz
MTU4NTdGMEMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovLAogCQkJCTBGQzZDNENFMTQxMDM0
QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKKwkJCQk5M0E0MjdBQzE4MERBNjBG
MDBDRDI0RDcgLyogTW92ZU9ubHkuaCAqLywKIAkJCQkwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMg
LyogUmVkQmxhY2tUcmVlLmNwcCAqLywKKwkJCQk5M0E0MjdBQTE4MERBMjY0MDBDRDI0RDcgLyog
UmVmLmNwcCAqLywKKwkJCQk5M0E0MjdBRDE4MERBNjBGMDBDRDI0RDcgLyogUmVmTG9nZ2VyLmgg
Ki8sCisJCQkJOTNBNDI3QTgxODBEOUIwNzAwQ0QyNEQ3IC8qIFJlZlB0ci5jcHAgKi8sCiAJCQkJ
Q0Q1MzkzQzkxNzU3QkFDNDAwQzA3MTIzIC8qIFNIQTEuY3BwICovLAogCQkJCTE0RjNCMTEyMTVF
NDVFQUIwMDIxMDA2OSAvKiBTYXR1cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgKi8sCiAJ
CQkJODFCNTAxOTIxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovLApAQCAt
MTExMSw2ICsxMTIxLDcgQEAKIAkJCQk1MTM5M0UyMDE1MjM5NDRBMDA1RjM5QzUgLyogRE9NV2lu
ZG93RXh0ZW5zaW9uQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjZGNDlDNjkxNTU0NUM4
RTAwMDdGMzlEIC8qIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzA0NUY5NDUxMzg1QzJFQTAwQzBGM0NEIC8qIERvd25sb2FkRGVjaWRlRGVzdGluYXRp
b25DcmFzaC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0E0MjdBQjE4MERBMjY0MDBDRDI0RDcg
LyogUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwN0U2Q0FGMTNGRDY3NjUwMDM4QjIyQiAv
KiBEeW5hbWljRGV2aWNlU2NhbGVGYWN0b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0FBNDg1
ODE0QTA0NEQ0MDA4OEZBQzQgLyogRWRpdG9yQ29tbWFuZHMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0QkI0MTYwNDE2ODE1RjkxMDA4MjQyMzggLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1t
IGluIFNvdXJjZXMgKi8sCkBAIC0xMTU5LDYgKzExNzAsNyBAQAogCQkJCTkzRjFEQjMxMTREQTIw
NzYwMDI0QzM2MiAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTNGMURCNTUxNERCMUI3MzAwMjRDMzYyIC8qIE5ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZhaWxzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMTg3Nzg5MTVFRUM1
NzcwMEE5Q0NFMyAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTNBNDI3QTkxODBEOUIwNzAwQ0QyNEQ3IC8qIFJlZlB0ci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0ZCQ0FERjE3NDMyMzRGMDBCMkJGQ0YgLyogV2lsbExv
YWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGN0U4NkMxNERDOEU0RDAwQzg0QTk5IC8qIE5l
d0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzkwOTc3QTEyNTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZi5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWYuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1NWQw
MGNjMjRkZWM5NzU3NjgzOTI3YjhjODRkNTBhYTZhMTRlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWYuY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJSZWZMb2dnZXIuaCIK
KyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVT
VChXVEZfUmVmLCBCYXNpYykKK3sKKyAgICBEZXJpdmVkUmVmTG9nZ2VyIGEoImEiKTsKKworICAg
IHsKKyAgICAgICAgUmVmPFJlZkxvZ2dlcj4gcHRyKGEpOworICAgICAgICBBU1NFUlRfRVEoJmEs
ICZwdHIuZ2V0KCkpOworICAgICAgICBBU1NFUlRfRVEoJmEubmFtZSwgJnB0ci0+bmFtZSk7Cisg
ICAgfQorICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5j
X3N0cigpKTsKK30KKworVEVTVChXVEZfUmVmLCBBc3NpZ25tZW50KQoreworICAgIERlcml2ZWRS
ZWZMb2dnZXIgYSgiYSIpOworICAgIFJlZkxvZ2dlciBiKCJiIik7CisgICAgRGVyaXZlZFJlZkxv
Z2dlciBjKCJjIik7CisKKyAgICB7CisgICAgICAgIFJlZjxSZWZMb2dnZXI+IHB0cihhKTsKKyAg
ICAgICAgQVNTRVJUX0VRKCZhLCAmcHRyLmdldCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsK
KyAgICAgICAgcHRyID0gYjsKKyAgICAgICAgQVNTRVJUX0VRKCZiLCAmcHRyLmdldCgpKTsKKyAg
ICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgfCBy
ZWYoYikgZGVyZWYoYSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAg
ICB7CisgICAgICAgIFJlZjxSZWZMb2dnZXI+IHB0cihhKTsKKyAgICAgICAgQVNTRVJUX0VRKCZh
LCAmcHRyLmdldCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICAgICAgcHRyID0gYzsK
KyAgICAgICAgQVNTRVJUX0VRKCZjLCAmcHRyLmdldCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwg
IjsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgfCByZWYoYykgZGVyZWYoYSkgfCBk
ZXJlZihjKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Jl
ZkxvZ2dlci5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmTG9nZ2VyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmJiNWMzNmZhMzlhZGRjNzk3NGJiMWVlMjI1NDg2ZmQ0ZjQ3NzNkNwotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZkxvZ2dlci5oCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlZkxvZ2dlcl9oCisKK25hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKKworaW5saW5lIHN0ZDo6b3N0cmluZ3N0cmVhbSYgbG9nKCkK
K3sKKyAgICBzdGF0aWMgc3RkOjpvc3RyaW5nc3RyZWFtIGxvZzsKKyAgICByZXR1cm4gbG9nOwor
fQorCitpbmxpbmUgc3RkOjpzdHJpbmcgdGFrZUxvZ1N0cigpCit7CisgICAgc3RkOjpzdHJpbmcg
c3RyaW5nID0gbG9nKCkuc3RyKCk7CisgICAgbG9nKCkuc3RyKCIiKTsKKyAgICByZXR1cm4gc3Ry
aW5nOworfQorCitzdHJ1Y3QgUmVmTG9nZ2VyIHsKKyAgICBSZWZMb2dnZXIoY29uc3QgY2hhciog
bmFtZSkgOiBuYW1lKCpuYW1lKSB7IH0KKyAgICB2b2lkIHJlZigpIHsgbG9nKCkgPDwgInJlZigi
IDw8ICZuYW1lIDw8ICIpICI7IH0KKyAgICB2b2lkIGRlcmVmKCkgeyBsb2coKSA8PCAiZGVyZWYo
IiA8PCAmbmFtZSA8PCAiKSAiOyB9CisgICAgY29uc3QgY2hhciYgbmFtZTsKK307CisKK3N0cnVj
dCBEZXJpdmVkUmVmTG9nZ2VyIDogUmVmTG9nZ2VyIHsKKyAgICBEZXJpdmVkUmVmTG9nZ2VyKGNv
bnN0IGNoYXIqIG5hbWUpIDogUmVmTG9nZ2VyKG5hbWUpIHsgfQorfTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ODE4
ZWU2YTZhNjlmODAyNjEyNDZmZWY5NDMwMTJkZTMxZmZkYTkKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCkBAIC0wLDAgKzEsMzU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiUmVmTG9nZ2Vy
LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CisKK1RFU1QoV1RGX1JlZlB0ciwgQmFzaWMpCit7CisgICAgRGVyaXZlZFJlZkxvZ2dlciBhKCJh
Iik7CisKKyAgICBSZWZQdHI8UmVmTG9nZ2VyPiBlbXB0eTsKKyAgICBBU1NFUlRfRVEobnVsbHB0
ciwgZW1wdHkuZ2V0KCkpOworCisgICAgeworICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIo
JmEpOworICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9F
USgmYSwgJipwdHIpOworICAgICAgICBBU1NFUlRfRVEoJmEubmFtZSwgJnB0ci0+bmFtZSk7Cisg
ICAgfQorICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5j
X3N0cigpKTsKKworICAgIHsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyID0gJmE7Cisg
ICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVR
KCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisgICAgeworICAg
ICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSA9ICZhOworICAgICAgICBSZWZQdHI8UmVmTG9nZ2Vy
PiBwMihwMSk7CisgICAgICAgIEFTU0VSVF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAgICBBU1NF
UlRfRVEoJmEsIHAyLmdldCgpKTsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVm
KGEpIGRlcmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsK
KyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEgPSAmYTsKKyAgICAgICAgUmVmUHRyPFJlZkxv
Z2dlcj4gcDIgPSBwMTsKKyAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5nZXQoKSk7CisgICAgICAg
IEFTU0VSVF9FUSgmYSwgcDIuZ2V0KCkpOworICAgIH0KKyAgICBBU1NFUlRfU1RSRVEoInJlZihh
KSByZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisg
ICAgeworICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSA9ICZhOworICAgICAgICBSZWZQdHI8
UmVmTG9nZ2VyPiBwMiA9IHN0ZDo6bW92ZShwMSk7CisgICAgICAgIEFTU0VSVF9FUShudWxscHRy
LCBwMS5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9FUSgmYSwgcDIuZ2V0KCkpOworICAgIH0KKyAg
ICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7
CisKKyAgICB7CisgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAxID0gJmE7CisgICAgICAgIFJl
ZlB0cjxSZWZMb2dnZXI+IHAyKHN0ZDo6bW92ZShwMSkpOworICAgICAgICBBU1NFUlRfRVEobnVs
bHB0ciwgcDEuZ2V0KCkpOworICAgICAgICBBU1NFUlRfRVEoJmEsIHAyLmdldCgpKTsKKyAgICB9
CisgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3Ry
KCkpOworCisgICAgeworICAgICAgICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dlcj4gcDEgPSAmYTsK
KyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIgPSBwMTsKKyAgICAgICAgQVNTRVJUX0VRKCZh
LCBwMS5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9FUSgmYSwgcDIuZ2V0KCkpOworICAgIH0KKyAg
ICBBU1NFUlRfU1RSRVEoInJlZihhKSByZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOworCisgICAgeworICAgICAgICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dl
cj4gcDEgPSAmYTsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIgPSBzdGQ6Om1vdmUocDEp
OworICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0KCkpOworICAgICAgICBBU1NFUlRf
RVEoJmEsIHAyLmdldCgpKTsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYo
YSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisgICAgeworICAgICAgICBSZWZQdHI8UmVm
TG9nZ2VyPiBwdHIoJmEpOworICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAg
ICAgIHB0ci5jbGVhcigpOworICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsK
KyAgICB9CisgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigp
LmNfc3RyKCkpOworCisgICAgeworICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwor
ICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIHB0ci5yZWxlYXNlKCk7
CisgICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwdHIuZ2V0KCkpOworICAgIH0KKyAgICBBU1NF
UlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cit9CisK
K1RFU1QoV1RGX1JlZlB0ciwgQWRvcHQpCit7CisgICAgRGVyaXZlZFJlZkxvZ2dlciBhKCJhIik7
CisKKyAgICBSZWZQdHI8UmVmTG9nZ2VyPiBlbXB0eTsKKyAgICBBU1NFUlRfRVEobnVsbHB0ciwg
ZW1wdHkuZ2V0KCkpOworCisgICAgeworICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoYWRv
cHRSZWYoJmEpKTsKKyAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBB
U1NFUlRfRVEoJmEsICYqcHRyKTsKKyAgICAgICAgQVNTRVJUX0VRKCZhLm5hbWUsICZwdHItPm5h
bWUpOworICAgIH0KKyAgICBBU1NFUlRfU1RSRVEoImRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5j
X3N0cigpKTsKKworICAgIHsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyID0gYWRvcHRS
ZWYoJmEpOworICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgfQorICAgIEFT
U0VSVF9TVFJFUSgiZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworfQorCitURVNU
KFdURl9SZWZQdHIsIEFzc2lnbm1lbnQpCit7CisgICAgRGVyaXZlZFJlZkxvZ2dlciBhKCJhIik7
CisgICAgUmVmTG9nZ2VyIGIoImIiKTsKKyAgICBEZXJpdmVkUmVmTG9nZ2VyIGMoImMiKTsKKwor
ICAgIHsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEoJmEpOworICAgICAgICBSZWZQdHI8
UmVmTG9nZ2VyPiBwMigmYik7CisgICAgICAgIEFTU0VSVF9FUSgmYSwgcDEuZ2V0KCkpOworICAg
ICAgICBBU1NFUlRfRVEoJmIsIHAyLmdldCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAg
ICAgICAgcDEgPSBwMjsKKyAgICAgICAgQVNTRVJUX0VRKCZiLCBwMS5nZXQoKSk7CisgICAgICAg
IEFTU0VSVF9FUSgmYiwgcDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgIH0K
KyAgICBBU1NFUlRfU1RSRVEoInJlZihhKSByZWYoYikgfCByZWYoYikgZGVyZWYoYSkgfCBkZXJl
ZihiKSBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAg
IFJlZlB0cjxSZWZMb2dnZXI+IHB0cigmYSk7CisgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdl
dCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICAgICAgcHRyID0gJmI7CisgICAgICAg
IEFTU0VSVF9FUSgmYiwgcHRyLmdldCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICB9
CisgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgfCByZWYoYikgZGVyZWYoYSkgfCBkZXJlZihiKSAi
LCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAgIFJlZlB0cjxSZWZMb2dn
ZXI+IHB0cigmYSk7CisgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKKyAgICAgICAg
bG9nKCkgPDwgInwgIjsKKyAgICAgICAgcHRyID0gYWRvcHRSZWYoJmIpOworICAgICAgICBBU1NF
UlRfRVEoJmIsIHB0ci5nZXQoKSk7CisgICAgICAgIGxvZygpIDw8ICJ8ICI7CisgICAgfQorICAg
IEFTU0VSVF9TVFJFUSgicmVmKGEpIHwgZGVyZWYoYSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3Ry
KCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0cigmYSk7
CisgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKKyAgICAgICAgcHRyID0gbnVsbHB0
cjsKKyAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHB0ci5nZXQoKSk7CisgICAgfQorICAgIEFT
U0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKwor
ICAgIHsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEoJmEpOworICAgICAgICBSZWZQdHI8
UmVmTG9nZ2VyPiBwMigmYik7CisgICAgICAgIEFTU0VSVF9FUSgmYSwgcDEuZ2V0KCkpOworICAg
ICAgICBBU1NFUlRfRVEoJmIsIHAyLmdldCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAg
ICAgICAgcDEgPSBzdGQ6Om1vdmUocDIpOworICAgICAgICBBU1NFUlRfRVEoJmIsIHAxLmdldCgp
KTsKKyAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHAyLmdldCgpKTsKKyAgICAgICAgbG9nKCkg
PDwgInwgIjsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwgZGVyZWYo
YSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAg
IFJlZlB0cjxSZWZMb2dnZXI+IHAxKCZhKTsKKyAgICAgICAgUmVmUHRyPERlcml2ZWRSZWZMb2dn
ZXI+IHAyKCZjKTsKKyAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5nZXQoKSk7CisgICAgICAgIEFT
U0VSVF9FUSgmYywgcDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgICAgICBw
MSA9IHAyOworICAgICAgICBBU1NFUlRfRVEoJmMsIHAxLmdldCgpKTsKKyAgICAgICAgQVNTRVJU
X0VRKCZjLCBwMi5nZXQoKSk7CisgICAgICAgIGxvZygpIDw8ICJ8ICI7CisgICAgfQorICAgIEFT
U0VSVF9TVFJFUSgicmVmKGEpIHJlZihjKSB8IHJlZihjKSBkZXJlZihhKSB8IGRlcmVmKGMpIGRl
cmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgUmVmUHRy
PFJlZkxvZ2dlcj4gcHRyKCZhKTsKKyAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOwor
ICAgICAgICBsb2coKSA8PCAifCAiOworICAgICAgICBwdHIgPSAmYzsKKyAgICAgICAgQVNTRVJU
X0VRKCZjLCBwdHIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgIH0KKyAgICBB
U1NFUlRfU1RSRVEoInJlZihhKSB8IHJlZihjKSBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VM
b2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRy
KCZhKTsKKyAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBsb2coKSA8
PCAifCAiOworICAgICAgICBwdHIgPSBhZG9wdFJlZigmYyk7CisgICAgICAgIEFTU0VSVF9FUSgm
YywgcHRyLmdldCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICB9CisgICAgQVNTRVJU
X1NUUkVRKCJyZWYoYSkgfCBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0
cigpKTsKKworICAgIHsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEoJmEpOworICAgICAg
ICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dlcj4gcDIoJmMpOworICAgICAgICBBU1NFUlRfRVEoJmEs
IHAxLmdldCgpKTsKKyAgICAgICAgQVNTRVJUX0VRKCZjLCBwMi5nZXQoKSk7CisgICAgICAgIGxv
ZygpIDw8ICJ8ICI7CisgICAgICAgIHAxID0gc3RkOjptb3ZlKHAyKTsKKyAgICAgICAgQVNTRVJU
X0VRKCZjLCBwMS5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwMi5nZXQoKSk7
CisgICAgICAgIGxvZygpIDw8ICJ8ICI7CisgICAgfQorICAgIEFTU0VSVF9TVFJFUSgicmVmKGEp
IHJlZihjKSB8IGRlcmVmKGEpIHwgZGVyZWYoYykgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwor
fQorCitURVNUKFdURl9SZWZQdHIsIFN3YXApCit7CisgICAgUmVmTG9nZ2VyIGEoImEiKTsKKyAg
ICBSZWZMb2dnZXIgYigiYiIpOworCisgICAgeworICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBw
MSgmYSk7CisgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyKCZiKTsKKyAgICAgICAgQVNTRVJU
X0VRKCZhLCBwMS5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9FUSgmYiwgcDIuZ2V0KCkpOworICAg
ICAgICBwMS5zd2FwKHAyKTsKKyAgICAgICAgQVNTRVJUX0VRKCZiLCBwMS5nZXQoKSk7CisgICAg
ICAgIEFTU0VSVF9FUSgmYSwgcDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAg
IH0KKyAgICBBU1NFUlRfU1RSRVEoInJlZihhKSByZWYoYikgfCBkZXJlZihhKSBkZXJlZihiKSAi
LCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAgIFJlZlB0cjxSZWZMb2dn
ZXI+IHAxKCZhKTsKKyAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIoJmIpOworICAgICAgICBB
U1NFUlRfRVEoJmEsIHAxLmdldCgpKTsKKyAgICAgICAgQVNTRVJUX0VRKCZiLCBwMi5nZXQoKSk7
CisgICAgICAgIHN0ZDo6c3dhcChwMSwgcDIpOworICAgICAgICBBU1NFUlRfRVEoJmIsIHAxLmdl
dCgpKTsKKyAgICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQoKSk7CisgICAgICAgIGxvZygpIDw8
ICJ8ICI7CisgICAgfQorICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIHJlZihiKSB8IGRlcmVmKGEp
IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKK30KKworVEVTVChXVEZfUmVmUHRy
LCBSZWxlYXNlKQoreworICAgIERlcml2ZWRSZWZMb2dnZXIgYSgiYSIpOworICAgIFJlZkxvZ2dl
ciBiKCJiIik7CisgICAgRGVyaXZlZFJlZkxvZ2dlciBjKCJjIik7CisKKyAgICB7CisgICAgICAg
IFJlZlB0cjxSZWZMb2dnZXI+IHAxID0gJmE7CisgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAy
ID0gcDEucmVsZWFzZSgpOworICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0KCkpOwor
ICAgICAgICBBU1NFUlRfRVEoJmEsIHAyLmdldCgpKTsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVR
KCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisgICAgeworICAg
ICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSA9ICZhOworICAgICAgICBSZWZQdHI8UmVmTG9nZ2Vy
PiBwMihwMS5yZWxlYXNlKCkpOworICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0KCkp
OworICAgICAgICBBU1NFUlRfRVEoJmEsIHAyLmdldCgpKTsKKyAgICB9CisgICAgQVNTRVJUX1NU
UkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworCisgICAgewor
ICAgICAgICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dlcj4gcDEgPSAmYTsKKyAgICAgICAgUmVmUHRy
PFJlZkxvZ2dlcj4gcDIgPSBwMS5yZWxlYXNlKCk7CisgICAgICAgIEFTU0VSVF9FUShudWxscHRy
LCBwMS5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9FUSgmYSwgcDIuZ2V0KCkpOworICAgIH0KKyAg
ICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7
CisKKyAgICB7CisgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAxKCZhKTsKKyAgICAgICAgUmVm
UHRyPFJlZkxvZ2dlcj4gcDIoJmIpOworICAgICAgICBBU1NFUlRfRVEoJmEsIHAxLmdldCgpKTsK
KyAgICAgICAgQVNTRVJUX0VRKCZiLCBwMi5nZXQoKSk7CisgICAgICAgIGxvZygpIDw8ICJ8ICI7
CisgICAgICAgIHAxID0gcDIucmVsZWFzZSgpOworICAgICAgICBBU1NFUlRfRVEoJmIsIHAxLmdl
dCgpKTsKKyAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHAyLmdldCgpKTsKKyAgICAgICAgbG9n
KCkgPDwgInwgIjsKKyAgICB9CisgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwgZGVy
ZWYoYSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7CisgICAg
ICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAxKCZhKTsKKyAgICAgICAgUmVmUHRyPERlcml2ZWRSZWZM
b2dnZXI+IHAyKCZjKTsKKyAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5nZXQoKSk7CisgICAgICAg
IEFTU0VSVF9FUSgmYywgcDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgICAg
ICBwMSA9IHAyLnJlbGVhc2UoKTsKKyAgICAgICAgQVNTRVJUX0VRKCZjLCBwMS5nZXQoKSk7Cisg
ICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwMi5nZXQoKSk7CisgICAgICAgIGxvZygpIDw8ICJ8
ICI7CisgICAgfQorICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIHJlZihjKSB8IGRlcmVmKGEpIHwg
ZGVyZWYoYykgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworfQorCitSZWZQdHI8UmVmTG9nZ2Vy
PiBmMShSZWZMb2dnZXImIGxvZ2dlcikKK3sKKyAgICByZXR1cm4gUmVmUHRyPFJlZkxvZ2dlcj4o
JmxvZ2dlcik7Cit9CisKK1RFU1QoV1RGX1JlZlB0ciwgUmV0dXJuVmFsdWUpCit7CisgICAgRGVy
aXZlZFJlZkxvZ2dlciBhKCJhIik7CisKKyAgICB7CisgICAgICAgIGYxKGEpOworICAgIH0KKyAg
ICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7
CisKKyAgICB7CisgICAgICAgIGF1dG8gcHRyID0gZjEoYSk7CisgICAgfQorICAgIEFTU0VSVF9T
VFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvVmVjdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Zl
Y3Rvci5jcHAKaW5kZXggN2U5MDgwOTk1NGFkMmUxNzllNmYyYjc3MTliYzk2NDdiYTdmYzZiMS4u
ZTc1NGJlNmJhOGI0YjM0MDlkMzk5ODM3MTZhYjk4Y2FhNmQ5YTVkMCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVmVjdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9WZWN0b3IuY3BwCkBAIC0xNzYsNCArMTc2LDMzIEBAIFRFU1QoV1RG
X1ZlY3RvciwgTW92ZU9ubHlfQXBwZW5kKQogICAgIH0KIH0KIAorVEVTVChXVEZfVmVjdG9yLCBN
b3ZlT25seV9JbnNlcnQpCit7CisgICAgVmVjdG9yPE1vdmVPbmx5PiB2ZWN0b3I7CisKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CisgICAgICAgIE1vdmVPbmx5IG1vdmVP
bmx5KGkpOworICAgICAgICB2ZWN0b3IuaW5zZXJ0KDAsIHN0ZDo6bW92ZShtb3ZlT25seSkpOwor
ICAgICAgICBFWFBFQ1RfRVEoMFUsIG1vdmVPbmx5LnZhbHVlKCkpOworICAgIH0KKworICAgIEVY
UEVDVF9FUSh2ZWN0b3Iuc2l6ZSgpLCAxMDBVKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IDEwMDsgKytpKQorICAgICAgICBFWFBFQ1RfRVEoOTkgLSBpLCB2ZWN0b3JbaV0udmFsdWUoKSk7
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDIwMDsgaSArPSAyKSB7CisgICAgICAgIE1v
dmVPbmx5IG1vdmVPbmx5KDEwMDAgKyBpKTsKKyAgICAgICAgdmVjdG9yLmluc2VydChpLCBzdGQ6
Om1vdmUobW92ZU9ubHkpKTsKKyAgICAgICAgRVhQRUNUX0VRKDBVLCBtb3ZlT25seS52YWx1ZSgp
KTsKKyAgICB9CisKKyAgICBFWFBFQ1RfRVEodmVjdG9yLnNpemUoKSwgMjAwVSk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCAyMDA7ICsraSkgeworICAgICAgICBpZiAoaSAlIDIpCisgICAg
ICAgICAgICBFWFBFQ1RfRVEoOTkgLSBpIC8gMiwgdmVjdG9yW2ldLnZhbHVlKCkpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfRVEoMTAwMCArIGksIHZlY3RvcltpXS52YWx1ZSgp
KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>